clientnode 4.0.1427 → 4.0.1429

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.
Files changed (143) hide show
  1. package/dist/Lock.js +100 -1
  2. package/dist/Logger.js +185 -1
  3. package/dist/Semaphore.js +65 -1
  4. package/dist/array.js +452 -1
  5. package/dist/cli.js +51 -1
  6. package/dist/constants.js +126 -1
  7. package/dist/context.js +40 -1
  8. package/dist/cookie.js +84 -1
  9. package/dist/data-transfer.js +216 -1
  10. package/dist/datetime.js +282 -1
  11. package/dist/domNode.js +331 -1
  12. package/dist/expression/evaluators.js +273 -1
  13. package/dist/expression/helper.js +97 -1
  14. package/dist/expression/index.js +26 -1
  15. package/dist/expression/indicator-functions.js +37 -1
  16. package/dist/expression/type.js +20 -0
  17. package/dist/filesystem.js +410 -1
  18. package/dist/function.js +75 -1
  19. package/dist/index.js +43 -1
  20. package/dist/indicators.js +121 -1
  21. package/dist/number.js +61 -1
  22. package/dist/object.js +934 -1
  23. package/dist/process.js +69 -1
  24. package/dist/property-types.js +115 -1
  25. package/dist/require.js +82 -1
  26. package/dist/scope.js +85 -1
  27. package/dist/string.js +806 -1
  28. package/dist/test-helper.js +341 -1
  29. package/dist/type.js +21 -1
  30. package/dist/utility.js +139 -1
  31. package/package.json +23 -21
  32. package/dist/Lock.d.ts +0 -39
  33. package/dist/Logger.d.ts +0 -102
  34. package/dist/Semaphore.d.ts +0 -29
  35. package/dist/array.d.ts +0 -150
  36. package/dist/bundle/Lock.js +0 -1
  37. package/dist/bundle/Logger.js +0 -1
  38. package/dist/bundle/Semaphore.js +0 -1
  39. package/dist/bundle/array.js +0 -1
  40. package/dist/bundle/cli.js +0 -1
  41. package/dist/bundle/constants.js +0 -1
  42. package/dist/bundle/context.js +0 -1
  43. package/dist/bundle/cookie.js +0 -1
  44. package/dist/bundle/data-transfer.js +0 -1
  45. package/dist/bundle/datetime.js +0 -1
  46. package/dist/bundle/domNode.js +0 -1
  47. package/dist/bundle/expression/evaluators.js +0 -1
  48. package/dist/bundle/expression/helper.js +0 -1
  49. package/dist/bundle/expression/index.js +0 -1
  50. package/dist/bundle/expression/indicator-functions.js +0 -1
  51. package/dist/bundle/expression/types.js +0 -1
  52. package/dist/bundle/filesystem.js +0 -1
  53. package/dist/bundle/function.js +0 -1
  54. package/dist/bundle/index.js +0 -1
  55. package/dist/bundle/indicators.js +0 -1
  56. package/dist/bundle/number.js +0 -1
  57. package/dist/bundle/object.js +0 -1
  58. package/dist/bundle/process.js +0 -1
  59. package/dist/bundle/property-types.js +0 -1
  60. package/dist/bundle/require.js +0 -1
  61. package/dist/bundle/scope.js +0 -1
  62. package/dist/bundle/string.js +0 -1
  63. package/dist/bundle/test-helper.js +0 -1
  64. package/dist/bundle/type.js +0 -1
  65. package/dist/bundle/utility.js +0 -1
  66. package/dist/cli.d.ts +0 -31
  67. package/dist/compatible/Lock.js +0 -1
  68. package/dist/compatible/Logger.js +0 -1
  69. package/dist/compatible/Semaphore.js +0 -1
  70. package/dist/compatible/array.js +0 -1
  71. package/dist/compatible/cli.js +0 -1
  72. package/dist/compatible/constants.js +0 -1
  73. package/dist/compatible/context.js +0 -1
  74. package/dist/compatible/cookie.js +0 -1
  75. package/dist/compatible/data-transfer.js +0 -1
  76. package/dist/compatible/datetime.js +0 -1
  77. package/dist/compatible/domNode.js +0 -1
  78. package/dist/compatible/expression/evaluators.js +0 -1
  79. package/dist/compatible/expression/helper.js +0 -1
  80. package/dist/compatible/expression/index.js +0 -1
  81. package/dist/compatible/expression/indicator-functions.js +0 -1
  82. package/dist/compatible/expression/types.js +0 -1
  83. package/dist/compatible/filesystem.js +0 -1
  84. package/dist/compatible/function.js +0 -1
  85. package/dist/compatible/index.js +0 -1
  86. package/dist/compatible/indicators.js +0 -1
  87. package/dist/compatible/number.js +0 -1
  88. package/dist/compatible/object.js +0 -1
  89. package/dist/compatible/process.js +0 -1
  90. package/dist/compatible/property-types.js +0 -1
  91. package/dist/compatible/require.js +0 -1
  92. package/dist/compatible/scope.js +0 -1
  93. package/dist/compatible/string.js +0 -1
  94. package/dist/compatible/test-helper.js +0 -1
  95. package/dist/compatible/type.js +0 -1
  96. package/dist/compatible/utility.js +0 -1
  97. package/dist/constants.d.ts +0 -99
  98. package/dist/context.d.ts +0 -9
  99. package/dist/cookie.d.ts +0 -31
  100. package/dist/data-transfer.d.ts +0 -45
  101. package/dist/datetime.d.ts +0 -37
  102. package/dist/domNode.d.ts +0 -82
  103. package/dist/expression/evaluators.d.ts +0 -55
  104. package/dist/expression/helper.d.ts +0 -4
  105. package/dist/expression/index.d.ts +0 -7
  106. package/dist/expression/indicator-functions.d.ts +0 -14
  107. package/dist/expression/types.d.ts +0 -70
  108. package/dist/expression/types.js +0 -1
  109. package/dist/filesystem.d.ts +0 -138
  110. package/dist/function.d.ts +0 -20
  111. package/dist/index.d.ts +0 -23
  112. package/dist/indicators.d.ts +0 -68
  113. package/dist/number.d.ts +0 -35
  114. package/dist/object.d.ts +0 -213
  115. package/dist/process.d.ts +0 -22
  116. package/dist/property-types.d.ts +0 -460
  117. package/dist/require.d.ts +0 -6
  118. package/dist/scope.d.ts +0 -44
  119. package/dist/string.d.ts +0 -299
  120. package/dist/test/Lock.d.ts +0 -1
  121. package/dist/test/Logger.d.ts +0 -1
  122. package/dist/test/Semaphore.d.ts +0 -1
  123. package/dist/test/array.d.ts +0 -1
  124. package/dist/test/cookie.d.ts +0 -1
  125. package/dist/test/data-transfer.d.ts +0 -1
  126. package/dist/test/datetime.d.ts +0 -1
  127. package/dist/test/domNode.d.ts +0 -1
  128. package/dist/test/expression/evaluators.d.ts +0 -1
  129. package/dist/test/expression/helper.d.ts +0 -1
  130. package/dist/test/expression/indicator-functions.d.ts +0 -1
  131. package/dist/test/filesystem.d.ts +0 -1
  132. package/dist/test/function.d.ts +0 -1
  133. package/dist/test/indicators.d.ts +0 -1
  134. package/dist/test/number.d.ts +0 -1
  135. package/dist/test/object.d.ts +0 -1
  136. package/dist/test/process.d.ts +0 -1
  137. package/dist/test/property-types.d.ts +0 -1
  138. package/dist/test/scope.d.ts +0 -1
  139. package/dist/test/string.d.ts +0 -1
  140. package/dist/test/utility.d.ts +0 -1
  141. package/dist/test-helper.d.ts +0 -143
  142. package/dist/type.d.ts +0 -211
  143. package/dist/utility.d.ts +0 -44
@@ -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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