nib-embed
Version:
Getting oEmbed from embeddable link
2 lines (1 loc) • 12.2 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).embed=t()}(this,function(){"use strict";function o(r,n){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];return r.apply(n,e)}}var t=Object.prototype.toString;function a(e){return"[object Array]"===t.call(e)}function r(e){return null!==e&&"object"==typeof e}function n(e){return"[object Function]"===t.call(e)}function i(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),a(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}var f={isArray:a,isArrayBuffer:function(e){return"[object ArrayBuffer]"===t.call(e)},isBuffer:function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:r,isUndefined:function(e){return void 0===e},isDate:function(e){return"[object Date]"===t.call(e)},isFile:function(e){return"[object File]"===t.call(e)},isBlob:function(e){return"[object Blob]"===t.call(e)},isFunction:n,isStream:function(e){return r(e)&&n(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:i,merge:function r(){var n={};function e(e,t){"object"==typeof n[t]&&"object"==typeof e?n[t]=r(n[t],e):n[t]=e}for(var t=0,o=arguments.length;t<o;t++)i(arguments[t],e);return n},deepMerge:function r(){var n={};function e(e,t){"object"==typeof n[t]&&"object"==typeof e?n[t]=r(n[t],e):n[t]="object"==typeof e?r({},e):e}for(var t=0,o=arguments.length;t<o;t++)i(arguments[t],e);return n},extend:function(r,e,n){return i(e,function(e,t){r[t]=n&&"function"==typeof e?o(e,n):e}),r},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}};function s(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function p(e,t,r){if(!t)return e;var n;if(r)n=r(t);else if(f.isURLSearchParams(t))n=t.toString();else{var o=[];f.forEach(t,function(e,t){null!=e&&(f.isArray(e)?t+="[]":e=[e],f.forEach(e,function(e){f.isDate(e)?e=e.toISOString():f.isObject(e)&&(e=JSON.stringify(e)),o.push(s(t)+"="+s(e))}))}),n=o.join("&")}if(n){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}function e(){this.handlers=[]}e.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},e.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},e.prototype.forEach=function(t){f.forEach(this.handlers,function(e){null!==e&&t(e)})};function u(t,r,e){return f.forEach(e,function(e){t=e(t,r)}),t}function c(e){return!(!e||!e.__CANCEL__)}function d(r,n){f.forEach(r,function(e,t){t!==n&&t.toUpperCase()===n.toUpperCase()&&(r[n]=e,delete r[t])})}function l(e,t,r,n,o){return function(e,t,r,n,o){return e.config=t,r&&(e.code=r),e.request=n,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}(new Error(e),t,r,n,o)}var h,m,g,y=e,v=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"],w=f.isStandardBrowserEnv()?(m=/(msie|trident)/i.test(navigator.userAgent),g=document.createElement("a"),h=b(window.location.href),function(e){var t=f.isString(e)?b(e):e;return t.protocol===h.protocol&&t.host===h.host}):function(){return!0};function b(e){var t=e;return m&&(g.setAttribute("href",t),t=g.href),g.setAttribute("href",t),{href:g.href,protocol:g.protocol?g.protocol.replace(/:$/,""):"",host:g.host,search:g.search?g.search.replace(/^\?/,""):"",hash:g.hash?g.hash.replace(/^#/,""):"",hostname:g.hostname,port:g.port,pathname:"/"===g.pathname.charAt(0)?g.pathname:"/"+g.pathname}}function E(c){return new Promise(function(r,n){var o=c.data,a=c.headers;f.isFormData(o)&&delete a["Content-Type"];var i=new XMLHttpRequest;if(c.auth){var e=c.auth.username||"",t=c.auth.password||"";a.Authorization="Basic "+btoa(e+":"+t)}if(i.open(c.method.toUpperCase(),p(c.url,c.params,c.paramsSerializer),!0),i.timeout=c.timeout,i.onreadystatechange=function(){if(i&&4===i.readyState&&(0!==i.status||i.responseURL&&0===i.responseURL.indexOf("file:"))){var e="getAllResponseHeaders"in i?function(e){var t,r,n,o={};return e&&f.forEach(e.split("\n"),function(e){if(n=e.indexOf(":"),t=f.trim(e.substr(0,n)).toLowerCase(),r=f.trim(e.substr(n+1)),t){if(o[t]&&0<=v.indexOf(t))return;o[t]="set-cookie"===t?(o[t]?o[t]:[]).concat([r]):o[t]?o[t]+", "+r:r}}),o}(i.getAllResponseHeaders()):null,t={data:c.responseType&&"text"!==c.responseType?i.response:i.responseText,status:i.status,statusText:i.statusText,headers:e,config:c,request:i};!function(e,t,r){var n=r.config.validateStatus;!n||n(r.status)?e(r):t(l("Request failed with status code "+r.status,r.config,null,r.request,r))}(r,n,t),i=null}},i.onabort=function(){i&&(n(l("Request aborted",c,"ECONNABORTED",i)),i=null)},i.onerror=function(){n(l("Network Error",c,null,i)),i=null},i.ontimeout=function(){n(l("timeout of "+c.timeout+"ms exceeded",c,"ECONNABORTED",i)),i=null},f.isStandardBrowserEnv()){var s=R,u=(c.withCredentials||w(c.url))&&c.xsrfCookieName?s.read(c.xsrfCookieName):void 0;u&&(a[c.xsrfHeaderName]=u)}if("setRequestHeader"in i&&f.forEach(a,function(e,t){void 0===o&&"content-type"===t.toLowerCase()?delete a[t]:i.setRequestHeader(t,e)}),c.withCredentials&&(i.withCredentials=!0),c.responseType)try{i.responseType=c.responseType}catch(e){if("json"!==c.responseType)throw e}"function"==typeof c.onDownloadProgress&&i.addEventListener("progress",c.onDownloadProgress),"function"==typeof c.onUploadProgress&&i.upload&&i.upload.addEventListener("progress",c.onUploadProgress),c.cancelToken&&c.cancelToken.promise.then(function(e){i&&(i.abort(),n(e),i=null)}),void 0===o&&(o=null),i.send(o)})}var R=f.isStandardBrowserEnv()?{write:function(e,t,r,n,o,a){var i=[];i.push(e+"="+encodeURIComponent(t)),f.isNumber(r)&&i.push("expires="+new Date(r).toGMTString()),f.isString(n)&&i.push("path="+n),f.isString(o)&&i.push("domain="+o),!0===a&&i.push("secure"),document.cookie=i.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}},S={"Content-Type":"application/x-www-form-urlencoded"};function x(e,t){!f.isUndefined(e)&&f.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var C,j={adapter:("undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)?C=E:"undefined"!=typeof XMLHttpRequest&&(C=E),C),transformRequest:[function(e,t){return d(t,"Accept"),d(t,"Content-Type"),f.isFormData(e)||f.isArrayBuffer(e)||f.isBuffer(e)||f.isStream(e)||f.isFile(e)||f.isBlob(e)?e:f.isArrayBufferView(e)?e.buffer:f.isURLSearchParams(e)?(x(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):f.isObject(e)?(x(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return 200<=e&&e<300}};j.headers={common:{Accept:"application/json, text/plain, */*"}},f.forEach(["delete","get","head"],function(e){j.headers[e]={}}),f.forEach(["post","put","patch"],function(e){j.headers[e]=f.merge(S)});var A=j;function N(e){e.cancelToken&&e.cancelToken.throwIfRequested()}function T(t){return N(t),t.baseURL&&!function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}(t.url)&&(t.url=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}(t.baseURL,t.url)),t.headers=t.headers||{},t.data=u(t.data,t.headers,t.transformRequest),t.headers=f.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),f.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]}),(t.adapter||A.adapter)(t).then(function(e){return N(t),e.data=u(e.data,e.headers,t.transformResponse),e},function(e){return c(e)||(N(t),e&&e.response&&(e.response.data=u(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}function U(t,r){r=r||{};var n={};return f.forEach(["url","method","params","data"],function(e){void 0!==r[e]&&(n[e]=r[e])}),f.forEach(["headers","auth","proxy"],function(e){f.isObject(r[e])?n[e]=f.deepMerge(t[e],r[e]):void 0!==r[e]?n[e]=r[e]:f.isObject(t[e])?n[e]=f.deepMerge(t[e]):void 0!==t[e]&&(n[e]=t[e])}),f.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(e){void 0!==r[e]?n[e]=r[e]:void 0!==t[e]&&(n[e]=t[e])}),n}function O(e){this.defaults=e,this.interceptors={request:new y,response:new y}}O.prototype.request=function(e,t){"string"==typeof e?(e=t||{}).url=arguments[0]:e=e||{},(e=U(this.defaults,e)).method=e.method?e.method.toLowerCase():"get";var r=[T,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){r.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){r.push(e.fulfilled,e.rejected)});r.length;)n=n.then(r.shift(),r.shift());return n},O.prototype.getUri=function(e){return e=U(this.defaults,e),p(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},f.forEach(["delete","get","head","options"],function(r){O.prototype[r]=function(e,t){return this.request(f.merge(t||{},{method:r,url:e}))}}),f.forEach(["post","put","patch"],function(n){O.prototype[n]=function(e,t,r){return this.request(f.merge(r||{},{method:n,url:e,data:t}))}});var B=O;function L(e){this.message=e}L.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},L.prototype.__CANCEL__=!0;var q=L;function P(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var r=this;e(function(e){r.reason||(r.reason=new q(e),t(r.reason))})}P.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},P.source=function(){var t;return{token:new P(function(e){t=e}),cancel:t}};var k=P;function D(e){var t=new B(e),r=o(B.prototype.request,t);return f.extend(r,B.prototype,t),f.extend(r,t),r}var F=D(A);F.Axios=B,F.create=function(e){return D(U(F.defaults,e))},F.Cancel=q,F.CancelToken=k,F.isCancel=c,F.all=function(e){return Promise.all(e)},F.spread=function(t){return function(e){return t.apply(null,e)}};var H=F,z=F;H.default=z;var _=H;return{getEmbeddableHTML:function(i){return new Promise(function(t,r){try{var e=new URL(i),n=e.host;if(n.includes("vimeo.com"))return void _.get("https://vimeo.com/api/oembed.json?url=".concat(i)).then(function(e){t(e.data.html)}).catch(function(e){r(new Error("Unable to get embed details ".concat(e.message)))});var o=i;if(n.includes("youtube.com")){var a=e.searchParams.get("v");o="https://www.youtube.com/embed/".concat(a)}t('<iframe src="'.concat(o,'" width="640" height="360" frameborder="0" allowfullscreen></iframe>'))}catch(e){t("Unable to get embed details ".concat(e.message))}})}}});