footprintjs 10.2.0 → 10.2.1
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/esm/lib/attempt/category.d.ts +4 -2
- package/dist/esm/lib/attempt/category.js +18 -11
- package/dist/esm/lib/attempt/errorField.d.ts +2 -0
- package/dist/esm/lib/attempt/errorField.js +32 -0
- package/dist/lib/attempt/category.js +18 -11
- package/dist/lib/attempt/errorField.js +36 -0
- package/dist/types/lib/attempt/category.d.ts +4 -2
- package/dist/types/lib/attempt/errorField.d.ts +2 -0
- package/package.json +1 -1
|
@@ -20,8 +20,10 @@
|
|
|
20
20
|
* `TypeError`, an `AbortError` / `TimeoutError` that was not the run's) → network
|
|
21
21
|
* 9. anything else → unknown
|
|
22
22
|
*
|
|
23
|
-
* A status is a NUMBER (`status` or `statusCode`); a numeric string is not read as one.
|
|
24
|
-
*
|
|
23
|
+
* A status is a NUMBER (`status` or `statusCode`); a numeric string is not read as one. Metadata uses only
|
|
24
|
+
* own/inherited data within 32 prototype objects; a caller accessor shadows farther data without executing.
|
|
25
|
+
* The captured platform DOMException name getter is the sole accessor exception and brand-checks its receiver.
|
|
26
|
+
* Inspection failures (a hostile Proxy) are `'unknown'`, never a second throw from an error path.
|
|
25
27
|
*/
|
|
26
28
|
import type { AttemptCategory, AttemptOutcome } from './types.js';
|
|
27
29
|
/**
|
|
@@ -20,10 +20,13 @@
|
|
|
20
20
|
* `TypeError`, an `AbortError` / `TimeoutError` that was not the run's) → network
|
|
21
21
|
* 9. anything else → unknown
|
|
22
22
|
*
|
|
23
|
-
* A status is a NUMBER (`status` or `statusCode`); a numeric string is not read as one.
|
|
24
|
-
*
|
|
23
|
+
* A status is a NUMBER (`status` or `statusCode`); a numeric string is not read as one. Metadata uses only
|
|
24
|
+
* own/inherited data within 32 prototype objects; a caller accessor shadows farther data without executing.
|
|
25
|
+
* The captured platform DOMException name getter is the sole accessor exception and brand-checks its receiver.
|
|
26
|
+
* Inspection failures (a hostile Proxy) are `'unknown'`, never a second throw from an error path.
|
|
25
27
|
*/
|
|
26
28
|
import { InputValidationError } from '../schema/errors.js';
|
|
29
|
+
import { errorField } from './errorField.js';
|
|
27
30
|
import { AttemptTimeoutError, UnknownEffectError } from './errors.js';
|
|
28
31
|
/** Socket-level codes a transport failure carries (Node's `errno` names). */
|
|
29
32
|
const NETWORK_CODES = new Set([
|
|
@@ -87,7 +90,7 @@ function categoryOf(error) {
|
|
|
87
90
|
return 'unknown';
|
|
88
91
|
const fields = error;
|
|
89
92
|
const status = numberField(fields, 'status') ?? numberField(fields, 'statusCode');
|
|
90
|
-
const declaresRetryAfter = isWait(fields
|
|
93
|
+
const declaresRetryAfter = isWait(errorField(fields, 'retryAfterMs')) || isWait(errorField(fields, 'retryAfterSeconds'));
|
|
91
94
|
if (status === 429 || declaresRetryAfter)
|
|
92
95
|
return 'rate-limited';
|
|
93
96
|
if (status !== undefined && status >= 500 && status <= 599)
|
|
@@ -96,11 +99,12 @@ function categoryOf(error) {
|
|
|
96
99
|
return 'auth';
|
|
97
100
|
if (status !== undefined && status >= 400 && status <= 499)
|
|
98
101
|
return 'permanent';
|
|
99
|
-
if (fields
|
|
102
|
+
if (errorField(fields, 'retryable') === false)
|
|
100
103
|
return 'permanent';
|
|
101
104
|
if (error instanceof InputValidationError)
|
|
102
105
|
return 'permanent';
|
|
103
|
-
const
|
|
106
|
+
const declaredName = errorField(fields, 'name');
|
|
107
|
+
const name = typeof declaredName === 'string' ? declaredName : undefined;
|
|
104
108
|
if (name !== undefined && VALIDATION_NAMES.has(name))
|
|
105
109
|
return 'permanent';
|
|
106
110
|
if (status === undefined && isTransportFailure(fields, name))
|
|
@@ -108,24 +112,27 @@ function categoryOf(error) {
|
|
|
108
112
|
return 'unknown';
|
|
109
113
|
}
|
|
110
114
|
function isTransportFailure(fields, name) {
|
|
111
|
-
if (hasNetworkCode(fields
|
|
115
|
+
if (hasNetworkCode(errorField(fields, 'code')))
|
|
112
116
|
return true;
|
|
113
|
-
const cause = fields
|
|
114
|
-
if (cause !== null && typeof cause === 'object' && hasNetworkCode(cause
|
|
117
|
+
const cause = errorField(fields, 'cause');
|
|
118
|
+
if (cause !== null && typeof cause === 'object' && hasNetworkCode(errorField(cause, 'code'))) {
|
|
115
119
|
return true;
|
|
116
120
|
}
|
|
117
121
|
if (name !== undefined && TRANSPORT_ABORT_NAMES.has(name))
|
|
118
122
|
return true;
|
|
119
|
-
|
|
123
|
+
if (!(fields instanceof TypeError))
|
|
124
|
+
return false;
|
|
125
|
+
const message = errorField(fields, 'message');
|
|
126
|
+
return typeof message === 'string' && FETCH_FAILURE.test(message);
|
|
120
127
|
}
|
|
121
128
|
function hasNetworkCode(code) {
|
|
122
129
|
return typeof code === 'string' && NETWORK_CODES.has(code);
|
|
123
130
|
}
|
|
124
131
|
function numberField(fields, key) {
|
|
125
|
-
const value = fields
|
|
132
|
+
const value = errorField(fields, key);
|
|
126
133
|
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
127
134
|
}
|
|
128
135
|
function isWait(value) {
|
|
129
136
|
return typeof value === 'number' && Number.isFinite(value) && value >= 0;
|
|
130
137
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2F0dGVtcHQvY2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUVILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd0RSw2RUFBNkU7QUFDN0UsTUFBTSxhQUFhLEdBQXdCLElBQUksR0FBRyxDQUFDO0lBQ2pELFlBQVk7SUFDWixjQUFjO0lBQ2QsV0FBVztJQUNYLFdBQVc7SUFDWCxXQUFXO0lBQ1gsT0FBTztDQUNSLENBQUMsQ0FBQztBQUVILDRHQUE0RztBQUM1RyxNQUFNLGFBQWEsR0FBRyxpR0FBaUcsQ0FBQztBQUV4SCx5RkFBeUY7QUFDekYsTUFBTSxnQkFBZ0IsR0FBd0IsSUFBSSxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0FBRS9HLHNIQUFzSDtBQUN0SCxNQUFNLHFCQUFxQixHQUF3QixJQUFJLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBRTNGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBYyxFQUFFLFVBQTBCLFFBQVE7SUFDOUUsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzVDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM1QyxJQUFJLENBQUM7UUFDSCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlH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QUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksY0FBYyxDQUFFLEtBQWlDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMzRyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLElBQUksS0FBSyxTQUFTLElBQUkscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3ZFLE9BQU8sTUFBTSxZQUFZLFNBQVMsSUFBSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2pILENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxJQUFhO0lBQ25DLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLE1BQStCLEVBQUUsR0FBNEI7SUFDaEYsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxLQUFjO0lBQzVCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztBQUMzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBhdHRlbXB0L2NhdGVnb3J5LnRzIOKAlCBgZXJyb3JDYXRlZ29yeWAsIHRoZSBPTkUgZmFpbHVyZSBjbGFzc2lmaWVyIChkZXNpZ24gwqczLjkpLlxuICpcbiAqIFNldmVuIGZpeGVkIHZhbHVlcywgc28gZXZlcnkgcmVjb3JkZXIg4oCUIHRoZSBuYXJyYXRpdmUsIHRoZSBtZXRyaWMgbGF5ZXIsIGFuIGFnZW50J3Mgb3duIOKAlCBicmVha3MgZmFpbHVyZXMgZG93blxuICogdGhlIHNhbWUgd2F5OyBhIHJlY29yZGVyIG5ldmVyIGludmVudHMgYSBjYXRlZ29yeSBvZiBpdHMgb3duLiBCb3Jyb3dlZCBmcm9tIGFnZW50Zm9vdHByaW50J3NcbiAqIGBjbGFzc2lmeVJldHJ5UmVhc29uYCBhbmQgd2lkZW5lZCwgc28gaXRzIGRlY29yYXRvcnMgYWRvcHQgdGhpcyBvbmUgcmF0aGVyIHRoYW4ga2VlcCB0aGVpcnMuXG4gKlxuICogQ2F0ZWdvcnkgaXMgRVZJREVOQ0UsIG5ldmVyIHBvbGljeTogdGhlIGRlZmF1bHQgYHJldHJ5T25gIHJldHJpZXMgZXZlcnkgY2F0ZWdvcnkuIEEgY2hhcnQgdGhhdCB3YW50cyBcIm5ldmVyXG4gKiByZXRyeSBhIHBlcm1hbmVudCBmYWlsdXJlXCIgc2F5cyBzbzogYHJldHJ5T246IChlKSA9PiBlcnJvckNhdGVnb3J5KGUpICE9PSAncGVybWFuZW50J2AuXG4gKlxuICogUHJlY2VkZW5jZSDigJQgd2hhdCB0aGUgZmFpbHVyZSBMT09LRUQgbGlrZSB3aW5zIG92ZXIgd2hhdCBpdCBkZWNsYXJlczpcbiAqICAgMS4gdGhlIGF0dGVtcHQncyBvd24gdGltZXIgKG91dGNvbWUgYCd0aW1lb3V0J2AsIG9yIG91ciBgQXR0ZW1wdFRpbWVvdXRFcnJvcmApICDihpIgdGltZW91dFxuICogICAyLiB0aGUgcnVuJ3Mgc2lnbmFsIGVuZGVkIGl0IChvdXRjb21lIGAnYWJvcnRlZCdgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkiB1bmtub3duXG4gKiAgIDMuIHN0YXR1cyA0MjksIG9yIGEgZGVjbGFyZWQgYHJldHJ5QWZ0ZXJNc2AgLyBgcmV0cnlBZnRlclNlY29uZHNgICAgICAgICAgICAgICAg4oaSIHJhdGUtbGltaXRlZFxuICogICA0LiBzdGF0dXMgNXh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkiBzZXJ2ZXJcbiAqICAgNS4gc3RhdHVzIDQwMSAvIDQwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpIgYXV0aFxuICogICA2LiBhbnkgb3RoZXIgNHh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkiBwZXJtYW5lbnRcbiAqICAgNy4gYHJldHJ5YWJsZTogZmFsc2VgLCBvciBhIHZhbGlkYXRpb24gZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpIgcGVybWFuZW50XG4gKiAgIDguIGEgdHJhbnNwb3J0IGZhaWx1cmUgKGEgc29ja2V0IGNvZGUgb24gdGhlIGVycm9yIG9yIGl0cyBjYXVzZSwgYSBmZXRjaFxuICogICAgICBgVHlwZUVycm9yYCwgYW4gYEFib3J0RXJyb3JgIC8gYFRpbWVvdXRFcnJvcmAgdGhhdCB3YXMgbm90IHRoZSBydW4ncykgICAgICAgIOKGkiBuZXR3b3JrXG4gKiAgIDkuIGFueXRoaW5nIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaSIHVua25vd25cbiAqXG4gKiBBIHN0YXR1cyBpcyBhIE5VTUJFUiAoYHN0YXR1c2Agb3IgYHN0YXR1c0NvZGVgKTsgYSBudW1lcmljIHN0cmluZyBpcyBub3QgcmVhZCBhcyBvbmUuIFRvdGFsOiBhIHZhbHVlIHdob3NlXG4gKiByZWFkcyB0aHJvdyAoYSBob3N0aWxlIFByb3h5KSBpcyBgJ3Vua25vd24nYCwgbmV2ZXIgYSBzZWNvbmQgdGhyb3cgZnJvbSBhbiBlcnJvciBwYXRoLlxuICovXG5cbmltcG9ydCB7IElucHV0VmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vc2NoZW1hL2Vycm9ycy5qcyc7XG5pbXBvcnQgeyBBdHRlbXB0VGltZW91dEVycm9yLCBVbmtub3duRWZmZWN0RXJyb3IgfSBmcm9tICcuL2Vycm9ycy5qcyc7XG5pbXBvcnQgdHlwZSB7IEF0dGVtcHRDYXRlZ29yeSwgQXR0ZW1wdE91dGNvbWUgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLyoqIFNvY2tldC1sZXZlbCBjb2RlcyBhIHRyYW5zcG9ydCBmYWlsdXJlIGNhcnJpZXMgKE5vZGUncyBgZXJybm9gIG5hbWVzKS4gKi9cbmNvbnN0IE5FVFdPUktfQ09ERVM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ0VDT05OUkVTRVQnLFxuICAnRUNPTk5SRUZVU0VEJyxcbiAgJ0VOT1RGT1VORCcsXG4gICdFVElNRURPVVQnLFxuICAnRUFJX0FHQUlOJyxcbiAgJ0VQSVBFJyxcbl0pO1xuXG4vKiogVGhlIG1lc3NhZ2VzIHJ1bnRpbWVzIGdpdmUgYSBgZmV0Y2hgIHRoYXQgbmV2ZXIgcmVhY2hlZCB0aGUgc2VydmVyIChOb2RlLCBDaHJvbWl1bSwgRmlyZWZveCwgU2FmYXJpKS4gKi9cbmNvbnN0IEZFVENIX0ZBSUxVUkUgPSAvXihmZXRjaCBmYWlsZWR8ZmFpbGVkIHRvIGZldGNofG5ldHdvcmtlcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gZmV0Y2ggcmVzb3VyY2VcXC4/fGxvYWQgZmFpbGVkKSQvaTtcblxuLyoqIEVycm9yIG5hbWVzIHRoYXQgc2F5IGEgdmFsaWRhdGlvbiBmYWlsZWQg4oCUIHJldHJ5aW5nIHRoZSBzYW1lIGlucHV0IGNhbm5vdCBzdWNjZWVkLiAqL1xuY29uc3QgVkFMSURBVElPTl9OQU1FUzogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoWydWYWxpZGF0aW9uRXJyb3InLCAnWm9kRXJyb3InLCAnSW5wdXRWYWxpZGF0aW9uRXJyb3InXSk7XG5cbi8qKiBFcnJvciBuYW1lcyBvZiBhbiBhYm9ydCBvciBhIHRpbWVvdXQgdGhhdCBzb21lIE9USEVSIHNpZ25hbCByYWlzZWQgKHRoZSBydW4ncyBvd24gZW5kcyBhcyBvdXRjb21lIGAnYWJvcnRlZCdgKS4gKi9cbmNvbnN0IFRSQU5TUE9SVF9BQk9SVF9OQU1FUzogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoWydBYm9ydEVycm9yJywgJ1RpbWVvdXRFcnJvciddKTtcblxuLyoqXG4gKiBUaGUgY2F0ZWdvcnkgb2YgYW4gYXR0ZW1wdCdzIGZhaWx1cmUuIGBvdXRjb21lYCBpcyBob3cgdGhlIGF0dGVtcHQgZW5kZWQgKGRlZmF1bHQgYCdmYWlsZWQnYCk6IGl0IGRlY2lkZXNcbiAqIGAndGltZW91dCdgICh0aGUgYXR0ZW1wdCdzIG93biB0aW1lcikgYW5kIGAndW5rbm93bidgICh0aGUgcnVuJ3Mgc2lnbmFsKSBiZWZvcmUgdGhlIGVycm9yIGlzIHJlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlcnJvckNhdGVnb3J5KGVycm9yOiB1bmtub3duLCBvdXRjb21lOiBBdHRlbXB0T3V0Y29tZSA9ICdmYWlsZWQnKTogQXR0ZW1wdENhdGVnb3J5IHtcbiAgaWYgKG91dGNvbWUgPT09ICd0aW1lb3V0JykgcmV0dXJuICd0aW1lb3V0JztcbiAgaWYgKG91dGNvbWUgPT09ICdhYm9ydGVkJykgcmV0dXJuICd1bmtub3duJztcbiAgdHJ5IHtcbiAgICByZXR1cm4gY2F0ZWdvcnlPZihlcnJvcik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAndW5rbm93bic7XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGVybWluYWwgb3duZXJzaGlwIHByZXNlcnZlcyBhIHByb2R1Y2VyJ3Mga25vd24gY2F0ZWdvcnkuIEFuXG4gKiB1bnJlc29sdmVkIGVmZmVjdCBpcyB1bmtub3duLCBuZXZlciB0aGUgY2F0ZWdvcnkgb2YgaXRzIHBoeXNpY2FsIGNhdXNlLlxuICogVGhpcyBkb2VzIG5vdCByZXdyaXRlIGhpc3RvcmljYWwgYXR0ZW1wdCBjYXRlZ29yaWVzIG9yIHJlLXJlYWQgYSBrbm93biBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtaW5hbENhdGVnb3J5KGVycm9yOiB1bmtub3duLCBrbm93bj86IEF0dGVtcHRDYXRlZ29yeSk6IEF0dGVtcHRDYXRlZ29yeSB7XG4gIHRyeSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVW5rbm93bkVmZmVjdEVycm9yKSByZXR1cm4gJ3Vua25vd24nO1xuICAgIC8vIENKUyBhbmQgRVNNIGhhdmUgZGlzdGluY3QgY29uc3RydWN0b3JzLiBBIGRlY2xhcmVkIG93biBEQVRBIG5hbWUgbWF5XG4gICAgLy8gb25seSByZWR1Y2UgY2VydGFpbnR5IHRvIHVua25vd247IG5ldmVyIGV4ZWN1dGUgYW4gZXJyb3IncyBuYW1lIGdldHRlclxuICAgIC8vIG9yIHByb21vdGUgaXRzIHBoeXNpY2FsIGNhdXNlIHRvIGEga25vd24gb3V0Y29tZSBhY3Jvc3MgbW9kdWxlIGNvcGllcy5cbiAgICBpZiAoZXJyb3IgIT09IG51bGwgJiYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIGVycm9yID09PSAnZnVuY3Rpb24nKSkge1xuICAgICAgY29uc3QgbmFtZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXJyb3IsICduYW1lJyk7XG4gICAgICBpZiAobmFtZSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobmFtZSwgJ3ZhbHVlJykgJiYgbmFtZS52YWx1ZSA9PT0gJ1Vua25vd25FZmZlY3RFcnJvcicpIHtcbiAgICAgICAgcmV0dXJuICd1bmtub3duJztcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBrbm93biA/PyAndW5rbm93bic7XG4gIH1cbiAgcmV0dXJuIGtub3duID8/IGVycm9yQ2F0ZWdvcnkoZXJyb3IpO1xufVxuXG5mdW5jdGlvbiBjYXRlZ29yeU9mKGVycm9yOiB1bmtub3duKTogQXR0ZW1wdENhdGVnb3J5IHtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXR0ZW1wdFRpbWVvdXRFcnJvcikgcmV0dXJuICd0aW1lb3V0JztcbiAgaWYgKGVycm9yID09PSBudWxsIHx8ICh0eXBlb2YgZXJyb3IgIT09ICdvYmplY3QnICYmIHR5cGVvZiBlcnJvciAhPT0gJ2Z1bmN0aW9uJykpIHJldHVybiAndW5rbm93bic7XG4gIGNvbnN0IGZpZWxkcyA9IGVycm9yIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIGNvbnN0IHN0YXR1cyA9IG51bWJlckZpZWxkKGZpZWxkcywgJ3N0YXR1cycpID8/IG51bWJlckZpZWxkKGZpZWxkcywgJ3N0YXR1c0NvZGUnKTtcbiAgY29uc3QgZGVjbGFyZXNSZXRyeUFmdGVyID0gaXNXYWl0KGZpZWxkcy5yZXRyeUFmdGVyTXMpIHx8IGlzV2FpdChmaWVsZHMucmV0cnlBZnRlclNlY29uZHMpO1xuICBpZiAoc3RhdHVzID09PSA0MjkgfHwgZGVjbGFyZXNSZXRyeUFmdGVyKSByZXR1cm4gJ3JhdGUtbGltaXRlZCc7XG4gIGlmIChzdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBzdGF0dXMgPj0gNTAwICYmIHN0YXR1cyA8PSA1OTkpIHJldHVybiAnc2VydmVyJztcbiAgaWYgKHN0YXR1cyA9PT0gNDAxIHx8IHN0YXR1cyA9PT0gNDAzKSByZXR1cm4gJ2F1dGgnO1xuICBpZiAoc3RhdHVzICE9PSB1bmRlZmluZWQgJiYgc3RhdHVzID49IDQwMCAmJiBzdGF0dXMgPD0gNDk5KSByZXR1cm4gJ3Blcm1hbmVudCc7XG5cbiAgaWYgKGZpZWxkcy5yZXRyeWFibGUgPT09IGZhbHNlKSByZXR1cm4gJ3Blcm1hbmVudCc7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIElucHV0VmFsaWRhdGlvbkVycm9yKSByZXR1cm4gJ3Blcm1hbmVudCc7XG4gIGNvbnN0IG5hbWUgPSB0eXBlb2YgZmllbGRzLm5hbWUgPT09ICdzdHJpbmcnID8gZmllbGRzLm5hbWUgOiB1bmRlZmluZWQ7XG4gIGlmIChuYW1lICE9PSB1bmRlZmluZWQgJiYgVkFMSURBVElPTl9OQU1FUy5oYXMobmFtZSkpIHJldHVybiAncGVybWFuZW50JztcblxuICBpZiAoc3RhdHVzID09PSB1bmRlZmluZWQgJiYgaXNUcmFuc3BvcnRGYWlsdXJlKGZpZWxkcywgbmFtZSkpIHJldHVybiAnbmV0d29yayc7XG4gIHJldHVybiAndW5rbm93bic7XG59XG5cbmZ1bmN0aW9uIGlzVHJhbnNwb3J0RmFpbHVyZShmaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgaWYgKGhhc05ldHdvcmtDb2RlKGZpZWxkcy5jb2RlKSkgcmV0dXJuIHRydWU7XG4gIGNvbnN0IGNhdXNlID0gZmllbGRzLmNhdXNlO1xuICBpZiAoY2F1c2UgIT09IG51bGwgJiYgdHlwZW9mIGNhdXNlID09PSAnb2JqZWN0JyAmJiBoYXNOZXR3b3JrQ29kZSgoY2F1c2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLmNvZGUpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCAmJiBUUkFOU1BPUlRfQUJPUlRfTkFNRVMuaGFzKG5hbWUpKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIGZpZWxkcyBpbnN0YW5jZW9mIFR5cGVFcnJvciAmJiB0eXBlb2YgZmllbGRzLm1lc3NhZ2UgPT09ICdzdHJpbmcnICYmIEZFVENIX0ZBSUxVUkUudGVzdChmaWVsZHMubWVzc2FnZSk7XG59XG5cbmZ1bmN0aW9uIGhhc05ldHdvcmtDb2RlKGNvZGU6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBjb2RlID09PSAnc3RyaW5nJyAmJiBORVRXT1JLX0NPREVTLmhhcyhjb2RlKTtcbn1cblxuZnVuY3Rpb24gbnVtYmVyRmllbGQoZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwga2V5OiAnc3RhdHVzJyB8ICdzdGF0dXNDb2RlJyk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHZhbHVlID0gZmllbGRzW2tleV07XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaXNXYWl0KHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgJiYgdmFsdWUgPj0gMDtcbn1cbiJdfQ==
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2F0dGVtcHQvY2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBRUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd0RSw2RUFBNkU7QUFDN0UsTUFBTSxhQUFhLEdBQXdCLElBQUksR0FBRyxDQUFDO0lBQ2pELFlBQVk7SUFDWixjQUFjO0lBQ2QsV0FBVztJQUNYLFdBQVc7SUFDWCxXQUFXO0lBQ1gsT0FBTztDQUNSLENBQUMsQ0FBQztBQUVILDRHQUE0RztBQUM1RyxNQUFNLGFBQWEsR0FBRyxpR0FBaUcsQ0FBQztBQUV4SCx5RkFBeUY7QUFDekYsTUFBTSxnQkFBZ0IsR0FBd0IsSUFBSSxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0FBRS9HLHNIQUFzSDtBQUN0SCxNQUFNLHFCQUFxQixHQUF3QixJQUFJLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBRTNGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBYyxFQUFFLFVBQTBCLFFBQVE7SUFDOUUsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzVDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM1QyxJQUFJLENBQUM7UUFDSCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FB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LEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxLQUFjO0lBQzVCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztBQUMzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBhdHRlbXB0L2NhdGVnb3J5LnRzIOKAlCBgZXJyb3JDYXRlZ29yeWAsIHRoZSBPTkUgZmFpbHVyZSBjbGFzc2lmaWVyIChkZXNpZ24gwqczLjkpLlxuICpcbiAqIFNldmVuIGZpeGVkIHZhbHVlcywgc28gZXZlcnkgcmVjb3JkZXIg4oCUIHRoZSBuYXJyYXRpdmUsIHRoZSBtZXRyaWMgbGF5ZXIsIGFuIGFnZW50J3Mgb3duIOKAlCBicmVha3MgZmFpbHVyZXMgZG93blxuICogdGhlIHNhbWUgd2F5OyBhIHJlY29yZGVyIG5ldmVyIGludmVudHMgYSBjYXRlZ29yeSBvZiBpdHMgb3duLiBCb3Jyb3dlZCBmcm9tIGFnZW50Zm9vdHByaW50J3NcbiAqIGBjbGFzc2lmeVJldHJ5UmVhc29uYCBhbmQgd2lkZW5lZCwgc28gaXRzIGRlY29yYXRvcnMgYWRvcHQgdGhpcyBvbmUgcmF0aGVyIHRoYW4ga2VlcCB0aGVpcnMuXG4gKlxuICogQ2F0ZWdvcnkgaXMgRVZJREVOQ0UsIG5ldmVyIHBvbGljeTogdGhlIGRlZmF1bHQgYHJldHJ5T25gIHJldHJpZXMgZXZlcnkgY2F0ZWdvcnkuIEEgY2hhcnQgdGhhdCB3YW50cyBcIm5ldmVyXG4gKiByZXRyeSBhIHBlcm1hbmVudCBmYWlsdXJlXCIgc2F5cyBzbzogYHJldHJ5T246IChlKSA9PiBlcnJvckNhdGVnb3J5KGUpICE9PSAncGVybWFuZW50J2AuXG4gKlxuICogUHJlY2VkZW5jZSDigJQgd2hhdCB0aGUgZmFpbHVyZSBMT09LRUQgbGlrZSB3aW5zIG92ZXIgd2hhdCBpdCBkZWNsYXJlczpcbiAqICAgMS4gdGhlIGF0dGVtcHQncyBvd24gdGltZXIgKG91dGNvbWUgYCd0aW1lb3V0J2AsIG9yIG91ciBgQXR0ZW1wdFRpbWVvdXRFcnJvcmApICDihpIgdGltZW91dFxuICogICAyLiB0aGUgcnVuJ3Mgc2lnbmFsIGVuZGVkIGl0IChvdXRjb21lIGAnYWJvcnRlZCdgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkiB1bmtub3duXG4gKiAgIDMuIHN0YXR1cyA0MjksIG9yIGEgZGVjbGFyZWQgYHJldHJ5QWZ0ZXJNc2AgLyBgcmV0cnlBZnRlclNlY29uZHNgICAgICAgICAgICAgICAg4oaSIHJhdGUtbGltaXRlZFxuICogICA0LiBzdGF0dXMgNXh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkiBzZXJ2ZXJcbiAqICAgNS4gc3RhdHVzIDQwMSAvIDQwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpIgYXV0aFxuICogICA2LiBhbnkgb3RoZXIgNHh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkiBwZXJtYW5lbnRcbiAqICAgNy4gYHJldHJ5YWJsZTogZmFsc2VgLCBvciBhIHZhbGlkYXRpb24gZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpIgcGVybWFuZW50XG4gKiAgIDguIGEgdHJhbnNwb3J0IGZhaWx1cmUgKGEgc29ja2V0IGNvZGUgb24gdGhlIGVycm9yIG9yIGl0cyBjYXVzZSwgYSBmZXRjaFxuICogICAgICBgVHlwZUVycm9yYCwgYW4gYEFib3J0RXJyb3JgIC8gYFRpbWVvdXRFcnJvcmAgdGhhdCB3YXMgbm90IHRoZSBydW4ncykgICAgICAgIOKGkiBuZXR3b3JrXG4gKiAgIDkuIGFueXRoaW5nIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaSIHVua25vd25cbiAqXG4gKiBBIHN0YXR1cyBpcyBhIE5VTUJFUiAoYHN0YXR1c2Agb3IgYHN0YXR1c0NvZGVgKTsgYSBudW1lcmljIHN0cmluZyBpcyBub3QgcmVhZCBhcyBvbmUuIE1ldGFkYXRhIHVzZXMgb25seVxuICogb3duL2luaGVyaXRlZCBkYXRhIHdpdGhpbiAzMiBwcm90b3R5cGUgb2JqZWN0czsgYSBjYWxsZXIgYWNjZXNzb3Igc2hhZG93cyBmYXJ0aGVyIGRhdGEgd2l0aG91dCBleGVjdXRpbmcuXG4gKiBUaGUgY2FwdHVyZWQgcGxhdGZvcm0gRE9NRXhjZXB0aW9uIG5hbWUgZ2V0dGVyIGlzIHRoZSBzb2xlIGFjY2Vzc29yIGV4Y2VwdGlvbiBhbmQgYnJhbmQtY2hlY2tzIGl0cyByZWNlaXZlci5cbiAqIEluc3BlY3Rpb24gZmFpbHVyZXMgKGEgaG9zdGlsZSBQcm94eSkgYXJlIGAndW5rbm93bidgLCBuZXZlciBhIHNlY29uZCB0aHJvdyBmcm9tIGFuIGVycm9yIHBhdGguXG4gKi9cblxuaW1wb3J0IHsgSW5wdXRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi9zY2hlbWEvZXJyb3JzLmpzJztcbmltcG9ydCB7IGVycm9yRmllbGQgfSBmcm9tICcuL2Vycm9yRmllbGQuanMnO1xuaW1wb3J0IHsgQXR0ZW1wdFRpbWVvdXRFcnJvciwgVW5rbm93bkVmZmVjdEVycm9yIH0gZnJvbSAnLi9lcnJvcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBBdHRlbXB0Q2F0ZWdvcnksIEF0dGVtcHRPdXRjb21lIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKiBTb2NrZXQtbGV2ZWwgY29kZXMgYSB0cmFuc3BvcnQgZmFpbHVyZSBjYXJyaWVzIChOb2RlJ3MgYGVycm5vYCBuYW1lcykuICovXG5jb25zdCBORVRXT1JLX0NPREVTOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdFQ09OTlJFU0VUJyxcbiAgJ0VDT05OUkVGVVNFRCcsXG4gICdFTk9URk9VTkQnLFxuICAnRVRJTUVET1VUJyxcbiAgJ0VBSV9BR0FJTicsXG4gICdFUElQRScsXG5dKTtcblxuLyoqIFRoZSBtZXNzYWdlcyBydW50aW1lcyBnaXZlIGEgYGZldGNoYCB0aGF0IG5ldmVyIHJlYWNoZWQgdGhlIHNlcnZlciAoTm9kZSwgQ2hyb21pdW0sIEZpcmVmb3gsIFNhZmFyaSkuICovXG5jb25zdCBGRVRDSF9GQUlMVVJFID0gL14oZmV0Y2ggZmFpbGVkfGZhaWxlZCB0byBmZXRjaHxuZXR3b3JrZXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlXFwuP3xsb2FkIGZhaWxlZCkkL2k7XG5cbi8qKiBFcnJvciBuYW1lcyB0aGF0IHNheSBhIHZhbGlkYXRpb24gZmFpbGVkIOKAlCByZXRyeWluZyB0aGUgc2FtZSBpbnB1dCBjYW5ub3Qgc3VjY2VlZC4gKi9cbmNvbnN0IFZBTElEQVRJT05fTkFNRVM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFsnVmFsaWRhdGlvbkVycm9yJywgJ1pvZEVycm9yJywgJ0lucHV0VmFsaWRhdGlvbkVycm9yJ10pO1xuXG4vKiogRXJyb3IgbmFtZXMgb2YgYW4gYWJvcnQgb3IgYSB0aW1lb3V0IHRoYXQgc29tZSBPVEhFUiBzaWduYWwgcmFpc2VkICh0aGUgcnVuJ3Mgb3duIGVuZHMgYXMgb3V0Y29tZSBgJ2Fib3J0ZWQnYCkuICovXG5jb25zdCBUUkFOU1BPUlRfQUJPUlRfTkFNRVM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFsnQWJvcnRFcnJvcicsICdUaW1lb3V0RXJyb3InXSk7XG5cbi8qKlxuICogVGhlIGNhdGVnb3J5IG9mIGFuIGF0dGVtcHQncyBmYWlsdXJlLiBgb3V0Y29tZWAgaXMgaG93IHRoZSBhdHRlbXB0IGVuZGVkIChkZWZhdWx0IGAnZmFpbGVkJ2ApOiBpdCBkZWNpZGVzXG4gKiBgJ3RpbWVvdXQnYCAodGhlIGF0dGVtcHQncyBvd24gdGltZXIpIGFuZCBgJ3Vua25vd24nYCAodGhlIHJ1bidzIHNpZ25hbCkgYmVmb3JlIHRoZSBlcnJvciBpcyByZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXJyb3JDYXRlZ29yeShlcnJvcjogdW5rbm93biwgb3V0Y29tZTogQXR0ZW1wdE91dGNvbWUgPSAnZmFpbGVkJyk6IEF0dGVtcHRDYXRlZ29yeSB7XG4gIGlmIChvdXRjb21lID09PSAndGltZW91dCcpIHJldHVybiAndGltZW91dCc7XG4gIGlmIChvdXRjb21lID09PSAnYWJvcnRlZCcpIHJldHVybiAndW5rbm93bic7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGNhdGVnb3J5T2YoZXJyb3IpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ3Vua25vd24nO1xuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsIFRlcm1pbmFsIG93bmVyc2hpcCBwcmVzZXJ2ZXMgYSBwcm9kdWNlcidzIGtub3duIGNhdGVnb3J5LiBBblxuICogdW5yZXNvbHZlZCBlZmZlY3QgaXMgdW5rbm93biwgbmV2ZXIgdGhlIGNhdGVnb3J5IG9mIGl0cyBwaHlzaWNhbCBjYXVzZS5cbiAqIFRoaXMgZG9lcyBub3QgcmV3cml0ZSBoaXN0b3JpY2FsIGF0dGVtcHQgY2F0ZWdvcmllcyBvciByZS1yZWFkIGEga25vd24gb25lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGVybWluYWxDYXRlZ29yeShlcnJvcjogdW5rbm93biwga25vd24/OiBBdHRlbXB0Q2F0ZWdvcnkpOiBBdHRlbXB0Q2F0ZWdvcnkge1xuICB0cnkge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFVua25vd25FZmZlY3RFcnJvcikgcmV0dXJuICd1bmtub3duJztcbiAgICAvLyBDSlMgYW5kIEVTTSBoYXZlIGRpc3RpbmN0IGNvbnN0cnVjdG9ycy4gQSBkZWNsYXJlZCBvd24gREFUQSBuYW1lIG1heVxuICAgIC8vIG9ubHkgcmVkdWNlIGNlcnRhaW50eSB0byB1bmtub3duOyBuZXZlciBleGVjdXRlIGFuIGVycm9yJ3MgbmFtZSBnZXR0ZXJcbiAgICAvLyBvciBwcm9tb3RlIGl0cyBwaHlzaWNhbCBjYXVzZSB0byBhIGtub3duIG91dGNvbWUgYWNyb3NzIG1vZHVsZSBjb3BpZXMuXG4gICAgaWYgKGVycm9yICE9PSBudWxsICYmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBlcnJvciA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVycm9yLCAnbmFtZScpO1xuICAgICAgaWYgKG5hbWUgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5hbWUsICd2YWx1ZScpICYmIG5hbWUudmFsdWUgPT09ICdVbmtub3duRWZmZWN0RXJyb3InKSB7XG4gICAgICAgIHJldHVybiAndW5rbm93bic7XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4ga25vd24gPz8gJ3Vua25vd24nO1xuICB9XG4gIHJldHVybiBrbm93biA/PyBlcnJvckNhdGVnb3J5KGVycm9yKTtcbn1cblxuZnVuY3Rpb24gY2F0ZWdvcnlPZihlcnJvcjogdW5rbm93bik6IEF0dGVtcHRDYXRlZ29yeSB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEF0dGVtcHRUaW1lb3V0RXJyb3IpIHJldHVybiAndGltZW91dCc7XG4gIGlmIChlcnJvciA9PT0gbnVsbCB8fCAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyAmJiB0eXBlb2YgZXJyb3IgIT09ICdmdW5jdGlvbicpKSByZXR1cm4gJ3Vua25vd24nO1xuICBjb25zdCBmaWVsZHMgPSBlcnJvciBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBjb25zdCBzdGF0dXMgPSBudW1iZXJGaWVsZChmaWVsZHMsICdzdGF0dXMnKSA/PyBudW1iZXJGaWVsZChmaWVsZHMsICdzdGF0dXNDb2RlJyk7XG4gIGNvbnN0IGRlY2xhcmVzUmV0cnlBZnRlciA9XG4gICAgaXNXYWl0KGVycm9yRmllbGQoZmllbGRzLCAncmV0cnlBZnRlck1zJykpIHx8IGlzV2FpdChlcnJvckZpZWxkKGZpZWxkcywgJ3JldHJ5QWZ0ZXJTZWNvbmRzJykpO1xuICBpZiAoc3RhdHVzID09PSA0MjkgfHwgZGVjbGFyZXNSZXRyeUFmdGVyKSByZXR1cm4gJ3JhdGUtbGltaXRlZCc7XG4gIGlmIChzdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBzdGF0dXMgPj0gNTAwICYmIHN0YXR1cyA8PSA1OTkpIHJldHVybiAnc2VydmVyJztcbiAgaWYgKHN0YXR1cyA9PT0gNDAxIHx8IHN0YXR1cyA9PT0gNDAzKSByZXR1cm4gJ2F1dGgnO1xuICBpZiAoc3RhdHVzICE9PSB1bmRlZmluZWQgJiYgc3RhdHVzID49IDQwMCAmJiBzdGF0dXMgPD0gNDk5KSByZXR1cm4gJ3Blcm1hbmVudCc7XG5cbiAgaWYgKGVycm9yRmllbGQoZmllbGRzLCAncmV0cnlhYmxlJykgPT09IGZhbHNlKSByZXR1cm4gJ3Blcm1hbmVudCc7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIElucHV0VmFsaWRhdGlvbkVycm9yKSByZXR1cm4gJ3Blcm1hbmVudCc7XG4gIGNvbnN0IGRlY2xhcmVkTmFtZSA9IGVycm9yRmllbGQoZmllbGRzLCAnbmFtZScpO1xuICBjb25zdCBuYW1lID0gdHlwZW9mIGRlY2xhcmVkTmFtZSA9PT0gJ3N0cmluZycgPyBkZWNsYXJlZE5hbWUgOiB1bmRlZmluZWQ7XG4gIGlmIChuYW1lICE9PSB1bmRlZmluZWQgJiYgVkFMSURBVElPTl9OQU1FUy5oYXMobmFtZSkpIHJldHVybiAncGVybWFuZW50JztcblxuICBpZiAoc3RhdHVzID09PSB1bmRlZmluZWQgJiYgaXNUcmFuc3BvcnRGYWlsdXJlKGZpZWxkcywgbmFtZSkpIHJldHVybiAnbmV0d29yayc7XG4gIHJldHVybiAndW5rbm93bic7XG59XG5cbmZ1bmN0aW9uIGlzVHJhbnNwb3J0RmFpbHVyZShmaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgaWYgKGhhc05ldHdvcmtDb2RlKGVycm9yRmllbGQoZmllbGRzLCAnY29kZScpKSkgcmV0dXJuIHRydWU7XG4gIGNvbnN0IGNhdXNlID0gZXJyb3JGaWVsZChmaWVsZHMsICdjYXVzZScpO1xuICBpZiAoY2F1c2UgIT09IG51bGwgJiYgdHlwZW9mIGNhdXNlID09PSAnb2JqZWN0JyAmJiBoYXNOZXR3b3JrQ29kZShlcnJvckZpZWxkKGNhdXNlLCAnY29kZScpKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChuYW1lICE9PSB1bmRlZmluZWQgJiYgVFJBTlNQT1JUX0FCT1JUX05BTUVTLmhhcyhuYW1lKSkgcmV0dXJuIHRydWU7XG4gIGlmICghKGZpZWxkcyBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgbWVzc2FnZSA9IGVycm9yRmllbGQoZmllbGRzLCAnbWVzc2FnZScpO1xuICByZXR1cm4gdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnICYmIEZFVENIX0ZBSUxVUkUudGVzdChtZXNzYWdlKTtcbn1cblxuZnVuY3Rpb24gaGFzTmV0d29ya0NvZGUoY29kZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIGNvZGUgPT09ICdzdHJpbmcnICYmIE5FVFdPUktfQ09ERVMuaGFzKGNvZGUpO1xufVxuXG5mdW5jdGlvbiBudW1iZXJGaWVsZChmaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6ICdzdGF0dXMnIHwgJ3N0YXR1c0NvZGUnKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdmFsdWUgPSBlcnJvckZpZWxkKGZpZWxkcywga2V5KTtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBpc1dhaXQodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlKSAmJiB2YWx1ZSA+PSAwO1xufVxuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** A finite inheritance allowance for ordinary Error subclasses and metadata. */
|
|
2
|
+
const MAX_ERROR_FIELD_DEPTH = 32;
|
|
3
|
+
// Capture the platform intrinsic once; never call a later caller replacement.
|
|
4
|
+
const DOM_EXCEPTION_PROTOTYPE = typeof DOMException === 'function' ? DOMException.prototype : undefined;
|
|
5
|
+
const DOM_EXCEPTION_NAME = DOM_EXCEPTION_PROTOTYPE
|
|
6
|
+
? Object.getOwnPropertyDescriptor(DOM_EXCEPTION_PROTOTYPE, 'name')?.get
|
|
7
|
+
: undefined;
|
|
8
|
+
const APPLY_INTRINSIC = Reflect.apply;
|
|
9
|
+
/** Caller accessors shadow farther data. Only the captured platform name getter may run. */
|
|
10
|
+
export function errorField(value, key) {
|
|
11
|
+
if (value === null || (typeof value !== 'object' && typeof value !== 'function'))
|
|
12
|
+
return undefined;
|
|
13
|
+
let current = value;
|
|
14
|
+
for (let depth = 0; current !== null && depth < MAX_ERROR_FIELD_DEPTH; depth++) {
|
|
15
|
+
const property = Object.getOwnPropertyDescriptor(current, key);
|
|
16
|
+
if (property) {
|
|
17
|
+
if (Object.prototype.hasOwnProperty.call(property, 'value'))
|
|
18
|
+
return property.value;
|
|
19
|
+
if (key === 'name' &&
|
|
20
|
+
current === DOM_EXCEPTION_PROTOTYPE &&
|
|
21
|
+
DOM_EXCEPTION_NAME &&
|
|
22
|
+
property.get === DOM_EXCEPTION_NAME) {
|
|
23
|
+
// The intrinsic brand-checks its receiver, refusing forged prototypes and proxies.
|
|
24
|
+
return APPLY_INTRINSIC(DOM_EXCEPTION_NAME, value, []);
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
current = Object.getPrototypeOf(current);
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JGaWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXR0ZW1wdC9lcnJvckZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlGQUFpRjtBQUNqRixNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUVqQyw4RUFBOEU7QUFDOUUsTUFBTSx1QkFBdUIsR0FBRyxPQUFPLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUN4RyxNQUFNLGtCQUFrQixHQUFHLHVCQUF1QjtJQUNoRCxDQUFDLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxFQUFFLEdBQUc7SUFDdkUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNkLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFFdEMsNEZBQTRGO0FBQzVGLE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBYyxFQUFFLEdBQVc7SUFDcEQsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ25HLElBQUksT0FBTyxHQUFrQixLQUFLLENBQUM7SUFDbkMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsT0FBTyxLQUFLLElBQUksSUFBSSxLQUFLLEdBQUcscUJBQXFCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO2dCQUFFLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNuRixJQUNFLEdBQUcsS0FBSyxNQUFNO2dCQUNkLE9BQU8sS0FBSyx1QkFBdUI7Z0JBQ25DLGtCQUFrQjtnQkFDbEIsUUFBUSxDQUFDLEdBQUcsS0FBSyxrQkFBa0IsRUFDbkMsQ0FBQztnQkFDRCxtRkFBbUY7Z0JBQ25GLE9BQU8sZUFBZSxDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4RCxDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEEgZmluaXRlIGluaGVyaXRhbmNlIGFsbG93YW5jZSBmb3Igb3JkaW5hcnkgRXJyb3Igc3ViY2xhc3NlcyBhbmQgbWV0YWRhdGEuICovXG5jb25zdCBNQVhfRVJST1JfRklFTERfREVQVEggPSAzMjtcblxuLy8gQ2FwdHVyZSB0aGUgcGxhdGZvcm0gaW50cmluc2ljIG9uY2U7IG5ldmVyIGNhbGwgYSBsYXRlciBjYWxsZXIgcmVwbGFjZW1lbnQuXG5jb25zdCBET01fRVhDRVBUSU9OX1BST1RPVFlQRSA9IHR5cGVvZiBET01FeGNlcHRpb24gPT09ICdmdW5jdGlvbicgPyBET01FeGNlcHRpb24ucHJvdG90eXBlIDogdW5kZWZpbmVkO1xuY29uc3QgRE9NX0VYQ0VQVElPTl9OQU1FID0gRE9NX0VYQ0VQVElPTl9QUk9UT1RZUEVcbiAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKERPTV9FWENFUFRJT05fUFJPVE9UWVBFLCAnbmFtZScpPy5nZXRcbiAgOiB1bmRlZmluZWQ7XG5jb25zdCBBUFBMWV9JTlRSSU5TSUMgPSBSZWZsZWN0LmFwcGx5O1xuXG4vKiogQ2FsbGVyIGFjY2Vzc29ycyBzaGFkb3cgZmFydGhlciBkYXRhLiBPbmx5IHRoZSBjYXB0dXJlZCBwbGF0Zm9ybSBuYW1lIGdldHRlciBtYXkgcnVuLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVycm9yRmllbGQodmFsdWU6IHVua25vd24sIGtleTogc3RyaW5nKTogdW5rbm93biB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyAmJiB0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpKSByZXR1cm4gdW5kZWZpbmVkO1xuICBsZXQgY3VycmVudDogb2JqZWN0IHwgbnVsbCA9IHZhbHVlO1xuICBmb3IgKGxldCBkZXB0aCA9IDA7IGN1cnJlbnQgIT09IG51bGwgJiYgZGVwdGggPCBNQVhfRVJST1JfRklFTERfREVQVEg7IGRlcHRoKyspIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY3VycmVudCwga2V5KTtcbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcGVydHksICd2YWx1ZScpKSByZXR1cm4gcHJvcGVydHkudmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIGtleSA9PT0gJ25hbWUnICYmXG4gICAgICAgIGN1cnJlbnQgPT09IERPTV9FWENFUFRJT05fUFJPVE9UWVBFICYmXG4gICAgICAgIERPTV9FWENFUFRJT05fTkFNRSAmJlxuICAgICAgICBwcm9wZXJ0eS5nZXQgPT09IERPTV9FWENFUFRJT05fTkFNRVxuICAgICAgKSB7XG4gICAgICAgIC8vIFRoZSBpbnRyaW5zaWMgYnJhbmQtY2hlY2tzIGl0cyByZWNlaXZlciwgcmVmdXNpbmcgZm9yZ2VkIHByb3RvdHlwZXMgYW5kIHByb3hpZXMuXG4gICAgICAgIHJldHVybiBBUFBMWV9JTlRSSU5TSUMoRE9NX0VYQ0VQVElPTl9OQU1FLCB2YWx1ZSwgW10pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY3VycmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50KTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -21,12 +21,15 @@
|
|
|
21
21
|
* `TypeError`, an `AbortError` / `TimeoutError` that was not the run's) → network
|
|
22
22
|
* 9. anything else → unknown
|
|
23
23
|
*
|
|
24
|
-
* A status is a NUMBER (`status` or `statusCode`); a numeric string is not read as one.
|
|
25
|
-
*
|
|
24
|
+
* A status is a NUMBER (`status` or `statusCode`); a numeric string is not read as one. Metadata uses only
|
|
25
|
+
* own/inherited data within 32 prototype objects; a caller accessor shadows farther data without executing.
|
|
26
|
+
* The captured platform DOMException name getter is the sole accessor exception and brand-checks its receiver.
|
|
27
|
+
* Inspection failures (a hostile Proxy) are `'unknown'`, never a second throw from an error path.
|
|
26
28
|
*/
|
|
27
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
30
|
exports.terminalCategory = exports.errorCategory = void 0;
|
|
29
31
|
const errors_js_1 = require("../schema/errors.js");
|
|
32
|
+
const errorField_js_1 = require("./errorField.js");
|
|
30
33
|
const errors_js_2 = require("./errors.js");
|
|
31
34
|
/** Socket-level codes a transport failure carries (Node's `errno` names). */
|
|
32
35
|
const NETWORK_CODES = new Set([
|
|
@@ -92,7 +95,7 @@ function categoryOf(error) {
|
|
|
92
95
|
return 'unknown';
|
|
93
96
|
const fields = error;
|
|
94
97
|
const status = numberField(fields, 'status') ?? numberField(fields, 'statusCode');
|
|
95
|
-
const declaresRetryAfter = isWait(fields
|
|
98
|
+
const declaresRetryAfter = isWait((0, errorField_js_1.errorField)(fields, 'retryAfterMs')) || isWait((0, errorField_js_1.errorField)(fields, 'retryAfterSeconds'));
|
|
96
99
|
if (status === 429 || declaresRetryAfter)
|
|
97
100
|
return 'rate-limited';
|
|
98
101
|
if (status !== undefined && status >= 500 && status <= 599)
|
|
@@ -101,11 +104,12 @@ function categoryOf(error) {
|
|
|
101
104
|
return 'auth';
|
|
102
105
|
if (status !== undefined && status >= 400 && status <= 499)
|
|
103
106
|
return 'permanent';
|
|
104
|
-
if (fields
|
|
107
|
+
if ((0, errorField_js_1.errorField)(fields, 'retryable') === false)
|
|
105
108
|
return 'permanent';
|
|
106
109
|
if (error instanceof errors_js_1.InputValidationError)
|
|
107
110
|
return 'permanent';
|
|
108
|
-
const
|
|
111
|
+
const declaredName = (0, errorField_js_1.errorField)(fields, 'name');
|
|
112
|
+
const name = typeof declaredName === 'string' ? declaredName : undefined;
|
|
109
113
|
if (name !== undefined && VALIDATION_NAMES.has(name))
|
|
110
114
|
return 'permanent';
|
|
111
115
|
if (status === undefined && isTransportFailure(fields, name))
|
|
@@ -113,24 +117,27 @@ function categoryOf(error) {
|
|
|
113
117
|
return 'unknown';
|
|
114
118
|
}
|
|
115
119
|
function isTransportFailure(fields, name) {
|
|
116
|
-
if (hasNetworkCode(fields
|
|
120
|
+
if (hasNetworkCode((0, errorField_js_1.errorField)(fields, 'code')))
|
|
117
121
|
return true;
|
|
118
|
-
const cause = fields
|
|
119
|
-
if (cause !== null && typeof cause === 'object' && hasNetworkCode(cause
|
|
122
|
+
const cause = (0, errorField_js_1.errorField)(fields, 'cause');
|
|
123
|
+
if (cause !== null && typeof cause === 'object' && hasNetworkCode((0, errorField_js_1.errorField)(cause, 'code'))) {
|
|
120
124
|
return true;
|
|
121
125
|
}
|
|
122
126
|
if (name !== undefined && TRANSPORT_ABORT_NAMES.has(name))
|
|
123
127
|
return true;
|
|
124
|
-
|
|
128
|
+
if (!(fields instanceof TypeError))
|
|
129
|
+
return false;
|
|
130
|
+
const message = (0, errorField_js_1.errorField)(fields, 'message');
|
|
131
|
+
return typeof message === 'string' && FETCH_FAILURE.test(message);
|
|
125
132
|
}
|
|
126
133
|
function hasNetworkCode(code) {
|
|
127
134
|
return typeof code === 'string' && NETWORK_CODES.has(code);
|
|
128
135
|
}
|
|
129
136
|
function numberField(fields, key) {
|
|
130
|
-
const value = fields
|
|
137
|
+
const value = (0, errorField_js_1.errorField)(fields, key);
|
|
131
138
|
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
132
139
|
}
|
|
133
140
|
function isWait(value) {
|
|
134
141
|
return typeof value === 'number' && Number.isFinite(value) && value >= 0;
|
|
135
142
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2F0dGVtcHQvY2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7OztBQUVILG1EQUEyRDtBQUMzRCwyQ0FBc0U7QUFHdEUsNkVBQTZFO0FBQzdFLE1BQU0sYUFBYSxHQUF3QixJQUFJLEdBQUcsQ0FBQztJQUNqRCxZQUFZO0lBQ1osY0FBYztJQUNkLFdBQVc7SUFDWCxXQUFXO0lBQ1gsV0FBVztJQUNYLE9BQU87Q0FDUixDQUFDLENBQUM7QUFFSCw0R0FBNEc7QUFDNUcsTUFBTSxhQUFhLEdBQUcsaUdBQWlHLENBQUM7QUFFeEgseUZBQXlGO0FBQ3pGLE1BQU0sZ0JBQWdCLEdBQXdCLElBQUksR0FBRyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQztBQUUvRyxzSEFBc0g7QUFDdEgsTUFBTSxxQkFBcUIsR0FBd0IsSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUUzRjs7O0dBR0c7QUFDSCxTQUFnQixhQUFhLENBQUMsS0FBYyxFQUFFLFVBQTBCLFFBQVE7SUFDOUUsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzVDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM1QyxJQUFJLENBQUM7UUFDSCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFSRCxzQ0FRQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFjLEVBQUUsS0FBdUI7SUFDdEUsSUFBSSxDQUFDO1FBQ0gsSUFBSSxL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QUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxjQUFjLENBQUUsS0FBaUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzNHLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDdkUsT0FBTyxNQUFNLFlBQVksU0FBUyxJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDakgsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLElBQWE7SUFDbkMsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsTUFBK0IsRUFBRSxHQUE0QjtJQUNoRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDakYsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLEtBQWM7SUFDNUIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQzNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGF0dGVtcHQvY2F0ZWdvcnkudHMg4oCUIGBlcnJvckNhdGVnb3J5YCwgdGhlIE9ORSBmYWlsdXJlIGNsYXNzaWZpZXIgKGRlc2lnbiDCpzMuOSkuXG4gKlxuICogU2V2ZW4gZml4ZWQgdmFsdWVzLCBzbyBldmVyeSByZWNvcmRlciDigJQgdGhlIG5hcnJhdGl2ZSwgdGhlIG1ldHJpYyBsYXllciwgYW4gYWdlbnQncyBvd24g4oCUIGJyZWFrcyBmYWlsdXJlcyBkb3duXG4gKiB0aGUgc2FtZSB3YXk7IGEgcmVjb3JkZXIgbmV2ZXIgaW52ZW50cyBhIGNhdGVnb3J5IG9mIGl0cyBvd24uIEJvcnJvd2VkIGZyb20gYWdlbnRmb290cHJpbnQnc1xuICogYGNsYXNzaWZ5UmV0cnlSZWFzb25gIGFuZCB3aWRlbmVkLCBzbyBpdHMgZGVjb3JhdG9ycyBhZG9wdCB0aGlzIG9uZSByYXRoZXIgdGhhbiBrZWVwIHRoZWlycy5cbiAqXG4gKiBDYXRlZ29yeSBpcyBFVklERU5DRSwgbmV2ZXIgcG9saWN5OiB0aGUgZGVmYXVsdCBgcmV0cnlPbmAgcmV0cmllcyBldmVyeSBjYXRlZ29yeS4gQSBjaGFydCB0aGF0IHdhbnRzIFwibmV2ZXJcbiAqIHJldHJ5IGEgcGVybWFuZW50IGZhaWx1cmVcIiBzYXlzIHNvOiBgcmV0cnlPbjogKGUpID0+IGVycm9yQ2F0ZWdvcnkoZSkgIT09ICdwZXJtYW5lbnQnYC5cbiAqXG4gKiBQcmVjZWRlbmNlIOKAlCB3aGF0IHRoZSBmYWlsdXJlIExPT0tFRCBsaWtlIHdpbnMgb3ZlciB3aGF0IGl0IGRlY2xhcmVzOlxuICogICAxLiB0aGUgYXR0ZW1wdCdzIG93biB0aW1lciAob3V0Y29tZSBgJ3RpbWVvdXQnYCwgb3Igb3VyIGBBdHRlbXB0VGltZW91dEVycm9yYCkgIOKGkiB0aW1lb3V0XG4gKiAgIDIuIHRoZSBydW4ncyBzaWduYWwgZW5kZWQgaXQgKG91dGNvbWUgYCdhYm9ydGVkJ2ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaSIHVua25vd25cbiAqICAgMy4gc3RhdHVzIDQyOSwgb3IgYSBkZWNsYXJlZCBgcmV0cnlBZnRlck1zYCAvIGByZXRyeUFmdGVyU2Vjb25kc2AgICAgICAgICAgICAgICDihpIgcmF0ZS1saW1pdGVkXG4gKiAgIDQuIHN0YXR1cyA1eHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaSIHNlcnZlclxuICogICA1LiBzdGF0dXMgNDAxIC8gNDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkiBhdXRoXG4gKiAgIDYuIGFueSBvdGhlciA0eHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaSIHBlcm1hbmVudFxuICogICA3LiBgcmV0cnlhYmxlOiBmYWxzZWAsIG9yIGEgdmFsaWRhdGlvbiBlcnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkiBwZXJtYW5lbnRcbiAqICAgOC4gYSB0cmFuc3BvcnQgZmFpbHVyZSAoYSBzb2NrZXQgY29kZSBvbiB0aGUgZXJyb3Igb3IgaXRzIGNhdXNlLCBhIGZldGNoXG4gKiAgICAgIGBUeXBlRXJyb3JgLCBhbiBgQWJvcnRFcnJvcmAgLyBgVGltZW91dEVycm9yYCB0aGF0IHdhcyBub3QgdGhlIHJ1bidzKSAgICAgICAg4oaSIG5ldHdvcmtcbiAqICAgOS4gYW55dGhpbmcgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpIgdW5rbm93blxuICpcbiAqIEEgc3RhdHVzIGlzIGEgTlVNQkVSIChgc3RhdHVzYCBvciBgc3RhdHVzQ29kZWApOyBhIG51bWVyaWMgc3RyaW5nIGlzIG5vdCByZWFkIGFzIG9uZS4gVG90YWw6IGEgdmFsdWUgd2hvc2VcbiAqIHJlYWRzIHRocm93IChhIGhvc3RpbGUgUHJveHkpIGlzIGAndW5rbm93bidgLCBuZXZlciBhIHNlY29uZCB0aHJvdyBmcm9tIGFuIGVycm9yIHBhdGguXG4gKi9cblxuaW1wb3J0IHsgSW5wdXRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi9zY2hlbWEvZXJyb3JzLmpzJztcbmltcG9ydCB7IEF0dGVtcHRUaW1lb3V0RXJyb3IsIFVua25vd25FZmZlY3RFcnJvciB9IGZyb20gJy4vZXJyb3JzLmpzJztcbmltcG9ydCB0eXBlIHsgQXR0ZW1wdENhdGVnb3J5LCBBdHRlbXB0T3V0Y29tZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKiogU29ja2V0LWxldmVsIGNvZGVzIGEgdHJhbnNwb3J0IGZhaWx1cmUgY2FycmllcyAoTm9kZSdzIGBlcnJub2AgbmFtZXMpLiAqL1xuY29uc3QgTkVUV09SS19DT0RFUzogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnRUNPTk5SRVNFVCcsXG4gICdFQ09OTlJFRlVTRUQnLFxuICAnRU5PVEZPVU5EJyxcbiAgJ0VUSU1FRE9VVCcsXG4gICdFQUlfQUdBSU4nLFxuICAnRVBJUEUnLFxuXSk7XG5cbi8qKiBUaGUgbWVzc2FnZXMgcnVudGltZXMgZ2l2ZSBhIGBmZXRjaGAgdGhhdCBuZXZlciByZWFjaGVkIHRoZSBzZXJ2ZXIgKE5vZGUsIENocm9taXVtLCBGaXJlZm94LCBTYWZhcmkpLiAqL1xuY29uc3QgRkVUQ0hfRkFJTFVSRSA9IC9eKGZldGNoIGZhaWxlZHxmYWlsZWQgdG8gZmV0Y2h8bmV0d29ya2Vycm9yIHdoZW4gYXR0ZW1wdGluZyB0byBmZXRjaCByZXNvdXJjZVxcLj98bG9hZCBmYWlsZWQpJC9pO1xuXG4vKiogRXJyb3IgbmFtZXMgdGhhdCBzYXkgYSB2YWxpZGF0aW9uIGZhaWxlZCDigJQgcmV0cnlpbmcgdGhlIHNhbWUgaW5wdXQgY2Fubm90IHN1Y2NlZWQuICovXG5jb25zdCBWQUxJREFUSU9OX05BTUVTOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldChbJ1ZhbGlkYXRpb25FcnJvcicsICdab2RFcnJvcicsICdJbnB1dFZhbGlkYXRpb25FcnJvciddKTtcblxuLyoqIEVycm9yIG5hbWVzIG9mIGFuIGFib3J0IG9yIGEgdGltZW91dCB0aGF0IHNvbWUgT1RIRVIgc2lnbmFsIHJhaXNlZCAodGhlIHJ1bidzIG93biBlbmRzIGFzIG91dGNvbWUgYCdhYm9ydGVkJ2ApLiAqL1xuY29uc3QgVFJBTlNQT1JUX0FCT1JUX05BTUVTOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldChbJ0Fib3J0RXJyb3InLCAnVGltZW91dEVycm9yJ10pO1xuXG4vKipcbiAqIFRoZSBjYXRlZ29yeSBvZiBhbiBhdHRlbXB0J3MgZmFpbHVyZS4gYG91dGNvbWVgIGlzIGhvdyB0aGUgYXR0ZW1wdCBlbmRlZCAoZGVmYXVsdCBgJ2ZhaWxlZCdgKTogaXQgZGVjaWRlc1xuICogYCd0aW1lb3V0J2AgKHRoZSBhdHRlbXB0J3Mgb3duIHRpbWVyKSBhbmQgYCd1bmtub3duJ2AgKHRoZSBydW4ncyBzaWduYWwpIGJlZm9yZSB0aGUgZXJyb3IgaXMgcmVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVycm9yQ2F0ZWdvcnkoZXJyb3I6IHVua25vd24sIG91dGNvbWU6IEF0dGVtcHRPdXRjb21lID0gJ2ZhaWxlZCcpOiBBdHRlbXB0Q2F0ZWdvcnkge1xuICBpZiAob3V0Y29tZSA9PT0gJ3RpbWVvdXQnKSByZXR1cm4gJ3RpbWVvdXQnO1xuICBpZiAob3V0Y29tZSA9PT0gJ2Fib3J0ZWQnKSByZXR1cm4gJ3Vua25vd24nO1xuICB0cnkge1xuICAgIHJldHVybiBjYXRlZ29yeU9mKGVycm9yKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuICd1bmtub3duJztcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUZXJtaW5hbCBvd25lcnNoaXAgcHJlc2VydmVzIGEgcHJvZHVjZXIncyBrbm93biBjYXRlZ29yeS4gQW5cbiAqIHVucmVzb2x2ZWQgZWZmZWN0IGlzIHVua25vd24sIG5ldmVyIHRoZSBjYXRlZ29yeSBvZiBpdHMgcGh5c2ljYWwgY2F1c2UuXG4gKiBUaGlzIGRvZXMgbm90IHJld3JpdGUgaGlzdG9yaWNhbCBhdHRlbXB0IGNhdGVnb3JpZXMgb3IgcmUtcmVhZCBhIGtub3duIG9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlcm1pbmFsQ2F0ZWdvcnkoZXJyb3I6IHVua25vd24sIGtub3duPzogQXR0ZW1wdENhdGVnb3J5KTogQXR0ZW1wdENhdGVnb3J5IHtcbiAgdHJ5IHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBVbmtub3duRWZmZWN0RXJyb3IpIHJldHVybiAndW5rbm93bic7XG4gICAgLy8gQ0pTIGFuZCBFU00gaGF2ZSBkaXN0aW5jdCBjb25zdHJ1Y3RvcnMuIEEgZGVjbGFyZWQgb3duIERBVEEgbmFtZSBtYXlcbiAgICAvLyBvbmx5IHJlZHVjZSBjZXJ0YWludHkgdG8gdW5rbm93bjsgbmV2ZXIgZXhlY3V0ZSBhbiBlcnJvcidzIG5hbWUgZ2V0dGVyXG4gICAgLy8gb3IgcHJvbW90ZSBpdHMgcGh5c2ljYWwgY2F1c2UgdG8gYSBrbm93biBvdXRjb21lIGFjcm9zcyBtb2R1bGUgY29waWVzLlxuICAgIGlmIChlcnJvciAhPT0gbnVsbCAmJiAodHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgZXJyb3IgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgICBjb25zdCBuYW1lID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlcnJvciwgJ25hbWUnKTtcbiAgICAgIGlmIChuYW1lICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuYW1lLCAndmFsdWUnKSAmJiBuYW1lLnZhbHVlID09PSAnVW5rbm93bkVmZmVjdEVycm9yJykge1xuICAgICAgICByZXR1cm4gJ3Vua25vd24nO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGtub3duID8/ICd1bmtub3duJztcbiAgfVxuICByZXR1cm4ga25vd24gPz8gZXJyb3JDYXRlZ29yeShlcnJvcik7XG59XG5cbmZ1bmN0aW9uIGNhdGVnb3J5T2YoZXJyb3I6IHVua25vd24pOiBBdHRlbXB0Q2F0ZWdvcnkge1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBdHRlbXB0VGltZW91dEVycm9yKSByZXR1cm4gJ3RpbWVvdXQnO1xuICBpZiAoZXJyb3IgPT09IG51bGwgfHwgKHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgJiYgdHlwZW9mIGVycm9yICE9PSAnZnVuY3Rpb24nKSkgcmV0dXJuICd1bmtub3duJztcbiAgY29uc3QgZmllbGRzID0gZXJyb3IgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgY29uc3Qgc3RhdHVzID0gbnVtYmVyRmllbGQoZmllbGRzLCAnc3RhdHVzJykgPz8gbnVtYmVyRmllbGQoZmllbGRzLCAnc3RhdHVzQ29kZScpO1xuICBjb25zdCBkZWNsYXJlc1JldHJ5QWZ0ZXIgPSBpc1dhaXQoZmllbGRzLnJldHJ5QWZ0ZXJNcykgfHwgaXNXYWl0KGZpZWxkcy5yZXRyeUFmdGVyU2Vjb25kcyk7XG4gIGlmIChzdGF0dXMgPT09IDQyOSB8fCBkZWNsYXJlc1JldHJ5QWZ0ZXIpIHJldHVybiAncmF0ZS1saW1pdGVkJztcbiAgaWYgKHN0YXR1cyAhPT0gdW5kZWZpbmVkICYmIHN0YXR1cyA+PSA1MDAgJiYgc3RhdHVzIDw9IDU5OSkgcmV0dXJuICdzZXJ2ZXInO1xuICBpZiAoc3RhdHVzID09PSA0MDEgfHwgc3RhdHVzID09PSA0MDMpIHJldHVybiAnYXV0aCc7XG4gIGlmIChzdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBzdGF0dXMgPj0gNDAwICYmIHN0YXR1cyA8PSA0OTkpIHJldHVybiAncGVybWFuZW50JztcblxuICBpZiAoZmllbGRzLnJldHJ5YWJsZSA9PT0gZmFsc2UpIHJldHVybiAncGVybWFuZW50JztcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgSW5wdXRWYWxpZGF0aW9uRXJyb3IpIHJldHVybiAncGVybWFuZW50JztcbiAgY29uc3QgbmFtZSA9IHR5cGVvZiBmaWVsZHMubmFtZSA9PT0gJ3N0cmluZycgPyBmaWVsZHMubmFtZSA6IHVuZGVmaW5lZDtcbiAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCAmJiBWQUxJREFUSU9OX05BTUVTLmhhcyhuYW1lKSkgcmV0dXJuICdwZXJtYW5lbnQnO1xuXG4gIGlmIChzdGF0dXMgPT09IHVuZGVmaW5lZCAmJiBpc1RyYW5zcG9ydEZhaWx1cmUoZmllbGRzLCBuYW1lKSkgcmV0dXJuICduZXR3b3JrJztcbiAgcmV0dXJuICd1bmtub3duJztcbn1cblxuZnVuY3Rpb24gaXNUcmFuc3BvcnRGYWlsdXJlKGZpZWxkczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICBpZiAoaGFzTmV0d29ya0NvZGUoZmllbGRzLmNvZGUpKSByZXR1cm4gdHJ1ZTtcbiAgY29uc3QgY2F1c2UgPSBmaWVsZHMuY2F1c2U7XG4gIGlmIChjYXVzZSAhPT0gbnVsbCAmJiB0eXBlb2YgY2F1c2UgPT09ICdvYmplY3QnICYmIGhhc05ldHdvcmtDb2RlKChjYXVzZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikuY29kZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAobmFtZSAhPT0gdW5kZWZpbmVkICYmIFRSQU5TUE9SVF9BQk9SVF9OQU1FUy5oYXMobmFtZSkpIHJldHVybiB0cnVlO1xuICByZXR1cm4gZmllbGRzIGluc3RhbmNlb2YgVHlwZUVycm9yICYmIHR5cGVvZiBmaWVsZHMubWVzc2FnZSA9PT0gJ3N0cmluZycgJiYgRkVUQ0hfRkFJTFVSRS50ZXN0KGZpZWxkcy5tZXNzYWdlKTtcbn1cblxuZnVuY3Rpb24gaGFzTmV0d29ya0NvZGUoY29kZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIGNvZGUgPT09ICdzdHJpbmcnICYmIE5FVFdPUktfQ09ERVMuaGFzKGNvZGUpO1xufVxuXG5mdW5jdGlvbiBudW1iZXJGaWVsZChmaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6ICdzdGF0dXMnIHwgJ3N0YXR1c0NvZGUnKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdmFsdWUgPSBmaWVsZHNba2V5XTtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBpc1dhaXQodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlKSAmJiB2YWx1ZSA+PSAwO1xufVxuIl19
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2F0dGVtcHQvY2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRzs7O0FBRUgsbURBQTJEO0FBQzNELG1EQUE2QztBQUM3QywyQ0FBc0U7QUFHdEUsNkVBQTZFO0FBQzdFLE1BQU0sYUFBYSxHQUF3QixJQUFJLEdBQUcsQ0FBQztJQUNqRCxZQUFZO0lBQ1osY0FBYztJQUNkLFdBQVc7SUFDWCxXQUFXO0lBQ1gsV0FBVztJQUNYLE9BQU87Q0FDUixDQUFDLENBQUM7QUFFSCw0R0FBNEc7QUFDNUcsTUFBTSxhQUFhLEdBQUcsaUdBQWlHLENBQUM7QUFFeEgseUZBQXlGO0FBQ3pGLE1BQU0sZ0JBQWdCLEdBQXdCLElBQUksR0FBRyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQztBQUUvRyxzSEFBc0g7QUFDdEgsTUFBTSxxQkFBcUIsR0FBd0IsSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUUzRjs7O0dBR0c7QUFDSCxTQUFnQixhQUFhLENBQUMsS0FBYyxFQUFFLFVBQTBCLFFBQVE7SUFDOUUsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzVDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM1QyxJQUFJLENBQUM7UUFDSCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFSRCxzQ0FRQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFjLEVBQUUsS0FBdUI7SUFDdEUsSUFBSSxD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akYsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLEtBQWM7SUFDNUIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQzNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGF0dGVtcHQvY2F0ZWdvcnkudHMg4oCUIGBlcnJvckNhdGVnb3J5YCwgdGhlIE9ORSBmYWlsdXJlIGNsYXNzaWZpZXIgKGRlc2lnbiDCpzMuOSkuXG4gKlxuICogU2V2ZW4gZml4ZWQgdmFsdWVzLCBzbyBldmVyeSByZWNvcmRlciDigJQgdGhlIG5hcnJhdGl2ZSwgdGhlIG1ldHJpYyBsYXllciwgYW4gYWdlbnQncyBvd24g4oCUIGJyZWFrcyBmYWlsdXJlcyBkb3duXG4gKiB0aGUgc2FtZSB3YXk7IGEgcmVjb3JkZXIgbmV2ZXIgaW52ZW50cyBhIGNhdGVnb3J5IG9mIGl0cyBvd24uIEJvcnJvd2VkIGZyb20gYWdlbnRmb290cHJpbnQnc1xuICogYGNsYXNzaWZ5UmV0cnlSZWFzb25gIGFuZCB3aWRlbmVkLCBzbyBpdHMgZGVjb3JhdG9ycyBhZG9wdCB0aGlzIG9uZSByYXRoZXIgdGhhbiBrZWVwIHRoZWlycy5cbiAqXG4gKiBDYXRlZ29yeSBpcyBFVklERU5DRSwgbmV2ZXIgcG9saWN5OiB0aGUgZGVmYXVsdCBgcmV0cnlPbmAgcmV0cmllcyBldmVyeSBjYXRlZ29yeS4gQSBjaGFydCB0aGF0IHdhbnRzIFwibmV2ZXJcbiAqIHJldHJ5IGEgcGVybWFuZW50IGZhaWx1cmVcIiBzYXlzIHNvOiBgcmV0cnlPbjogKGUpID0+IGVycm9yQ2F0ZWdvcnkoZSkgIT09ICdwZXJtYW5lbnQnYC5cbiAqXG4gKiBQcmVjZWRlbmNlIOKAlCB3aGF0IHRoZSBmYWlsdXJlIExPT0tFRCBsaWtlIHdpbnMgb3ZlciB3aGF0IGl0IGRlY2xhcmVzOlxuICogICAxLiB0aGUgYXR0ZW1wdCdzIG93biB0aW1lciAob3V0Y29tZSBgJ3RpbWVvdXQnYCwgb3Igb3VyIGBBdHRlbXB0VGltZW91dEVycm9yYCkgIOKGkiB0aW1lb3V0XG4gKiAgIDIuIHRoZSBydW4ncyBzaWduYWwgZW5kZWQgaXQgKG91dGNvbWUgYCdhYm9ydGVkJ2ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaSIHVua25vd25cbiAqICAgMy4gc3RhdHVzIDQyOSwgb3IgYSBkZWNsYXJlZCBgcmV0cnlBZnRlck1zYCAvIGByZXRyeUFmdGVyU2Vjb25kc2AgICAgICAgICAgICAgICDihpIgcmF0ZS1saW1pdGVkXG4gKiAgIDQuIHN0YXR1cyA1eHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaSIHNlcnZlclxuICogICA1LiBzdGF0dXMgNDAxIC8gNDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkiBhdXRoXG4gKiAgIDYuIGFueSBvdGhlciA0eHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaSIHBlcm1hbmVudFxuICogICA3LiBgcmV0cnlhYmxlOiBmYWxzZWAsIG9yIGEgdmFsaWRhdGlvbiBlcnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkiBwZXJtYW5lbnRcbiAqICAgOC4gYSB0cmFuc3BvcnQgZmFpbHVyZSAoYSBzb2NrZXQgY29kZSBvbiB0aGUgZXJyb3Igb3IgaXRzIGNhdXNlLCBhIGZldGNoXG4gKiAgICAgIGBUeXBlRXJyb3JgLCBhbiBgQWJvcnRFcnJvcmAgLyBgVGltZW91dEVycm9yYCB0aGF0IHdhcyBub3QgdGhlIHJ1bidzKSAgICAgICAg4oaSIG5ldHdvcmtcbiAqICAgOS4gYW55dGhpbmcgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpIgdW5rbm93blxuICpcbiAqIEEgc3RhdHVzIGlzIGEgTlVNQkVSIChgc3RhdHVzYCBvciBgc3RhdHVzQ29kZWApOyBhIG51bWVyaWMgc3RyaW5nIGlzIG5vdCByZWFkIGFzIG9uZS4gTWV0YWRhdGEgdXNlcyBvbmx5XG4gKiBvd24vaW5oZXJpdGVkIGRhdGEgd2l0aGluIDMyIHByb3RvdHlwZSBvYmplY3RzOyBhIGNhbGxlciBhY2Nlc3NvciBzaGFkb3dzIGZhcnRoZXIgZGF0YSB3aXRob3V0IGV4ZWN1dGluZy5cbiAqIFRoZSBjYXB0dXJlZCBwbGF0Zm9ybSBET01FeGNlcHRpb24gbmFtZSBnZXR0ZXIgaXMgdGhlIHNvbGUgYWNjZXNzb3IgZXhjZXB0aW9uIGFuZCBicmFuZC1jaGVja3MgaXRzIHJlY2VpdmVyLlxuICogSW5zcGVjdGlvbiBmYWlsdXJlcyAoYSBob3N0aWxlIFByb3h5KSBhcmUgYCd1bmtub3duJ2AsIG5ldmVyIGEgc2Vjb25kIHRocm93IGZyb20gYW4gZXJyb3IgcGF0aC5cbiAqL1xuXG5pbXBvcnQgeyBJbnB1dFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL3NjaGVtYS9lcnJvcnMuanMnO1xuaW1wb3J0IHsgZXJyb3JGaWVsZCB9IGZyb20gJy4vZXJyb3JGaWVsZC5qcyc7XG5pbXBvcnQgeyBBdHRlbXB0VGltZW91dEVycm9yLCBVbmtub3duRWZmZWN0RXJyb3IgfSBmcm9tICcuL2Vycm9ycy5qcyc7XG5pbXBvcnQgdHlwZSB7IEF0dGVtcHRDYXRlZ29yeSwgQXR0ZW1wdE91dGNvbWUgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLyoqIFNvY2tldC1sZXZlbCBjb2RlcyBhIHRyYW5zcG9ydCBmYWlsdXJlIGNhcnJpZXMgKE5vZGUncyBgZXJybm9gIG5hbWVzKS4gKi9cbmNvbnN0IE5FVFdPUktfQ09ERVM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ0VDT05OUkVTRVQnLFxuICAnRUNPTk5SRUZVU0VEJyxcbiAgJ0VOT1RGT1VORCcsXG4gICdFVElNRURPVVQnLFxuICAnRUFJX0FHQUlOJyxcbiAgJ0VQSVBFJyxcbl0pO1xuXG4vKiogVGhlIG1lc3NhZ2VzIHJ1bnRpbWVzIGdpdmUgYSBgZmV0Y2hgIHRoYXQgbmV2ZXIgcmVhY2hlZCB0aGUgc2VydmVyIChOb2RlLCBDaHJvbWl1bSwgRmlyZWZveCwgU2FmYXJpKS4gKi9cbmNvbnN0IEZFVENIX0ZBSUxVUkUgPSAvXihmZXRjaCBmYWlsZWR8ZmFpbGVkIHRvIGZldGNofG5ldHdvcmtlcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gZmV0Y2ggcmVzb3VyY2VcXC4/fGxvYWQgZmFpbGVkKSQvaTtcblxuLyoqIEVycm9yIG5hbWVzIHRoYXQgc2F5IGEgdmFsaWRhdGlvbiBmYWlsZWQg4oCUIHJldHJ5aW5nIHRoZSBzYW1lIGlucHV0IGNhbm5vdCBzdWNjZWVkLiAqL1xuY29uc3QgVkFMSURBVElPTl9OQU1FUzogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoWydWYWxpZGF0aW9uRXJyb3InLCAnWm9kRXJyb3InLCAnSW5wdXRWYWxpZGF0aW9uRXJyb3InXSk7XG5cbi8qKiBFcnJvciBuYW1lcyBvZiBhbiBhYm9ydCBvciBhIHRpbWVvdXQgdGhhdCBzb21lIE9USEVSIHNpZ25hbCByYWlzZWQgKHRoZSBydW4ncyBvd24gZW5kcyBhcyBvdXRjb21lIGAnYWJvcnRlZCdgKS4gKi9cbmNvbnN0IFRSQU5TUE9SVF9BQk9SVF9OQU1FUzogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoWydBYm9ydEVycm9yJywgJ1RpbWVvdXRFcnJvciddKTtcblxuLyoqXG4gKiBUaGUgY2F0ZWdvcnkgb2YgYW4gYXR0ZW1wdCdzIGZhaWx1cmUuIGBvdXRjb21lYCBpcyBob3cgdGhlIGF0dGVtcHQgZW5kZWQgKGRlZmF1bHQgYCdmYWlsZWQnYCk6IGl0IGRlY2lkZXNcbiAqIGAndGltZW91dCdgICh0aGUgYXR0ZW1wdCdzIG93biB0aW1lcikgYW5kIGAndW5rbm93bidgICh0aGUgcnVuJ3Mgc2lnbmFsKSBiZWZvcmUgdGhlIGVycm9yIGlzIHJlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlcnJvckNhdGVnb3J5KGVycm9yOiB1bmtub3duLCBvdXRjb21lOiBBdHRlbXB0T3V0Y29tZSA9ICdmYWlsZWQnKTogQXR0ZW1wdENhdGVnb3J5IHtcbiAgaWYgKG91dGNvbWUgPT09ICd0aW1lb3V0JykgcmV0dXJuICd0aW1lb3V0JztcbiAgaWYgKG91dGNvbWUgPT09ICdhYm9ydGVkJykgcmV0dXJuICd1bmtub3duJztcbiAgdHJ5IHtcbiAgICByZXR1cm4gY2F0ZWdvcnlPZihlcnJvcik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAndW5rbm93bic7XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGVybWluYWwgb3duZXJzaGlwIHByZXNlcnZlcyBhIHByb2R1Y2VyJ3Mga25vd24gY2F0ZWdvcnkuIEFuXG4gKiB1bnJlc29sdmVkIGVmZmVjdCBpcyB1bmtub3duLCBuZXZlciB0aGUgY2F0ZWdvcnkgb2YgaXRzIHBoeXNpY2FsIGNhdXNlLlxuICogVGhpcyBkb2VzIG5vdCByZXdyaXRlIGhpc3RvcmljYWwgYXR0ZW1wdCBjYXRlZ29yaWVzIG9yIHJlLXJlYWQgYSBrbm93biBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtaW5hbENhdGVnb3J5KGVycm9yOiB1bmtub3duLCBrbm93bj86IEF0dGVtcHRDYXRlZ29yeSk6IEF0dGVtcHRDYXRlZ29yeSB7XG4gIHRyeSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVW5rbm93bkVmZmVjdEVycm9yKSByZXR1cm4gJ3Vua25vd24nO1xuICAgIC8vIENKUyBhbmQgRVNNIGhhdmUgZGlzdGluY3QgY29uc3RydWN0b3JzLiBBIGRlY2xhcmVkIG93biBEQVRBIG5hbWUgbWF5XG4gICAgLy8gb25seSByZWR1Y2UgY2VydGFpbnR5IHRvIHVua25vd247IG5ldmVyIGV4ZWN1dGUgYW4gZXJyb3IncyBuYW1lIGdldHRlclxuICAgIC8vIG9yIHByb21vdGUgaXRzIHBoeXNpY2FsIGNhdXNlIHRvIGEga25vd24gb3V0Y29tZSBhY3Jvc3MgbW9kdWxlIGNvcGllcy5cbiAgICBpZiAoZXJyb3IgIT09IG51bGwgJiYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIGVycm9yID09PSAnZnVuY3Rpb24nKSkge1xuICAgICAgY29uc3QgbmFtZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXJyb3IsICduYW1lJyk7XG4gICAgICBpZiAobmFtZSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobmFtZSwgJ3ZhbHVlJykgJiYgbmFtZS52YWx1ZSA9PT0gJ1Vua25vd25FZmZlY3RFcnJvcicpIHtcbiAgICAgICAgcmV0dXJuICd1bmtub3duJztcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBrbm93biA/PyAndW5rbm93bic7XG4gIH1cbiAgcmV0dXJuIGtub3duID8/IGVycm9yQ2F0ZWdvcnkoZXJyb3IpO1xufVxuXG5mdW5jdGlvbiBjYXRlZ29yeU9mKGVycm9yOiB1bmtub3duKTogQXR0ZW1wdENhdGVnb3J5IHtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXR0ZW1wdFRpbWVvdXRFcnJvcikgcmV0dXJuICd0aW1lb3V0JztcbiAgaWYgKGVycm9yID09PSBudWxsIHx8ICh0eXBlb2YgZXJyb3IgIT09ICdvYmplY3QnICYmIHR5cGVvZiBlcnJvciAhPT0gJ2Z1bmN0aW9uJykpIHJldHVybiAndW5rbm93bic7XG4gIGNvbnN0IGZpZWxkcyA9IGVycm9yIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIGNvbnN0IHN0YXR1cyA9IG51bWJlckZpZWxkKGZpZWxkcywgJ3N0YXR1cycpID8/IG51bWJlckZpZWxkKGZpZWxkcywgJ3N0YXR1c0NvZGUnKTtcbiAgY29uc3QgZGVjbGFyZXNSZXRyeUFmdGVyID1cbiAgICBpc1dhaXQoZXJyb3JGaWVsZChmaWVsZHMsICdyZXRyeUFmdGVyTXMnKSkgfHwgaXNXYWl0KGVycm9yRmllbGQoZmllbGRzLCAncmV0cnlBZnRlclNlY29uZHMnKSk7XG4gIGlmIChzdGF0dXMgPT09IDQyOSB8fCBkZWNsYXJlc1JldHJ5QWZ0ZXIpIHJldHVybiAncmF0ZS1saW1pdGVkJztcbiAgaWYgKHN0YXR1cyAhPT0gdW5kZWZpbmVkICYmIHN0YXR1cyA+PSA1MDAgJiYgc3RhdHVzIDw9IDU5OSkgcmV0dXJuICdzZXJ2ZXInO1xuICBpZiAoc3RhdHVzID09PSA0MDEgfHwgc3RhdHVzID09PSA0MDMpIHJldHVybiAnYXV0aCc7XG4gIGlmIChzdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBzdGF0dXMgPj0gNDAwICYmIHN0YXR1cyA8PSA0OTkpIHJldHVybiAncGVybWFuZW50JztcblxuICBpZiAoZXJyb3JGaWVsZChmaWVsZHMsICdyZXRyeWFibGUnKSA9PT0gZmFsc2UpIHJldHVybiAncGVybWFuZW50JztcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgSW5wdXRWYWxpZGF0aW9uRXJyb3IpIHJldHVybiAncGVybWFuZW50JztcbiAgY29uc3QgZGVjbGFyZWROYW1lID0gZXJyb3JGaWVsZChmaWVsZHMsICduYW1lJyk7XG4gIGNvbnN0IG5hbWUgPSB0eXBlb2YgZGVjbGFyZWROYW1lID09PSAnc3RyaW5nJyA/IGRlY2xhcmVkTmFtZSA6IHVuZGVmaW5lZDtcbiAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCAmJiBWQUxJREFUSU9OX05BTUVTLmhhcyhuYW1lKSkgcmV0dXJuICdwZXJtYW5lbnQnO1xuXG4gIGlmIChzdGF0dXMgPT09IHVuZGVmaW5lZCAmJiBpc1RyYW5zcG9ydEZhaWx1cmUoZmllbGRzLCBuYW1lKSkgcmV0dXJuICduZXR3b3JrJztcbiAgcmV0dXJuICd1bmtub3duJztcbn1cblxuZnVuY3Rpb24gaXNUcmFuc3BvcnRGYWlsdXJlKGZpZWxkczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICBpZiAoaGFzTmV0d29ya0NvZGUoZXJyb3JGaWVsZChmaWVsZHMsICdjb2RlJykpKSByZXR1cm4gdHJ1ZTtcbiAgY29uc3QgY2F1c2UgPSBlcnJvckZpZWxkKGZpZWxkcywgJ2NhdXNlJyk7XG4gIGlmIChjYXVzZSAhPT0gbnVsbCAmJiB0eXBlb2YgY2F1c2UgPT09ICdvYmplY3QnICYmIGhhc05ldHdvcmtDb2RlKGVycm9yRmllbGQoY2F1c2UsICdjb2RlJykpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCAmJiBUUkFOU1BPUlRfQUJPUlRfTkFNRVMuaGFzKG5hbWUpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKCEoZmllbGRzIGluc3RhbmNlb2YgVHlwZUVycm9yKSkgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBtZXNzYWdlID0gZXJyb3JGaWVsZChmaWVsZHMsICdtZXNzYWdlJyk7XG4gIHJldHVybiB0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycgJiYgRkVUQ0hfRkFJTFVSRS50ZXN0KG1lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBoYXNOZXR3b3JrQ29kZShjb2RlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgY29kZSA9PT0gJ3N0cmluZycgJiYgTkVUV09SS19DT0RFUy5oYXMoY29kZSk7XG59XG5cbmZ1bmN0aW9uIG51bWJlckZpZWxkKGZpZWxkczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleTogJ3N0YXR1cycgfCAnc3RhdHVzQ29kZScpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCB2YWx1ZSA9IGVycm9yRmllbGQoZmllbGRzLCBrZXkpO1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNGaW5pdGUodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGlzV2FpdCh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNGaW5pdGUodmFsdWUpICYmIHZhbHVlID49IDA7XG59XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.errorField = void 0;
|
|
4
|
+
/** A finite inheritance allowance for ordinary Error subclasses and metadata. */
|
|
5
|
+
const MAX_ERROR_FIELD_DEPTH = 32;
|
|
6
|
+
// Capture the platform intrinsic once; never call a later caller replacement.
|
|
7
|
+
const DOM_EXCEPTION_PROTOTYPE = typeof DOMException === 'function' ? DOMException.prototype : undefined;
|
|
8
|
+
const DOM_EXCEPTION_NAME = DOM_EXCEPTION_PROTOTYPE
|
|
9
|
+
? Object.getOwnPropertyDescriptor(DOM_EXCEPTION_PROTOTYPE, 'name')?.get
|
|
10
|
+
: undefined;
|
|
11
|
+
const APPLY_INTRINSIC = Reflect.apply;
|
|
12
|
+
/** Caller accessors shadow farther data. Only the captured platform name getter may run. */
|
|
13
|
+
function errorField(value, key) {
|
|
14
|
+
if (value === null || (typeof value !== 'object' && typeof value !== 'function'))
|
|
15
|
+
return undefined;
|
|
16
|
+
let current = value;
|
|
17
|
+
for (let depth = 0; current !== null && depth < MAX_ERROR_FIELD_DEPTH; depth++) {
|
|
18
|
+
const property = Object.getOwnPropertyDescriptor(current, key);
|
|
19
|
+
if (property) {
|
|
20
|
+
if (Object.prototype.hasOwnProperty.call(property, 'value'))
|
|
21
|
+
return property.value;
|
|
22
|
+
if (key === 'name' &&
|
|
23
|
+
current === DOM_EXCEPTION_PROTOTYPE &&
|
|
24
|
+
DOM_EXCEPTION_NAME &&
|
|
25
|
+
property.get === DOM_EXCEPTION_NAME) {
|
|
26
|
+
// The intrinsic brand-checks its receiver, refusing forged prototypes and proxies.
|
|
27
|
+
return APPLY_INTRINSIC(DOM_EXCEPTION_NAME, value, []);
|
|
28
|
+
}
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
current = Object.getPrototypeOf(current);
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
exports.errorField = errorField;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JGaWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXR0ZW1wdC9lcnJvckZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlGQUFpRjtBQUNqRixNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUVqQyw4RUFBOEU7QUFDOUUsTUFBTSx1QkFBdUIsR0FBRyxPQUFPLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUN4RyxNQUFNLGtCQUFrQixHQUFHLHVCQUF1QjtJQUNoRCxDQUFDLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxFQUFFLEdBQUc7SUFDdkUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNkLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFFdEMsNEZBQTRGO0FBQzVGLFNBQWdCLFVBQVUsQ0FBQyxLQUFjLEVBQUUsR0FBVztJQUNwRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDbkcsSUFBSSxPQUFPLEdBQWtCLEtBQUssQ0FBQztJQUNuQyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxPQUFPLEtBQUssSUFBSSxJQUFJLEtBQUssR0FBRyxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQy9FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0QsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7Z0JBQUUsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ25GLElBQ0UsR0FBRyxLQUFLLE1BQU07Z0JBQ2QsT0FBTyxLQUFLLHVCQUF1QjtnQkFDbkMsa0JBQWtCO2dCQUNsQixRQUFRLENBQUMsR0FBRyxLQUFLLGtCQUFrQixFQUNuQyxDQUFDO2dCQUNELG1GQUFtRjtnQkFDbkYsT0FBTyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFDRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFyQkQsZ0NBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEEgZmluaXRlIGluaGVyaXRhbmNlIGFsbG93YW5jZSBmb3Igb3JkaW5hcnkgRXJyb3Igc3ViY2xhc3NlcyBhbmQgbWV0YWRhdGEuICovXG5jb25zdCBNQVhfRVJST1JfRklFTERfREVQVEggPSAzMjtcblxuLy8gQ2FwdHVyZSB0aGUgcGxhdGZvcm0gaW50cmluc2ljIG9uY2U7IG5ldmVyIGNhbGwgYSBsYXRlciBjYWxsZXIgcmVwbGFjZW1lbnQuXG5jb25zdCBET01fRVhDRVBUSU9OX1BST1RPVFlQRSA9IHR5cGVvZiBET01FeGNlcHRpb24gPT09ICdmdW5jdGlvbicgPyBET01FeGNlcHRpb24ucHJvdG90eXBlIDogdW5kZWZpbmVkO1xuY29uc3QgRE9NX0VYQ0VQVElPTl9OQU1FID0gRE9NX0VYQ0VQVElPTl9QUk9UT1RZUEVcbiAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKERPTV9FWENFUFRJT05fUFJPVE9UWVBFLCAnbmFtZScpPy5nZXRcbiAgOiB1bmRlZmluZWQ7XG5jb25zdCBBUFBMWV9JTlRSSU5TSUMgPSBSZWZsZWN0LmFwcGx5O1xuXG4vKiogQ2FsbGVyIGFjY2Vzc29ycyBzaGFkb3cgZmFydGhlciBkYXRhLiBPbmx5IHRoZSBjYXB0dXJlZCBwbGF0Zm9ybSBuYW1lIGdldHRlciBtYXkgcnVuLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVycm9yRmllbGQodmFsdWU6IHVua25vd24sIGtleTogc3RyaW5nKTogdW5rbm93biB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyAmJiB0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpKSByZXR1cm4gdW5kZWZpbmVkO1xuICBsZXQgY3VycmVudDogb2JqZWN0IHwgbnVsbCA9IHZhbHVlO1xuICBmb3IgKGxldCBkZXB0aCA9IDA7IGN1cnJlbnQgIT09IG51bGwgJiYgZGVwdGggPCBNQVhfRVJST1JfRklFTERfREVQVEg7IGRlcHRoKyspIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY3VycmVudCwga2V5KTtcbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcGVydHksICd2YWx1ZScpKSByZXR1cm4gcHJvcGVydHkudmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIGtleSA9PT0gJ25hbWUnICYmXG4gICAgICAgIGN1cnJlbnQgPT09IERPTV9FWENFUFRJT05fUFJPVE9UWVBFICYmXG4gICAgICAgIERPTV9FWENFUFRJT05fTkFNRSAmJlxuICAgICAgICBwcm9wZXJ0eS5nZXQgPT09IERPTV9FWENFUFRJT05fTkFNRVxuICAgICAgKSB7XG4gICAgICAgIC8vIFRoZSBpbnRyaW5zaWMgYnJhbmQtY2hlY2tzIGl0cyByZWNlaXZlciwgcmVmdXNpbmcgZm9yZ2VkIHByb3RvdHlwZXMgYW5kIHByb3hpZXMuXG4gICAgICAgIHJldHVybiBBUFBMWV9JTlRSSU5TSUMoRE9NX0VYQ0VQVElPTl9OQU1FLCB2YWx1ZSwgW10pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY3VycmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50KTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -20,8 +20,10 @@
|
|
|
20
20
|
* `TypeError`, an `AbortError` / `TimeoutError` that was not the run's) → network
|
|
21
21
|
* 9. anything else → unknown
|
|
22
22
|
*
|
|
23
|
-
* A status is a NUMBER (`status` or `statusCode`); a numeric string is not read as one.
|
|
24
|
-
*
|
|
23
|
+
* A status is a NUMBER (`status` or `statusCode`); a numeric string is not read as one. Metadata uses only
|
|
24
|
+
* own/inherited data within 32 prototype objects; a caller accessor shadows farther data without executing.
|
|
25
|
+
* The captured platform DOMException name getter is the sole accessor exception and brand-checks its receiver.
|
|
26
|
+
* Inspection failures (a hostile Proxy) are `'unknown'`, never a second throw from an error path.
|
|
25
27
|
*/
|
|
26
28
|
import type { AttemptCategory, AttemptOutcome } from './types.js';
|
|
27
29
|
/**
|
package/package.json
CHANGED