@lukaskj/ts-utils 1.2.1 → 1.3.0
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/README.md +4 -4
- package/dist/cjs/cache/index.cjs +3 -3
- package/dist/cjs/index.cjs +18 -10
- package/dist/cjs/neverthrow/index.cjs +18 -10
- package/dist/esm/cache/index.mjs +3 -3
- package/dist/esm/index.mjs +18 -10
- package/dist/esm/neverthrow/index.mjs +18 -10
- package/dist/types/neverthrow/tryCatch.d.ts +44 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,14 +24,14 @@ Documentation folder: [docs/](docs/)
|
|
|
24
24
|
|
|
25
25
|
### Error Handling
|
|
26
26
|
|
|
27
|
-
#### `
|
|
27
|
+
#### `tryCatchSync` and `tryCatch`
|
|
28
28
|
Type-safe error handling utilities inspired by Rust's Result type.
|
|
29
29
|
|
|
30
30
|
```typescript
|
|
31
|
-
import {
|
|
31
|
+
import { tryCatchSync, tryCatch } from '@lukaskj/ts-utils';
|
|
32
32
|
|
|
33
33
|
// Synchronous usage
|
|
34
|
-
const
|
|
34
|
+
const { data, error } = tryCatchSync(() => someRiskyOperation());
|
|
35
35
|
if (error) {
|
|
36
36
|
console.error(error);
|
|
37
37
|
} else {
|
|
@@ -39,7 +39,7 @@ if (error) {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
// Asynchronous usage
|
|
42
|
-
const
|
|
42
|
+
const { data, error } = await tryCatch(somePromise);
|
|
43
43
|
if (error) {
|
|
44
44
|
console.error(error);
|
|
45
45
|
} else {
|
package/dist/cjs/cache/index.cjs
CHANGED
|
@@ -172,11 +172,11 @@ class Cache {
|
|
|
172
172
|
if (expirationTime === undefined) {
|
|
173
173
|
return true;
|
|
174
174
|
}
|
|
175
|
-
return Date.now()
|
|
175
|
+
return Date.now() >= expirationTime;
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
// src/cache/constants.ts
|
|
179
179
|
var CACHE_TTL_NEVER_EXPIRE = -1;
|
|
180
180
|
|
|
181
|
-
//# debugId=
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NhY2hlL2NhY2hlU2VydmljZS50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNDYWxsYWJsZS50cyIsICIuLi8uLi9zcmMvY2FjaGUvY29uc3RhbnRzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IGlzUHJvbWlzZSB9IGZyb20gXCJub2RlOnV0aWwvdHlwZXNcIjtcbmltcG9ydCB7IGlzQ2FsbGFibGUgfSBmcm9tIFwiLi4vdXRpbHMvaXNDYWxsYWJsZS50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhT3B0aW9ucywgQ2FjaGVPcHRpb25zLCBDYWNoZVdpdGhNZXRhZGF0YSwgVmFsdWVMb2FkZXIgfSBmcm9tIFwiLi9pbnRlcm5hbC90eXBlcy50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhLCBJQ2FjaGVBZGFwdGVyIH0gZnJvbSBcIi4vdHlwZXMudHNcIjtcblxuY29uc3QgZGVmYXVsdENhY2hlT3B0aW9uczogQ2FjaGVPcHRpb25zID0ge1xuICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IDAsXG4gIHR0bE1zOiA2MCAqIDYwICogMTAwMCxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYWNoZTxUQWRhcHRlciBleHRlbmRzIElDYWNoZUFkYXB0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgcHJpdmF0ZSBpbk1lbW9yeUNhY2hlOiBNYXA8c3RyaW5nLCBDYWNoZVdpdGhNZXRhZGF0YT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ2FjaGVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkYXB0ZXI/OiBUQWRhcHRlcjtcblxuICBjb25zdHJ1Y3RvcihkZWZhdWx0T3B0aW9ucz86IFBhcnRpYWw8Q2FjaGVPcHRpb25zPik7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBUQWRhcHRlciwgZGVmYXVsdE9wdGlvbnM/OiBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pO1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyPzogVEFkYXB0ZXIgfCBQYXJ0aWFsPENhY2hlT3B0aW9ucz4sIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxDYWNoZU9wdGlvbnM+KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGFkYXB0ZXIgJiYgIShcImdldFZhbHVlXCIgaW4gYWRhcHRlcikgPyAoYWRhcHRlciBhcyBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pIDogZGVmYXVsdE9wdGlvbnM7XG4gICAgaWYgKGFkYXB0ZXIgJiYgXCJnZXRWYWx1ZVwiIGluIGFkYXB0ZXIgJiYgXCJzZXRWYWx1ZVwiIGluIGFkYXB0ZXIpIHtcbiAgICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXIgYXMgVEFkYXB0ZXI7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdENhY2hlT3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0VmFsdWUoY2FjaGVLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlVG9BZGFwdGVyPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnNldFZhbHVlPFQ+KGNhY2hlS2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0PFQ+KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVMb2FkZXI/OiBWYWx1ZUxvYWRlcjxUPixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPENhY2hlTWV0YWRhdGFPcHRpb25zPiA9IHt9LFxuICApOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gdGhpcy5tZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAvLyBUcnkgaW4tbWVtb3J5IGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkVmFsdWUgPSB0aGlzLnRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTG9hZCBmcmVzaCB2YWx1ZSBmcm9tIGxvYWRlciBmdW5jdGlvbiBmaXJzdFxuICAgIGNvbnN0IGZyZXNoVmFsdWUgPSBhd2FpdCB0aGlzLnRyeUdldEZyb21WYWx1ZUxvYWRlcih2YWx1ZUxvYWRlcik7XG4gICAgaWYgKGZyZXNoVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYWNoZVZhbHVlKGNhY2hlS2V5LCBmcmVzaFZhbHVlLCBtZXJnZWRPcHRpb25zKTtcblxuICAgICAgcmV0dXJuIGZyZXNoVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGFkYXB0ZXIgY2FjaGUgc2Vjb25kXG4gICAgY29uc3QgYWRhcHRlclZhbHVlID0gYXdhaXQgdGhpcy50cnlHZXRGcm9tQWRhcHRlcjxUPihjYWNoZUtleSk7XG4gICAgaWYgKGFkYXB0ZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmNhY2hlVmFsdWUoY2FjaGVLZXksIGFkYXB0ZXJWYWx1ZSwgbWVyZ2VkT3B0aW9ucyk7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZU9wdGlvbnMob3B0aW9uczogUGFydGlhbDxDYWNoZU1ldGFkYXRhT3B0aW9ucz4pOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR0bE1zOiB0aGlzLm9wdGlvbnMudHRsTXMsXG4gICAgICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IHRoaXMub3B0aW9ucy5leHBpcmF0aW9uVGhyZXNob2xkTXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuaW5NZW1vcnlDYWNoZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgaWYgKGNhY2hlZCAmJiAhdGhpcy5pc0V4cGlyZWQoY2FjaGVkLm1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuIGNhY2hlZC5kYXRhIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0RnJvbUFkYXB0ZXI8Q2FjaGVXaXRoTWV0YWRhdGE8VD4+KGNhY2hlS2V5KTtcblxuICAgIGlmIChjYWNoZWQgJiYgIXRoaXMuaXNFeHBpcmVkKGNhY2hlZC5tZXRhZGF0YSkpIHtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5zZXQoY2FjaGVLZXksIGNhY2hlZCk7XG4gICAgICByZXR1cm4gY2FjaGVkLmRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbVZhbHVlTG9hZGVyPFQ+KHZhbHVlTG9hZGVyPzogVmFsdWVMb2FkZXI8VD4pOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodmFsdWVMb2FkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoaXNDYWxsYWJsZSh2YWx1ZUxvYWRlcikpIHtcbiAgICAgIHJldHVybiBhd2FpdCB2YWx1ZUxvYWRlcigpO1xuICAgIH1cblxuICAgIGlmIChpc1Byb21pc2UodmFsdWVMb2FkZXIpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdmFsdWVMb2FkZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlTG9hZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWNoZVZhbHVlPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBULCBvcHRpb25zOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNhY2hlRGF0YSA9IHRoaXMuY3JlYXRlQ2FjaGVFbnRyeSh2YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0FkYXB0ZXIoY2FjaGVLZXksIGNhY2hlRGF0YSk7XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgY2FjaGVEYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FjaGVFbnRyeTxUPih2YWx1ZTogVCwgb3B0aW9uczogQ2FjaGVNZXRhZGF0YU9wdGlvbnMpOiBDYWNoZVdpdGhNZXRhZGF0YTxUPiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgaWYgKG9wdGlvbnMudHRsTXMgPCAwKSB7XG4gICAgICBleHBpcmVzQXQgPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwaXJlc0F0ID0gbm93ICsgb3B0aW9ucy50dGxNcyAtIG9wdGlvbnMuZXhwaXJhdGlvblRocmVzaG9sZE1zO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgICB0dGxNczogb3B0aW9ucy50dGxNcyxcbiAgICAgICAgZXhwaXJhdGlvblRocmVzaG9sZE1zOiBvcHRpb25zLmV4cGlyYXRpb25UaHJlc2hvbGRNcyxcbiAgICAgICAgZXhwaXJlc0F0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0V4cGlyZWQobWV0YWRhdGE/OiBDYWNoZU1ldGFkYXRhKTogYm9vbGVhbiB7XG4gICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFkYXRhLmV4cGlyZXNBdCA8IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9XG4gICAgICBtZXRhZGF0YS5leHBpcmVzQXQgPz8gKG1ldGFkYXRhLmNyZWF0ZWRBdCAmJiBtZXRhZGF0YS50dGxNcyA/IG1ldGFkYXRhLmNyZWF0ZWRBdCArIG1ldGFkYXRhLnR0bE1zIDogdW5kZWZpbmVkKTtcblxuICAgIGlmIChleHBpcmF0aW9uVGltZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZS5ub3coKSA+IGV4cGlyYXRpb25UaW1lO1xuICB9XG59XG4iLAogICAgImV4cG9ydCBmdW5jdGlvbiBpc0NhbGxhYmxlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDYWxsYWJsZUZ1bmN0aW9uIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiO1xufVxuIiwKICAgICJleHBvcnQgY29uc3QgQ0FDSEVfVFRMX05FVkVSX0VYUElSRSA9IC0xO1xuIgogIF0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBMEIsSUFBMUI7OztBQ0FPLFNBQVMsVUFBVSxDQUFDLE9BQXVDO0FBQUEsRUFDaEUsT0FBTyxPQUFPLFVBQVU7QUFBQTs7O0FESTFCLElBQU0sc0JBQW9DO0FBQUEsRUFDeEMsdUJB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QWlCLE9BQU8sT0FBTztBQUFBLElBRXRELE1BQU0sS0FBSyxjQUFjLFVBQVUsU0FBUztBQUFBLElBQzVDLEtBQUssY0FBYyxJQUFJLFVBQVUsU0FBUztBQUFBO0FBQUEsRUFHcEMsZ0JBQW1CLENBQUMsT0FBVSxTQUFxRDtBQUFBLElBQ3pGLE1BQU0sTUFBTSxLQUFLLElBQUk7QUFBQSxJQUNyQixJQUFJO0FBQUEsSUFDSixJQUFJLFFBQVEsUUFBUSxHQUFHO0FBQUEsTUFDckIsWUFBWTtBQUFBLElBQ2QsRUFBTztBQUFBLE1BQ0wsWUFBWSxNQUFNLFFBQVEsUUFBUSxRQUFRO0FBQUE7QUFBQSxJQUc1QyxPQUFPO0FBQUEsTUFDTCxNQUFNO0FBQUEsTUFDTixVQUFVO0FBQUEsUUFDUixXQUFXO0FBQUEsUUFDWCxPQUFPLFFBQVE7QUFBQSxRQUNmLHVCQUF1QixRQUFRO0FBQUEsUUFDL0I7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBO0FBQUEsRUFHTSxTQUFTLENBQUMsVUFBbUM7QUFBQSxJQUNuRCxJQUFJLENBQUMsVUFBVTtBQUFBLE1BQ2IsT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUVBLElBQUksU0FBUyxZQUFZLEdBQUc7QUFBQSxNQUMxQixPQUFPO0FBQUEsSUFDVDtBQUFBLElBRUEsTUFBTSxpQkFDSixTQUFTLGNBQWMsU0FBUyxhQUFhLFNBQVMsUUFBUSxTQUFTLFlBQVksU0FBUyxRQUFRO0FBQUEsSUFFdEcsSUFBSSxtQkFBbUIsV0FBVztBQUFBLE1BQ2hDLE9BQU87QUFBQSxJQUNUO0FBQUEsSUFFQSxPQUFPLEtBQUssSUFBSSxJQUFJO0FBQUE7QUFFeEI7O0FFcktPLElBQU0seUJBQXlCOyIsCiAgImRlYnVnSWQiOiAiRjZGRkExRjM0QTEwQTdCMjY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|
|
181
|
+
//# debugId=3EEB577CB85A3AEE64756E2164756E21
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NhY2hlL2NhY2hlU2VydmljZS50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNDYWxsYWJsZS50cyIsICIuLi8uLi9zcmMvY2FjaGUvY29uc3RhbnRzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IGlzUHJvbWlzZSB9IGZyb20gXCJub2RlOnV0aWwvdHlwZXNcIjtcbmltcG9ydCB7IGlzQ2FsbGFibGUgfSBmcm9tIFwiLi4vdXRpbHMvaXNDYWxsYWJsZS50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhT3B0aW9ucywgQ2FjaGVPcHRpb25zLCBDYWNoZVdpdGhNZXRhZGF0YSwgVmFsdWVMb2FkZXIgfSBmcm9tIFwiLi9pbnRlcm5hbC90eXBlcy50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhLCBJQ2FjaGVBZGFwdGVyIH0gZnJvbSBcIi4vdHlwZXMudHNcIjtcblxuY29uc3QgZGVmYXVsdENhY2hlT3B0aW9uczogQ2FjaGVPcHRpb25zID0ge1xuICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IDAsXG4gIHR0bE1zOiA2MCAqIDYwICogMTAwMCxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYWNoZTxUQWRhcHRlciBleHRlbmRzIElDYWNoZUFkYXB0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgcHJpdmF0ZSBpbk1lbW9yeUNhY2hlOiBNYXA8c3RyaW5nLCBDYWNoZVdpdGhNZXRhZGF0YT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ2FjaGVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkYXB0ZXI/OiBUQWRhcHRlcjtcblxuICBjb25zdHJ1Y3RvcihkZWZhdWx0T3B0aW9ucz86IFBhcnRpYWw8Q2FjaGVPcHRpb25zPik7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBUQWRhcHRlciwgZGVmYXVsdE9wdGlvbnM/OiBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pO1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyPzogVEFkYXB0ZXIgfCBQYXJ0aWFsPENhY2hlT3B0aW9ucz4sIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxDYWNoZU9wdGlvbnM+KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGFkYXB0ZXIgJiYgIShcImdldFZhbHVlXCIgaW4gYWRhcHRlcikgPyAoYWRhcHRlciBhcyBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pIDogZGVmYXVsdE9wdGlvbnM7XG4gICAgaWYgKGFkYXB0ZXIgJiYgXCJnZXRWYWx1ZVwiIGluIGFkYXB0ZXIgJiYgXCJzZXRWYWx1ZVwiIGluIGFkYXB0ZXIpIHtcbiAgICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXIgYXMgVEFkYXB0ZXI7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdENhY2hlT3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0VmFsdWUoY2FjaGVLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlVG9BZGFwdGVyPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnNldFZhbHVlPFQ+KGNhY2hlS2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0PFQ+KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVMb2FkZXI/OiBWYWx1ZUxvYWRlcjxUPixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPENhY2hlTWV0YWRhdGFPcHRpb25zPiA9IHt9LFxuICApOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gdGhpcy5tZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAvLyBUcnkgaW4tbWVtb3J5IGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkVmFsdWUgPSB0aGlzLnRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTG9hZCBmcmVzaCB2YWx1ZSBmcm9tIGxvYWRlciBmdW5jdGlvbiBmaXJzdFxuICAgIGNvbnN0IGZyZXNoVmFsdWUgPSBhd2FpdCB0aGlzLnRyeUdldEZyb21WYWx1ZUxvYWRlcih2YWx1ZUxvYWRlcik7XG4gICAgaWYgKGZyZXNoVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYWNoZVZhbHVlKGNhY2hlS2V5LCBmcmVzaFZhbHVlLCBtZXJnZWRPcHRpb25zKTtcblxuICAgICAgcmV0dXJuIGZyZXNoVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGFkYXB0ZXIgY2FjaGUgc2Vjb25kXG4gICAgY29uc3QgYWRhcHRlclZhbHVlID0gYXdhaXQgdGhpcy50cnlHZXRGcm9tQWRhcHRlcjxUPihjYWNoZUtleSk7XG4gICAgaWYgKGFkYXB0ZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmNhY2hlVmFsdWUoY2FjaGVLZXksIGFkYXB0ZXJWYWx1ZSwgbWVyZ2VkT3B0aW9ucyk7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZU9wdGlvbnMob3B0aW9uczogUGFydGlhbDxDYWNoZU1ldGFkYXRhT3B0aW9ucz4pOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR0bE1zOiB0aGlzLm9wdGlvbnMudHRsTXMsXG4gICAgICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IHRoaXMub3B0aW9ucy5leHBpcmF0aW9uVGhyZXNob2xkTXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuaW5NZW1vcnlDYWNoZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgaWYgKGNhY2hlZCAmJiAhdGhpcy5pc0V4cGlyZWQoY2FjaGVkLm1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuIGNhY2hlZC5kYXRhIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0RnJvbUFkYXB0ZXI8Q2FjaGVXaXRoTWV0YWRhdGE8VD4+KGNhY2hlS2V5KTtcblxuICAgIGlmIChjYWNoZWQgJiYgIXRoaXMuaXNFeHBpcmVkKGNhY2hlZC5tZXRhZGF0YSkpIHtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5zZXQoY2FjaGVLZXksIGNhY2hlZCk7XG4gICAgICByZXR1cm4gY2FjaGVkLmRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbVZhbHVlTG9hZGVyPFQ+KHZhbHVlTG9hZGVyPzogVmFsdWVMb2FkZXI8VD4pOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodmFsdWVMb2FkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoaXNDYWxsYWJsZSh2YWx1ZUxvYWRlcikpIHtcbiAgICAgIHJldHVybiBhd2FpdCB2YWx1ZUxvYWRlcigpO1xuICAgIH1cblxuICAgIGlmIChpc1Byb21pc2UodmFsdWVMb2FkZXIpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdmFsdWVMb2FkZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlTG9hZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWNoZVZhbHVlPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBULCBvcHRpb25zOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNhY2hlRGF0YSA9IHRoaXMuY3JlYXRlQ2FjaGVFbnRyeSh2YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0FkYXB0ZXIoY2FjaGVLZXksIGNhY2hlRGF0YSk7XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgY2FjaGVEYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FjaGVFbnRyeTxUPih2YWx1ZTogVCwgb3B0aW9uczogQ2FjaGVNZXRhZGF0YU9wdGlvbnMpOiBDYWNoZVdpdGhNZXRhZGF0YTxUPiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgaWYgKG9wdGlvbnMudHRsTXMgPCAwKSB7XG4gICAgICBleHBpcmVzQXQgPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwaXJlc0F0ID0gbm93ICsgb3B0aW9ucy50dGxNcyAtIG9wdGlvbnMuZXhwaXJhdGlvblRocmVzaG9sZE1zO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgICB0dGxNczogb3B0aW9ucy50dGxNcyxcbiAgICAgICAgZXhwaXJhdGlvblRocmVzaG9sZE1zOiBvcHRpb25zLmV4cGlyYXRpb25UaHJlc2hvbGRNcyxcbiAgICAgICAgZXhwaXJlc0F0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0V4cGlyZWQobWV0YWRhdGE/OiBDYWNoZU1ldGFkYXRhKTogYm9vbGVhbiB7XG4gICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFkYXRhLmV4cGlyZXNBdCA8IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9XG4gICAgICBtZXRhZGF0YS5leHBpcmVzQXQgPz8gKG1ldGFkYXRhLmNyZWF0ZWRBdCAmJiBtZXRhZGF0YS50dGxNcyA/IG1ldGFkYXRhLmNyZWF0ZWRBdCArIG1ldGFkYXRhLnR0bE1zIDogdW5kZWZpbmVkKTtcblxuICAgIGlmIChleHBpcmF0aW9uVGltZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZS5ub3coKSA+PSBleHBpcmF0aW9uVGltZTtcbiAgfVxufVxuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gaXNDYWxsYWJsZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ2FsbGFibGVGdW5jdGlvbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIjtcbn1cbiIsCiAgICAiZXhwb3J0IGNvbnN0IENBQ0hFX1RUTF9ORVZFUl9FWFBJUkUgPSAtMTtcbiIKICBdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBCLElBQTFCOzs7QUNBTyxTQUFTLFVBQVUsQ0FBQyxPQUF1QztBQUFBLEVBQ2hFLE9BQU8sT0FBTyxVQUFVO0FBQUE7OztBREkxQixJQUFNLHNCQUFvQztBQUFBLEVBQ3hDLHVC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QUFpQixPQUFPLE9BQU87QUFBQSxJQUV0RCxNQUFNLEtBQUssY0FBYyxVQUFVLFNBQVM7QUFBQSxJQUM1QyxLQUFLLGNBQWMsSUFBSSxVQUFVLFNBQVM7QUFBQTtBQUFBLEVBR3BDLGdCQUFtQixDQUFDLE9BQVUsU0FBcUQ7QUFBQSxJQUN6RixNQUFNLE1BQU0sS0FBSyxJQUFJO0FBQUEsSUFDckIsSUFBSTtBQUFBLElBQ0osSUFBSSxRQUFRLFFBQVEsR0FBRztBQUFBLE1BQ3JCLFlBQVk7QUFBQSxJQUNkLEVBQU87QUFBQSxNQUNMLFlBQVksTUFBTSxRQUFRLFFBQVEsUUFBUTtBQUFBO0FBQUEsSUFHNUMsT0FBTztBQUFBLE1BQ0wsTUFBTTtBQUFBLE1BQ04sVUFBVTtBQUFBLFFBQ1IsV0FBVztBQUFBLFFBQ1gsT0FBTyxRQUFRO0FBQUEsUUFDZix1QkFBdUIsUUFBUTtBQUFBLFFBQy9CO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQTtBQUFBLEVBR00sU0FBUyxDQUFDLFVBQW1DO0FBQUEsSUFDbkQsSUFBSSxDQUFDLFVBQVU7QUFBQSxNQUNiLE9BQU87QUFBQSxJQUNUO0FBQUEsSUFFQSxJQUFJLFNBQVMsWUFBWSxHQUFHO0FBQUEsTUFDMUIsT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUVBLE1BQU0saUJBQ0osU0FBUyxjQUFjLFNBQVMsYUFBYSxTQUFTLFFBQVEsU0FBUyxZQUFZLFNBQVMsUUFBUTtBQUFBLElBRXRHLElBQUksbUJBQW1CLFdBQVc7QUFBQSxNQUNoQyxPQUFPO0FBQUEsSUFDVDtBQUFBLElBRUEsT0FBTyxLQUFLLElBQUksS0FBSztBQUFBO0FBRXpCOztBRXJLTyxJQUFNLHlCQUF5QjsiLAogICJkZWJ1Z0lkIjogIjNFRUI1NzdDQjg1QTNBRUU2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -172,7 +172,7 @@ class Cache {
|
|
|
172
172
|
if (expirationTime === undefined) {
|
|
173
173
|
return true;
|
|
174
174
|
}
|
|
175
|
-
return Date.now()
|
|
175
|
+
return Date.now() >= expirationTime;
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
// src/cache/constants.ts
|
|
@@ -180,16 +180,18 @@ var CACHE_TTL_NEVER_EXPIRE = -1;
|
|
|
180
180
|
// src/index.ts
|
|
181
181
|
var exports_src = {};
|
|
182
182
|
__export(exports_src, {
|
|
183
|
-
|
|
183
|
+
tryCatchSync: () => tryCatchSync,
|
|
184
184
|
tryCatch: () => tryCatch,
|
|
185
185
|
streamToLines: () => streamToLines,
|
|
186
186
|
sleep: () => sleep,
|
|
187
187
|
randomString: () => randomString,
|
|
188
188
|
jsonParser: () => jsonParser,
|
|
189
|
+
isSuccess: () => isSuccess,
|
|
189
190
|
isPrimitive: () => isPrimitive,
|
|
190
191
|
isObject: () => isObject,
|
|
191
192
|
isNullOrUndefined: () => isNullOrUndefined,
|
|
192
193
|
isNullOrEmptyOrUndefined: () => isNullOrEmptyOrUndefined,
|
|
194
|
+
isError: () => isError,
|
|
193
195
|
chunksToLines: () => chunksToLines,
|
|
194
196
|
Cache: () => Cache,
|
|
195
197
|
CACHE_TTL_NEVER_EXPIRE: () => CACHE_TTL_NEVER_EXPIRE
|
|
@@ -249,22 +251,28 @@ function randomString(length = 6) {
|
|
|
249
251
|
// src/utils/sleep.ts
|
|
250
252
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
251
253
|
// src/neverthrow/tryCatch.ts
|
|
252
|
-
function
|
|
254
|
+
function tryCatchSync(fn) {
|
|
253
255
|
try {
|
|
254
256
|
const data = fn();
|
|
255
|
-
return
|
|
257
|
+
return { data, error: null };
|
|
256
258
|
} catch (error) {
|
|
257
|
-
return
|
|
259
|
+
return { data: null, error };
|
|
258
260
|
}
|
|
259
261
|
}
|
|
260
|
-
async function
|
|
262
|
+
async function tryCatch(promise) {
|
|
261
263
|
try {
|
|
262
264
|
const data = await promise;
|
|
263
|
-
return
|
|
265
|
+
return { data, error: null };
|
|
264
266
|
} catch (error) {
|
|
265
|
-
return
|
|
267
|
+
return { data: null, error };
|
|
266
268
|
}
|
|
267
269
|
}
|
|
270
|
+
function isSuccess(result) {
|
|
271
|
+
return result.error === null;
|
|
272
|
+
}
|
|
273
|
+
function isError(result) {
|
|
274
|
+
return result.error !== null;
|
|
275
|
+
}
|
|
268
276
|
|
|
269
|
-
//# debugId=
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NhY2hlL2NhY2hlU2VydmljZS50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNDYWxsYWJsZS50cyIsICIuLi8uLi9zcmMvY2FjaGUvY29uc3RhbnRzLnRzIiwgIi4uLy4uL3NyYy91dGlscy9jaHVua3NUb0xpbmVzLnRzIiwgIi4uLy4uL3NyYy91dGlscy9pc051bGxPclVuZGVmaW5lZC50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNPYmplY3QudHMiLCAiLi4vLi4vc3JjL3V0aWxzL2lzUHJpbWl0aXZlLnRzIiwgIi4uLy4uL3NyYy91dGlscy9qc29uUGFyc2VyLnRzIiwgIi4uLy4uL3NyYy91dGlscy9yYW5kb21TdHJpbmcudHMiLCAiLi4vLi4vc3JjL3V0aWxzL3NsZWVwLnRzIiwgIi4uLy4uL3NyYy9uZXZlcnRocm93L3RyeUNhdGNoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IGlzUHJvbWlzZSB9IGZyb20gXCJub2RlOnV0aWwvdHlwZXNcIjtcbmltcG9ydCB7IGlzQ2FsbGFibGUgfSBmcm9tIFwiLi4vdXRpbHMvaXNDYWxsYWJsZS50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhT3B0aW9ucywgQ2FjaGVPcHRpb25zLCBDYWNoZVdpdGhNZXRhZGF0YSwgVmFsdWVMb2FkZXIgfSBmcm9tIFwiLi9pbnRlcm5hbC90eXBlcy50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhLCBJQ2FjaGVBZGFwdGVyIH0gZnJvbSBcIi4vdHlwZXMudHNcIjtcblxuY29uc3QgZGVmYXVsdENhY2hlT3B0aW9uczogQ2FjaGVPcHRpb25zID0ge1xuICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IDAsXG4gIHR0bE1zOiA2MCAqIDYwICogMTAwMCxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYWNoZTxUQWRhcHRlciBleHRlbmRzIElDYWNoZUFkYXB0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgcHJpdmF0ZSBpbk1lbW9yeUNhY2hlOiBNYXA8c3RyaW5nLCBDYWNoZVdpdGhNZXRhZGF0YT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ2FjaGVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkYXB0ZXI/OiBUQWRhcHRlcjtcblxuICBjb25zdHJ1Y3RvcihkZWZhdWx0T3B0aW9ucz86IFBhcnRpYWw8Q2FjaGVPcHRpb25zPik7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBUQWRhcHRlciwgZGVmYXVsdE9wdGlvbnM/OiBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pO1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyPzogVEFkYXB0ZXIgfCBQYXJ0aWFsPENhY2hlT3B0aW9ucz4sIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxDYWNoZU9wdGlvbnM+KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGFkYXB0ZXIgJiYgIShcImdldFZhbHVlXCIgaW4gYWRhcHRlcikgPyAoYWRhcHRlciBhcyBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pIDogZGVmYXVsdE9wdGlvbnM7XG4gICAgaWYgKGFkYXB0ZXIgJiYgXCJnZXRWYWx1ZVwiIGluIGFkYXB0ZXIgJiYgXCJzZXRWYWx1ZVwiIGluIGFkYXB0ZXIpIHtcbiAgICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXIgYXMgVEFkYXB0ZXI7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdENhY2hlT3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0VmFsdWUoY2FjaGVLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlVG9BZGFwdGVyPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnNldFZhbHVlPFQ+KGNhY2hlS2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0PFQ+KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVMb2FkZXI/OiBWYWx1ZUxvYWRlcjxUPixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPENhY2hlTWV0YWRhdGFPcHRpb25zPiA9IHt9LFxuICApOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gdGhpcy5tZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAvLyBUcnkgaW4tbWVtb3J5IGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkVmFsdWUgPSB0aGlzLnRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTG9hZCBmcmVzaCB2YWx1ZSBmcm9tIGxvYWRlciBmdW5jdGlvbiBmaXJzdFxuICAgIGNvbnN0IGZyZXNoVmFsdWUgPSBhd2FpdCB0aGlzLnRyeUdldEZyb21WYWx1ZUxvYWRlcih2YWx1ZUxvYWRlcik7XG4gICAgaWYgKGZyZXNoVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYWNoZVZhbHVlKGNhY2hlS2V5LCBmcmVzaFZhbHVlLCBtZXJnZWRPcHRpb25zKTtcblxuICAgICAgcmV0dXJuIGZyZXNoVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGFkYXB0ZXIgY2FjaGUgc2Vjb25kXG4gICAgY29uc3QgYWRhcHRlclZhbHVlID0gYXdhaXQgdGhpcy50cnlHZXRGcm9tQWRhcHRlcjxUPihjYWNoZUtleSk7XG4gICAgaWYgKGFkYXB0ZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmNhY2hlVmFsdWUoY2FjaGVLZXksIGFkYXB0ZXJWYWx1ZSwgbWVyZ2VkT3B0aW9ucyk7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZU9wdGlvbnMob3B0aW9uczogUGFydGlhbDxDYWNoZU1ldGFkYXRhT3B0aW9ucz4pOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR0bE1zOiB0aGlzLm9wdGlvbnMudHRsTXMsXG4gICAgICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IHRoaXMub3B0aW9ucy5leHBpcmF0aW9uVGhyZXNob2xkTXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuaW5NZW1vcnlDYWNoZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgaWYgKGNhY2hlZCAmJiAhdGhpcy5pc0V4cGlyZWQoY2FjaGVkLm1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuIGNhY2hlZC5kYXRhIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0RnJvbUFkYXB0ZXI8Q2FjaGVXaXRoTWV0YWRhdGE8VD4+KGNhY2hlS2V5KTtcblxuICAgIGlmIChjYWNoZWQgJiYgIXRoaXMuaXNFeHBpcmVkKGNhY2hlZC5tZXRhZGF0YSkpIHtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5zZXQoY2FjaGVLZXksIGNhY2hlZCk7XG4gICAgICByZXR1cm4gY2FjaGVkLmRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbVZhbHVlTG9hZGVyPFQ+KHZhbHVlTG9hZGVyPzogVmFsdWVMb2FkZXI8VD4pOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodmFsdWVMb2FkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoaXNDYWxsYWJsZSh2YWx1ZUxvYWRlcikpIHtcbiAgICAgIHJldHVybiBhd2FpdCB2YWx1ZUxvYWRlcigpO1xuICAgIH1cblxuICAgIGlmIChpc1Byb21pc2UodmFsdWVMb2FkZXIpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdmFsdWVMb2FkZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlTG9hZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWNoZVZhbHVlPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBULCBvcHRpb25zOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNhY2hlRGF0YSA9IHRoaXMuY3JlYXRlQ2FjaGVFbnRyeSh2YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0FkYXB0ZXIoY2FjaGVLZXksIGNhY2hlRGF0YSk7XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgY2FjaGVEYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FjaGVFbnRyeTxUPih2YWx1ZTogVCwgb3B0aW9uczogQ2FjaGVNZXRhZGF0YU9wdGlvbnMpOiBDYWNoZVdpdGhNZXRhZGF0YTxUPiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgaWYgKG9wdGlvbnMudHRsTXMgPCAwKSB7XG4gICAgICBleHBpcmVzQXQgPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwaXJlc0F0ID0gbm93ICsgb3B0aW9ucy50dGxNcyAtIG9wdGlvbnMuZXhwaXJhdGlvblRocmVzaG9sZE1zO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgICB0dGxNczogb3B0aW9ucy50dGxNcyxcbiAgICAgICAgZXhwaXJhdGlvblRocmVzaG9sZE1zOiBvcHRpb25zLmV4cGlyYXRpb25UaHJlc2hvbGRNcyxcbiAgICAgICAgZXhwaXJlc0F0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0V4cGlyZWQobWV0YWRhdGE/OiBDYWNoZU1ldGFkYXRhKTogYm9vbGVhbiB7XG4gICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFkYXRhLmV4cGlyZXNBdCA8IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9XG4gICAgICBtZXRhZGF0YS5leHBpcmVzQXQgPz8gKG1ldGFkYXRhLmNyZWF0ZWRBdCAmJiBtZXRhZGF0YS50dGxNcyA/IG1ldGFkYXRhLmNyZWF0ZWRBdCArIG1ldGFkYXRhLnR0bE1zIDogdW5kZWZpbmVkKTtcblxuICAgIGlmIChleHBpcmF0aW9uVGltZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZS5ub3coKSA+IGV4cGlyYXRpb25UaW1lO1xuICB9XG59XG4iLAogICAgImV4cG9ydCBmdW5jdGlvbiBpc0NhbGxhYmxlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDYWxsYWJsZUZ1bmN0aW9uIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiO1xufVxuIiwKICAgICJleHBvcnQgY29uc3QgQ0FDSEVfVFRMX05FVkVSX0VYUElSRSA9IC0xO1xuIiwKICAgICIvKipcbiAqIENvbnZlcnRzIGFuIGFzeW5jIGl0ZXJhYmxlIG9mIHN0cmluZyBvciBVaW50OEFycmF5IGNodW5rcyBpbnRvIGFuIGFzeW5jIGl0ZXJhYmxlIG9mIGxpbmVzLlxuICogSGFuZGxlcyBjYXNlcyB3aGVyZSBsaW5lcyBtYXkgYmUgc3BsaXQgYWNyb3NzIG11bHRpcGxlIGNodW5rcy5cbiAqIFVzYWdlOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IHBpcGVsaW5lIH0gZnJvbSBcIm5vZGU6c3RyZWFtL3Byb21pc2VzXCI7XG4gKiBpbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbiAqIGltcG9ydCB7IHN0cmVhbVRvTGluZXMgfSBmcm9tIFwiQGx1a2Fza2ovdHMtdXRpbHNcIjtcbiAqXG4gKiBhc3luYyBmdW5jdGlvbiBwcm9jZXNzTGluZShjaHVuazogQXN5bmNJdGVyYWJsZTxzdHJpbmc+KSB7XG4gKiAgIGZvciBhd2FpdCAoY29uc3QgbGluZSBvZiBjaHVuaykge1xuICogICAgIGNvbnNvbGUubG9nKGxpbmUpO1xuICogICAgIHlpZWxkIGxpbmU7XG4gKiAgIH1cbiAqIH1cbiAqIGNvbnN0IHJlYWRTdHJlYW0gPSBjcmVhdGVSZWFkU3RyZWFtKFwicGF0aC90by9maWxlLnR4dFwiLCB7IGVuY29kaW5nOiBcInV0Zi04XCIgfSk7XG4gKiBhd2FpdCBwaXBlbGluZShyZWFkU3RyZWFtLCBzdHJlYW1Ub0xpbmVzLCBwcm9jZXNzLnN0ZG91dCkuY2F0Y2goKGVycikgPT4ge1xuICogICBjb25zb2xlLmVycm9yKGVycik7XG4gKiAgIHByb2Nlc3MuZXhpdCgxKTtcbiAqIH0pO1xuICogYGBgXG4gKiBAcGFyYW0gY2h1bmtzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogc3RyZWFtVG9MaW5lcyhjaHVua3M6IEFzeW5jSXRlcmFibGU8c3RyaW5nIHwgVWludDhBcnJheT4pIHtcbiAgbGV0IHByZXZpb3VzID0gXCJcIjtcblxuICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIGNodW5rcykge1xuICAgIHByZXZpb3VzICs9IGNodW5rO1xuICAgIGxldCBlb2xJbmRleDogbnVtYmVyO1xuXG4gICAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0Fzc2lnbkluRXhwcmVzc2lvbnM6IFwiZXhwbGFuYXRpb25cIlxuICAgIHdoaWxlICgoZW9sSW5kZXggPSBwcmV2aW91cy5pbmRleE9mKFwiXFxuXCIpKSA+PSAwKSB7XG4gICAgICAvLyB0aGlzIGxpbmUgaW5jbHVkZXMgdGhlIEVPTFxuICAgICAgY29uc3QgbGluZSA9IHByZXZpb3VzLnNsaWNlKDAsIGVvbEluZGV4ICsgMSk7XG4gICAgICB5aWVsZCBsaW5lPy50cmltKCkgPz8gXCJcIjtcbiAgICAgIHByZXZpb3VzID0gcHJldmlvdXMuc2xpY2UoZW9sSW5kZXggKyAxKTtcbiAgICB9XG4gIH1cblxuICBpZiAocHJldmlvdXMubGVuZ3RoID4gMCkge1xuICAgIHlpZWxkIHByZXZpb3VzO1xuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIHN0cmVhbVRvTGluZXNcbiAqL1xuZXhwb3J0IGNvbnN0IGNodW5rc1RvTGluZXMgPSBzdHJlYW1Ub0xpbmVzO1xuIiwKICAgICJleHBvcnQgY29uc3QgaXNOdWxsT3JVbmRlZmluZWQgPSAodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bGwgfCB1bmRlZmluZWQgPT4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yRW1wdHlPclVuZGVmaW5lZCh2YWx1ZT86IGFueSB8IG51bGwpOiB2YWx1ZSBpcyBudWxsIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IFwiXCIgfHwgdmFsdWUudG9TdHJpbmcoKS50cmltKCkgPT09IFwiXCI7XG59XG4iLAogICAgIi8qKlxuICogVHlwZSBndWFyZCB0aGF0IGNoZWNrcyBpZiB0aGUgaW5wdXQgaXMgYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdC5cbiAqIEBwYXJhbSB7YW55fSBpbnB1dCAtIFRoZSB2YWx1ZSB0byBjaGVja1xuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIGlucHV0IGlzIGEgcGxhaW4gb2JqZWN0LCBmYWxzZSBvdGhlcndpc2VcbiAqIEB0eXBlUGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFR5cGUgZ3VhcmQgbmFycm93cyB0aGUgaW5wdXQgdHlwZSB0byBhIHN0cmluZy1rZXllZCBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KGlucHV0OiBhbnkpOiBpbnB1dCBpcyBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkoaW5wdXQpID09PSBcIltvYmplY3QgT2JqZWN0XVwiO1xufVxuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gaXNQcmltaXRpdmUodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlIGluc3RhbmNlb2YgRGF0ZTtcbn1cbiIsCiAgICAiaW1wb3J0IHNqcyBmcm9tIFwic2VjdXJlLWpzb24tcGFyc2VcIjtcblxuLyoqXG4gKiBTYWZlbHkgcGFyc2VzIEpTT04gaW5wdXQgdXNpbmcgc2VjdXJlLWpzb24tcGFyc2Ugd2l0aCBwcm90b3R5cGUgcG9sbHV0aW9uIHByb3RlY3Rpb24uXG4gKiBAcGFyYW0ge2FueX0gaW5wdXQgLSBUaGUgaW5wdXQgdG8gYmUgcGFyc2VkIGFzIEpTT05cbiAqIEByZXR1cm5zIHt7IHZhbHVlPzogYW55LCBlcnI/OiBFcnJvciB9fSBBbiBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgdGhlIHBhcnNlZCB2YWx1ZSBvciBhbiBlcnJvciBpZiBwYXJzaW5nIGZhaWxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24ganNvblBhcnNlcihpbnB1dDogYW55KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHsgdmFsdWU6IHNqcy5wYXJzZShpbnB1dCwgeyBwcm90b0FjdGlvbjogXCJyZW1vdmVcIiB9KSB9O1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4geyBlcnIgfTtcbiAgfVxufVxuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gcmFuZG9tU3RyaW5nKGxlbmd0aDogbnVtYmVyID0gNik6IHN0cmluZyB7XG4gIGxldCByZXN1bHQgPSBcIlwiO1xuICBjb25zdCBjaGFyYWN0ZXJzID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OVwiO1xuICBjb25zdCBjaGFyYWN0ZXJzTGVuZ3RoID0gY2hhcmFjdGVycy5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG4iLAogICAgImV4cG9ydCBjb25zdCBzbGVlcCA9IChtczogbnVtYmVyKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xuIiwKICAgICIvLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS90M2RvdGdnL2E0ODZjNGFlNjZkMzJiZjE3YzA5YzczNjA5ZGFjYzViXG4vLyBUeXBlcyBmb3IgdGhlIHJlc3VsdCBvYmplY3Qgd2l0aCBkaXNjcmltaW5hdGVkIHVuaW9uXG4vLyB0eXBlIFN1Y2Nlc3M8VD4gPSB7XG4vLyAgIGRhdGE6IFQ7XG4vLyAgIGVycm9yOiBudWxsO1xuLy8gfTtcblxuLy8gdHlwZSBGYWlsdXJlPEU+ID0ge1xuLy8gICBkYXRhOiBudWxsO1xuLy8gICBlcnJvcjogRTtcbi8vIH07XG5cbi8vIGV4cG9ydCB0eXBlIFJlc3VsdDxULCBFID0gRXJyb3I+ID0gU3VjY2VzczxUPiB8IEZhaWx1cmU8RT47XG5cbmV4cG9ydCB0eXBlIFJlc3VsdDxULCBFPiA9IFt1bmRlZmluZWQsIEVdIHwgW1QsIHVuZGVmaW5lZF07XG5leHBvcnQgdHlwZSBQcm9taXNlUmVzdWx0PFQsIEU+ID0gUHJvbWlzZTxSZXN1bHQ8VCwgRT4+O1xuXG4vKipcbiAqIFdyYXBzIGEgc3luY2hyb25vdXMgZnVuY3Rpb24gaW4gYSB0cnktY2F0Y2ggYmxvY2sgYW5kIHJldHVybnMgYSBSZXN1bHQgdHVwbGUgY29udGFpbmluZyBlaXRoZXIgdGhlIHJldHVybmVkIHZhbHVlIG9yIHRoZSBjYXVnaHQgZXJyb3JcbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBzdWNjZXNzZnVsIHJlc3VsdCB2YWx1ZVxuICogQHRlbXBsYXRlIEUgLSBUaGUgdHlwZSBvZiB0aGUgZXJyb3IgdmFsdWUsIG11c3QgZXh0ZW5kIEVycm9yXG4gKiBAcGFyYW0geygpID0+IFR9IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkXG4gKiBAcmV0dXJucyB7UmVzdWx0PFQsIEU+fSBBIHR1cGxlIGNvbnRhaW5pbmcgZWl0aGVyIFtkYXRhLCB1bmRlZmluZWRdIG9yIFt1bmRlZmluZWQsIGVycm9yXVxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbZGF0YSwgZXJyb3JdID0gdHJ5Q2F0Y2goKCkgPT4gc29tZVJpc2t5T3BlcmF0aW9uKCkpO1xuICogaWYgKGVycm9yKSB7XG4gKiAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICogfSBlbHNlIHtcbiAqICAgY29uc29sZS5sb2coZGF0YSk7XG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cnlDYXRjaDxULCBFIGV4dGVuZHMgRXJyb3I+KGZuOiAoKSA9PiBUKTogUmVzdWx0PFQsIEU+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhID0gZm4oKTtcbiAgICByZXR1cm4gW2RhdGEgYXMgVCwgdW5kZWZpbmVkXTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gW3VuZGVmaW5lZCwgZXJyb3IgYXMgRV07XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcyBhIFByb21pc2UgaW4gYSB0cnktY2F0Y2ggYmxvY2sgYW5kIHJldHVybnMgYSBSZXN1bHQgb2JqZWN0IGNvbnRhaW5pbmcgZWl0aGVyIHRoZSByZXNvbHZlZCBkYXRhIG9yIHRoZSBjYXVnaHQgZXJyb3JcbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBzdWNjZXNzZnVsIHJlc3VsdCB2YWx1ZVxuICogQHRlbXBsYXRlIEUgLSBUaGUgdHlwZSBvZiB0aGUgZXJyb3IgdmFsdWUsIGRlZmF1bHRzIHRvIEVycm9yXG4gKiBAcGFyYW0ge1Byb21pc2U8VD59IHByb21pc2UgLSBUaGUgcHJvbWlzZSB0byBiZSBleGVjdXRlZFxuICogQHJldHVybnMge1Byb21pc2U8UmVzdWx0PFQsIEU+Pn0gQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBSZXN1bHQgb2JqZWN0IGNvbnRhaW5pbmcgZWl0aGVyIHRoZSBkYXRhIG9yIGVycm9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHtkYXRhLCBlcnJvcn0gPSBhd2FpdCB0cnlDYXRjaEFzeW5jKHNvbWVQcm9taXNlKTtcbiAqIGlmIChlcnJvcikge1xuICogICBjb25zb2xlLmVycm9yKHJlc3VsdC5lcnJvcik7XG4gKiB9IGVsc2Uge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyeUNhdGNoQXN5bmM8VCwgRSBleHRlbmRzIEVycm9yPihwcm9taXNlOiBQcm9taXNlPFQ+KTogUHJvbWlzZVJlc3VsdDxULCBFPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHByb21pc2U7XG4gICAgcmV0dXJuIFtkYXRhIGFzIFQsIHVuZGVmaW5lZF07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIFt1bmRlZmluZWQsIGVycm9yIGFzIEVdO1xuICB9XG59XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEwQixJQUExQjs7O0FDQU8sU0FBUyxVQUFVLENBQUMsT0FBdUM7QUFBQSxFQUNoRSxPQUFPLE9BQU8sVUFBVTtBQUFBOzs7QURJMUIsSUFBTSxzQkFBb0M7QUFBQSxFQUN4Qyx1QkFBdUI7QUFBQSxFQUN2QixPQUFPLEtBQUssS0FBSztBQUNuQjtBQUFBO0FBRU8sTUFBTSxNQUE4RDtBQUFBLEVBQ2pFLGdCQUFnRCxJQUFJO0FBQUEsRUFDM0M7QUFBQSxFQUNBO0FBQUEsRUFJakIsV0FBVyxDQUFDLFNBQTRDLGdCQUF3QztBQUFBLElBQzlGLE1BQU0sVUFBVSxXQUFXLEVBQUUsY0FBYyxXQUFZLFVBQW9DO0FBQUEsSUFDM0YsSUFBSSxXQUFXLGNBQWMsV0FBVyxjQUFjLFNBQVM7QUFBQSxNQUM3RCxLQUFLLFVBQVU7QUFBQSxJQUNqQjtBQUFBLElBRUEsS0FBSyxVQUFVO0FBQUEsU0FDVjtBQUFBLFNBQ0E7QUFBQSxJQUNMO0FBQUE7QUFBQSxPQUdZLGVBQWlCLENBQUMsVUFBMEM7QUFBQSxJQUN4RSxJQUFJLENBQUMsS0FBSyxTQUFTO0FBQUEsTUFDakI7QUFBQSxJQUNGO0FBQUEsSUFFQSxPQUFPLEtBQUssUUFBUSxTQUFTLFFBQVE7QUFBQTtBQUFBLE9BR3pCLGNBQWdCLENBQUMsVUFBa0IsT0FBeUI7QUFBQSxJQUN4RSxJQUFJLENBQUMsS0FBSyxTQUFTO0FBQUEsTUFDakI7QUFBQSxJQUNGO0FBQUEsSUFFQSxPQUFPLEtBQUss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
|
|
277
|
+
//# debugId=983B1FE9499DC30464756E2164756E21
|
|
278
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NhY2hlL2NhY2hlU2VydmljZS50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNDYWxsYWJsZS50cyIsICIuLi8uLi9zcmMvY2FjaGUvY29uc3RhbnRzLnRzIiwgIi4uLy4uL3NyYy91dGlscy9jaHVua3NUb0xpbmVzLnRzIiwgIi4uLy4uL3NyYy91dGlscy9pc051bGxPclVuZGVmaW5lZC50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNPYmplY3QudHMiLCAiLi4vLi4vc3JjL3V0aWxzL2lzUHJpbWl0aXZlLnRzIiwgIi4uLy4uL3NyYy91dGlscy9qc29uUGFyc2VyLnRzIiwgIi4uLy4uL3NyYy91dGlscy9yYW5kb21TdHJpbmcudHMiLCAiLi4vLi4vc3JjL3V0aWxzL3NsZWVwLnRzIiwgIi4uLy4uL3NyYy9uZXZlcnRocm93L3RyeUNhdGNoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IGlzUHJvbWlzZSB9IGZyb20gXCJub2RlOnV0aWwvdHlwZXNcIjtcbmltcG9ydCB7IGlzQ2FsbGFibGUgfSBmcm9tIFwiLi4vdXRpbHMvaXNDYWxsYWJsZS50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhT3B0aW9ucywgQ2FjaGVPcHRpb25zLCBDYWNoZVdpdGhNZXRhZGF0YSwgVmFsdWVMb2FkZXIgfSBmcm9tIFwiLi9pbnRlcm5hbC90eXBlcy50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhLCBJQ2FjaGVBZGFwdGVyIH0gZnJvbSBcIi4vdHlwZXMudHNcIjtcblxuY29uc3QgZGVmYXVsdENhY2hlT3B0aW9uczogQ2FjaGVPcHRpb25zID0ge1xuICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IDAsXG4gIHR0bE1zOiA2MCAqIDYwICogMTAwMCxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYWNoZTxUQWRhcHRlciBleHRlbmRzIElDYWNoZUFkYXB0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgcHJpdmF0ZSBpbk1lbW9yeUNhY2hlOiBNYXA8c3RyaW5nLCBDYWNoZVdpdGhNZXRhZGF0YT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ2FjaGVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkYXB0ZXI/OiBUQWRhcHRlcjtcblxuICBjb25zdHJ1Y3RvcihkZWZhdWx0T3B0aW9ucz86IFBhcnRpYWw8Q2FjaGVPcHRpb25zPik7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBUQWRhcHRlciwgZGVmYXVsdE9wdGlvbnM/OiBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pO1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyPzogVEFkYXB0ZXIgfCBQYXJ0aWFsPENhY2hlT3B0aW9ucz4sIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxDYWNoZU9wdGlvbnM+KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGFkYXB0ZXIgJiYgIShcImdldFZhbHVlXCIgaW4gYWRhcHRlcikgPyAoYWRhcHRlciBhcyBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pIDogZGVmYXVsdE9wdGlvbnM7XG4gICAgaWYgKGFkYXB0ZXIgJiYgXCJnZXRWYWx1ZVwiIGluIGFkYXB0ZXIgJiYgXCJzZXRWYWx1ZVwiIGluIGFkYXB0ZXIpIHtcbiAgICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXIgYXMgVEFkYXB0ZXI7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdENhY2hlT3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0VmFsdWUoY2FjaGVLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlVG9BZGFwdGVyPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnNldFZhbHVlPFQ+KGNhY2hlS2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0PFQ+KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVMb2FkZXI/OiBWYWx1ZUxvYWRlcjxUPixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPENhY2hlTWV0YWRhdGFPcHRpb25zPiA9IHt9LFxuICApOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gdGhpcy5tZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAvLyBUcnkgaW4tbWVtb3J5IGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkVmFsdWUgPSB0aGlzLnRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTG9hZCBmcmVzaCB2YWx1ZSBmcm9tIGxvYWRlciBmdW5jdGlvbiBmaXJzdFxuICAgIGNvbnN0IGZyZXNoVmFsdWUgPSBhd2FpdCB0aGlzLnRyeUdldEZyb21WYWx1ZUxvYWRlcih2YWx1ZUxvYWRlcik7XG4gICAgaWYgKGZyZXNoVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYWNoZVZhbHVlKGNhY2hlS2V5LCBmcmVzaFZhbHVlLCBtZXJnZWRPcHRpb25zKTtcblxuICAgICAgcmV0dXJuIGZyZXNoVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGFkYXB0ZXIgY2FjaGUgc2Vjb25kXG4gICAgY29uc3QgYWRhcHRlclZhbHVlID0gYXdhaXQgdGhpcy50cnlHZXRGcm9tQWRhcHRlcjxUPihjYWNoZUtleSk7XG4gICAgaWYgKGFkYXB0ZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmNhY2hlVmFsdWUoY2FjaGVLZXksIGFkYXB0ZXJWYWx1ZSwgbWVyZ2VkT3B0aW9ucyk7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZU9wdGlvbnMob3B0aW9uczogUGFydGlhbDxDYWNoZU1ldGFkYXRhT3B0aW9ucz4pOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR0bE1zOiB0aGlzLm9wdGlvbnMudHRsTXMsXG4gICAgICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IHRoaXMub3B0aW9ucy5leHBpcmF0aW9uVGhyZXNob2xkTXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuaW5NZW1vcnlDYWNoZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgaWYgKGNhY2hlZCAmJiAhdGhpcy5pc0V4cGlyZWQoY2FjaGVkLm1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuIGNhY2hlZC5kYXRhIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0RnJvbUFkYXB0ZXI8Q2FjaGVXaXRoTWV0YWRhdGE8VD4+KGNhY2hlS2V5KTtcblxuICAgIGlmIChjYWNoZWQgJiYgIXRoaXMuaXNFeHBpcmVkKGNhY2hlZC5tZXRhZGF0YSkpIHtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5zZXQoY2FjaGVLZXksIGNhY2hlZCk7XG4gICAgICByZXR1cm4gY2FjaGVkLmRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbVZhbHVlTG9hZGVyPFQ+KHZhbHVlTG9hZGVyPzogVmFsdWVMb2FkZXI8VD4pOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodmFsdWVMb2FkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoaXNDYWxsYWJsZSh2YWx1ZUxvYWRlcikpIHtcbiAgICAgIHJldHVybiBhd2FpdCB2YWx1ZUxvYWRlcigpO1xuICAgIH1cblxuICAgIGlmIChpc1Byb21pc2UodmFsdWVMb2FkZXIpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdmFsdWVMb2FkZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlTG9hZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWNoZVZhbHVlPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBULCBvcHRpb25zOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNhY2hlRGF0YSA9IHRoaXMuY3JlYXRlQ2FjaGVFbnRyeSh2YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0FkYXB0ZXIoY2FjaGVLZXksIGNhY2hlRGF0YSk7XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgY2FjaGVEYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FjaGVFbnRyeTxUPih2YWx1ZTogVCwgb3B0aW9uczogQ2FjaGVNZXRhZGF0YU9wdGlvbnMpOiBDYWNoZVdpdGhNZXRhZGF0YTxUPiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgaWYgKG9wdGlvbnMudHRsTXMgPCAwKSB7XG4gICAgICBleHBpcmVzQXQgPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwaXJlc0F0ID0gbm93ICsgb3B0aW9ucy50dGxNcyAtIG9wdGlvbnMuZXhwaXJhdGlvblRocmVzaG9sZE1zO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgICB0dGxNczogb3B0aW9ucy50dGxNcyxcbiAgICAgICAgZXhwaXJhdGlvblRocmVzaG9sZE1zOiBvcHRpb25zLmV4cGlyYXRpb25UaHJlc2hvbGRNcyxcbiAgICAgICAgZXhwaXJlc0F0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0V4cGlyZWQobWV0YWRhdGE/OiBDYWNoZU1ldGFkYXRhKTogYm9vbGVhbiB7XG4gICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFkYXRhLmV4cGlyZXNBdCA8IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9XG4gICAgICBtZXRhZGF0YS5leHBpcmVzQXQgPz8gKG1ldGFkYXRhLmNyZWF0ZWRBdCAmJiBtZXRhZGF0YS50dGxNcyA/IG1ldGFkYXRhLmNyZWF0ZWRBdCArIG1ldGFkYXRhLnR0bE1zIDogdW5kZWZpbmVkKTtcblxuICAgIGlmIChleHBpcmF0aW9uVGltZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZS5ub3coKSA+PSBleHBpcmF0aW9uVGltZTtcbiAgfVxufVxuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gaXNDYWxsYWJsZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ2FsbGFibGVGdW5jdGlvbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIjtcbn1cbiIsCiAgICAiZXhwb3J0IGNvbnN0IENBQ0hFX1RUTF9ORVZFUl9FWFBJUkUgPSAtMTtcbiIsCiAgICAiLyoqXG4gKiBDb252ZXJ0cyBhbiBhc3luYyBpdGVyYWJsZSBvZiBzdHJpbmcgb3IgVWludDhBcnJheSBjaHVua3MgaW50byBhbiBhc3luYyBpdGVyYWJsZSBvZiBsaW5lcy5cbiAqIEhhbmRsZXMgY2FzZXMgd2hlcmUgbGluZXMgbWF5IGJlIHNwbGl0IGFjcm9zcyBtdWx0aXBsZSBjaHVua3MuXG4gKiBVc2FnZTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBwaXBlbGluZSB9IGZyb20gXCJub2RlOnN0cmVhbS9wcm9taXNlc1wiO1xuICogaW1wb3J0IHsgY3JlYXRlUmVhZFN0cmVhbSB9IGZyb20gXCJub2RlOmZzXCI7XG4gKiBpbXBvcnQgeyBzdHJlYW1Ub0xpbmVzIH0gZnJvbSBcIkBsdWthc2tqL3RzLXV0aWxzXCI7XG4gKlxuICogYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0xpbmUoY2h1bms6IEFzeW5jSXRlcmFibGU8c3RyaW5nPikge1xuICogICBmb3IgYXdhaXQgKGNvbnN0IGxpbmUgb2YgY2h1bmspIHtcbiAqICAgICBjb25zb2xlLmxvZyhsaW5lKTtcbiAqICAgICB5aWVsZCBsaW5lO1xuICogICB9XG4gKiB9XG4gKiBjb25zdCByZWFkU3RyZWFtID0gY3JlYXRlUmVhZFN0cmVhbShcInBhdGgvdG8vZmlsZS50eHRcIiwgeyBlbmNvZGluZzogXCJ1dGYtOFwiIH0pO1xuICogYXdhaXQgcGlwZWxpbmUocmVhZFN0cmVhbSwgc3RyZWFtVG9MaW5lcywgcHJvY2Vzcy5zdGRvdXQpLmNhdGNoKChlcnIpID0+IHtcbiAqICAgY29uc29sZS5lcnJvcihlcnIpO1xuICogICBwcm9jZXNzLmV4aXQoMSk7XG4gKiB9KTtcbiAqIGBgYFxuICogQHBhcmFtIGNodW5rc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIHN0cmVhbVRvTGluZXMoY2h1bmtzOiBBc3luY0l0ZXJhYmxlPHN0cmluZyB8IFVpbnQ4QXJyYXk+KSB7XG4gIGxldCBwcmV2aW91cyA9IFwiXCI7XG5cbiAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBjaHVua3MpIHtcbiAgICBwcmV2aW91cyArPSBjaHVuaztcbiAgICBsZXQgZW9sSW5kZXg6IG51bWJlcjtcblxuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9Bc3NpZ25JbkV4cHJlc3Npb25zOiBcImV4cGxhbmF0aW9uXCJcbiAgICB3aGlsZSAoKGVvbEluZGV4ID0gcHJldmlvdXMuaW5kZXhPZihcIlxcblwiKSkgPj0gMCkge1xuICAgICAgLy8gdGhpcyBsaW5lIGluY2x1ZGVzIHRoZSBFT0xcbiAgICAgIGNvbnN0IGxpbmUgPSBwcmV2aW91cy5zbGljZSgwLCBlb2xJbmRleCArIDEpO1xuICAgICAgeWllbGQgbGluZT8udHJpbSgpID8/IFwiXCI7XG4gICAgICBwcmV2aW91cyA9IHByZXZpb3VzLnNsaWNlKGVvbEluZGV4ICsgMSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHByZXZpb3VzLmxlbmd0aCA+IDApIHtcbiAgICB5aWVsZCBwcmV2aW91cztcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBzdHJlYW1Ub0xpbmVzXG4gKi9cbmV4cG9ydCBjb25zdCBjaHVua3NUb0xpbmVzID0gc3RyZWFtVG9MaW5lcztcbiIsCiAgICAiZXhwb3J0IGNvbnN0IGlzTnVsbE9yVW5kZWZpbmVkID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudWxsIHwgdW5kZWZpbmVkID0+IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bGxPckVtcHR5T3JVbmRlZmluZWQodmFsdWU/OiBhbnkgfCBudWxsKTogdmFsdWUgaXMgbnVsbCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSBcIlwiIHx8IHZhbHVlLnRvU3RyaW5nKCkudHJpbSgpID09PSBcIlwiO1xufVxuIiwKICAgICIvKipcbiAqIFR5cGUgZ3VhcmQgdGhhdCBjaGVja3MgaWYgdGhlIGlucHV0IGlzIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QuXG4gKiBAcGFyYW0ge2FueX0gaW5wdXQgLSBUaGUgdmFsdWUgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBpbnB1dCBpcyBhIHBsYWluIG9iamVjdCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKiBAdHlwZVBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBUeXBlIGd1YXJkIG5hcnJvd3MgdGhlIGlucHV0IHR5cGUgdG8gYSBzdHJpbmcta2V5ZWQgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdChpbnB1dDogYW55KTogaW5wdXQgaXMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KGlucHV0KSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbiIsCiAgICAiZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSBpbnN0YW5jZW9mIERhdGU7XG59XG4iLAogICAgImltcG9ydCBzanMgZnJvbSBcInNlY3VyZS1qc29uLXBhcnNlXCI7XG5cbi8qKlxuICogU2FmZWx5IHBhcnNlcyBKU09OIGlucHV0IHVzaW5nIHNlY3VyZS1qc29uLXBhcnNlIHdpdGggcHJvdG90eXBlIHBvbGx1dGlvbiBwcm90ZWN0aW9uLlxuICogQHBhcmFtIHthbnl9IGlucHV0IC0gVGhlIGlucHV0IHRvIGJlIHBhcnNlZCBhcyBKU09OXG4gKiBAcmV0dXJucyB7eyB2YWx1ZT86IGFueSwgZXJyPzogRXJyb3IgfX0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgZWl0aGVyIHRoZSBwYXJzZWQgdmFsdWUgb3IgYW4gZXJyb3IgaWYgcGFyc2luZyBmYWlsZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25QYXJzZXIoaW5wdXQ6IGFueSkge1xuICB0cnkge1xuICAgIHJldHVybiB7IHZhbHVlOiBzanMucGFyc2UoaW5wdXQsIHsgcHJvdG9BY3Rpb246IFwicmVtb3ZlXCIgfSkgfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIHsgZXJyIH07XG4gIH1cbn1cbiIsCiAgICAiZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbVN0cmluZyhsZW5ndGg6IG51bWJlciA9IDYpOiBzdHJpbmcge1xuICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgY29uc3QgY2hhcmFjdGVycyA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlcIjtcbiAgY29uc3QgY2hhcmFjdGVyc0xlbmd0aCA9IGNoYXJhY3RlcnMubGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnNMZW5ndGgpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuIiwKICAgICJleHBvcnQgY29uc3Qgc2xlZXAgPSAobXM6IG51bWJlcikgPT4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbiIsCiAgICAiLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vdDNkb3RnZy9hNDg2YzRhZTY2ZDMyYmYxN2MwOWM3MzYwOWRhY2M1YlxuLy8gVHlwZXMgZm9yIHRoZSByZXN1bHQgb2JqZWN0IHdpdGggZGlzY3JpbWluYXRlZCB1bmlvblxudHlwZSBSZXN1bHRTdWNjZXNzPFQ+ID0ge1xuICBkYXRhOiBUO1xuICBlcnJvcjogbnVsbDtcbn07XG5cbnR5cGUgUmVzdWx0RXJyb3I8RT4gPSB7XG4gIGRhdGE6IG51bGw7XG4gIGVycm9yOiBFO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzdWx0PFQsIEUgPSBFcnJvcj4gPSBSZXN1bHRTdWNjZXNzPFQ+IHwgUmVzdWx0RXJyb3I8RT47XG5cbmV4cG9ydCB0eXBlIFByb21pc2VSZXN1bHQ8VCwgRT4gPSBQcm9taXNlPFJlc3VsdDxULCBFPj47XG5cbi8qKlxuICogV3JhcHMgYSBzeW5jaHJvbm91cyBmdW5jdGlvbiBpbiBhIHRyeS1jYXRjaCBibG9jayBhbmQgcmV0dXJucyBhIFJlc3VsdCB0dXBsZSBjb250YWluaW5nIGVpdGhlciB0aGUgcmV0dXJuZWQgdmFsdWUgb3IgdGhlIGNhdWdodCBlcnJvclxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHN1Y2Nlc3NmdWwgcmVzdWx0IHZhbHVlXG4gKiBAdGVtcGxhdGUgRSAtIFRoZSB0eXBlIG9mIHRoZSBlcnJvciB2YWx1ZSwgbXVzdCBleHRlbmQgRXJyb3JcbiAqIEBwYXJhbSB7KCkgPT4gVH0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWRcbiAqIEByZXR1cm5zIHtSZXN1bHQ8VCwgRT59IEEgdHVwbGUgY29udGFpbmluZyBlaXRoZXIgW2RhdGEsIHVuZGVmaW5lZF0gb3IgW3VuZGVmaW5lZCwgZXJyb3JdXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHtkYXRhLCBlcnJvcn0gPSB0cnlDYXRjaCgoKSA9PiBzb21lUmlza3lPcGVyYXRpb24oKSk7XG4gKiBpZiAoZXJyb3IpIHtcbiAqICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gKiB9IGVsc2Uge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUNhdGNoU3luYzxULCBFIGV4dGVuZHMgRXJyb3I+KGZuOiAoKSA9PiBUKTogUmVzdWx0PFQsIEU+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhID0gZm4oKTtcbiAgICByZXR1cm4geyBkYXRhOiBkYXRhIGFzIFQsIGVycm9yOiBudWxsIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3I6IGVycm9yIGFzIEUgfTtcbiAgfVxufVxuXG4vKipcbiAqIFdyYXBzIGEgUHJvbWlzZSBpbiBhIHRyeS1jYXRjaCBibG9jayBhbmQgcmV0dXJucyBhIFJlc3VsdCBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgdGhlIHJlc29sdmVkIGRhdGEgb3IgdGhlIGNhdWdodCBlcnJvclxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHN1Y2Nlc3NmdWwgcmVzdWx0IHZhbHVlXG4gKiBAdGVtcGxhdGUgRSAtIFRoZSB0eXBlIG9mIHRoZSBlcnJvciB2YWx1ZSwgZGVmYXVsdHMgdG8gRXJyb3JcbiAqIEBwYXJhbSB7UHJvbWlzZTxUPn0gcHJvbWlzZSAtIFRoZSBwcm9taXNlIHRvIGJlIGV4ZWN1dGVkXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxSZXN1bHQ8VCwgRT4+fSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIFJlc3VsdCBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgdGhlIGRhdGEgb3IgZXJyb3JcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qge2RhdGEsIGVycm9yfSA9IGF3YWl0IHRyeUNhdGNoKHNvbWVQcm9taXNlKTtcbiAqIGlmIChlcnJvcikge1xuICogICBjb25zb2xlLmVycm9yKHJlc3VsdC5lcnJvcik7XG4gKiB9IGVsc2Uge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyeUNhdGNoPFQsIEUgZXh0ZW5kcyBFcnJvcj4ocHJvbWlzZTogUHJvbWlzZTxUPik6IFByb21pc2VSZXN1bHQ8VCwgRT4ge1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBwcm9taXNlO1xuICAgIHJldHVybiB7IGRhdGE6IGRhdGEgYXMgVCwgZXJyb3I6IG51bGwgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogZXJyb3IgYXMgRSB9O1xuICB9XG59XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhIFJlc3VsdCBvYmplY3QgcmVwcmVzZW50cyBhIHN1Y2Nlc3NmdWwgb3BlcmF0aW9uXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgc3VjY2Vzc2Z1bCByZXN1bHQgdmFsdWVcbiAqIEB0ZW1wbGF0ZSBFIC0gVGhlIHR5cGUgb2YgdGhlIGVycm9yIHZhbHVlLCBkZWZhdWx0cyB0byBFcnJvclxuICogQHBhcmFtIHtSZXN1bHQ8VCwgRT59IHJlc3VsdCAtIFRoZSBSZXN1bHQgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7cmVzdWx0IGlzIFJlc3VsdFN1Y2Nlc3M8VD59IFRydWUgaWYgdGhlIHJlc3VsdCBpcyBzdWNjZXNzZnVsIChlcnJvciBpcyBudWxsKSwgZmFsc2Ugb3RoZXJ3aXNlXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlc3VsdCA9IHRyeUNhdGNoKCgpID0+IHNvbWVPcGVyYXRpb24oKSk7XG4gKiBpZiAoaXNTdWNjZXNzKHJlc3VsdCkpIHtcbiAqICAgY29uc29sZS5sb2cocmVzdWx0LmRhdGEpOyAvLyBUeXBlU2NyaXB0IGtub3dzIHJlc3VsdC5kYXRhIGlzIFRcbiAqIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3VjY2VzczxULCBFID0gRXJyb3I+KHJlc3VsdDogUmVzdWx0PFQsIEU+KTogcmVzdWx0IGlzIFJlc3VsdFN1Y2Nlc3M8VD4ge1xuICByZXR1cm4gcmVzdWx0LmVycm9yID09PSBudWxsO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSBSZXN1bHQgb2JqZWN0IHJlcHJlc2VudHMgYSBmYWlsZWQgb3BlcmF0aW9uXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgc3VjY2Vzc2Z1bCByZXN1bHQgdmFsdWVcbiAqIEB0ZW1wbGF0ZSBFIC0gVGhlIHR5cGUgb2YgdGhlIGVycm9yIHZhbHVlLCBkZWZhdWx0cyB0byBFcnJvclxuICogQHBhcmFtIHtSZXN1bHQ8VCwgRT59IHJlc3VsdCAtIFRoZSBSZXN1bHQgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7cmVzdWx0IGlzIFJlc3VsdEVycm9yPEU+fSBUcnVlIGlmIHRoZSByZXN1bHQgaXMgYW4gZXJyb3IgKGVycm9yIGlzIG5vdCBudWxsKSwgZmFsc2Ugb3RoZXJ3aXNlXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlc3VsdCA9IHRyeUNhdGNoKCgpID0+IHNvbWVPcGVyYXRpb24oKSk7XG4gKiBpZiAoaXNFcnJvcihyZXN1bHQpKSB7XG4gKiAgIGNvbnNvbGUuZXJyb3IocmVzdWx0LmVycm9yKTsgLy8gVHlwZVNjcmlwdCBrbm93cyByZXN1bHQuZXJyb3IgaXMgRVxuICogfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFcnJvcjxULCBFID0gRXJyb3I+KHJlc3VsdDogUmVzdWx0PFQsIEU+KTogcmVzdWx0IGlzIFJlc3VsdEVycm9yPEU+IHtcbiAgcmV0dXJuIHJlc3VsdC5lcnJvciAhPT0gbnVsbDtcbn1cbiIKICBdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBCLElBQTFCOzs7QUNBTyxTQUFTLFVBQVUsQ0FBQyxPQUF1QztBQUFBLEVBQ2hFLE9BQU8sT0FBTyxVQUFVO0FBQUE7OztBREkxQixJQUFNLHNCQUFvQztBQUFBLEVBQ3hDLHVCQUF1QjtBQUFBLEVBQ3ZCLE9BQU8sS0FBSyxLQUFLO0FBQ25CO0FBQUE7QUFFTyxNQUFNLE1BQThEO0FBQUEsRUFDakUsZ0JBQWdELElBQUk7QUFBQSxFQUMzQztBQUFBLEVB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QUFDLFlBQVksV0FBVyxTQUFTLEVBQUUsQ0FBQzs7QUNnQzlFLFNBQVMsWUFBZ0MsQ0FBQyxJQUEyQjtBQUFBLEVBQzFFLElBQUk7QUFBQSxJQUNGLE1BQU0sT0FBTyxHQUFHO0FBQUEsSUFDaEIsT0FBTyxFQUFFLE1BQWlCLE9BQU8sS0FBSztBQUFBLElBQ3RDLE9BQU8sT0FBTztBQUFBLElBQ2QsT0FBTyxFQUFFLE1BQU0sTUFBTSxNQUFrQjtBQUFBO0FBQUE7QUFvQjNDLGVBQXNCLFFBQTRCLENBQUMsU0FBMEM7QUFBQSxFQUMzRixJQUFJO0FBQUEsSUFDRixNQUFNLE9BQU8sTUFBTTtBQUFBLElBQ25CLE9BQU8sRUFBRSxNQUFpQixPQUFPLEtBQUs7QUFBQSxJQUN0QyxPQUFPLE9BQU87QUFBQSxJQUNkLE9BQU8sRUFBRSxNQUFNLE1BQU0sTUFBa0I7QUFBQTtBQUFBO0FBa0JwQyxTQUFTLFNBQXVCLENBQUMsUUFBa0Q7QUFBQSxFQUN4RixPQUFPLE9BQU8sVUFBVTtBQUFBO0FBaUJuQixTQUFTLE9BQXFCLENBQUMsUUFBZ0Q7QUFBQSxFQUNwRixPQUFPLE9BQU8sVUFBVTtBQUFBOyIsCiAgImRlYnVnSWQiOiAiOTgzQjFGRTk0OTlEQzMwNDY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|
|
@@ -42,28 +42,36 @@ var __export = (target, all) => {
|
|
|
42
42
|
// src/neverthrow/index.ts
|
|
43
43
|
var exports_neverthrow = {};
|
|
44
44
|
__export(exports_neverthrow, {
|
|
45
|
-
|
|
46
|
-
tryCatch: () => tryCatch
|
|
45
|
+
tryCatchSync: () => tryCatchSync,
|
|
46
|
+
tryCatch: () => tryCatch,
|
|
47
|
+
isSuccess: () => isSuccess,
|
|
48
|
+
isError: () => isError
|
|
47
49
|
});
|
|
48
50
|
module.exports = __toCommonJS(exports_neverthrow);
|
|
49
51
|
|
|
50
52
|
// src/neverthrow/tryCatch.ts
|
|
51
|
-
function
|
|
53
|
+
function tryCatchSync(fn) {
|
|
52
54
|
try {
|
|
53
55
|
const data = fn();
|
|
54
|
-
return
|
|
56
|
+
return { data, error: null };
|
|
55
57
|
} catch (error) {
|
|
56
|
-
return
|
|
58
|
+
return { data: null, error };
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
|
-
async function
|
|
61
|
+
async function tryCatch(promise) {
|
|
60
62
|
try {
|
|
61
63
|
const data = await promise;
|
|
62
|
-
return
|
|
64
|
+
return { data, error: null };
|
|
63
65
|
} catch (error) {
|
|
64
|
-
return
|
|
66
|
+
return { data: null, error };
|
|
65
67
|
}
|
|
66
68
|
}
|
|
69
|
+
function isSuccess(result) {
|
|
70
|
+
return result.error === null;
|
|
71
|
+
}
|
|
72
|
+
function isError(result) {
|
|
73
|
+
return result.error !== null;
|
|
74
|
+
}
|
|
67
75
|
|
|
68
|
-
//# debugId=
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# debugId=A02F57F5142CFD7564756E2164756E21
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL25ldmVydGhyb3cvdHJ5Q2F0Y2gudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vdDNkb3RnZy9hNDg2YzRhZTY2ZDMyYmYxN2MwOWM3MzYwOWRhY2M1YlxuLy8gVHlwZXMgZm9yIHRoZSByZXN1bHQgb2JqZWN0IHdpdGggZGlzY3JpbWluYXRlZCB1bmlvblxudHlwZSBSZXN1bHRTdWNjZXNzPFQ+ID0ge1xuICBkYXRhOiBUO1xuICBlcnJvcjogbnVsbDtcbn07XG5cbnR5cGUgUmVzdWx0RXJyb3I8RT4gPSB7XG4gIGRhdGE6IG51bGw7XG4gIGVycm9yOiBFO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzdWx0PFQsIEUgPSBFcnJvcj4gPSBSZXN1bHRTdWNjZXNzPFQ+IHwgUmVzdWx0RXJyb3I8RT47XG5cbmV4cG9ydCB0eXBlIFByb21pc2VSZXN1bHQ8VCwgRT4gPSBQcm9taXNlPFJlc3VsdDxULCBFPj47XG5cbi8qKlxuICogV3JhcHMgYSBzeW5jaHJvbm91cyBmdW5jdGlvbiBpbiBhIHRyeS1jYXRjaCBibG9jayBhbmQgcmV0dXJucyBhIFJlc3VsdCB0dXBsZSBjb250YWluaW5nIGVpdGhlciB0aGUgcmV0dXJuZWQgdmFsdWUgb3IgdGhlIGNhdWdodCBlcnJvclxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHN1Y2Nlc3NmdWwgcmVzdWx0IHZhbHVlXG4gKiBAdGVtcGxhdGUgRSAtIFRoZSB0eXBlIG9mIHRoZSBlcnJvciB2YWx1ZSwgbXVzdCBleHRlbmQgRXJyb3JcbiAqIEBwYXJhbSB7KCkgPT4gVH0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWRcbiAqIEByZXR1cm5zIHtSZXN1bHQ8VCwgRT59IEEgdHVwbGUgY29udGFpbmluZyBlaXRoZXIgW2RhdGEsIHVuZGVmaW5lZF0gb3IgW3VuZGVmaW5lZCwgZXJyb3JdXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHtkYXRhLCBlcnJvcn0gPSB0cnlDYXRjaCgoKSA9PiBzb21lUmlza3lPcGVyYXRpb24oKSk7XG4gKiBpZiAoZXJyb3IpIHtcbiAqICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gKiB9IGVsc2Uge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUNhdGNoU3luYzxULCBFIGV4dGVuZHMgRXJyb3I+KGZuOiAoKSA9PiBUKTogUmVzdWx0PFQsIEU+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhID0gZm4oKTtcbiAgICByZXR1cm4geyBkYXRhOiBkYXRhIGFzIFQsIGVycm9yOiBudWxsIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3I6IGVycm9yIGFzIEUgfTtcbiAgfVxufVxuXG4vKipcbiAqIFdyYXBzIGEgUHJvbWlzZSBpbiBhIHRyeS1jYXRjaCBibG9jayBhbmQgcmV0dXJucyBhIFJlc3VsdCBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgdGhlIHJlc29sdmVkIGRhdGEgb3IgdGhlIGNhdWdodCBlcnJvclxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHN1Y2Nlc3NmdWwgcmVzdWx0IHZhbHVlXG4gKiBAdGVtcGxhdGUgRSAtIFRoZSB0eXBlIG9mIHRoZSBlcnJvciB2YWx1ZSwgZGVmYXVsdHMgdG8gRXJyb3JcbiAqIEBwYXJhbSB7UHJvbWlzZTxUPn0gcHJvbWlzZSAtIFRoZSBwcm9taXNlIHRvIGJlIGV4ZWN1dGVkXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxSZXN1bHQ8VCwgRT4+fSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIFJlc3VsdCBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgdGhlIGRhdGEgb3IgZXJyb3JcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qge2RhdGEsIGVycm9yfSA9IGF3YWl0IHRyeUNhdGNoKHNvbWVQcm9taXNlKTtcbiAqIGlmIChlcnJvcikge1xuICogICBjb25zb2xlLmVycm9yKHJlc3VsdC5lcnJvcik7XG4gKiB9IGVsc2Uge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyeUNhdGNoPFQsIEUgZXh0ZW5kcyBFcnJvcj4ocHJvbWlzZTogUHJvbWlzZTxUPik6IFByb21pc2VSZXN1bHQ8VCwgRT4ge1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBwcm9taXNlO1xuICAgIHJldHVybiB7IGRhdGE6IGRhdGEgYXMgVCwgZXJyb3I6IG51bGwgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogZXJyb3IgYXMgRSB9O1xuICB9XG59XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhIFJlc3VsdCBvYmplY3QgcmVwcmVzZW50cyBhIHN1Y2Nlc3NmdWwgb3BlcmF0aW9uXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgc3VjY2Vzc2Z1bCByZXN1bHQgdmFsdWVcbiAqIEB0ZW1wbGF0ZSBFIC0gVGhlIHR5cGUgb2YgdGhlIGVycm9yIHZhbHVlLCBkZWZhdWx0cyB0byBFcnJvclxuICogQHBhcmFtIHtSZXN1bHQ8VCwgRT59IHJlc3VsdCAtIFRoZSBSZXN1bHQgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7cmVzdWx0IGlzIFJlc3VsdFN1Y2Nlc3M8VD59IFRydWUgaWYgdGhlIHJlc3VsdCBpcyBzdWNjZXNzZnVsIChlcnJvciBpcyBudWxsKSwgZmFsc2Ugb3RoZXJ3aXNlXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlc3VsdCA9IHRyeUNhdGNoKCgpID0+IHNvbWVPcGVyYXRpb24oKSk7XG4gKiBpZiAoaXNTdWNjZXNzKHJlc3VsdCkpIHtcbiAqICAgY29uc29sZS5sb2cocmVzdWx0LmRhdGEpOyAvLyBUeXBlU2NyaXB0IGtub3dzIHJlc3VsdC5kYXRhIGlzIFRcbiAqIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3VjY2VzczxULCBFID0gRXJyb3I+KHJlc3VsdDogUmVzdWx0PFQsIEU+KTogcmVzdWx0IGlzIFJlc3VsdFN1Y2Nlc3M8VD4ge1xuICByZXR1cm4gcmVzdWx0LmVycm9yID09PSBudWxsO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSBSZXN1bHQgb2JqZWN0IHJlcHJlc2VudHMgYSBmYWlsZWQgb3BlcmF0aW9uXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgc3VjY2Vzc2Z1bCByZXN1bHQgdmFsdWVcbiAqIEB0ZW1wbGF0ZSBFIC0gVGhlIHR5cGUgb2YgdGhlIGVycm9yIHZhbHVlLCBkZWZhdWx0cyB0byBFcnJvclxuICogQHBhcmFtIHtSZXN1bHQ8VCwgRT59IHJlc3VsdCAtIFRoZSBSZXN1bHQgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7cmVzdWx0IGlzIFJlc3VsdEVycm9yPEU+fSBUcnVlIGlmIHRoZSByZXN1bHQgaXMgYW4gZXJyb3IgKGVycm9yIGlzIG5vdCBudWxsKSwgZmFsc2Ugb3RoZXJ3aXNlXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlc3VsdCA9IHRyeUNhdGNoKCgpID0+IHNvbWVPcGVyYXRpb24oKSk7XG4gKiBpZiAoaXNFcnJvcihyZXN1bHQpKSB7XG4gKiAgIGNvbnNvbGUuZXJyb3IocmVzdWx0LmVycm9yKTsgLy8gVHlwZVNjcmlwdCBrbm93cyByZXN1bHQuZXJyb3IgaXMgRVxuICogfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFcnJvcjxULCBFID0gRXJyb3I+KHJlc3VsdDogUmVzdWx0PFQsIEU+KTogcmVzdWx0IGlzIFJlc3VsdEVycm9yPEU+IHtcbiAgcmV0dXJuIHJlc3VsdC5lcnJvciAhPT0gbnVsbDtcbn1cbiIKICBdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQ08sU0FBUyxZQUFnQyxDQUFDLElBQTJCO0FBQUEsRUFDMUUsSUFBSTtBQUFBLElBQ0YsTUFBTSxPQUFPLEdBQUc7QUFBQSxJQUNoQixPQUFPLEVBQUUsTUFBaUIsT0FBTyxLQUFLO0FBQUEsSUFDdEMsT0FBTyxPQUFPO0FBQUEsSUFDZCxPQUFPLEVBQUUsTUFBTSxNQUFNLE1BQWtCO0FBQUE7QUFBQTtBQW9CM0MsZUFBc0IsUUFBNEIsQ0FBQyxTQUEwQztBQUFBLEVBQzNGLElBQUk7QUFBQSxJQUNGLE1BQU0sT0FBTyxNQUFNO0FBQUEsSUFDbkIsT0FBTyxFQUFFLE1BQWlCLE9BQU8sS0FBSztBQUFBLElBQ3RDLE9BQU8sT0FBTztBQUFBLElBQ2QsT0FBTyxFQUFFLE1BQU0sTUFBTSxNQUFrQjtBQUFBO0FBQUE7QUFrQnBDLFNBQVMsU0FBdUIsQ0FBQyxRQUFrRDtBQUFBLEVBQ3hGLE9BQU8sT0FBTyxVQUFVO0FBQUE7QUFpQm5CLFNBQVMsT0FBcUIsQ0FBQyxRQUFnRDtBQUFBLEVBQ3BGLE9BQU8sT0FBTyxVQUFVO0FBQUE7IiwKICAiZGVidWdJZCI6ICJBMDJGNTdGNTE0MkNGRDc1NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
package/dist/esm/cache/index.mjs
CHANGED
|
@@ -123,7 +123,7 @@ class Cache {
|
|
|
123
123
|
if (expirationTime === undefined) {
|
|
124
124
|
return true;
|
|
125
125
|
}
|
|
126
|
-
return Date.now()
|
|
126
|
+
return Date.now() >= expirationTime;
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
// src/cache/constants.ts
|
|
@@ -133,5 +133,5 @@ export {
|
|
|
133
133
|
CACHE_TTL_NEVER_EXPIRE
|
|
134
134
|
};
|
|
135
135
|
|
|
136
|
-
//# debugId=
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NhY2hlL2NhY2hlU2VydmljZS50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNDYWxsYWJsZS50cyIsICIuLi8uLi9zcmMvY2FjaGUvY29uc3RhbnRzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IGlzUHJvbWlzZSB9IGZyb20gXCJub2RlOnV0aWwvdHlwZXNcIjtcbmltcG9ydCB7IGlzQ2FsbGFibGUgfSBmcm9tIFwiLi4vdXRpbHMvaXNDYWxsYWJsZS50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhT3B0aW9ucywgQ2FjaGVPcHRpb25zLCBDYWNoZVdpdGhNZXRhZGF0YSwgVmFsdWVMb2FkZXIgfSBmcm9tIFwiLi9pbnRlcm5hbC90eXBlcy50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhLCBJQ2FjaGVBZGFwdGVyIH0gZnJvbSBcIi4vdHlwZXMudHNcIjtcblxuY29uc3QgZGVmYXVsdENhY2hlT3B0aW9uczogQ2FjaGVPcHRpb25zID0ge1xuICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IDAsXG4gIHR0bE1zOiA2MCAqIDYwICogMTAwMCxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYWNoZTxUQWRhcHRlciBleHRlbmRzIElDYWNoZUFkYXB0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgcHJpdmF0ZSBpbk1lbW9yeUNhY2hlOiBNYXA8c3RyaW5nLCBDYWNoZVdpdGhNZXRhZGF0YT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ2FjaGVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkYXB0ZXI/OiBUQWRhcHRlcjtcblxuICBjb25zdHJ1Y3RvcihkZWZhdWx0T3B0aW9ucz86IFBhcnRpYWw8Q2FjaGVPcHRpb25zPik7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBUQWRhcHRlciwgZGVmYXVsdE9wdGlvbnM/OiBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pO1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyPzogVEFkYXB0ZXIgfCBQYXJ0aWFsPENhY2hlT3B0aW9ucz4sIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxDYWNoZU9wdGlvbnM+KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGFkYXB0ZXIgJiYgIShcImdldFZhbHVlXCIgaW4gYWRhcHRlcikgPyAoYWRhcHRlciBhcyBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pIDogZGVmYXVsdE9wdGlvbnM7XG4gICAgaWYgKGFkYXB0ZXIgJiYgXCJnZXRWYWx1ZVwiIGluIGFkYXB0ZXIgJiYgXCJzZXRWYWx1ZVwiIGluIGFkYXB0ZXIpIHtcbiAgICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXIgYXMgVEFkYXB0ZXI7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdENhY2hlT3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0VmFsdWUoY2FjaGVLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlVG9BZGFwdGVyPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnNldFZhbHVlPFQ+KGNhY2hlS2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0PFQ+KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVMb2FkZXI/OiBWYWx1ZUxvYWRlcjxUPixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPENhY2hlTWV0YWRhdGFPcHRpb25zPiA9IHt9LFxuICApOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gdGhpcy5tZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAvLyBUcnkgaW4tbWVtb3J5IGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkVmFsdWUgPSB0aGlzLnRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTG9hZCBmcmVzaCB2YWx1ZSBmcm9tIGxvYWRlciBmdW5jdGlvbiBmaXJzdFxuICAgIGNvbnN0IGZyZXNoVmFsdWUgPSBhd2FpdCB0aGlzLnRyeUdldEZyb21WYWx1ZUxvYWRlcih2YWx1ZUxvYWRlcik7XG4gICAgaWYgKGZyZXNoVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYWNoZVZhbHVlKGNhY2hlS2V5LCBmcmVzaFZhbHVlLCBtZXJnZWRPcHRpb25zKTtcblxuICAgICAgcmV0dXJuIGZyZXNoVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGFkYXB0ZXIgY2FjaGUgc2Vjb25kXG4gICAgY29uc3QgYWRhcHRlclZhbHVlID0gYXdhaXQgdGhpcy50cnlHZXRGcm9tQWRhcHRlcjxUPihjYWNoZUtleSk7XG4gICAgaWYgKGFkYXB0ZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmNhY2hlVmFsdWUoY2FjaGVLZXksIGFkYXB0ZXJWYWx1ZSwgbWVyZ2VkT3B0aW9ucyk7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZU9wdGlvbnMob3B0aW9uczogUGFydGlhbDxDYWNoZU1ldGFkYXRhT3B0aW9ucz4pOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR0bE1zOiB0aGlzLm9wdGlvbnMudHRsTXMsXG4gICAgICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IHRoaXMub3B0aW9ucy5leHBpcmF0aW9uVGhyZXNob2xkTXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuaW5NZW1vcnlDYWNoZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgaWYgKGNhY2hlZCAmJiAhdGhpcy5pc0V4cGlyZWQoY2FjaGVkLm1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuIGNhY2hlZC5kYXRhIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0RnJvbUFkYXB0ZXI8Q2FjaGVXaXRoTWV0YWRhdGE8VD4+KGNhY2hlS2V5KTtcblxuICAgIGlmIChjYWNoZWQgJiYgIXRoaXMuaXNFeHBpcmVkKGNhY2hlZC5tZXRhZGF0YSkpIHtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5zZXQoY2FjaGVLZXksIGNhY2hlZCk7XG4gICAgICByZXR1cm4gY2FjaGVkLmRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbVZhbHVlTG9hZGVyPFQ+KHZhbHVlTG9hZGVyPzogVmFsdWVMb2FkZXI8VD4pOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodmFsdWVMb2FkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoaXNDYWxsYWJsZSh2YWx1ZUxvYWRlcikpIHtcbiAgICAgIHJldHVybiBhd2FpdCB2YWx1ZUxvYWRlcigpO1xuICAgIH1cblxuICAgIGlmIChpc1Byb21pc2UodmFsdWVMb2FkZXIpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdmFsdWVMb2FkZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlTG9hZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWNoZVZhbHVlPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBULCBvcHRpb25zOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNhY2hlRGF0YSA9IHRoaXMuY3JlYXRlQ2FjaGVFbnRyeSh2YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0FkYXB0ZXIoY2FjaGVLZXksIGNhY2hlRGF0YSk7XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgY2FjaGVEYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FjaGVFbnRyeTxUPih2YWx1ZTogVCwgb3B0aW9uczogQ2FjaGVNZXRhZGF0YU9wdGlvbnMpOiBDYWNoZVdpdGhNZXRhZGF0YTxUPiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgaWYgKG9wdGlvbnMudHRsTXMgPCAwKSB7XG4gICAgICBleHBpcmVzQXQgPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwaXJlc0F0ID0gbm93ICsgb3B0aW9ucy50dGxNcyAtIG9wdGlvbnMuZXhwaXJhdGlvblRocmVzaG9sZE1zO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgICB0dGxNczogb3B0aW9ucy50dGxNcyxcbiAgICAgICAgZXhwaXJhdGlvblRocmVzaG9sZE1zOiBvcHRpb25zLmV4cGlyYXRpb25UaHJlc2hvbGRNcyxcbiAgICAgICAgZXhwaXJlc0F0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0V4cGlyZWQobWV0YWRhdGE/OiBDYWNoZU1ldGFkYXRhKTogYm9vbGVhbiB7XG4gICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFkYXRhLmV4cGlyZXNBdCA8IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9XG4gICAgICBtZXRhZGF0YS5leHBpcmVzQXQgPz8gKG1ldGFkYXRhLmNyZWF0ZWRBdCAmJiBtZXRhZGF0YS50dGxNcyA/IG1ldGFkYXRhLmNyZWF0ZWRBdCArIG1ldGFkYXRhLnR0bE1zIDogdW5kZWZpbmVkKTtcblxuICAgIGlmIChleHBpcmF0aW9uVGltZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZS5ub3coKSA+IGV4cGlyYXRpb25UaW1lO1xuICB9XG59XG4iLAogICAgImV4cG9ydCBmdW5jdGlvbiBpc0NhbGxhYmxlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDYWxsYWJsZUZ1bmN0aW9uIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiO1xufVxuIiwKICAgICJleHBvcnQgY29uc3QgQ0FDSEVfVFRMX05FVkVSX0VYUElSRSA9IC0xO1xuIgogIF0sCiAgIm1hcHBpbmdzIjogIjtBQUFBOzs7QUNBTyxTQUFTLFVBQVUsQ0FBQyxPQUF1QztBQUFBLEVBQ2hFLE9BQU8sT0FBTyxVQUFVO0FBQUE7OztBREkxQixJQUFNLHNCQUFvQztBQUFBLEVBQ3hDLHVCQUF1QjtBQUFBLEVBQ3ZCLE9BQU8sS0FBSyxLQUFLO0FBQ25CO0FBQUE7QUFFTyxNQUFNLE1BQThE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QzVDLEtBQUssY0FBYyxJQUFJLFVBQVUsU0FBUztBQUFBO0FBQUEsRUFHcEMsZ0JBQW1CLENBQUMsT0FBVSxTQUFxRDtBQUFBLElBQ3pGLE1BQU0sTUFBTSxLQUFLLElBQUk7QUFBQSxJQUNyQixJQUFJO0FBQUEsSUFDSixJQUFJLFFBQVEsUUFBUSxHQUFHO0FBQUEsTUFDckIsWUFBWTtBQUFBLElBQ2QsRUFBTztBQUFBLE1BQ0wsWUFBWSxNQUFNLFFBQVEsUUFBUSxRQUFRO0FBQUE7QUFBQSxJQUc1QyxPQUFPO0FBQUEsTUFDTCxNQUFNO0FBQUEsTUFDTixVQUFVO0FBQUEsUUFDUixXQUFXO0FBQUEsUUFDWCxPQUFPLFFBQVE7QUFBQSxRQUNmLHVCQUF1QixRQUFRO0FBQUEsUUFDL0I7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBO0FBQUEsRUFHTSxTQUFTLENBQUMsVUFBbUM7QUFBQSxJQUNuRCxJQUFJLENBQUMsVUFBVTtBQUFBLE1BQ2IsT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUVBLElBQUksU0FBUyxZQUFZLEdBQUc7QUFBQSxNQUMxQixPQUFPO0FBQUEsSUFDVDtBQUFBLElBRUEsTUFBTSxpQkFDSixTQUFTLGNBQWMsU0FBUyxhQUFhLFNBQVMsUUFBUSxTQUFTLFlBQVksU0FBUyxRQUFRO0FBQUEsSUFFdEcsSUFBSSxtQkFBbUIsV0FBVztBQUFBLE1BQ2hDLE9BQU87QUFBQSxJQUNUO0FBQUEsSUFFQSxPQUFPLEtBQUssSUFBSSxJQUFJO0FBQUE7QUFFeEI7O0FFcktPLElBQU0seUJBQXlCOyIsCiAgImRlYnVnSWQiOiAiNDY5NDQ2MDBFMDQwMEQ5QTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|
|
136
|
+
//# debugId=37FC73532C1D7E3664756E2164756E21
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NhY2hlL2NhY2hlU2VydmljZS50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNDYWxsYWJsZS50cyIsICIuLi8uLi9zcmMvY2FjaGUvY29uc3RhbnRzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IGlzUHJvbWlzZSB9IGZyb20gXCJub2RlOnV0aWwvdHlwZXNcIjtcbmltcG9ydCB7IGlzQ2FsbGFibGUgfSBmcm9tIFwiLi4vdXRpbHMvaXNDYWxsYWJsZS50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhT3B0aW9ucywgQ2FjaGVPcHRpb25zLCBDYWNoZVdpdGhNZXRhZGF0YSwgVmFsdWVMb2FkZXIgfSBmcm9tIFwiLi9pbnRlcm5hbC90eXBlcy50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhLCBJQ2FjaGVBZGFwdGVyIH0gZnJvbSBcIi4vdHlwZXMudHNcIjtcblxuY29uc3QgZGVmYXVsdENhY2hlT3B0aW9uczogQ2FjaGVPcHRpb25zID0ge1xuICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IDAsXG4gIHR0bE1zOiA2MCAqIDYwICogMTAwMCxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYWNoZTxUQWRhcHRlciBleHRlbmRzIElDYWNoZUFkYXB0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgcHJpdmF0ZSBpbk1lbW9yeUNhY2hlOiBNYXA8c3RyaW5nLCBDYWNoZVdpdGhNZXRhZGF0YT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ2FjaGVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkYXB0ZXI/OiBUQWRhcHRlcjtcblxuICBjb25zdHJ1Y3RvcihkZWZhdWx0T3B0aW9ucz86IFBhcnRpYWw8Q2FjaGVPcHRpb25zPik7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBUQWRhcHRlciwgZGVmYXVsdE9wdGlvbnM/OiBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pO1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyPzogVEFkYXB0ZXIgfCBQYXJ0aWFsPENhY2hlT3B0aW9ucz4sIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxDYWNoZU9wdGlvbnM+KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGFkYXB0ZXIgJiYgIShcImdldFZhbHVlXCIgaW4gYWRhcHRlcikgPyAoYWRhcHRlciBhcyBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pIDogZGVmYXVsdE9wdGlvbnM7XG4gICAgaWYgKGFkYXB0ZXIgJiYgXCJnZXRWYWx1ZVwiIGluIGFkYXB0ZXIgJiYgXCJzZXRWYWx1ZVwiIGluIGFkYXB0ZXIpIHtcbiAgICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXIgYXMgVEFkYXB0ZXI7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdENhY2hlT3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0VmFsdWUoY2FjaGVLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlVG9BZGFwdGVyPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnNldFZhbHVlPFQ+KGNhY2hlS2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0PFQ+KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVMb2FkZXI/OiBWYWx1ZUxvYWRlcjxUPixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPENhY2hlTWV0YWRhdGFPcHRpb25zPiA9IHt9LFxuICApOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gdGhpcy5tZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAvLyBUcnkgaW4tbWVtb3J5IGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkVmFsdWUgPSB0aGlzLnRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTG9hZCBmcmVzaCB2YWx1ZSBmcm9tIGxvYWRlciBmdW5jdGlvbiBmaXJzdFxuICAgIGNvbnN0IGZyZXNoVmFsdWUgPSBhd2FpdCB0aGlzLnRyeUdldEZyb21WYWx1ZUxvYWRlcih2YWx1ZUxvYWRlcik7XG4gICAgaWYgKGZyZXNoVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYWNoZVZhbHVlKGNhY2hlS2V5LCBmcmVzaFZhbHVlLCBtZXJnZWRPcHRpb25zKTtcblxuICAgICAgcmV0dXJuIGZyZXNoVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGFkYXB0ZXIgY2FjaGUgc2Vjb25kXG4gICAgY29uc3QgYWRhcHRlclZhbHVlID0gYXdhaXQgdGhpcy50cnlHZXRGcm9tQWRhcHRlcjxUPihjYWNoZUtleSk7XG4gICAgaWYgKGFkYXB0ZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmNhY2hlVmFsdWUoY2FjaGVLZXksIGFkYXB0ZXJWYWx1ZSwgbWVyZ2VkT3B0aW9ucyk7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZU9wdGlvbnMob3B0aW9uczogUGFydGlhbDxDYWNoZU1ldGFkYXRhT3B0aW9ucz4pOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR0bE1zOiB0aGlzLm9wdGlvbnMudHRsTXMsXG4gICAgICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IHRoaXMub3B0aW9ucy5leHBpcmF0aW9uVGhyZXNob2xkTXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuaW5NZW1vcnlDYWNoZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgaWYgKGNhY2hlZCAmJiAhdGhpcy5pc0V4cGlyZWQoY2FjaGVkLm1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuIGNhY2hlZC5kYXRhIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0RnJvbUFkYXB0ZXI8Q2FjaGVXaXRoTWV0YWRhdGE8VD4+KGNhY2hlS2V5KTtcblxuICAgIGlmIChjYWNoZWQgJiYgIXRoaXMuaXNFeHBpcmVkKGNhY2hlZC5tZXRhZGF0YSkpIHtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5zZXQoY2FjaGVLZXksIGNhY2hlZCk7XG4gICAgICByZXR1cm4gY2FjaGVkLmRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbVZhbHVlTG9hZGVyPFQ+KHZhbHVlTG9hZGVyPzogVmFsdWVMb2FkZXI8VD4pOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodmFsdWVMb2FkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoaXNDYWxsYWJsZSh2YWx1ZUxvYWRlcikpIHtcbiAgICAgIHJldHVybiBhd2FpdCB2YWx1ZUxvYWRlcigpO1xuICAgIH1cblxuICAgIGlmIChpc1Byb21pc2UodmFsdWVMb2FkZXIpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdmFsdWVMb2FkZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlTG9hZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWNoZVZhbHVlPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBULCBvcHRpb25zOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNhY2hlRGF0YSA9IHRoaXMuY3JlYXRlQ2FjaGVFbnRyeSh2YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0FkYXB0ZXIoY2FjaGVLZXksIGNhY2hlRGF0YSk7XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgY2FjaGVEYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FjaGVFbnRyeTxUPih2YWx1ZTogVCwgb3B0aW9uczogQ2FjaGVNZXRhZGF0YU9wdGlvbnMpOiBDYWNoZVdpdGhNZXRhZGF0YTxUPiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgaWYgKG9wdGlvbnMudHRsTXMgPCAwKSB7XG4gICAgICBleHBpcmVzQXQgPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwaXJlc0F0ID0gbm93ICsgb3B0aW9ucy50dGxNcyAtIG9wdGlvbnMuZXhwaXJhdGlvblRocmVzaG9sZE1zO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgICB0dGxNczogb3B0aW9ucy50dGxNcyxcbiAgICAgICAgZXhwaXJhdGlvblRocmVzaG9sZE1zOiBvcHRpb25zLmV4cGlyYXRpb25UaHJlc2hvbGRNcyxcbiAgICAgICAgZXhwaXJlc0F0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0V4cGlyZWQobWV0YWRhdGE/OiBDYWNoZU1ldGFkYXRhKTogYm9vbGVhbiB7XG4gICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFkYXRhLmV4cGlyZXNBdCA8IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9XG4gICAgICBtZXRhZGF0YS5leHBpcmVzQXQgPz8gKG1ldGFkYXRhLmNyZWF0ZWRBdCAmJiBtZXRhZGF0YS50dGxNcyA/IG1ldGFkYXRhLmNyZWF0ZWRBdCArIG1ldGFkYXRhLnR0bE1zIDogdW5kZWZpbmVkKTtcblxuICAgIGlmIChleHBpcmF0aW9uVGltZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZS5ub3coKSA+PSBleHBpcmF0aW9uVGltZTtcbiAgfVxufVxuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gaXNDYWxsYWJsZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ2FsbGFibGVGdW5jdGlvbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIjtcbn1cbiIsCiAgICAiZXhwb3J0IGNvbnN0IENBQ0hFX1RUTF9ORVZFUl9FWFBJUkUgPSAtMTtcbiIKICBdLAogICJtYXBwaW5ncyI6ICI7QUFBQTs7O0FDQU8sU0FBUyxVQUFVLENBQUMsT0FBdUM7QUFBQSxFQUNoRSxPQUFPLE9BQU8sVUFBVTtBQUFBOzs7QURJMUIsSUFBTSxzQkFBb0M7QUFBQSxFQUN4Qyx1QkFBdUI7QUFBQSxFQUN2QixPQUFPLEtBQUssS0FBSztBQUNuQjtBQUFBO0FBRU8sTUFBTSxNQUE4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QUM1QyxLQUFLLGNBQWMsSUFBSSxVQUFVLFNBQVM7QUFBQTtBQUFBLEVBR3BDLGdCQUFtQixDQUFDLE9BQVUsU0FBcUQ7QUFBQSxJQUN6RixNQUFNLE1BQU0sS0FBSyxJQUFJO0FBQUEsSUFDckIsSUFBSTtBQUFBLElBQ0osSUFBSSxRQUFRLFFBQVEsR0FBRztBQUFBLE1BQ3JCLFlBQVk7QUFBQSxJQUNkLEVBQU87QUFBQSxNQUNMLFlBQVksTUFBTSxRQUFRLFFBQVEsUUFBUTtBQUFBO0FBQUEsSUFHNUMsT0FBTztBQUFBLE1BQ0wsTUFBTTtBQUFBLE1BQ04sVUFBVTtBQUFBLFFBQ1IsV0FBVztBQUFBLFFBQ1gsT0FBTyxRQUFRO0FBQUEsUUFDZix1QkFBdUIsUUFBUTtBQUFBLFFBQy9CO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQTtBQUFBLEVBR00sU0FBUyxDQUFDLFVBQW1DO0FBQUEsSUFDbkQsSUFBSSxDQUFDLFVBQVU7QUFBQSxNQUNiLE9BQU87QUFBQSxJQUNUO0FBQUEsSUFFQSxJQUFJLFNBQVMsWUFBWSxHQUFHO0FBQUEsTUFDMUIsT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUVBLE1BQU0saUJBQ0osU0FBUyxjQUFjLFNBQVMsYUFBYSxTQUFTLFFBQVEsU0FBUyxZQUFZLFNBQVMsUUFBUTtBQUFBLElBRXRHLElBQUksbUJBQW1CLFdBQVc7QUFBQSxNQUNoQyxPQUFPO0FBQUEsSUFDVDtBQUFBLElBRUEsT0FBTyxLQUFLLElBQUksS0FBSztBQUFBO0FBRXpCOztBRXJLTyxJQUFNLHlCQUF5QjsiLAogICJkZWJ1Z0lkIjogIjM3RkM3MzUzMkMxRDdFMzY2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
|
package/dist/esm/index.mjs
CHANGED
|
@@ -123,7 +123,7 @@ class Cache {
|
|
|
123
123
|
if (expirationTime === undefined) {
|
|
124
124
|
return true;
|
|
125
125
|
}
|
|
126
|
-
return Date.now()
|
|
126
|
+
return Date.now() >= expirationTime;
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
// src/cache/constants.ts
|
|
@@ -181,37 +181,45 @@ function randomString(length = 6) {
|
|
|
181
181
|
// src/utils/sleep.ts
|
|
182
182
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
183
183
|
// src/neverthrow/tryCatch.ts
|
|
184
|
-
function
|
|
184
|
+
function tryCatchSync(fn) {
|
|
185
185
|
try {
|
|
186
186
|
const data = fn();
|
|
187
|
-
return
|
|
187
|
+
return { data, error: null };
|
|
188
188
|
} catch (error) {
|
|
189
|
-
return
|
|
189
|
+
return { data: null, error };
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
async function
|
|
192
|
+
async function tryCatch(promise) {
|
|
193
193
|
try {
|
|
194
194
|
const data = await promise;
|
|
195
|
-
return
|
|
195
|
+
return { data, error: null };
|
|
196
196
|
} catch (error) {
|
|
197
|
-
return
|
|
197
|
+
return { data: null, error };
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
|
+
function isSuccess(result) {
|
|
201
|
+
return result.error === null;
|
|
202
|
+
}
|
|
203
|
+
function isError(result) {
|
|
204
|
+
return result.error !== null;
|
|
205
|
+
}
|
|
200
206
|
export {
|
|
201
|
-
|
|
207
|
+
tryCatchSync,
|
|
202
208
|
tryCatch,
|
|
203
209
|
streamToLines,
|
|
204
210
|
sleep,
|
|
205
211
|
randomString,
|
|
206
212
|
jsonParser,
|
|
213
|
+
isSuccess,
|
|
207
214
|
isPrimitive,
|
|
208
215
|
isObject,
|
|
209
216
|
isNullOrUndefined,
|
|
210
217
|
isNullOrEmptyOrUndefined,
|
|
218
|
+
isError,
|
|
211
219
|
chunksToLines,
|
|
212
220
|
Cache,
|
|
213
221
|
CACHE_TTL_NEVER_EXPIRE
|
|
214
222
|
};
|
|
215
223
|
|
|
216
|
-
//# debugId=
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NhY2hlL2NhY2hlU2VydmljZS50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNDYWxsYWJsZS50cyIsICIuLi8uLi9zcmMvY2FjaGUvY29uc3RhbnRzLnRzIiwgIi4uLy4uL3NyYy91dGlscy9jaHVua3NUb0xpbmVzLnRzIiwgIi4uLy4uL3NyYy91dGlscy9pc051bGxPclVuZGVmaW5lZC50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNPYmplY3QudHMiLCAiLi4vLi4vc3JjL3V0aWxzL2lzUHJpbWl0aXZlLnRzIiwgIi4uLy4uL3NyYy91dGlscy9qc29uUGFyc2VyLnRzIiwgIi4uLy4uL3NyYy91dGlscy9yYW5kb21TdHJpbmcudHMiLCAiLi4vLi4vc3JjL3V0aWxzL3NsZWVwLnRzIiwgIi4uLy4uL3NyYy9uZXZlcnRocm93L3RyeUNhdGNoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IGlzUHJvbWlzZSB9IGZyb20gXCJub2RlOnV0aWwvdHlwZXNcIjtcbmltcG9ydCB7IGlzQ2FsbGFibGUgfSBmcm9tIFwiLi4vdXRpbHMvaXNDYWxsYWJsZS50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhT3B0aW9ucywgQ2FjaGVPcHRpb25zLCBDYWNoZVdpdGhNZXRhZGF0YSwgVmFsdWVMb2FkZXIgfSBmcm9tIFwiLi9pbnRlcm5hbC90eXBlcy50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhLCBJQ2FjaGVBZGFwdGVyIH0gZnJvbSBcIi4vdHlwZXMudHNcIjtcblxuY29uc3QgZGVmYXVsdENhY2hlT3B0aW9uczogQ2FjaGVPcHRpb25zID0ge1xuICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IDAsXG4gIHR0bE1zOiA2MCAqIDYwICogMTAwMCxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYWNoZTxUQWRhcHRlciBleHRlbmRzIElDYWNoZUFkYXB0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgcHJpdmF0ZSBpbk1lbW9yeUNhY2hlOiBNYXA8c3RyaW5nLCBDYWNoZVdpdGhNZXRhZGF0YT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ2FjaGVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkYXB0ZXI/OiBUQWRhcHRlcjtcblxuICBjb25zdHJ1Y3RvcihkZWZhdWx0T3B0aW9ucz86IFBhcnRpYWw8Q2FjaGVPcHRpb25zPik7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBUQWRhcHRlciwgZGVmYXVsdE9wdGlvbnM/OiBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pO1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyPzogVEFkYXB0ZXIgfCBQYXJ0aWFsPENhY2hlT3B0aW9ucz4sIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxDYWNoZU9wdGlvbnM+KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGFkYXB0ZXIgJiYgIShcImdldFZhbHVlXCIgaW4gYWRhcHRlcikgPyAoYWRhcHRlciBhcyBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pIDogZGVmYXVsdE9wdGlvbnM7XG4gICAgaWYgKGFkYXB0ZXIgJiYgXCJnZXRWYWx1ZVwiIGluIGFkYXB0ZXIgJiYgXCJzZXRWYWx1ZVwiIGluIGFkYXB0ZXIpIHtcbiAgICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXIgYXMgVEFkYXB0ZXI7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdENhY2hlT3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0VmFsdWUoY2FjaGVLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlVG9BZGFwdGVyPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnNldFZhbHVlPFQ+KGNhY2hlS2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0PFQ+KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVMb2FkZXI/OiBWYWx1ZUxvYWRlcjxUPixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPENhY2hlTWV0YWRhdGFPcHRpb25zPiA9IHt9LFxuICApOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gdGhpcy5tZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAvLyBUcnkgaW4tbWVtb3J5IGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkVmFsdWUgPSB0aGlzLnRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTG9hZCBmcmVzaCB2YWx1ZSBmcm9tIGxvYWRlciBmdW5jdGlvbiBmaXJzdFxuICAgIGNvbnN0IGZyZXNoVmFsdWUgPSBhd2FpdCB0aGlzLnRyeUdldEZyb21WYWx1ZUxvYWRlcih2YWx1ZUxvYWRlcik7XG4gICAgaWYgKGZyZXNoVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYWNoZVZhbHVlKGNhY2hlS2V5LCBmcmVzaFZhbHVlLCBtZXJnZWRPcHRpb25zKTtcblxuICAgICAgcmV0dXJuIGZyZXNoVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGFkYXB0ZXIgY2FjaGUgc2Vjb25kXG4gICAgY29uc3QgYWRhcHRlclZhbHVlID0gYXdhaXQgdGhpcy50cnlHZXRGcm9tQWRhcHRlcjxUPihjYWNoZUtleSk7XG4gICAgaWYgKGFkYXB0ZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmNhY2hlVmFsdWUoY2FjaGVLZXksIGFkYXB0ZXJWYWx1ZSwgbWVyZ2VkT3B0aW9ucyk7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZU9wdGlvbnMob3B0aW9uczogUGFydGlhbDxDYWNoZU1ldGFkYXRhT3B0aW9ucz4pOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR0bE1zOiB0aGlzLm9wdGlvbnMudHRsTXMsXG4gICAgICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IHRoaXMub3B0aW9ucy5leHBpcmF0aW9uVGhyZXNob2xkTXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuaW5NZW1vcnlDYWNoZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgaWYgKGNhY2hlZCAmJiAhdGhpcy5pc0V4cGlyZWQoY2FjaGVkLm1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuIGNhY2hlZC5kYXRhIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0RnJvbUFkYXB0ZXI8Q2FjaGVXaXRoTWV0YWRhdGE8VD4+KGNhY2hlS2V5KTtcblxuICAgIGlmIChjYWNoZWQgJiYgIXRoaXMuaXNFeHBpcmVkKGNhY2hlZC5tZXRhZGF0YSkpIHtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5zZXQoY2FjaGVLZXksIGNhY2hlZCk7XG4gICAgICByZXR1cm4gY2FjaGVkLmRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbVZhbHVlTG9hZGVyPFQ+KHZhbHVlTG9hZGVyPzogVmFsdWVMb2FkZXI8VD4pOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodmFsdWVMb2FkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoaXNDYWxsYWJsZSh2YWx1ZUxvYWRlcikpIHtcbiAgICAgIHJldHVybiBhd2FpdCB2YWx1ZUxvYWRlcigpO1xuICAgIH1cblxuICAgIGlmIChpc1Byb21pc2UodmFsdWVMb2FkZXIpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdmFsdWVMb2FkZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlTG9hZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWNoZVZhbHVlPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBULCBvcHRpb25zOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNhY2hlRGF0YSA9IHRoaXMuY3JlYXRlQ2FjaGVFbnRyeSh2YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0FkYXB0ZXIoY2FjaGVLZXksIGNhY2hlRGF0YSk7XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgY2FjaGVEYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FjaGVFbnRyeTxUPih2YWx1ZTogVCwgb3B0aW9uczogQ2FjaGVNZXRhZGF0YU9wdGlvbnMpOiBDYWNoZVdpdGhNZXRhZGF0YTxUPiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgaWYgKG9wdGlvbnMudHRsTXMgPCAwKSB7XG4gICAgICBleHBpcmVzQXQgPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwaXJlc0F0ID0gbm93ICsgb3B0aW9ucy50dGxNcyAtIG9wdGlvbnMuZXhwaXJhdGlvblRocmVzaG9sZE1zO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgICB0dGxNczogb3B0aW9ucy50dGxNcyxcbiAgICAgICAgZXhwaXJhdGlvblRocmVzaG9sZE1zOiBvcHRpb25zLmV4cGlyYXRpb25UaHJlc2hvbGRNcyxcbiAgICAgICAgZXhwaXJlc0F0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0V4cGlyZWQobWV0YWRhdGE/OiBDYWNoZU1ldGFkYXRhKTogYm9vbGVhbiB7XG4gICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFkYXRhLmV4cGlyZXNBdCA8IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9XG4gICAgICBtZXRhZGF0YS5leHBpcmVzQXQgPz8gKG1ldGFkYXRhLmNyZWF0ZWRBdCAmJiBtZXRhZGF0YS50dGxNcyA/IG1ldGFkYXRhLmNyZWF0ZWRBdCArIG1ldGFkYXRhLnR0bE1zIDogdW5kZWZpbmVkKTtcblxuICAgIGlmIChleHBpcmF0aW9uVGltZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZS5ub3coKSA+IGV4cGlyYXRpb25UaW1lO1xuICB9XG59XG4iLAogICAgImV4cG9ydCBmdW5jdGlvbiBpc0NhbGxhYmxlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDYWxsYWJsZUZ1bmN0aW9uIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiO1xufVxuIiwKICAgICJleHBvcnQgY29uc3QgQ0FDSEVfVFRMX05FVkVSX0VYUElSRSA9IC0xO1xuIiwKICAgICIvKipcbiAqIENvbnZlcnRzIGFuIGFzeW5jIGl0ZXJhYmxlIG9mIHN0cmluZyBvciBVaW50OEFycmF5IGNodW5rcyBpbnRvIGFuIGFzeW5jIGl0ZXJhYmxlIG9mIGxpbmVzLlxuICogSGFuZGxlcyBjYXNlcyB3aGVyZSBsaW5lcyBtYXkgYmUgc3BsaXQgYWNyb3NzIG11bHRpcGxlIGNodW5rcy5cbiAqIFVzYWdlOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IHBpcGVsaW5lIH0gZnJvbSBcIm5vZGU6c3RyZWFtL3Byb21pc2VzXCI7XG4gKiBpbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbiAqIGltcG9ydCB7IHN0cmVhbVRvTGluZXMgfSBmcm9tIFwiQGx1a2Fza2ovdHMtdXRpbHNcIjtcbiAqXG4gKiBhc3luYyBmdW5jdGlvbiBwcm9jZXNzTGluZShjaHVuazogQXN5bmNJdGVyYWJsZTxzdHJpbmc+KSB7XG4gKiAgIGZvciBhd2FpdCAoY29uc3QgbGluZSBvZiBjaHVuaykge1xuICogICAgIGNvbnNvbGUubG9nKGxpbmUpO1xuICogICAgIHlpZWxkIGxpbmU7XG4gKiAgIH1cbiAqIH1cbiAqIGNvbnN0IHJlYWRTdHJlYW0gPSBjcmVhdGVSZWFkU3RyZWFtKFwicGF0aC90by9maWxlLnR4dFwiLCB7IGVuY29kaW5nOiBcInV0Zi04XCIgfSk7XG4gKiBhd2FpdCBwaXBlbGluZShyZWFkU3RyZWFtLCBzdHJlYW1Ub0xpbmVzLCBwcm9jZXNzLnN0ZG91dCkuY2F0Y2goKGVycikgPT4ge1xuICogICBjb25zb2xlLmVycm9yKGVycik7XG4gKiAgIHByb2Nlc3MuZXhpdCgxKTtcbiAqIH0pO1xuICogYGBgXG4gKiBAcGFyYW0gY2h1bmtzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogc3RyZWFtVG9MaW5lcyhjaHVua3M6IEFzeW5jSXRlcmFibGU8c3RyaW5nIHwgVWludDhBcnJheT4pIHtcbiAgbGV0IHByZXZpb3VzID0gXCJcIjtcblxuICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIGNodW5rcykge1xuICAgIHByZXZpb3VzICs9IGNodW5rO1xuICAgIGxldCBlb2xJbmRleDogbnVtYmVyO1xuXG4gICAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0Fzc2lnbkluRXhwcmVzc2lvbnM6IFwiZXhwbGFuYXRpb25cIlxuICAgIHdoaWxlICgoZW9sSW5kZXggPSBwcmV2aW91cy5pbmRleE9mKFwiXFxuXCIpKSA+PSAwKSB7XG4gICAgICAvLyB0aGlzIGxpbmUgaW5jbHVkZXMgdGhlIEVPTFxuICAgICAgY29uc3QgbGluZSA9IHByZXZpb3VzLnNsaWNlKDAsIGVvbEluZGV4ICsgMSk7XG4gICAgICB5aWVsZCBsaW5lPy50cmltKCkgPz8gXCJcIjtcbiAgICAgIHByZXZpb3VzID0gcHJldmlvdXMuc2xpY2UoZW9sSW5kZXggKyAxKTtcbiAgICB9XG4gIH1cblxuICBpZiAocHJldmlvdXMubGVuZ3RoID4gMCkge1xuICAgIHlpZWxkIHByZXZpb3VzO1xuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIHN0cmVhbVRvTGluZXNcbiAqL1xuZXhwb3J0IGNvbnN0IGNodW5rc1RvTGluZXMgPSBzdHJlYW1Ub0xpbmVzO1xuIiwKICAgICJleHBvcnQgY29uc3QgaXNOdWxsT3JVbmRlZmluZWQgPSAodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bGwgfCB1bmRlZmluZWQgPT4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yRW1wdHlPclVuZGVmaW5lZCh2YWx1ZT86IGFueSB8IG51bGwpOiB2YWx1ZSBpcyBudWxsIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IFwiXCIgfHwgdmFsdWUudG9TdHJpbmcoKS50cmltKCkgPT09IFwiXCI7XG59XG4iLAogICAgIi8qKlxuICogVHlwZSBndWFyZCB0aGF0IGNoZWNrcyBpZiB0aGUgaW5wdXQgaXMgYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdC5cbiAqIEBwYXJhbSB7YW55fSBpbnB1dCAtIFRoZSB2YWx1ZSB0byBjaGVja1xuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIGlucHV0IGlzIGEgcGxhaW4gb2JqZWN0LCBmYWxzZSBvdGhlcndpc2VcbiAqIEB0eXBlUGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFR5cGUgZ3VhcmQgbmFycm93cyB0aGUgaW5wdXQgdHlwZSB0byBhIHN0cmluZy1rZXllZCBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KGlucHV0OiBhbnkpOiBpbnB1dCBpcyBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkoaW5wdXQpID09PSBcIltvYmplY3QgT2JqZWN0XVwiO1xufVxuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gaXNQcmltaXRpdmUodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlIGluc3RhbmNlb2YgRGF0ZTtcbn1cbiIsCiAgICAiaW1wb3J0IHNqcyBmcm9tIFwic2VjdXJlLWpzb24tcGFyc2VcIjtcblxuLyoqXG4gKiBTYWZlbHkgcGFyc2VzIEpTT04gaW5wdXQgdXNpbmcgc2VjdXJlLWpzb24tcGFyc2Ugd2l0aCBwcm90b3R5cGUgcG9sbHV0aW9uIHByb3RlY3Rpb24uXG4gKiBAcGFyYW0ge2FueX0gaW5wdXQgLSBUaGUgaW5wdXQgdG8gYmUgcGFyc2VkIGFzIEpTT05cbiAqIEByZXR1cm5zIHt7IHZhbHVlPzogYW55LCBlcnI/OiBFcnJvciB9fSBBbiBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgdGhlIHBhcnNlZCB2YWx1ZSBvciBhbiBlcnJvciBpZiBwYXJzaW5nIGZhaWxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24ganNvblBhcnNlcihpbnB1dDogYW55KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHsgdmFsdWU6IHNqcy5wYXJzZShpbnB1dCwgeyBwcm90b0FjdGlvbjogXCJyZW1vdmVcIiB9KSB9O1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4geyBlcnIgfTtcbiAgfVxufVxuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gcmFuZG9tU3RyaW5nKGxlbmd0aDogbnVtYmVyID0gNik6IHN0cmluZyB7XG4gIGxldCByZXN1bHQgPSBcIlwiO1xuICBjb25zdCBjaGFyYWN0ZXJzID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OVwiO1xuICBjb25zdCBjaGFyYWN0ZXJzTGVuZ3RoID0gY2hhcmFjdGVycy5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG4iLAogICAgImV4cG9ydCBjb25zdCBzbGVlcCA9IChtczogbnVtYmVyKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xuIiwKICAgICIvLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS90M2RvdGdnL2E0ODZjNGFlNjZkMzJiZjE3YzA5YzczNjA5ZGFjYzViXG4vLyBUeXBlcyBmb3IgdGhlIHJlc3VsdCBvYmplY3Qgd2l0aCBkaXNjcmltaW5hdGVkIHVuaW9uXG4vLyB0eXBlIFN1Y2Nlc3M8VD4gPSB7XG4vLyAgIGRhdGE6IFQ7XG4vLyAgIGVycm9yOiBudWxsO1xuLy8gfTtcblxuLy8gdHlwZSBGYWlsdXJlPEU+ID0ge1xuLy8gICBkYXRhOiBudWxsO1xuLy8gICBlcnJvcjogRTtcbi8vIH07XG5cbi8vIGV4cG9ydCB0eXBlIFJlc3VsdDxULCBFID0gRXJyb3I+ID0gU3VjY2VzczxUPiB8IEZhaWx1cmU8RT47XG5cbmV4cG9ydCB0eXBlIFJlc3VsdDxULCBFPiA9IFt1bmRlZmluZWQsIEVdIHwgW1QsIHVuZGVmaW5lZF07XG5leHBvcnQgdHlwZSBQcm9taXNlUmVzdWx0PFQsIEU+ID0gUHJvbWlzZTxSZXN1bHQ8VCwgRT4+O1xuXG4vKipcbiAqIFdyYXBzIGEgc3luY2hyb25vdXMgZnVuY3Rpb24gaW4gYSB0cnktY2F0Y2ggYmxvY2sgYW5kIHJldHVybnMgYSBSZXN1bHQgdHVwbGUgY29udGFpbmluZyBlaXRoZXIgdGhlIHJldHVybmVkIHZhbHVlIG9yIHRoZSBjYXVnaHQgZXJyb3JcbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBzdWNjZXNzZnVsIHJlc3VsdCB2YWx1ZVxuICogQHRlbXBsYXRlIEUgLSBUaGUgdHlwZSBvZiB0aGUgZXJyb3IgdmFsdWUsIG11c3QgZXh0ZW5kIEVycm9yXG4gKiBAcGFyYW0geygpID0+IFR9IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkXG4gKiBAcmV0dXJucyB7UmVzdWx0PFQsIEU+fSBBIHR1cGxlIGNvbnRhaW5pbmcgZWl0aGVyIFtkYXRhLCB1bmRlZmluZWRdIG9yIFt1bmRlZmluZWQsIGVycm9yXVxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbZGF0YSwgZXJyb3JdID0gdHJ5Q2F0Y2goKCkgPT4gc29tZVJpc2t5T3BlcmF0aW9uKCkpO1xuICogaWYgKGVycm9yKSB7XG4gKiAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICogfSBlbHNlIHtcbiAqICAgY29uc29sZS5sb2coZGF0YSk7XG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cnlDYXRjaDxULCBFIGV4dGVuZHMgRXJyb3I+KGZuOiAoKSA9PiBUKTogUmVzdWx0PFQsIEU+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhID0gZm4oKTtcbiAgICByZXR1cm4gW2RhdGEgYXMgVCwgdW5kZWZpbmVkXTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gW3VuZGVmaW5lZCwgZXJyb3IgYXMgRV07XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcyBhIFByb21pc2UgaW4gYSB0cnktY2F0Y2ggYmxvY2sgYW5kIHJldHVybnMgYSBSZXN1bHQgb2JqZWN0IGNvbnRhaW5pbmcgZWl0aGVyIHRoZSByZXNvbHZlZCBkYXRhIG9yIHRoZSBjYXVnaHQgZXJyb3JcbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBzdWNjZXNzZnVsIHJlc3VsdCB2YWx1ZVxuICogQHRlbXBsYXRlIEUgLSBUaGUgdHlwZSBvZiB0aGUgZXJyb3IgdmFsdWUsIGRlZmF1bHRzIHRvIEVycm9yXG4gKiBAcGFyYW0ge1Byb21pc2U8VD59IHByb21pc2UgLSBUaGUgcHJvbWlzZSB0byBiZSBleGVjdXRlZFxuICogQHJldHVybnMge1Byb21pc2U8UmVzdWx0PFQsIEU+Pn0gQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBSZXN1bHQgb2JqZWN0IGNvbnRhaW5pbmcgZWl0aGVyIHRoZSBkYXRhIG9yIGVycm9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHtkYXRhLCBlcnJvcn0gPSBhd2FpdCB0cnlDYXRjaEFzeW5jKHNvbWVQcm9taXNlKTtcbiAqIGlmIChlcnJvcikge1xuICogICBjb25zb2xlLmVycm9yKHJlc3VsdC5lcnJvcik7XG4gKiB9IGVsc2Uge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyeUNhdGNoQXN5bmM8VCwgRSBleHRlbmRzIEVycm9yPihwcm9taXNlOiBQcm9taXNlPFQ+KTogUHJvbWlzZVJlc3VsdDxULCBFPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHByb21pc2U7XG4gICAgcmV0dXJuIFtkYXRhIGFzIFQsIHVuZGVmaW5lZF07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIFt1bmRlZmluZWQsIGVycm9yIGFzIEVdO1xuICB9XG59XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiO0FBQUE7OztBQ0FPLFNBQVMsVUFBVSxDQUFDLE9BQXVDO0FBQUEsRUFDaEUsT0FBTyxPQUFPLFVBQVU7QUFBQTs7O0FESTFCLElBQU0sc0JBQW9DO0FBQUEsRUFDeEMsdUJBQXVCO0FBQUEsRUFDdkIsT0FBTyxLQUFLLEtBQUs7QUFDbkI7QUFBQTtBQUVPLE1BQU0sTUFBOEQ7QUFBQSxFQUNqRSxnQkFBZ0QsSUFBSTtBQUFBLEVBQzNDO0FBQUEsRUFDQTtBQUFBLEVBSWpCLFdBQVcsQ0FBQyxTQUE0QyxnQkFBd0M7QUFBQSxJQUM5RixNQUFNLFVBQVUsV0FBVyxFQUFFLGNBQWMsV0FBWSxVQUFvQztBQUFBLElBQzNGLElBQUksV0FBVyxjQUFjLFdBQVcsY0FBYyxTQUFTO0FBQUEsTUFDN0QsS0FBSyxVQUFVO0FBQUEsSUFDakI7QUFBQSxJQUVBLEtBQUssVUFBVTtBQUFBLFNBQ1Y7QUFBQSxTQUNBO0FBQUEsSUFDTDtBQUFBO0FBQUEsT0FHWSxlQUFpQixDQUFDLFVBQTBDO0FBQUEsSUFDeEUsSUFBSSxDQUFDLEtBQUssU0FBUztBQUFBLE1BQ2pCO0FBQUEsSUFDRjtBQUFBLElBRUEsT0FBTyxLQUFLLFFBQVEsU0FBUyxRQUFRO0FBQUE7QUFBQSxPQUd6QixjQUFnQixDQUFDLFVBQWtCLE9BQXlCO0FBQUEsSUFDeEUsSUFBSSxDQUFDLEtBQUssU0FBUztBQUFBLE1BQ2pCO0FBQUEsSUFDRjtBQUFBLElBRUEsT0FBTyxLQUFLLFFBQVEsU0FBWSxVQUFVLEtBQUs7QUFBQTtBQUFBLE9BR3BDLElBQU0sQ0FDakIsVUFDQSxhQUNB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QUFFLE9BQU8sSUFBSSxNQUFNLE9BQU8sRUFBRSxhQUFhLFNBQVMsQ0FBQyxFQUFFO0FBQUEsSUFDNUQsT0FBTyxLQUFLO0FBQUEsSUFDWixPQUFPLEVBQUUsSUFBSTtBQUFBO0FBQUE7O0FDWFYsU0FBUyxZQUFZLENBQUMsU0FBaUIsR0FBVztBQUFBLEVBQ3ZELElBQUksU0FBUztBQUFBLEVBQ2IsTUFBTSxhQUFhO0FBQUEsRUFDbkIsTUFBTSxtQkFBbUIsV0FBVztBQUFBLEVBQ3BDLFNBQVMsSUFBSSxFQUFHLElBQUksUUFBUSxLQUFLO0FBQUEsSUFDL0IsVUFBVSxXQUFXLE9BQU8sS0FBSyxNQUFNLEtBQUssT0FBTyxJQUFJLGdCQUFnQixDQUFDO0FBQUEsRUFDMUU7QUFBQSxFQUNBLE9BQU87QUFBQTs7QUNQRixJQUFNLFFBQVEsQ0FBQyxPQUFlLElBQUksUUFBUSxDQUFDLFlBQVksV0FBVyxTQUFTLEVBQUUsQ0FBQzs7QUNpQzlFLFNBQVMsUUFBNEIsQ0FBQyxJQUEyQjtBQUFBLEVBQ3RFLElBQUk7QUFBQSxJQUNGLE1BQU0sT0FBTyxHQUFHO0FBQUEsSUFDaEIsT0FBTyxDQUFDLE1BQVcsU0FBUztBQUFBLElBQzVCLE9BQU8sT0FBTztBQUFBLElBQ2QsT0FBTyxDQUFDLFdBQVcsS0FBVTtBQUFBO0FBQUE7QUFvQmpDLGVBQXNCLGFBQWlDLENBQUMsU0FBMEM7QUFBQSxFQUNoRyxJQUFJO0FBQUEsSUFDRixNQUFNLE9BQU8sTUFBTTtBQUFBLElBQ25CLE9BQU8sQ0FBQyxNQUFXLFNBQVM7QUFBQSxJQUM1QixPQUFPLE9BQU87QUFBQSxJQUNkLE9BQU8sQ0FBQyxXQUFXLEtBQVU7QUFBQTtBQUFBOyIsCiAgImRlYnVnSWQiOiAiOEU4MEU3OUFEMDdCQUQ2QTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|
|
224
|
+
//# debugId=AB98F35295521C9764756E2164756E21
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NhY2hlL2NhY2hlU2VydmljZS50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNDYWxsYWJsZS50cyIsICIuLi8uLi9zcmMvY2FjaGUvY29uc3RhbnRzLnRzIiwgIi4uLy4uL3NyYy91dGlscy9jaHVua3NUb0xpbmVzLnRzIiwgIi4uLy4uL3NyYy91dGlscy9pc051bGxPclVuZGVmaW5lZC50cyIsICIuLi8uLi9zcmMvdXRpbHMvaXNPYmplY3QudHMiLCAiLi4vLi4vc3JjL3V0aWxzL2lzUHJpbWl0aXZlLnRzIiwgIi4uLy4uL3NyYy91dGlscy9qc29uUGFyc2VyLnRzIiwgIi4uLy4uL3NyYy91dGlscy9yYW5kb21TdHJpbmcudHMiLCAiLi4vLi4vc3JjL3V0aWxzL3NsZWVwLnRzIiwgIi4uLy4uL3NyYy9uZXZlcnRocm93L3RyeUNhdGNoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IGlzUHJvbWlzZSB9IGZyb20gXCJub2RlOnV0aWwvdHlwZXNcIjtcbmltcG9ydCB7IGlzQ2FsbGFibGUgfSBmcm9tIFwiLi4vdXRpbHMvaXNDYWxsYWJsZS50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhT3B0aW9ucywgQ2FjaGVPcHRpb25zLCBDYWNoZVdpdGhNZXRhZGF0YSwgVmFsdWVMb2FkZXIgfSBmcm9tIFwiLi9pbnRlcm5hbC90eXBlcy50c1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZU1ldGFkYXRhLCBJQ2FjaGVBZGFwdGVyIH0gZnJvbSBcIi4vdHlwZXMudHNcIjtcblxuY29uc3QgZGVmYXVsdENhY2hlT3B0aW9uczogQ2FjaGVPcHRpb25zID0ge1xuICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IDAsXG4gIHR0bE1zOiA2MCAqIDYwICogMTAwMCxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYWNoZTxUQWRhcHRlciBleHRlbmRzIElDYWNoZUFkYXB0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgcHJpdmF0ZSBpbk1lbW9yeUNhY2hlOiBNYXA8c3RyaW5nLCBDYWNoZVdpdGhNZXRhZGF0YT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ2FjaGVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkYXB0ZXI/OiBUQWRhcHRlcjtcblxuICBjb25zdHJ1Y3RvcihkZWZhdWx0T3B0aW9ucz86IFBhcnRpYWw8Q2FjaGVPcHRpb25zPik7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBUQWRhcHRlciwgZGVmYXVsdE9wdGlvbnM/OiBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pO1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyPzogVEFkYXB0ZXIgfCBQYXJ0aWFsPENhY2hlT3B0aW9ucz4sIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxDYWNoZU9wdGlvbnM+KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGFkYXB0ZXIgJiYgIShcImdldFZhbHVlXCIgaW4gYWRhcHRlcikgPyAoYWRhcHRlciBhcyBQYXJ0aWFsPENhY2hlT3B0aW9ucz4pIDogZGVmYXVsdE9wdGlvbnM7XG4gICAgaWYgKGFkYXB0ZXIgJiYgXCJnZXRWYWx1ZVwiIGluIGFkYXB0ZXIgJiYgXCJzZXRWYWx1ZVwiIGluIGFkYXB0ZXIpIHtcbiAgICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXIgYXMgVEFkYXB0ZXI7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdENhY2hlT3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0VmFsdWUoY2FjaGVLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlVG9BZGFwdGVyPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnNldFZhbHVlPFQ+KGNhY2hlS2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0PFQ+KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVMb2FkZXI/OiBWYWx1ZUxvYWRlcjxUPixcbiAgICBvcHRpb25zOiBQYXJ0aWFsPENhY2hlTWV0YWRhdGFPcHRpb25zPiA9IHt9LFxuICApOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gdGhpcy5tZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAvLyBUcnkgaW4tbWVtb3J5IGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkVmFsdWUgPSB0aGlzLnRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTG9hZCBmcmVzaCB2YWx1ZSBmcm9tIGxvYWRlciBmdW5jdGlvbiBmaXJzdFxuICAgIGNvbnN0IGZyZXNoVmFsdWUgPSBhd2FpdCB0aGlzLnRyeUdldEZyb21WYWx1ZUxvYWRlcih2YWx1ZUxvYWRlcik7XG4gICAgaWYgKGZyZXNoVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYWNoZVZhbHVlKGNhY2hlS2V5LCBmcmVzaFZhbHVlLCBtZXJnZWRPcHRpb25zKTtcblxuICAgICAgcmV0dXJuIGZyZXNoVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGFkYXB0ZXIgY2FjaGUgc2Vjb25kXG4gICAgY29uc3QgYWRhcHRlclZhbHVlID0gYXdhaXQgdGhpcy50cnlHZXRGcm9tQWRhcHRlcjxUPihjYWNoZUtleSk7XG4gICAgaWYgKGFkYXB0ZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmNhY2hlVmFsdWUoY2FjaGVLZXksIGFkYXB0ZXJWYWx1ZSwgbWVyZ2VkT3B0aW9ucyk7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZU9wdGlvbnMob3B0aW9uczogUGFydGlhbDxDYWNoZU1ldGFkYXRhT3B0aW9ucz4pOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR0bE1zOiB0aGlzLm9wdGlvbnMudHRsTXMsXG4gICAgICBleHBpcmF0aW9uVGhyZXNob2xkTXM6IHRoaXMub3B0aW9ucy5leHBpcmF0aW9uVGhyZXNob2xkTXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRyeUdldEZyb21NZW1vcnk8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuaW5NZW1vcnlDYWNoZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgaWYgKGNhY2hlZCAmJiAhdGhpcy5pc0V4cGlyZWQoY2FjaGVkLm1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuIGNhY2hlZC5kYXRhIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbUFkYXB0ZXI8VD4oY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0RnJvbUFkYXB0ZXI8Q2FjaGVXaXRoTWV0YWRhdGE8VD4+KGNhY2hlS2V5KTtcblxuICAgIGlmIChjYWNoZWQgJiYgIXRoaXMuaXNFeHBpcmVkKGNhY2hlZC5tZXRhZGF0YSkpIHtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5zZXQoY2FjaGVLZXksIGNhY2hlZCk7XG4gICAgICByZXR1cm4gY2FjaGVkLmRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5R2V0RnJvbVZhbHVlTG9hZGVyPFQ+KHZhbHVlTG9hZGVyPzogVmFsdWVMb2FkZXI8VD4pOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAodmFsdWVMb2FkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoaXNDYWxsYWJsZSh2YWx1ZUxvYWRlcikpIHtcbiAgICAgIHJldHVybiBhd2FpdCB2YWx1ZUxvYWRlcigpO1xuICAgIH1cblxuICAgIGlmIChpc1Byb21pc2UodmFsdWVMb2FkZXIpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdmFsdWVMb2FkZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlTG9hZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWNoZVZhbHVlPFQ+KGNhY2hlS2V5OiBzdHJpbmcsIHZhbHVlOiBULCBvcHRpb25zOiBDYWNoZU1ldGFkYXRhT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNhY2hlRGF0YSA9IHRoaXMuY3JlYXRlQ2FjaGVFbnRyeSh2YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0FkYXB0ZXIoY2FjaGVLZXksIGNhY2hlRGF0YSk7XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgY2FjaGVEYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FjaGVFbnRyeTxUPih2YWx1ZTogVCwgb3B0aW9uczogQ2FjaGVNZXRhZGF0YU9wdGlvbnMpOiBDYWNoZVdpdGhNZXRhZGF0YTxUPiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgaWYgKG9wdGlvbnMudHRsTXMgPCAwKSB7XG4gICAgICBleHBpcmVzQXQgPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhwaXJlc0F0ID0gbm93ICsgb3B0aW9ucy50dGxNcyAtIG9wdGlvbnMuZXhwaXJhdGlvblRocmVzaG9sZE1zO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgICB0dGxNczogb3B0aW9ucy50dGxNcyxcbiAgICAgICAgZXhwaXJhdGlvblRocmVzaG9sZE1zOiBvcHRpb25zLmV4cGlyYXRpb25UaHJlc2hvbGRNcyxcbiAgICAgICAgZXhwaXJlc0F0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0V4cGlyZWQobWV0YWRhdGE/OiBDYWNoZU1ldGFkYXRhKTogYm9vbGVhbiB7XG4gICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFkYXRhLmV4cGlyZXNBdCA8IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9XG4gICAgICBtZXRhZGF0YS5leHBpcmVzQXQgPz8gKG1ldGFkYXRhLmNyZWF0ZWRBdCAmJiBtZXRhZGF0YS50dGxNcyA/IG1ldGFkYXRhLmNyZWF0ZWRBdCArIG1ldGFkYXRhLnR0bE1zIDogdW5kZWZpbmVkKTtcblxuICAgIGlmIChleHBpcmF0aW9uVGltZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZS5ub3coKSA+PSBleHBpcmF0aW9uVGltZTtcbiAgfVxufVxuIiwKICAgICJleHBvcnQgZnVuY3Rpb24gaXNDYWxsYWJsZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ2FsbGFibGVGdW5jdGlvbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIjtcbn1cbiIsCiAgICAiZXhwb3J0IGNvbnN0IENBQ0hFX1RUTF9ORVZFUl9FWFBJUkUgPSAtMTtcbiIsCiAgICAiLyoqXG4gKiBDb252ZXJ0cyBhbiBhc3luYyBpdGVyYWJsZSBvZiBzdHJpbmcgb3IgVWludDhBcnJheSBjaHVua3MgaW50byBhbiBhc3luYyBpdGVyYWJsZSBvZiBsaW5lcy5cbiAqIEhhbmRsZXMgY2FzZXMgd2hlcmUgbGluZXMgbWF5IGJlIHNwbGl0IGFjcm9zcyBtdWx0aXBsZSBjaHVua3MuXG4gKiBVc2FnZTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBwaXBlbGluZSB9IGZyb20gXCJub2RlOnN0cmVhbS9wcm9taXNlc1wiO1xuICogaW1wb3J0IHsgY3JlYXRlUmVhZFN0cmVhbSB9IGZyb20gXCJub2RlOmZzXCI7XG4gKiBpbXBvcnQgeyBzdHJlYW1Ub0xpbmVzIH0gZnJvbSBcIkBsdWthc2tqL3RzLXV0aWxzXCI7XG4gKlxuICogYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0xpbmUoY2h1bms6IEFzeW5jSXRlcmFibGU8c3RyaW5nPikge1xuICogICBmb3IgYXdhaXQgKGNvbnN0IGxpbmUgb2YgY2h1bmspIHtcbiAqICAgICBjb25zb2xlLmxvZyhsaW5lKTtcbiAqICAgICB5aWVsZCBsaW5lO1xuICogICB9XG4gKiB9XG4gKiBjb25zdCByZWFkU3RyZWFtID0gY3JlYXRlUmVhZFN0cmVhbShcInBhdGgvdG8vZmlsZS50eHRcIiwgeyBlbmNvZGluZzogXCJ1dGYtOFwiIH0pO1xuICogYXdhaXQgcGlwZWxpbmUocmVhZFN0cmVhbSwgc3RyZWFtVG9MaW5lcywgcHJvY2Vzcy5zdGRvdXQpLmNhdGNoKChlcnIpID0+IHtcbiAqICAgY29uc29sZS5lcnJvcihlcnIpO1xuICogICBwcm9jZXNzLmV4aXQoMSk7XG4gKiB9KTtcbiAqIGBgYFxuICogQHBhcmFtIGNodW5rc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIHN0cmVhbVRvTGluZXMoY2h1bmtzOiBBc3luY0l0ZXJhYmxlPHN0cmluZyB8IFVpbnQ4QXJyYXk+KSB7XG4gIGxldCBwcmV2aW91cyA9IFwiXCI7XG5cbiAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBjaHVua3MpIHtcbiAgICBwcmV2aW91cyArPSBjaHVuaztcbiAgICBsZXQgZW9sSW5kZXg6IG51bWJlcjtcblxuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9Bc3NpZ25JbkV4cHJlc3Npb25zOiBcImV4cGxhbmF0aW9uXCJcbiAgICB3aGlsZSAoKGVvbEluZGV4ID0gcHJldmlvdXMuaW5kZXhPZihcIlxcblwiKSkgPj0gMCkge1xuICAgICAgLy8gdGhpcyBsaW5lIGluY2x1ZGVzIHRoZSBFT0xcbiAgICAgIGNvbnN0IGxpbmUgPSBwcmV2aW91cy5zbGljZSgwLCBlb2xJbmRleCArIDEpO1xuICAgICAgeWllbGQgbGluZT8udHJpbSgpID8/IFwiXCI7XG4gICAgICBwcmV2aW91cyA9IHByZXZpb3VzLnNsaWNlKGVvbEluZGV4ICsgMSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHByZXZpb3VzLmxlbmd0aCA+IDApIHtcbiAgICB5aWVsZCBwcmV2aW91cztcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBzdHJlYW1Ub0xpbmVzXG4gKi9cbmV4cG9ydCBjb25zdCBjaHVua3NUb0xpbmVzID0gc3RyZWFtVG9MaW5lcztcbiIsCiAgICAiZXhwb3J0IGNvbnN0IGlzTnVsbE9yVW5kZWZpbmVkID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudWxsIHwgdW5kZWZpbmVkID0+IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bGxPckVtcHR5T3JVbmRlZmluZWQodmFsdWU/OiBhbnkgfCBudWxsKTogdmFsdWUgaXMgbnVsbCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSBcIlwiIHx8IHZhbHVlLnRvU3RyaW5nKCkudHJpbSgpID09PSBcIlwiO1xufVxuIiwKICAgICIvKipcbiAqIFR5cGUgZ3VhcmQgdGhhdCBjaGVja3MgaWYgdGhlIGlucHV0IGlzIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QuXG4gKiBAcGFyYW0ge2FueX0gaW5wdXQgLSBUaGUgdmFsdWUgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBpbnB1dCBpcyBhIHBsYWluIG9iamVjdCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKiBAdHlwZVBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBUeXBlIGd1YXJkIG5hcnJvd3MgdGhlIGlucHV0IHR5cGUgdG8gYSBzdHJpbmcta2V5ZWQgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdChpbnB1dDogYW55KTogaW5wdXQgaXMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KGlucHV0KSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbiIsCiAgICAiZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSBpbnN0YW5jZW9mIERhdGU7XG59XG4iLAogICAgImltcG9ydCBzanMgZnJvbSBcInNlY3VyZS1qc29uLXBhcnNlXCI7XG5cbi8qKlxuICogU2FmZWx5IHBhcnNlcyBKU09OIGlucHV0IHVzaW5nIHNlY3VyZS1qc29uLXBhcnNlIHdpdGggcHJvdG90eXBlIHBvbGx1dGlvbiBwcm90ZWN0aW9uLlxuICogQHBhcmFtIHthbnl9IGlucHV0IC0gVGhlIGlucHV0IHRvIGJlIHBhcnNlZCBhcyBKU09OXG4gKiBAcmV0dXJucyB7eyB2YWx1ZT86IGFueSwgZXJyPzogRXJyb3IgfX0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgZWl0aGVyIHRoZSBwYXJzZWQgdmFsdWUgb3IgYW4gZXJyb3IgaWYgcGFyc2luZyBmYWlsZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25QYXJzZXIoaW5wdXQ6IGFueSkge1xuICB0cnkge1xuICAgIHJldHVybiB7IHZhbHVlOiBzanMucGFyc2UoaW5wdXQsIHsgcHJvdG9BY3Rpb246IFwicmVtb3ZlXCIgfSkgfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIHsgZXJyIH07XG4gIH1cbn1cbiIsCiAgICAiZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbVN0cmluZyhsZW5ndGg6IG51bWJlciA9IDYpOiBzdHJpbmcge1xuICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgY29uc3QgY2hhcmFjdGVycyA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlcIjtcbiAgY29uc3QgY2hhcmFjdGVyc0xlbmd0aCA9IGNoYXJhY3RlcnMubGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnNMZW5ndGgpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuIiwKICAgICJleHBvcnQgY29uc3Qgc2xlZXAgPSAobXM6IG51bWJlcikgPT4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbiIsCiAgICAiLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vdDNkb3RnZy9hNDg2YzRhZTY2ZDMyYmYxN2MwOWM3MzYwOWRhY2M1YlxuLy8gVHlwZXMgZm9yIHRoZSByZXN1bHQgb2JqZWN0IHdpdGggZGlzY3JpbWluYXRlZCB1bmlvblxudHlwZSBSZXN1bHRTdWNjZXNzPFQ+ID0ge1xuICBkYXRhOiBUO1xuICBlcnJvcjogbnVsbDtcbn07XG5cbnR5cGUgUmVzdWx0RXJyb3I8RT4gPSB7XG4gIGRhdGE6IG51bGw7XG4gIGVycm9yOiBFO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzdWx0PFQsIEUgPSBFcnJvcj4gPSBSZXN1bHRTdWNjZXNzPFQ+IHwgUmVzdWx0RXJyb3I8RT47XG5cbmV4cG9ydCB0eXBlIFByb21pc2VSZXN1bHQ8VCwgRT4gPSBQcm9taXNlPFJlc3VsdDxULCBFPj47XG5cbi8qKlxuICogV3JhcHMgYSBzeW5jaHJvbm91cyBmdW5jdGlvbiBpbiBhIHRyeS1jYXRjaCBibG9jayBhbmQgcmV0dXJucyBhIFJlc3VsdCB0dXBsZSBjb250YWluaW5nIGVpdGhlciB0aGUgcmV0dXJuZWQgdmFsdWUgb3IgdGhlIGNhdWdodCBlcnJvclxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHN1Y2Nlc3NmdWwgcmVzdWx0IHZhbHVlXG4gKiBAdGVtcGxhdGUgRSAtIFRoZSB0eXBlIG9mIHRoZSBlcnJvciB2YWx1ZSwgbXVzdCBleHRlbmQgRXJyb3JcbiAqIEBwYXJhbSB7KCkgPT4gVH0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWRcbiAqIEByZXR1cm5zIHtSZXN1bHQ8VCwgRT59IEEgdHVwbGUgY29udGFpbmluZyBlaXRoZXIgW2RhdGEsIHVuZGVmaW5lZF0gb3IgW3VuZGVmaW5lZCwgZXJyb3JdXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHtkYXRhLCBlcnJvcn0gPSB0cnlDYXRjaCgoKSA9PiBzb21lUmlza3lPcGVyYXRpb24oKSk7XG4gKiBpZiAoZXJyb3IpIHtcbiAqICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gKiB9IGVsc2Uge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUNhdGNoU3luYzxULCBFIGV4dGVuZHMgRXJyb3I+KGZuOiAoKSA9PiBUKTogUmVzdWx0PFQsIEU+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhID0gZm4oKTtcbiAgICByZXR1cm4geyBkYXRhOiBkYXRhIGFzIFQsIGVycm9yOiBudWxsIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3I6IGVycm9yIGFzIEUgfTtcbiAgfVxufVxuXG4vKipcbiAqIFdyYXBzIGEgUHJvbWlzZSBpbiBhIHRyeS1jYXRjaCBibG9jayBhbmQgcmV0dXJucyBhIFJlc3VsdCBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgdGhlIHJlc29sdmVkIGRhdGEgb3IgdGhlIGNhdWdodCBlcnJvclxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHN1Y2Nlc3NmdWwgcmVzdWx0IHZhbHVlXG4gKiBAdGVtcGxhdGUgRSAtIFRoZSB0eXBlIG9mIHRoZSBlcnJvciB2YWx1ZSwgZGVmYXVsdHMgdG8gRXJyb3JcbiAqIEBwYXJhbSB7UHJvbWlzZTxUPn0gcHJvbWlzZSAtIFRoZSBwcm9taXNlIHRvIGJlIGV4ZWN1dGVkXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxSZXN1bHQ8VCwgRT4+fSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIFJlc3VsdCBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgdGhlIGRhdGEgb3IgZXJyb3JcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qge2RhdGEsIGVycm9yfSA9IGF3YWl0IHRyeUNhdGNoKHNvbWVQcm9taXNlKTtcbiAqIGlmIChlcnJvcikge1xuICogICBjb25zb2xlLmVycm9yKHJlc3VsdC5lcnJvcik7XG4gKiB9IGVsc2Uge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyeUNhdGNoPFQsIEUgZXh0ZW5kcyBFcnJvcj4ocHJvbWlzZTogUHJvbWlzZTxUPik6IFByb21pc2VSZXN1bHQ8VCwgRT4ge1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBwcm9taXNlO1xuICAgIHJldHVybiB7IGRhdGE6IGRhdGEgYXMgVCwgZXJyb3I6IG51bGwgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogZXJyb3IgYXMgRSB9O1xuICB9XG59XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhIFJlc3VsdCBvYmplY3QgcmVwcmVzZW50cyBhIHN1Y2Nlc3NmdWwgb3BlcmF0aW9uXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgc3VjY2Vzc2Z1bCByZXN1bHQgdmFsdWVcbiAqIEB0ZW1wbGF0ZSBFIC0gVGhlIHR5cGUgb2YgdGhlIGVycm9yIHZhbHVlLCBkZWZhdWx0cyB0byBFcnJvclxuICogQHBhcmFtIHtSZXN1bHQ8VCwgRT59IHJlc3VsdCAtIFRoZSBSZXN1bHQgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7cmVzdWx0IGlzIFJlc3VsdFN1Y2Nlc3M8VD59IFRydWUgaWYgdGhlIHJlc3VsdCBpcyBzdWNjZXNzZnVsIChlcnJvciBpcyBudWxsKSwgZmFsc2Ugb3RoZXJ3aXNlXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlc3VsdCA9IHRyeUNhdGNoKCgpID0+IHNvbWVPcGVyYXRpb24oKSk7XG4gKiBpZiAoaXNTdWNjZXNzKHJlc3VsdCkpIHtcbiAqICAgY29uc29sZS5sb2cocmVzdWx0LmRhdGEpOyAvLyBUeXBlU2NyaXB0IGtub3dzIHJlc3VsdC5kYXRhIGlzIFRcbiAqIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3VjY2VzczxULCBFID0gRXJyb3I+KHJlc3VsdDogUmVzdWx0PFQsIEU+KTogcmVzdWx0IGlzIFJlc3VsdFN1Y2Nlc3M8VD4ge1xuICByZXR1cm4gcmVzdWx0LmVycm9yID09PSBudWxsO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSBSZXN1bHQgb2JqZWN0IHJlcHJlc2VudHMgYSBmYWlsZWQgb3BlcmF0aW9uXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgc3VjY2Vzc2Z1bCByZXN1bHQgdmFsdWVcbiAqIEB0ZW1wbGF0ZSBFIC0gVGhlIHR5cGUgb2YgdGhlIGVycm9yIHZhbHVlLCBkZWZhdWx0cyB0byBFcnJvclxuICogQHBhcmFtIHtSZXN1bHQ8VCwgRT59IHJlc3VsdCAtIFRoZSBSZXN1bHQgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7cmVzdWx0IGlzIFJlc3VsdEVycm9yPEU+fSBUcnVlIGlmIHRoZSByZXN1bHQgaXMgYW4gZXJyb3IgKGVycm9yIGlzIG5vdCBudWxsKSwgZmFsc2Ugb3RoZXJ3aXNlXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlc3VsdCA9IHRyeUNhdGNoKCgpID0+IHNvbWVPcGVyYXRpb24oKSk7XG4gKiBpZiAoaXNFcnJvcihyZXN1bHQpKSB7XG4gKiAgIGNvbnNvbGUuZXJyb3IocmVzdWx0LmVycm9yKTsgLy8gVHlwZVNjcmlwdCBrbm93cyByZXN1bHQuZXJyb3IgaXMgRVxuICogfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFcnJvcjxULCBFID0gRXJyb3I+KHJlc3VsdDogUmVzdWx0PFQsIEU+KTogcmVzdWx0IGlzIFJlc3VsdEVycm9yPEU+IHtcbiAgcmV0dXJuIHJlc3VsdC5lcnJvciAhPT0gbnVsbDtcbn1cbiIKICBdLAogICJtYXBwaW5ncyI6ICI7QUFBQTs7O0FDQU8sU0FBUyxVQUFVLENBQUMsT0FBdUM7QUFBQSxFQUNoRSxPQUFPLE9BQU8sVUFBVTtBQUFBOzs7QURJMUIsSUFBTSxzQkFBb0M7QUFBQSxFQUN4Qyx1QkFBdUI7QUFBQSxFQUN2QixPQUFPLEtBQUssS0FBSztBQUNuQjtBQUFBO0FBRU8sTUFBTSxNQUE4RDtBQUFBLEVBQ2pFLGdCQUFnRCxJQUFJO0FBQUEsRUFDM0M7QUFBQSxFQUNBO0FBQUEsRUFJakIsV0FBVyxDQUFDLFNBQTRDLGdCQUF3QztBQUFBLElBQzlGLE1BQU0sVUFB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TUFBTSxPQUFPLEdBQUc7QUFBQSxJQUNoQixPQUFPLEVBQUUsTUFBaUIsT0FBTyxLQUFLO0FBQUEsSUFDdEMsT0FBTyxPQUFPO0FBQUEsSUFDZCxPQUFPLEVBQUUsTUFBTSxNQUFNLE1BQWtCO0FBQUE7QUFBQTtBQW9CM0MsZUFBc0IsUUFBNEIsQ0FBQyxTQUEwQztBQUFBLEVBQzNGLElBQUk7QUFBQSxJQUNGLE1BQU0sT0FBTyxNQUFNO0FBQUEsSUFDbkIsT0FBTyxFQUFFLE1BQWlCLE9BQU8sS0FBSztBQUFBLElBQ3RDLE9BQU8sT0FBTztBQUFBLElBQ2QsT0FBTyxFQUFFLE1BQU0sTUFBTSxNQUFrQjtBQUFBO0FBQUE7QUFrQnBDLFNBQVMsU0FBdUIsQ0FBQyxRQUFrRDtBQUFBLEVBQ3hGLE9BQU8sT0FBTyxVQUFVO0FBQUE7QUFpQm5CLFNBQVMsT0FBcUIsQ0FBQyxRQUFnRDtBQUFBLEVBQ3BGLE9BQU8sT0FBTyxVQUFVO0FBQUE7IiwKICAiZGVidWdJZCI6ICJBQjk4RjM1Mjk1NTIxQzk3NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
// src/neverthrow/tryCatch.ts
|
|
2
|
-
function
|
|
2
|
+
function tryCatchSync(fn) {
|
|
3
3
|
try {
|
|
4
4
|
const data = fn();
|
|
5
|
-
return
|
|
5
|
+
return { data, error: null };
|
|
6
6
|
} catch (error) {
|
|
7
|
-
return
|
|
7
|
+
return { data: null, error };
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
async function
|
|
10
|
+
async function tryCatch(promise) {
|
|
11
11
|
try {
|
|
12
12
|
const data = await promise;
|
|
13
|
-
return
|
|
13
|
+
return { data, error: null };
|
|
14
14
|
} catch (error) {
|
|
15
|
-
return
|
|
15
|
+
return { data: null, error };
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
function isSuccess(result) {
|
|
19
|
+
return result.error === null;
|
|
20
|
+
}
|
|
21
|
+
function isError(result) {
|
|
22
|
+
return result.error !== null;
|
|
23
|
+
}
|
|
18
24
|
export {
|
|
19
|
-
|
|
20
|
-
tryCatch
|
|
25
|
+
tryCatchSync,
|
|
26
|
+
tryCatch,
|
|
27
|
+
isSuccess,
|
|
28
|
+
isError
|
|
21
29
|
};
|
|
22
30
|
|
|
23
|
-
//# debugId=
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# debugId=ABB55CB38B6FD21664756E2164756E21
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL25ldmVydGhyb3cvdHJ5Q2F0Y2gudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vdDNkb3RnZy9hNDg2YzRhZTY2ZDMyYmYxN2MwOWM3MzYwOWRhY2M1YlxuLy8gVHlwZXMgZm9yIHRoZSByZXN1bHQgb2JqZWN0IHdpdGggZGlzY3JpbWluYXRlZCB1bmlvblxudHlwZSBSZXN1bHRTdWNjZXNzPFQ+ID0ge1xuICBkYXRhOiBUO1xuICBlcnJvcjogbnVsbDtcbn07XG5cbnR5cGUgUmVzdWx0RXJyb3I8RT4gPSB7XG4gIGRhdGE6IG51bGw7XG4gIGVycm9yOiBFO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzdWx0PFQsIEUgPSBFcnJvcj4gPSBSZXN1bHRTdWNjZXNzPFQ+IHwgUmVzdWx0RXJyb3I8RT47XG5cbmV4cG9ydCB0eXBlIFByb21pc2VSZXN1bHQ8VCwgRT4gPSBQcm9taXNlPFJlc3VsdDxULCBFPj47XG5cbi8qKlxuICogV3JhcHMgYSBzeW5jaHJvbm91cyBmdW5jdGlvbiBpbiBhIHRyeS1jYXRjaCBibG9jayBhbmQgcmV0dXJucyBhIFJlc3VsdCB0dXBsZSBjb250YWluaW5nIGVpdGhlciB0aGUgcmV0dXJuZWQgdmFsdWUgb3IgdGhlIGNhdWdodCBlcnJvclxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHN1Y2Nlc3NmdWwgcmVzdWx0IHZhbHVlXG4gKiBAdGVtcGxhdGUgRSAtIFRoZSB0eXBlIG9mIHRoZSBlcnJvciB2YWx1ZSwgbXVzdCBleHRlbmQgRXJyb3JcbiAqIEBwYXJhbSB7KCkgPT4gVH0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWRcbiAqIEByZXR1cm5zIHtSZXN1bHQ8VCwgRT59IEEgdHVwbGUgY29udGFpbmluZyBlaXRoZXIgW2RhdGEsIHVuZGVmaW5lZF0gb3IgW3VuZGVmaW5lZCwgZXJyb3JdXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHtkYXRhLCBlcnJvcn0gPSB0cnlDYXRjaCgoKSA9PiBzb21lUmlza3lPcGVyYXRpb24oKSk7XG4gKiBpZiAoZXJyb3IpIHtcbiAqICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gKiB9IGVsc2Uge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUNhdGNoU3luYzxULCBFIGV4dGVuZHMgRXJyb3I+KGZuOiAoKSA9PiBUKTogUmVzdWx0PFQsIEU+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhID0gZm4oKTtcbiAgICByZXR1cm4geyBkYXRhOiBkYXRhIGFzIFQsIGVycm9yOiBudWxsIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3I6IGVycm9yIGFzIEUgfTtcbiAgfVxufVxuXG4vKipcbiAqIFdyYXBzIGEgUHJvbWlzZSBpbiBhIHRyeS1jYXRjaCBibG9jayBhbmQgcmV0dXJucyBhIFJlc3VsdCBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgdGhlIHJlc29sdmVkIGRhdGEgb3IgdGhlIGNhdWdodCBlcnJvclxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHN1Y2Nlc3NmdWwgcmVzdWx0IHZhbHVlXG4gKiBAdGVtcGxhdGUgRSAtIFRoZSB0eXBlIG9mIHRoZSBlcnJvciB2YWx1ZSwgZGVmYXVsdHMgdG8gRXJyb3JcbiAqIEBwYXJhbSB7UHJvbWlzZTxUPn0gcHJvbWlzZSAtIFRoZSBwcm9taXNlIHRvIGJlIGV4ZWN1dGVkXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxSZXN1bHQ8VCwgRT4+fSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIFJlc3VsdCBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgdGhlIGRhdGEgb3IgZXJyb3JcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qge2RhdGEsIGVycm9yfSA9IGF3YWl0IHRyeUNhdGNoKHNvbWVQcm9taXNlKTtcbiAqIGlmIChlcnJvcikge1xuICogICBjb25zb2xlLmVycm9yKHJlc3VsdC5lcnJvcik7XG4gKiB9IGVsc2Uge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyeUNhdGNoPFQsIEUgZXh0ZW5kcyBFcnJvcj4ocHJvbWlzZTogUHJvbWlzZTxUPik6IFByb21pc2VSZXN1bHQ8VCwgRT4ge1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBwcm9taXNlO1xuICAgIHJldHVybiB7IGRhdGE6IGRhdGEgYXMgVCwgZXJyb3I6IG51bGwgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4geyBkYXRhOiBudWxsLCBlcnJvcjogZXJyb3IgYXMgRSB9O1xuICB9XG59XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhIFJlc3VsdCBvYmplY3QgcmVwcmVzZW50cyBhIHN1Y2Nlc3NmdWwgb3BlcmF0aW9uXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgc3VjY2Vzc2Z1bCByZXN1bHQgdmFsdWVcbiAqIEB0ZW1wbGF0ZSBFIC0gVGhlIHR5cGUgb2YgdGhlIGVycm9yIHZhbHVlLCBkZWZhdWx0cyB0byBFcnJvclxuICogQHBhcmFtIHtSZXN1bHQ8VCwgRT59IHJlc3VsdCAtIFRoZSBSZXN1bHQgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7cmVzdWx0IGlzIFJlc3VsdFN1Y2Nlc3M8VD59IFRydWUgaWYgdGhlIHJlc3VsdCBpcyBzdWNjZXNzZnVsIChlcnJvciBpcyBudWxsKSwgZmFsc2Ugb3RoZXJ3aXNlXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlc3VsdCA9IHRyeUNhdGNoKCgpID0+IHNvbWVPcGVyYXRpb24oKSk7XG4gKiBpZiAoaXNTdWNjZXNzKHJlc3VsdCkpIHtcbiAqICAgY29uc29sZS5sb2cocmVzdWx0LmRhdGEpOyAvLyBUeXBlU2NyaXB0IGtub3dzIHJlc3VsdC5kYXRhIGlzIFRcbiAqIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3VjY2VzczxULCBFID0gRXJyb3I+KHJlc3VsdDogUmVzdWx0PFQsIEU+KTogcmVzdWx0IGlzIFJlc3VsdFN1Y2Nlc3M8VD4ge1xuICByZXR1cm4gcmVzdWx0LmVycm9yID09PSBudWxsO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSBSZXN1bHQgb2JqZWN0IHJlcHJlc2VudHMgYSBmYWlsZWQgb3BlcmF0aW9uXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgc3VjY2Vzc2Z1bCByZXN1bHQgdmFsdWVcbiAqIEB0ZW1wbGF0ZSBFIC0gVGhlIHR5cGUgb2YgdGhlIGVycm9yIHZhbHVlLCBkZWZhdWx0cyB0byBFcnJvclxuICogQHBhcmFtIHtSZXN1bHQ8VCwgRT59IHJlc3VsdCAtIFRoZSBSZXN1bHQgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7cmVzdWx0IGlzIFJlc3VsdEVycm9yPEU+fSBUcnVlIGlmIHRoZSByZXN1bHQgaXMgYW4gZXJyb3IgKGVycm9yIGlzIG5vdCBudWxsKSwgZmFsc2Ugb3RoZXJ3aXNlXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJlc3VsdCA9IHRyeUNhdGNoKCgpID0+IHNvbWVPcGVyYXRpb24oKSk7XG4gKiBpZiAoaXNFcnJvcihyZXN1bHQpKSB7XG4gKiAgIGNvbnNvbGUuZXJyb3IocmVzdWx0LmVycm9yKTsgLy8gVHlwZVNjcmlwdCBrbm93cyByZXN1bHQuZXJyb3IgaXMgRVxuICogfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFcnJvcjxULCBFID0gRXJyb3I+KHJlc3VsdDogUmVzdWx0PFQsIEU+KTogcmVzdWx0IGlzIFJlc3VsdEVycm9yPEU+IHtcbiAgcmV0dXJuIHJlc3VsdC5lcnJvciAhPT0gbnVsbDtcbn1cbiIKICBdLAogICJtYXBwaW5ncyI6ICI7QUFnQ08sU0FBUyxZQUFnQyxDQUFDLElBQTJCO0FBQUEsRUFDMUUsSUFBSTtBQUFBLElBQ0YsTUFBTSxPQUFPLEdBQUc7QUFBQSxJQUNoQixPQUFPLEVBQUUsTUFBaUIsT0FBTyxLQUFLO0FBQUEsSUFDdEMsT0FBTyxPQUFPO0FBQUEsSUFDZCxPQUFPLEVBQUUsTUFBTSxNQUFNLE1BQWtCO0FBQUE7QUFBQTtBQW9CM0MsZUFBc0IsUUFBNEIsQ0FBQyxTQUEwQztBQUFBLEVBQzNGLElBQUk7QUFBQSxJQUNGLE1BQU0sT0FBTyxNQUFNO0FBQUEsSUFDbkIsT0FBTyxFQUFFLE1BQWlCLE9BQU8sS0FBSztBQUFBLElBQ3RDLE9BQU8sT0FBTztBQUFBLElBQ2QsT0FBTyxFQUFFLE1BQU0sTUFBTSxNQUFrQjtBQUFBO0FBQUE7QUFrQnBDLFNBQVMsU0FBdUIsQ0FBQyxRQUFrRDtBQUFBLEVBQ3hGLE9BQU8sT0FBTyxVQUFVO0FBQUE7QUFpQm5CLFNBQVMsT0FBcUIsQ0FBQyxRQUFnRDtBQUFBLEVBQ3BGLE9BQU8sT0FBTyxVQUFVO0FBQUE7IiwKICAiZGVidWdJZCI6ICJBQkI1NUNCMzhCNkZEMjE2NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
type ResultSuccess<T> = {
|
|
2
|
+
data: T;
|
|
3
|
+
error: null;
|
|
4
|
+
};
|
|
5
|
+
type ResultError<E> = {
|
|
6
|
+
data: null;
|
|
7
|
+
error: E;
|
|
8
|
+
};
|
|
9
|
+
export type Result<T, E = Error> = ResultSuccess<T> | ResultError<E>;
|
|
2
10
|
export type PromiseResult<T, E> = Promise<Result<T, E>>;
|
|
3
11
|
/**
|
|
4
12
|
* Wraps a synchronous function in a try-catch block and returns a Result tuple containing either the returned value or the caught error
|
|
@@ -9,14 +17,14 @@ export type PromiseResult<T, E> = Promise<Result<T, E>>;
|
|
|
9
17
|
* @returns {Result<T, E>} A tuple containing either [data, undefined] or [undefined, error]
|
|
10
18
|
*
|
|
11
19
|
* @example
|
|
12
|
-
* const
|
|
20
|
+
* const {data, error} = tryCatch(() => someRiskyOperation());
|
|
13
21
|
* if (error) {
|
|
14
22
|
* console.error(error);
|
|
15
23
|
* } else {
|
|
16
24
|
* console.log(data);
|
|
17
25
|
* }
|
|
18
26
|
*/
|
|
19
|
-
export declare function
|
|
27
|
+
export declare function tryCatchSync<T, E extends Error>(fn: () => T): Result<T, E>;
|
|
20
28
|
/**
|
|
21
29
|
* Wraps a Promise in a try-catch block and returns a Result object containing either the resolved data or the caught error
|
|
22
30
|
*
|
|
@@ -26,11 +34,42 @@ export declare function tryCatch<T, E extends Error>(fn: () => T): Result<T, E>;
|
|
|
26
34
|
* @returns {Promise<Result<T, E>>} A Promise that resolves to a Result object containing either the data or error
|
|
27
35
|
*
|
|
28
36
|
* @example
|
|
29
|
-
* const {data, error} = await
|
|
37
|
+
* const {data, error} = await tryCatch(somePromise);
|
|
30
38
|
* if (error) {
|
|
31
39
|
* console.error(result.error);
|
|
32
40
|
* } else {
|
|
33
41
|
* console.log(data);
|
|
34
42
|
* }
|
|
35
43
|
*/
|
|
36
|
-
export declare function
|
|
44
|
+
export declare function tryCatch<T, E extends Error>(promise: Promise<T>): PromiseResult<T, E>;
|
|
45
|
+
/**
|
|
46
|
+
* Type guard to check if a Result object represents a successful operation
|
|
47
|
+
*
|
|
48
|
+
* @template T - The type of the successful result value
|
|
49
|
+
* @template E - The type of the error value, defaults to Error
|
|
50
|
+
* @param {Result<T, E>} result - The Result object to check
|
|
51
|
+
* @returns {result is ResultSuccess<T>} True if the result is successful (error is null), false otherwise
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* const result = tryCatch(() => someOperation());
|
|
55
|
+
* if (isSuccess(result)) {
|
|
56
|
+
* console.log(result.data); // TypeScript knows result.data is T
|
|
57
|
+
* }
|
|
58
|
+
*/
|
|
59
|
+
export declare function isSuccess<T, E = Error>(result: Result<T, E>): result is ResultSuccess<T>;
|
|
60
|
+
/**
|
|
61
|
+
* Type guard to check if a Result object represents a failed operation
|
|
62
|
+
*
|
|
63
|
+
* @template T - The type of the successful result value
|
|
64
|
+
* @template E - The type of the error value, defaults to Error
|
|
65
|
+
* @param {Result<T, E>} result - The Result object to check
|
|
66
|
+
* @returns {result is ResultError<E>} True if the result is an error (error is not null), false otherwise
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* const result = tryCatch(() => someOperation());
|
|
70
|
+
* if (isError(result)) {
|
|
71
|
+
* console.error(result.error); // TypeScript knows result.error is E
|
|
72
|
+
* }
|
|
73
|
+
*/
|
|
74
|
+
export declare function isError<T, E = Error>(result: Result<T, E>): result is ResultError<E>;
|
|
75
|
+
export {};
|