clientnode 4.0.1491 → 4.0.1492
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 +83 -68
- package/dist/Logger.js +163 -693
- package/dist/Semaphore.js +46 -55
- package/dist/array.js +337 -545
- package/dist/cli.js +37 -44
- package/dist/constants.js +110 -184
- package/dist/context.js +25 -209
- package/dist/cookie.js +48 -204
- package/dist/data-transfer.js +166 -701
- package/dist/datetime.js +245 -1042
- package/dist/domNode.js +277 -427
- package/dist/expression/evaluators.js +234 -1108
- package/dist/expression/helper.js +82 -100
- package/dist/expression/index.js +10 -1253
- package/dist/expression/indicator-functions.js +21 -208
- package/dist/expression/type.js +5 -1
- package/dist/filesystem.js +324 -286
- package/dist/function.js +51 -90
- package/dist/index.js +26 -3059
- package/dist/indicators.js +79 -418
- package/dist/module.js +109 -154
- package/dist/number.js +25 -397
- package/dist/object.js +803 -849
- package/dist/process.js +38 -200
- package/dist/property-types.js +96 -17
- package/dist/scope.js +56 -1982
- package/dist/string.js +626 -924
- package/dist/test-helper.js +289 -514
- package/dist/type.js +9 -4
- package/dist/utility.js +91 -310
- package/package.json +2 -2
- 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/index.js +0 -4507
- package/dist/cli.d.ts +0 -31
- package/dist/compatible/Lock.js +0 -85
- package/dist/compatible/Logger.js +0 -715
- package/dist/compatible/Semaphore.js +0 -74
- package/dist/compatible/array.js +0 -660
- package/dist/compatible/cli.js +0 -58
- package/dist/compatible/constants.js +0 -200
- package/dist/compatible/context.js +0 -224
- package/dist/compatible/cookie.js +0 -240
- package/dist/compatible/data-transfer.js +0 -751
- package/dist/compatible/datetime.js +0 -1083
- package/dist/compatible/domNode.js +0 -481
- package/dist/compatible/expression/evaluators.js +0 -1147
- package/dist/compatible/expression/helper.js +0 -115
- package/dist/compatible/expression/index.js +0 -1269
- package/dist/compatible/expression/indicator-functions.js +0 -224
- package/dist/compatible/expression/type.js +0 -16
- package/dist/compatible/filesystem.js +0 -373
- package/dist/compatible/function.js +0 -114
- package/dist/compatible/index.js +0 -3076
- package/dist/compatible/indicators.js +0 -471
- package/dist/compatible/module.js +0 -168
- package/dist/compatible/number.js +0 -433
- package/dist/compatible/object.js +0 -1037
- package/dist/compatible/process.js +0 -230
- package/dist/compatible/property-types.js +0 -36
- package/dist/compatible/scope.js +0 -2011
- package/dist/compatible/string.js +0 -1151
- package/dist/compatible/test-helper.js +0 -837
- package/dist/compatible/type.js +0 -16
- package/dist/compatible/utility.js +0 -358
- package/dist/constants.d.ts +0 -99
- package/dist/context.d.ts +0 -8
- 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/type.d.ts +0 -70
- package/dist/filesystem.d.ts +0 -143
- package/dist/function.d.ts +0 -20
- package/dist/index.d.ts +0 -23
- package/dist/indicators.d.ts +0 -68
- package/dist/module.d.ts +0 -10
- package/dist/number.d.ts +0 -35
- package/dist/object.d.ts +0 -231
- package/dist/process.d.ts +0 -22
- package/dist/property-types.d.ts +0 -460
- package/dist/scope.d.ts +0 -44
- package/dist/string.d.ts +0 -319
- 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 -245
- package/dist/type.d.ts +0 -248
- package/dist/utility.d.ts +0 -44
package/dist/module.js
CHANGED
|
@@ -1,23 +1,9 @@
|
|
|
1
|
-
if(typeof window==='undefined'||window===null)var window=(typeof globalThis==='undefined'||globalThis===null)?{}:globalThis;/******/ var __webpack_modules__ = ({
|
|
2
|
-
|
|
3
|
-
/***/ 2:
|
|
4
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
5
|
-
|
|
6
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
7
|
-
/* harmony export */ Dx: function() { return /* binding */ isolatedRequire; },
|
|
8
|
-
/* harmony export */ I5: function() { return /* binding */ optionalRequire; },
|
|
9
|
-
/* harmony export */ Ni: function() { return /* binding */ clearRequireCache; },
|
|
10
|
-
/* harmony export */ SD: function() { return /* binding */ setOptionalRequire; },
|
|
11
|
-
/* harmony export */ Sw: function() { return /* binding */ optionalImport; },
|
|
12
|
-
/* harmony export */ a8: function() { return /* binding */ determineGlobalContext; },
|
|
13
|
-
/* harmony export */ lE: function() { return /* binding */ currentRequire; },
|
|
14
|
-
/* harmony export */ xN: function() { return /* binding */ isImportSyntaxSupported; },
|
|
15
|
-
/* harmony export */ zM: function() { return /* binding */ getCurrentRequire; }
|
|
16
|
-
/* harmony export */ });
|
|
17
|
-
/* module decorator */ module = __webpack_require__.hmd(module);
|
|
18
1
|
// #!/usr/bin/env babel-node
|
|
19
2
|
// -*- coding: utf-8 -*-
|
|
20
|
-
/** @module module
|
|
3
|
+
/** @module module */
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
/* !
|
|
21
7
|
region header
|
|
22
8
|
[Project page](https://torben.website/clientnode)
|
|
23
9
|
|
|
@@ -30,139 +16,108 @@ if(typeof window==='undefined'||window===null)var window=(typeof globalThis==='u
|
|
|
30
16
|
naming 3.0 unported license.
|
|
31
17
|
See https://creativecommons.org/licenses/by/3.0/deed.de
|
|
32
18
|
endregion
|
|
33
|
-
*/
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
/******/ Object.defineProperty(module, 'exports', {
|
|
138
|
-
/******/ enumerable: true,
|
|
139
|
-
/******/ set: function() {
|
|
140
|
-
/******/ throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);
|
|
141
|
-
/******/ }
|
|
142
|
-
/******/ });
|
|
143
|
-
/******/ return module;
|
|
144
|
-
/******/ };
|
|
145
|
-
/******/ }();
|
|
146
|
-
/******/
|
|
147
|
-
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
148
|
-
/******/ !function() {
|
|
149
|
-
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
|
|
150
|
-
/******/ }();
|
|
151
|
-
/******/
|
|
152
|
-
/************************************************************************/
|
|
153
|
-
/******/
|
|
154
|
-
/******/ // module cache are used so entry inlining is disabled
|
|
155
|
-
/******/ // startup
|
|
156
|
-
/******/ // Load entry module and return exports
|
|
157
|
-
/******/ var __webpack_exports__ = __webpack_require__(2);
|
|
158
|
-
/******/ var __webpack_exports__clearRequireCache = __webpack_exports__.Ni;
|
|
159
|
-
/******/ var __webpack_exports__currentRequire = __webpack_exports__.lE;
|
|
160
|
-
/******/ var __webpack_exports__determineGlobalContext = __webpack_exports__.a8;
|
|
161
|
-
/******/ var __webpack_exports__getCurrentRequire = __webpack_exports__.zM;
|
|
162
|
-
/******/ var __webpack_exports__isImportSyntaxSupported = __webpack_exports__.xN;
|
|
163
|
-
/******/ var __webpack_exports__isolatedRequire = __webpack_exports__.Dx;
|
|
164
|
-
/******/ var __webpack_exports__optionalImport = __webpack_exports__.Sw;
|
|
165
|
-
/******/ var __webpack_exports__optionalRequire = __webpack_exports__.I5;
|
|
166
|
-
/******/ var __webpack_exports__setOptionalRequire = __webpack_exports__.SD;
|
|
167
|
-
/******/ export { __webpack_exports__clearRequireCache as clearRequireCache, __webpack_exports__currentRequire as currentRequire, __webpack_exports__determineGlobalContext as determineGlobalContext, __webpack_exports__getCurrentRequire as getCurrentRequire, __webpack_exports__isImportSyntaxSupported as isImportSyntaxSupported, __webpack_exports__isolatedRequire as isolatedRequire, __webpack_exports__optionalImport as optionalImport, __webpack_exports__optionalRequire as optionalRequire, __webpack_exports__setOptionalRequire as setOptionalRequire };
|
|
168
|
-
/******/
|
|
19
|
+
*/
|
|
20
|
+
export const determineGlobalContext = () => {
|
|
21
|
+
if (typeof globalThis === 'undefined') {
|
|
22
|
+
if (typeof window === 'undefined') {
|
|
23
|
+
if (typeof global === 'undefined') return typeof module === 'undefined' ? {} : module;
|
|
24
|
+
if (Object.prototype.hasOwnProperty.call(global, 'window')) return global.window;
|
|
25
|
+
return global;
|
|
26
|
+
}
|
|
27
|
+
return window;
|
|
28
|
+
}
|
|
29
|
+
return globalThis;
|
|
30
|
+
};
|
|
31
|
+
const globalContext = determineGlobalContext();
|
|
32
|
+
export const isImportSyntaxSupported = () => {
|
|
33
|
+
try {
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
35
|
+
new Function('import("data:text/javascript,")');
|
|
36
|
+
return true;
|
|
37
|
+
} catch {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
export let currentRequire = typeof globalContext.require === 'undefined' ? null : globalContext.require;
|
|
42
|
+
export let optionalRequire;
|
|
43
|
+
export const setOptionalRequire = localCurrentRequire => {
|
|
44
|
+
optionalRequire = id => {
|
|
45
|
+
try {
|
|
46
|
+
return localCurrentRequire ? localCurrentRequire(id) : null;
|
|
47
|
+
} catch {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
setOptionalRequire(currentRequire);
|
|
53
|
+
// Make preprocessed require function available at runtime.
|
|
54
|
+
export const getCurrentRequire = async () => {
|
|
55
|
+
if (currentRequire) return currentRequire;
|
|
56
|
+
try {
|
|
57
|
+
const {
|
|
58
|
+
createRequire
|
|
59
|
+
} =
|
|
60
|
+
/*
|
|
61
|
+
eslint-disable
|
|
62
|
+
@typescript-eslint/no-implied-eval,
|
|
63
|
+
@typescript-eslint/no-unsafe-call
|
|
64
|
+
*/
|
|
65
|
+
await new Function('return import("node:module")')();
|
|
66
|
+
/*
|
|
67
|
+
eslint-enable
|
|
68
|
+
@typescript-eslint/no-implied-eval,
|
|
69
|
+
@typescript-eslint/no-unsafe-call
|
|
70
|
+
*/
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
72
|
+
currentRequire = createRequire(import.meta.url);
|
|
73
|
+
setOptionalRequire(currentRequire);
|
|
74
|
+
return currentRequire;
|
|
75
|
+
} catch (error) {
|
|
76
|
+
console.error(error);
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
export const clearRequireCache = (cache = currentRequire?.cache || require.cache) => {
|
|
81
|
+
const backup = {};
|
|
82
|
+
for (const [key, module] of Object.entries(cache)) {
|
|
83
|
+
backup[key] = module;
|
|
84
|
+
delete cache[key];
|
|
85
|
+
}
|
|
86
|
+
return backup;
|
|
87
|
+
};
|
|
88
|
+
const restoreRequireCache = (cache = currentRequire?.cache || require.cache, backup) => {
|
|
89
|
+
clearRequireCache();
|
|
90
|
+
for (const [key, module] of Object.entries(backup)) cache[key] = module;
|
|
91
|
+
};
|
|
92
|
+
export const isolatedRequire = (path, requireFunction = currentRequire || require) => {
|
|
93
|
+
const backup = clearRequireCache(requireFunction.cache);
|
|
94
|
+
try {
|
|
95
|
+
return requireFunction(path);
|
|
96
|
+
// eslint-disable-next-line no-useless-catch
|
|
97
|
+
} catch (error) {
|
|
98
|
+
throw error;
|
|
99
|
+
} finally {
|
|
100
|
+
restoreRequireCache(requireFunction.cache, backup);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
export const optionalImport = async (id, options = {}) => {
|
|
104
|
+
try {
|
|
105
|
+
return isImportSyntaxSupported() ?
|
|
106
|
+
/*
|
|
107
|
+
eslint-disable
|
|
108
|
+
@typescript-eslint/no-implied-eval,
|
|
109
|
+
@typescript-eslint/no-unsafe-call
|
|
110
|
+
*/
|
|
111
|
+
await new Function('options', `return import('${id}', options)`)(options) : await Promise.resolve(null);
|
|
112
|
+
/*
|
|
113
|
+
eslint-enable
|
|
114
|
+
@typescript-eslint/no-implied-eval,
|
|
115
|
+
@typescript-eslint/no-unsafe-call
|
|
116
|
+
*/
|
|
117
|
+
} catch /* (error)*/{
|
|
118
|
+
// NOTE: Use for debugging only:
|
|
119
|
+
// console.error('OptionalImport failed for', id, error)
|
|
120
|
+
return await Promise.resolve(null);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjIS91c3IvYmluL2VudiBiYWJlbC1ub2RlXG4vLyAtKi0gY29kaW5nOiB1dGYtOCAtKi1cbi8qKiBAbW9kdWxlIG1vZHVsZSAqL1xuJ3VzZSBzdHJpY3QnXG4vKiAhXG4gICAgcmVnaW9uIGhlYWRlclxuICAgIFtQcm9qZWN0IHBhZ2VdKGh0dHBzOi8vdG9yYmVuLndlYnNpdGUvY2xpZW50bm9kZSlcblxuICAgIENvcHlyaWdodCBUb3JiZW4gU2lja2VydCAoaW5mb1tcIn5hdH5cIl10b3JiZW4ud2Vic2l0ZSkgMTYuMTIuMjAxMlxuXG4gICAgTGljZW5zZVxuICAgIC0tLS0tLS1cblxuICAgIFRoaXMgbGlicmFyeSB3cml0dGVuIGJ5IFRvcmJlbiBTaWNrZXJ0IHN0YW5kcyB1bmRlciBhIGNyZWF0aXZlIGNvbW1vbnNcbiAgICBuYW1pbmcgMy4wIHVucG9ydGVkIGxpY2Vuc2UuXG4gICAgU2VlIGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvZGVlZC5kZVxuICAgIGVuZHJlZ2lvblxuKi9cbmltcG9ydCB0eXBlIHtGaXJzdFBhcmFtZXRlcn0gZnJvbSAnLi90eXBlJ1xuXG5leHBvcnQgY29uc3QgZGV0ZXJtaW5lR2xvYmFsQ29udGV4dCA9ICgpOiBQYXJ0aWFsPHR5cGVvZiBnbG9iYWxUaGlzPiA9PiB7XG4gICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZ2xvYmFsID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICByZXR1cm4gKCh0eXBlb2YgbW9kdWxlID09PSAndW5kZWZpbmVkJykgPyB7fSA6IG1vZHVsZSkgYXNcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIGdsb2JhbFRoaXNcblxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChnbG9iYWwsICd3aW5kb3cnKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2xvYmFsLndpbmRvd1xuXG4gICAgICAgICAgICByZXR1cm4gZ2xvYmFsXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2luZG93XG4gICAgfVxuXG4gICAgcmV0dXJuIGdsb2JhbFRoaXNcbn1cbmNvbnN0IGdsb2JhbENvbnRleHQgPSBkZXRlcm1pbmVHbG9iYWxDb250ZXh0KClcblxuZXhwb3J0IGNvbnN0IGlzSW1wb3J0U3ludGF4U3VwcG9ydGVkID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW1wbGllZC1ldmFsXG4gICAgICAgIG5ldyBGdW5jdGlvbignaW1wb3J0KFwiZGF0YTp0ZXh0L2phdmFzY3JpcHQsXCIpJylcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxufVxuXG5leHBvcnQgbGV0IGN1cnJlbnRSZXF1aXJlID1cbiAgICB0eXBlb2YgZ2xvYmFsQ29udGV4dC5yZXF1aXJlID09PSAndW5kZWZpbmVkJyA/XG4gICAgICAgIG51bGwgOlxuICAgICAgICBnbG9iYWxDb250ZXh0LnJlcXVpcmUgYXMgbnVsbCB8IHR5cGVvZiByZXF1aXJlXG5leHBvcnQgbGV0IG9wdGlvbmFsUmVxdWlyZTogPFQgPSB1bmtub3duPihpZDogc3RyaW5nKSA9PiBudWxsIHwgVFxuZXhwb3J0IGNvbnN0IHNldE9wdGlvbmFsUmVxdWlyZSA9IChcbiAgICBsb2NhbEN1cnJlbnRSZXF1aXJlOiB0eXBlb2YgY3VycmVudFJlcXVpcmVcbikgPT4ge1xuICAgIG9wdGlvbmFsUmVxdWlyZSA9IDxUID0gdW5rbm93bj4oaWQ6IHN0cmluZyk6IG51bGwgfCBUID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbEN1cnJlbnRSZXF1aXJlID8gbG9jYWxDdXJyZW50UmVxdWlyZShpZCkgYXMgVCA6IG51bGxcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9XG4gICAgfVxufVxuc2V0T3B0aW9uYWxSZXF1aXJlKGN1cnJlbnRSZXF1aXJlKVxuLy8gTWFrZSBwcmVwcm9jZXNzZWQgcmVxdWlyZSBmdW5jdGlvbiBhdmFpbGFibGUgYXQgcnVudGltZS5cbmV4cG9ydCBjb25zdCBnZXRDdXJyZW50UmVxdWlyZSA9IGFzeW5jICgpOiBQcm9taXNlPG51bGwgfCB0eXBlb2YgcmVxdWlyZT4gPT4ge1xuICAgIGlmIChjdXJyZW50UmVxdWlyZSlcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRSZXF1aXJlXG5cbiAgICB0cnkge1xuICAgICAgICBjb25zdCB7Y3JlYXRlUmVxdWlyZX0gPVxuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICBlc2xpbnQtZGlzYWJsZVxuICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbXBsaWVkLWV2YWwsXG4gICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgICAgICAqL1xuICAgICAgICAgICAgYXdhaXQgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gaW1wb3J0KFwibm9kZTptb2R1bGVcIiknKSgpXG4gICAgICAgIC8qXG4gICAgICAgICAgICBlc2xpbnQtZW5hYmxlXG4gICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW1wbGllZC1ldmFsLFxuICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgICovXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcbiAgICAgICAgY3VycmVudFJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCkgYXMgdHlwZW9mIHJlcXVpcmVcbiAgICAgICAgc2V0T3B0aW9uYWxSZXF1aXJlKGN1cnJlbnRSZXF1aXJlKVxuICAgICAgICByZXR1cm4gY3VycmVudFJlcXVpcmVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IGNsZWFyUmVxdWlyZUNhY2hlID0gKFxuICAgIGNhY2hlOiB0eXBlb2YgcmVxdWlyZS5jYWNoZSA9IGN1cnJlbnRSZXF1aXJlPy5jYWNoZSB8fCByZXF1aXJlLmNhY2hlXG4pOiB0eXBlb2YgcmVxdWlyZS5jYWNoZSA9PiB7XG4gICAgY29uc3QgYmFja3VwOiB0eXBlb2YgcmVxdWlyZS5jYWNoZSA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCBtb2R1bGVdIG9mIE9iamVjdC5lbnRyaWVzKGNhY2hlKSkge1xuICAgICAgICBiYWNrdXBba2V5XSA9IG1vZHVsZVxuICAgICAgICBkZWxldGUgY2FjaGVba2V5XVxuICAgIH1cblxuICAgIHJldHVybiBiYWNrdXBcbn1cbmNvbnN0IHJlc3RvcmVSZXF1aXJlQ2FjaGUgPSAoXG4gICAgY2FjaGU6IHR5cGVvZiByZXF1aXJlLmNhY2hlID0gY3VycmVudFJlcXVpcmU/LmNhY2hlIHx8IHJlcXVpcmUuY2FjaGUsXG4gICAgYmFja3VwOiB0eXBlb2YgcmVxdWlyZS5jYWNoZVxuKSA9PiB7XG4gICAgY2xlYXJSZXF1aXJlQ2FjaGUoKVxuXG4gICAgZm9yIChjb25zdCBba2V5LCBtb2R1bGVdIG9mIE9iamVjdC5lbnRyaWVzKGJhY2t1cCkpXG4gICAgICAgIGNhY2hlW2tleV0gPSBtb2R1bGVcbn1cbmV4cG9ydCBjb25zdCBpc29sYXRlZFJlcXVpcmUgPSAoXG4gICAgcGF0aDogRmlyc3RQYXJhbWV0ZXI8dHlwZW9mIHJlcXVpcmU+LFxuICAgIHJlcXVpcmVGdW5jdGlvbjogdHlwZW9mIHJlcXVpcmUgPSBjdXJyZW50UmVxdWlyZSB8fCByZXF1aXJlXG4pOiBSZXR1cm5UeXBlPHR5cGVvZiByZXF1aXJlPiA9PiB7XG4gICAgY29uc3QgYmFja3VwID0gY2xlYXJSZXF1aXJlQ2FjaGUocmVxdWlyZUZ1bmN0aW9uLmNhY2hlKVxuXG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmVGdW5jdGlvbihwYXRoIGFzIHVua25vd24gYXMgc3RyaW5nKSBhc1xuICAgICAgICAgICAgUmV0dXJuVHlwZTx0eXBlb2YgcmVxdWlyZT5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY2F0Y2hcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJlc3RvcmVSZXF1aXJlQ2FjaGUocmVxdWlyZUZ1bmN0aW9uLmNhY2hlLCBiYWNrdXApXG4gICAgfVxufVxuXG5leHBvcnQgY29uc3Qgb3B0aW9uYWxJbXBvcnQgPSBhc3luYyA8VCA9IHVua25vd24+KFxuICAgIGlkOiBzdHJpbmcsIG9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxudWxsIHwgVD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBpc0ltcG9ydFN5bnRheFN1cHBvcnRlZCgpID9cbiAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgZXNsaW50LWRpc2FibGVcbiAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW1wbGllZC1ldmFsLFxuICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbFxuICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGF3YWl0ICgobmV3IEZ1bmN0aW9uKFxuICAgICAgICAgICAgICAgICdvcHRpb25zJywgYHJldHVybiBpbXBvcnQoJyR7aWR9Jywgb3B0aW9ucylgXG4gICAgICAgICAgICApKShvcHRpb25zKSBhcyBQcm9taXNlPFQ+KSA6XG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUobnVsbClcbiAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgZXNsaW50LWVuYWJsZVxuICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbXBsaWVkLWV2YWwsXG4gICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgICAgICAqL1xuICAgIH0gY2F0Y2ggLyogKGVycm9yKSovIHtcbiAgICAgICAgLy8gTk9URTogVXNlIGZvciBkZWJ1Z2dpbmcgb25seTpcbiAgICAgICAgLy8gY29uc29sZS5lcnJvcignT3B0aW9uYWxJbXBvcnQgZmFpbGVkIGZvcicsIGlkLCBlcnJvcilcbiAgICAgICAgcmV0dXJuIGF3YWl0IFByb21pc2UucmVzb2x2ZShudWxsKVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsWUFBWTs7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0EsT0FBTyxNQUFNLHNCQUFzQixHQUFHLE1BQWtDO0VBQ3BFLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxFQUFFO0lBQ25DLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO01BQy9CLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUM3QixPQUFTLE9BQU8sTUFBTSxLQUFLLFdBQVcsR0FBSSxDQUFDLENBQUMsR0FBRyxNQUFNO01BR3pELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFDdEQsT0FBTyxNQUFNLENBQUMsTUFBTTtNQUV4QixPQUFPLE1BQU07SUFDakI7SUFFQSxPQUFPLE1BQU07RUFDakI7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
|