@microlink/mql
Advanced tools
Comparing version 0.3.7 to 0.3.8
@@ -5,2 +5,11 @@ # Changelog | ||
### [0.3.8](https://github.com/microlinkhq/mql/compare/v1.0.4...v0.3.8) (2019-05-28) | ||
### Build System | ||
* update dependencies ([5047672](https://github.com/microlinkhq/mql/commit/5047672)) | ||
### [0.3.7](https://github.com/microlinkhq/mql/compare/v1.0.3...v0.3.7) (2019-05-20) | ||
@@ -7,0 +16,0 @@ |
110
dist/mql.js
@@ -1831,7 +1831,11 @@ (function (global, factory) { | ||
const Response = getGlobal('Response'); | ||
const ReadableStream = getGlobal('ReadableStream'); | ||
const fetch = getGlobal('fetch'); | ||
const AbortController = getGlobal('AbortController'); | ||
const FormData = getGlobal('FormData'); | ||
const isObject = value => value !== null && typeof value === 'object'; | ||
const supportsAbortController = typeof getGlobal('AbortController') === 'function'; | ||
const supportsAbortController = typeof AbortController === 'function'; | ||
const supportsStreams = typeof ReadableStream === 'function'; | ||
const supportsFormData = typeof FormData === 'function'; | ||
@@ -1919,3 +1923,9 @@ const deepMerge = (...sources) => { | ||
const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); | ||
const delay = ms => new Promise((resolve, reject) => { | ||
if (ms > 2147483647) { // The maximum value of a 32bit int (see #117) | ||
reject(new RangeError('The `timeout` option cannot be greater than 2147483647')); | ||
} else { | ||
setTimeout(resolve, ms); | ||
} | ||
}); | ||
@@ -1932,3 +1942,3 @@ // `Promise.race()` workaround (#91) | ||
reject(new TimeoutError()); | ||
}); | ||
}).catch(reject); | ||
/* eslint-enable promise/prefer-await-to-then */ | ||
@@ -2004,2 +2014,6 @@ }); | ||
if (((supportsFormData && this._options.body instanceof FormData) || this._options.body instanceof URLSearchParams) && headers.has('content-type')) { | ||
throw new Error(`The \`content-type\` header cannot be used with a ${this._options.body.constructor.name} body. It will be set automatically.`); | ||
} | ||
if (json) { | ||
@@ -2033,2 +2047,16 @@ if (this._options.body) { | ||
// If `onDownloadProgress` is passed, it uses the stream API internally | ||
/* istanbul ignore next */ | ||
if (this._options.onDownloadProgress) { | ||
if (typeof this._options.onDownloadProgress !== 'function') { | ||
throw new TypeError('The `onDownloadProgress` option must be a function'); | ||
} | ||
if (!supportsStreams) { | ||
throw new Error('Streams are not supported in your environment. `ReadableStream` is missing.'); | ||
} | ||
return this._stream(response.clone(), this._options.onDownloadProgress); | ||
} | ||
return response; | ||
@@ -2105,18 +2133,66 @@ }; | ||
if (this._timeout === false) { | ||
return fetch(this._input, this._options); | ||
} | ||
return timeout(fetch(this._input, this._options), this._timeout, this.abortController); | ||
} | ||
/* istanbul ignore next */ | ||
_stream(response, onDownloadProgress) { | ||
const totalBytes = Number(response.headers.get('content-length')) || 0; | ||
let transferredBytes = 0; | ||
return new Response( | ||
new ReadableStream({ | ||
start(controller) { | ||
const reader = response.body.getReader(); | ||
if (onDownloadProgress) { | ||
onDownloadProgress({percent: 0, transferredBytes: 0, totalBytes}, new Uint8Array()); | ||
} | ||
async function read() { | ||
const {done, value} = await reader.read(); | ||
if (done) { | ||
controller.close(); | ||
return; | ||
} | ||
if (onDownloadProgress) { | ||
transferredBytes += value.byteLength; | ||
const percent = totalBytes === 0 ? 0 : transferredBytes / totalBytes; | ||
onDownloadProgress({percent, transferredBytes, totalBytes}, value); | ||
} | ||
controller.enqueue(value); | ||
read(); | ||
} | ||
read(); | ||
} | ||
}) | ||
); | ||
} | ||
} | ||
const createInstance = (defaults = {}) => { | ||
if (!isObject(defaults) || Array.isArray(defaults)) { | ||
throw new TypeError('The `defaultOptions` argument must be an object'); | ||
const validateAndMerge = (...sources) => { | ||
for (const source of sources) { | ||
if ((!isObject(source) || Array.isArray(source)) && typeof source !== 'undefined') { | ||
throw new TypeError('The `options` argument must be an object'); | ||
} | ||
} | ||
const ky = (input, options) => new Ky(input, deepMerge({}, defaults, options)); | ||
return deepMerge({}, ...sources); | ||
}; | ||
const createInstance = defaults => { | ||
const ky = (input, options) => new Ky(input, validateAndMerge(defaults, options)); | ||
for (const method of requestMethods) { | ||
ky[method] = (input, options) => new Ky(input, deepMerge({}, defaults, options, {method})); | ||
ky[method] = (input, options) => new Ky(input, validateAndMerge(defaults, options, {method})); | ||
} | ||
ky.extend = defaults => createInstance(defaults); | ||
ky.create = newDefaults => createInstance(validateAndMerge(newDefaults)); | ||
ky.extend = newDefaults => createInstance(validateAndMerge(defaults, newDefaults)); | ||
@@ -2303,13 +2379,5 @@ return ky; | ||
} catch (err) { | ||
const statusCode = err.statusCode || 500; | ||
const message = err.body ? err.body.message : err.message; | ||
const status = err.body ? err.body.status : 'fail'; | ||
throw MicrolinkError({ | ||
...err, | ||
status, | ||
message, | ||
statusCode, | ||
code: ERRORS_CODE.FAILED | ||
}) | ||
const body = err.body ? JSON.parse(err.body) : { message: err.message, status: 'fail' }; | ||
const { statusCode = 500 } = err; | ||
throw MicrolinkError({ ...body, statusCode, code: ERRORS_CODE.FAILED }) | ||
} | ||
@@ -2395,3 +2463,3 @@ }; | ||
flatten: flat, | ||
VERSION: '0.3.6' | ||
VERSION: '0.3.7' | ||
}); | ||
@@ -2398,0 +2466,0 @@ |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("url")):"function"==typeof define&&define.amd?define(["url"],t):(e=e||self).mql=t(e.url)}(this,function(e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var t=Object.freeze({default:e=>e});const r=(e,t)=>{for(const r of Reflect.ownKeys(t))Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));return e};var a=r,o=r;a.default=o;var s={isFunction:e=>"function"==typeof e,isString:e=>"string"==typeof e,composeErrorMessage:(e,t)=>`${e}, ${t}`,inherits:(e,t)=>{e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}};const{isFunction:n,composeErrorMessage:i}=s;var c=function(e,...t){Object.assign(e,...t),e.description=n(e.message)?e.message(e):e.message,e.message=e.code?i(e.code,e.description):e.description},l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function u(e){return e&&e.default||e}var d=u(t);const{isString:p}=s;var h=function(e,t){function r(r){const a=new e,o=p(r)?{message:r}:r;return c(a,t,o),a.stack=d(a.stack),a}return r.prototype=e.prototype,a(r,e),r};const{inherits:f}=s,m=/[^0-9a-zA-Z_$]/;var g=function(e){if("string"!=typeof e)throw new TypeError("Expected className to be a string");if(m.test(e))throw new Error("className contains invalid characters");function t(){Object.defineProperty(this,"name",{configurable:!0,value:e,writable:!0}),Error.captureStackTrace(this,this.constructor)}return f(t,Error),a(t,Error),t};const b=e=>(t,r)=>{const a=g(t||e.name);return h(a,r)};var y=b(Error),w=b(TypeError),v=b(RangeError),k=b(EvalError),x=b(SyntaxError),j=b(ReferenceError),$=b(URIError);function E(e){if(!e)return"";var t=decodeURIComponent(e);return"false"!==t&&("true"===t||(0*+t==0?+t:t))}y.type=w,y.range=v,y.eval=k,y.syntax=x,y.reference=j,y.uri=$;var _=Object.freeze({encode:function(e,t){var r,a,o,s="";for(r in e)if(void 0!==(o=e[r]))if(Array.isArray(o))for(a=0;a<o.length;a++)s&&(s+="&"),s+=encodeURIComponent(r)+"="+encodeURIComponent(o[a]);else s&&(s+="&"),s+=encodeURIComponent(r)+"="+encodeURIComponent(o);return(t||"")+s},decode:function(e){for(var t,r,a={},o=e.split("&");t=o.shift();)void 0!==a[r=(t=t.split("=")).shift()]?a[r]=[].concat(a[r],E(t.shift())):a[r]=E(t.shift());return a}});const z=e=>e&&e.includeBoundaries?"(?:(?<=\\s|^)(?=[a-fA-F\\d:])|(?<=[a-fA-F\\d:])(?=\\s|$))":"",R="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",O="[a-fA-F\\d]{1,4}",U=`\n(\n(?:${O}:){7}(?:${O}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${O}:){6}(?:${R}|:${O}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${O}:){5}(?::${R}|(:${O}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${O}:){4}(?:(:${O}){0,1}:${R}|(:${O}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${O}:){3}(?:(:${O}){0,2}:${R}|(:${O}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${O}:){2}(?:(:${O}){0,3}:${R}|(:${O}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${O}:){1}(?:(:${O}){0,4}:${R}|(:${O}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::((?::${O}){0,5}:${R}|(?::${O}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),A=e=>e&&e.exact?new RegExp(`(?:^${R}$)|(?:^${U}$)`):new RegExp(`(?:${z(e)}${R}${z(e)})|(?:${z(e)}${U}${z(e)})`,"g");A.v4=(e=>e&&e.exact?new RegExp(`^${R}$`):new RegExp(`${z(e)}${R}${z(e)}`,"g")),A.v6=(e=>e&&e.exact?new RegExp(`^${U}$`):new RegExp(`${z(e)}${U}${z(e)}`,"g"));var S=A,C=["aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","active","actor","ad","adac","ads","adult","ae","aeg","aero","aetna","af","afamilycompany","afl","africa","ag","agakhan","agency","ai","aig","aigo","airbus","airforce","airtel","akdn","al","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blanco","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnl","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","budapest","bugatti","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","cartier","casa","case","caseih","cash","casino","cat","catering","catholic","cba","cbn","cbre","cbs","cc","cd","ceb","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","chase","chat","cheap","chintai","christmas","chrome","chrysler","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","coop","corsica","country","coupon","coupons","courses","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dodge","dog","doha","domains","dot","download","drive","dtv","dubai","duck","dunlop","duns","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epost","epson","equipment","er","ericsson","erni","es","esq","estate","esurance","et","etisalat","eu","eurovision","eus","events","everbank","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glade","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodhands","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","guardian","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","honeywell","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","industries","infiniti","info","ing","ink","institute","insurance","insure","int","intel","international","intuit","investments","io","ipiranga","iq","ir","irish","is","iselect","ismaili","ist","istanbul","it","itau","itv","iveco","iwc","jaguar","java","jcb","jcp","je","jeep","jetzt","jewelry","jio","jlc","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerrylogistics","kerryproperties","kfh","kg","kh","ki","kia","kim","kinder","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","ladbrokes","lamborghini","lamer","lancaster","lancia","lancome","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","liaison","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","lixil","lk","llc","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","lupin","luxe","luxury","lv","ly","ma","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","meo","merckmsd","metlife","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","mobily","moda","moe","moi","mom","monash","money","monster","mopar","mormon","mortgage","moscow","moto","motorcycles","mov","movie","movistar","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","mutual","mv","mw","mx","my","mz","na","nab","nadex","nagoya","name","nationwide","natura","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","newholland","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","northwesternmutual","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","off","office","okinawa","olayan","olayangroup","oldnavy","ollo","om","omega","one","ong","onl","online","onyourside","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","panerai","paris","pars","partners","parts","party","passagens","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","piaget","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","pramerica","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","qvc","racing","radio","raid","re","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","rightathome","ril","rio","rip","rmit","ro","rocher","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sapo","sarl","sas","save","saxo","sb","sbi","sbs","sc","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scjohnson","scor","scot","sd","se","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","shriram","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","space","spiegel","sport","spot","spreadbetting","sr","srl","srt","st","stada","staples","star","starhub","statebank","statefarm","statoil","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiftcover","swiss","sx","sy","sydney","symantec","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","telecity","telefonica","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","uconnect","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","vista","vistaprint","viva","vivo","vlaanderen","vn","vodka","volkswagen","volvo","vote","voting","voto","voyage","vu","vuelos","wales","walmart","walter","wang","wanggou","warman","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","ಭಾರತ","慈善","集团","在线","한국","ଭାରତ","大众汽车","点看","คอม","ভাৰত","ভারত","八卦","موقع","বাংলা","公益","公司","香格里拉","网站","移动","我爱你","москва","қаз","католик","онлайн","сайт","联通","срб","бг","бел","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","삼성","சிங்கப்பூர்","商标","商店","商城","дети","мкд","ею","ポイント","新闻","工行","家電","كوم","中文网","中信","中国","中國","娱乐","谷歌","భారత్","ලංකා","電訊盈科","购物","クラウド","ભારત","通販","भारतम्","भारत","भारोत","网店","संगठन","餐厅","网络","ком","укр","香港","诺基亚","食品","飞利浦","台湾","台灣","手表","手机","мон","الجزائر","عمان","ارامكو","ایران","العليان","اتصالات","امارات","بازار","پاکستان","الاردن","موبايلي","بارت","بھارت","المغرب","ابوظبي","السعودية","ڀارت","كاثوليك","سودان","همراه","عراق","مليسيا","澳門","닷컴","政府","شبكة","بيتك","عرب","გე","机构","组织机构","健康","ไทย","سورية","招聘","рус","рф","珠宝","تونس","大拿","みんな","グーグル","ελ","世界","書籍","ഭാരതം","ਭਾਰਤ","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","مصر","قطر","广东","இலங்கை","இந்தியா","հայ","新加坡","فلسطين","政务","xperia","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zippo","zm","zone","zuerich","zw"];const T=l.window?window.URL:e.URL,q=(e=>{const t=`(?:${`(?:(?:[a-z]+:)?//)${(e={strict:!0,...e}).strict?"":"?"}`}|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${S.v4().source}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*${`(?:\\.${e.strict?"(?:[a-z\\u00a1-\\uffff]{2,})":`(?:${C.sort((e,t)=>t.length-e.length).join("|")})`})\\.?`})(?::\\d{2,5})?(?:[/?#][^\\s"]*)?`;return e.exact?new RegExp(`(?:^${t}$)`,"i"):new RegExp(t,"ig")})({exact:!0}),L=/^https?:\/\//i;var P,I,N=(function(e,t){!function(e){const t=e=>"undefined"!=typeof self&&self&&e in self?self[e]:"undefined"!=typeof window&&window&&e in window?window[e]:void 0!==l&&l&&e in l?l[e]:"undefined"!=typeof globalThis&&globalThis?globalThis[e]:void 0,r=t("document"),a=t("Headers"),o=t("Response"),s=t("fetch"),n=t("AbortController"),i=e=>null!==e&&"object"==typeof e,c="function"==typeof t("AbortController"),u=(...e)=>{let t={};for(const r of e)if(Array.isArray(r))Array.isArray(t)||(t=[]),t=[...t,...r];else if(i(r))for(let[e,a]of Object.entries(r))i(a)&&Reflect.has(t,e)&&(a=u(t[e],a)),t={...t,[e]:a};return t},d=["get","post","put","patch","head","delete"],p={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},h=new Set(["get","put","head","delete","options","trace"]),f=new Set([408,413,429,500,502,503,504]),m=new Set([413,429,503]);class g extends Error{constructor(e){super(e.statusText),this.name="HTTPError",this.response=e}}class b extends Error{constructor(){super("Request timed out"),this.name="TimeoutError"}}const y=e=>new Promise(t=>setTimeout(t,e)),w=(e,t,r)=>new Promise((a,o)=>{e.then(a).catch(o),y(t).then(()=>{c&&r.abort(),o(new b)})}),v=e=>d.includes(e)?e.toUpperCase():e;class k{constructor(e,{timeout:t=1e4,hooks:s,throwHttpErrors:i=!0,searchParams:l,json:d,...f}){if(this._retryCount=0,this._options={method:"get",credentials:"same-origin",retry:2,...f},c&&(this.abortController=new n,this._options.signal&&this._options.signal.addEventListener("abort",()=>{this.abortController.abort()}),this._options.signal=this.abortController.signal),this._options.method=v(this._options.method),this._options.prefixUrl=String(this._options.prefixUrl||""),this._input=String(e||""),this._options.prefixUrl&&this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");if(this._options.prefixUrl&&!this._options.prefixUrl.endsWith("/")&&(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input,l){const e=new URL(this._input,r&&r.baseURI);if("string"==typeof l||URLSearchParams&&l instanceof URLSearchParams)e.search=l;else{if(!Object.values(l).every(e=>"number"==typeof e||"string"==typeof e))throw new Error("The `searchParams` option must be either a string, `URLSearchParams` instance or an object with string and number values");e.search=new URLSearchParams(l).toString()}this._input=e.toString()}this._timeout=t,this._hooks=u({beforeRequest:[],afterResponse:[]},s),this._throwHttpErrors=i;const m=new a(this._options.headers||{});if(d){if(this._options.body)throw new Error("The `json` option cannot be used with the `body` option");m.set("content-type","application/json"),this._options.body=JSON.stringify(d)}this._options.headers=m;const b=async()=>{await y(1);let e=await this._fetch();for(const t of this._hooks.afterResponse){const r=await t(e.clone());r instanceof o&&(e=r)}if(!e.ok&&this._throwHttpErrors)throw new g(e);return e},w=h.has(this._options.method.toLowerCase()),k=w?this._retry(b):b();for(const[e,t]of Object.entries(p))k[e]=(async()=>(m.set("accept",t),(await k).clone()[e]()));return k}_calculateRetryDelay(e){if(this._retryCount++,this._retryCount<this._options.retry&&!(e instanceof b)){if(e instanceof g){if(!f.has(e.response.status))return 0;const t=e.response.headers.get("Retry-After");if(t&&m.has(e.response.status)){let e=Number(t);return Number.isNaN(e)?e=Date.parse(t)-Date.now():e*=1e3,e}if(413===e.response.status)return 0}const t=.3;return t*2**(this._retryCount-1)*1e3}return 0}async _retry(e){try{return await e()}catch(t){const r=this._calculateRetryDelay(t);if(0!==r&&this._retryCount>0)return await y(r),this._retry(e);if(this._throwHttpErrors)throw t}}async _fetch(){for(const e of this._hooks.beforeRequest)await e(this._options);return w(s(this._input,this._options),this._timeout,this.abortController)}}const x=(e={})=>{if(!i(e)||Array.isArray(e))throw new TypeError("The `defaultOptions` argument must be an object");const t=(t,r)=>new k(t,u({},e,r));for(const r of d)t[r]=((t,a)=>new k(t,u({},e,a,{method:r})));return t.extend=(e=>x(e)),t};var j=x();e.HTTPError=g,e.TimeoutError=b,e.default=j,Object.defineProperty(e,"__esModule",{value:!0})}(t)}(P={exports:{}},P.exports),P.exports);(I=N)&&I.__esModule&&Object.prototype.hasOwnProperty.call(I,"default")&&I.default;var D=N.default,F=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},H=M;function M(e,t){var r=(t=t||{}).delimiter||".",a=t.maxDepth,o={};return function e(s,n,i){i=i||1,Object.keys(s).forEach(function(c){var l=s[c],u=t.safe&&Array.isArray(l),d=Object.prototype.toString.call(l),p=F(l),h=n?n+r+c:c;if(!u&&!p&&("[object Object]"===d||"[object Array]"===d)&&Object.keys(l).length&&(!t.maxDepth||i<a))return e(l,h,i+1);o[h]=l})}(e),o}M.flatten=M,M.unflatten=function e(t,r){r=r||{};var a=r.delimiter||".";var o=r.overwrite||!1;var s={};var n=F(t);if(n||"[object Object]"!==Object.prototype.toString.call(t))return t;function i(e){var t=Number(e);return isNaN(t)||-1!==e.indexOf(".")||r.object?e:t}var c=Object.keys(t).sort(function(e,t){return e.length-t.length});c.forEach(function(n){for(var c=n.split(a),l=i(c.shift()),u=i(c[0]),d=s;void 0!==u;){var p=Object.prototype.toString.call(d[l]),h="[object Object]"===p||"[object Array]"===p;if(!o&&!h&&void 0!==d[l])return;(o&&!h||!o&&null==d[l])&&(d[l]="number"!=typeof u||r.object?{}:[]),d=d[l],c.length>0&&(l=i(c.shift()),u=i(c[0]))}d[l]=e(t[n],r)});return s};const V={FREE:"https://api.microlink.io",PRO:"https://pro.microlink.io"},B={INVALID_URL:"ENOVALIDURL",FAILED:"EFAILED"};var K=function({VERSION:e,MicrolinkError:t,isUrlHttp:r,stringify:a,got:o,flatten:s}){const n=(e={})=>{const t=s(e);return Object.keys(t).reduce((e,r)=>({...e,[`data.${r}`]:t[r]}),{})},i=(e,{rules:t,apiKey:r,endpoint:o,...s}={})=>{const i=!!r;return[`${o||V[i?"PRO":"FREE"]}?${a({url:e,...n(t),...s})}`,{headers:i?{"x-api-key":r}:{}}]},c=async(e,{encoding:a="utf8",cache:s=null,retry:n=3,timeout:c=25e3,json:l=!0,...u}={})=>{((e="")=>{if(!r(e))throw new t({code:B.INVALID_URL,message:`The URL \`${e}\` is not valid. Ensure it has protocol (http or https) and hostname.`})})(e);const[d,{headers:p}]=i(e,u);return(async(e,r)=>{try{const a=await o(e,r),{body:s}=a;return{...s,response:a}}catch(e){const r=e.statusCode||500,a=e.body?e.body.message:e.message,o=e.body?e.body.status:"fail";throw t({...e,status:o,message:a,statusCode:r,code:B.FAILED})}})(d,{encoding:a,cache:s,retry:n,timeout:c,headers:p,json:l})};return c.MicrolinkError=t,c.apiUrl=i,c.mapRules=n,c.version=e,c},W=u(_);const Z=y("MicrolinkError"),{encode:J}=W;return K({MicrolinkError:Z,isUrlHttp:e=>{try{return new T(e)&&L.test(e)&&q.test(e)}catch(e){return!1}},stringify:J,got:async(e,{json:t,headers:r,cache:a,...o})=>{try{const t=await D(e,o),r=await t.json(),{headers:a,status:s,statusText:n}=t;return{url:t.url,body:r,headers:a,statusCode:s,statusMessage:n}}catch(e){throw e.body=e.response?await e.response.json():"",e.statusCode=e.response.status,e.headers=e.response.headers,e}},flatten:H,VERSION:"0.3.6"})}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("url")):"function"==typeof define&&define.amd?define(["url"],t):(e=e||self).mql=t(e.url)}(this,function(e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var t=Object.freeze({default:e=>e});const o=(e,t)=>{for(const o of Reflect.ownKeys(t))Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o));return e};var r=o,a=o;r.default=a;var n={isFunction:e=>"function"==typeof e,isString:e=>"string"==typeof e,composeErrorMessage:(e,t)=>`${e}, ${t}`,inherits:(e,t)=>{e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}};const{isFunction:s,composeErrorMessage:i}=n;var c=function(e,...t){Object.assign(e,...t),e.description=s(e.message)?e.message(e):e.message,e.message=e.code?i(e.code,e.description):e.description},l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function u(e){return e&&e.default||e}var p=u(t);const{isString:d}=n;var h=function(e,t){function o(o){const r=new e,a=d(o)?{message:o}:o;return c(r,t,a),r.stack=p(r.stack),r}return o.prototype=e.prototype,r(o,e),o};const{inherits:f}=n,m=/[^0-9a-zA-Z_$]/;var g=function(e){if("string"!=typeof e)throw new TypeError("Expected className to be a string");if(m.test(e))throw new Error("className contains invalid characters");function t(){Object.defineProperty(this,"name",{configurable:!0,value:e,writable:!0}),Error.captureStackTrace(this,this.constructor)}return f(t,Error),r(t,Error),t};const b=e=>(t,o)=>{const r=g(t||e.name);return h(r,o)};var y=b(Error),w=b(TypeError),v=b(RangeError),k=b(EvalError),x=b(SyntaxError),j=b(ReferenceError),_=b(URIError);function $(e){if(!e)return"";var t=decodeURIComponent(e);return"false"!==t&&("true"===t||(0*+t==0?+t:t))}y.type=w,y.range=v,y.eval=k,y.syntax=x,y.reference=j,y.uri=_;var E=Object.freeze({encode:function(e,t){var o,r,a,n="";for(o in e)if(void 0!==(a=e[o]))if(Array.isArray(a))for(r=0;r<a.length;r++)n&&(n+="&"),n+=encodeURIComponent(o)+"="+encodeURIComponent(a[r]);else n&&(n+="&"),n+=encodeURIComponent(o)+"="+encodeURIComponent(a);return(t||"")+n},decode:function(e){for(var t,o,r={},a=e.split("&");t=a.shift();)void 0!==r[o=(t=t.split("=")).shift()]?r[o]=[].concat(r[o],$(t.shift())):r[o]=$(t.shift());return r}});const R=e=>e&&e.includeBoundaries?"(?:(?<=\\s|^)(?=[a-fA-F\\d:])|(?<=[a-fA-F\\d:])(?=\\s|$))":"",z="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",O="[a-fA-F\\d]{1,4}",U=`\n(\n(?:${O}:){7}(?:${O}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${O}:){6}(?:${z}|:${O}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${O}:){5}(?::${z}|(:${O}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${O}:){4}(?:(:${O}){0,1}:${z}|(:${O}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${O}:){3}(?:(:${O}){0,2}:${z}|(:${O}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${O}:){2}(?:(:${O}){0,3}:${z}|(:${O}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${O}:){1}(?:(:${O}){0,4}:${z}|(:${O}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::((?::${O}){0,5}:${z}|(?::${O}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),S=e=>e&&e.exact?new RegExp(`(?:^${z}$)|(?:^${U}$)`):new RegExp(`(?:${R(e)}${z}${R(e)})|(?:${R(e)}${U}${R(e)})`,"g");S.v4=(e=>e&&e.exact?new RegExp(`^${z}$`):new RegExp(`${R(e)}${z}${R(e)}`,"g")),S.v6=(e=>e&&e.exact?new RegExp(`^${U}$`):new RegExp(`${R(e)}${U}${R(e)}`,"g"));var A=S,T=["aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","active","actor","ad","adac","ads","adult","ae","aeg","aero","aetna","af","afamilycompany","afl","africa","ag","agakhan","agency","ai","aig","aigo","airbus","airforce","airtel","akdn","al","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blanco","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnl","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","budapest","bugatti","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","cartier","casa","case","caseih","cash","casino","cat","catering","catholic","cba","cbn","cbre","cbs","cc","cd","ceb","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","chase","chat","cheap","chintai","christmas","chrome","chrysler","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","coop","corsica","country","coupon","coupons","courses","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dodge","dog","doha","domains","dot","download","drive","dtv","dubai","duck","dunlop","duns","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epost","epson","equipment","er","ericsson","erni","es","esq","estate","esurance","et","etisalat","eu","eurovision","eus","events","everbank","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glade","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodhands","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","guardian","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","honeywell","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","industries","infiniti","info","ing","ink","institute","insurance","insure","int","intel","international","intuit","investments","io","ipiranga","iq","ir","irish","is","iselect","ismaili","ist","istanbul","it","itau","itv","iveco","iwc","jaguar","java","jcb","jcp","je","jeep","jetzt","jewelry","jio","jlc","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerrylogistics","kerryproperties","kfh","kg","kh","ki","kia","kim","kinder","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","ladbrokes","lamborghini","lamer","lancaster","lancia","lancome","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","liaison","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","lixil","lk","llc","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","lupin","luxe","luxury","lv","ly","ma","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","meo","merckmsd","metlife","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","mobily","moda","moe","moi","mom","monash","money","monster","mopar","mormon","mortgage","moscow","moto","motorcycles","mov","movie","movistar","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","mutual","mv","mw","mx","my","mz","na","nab","nadex","nagoya","name","nationwide","natura","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","newholland","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","northwesternmutual","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","off","office","okinawa","olayan","olayangroup","oldnavy","ollo","om","omega","one","ong","onl","online","onyourside","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","panerai","paris","pars","partners","parts","party","passagens","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","piaget","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","pramerica","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","qvc","racing","radio","raid","re","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","rightathome","ril","rio","rip","rmit","ro","rocher","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sapo","sarl","sas","save","saxo","sb","sbi","sbs","sc","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scjohnson","scor","scot","sd","se","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","shriram","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","space","spiegel","sport","spot","spreadbetting","sr","srl","srt","st","stada","staples","star","starhub","statebank","statefarm","statoil","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiftcover","swiss","sx","sy","sydney","symantec","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","telecity","telefonica","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","uconnect","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","vista","vistaprint","viva","vivo","vlaanderen","vn","vodka","volkswagen","volvo","vote","voting","voto","voyage","vu","vuelos","wales","walmart","walter","wang","wanggou","warman","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","ಭಾರತ","慈善","集团","在线","한국","ଭାରତ","大众汽车","点看","คอม","ভাৰত","ভারত","八卦","موقع","বাংলা","公益","公司","香格里拉","网站","移动","我爱你","москва","қаз","католик","онлайн","сайт","联通","срб","бг","бел","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","삼성","சிங்கப்பூர்","商标","商店","商城","дети","мкд","ею","ポイント","新闻","工行","家電","كوم","中文网","中信","中国","中國","娱乐","谷歌","భారత్","ලංකා","電訊盈科","购物","クラウド","ભારત","通販","भारतम्","भारत","भारोत","网店","संगठन","餐厅","网络","ком","укр","香港","诺基亚","食品","飞利浦","台湾","台灣","手表","手机","мон","الجزائر","عمان","ارامكو","ایران","العليان","اتصالات","امارات","بازار","پاکستان","الاردن","موبايلي","بارت","بھارت","المغرب","ابوظبي","السعودية","ڀارت","كاثوليك","سودان","همراه","عراق","مليسيا","澳門","닷컴","政府","شبكة","بيتك","عرب","გე","机构","组织机构","健康","ไทย","سورية","招聘","рус","рф","珠宝","تونس","大拿","みんな","グーグル","ελ","世界","書籍","ഭാരതം","ਭਾਰਤ","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","مصر","قطر","广东","இலங்கை","இந்தியா","հայ","新加坡","فلسطين","政务","xperia","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zippo","zm","zone","zuerich","zw"];const P=l.window?window.URL:e.URL,q=(e=>{const t=`(?:${`(?:(?:[a-z]+:)?//)${(e={strict:!0,...e}).strict?"":"?"}`}|www\\.)(?:\\S+(?::\\S*)?@)?(?:localhost|${A.v4().source}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*${`(?:\\.${e.strict?"(?:[a-z\\u00a1-\\uffff]{2,})":`(?:${T.sort((e,t)=>t.length-e.length).join("|")})`})\\.?`})(?::\\d{2,5})?(?:[/?#][^\\s"]*)?`;return e.exact?new RegExp(`(?:^${t}$)`,"i"):new RegExp(t,"ig")})({exact:!0}),C=/^https?:\/\//i;var L,D,I=(function(e,t){!function(e){const t=e=>"undefined"!=typeof self&&self&&e in self?self[e]:"undefined"!=typeof window&&window&&e in window?window[e]:void 0!==l&&l&&e in l?l[e]:"undefined"!=typeof globalThis&&globalThis?globalThis[e]:void 0,o=t("document"),r=t("Headers"),a=t("Response"),n=t("ReadableStream"),s=t("fetch"),i=t("AbortController"),c=t("FormData"),u=e=>null!==e&&"object"==typeof e,p="function"==typeof i,d="function"==typeof n,h="function"==typeof c,f=(...e)=>{let t={};for(const o of e)if(Array.isArray(o))Array.isArray(t)||(t=[]),t=[...t,...o];else if(u(o))for(let[e,r]of Object.entries(o))u(r)&&Reflect.has(t,e)&&(r=f(t[e],r)),t={...t,[e]:r};return t},m=["get","post","put","patch","head","delete"],g={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},b=new Set(["get","put","head","delete","options","trace"]),y=new Set([408,413,429,500,502,503,504]),w=new Set([413,429,503]);class v extends Error{constructor(e){super(e.statusText),this.name="HTTPError",this.response=e}}class k extends Error{constructor(){super("Request timed out"),this.name="TimeoutError"}}const x=e=>new Promise((t,o)=>{e>2147483647?o(new RangeError("The `timeout` option cannot be greater than 2147483647")):setTimeout(t,e)}),j=(e,t,o)=>new Promise((r,a)=>{e.then(r).catch(a),x(t).then(()=>{p&&o.abort(),a(new k)}).catch(a)}),_=e=>m.includes(e)?e.toUpperCase():e;class ${constructor(e,{timeout:t=1e4,hooks:n,throwHttpErrors:s=!0,searchParams:l,json:u,...m}){if(this._retryCount=0,this._options={method:"get",credentials:"same-origin",retry:2,...m},p&&(this.abortController=new i,this._options.signal&&this._options.signal.addEventListener("abort",()=>{this.abortController.abort()}),this._options.signal=this.abortController.signal),this._options.method=_(this._options.method),this._options.prefixUrl=String(this._options.prefixUrl||""),this._input=String(e||""),this._options.prefixUrl&&this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");if(this._options.prefixUrl&&!this._options.prefixUrl.endsWith("/")&&(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input,l){const e=new URL(this._input,o&&o.baseURI);if("string"==typeof l||URLSearchParams&&l instanceof URLSearchParams)e.search=l;else{if(!Object.values(l).every(e=>"number"==typeof e||"string"==typeof e))throw new Error("The `searchParams` option must be either a string, `URLSearchParams` instance or an object with string and number values");e.search=new URLSearchParams(l).toString()}this._input=e.toString()}this._timeout=t,this._hooks=f({beforeRequest:[],afterResponse:[]},n),this._throwHttpErrors=s;const y=new r(this._options.headers||{});if((h&&this._options.body instanceof c||this._options.body instanceof URLSearchParams)&&y.has("content-type"))throw new Error(`The \`content-type\` header cannot be used with a ${this._options.body.constructor.name} body. It will be set automatically.`);if(u){if(this._options.body)throw new Error("The `json` option cannot be used with the `body` option");y.set("content-type","application/json"),this._options.body=JSON.stringify(u)}this._options.headers=y;const w=async()=>{await x(1);let e=await this._fetch();for(const t of this._hooks.afterResponse){const o=await t(e.clone());o instanceof a&&(e=o)}if(!e.ok&&this._throwHttpErrors)throw new v(e);if(this._options.onDownloadProgress){if("function"!=typeof this._options.onDownloadProgress)throw new TypeError("The `onDownloadProgress` option must be a function");if(!d)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return this._stream(e.clone(),this._options.onDownloadProgress)}return e},k=b.has(this._options.method.toLowerCase()),j=k?this._retry(w):w();for(const[e,t]of Object.entries(g))j[e]=(async()=>(y.set("accept",t),(await j).clone()[e]()));return j}_calculateRetryDelay(e){if(this._retryCount++,this._retryCount<this._options.retry&&!(e instanceof k)){if(e instanceof v){if(!y.has(e.response.status))return 0;const t=e.response.headers.get("Retry-After");if(t&&w.has(e.response.status)){let e=Number(t);return Number.isNaN(e)?e=Date.parse(t)-Date.now():e*=1e3,e}if(413===e.response.status)return 0}const t=.3;return t*2**(this._retryCount-1)*1e3}return 0}async _retry(e){try{return await e()}catch(t){const o=this._calculateRetryDelay(t);if(0!==o&&this._retryCount>0)return await x(o),this._retry(e);if(this._throwHttpErrors)throw t}}async _fetch(){for(const e of this._hooks.beforeRequest)await e(this._options);return!1===this._timeout?s(this._input,this._options):j(s(this._input,this._options),this._timeout,this.abortController)}_stream(e,t){const o=Number(e.headers.get("content-length"))||0;let r=0;return new a(new n({start(a){const n=e.body.getReader();t&&t({percent:0,transferredBytes:0,totalBytes:o},new Uint8Array),async function e(){const{done:s,value:i}=await n.read();if(s)a.close();else{if(t){r+=i.byteLength;const e=0===o?0:r/o;t({percent:e,transferredBytes:r,totalBytes:o},i)}a.enqueue(i),e()}}()}}))}}const E=(...e)=>{for(const t of e)if((!u(t)||Array.isArray(t))&&void 0!==t)throw new TypeError("The `options` argument must be an object");return f({},...e)},R=e=>{const t=(t,o)=>new $(t,E(e,o));for(const o of m)t[o]=((t,r)=>new $(t,E(e,r,{method:o})));return t.create=(e=>R(E(e))),t.extend=(t=>R(E(e,t))),t};var z=R();e.HTTPError=v,e.TimeoutError=k,e.default=z,Object.defineProperty(e,"__esModule",{value:!0})}(t)}(L={exports:{}},L.exports),L.exports);(D=I)&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")&&D.default;var N=I.default,F=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},H=M;function M(e,t){var o=(t=t||{}).delimiter||".",r=t.maxDepth,a={};return function e(n,s,i){i=i||1,Object.keys(n).forEach(function(c){var l=n[c],u=t.safe&&Array.isArray(l),p=Object.prototype.toString.call(l),d=F(l),h=s?s+o+c:c;if(!u&&!d&&("[object Object]"===p||"[object Array]"===p)&&Object.keys(l).length&&(!t.maxDepth||i<r))return e(l,h,i+1);a[h]=l})}(e),a}M.flatten=M,M.unflatten=function e(t,o){o=o||{};var r=o.delimiter||".";var a=o.overwrite||!1;var n={};var s=F(t);if(s||"[object Object]"!==Object.prototype.toString.call(t))return t;function i(e){var t=Number(e);return isNaN(t)||-1!==e.indexOf(".")||o.object?e:t}var c=Object.keys(t).sort(function(e,t){return e.length-t.length});c.forEach(function(s){for(var c=s.split(r),l=i(c.shift()),u=i(c[0]),p=n;void 0!==u;){var d=Object.prototype.toString.call(p[l]),h="[object Object]"===d||"[object Array]"===d;if(!a&&!h&&void 0!==p[l])return;(a&&!h||!a&&null==p[l])&&(p[l]="number"!=typeof u||o.object?{}:[]),p=p[l],c.length>0&&(l=i(c.shift()),u=i(c[0]))}p[l]=e(t[s],o)});return n};const B={FREE:"https://api.microlink.io",PRO:"https://pro.microlink.io"},V={INVALID_URL:"ENOVALIDURL",FAILED:"EFAILED"};var J=function({VERSION:e,MicrolinkError:t,isUrlHttp:o,stringify:r,got:a,flatten:n}){const s=(e={})=>{const t=n(e);return Object.keys(t).reduce((e,o)=>({...e,[`data.${o}`]:t[o]}),{})},i=(e,{rules:t,apiKey:o,endpoint:a,...n}={})=>{const i=!!o;return[`${a||B[i?"PRO":"FREE"]}?${r({url:e,...s(t),...n})}`,{headers:i?{"x-api-key":o}:{}}]},c=async(e,{encoding:r="utf8",cache:n=null,retry:s=3,timeout:c=25e3,json:l=!0,...u}={})=>{((e="")=>{if(!o(e))throw new t({code:V.INVALID_URL,message:`The URL \`${e}\` is not valid. Ensure it has protocol (http or https) and hostname.`})})(e);const[p,{headers:d}]=i(e,u);return(async(e,o)=>{try{const r=await a(e,o),{body:n}=r;return{...n,response:r}}catch(e){const o=e.body?JSON.parse(e.body):{message:e.message,status:"fail"},{statusCode:r=500}=e;throw t({...o,statusCode:r,code:V.FAILED})}})(p,{encoding:r,cache:n,retry:s,timeout:c,headers:d,json:l})};return c.MicrolinkError=t,c.apiUrl=i,c.mapRules=s,c.version=e,c},K=u(E);const W=y("MicrolinkError"),{encode:Z}=K;return J({MicrolinkError:W,isUrlHttp:e=>{try{return new P(e)&&C.test(e)&&q.test(e)}catch(e){return!1}},stringify:Z,got:async(e,{json:t,headers:o,cache:r,...a})=>{try{const t=await N(e,a),o=await t.json(),{headers:r,status:n,statusText:s}=t;return{url:t.url,body:o,headers:r,statusCode:n,statusMessage:s}}catch(e){throw e.body=e.response?await e.response.json():"",e.statusCode=e.response.status,e.headers=e.response.headers,e}},flatten:H,VERSION:"0.3.7"})}); | ||
//# sourceMappingURL=mql.min.js.map |
@@ -5,3 +5,3 @@ { | ||
"homepage": "https://nicedoc.io/microlinkhq/mql", | ||
"version": "0.3.7", | ||
"version": "0.3.8", | ||
"browser": "src/browser.js", | ||
@@ -32,4 +32,4 @@ "main": "src/node.js", | ||
"is-url-http": "~1.2.0", | ||
"ky": "~0.10.0", | ||
"ky-universal": "~0.2.0", | ||
"ky": "~0.11.0", | ||
"ky-universal": "~0.2.1", | ||
"qss": "~2.0.3", | ||
@@ -36,0 +36,0 @@ "whoops": "~4.0.2" |
@@ -42,13 +42,5 @@ const ENDPOINT = { | ||
} catch (err) { | ||
const statusCode = err.statusCode || 500 | ||
const message = err.body ? err.body.message : err.message | ||
const status = err.body ? err.body.status : 'fail' | ||
throw MicrolinkError({ | ||
...err, | ||
status, | ||
message, | ||
statusCode, | ||
code: ERRORS_CODE.FAILED | ||
}) | ||
const body = err.body ? JSON.parse(err.body) : { message: err.message, status: 'fail' } | ||
const { statusCode = 500 } = err | ||
throw MicrolinkError({ ...body, statusCode, code: ERRORS_CODE.FAILED }) | ||
} | ||
@@ -55,0 +47,0 @@ } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
252390
2502
+ Addedky@0.11.2(transitive)
- Removedky@0.10.0(transitive)
Updatedky@~0.11.0
Updatedky-universal@~0.2.1