@aws-cdk/toolkit-lib 0.3.3 → 0.3.4
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/api-extractor.json +3 -0
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/actions/bootstrap/private/helpers.js +3 -3
- package/lib/actions/diff/index.d.ts +1 -1
- package/lib/actions/diff/index.js +1 -1
- package/lib/actions/diff/private/helpers.js +8 -8
- package/lib/actions/refactor/index.d.ts +12 -0
- package/lib/actions/refactor/index.js +1 -1
- package/lib/api/aws-auth/awscli-compatible.js +2 -2
- package/lib/api/aws-auth/credential-plugins.js +2 -2
- package/lib/api/aws-auth/sdk-provider.js +2 -2
- package/lib/api/aws-auth/sdk.js +2 -2
- package/lib/api/bootstrap/bootstrap-environment.js +2 -2
- package/lib/api/cloud-assembly/environment.js +1 -1
- package/lib/api/cloud-assembly/index.d.ts +1 -1
- package/lib/api/cloud-assembly/index.js +3 -2
- package/lib/api/cloud-assembly/private/context-aware-source.js +3 -3
- package/lib/api/cloud-assembly/private/exec.js +3 -3
- package/lib/api/cloud-assembly/private/prepare-source.js +4 -4
- package/lib/api/cloud-assembly/private/source-builder.d.ts +10 -8
- package/lib/api/cloud-assembly/private/source-builder.js +36 -19
- package/lib/api/cloud-assembly/private/stack-assembly.js +7 -7
- package/lib/api/cloud-assembly/source-builder.d.ts +19 -0
- package/lib/api/cloud-assembly/source-builder.js +1 -1
- package/lib/api/cloud-assembly/stack-collection.js +2 -2
- package/lib/api/cloudformation/evaluate-cloudformation-template.d.ts +1 -1
- package/lib/api/cloudformation/evaluate-cloudformation-template.js +2 -2
- package/lib/api/cloudformation/stack-helpers.js +2 -2
- package/lib/api/cloudformation/template-body-parameter.js +2 -2
- package/lib/api/context.js +2 -2
- package/lib/api/deployments/asset-publishing.js +2 -2
- package/lib/api/deployments/assets.js +5 -6
- package/lib/api/deployments/cfn-api.js +3 -3
- package/lib/api/deployments/checks.js +2 -2
- package/lib/api/deployments/deploy-stack.js +2 -2
- package/lib/api/deployments/deployment-result.js +2 -2
- package/lib/api/deployments/deployments.js +3 -3
- package/lib/api/diff/diff-formatter.js +2 -2
- package/lib/api/environment/environment-access.js +2 -2
- package/lib/api/environment/environment-resources.js +2 -2
- package/lib/api/environment/placeholders.js +1 -1
- package/lib/api/garbage-collection/garbage-collector.js +2 -2
- package/lib/api/garbage-collection/progress-printer.js +2 -2
- package/lib/api/garbage-collection/stack-refresh.js +2 -2
- package/lib/api/hotswap/appsync-mapping-templates.js +2 -2
- package/lib/api/hotswap/common.js +2 -2
- package/lib/api/hotswap/hotswap-deployments.js +2 -2
- package/lib/api/hotswap/lambda-functions.js +2 -2
- package/lib/api/index.d.ts +0 -1
- package/lib/api/index.js +1 -2
- package/lib/api/io/private/level-priority.js +1 -1
- package/lib/api/io/private/sdk-logger.d.ts +1 -1
- package/lib/api/io/private/sdk-logger.js +6 -6
- package/lib/api/io/private/span.js +1 -1
- package/lib/api/logs-monitor/logs-monitor.js +2 -2
- package/lib/api/notices/cached-data-source.d.ts +13 -0
- package/lib/api/notices/cached-data-source.js +77 -0
- package/lib/api/notices/filter.d.ts +59 -0
- package/lib/api/notices/filter.js +189 -0
- package/lib/api/notices/index.d.ts +1 -0
- package/lib/api/notices/index.js +18 -0
- package/lib/api/notices/notices.d.ts +111 -0
- package/lib/api/notices/notices.js +131 -0
- package/lib/api/notices/types.d.ts +37 -0
- package/lib/api/notices/types.js +3 -0
- package/lib/api/notices/web-data-source.d.ts +9 -0
- package/lib/api/notices/web-data-source.js +70 -0
- package/lib/api/plugin/context-provider-plugin.js +1 -1
- package/lib/api/plugin/plugin.d.ts +0 -2
- package/lib/api/plugin/plugin.js +4 -9
- package/lib/api/refactoring/cloudformation.d.ts +23 -0
- package/lib/api/refactoring/cloudformation.js +54 -1
- package/lib/api/refactoring/exclude.d.ts +29 -0
- package/lib/api/refactoring/exclude.js +94 -0
- package/lib/api/refactoring/index.d.ts +4 -23
- package/lib/api/refactoring/index.js +28 -60
- package/lib/api/resource-import/importer.js +2 -2
- package/lib/api/rwlock.js +2 -2
- package/lib/api/settings.js +2 -2
- package/lib/api/shared-private.js +31 -6186
- package/lib/api/toolkit-info.js +2 -2
- package/lib/api/work-graph/work-graph-builder.js +3 -3
- package/lib/api/work-graph/work-graph.js +2 -2
- package/lib/context-providers/ami.js +2 -2
- package/lib/context-providers/cc-api-provider.js +2 -2
- package/lib/context-providers/hosted-zones.js +2 -2
- package/lib/context-providers/index.js +4 -4
- package/lib/context-providers/keys.js +2 -2
- package/lib/context-providers/load-balancers.js +2 -2
- package/lib/context-providers/security-groups.js +2 -2
- package/lib/context-providers/ssm-parameters.js +2 -2
- package/lib/context-providers/vpcs.js +3 -3
- package/lib/index.d.ts +3 -1
- package/lib/index.js +4 -2
- package/lib/index_bg.wasm +0 -0
- package/lib/payloads/deploy.d.ts +7 -0
- package/lib/payloads/deploy.js +1 -1
- package/lib/payloads/hotswap.d.ts +1 -0
- package/lib/payloads/hotswap.js +1 -1
- package/lib/private/activity-printer/base.js +1 -1
- package/lib/toolkit/non-interactive-io-host.js +5 -4
- package/lib/toolkit/toolkit.d.ts +2 -2
- package/lib/toolkit/toolkit.js +40 -27
- package/lib/util/directories.js +2 -2
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.js +2 -1
- package/lib/util/json.js +1 -1
- package/lib/util/net.d.ts +9 -0
- package/lib/util/net.js +60 -0
- package/lib/util/objects.js +2 -2
- package/lib/util/types.js +1 -1
- package/lib/util/version-range.js +2 -2
- package/package.json +25 -26
- package/tsdoc.json +15 -0
- package/lib/api/notices.d.ts +0 -210
- package/lib/api/notices.js +0 -430
- package/lib/api/shared-private.js.map +0 -7
- package/lib/api/shared-public.d.ts +0 -2139
- package/lib/api/shared-public.js +0 -3272
- package/lib/api/shared-public.js.map +0 -7
- package/lib/private/util.d.ts +0 -1
- package/lib/private/util.js +0 -787
- package/lib/private/util.js.map +0 -7
- /package/lib/{api → toolkit}/toolkit-error.d.ts +0 -0
- /package/lib/{api → toolkit}/toolkit-error.js +0 -0
package/lib/util/directories.js
CHANGED
|
@@ -6,7 +6,7 @@ exports.bundledPackageRootDir = bundledPackageRootDir;
|
|
|
6
6
|
const fs = require("fs");
|
|
7
7
|
const os = require("os");
|
|
8
8
|
const path = require("path");
|
|
9
|
-
const toolkit_error_1 = require("../
|
|
9
|
+
const toolkit_error_1 = require("../toolkit/toolkit-error");
|
|
10
10
|
/**
|
|
11
11
|
* Return a location that will be used as the CDK home directory.
|
|
12
12
|
* Currently the only thing that is placed here is the cache.
|
|
@@ -56,4 +56,4 @@ function bundledPackageRootDir(start, fail) {
|
|
|
56
56
|
}
|
|
57
57
|
return _rootDir(start);
|
|
58
58
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0b3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXJlY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdCQSxnQ0FpQkM7QUFFRCxrQ0FFQztBQVdELHNEQWdCQztBQWhFRCx5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3Qiw0REFBd0Q7QUFFeEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLFVBQVU7SUFDeEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1QyxJQUFJLElBQUksQ0FBQztJQUNULElBQUksQ0FBQztRQUNILElBQUksWUFBWSxHQUF1QixFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQzdELDhEQUE4RDtRQUM5RCxxQkFBcUIsQ0FBQyxtQ0FBbUM7UUFDekQsSUFBSSxZQUFZLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDO1FBQ0Qsb0JBQW9CO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFBQyxNQUFNLENBQUM7SUFDVCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7UUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDcEMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQWdCLFdBQVc7SUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFXRCxTQUFnQixxQkFBcUIsQ0FBQyxLQUFhLEVBQUUsSUFBYztJQUNqRSxTQUFTLFFBQVEsQ0FBQyxPQUFlO1FBQy9CLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDdEMsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuLyoqXG4gKiBSZXR1cm4gYSBsb2NhdGlvbiB0aGF0IHdpbGwgYmUgdXNlZCBhcyB0aGUgQ0RLIGhvbWUgZGlyZWN0b3J5LlxuICogQ3VycmVudGx5IHRoZSBvbmx5IHRoaW5nIHRoYXQgaXMgcGxhY2VkIGhlcmUgaXMgdGhlIGNhY2hlLlxuICpcbiAqIEZpcnN0IHRyeSB0byB1c2UgdGhlIHVzZXJzIGhvbWUgZGlyZWN0b3J5IChpLmUuIC9ob21lL3NvbWV1c2VyLyksXG4gKiBidXQgaWYgdGhhdCBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QgZm9yIHNvbWUgcmVhc29uIGNyZWF0ZSBhIHRtcCBkaXJlY3RvcnkuXG4gKlxuICogVHlwaWNhbGx5IGl0IHdvdWxkbid0IG1ha2Ugc2Vuc2UgdG8gY3JlYXRlIGEgb25lIHRpbWUgdXNlIHRtcCBkaXJlY3RvcnkgZm9yXG4gKiB0aGUgcHVycG9zZSBvZiBjcmVhdGluZyBhIGNhY2hlLCBidXQgc2luY2UgdGhpcyBvbmx5IGFwcGxpZXMgdG8gdXNlcnMgdGhhdCBkb1xuICogbm90IGhhdmUgYSBob21lIGRpcmVjdG9yeSAoc29tZSBDSSBzeXN0ZW1zPykgdGhpcyBzaG91bGQgYmUgZmluZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNka0hvbWVEaXIoKSB7XG4gIGNvbnN0IHRtcERpciA9IGZzLnJlYWxwYXRoU3luYyhvcy50bXBkaXIoKSk7XG4gIGxldCBob21lO1xuICB0cnkge1xuICAgIGxldCB1c2VySW5mb0hvbWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG9zLnVzZXJJbmZvKCkuaG9tZWRpcjtcbiAgICAvLyBOb2RlIHJldHVybnMgdGhpcyBpZiB0aGUgdXNlciBkb2Vzbid0IGhhdmUgYSBob21lIGRpcmVjdG9yeVxuICAgIC8qIGM4IGlnbm9yZSBzdGFydCAqLyAvLyB3aWxsIG5vdCBoYXBwZW4gaW4gbm9ybWFsIHNldHVwc1xuICAgIGlmICh1c2VySW5mb0hvbWUgPT0gJy92YXIvZW1wdHknKSB7XG4gICAgICB1c2VySW5mb0hvbWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8qIGM4IGlnbm9yZSBzdG9wICovXG4gICAgaG9tZSA9IHBhdGguam9pbigodXNlckluZm9Ib21lID8/IG9zLmhvbWVkaXIoKSkudHJpbSgpLCAnLmNkaycpO1xuICB9IGNhdGNoIHtcbiAgfVxuICByZXR1cm4gcHJvY2Vzcy5lbnYuQ0RLX0hPTUVcbiAgICA/IHBhdGgucmVzb2x2ZShwcm9jZXNzLmVudi5DREtfSE9NRSlcbiAgICA6IGhvbWUgfHwgZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKHRtcERpciwgJy5jZGsnKSkudHJpbSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2RrQ2FjaGVEaXIoKSB7XG4gIHJldHVybiBwYXRoLmpvaW4oY2RrSG9tZURpcigpLCAnY2FjaGUnKTtcbn1cblxuLyoqXG4gKiBGcm9tIHRoZSBzdGFydCBsb2NhdGlvbiwgZmluZCB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGhlIGJ1bmRsZWQgcGFja2FnZSdzIHBhY2thZ2UuanNvblxuICpcbiAqIFlvdSBtdXN0IGFzc3VtZSB0aGUgY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24gd2lsbCBiZSBidW5kbGVkIGFuZCB0aGUgcGFja2FnZSByb290IGRpclxuICogaXMgbm90IGdvaW5nIHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBwYWNrYWdlIHRoZSBjYWxsZXIgY3VycmVudGx5IGxpdmVzIGluLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVuZGxlZFBhY2thZ2VSb290RGlyKHN0YXJ0OiBzdHJpbmcpOiBzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gYnVuZGxlZFBhY2thZ2VSb290RGlyKHN0YXJ0OiBzdHJpbmcsIGZhaWw6IHRydWUpOiBzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gYnVuZGxlZFBhY2thZ2VSb290RGlyKHN0YXJ0OiBzdHJpbmcsIGZhaWw6IGZhbHNlKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIGJ1bmRsZWRQYWNrYWdlUm9vdERpcihzdGFydDogc3RyaW5nLCBmYWlsPzogYm9vbGVhbikge1xuICBmdW5jdGlvbiBfcm9vdERpcihkaXJuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1hbmlmZXN0UGF0aCA9IHBhdGguam9pbihkaXJuYW1lLCAncGFja2FnZS5qc29uJyk7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMobWFuaWZlc3RQYXRoKSkge1xuICAgICAgcmV0dXJuIGRpcm5hbWU7XG4gICAgfVxuICAgIGlmIChwYXRoLmRpcm5hbWUoZGlybmFtZSkgPT09IGRpcm5hbWUpIHtcbiAgICAgIGlmIChmYWlsID8/IHRydWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5hYmxlIHRvIGZpbmQgcGFja2FnZSBtYW5pZmVzdCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIF9yb290RGlyKHBhdGguZGlybmFtZShkaXJuYW1lKSk7XG4gIH1cblxuICByZXR1cm4gX3Jvb3REaXIoc3RhcnQpO1xufVxuIl19
|
package/lib/util/index.d.ts
CHANGED
package/lib/util/index.js
CHANGED
|
@@ -23,6 +23,7 @@ __exportStar(require("./content-hash"), exports);
|
|
|
23
23
|
__exportStar(require("./directories"), exports);
|
|
24
24
|
__exportStar(require("./format-error"), exports);
|
|
25
25
|
__exportStar(require("./json"), exports);
|
|
26
|
+
__exportStar(require("./net"), exports);
|
|
26
27
|
__exportStar(require("./objects"), exports);
|
|
27
28
|
__exportStar(require("./parallel"), exports);
|
|
28
29
|
__exportStar(require("./package-info"), exports);
|
|
@@ -32,4 +33,4 @@ __exportStar(require("./type-brands"), exports);
|
|
|
32
33
|
__exportStar(require("./types"), exports);
|
|
33
34
|
__exportStar(require("./version-range"), exports);
|
|
34
35
|
__exportStar(require("./yaml-cfn"), exports);
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsMENBQXdCO0FBQ3hCLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0IsZ0RBQThCO0FBQzlCLGlEQUErQjtBQUMvQix5Q0FBdUI7QUFDdkIsd0NBQXNCO0FBQ3RCLDRDQUEwQjtBQUMxQiw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLDhDQUE0QjtBQUM1Qix3REFBc0M7QUFDdEMsZ0RBQThCO0FBQzlCLDBDQUF3QjtBQUN4QixrREFBZ0M7QUFDaEMsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcmNoaXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYXJyYXlzJztcbmV4cG9ydCAqIGZyb20gJy4vYm9vbCc7XG5leHBvcnQgKiBmcm9tICcuL2J5dGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xvdWRmb3JtYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LWhhc2gnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rvcmllcyc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm1hdC1lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2pzb24nO1xuZXhwb3J0ICogZnJvbSAnLi9uZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3RzJztcbmV4cG9ydCAqIGZyb20gJy4vcGFyYWxsZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWNrYWdlLWluZm8nO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJpYWxpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJpbmctbWFuaXB1bGF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZS1icmFuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3ZlcnNpb24tcmFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi95YW1sLWNmbic7XG4iXX0=
|
package/lib/util/json.js
CHANGED
|
@@ -65,4 +65,4 @@ function findJsonValue(jsonObject, path) {
|
|
|
65
65
|
});
|
|
66
66
|
return obj;
|
|
67
67
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1QkEsb0NBT0M7QUF1QkQsc0NBVUM7QUEvREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxTQUFnQixZQUFZLENBQUMsVUFBZSxFQUFFLFVBQWtCLEVBQUUsa0JBQTRCO0lBQzVGLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNwQixrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4RCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLFVBQWUsRUFBRSxJQUFZO0lBQ3pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDO0lBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNiLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxTQUFTLENBQUMscUJBQXFCLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGdldHMgdGhlIHZhbHVlcyBvZiB0aGUganNvbk9iamVjdCBhdCB0aGUgcGF0aHMgc3BlY2lmaWVkIGluIHByb3BlcnRpZXNUb1JldHVybi5cbiAqXG4gKiBGb3IgZXhhbXBsZSwganNvbk9iamVjdCA9IHtcbiAqICAga2V5MTogJ2FiYycsXG4gKiAgIGtleTI6IHtcbiAqICAgICBmb286ICdxd2VydHknLFxuICogICAgIGJhcjogJ2RhdGEnLFxuICogICB9XG4gKiB9XG4gKlxuICogcHJvcGVydGllc1RvUmV0dXJuID0gWydrZXkxJywgJ2tleTIuZm9vJ107XG4gKlxuICogVGhlIHJldHVybmVkIG9iamVjdCBpczpcbiAqXG4gKiBgYGBcbiAqIHtcbiAqICAga2V5MTogJ2FiYycsXG4gKiAgICdrZXkyLmZvbyc6ICdxd2VydHknLFxuICogICBJZGVudGlmaWVyOiBpZGVudGlmaWVyXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc3VsdE9iaihqc29uT2JqZWN0OiBhbnksIGlkZW50aWZpZXI6IHN0cmluZywgcHJvcGVydGllc1RvUmV0dXJuOiBzdHJpbmdbXSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICBjb25zdCBwcm9wc09iaiA9IHt9O1xuICBwcm9wZXJ0aWVzVG9SZXR1cm4uZm9yRWFjaCgocHJvcE5hbWUpID0+IHtcbiAgICBPYmplY3QuYXNzaWduKHByb3BzT2JqLCB7IFtwcm9wTmFtZV06IGZpbmRKc29uVmFsdWUoanNvbk9iamVjdCwgcHJvcE5hbWUpIH0pO1xuICB9KTtcbiAgT2JqZWN0LmFzc2lnbihwcm9wc09iaiwgeyBbJ0lkZW50aWZpZXInXTogaWRlbnRpZmllciB9KTtcbiAgcmV0dXJuIHByb3BzT2JqO1xufVxuXG4vKipcbiAqIFRoaXMgZmluZHMgdGhlIHZhbHVlIG9mIHRoZSBqc29uT2JqZWN0IGF0IHRoZSBwYXRoLiAgUGF0aCBpcyBkZWxpbWl0ZWQgYnkgJy4nLlxuICpcbiAqIEZvciBleGFtcGxlLCBqc29uT2JqZWN0ID0ge1xuICogICBrZXkxOiAnYWJjJyxcbiAqICAga2V5Mjoge1xuICogICAgIGZvbzogJ3F3ZXJ0eScsXG4gKiAgICAgYmFyOiAnZGF0YScsXG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBJZiBwYXRoIGlzICdrZXkxJywgdGhlbiBpdCB3aWxsIHJldHVybiAnYWJjJy5cbiAqIElmIHBhdGggaXMgJ2tleTIuZm9vJywgdGhlbiBpdCB3aWxsIHJldHVybiAncXdlcnR5Jy5cbiAqIElmIHBhdGggaXMgJ2tleTInLCB0aGVuIGl0IHdpbGwgcmV0dXJuIHRoZSBvYmplY3Q6XG4gKiB7XG4gKiAgIGZvbzogJ3F3ZXJ0eScsXG4gKiAgIGJhcjogJ2RhdGEnLFxuICogfVxuICpcbiAqIElmIHRoZSBwYXRoIGlzIG5vdCBmb3VuZCwgYW4gRXJyb3Igd2lsbCBiZSB0aHJvd24gc3RhdGluZyB3aGljaCB0b2tlbiBpcyBtaXNzaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEpzb25WYWx1ZShqc29uT2JqZWN0OiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IHBhdGhzID0gcGF0aC5zcGxpdCgnLicpO1xuICBsZXQgb2JqID0ganNvbk9iamVjdDtcbiAgcGF0aHMuZm9yRWFjaChwID0+IHtcbiAgICBvYmogPSBvYmpbcF07XG4gICAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBDYW5ub3QgcmVhZCBmaWVsZCAke3BhdGh9LiAke3B9IGlzIG5vdCBmb3VuZC5gKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb2JqO1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a human-readable error message for a network error
|
|
3
|
+
* @param error The network error object
|
|
4
|
+
*/
|
|
5
|
+
export declare function humanNetworkError(error: NodeJS.ErrnoException): string;
|
|
6
|
+
/**
|
|
7
|
+
* Get a human-readable error message for a HTTP status code
|
|
8
|
+
*/
|
|
9
|
+
export declare function humanHttpStatusError(statusCode: number): string;
|
package/lib/util/net.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.humanNetworkError = humanNetworkError;
|
|
4
|
+
exports.humanHttpStatusError = humanHttpStatusError;
|
|
5
|
+
/**
|
|
6
|
+
* Get a human-readable error message for a network error
|
|
7
|
+
* @param error The network error object
|
|
8
|
+
*/
|
|
9
|
+
function humanNetworkError(error) {
|
|
10
|
+
switch (error.code) {
|
|
11
|
+
case 'ENOTFOUND':
|
|
12
|
+
return `Cannot reach the server. Please check your internet connection or the URL (${error.hostname}).`;
|
|
13
|
+
case 'ECONNREFUSED':
|
|
14
|
+
return `Connection refused. The server at ${error.address}:${error.port} is not accepting connections.`;
|
|
15
|
+
case 'ECONNRESET':
|
|
16
|
+
return 'Connection was suddenly closed by the server. Please try again later.';
|
|
17
|
+
case 'ETIMEDOUT':
|
|
18
|
+
return 'Connection timed out. The server took too long to respond.';
|
|
19
|
+
case 'CERT_HAS_EXPIRED':
|
|
20
|
+
return 'The SSL certificate of the server has expired. This could be a security risk.';
|
|
21
|
+
case 'UNABLE_TO_VERIFY_LEAF_SIGNATURE':
|
|
22
|
+
case 'CERT_SIGNATURE_FAILURE':
|
|
23
|
+
case 'ERR_TLS_CERT_ALTNAME_INVALID':
|
|
24
|
+
return 'SSL certificate validation failed. This could indicate a security issue or a misconfigured server.';
|
|
25
|
+
default:
|
|
26
|
+
return `Network error: ${error.message || error.code || 'Unknown error'}`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get a human-readable error message for a HTTP status code
|
|
31
|
+
*/
|
|
32
|
+
function humanHttpStatusError(statusCode) {
|
|
33
|
+
switch (statusCode) {
|
|
34
|
+
case 400:
|
|
35
|
+
return 'Bad request - the server could not understand the request';
|
|
36
|
+
case 401:
|
|
37
|
+
return 'Unauthorized - authentication is required';
|
|
38
|
+
case 403:
|
|
39
|
+
return 'Forbidden - you do not have permission to access this resource';
|
|
40
|
+
case 404:
|
|
41
|
+
return 'Not found - the requested resource does not exist';
|
|
42
|
+
case 408:
|
|
43
|
+
return 'Request timeout - the server timed out waiting for the request';
|
|
44
|
+
case 429:
|
|
45
|
+
return 'Too many requests - you have sent too many requests in a given amount of time';
|
|
46
|
+
case 500:
|
|
47
|
+
return 'Internal server error - something went wrong on the server';
|
|
48
|
+
case 502:
|
|
49
|
+
return 'Bad gateway - the server received an invalid response from an upstream server';
|
|
50
|
+
case 503:
|
|
51
|
+
return 'Service unavailable - the server is temporarily unable to handle the request';
|
|
52
|
+
case 504:
|
|
53
|
+
return 'Gateway timeout - the server did not receive a timely response from an upstream server';
|
|
54
|
+
default:
|
|
55
|
+
return statusCode >= 500
|
|
56
|
+
? 'Server error - something went wrong on the server'
|
|
57
|
+
: 'Client error - something went wrong with the request';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsOENBbUJDO0FBS0Qsb0RBMkJDO0FBdkREOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEtBQTRCO0lBQzVELFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLEtBQUssV0FBVztZQUNkLE9BQU8sOEVBQStFLEtBQWEsQ0FBQyxRQUFRLElBQUksQ0FBQztRQUNuSCxLQUFLLGNBQWM7WUFDakIsT0FBTyxxQ0FBc0MsS0FBYSxDQUFDLE9BQU8sSUFBSyxLQUFhLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQztRQUM1SCxLQUFLLFlBQVk7WUFDZixPQUFPLHVFQUF1RSxDQUFDO1FBQ2pGLEtBQUssV0FBVztZQUNkLE9BQU8sNERBQTRELENBQUM7UUFDdEUsS0FBSyxrQkFBa0I7WUFDckIsT0FBTywrRUFBK0UsQ0FBQztRQUN6RixLQUFLLGlDQUFpQyxDQUFDO1FBQ3ZDLEtBQUssd0JBQXdCLENBQUM7UUFDOUIsS0FBSyw4QkFBOEI7WUFDakMsT0FBTyxvR0FBb0csQ0FBQztRQUM5RztZQUNFLE9BQU8sa0JBQWtCLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsVUFBa0I7SUFDckQsUUFBUSxVQUFVLEVBQUUsQ0FBQztRQUNuQixLQUFLLEdBQUc7WUFDTixPQUFPLDJEQUEyRCxDQUFDO1FBQ3JFLEtBQUssR0FBRztZQUNOLE9BQU8sMkNBQTJDLENBQUM7UUFDckQsS0FBSyxHQUFHO1lBQ04sT0FBTyxnRUFBZ0UsQ0FBQztRQUMxRSxLQUFLLEdBQUc7WUFDTixPQUFPLG1EQUFtRCxDQUFDO1FBQzdELEtBQUssR0FBRztZQUNOLE9BQU8sZ0VBQWdFLENBQUM7UUFDMUUsS0FBSyxHQUFHO1lBQ04sT0FBTywrRUFBK0UsQ0FBQztRQUN6RixLQUFLLEdBQUc7WUFDTixPQUFPLDREQUE0RCxDQUFDO1FBQ3RFLEtBQUssR0FBRztZQUNOLE9BQU8sK0VBQStFLENBQUM7UUFDekYsS0FBSyxHQUFHO1lBQ04sT0FBTyw4RUFBOEUsQ0FBQztRQUN4RixLQUFLLEdBQUc7WUFDTixPQUFPLHdGQUF3RixDQUFDO1FBQ2xHO1lBQ0UsT0FBTyxVQUFVLElBQUksR0FBRztnQkFDdEIsQ0FBQyxDQUFDLG1EQUFtRDtnQkFDckQsQ0FBQyxDQUFDLHNEQUFzRCxDQUFDO0lBQy9ELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgYSBodW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlIGZvciBhIG5ldHdvcmsgZXJyb3JcbiAqIEBwYXJhbSBlcnJvciBUaGUgbmV0d29yayBlcnJvciBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGh1bWFuTmV0d29ya0Vycm9yKGVycm9yOiBOb2RlSlMuRXJybm9FeGNlcHRpb24pOiBzdHJpbmcge1xuICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICBjYXNlICdFTk9URk9VTkQnOlxuICAgICAgcmV0dXJuIGBDYW5ub3QgcmVhY2ggdGhlIHNlcnZlci4gUGxlYXNlIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiBvciB0aGUgVVJMICgkeyhlcnJvciBhcyBhbnkpLmhvc3RuYW1lfSkuYDtcbiAgICBjYXNlICdFQ09OTlJFRlVTRUQnOlxuICAgICAgcmV0dXJuIGBDb25uZWN0aW9uIHJlZnVzZWQuIFRoZSBzZXJ2ZXIgYXQgJHsoZXJyb3IgYXMgYW55KS5hZGRyZXNzfTokeyhlcnJvciBhcyBhbnkpLnBvcnR9IGlzIG5vdCBhY2NlcHRpbmcgY29ubmVjdGlvbnMuYDtcbiAgICBjYXNlICdFQ09OTlJFU0VUJzpcbiAgICAgIHJldHVybiAnQ29ubmVjdGlvbiB3YXMgc3VkZGVubHkgY2xvc2VkIGJ5IHRoZSBzZXJ2ZXIuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICBjYXNlICdFVElNRURPVVQnOlxuICAgICAgcmV0dXJuICdDb25uZWN0aW9uIHRpbWVkIG91dC4gVGhlIHNlcnZlciB0b29rIHRvbyBsb25nIHRvIHJlc3BvbmQuJztcbiAgICBjYXNlICdDRVJUX0hBU19FWFBJUkVEJzpcbiAgICAgIHJldHVybiAnVGhlIFNTTCBjZXJ0aWZpY2F0ZSBvZiB0aGUgc2VydmVyIGhhcyBleHBpcmVkLiBUaGlzIGNvdWxkIGJlIGEgc2VjdXJpdHkgcmlzay4nO1xuICAgIGNhc2UgJ1VOQUJMRV9UT19WRVJJRllfTEVBRl9TSUdOQVRVUkUnOlxuICAgIGNhc2UgJ0NFUlRfU0lHTkFUVVJFX0ZBSUxVUkUnOlxuICAgIGNhc2UgJ0VSUl9UTFNfQ0VSVF9BTFROQU1FX0lOVkFMSUQnOlxuICAgICAgcmV0dXJuICdTU0wgY2VydGlmaWNhdGUgdmFsaWRhdGlvbiBmYWlsZWQuIFRoaXMgY291bGQgaW5kaWNhdGUgYSBzZWN1cml0eSBpc3N1ZSBvciBhIG1pc2NvbmZpZ3VyZWQgc2VydmVyLic7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBgTmV0d29yayBlcnJvcjogJHtlcnJvci5tZXNzYWdlIHx8IGVycm9yLmNvZGUgfHwgJ1Vua25vd24gZXJyb3InfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgYSBodW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlIGZvciBhIEhUVFAgc3RhdHVzIGNvZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGh1bWFuSHR0cFN0YXR1c0Vycm9yKHN0YXR1c0NvZGU6IG51bWJlcik6IHN0cmluZyB7XG4gIHN3aXRjaCAoc3RhdHVzQ29kZSkge1xuICAgIGNhc2UgNDAwOlxuICAgICAgcmV0dXJuICdCYWQgcmVxdWVzdCAtIHRoZSBzZXJ2ZXIgY291bGQgbm90IHVuZGVyc3RhbmQgdGhlIHJlcXVlc3QnO1xuICAgIGNhc2UgNDAxOlxuICAgICAgcmV0dXJuICdVbmF1dGhvcml6ZWQgLSBhdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZCc7XG4gICAgY2FzZSA0MDM6XG4gICAgICByZXR1cm4gJ0ZvcmJpZGRlbiAtIHlvdSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlJztcbiAgICBjYXNlIDQwNDpcbiAgICAgIHJldHVybiAnTm90IGZvdW5kIC0gdGhlIHJlcXVlc3RlZCByZXNvdXJjZSBkb2VzIG5vdCBleGlzdCc7XG4gICAgY2FzZSA0MDg6XG4gICAgICByZXR1cm4gJ1JlcXVlc3QgdGltZW91dCAtIHRoZSBzZXJ2ZXIgdGltZWQgb3V0IHdhaXRpbmcgZm9yIHRoZSByZXF1ZXN0JztcbiAgICBjYXNlIDQyOTpcbiAgICAgIHJldHVybiAnVG9vIG1hbnkgcmVxdWVzdHMgLSB5b3UgaGF2ZSBzZW50IHRvbyBtYW55IHJlcXVlc3RzIGluIGEgZ2l2ZW4gYW1vdW50IG9mIHRpbWUnO1xuICAgIGNhc2UgNTAwOlxuICAgICAgcmV0dXJuICdJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IgLSBzb21ldGhpbmcgd2VudCB3cm9uZyBvbiB0aGUgc2VydmVyJztcbiAgICBjYXNlIDUwMjpcbiAgICAgIHJldHVybiAnQmFkIGdhdGV3YXkgLSB0aGUgc2VydmVyIHJlY2VpdmVkIGFuIGludmFsaWQgcmVzcG9uc2UgZnJvbSBhbiB1cHN0cmVhbSBzZXJ2ZXInO1xuICAgIGNhc2UgNTAzOlxuICAgICAgcmV0dXJuICdTZXJ2aWNlIHVuYXZhaWxhYmxlIC0gdGhlIHNlcnZlciBpcyB0ZW1wb3JhcmlseSB1bmFibGUgdG8gaGFuZGxlIHRoZSByZXF1ZXN0JztcbiAgICBjYXNlIDUwNDpcbiAgICAgIHJldHVybiAnR2F0ZXdheSB0aW1lb3V0IC0gdGhlIHNlcnZlciBkaWQgbm90IHJlY2VpdmUgYSB0aW1lbHkgcmVzcG9uc2UgZnJvbSBhbiB1cHN0cmVhbSBzZXJ2ZXInO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdHVzQ29kZSA+PSA1MDBcbiAgICAgICAgPyAnU2VydmVyIGVycm9yIC0gc29tZXRoaW5nIHdlbnQgd3Jvbmcgb24gdGhlIHNlcnZlcidcbiAgICAgICAgOiAnQ2xpZW50IGVycm9yIC0gc29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCB0aGUgcmVxdWVzdCc7XG4gIH1cbn1cbiJdfQ==
|
package/lib/util/objects.js
CHANGED
|
@@ -11,7 +11,7 @@ exports.deepMerge = deepMerge;
|
|
|
11
11
|
exports.splitBySize = splitBySize;
|
|
12
12
|
exports.transformObjectKeys = transformObjectKeys;
|
|
13
13
|
const types_1 = require("./types");
|
|
14
|
-
const toolkit_error_1 = require("../
|
|
14
|
+
const toolkit_error_1 = require("../toolkit/toolkit-error");
|
|
15
15
|
/**
|
|
16
16
|
* Return a new object by adding missing keys into another object
|
|
17
17
|
*/
|
|
@@ -227,4 +227,4 @@ function transformObjectKeys(val, transform, exclude = {}) {
|
|
|
227
227
|
}
|
|
228
228
|
return ret;
|
|
229
229
|
}
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm9iamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxzQ0FVQztBQUtELDBCQVFDO0FBT0QsOEJBY0M7QUFLRCw4QkFNQztBQUtELGdDQU1DO0FBUUQsMEJBUUM7QUFPRCwwQkFtQ0M7QUFvQkQsOEJBNkJDO0FBUUQsa0NBNEJDO0FBWUQsa0RBb0JDO0FBdlBELG1DQUE0QztBQUM1Qyx3REFBb0Q7QUFFcEQ7O0dBRUc7QUFDSCxTQUFnQixhQUFhLENBQUMsSUFBUyxFQUFFLFFBQWE7SUFDcEQsTUFBTSxNQUFNLEdBQVEsRUFBRyxDQUFDO0lBRXhCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7U0FDM0IsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxDQUFNO0lBQzVCLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxJQUFBLGVBQU8sRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxD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UUFBUSxFQUFFLENBQUM7UUFDM0MsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsMkRBQTJEO1FBQzNELHNGQUFzRjtRQUN0RixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQXlCLEVBQUUsQ0FBQztJQUNyQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMxQixvRUFBb0U7WUFDcEUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPYmogfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzQXJyYXksIGlzT2JqZWN0IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi9hcGkvdG9vbGtpdC1lcnJvcic7XG5cbi8qKlxuICogUmV0dXJuIGEgbmV3IG9iamVjdCBieSBhZGRpbmcgbWlzc2luZyBrZXlzIGludG8gYW5vdGhlciBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5RGVmYXVsdHMoaGFzaDogYW55LCBkZWZhdWx0czogYW55KSB7XG4gIGNvbnN0IHJlc3VsdDogYW55ID0geyB9O1xuXG4gIE9iamVjdC5rZXlzKGhhc2gpLmZvckVhY2goayA9PiByZXN1bHRba10gPSBoYXNoW2tdKTtcblxuICBPYmplY3Qua2V5cyhkZWZhdWx0cylcbiAgICAuZmlsdGVyKGsgPT4gIShrIGluIHJlc3VsdCkpXG4gICAgLmZvckVhY2goayA9PiByZXN1bHRba10gPSBkZWZhdWx0c1trXSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gcGFyYW1ldGVyIGlzIGFuIGVtcHR5IG9iamVjdCBvciBlbXB0eSBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eSh4OiBhbnkpIHtcbiAgaWYgKHggPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoaXNBcnJheSh4KSkge1xuICAgIHJldHVybiB4Lmxlbmd0aCA9PT0gMDtcbiAgfVxuICByZXR1cm4gT2JqZWN0LmtleXMoeCkubGVuZ3RoID09PSAwO1xufVxuXG4vKipcbiAqIERlZXAgY2xvbmUgYSB0cmVlIG9mIG9iamVjdHMsIGxpc3RzIG9yIHNjYWxhcnNcbiAqXG4gKiBEb2VzIG5vdCBzdXBwb3J0IGN5Y2xlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBDbG9uZSh4OiBhbnkpOiBhbnkge1xuICBpZiAodHlwZW9mIHggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAoeCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmIChpc0FycmF5KHgpKSB7XG4gICAgcmV0dXJuIHgubWFwKGRlZXBDbG9uZSk7XG4gIH1cbiAgaWYgKGlzT2JqZWN0KHgpKSB7XG4gICAgcmV0dXJuIG1ha2VPYmplY3QobWFwT2JqZWN0KHgsIChrLCB2KSA9PiBbaywgZGVlcENsb25lKHYpXSBhcyBbc3RyaW5nLCBhbnldKSk7XG4gIH1cbiAgcmV0dXJuIHg7XG59XG5cbi8qKlxuICogTWFwIG92ZXIgYW4gb2JqZWN0LCB0cmVhdGluZyBpdCBhcyBhIGRpY3Rpb25hcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcE9iamVjdDxULCBVPih4OiBPYmo8VD4sIGZuOiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKSA9PiBVKTogVVtdIHtcbiAgY29uc3QgcmV0OiBVW10gPSBbXTtcbiAgT2JqZWN0LmtleXMoeCkuZm9yRWFjaChrZXkgPT4ge1xuICAgIHJldC5wdXNoKGZuKGtleSwgeFtrZXldKSk7XG4gIH0pO1xuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIENvbnN0cnVjdCBhbiBvYmplY3QgZnJvbSBhIGxpc3Qgb2YgKGssIHYpIHBhaXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlT2JqZWN0PFQ+KHBhaXJzOiBBcnJheTxbc3RyaW5nLCBUXT4pOiBPYmo8VD4ge1xuICBjb25zdCByZXQ6IE9iajxUPiA9IHt9O1xuICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHtcbiAgICByZXRbcGFpclswXV0gPSBwYWlyWzFdO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogRGVlcCBnZXQgYSB2YWx1ZSBmcm9tIGEgdHJlZSBvZiBuZXN0ZWQgb2JqZWN0c1xuICpcbiAqIFJldHVybnMgdW5kZWZpbmVkIGlmIGFueSBwYXJ0IG9mIHRoZSBwYXRoIHdhcyB1bnNldCBvclxuICogbm90IGFuIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBHZXQoeDogYW55LCBwYXRoOiBzdHJpbmdbXSk6IGFueSB7XG4gIHBhdGggPSBwYXRoLnNsaWNlKCk7XG5cbiAgd2hpbGUgKHBhdGgubGVuZ3RoID4gMCAmJiBpc09iamVjdCh4KSkge1xuICAgIGNvbnN0IGtleSA9IHBhdGguc2hpZnQoKSE7XG4gICAgeCA9IHhba2V5XTtcbiAgfVxuICByZXR1cm4gcGF0aC5sZW5ndGggPT09IDAgPyB4IDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIERlZXAgc2V0IGEgdmFsdWUgaW4gYSB0cmVlIG9mIG5lc3RlZCBvYmplY3RzXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIGFueSBwYXJ0IG9mIHRoZSBwYXRoIGlzIG5vdCBhbiBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwU2V0KHg6IGFueSwgcGF0aDogc3RyaW5nW10sIHZhbHVlOiBhbnkpIHtcbiAgcGF0aCA9IHBhdGguc2xpY2UoKTtcblxuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdQYXRoIG1heSBub3QgYmUgZW1wdHknKTtcbiAgfVxuXG4gIHdoaWxlIChwYXRoLmxlbmd0aCA+IDEgJiYgaXNPYmplY3QoeCkpIHtcbiAgICBjb25zdCBrZXkgPSBwYXRoLnNoaWZ0KCkhO1xuXG4gICAgaWYgKGlzUHJvdG90eXBlUG9sbHV0aW5nS2V5KGtleSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmICghKGtleSBpbiB4KSkge1xuICAgICAgeFtrZXldID0ge307XG4gICAgfVxuICAgIHggPSB4W2tleV07XG4gIH1cblxuICBpZiAoIWlzT2JqZWN0KHgpKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgRXhwZWN0ZWQgYW4gb2JqZWN0LCBnb3QgJyR7eH0nYCk7XG4gIH1cblxuICBjb25zdCBmaW5hbEtleSA9IHBhdGhbMF07XG5cbiAgaWYgKGlzUHJvdG90eXBlUG9sbHV0aW5nS2V5KGZpbmFsS2V5KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgeFtmaW5hbEtleV0gPSB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgeFtmaW5hbEtleV07XG4gIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgdG8gZGV0ZWN0IHByb3RvdHlwZSBwb2xsdXRpbmcga2V5c1xuICpcbiAqIEEga2V5IG1hdGNoaW5nIHRoaXMsIE1VU1QgTk9UIGJlIHVzZWQgaW4gYW4gYXNzaWdubWVudC5cbiAqIFVzZSB0aGlzIHRvIGNoZWNrIHVzZXItaW5wdXQuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvdG90eXBlUG9sbHV0aW5nS2V5KGtleTogc3RyaW5nKSB7XG4gIHJldHVybiBrZXkgPT09ICdfX3Byb3RvX18nIHx8IGtleSA9PT0gJ2NvbnN0cnVjdG9yJyB8fCBrZXkgPT09ICdwcm90b3R5cGUnO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IG1lcmdlIG9iamVjdHMgdG9nZXRoZXJcbiAqXG4gKiBUaGUgbGVmdG1vc3Qgb2JqZWN0IGlzIG11dGF0ZWQgYW5kIHJldHVybmVkLiBBcnJheXMgYXJlIG5vdCBtZXJnZWRcbiAqIGJ1dCBvdmVyd3JpdHRlbiBqdXN0IGxpa2Ugc2NhbGFycy5cbiAqXG4gKiBJZiBhbiBvYmplY3QgaXMgbWVyZ2VkIGludG8gYSBub24tb2JqZWN0LCB0aGUgbm9uLW9iamVjdCBpcyBsb3N0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcE1lcmdlKC4uLm9iamVjdHM6IEFycmF5PE9iajxhbnk+IHwgdW5kZWZpbmVkPikge1xuICBmdW5jdGlvbiBtZXJnZU9uZSh0YXJnZXQ6IE9iajxhbnk+LCBzb3VyY2U6IE9iajxhbnk+KSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoc291cmNlKSkge1xuICAgICAgaWYgKGlzUHJvdG90eXBlUG9sbHV0aW5nS2V5KGtleSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gc291cmNlW2tleV07XG5cbiAgICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgaWYgKCFpc09iamVjdCh0YXJnZXRba2V5XSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHt9O1xuICAgICAgICB9IC8vIE92ZXJ3cml0ZSBvbiBwdXJwb3NlXG4gICAgICAgIG1lcmdlT25lKHRhcmdldFtrZXldLCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBvdGhlcnMgPSBvYmplY3RzLmZpbHRlcih4ID0+IHggIT0gbnVsbCkgYXMgQXJyYXk8T2JqPGFueT4+O1xuXG4gIGlmIChvdGhlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIGNvbnN0IGludG8gPSBvdGhlcnMuc3BsaWNlKDAsIDEpWzBdO1xuXG4gIG90aGVycy5mb3JFYWNoKG90aGVyID0+IG1lcmdlT25lKGludG8sIG90aGVyKSk7XG4gIHJldHVybiBpbnRvO1xufVxuXG4vKipcbiAqIFNwbGl0cyB0aGUgZ2l2ZW4gb2JqZWN0IGludG8gdHdvLCBzdWNoIHRoYXQ6XG4gKlxuICogMS4gVGhlIHNpemUgb2YgdGhlIGZpcnN0IG9iamVjdCAoYWZ0ZXIgc3RyaW5naWZpZWQgaW4gVVRGLTgpIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcHJvdmlkZWQgc2l6ZSBsaW1pdC5cbiAqIDIuIE1lcmdpbmcgdGhlIHR3byBvYmplY3RzIHJlc3VsdHMgaW4gdGhlIG9yaWdpbmFsIG9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0QnlTaXplKGRhdGE6IGFueSwgbWF4U2l6ZUJ5dGVzOiBudW1iZXIpOiBbYW55LCBhbnldIHtcbiAgaWYgKG1heFNpemVCeXRlcyA8IDIpIHtcbiAgICAvLyBJdCdzIGltcG9zc2libGUgdG8gZml0IGFueXRoaW5nIGluIHRoZSBmaXJzdCBvYmplY3RcbiAgICByZXR1cm4gW3VuZGVmaW5lZCwgZGF0YV07XG4gIH1cbiAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGRhdGEpO1xuICByZXR1cm4gcmVjdXJzZSgwLCAwKTtcblxuICBmdW5jdGlvbiByZWN1cnNlKGluZGV4OiBudW1iZXIsIHJ1bm5pbmdUb3RhbFNpemU6IG51bWJlcik6IFthbnksIGFueV0ge1xuICAgIGlmIChpbmRleCA+PSBlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgLy8gRXZlcnl0aGluZyBmaXRzIGluIHRoZSBmaXJzdCBvYmplY3RcbiAgICAgIHJldHVybiBbZGF0YSwgdW5kZWZpbmVkXTtcbiAgICB9XG5cbiAgICBjb25zdCBzaXplID0gcnVubmluZ1RvdGFsU2l6ZSArIGVudHJ5U2l6ZShlbnRyaWVzW2luZGV4XSk7XG4gICAgcmV0dXJuIChzaXplID4gbWF4U2l6ZUJ5dGVzKSA/IGN1dEF0KGluZGV4KSA6IHJlY3Vyc2UoaW5kZXggKyAxLCBzaXplKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGVudHJ5U2l6ZShlbnRyeTogW3N0cmluZywgdW5rbm93bl0pIHtcbiAgICByZXR1cm4gQnVmZmVyLmJ5dGVMZW5ndGgoSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmZyb21FbnRyaWVzKFtlbnRyeV0pKSk7XG4gIH1cblxuICBmdW5jdGlvbiBjdXRBdChpbmRleDogbnVtYmVyKTogW2FueSwgYW55XSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIE9iamVjdC5mcm9tRW50cmllcyhlbnRyaWVzLnNsaWNlKDAsIGluZGV4KSksXG4gICAgICBPYmplY3QuZnJvbUVudHJpZXMoZW50cmllcy5zbGljZShpbmRleCkpLFxuICAgIF07XG4gIH1cbn1cblxudHlwZSBFeGNsdWRlID0geyBba2V5OiBzdHJpbmddOiBFeGNsdWRlIHwgdHJ1ZSB9O1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gdHJhbnNmb3JtcyBhbGwga2V5cyAocmVjdXJzaXZlbHkpIGluIHRoZSBwcm92aWRlZCBgdmFsYCBvYmplY3QuXG4gKlxuICogQHBhcmFtIHZhbCBUaGUgb2JqZWN0IHdob3NlIGtleXMgbmVlZCB0byBiZSB0cmFuc2Zvcm1lZC5cbiAqIEBwYXJhbSB0cmFuc2Zvcm0gVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHRvIGVhY2gga2V5LlxuICogQHBhcmFtIGV4Y2x1ZGUgVGhlIGtleXMgdGhhdCB3aWxsIG5vdCBiZSB0cmFuc2Zvcm1lZCBhbmQgY29waWVkIHRvIG91dHB1dCBkaXJlY3RseVxuICogQHJldHVybnMgQSBuZXcgb2JqZWN0IHdpdGggdGhlIHNhbWUgdmFsdWVzIGFzIGB2YWxgLCBidXQgd2l0aCBhbGwga2V5cyB0cmFuc2Zvcm1lZCBhY2NvcmRpbmcgdG8gYHRyYW5zZm9ybWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1PYmplY3RLZXlzKHZhbDogYW55LCB0cmFuc2Zvcm06IChzdHI6IHN0cmluZykgPT4gc3RyaW5nLCBleGNsdWRlOiBFeGNsdWRlID0ge30pOiBhbnkge1xuICBpZiAodmFsID09IG51bGwgfHwgdHlwZW9mIHZhbCAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gdmFsO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAvLyBGb3IgYXJyYXlzIHdlIGp1c3QgcGFzcyBwYXJlbnQncyBleGNsdWRlIG9iamVjdCBkaXJlY3RseVxuICAgIC8vIHNpbmNlIGl0IG1ha2VzIG5vIHNlbnNlIHRvIHNwZWNpZnkgZGlmZmVyZW50IGV4Y2x1ZGUgb3B0aW9ucyBmb3IgZWFjaCBhcnJheSBlbGVtZW50XG4gICAgcmV0dXJuIHZhbC5tYXAoKGlucHV0OiBhbnkpID0+IHRyYW5zZm9ybU9iamVjdEtleXMoaW5wdXQsIHRyYW5zZm9ybSwgZXhjbHVkZSkpO1xuICB9XG4gIGNvbnN0IHJldDogeyBbazogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFsKSkge1xuICAgIGNvbnN0IGNoaWxkRXhjbHVkZSA9IGV4Y2x1ZGVba107XG4gICAgaWYgKGNoaWxkRXhjbHVkZSA9PT0gdHJ1ZSkge1xuICAgICAgLy8gd2UgZG9uJ3QgdHJhbnNmb3JtIHRoaXMgb2JqZWN0IGlmIHRoZSBrZXkgaXMgc3BlY2lmaWVkIGluIGV4Y2x1ZGVcbiAgICAgIHJldFt0cmFuc2Zvcm0oayldID0gdjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0W3RyYW5zZm9ybShrKV0gPSB0cmFuc2Zvcm1PYmplY3RLZXlzKHYsIHRyYW5zZm9ybSwgY2hpbGRFeGNsdWRlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm9iamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxzQ0FVQztBQUtELDBCQVFDO0FBT0QsOEJBY0M7QUFLRCw4QkFNQztBQUtELGdDQU1DO0FBUUQsMEJBUUM7QUFPRCwwQkFtQ0M7QUFvQkQsOEJBNkJDO0FBUUQsa0NBNEJDO0FBWUQsa0RBb0JDO0FBdlBELG1DQUE0QztBQUM1Qyw0REFBd0Q7QUFFeEQ7O0dBRUc7QUFDSCxTQUFnQixhQUFhLENBQUMsSUFBUyxFQUFFLFFBQWE7SUFDcEQsTUFBTSxNQUFNLEdBQVEsRUFBRyxDQUFDO0lBRXhCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7U0FDM0IsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxDQUFNO0lBQzVCLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxJQUFBLGVBQU8sRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxD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UUFBUSxFQUFFLENBQUM7UUFDM0MsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsMkRBQTJEO1FBQzNELHNGQUFzRjtRQUN0RixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQXlCLEVBQUUsQ0FBQztJQUNyQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMxQixvRUFBb0U7WUFDcEUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPYmogfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzQXJyYXksIGlzT2JqZWN0IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG4vKipcbiAqIFJldHVybiBhIG5ldyBvYmplY3QgYnkgYWRkaW5nIG1pc3Npbmcga2V5cyBpbnRvIGFub3RoZXIgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseURlZmF1bHRzKGhhc2g6IGFueSwgZGVmYXVsdHM6IGFueSkge1xuICBjb25zdCByZXN1bHQ6IGFueSA9IHsgfTtcblxuICBPYmplY3Qua2V5cyhoYXNoKS5mb3JFYWNoKGsgPT4gcmVzdWx0W2tdID0gaGFzaFtrXSk7XG5cbiAgT2JqZWN0LmtleXMoZGVmYXVsdHMpXG4gICAgLmZpbHRlcihrID0+ICEoayBpbiByZXN1bHQpKVxuICAgIC5mb3JFYWNoKGsgPT4gcmVzdWx0W2tdID0gZGVmYXVsdHNba10pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIHBhcmFtZXRlciBpcyBhbiBlbXB0eSBvYmplY3Qgb3IgZW1wdHkgbGlzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkoeDogYW55KSB7XG4gIGlmICh4ID09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGlzQXJyYXkoeCkpIHtcbiAgICByZXR1cm4geC5sZW5ndGggPT09IDA7XG4gIH1cbiAgcmV0dXJuIE9iamVjdC5rZXlzKHgpLmxlbmd0aCA9PT0gMDtcbn1cblxuLyoqXG4gKiBEZWVwIGNsb25lIGEgdHJlZSBvZiBvYmplY3RzLCBsaXN0cyBvciBzY2FsYXJzXG4gKlxuICogRG9lcyBub3Qgc3VwcG9ydCBjeWNsZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwQ2xvbmUoeDogYW55KTogYW55IHtcbiAgaWYgKHR5cGVvZiB4ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHggPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBpZiAoaXNBcnJheSh4KSkge1xuICAgIHJldHVybiB4Lm1hcChkZWVwQ2xvbmUpO1xuICB9XG4gIGlmIChpc09iamVjdCh4KSkge1xuICAgIHJldHVybiBtYWtlT2JqZWN0KG1hcE9iamVjdCh4LCAoaywgdikgPT4gW2ssIGRlZXBDbG9uZSh2KV0gYXMgW3N0cmluZywgYW55XSkpO1xuICB9XG4gIHJldHVybiB4O1xufVxuXG4vKipcbiAqIE1hcCBvdmVyIGFuIG9iamVjdCwgdHJlYXRpbmcgaXQgYXMgYSBkaWN0aW9uYXJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBPYmplY3Q8VCwgVT4oeDogT2JqPFQ+LCBmbjogKGtleTogc3RyaW5nLCB2YWx1ZTogVCkgPT4gVSk6IFVbXSB7XG4gIGNvbnN0IHJldDogVVtdID0gW107XG4gIE9iamVjdC5rZXlzKHgpLmZvckVhY2goa2V5ID0+IHtcbiAgICByZXQucHVzaChmbihrZXksIHhba2V5XSkpO1xuICB9KTtcbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgYW4gb2JqZWN0IGZyb20gYSBsaXN0IG9mIChrLCB2KSBwYWlyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZU9iamVjdDxUPihwYWlyczogQXJyYXk8W3N0cmluZywgVF0+KTogT2JqPFQ+IHtcbiAgY29uc3QgcmV0OiBPYmo8VD4gPSB7fTtcbiAgZm9yIChjb25zdCBwYWlyIG9mIHBhaXJzKSB7XG4gICAgcmV0W3BhaXJbMF1dID0gcGFpclsxXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIERlZXAgZ2V0IGEgdmFsdWUgZnJvbSBhIHRyZWUgb2YgbmVzdGVkIG9iamVjdHNcbiAqXG4gKiBSZXR1cm5zIHVuZGVmaW5lZCBpZiBhbnkgcGFydCBvZiB0aGUgcGF0aCB3YXMgdW5zZXQgb3JcbiAqIG5vdCBhbiBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwR2V0KHg6IGFueSwgcGF0aDogc3RyaW5nW10pOiBhbnkge1xuICBwYXRoID0gcGF0aC5zbGljZSgpO1xuXG4gIHdoaWxlIChwYXRoLmxlbmd0aCA+IDAgJiYgaXNPYmplY3QoeCkpIHtcbiAgICBjb25zdCBrZXkgPSBwYXRoLnNoaWZ0KCkhO1xuICAgIHggPSB4W2tleV07XG4gIH1cbiAgcmV0dXJuIHBhdGgubGVuZ3RoID09PSAwID8geCA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBEZWVwIHNldCBhIHZhbHVlIGluIGEgdHJlZSBvZiBuZXN0ZWQgb2JqZWN0c1xuICpcbiAqIFRocm93cyBhbiBlcnJvciBpZiBhbnkgcGFydCBvZiB0aGUgcGF0aCBpcyBub3QgYW4gb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcFNldCh4OiBhbnksIHBhdGg6IHN0cmluZ1tdLCB2YWx1ZTogYW55KSB7XG4gIHBhdGggPSBwYXRoLnNsaWNlKCk7XG5cbiAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignUGF0aCBtYXkgbm90IGJlIGVtcHR5Jyk7XG4gIH1cblxuICB3aGlsZSAocGF0aC5sZW5ndGggPiAxICYmIGlzT2JqZWN0KHgpKSB7XG4gICAgY29uc3Qga2V5ID0gcGF0aC5zaGlmdCgpITtcblxuICAgIGlmIChpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShrZXkpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoIShrZXkgaW4geCkpIHtcbiAgICAgIHhba2V5XSA9IHt9O1xuICAgIH1cbiAgICB4ID0geFtrZXldO1xuICB9XG5cbiAgaWYgKCFpc09iamVjdCh4KSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYEV4cGVjdGVkIGFuIG9iamVjdCwgZ290ICcke3h9J2ApO1xuICB9XG5cbiAgY29uc3QgZmluYWxLZXkgPSBwYXRoWzBdO1xuXG4gIGlmIChpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShmaW5hbEtleSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHhbZmluYWxLZXldID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIHhbZmluYWxLZXldO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIHRvIGRldGVjdCBwcm90b3R5cGUgcG9sbHV0aW5nIGtleXNcbiAqXG4gKiBBIGtleSBtYXRjaGluZyB0aGlzLCBNVVNUIE5PVCBiZSB1c2VkIGluIGFuIGFzc2lnbm1lbnQuXG4gKiBVc2UgdGhpcyB0byBjaGVjayB1c2VyLWlucHV0LlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShrZXk6IHN0cmluZykge1xuICByZXR1cm4ga2V5ID09PSAnX19wcm90b19fJyB8fCBrZXkgPT09ICdjb25zdHJ1Y3RvcicgfHwga2V5ID09PSAncHJvdG90eXBlJztcbn1cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBtZXJnZSBvYmplY3RzIHRvZ2V0aGVyXG4gKlxuICogVGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZC4gQXJyYXlzIGFyZSBub3QgbWVyZ2VkXG4gKiBidXQgb3ZlcndyaXR0ZW4ganVzdCBsaWtlIHNjYWxhcnMuXG4gKlxuICogSWYgYW4gb2JqZWN0IGlzIG1lcmdlZCBpbnRvIGEgbm9uLW9iamVjdCwgdGhlIG5vbi1vYmplY3QgaXMgbG9zdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBNZXJnZSguLi5vYmplY3RzOiBBcnJheTxPYmo8YW55PiB8IHVuZGVmaW5lZD4pIHtcbiAgZnVuY3Rpb24gbWVyZ2VPbmUodGFyZ2V0OiBPYmo8YW55Piwgc291cmNlOiBPYmo8YW55Pikge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHNvdXJjZSkpIHtcbiAgICAgIGlmIChpc1Byb3RvdHlwZVBvbGx1dGluZ0tleShrZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuXG4gICAgICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIGlmICghaXNPYmplY3QodGFyZ2V0W2tleV0pKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB7fTtcbiAgICAgICAgfSAvLyBPdmVyd3JpdGUgb24gcHVycG9zZVxuICAgICAgICBtZXJnZU9uZSh0YXJnZXRba2V5XSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRhcmdldFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3RoZXJzID0gb2JqZWN0cy5maWx0ZXIoeCA9PiB4ICE9IG51bGwpIGFzIEFycmF5PE9iajxhbnk+PjtcblxuICBpZiAob3RoZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICBjb25zdCBpbnRvID0gb3RoZXJzLnNwbGljZSgwLCAxKVswXTtcblxuICBvdGhlcnMuZm9yRWFjaChvdGhlciA9PiBtZXJnZU9uZShpbnRvLCBvdGhlcikpO1xuICByZXR1cm4gaW50bztcbn1cblxuLyoqXG4gKiBTcGxpdHMgdGhlIGdpdmVuIG9iamVjdCBpbnRvIHR3bywgc3VjaCB0aGF0OlxuICpcbiAqIDEuIFRoZSBzaXplIG9mIHRoZSBmaXJzdCBvYmplY3QgKGFmdGVyIHN0cmluZ2lmaWVkIGluIFVURi04KSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHByb3ZpZGVkIHNpemUgbGltaXQuXG4gKiAyLiBNZXJnaW5nIHRoZSB0d28gb2JqZWN0cyByZXN1bHRzIGluIHRoZSBvcmlnaW5hbCBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdEJ5U2l6ZShkYXRhOiBhbnksIG1heFNpemVCeXRlczogbnVtYmVyKTogW2FueSwgYW55XSB7XG4gIGlmIChtYXhTaXplQnl0ZXMgPCAyKSB7XG4gICAgLy8gSXQncyBpbXBvc3NpYmxlIHRvIGZpdCBhbnl0aGluZyBpbiB0aGUgZmlyc3Qgb2JqZWN0XG4gICAgcmV0dXJuIFt1bmRlZmluZWQsIGRhdGFdO1xuICB9XG4gIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhkYXRhKTtcbiAgcmV0dXJuIHJlY3Vyc2UoMCwgMCk7XG5cbiAgZnVuY3Rpb24gcmVjdXJzZShpbmRleDogbnVtYmVyLCBydW5uaW5nVG90YWxTaXplOiBudW1iZXIpOiBbYW55LCBhbnldIHtcbiAgICBpZiAoaW5kZXggPj0gZW50cmllcy5sZW5ndGgpIHtcbiAgICAgIC8vIEV2ZXJ5dGhpbmcgZml0cyBpbiB0aGUgZmlyc3Qgb2JqZWN0XG4gICAgICByZXR1cm4gW2RhdGEsIHVuZGVmaW5lZF07XG4gICAgfVxuXG4gICAgY29uc3Qgc2l6ZSA9IHJ1bm5pbmdUb3RhbFNpemUgKyBlbnRyeVNpemUoZW50cmllc1tpbmRleF0pO1xuICAgIHJldHVybiAoc2l6ZSA+IG1heFNpemVCeXRlcykgPyBjdXRBdChpbmRleCkgOiByZWN1cnNlKGluZGV4ICsgMSwgc2l6ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBlbnRyeVNpemUoZW50cnk6IFtzdHJpbmcsIHVua25vd25dKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5ieXRlTGVuZ3RoKEpTT04uc3RyaW5naWZ5KE9iamVjdC5mcm9tRW50cmllcyhbZW50cnldKSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3V0QXQoaW5kZXg6IG51bWJlcik6IFthbnksIGFueV0ge1xuICAgIHJldHVybiBbXG4gICAgICBPYmplY3QuZnJvbUVudHJpZXMoZW50cmllcy5zbGljZSgwLCBpbmRleCkpLFxuICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKGVudHJpZXMuc2xpY2UoaW5kZXgpKSxcbiAgICBdO1xuICB9XG59XG5cbnR5cGUgRXhjbHVkZSA9IHsgW2tleTogc3RyaW5nXTogRXhjbHVkZSB8IHRydWUgfTtcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybXMgYWxsIGtleXMgKHJlY3Vyc2l2ZWx5KSBpbiB0aGUgcHJvdmlkZWQgYHZhbGAgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB2YWwgVGhlIG9iamVjdCB3aG9zZSBrZXlzIG5lZWQgdG8gYmUgdHJhbnNmb3JtZWQuXG4gKiBAcGFyYW0gdHJhbnNmb3JtIFRoZSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byBlYWNoIGtleS5cbiAqIEBwYXJhbSBleGNsdWRlIFRoZSBrZXlzIHRoYXQgd2lsbCBub3QgYmUgdHJhbnNmb3JtZWQgYW5kIGNvcGllZCB0byBvdXRwdXQgZGlyZWN0bHlcbiAqIEByZXR1cm5zIEEgbmV3IG9iamVjdCB3aXRoIHRoZSBzYW1lIHZhbHVlcyBhcyBgdmFsYCwgYnV0IHdpdGggYWxsIGtleXMgdHJhbnNmb3JtZWQgYWNjb3JkaW5nIHRvIGB0cmFuc2Zvcm1gLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtT2JqZWN0S2V5cyh2YWw6IGFueSwgdHJhbnNmb3JtOiAoc3RyOiBzdHJpbmcpID0+IHN0cmluZywgZXhjbHVkZTogRXhjbHVkZSA9IHt9KTogYW55IHtcbiAgaWYgKHZhbCA9PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgLy8gRm9yIGFycmF5cyB3ZSBqdXN0IHBhc3MgcGFyZW50J3MgZXhjbHVkZSBvYmplY3QgZGlyZWN0bHlcbiAgICAvLyBzaW5jZSBpdCBtYWtlcyBubyBzZW5zZSB0byBzcGVjaWZ5IGRpZmZlcmVudCBleGNsdWRlIG9wdGlvbnMgZm9yIGVhY2ggYXJyYXkgZWxlbWVudFxuICAgIHJldHVybiB2YWwubWFwKChpbnB1dDogYW55KSA9PiB0cmFuc2Zvcm1PYmplY3RLZXlzKGlucHV0LCB0cmFuc2Zvcm0sIGV4Y2x1ZGUpKTtcbiAgfVxuICBjb25zdCByZXQ6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhbCkpIHtcbiAgICBjb25zdCBjaGlsZEV4Y2x1ZGUgPSBleGNsdWRlW2tdO1xuICAgIGlmIChjaGlsZEV4Y2x1ZGUgPT09IHRydWUpIHtcbiAgICAgIC8vIHdlIGRvbid0IHRyYW5zZm9ybSB0aGlzIG9iamVjdCBpZiB0aGUga2V5IGlzIHNwZWNpZmllZCBpbiBleGNsdWRlXG4gICAgICByZXRbdHJhbnNmb3JtKGspXSA9IHY7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldFt0cmFuc2Zvcm0oayldID0gdHJhbnNmb3JtT2JqZWN0S2V5cyh2LCB0cmFuc2Zvcm0sIGNoaWxkRXhjbHVkZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG4iXX0=
|
package/lib/util/types.js
CHANGED
|
@@ -22,4 +22,4 @@ exports.isArray = Array.isArray;
|
|
|
22
22
|
function ifDefined(x, def) {
|
|
23
23
|
return typeof x !== 'undefined' ? x : def;
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQkEsNEJBRUM7QUFVRCw4QkFFQztBQXBCRDs7Ozs7R0FLRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxDQUFNO0lBQzdCLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFBLGVBQU8sRUFBQyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7O0dBRUc7QUFDVSxRQUFBLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBRXJDOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFJLENBQWdCLEVBQUUsR0FBTTtJQUNuRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZSBvZiBhIG1hcCBtYXBwaW5nIHN0cmluZ3MgdG8gc29tZSBhcmJpdHJhcnkgdHlwZVxuICpcbiAqIE5hbWUgaXMgbm90IGlkZWFsLCBidXQ6XG4gKlxuICogLSBDYW5ub3QgY2FsbCBpdCBPYmplY3QsIHRoYXQgYWxyZWFkeSBtZWFucyBzb21ldGhpbmcuXG4gKiAtIENhbm5vdCBjYWxsIGl0IERpY3Qgb3IgRGljdGlvbmFyeSwgc2luY2UgaW4gb3RoZXIgbGFuZ3VhZ2VzXG4gKiAgIHRob3NlIGFsc28gYWxsb3cgc3BlY2lmeWluZyB0aGUga2V5IHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIE9iajxUPiA9IHsgW2tleTogc3RyaW5nXTogVCB9O1xuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbiBvYmplY3RcbiAqXG4gKiBFdmVuIHRob3VnaCBhcnJheXMgdGVjaG5pY2FsbHkgYXJlIG9iamVjdHMsIHdlIHVzdWFsbHkgd2FudCB0byB0cmVhdCB0aGVtIGRpZmZlcmVudGx5LFxuICogc28gd2UgcmV0dXJuIGZhbHNlIGluIHRob3NlIGNhc2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QoeDogYW55KTogeCBpcyBPYmo8YW55PiB7XG4gIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiAhaXNBcnJheSh4KTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gYXJyYXlcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGFyZ3VtZW50IGlmIGl0J3Mgbm90IHVuZGVmaW5lZCwgb3RoZXJ3aXNlIHRoZSBkZWZhdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZkRlZmluZWQ8VD4oeDogVCB8IHVuZGVmaW5lZCwgZGVmOiBUKTogVCB7XG4gIHJldHVybiB0eXBlb2YgeCAhPT0gJ3VuZGVmaW5lZCcgPyB4IDogZGVmO1xufVxuIl19
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.rangeFromSemver = rangeFromSemver;
|
|
4
4
|
const semver = require("semver");
|
|
5
|
-
const toolkit_error_1 = require("../
|
|
5
|
+
const toolkit_error_1 = require("../toolkit/toolkit-error");
|
|
6
6
|
function rangeFromSemver(ver, targetType) {
|
|
7
7
|
const re = ver.match(/^([^\d]*)([\d.]*)$/);
|
|
8
8
|
if (!re || !semver.valid(re[2])) {
|
|
@@ -33,4 +33,4 @@ function rangeFromSemver(ver, targetType) {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24tcmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSwwQ0E4QkM7QUFyQ0QsaUNBQWlDO0FBQ2pDLDREQUF3RDtBQU14RCxTQUFnQixlQUFlLENBQUMsR0FBVyxFQUFFLFVBQXFCO0lBQ2hFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEIsUUFBUSxVQUFVLEVBQUUsQ0FBQztRQUNuQixLQUFLLFNBQVM7WUFDWixRQUFRLFVBQVUsRUFBRSxDQUFDO2dCQUNuQixLQUFLLEVBQUU7b0JBQ0wsdUZBQXVGO29CQUN2RixPQUFPLEdBQUcsQ0FBQztnQkFDYixLQUFLLEdBQUc7b0JBQ04sT0FBTyxJQUFJLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN2RDtvQkFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDO1FBQ0gsS0FBSyxLQUFLO1lBQ1IsUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxFQUFFO29CQUNMLHVGQUF1RjtvQkFDdkYsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixLQUFLLEdBQUc7b0JBQ04sT0FBTyxLQUFLLE9BQU8sS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN4RDtvQkFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyw4QkFBOEIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5cbi8vIGJyYWNrZXQgLSBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9taWRkbGV3YXJlLzEyMTIvY29yZS9NQVZFTi9tYXZlbl92ZXJzaW9uLmh0bSNNQVZFTjQwMVxuLy8gcGVwIC0gaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQ0MC8jdmVyc2lvbi1zcGVjaWZpZXJzXG5leHBvcnQgdHlwZSBSYW5nZVR5cGUgPSAnYnJhY2tldCcgfCAncGVwJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJhbmdlRnJvbVNlbXZlcih2ZXI6IHN0cmluZywgdGFyZ2V0VHlwZTogUmFuZ2VUeXBlKSB7XG4gIGNvbnN0IHJlID0gdmVyLm1hdGNoKC9eKFteXFxkXSopKFtcXGQuXSopJC8pO1xuICBpZiAoIXJlIHx8ICFzZW12ZXIudmFsaWQocmVbMl0pKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignbm90IGEgc2VtdmVyIG9yIHVuc3VwcG9ydGVkIHJhbmdlIHN5bnRheCcpO1xuICB9XG4gIGNvbnN0IHByZWZpeFBhcnQgPSByZVsxXTtcbiAgY29uc3QgdmVyUGFydCA9IHJlWzJdO1xuXG4gIHN3aXRjaCAodGFyZ2V0VHlwZSkge1xuICAgIGNhc2UgJ2JyYWNrZXQnOlxuICAgICAgc3dpdGNoIChwcmVmaXhQYXJ0KSB7XG4gICAgICAgIGNhc2UgJyc6XG4gICAgICAgICAgLy8gaWYgdGhlcmUncyBubyBwcmVmaXggYW5kIHRoZSByZW1haW5pbmcgaXMgYSB2YWxpZCBzZW12ZXIsIHRoZXJlJ3Mgbm8gcmFuZ2Ugc3BlY2lmaWVkXG4gICAgICAgICAgcmV0dXJuIHZlcjtcbiAgICAgICAgY2FzZSAnXic6XG4gICAgICAgICAgcmV0dXJuIGBbJHt2ZXJQYXJ0fSwke3NlbXZlci5tYWpvcih2ZXJQYXJ0KSsxfS4wLjApYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gICAgY2FzZSAncGVwJzpcbiAgICAgIHN3aXRjaCAocHJlZml4UGFydCkge1xuICAgICAgICBjYXNlICcnOlxuICAgICAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gcHJlZml4IGFuZCB0aGUgcmVtYWluaW5nIGlzIGEgdmFsaWQgc2VtdmVyLCB0aGVyZSdzIG5vIHJhbmdlIHNwZWNpZmllZFxuICAgICAgICAgIHJldHVybiBgPT0ke3Zlcn1gO1xuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICByZXR1cm4gYD49JHt2ZXJQYXJ0fSw8JHtzZW12ZXIubWFqb3IodmVyUGFydCkrMX0uMC4wYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGB1bnN1cHBvcnRlZCByYW5nZSBzeW50YXggLSAke3ByZWZpeFBhcnR9YCk7XG4gICAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -35,10 +35,14 @@
|
|
|
35
35
|
"organization": true
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@aws-cdk/aws-service-spec": "^0.1.
|
|
38
|
+
"@aws-cdk/aws-service-spec": "^0.1.71",
|
|
39
39
|
"@cdklabs/eslint-plugin": "^1.3.2",
|
|
40
|
-
"@
|
|
40
|
+
"@jest/environment": "^29.7.0",
|
|
41
|
+
"@jest/globals": "^29.7.0",
|
|
42
|
+
"@jest/types": "^29.6.3",
|
|
43
|
+
"@microsoft/api-extractor": "^7.52.7",
|
|
41
44
|
"@smithy/types": "^4.2.0",
|
|
45
|
+
"@smithy/util-stream": "^4.2.0",
|
|
42
46
|
"@stylistic/eslint-plugin": "^3",
|
|
43
47
|
"@types/fs-extra": "^11.0.4",
|
|
44
48
|
"@types/jest": "^29.5.14",
|
|
@@ -46,34 +50,36 @@
|
|
|
46
50
|
"@types/split2": "^4.2.3",
|
|
47
51
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
48
52
|
"@typescript-eslint/parser": "^8",
|
|
49
|
-
"aws-cdk-lib": "^2.
|
|
53
|
+
"aws-cdk-lib": "^2.194.0",
|
|
50
54
|
"aws-sdk-client-mock": "^4.1.0",
|
|
51
55
|
"aws-sdk-client-mock-jest": "^4.1.0",
|
|
52
56
|
"commit-and-tag-version": "^12",
|
|
53
57
|
"constructs": "^10.0.0",
|
|
54
|
-
"dts-bundle-generator": "9.3.1",
|
|
55
|
-
"esbuild": "^0.25.2",
|
|
56
58
|
"eslint": "^9",
|
|
57
59
|
"eslint-config-prettier": "^10.1.2",
|
|
58
|
-
"eslint-import-resolver-typescript": "^3.10.
|
|
60
|
+
"eslint-import-resolver-typescript": "^3.10.1",
|
|
59
61
|
"eslint-plugin-import": "^2.31.0",
|
|
60
62
|
"eslint-plugin-jest": "^28.11.0",
|
|
61
|
-
"eslint-plugin-jsdoc": "^50.6.
|
|
62
|
-
"eslint-plugin-prettier": "^5.
|
|
63
|
+
"eslint-plugin-jsdoc": "^50.6.11",
|
|
64
|
+
"eslint-plugin-prettier": "^5.3.1",
|
|
63
65
|
"fast-check": "^4.1.1",
|
|
64
66
|
"jest": "^29.7.0",
|
|
67
|
+
"jest-environment-node": "^29.7.0",
|
|
65
68
|
"jest-junit": "^16",
|
|
66
69
|
"license-checker": "^25.0.1",
|
|
70
|
+
"nock": "13",
|
|
67
71
|
"prettier": "^2.8",
|
|
68
72
|
"ts-jest": "^29.3.2",
|
|
69
|
-
"typedoc": "^0.28.
|
|
70
|
-
"typescript": "5.6"
|
|
73
|
+
"typedoc": "^0.28.4",
|
|
74
|
+
"typescript": "5.6",
|
|
75
|
+
"xml-js": "^1.6.11"
|
|
71
76
|
},
|
|
72
77
|
"dependencies": {
|
|
73
|
-
"@aws-cdk/
|
|
78
|
+
"@aws-cdk/cli-plugin-contract": "^2.180.1",
|
|
79
|
+
"@aws-cdk/cloud-assembly-schema": "^43.7.0",
|
|
74
80
|
"@aws-cdk/cloudformation-diff": "^2.181.1",
|
|
75
|
-
"@aws-cdk/cx-api": "^2.
|
|
76
|
-
"@aws-cdk/region-info": "^2.
|
|
81
|
+
"@aws-cdk/cx-api": "^2.194.0",
|
|
82
|
+
"@aws-cdk/region-info": "^2.194.0",
|
|
77
83
|
"@aws-sdk/client-appsync": "^3",
|
|
78
84
|
"@aws-sdk/client-cloudcontrol": "^3",
|
|
79
85
|
"@aws-sdk/client-cloudformation": "^3",
|
|
@@ -95,35 +101,28 @@
|
|
|
95
101
|
"@aws-sdk/credential-providers": "^3",
|
|
96
102
|
"@aws-sdk/ec2-metadata-service": "^3",
|
|
97
103
|
"@aws-sdk/lib-storage": "^3",
|
|
98
|
-
"@smithy/middleware-endpoint": "^4.1.
|
|
104
|
+
"@smithy/middleware-endpoint": "^4.1.1",
|
|
99
105
|
"@smithy/node-http-handler": "^4.0.4",
|
|
100
106
|
"@smithy/property-provider": "^4.0.2",
|
|
101
107
|
"@smithy/shared-ini-file-loader": "^4.0.2",
|
|
102
|
-
"@smithy/util-retry": "^4.0.
|
|
103
|
-
"@smithy/util-stream": "^4.2.0",
|
|
108
|
+
"@smithy/util-retry": "^4.0.3",
|
|
104
109
|
"@smithy/util-waiter": "^4.0.3",
|
|
105
110
|
"archiver": "^7.0.1",
|
|
106
|
-
"camelcase": "^6",
|
|
107
111
|
"cdk-assets": "^3.2.1",
|
|
108
|
-
"cdk-from-cfn": "^0.
|
|
112
|
+
"cdk-from-cfn": "^0.212.0",
|
|
109
113
|
"chalk": "^4",
|
|
110
114
|
"chokidar": "^3",
|
|
111
|
-
"decamelize": "^5",
|
|
112
115
|
"fs-extra": "^9",
|
|
113
|
-
"glob": "^11.0.
|
|
114
|
-
"json-diff": "^1.0.6",
|
|
116
|
+
"glob": "^11.0.2",
|
|
115
117
|
"minimatch": "^10.0.1",
|
|
116
118
|
"p-limit": "^3",
|
|
117
119
|
"promptly": "^3.2.0",
|
|
118
120
|
"proxy-agent": "^6.5.0",
|
|
119
121
|
"semver": "^7.7.1",
|
|
120
122
|
"split2": "^4.2.0",
|
|
121
|
-
"strip-ansi": "^6",
|
|
122
|
-
"table": "^6",
|
|
123
123
|
"uuid": "^11.1.0",
|
|
124
124
|
"wrap-ansi": "^7",
|
|
125
|
-
"yaml": "^1"
|
|
126
|
-
"yargs": "^15"
|
|
125
|
+
"yaml": "^1"
|
|
127
126
|
},
|
|
128
127
|
"keywords": [
|
|
129
128
|
"aws",
|
|
@@ -138,7 +137,7 @@
|
|
|
138
137
|
"publishConfig": {
|
|
139
138
|
"access": "public"
|
|
140
139
|
},
|
|
141
|
-
"version": "0.3.
|
|
140
|
+
"version": "0.3.4",
|
|
142
141
|
"types": "lib/index.d.ts",
|
|
143
142
|
"exports": {
|
|
144
143
|
".": {
|
package/tsdoc.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
|
|
3
|
+
"extends": [
|
|
4
|
+
"@microsoft/api-extractor/extends/tsdoc-base.json"
|
|
5
|
+
],
|
|
6
|
+
"tagDefinitions": [
|
|
7
|
+
{
|
|
8
|
+
"tagName": "@default",
|
|
9
|
+
"syntaxKind": "block"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"supportForTags": {
|
|
13
|
+
"@default": true
|
|
14
|
+
}
|
|
15
|
+
}
|
package/lib/api/notices.d.ts
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import type { Environment } from '@aws-cdk/cx-api';
|
|
2
|
-
import type { SdkHttpOptions } from './aws-auth';
|
|
3
|
-
import type { Context } from './context';
|
|
4
|
-
import type { IIoHost } from './io';
|
|
5
|
-
import type { IoHelper } from './io/private';
|
|
6
|
-
import { IoDefaultMessages } from './io/private';
|
|
7
|
-
export interface NoticesProps {
|
|
8
|
-
/**
|
|
9
|
-
* CDK context
|
|
10
|
-
*/
|
|
11
|
-
readonly context: Context;
|
|
12
|
-
/**
|
|
13
|
-
* Include notices that have already been acknowledged.
|
|
14
|
-
*
|
|
15
|
-
* @default false
|
|
16
|
-
*/
|
|
17
|
-
readonly includeAcknowledged?: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Global CLI option for output directory for synthesized cloud assembly
|
|
20
|
-
*
|
|
21
|
-
* @default 'cdk.out'
|
|
22
|
-
*/
|
|
23
|
-
readonly output?: string;
|
|
24
|
-
/**
|
|
25
|
-
* Options for the HTTP request
|
|
26
|
-
*/
|
|
27
|
-
readonly httpOptions?: SdkHttpOptions;
|
|
28
|
-
/**
|
|
29
|
-
* Where messages are going to be sent
|
|
30
|
-
*/
|
|
31
|
-
readonly ioHost: IIoHost;
|
|
32
|
-
/**
|
|
33
|
-
* The version of the CLI
|
|
34
|
-
*/
|
|
35
|
-
readonly cliVersion: string;
|
|
36
|
-
}
|
|
37
|
-
export interface NoticesPrintOptions {
|
|
38
|
-
/**
|
|
39
|
-
* Whether to append the total number of unacknowledged notices to the display.
|
|
40
|
-
*
|
|
41
|
-
* @default false
|
|
42
|
-
*/
|
|
43
|
-
readonly showTotal?: boolean;
|
|
44
|
-
}
|
|
45
|
-
export interface NoticesRefreshOptions {
|
|
46
|
-
/**
|
|
47
|
-
* Whether to force a cache refresh regardless of expiration time.
|
|
48
|
-
*
|
|
49
|
-
* @default false
|
|
50
|
-
*/
|
|
51
|
-
readonly force?: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Data source for fetch notices from.
|
|
54
|
-
*
|
|
55
|
-
* @default - WebsiteNoticeDataSource
|
|
56
|
-
*/
|
|
57
|
-
readonly dataSource?: NoticeDataSource;
|
|
58
|
-
}
|
|
59
|
-
export interface NoticesFilterFilterOptions {
|
|
60
|
-
readonly data: Notice[];
|
|
61
|
-
readonly cliVersion: string;
|
|
62
|
-
readonly outDir: string;
|
|
63
|
-
readonly bootstrappedEnvironments: BootstrappedEnvironment[];
|
|
64
|
-
}
|
|
65
|
-
export declare class NoticesFilter {
|
|
66
|
-
private readonly ioMessages;
|
|
67
|
-
constructor(ioMessages: IoDefaultMessages);
|
|
68
|
-
filter(options: NoticesFilterFilterOptions): FilteredNotice[];
|
|
69
|
-
/**
|
|
70
|
-
* From a set of input options, return the notices components we are searching for
|
|
71
|
-
*/
|
|
72
|
-
private otherComponents;
|
|
73
|
-
/**
|
|
74
|
-
* Based on a set of component names, find all notices that match one of the given components
|
|
75
|
-
*/
|
|
76
|
-
private findForNamedComponents;
|
|
77
|
-
/**
|
|
78
|
-
* Whether the given "affected component" name applies to the given actual component name.
|
|
79
|
-
*
|
|
80
|
-
* The name matches if the name is exactly the same, or the name in the notice
|
|
81
|
-
* is a prefix of the node name when the query ends in '.'.
|
|
82
|
-
*/
|
|
83
|
-
private componentNameMatches;
|
|
84
|
-
/**
|
|
85
|
-
* Adds dynamic values from the given ActualComponents
|
|
86
|
-
*
|
|
87
|
-
* If there are multiple components with the same dynamic name, they are joined
|
|
88
|
-
* by a comma.
|
|
89
|
-
*/
|
|
90
|
-
private addDynamicValues;
|
|
91
|
-
/**
|
|
92
|
-
* Treat 'framework' as an alias for either `aws-cdk-lib.` or `@aws-cdk/core.`.
|
|
93
|
-
*
|
|
94
|
-
* Because it's EITHER `aws-cdk-lib` or `@aws-cdk/core`, we need to add multiple
|
|
95
|
-
* arrays at the top level.
|
|
96
|
-
*/
|
|
97
|
-
private resolveAliases;
|
|
98
|
-
/**
|
|
99
|
-
* Load the construct tree from the given directory and return its components
|
|
100
|
-
*/
|
|
101
|
-
private constructTreeComponents;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Information about a bootstrapped environment.
|
|
105
|
-
*/
|
|
106
|
-
export interface BootstrappedEnvironment {
|
|
107
|
-
readonly bootstrapStackVersion: number;
|
|
108
|
-
readonly environment: Environment;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Provides access to notices the CLI can display.
|
|
112
|
-
*/
|
|
113
|
-
export declare class Notices {
|
|
114
|
-
/**
|
|
115
|
-
* Create an instance. Note that this replaces the singleton.
|
|
116
|
-
*/
|
|
117
|
-
static create(props: NoticesProps): Notices;
|
|
118
|
-
/**
|
|
119
|
-
* Get the singleton instance. May return `undefined` if `create` has not been called.
|
|
120
|
-
*/
|
|
121
|
-
static get(): Notices | undefined;
|
|
122
|
-
private static _instance;
|
|
123
|
-
private readonly context;
|
|
124
|
-
private readonly output;
|
|
125
|
-
private readonly acknowledgedIssueNumbers;
|
|
126
|
-
private readonly includeAcknowlegded;
|
|
127
|
-
private readonly httpOptions;
|
|
128
|
-
private readonly ioHelper;
|
|
129
|
-
private readonly ioMessages;
|
|
130
|
-
private readonly cliVersion;
|
|
131
|
-
private data;
|
|
132
|
-
private readonly bootstrappedEnvironments;
|
|
133
|
-
private constructor();
|
|
134
|
-
/**
|
|
135
|
-
* Add a bootstrap information to filter on. Can have multiple values
|
|
136
|
-
* in case of multi-environment deployments.
|
|
137
|
-
*/
|
|
138
|
-
addBootstrappedEnvironment(bootstrapped: BootstrappedEnvironment): void;
|
|
139
|
-
/**
|
|
140
|
-
* Refresh the list of notices this instance is aware of.
|
|
141
|
-
* To make sure this never crashes the CLI process, all failures are caught and
|
|
142
|
-
* silently logged.
|
|
143
|
-
*
|
|
144
|
-
* If context is configured to not display notices, this will no-op.
|
|
145
|
-
*/
|
|
146
|
-
refresh(options?: NoticesRefreshOptions): Promise<void>;
|
|
147
|
-
/**
|
|
148
|
-
* Display the relevant notices (unless context dictates we shouldn't).
|
|
149
|
-
*/
|
|
150
|
-
display(options?: NoticesPrintOptions): void;
|
|
151
|
-
}
|
|
152
|
-
export interface Component {
|
|
153
|
-
name: string;
|
|
154
|
-
/**
|
|
155
|
-
* The range of affected versions
|
|
156
|
-
*/
|
|
157
|
-
version: string;
|
|
158
|
-
}
|
|
159
|
-
export interface Notice {
|
|
160
|
-
title: string;
|
|
161
|
-
issueNumber: number;
|
|
162
|
-
overview: string;
|
|
163
|
-
/**
|
|
164
|
-
* A set of affected components
|
|
165
|
-
*
|
|
166
|
-
* The canonical form of a list of components is in Disjunctive Normal Form
|
|
167
|
-
* (i.e., an OR of ANDs). This is the form when the list of components is a
|
|
168
|
-
* doubly nested array: the notice matches if all components of at least one
|
|
169
|
-
* of the top-level array matches.
|
|
170
|
-
*
|
|
171
|
-
* If the `components` is a single-level array, it is evaluated as an OR; it
|
|
172
|
-
* matches if any of the components matches.
|
|
173
|
-
*/
|
|
174
|
-
components: Array<Component | Component[]>;
|
|
175
|
-
schemaVersion: string;
|
|
176
|
-
severity?: string;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Notice after passing the filter. A filter can augment a notice with
|
|
180
|
-
* dynamic values as it has access to the dynamic matching data.
|
|
181
|
-
*/
|
|
182
|
-
export declare class FilteredNotice {
|
|
183
|
-
readonly notice: Notice;
|
|
184
|
-
private readonly dynamicValues;
|
|
185
|
-
constructor(notice: Notice);
|
|
186
|
-
addDynamicValue(key: string, value: string): void;
|
|
187
|
-
format(): string;
|
|
188
|
-
private formatOverview;
|
|
189
|
-
private resolveDynamicValues;
|
|
190
|
-
}
|
|
191
|
-
export interface NoticeDataSource {
|
|
192
|
-
fetch(): Promise<Notice[]>;
|
|
193
|
-
}
|
|
194
|
-
export declare class WebsiteNoticeDataSource implements NoticeDataSource {
|
|
195
|
-
private readonly ioHelper;
|
|
196
|
-
private readonly options;
|
|
197
|
-
constructor(ioHelper: IoHelper, options?: SdkHttpOptions);
|
|
198
|
-
fetch(): Promise<Notice[]>;
|
|
199
|
-
}
|
|
200
|
-
export declare class CachedDataSource implements NoticeDataSource {
|
|
201
|
-
private readonly ioMessages;
|
|
202
|
-
private readonly fileName;
|
|
203
|
-
private readonly dataSource;
|
|
204
|
-
private readonly skipCache?;
|
|
205
|
-
constructor(ioMessages: IoDefaultMessages, fileName: string, dataSource: NoticeDataSource, skipCache?: boolean | undefined);
|
|
206
|
-
fetch(): Promise<Notice[]>;
|
|
207
|
-
private fetchInner;
|
|
208
|
-
private load;
|
|
209
|
-
private save;
|
|
210
|
-
}
|