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/Lock.js
CHANGED
|
@@ -1 +1,100 @@
|
|
|
1
|
-
|
|
1
|
+
// #!/usr/bin/env babel-node
|
|
2
|
+
// -*- coding: utf-8 -*-
|
|
3
|
+
/** @module Lock */
|
|
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.push.js";
|
|
21
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
22
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
23
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
24
|
+
/**
|
|
25
|
+
* Represents the lock state.
|
|
26
|
+
* @property locks - Mapping of lock descriptions to their corresponding
|
|
27
|
+
* callbacks.
|
|
28
|
+
*/
|
|
29
|
+
export class Lock {
|
|
30
|
+
/**
|
|
31
|
+
* Initializes locks.
|
|
32
|
+
* @param locks - Mapping of a lock description to callbacks for calling
|
|
33
|
+
* when given lock should be released.
|
|
34
|
+
*/
|
|
35
|
+
constructor(locks = {}) {
|
|
36
|
+
_defineProperty(this, "lock", void 0);
|
|
37
|
+
_defineProperty(this, "locks", void 0);
|
|
38
|
+
this.locks = locks;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Calling this method introduces a starting point for a critical area with
|
|
42
|
+
* potential race conditions. The area will be bind to given description
|
|
43
|
+
* string. So don't use same names for different areas.
|
|
44
|
+
* @param description - A short string describing the critical areas
|
|
45
|
+
* properties.
|
|
46
|
+
* @param callback - A procedure which should only be executed if the
|
|
47
|
+
* interpreter isn't in the given critical area. The lock description
|
|
48
|
+
* string will be given to the callback function.
|
|
49
|
+
* @param autoRelease - Release the lock after execution of given callback.
|
|
50
|
+
* @returns Returns a promise which will be resolved after releasing lock.
|
|
51
|
+
*/
|
|
52
|
+
acquire(description, callback, autoRelease = false) {
|
|
53
|
+
return new Promise(resolve => {
|
|
54
|
+
const wrappedCallback = description => {
|
|
55
|
+
let result;
|
|
56
|
+
if (callback) result = callback(description);
|
|
57
|
+
const finish = value => {
|
|
58
|
+
if (autoRelease) void this.release(description);
|
|
59
|
+
resolve(value);
|
|
60
|
+
return value;
|
|
61
|
+
};
|
|
62
|
+
if (result?.then) return result.then(finish);
|
|
63
|
+
finish(result);
|
|
64
|
+
return result;
|
|
65
|
+
};
|
|
66
|
+
if (description) {
|
|
67
|
+
if (Object.prototype.hasOwnProperty.call(this.locks, description)) this.locks[description].push(wrappedCallback);else {
|
|
68
|
+
this.locks[description] = [];
|
|
69
|
+
void wrappedCallback(description);
|
|
70
|
+
}
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (this.lock) this.lock.push(wrappedCallback);else {
|
|
74
|
+
this.lock = [];
|
|
75
|
+
void wrappedCallback(description);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Calling this method causes the given critical area to be finished and
|
|
81
|
+
* all functions given to "acquire()" will be executed in right order.
|
|
82
|
+
* @param description - A short string describing the critical areas
|
|
83
|
+
* properties.
|
|
84
|
+
* @returns Returns the return (maybe promise resolved) value of the
|
|
85
|
+
* callback given to the "acquire" method.
|
|
86
|
+
*/
|
|
87
|
+
async release(description) {
|
|
88
|
+
if (description) {
|
|
89
|
+
if (Object.prototype.hasOwnProperty.call(this.locks, description)) {
|
|
90
|
+
const callback = this.locks[description].shift();
|
|
91
|
+
if (callback === undefined) delete this.locks[description];else return await callback(description);
|
|
92
|
+
}
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const callback = this.lock?.shift();
|
|
96
|
+
if (callback === undefined) this.lock = undefined;else return await callback();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export default Lock;
|
|
100
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL0xvY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gIyEvdXNyL2Jpbi9lbnYgYmFiZWwtbm9kZVxuLy8gLSotIGNvZGluZzogdXRmLTggLSotXG4vKiogQG1vZHVsZSBMb2NrICovXG4ndXNlIHN0cmljdCdcbi8qICFcbiAgICByZWdpb24gaGVhZGVyXG4gICAgW1Byb2plY3QgcGFnZV0oaHR0cHM6Ly90b3JiZW4ud2Vic2l0ZS9jbGllbnRub2RlKVxuXG4gICAgQ29weXJpZ2h0IFRvcmJlbiBTaWNrZXJ0IChpbmZvW1wifmF0flwiXXRvcmJlbi53ZWJzaXRlKSAxNi4xMi4yMDEyXG5cbiAgICBMaWNlbnNlXG4gICAgLS0tLS0tLVxuXG4gICAgVGhpcyBsaWJyYXJ5IHdyaXR0ZW4gYnkgVG9yYmVuIFNpY2tlcnQgc3RhbmRzIHVuZGVyIGEgY3JlYXRpdmUgY29tbW9uc1xuICAgIG5hbWluZyAzLjAgdW5wb3J0ZWQgbGljZW5zZS5cbiAgICBTZWUgaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC9kZWVkLmRlXG4gICAgZW5kcmVnaW9uXG4qL1xuaW1wb3J0IHR5cGUge0xvY2tDYWxsYmFja0Z1bmN0aW9uLCBNYXBwaW5nfSBmcm9tICcuL3R5cGUnXG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbG9jayBzdGF0ZS5cbiAqIEBwcm9wZXJ0eSBsb2NrcyAtIE1hcHBpbmcgb2YgbG9jayBkZXNjcmlwdGlvbnMgdG8gdGhlaXIgY29ycmVzcG9uZGluZ1xuICogY2FsbGJhY2tzLlxuICovXG5leHBvcnQgY2xhc3MgTG9jazxUeXBlID0gc3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgbG9jaz86IEFycmF5PExvY2tDYWxsYmFja0Z1bmN0aW9uPFR5cGU+PlxuICAgIGxvY2tzOiBNYXBwaW5nPEFycmF5PExvY2tDYWxsYmFja0Z1bmN0aW9uPFR5cGU+Pj5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBsb2Nrcy5cbiAgICAgKiBAcGFyYW0gbG9ja3MgLSBNYXBwaW5nIG9mIGEgbG9jayBkZXNjcmlwdGlvbiB0byBjYWxsYmFja3MgZm9yIGNhbGxpbmdcbiAgICAgKiB3aGVuIGdpdmVuIGxvY2sgc2hvdWxkIGJlIHJlbGVhc2VkLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGxvY2tzOiBNYXBwaW5nPEFycmF5PExvY2tDYWxsYmFja0Z1bmN0aW9uPFR5cGU+Pj4gPSB7fSkge1xuICAgICAgICB0aGlzLmxvY2tzID0gbG9ja3NcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCBpbnRyb2R1Y2VzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIGEgY3JpdGljYWwgYXJlYSB3aXRoXG4gICAgICogcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucy4gVGhlIGFyZWEgd2lsbCBiZSBiaW5kIHRvIGdpdmVuIGRlc2NyaXB0aW9uXG4gICAgICogc3RyaW5nLiBTbyBkb24ndCB1c2Ugc2FtZSBuYW1lcyBmb3IgZGlmZmVyZW50IGFyZWFzLlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiAtIEEgc2hvcnQgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIGNyaXRpY2FsIGFyZWFzXG4gICAgICogcHJvcGVydGllcy5cbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBBIHByb2NlZHVyZSB3aGljaCBzaG91bGQgb25seSBiZSBleGVjdXRlZCBpZiB0aGVcbiAgICAgKiBpbnRlcnByZXRlciBpc24ndCBpbiB0aGUgZ2l2ZW4gY3JpdGljYWwgYXJlYS4gVGhlIGxvY2sgZGVzY3JpcHRpb25cbiAgICAgKiBzdHJpbmcgd2lsbCBiZSBnaXZlbiB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIGF1dG9SZWxlYXNlIC0gUmVsZWFzZSB0aGUgbG9jayBhZnRlciBleGVjdXRpb24gb2YgZ2l2ZW4gY2FsbGJhY2suXG4gICAgICogQHJldHVybnMgUmV0dXJucyBhIHByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCBhZnRlciByZWxlYXNpbmcgbG9jay5cbiAgICAgKi9cbiAgICBhY3F1aXJlKFxuICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZyxcbiAgICAgICAgY2FsbGJhY2s/OiBMb2NrQ2FsbGJhY2tGdW5jdGlvbjxUeXBlPixcbiAgICAgICAgYXV0b1JlbGVhc2UgPSBmYWxzZVxuICAgICk6IFByb21pc2U8VHlwZT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8VHlwZT4oKHJlc29sdmU6ICh2YWx1ZTogVHlwZSkgPT4gdm9pZCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlZENhbGxiYWNrOiBMb2NrQ2FsbGJhY2tGdW5jdGlvbjxUeXBlPiA9IChcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgICAgICAgICAgKTogUHJvbWlzZTxUeXBlPiB8IFR5cGUgPT4ge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IFByb21pc2U8VHlwZT4gfCBUeXBlIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKVxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjYWxsYmFjayhkZXNjcmlwdGlvbilcblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbmlzaCA9ICh2YWx1ZTogVHlwZSk6IFR5cGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXV0b1JlbGVhc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICB2b2lkIHRoaXMucmVsZWFzZShkZXNjcmlwdGlvbilcblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHZhbHVlKVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgocmVzdWx0IGFzIG51bGwgfCBQcm9taXNlPFR5cGU+KT8udGhlbilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChyZXN1bHQgYXMgUHJvbWlzZTxUeXBlPikudGhlbihmaW5pc2gpXG5cbiAgICAgICAgICAgICAgICBmaW5pc2gocmVzdWx0IGFzIFR5cGUpXG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIFR5cGVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NrcywgZGVzY3JpcHRpb24pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2tzW2Rlc2NyaXB0aW9uXS5wdXNoKHdyYXBwZWRDYWxsYmFjaylcbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Nrc1tkZXNjcmlwdGlvbl0gPSBbXVxuXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgd3JhcHBlZENhbGxiYWNrKGRlc2NyaXB0aW9uKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5sb2NrKVxuICAgICAgICAgICAgICAgIHRoaXMubG9jay5wdXNoKHdyYXBwZWRDYWxsYmFjaylcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9jayA9IFtdXG5cbiAgICAgICAgICAgICAgICB2b2lkIHdyYXBwZWRDYWxsYmFjayhkZXNjcmlwdGlvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCBjYXVzZXMgdGhlIGdpdmVuIGNyaXRpY2FsIGFyZWEgdG8gYmUgZmluaXNoZWQgYW5kXG4gICAgICogYWxsIGZ1bmN0aW9ucyBnaXZlbiB0byBcImFjcXVpcmUoKVwiIHdpbGwgYmUgZXhlY3V0ZWQgaW4gcmlnaHQgb3JkZXIuXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIC0gQSBzaG9ydCBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY3JpdGljYWwgYXJlYXNcbiAgICAgKiBwcm9wZXJ0aWVzLlxuICAgICAqIEByZXR1cm5zIFJldHVybnMgdGhlIHJldHVybiAobWF5YmUgcHJvbWlzZSByZXNvbHZlZCkgdmFsdWUgb2YgdGhlXG4gICAgICogY2FsbGJhY2sgZ2l2ZW4gdG8gdGhlIFwiYWNxdWlyZVwiIG1ldGhvZC5cbiAgICAgKi9cbiAgICBhc3luYyByZWxlYXNlKGRlc2NyaXB0aW9uPzogc3RyaW5nKTogUHJvbWlzZTxUeXBlIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2tzLCBkZXNjcmlwdGlvblxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrOiBMb2NrQ2FsbGJhY2tGdW5jdGlvbjxUeXBlPiB8IHVuZGVmaW5lZCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9ja3NbZGVzY3JpcHRpb25dLnNoaWZ0KClcblxuICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjayA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5sb2Nrc1tkZXNjcmlwdGlvbl1cbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBjYWxsYmFjayhkZXNjcmlwdGlvbilcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYWxsYmFjazogTG9ja0NhbGxiYWNrRnVuY3Rpb248VHlwZT4gfCB1bmRlZmluZWQgPVxuICAgICAgICAgICAgdGhpcy5sb2NrPy5zaGlmdCgpXG5cbiAgICAgICAgaWYgKGNhbGxiYWNrID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICB0aGlzLmxvY2sgPSB1bmRlZmluZWRcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGNhbGxiYWNrKClcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExvY2tcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsWUFBWTs7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYkE7QUFBQTtBQUFBO0FBQUE7QUFnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sTUFBTSxJQUFJLENBQTRCO0VBR3pDO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7RUFDSSxXQUFXLENBQUMsS0FBaUQsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUFBO0lBQUE7SUFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLO0VBQ3RCO0VBQ0E7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0ksT0FBTyxDQUNILFdBQW9CLEVBQ3BCLFFBQXFDLEVBQ3JDLFdBQVcsR0FBRyxLQUFLLEVBQ047SUFDYixPQUFPLElBQUksT0FBTyxDQUFRLE9BQThCLElBQVc7TUFDL0QsTUFBTSxlQUEyQyxHQUM3QyxXQUFvQixJQUNHO1FBQ3ZCLElBQUksTUFBd0M7UUFDNUMsSUFBSSxRQUFRLEVBQ1IsTUFBTSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFFbEMsTUFBTSxNQUFNLEdBQUksS0FBVyxJQUFXO1VBQ2xDLElBQUksV0FBVyxFQUNYLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7VUFFbEMsT0FBTyxDQUFDLEtBQUssQ0FBQztVQUVkLE9BQU8sS0FBSztRQUNoQixDQUFDO1FBRUQsSUFBSyxNQUFNLEVBQTJCLElBQUksRUFDdEMsT0FBUSxNQUFNLENBQW1CLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFakQsTUFBTSxDQUFDLE1BQWMsQ0FBQztRQUV0QixPQUFPLE1BQU07TUFDakIsQ0FBQztNQUVELElBQUksV0FBVyxFQUFFO1FBQ2IsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3BDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBRXhCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUM1QztVQUNELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtVQUU1QixLQUFLLGVBQWUsQ0FBQyxXQUFXLENBQUM7UUFDckM7UUFFQTtNQUNKO01BRUEsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUM5QjtRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRTtRQUVkLEtBQUssZUFBZSxDQUFDLFdBQVcsQ0FBQztNQUNyQztJQUNKLENBQUMsQ0FBQztFQUNOO0VBQ0E7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNJLE1BQU0sT0FBTyxDQUFDLFdBQW9CLEVBQTZCO0lBQzNELElBQUksV0FBVyxFQUFFO01BQ2IsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3BDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FDaEIsQ0FBQyxFQUFFO1FBQ0MsTUFBTSxRQUFnRCxHQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksUUFBUSxLQUFLLFNBQVMsRUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUU5QixPQUFPLE1BQU0sUUFBUSxDQUFDLFdBQVcsQ0FBQztNQUMxQztNQUVBO0lBQ0o7SUFFQSxNQUFNLFFBQWdELEdBQ2xELElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFdEIsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsTUFFckIsT0FBTyxNQUFNLFFBQVEsQ0FBQyxDQUFDO0VBQy9CO0FBQ0o7QUFFQSxlQUFlLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/dist/Logger.js
CHANGED
|
@@ -1 +1,185 @@
|
|
|
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/extends"));else if("function"==typeof define&&define.amd)define(["@babel/runtime/helpers/extends"],r);else{var t="object"==typeof exports?r(require("@babel/runtime/helpers/extends")):r(e["@babel/runtime/helpers/extends"]);for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(this,function(__WEBPACK_EXTERNAL_MODULE__3__){return function(){var __webpack_modules__=[function(e,r,t){t.d(r,{CLASS_TO_TYPE_MAPPING:function(){return n}});Symbol.for("clientnodeValue"),Symbol.for("clientnodeIgnoreNullAndUndefined");var n={"[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"};Object.prototype},function(e,r,t){t.d(r,{NOOP:function(){return l},globalContext:function(){return a}});var n,o,i=t(5);e=t.hmd(e);var a="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;a.fetch=a.fetch?a.fetch.bind(a):null!==(n=null==(o=(0,i.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 i.currentImport?(0,i.currentImport)("node-fetch").then(function(e){var t;return(t=e).default.apply(t,r)}):null};var l=function(){}},function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var _extends,VALUE_COPY_SYMBOL,IGNORE_NULL_AND_UNDEFINED_SYMBOL,isMap,isSet,isObject,isPlainObject,isFunction,isProxy,isNumeric,isNotANumber,evaluate,escapeRegularExpressions;__webpack_require__.d(__webpack_exports__,{determineType:function(){return determineType}});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);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,i){if(void 0===r&&(r=null),void 0===t&&(t=null),void 0===n&&(n={}),void 0===o&&(o=!0),void 0===i&&(i=[Object]),o&&"object"==typeof e)if(Array.isArray(e))for(var a,l=0,s=_createForOfIteratorHelperLoose(e);!(a=s()).done;){var u=a.value;e[l]=_addDynamicGetterAndSetter(u,r,t,n,o),l+=1}else if(isMap(e))for(var c,f=_createForOfIteratorHelperLoose(e);!(c=f()).done;){var _=c.value,p=_[0],d=_[1];e.set(p,_addDynamicGetterAndSetter(d,r,t,n,o))}else if(isSet(e)){for(var v,y=[],b=_createForOfIteratorHelperLoose(e);!(v=b()).done;){var g=v.value;e.delete(g),y.push(_addDynamicGetterAndSetter(g,r,t,n,o))}for(var O=0,h=y;O<h.length;O++){var m=h[O];e.add(m)}}else if(null!==e)for(var j=0,w=Object.entries(e);j<w.length;j++){var x=w[j],P=x[0],I=x[1];e[P]=_addDynamicGetterAndSetter(I,r,t,n,o)}if(r||t)for(var A,L,E=function(){var o=L.value;if(isObject(e)&&e instanceof o){var i=getProxyHandler(e,n),a=getProxyHandler(e,n);r&&(a.get=function(t,n){return"__target__"===n?e:"__revoke__"===n?function(){return u(),e}:"function"==typeof e[n]?e[n]:r(i.get(s,n),n,e)}),t&&(a.set=function(r,n,o){return i.set(s,n,t(n,o,e))});var l=Proxy.revocable({},a),s=l.proxy,u=l.revoke;return{v:s}}},M=_createForOfIteratorHelperLoose(i);!(L=M()).done;)if(A=E())return A.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 i,a;if(n.has(t))return r(null!==(i=n.get(t))&&void 0!==i?i:null,e,t,n);if(n.set(t,null),Array.isArray(t)){a=[];for(var l,s=_createForOfIteratorHelperLoose(t);!(l=s()).done;){var u=l.value;a.push(o(null,u))}}else{a={};for(var c=0,f=Object.entries(t);c<f.length;c++){var _=f[c],p=_[0],d=_[1];a[p]=o(p,d)}}return n.set(t,a),a}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 i=t.value,a=i[0],l=i[1];r&&(l=_convertMapToPlainObject(l,r)),["number","string"].includes(typeof a)&&(n[String(a)]=l)}return n}if(r)if(isPlainObject(e))for(var s=0,u=Object.entries(e);s<u.length;s++){var c=u[s],f=c[0],_=c[1];e[f]=_convertMapToPlainObject(_,r)}else if(Array.isArray(e))for(var p=0,d=0,v=e;d<v.length;d++){var y=v[d];e[p]=_convertMapToPlainObject(y,r),p+=1}else if(isSet(e)){for(var b,g=[],O=_createForOfIteratorHelperLoose(e);!(b=O()).done;){var h=b.value;e.delete(h),g.push(_convertMapToPlainObject(h,r))}for(var m=0,j=g;m<j.length;m++){var w=j[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 i=o[n],a=i[0],l=i[1];r&&(e[a]=_convertPlainObjectToMap(l,r)),t.set(a,e[a])}return t}if(r)if(Array.isArray(e))for(var s=0,u=0,c=e;u<c.length;u++){var f=c[u];e[s]=_convertPlainObjectToMap(f,r),s+=1}else if(isMap(e))for(var _,p=_createForOfIteratorHelperLoose(e);!(_=p()).done;){var d=_.value,v=d[0],y=d[1];e.set(v,_convertPlainObjectToMap(y,r))}else if(isSet(e)){for(var b,g=[],O=_createForOfIteratorHelperLoose(e);!(b=O()).done;){var h=b.value;e.delete(h),g.push(_convertPlainObjectToMap(h,r))}for(var m=0,j=g;m<j.length;m++){var w=j[m];e.add(w)}}}return e},_convertSubstringInPlainObject=function(e,r,t){for(var n=0,o=Object.entries(e);n<o.length;n++){var i=o[n],a=i[0],l=i[1];isPlainObject(l)?e[a]=_convertSubstringInPlainObject(l,r,t):"string"==typeof l&&(e[a]=l.replace(r,t))}return e},_copy=function(e,r,t,n,o,i,a,l){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===i&&(i=!1),void 0===a&&(a=[]),void 0===l&&(l=0),isObject(e)){if(!o){if(Array.isArray(e))return _copy(e,r,t,n,[],i,a,l);if(e instanceof Map)return _copy(e,r,t,n,new Map,i,a,l);if(e instanceof Set)return _copy(e,r,t,n,new Set,i,a,l);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,{},i,a,l)}if(e===o)throw new Error("Can't copy because source and destination are identical.");if(!i&&![void 0,null].includes(e)){var u=a.indexOf(e);if(-1!==u)return a[u];a.push(e)}var c=function(e){if(-1!==t&&t<l+1)return n===VALUE_COPY_SYMBOL?e:n;var o=_copy(e,r,t,n,null,i,a,l+1);return i||[void 0,null].includes(e)||"object"!=typeof e||a.push(e),o};if(Array.isArray(e))for(var f,_=_createForOfIteratorHelperLoose(e);!(f=_()).done;){var p=f.value;o.push(c(p))}else if(e instanceof Map)for(var d,v=_createForOfIteratorHelperLoose(e);!(d=v()).done;){var y=d.value,b=y[0],g=y[1];o.set(b,c(g))}else if(e instanceof Set)for(var O,h=_createForOfIteratorHelperLoose(e);!(O=h()).done;){var m=O.value;o.add(c(m))}else for(var j=0,w=Object.entries(e);j<w.length;j++){var x=w[j],P=x[0],I=x[1];try{o[P]=c(I)}catch(e){throw new Error('Failed to copy property value object "'+P+'": '+_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],i=new FileReader;i.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])+")"))},i.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 i=r.value,a=_equals(e,i,_extends({},options,{deep:options.deep-1}));if("boolean"==typeof a){if(a){t=!0;break}}else n.push(a)}var l=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(l(r.some(function(e){return e})))},function(){})})),{v:l(!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,i=_createForOfIteratorHelperLoose(options.exceptionPrefixes);!(n=i()).done;){var a=n.value;if(r.startsWith(a)){o=!0;break}}if(o)return 0;if(0!==options.deep){var l=_equals(t,second[r],_extends({},options,{deep:options.deep-1}));if(!l)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(l,"then")&&promises.push(l.then(s)),"string"==typeof l)return{v:s(l)}}},_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 i=function(e,t){void 0===t&&(t=n);var i=evaluate(e,r,t===o);if(i.error)throw new Error(i.error);return i.result},a=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],u=s[0],c=s[1];if("__target__"!==u&&isObject(c)){var f=c;if(a(f),Object.prototype.hasOwnProperty.call(f,n)||Object.prototype.hasOwnProperty.call(f,o)){var _=f;e[u]=new Proxy(f,{get:function(e,r){if("__target__"===r)return e;if("hasOwnProperty"===r)return e[r];for(var t=0,a=[n,o];t<a.length;t++){var s=a[t];if(r===s&&"string"==typeof e[r])return l(i(e[r],s))}var u=l(e);if("toString"===r){var c=i(u);return c[r].bind(c)}if("string"!=typeof r){var f,_=i(u);return null!=(f=_[r])&&f.bind?_[r].bind(_):_[r]}for(var p=0,d=[n,o];p<d.length;p++){var v=d[p];if(Object.prototype.hasOwnProperty.call(e,v))return i(u,v)[r]}return u[r]},ownKeys:function(e){for(var r=0,t=[n,o];r<t.length;r++){var a=t[r];if(Object.prototype.hasOwnProperty.call(e,a))return Object.getOwnPropertyNames(l(i(e[a],a)))}return Object.getOwnPropertyNames(e)}}),e[u].__target__||(e[u].__target__=_)}}}return e},l=function(e){if(isObject(e)){if(isProxy(e)){for(var r=0,t=[n,o];r<t.length;r++){var a=t[r];if(Object.prototype.hasOwnProperty.call(e,a))return e[a]}e=e.__target__}for(var s=0,u=Object.entries(e);s<u.length;s++){var c=u[s],f=c[0],_=c[1];if([n,o].includes(f))return"undefined"==typeof Proxy?l(i(_)):_;e[f]=l(_)}}return e};r.resolve=l;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],i=n[1];if("__target__"!==o&&null!==i&&["function","undefined"].includes(typeof i)){var a=i.__target__;void 0!==a&&(e[o]=a),s(i)}}return e};return Object.prototype.hasOwnProperty.call(e,n)?i(e[n]):Object.prototype.hasOwnProperty.call(e,o)?i(e[o],o):s(l(a(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],i=o[0],a=o[1];!r.includes(i)&&r.some(function(r){return Object.prototype.hasOwnProperty.call(e,r)})?delete e[i]:isPlainObject(a)&&_removeKeysInEvaluation(a,r)}return e},_extend=function(e,r){for(var t=!1,n=arguments.length,o=new Array(n>2?n-2:0),i=2;i<n;i++)o[i-2]=arguments[i];var a,l=o;e===IGNORE_NULL_AND_UNDEFINED_SYMBOL||"boolean"==typeof e?(t=e,a=r):(a=e,isObject(r)?l=[r].concat(l):void 0!==r&&(a=r));for(var s,u=function(e,r){return r===e?e:t&&r&&(isPlainObject(r)||isMap(r))?(n=isMap(r)?e&&isMap(e)?e:new Map:e&&isPlainObject(e)?e:{},_extend(t,n,r)):r;var n},c=_createForOfIteratorHelperLoose(l);!(s=c()).done;){var f=s.value,_=typeof a,p=typeof f;if(isMap(a)&&(_+=" Map"),isMap(f)&&(p+=" Map"),_===p&&a!==f)if(isMap(a)&&isMap(f))for(var d,v=_createForOfIteratorHelperLoose(f);!(d=v()).done;){var y=d.value,b=y[0],g=y[1];a.set(b,u(a.get(b),g))}else if(!isObject(a)||Array.isArray(a)||"undefined"!=typeof Blob&&a instanceof Blob||!isObject(f)||Array.isArray(f)||"undefined"!=typeof Blob&&f instanceof Blob)a=f;else for(var O=0,h=Object.entries(f);O<h.length;O++){var m=h[O],j=m[0],w=m[1];t===IGNORE_NULL_AND_UNDEFINED_SYMBOL&&[null,void 0].includes(w)||(a[j]=u(a[j],w))}else a=f}return a},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 i=0,a=Object.entries(n);i<a.length;i++){var l=a[i],s=l[0],u=l[1];Object.prototype.hasOwnProperty.call(e,s)&&(!0===u?o[s]=e[s]:(isPlainObject(u)||Array.isArray(u)&&u.length)&&"object"==typeof e[s]&&(o[s]=_mask(e[s],{include:u})))}else o=e;if(isPlainObject(t)){for(var c=!1,f=_extends({},o),_=0,p=Object.entries(t);_<p.length;_++){var d=p[_],v=d[0],y=d[1];if(Object.prototype.hasOwnProperty.call(f,v))if(!0===y)c=!0,delete f[v];else if((isPlainObject(y)||Array.isArray(y)&&y.length)&&"object"==typeof f[v]){var b=f[v];f[v]=_mask(f[v],{exclude:y}),f[v]!==b&&(c=!0)}}c&&(o=f)}return o},_modifyObject=function(e,r,t,n,o,i,a,l,s){if(void 0===t&&(t="__remove__"),void 0===n&&(n="__prepend__"),void 0===o&&(o="__append__"),void 0===i&&(i="__"),void 0===a&&(a="__"),void 0===l&&(l=null),void 0===s&&(s=null),isMap(r)&&isMap(e))for(var u,c=_createForOfIteratorHelperLoose(r);!(u=c()).done;){var f=u.value,_=f[0],p=f[1];e.has(_)&&_modifyObject(e.get(_),p,t,n,o,i,a,r,_)}else if(isObject(r)&&isObject(e))for(var d=0,v=Object.entries(r);d<v.length;d++){var y=v[d],b=y[0],g=y[1],O=NaN;if(Array.isArray(e)&&b.startsWith(i)&&b.endsWith(a)&&((O=parseInt(b.substring(i.length,b.length-a.length),10))<0||O>=e.length)&&(O=NaN),[t,n,o].includes(b)||!isNaN(O)){if(Array.isArray(e))if(b===t)for(var h,m=_createForOfIteratorHelperLoose([].concat(g));!(h=m()).done;){var j=h.value;"string"==typeof j&&j.startsWith(i)&&j.endsWith(a)?e.splice(parseInt(j.substring(i.length,j.length-a.length),10),1):e.includes(j)?e.splice(e.indexOf(j),1):"number"==typeof j&&j<e.length&&e.splice(j,1)}else b===o?e=e.concat(g):b===n?e=[].concat(g).concat(e):isObject(e[O])&&isObject(g)?_extend(!0,_modifyObject(e[O],g,t,n,o,i,a),e[O],g):e[O]=g;else if(b===t)for(var w,x=_createForOfIteratorHelperLoose([].concat(g));!(w=x()).done;){var P=w.value;"string"==typeof P&&Object.prototype.hasOwnProperty.call(e,P)&&delete e[P]}delete r[b],l&&"string"==typeof s&&delete l[s]}else null!==e&&Object.prototype.hasOwnProperty.call(e,b)&&(e[b]=_modifyObject(e[b],g,t,n,o,i,a,r,b))}return e},_removeKeyPrefixes=function(e,r){void 0===r&&(r="#");var t=[].concat(r);if(Array.isArray(e))for(var n,o=0,i=_createForOfIteratorHelperLoose(e.slice());!(n=i()).done;){var a=n.value,l=!1;if("string"==typeof a){for(var s,u=_createForOfIteratorHelperLoose(t);!(s=u()).done;){var c=s.value;if(a.startsWith(c+":")){e.splice(o,1),l=!0;break}}if(l)continue}e[o]=_removeKeyPrefixes(a,t),o+=1}else if(isSet(e))for(var f,_=_createForOfIteratorHelperLoose(new Set(e));!(f=_()).done;){var p=f.value,d=!1;if("string"==typeof p){for(var v,y=_createForOfIteratorHelperLoose(t);!(v=y()).done;){var b=v.value;if(p.startsWith(b+":")){e.delete(p),d=!0;break}}if(d)continue}_removeKeyPrefixes(p,t)}else if(isMap(e))for(var g,O=_createForOfIteratorHelperLoose(new Map(e));!(g=O()).done;){var h=g.value,m=h[0],j=h[1],w=!1;if("string"==typeof m){for(var x,P=_createForOfIteratorHelperLoose(t);!(x=P()).done;){var I=x.value,A=escapeRegularExpressions(I);if(new RegExp("^"+A+"[0-9]*$").test(m)){e.delete(m),w=!0;break}}if(w)continue}e.set(m,_removeKeyPrefixes(j,t))}else if(isObject(e))for(var L=0,E=Object.entries(Object.assign({},e));L<E.length;L++){for(var M,S=E[L],N=S[0],q=S[1],k=!1,R=_createForOfIteratorHelperLoose(t);!(M=R()).done;){var V=M.value,T=escapeRegularExpressions(V);if(new RegExp("^"+T+"[0-9]*$").test(N)){delete e[N],k=!0;break}}k||(e[N]=_removeKeyPrefixes(q,t))}return e},_represent=function(e,r,t,n,o,i){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===i&&(i=8),0===i)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 a,l="[",s=!1,u=1,c=_createForOfIteratorHelperLoose(e);!(a=c()).done;){var f=a.value;if(u>r){l+="\n"+n+"...";break}s&&(l+=","),l+="\n"+n+t+_represent(f,r,t,""+n+t,o,i-1),s=!0,u+=1}return s&&(l+="\n"+n),l+="]"}if(isMap(e)){for(var _,p="",d=!1,v=1,y=_createForOfIteratorHelperLoose(e);!(_=y()).done;){var b=_.value,g=b[0],O=b[1];if(v>r){p+=",\n"+n+"...";break}d&&(p+=",\n"+n+t),p+=_represent(g,r,t,""+n+t,o,i-1)+" -> "+_represent(O,r,t,""+n+t,o,i-1),d=!0,v+=1}return d||(p="EmptyMap"),p}if(isSet(e)){for(var h,m="{",j=!1,w=1,x=_createForOfIteratorHelperLoose(e);!(h=x()).done;){var P=h.value;if(w>r){m+=",\n"+n+"...";break}j&&(m+=","),m+="\n"+n+t+_represent(P,r,t,""+n+t,o,i-1),j=!0,w+=1}return j?m+="\n"+n+"}":m="EmptySet",m}if(isFunction(e))return"__function__";for(var I,A="{",L=!1,E=1,M=_createForOfIteratorHelperLoose(Object.getOwnPropertyNames(e).sort());!(I=M()).done;){var S=I.value;if(E>r){A+=",\n"+n+"...";break}L&&(A+=","),A+="\n"+n+t+S+": "+_represent(e[S],r,t,""+n+t,o,i-1),L=!0,E+=1}return L&&(A+="\n"+n),A+="}"},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 i=n.value;r.push(i[0])}else if(null!==e)for(var a=0,l=Object.keys(e);a<l.length;a++){var s=l[a];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 i=t.value;e[n]=_unwrapProxy(i,r),n+=1}else if(isMap(e))for(var a,l=_createForOfIteratorHelperLoose(e);!(a=l()).done;){var s=a.value,u=s[0],c=s[1];e.set(u,_unwrapProxy(c,r))}else if(isSet(e)){for(var f,_=[],p=_createForOfIteratorHelperLoose(e);!(f=p()).done;){var d=f.value;e.delete(d),_.push(_unwrapProxy(d,r))}for(var v=0,y=_;v<y.length;v++){var b=y[v];e.add(b)}}else for(var g=0,O=Object.entries(e);g<O.length;g++){var h=O[g],m=h[0],j=h[1];e[m]=_unwrapProxy(j,r)}}return e}},function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__3__},function(e,r,t){t.d(r,{isNumeric:function(){return o}});var n=t(2);var o=function(e){var r=(0,n.determineType)(e);return["number","string"].includes(r)&&!isNaN(e-parseFloat(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],i=o[0],a=o[1];r[i]=a,delete e[i]}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],i=o[0],a=o[1];e[i]=a}},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,r,t){t.d(r,{CLI_COLOR:function(){return n}});var n={black:"[30m",blink:"[5m",blue:"[0;34m",bold:"[1m",cyan:"[36m",darkGray:"[0;90m",default:"[0m",dim:"[2m",green:"[32m",invert:"[7m",invisible:"[8m",lightBlue:"[0;94m",lightCyan:"[0;96m",lightGray:"[0;37m",lightGreen:"[0;92m",lightMagenta:"[0;95m",lightRed:"[0;91m",lightYellow:"[0;93m",magenta:"[35m",nodim:"[22m",noblink:"[25m",nobold:"[21m",noinvert:"[27m",noinvisible:"[28m",nounderline:"[24m",red:"[31m",underline:"[4m",white:"[37m",yellow:"[33m"}},function(e,r,t){t.r(r),t.d(r,{LEVELS:function(){return s},LEVELS_COLOR:function(){return u},Logger:function(){return c}});var n,o=t(17),i=t(1),a=t(4),l=t(2),s=["error","critical","warn","info","debug"],u=[o.CLI_COLOR.red,o.CLI_COLOR.magenta,o.CLI_COLOR.yellow,o.CLI_COLOR.green,o.CLI_COLOR.blue],c=function(){function e(r){void 0===r&&(r={}),this.level=e.defaultLevel,this.name=e.defaultName,this.configure(r),e.instances[this.name]=this}e.configureAllInstances=function(r){void 0===r&&(r={}),r.level&&(e.defaultLevel=r.level),r.name&&(e.defaultName=r.name);for(var t=0,n=Object.values(e.instances);t<n.length;t++){n[t].configure(r)}};var r=e.prototype;return r.configure=function(r){var t=r.name,n=r.level;this.level=n||e.defaultLevel,this.name=t||e.defaultName},r.log=function(e,r,t,n){void 0===r&&(r=!1),void 0===t&&(t=!1),void 0===n&&(n="info");var l=s.indexOf(this.level),c=s.indexOf(n);if(r||l>=c){for(var f,_=[],p=""+u[c]+n+o.CLI_COLOR.default+":"+this.name+":"+(new Date).toISOString()+":",d=arguments.length,v=new Array(d>4?d-4:0),y=4;y<d;y++)v[y-4]=arguments[y];if(t)_.push(e);else if("string"==typeof e)_.push.apply(_,[p,e].concat(v));else if((0,a.isNumeric)(e)||"boolean"==typeof e)_.push.apply(_,[p,e.toString()].concat(v));else{var b=p.substring(0,p.length-1),g=77+u[c].length+o.CLI_COLOR.default.length-b.length,O=Math.floor(g/2);this.log(","+"-".repeat(O)+b+"-".repeat(O)+"-".repeat(g%2)+",",r,!0,n),this.log(e,r,!0,n),this.log("'"+"-".repeat(77)+"'",r,!0,n)}if(_.length)if(i.globalContext.console&&n in i.globalContext.console&&i.globalContext.console[n]!==i.NOOP)(f=i.globalContext.console)[n].apply(f,_);else{var h;Object.prototype.hasOwnProperty.call(i.globalContext,"window")&&Object.prototype.hasOwnProperty.call(i.globalContext.window,"alert")&&(null==(h=i.globalContext.window)||h.alert(_.join(" ")))}}},r.info=function(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];this.log.apply(this,[e,!1,!1,"info"].concat(t))},r.debug=function(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];this.log.apply(this,[e,!1,!1,"debug"].concat(t))},r.error=function(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];this.log.apply(this,[e,!0,!1,"error"].concat(t))},r.critical=function(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];this.log.apply(this,[e,!0,!1,"warn"].concat(t))},r.warn=function(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];this.log.apply(this,[e,!1,!1,"warn"].concat(t))},e.show=function(r,t,n){void 0===t&&(t=3),void 0===n&&(n=0);var o="";if("object"===(0,l.determineType)(r)){for(var i=0,a=Object.entries(r);i<a.length;i++){var s=a[i],u=s[0],c=s[1];o+=u+": ",o+=n<=t?e.show(c,t,n+1):String(c),o+="\n"}return o.trim()}return(o=String(r).trim())+' (Type: "'+(0,l.determineType)(r)+'")'},e}();n=c,c.defaultLevel="warn",c.defaultName="app",c.selfClass=n,c.instances={},c.runtimeVersion=Math.random(),r.default=c}],__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__(18);return __webpack_exports__}()});
|
|
1
|
+
// #!/usr/bin/env babel-node
|
|
2
|
+
// -*- coding: utf-8 -*-
|
|
3
|
+
/** @module Logger */
|
|
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
|
+
var _Logger;
|
|
21
|
+
import "core-js/modules/es.array.push.js";
|
|
22
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
23
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
24
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
25
|
+
import { CLI_COLOR } from "./cli.js";
|
|
26
|
+
import { globalContext, NOOP } from "./context.js";
|
|
27
|
+
import { isNumeric } from "./indicators.js";
|
|
28
|
+
import { determineType } from "./object.js";
|
|
29
|
+
export const LEVELS = ['error', 'critical', 'warn', 'info', 'debug'];
|
|
30
|
+
export const LEVELS_COLOR = [CLI_COLOR.red, CLI_COLOR.magenta, CLI_COLOR.yellow, CLI_COLOR.green, CLI_COLOR.blue];
|
|
31
|
+
/**
|
|
32
|
+
* This plugin provides such interface logic like generic controller logic for
|
|
33
|
+
* integrating plugins into $, mutual exclusion for dependent gui elements,
|
|
34
|
+
* logging additional string, array or function handling. A set of helper
|
|
35
|
+
* functions to parse option objects dom trees or handle events is also
|
|
36
|
+
* provided.
|
|
37
|
+
* @property level - Logging level.
|
|
38
|
+
* @property name - Logger description.
|
|
39
|
+
*/
|
|
40
|
+
export class Logger {
|
|
41
|
+
/**
|
|
42
|
+
* Configures all logger instances.
|
|
43
|
+
* @param options - Options to set.
|
|
44
|
+
*/
|
|
45
|
+
static configureAllInstances(options = {}) {
|
|
46
|
+
if (options.level) Logger.defaultLevel = options.level;
|
|
47
|
+
if (options.name) Logger.defaultName = options.name;
|
|
48
|
+
for (const logger of Object.values(Logger.instances)) logger.configure(options);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Initializes logger.
|
|
52
|
+
* @param options - Options to set.
|
|
53
|
+
*/
|
|
54
|
+
constructor(options = {}) {
|
|
55
|
+
_defineProperty(this, "level", Logger.defaultLevel);
|
|
56
|
+
_defineProperty(this, "name", Logger.defaultName);
|
|
57
|
+
this.configure(options);
|
|
58
|
+
Logger.instances[this.name] = this;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Configures logger.
|
|
62
|
+
* @param options - Options to set.
|
|
63
|
+
* @param options.name - Description of the logger instance.
|
|
64
|
+
* @param options.level - Logging level to configure.
|
|
65
|
+
*/
|
|
66
|
+
configure({
|
|
67
|
+
name,
|
|
68
|
+
level
|
|
69
|
+
}) {
|
|
70
|
+
if (level) this.level = level;else this.level = Logger.defaultLevel;
|
|
71
|
+
if (name) this.name = name;else this.name = Logger.defaultName;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Shows the given object's representation in the browsers console if
|
|
75
|
+
* possible or in a standalone alert-window as fallback.
|
|
76
|
+
* @param object - Any object to print.
|
|
77
|
+
* @param force - If set to "true" given input will be shown independently
|
|
78
|
+
* of current logging configuration or interpreter's console
|
|
79
|
+
* implementation.
|
|
80
|
+
* @param avoidAnnotation - If set to "true" given input has no module or
|
|
81
|
+
* log level specific annotations.
|
|
82
|
+
* @param level - Description of log messages importance.
|
|
83
|
+
* @param additionalArguments - Additional values to print.
|
|
84
|
+
*/
|
|
85
|
+
log(object, force = false, avoidAnnotation = false, level = 'info', ...additionalArguments) {
|
|
86
|
+
const currentLevelIndex = LEVELS.indexOf(this.level);
|
|
87
|
+
const levelIndex = LEVELS.indexOf(level);
|
|
88
|
+
if (force || currentLevelIndex >= levelIndex) {
|
|
89
|
+
const messages = [];
|
|
90
|
+
const annotation = `${LEVELS_COLOR[levelIndex]}${level}` + `${CLI_COLOR.default}:${this.name}:` + `${new Date().toISOString()}:`;
|
|
91
|
+
if (avoidAnnotation) messages.push(object);else if (typeof object === 'string') messages.push(annotation, object, ...additionalArguments);else if (isNumeric(object) || typeof object === 'boolean') messages.push(annotation, object.toString(), ...additionalArguments);else {
|
|
92
|
+
const multiLineAnnotation = annotation.substring(0, annotation.length - 1);
|
|
93
|
+
const lineLength = 79 - 2;
|
|
94
|
+
// Color codes are invisible so we have to add it.
|
|
95
|
+
const remainingLength = lineLength + LEVELS_COLOR[levelIndex].length + CLI_COLOR.default.length - multiLineAnnotation.length;
|
|
96
|
+
const halfRemainingLength = Math.floor(remainingLength / 2);
|
|
97
|
+
this.log(`,${'-'.repeat(halfRemainingLength)}` + multiLineAnnotation + '-'.repeat(halfRemainingLength) + `${'-'.repeat(remainingLength % 2)},`, force, true, level);
|
|
98
|
+
this.log(object, force, true, level);
|
|
99
|
+
this.log(`'${'-'.repeat(lineLength)}'`, force, true, level);
|
|
100
|
+
}
|
|
101
|
+
if (messages.length) if (!(globalContext.console && level in globalContext.console) || globalContext.console[level] === NOOP) {
|
|
102
|
+
if (Object.prototype.hasOwnProperty.call(globalContext, 'window') && Object.prototype.hasOwnProperty.call(globalContext.window, 'alert')) globalContext.window?.alert(messages.join(' '));
|
|
103
|
+
} else globalContext.console[level](...messages);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Wrapper method for the native console method usually provided by
|
|
108
|
+
* interpreter.
|
|
109
|
+
* @param object - Any object to print.
|
|
110
|
+
* @param additionalArguments - Additional arguments are used for string
|
|
111
|
+
* formatting.
|
|
112
|
+
*/
|
|
113
|
+
info(object, ...additionalArguments) {
|
|
114
|
+
this.log(object, false, false, 'info', ...additionalArguments);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Wrapper method for the native console method usually provided by
|
|
118
|
+
* interpreter.
|
|
119
|
+
* @param object - Any object to print.
|
|
120
|
+
* @param additionalArguments - Additional arguments are used for string
|
|
121
|
+
* formatting.
|
|
122
|
+
*/
|
|
123
|
+
debug(object, ...additionalArguments) {
|
|
124
|
+
this.log(object, false, false, 'debug', ...additionalArguments);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Wrapper method for the native console method usually provided by
|
|
128
|
+
* interpreter.
|
|
129
|
+
* @param object - Any object to print.
|
|
130
|
+
* @param additionalArguments - Additional arguments are used for string
|
|
131
|
+
* formatting.
|
|
132
|
+
*/
|
|
133
|
+
error(object, ...additionalArguments) {
|
|
134
|
+
this.log(object, true, false, 'error', ...additionalArguments);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Wrapper method for the native console method usually provided by
|
|
138
|
+
* interpreter.
|
|
139
|
+
* @param object - Any object to print.
|
|
140
|
+
* @param additionalArguments - Additional arguments are used for string
|
|
141
|
+
* formatting.
|
|
142
|
+
*/
|
|
143
|
+
critical(object, ...additionalArguments) {
|
|
144
|
+
this.log(object, true, false, 'warn', ...additionalArguments);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Wrapper method for the native console method usually provided by
|
|
148
|
+
* interpreter.
|
|
149
|
+
* @param object - Any object to print.
|
|
150
|
+
* @param additionalArguments - Additional arguments are used for string
|
|
151
|
+
* formatting.
|
|
152
|
+
*/
|
|
153
|
+
warn(object, ...additionalArguments) {
|
|
154
|
+
this.log(object, false, false, 'warn', ...additionalArguments);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Dumps a given object in a human-readable format.
|
|
158
|
+
* @param object - Any object to show.
|
|
159
|
+
* @param level - Number of levels to dig into given object recursively.
|
|
160
|
+
* @param currentLevel - Maximal number of recursive function calls to
|
|
161
|
+
* represent given object.
|
|
162
|
+
* @returns Returns the serialized version of given object.
|
|
163
|
+
*/
|
|
164
|
+
static show(object, level = 3, currentLevel = 0) {
|
|
165
|
+
let output = '';
|
|
166
|
+
if (determineType(object) === 'object') {
|
|
167
|
+
for (const [key, value] of Object.entries(object)) {
|
|
168
|
+
output += `${key}: `;
|
|
169
|
+
if (currentLevel <= level) output += Logger.show(value, level, currentLevel + 1);else output += String(value);
|
|
170
|
+
output += '\n';
|
|
171
|
+
}
|
|
172
|
+
return output.trim();
|
|
173
|
+
}
|
|
174
|
+
output = String(object).trim();
|
|
175
|
+
return `${output} (Type: "${determineType(object)}")`;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
_Logger = Logger;
|
|
179
|
+
_defineProperty(Logger, "defaultLevel", 'warn');
|
|
180
|
+
_defineProperty(Logger, "defaultName", 'app');
|
|
181
|
+
_defineProperty(Logger, "selfClass", _Logger);
|
|
182
|
+
_defineProperty(Logger, "instances", {});
|
|
183
|
+
_defineProperty(Logger, "runtimeVersion", Math.random());
|
|
184
|
+
export default Logger;
|
|
185
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMb2dnZXIiXSwic291cmNlcyI6WyIuLi9zcmMvTG9nZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vICMhL3Vzci9iaW4vZW52IGJhYmVsLW5vZGVcbi8vIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLVxuLyoqIEBtb2R1bGUgTG9nZ2VyICovXG4ndXNlIHN0cmljdCdcbi8qICFcbiAgICByZWdpb24gaGVhZGVyXG4gICAgW1Byb2plY3QgcGFnZV0oaHR0cHM6Ly90b3JiZW4ud2Vic2l0ZS9jbGllbnRub2RlKVxuXG4gICAgQ29weXJpZ2h0IFRvcmJlbiBTaWNrZXJ0IChpbmZvW1wifmF0flwiXXRvcmJlbi53ZWJzaXRlKSAxNi4xMi4yMDEyXG5cbiAgICBMaWNlbnNlXG4gICAgLS0tLS0tLVxuXG4gICAgVGhpcyBsaWJyYXJ5IHdyaXR0ZW4gYnkgVG9yYmVuIFNpY2tlcnQgc3RhbmRzIHVuZGVyIGEgY3JlYXRpdmUgY29tbW9uc1xuICAgIG5hbWluZyAzLjAgdW5wb3J0ZWQgbGljZW5zZS5cbiAgICBTZWUgaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC9kZWVkLmRlXG4gICAgZW5kcmVnaW9uXG4qL1xuaW1wb3J0IHR5cGUge0xvZ2dlck9wdGlvbnMsIE1hcHBpbmd9IGZyb20gJy4vdHlwZSdcblxuaW1wb3J0IHtDTElfQ09MT1J9IGZyb20gJy4vY2xpJ1xuaW1wb3J0IHtnbG9iYWxDb250ZXh0LCBOT09QfSBmcm9tICcuL2NvbnRleHQnXG5pbXBvcnQge2lzTnVtZXJpY30gZnJvbSAnLi9pbmRpY2F0b3JzJ1xuaW1wb3J0IHtkZXRlcm1pbmVUeXBlfSBmcm9tICcuL29iamVjdCdcblxuZXhwb3J0IGNvbnN0IExFVkVMUyA9IFtcbiAgICAnZXJyb3InLFxuICAgICdjcml0aWNhbCcsXG4gICAgJ3dhcm4nLFxuICAgICdpbmZvJyxcbiAgICAnZGVidWcnXG5dIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTEVWRUxTX0NPTE9SID0gW1xuICAgIENMSV9DT0xPUi5yZWQsXG4gICAgQ0xJX0NPTE9SLm1hZ2VudGEsXG4gICAgQ0xJX0NPTE9SLnllbGxvdyxcbiAgICBDTElfQ09MT1IuZ3JlZW4sXG4gICAgQ0xJX0NPTE9SLmJsdWVcbl1cblxuZXhwb3J0IHR5cGUgTGV2ZWwgPSB0eXBlb2YgTEVWRUxTW251bWJlcl1cbi8qKlxuICogVGhpcyBwbHVnaW4gcHJvdmlkZXMgc3VjaCBpbnRlcmZhY2UgbG9naWMgbGlrZSBnZW5lcmljIGNvbnRyb2xsZXIgbG9naWMgZm9yXG4gKiBpbnRlZ3JhdGluZyBwbHVnaW5zIGludG8gJCwgbXV0dWFsIGV4Y2x1c2lvbiBmb3IgZGVwZW5kZW50IGd1aSBlbGVtZW50cyxcbiAqIGxvZ2dpbmcgYWRkaXRpb25hbCBzdHJpbmcsIGFycmF5IG9yIGZ1bmN0aW9uIGhhbmRsaW5nLiBBIHNldCBvZiBoZWxwZXJcbiAqIGZ1bmN0aW9ucyB0byBwYXJzZSAgb3B0aW9uIG9iamVjdHMgZG9tIHRyZWVzIG9yIGhhbmRsZSBldmVudHMgaXMgYWxzb1xuICogcHJvdmlkZWQuXG4gKiBAcHJvcGVydHkgbGV2ZWwgLSBMb2dnaW5nIGxldmVsLlxuICogQHByb3BlcnR5IG5hbWUgLSBMb2dnZXIgZGVzY3JpcHRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dnZXIge1xuICAgIHN0YXRpYyBkZWZhdWx0TGV2ZWw6IExldmVsID0gJ3dhcm4nXG4gICAgc3RhdGljIGRlZmF1bHROYW1lID0gJ2FwcCdcblxuICAgIHN0YXRpYyBzZWxmQ2xhc3MgPSBMb2dnZXJcbiAgICBzdGF0aWMgaW5zdGFuY2VzOiBNYXBwaW5nPExvZ2dlcj4gPSB7fVxuXG4gICAgc3RhdGljIHJ1bnRpbWVWZXJzaW9uID0gTWF0aC5yYW5kb20oKVxuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlcyBhbGwgbG9nZ2VyIGluc3RhbmNlcy5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gc2V0LlxuICAgICAqL1xuICAgIHN0YXRpYyBjb25maWd1cmVBbGxJbnN0YW5jZXMob3B0aW9uczogUGFydGlhbDxMb2dnZXJPcHRpb25zPiA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRpb25zLmxldmVsKVxuICAgICAgICAgICAgTG9nZ2VyLmRlZmF1bHRMZXZlbCA9IG9wdGlvbnMubGV2ZWxcblxuICAgICAgICBpZiAob3B0aW9ucy5uYW1lKVxuICAgICAgICAgICAgTG9nZ2VyLmRlZmF1bHROYW1lID0gb3B0aW9ucy5uYW1lXG5cbiAgICAgICAgZm9yIChjb25zdCBsb2dnZXIgb2YgT2JqZWN0LnZhbHVlcyhMb2dnZXIuaW5zdGFuY2VzKSlcbiAgICAgICAgICAgIGxvZ2dlci5jb25maWd1cmUob3B0aW9ucylcbiAgICB9XG5cbiAgICBsZXZlbDogTGV2ZWwgPSBMb2dnZXIuZGVmYXVsdExldmVsXG4gICAgbmFtZSA9IExvZ2dlci5kZWZhdWx0TmFtZVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgbG9nZ2VyLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyB0byBzZXQuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogUGFydGlhbDxMb2dnZXJPcHRpb25zPiA9IHt9KSB7XG4gICAgICAgIHRoaXMuY29uZmlndXJlKG9wdGlvbnMpXG5cbiAgICAgICAgTG9nZ2VyLmluc3RhbmNlc1t0aGlzLm5hbWVdID0gdGhpc1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmVzIGxvZ2dlci5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gc2V0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zLm5hbWUgLSBEZXNjcmlwdGlvbiBvZiB0aGUgbG9nZ2VyIGluc3RhbmNlLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLmxldmVsIC0gTG9nZ2luZyBsZXZlbCB0byBjb25maWd1cmUuXG4gICAgICovXG4gICAgY29uZmlndXJlKHtuYW1lLCBsZXZlbH06IFBhcnRpYWw8TG9nZ2VyT3B0aW9ucz4pIHtcbiAgICAgICAgaWYgKGxldmVsKVxuICAgICAgICAgICAgdGhpcy5sZXZlbCA9IGxldmVsXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMubGV2ZWwgPSBMb2dnZXIuZGVmYXVsdExldmVsXG5cbiAgICAgICAgaWYgKG5hbWUpXG4gICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMubmFtZSA9IExvZ2dlci5kZWZhdWx0TmFtZVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTaG93cyB0aGUgZ2l2ZW4gb2JqZWN0J3MgcmVwcmVzZW50YXRpb24gaW4gdGhlIGJyb3dzZXJzIGNvbnNvbGUgaWZcbiAgICAgKiBwb3NzaWJsZSBvciBpbiBhIHN0YW5kYWxvbmUgYWxlcnQtd2luZG93IGFzIGZhbGxiYWNrLlxuICAgICAqIEBwYXJhbSBvYmplY3QgLSBBbnkgb2JqZWN0IHRvIHByaW50LlxuICAgICAqIEBwYXJhbSBmb3JjZSAtIElmIHNldCB0byBcInRydWVcIiBnaXZlbiBpbnB1dCB3aWxsIGJlIHNob3duIGluZGVwZW5kZW50bHlcbiAgICAgKiBvZiBjdXJyZW50IGxvZ2dpbmcgY29uZmlndXJhdGlvbiBvciBpbnRlcnByZXRlcidzIGNvbnNvbGVcbiAgICAgKiBpbXBsZW1lbnRhdGlvbi5cbiAgICAgKiBAcGFyYW0gYXZvaWRBbm5vdGF0aW9uIC0gSWYgc2V0IHRvIFwidHJ1ZVwiIGdpdmVuIGlucHV0IGhhcyBubyBtb2R1bGUgb3JcbiAgICAgKiBsb2cgbGV2ZWwgc3BlY2lmaWMgYW5ub3RhdGlvbnMuXG4gICAgICogQHBhcmFtIGxldmVsIC0gRGVzY3JpcHRpb24gb2YgbG9nIG1lc3NhZ2VzIGltcG9ydGFuY2UuXG4gICAgICogQHBhcmFtIGFkZGl0aW9uYWxBcmd1bWVudHMgLSBBZGRpdGlvbmFsIHZhbHVlcyB0byBwcmludC5cbiAgICAgKi9cbiAgICBsb2coXG4gICAgICAgIG9iamVjdDogdW5rbm93bixcbiAgICAgICAgZm9yY2UgPSBmYWxzZSxcbiAgICAgICAgYXZvaWRBbm5vdGF0aW9uID0gZmFsc2UsXG4gICAgICAgIGxldmVsOiBMZXZlbCA9ICdpbmZvJyxcbiAgICAgICAgLi4uYWRkaXRpb25hbEFyZ3VtZW50czogQXJyYXk8dW5rbm93bj5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudExldmVsSW5kZXggPSBMRVZFTFMuaW5kZXhPZih0aGlzLmxldmVsKVxuICAgICAgICBjb25zdCBsZXZlbEluZGV4ID0gTEVWRUxTLmluZGV4T2YobGV2ZWwpXG5cbiAgICAgICAgaWYgKGZvcmNlIHx8IGN1cnJlbnRMZXZlbEluZGV4ID49IGxldmVsSW5kZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VzOiBBcnJheTx1bmtub3duPiA9IFtdXG4gICAgICAgICAgICBjb25zdCBhbm5vdGF0aW9uID1cbiAgICAgICAgICAgICAgICBgJHtMRVZFTFNfQ09MT1JbbGV2ZWxJbmRleF19JHtsZXZlbH1gICtcbiAgICAgICAgICAgICAgICBgJHtDTElfQ09MT1IuZGVmYXVsdH06JHt0aGlzLm5hbWV9OmAgK1xuICAgICAgICAgICAgICAgIGAke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX06YFxuXG4gICAgICAgICAgICBpZiAoYXZvaWRBbm5vdGF0aW9uKVxuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2gob2JqZWN0KVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChhbm5vdGF0aW9uLCBvYmplY3QsIC4uLmFkZGl0aW9uYWxBcmd1bWVudHMpXG4gICAgICAgICAgICBlbHNlIGlmIChpc051bWVyaWMob2JqZWN0KSB8fCB0eXBlb2Ygb2JqZWN0ID09PSAnYm9vbGVhbicpXG4gICAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbiwgb2JqZWN0LnRvU3RyaW5nKCksIC4uLmFkZGl0aW9uYWxBcmd1bWVudHNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtdWx0aUxpbmVBbm5vdGF0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbi5zdWJzdHJpbmcoMCwgYW5ub3RhdGlvbi5sZW5ndGggLSAxKVxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVMZW5ndGggPSA3OSAtIDJcbiAgICAgICAgICAgICAgICAvLyBDb2xvciBjb2RlcyBhcmUgaW52aXNpYmxlIHNvIHdlIGhhdmUgdG8gYWRkIGl0LlxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbWFpbmluZ0xlbmd0aCA9XG4gICAgICAgICAgICAgICAgICAgIGxpbmVMZW5ndGggK1xuICAgICAgICAgICAgICAgICAgICBMRVZFTFNfQ09MT1JbbGV2ZWxJbmRleF0ubGVuZ3RoICtcbiAgICAgICAgICAgICAgICAgICAgQ0xJX0NPTE9SLmRlZmF1bHQubGVuZ3RoIC1cbiAgICAgICAgICAgICAgICAgICAgbXVsdGlMaW5lQW5ub3RhdGlvbi5sZW5ndGhcbiAgICAgICAgICAgICAgICBjb25zdCBoYWxmUmVtYWluaW5nTGVuZ3RoID0gTWF0aC5mbG9vcihyZW1haW5pbmdMZW5ndGggLyAyKVxuXG4gICAgICAgICAgICAgICAgdGhpcy5sb2coXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGAsJHsnLScucmVwZWF0KGhhbGZSZW1haW5pbmdMZW5ndGgpfWAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlMaW5lQW5ub3RhdGlvbiArXG4gICAgICAgICAgICAgICAgICAgICAgICAnLScucmVwZWF0KGhhbGZSZW1haW5pbmdMZW5ndGgpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGAkeyctJy5yZXBlYXQocmVtYWluaW5nTGVuZ3RoICUgMil9LGBcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgZm9yY2UsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGxldmVsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIHRoaXMubG9nKG9iamVjdCwgZm9yY2UsIHRydWUsIGxldmVsKVxuICAgICAgICAgICAgICAgIHRoaXMubG9nKFxuICAgICAgICAgICAgICAgICAgICBgJyR7Jy0nLnJlcGVhdChsaW5lTGVuZ3RoKX0nYCxcbiAgICAgICAgICAgICAgICAgICAgZm9yY2UsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGxldmVsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWVzc2FnZXMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbENvbnRleHQuY29uc29sZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWwgaW4gZ2xvYmFsQ29udGV4dC5jb25zb2xlXG4gICAgICAgICAgICAgICAgICAgICkgfHxcbiAgICAgICAgICAgICAgICAgICAgKGdsb2JhbENvbnRleHQuY29uc29sZVtsZXZlbCBhcyBrZXlvZiBDb25zb2xlXSA9PT0gTk9PUClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbENvbnRleHQsICd3aW5kb3cnXG4gICAgICAgICAgICAgICAgICAgICAgICApICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsQ29udGV4dC53aW5kb3csICdhbGVydCdcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsQ29udGV4dC53aW5kb3c/LmFsZXJ0KG1lc3NhZ2VzLmpvaW4oJyAnKSlcbiAgICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICAgICAgKGdsb2JhbENvbnRleHQuY29uc29sZVtsZXZlbCBhcyBrZXlvZiBDb25zb2xlXSBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgQ29uc29sZVsnbG9nJ11cbiAgICAgICAgICAgICAgICAgICAgKSguLi5tZXNzYWdlcylcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBXcmFwcGVyIG1ldGhvZCBmb3IgdGhlIG5hdGl2ZSBjb25zb2xlIG1ldGhvZCB1c3VhbGx5IHByb3ZpZGVkIGJ5XG4gICAgICogaW50ZXJwcmV0ZXIuXG4gICAgICogQHBhcmFtIG9iamVjdCAtIEFueSBvYmplY3QgdG8gcHJpbnQuXG4gICAgICogQHBhcmFtIGFkZGl0aW9uYWxBcmd1bWVudHMgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgdXNlZCBmb3Igc3RyaW5nXG4gICAgICogZm9ybWF0dGluZy5cbiAgICAgKi9cbiAgICBpbmZvKG9iamVjdDogdW5rbm93biwgLi4uYWRkaXRpb25hbEFyZ3VtZW50czogQXJyYXk8dW5rbm93bj4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2cob2JqZWN0LCBmYWxzZSwgZmFsc2UsICdpbmZvJywgLi4uYWRkaXRpb25hbEFyZ3VtZW50cylcbiAgICB9XG4gICAgLyoqXG4gICAgICogV3JhcHBlciBtZXRob2QgZm9yIHRoZSBuYXRpdmUgY29uc29sZSBtZXRob2QgdXN1YWxseSBwcm92aWRlZCBieVxuICAgICAqIGludGVycHJldGVyLlxuICAgICAqIEBwYXJhbSBvYmplY3QgLSBBbnkgb2JqZWN0IHRvIHByaW50LlxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQXJndW1lbnRzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHVzZWQgZm9yIHN0cmluZ1xuICAgICAqIGZvcm1hdHRpbmcuXG4gICAgICovXG4gICAgZGVidWcob2JqZWN0OiB1bmtub3duLCAuLi5hZGRpdGlvbmFsQXJndW1lbnRzOiBBcnJheTx1bmtub3duPik6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZyhvYmplY3QsIGZhbHNlLCBmYWxzZSwgJ2RlYnVnJywgLi4uYWRkaXRpb25hbEFyZ3VtZW50cylcbiAgICB9XG4gICAgLyoqXG4gICAgICogV3JhcHBlciBtZXRob2QgZm9yIHRoZSBuYXRpdmUgY29uc29sZSBtZXRob2QgdXN1YWxseSBwcm92aWRlZCBieVxuICAgICAqIGludGVycHJldGVyLlxuICAgICAqIEBwYXJhbSBvYmplY3QgLSBBbnkgb2JqZWN0IHRvIHByaW50LlxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQXJndW1lbnRzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHVzZWQgZm9yIHN0cmluZ1xuICAgICAqIGZvcm1hdHRpbmcuXG4gICAgICovXG4gICAgZXJyb3Iob2JqZWN0OiB1bmtub3duLCAuLi5hZGRpdGlvbmFsQXJndW1lbnRzOiBBcnJheTx1bmtub3duPik6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZyhvYmplY3QsIHRydWUsIGZhbHNlLCAnZXJyb3InLCAuLi5hZGRpdGlvbmFsQXJndW1lbnRzKVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBXcmFwcGVyIG1ldGhvZCBmb3IgdGhlIG5hdGl2ZSBjb25zb2xlIG1ldGhvZCB1c3VhbGx5IHByb3ZpZGVkIGJ5XG4gICAgICogaW50ZXJwcmV0ZXIuXG4gICAgICogQHBhcmFtIG9iamVjdCAtIEFueSBvYmplY3QgdG8gcHJpbnQuXG4gICAgICogQHBhcmFtIGFkZGl0aW9uYWxBcmd1bWVudHMgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgdXNlZCBmb3Igc3RyaW5nXG4gICAgICogZm9ybWF0dGluZy5cbiAgICAgKi9cbiAgICBjcml0aWNhbChvYmplY3Q6IHVua25vd24sIC4uLmFkZGl0aW9uYWxBcmd1bWVudHM6IEFycmF5PHVua25vd24+KSB7XG4gICAgICAgIHRoaXMubG9nKG9iamVjdCwgdHJ1ZSwgZmFsc2UsICd3YXJuJywgLi4uYWRkaXRpb25hbEFyZ3VtZW50cylcbiAgICB9XG4gICAgLyoqXG4gICAgICogV3JhcHBlciBtZXRob2QgZm9yIHRoZSBuYXRpdmUgY29uc29sZSBtZXRob2QgdXN1YWxseSBwcm92aWRlZCBieVxuICAgICAqIGludGVycHJldGVyLlxuICAgICAqIEBwYXJhbSBvYmplY3QgLSBBbnkgb2JqZWN0IHRvIHByaW50LlxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQXJndW1lbnRzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHVzZWQgZm9yIHN0cmluZ1xuICAgICAqIGZvcm1hdHRpbmcuXG4gICAgICovXG4gICAgd2FybihvYmplY3Q6IHVua25vd24sIC4uLmFkZGl0aW9uYWxBcmd1bWVudHM6IEFycmF5PHVua25vd24+KSB7XG4gICAgICAgIHRoaXMubG9nKG9iamVjdCwgZmFsc2UsIGZhbHNlLCAnd2FybicsIC4uLmFkZGl0aW9uYWxBcmd1bWVudHMpXG4gICAgfVxuICAgIC8qKlxuICAgICAqIER1bXBzIGEgZ2l2ZW4gb2JqZWN0IGluIGEgaHVtYW4tcmVhZGFibGUgZm9ybWF0LlxuICAgICAqIEBwYXJhbSBvYmplY3QgLSBBbnkgb2JqZWN0IHRvIHNob3cuXG4gICAgICogQHBhcmFtIGxldmVsIC0gTnVtYmVyIG9mIGxldmVscyB0byBkaWcgaW50byBnaXZlbiBvYmplY3QgcmVjdXJzaXZlbHkuXG4gICAgICogQHBhcmFtIGN1cnJlbnRMZXZlbCAtIE1heGltYWwgbnVtYmVyIG9mIHJlY3Vyc2l2ZSBmdW5jdGlvbiBjYWxscyB0b1xuICAgICAqIHJlcHJlc2VudCBnaXZlbiBvYmplY3QuXG4gICAgICogQHJldHVybnMgUmV0dXJucyB0aGUgc2VyaWFsaXplZCB2ZXJzaW9uIG9mIGdpdmVuIG9iamVjdC5cbiAgICAgKi9cbiAgICBzdGF0aWMgc2hvdyhcbiAgICAgICAgb2JqZWN0OiB1bmtub3duLCBsZXZlbCA9IDMsIGN1cnJlbnRMZXZlbCA9IDBcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBsZXQgb3V0cHV0ID0gJydcblxuICAgICAgICBpZiAoZGV0ZXJtaW5lVHlwZShvYmplY3QpID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoXG4gICAgICAgICAgICAgICAgb2JqZWN0IGFzIE1hcHBpbmc8dW5rbm93bj5cbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gYCR7a2V5fTogYFxuXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRMZXZlbCA8PSBsZXZlbClcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IExvZ2dlci5zaG93KHZhbHVlLCBsZXZlbCwgY3VycmVudExldmVsICsgMSlcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSBTdHJpbmcodmFsdWUpXG5cbiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1xcbidcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG91dHB1dC50cmltKClcbiAgICAgICAgfVxuXG4gICAgICAgIG91dHB1dCA9IFN0cmluZyhvYmplY3QpLnRyaW0oKVxuXG4gICAgICAgIHJldHVybiBgJHtvdXRwdXR9IChUeXBlOiBcIiR7ZGV0ZXJtaW5lVHlwZShvYmplY3QpfVwiKWBcbiAgICB9XG59XG5leHBvcnQgZGVmYXVsdCBMb2dnZXJcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsWUFBWTs7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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
|
package/dist/Semaphore.js
CHANGED
|
@@ -1 +1,65 @@
|
|
|
1
|
-
|
|
1
|
+
// #!/usr/bin/env babel-node
|
|
2
|
+
// -*- coding: utf-8 -*-
|
|
3
|
+
/** @module Semaphore */
|
|
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.push.js";
|
|
21
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
22
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
23
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
24
|
+
/**
|
|
25
|
+
* Represents the semaphore state.
|
|
26
|
+
* @property queue - List of waiting resource requests.
|
|
27
|
+
* @property numberOfFreeResources - Number free allowed concurrent resource
|
|
28
|
+
* uses.
|
|
29
|
+
* @property numberOfResources - Number of allowed concurrent resource uses.
|
|
30
|
+
*/
|
|
31
|
+
export class Semaphore {
|
|
32
|
+
/**
|
|
33
|
+
* Initializes number of resources.
|
|
34
|
+
* @param numberOfResources - Number of resources to manage.
|
|
35
|
+
*/
|
|
36
|
+
constructor(numberOfResources = 2) {
|
|
37
|
+
_defineProperty(this, "queue", []);
|
|
38
|
+
_defineProperty(this, "numberOfResources", void 0);
|
|
39
|
+
_defineProperty(this, "numberOfFreeResources", void 0);
|
|
40
|
+
this.numberOfResources = numberOfResources;
|
|
41
|
+
this.numberOfFreeResources = numberOfResources;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Acquires a new resource and runs given callback if available.
|
|
45
|
+
* @returns A promise which will be resolved if requested resource is
|
|
46
|
+
* available.
|
|
47
|
+
*/
|
|
48
|
+
acquire() {
|
|
49
|
+
return new Promise(resolve => {
|
|
50
|
+
if (this.numberOfFreeResources <= 0) this.queue.push(resolve);else {
|
|
51
|
+
this.numberOfFreeResources -= 1;
|
|
52
|
+
resolve(this.numberOfFreeResources);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Releases a resource and runs a waiting resolver if there exists some.
|
|
58
|
+
*/
|
|
59
|
+
release() {
|
|
60
|
+
const callback = this.queue.shift();
|
|
61
|
+
if (callback === undefined) this.numberOfFreeResources += 1;else callback(this.numberOfFreeResources);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export default Semaphore;
|
|
65
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1NlbWFwaG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjIS91c3IvYmluL2VudiBiYWJlbC1ub2RlXG4vLyAtKi0gY29kaW5nOiB1dGYtOCAtKi1cbi8qKiBAbW9kdWxlIFNlbWFwaG9yZSAqL1xuJ3VzZSBzdHJpY3QnXG4vKiAhXG4gICAgcmVnaW9uIGhlYWRlclxuICAgIFtQcm9qZWN0IHBhZ2VdKGh0dHBzOi8vdG9yYmVuLndlYnNpdGUvY2xpZW50bm9kZSlcblxuICAgIENvcHlyaWdodCBUb3JiZW4gU2lja2VydCAoaW5mb1tcIn5hdH5cIl10b3JiZW4ud2Vic2l0ZSkgMTYuMTIuMjAxMlxuXG4gICAgTGljZW5zZVxuICAgIC0tLS0tLS1cblxuICAgIFRoaXMgbGlicmFyeSB3cml0dGVuIGJ5IFRvcmJlbiBTaWNrZXJ0IHN0YW5kcyB1bmRlciBhIGNyZWF0aXZlIGNvbW1vbnNcbiAgICBuYW1pbmcgMy4wIHVucG9ydGVkIGxpY2Vuc2UuXG4gICAgU2VlIGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvZGVlZC5kZVxuICAgIGVuZHJlZ2lvblxuKi9cbmltcG9ydCB0eXBlIHtBbnlGdW5jdGlvbn0gZnJvbSAnLi90eXBlJ1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNlbWFwaG9yZSBzdGF0ZS5cbiAqIEBwcm9wZXJ0eSBxdWV1ZSAtIExpc3Qgb2Ygd2FpdGluZyByZXNvdXJjZSByZXF1ZXN0cy5cbiAqIEBwcm9wZXJ0eSBudW1iZXJPZkZyZWVSZXNvdXJjZXMgLSBOdW1iZXIgZnJlZSBhbGxvd2VkIGNvbmN1cnJlbnQgcmVzb3VyY2VcbiAqIHVzZXMuXG4gKiBAcHJvcGVydHkgbnVtYmVyT2ZSZXNvdXJjZXMgLSBOdW1iZXIgb2YgYWxsb3dlZCBjb25jdXJyZW50IHJlc291cmNlIHVzZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZW1hcGhvcmUge1xuICAgIHF1ZXVlOiBBcnJheTxBbnlGdW5jdGlvbj4gPSBbXVxuXG4gICAgbnVtYmVyT2ZSZXNvdXJjZXM6IG51bWJlclxuICAgIG51bWJlck9mRnJlZVJlc291cmNlczogbnVtYmVyXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgbnVtYmVyIG9mIHJlc291cmNlcy5cbiAgICAgKiBAcGFyYW0gbnVtYmVyT2ZSZXNvdXJjZXMgLSBOdW1iZXIgb2YgcmVzb3VyY2VzIHRvIG1hbmFnZS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihudW1iZXJPZlJlc291cmNlcyA9IDIpIHtcbiAgICAgICAgdGhpcy5udW1iZXJPZlJlc291cmNlcyA9IG51bWJlck9mUmVzb3VyY2VzXG4gICAgICAgIHRoaXMubnVtYmVyT2ZGcmVlUmVzb3VyY2VzID0gbnVtYmVyT2ZSZXNvdXJjZXNcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWNxdWlyZXMgYSBuZXcgcmVzb3VyY2UgYW5kIHJ1bnMgZ2l2ZW4gY2FsbGJhY2sgaWYgYXZhaWxhYmxlLlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIGlmIHJlcXVlc3RlZCByZXNvdXJjZSBpc1xuICAgICAqIGF2YWlsYWJsZS5cbiAgICAgKi9cbiAgICBhY3F1aXJlKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxudW1iZXI+KChcbiAgICAgICAgICAgIHJlc29sdmU6IChfdmFsdWU6IG51bWJlcikgPT4gdm9pZFxuICAgICAgICApOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm51bWJlck9mRnJlZVJlc291cmNlcyA8PSAwKVxuICAgICAgICAgICAgICAgIHRoaXMucXVldWUucHVzaChyZXNvbHZlKVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5udW1iZXJPZkZyZWVSZXNvdXJjZXMgLT0gMVxuXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLm51bWJlck9mRnJlZVJlc291cmNlcylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVsZWFzZXMgYSByZXNvdXJjZSBhbmQgcnVucyBhIHdhaXRpbmcgcmVzb2x2ZXIgaWYgdGhlcmUgZXhpc3RzIHNvbWUuXG4gICAgICovXG4gICAgcmVsZWFzZSgpIHtcbiAgICAgICAgY29uc3QgY2FsbGJhY2s6IEFueUZ1bmN0aW9uIHwgdW5kZWZpbmVkID0gdGhpcy5xdWV1ZS5zaGlmdCgpXG4gICAgICAgIGlmIChjYWxsYmFjayA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgdGhpcy5udW1iZXJPZkZyZWVSZXNvdXJjZXMgKz0gMVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBjYWxsYmFjayh0aGlzLm51bWJlck9mRnJlZVJlc291cmNlcylcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNlbWFwaG9yZVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSxZQUFZOztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFiQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sTUFBTSxTQUFTLENBQUM7RUFLbkI7QUFDSjtBQUNBO0FBQ0E7RUFDSSxXQUFXLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFO0lBQUEsK0JBUlAsRUFBRTtJQUFBO0lBQUE7SUFTMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQjtJQUMxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsaUJBQWlCO0VBQ2xEO0VBQ0E7QUFDSjtBQUNBO0FBQ0E7QUFDQTtFQUNJLE9BQU8sR0FBb0I7SUFDdkIsT0FBTyxJQUFJLE9BQU8sQ0FDZCxPQUFpQyxJQUMxQjtNQUNQLElBQUksSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsRUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQ3ZCO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUM7UUFFL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztNQUN2QztJQUNKLENBQUMsQ0FBQztFQUNOO0VBQ0E7QUFDSjtBQUNBO0VBQ0ksT0FBTyxHQUFHO0lBQ04sTUFBTSxRQUFpQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUN0QixJQUFJLENBQUMscUJBQXFCLElBQUksQ0FBQyxNQUUvQixRQUFRLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDO0VBQzVDO0FBQ0o7QUFFQSxlQUFlLFNBQVMiLCJpZ25vcmVMaXN0IjpbXX0=
|