clientnode 4.0.1428 → 4.0.1430
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Lock.js +100 -1
- package/dist/Logger.js +185 -1
- package/dist/Semaphore.js +65 -1
- package/dist/array.js +452 -1
- package/dist/cli.js +51 -1
- package/dist/constants.js +126 -1
- package/dist/context.js +40 -1
- package/dist/cookie.js +84 -1
- package/dist/data-transfer.js +216 -1
- package/dist/datetime.js +282 -1
- package/dist/domNode.js +331 -1
- package/dist/expression/evaluators.js +273 -1
- package/dist/expression/helper.js +97 -1
- package/dist/expression/index.js +26 -1
- package/dist/expression/indicator-functions.js +37 -1
- package/dist/expression/type.js +20 -0
- package/dist/filesystem.js +410 -1
- package/dist/function.js +75 -1
- package/dist/index.js +43 -1
- package/dist/indicators.js +121 -1
- package/dist/number.js +61 -1
- package/dist/object.js +934 -1
- package/dist/process.js +69 -1
- package/dist/property-types.js +115 -1
- package/dist/require.js +82 -1
- package/dist/scope.js +85 -1
- package/dist/string.js +806 -1
- package/dist/test-helper.js +341 -1
- package/dist/type.js +21 -1
- package/dist/utility.js +139 -1
- package/package.json +23 -22
- package/dist/Lock.d.ts +0 -39
- package/dist/Logger.d.ts +0 -102
- package/dist/Semaphore.d.ts +0 -29
- package/dist/array.d.ts +0 -150
- package/dist/bundle/Lock.js +0 -1
- package/dist/bundle/Logger.js +0 -1
- package/dist/bundle/Semaphore.js +0 -1
- package/dist/bundle/array.js +0 -1
- package/dist/bundle/cli.js +0 -1
- package/dist/bundle/constants.js +0 -1
- package/dist/bundle/context.js +0 -1
- package/dist/bundle/cookie.js +0 -1
- package/dist/bundle/data-transfer.js +0 -1
- package/dist/bundle/datetime.js +0 -1
- package/dist/bundle/domNode.js +0 -1
- package/dist/bundle/expression/evaluators.js +0 -1
- package/dist/bundle/expression/helper.js +0 -1
- package/dist/bundle/expression/index.js +0 -1
- package/dist/bundle/expression/indicator-functions.js +0 -1
- package/dist/bundle/expression/types.js +0 -1
- package/dist/bundle/filesystem.js +0 -1
- package/dist/bundle/function.js +0 -1
- package/dist/bundle/index.js +0 -1
- package/dist/bundle/indicators.js +0 -1
- package/dist/bundle/number.js +0 -1
- package/dist/bundle/object.js +0 -1
- package/dist/bundle/process.js +0 -1
- package/dist/bundle/property-types.js +0 -1
- package/dist/bundle/require.js +0 -1
- package/dist/bundle/scope.js +0 -1
- package/dist/bundle/string.js +0 -1
- package/dist/bundle/test-helper.js +0 -1
- package/dist/bundle/type.js +0 -1
- package/dist/bundle/utility.js +0 -1
- package/dist/cli.d.ts +0 -31
- package/dist/compatible/Lock.js +0 -1
- package/dist/compatible/Logger.js +0 -1
- package/dist/compatible/Semaphore.js +0 -1
- package/dist/compatible/array.js +0 -1
- package/dist/compatible/cli.js +0 -1
- package/dist/compatible/constants.js +0 -1
- package/dist/compatible/context.js +0 -1
- package/dist/compatible/cookie.js +0 -1
- package/dist/compatible/data-transfer.js +0 -1
- package/dist/compatible/datetime.js +0 -1
- package/dist/compatible/domNode.js +0 -1
- package/dist/compatible/expression/evaluators.js +0 -1
- package/dist/compatible/expression/helper.js +0 -1
- package/dist/compatible/expression/index.js +0 -1
- package/dist/compatible/expression/indicator-functions.js +0 -1
- package/dist/compatible/expression/types.js +0 -1
- package/dist/compatible/filesystem.js +0 -1
- package/dist/compatible/function.js +0 -1
- package/dist/compatible/index.js +0 -1
- package/dist/compatible/indicators.js +0 -1
- package/dist/compatible/number.js +0 -1
- package/dist/compatible/object.js +0 -1
- package/dist/compatible/process.js +0 -1
- package/dist/compatible/property-types.js +0 -1
- package/dist/compatible/require.js +0 -1
- package/dist/compatible/scope.js +0 -1
- package/dist/compatible/string.js +0 -1
- package/dist/compatible/test-helper.js +0 -1
- package/dist/compatible/type.js +0 -1
- package/dist/compatible/utility.js +0 -1
- package/dist/constants.d.ts +0 -99
- package/dist/context.d.ts +0 -9
- package/dist/cookie.d.ts +0 -31
- package/dist/data-transfer.d.ts +0 -45
- package/dist/datetime.d.ts +0 -37
- package/dist/domNode.d.ts +0 -82
- package/dist/expression/evaluators.d.ts +0 -55
- package/dist/expression/helper.d.ts +0 -4
- package/dist/expression/index.d.ts +0 -7
- package/dist/expression/indicator-functions.d.ts +0 -14
- package/dist/expression/types.d.ts +0 -70
- package/dist/expression/types.js +0 -1
- package/dist/filesystem.d.ts +0 -138
- package/dist/function.d.ts +0 -20
- package/dist/index.d.ts +0 -23
- package/dist/indicators.d.ts +0 -68
- package/dist/number.d.ts +0 -35
- package/dist/object.d.ts +0 -213
- package/dist/process.d.ts +0 -22
- package/dist/property-types.d.ts +0 -460
- package/dist/require.d.ts +0 -6
- package/dist/scope.d.ts +0 -44
- package/dist/string.d.ts +0 -299
- package/dist/test/Lock.d.ts +0 -1
- package/dist/test/Logger.d.ts +0 -1
- package/dist/test/Semaphore.d.ts +0 -1
- package/dist/test/array.d.ts +0 -1
- package/dist/test/cookie.d.ts +0 -1
- package/dist/test/data-transfer.d.ts +0 -1
- package/dist/test/datetime.d.ts +0 -1
- package/dist/test/domNode.d.ts +0 -1
- package/dist/test/expression/evaluators.d.ts +0 -1
- package/dist/test/expression/helper.d.ts +0 -1
- package/dist/test/expression/indicator-functions.d.ts +0 -1
- package/dist/test/filesystem.d.ts +0 -1
- package/dist/test/function.d.ts +0 -1
- package/dist/test/indicators.d.ts +0 -1
- package/dist/test/number.d.ts +0 -1
- package/dist/test/object.d.ts +0 -1
- package/dist/test/process.d.ts +0 -1
- package/dist/test/property-types.d.ts +0 -1
- package/dist/test/scope.d.ts +0 -1
- package/dist/test/string.d.ts +0 -1
- package/dist/test/utility.d.ts +0 -1
- package/dist/test-helper.d.ts +0 -143
- package/dist/type.d.ts +0 -211
- package/dist/utility.d.ts +0 -44
package/dist/data-transfer.js
CHANGED
|
@@ -1 +1,216 @@
|
|
|
1
|
-
"use strict";if("undefined"!=typeof module&&null!==module&&"undefined"!==eval("typeof require")&&null!==eval("require")&&"main"in eval("require")&&"undefined"!==eval("typeof require.main")&&null!==eval("require.main")){var ORIGINAL_MAIN_MODULE=module;module!==eval("require.main")&&"paths"in module&&"paths"in eval("require.main")&&"undefined"!=typeof __dirname&&null!==__dirname&&(module.paths=eval("require.main.paths").concat(module.paths.filter(function(path){return eval("require.main.paths").includes(path)})))}if(null==window)var window="undefined"==typeof global||null===global?{}:global;!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("@babel/runtime/helpers/extends"));else if("function"==typeof define&&define.amd)define(["@babel/runtime/helpers/asyncToGenerator","@babel/runtime/regenerator","@babel/runtime/helpers/extends"],r);else{var t="object"==typeof exports?r(require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("@babel/runtime/helpers/extends")):r(e["@babel/runtime/helpers/asyncToGenerator"],e["@babel/runtime/regenerator"],e["@babel/runtime/helpers/extends"]);for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(this,function(__WEBPACK_EXTERNAL_MODULE__11__,__WEBPACK_EXTERNAL_MODULE__12__,__WEBPACK_EXTERNAL_MODULE__3__){return function(){var __webpack_modules__=[function(e,r,t){t.d(r,{CLASS_TO_TYPE_MAPPING:function(){return o},IGNORE_NULL_AND_UNDEFINED_SYMBOL:function(){return n},PLAIN_OBJECT_PROTOTYPES:function(){return a}});Symbol.for("clientnodeValue");var n=Symbol.for("clientnodeIgnoreNullAndUndefined"),o={"[object Array]":"array","[object Boolean]":"boolean","[object Date]":"date","[object Error]":"error","[object Function]":"function","[object Map]":"map","[object Number]":"number","[object Object]":"object","[object RegExp]":"regexp","[object Set]":"set","[object String]":"string"},a=[Object.prototype]},function(e,r,t){t.d(r,{NOOP:function(){return u},globalContext:function(){return i}});var n,o,a=t(5);e=t.hmd(e);var i="undefined"==typeof globalThis?void 0===window?void 0===t.g?e:Object.prototype.hasOwnProperty.call(t.g,"window")?t.g.window:t.g:window:globalThis;i.fetch=i.fetch?i.fetch.bind(i):null!==(n=null==(o=(0,a.optionalRequire)("node-fetch"))?void 0:o.default)&&void 0!==n?n:function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];return a.currentImport?(0,a.currentImport)("node-fetch").then(function(e){var t;return(t=e).default.apply(t,r)}):null};var u=function(){}},function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var _extends,VALUE_COPY_SYMBOL,isMap,isSet,isObject,isPlainObject,isFunction,isProxy,isNumeric,isNotANumber,evaluate,escapeRegularExpressions;__webpack_require__.d(__webpack_exports__,{determineType:function(){return determineType},extend:function(){return _extend}});var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(3),_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__),_constants__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(0),_indicators__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(4);function _createForOfIteratorHelperLoose(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=_unsupportedIterableToArray(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,r){if(e){if("string"==typeof e)return _arrayLikeToArray(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,r):void 0}}function _arrayLikeToArray(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var _addDynamicGetterAndSetter=function(e,r,t,n,o,a){if(void 0===r&&(r=null),void 0===t&&(t=null),void 0===n&&(n={}),void 0===o&&(o=!0),void 0===a&&(a=[Object]),o&&"object"==typeof e)if(Array.isArray(e))for(var i,u=0,s=_createForOfIteratorHelperLoose(e);!(i=s()).done;){var c=i.value;e[u]=_addDynamicGetterAndSetter(c,r,t,n,o),u+=1}else if(isMap(e))for(var l,_=_createForOfIteratorHelperLoose(e);!(l=_()).done;){var f=l.value,p=f[0],d=f[1];e.set(p,_addDynamicGetterAndSetter(d,r,t,n,o))}else if(isSet(e)){for(var v,b=[],y=_createForOfIteratorHelperLoose(e);!(v=y()).done;){var O=v.value;e.delete(O),b.push(_addDynamicGetterAndSetter(O,r,t,n,o))}for(var h=0,g=b;h<g.length;h++){var m=g[h];e.add(m)}}else if(null!==e)for(var P=0,w=Object.entries(e);P<w.length;P++){var E=w[P],j=E[0],x=E[1];e[j]=_addDynamicGetterAndSetter(x,r,t,n,o)}if(r||t)for(var I,A,M=function(){var o=A.value;if(isObject(e)&&e instanceof o){var a=getProxyHandler(e,n),i=getProxyHandler(e,n);r&&(i.get=function(t,n){return"__target__"===n?e:"__revoke__"===n?function(){return c(),e}:"function"==typeof e[n]?e[n]:r(a.get(s,n),n,e)}),t&&(i.set=function(r,n,o){return a.set(s,n,t(n,o,e))});var u=Proxy.revocable({},i),s=u.proxy,c=u.revoke;return{v:s}}},L=_createForOfIteratorHelperLoose(a);!(A=L()).done;)if(I=M())return I.v;return e},convertCircularObjectToJSON=function(e,r,t){void 0===r&&(r=function(e){return null!=e?e:"__circularReference__"}),void 0===t&&(t=0);var n=new Map;return function(e){var o=function(e,t){if(isObject(t)){var a,i;if(n.has(t))return r(null!==(a=n.get(t))&&void 0!==a?a:null,e,t,n);if(n.set(t,null),Array.isArray(t)){i=[];for(var u,s=_createForOfIteratorHelperLoose(t);!(u=s()).done;){var c=u.value;i.push(o(null,c))}}else{i={};for(var l=0,_=Object.entries(t);l<_.length;l++){var f=_[l],p=f[0],d=f[1];i[p]=o(p,d)}}return n.set(t,i),i}return t};return JSON.stringify(e,o,t)}(e)},_convertMapToPlainObject=function(e,r){if(void 0===r&&(r=!0),"object"==typeof e){if(isMap(e)){for(var t,n={},o=_createForOfIteratorHelperLoose(e);!(t=o()).done;){var a=t.value,i=a[0],u=a[1];r&&(u=_convertMapToPlainObject(u,r)),["number","string"].includes(typeof i)&&(n[String(i)]=u)}return n}if(r)if(isPlainObject(e))for(var s=0,c=Object.entries(e);s<c.length;s++){var l=c[s],_=l[0],f=l[1];e[_]=_convertMapToPlainObject(f,r)}else if(Array.isArray(e))for(var p=0,d=0,v=e;d<v.length;d++){var b=v[d];e[p]=_convertMapToPlainObject(b,r),p+=1}else if(isSet(e)){for(var y,O=[],h=_createForOfIteratorHelperLoose(e);!(y=h()).done;){var g=y.value;e.delete(g),O.push(_convertMapToPlainObject(g,r))}for(var m=0,P=O;m<P.length;m++){var w=P[m];e.add(w)}}}return e},_convertPlainObjectToMap=function(e,r){if(void 0===r&&(r=!0),"object"==typeof e){if(isPlainObject(e)){for(var t=new Map,n=0,o=Object.entries(e);n<o.length;n++){var a=o[n],i=a[0],u=a[1];r&&(e[i]=_convertPlainObjectToMap(u,r)),t.set(i,e[i])}return t}if(r)if(Array.isArray(e))for(var s=0,c=0,l=e;c<l.length;c++){var _=l[c];e[s]=_convertPlainObjectToMap(_,r),s+=1}else if(isMap(e))for(var f,p=_createForOfIteratorHelperLoose(e);!(f=p()).done;){var d=f.value,v=d[0],b=d[1];e.set(v,_convertPlainObjectToMap(b,r))}else if(isSet(e)){for(var y,O=[],h=_createForOfIteratorHelperLoose(e);!(y=h()).done;){var g=y.value;e.delete(g),O.push(_convertPlainObjectToMap(g,r))}for(var m=0,P=O;m<P.length;m++){var w=P[m];e.add(w)}}}return e},_convertSubstringInPlainObject=function(e,r,t){for(var n=0,o=Object.entries(e);n<o.length;n++){var a=o[n],i=a[0],u=a[1];isPlainObject(u)?e[i]=_convertSubstringInPlainObject(u,r,t):"string"==typeof u&&(e[i]=u.replace(r,t))}return e},_copy=function(e,r,t,n,o,a,i,u){if(void 0===r&&(r=!1),void 0===t&&(t=-1),void 0===n&&(n=VALUE_COPY_SYMBOL),void 0===o&&(o=null),void 0===a&&(a=!1),void 0===i&&(i=[]),void 0===u&&(u=0),isObject(e)){if(!o){if(Array.isArray(e))return _copy(e,r,t,n,[],a,i,u);if(e instanceof Map)return _copy(e,r,t,n,new Map,a,i,u);if(e instanceof Set)return _copy(e,r,t,n,new Set,a,i,u);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){var s=/[^/]*$/.exec(e.toString());return(o=new RegExp(e.source,s?s[0]:void 0)).lastIndex=e.lastIndex,o}return"undefined"!=typeof Blob&&e instanceof Blob?r?e.slice(0,e.size,e.type):e:_copy(e,r,t,n,{},a,i,u)}if(e===o)throw new Error("Can't copy because source and destination are identical.");if(!a&&![void 0,null].includes(e)){var c=i.indexOf(e);if(-1!==c)return i[c];i.push(e)}var l=function(e){if(-1!==t&&t<u+1)return n===VALUE_COPY_SYMBOL?e:n;var o=_copy(e,r,t,n,null,a,i,u+1);return a||[void 0,null].includes(e)||"object"!=typeof e||i.push(e),o};if(Array.isArray(e))for(var _,f=_createForOfIteratorHelperLoose(e);!(_=f()).done;){var p=_.value;o.push(l(p))}else if(e instanceof Map)for(var d,v=_createForOfIteratorHelperLoose(e);!(d=v()).done;){var b=d.value,y=b[0],O=b[1];o.set(y,l(O))}else if(e instanceof Set)for(var h,g=_createForOfIteratorHelperLoose(e);!(h=g()).done;){var m=h.value;o.add(l(m))}else for(var P=0,w=Object.entries(e);P<w.length;P++){var E=w[P],j=E[0],x=E[1];try{o[j]=l(x)}catch(e){throw new Error('Failed to copy property value object "'+j+'": '+_represent(e),{cause:e})}}}return o||e},determineType=function(e){if([null,void 0].includes(e))return String(e);var r=typeof e;if(["function","object"].includes(r)&&"toString"in e){var t=Object.prototype.toString.call(e);if(Object.prototype.hasOwnProperty.call(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_TO_TYPE_MAPPING,t))return _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_TO_TYPE_MAPPING[t]}return r},_equals=function equals(firstValue,secondValue,givenOptions){void 0===givenOptions&&(givenOptions={});var options=_extends({compareBlobs:!1,deep:-1,exceptionPrefixes:[],ignoreFunctions:!0,properties:null,returnReasonIfNotEqual:!1},givenOptions);if(options.ignoreFunctions&&isFunction(firstValue)&&isFunction(secondValue)||firstValue===secondValue||isNotANumber(firstValue)&&isNotANumber(secondValue)||firstValue instanceof RegExp&&secondValue instanceof RegExp&&firstValue.toString()===secondValue.toString()&&firstValue.flags.split("").sort().join("")===secondValue.flags.split("").sort().join("")||firstValue instanceof Date&&secondValue instanceof Date&&(isNaN(firstValue.getTime())&&isNaN(secondValue.getTime())||!isNaN(firstValue.getTime())&&!isNaN(secondValue.getTime())&&firstValue.getTime()===secondValue.getTime())||options.compareBlobs&&"undefined"!==eval("typeof Buffer")&&Object.prototype.hasOwnProperty.call(eval("Buffer"),"isBuffer")&&firstValue instanceof eval("Buffer")&&secondValue instanceof eval("Buffer")&&firstValue.toString("base64")===secondValue.toString("base64"))return!0;if(options.compareBlobs&&"undefined"!=typeof Blob&&firstValue instanceof Blob&&secondValue instanceof Blob)return new Promise(function(e){for(var r=[],t=0,n=[firstValue,secondValue];t<n.length;t++){var o=n[t],a=new FileReader;a.onload=function(t){null===t.target?r.push(null):r.push(t.target.result),2===r.length&&(r[0]===r[1]?e(!0):e(!!options.returnReasonIfNotEqual&&">>> Blob("+_represent(r[0])+") !== Blob("+_represent(r[1])+")"))},a.readAsDataURL(o)}});if(isPlainObject(firstValue)&&isPlainObject(secondValue)&&!(firstValue instanceof RegExp||secondValue instanceof RegExp)||Array.isArray(firstValue)&&Array.isArray(secondValue)&&firstValue.length===secondValue.length||determineType(firstValue)===determineType(secondValue)&&["map","set"].includes(determineType(firstValue))&&firstValue.size===secondValue.size){for(var promises=[],_i11=0,_arr4=[[firstValue,secondValue],[secondValue,firstValue]];_i11<_arr4.length;_i11++){var _arr4$_i=_arr4[_i11],first=_arr4$_i[0],second=_arr4$_i[1],firstIsArray=Array.isArray(first);if(firstIsArray&&(!Array.isArray(second)||first.length!==second.length))return!!options.returnReasonIfNotEqual&&".length";var firstIsMap=isMap(first);if(firstIsMap&&(!isMap(second)||first.size!==second.size))return!!options.returnReasonIfNotEqual&&".size";var firstIsSet=isSet(first);if(firstIsSet&&(!isSet(second)||first.size!==second.size))return!!options.returnReasonIfNotEqual&&".size";if(firstIsArray){for(var index=0,_loop2=function(){var e=_arr5[_i12];if(0!==options.deep){var r=_equals(e,second[index],_extends({},options,{deep:options.deep-1}));if(!r)return{v:!1};var t=index,n=function(e){var r;return"string"==typeof e?"["+String(t)+"]"+(null!==(r={"[":"",">":" "}[e[0]])&&void 0!==r?r:".")+e:e};if(Object.prototype.hasOwnProperty.call(r,"then")&&promises.push(r.then(n)),"string"==typeof r)return{v:n(r)}}index+=1},_ret2,_i12=0,_arr5=first;_i12<_arr5.length;_i12++)if(_ret2=_loop2(),_ret2)return _ret2.v}else if(firstIsMap){for(var _loop3=function(){var e=_step11.value,r=e[0],t=e[1];if(0!==options.deep){var n=_equals(t,second.get(r),_extends({},options,{deep:options.deep-1}));if(!n)return{v:!1};var o=function(e){var t;return"string"==typeof e?"get("+_represent(r)+")"+(null!==(t={"[":"",">":" "}[e[0]])&&void 0!==t?t:".")+e:e};if(Object.prototype.hasOwnProperty.call(n,"then")&&promises.push(n.then(o)),"string"==typeof n)return{v:o(n)}}},_ret3,_iterator11=_createForOfIteratorHelperLoose(first),_step11;!(_step11=_iterator11()).done;)if(_ret3=_loop3(),_ret3)return _ret3.v}else if(firstIsSet){for(var _loop4=function(){var e=_step12.value;if(0!==options.deep){for(var r,t=!1,n=[],o=_createForOfIteratorHelperLoose(second);!(r=o()).done;){var a=r.value,i=_equals(e,a,_extends({},options,{deep:options.deep-1}));if("boolean"==typeof i){if(i){t=!0;break}}else n.push(i)}var u=function(r){return!!r||!!options.returnReasonIfNotEqual&&">>> {-> "+_represent(e)+" not found}"};return t?0:(n.length&&promises.push(new Promise(function(e){Promise.all(n).then(function(r){e(u(r.some(function(e){return e})))},function(){})})),{v:u(!1)})}},_ret4,_iterator12=_createForOfIteratorHelperLoose(first),_step12;!(_step12=_iterator12()).done;)if(_ret4=_loop4(),0!==_ret4&&_ret4)return _ret4.v}else for(var _loop5=function(){var e=_Object$entries7[_i13],r=e[0],t=e[1];if(options.properties&&!options.properties.includes(r))return 0;for(var n,o=!1,a=_createForOfIteratorHelperLoose(options.exceptionPrefixes);!(n=a()).done;){var i=n.value;if(r.startsWith(i)){o=!0;break}}if(o)return 0;if(0!==options.deep){var u=_equals(t,second[r],_extends({},options,{deep:options.deep-1}));if(!u)return{v:!1};var s=function(e){var t;return"string"==typeof e?r+(null!==(t={"[":"",">":" "}[e[0]])&&void 0!==t?t:".")+e:e};if(Object.prototype.hasOwnProperty.call(u,"then")&&promises.push(u.then(s)),"string"==typeof u)return{v:s(u)}}},_ret5,_i13=0,_Object$entries7=Object.entries(first);_i13<_Object$entries7.length&&(_ret5=_loop5(),0!==_ret5);_i13++)if(_ret5)return _ret5.v}return!promises.length||new Promise(function(e){Promise.all(promises).then(function(r){for(var t,n=_createForOfIteratorHelperLoose(r);!(t=n()).done;){var o=t.value;if(!o||"string"==typeof o){e(o);break}}e(!0)},function(){})})}return!!options.returnReasonIfNotEqual&&">>> "+_represent(firstValue)+" !== "+_represent(secondValue)},evaluateDynamicData=function(e,r,t,n,o){if(void 0===r&&(r={}),void 0===t&&(t="self"),void 0===n&&(n="__evaluate__"),void 0===o&&(o="__execute__"),"object"!=typeof e||null===e)return e;t in r||(r[t]=e);var a=function(e,t){void 0===t&&(t=n);var a=evaluate(e,r,t===o);if(a.error)throw new Error(a.error);return a.result},i=function(e){if("object"!=typeof e||null===e||"undefined"==typeof Proxy)return e;for(var r=0,t=Object.entries(e);r<t.length;r++){var s=t[r],c=s[0],l=s[1];if("__target__"!==c&&isObject(l)){var _=l;if(i(_),Object.prototype.hasOwnProperty.call(_,n)||Object.prototype.hasOwnProperty.call(_,o)){var f=_;e[c]=new Proxy(_,{get:function(e,r){if("__target__"===r)return e;if("hasOwnProperty"===r)return e[r];for(var t=0,i=[n,o];t<i.length;t++){var s=i[t];if(r===s&&"string"==typeof e[r])return u(a(e[r],s))}var c=u(e);if("toString"===r){var l=a(c);return l[r].bind(l)}if("string"!=typeof r){var _,f=a(c);return null!=(_=f[r])&&_.bind?f[r].bind(f):f[r]}for(var p=0,d=[n,o];p<d.length;p++){var v=d[p];if(Object.prototype.hasOwnProperty.call(e,v))return a(c,v)[r]}return c[r]},ownKeys:function(e){for(var r=0,t=[n,o];r<t.length;r++){var i=t[r];if(Object.prototype.hasOwnProperty.call(e,i))return Object.getOwnPropertyNames(u(a(e[i],i)))}return Object.getOwnPropertyNames(e)}}),e[c].__target__||(e[c].__target__=f)}}}return e},u=function(e){if(isObject(e)){if(isProxy(e)){for(var r=0,t=[n,o];r<t.length;r++){var i=t[r];if(Object.prototype.hasOwnProperty.call(e,i))return e[i]}e=e.__target__}for(var s=0,c=Object.entries(e);s<c.length;s++){var l=c[s],_=l[0],f=l[1];if([n,o].includes(_))return"undefined"==typeof Proxy?u(a(f)):f;e[_]=u(f)}}return e};r.resolve=u;var s=function(e){if(isObject(e))for(var r=0,t=Object.entries(e);r<t.length;r++){var n=t[r],o=n[0],a=n[1];if("__target__"!==o&&null!==a&&["function","undefined"].includes(typeof a)){var i=a.__target__;void 0!==i&&(e[o]=i),s(a)}}return e};return Object.prototype.hasOwnProperty.call(e,n)?a(e[n]):Object.prototype.hasOwnProperty.call(e,o)?a(e[o],o):s(u(i(e)))},_removeKeysInEvaluation=function(e,r){void 0===r&&(r=["__evaluate__","__execute__"]);for(var t=0,n=Object.entries(e);t<n.length;t++){var o=n[t],a=o[0],i=o[1];!r.includes(a)&&r.some(function(r){return Object.prototype.hasOwnProperty.call(e,r)})?delete e[a]:isPlainObject(i)&&_removeKeysInEvaluation(i,r)}return e},_extend=function(e,r){for(var t=!1,n=arguments.length,o=new Array(n>2?n-2:0),a=2;a<n;a++)o[a-2]=arguments[a];var i,u=o;e===_constants__WEBPACK_IMPORTED_MODULE_1__.IGNORE_NULL_AND_UNDEFINED_SYMBOL||"boolean"==typeof e?(t=e,i=r):(i=e,(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(r)?u=[r].concat(u):void 0!==r&&(i=r));for(var s,c=function(e,r){return r===e?e:t&&r&&((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(r)||(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(r))?(n=(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(r)?e&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(e)?e:new Map:e&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(e)?e:{},_extend(t,n,r)):r;var n},l=_createForOfIteratorHelperLoose(u);!(s=l()).done;){var _=s.value,f=typeof i,p=typeof _;if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(i)&&(f+=" Map"),(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(_)&&(p+=" Map"),f===p&&i!==_)if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(i)&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(_))for(var d,v=_createForOfIteratorHelperLoose(_);!(d=v()).done;){var b=d.value,y=b[0],O=b[1];i.set(y,c(i.get(y),O))}else if(!(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(i)||Array.isArray(i)||"undefined"!=typeof Blob&&i instanceof Blob||!(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(_)||Array.isArray(_)||"undefined"!=typeof Blob&&_ instanceof Blob)i=_;else for(var h=0,g=Object.entries(_);h<g.length;h++){var m=g[h],P=m[0],w=m[1];t===_constants__WEBPACK_IMPORTED_MODULE_1__.IGNORE_NULL_AND_UNDEFINED_SYMBOL&&[null,void 0].includes(w)||(i[P]=c(i[P],w))}else i=_}return i},getProxyHandler=function(e,r){return void 0===r&&(r={}),r=_extends({delete:"[]",get:"[]",has:"[]",set:"[]"},r),{deleteProperty:function(t,n){return"[]"!==r.delete||"string"!=typeof n?e[r.delete](n):(delete e[n],!0)},get:function(t,n){return"[]"===r.get&&"string"==typeof n?e[n]:e[r.get](n)},has:function(t,n){return"[]"===r.has?n in e:e[r.has](n)},set:function(t,n,o){return"[]"!==r.set||"string"!=typeof n?e[r.set](n,o):(e[n]=o,!0)}}},_mask=function(e,r){if(!0===(r=_extends({exclude:!1,include:!0},r)).exclude||Array.isArray(r.exclude)&&0===r.exclude.length||!1===r.include||"object"!=typeof e)return{};var t=Array.isArray(r.exclude)?r.exclude.reduce(function(e,r){var t;return _extends({},e,((t={})[r]=!0,t))},{}):r.exclude,n=Array.isArray(r.include)?r.include.reduce(function(e,r){var t;return _extends({},e,((t={})[r]=!0,t))},{}):r.include,o={};if(isPlainObject(n))for(var a=0,i=Object.entries(n);a<i.length;a++){var u=i[a],s=u[0],c=u[1];Object.prototype.hasOwnProperty.call(e,s)&&(!0===c?o[s]=e[s]:(isPlainObject(c)||Array.isArray(c)&&c.length)&&"object"==typeof e[s]&&(o[s]=_mask(e[s],{include:c})))}else o=e;if(isPlainObject(t)){for(var l=!1,_=_extends({},o),f=0,p=Object.entries(t);f<p.length;f++){var d=p[f],v=d[0],b=d[1];if(Object.prototype.hasOwnProperty.call(_,v))if(!0===b)l=!0,delete _[v];else if((isPlainObject(b)||Array.isArray(b)&&b.length)&&"object"==typeof _[v]){var y=_[v];_[v]=_mask(_[v],{exclude:b}),_[v]!==y&&(l=!0)}}l&&(o=_)}return o},_modifyObject=function(e,r,t,n,o,a,i,u,s){if(void 0===t&&(t="__remove__"),void 0===n&&(n="__prepend__"),void 0===o&&(o="__append__"),void 0===a&&(a="__"),void 0===i&&(i="__"),void 0===u&&(u=null),void 0===s&&(s=null),isMap(r)&&isMap(e))for(var c,l=_createForOfIteratorHelperLoose(r);!(c=l()).done;){var _=c.value,f=_[0],p=_[1];e.has(f)&&_modifyObject(e.get(f),p,t,n,o,a,i,r,f)}else if(isObject(r)&&isObject(e))for(var d=0,v=Object.entries(r);d<v.length;d++){var b=v[d],y=b[0],O=b[1],h=NaN;if(Array.isArray(e)&&y.startsWith(a)&&y.endsWith(i)&&((h=parseInt(y.substring(a.length,y.length-i.length),10))<0||h>=e.length)&&(h=NaN),[t,n,o].includes(y)||!isNaN(h)){if(Array.isArray(e))if(y===t)for(var g,m=_createForOfIteratorHelperLoose([].concat(O));!(g=m()).done;){var P=g.value;"string"==typeof P&&P.startsWith(a)&&P.endsWith(i)?e.splice(parseInt(P.substring(a.length,P.length-i.length),10),1):e.includes(P)?e.splice(e.indexOf(P),1):"number"==typeof P&&P<e.length&&e.splice(P,1)}else y===o?e=e.concat(O):y===n?e=[].concat(O).concat(e):isObject(e[h])&&isObject(O)?_extend(!0,_modifyObject(e[h],O,t,n,o,a,i),e[h],O):e[h]=O;else if(y===t)for(var w,E=_createForOfIteratorHelperLoose([].concat(O));!(w=E()).done;){var j=w.value;"string"==typeof j&&Object.prototype.hasOwnProperty.call(e,j)&&delete e[j]}delete r[y],u&&"string"==typeof s&&delete u[s]}else null!==e&&Object.prototype.hasOwnProperty.call(e,y)&&(e[y]=_modifyObject(e[y],O,t,n,o,a,i,r,y))}return e},_removeKeyPrefixes=function(e,r){void 0===r&&(r="#");var t=[].concat(r);if(Array.isArray(e))for(var n,o=0,a=_createForOfIteratorHelperLoose(e.slice());!(n=a()).done;){var i=n.value,u=!1;if("string"==typeof i){for(var s,c=_createForOfIteratorHelperLoose(t);!(s=c()).done;){var l=s.value;if(i.startsWith(l+":")){e.splice(o,1),u=!0;break}}if(u)continue}e[o]=_removeKeyPrefixes(i,t),o+=1}else if(isSet(e))for(var _,f=_createForOfIteratorHelperLoose(new Set(e));!(_=f()).done;){var p=_.value,d=!1;if("string"==typeof p){for(var v,b=_createForOfIteratorHelperLoose(t);!(v=b()).done;){var y=v.value;if(p.startsWith(y+":")){e.delete(p),d=!0;break}}if(d)continue}_removeKeyPrefixes(p,t)}else if(isMap(e))for(var O,h=_createForOfIteratorHelperLoose(new Map(e));!(O=h()).done;){var g=O.value,m=g[0],P=g[1],w=!1;if("string"==typeof m){for(var E,j=_createForOfIteratorHelperLoose(t);!(E=j()).done;){var x=E.value,I=escapeRegularExpressions(x);if(new RegExp("^"+I+"[0-9]*$").test(m)){e.delete(m),w=!0;break}}if(w)continue}e.set(m,_removeKeyPrefixes(P,t))}else if(isObject(e))for(var A=0,M=Object.entries(Object.assign({},e));A<M.length;A++){for(var L,S=M[A],T=S[0],D=S[1],k=!1,R=_createForOfIteratorHelperLoose(t);!(L=R()).done;){var q=L.value,N=escapeRegularExpressions(q);if(new RegExp("^"+N+"[0-9]*$").test(T)){delete e[T],k=!0;break}}k||(e[T]=_removeKeyPrefixes(D,t))}return e},_represent=function(e,r,t,n,o,a){if(void 0===r&&(r=30),void 0===t&&(t=" "),void 0===n&&(n=""),void 0===o&&(o="__maximum_number_of_levels_reached__"),void 0===a&&(a=8),0===a)return String(o);if(null===e)return"null";if(void 0===e)return"undefined";if("string"==typeof e)return'"'+e.replace(/\n/g,"\n"+n)+'"';if(isNumeric(e)||"boolean"==typeof e)return String(e);if(e instanceof Date)return e.toISOString();if(Array.isArray(e)){for(var i,u="[",s=!1,c=1,l=_createForOfIteratorHelperLoose(e);!(i=l()).done;){var _=i.value;if(c>r){u+="\n"+n+"...";break}s&&(u+=","),u+="\n"+n+t+_represent(_,r,t,""+n+t,o,a-1),s=!0,c+=1}return s&&(u+="\n"+n),u+="]"}if(isMap(e)){for(var f,p="",d=!1,v=1,b=_createForOfIteratorHelperLoose(e);!(f=b()).done;){var y=f.value,O=y[0],h=y[1];if(v>r){p+=",\n"+n+"...";break}d&&(p+=",\n"+n+t),p+=_represent(O,r,t,""+n+t,o,a-1)+" -> "+_represent(h,r,t,""+n+t,o,a-1),d=!0,v+=1}return d||(p="EmptyMap"),p}if(isSet(e)){for(var g,m="{",P=!1,w=1,E=_createForOfIteratorHelperLoose(e);!(g=E()).done;){var j=g.value;if(w>r){m+=",\n"+n+"...";break}P&&(m+=","),m+="\n"+n+t+_represent(j,r,t,""+n+t,o,a-1),P=!0,w+=1}return P?m+="\n"+n+"}":m="EmptySet",m}if(isFunction(e))return"__function__";for(var x,I="{",A=!1,M=1,L=_createForOfIteratorHelperLoose(Object.getOwnPropertyNames(e).sort());!(x=L()).done;){var S=x.value;if(M>r){I+=",\n"+n+"...";break}A&&(I+=","),I+="\n"+n+t+S+": "+_represent(e[S],r,t,""+n+t,o,a-1),A=!0,M+=1}return A&&(I+="\n"+n),I+="}"},sort=function(e){var r=[];if(Array.isArray(e))for(var t=0;t<e.length;t++)r.push(t);else if("object"==typeof e)if(isMap(e))for(var n,o=_createForOfIteratorHelperLoose(e);!(n=o()).done;){var a=n.value;r.push(a[0])}else if(null!==e)for(var i=0,u=Object.keys(e);i<u.length;i++){var s=u[i];r.push(s)}return r.sort()},_unwrapProxy=function(e,r){if(void 0===r&&(r=new Set),isObject(e)){if(r.has(e))return e;try{isFunction(e.__revoke__)&&(isProxy(e)&&(e=e.__target__),e.__revoke__())}catch(r){return e}finally{r.add(e)}if(Array.isArray(e))for(var t,n=0,o=_createForOfIteratorHelperLoose(e);!(t=o()).done;){var a=t.value;e[n]=_unwrapProxy(a,r),n+=1}else if(isMap(e))for(var i,u=_createForOfIteratorHelperLoose(e);!(i=u()).done;){var s=i.value,c=s[0],l=s[1];e.set(c,_unwrapProxy(l,r))}else if(isSet(e)){for(var _,f=[],p=_createForOfIteratorHelperLoose(e);!(_=p()).done;){var d=_.value;e.delete(d),f.push(_unwrapProxy(d,r))}for(var v=0,b=f;v<b.length;v++){var y=b[v];e.add(y)}}else for(var O=0,h=Object.entries(e);O<h.length;O++){var g=h[O],m=g[0],P=g[1];e[m]=_unwrapProxy(P,r)}}return e}},function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__3__},function(e,r,t){t.d(r,{isFunction:function(){return s},isMap:function(){return u},isObject:function(){return a},isPlainObject:function(){return i}});var n=t(0),o=t(2);var a=function(e){return null!==e&&"object"==typeof e},i=function(e){return a(e)&&n.PLAIN_OBJECT_PROTOTYPES.includes(Object.getPrototypeOf(e))},u=function(e){return"map"===(0,o.determineType)(e)},s=function(e){return Boolean(e)&&["[object AsyncFunction]","[object Function]"].includes({}.toString.call(e))}},function(module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{currentImport:function(){return currentImport},optionalRequire:function(){return optionalRequire}});var currentRequire=eval("typeof require === 'undefined' ? null : require"),currentOptionalImport=null;try{currentOptionalImport=eval("typeof import === 'undefined' ? null : import")}catch(e){}var currentImport=currentOptionalImport,optionalRequire=function(e){try{return currentRequire?currentRequire(e):null}catch(e){return null}},clearRequireCache=function(e){void 0===e&&(e=(null==currentRequire?void 0:currentRequire.cache)||__webpack_require__.c);for(var r={},t=0,n=Object.entries(e);t<n.length;t++){var o=n[t],a=o[0],i=o[1];r[a]=i,delete e[a]}return r},restoreRequireCache=function(e,r){void 0===e&&(e=(null==currentRequire?void 0:currentRequire.cache)||__webpack_require__.c),clearRequireCache();for(var t=0,n=Object.entries(r);t<n.length;t++){var o=n[t],a=o[0],i=o[1];e[a]=i}},isolatedRequire=function(e,r){void 0===r&&(r=currentRequire||__webpack_require__(6));var t=clearRequireCache(r.cache);try{return r(e)}catch(e){throw e}finally{restoreRequireCache(r.cache,t)}}},function(e){function r(e){var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}r.keys=function(){return[]},r.resolve=r,r.id=6,e.exports=r},,,,,function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__11__},function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__12__},,,function(e,r,t){t.d(r,{timeout:function(){return a}});var n=t(1),o=t(4),a=function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];for(var a,i,u=n.NOOP,s=0,c=!1,l=0,_=r;l<_.length;l++){var f=_[l];"number"!=typeof f||isNaN(f)?"boolean"==typeof f?c=f:(0,o.isFunction)(f)&&(u=f):s=f}var p=new Promise(function(e,r){a=r,i=e}),d=function(){var e;(e=u).call.apply(e,[p].concat(r)),i(!1)},v=2147483647;if(s<=v)p.timeoutID=setTimeout(d,s);else{var b=Math.floor(s/v),y=s%v,O=function(){b>0?(b-=1,p.timeoutID=setTimeout(O,v)):p.timeoutID=setTimeout(d,y)};O()}return p.clear=function(){Object.prototype.hasOwnProperty.call(p,"timeoutID")&&(clearTimeout(p.timeoutID),(c?a:i)(!0))},p}},,,,,,,,,,,function(e,r,t){t.r(r),t.d(r,{cacheImage:function(){return p},checkReachability:function(){return _},checkUnreachability:function(){return f}});var n=t(11),o=t.n(n),a=t(12),i=t.n(a),u=t(4),s=t(1),c=t(2),l=t(15),_=function(){var e=o()(i().mark(function e(r,t){var n,a,u,_,f,p,d,v;return i().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===t&&(t={}),s.globalContext.fetch){e.next=1;break}throw new Error("Missing fetch implementation available.");case 1:if(a=null!==(n=t.abortController)&&void 0!==n?n:new AbortController,u=(0,c.extend)(!0,{expectedIntermediateStatusCodes:[],options:{signal:a.signal},pollIntervallInSeconds:.1,statusCodes:200,timeoutInSeconds:10,wait:!1},t),_=[].concat(u.statusCodes),f=[].concat(u.expectedIntermediateStatusCodes),p=function(e,r){return"status"in e&&r.includes(e.status)},d=function(e){if(!p(e,_))throw new Error("Given status code "+String(e.status)+" differs from "+_.join(", ")+".");return e},!u.wait){e.next=2;break}return e.abrupt("return",new Promise(function(e,t){var n=!1,c=(0,l.timeout)(1e3*u.timeoutInSeconds),_=function(e){return n||(b=(0,l.timeout)(1e3*u.pollIntervallInSeconds,v)).catch(function(){}),e},v=function(){var n=o()(i().mark(function n(){var o,a,l;return i().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=1,s.globalContext.fetch(r,u.options);case 1:o=n.sent,n.next=3;break;case 2:return n.prev=2,a=n.catch(0),n.abrupt("return",_(a));case 3:n.prev=3,e(d(o)),c.clear(),n.next=6;break;case 4:if(n.prev=4,l=n.catch(3),!p(o,f)){n.next=5;break}return n.abrupt("return",_(l));case 5:t(l),c.clear();case 6:return n.abrupt("return",o);case 7:case"end":return n.stop()}},n,null,[[0,2],[3,4]])}));return function(){return n.apply(this,arguments)}}(),b=(0,l.timeout)(v);c.then(function(){n=!0,b.clear(),t(new Error("Timeout of "+String(u.timeoutInSeconds)+" seconds reached.")),a.abort()},function(){})}));case 2:return v=d,e.next=3,s.globalContext.fetch(r,u.options);case 3:return e.abrupt("return",v(e.sent));case 4:case"end":return e.stop()}},e)}));return function(r,t){return e.apply(this,arguments)}}(),f=function(){var e=o()(i().mark(function e(r,t){var n,a,_,f,p,d,v;return i().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===t&&(t={}),s.globalContext.fetch){e.next=1;break}throw new Error("Missing fetch implementation available.");case 1:if(a=null!==(n=t.abortController)&&void 0!==n?n:new AbortController,_=(0,c.extend)(!0,{options:{signal:a.signal},pollIntervallInSeconds:.1,statusCodes:[],timeoutInSeconds:10,wait:!1},t),f=function(e){var t=[].concat(_.statusCodes);if(t.length){if((0,u.isObject)(e)&&"status"in e&&t.includes(e.status))throw new Error('Given url "'+r+'" is reachable and responses with status code "'+String(e.status)+'".');return new Error('Given status code is not "'+t.join(", ")+'".')}return null},!_.wait){e.next=2;break}return e.abrupt("return",new Promise(function(e,t){var n=!1,u=function(){var t=o()(i().mark(function t(){var o,a,d;return i().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=1,s.globalContext.fetch(r,_.options);case 1:if(o=t.sent,!n){t.next=2;break}return t.abrupt("return",o);case 2:if(!(a=f(o))){t.next=3;break}return p.clear(),e(a),t.abrupt("return",a);case 3:(c=(0,l.timeout)(1e3*_.pollIntervallInSeconds,u)).catch(function(){}),t.next=5;break;case 4:return t.prev=4,d=t.catch(0),p.clear(),e(d),t.abrupt("return",d);case 5:return t.abrupt("return",null);case 6:case"end":return t.stop()}},t,null,[[0,4]])}));return function(){return t.apply(this,arguments)}}(),c=(0,l.timeout)(u),p=(0,l.timeout)(1e3*_.timeoutInSeconds);p.then(function(){n=!0,c.clear(),t(new Error("Timeout of "+String(_.timeoutInSeconds)+" seconds reached.")),a.abort()},function(){})}));case 2:return e.prev=2,d=f,e.next=3,s.globalContext.fetch(r,_.options);case 3:if(!(p=d(e.sent))){e.next=4;break}return e.abrupt("return",p);case 4:e.next=6;break;case 5:return e.prev=5,v=e.catch(2),e.abrupt("return",v);case 6:throw new Error('Given url "'+r+'" is reachable.');case 7:case"end":return e.stop()}},e,null,[[2,5]])}));return function(r,t){return e.apply(this,arguments)}}(),p=function(e){return new Promise(function(r,t){var n=document.createElement("img");n.onload=function(){var e=n.complete;n.remove(),e?r():t(new Error("Image could not be loaded."))},n.src=e})}}],__webpack_module_cache__={};function __webpack_require__(e){var r=__webpack_module_cache__[e];if(void 0!==r)return r.exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e](t,t.exports,__webpack_require__),t.loaded=!0,t.exports}__webpack_require__.c=__webpack_module_cache__,__webpack_require__.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(r,{a:r}),r},__webpack_require__.d=function(e,r){for(var t in r)__webpack_require__.o(r,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},__webpack_require__.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(26);return __webpack_exports__}()});
|
|
1
|
+
// #!/usr/bin/env babel-node
|
|
2
|
+
// -*- coding: utf-8 -*-
|
|
3
|
+
/** @module data-transfer */
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
/* !
|
|
7
|
+
region header
|
|
8
|
+
[Project page](https://torben.website/clientnode)
|
|
9
|
+
|
|
10
|
+
Copyright Torben Sickert (info["~at~"]torben.website) 16.12.2012
|
|
11
|
+
|
|
12
|
+
License
|
|
13
|
+
-------
|
|
14
|
+
|
|
15
|
+
This library written by Torben Sickert stands under a creative commons
|
|
16
|
+
naming 3.0 unported license.
|
|
17
|
+
See https://creativecommons.org/licenses/by/3.0/deed.de
|
|
18
|
+
endregion
|
|
19
|
+
*/
|
|
20
|
+
import "core-js/modules/es.array.includes.js";
|
|
21
|
+
import { isObject } from "./indicators.js";
|
|
22
|
+
import { globalContext } from "./context.js";
|
|
23
|
+
import { extend } from "./object.js";
|
|
24
|
+
import { timeout } from "./utility.js";
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Checks if given url response with given status code.
|
|
28
|
+
* @param url - Url to check reachability.
|
|
29
|
+
* @param givenOptions - Options to configure.
|
|
30
|
+
* @param givenOptions.wait - Boolean indicating if we should retry until a
|
|
31
|
+
* status code will be given.
|
|
32
|
+
* @param givenOptions.statusCodes - Status codes to check for.
|
|
33
|
+
* @param givenOptions.timeoutInSeconds - Delay after assuming given resource
|
|
34
|
+
* isn't available if no response is coming.
|
|
35
|
+
* @param givenOptions.pollIntervallInSeconds - Seconds between two tries to
|
|
36
|
+
* reach given url.
|
|
37
|
+
* @param givenOptions.options - Fetch options to use.
|
|
38
|
+
* @param givenOptions.expectedIntermediateStatusCodes - A list of expected but
|
|
39
|
+
* unwanted response codes. If detecting them waiting will continue until an
|
|
40
|
+
* expected (positive) code occurs or timeout is reached.
|
|
41
|
+
* @returns A promise which will be resolved if a request to given url has
|
|
42
|
+
* finished and resulting status code matches given expected status code.
|
|
43
|
+
* Otherwise, returned promise will be rejected.
|
|
44
|
+
*/
|
|
45
|
+
export const checkReachability = async (url, givenOptions = {}) => {
|
|
46
|
+
if (!globalContext.fetch) throw new Error('Missing fetch implementation available.');
|
|
47
|
+
const abortController = givenOptions.abortController ?? new AbortController();
|
|
48
|
+
const options = extend(true, {
|
|
49
|
+
expectedIntermediateStatusCodes: [],
|
|
50
|
+
options: {
|
|
51
|
+
signal: abortController.signal
|
|
52
|
+
},
|
|
53
|
+
pollIntervallInSeconds: 0.1,
|
|
54
|
+
statusCodes: 200,
|
|
55
|
+
timeoutInSeconds: 10,
|
|
56
|
+
wait: false
|
|
57
|
+
}, givenOptions);
|
|
58
|
+
const statusCodes = [].concat(options.statusCodes);
|
|
59
|
+
const expectedIntermediateStatusCodes = [].concat(options.expectedIntermediateStatusCodes);
|
|
60
|
+
const isStatusCodeExpected = (response, statusCodes) => 'status' in response && statusCodes.includes(response.status);
|
|
61
|
+
const checkAndThrow = response => {
|
|
62
|
+
if (!isStatusCodeExpected(response, statusCodes)) throw new Error(`Given status code ${String(response.status)} ` + `differs from ${statusCodes.join(', ')}.`);
|
|
63
|
+
return response;
|
|
64
|
+
};
|
|
65
|
+
if (options.wait) return new Promise((resolve, reject) => {
|
|
66
|
+
let timedOut = false;
|
|
67
|
+
const timer = timeout(options.timeoutInSeconds * 1000);
|
|
68
|
+
const retryErrorHandler = error => {
|
|
69
|
+
if (!timedOut) {
|
|
70
|
+
currentlyRunningTimer = timeout(options.pollIntervallInSeconds * 1000, wrapper);
|
|
71
|
+
/*
|
|
72
|
+
NOTE: A timer rejection is expected. Avoid throwing
|
|
73
|
+
errors about unhandled promise rejections.
|
|
74
|
+
*/
|
|
75
|
+
currentlyRunningTimer.catch(() => {
|
|
76
|
+
// Do nothing regardless of an error.
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return error;
|
|
80
|
+
};
|
|
81
|
+
const wrapper = async () => {
|
|
82
|
+
let response;
|
|
83
|
+
try {
|
|
84
|
+
// @ts-expect-error Already wrapped in try catch.
|
|
85
|
+
response = await globalContext.fetch(url, options.options);
|
|
86
|
+
} catch (error) {
|
|
87
|
+
return retryErrorHandler(error);
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
resolve(checkAndThrow(response));
|
|
91
|
+
timer.clear();
|
|
92
|
+
} catch (error) {
|
|
93
|
+
if (isStatusCodeExpected(response, expectedIntermediateStatusCodes)) return retryErrorHandler(error);
|
|
94
|
+
|
|
95
|
+
/* eslint-disable prefer-promise-reject-errors */
|
|
96
|
+
reject(error);
|
|
97
|
+
/* eslint-enable prefer-promise-reject-errors */
|
|
98
|
+
timer.clear();
|
|
99
|
+
}
|
|
100
|
+
return response;
|
|
101
|
+
};
|
|
102
|
+
let currentlyRunningTimer = timeout(wrapper);
|
|
103
|
+
timer.then(() => {
|
|
104
|
+
timedOut = true;
|
|
105
|
+
currentlyRunningTimer.clear();
|
|
106
|
+
reject(new Error(`Timeout of ${String(options.timeoutInSeconds)} ` + 'seconds reached.'));
|
|
107
|
+
abortController.abort();
|
|
108
|
+
}, () => {
|
|
109
|
+
// Do nothing.
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
return checkAndThrow(await globalContext.fetch(url, options.options));
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Checks if given url isn't reachable.
|
|
116
|
+
* @param url - Url to check reachability.
|
|
117
|
+
* @param givenOptions - Options to configure.
|
|
118
|
+
* @param givenOptions.wait - Boolean indicating if we should retry until a
|
|
119
|
+
* status code will be given.
|
|
120
|
+
* @param givenOptions.timeoutInSeconds - Delay after assuming given resource
|
|
121
|
+
* will stay available.
|
|
122
|
+
* @param givenOptions.pollIntervallInSeconds - Seconds between two tries to
|
|
123
|
+
* reach given url.
|
|
124
|
+
* @param givenOptions.statusCodes - Status codes to check for.
|
|
125
|
+
* @param givenOptions.options - Fetch options to use.
|
|
126
|
+
* @returns A promise which will be resolved if a request to given url couldn't
|
|
127
|
+
* be finished. Otherwise, returned promise will be rejected. If "wait" is set
|
|
128
|
+
* to "true" we will resolve to another promise still resolving when final
|
|
129
|
+
* timeout is reached or the endpoint is unreachable (after some tries).
|
|
130
|
+
*/
|
|
131
|
+
export const checkUnreachability = async (url, givenOptions = {}) => {
|
|
132
|
+
if (!globalContext.fetch) throw new Error('Missing fetch implementation available.');
|
|
133
|
+
const abortController = givenOptions.abortController ?? new AbortController();
|
|
134
|
+
const options = extend(true, {
|
|
135
|
+
options: {
|
|
136
|
+
signal: abortController.signal
|
|
137
|
+
},
|
|
138
|
+
pollIntervallInSeconds: 0.1,
|
|
139
|
+
statusCodes: [],
|
|
140
|
+
timeoutInSeconds: 10,
|
|
141
|
+
wait: false
|
|
142
|
+
}, givenOptions);
|
|
143
|
+
const check = response => {
|
|
144
|
+
const statusCodes = [].concat(options.statusCodes);
|
|
145
|
+
if (statusCodes.length) {
|
|
146
|
+
if (isObject(response) && 'status' in response && statusCodes.includes(response.status)) throw new Error(`Given url "${url}" is reachable and responses with ` + `status code "${String(response.status)}".`);
|
|
147
|
+
return new Error(`Given status code is not "${statusCodes.join(', ')}".`);
|
|
148
|
+
}
|
|
149
|
+
return null;
|
|
150
|
+
};
|
|
151
|
+
if (options.wait) return new Promise((resolve, reject) => {
|
|
152
|
+
let timedOut = false;
|
|
153
|
+
const wrapper = async () => {
|
|
154
|
+
try {
|
|
155
|
+
const response =
|
|
156
|
+
// @ts-expect-error Already wrapped in try catch.
|
|
157
|
+
await globalContext.fetch(url, options.options);
|
|
158
|
+
if (timedOut) return response;
|
|
159
|
+
const result = check(response);
|
|
160
|
+
if (result) {
|
|
161
|
+
timer.clear();
|
|
162
|
+
resolve(result);
|
|
163
|
+
return result;
|
|
164
|
+
}
|
|
165
|
+
currentlyRunningTimer = timeout(options.pollIntervallInSeconds * 1000, wrapper);
|
|
166
|
+
|
|
167
|
+
/*
|
|
168
|
+
NOTE: A timer rejection is expected. Avoid throwing
|
|
169
|
+
errors about unhandled promise rejections.
|
|
170
|
+
*/
|
|
171
|
+
currentlyRunningTimer.catch(() => {
|
|
172
|
+
// Do nothing regardless of an error.
|
|
173
|
+
});
|
|
174
|
+
} catch (error) {
|
|
175
|
+
timer.clear();
|
|
176
|
+
resolve(error);
|
|
177
|
+
return error;
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
};
|
|
181
|
+
let currentlyRunningTimer = timeout(wrapper);
|
|
182
|
+
const timer = timeout(options.timeoutInSeconds * 1000);
|
|
183
|
+
timer.then(() => {
|
|
184
|
+
timedOut = true;
|
|
185
|
+
currentlyRunningTimer.clear();
|
|
186
|
+
reject(new Error(`Timeout of ${String(options.timeoutInSeconds)} ` + 'seconds reached.'));
|
|
187
|
+
abortController.abort();
|
|
188
|
+
}, () => {
|
|
189
|
+
// Do nothing.
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
try {
|
|
193
|
+
const result = check(await globalContext.fetch(url, options.options));
|
|
194
|
+
if (result) return result;
|
|
195
|
+
} catch (error) {
|
|
196
|
+
return error;
|
|
197
|
+
}
|
|
198
|
+
throw new Error(`Given url "${url}" is reachable.`);
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Preloads a given url via a temporary created image element.
|
|
202
|
+
* @param url - To image which should be downloaded.
|
|
203
|
+
* @returns A Promise indicating whether the image was loaded.
|
|
204
|
+
*/
|
|
205
|
+
export const cacheImage = url => {
|
|
206
|
+
return new Promise((resolve, reject) => {
|
|
207
|
+
const imageElement = document.createElement('img');
|
|
208
|
+
imageElement.onload = () => {
|
|
209
|
+
const isLoaded = imageElement.complete;
|
|
210
|
+
imageElement.remove();
|
|
211
|
+
if (isLoaded) resolve();else reject(new Error('Image could not be loaded.'));
|
|
212
|
+
};
|
|
213
|
+
imageElement.src = url;
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGEtdHJhbnNmZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gIyEvdXNyL2Jpbi9lbnYgYmFiZWwtbm9kZVxuLy8gLSotIGNvZGluZzogdXRmLTggLSotXG4vKiogQG1vZHVsZSBkYXRhLXRyYW5zZmVyICovXG4ndXNlIHN0cmljdCdcbi8qICFcbiAgICByZWdpb24gaGVhZGVyXG4gICAgW1Byb2plY3QgcGFnZV0oaHR0cHM6Ly90b3JiZW4ud2Vic2l0ZS9jbGllbnRub2RlKVxuXG4gICAgQ29weXJpZ2h0IFRvcmJlbiBTaWNrZXJ0IChpbmZvW1wifmF0flwiXXRvcmJlbi53ZWJzaXRlKSAxNi4xMi4yMDEyXG5cbiAgICBMaWNlbnNlXG4gICAgLS0tLS0tLVxuXG4gICAgVGhpcyBsaWJyYXJ5IHdyaXR0ZW4gYnkgVG9yYmVuIFNpY2tlcnQgc3RhbmRzIHVuZGVyIGEgY3JlYXRpdmUgY29tbW9uc1xuICAgIG5hbWluZyAzLjAgdW5wb3J0ZWQgbGljZW5zZS5cbiAgICBTZWUgaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC9kZWVkLmRlXG4gICAgZW5kcmVnaW9uXG4qL1xuaW1wb3J0IHR5cGUge1xuICAgIENoZWNrUmVhY2hhYmlsaXR5T3B0aW9ucywgUmVjdXJzaXZlUGFydGlhbCwgVGltZW91dFByb21pc2Vcbn0gZnJvbSAnLi90eXBlJ1xuXG5pbXBvcnQge2lzT2JqZWN0fSBmcm9tICcuL2luZGljYXRvcnMnXG5pbXBvcnQge2dsb2JhbENvbnRleHR9IGZyb20gJy4vY29udGV4dCdcbmltcG9ydCB7ZXh0ZW5kfSBmcm9tICcuL29iamVjdCdcbmltcG9ydCB7dGltZW91dH0gZnJvbSAnLi91dGlsaXR5J1xuXG4vKipcbiAqIENoZWNrcyBpZiBnaXZlbiB1cmwgcmVzcG9uc2Ugd2l0aCBnaXZlbiBzdGF0dXMgY29kZS5cbiAqIEBwYXJhbSB1cmwgLSBVcmwgdG8gY2hlY2sgcmVhY2hhYmlsaXR5LlxuICogQHBhcmFtIGdpdmVuT3B0aW9ucyAtIE9wdGlvbnMgdG8gY29uZmlndXJlLlxuICogQHBhcmFtIGdpdmVuT3B0aW9ucy53YWl0IC0gQm9vbGVhbiBpbmRpY2F0aW5nIGlmIHdlIHNob3VsZCByZXRyeSB1bnRpbCBhXG4gKiBzdGF0dXMgY29kZSB3aWxsIGJlIGdpdmVuLlxuICogQHBhcmFtIGdpdmVuT3B0aW9ucy5zdGF0dXNDb2RlcyAtIFN0YXR1cyBjb2RlcyB0byBjaGVjayBmb3IuXG4gKiBAcGFyYW0gZ2l2ZW5PcHRpb25zLnRpbWVvdXRJblNlY29uZHMgLSBEZWxheSBhZnRlciBhc3N1bWluZyBnaXZlbiByZXNvdXJjZVxuICogaXNuJ3QgYXZhaWxhYmxlIGlmIG5vIHJlc3BvbnNlIGlzIGNvbWluZy5cbiAqIEBwYXJhbSBnaXZlbk9wdGlvbnMucG9sbEludGVydmFsbEluU2Vjb25kcyAtIFNlY29uZHMgYmV0d2VlbiB0d28gdHJpZXMgdG9cbiAqIHJlYWNoIGdpdmVuIHVybC5cbiAqIEBwYXJhbSBnaXZlbk9wdGlvbnMub3B0aW9ucyAtIEZldGNoIG9wdGlvbnMgdG8gdXNlLlxuICogQHBhcmFtIGdpdmVuT3B0aW9ucy5leHBlY3RlZEludGVybWVkaWF0ZVN0YXR1c0NvZGVzIC0gQSBsaXN0IG9mIGV4cGVjdGVkIGJ1dFxuICogdW53YW50ZWQgcmVzcG9uc2UgY29kZXMuIElmIGRldGVjdGluZyB0aGVtIHdhaXRpbmcgd2lsbCBjb250aW51ZSB1bnRpbCBhblxuICogZXhwZWN0ZWQgKHBvc2l0aXZlKSBjb2RlIG9jY3VycyBvciB0aW1lb3V0IGlzIHJlYWNoZWQuXG4gKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCBpZiBhIHJlcXVlc3QgdG8gZ2l2ZW4gdXJsIGhhc1xuICogZmluaXNoZWQgYW5kIHJlc3VsdGluZyBzdGF0dXMgY29kZSBtYXRjaGVzIGdpdmVuIGV4cGVjdGVkIHN0YXR1cyBjb2RlLlxuICogT3RoZXJ3aXNlLCByZXR1cm5lZCBwcm9taXNlIHdpbGwgYmUgcmVqZWN0ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBjaGVja1JlYWNoYWJpbGl0eSA9IGFzeW5jIChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBnaXZlbk9wdGlvbnM6IFJlY3Vyc2l2ZVBhcnRpYWw8Q2hlY2tSZWFjaGFiaWxpdHlPcHRpb25zPiA9IHt9XG4pOiBSZXR1cm5UeXBlPHR5cGVvZiBmZXRjaD4gPT4ge1xuICAgIGlmICghZ2xvYmFsQ29udGV4dC5mZXRjaClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGZldGNoIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZS4nKVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIgPVxuICAgICAgICBnaXZlbk9wdGlvbnMuYWJvcnRDb250cm9sbGVyIGFzIEFib3J0Q29udHJvbGxlciB8IHVuZGVmaW5lZCA/P1xuICAgICAgICBuZXcgQWJvcnRDb250cm9sbGVyKClcbiAgICBjb25zdCBvcHRpb25zOiBDaGVja1JlYWNoYWJpbGl0eU9wdGlvbnMgPSBleHRlbmQoXG4gICAgICAgIHRydWUsXG4gICAgICAgIHtcbiAgICAgICAgICAgIGV4cGVjdGVkSW50ZXJtZWRpYXRlU3RhdHVzQ29kZXM6IFtdLFxuICAgICAgICAgICAgb3B0aW9uczoge3NpZ25hbDogYWJvcnRDb250cm9sbGVyLnNpZ25hbH0sXG4gICAgICAgICAgICBwb2xsSW50ZXJ2YWxsSW5TZWNvbmRzOiAwLjEsXG4gICAgICAgICAgICBzdGF0dXNDb2RlczogMjAwLFxuICAgICAgICAgICAgdGltZW91dEluU2Vjb25kczogMTAsXG4gICAgICAgICAgICB3YWl0OiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBnaXZlbk9wdGlvbnNcbiAgICApXG5cbiAgICBjb25zdCBzdGF0dXNDb2RlczogQXJyYXk8bnVtYmVyPiA9XG4gICAgICAgIChbXSBhcyBBcnJheTxudW1iZXI+KS5jb25jYXQob3B0aW9ucy5zdGF0dXNDb2RlcylcbiAgICBjb25zdCBleHBlY3RlZEludGVybWVkaWF0ZVN0YXR1c0NvZGVzOiBBcnJheTxudW1iZXI+ID1cbiAgICAgICAgKFtdIGFzIEFycmF5PG51bWJlcj4pXG4gICAgICAgICAgICAuY29uY2F0KG9wdGlvbnMuZXhwZWN0ZWRJbnRlcm1lZGlhdGVTdGF0dXNDb2RlcylcblxuICAgIGNvbnN0IGlzU3RhdHVzQ29kZUV4cGVjdGVkID0gKFxuICAgICAgICByZXNwb25zZTogUmVzcG9uc2UsIHN0YXR1c0NvZGVzOiBBcnJheTxudW1iZXI+XG4gICAgKTogYm9vbGVhbiA9PlxuICAgICAgICAnc3RhdHVzJyBpbiByZXNwb25zZSAmJlxuICAgICAgICBzdGF0dXNDb2Rlcy5pbmNsdWRlcyhyZXNwb25zZS5zdGF0dXMpXG5cbiAgICBjb25zdCBjaGVja0FuZFRocm93ID0gKHJlc3BvbnNlOiBSZXNwb25zZSk6IFJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKCFpc1N0YXR1c0NvZGVFeHBlY3RlZChyZXNwb25zZSwgc3RhdHVzQ29kZXMpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBHaXZlbiBzdGF0dXMgY29kZSAke1N0cmluZyhyZXNwb25zZS5zdGF0dXMpfSBgICtcbiAgICAgICAgICAgICAgICBgZGlmZmVycyBmcm9tICR7c3RhdHVzQ29kZXMuam9pbignLCAnKX0uYFxuICAgICAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiByZXNwb25zZVxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLndhaXQpXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxSZXNwb25zZT4oKFxuICAgICAgICAgICAgcmVzb2x2ZTogKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4gdm9pZCxcbiAgICAgICAgICAgIHJlamVjdDogKHJlYXNvbjogRXJyb3IpID0+IHZvaWRcbiAgICAgICAgKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBsZXQgdGltZWRPdXQgPSBmYWxzZVxuICAgICAgICAgICAgY29uc3QgdGltZXI6IFRpbWVvdXRQcm9taXNlID1cbiAgICAgICAgICAgICAgICB0aW1lb3V0KG9wdGlvbnMudGltZW91dEluU2Vjb25kcyAqIDEwMDApXG5cbiAgICAgICAgICAgIGNvbnN0IHJldHJ5RXJyb3JIYW5kbGVyID0gKGVycm9yOiBFcnJvcik6IEVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRpbWVkT3V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRseVJ1bm5pbmdUaW1lciA9IHRpbWVvdXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnBvbGxJbnRlcnZhbGxJblNlY29uZHMgKiAxMDAwLCB3cmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICAgIE5PVEU6IEEgdGltZXIgcmVqZWN0aW9uIGlzIGV4cGVjdGVkLiBBdm9pZCB0aHJvd2luZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzIGFib3V0IHVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbnMuXG4gICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRseVJ1bm5pbmdUaW1lci5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nIHJlZ2FyZGxlc3Mgb2YgYW4gZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXIgPSBhc3luYyAoKTogUHJvbWlzZTxFcnJvciB8IFJlc3BvbnNlPiA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlOiBSZXNwb25zZVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQWxyZWFkeSB3cmFwcGVkIGluIHRyeSBjYXRjaC5cbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBnbG9iYWxDb250ZXh0LmZldGNoKHVybCwgb3B0aW9ucy5vcHRpb25zKVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXRyeUVycm9ySGFuZGxlcihlcnJvciBhcyBFcnJvcilcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGNoZWNrQW5kVGhyb3cocmVzcG9uc2UpKVxuICAgICAgICAgICAgICAgICAgICB0aW1lci5jbGVhcigpXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzU3RhdHVzQ29kZUV4cGVjdGVkKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsIGV4cGVjdGVkSW50ZXJtZWRpYXRlU3RhdHVzQ29kZXNcbiAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXRyeUVycm9ySGFuZGxlcihlcnJvciBhcyBFcnJvcilcblxuICAgICAgICAgICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItcHJvbWlzZS1yZWplY3QtZXJyb3JzICovXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvciBhcyBFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgLyogZXNsaW50LWVuYWJsZSBwcmVmZXItcHJvbWlzZS1yZWplY3QtZXJyb3JzICovXG4gICAgICAgICAgICAgICAgICAgIHRpbWVyLmNsZWFyKClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGN1cnJlbnRseVJ1bm5pbmdUaW1lciA9IHRpbWVvdXQod3JhcHBlcilcblxuICAgICAgICAgICAgdGltZXIudGhlbihcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWVkT3V0ID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50bHlSdW5uaW5nVGltZXIuY2xlYXIoKVxuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBgVGltZW91dCBvZiAke1N0cmluZyhvcHRpb25zLnRpbWVvdXRJblNlY29uZHMpfSBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZWNvbmRzIHJlYWNoZWQuJ1xuICAgICAgICAgICAgICAgICAgICApKVxuXG4gICAgICAgICAgICAgICAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdGhpbmcuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICB9KVxuXG4gICAgcmV0dXJuIGNoZWNrQW5kVGhyb3coYXdhaXQgZ2xvYmFsQ29udGV4dC5mZXRjaCh1cmwsIG9wdGlvbnMub3B0aW9ucykpXG59XG4vKipcbiAqIENoZWNrcyBpZiBnaXZlbiB1cmwgaXNuJ3QgcmVhY2hhYmxlLlxuICogQHBhcmFtIHVybCAtIFVybCB0byBjaGVjayByZWFjaGFiaWxpdHkuXG4gKiBAcGFyYW0gZ2l2ZW5PcHRpb25zIC0gT3B0aW9ucyB0byBjb25maWd1cmUuXG4gKiBAcGFyYW0gZ2l2ZW5PcHRpb25zLndhaXQgLSBCb29sZWFuIGluZGljYXRpbmcgaWYgd2Ugc2hvdWxkIHJldHJ5IHVudGlsIGFcbiAqIHN0YXR1cyBjb2RlIHdpbGwgYmUgZ2l2ZW4uXG4gKiBAcGFyYW0gZ2l2ZW5PcHRpb25zLnRpbWVvdXRJblNlY29uZHMgLSBEZWxheSBhZnRlciBhc3N1bWluZyBnaXZlbiByZXNvdXJjZVxuICogd2lsbCBzdGF5IGF2YWlsYWJsZS5cbiAqIEBwYXJhbSBnaXZlbk9wdGlvbnMucG9sbEludGVydmFsbEluU2Vjb25kcyAtIFNlY29uZHMgYmV0d2VlbiB0d28gdHJpZXMgdG9cbiAqIHJlYWNoIGdpdmVuIHVybC5cbiAqIEBwYXJhbSBnaXZlbk9wdGlvbnMuc3RhdHVzQ29kZXMgLSBTdGF0dXMgY29kZXMgdG8gY2hlY2sgZm9yLlxuICogQHBhcmFtIGdpdmVuT3B0aW9ucy5vcHRpb25zIC0gRmV0Y2ggb3B0aW9ucyB0byB1c2UuXG4gKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCBpZiBhIHJlcXVlc3QgdG8gZ2l2ZW4gdXJsIGNvdWxkbid0XG4gKiBiZSBmaW5pc2hlZC4gT3RoZXJ3aXNlLCByZXR1cm5lZCBwcm9taXNlIHdpbGwgYmUgcmVqZWN0ZWQuIElmIFwid2FpdFwiIGlzIHNldFxuICogdG8gXCJ0cnVlXCIgd2Ugd2lsbCByZXNvbHZlIHRvIGFub3RoZXIgcHJvbWlzZSBzdGlsbCByZXNvbHZpbmcgd2hlbiBmaW5hbFxuICogdGltZW91dCBpcyByZWFjaGVkIG9yIHRoZSBlbmRwb2ludCBpcyB1bnJlYWNoYWJsZSAoYWZ0ZXIgc29tZSB0cmllcykuXG4gKi9cbmV4cG9ydCBjb25zdCBjaGVja1VucmVhY2hhYmlsaXR5ID0gYXN5bmMgKFxuICAgIHVybDogc3RyaW5nLCBnaXZlbk9wdGlvbnM6IFJlY3Vyc2l2ZVBhcnRpYWw8Q2hlY2tSZWFjaGFiaWxpdHlPcHRpb25zPiA9IHt9XG4pOiBQcm9taXNlPEVycm9yIHwgbnVsbCB8IFByb21pc2U8RXJyb3IgfCBudWxsPj4gPT4ge1xuICAgIGlmICghZ2xvYmFsQ29udGV4dC5mZXRjaClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGZldGNoIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZS4nKVxuXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIgPVxuICAgICAgICBnaXZlbk9wdGlvbnMuYWJvcnRDb250cm9sbGVyIGFzIEFib3J0Q29udHJvbGxlciB8IHVuZGVmaW5lZCA/P1xuICAgICAgICBuZXcgQWJvcnRDb250cm9sbGVyKClcbiAgICBjb25zdCBvcHRpb25zOiBDaGVja1JlYWNoYWJpbGl0eU9wdGlvbnMgPSBleHRlbmQoXG4gICAgICAgIHRydWUsXG4gICAgICAgIHtcbiAgICAgICAgICAgIG9wdGlvbnM6IHtzaWduYWw6IGFib3J0Q29udHJvbGxlci5zaWduYWx9LFxuICAgICAgICAgICAgcG9sbEludGVydmFsbEluU2Vjb25kczogMC4xLFxuICAgICAgICAgICAgc3RhdHVzQ29kZXM6IFtdLFxuICAgICAgICAgICAgdGltZW91dEluU2Vjb25kczogMTAsXG4gICAgICAgICAgICB3YWl0OiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBnaXZlbk9wdGlvbnNcbiAgICApXG5cbiAgICBjb25zdCBjaGVjayA9IChyZXNwb25zZTogbnVsbCB8IFJlc3BvbnNlKTogRXJyb3IgfCBudWxsID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdHVzQ29kZXM6IEFycmF5PG51bWJlcj4gPVxuICAgICAgICAgICAgKFtdIGFzIEFycmF5PG51bWJlcj4pLmNvbmNhdChvcHRpb25zLnN0YXR1c0NvZGVzKVxuICAgICAgICBpZiAoc3RhdHVzQ29kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgaXNPYmplY3QocmVzcG9uc2UpICYmXG4gICAgICAgICAgICAgICAgJ3N0YXR1cycgaW4gcmVzcG9uc2UgJiZcbiAgICAgICAgICAgICAgICBzdGF0dXNDb2Rlcy5pbmNsdWRlcyhyZXNwb25zZS5zdGF0dXMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgR2l2ZW4gdXJsIFwiJHt1cmx9XCIgaXMgcmVhY2hhYmxlIGFuZCByZXNwb25zZXMgd2l0aCBgICtcbiAgICAgICAgICAgICAgICAgICAgYHN0YXR1cyBjb2RlIFwiJHtTdHJpbmcocmVzcG9uc2Uuc3RhdHVzKX1cIi5gXG4gICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBHaXZlbiBzdGF0dXMgY29kZSBpcyBub3QgXCIke3N0YXR1c0NvZGVzLmpvaW4oJywgJyl9XCIuYFxuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy53YWl0KVxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8RXJyb3IgfCBudWxsIHwgUHJvbWlzZTxFcnJvciB8IG51bGw+PigoXG4gICAgICAgICAgICByZXNvbHZlOiAodmFsdWU6IEVycm9yIHwgbnVsbCkgPT4gdm9pZCxcbiAgICAgICAgICAgIHJlamVjdDogKHJlYXNvbjogRXJyb3IpID0+IHZvaWRcbiAgICAgICAgKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBsZXQgdGltZWRPdXQgPSBmYWxzZVxuXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyID0gYXN5bmMgKCk6IFByb21pc2U8RXJyb3IgfCBSZXNwb25zZSB8IG51bGw+ID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZTogUmVzcG9uc2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBBbHJlYWR5IHdyYXBwZWQgaW4gdHJ5IGNhdGNoLlxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgZ2xvYmFsQ29udGV4dC5mZXRjaCh1cmwsIG9wdGlvbnMub3B0aW9ucylcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGltZWRPdXQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IEVycm9yIHwgbnVsbCA9IGNoZWNrKHJlc3BvbnNlKVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lci5jbGVhcigpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdClcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudGx5UnVubmluZ1RpbWVyID0gdGltZW91dChcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucG9sbEludGVydmFsbEluU2Vjb25kcyAqIDEwMDAsIHdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICBOT1RFOiBBIHRpbWVyIHJlamVjdGlvbiBpcyBleHBlY3RlZC4gQXZvaWQgdGhyb3dpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyBhYm91dCB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25zLlxuICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50bHlSdW5uaW5nVGltZXIuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90aGluZyByZWdhcmRsZXNzIG9mIGFuIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRpbWVyLmNsZWFyKClcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShlcnJvciBhcyBFcnJvcilcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3IgYXMgRXJyb3JcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgY3VycmVudGx5UnVubmluZ1RpbWVyID0gdGltZW91dCh3cmFwcGVyKVxuICAgICAgICAgICAgY29uc3QgdGltZXIgPSB0aW1lb3V0KG9wdGlvbnMudGltZW91dEluU2Vjb25kcyAqIDEwMDApXG5cbiAgICAgICAgICAgIHRpbWVyLnRoZW4oXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aW1lZE91dCA9IHRydWVcblxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50bHlSdW5uaW5nVGltZXIuY2xlYXIoKVxuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBgVGltZW91dCBvZiAke1N0cmluZyhvcHRpb25zLnRpbWVvdXRJblNlY29uZHMpfSBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZWNvbmRzIHJlYWNoZWQuJ1xuICAgICAgICAgICAgICAgICAgICApKVxuXG4gICAgICAgICAgICAgICAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdGhpbmcuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICB9KVxuXG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBFcnJvciB8IG51bGwgPVxuICAgICAgICAgICAgY2hlY2soYXdhaXQgZ2xvYmFsQ29udGV4dC5mZXRjaCh1cmwsIG9wdGlvbnMub3B0aW9ucykpXG5cbiAgICAgICAgaWYgKHJlc3VsdClcbiAgICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4gZXJyb3IgYXMgRXJyb3JcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEdpdmVuIHVybCBcIiR7dXJsfVwiIGlzIHJlYWNoYWJsZS5gKVxufVxuLyoqXG4gKiBQcmVsb2FkcyBhIGdpdmVuIHVybCB2aWEgYSB0ZW1wb3JhcnkgY3JlYXRlZCBpbWFnZSBlbGVtZW50LlxuICogQHBhcmFtIHVybCAtIFRvIGltYWdlIHdoaWNoIHNob3VsZCBiZSBkb3dubG9hZGVkLlxuICogQHJldHVybnMgQSBQcm9taXNlIGluZGljYXRpbmcgd2hldGhlciB0aGUgaW1hZ2Ugd2FzIGxvYWRlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNhY2hlSW1hZ2UgPSAodXJsOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKVxuICAgICAgICBpbWFnZUVsZW1lbnQub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNMb2FkZWQgPSBpbWFnZUVsZW1lbnQuY29tcGxldGVcbiAgICAgICAgICAgIGltYWdlRWxlbWVudC5yZW1vdmUoKVxuICAgICAgICAgICAgaWYgKGlzTG9hZGVkKVxuICAgICAgICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0ltYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuJykpXG4gICAgICAgIH1cbiAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9IHVybFxuICAgIH0pXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7O0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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
|