Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@microlink/mql

Package Overview
Dependencies
Maintainers
1
Versions
202
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@microlink/mql - npm Package Compare versions

Comparing version 0.4.4 to 0.5.0

4

CHANGELOG.md

@@ -5,2 +5,6 @@ # Changelog

## [0.5.0](https://github.com/microlinkhq/mql/compare/v0.4.5...v0.5.0) (2019-10-08)
### [0.4.5](https://github.com/microlinkhq/mql/compare/v0.4.4...v0.4.5) (2019-09-28)
### [0.4.4](https://github.com/microlinkhq/mql/compare/v1.0.22...v0.4.4) (2019-09-26)

@@ -7,0 +11,0 @@

185

dist/mql.js

@@ -1807,36 +1807,67 @@ (function (global, factory) {

const getGlobal = property => {
/* istanbul ignore next */
if (typeof self !== 'undefined' && self && property in self) {
return self[property];
}
const globals = {};
/* istanbul ignore next */
if (typeof window !== 'undefined' && window && property in window) {
return window[property];
}
{
const getGlobal = property => {
let parent;
if (typeof commonjsGlobal !== 'undefined' && commonjsGlobal && property in commonjsGlobal) {
return commonjsGlobal[property];
}
/* istanbul ignore next */
if (typeof self !== 'undefined' && self && property in self) {
parent = self;
}
/* istanbul ignore next */
if (typeof globalThis !== 'undefined' && globalThis) {
return globalThis[property];
/* istanbul ignore next */
if (typeof window !== 'undefined' && window && property in window) {
parent = window;
}
if (typeof commonjsGlobal !== 'undefined' && commonjsGlobal && property in commonjsGlobal) {
parent = commonjsGlobal;
}
/* istanbul ignore next */
if (typeof globalThis !== 'undefined' && globalThis) {
parent = globalThis;
}
if (typeof parent === 'undefined') {
return;
}
const globalProperty = parent[property];
if (typeof globalProperty === 'function') {
return globalProperty.bind(parent);
}
return globalProperty;
};
const globalProperties = [
'document',
'Headers',
'Request',
'Response',
'ReadableStream',
'fetch',
'AbortController',
'FormData'
];
const props = {};
for (const property of globalProperties) {
props[property] = {
get() {
return getGlobal(property);
}
};
}
};
const document = getGlobal('document');
const Headers = getGlobal('Headers');
const Request = getGlobal('Request');
const Response = getGlobal('Response');
const ReadableStream = getGlobal('ReadableStream');
const fetch = getGlobal('fetch');
const AbortController = getGlobal('AbortController');
const FormData = getGlobal('FormData');
Object.defineProperties(globals, props);
}
const isObject = value => value !== null && typeof value === 'object';
const supportsAbortController = typeof AbortController === 'function';
const supportsStreams = typeof ReadableStream === 'function';
const supportsFormData = typeof FormData === 'function';
const supportsAbortController = typeof globals.AbortController === 'function';
const supportsStreams = typeof globals.ReadableStream === 'function';
const supportsFormData = typeof globals.FormData === 'function';

@@ -1957,2 +1988,34 @@ const deepMerge = (...sources) => {

const defaultRetryOptions = {
limit: 2,
methods: retryMethods,
statusCodes: retryStatusCodes,
afterStatusCodes: retryAfterStatusCodes
};
const normalizeRetryOptions = retry => {
if (typeof retry === 'number') {
return {
...defaultRetryOptions,
limit: retry
};
}
if (retry.methods && !Array.isArray(retry.methods)) {
throw new Error('retry.methods must be an array');
}
if (retry.statusCodes && !Array.isArray(retry.statusCodes)) {
throw new Error('retry.statusCodes must be an array');
}
return {
...defaultRetryOptions,
...retry,
methods: retry.methods ? new Set(retry.methods) : defaultRetryOptions.methods,
statusCodes: retry.statusCodes ? new Set(retry.statusCodes) : defaultRetryOptions.statusCodes,
afterStatusCodes: retryAfterStatusCodes
};
};
class Ky {

@@ -1965,2 +2028,3 @@ constructor(input, {

json,
retry = {},
...otherOptions

@@ -1973,7 +2037,7 @@ }) {

credentials: 'same-origin', // TODO: This can be removed when the spec change is implemented in all browsers. Context: https://www.chromestatus.com/feature/4539473312350208
retry: 2,
retry: normalizeRetryOptions(retry),
...otherOptions
};
if (input instanceof Request) {
if (input instanceof globals.Request) {
this._input = input;

@@ -2004,3 +2068,3 @@

if (searchParams) {
const url = new URL(this._input, document && document.baseURI);
const url = new URL(this._input, globals.document && globals.document.baseURI);
if (typeof searchParams === 'string' || (URLSearchParams && searchParams instanceof URLSearchParams)) {

@@ -2019,3 +2083,3 @@ url.search = searchParams;

if (supportsAbortController) {
this.abortController = new AbortController();
this.abortController = new globals.AbortController();
if (this._options.signal) {

@@ -2035,2 +2099,3 @@ this._options.signal.addEventListener('abort', () => {

beforeRequest: [],
beforeRetry: [],
afterResponse: []

@@ -2040,5 +2105,5 @@ }, hooks);

const headers = new Headers(this._options.headers || {});
const headers = new globals.Headers(this._options.headers || {});
if (((supportsFormData && this._options.body instanceof FormData) || this._options.body instanceof URLSearchParams) && headers.has('content-type')) {
if (((supportsFormData && this._options.body instanceof globals.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.`);

@@ -2064,5 +2129,9 @@ }

// eslint-disable-next-line no-await-in-loop
const modifiedResponse = await hook(response.clone());
const modifiedResponse = await hook(
this._input,
this._options,
response.clone()
);
if (modifiedResponse instanceof Response) {
if (modifiedResponse instanceof globals.Response) {
response = modifiedResponse;

@@ -2093,3 +2162,3 @@ }

const isRetriableMethod = retryMethods.has(this._options.method.toLowerCase());
const isRetriableMethod = this._options.retry.methods.has(this._options.method.toLowerCase());
const result = isRetriableMethod ? this._retry(fn) : fn();

@@ -2110,5 +2179,5 @@

if (this._retryCount < this._options.retry && !(error instanceof TimeoutError)) {
if (this._retryCount < this._options.retry.limit && !(error instanceof TimeoutError)) {
if (error instanceof HTTPError) {
if (!retryStatusCodes.has(error.response.status)) {
if (!this._options.retry.statusCodes.has(error.response.status)) {
return 0;

@@ -2118,3 +2187,3 @@ }

const retryAfter = error.response.headers.get('Retry-After');
if (retryAfter && retryAfterStatusCodes.has(error.response.status)) {
if (retryAfter && this._options.retry.afterStatusCodes.has(error.response.status)) {
let after = Number(retryAfter);

@@ -2127,2 +2196,6 @@ if (Number.isNaN(after)) {

if (typeof this._options.retry.maxRetryAfter !== 'undefined' && after > this._options.retry.maxRetryAfter) {
return 0;
}
return after;

@@ -2150,2 +2223,13 @@ }

await delay(ms);
for (const hook of this._hooks.beforeRetry) {
// eslint-disable-next-line no-await-in-loop
await hook(
this._input,
this._options,
error,
this._retryCount,
);
}
return this._retry(fn);

@@ -2163,10 +2247,14 @@ }

// eslint-disable-next-line no-await-in-loop
await hook(this._options);
const result = await hook(this._input, this._options);
if (result instanceof Response) {
return result;
}
}
if (this._timeout === false) {
return fetch(this._input, this._options);
return globals.fetch(this._input, this._options);
}
return timeout(fetch(this._input, this._options), this._timeout, this.abortController);
return timeout(globals.fetch(this._input, this._options), this._timeout, this.abortController);
}

@@ -2179,4 +2267,4 @@

return new Response(
new ReadableStream({
return new globals.Response(
new globals.ReadableStream({
start(controller) {

@@ -2456,3 +2544,3 @@ const reader = response.body.getReader();

const getApiUrl = (url, { rules, apiKey, endpoint, ...opts } = {}) => {
const getApiUrl = (url, { data, apiKey, endpoint, ...opts } = {}) => {
const isPro = !!apiKey;

@@ -2463,3 +2551,3 @@ const apiEndpoint = endpoint || ENDPOINT[isPro ? 'PRO' : 'FREE'];

url: url,
...mapRules(rules),
...mapRules(data),
...opts

@@ -2497,3 +2585,4 @@ })}`;

mql.MicrolinkError = MicrolinkError;
mql.apiUrl = getApiUrl;
mql.getApiUrl = getApiUrl;
mql.fetchFromApi = fetchFromApi;
mql.mapRules = mapRules;

@@ -2540,3 +2629,3 @@ mql.version = VERSION;

flatten: flat,
VERSION: '0.4.4'
VERSION: '0.5.0'
});

@@ -2543,0 +2632,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 o=r,a=r;o.default=a;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 o=new e,a=p(r)?{message:r}:r;return c(o,t,a),o.stack=d(o.stack),o}return r.prototype=e.prototype,o(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),o(t,Error),t};const b=e=>(t,r)=>{const o=g(t||e.name);return h(o,r)};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 r,o,a,s="";for(r in e)if(void 0!==(a=e[r]))if(Array.isArray(a))for(o=0;o<a.length;o++)s&&(s+="&"),s+=encodeURIComponent(r)+"="+encodeURIComponent(a[o]);else s&&(s+="&"),s+=encodeURIComponent(r)+"="+encodeURIComponent(a);return(t||"")+s},decode:function(e){for(var t,r,o={},a=e.split("&");t=a.shift();)void 0!==o[r=(t=t.split("=")).shift()]?o[r]=[].concat(o[r],$(t.shift())):o[r]=$(t.shift());return o}});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}",T="[a-fA-F\\d]{1,4}",O=`\n(\n(?:${T}:){7}(?:${T}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${T}:){6}(?:${z}|:${T}|:)| // 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(?:${T}:){5}(?::${z}|(:${T}){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(?:${T}:){4}(?:(:${T}){0,1}:${z}|(:${T}){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(?:${T}:){3}(?:(:${T}){0,2}:${z}|(:${T}){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(?:${T}:){2}(?:(:${T}){0,3}:${z}|(:${T}){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(?:${T}:){1}(?:(:${T}){0,4}:${z}|(:${T}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::((?::${T}){0,5}:${z}|(?::${T}){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(),U=e=>e&&e.exact?new RegExp(`(?:^${z}$)|(?:^${O}$)`):new RegExp(`(?:${R(e)}${z}${R(e)})|(?:${R(e)}${O}${R(e)})`,"g");U.v4=e=>e&&e.exact?new RegExp(`^${z}$`):new RegExp(`${R(e)}${z}${R(e)}`,"g"),U.v6=e=>e&&e.exact?new RegExp(`^${O}$`):new RegExp(`${R(e)}${O}${R(e)}`,"g");var S=U,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 P=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}),A=/^https?:\/\//i;var N,I=function(e,t){return e(t={exports:{}},t.exports),t.exports}(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"),o=t("Headers"),a=t("Request"),s=t("Response"),n=t("ReadableStream"),i=t("fetch"),c=t("AbortController"),u=t("FormData"),d=e=>null!==e&&"object"==typeof e,p="function"==typeof c,h="function"==typeof n,f="function"==typeof u,m=(...e)=>{let t={};for(const r of e)if(Array.isArray(r))Array.isArray(t)||(t=[]),t=[...t,...r];else if(d(r))for(let[e,o]of Object.entries(r))d(o)&&Reflect.has(t,e)&&(o=m(t[e],o)),t={...t,[e]:o};return t},g=["get","post","put","patch","head","delete"],b={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},y=new Set(["get","put","head","delete","options","trace"]),w=new Set([408,413,429,500,502,503,504]),v=new Set([413,429,503]);class k extends Error{constructor(e){super(e.statusText),this.name="HTTPError",this.response=e}}class x extends Error{constructor(){super("Request timed out"),this.name="TimeoutError"}}const j=(e,t,r)=>(r>2147483647&&t(new RangeError("The `timeout` option cannot be greater than 2147483647")),setTimeout(e,r)),_=e=>new Promise((t,r)=>j(t,r,e)),$=(e,t,r)=>new Promise((o,a)=>{const s=j(()=>{p&&r.abort(),a(new x)},a,t);e.then(o).catch(a).then(()=>{clearTimeout(s)})}),E=e=>g.includes(e)?e.toUpperCase():e;class R{constructor(e,{timeout:t=1e4,hooks:n,throwHttpErrors:i=!0,searchParams:l,json:d,...g}){if(this._retryCount=0,this._options={method:"get",credentials:"same-origin",retry:2,...g},e instanceof a)this._input=e,this._options={...this._options,method:g.method||e.method,headers:g.headers||e.headers,body:g.body||e.body,credentials:g.credentials||e.credentials};else{if(this._input=String(e||""),this._options.prefixUrl=String(this._options.prefixUrl||""),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()}}p&&(this.abortController=new c,this._options.signal&&this._options.signal.addEventListener("abort",()=>{this.abortController.abort()}),this._options.signal=this.abortController.signal),this._options.method=E(this._options.method),this._timeout=t,this._hooks=m({beforeRequest:[],afterResponse:[]},n),this._throwHttpErrors=i;const w=new o(this._options.headers||{});if((f&&this._options.body instanceof u||this._options.body instanceof URLSearchParams)&&w.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(d){if(this._options.body)throw new Error("The `json` option cannot be used with the `body` option");w.set("content-type","application/json"),this._options.body=JSON.stringify(d)}this._options.headers=w;const v=async()=>{await _(1);let e=await this._fetch();for(const t of this._hooks.afterResponse){const r=await t(e.clone());r instanceof s&&(e=r)}if(!e.ok&&this._throwHttpErrors)throw new k(e);if(this._options.onDownloadProgress){if("function"!=typeof this._options.onDownloadProgress)throw new TypeError("The `onDownloadProgress` option must be a function");if(!h)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return this._stream(e.clone(),this._options.onDownloadProgress)}return e},x=y.has(this._options.method.toLowerCase())?this._retry(v):v();for(const[e,t]of Object.entries(b))x[e]=async()=>(w.set("accept",t),(await x).clone()[e]());return x}_calculateRetryDelay(e){if(this._retryCount++,this._retryCount<this._options.retry&&!(e instanceof x)){if(e instanceof k){if(!w.has(e.response.status))return 0;const t=e.response.headers.get("Retry-After");if(t&&v.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}return.3*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 _(r),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?i(this._input,this._options):$(i(this._input,this._options),this._timeout,this.abortController)}_stream(e,t){const r=Number(e.headers.get("content-length"))||0;let o=0;return new s(new n({start(a){const s=e.body.getReader();t&&t({percent:0,transferredBytes:0,totalBytes:r},new Uint8Array),async function e(){const{done:n,value:i}=await s.read();n?a.close():(t&&(o+=i.byteLength,t({percent:0===r?0:o/r,transferredBytes:o,totalBytes:r},i)),a.enqueue(i),e())}()}}))}}const z=(...e)=>{for(const t of e)if((!d(t)||Array.isArray(t))&&void 0!==t)throw new TypeError("The `options` argument must be an object");return m({},...e)},T=e=>{const t=(t,r)=>new R(t,z(e,r));for(const r of g)t[r]=(t,o)=>new R(t,z(e,o,{method:r}));return t.create=e=>T(z(e)),t.extend=t=>T(z(e,t)),t};var O=T();e.HTTPError=k,e.TimeoutError=x,e.default=O,Object.defineProperty(e,"__esModule",{value:!0})}(t)});(N=I)&&N.__esModule&&Object.prototype.hasOwnProperty.call(N,"default")&&N.default;var L=I,D=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},M=B;function B(e,t){var r=(t=t||{}).delimiter||".",o=t.maxDepth,a={};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=D(l),h=n?n+r+c:c;if(!u&&!p&&("[object Object]"===d||"[object Array]"===d)&&Object.keys(l).length&&(!t.maxDepth||i<o))return e(l,h,i+1);a[h]=l})}(e),a}B.flatten=B,B.unflatten=function e(t,r){r=r||{};var o=r.delimiter||".";var a=r.overwrite||!1;var s={};var n=D(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(o),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(!a&&!h&&void 0!==d[l])return;(a&&!h||!a&&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 H={FREE:"https://api.microlink.io",PRO:"https://pro.microlink.io"},F=e=>"TimeoutError"===e.name||"HTTPError"===e.name&&"5"===e.statusCode.toString()[0]||"invalid-json"===e.type;var V=function({VERSION:e,MicrolinkError:t,isUrlHttp:r,stringify:o,got:a,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:a,...s}={})=>{const i=!!r;return[`${a||H[i?"PRO":"FREE"]}?${o({url:e,...n(t),...s})}`,{headers:i?{"x-api-key":r}:{}}]},c=async(e,{encoding:o="utf8",cache:s=!1,retry:n=2,timeout:c=3e4,json:l=!0,...u}={})=>{((e="")=>{if(!r(e)){const r=`The \`url\` as \`${e}\` is not valid. Ensure it has protocol (http or https) and hostname.`;throw new t({url:e,data:{url:r},status:"fail",code:"EINVALURLCLIENT",message:r,more:"https://microlink.io/docs/api/api-parameters/url"})}})(e);const[d,{headers:p}]=i(e,u);return(async(e,r,o)=>{try{const s=await a(r,o),{body:n}=s;return{...n,response:s}}catch(r){const{name:a,statusCode:s=500,body:n,message:i}=r;if(F(r)){const r=`The \`url\` as \`${e}\` reached timeout after ${o.retry.maxRetryAfter}ms.`;throw new t({url:e,data:{url:r},status:"fail",code:"TimeoutError"===a?"ETIMEOUTCLIENT":"ETIMEOUT",message:r,more:"https://microlink.io/docs/api/api-parameters/url",statusCode:s})}const c=n?"string"==typeof n||Buffer.isBuffer(n)?JSON.parse(n):n:{message:i,status:"fail"},l=c.data?c.data[Object.keys(c.data)[0]]:c.message;throw t({...c,message:l,url:e,statusCode:s})}})(e,d,{encoding:o,cache:s,retry:n,timeout:c,headers:p,json:l})};return c.MicrolinkError=t,c.apiUrl=i,c.mapRules=n,c.version=e,c.stream=a.stream,c},J=u(E);const K=y("MicrolinkError"),{encode:W}=J,{default:Z}=L;return V({MicrolinkError:K,isUrlHttp:e=>{try{return new P(e)&&A.test(e)&&q.test(e)}catch(e){return!1}},stringify:W,got:async(e,{json:t,cache:r,...o})=>{try{const t=await Z(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.response&&(e.body=await e.response.json(),e.statusCode=e.response.status,e.headers=e.response.headers),e}},flatten:M,VERSION:"0.4.4"})});
!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 o=r,a=r;o.default=a;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:h}=s;var p=function(e,t){function r(r){const o=new e,a=h(r)?{message:r}:r;return c(o,t,a),o.stack=d(o.stack),o}return r.prototype=e.prototype,o(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),o(t,Error),t};const b=e=>(t,r)=>{const o=g(t||e.name);return p(o,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,o,a,s="";for(r in e)if(void 0!==(a=e[r]))if(Array.isArray(a))for(o=0;o<a.length;o++)s&&(s+="&"),s+=encodeURIComponent(r)+"="+encodeURIComponent(a[o]);else s&&(s+="&"),s+=encodeURIComponent(r)+"="+encodeURIComponent(a);return(t||"")+s},decode:function(e){for(var t,r,o={},a=e.split("&");t=a.shift();)void 0!==o[r=(t=t.split("=")).shift()]?o[r]=[].concat(o[r],E(t.shift())):o[r]=E(t.shift());return o}});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}",C="[a-fA-F\\d]{1,4}",T=`\n(\n(?:${C}:){7}(?:${C}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${C}:){6}(?:${z}|:${C}|:)| // 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(?:${C}:){5}(?::${z}|(:${C}){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(?:${C}:){4}(?:(:${C}){0,1}:${z}|(:${C}){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(?:${C}:){3}(?:(:${C}){0,2}:${z}|(:${C}){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(?:${C}:){2}(?:(:${C}){0,3}:${z}|(:${C}){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(?:${C}:){1}(?:(:${C}){0,4}:${z}|(:${C}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::((?::${C}){0,5}:${z}|(?::${C}){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(),O=e=>e&&e.exact?new RegExp(`(?:^${z}$)|(?:^${T}$)`):new RegExp(`(?:${R(e)}${z}${R(e)})|(?:${R(e)}${T}${R(e)})`,"g");O.v4=e=>e&&e.exact?new RegExp(`^${z}$`):new RegExp(`${R(e)}${z}${R(e)}`,"g"),O.v6=e=>e&&e.exact?new RegExp(`^${T}$`):new RegExp(`${R(e)}${T}${R(e)}`,"g");var S=O,A=["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 U=l.window?window.URL:e.URL,P=(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,})":`(?:${A.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}),q=/^https?:\/\//i;var N,D=function(e,t){return e(t={exports:{}},t.exports),t.exports}(function(e,t){!function(e){const t={};{const e=e=>{let t;if("undefined"!=typeof self&&self&&e in self&&(t=self),"undefined"!=typeof window&&window&&e in window&&(t=window),void 0!==l&&l&&e in l&&(t=l),"undefined"!=typeof globalThis&&globalThis&&(t=globalThis),void 0===t)return;const r=t[e];return"function"==typeof r?r.bind(t):r},r=["document","Headers","Request","Response","ReadableStream","fetch","AbortController","FormData"],o={};for(const t of r)o[t]={get:()=>e(t)};Object.defineProperties(t,o)}const r=e=>null!==e&&"object"==typeof e,o="function"==typeof t.AbortController,a="function"==typeof t.ReadableStream,s="function"==typeof t.FormData,n=(...e)=>{let t={};for(const o of e)if(Array.isArray(o))Array.isArray(t)||(t=[]),t=[...t,...o];else if(r(o))for(let[e,a]of Object.entries(o))r(a)&&Reflect.has(t,e)&&(a=n(t[e],a)),t={...t,[e]:a};return t},i=["get","post","put","patch","head","delete"],c={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},u=new Set(["get","put","head","delete","options","trace"]),d=new Set([408,413,429,500,502,503,504]),h=new Set([413,429,503]);class p extends Error{constructor(e){super(e.statusText),this.name="HTTPError",this.response=e}}class f extends Error{constructor(){super("Request timed out"),this.name="TimeoutError"}}const m=(e,t,r)=>(r>2147483647&&t(new RangeError("The `timeout` option cannot be greater than 2147483647")),setTimeout(e,r)),g=e=>new Promise((t,r)=>m(t,r,e)),b=(e,t,r)=>new Promise((a,s)=>{const n=m(()=>{o&&r.abort(),s(new f)},s,t);e.then(a).catch(s).then(()=>{clearTimeout(n)})}),y=e=>i.includes(e)?e.toUpperCase():e,w={limit:2,methods:u,statusCodes:d,afterStatusCodes:h},v=e=>{if("number"==typeof e)return{...w,limit:e};if(e.methods&&!Array.isArray(e.methods))throw new Error("retry.methods must be an array");if(e.statusCodes&&!Array.isArray(e.statusCodes))throw new Error("retry.statusCodes must be an array");return{...w,...e,methods:e.methods?new Set(e.methods):w.methods,statusCodes:e.statusCodes?new Set(e.statusCodes):w.statusCodes,afterStatusCodes:h}};class k{constructor(e,{timeout:r=1e4,hooks:i,throwHttpErrors:l=!0,searchParams:u,json:d,retry:h={},...f}){if(this._retryCount=0,this._options={method:"get",credentials:"same-origin",retry:v(h),...f},e instanceof t.Request)this._input=e,this._options={...this._options,method:f.method||e.method,headers:f.headers||e.headers,body:f.body||e.body,credentials:f.credentials||e.credentials};else{if(this._input=String(e||""),this._options.prefixUrl=String(this._options.prefixUrl||""),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,u){const e=new URL(this._input,t.document&&t.document.baseURI);if("string"==typeof u||URLSearchParams&&u instanceof URLSearchParams)e.search=u;else{if(!Object.values(u).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(u).toString()}this._input=e.toString()}}o&&(this.abortController=new t.AbortController,this._options.signal&&this._options.signal.addEventListener("abort",()=>{this.abortController.abort()}),this._options.signal=this.abortController.signal),this._options.method=y(this._options.method),this._timeout=r,this._hooks=n({beforeRequest:[],beforeRetry:[],afterResponse:[]},i),this._throwHttpErrors=l;const m=new t.Headers(this._options.headers||{});if((s&&this._options.body instanceof t.FormData||this._options.body instanceof URLSearchParams)&&m.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(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 g(1);let e=await this._fetch();for(const r of this._hooks.afterResponse){const o=await r(this._input,this._options,e.clone());o instanceof t.Response&&(e=o)}if(!e.ok&&this._throwHttpErrors)throw new p(e);if(this._options.onDownloadProgress){if("function"!=typeof this._options.onDownloadProgress)throw new TypeError("The `onDownloadProgress` option must be a function");if(!a)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return this._stream(e.clone(),this._options.onDownloadProgress)}return e},w=this._options.retry.methods.has(this._options.method.toLowerCase())?this._retry(b):b();for(const[e,t]of Object.entries(c))w[e]=async()=>(m.set("accept",t),(await w).clone()[e]());return w}_calculateRetryDelay(e){if(this._retryCount++,this._retryCount<this._options.retry.limit&&!(e instanceof f)){if(e instanceof p){if(!this._options.retry.statusCodes.has(e.response.status))return 0;const t=e.response.headers.get("Retry-After");if(t&&this._options.retry.afterStatusCodes.has(e.response.status)){let e=Number(t);return Number.isNaN(e)?e=Date.parse(t)-Date.now():e*=1e3,void 0!==this._options.retry.maxRetryAfter&&e>this._options.retry.maxRetryAfter?0:e}if(413===e.response.status)return 0}return.3*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){await g(r);for(const e of this._hooks.beforeRetry)await e(this._input,this._options,t,this._retryCount);return this._retry(e)}if(this._throwHttpErrors)throw t}}async _fetch(){for(const e of this._hooks.beforeRequest){const t=await e(this._input,this._options);if(t instanceof Response)return t}return!1===this._timeout?t.fetch(this._input,this._options):b(t.fetch(this._input,this._options),this._timeout,this.abortController)}_stream(e,r){const o=Number(e.headers.get("content-length"))||0;let a=0;return new t.Response(new t.ReadableStream({start(t){const s=e.body.getReader();r&&r({percent:0,transferredBytes:0,totalBytes:o},new Uint8Array),async function e(){const{done:n,value:i}=await s.read();n?t.close():(r&&(a+=i.byteLength,r({percent:0===o?0:a/o,transferredBytes:a,totalBytes:o},i)),t.enqueue(i),e())}()}}))}}const x=(...e)=>{for(const t of e)if((!r(t)||Array.isArray(t))&&void 0!==t)throw new TypeError("The `options` argument must be an object");return n({},...e)},j=e=>{const t=(t,r)=>new k(t,x(e,r));for(const r of i)t[r]=(t,o)=>new k(t,x(e,o,{method:r}));return t.create=e=>j(x(e)),t.extend=t=>j(x(e,t)),t};var _=j();e.HTTPError=p,e.TimeoutError=f,e.default=_,Object.defineProperty(e,"__esModule",{value:!0})}(t)});(N=D)&&N.__esModule&&Object.prototype.hasOwnProperty.call(N,"default")&&N.default;var I=D,L=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},F=H;function H(e,t){var r=(t=t||{}).delimiter||".",o=t.maxDepth,a={};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),h=L(l),p=n?n+r+c:c;if(!u&&!h&&("[object Object]"===d||"[object Array]"===d)&&Object.keys(l).length&&(!t.maxDepth||i<o))return e(l,p,i+1);a[p]=l})}(e),a}H.flatten=H,H.unflatten=function e(t,r){r=r||{};var o=r.delimiter||".";var a=r.overwrite||!1;var s={};var n=L(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(o),l=i(c.shift()),u=i(c[0]),d=s;void 0!==u;){var h=Object.prototype.toString.call(d[l]),p="[object Object]"===h||"[object Array]"===h;if(!a&&!p&&void 0!==d[l])return;(a&&!p||!a&&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 M={FREE:"https://api.microlink.io",PRO:"https://pro.microlink.io"},B=e=>"TimeoutError"===e.name||"HTTPError"===e.name&&"5"===e.statusCode.toString()[0]||"invalid-json"===e.type;var V=function({VERSION:e,MicrolinkError:t,isUrlHttp:r,stringify:o,got:a,flatten:s}){const n=(e={})=>{const t=s(e);return Object.keys(t).reduce((e,r)=>({...e,[`data.${r}`]:t[r]}),{})},i=async(e,r,o)=>{try{const s=await a(r,o),{body:n}=s;return{...n,response:s}}catch(r){const{name:a,statusCode:s=500,body:n,message:i}=r;if(B(r)){const r=`The \`url\` as \`${e}\` reached timeout after ${o.retry.maxRetryAfter}ms.`;throw new t({url:e,data:{url:r},status:"fail",code:"TimeoutError"===a?"ETIMEOUTCLIENT":"ETIMEOUT",message:r,more:"https://microlink.io/docs/api/api-parameters/url",statusCode:s})}const c=n?"string"==typeof n||Buffer.isBuffer(n)?JSON.parse(n):n:{message:i,status:"fail"},l=c.data?c.data[Object.keys(c.data)[0]]:c.message;throw t({...c,message:l,url:e,statusCode:s})}},c=(e,{data:t,apiKey:r,endpoint:a,...s}={})=>{const i=!!r;return[`${a||M[i?"PRO":"FREE"]}?${o({url:e,...n(t),...s})}`,{headers:i?{"x-api-key":r}:{}}]},l=async(e,{encoding:o="utf8",cache:a=!1,retry:s=2,timeout:n=3e4,json:l=!0,...u}={})=>{((e="")=>{if(!r(e)){const r=`The \`url\` as \`${e}\` is not valid. Ensure it has protocol (http or https) and hostname.`;throw new t({url:e,data:{url:r},status:"fail",code:"EINVALURLCLIENT",message:r,more:"https://microlink.io/docs/api/api-parameters/url"})}})(e);const[d,{headers:h}]=c(e,u);return i(e,d,{encoding:o,cache:a,retry:s,timeout:n,headers:h,json:l})};return l.MicrolinkError=t,l.getApiUrl=c,l.fetchFromApi=i,l.mapRules=n,l.version=e,l.stream=a.stream,l},J=u($);const K=y("MicrolinkError"),{encode:W}=J,{default:Z}=I;return V({MicrolinkError:K,isUrlHttp:e=>{try{return new U(e)&&q.test(e)&&P.test(e)}catch(e){return!1}},stringify:W,got:async(e,{json:t,cache:r,...o})=>{try{const t=await Z(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.response&&(e.body=await e.response.json(),e.statusCode=e.response.status,e.headers=e.response.headers),e}},flatten:F,VERSION:"0.5.0"})});
//# sourceMappingURL=mql.min.js.map

