UNPKG

@pollyjs/adapter

Version:

Extendable base adapter class used by @pollyjs

3 lines (2 loc) 23.2 kB
"use strict";var utils=require("@pollyjs/utils"),_defined=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},_toObject=function(e){return Object(_defined(e))},hasOwnProperty={}.hasOwnProperty,_has=function(e,t){return hasOwnProperty.call(e,t)},toString={}.toString,_cof=function(e){return toString.call(e).slice(8,-1)},_iobject=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==_cof(e)?e.split(""):Object(e)},_toIobject=function(e){return _iobject(_defined(e))},ceil=Math.ceil,floor=Math.floor,_toInteger=function(e){return isNaN(e=+e)?0:(e>0?floor:ceil)(e)},min=Math.min,_toLength=function(e){return e>0?min(_toInteger(e),9007199254740991):0},max=Math.max,min$1=Math.min,_toAbsoluteIndex=function(e,t){return(e=_toInteger(e))<0?max(e+t,0):min$1(e,t)},_arrayIncludes=function(e){return function(t,r,o){var n,i=_toIobject(t),s=_toLength(i.length),c=_toAbsoluteIndex(o,s);if(e&&r!=r){for(;s>c;)if((n=i[c++])!=n)return!0}else for(;s>c;c++)if((e||c in i)&&i[c]===r)return e||c||0;return!e&&-1}};function unwrapExports(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function createCommonjsModule(e,t){return e(t={exports:{}},t.exports),t.exports}var _core=createCommonjsModule((function(e){var t=e.exports={version:"2.6.9"};"number"==typeof __e&&(__e=t)})),_core_1=_core.version,_global=createCommonjsModule((function(e){var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)})),_library=!0,_shared=createCommonjsModule((function(e){var t=_global["__core-js_shared__"]||(_global["__core-js_shared__"]={});(e.exports=function(e,r){return t[e]||(t[e]=void 0!==r?r:{})})("versions",[]).push({version:_core.version,mode:"pure",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})})),id=0,px=Math.random(),_uid=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++id+px).toString(36))},shared=_shared("keys"),_sharedKey=function(e){return shared[e]||(shared[e]=_uid(e))},arrayIndexOf=_arrayIncludes(!1),IE_PROTO=_sharedKey("IE_PROTO"),_objectKeysInternal=function(e,t){var r,o=_toIobject(e),n=0,i=[];for(r in o)r!=IE_PROTO&&_has(o,r)&&i.push(r);for(;t.length>n;)_has(o,r=t[n++])&&(~arrayIndexOf(i,r)||i.push(r));return i},_enumBugKeys="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),_objectKeys=Object.keys||function(e){return _objectKeysInternal(e,_enumBugKeys)},_aFunction=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e},_ctx=function(e,t,r){if(_aFunction(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,o){return e.call(t,r,o)};case 3:return function(r,o,n){return e.call(t,r,o,n)}}return function(){return e.apply(t,arguments)}},_isObject=function(e){return"object"==typeof e?null!==e:"function"==typeof e},_anObject=function(e){if(!_isObject(e))throw TypeError(e+" is not an object!");return e},_fails=function(e){try{return!!e()}catch(e){return!0}},_descriptors=!_fails((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})),document=_global.document,is=_isObject(document)&&_isObject(document.createElement),_domCreate=function(e){return is?document.createElement(e):{}},_ie8DomDefine=!_descriptors&&!_fails((function(){return 7!=Object.defineProperty(_domCreate("div"),"a",{get:function(){return 7}}).a})),_toPrimitive=function(e,t){if(!_isObject(e))return e;var r,o;if(t&&"function"==typeof(r=e.toString)&&!_isObject(o=r.call(e)))return o;if("function"==typeof(r=e.valueOf)&&!_isObject(o=r.call(e)))return o;if(!t&&"function"==typeof(r=e.toString)&&!_isObject(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")},dP=Object.defineProperty,f=_descriptors?Object.defineProperty:function(e,t,r){if(_anObject(e),t=_toPrimitive(t,!0),_anObject(r),_ie8DomDefine)try{return dP(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e},_objectDp={f:f},_propertyDesc=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},_hide=_descriptors?function(e,t,r){return _objectDp.f(e,t,_propertyDesc(1,r))}:function(e,t,r){return e[t]=r,e},PROTOTYPE="prototype",$export=function(e,t,r){var o,n,i,s=e&$export.F,c=e&$export.G,a=e&$export.S,u=e&$export.P,p=e&$export.B,l=e&$export.W,f=c?_core:_core[t]||(_core[t]={}),_=f[PROTOTYPE],y=c?_global:a?_global[t]:(_global[t]||{})[PROTOTYPE];for(o in c&&(r=t),r)(n=!s&&y&&void 0!==y[o])&&_has(f,o)||(i=n?y[o]:r[o],f[o]=c&&"function"!=typeof y[o]?r[o]:p&&n?_ctx(i,_global):l&&y[o]==i?function(e){var t=function(t,r,o){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,o)}return e.apply(this,arguments)};return t[PROTOTYPE]=e[PROTOTYPE],t}(i):u&&"function"==typeof i?_ctx(Function.call,i):i,u&&((f.virtual||(f.virtual={}))[o]=i,e&$export.R&&_&&!_[o]&&_hide(_,o,i)))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128;var _export=$export,_objectSap=function(e,t){var r=(_core.Object||{})[e]||Object[e],o={};o[e]=t(r),_export(_export.S+_export.F*_fails((function(){r(1)})),"Object",o)};_objectSap("keys",(function(){return function(e){return _objectKeys(_toObject(e))}}));var keys=_core.Object.keys,keys$1=keys,_redefine=_hide,_meta=createCommonjsModule((function(e){var t=_uid("meta"),r=_objectDp.f,o=0,n=Object.isExtensible||function(){return!0},i=!_fails((function(){return n(Object.preventExtensions({}))})),s=function(e){r(e,t,{value:{i:"O"+ ++o,w:{}}})},c=e.exports={KEY:t,NEED:!1,fastKey:function(e,r){if(!_isObject(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!_has(e,t)){if(!n(e))return"F";if(!r)return"E";s(e)}return e[t].i},getWeak:function(e,r){if(!_has(e,t)){if(!n(e))return!0;if(!r)return!1;s(e)}return e[t].w},onFreeze:function(e){return i&&c.NEED&&n(e)&&!_has(e,t)&&s(e),e}}})),_meta_1=_meta.KEY,_meta_2=_meta.NEED,_meta_3=_meta.fastKey,_meta_4=_meta.getWeak,_meta_5=_meta.onFreeze,_wks=createCommonjsModule((function(e){var t=_shared("wks"),r=_global.Symbol,o="function"==typeof r;(e.exports=function(e){return t[e]||(t[e]=o&&r[e]||(o?r:_uid)("Symbol."+e))}).store=t})),def=_objectDp.f,TAG=_wks("toStringTag"),_setToStringTag=function(e,t,r){e&&!_has(e=r?e:e.prototype,TAG)&&def(e,TAG,{configurable:!0,value:t})},f$1=_wks,_wksExt={f:f$1},defineProperty=_objectDp.f,_wksDefine=function(e){var t=_core.Symbol||(_core.Symbol={});"_"==e.charAt(0)||e in t||defineProperty(t,e,{value:_wksExt.f(e)})},f$2=Object.getOwnPropertySymbols,_objectGops={f:f$2},f$3={}.propertyIsEnumerable,_objectPie={f:f$3},_enumKeys=function(e){var t=_objectKeys(e),r=_objectGops.f;if(r)for(var o,n=r(e),i=_objectPie.f,s=0;n.length>s;)i.call(e,o=n[s++])&&t.push(o);return t},_isArray=Array.isArray||function(e){return"Array"==_cof(e)},_objectDps=_descriptors?Object.defineProperties:function(e,t){_anObject(e);for(var r,o=_objectKeys(t),n=o.length,i=0;n>i;)_objectDp.f(e,r=o[i++],t[r]);return e},document$1=_global.document,_html=document$1&&document$1.documentElement,IE_PROTO$1=_sharedKey("IE_PROTO"),Empty=function(){},PROTOTYPE$1="prototype",createDict=function(){var e,t=_domCreate("iframe"),r=_enumBugKeys.length;for(t.style.display="none",_html.appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),createDict=e.F;r--;)delete createDict[PROTOTYPE$1][_enumBugKeys[r]];return createDict()},_objectCreate=Object.create||function(e,t){var r;return null!==e?(Empty[PROTOTYPE$1]=_anObject(e),r=new Empty,Empty[PROTOTYPE$1]=null,r[IE_PROTO$1]=e):r=createDict(),void 0===t?r:_objectDps(r,t)},hiddenKeys=_enumBugKeys.concat("length","prototype"),f$4=Object.getOwnPropertyNames||function(e){return _objectKeysInternal(e,hiddenKeys)},_objectGopn={f:f$4},gOPN=_objectGopn.f,toString$1={}.toString,windowNames="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],getWindowNames=function(e){try{return gOPN(e)}catch(e){return windowNames.slice()}},f$5=function(e){return windowNames&&"[object Window]"==toString$1.call(e)?getWindowNames(e):gOPN(_toIobject(e))},_objectGopnExt={f:f$5},gOPD=Object.getOwnPropertyDescriptor,f$6=_descriptors?gOPD:function(e,t){if(e=_toIobject(e),t=_toPrimitive(t,!0),_ie8DomDefine)try{return gOPD(e,t)}catch(e){}if(_has(e,t))return _propertyDesc(!_objectPie.f.call(e,t),e[t])},_objectGopd={f:f$6},META=_meta.KEY,gOPD$1=_objectGopd.f,dP$1=_objectDp.f,gOPN$1=_objectGopnExt.f,$Symbol=_global.Symbol,$JSON=_global.JSON,_stringify=$JSON&&$JSON.stringify,PROTOTYPE$2="prototype",HIDDEN=_wks("_hidden"),TO_PRIMITIVE=_wks("toPrimitive"),isEnum={}.propertyIsEnumerable,SymbolRegistry=_shared("symbol-registry"),AllSymbols=_shared("symbols"),OPSymbols=_shared("op-symbols"),ObjectProto=Object[PROTOTYPE$2],USE_NATIVE="function"==typeof $Symbol&&!!_objectGops.f,QObject=_global.QObject,setter=!QObject||!QObject[PROTOTYPE$2]||!QObject[PROTOTYPE$2].findChild,setSymbolDesc=_descriptors&&_fails((function(){return 7!=_objectCreate(dP$1({},"a",{get:function(){return dP$1(this,"a",{value:7}).a}})).a}))?function(e,t,r){var o=gOPD$1(ObjectProto,t);o&&delete ObjectProto[t],dP$1(e,t,r),o&&e!==ObjectProto&&dP$1(ObjectProto,t,o)}:dP$1,wrap=function(e){var t=AllSymbols[e]=_objectCreate($Symbol[PROTOTYPE$2]);return t._k=e,t},isSymbol=USE_NATIVE&&"symbol"==typeof $Symbol.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof $Symbol},$defineProperty=function(e,t,r){return e===ObjectProto&&$defineProperty(OPSymbols,t,r),_anObject(e),t=_toPrimitive(t,!0),_anObject(r),_has(AllSymbols,t)?(r.enumerable?(_has(e,HIDDEN)&&e[HIDDEN][t]&&(e[HIDDEN][t]=!1),r=_objectCreate(r,{enumerable:_propertyDesc(0,!1)})):(_has(e,HIDDEN)||dP$1(e,HIDDEN,_propertyDesc(1,{})),e[HIDDEN][t]=!0),setSymbolDesc(e,t,r)):dP$1(e,t,r)},$defineProperties=function(e,t){_anObject(e);for(var r,o=_enumKeys(t=_toIobject(t)),n=0,i=o.length;i>n;)$defineProperty(e,r=o[n++],t[r]);return e},$create=function(e,t){return void 0===t?_objectCreate(e):$defineProperties(_objectCreate(e),t)},$propertyIsEnumerable=function(e){var t=isEnum.call(this,e=_toPrimitive(e,!0));return!(this===ObjectProto&&_has(AllSymbols,e)&&!_has(OPSymbols,e))&&(!(t||!_has(this,e)||!_has(AllSymbols,e)||_has(this,HIDDEN)&&this[HIDDEN][e])||t)},$getOwnPropertyDescriptor=function(e,t){if(e=_toIobject(e),t=_toPrimitive(t,!0),e!==ObjectProto||!_has(AllSymbols,t)||_has(OPSymbols,t)){var r=gOPD$1(e,t);return!r||!_has(AllSymbols,t)||_has(e,HIDDEN)&&e[HIDDEN][t]||(r.enumerable=!0),r}},$getOwnPropertyNames=function(e){for(var t,r=gOPN$1(_toIobject(e)),o=[],n=0;r.length>n;)_has(AllSymbols,t=r[n++])||t==HIDDEN||t==META||o.push(t);return o},$getOwnPropertySymbols=function(e){for(var t,r=e===ObjectProto,o=gOPN$1(r?OPSymbols:_toIobject(e)),n=[],i=0;o.length>i;)!_has(AllSymbols,t=o[i++])||r&&!_has(ObjectProto,t)||n.push(AllSymbols[t]);return n};USE_NATIVE||(_redefine(($Symbol=function(){if(this instanceof $Symbol)throw TypeError("Symbol is not a constructor!");var e=_uid(arguments.length>0?arguments[0]:void 0),t=function(r){this===ObjectProto&&t.call(OPSymbols,r),_has(this,HIDDEN)&&_has(this[HIDDEN],e)&&(this[HIDDEN][e]=!1),setSymbolDesc(this,e,_propertyDesc(1,r))};return _descriptors&&setter&&setSymbolDesc(ObjectProto,e,{configurable:!0,set:t}),wrap(e)})[PROTOTYPE$2],"toString",(function(){return this._k})),_objectGopd.f=$getOwnPropertyDescriptor,_objectDp.f=$defineProperty,_objectGopn.f=_objectGopnExt.f=$getOwnPropertyNames,_objectPie.f=$propertyIsEnumerable,_objectGops.f=$getOwnPropertySymbols,_descriptors&&!_library&&_redefine(ObjectProto,"propertyIsEnumerable",$propertyIsEnumerable,!0),_wksExt.f=function(e){return wrap(_wks(e))}),_export(_export.G+_export.W+_export.F*!USE_NATIVE,{Symbol:$Symbol});for(var es6Symbols="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),j=0;es6Symbols.length>j;)_wks(es6Symbols[j++]);for(var wellKnownSymbols=_objectKeys(_wks.store),k=0;wellKnownSymbols.length>k;)_wksDefine(wellKnownSymbols[k++]);_export(_export.S+_export.F*!USE_NATIVE,"Symbol",{for:function(e){return _has(SymbolRegistry,e+="")?SymbolRegistry[e]:SymbolRegistry[e]=$Symbol(e)},keyFor:function(e){if(!isSymbol(e))throw TypeError(e+" is not a symbol!");for(var t in SymbolRegistry)if(SymbolRegistry[t]===e)return t},useSetter:function(){setter=!0},useSimple:function(){setter=!1}}),_export(_export.S+_export.F*!USE_NATIVE,"Object",{create:$create,defineProperty:$defineProperty,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor,getOwnPropertyNames:$getOwnPropertyNames,getOwnPropertySymbols:$getOwnPropertySymbols});var FAILS_ON_PRIMITIVES=_fails((function(){_objectGops.f(1)}));_export(_export.S+_export.F*FAILS_ON_PRIMITIVES,"Object",{getOwnPropertySymbols:function(e){return _objectGops.f(_toObject(e))}}),$JSON&&_export(_export.S+_export.F*(!USE_NATIVE||_fails((function(){var e=$Symbol();return"[null]"!=_stringify([e])||"{}"!=_stringify({a:e})||"{}"!=_stringify(Object(e))}))),"JSON",{stringify:function(e){for(var t,r,o=[e],n=1;arguments.length>n;)o.push(arguments[n++]);if(r=t=o[1],(_isObject(t)||void 0!==e)&&!isSymbol(e))return _isArray(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!isSymbol(t))return t}),o[1]=t,_stringify.apply($JSON,o)}}),$Symbol[PROTOTYPE$2][TO_PRIMITIVE]||_hide($Symbol[PROTOTYPE$2],TO_PRIMITIVE,$Symbol[PROTOTYPE$2].valueOf),_setToStringTag($Symbol,"Symbol"),_setToStringTag(Math,"Math",!0),_setToStringTag(_global.JSON,"JSON",!0);var getOwnPropertySymbols=_core.Object.getOwnPropertySymbols,getOwnPropertySymbols$1=getOwnPropertySymbols,$getOwnPropertyDescriptor$1=_objectGopd.f;_objectSap("getOwnPropertyDescriptor",(function(){return function(e,t){return $getOwnPropertyDescriptor$1(_toIobject(e),t)}}));var $Object=_core.Object,getOwnPropertyDescriptor=function(e,t){return $Object.getOwnPropertyDescriptor(e,t)},getOwnPropertyDescriptor$1=getOwnPropertyDescriptor,Reflect=_global.Reflect,_ownKeys=Reflect&&Reflect.ownKeys||function(e){var t=_objectGopn.f(_anObject(e)),r=_objectGops.f;return r?t.concat(r(e)):t},_createProperty=function(e,t,r){t in e?_objectDp.f(e,t,_propertyDesc(0,r)):e[t]=r};_export(_export.S,"Object",{getOwnPropertyDescriptors:function(e){for(var t,r,o=_toIobject(e),n=_objectGopd.f,i=_ownKeys(o),s={},c=0;i.length>c;)void 0!==(r=n(o,t=i[c++]))&&_createProperty(s,t,r);return s}});var getOwnPropertyDescriptors=_core.Object.getOwnPropertyDescriptors,getOwnPropertyDescriptors$1=getOwnPropertyDescriptors;_export(_export.S+_export.F*!_descriptors,"Object",{defineProperties:_objectDps});var $Object$1=_core.Object,defineProperties=function(e,t){return $Object$1.defineProperties(e,t)},defineProperties$1=defineProperties;_export(_export.S+_export.F*!_descriptors,"Object",{defineProperty:_objectDp.f});var $Object$2=_core.Object,defineProperty$1=function(e,t,r){return $Object$2.defineProperty(e,t,r)},defineProperty$2=defineProperty$1,defineProperty$3=createCommonjsModule((function(e){e.exports=function(e,t,r){return t in e?defineProperty$2(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.default=e.exports,e.exports.__esModule=!0})),_defineProperty=unwrapExports(defineProperty$3);_wksDefine("asyncIterator"),_wksDefine("observable");var symbol=_core.Symbol,symbol$1=symbol,$JSON$1=_core.JSON||(_core.JSON={stringify:JSON.stringify}),stringify=function(e){return $JSON$1.stringify.apply($JSON$1,arguments)},stringify$1=stringify,_stringWs="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff",space="["+_stringWs+"]",non="​…",ltrim=RegExp("^"+space+space+"*"),rtrim=RegExp(space+space+"*$"),exporter=function(e,t,r){var o={},n=_fails((function(){return!!_stringWs[e]()||non[e]()!=non})),i=o[e]=n?t(trim):_stringWs[e];r&&(o[r]=i),_export(_export.P+_export.F*n,"String",o)},trim=exporter.trim=function(e,t){return e=String(_defined(e)),1&t&&(e=e.replace(ltrim,"")),2&t&&(e=e.replace(rtrim,"")),e},_stringTrim=exporter,$parseFloat=_global.parseFloat,$trim=_stringTrim.trim,_parseFloat=1/$parseFloat(_stringWs+"-0")!=-1/0?function(e){var t=$trim(String(e),3),r=$parseFloat(t);return 0===r&&"-"==t.charAt(0)?-0:r}:$parseFloat;_export(_export.G+_export.F*(parseFloat!=_parseFloat),{parseFloat:_parseFloat});var _parseFloat$1=_core.parseFloat,_parseFloat$2=_parseFloat$1;const ALPHA_NUMERIC_DOT=/([0-9.]+)([a-zA-Z]+)/g,TIMES={ms:1,millisecond:1,milliseconds:1,s:1e3,sec:1e3,secs:1e3,second:1e3,seconds:1e3,m:6e4,min:6e4,mins:6e4,minute:6e4,minutes:6e4,h:36e5,hr:36e5,hrs:36e5,hour:36e5,hours:36e5,d:864e5,day:864e5,days:864e5,w:6048e5,wk:6048e5,wks:6048e5,week:6048e5,weeks:6048e5,y:31536e6,yr:31536e6,yrs:31536e6,year:31536e6,years:31536e6};function dehumanizeTime(e){if("string"!=typeof e)return NaN;return e.replace(/ /g,"").match(ALPHA_NUMERIC_DOT).map(e=>e.split(ALPHA_NUMERIC_DOT).filter(e=>e)).reduce((e,[t,r])=>e+_parseFloat$2(t)*TIMES[r],0)}function isExpired(e,t){return!(!e||!t)&&new Date>new Date(new Date(e).getTime()+dehumanizeTime(t))}function ownKeys(e,t){var r=keys$1(e);if(getOwnPropertySymbols$1){var o=getOwnPropertySymbols$1(e);t&&(o=o.filter((function(t){return getOwnPropertyDescriptor$1(e,t).enumerable}))),r.push.apply(r,o)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach((function(t){_defineProperty(e,t,r[t])})):getOwnPropertyDescriptors$1?defineProperties$1(e,getOwnPropertyDescriptors$1(r)):ownKeys(Object(r)).forEach((function(t){defineProperty$2(e,t,getOwnPropertyDescriptor$1(r,t))}))}return e}function stringifyRequest(e,...t){const r=_objectSpread({},e.config);return["adapter","adapterOptions","persister","persisterOptions"].forEach(e=>delete r[e]),stringify$1({url:e.url,method:e.method,headers:e.headers,body:e.body,recordingName:e.recordingName,id:e.id,order:e.order,identifiers:e.identifiers,config:r},...t)}const{isArray:isArray}=Array;function normalizeRecordedResponse(e){const{status:t,statusText:r,headers:o,content:n}=e;return{statusText:r,statusCode:t,headers:normalizeHeaders(o),body:n&&n.text,encoding:n&&n.encoding}}function normalizeHeaders(e){return(e||[]).reduce((e,{name:t,value:r,_fromType:o})=>{const n=e[t];return n?(isArray(n)||(e[t]=[n]),e[t].push(r)):e[t]="array"===o?[r]:r,e},{})}function ownKeys$1(e,t){var r=keys$1(e);if(getOwnPropertySymbols$1){var o=getOwnPropertySymbols$1(e);t&&(o=o.filter((function(t){return getOwnPropertyDescriptor$1(e,t).enumerable}))),r.push.apply(r,o)}return r}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(r),!0).forEach((function(t){_defineProperty(e,t,r[t])})):getOwnPropertyDescriptors$1?defineProperties$1(e,getOwnPropertyDescriptors$1(r)):ownKeys$1(Object(r)).forEach((function(t){defineProperty$2(e,t,getOwnPropertyDescriptor$1(r,t))}))}return e}const REQUEST_HANDLER=symbol$1();class Adapter{constructor(e){this.polly=e,this.isConnected=!1}static get type(){return"adapter"}static get id(){utils.assert("Must override the static `id` getter.")}get defaultOptions(){return{}}get options(){return _objectSpread$1(_objectSpread$1({},this.defaultOptions||{}),(this.polly.config.adapterOptions||{})[this.constructor.id]||{})}get persister(){return this.polly.persister}connect(){this.isConnected||(this.onConnect(),this.isConnected=!0,this.polly.logger.log.debug(`Connected to ${this.constructor.id} adapter.`))}onConnect(){this.assert("Must implement the `onConnect` hook.")}disconnect(){this.isConnected&&(this.onDisconnect(),this.isConnected=!1,this.polly.logger.log.debug(`Disconnected from ${this.constructor.id} adapter.`))}onDisconnect(){this.assert("Must implement the `onDisconnect` hook.")}timeout(e,{time:t}){const{timing:r}=e.config;if("function"==typeof r)return r(t)}async handleRequest(e){const t=this.polly.registerRequest(e);try{if(t.on("identify",(...e)=>this.onIdentifyRequest(...e)),await this.onRequest(t),await t.init(),await this[REQUEST_HANDLER](t),t.aborted)throw new utils.PollyError("Request aborted.");await this.onRequestFinished(t)}catch(e){await this.onRequestFailed(t,e)}return t}async[REQUEST_HANDLER](e){const{mode:t}=this.polly,{_interceptor:r}=e;if(!(e.aborted||e.shouldIntercept&&(await this.intercept(e,r),r.shouldIntercept)))return t===utils.MODES.PASSTHROUGH||e.shouldPassthrough||r.shouldPassthrough?this.passthrough(e):(this.assert("A persister must be configured in order to record and replay requests.",!!this.persister),t===utils.MODES.RECORD?this.record(e):t===utils.MODES.REPLAY?this.replay(e):void this.assert("Unhandled request: \n"+stringifyRequest(e,null,2)))}async passthrough(e){return e.action=utils.ACTIONS.PASSTHROUGH,this.onPassthrough(e)}async onPassthrough(e){const t=await this.onFetchResponse(e);await e.respond(t)}async intercept(e,t){if(e.action=utils.ACTIONS.INTERCEPT,await e._intercept(t),t.shouldIntercept)return this.onIntercept(e,e.response)}async onIntercept(e,t){await e.respond(t)}async record(e){return e.action=utils.ACTIONS.RECORD,"navigator"in global&&!navigator.onLine&&e.log.warn("[Polly] Recording may fail because the browser is offline.\n"+stringifyRequest(e)),this.onRecord(e)}async onRecord(e){await this.onPassthrough(e),e.aborted||await this.persister.recordRequest(e)}async replay(e){const{config:t}=e,r=await this.persister.findEntry(e);if(r){const o=JSON.parse(stringify$1(r));if(await e._emit("beforeReplay",o),isExpired(o.startedDateTime,t.expiresIn)){const r="Recording for the following request has expired.\n"+stringifyRequest(e,null,2);switch(t.expiryStrategy){case utils.EXPIRY_STRATEGIES.RECORD:return this.record(e);case utils.EXPIRY_STRATEGIES.ERROR:this.assert(r);break;case utils.EXPIRY_STRATEGIES.WARN:e.log.warn("[Polly] "+r);break;default:this.assert(`Invalid config option passed for "expiryStrategy": "${t.expiryStrategy}"`)}}return await this.timeout(e,o),e.action=utils.ACTIONS.REPLAY,this.onReplay(e,normalizeRecordedResponse(o.response),o)}if(t.recordIfMissing)return this.record(e);this.assert("Recording for the following request is not found and `recordIfMissing` is `false`.\n"+stringifyRequest(e,null,2))}async onReplay(e,t){await e.respond(t)}assert(e,...t){utils.assert(`[${this.constructor.type}:${this.constructor.id}] ${e}`,...t)}onRequest(){}async onIdentifyRequest(e){const{identifiers:t}=e;for(const e of["blob","formData","buffer"])t.body=await utils.Serializers[e](t.body)}async onRequestFinished(e){await this.onRespond(e),e.promise.resolve()}async onRequestFailed(e,t){const{aborted:r}=e;t=t||new utils.PollyError("Request failed due to an unknown error.");try{r?await e._emit("abort"):await e._emit("error",t),await this.onRespond(e,t)}finally{e.promise.reject(t)}}async onRespond(){}async onFetchResponse(){this.assert("Must implement the `onFetchResponse` hook.")}}module.exports=Adapter; //# sourceMappingURL=pollyjs-adapter.min.js.map