@microlink/mql
Advanced tools
Comparing version 0.11.5-0 to 0.11.5-1
@@ -1,1 +0,2 @@ | ||
import r from"url-http/lightweight";import t from"ky";import*as e from"flattie";function s(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var o={exports:{}};const a={FREE:"https://api.microlink.io/",PRO:"https://pro.microlink.io/"},n=r=>null!==r&&"object"==typeof r;var i=({VERSION:r,MicrolinkError:t,urlHttp:e,got:s,flatten:o})=>{const i=r=>{if(!n(r))return;const t=o(r);return Object.keys(t).reduce(((r,e)=>(r[`data.${e}`]=t[e].toString(),r)),{})},c=async(r,e={})=>{try{const t=await s(r,e);return"buffer"===e.responseType?{body:t.body,response:t}:{...t.body,response:t}}catch(e){const{response:s={}}=e,{statusCode:a,body:i,headers:c={},url:p=r}=s,u=null!=(o=i)&&null!=o.constructor&&"function"==typeof o.constructor.isBuffer&&o.constructor.isBuffer(o),l=n(i)&&!u?i:((r,t,e)=>{try{return JSON.parse(r)}catch(s){const o=r||t.message;return{status:"error",data:{url:o},more:"https://microlink.io/efatalclient",code:"EFATALCLIENT",message:o,url:e}}})(u?i.toString():i,e,p);throw new t({...l,message:l.message,url:p,statusCode:a,headers:c})}var o},p=(r,{data:t,apiKey:e,endpoint:s,retry:n,cache:c,...p}={},{responseType:u="json",headers:l,...d}={})=>{const h=!!e;return[`${s||a[h?"PRO":"FREE"]}?${new URLSearchParams({url:r,...i(t),...o(p)}).toString()}`,{...d,responseType:u,cache:c,retry:n,headers:h?{...l,"x-api-key":e}:{...l}}]},u=r=>async(s,o,a)=>{((r="")=>{if(!e(r)){const e=`The \`url\` as \`${r}\` is not valid. Ensure it has protocol (http or https) and hostname.`;throw new t({status:"fail",data:{url:e},more:"https://microlink.io/docs/api/api-parameters/url",code:"EINVALURLCLIENT",message:e,url:r})}})(s);const[n,i]=p(s,o,{...r,...a});return c(n,i)},l=u();return l.MicrolinkError=t,l.getApiUrl=p,l.fetchFromApi=c,l.mapRules=i,l.version=r,l.stream=s.stream,l.buffer=u({responseType:"buffer"}),l};const c=r,p=i,{default:u}=t;class l extends Error{constructor(r){super(),this.name="MicrolinkError",Object.assign(this,r),this.description=this.message,this.message=this.code?`${this.code}, ${this.description}`:this.description}}const d=p({MicrolinkError:l,urlHttp:c,got:async(r,t)=>{try{t.retry>0&&(t.retry=t.retry+1),void 0===t.timeout&&(t.timeout=!1);const e=await u(r,t),s=await e.json(),{headers:o,status:a}=e;return{url:e.url,body:s,headers:o,statusCode:a}}catch(r){if(r.response){const{response:t}=r;r.response={...t,headers:Array.from(t.headers.entries()).reduce(((r,[t,e])=>(r[t]=e,r)),{}),statusCode:t.status,body:await t.text()}}throw r}},flatten:e.flattie,VERSION:"0.11.5-0"});o.exports=d;var h=o.exports.MicrolinkError=d.MicrolinkError,f=o.exports.getApiUrl=d.getApiUrl,m=o.exports.mapRules=d.mapRules,y=o.exports.version=d.version,E=s(o.exports);export{h as MicrolinkError,E as default,f as getApiUrl,m as mapRules,y as version}; | ||
function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function e(t){if(t.__esModule)return t;var e=t.default;if("function"==typeof e){var r=function t(){return this instanceof t?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach((function(e){var s=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,s.get?s:{enumerable:!0,get:function(){return t[e]}})})),r}var r={exports:{}};const s=/^https?:\/\//i;const o={FREE:"https://api.microlink.io/",PRO:"https://pro.microlink.io/"},n=t=>null!==t&&"object"==typeof t;var i=({VERSION:t,MicrolinkError:e,urlHttp:r,got:s,flatten:i})=>{const a=t=>{if(!n(t))return;const e=i(t);return Object.keys(e).reduce(((t,r)=>(t[`data.${r}`]=e[r].toString(),t)),{})},u=async(t,r={})=>{try{const e=await s(t,r);return"buffer"===r.responseType?{body:e.body,response:e}:{...e.body,response:e}}catch(r){const{response:s={}}=r,{statusCode:i,body:a,headers:u={},url:l=t}=s,c=null!=(o=a)&&null!=o.constructor&&"function"==typeof o.constructor.isBuffer&&o.constructor.isBuffer(o),h=n(a)&&!c?a:((t,e,r)=>{try{return JSON.parse(t)}catch(s){const o=t||e.message;return{status:"error",data:{url:o},more:"https://microlink.io/efatalclient",code:"EFATALCLIENT",message:o,url:r}}})(c?a.toString():a,r,l);throw new e({...h,message:h.message,url:l,statusCode:i,headers:u})}var o},l=(t,{data:e,apiKey:r,endpoint:s,retry:n,cache:u,...l}={},{responseType:c="json",headers:h,...p}={})=>{const f=!!r;return[`${s||o[f?"PRO":"FREE"]}?${new URLSearchParams({url:t,...a(e),...i(l)}).toString()}`,{...p,responseType:c,cache:u,retry:n,headers:f?{...h,"x-api-key":r}:{...h}}]},c=t=>async(s,o,n)=>{((t="")=>{if(!r(t)){const r=`The \`url\` as \`${t}\` is not valid. Ensure it has protocol (http or https) and hostname.`;throw new e({status:"fail",data:{url:r},more:"https://microlink.io/docs/api/api-parameters/url",code:"EINVALURLCLIENT",message:r,url:t})}})(s);const[i,a]=l(s,o,{...t,...n});return u(i,a)},h=c();return h.MicrolinkError=e,h.getApiUrl=l,h.fetchFromApi=u,h.mapRules=a,h.version=t,h.stream=s.stream,h.buffer=c({responseType:"buffer"}),h};class a extends Error{constructor(t,e,r){const s=`${t.status||0===t.status?t.status:""} ${t.statusText||""}`.trim();super(`Request failed with ${s?`status code ${s}`:"an unknown error"}`),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="HTTPError",this.response=t,this.request=e,this.options=r}}class u extends Error{constructor(t){super("Request timed out"),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="TimeoutError",this.request=t}}const l=t=>null!==t&&"object"==typeof t,c=(...t)=>{for(const e of t)if((!l(e)||Array.isArray(e))&&void 0!==e)throw new TypeError("The `options` argument must be an object");return p({},...t)},h=(t={},e={})=>{const r=new globalThis.Headers(t),s=e instanceof globalThis.Headers,o=new globalThis.Headers(e);for(const[t,e]of o.entries())s&&"undefined"===e||void 0===e?r.delete(t):r.set(t,e);return r},p=(...t)=>{let e={},r={};for(const s of t)if(Array.isArray(s))Array.isArray(e)||(e=[]),e=[...e,...s];else if(l(s)){for(let[t,r]of Object.entries(s))l(r)&&t in e&&(r=p(e[t],r)),e={...e,[t]:r};l(s.headers)&&(r=h(r,s.headers),e.headers=r)}return e},f=(()=>{let t=!1,e=!1;const r="function"==typeof globalThis.ReadableStream,s="function"==typeof globalThis.Request;return r&&s&&(e=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type")),t&&!e})(),d="function"==typeof globalThis.AbortController,y="function"==typeof globalThis.ReadableStream,b="function"==typeof globalThis.FormData,m=["get","post","put","patch","head","delete"],_={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},w=2147483647,g=Symbol("stop"),T={json:!0,parseJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,fetch:!0},R={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0},v=t=>m.includes(t)?t.toUpperCase():t,E=[413,429,503],q={limit:2,methods:["get","put","head","delete","options","trace"],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:E,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:t=>.3*2**(t-1)*1e3},x=(t={})=>{if("number"==typeof t)return{...q,limit:t};if(t.methods&&!Array.isArray(t.methods))throw new Error("retry.methods must be an array");if(t.statusCodes&&!Array.isArray(t.statusCodes))throw new Error("retry.statusCodes must be an array");return{...q,...t,afterStatusCodes:E}};class P{static create(t,e){const r=new P(t,e),s=async()=>{if("number"==typeof r._options.timeout&&r._options.timeout>w)throw new RangeError("The `timeout` option cannot be greater than 2147483647");await Promise.resolve();let t=await r._fetch();for(const e of r._options.hooks.afterResponse){const s=await e(r.request,r._options,r._decorateResponse(t.clone()));s instanceof globalThis.Response&&(t=s)}if(r._decorateResponse(t),!t.ok&&r._options.throwHttpErrors){let e=new a(t,r.request,r._options);for(const t of r._options.hooks.beforeError)e=await t(e);throw e}if(r._options.onDownloadProgress){if("function"!=typeof r._options.onDownloadProgress)throw new TypeError("The `onDownloadProgress` option must be a function");if(!y)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return r._stream(t.clone(),r._options.onDownloadProgress)}return t},o=r._options.retry.methods.includes(r.request.method.toLowerCase())?r._retry(s):s();for(const[t,s]of Object.entries(_))o[t]=async()=>{r.request.headers.set("accept",r.request.headers.get("accept")||s);const n=(await o).clone();if("json"===t){if(204===n.status)return"";if(0===(await n.clone().arrayBuffer()).byteLength)return"";if(e.parseJson)return e.parseJson(await n.text())}return n[t]()};return o}constructor(t,e={}){if(Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_retryCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._input=t,this._options={credentials:this._input.credentials||"same-origin",...e,headers:h(this._input.headers,e.headers),hooks:p({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},e.hooks),method:v(e.method??this._input.method),prefixUrl:String(e.prefixUrl||""),retry:x(e.retry),throwHttpErrors:!1!==e.throwHttpErrors,timeout:e.timeout??1e4,fetch:e.fetch??globalThis.fetch.bind(globalThis)},"string"!=typeof this._input&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&"string"==typeof this._input){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(d){if(this.abortController=new globalThis.AbortController,this._options.signal){const t=this._options.signal;this._options.signal.addEventListener("abort",(()=>{this.abortController.abort(t.reason)}))}this._options.signal=this.abortController.signal}if(f&&(this._options.duplex="half"),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){const t="?"+("string"==typeof this._options.searchParams?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString()),e=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,t);!(b&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)||this._options.headers&&this._options.headers["content-type"]||this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(e,{...this.request}),this._options)}void 0!==this._options.json&&(this._options.body=JSON.stringify(this._options.json),this.request.headers.set("content-type",this._options.headers.get("content-type")??"application/json"),this.request=new globalThis.Request(this.request,{body:this._options.body}))}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount<this._options.retry.limit&&!(t instanceof u)){if(t instanceof a){if(!this._options.retry.statusCodes.includes(t.response.status))return 0;const e=t.response.headers.get("Retry-After");if(e&&this._options.retry.afterStatusCodes.includes(t.response.status)){let t=Number(e);return Number.isNaN(t)?t=Date.parse(e)-Date.now():t*=1e3,void 0!==this._options.retry.maxRetryAfter&&t>this._options.retry.maxRetryAfter?0:t}if(413===t.response.status)return 0}const e=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,e)}return 0}_decorateResponse(t){return this._options.parseJson&&(t.json=async()=>this._options.parseJson(await t.text())),t}async _retry(t){try{return await t()}catch(e){const r=Math.min(this._calculateRetryDelay(e),w);if(0!==r&&this._retryCount>0){await async function(t,{signal:e}){return new Promise(((r,s)=>{function o(){clearTimeout(n),s(e.reason)}e&&(e.throwIfAborted(),e.addEventListener("abort",o,{once:!0}));const n=setTimeout((()=>{e?.removeEventListener("abort",o),r()}),t)}))}(r,{signal:this._options.signal});for(const t of this._options.hooks.beforeRetry){if(await t({request:this.request,options:this._options,error:e,retryCount:this._retryCount})===g)return}return this._retry(t)}throw e}}async _fetch(){for(const t of this._options.hooks.beforeRequest){const e=await t(this.request,this._options);if(e instanceof Request){this.request=e;break}if(e instanceof Response)return e}const t=((t,e)=>{const r={};for(const s in e)s in R||s in T||s in t||(r[s]=e[s]);return r})(this.request,this._options);return!1===this._options.timeout?this._options.fetch(this.request.clone(),t):async function(t,e,r,s){return new Promise(((o,n)=>{const i=setTimeout((()=>{r&&r.abort(),n(new u(t))}),s.timeout);s.fetch(t,e).then(o).catch(n).then((()=>{clearTimeout(i)}))}))}(this.request.clone(),t,this.abortController,this._options)}_stream(t,e){const r=Number(t.headers.get("content-length"))||0;let s=0;return 204===t.status?(e&&e({percent:1,totalBytes:r,transferredBytes:s},new Uint8Array),new globalThis.Response(null,{status:t.status,statusText:t.statusText,headers:t.headers})):new globalThis.Response(new globalThis.ReadableStream({async start(o){const n=t.body.getReader();e&&e({percent:0,transferredBytes:0,totalBytes:r},new Uint8Array),await async function t(){const{done:i,value:a}=await n.read();if(i)o.close();else{if(e){s+=a.byteLength;e({percent:0===r?0:s/r,transferredBytes:s,totalBytes:r},a)}o.enqueue(a),await t()}}()}}),{status:t.status,statusText:t.statusText,headers:t.headers})}} | ||
/*! MIT License © Sindre Sorhus */const j=t=>{const e=(e,r)=>P.create(e,c(t,r));for(const r of m)e[r]=(e,s)=>P.create(e,c(t,s,{method:r}));return e.create=t=>j(c(t)),e.extend=e=>j(c(t,e)),e.stop=g,e},C=j();var O,A=e(Object.freeze({__proto__:null,HTTPError:a,TimeoutError:u,default:C})),k={};const S=t=>{try{const{href:e}=new URL(t);return s.test(e)&&e}catch(t){return!1}},U=i,{default:L}=A;class N extends Error{constructor(t){super(),this.name="MicrolinkError",Object.assign(this,t),this.description=this.message,this.message=this.code?`${this.code}, ${this.description}`:this.description}}const I=U({MicrolinkError:N,urlHttp:S,got:async(t,e)=>{try{e.retry>0&&(e.retry=e.retry+1),void 0===e.timeout&&(e.timeout=!1);const r=await L(t,e),s=await r.json(),{headers:o,status:n}=r;return{url:r.url,body:s,headers:o,statusCode:n}}catch(t){if(t.response){const{response:e}=t;t.response={...e,headers:Array.from(e.headers.entries()).reduce(((t,[e,r])=>(t[e]=r,t)),{}),statusCode:e.status,body:await e.text()}}throw t}},flatten:function(){if(O)return k;function t(e,r,s,o,n){var i,a=n?n+s:n;if(null==o)r&&(e[n]=o);else if("object"!=typeof o)e[n]=o;else if(Array.isArray(o))for(i=0;i<o.length;i++)t(e,r,s,o[i],a+i);else for(i in o)t(e,r,s,o[i],a+i)}return O=1,k.flattie=function(e,r,s){var o={};return"object"==typeof e&&t(o,!!s,r||".",e,""),o},k}().flattie,VERSION:"0.11.5-0"});r.exports=I;var D=r.exports.MicrolinkError=I.MicrolinkError,M=r.exports.getApiUrl=I.getApiUrl,H=r.exports.mapRules=I.mapRules,$=r.exports.version=I.version,B=t(r.exports);export{D as MicrolinkError,B as default,M as getApiUrl,H as mapRules,$ as version}; |
@@ -5,3 +5,3 @@ { | ||
"homepage": "https://microlink.io/mql", | ||
"version": "0.11.5-0", | ||
"version": "0.11.5-1", | ||
"types": "lightweight/index.d.ts", | ||
@@ -66,2 +66,3 @@ "main": "src/node.js", | ||
"@rollup/plugin-commonjs": "latest", | ||
"@rollup/plugin-node-resolve": "latest", | ||
"@rollup/plugin-replace": "latest", | ||
@@ -68,0 +69,0 @@ "@rollup/plugin-terser": "latest", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
52281
897
29