@@ -5,3 +5,3 @@ {

"homepage": "https://nicedoc.io/microlinkhq/mql",
"version": "0.4.4",
"version": "0.5.0",
"browser": "src/browser.js",

@@ -32,3 +32,3 @@ "main": "src/node.js",

"is-url-http": "~1.2.0",
"ky": "~0.14.0",
"ky": "~0.15.0",
"ky-universal": "~0.3.0",

@@ -87,3 +87,3 @@ "qss": "~2.0.3",

"release": "git-authors-cli && finepack && git add package.json && standard-version -a",
"release:build": "npm run build && git add dist/ && git commit -m \"build: generate bundle\"",
"release:build": "npm run build && git add dist/ && git commit -m \"build(no-release): generate bundle\"",
"release:github": "conventional-github-releaser -p angular",

@@ -90,0 +90,0 @@ "release:tags": "git push --follow-tags origin master",

@@ -85,3 +85,3 @@ const ENDPOINT = {

const getApiUrl = (url, { rules, apiKey, endpoint, ...opts } = {}) => {
const getApiUrl = (url, { data, apiKey, endpoint, ...opts } = {}) => {
const isPro = !!apiKey

@@ -92,3 +92,3 @@ const apiEndpoint = endpoint || ENDPOINT[isPro ? 'PRO' : 'FREE']

url: url,
...mapRules(rules),
...mapRules(data),
...opts

@@ -126,3 +126,4 @@ })}`

mql.MicrolinkError = MicrolinkError
mql.apiUrl = getApiUrl
mql.getApiUrl = getApiUrl
mql.fetchFromApi = fetchFromApi
mql.mapRules = mapRules

@@ -129,0 +130,0 @@ mql.version = VERSION

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc