cdk-nextjs 0.5.3 → 0.5.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/.jsii +80 -6
- package/.jsii.tabl.json +1 -1
- package/CLAUDE.md +76 -0
- package/assets/lambdas/post-deploy/post-deploy.lambda/index.js +5 -1
- package/lib/adapter/adapter.mjs +5 -1
- package/lib/adapter/cache-handler.js +24 -21
- package/lib/adapter/cache-handler.mjs +15748 -17466
- package/lib/adapter/cache-handler.test.js +5 -2
- package/lib/adapter/local-file-cache-handler.js +6 -2
- package/lib/adapter/memory-cache-handler.js +63 -4
- package/lib/adapter/s3-cache-handler.js +10 -3
- package/lib/lambdas/post-deploy/post-deploy-function.js +36 -3
- package/lib/lambdas/post-deploy/post-deploy.lambda.js +5 -2
- package/lib/lambdas/post-deploy/prune-cache-bucket.js +5 -2
- package/lib/lambdas/post-deploy/prune-revalidation-table.js +5 -2
- package/lib/lambdas/post-deploy/prune-s3.js +5 -2
- package/lib/nextjs-api.js +10 -4
- package/lib/nextjs-build/nextjs-build.js +41 -5
- package/lib/nextjs-build/patch-fetch.js +1 -1
- package/lib/nextjs-build/patch-fetch.test.d.ts +1 -0
- package/lib/nextjs-build/patch-fetch.test.js +168 -0
- package/lib/nextjs-cache.js +7 -4
- package/lib/nextjs-compute/nextjs-containers.js +7 -4
- package/lib/nextjs-compute/nextjs-functions.js +5 -4
- package/lib/nextjs-distribution.js +34 -26
- package/lib/nextjs-post-deploy.js +5 -4
- package/lib/nextjs-static-assets.js +6 -4
- package/lib/root-constructs/nextjs-base-construct.js +9 -4
- package/lib/root-constructs/nextjs-global-containers.js +6 -4
- package/lib/root-constructs/nextjs-global-functions.js +6 -4
- package/lib/root-constructs/nextjs-regional-containers.js +5 -4
- package/lib/root-constructs/nextjs-regional-functions.js +6 -4
- package/package.json +21 -23
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.pruneCacheBucket = pruneCacheBucket;
|
|
4
7
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
8
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
6
9
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
7
|
-
const debug_1 = require("debug");
|
|
10
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
11
|
const debug = (0, debug_1.default)("cdk-nextjs:post-deploy:prune-cache-bucket");
|
|
9
12
|
const s3Client = new client_s3_1.S3Client();
|
|
10
13
|
/**
|
|
@@ -92,4 +95,4 @@ async function processBatch(items, batchSize, processFn) {
|
|
|
92
95
|
}
|
|
93
96
|
return results;
|
|
94
97
|
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJ1bmUtY2FjaGUtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvcG9zdC1kZXBsb3kvcHJ1bmUtY2FjaGUtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBd0JBLDRDQTZGQztBQXJIRCw2REFBNkQ7QUFDN0Qsa0RBSzRCO0FBQzVCLDZEQUE2RDtBQUM3RCxpQ0FBNkI7QUFFN0IsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFRLEVBQUMsMkNBQTJDLENBQUMsQ0FBQztBQUVwRSxNQUFNLFFBQVEsR0FBRyxJQUFJLG9CQUFRLEVBQUUsQ0FBQztBQU9oQzs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGdCQUFnQixDQUFDLEtBQTRCO0lBQ2pFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRTdDLE1BQU0sZUFBZSxHQUFzQixFQUFFLENBQUM7SUFDOUMsSUFBSSxpQkFBaUIsR0FBdUIsU0FBUyxDQUFDO0lBQ3RELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRXpCLEdBQUcsQ0FBQztRQUNGLDZCQUE2QjtRQUM3QixNQUFNLGtCQUFrQixHQUE4QjtZQUNwRCxNQUFNLEVBQUUsVUFBVTtZQUNsQixpQkFBaUIsRUFBRSxpQkFBaUI7U0FDckMsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FDdEMsSUFBSSxnQ0FBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUM3QyxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakUsTUFBTTtRQUNSLENBQUM7UUFFRCxpREFBaUQ7UUFDakQsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMzRCxJQUFJ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LE9BQU8sR0FBUSxFQUFFLENBQUM7SUFFeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7XG4gIFMzQ2xpZW50LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZCxcbiAgRGVsZXRlT2JqZWN0c0NvbW1hbmQsXG4gIExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtczNcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCBnZXREZWJ1ZyBmcm9tIFwiZGVidWdcIjtcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZyhcImNkay1uZXh0anM6cG9zdC1kZXBsb3k6cHJ1bmUtY2FjaGUtYnVja2V0XCIpO1xuXG5jb25zdCBzM0NsaWVudCA9IG5ldyBTM0NsaWVudCgpO1xuXG5pbnRlcmZhY2UgUHJ1bmVDYWNoZUJ1Y2tldFByb3BzIHtcbiAgYnVja2V0TmFtZTogc3RyaW5nO1xuICBjdXJyZW50QnVpbGRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEdpdmVuIGBidWNrZXROYW1lYCBhbmQgYGN1cnJlbnRCdWlsZElkYCwgbGlzdCBhbGwgb2JqZWN0cyBpbiB0aGUgY2FjaGUgYnVja2V0XG4gKiBhbmQgZGVsZXRlIGFueSB0aGF0IGhhdmUgQlVJTERfSUQgcHJlZml4ZXMgdGhhdCBkb24ndCBtYXRjaCB0aGUgY3VycmVudCBidWlsZCBJRC5cbiAqIENhY2hlIG9iamVjdHMgYXJlIHByZWZpeGVkIHdpdGgge2J1aWxkSWR9LyBwYXR0ZXJuIChubyBsZWFkaW5nIHNsYXNoKS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBydW5lQ2FjaGVCdWNrZXQocHJvcHM6IFBydW5lQ2FjaGVCdWNrZXRQcm9wcykge1xuICBjb25zdCB7IGJ1Y2tldE5hbWUsIGN1cnJlbnRCdWlsZElkIH0gPSBwcm9wcztcblxuICBjb25zdCBvYmplY3RzVG9EZWxldGU6IHsgS2V5OiBzdHJpbmcgfVtdID0gW107XG4gIGxldCBjb250aW51YXRpb25Ub2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBsZXQgbGlzdE9iamVjdHNDb3VudCA9IDA7XG5cbiAgZG8ge1xuICAgIC8vIExpc3Qgb2JqZWN0cyBpbiB0aGUgYnVja2V0XG4gICAgY29uc3QgbGlzdE9iamVjdHNWMklucHV0OiBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0ID0ge1xuICAgICAgQnVja2V0OiBidWNrZXROYW1lLFxuICAgICAgQ29udGludWF0aW9uVG9rZW46IGNvbnRpbnVhdGlvblRva2VuLFxuICAgIH07XG4gICAgY29uc3QgbGlzdFJlc3BvbnNlID0gYXdhaXQgczNDbGllbnQuc2VuZChcbiAgICAgIG5ldyBMaXN0T2JqZWN0c1YyQ29tbWFuZChsaXN0T2JqZWN0c1YySW5wdXQpLFxuICAgICk7XG5cbiAgICBpZiAoIWxpc3RSZXNwb25zZS5Db250ZW50cyB8fCBsaXN0UmVzcG9uc2UuQ29udGVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgb2JqZWN0cyB0aGF0IGhhdmUgb2xkIEJVSUxEX0lEIHByZWZpeGVzXG4gICAgY29uc3Qgb2xkQ2FjaGVPYmplY3RzID0gbGlzdFJlc3BvbnNlLkNvbnRlbnRzLmZpbHRlcigob2JqKSA9PiB7XG4gICAgICBpZiAoIW9iai5LZXkpIHJldHVybiBmYWxzZTtcblxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIG9iamVjdCBrZXkgc3RhcnRzIHdpdGggYSBCVUlMRF9JRCBwcmVmaXggcGF0dGVyblxuICAgICAgLy8gRXhwZWN0ZWQgcGF0dGVybjoge2J1aWxkSWR9LyogKGJ1aWxkSWQgZm9sbG93ZWQgYnkgc2xhc2gsIG5vIGxlYWRpbmcgc2xhc2gpXG4gICAgICAvLyBSZWdleCAvXihbXlxcL10rKVxcLy8gbWF0Y2hlczogQlVJTERfSUQvLi4uIGFuZCBjYXB0dXJlcyBCVUlMRF9JRCBpbiBncm91cCAxXG4gICAgICAvLyBFeGFtcGxlOiBcImFiYzEyM2RlZjQ1Ni9wYWdlcy9pbmRleC5odG1sXCIgY2FwdHVyZXMgXCJhYmMxMjNkZWY0NTZcIlxuICAgICAgY29uc3QgYnVpbGRJZE1hdGNoID0gb2JqLktleS5tYXRjaCgvXihbXlxcL10rKVxcLy8pO1xuICAgICAgaWYgKGJ1aWxkSWRNYXRjaCkge1xuICAgICAgICBjb25zdCBvYmplY3RCdWlsZElkID0gYnVpbGRJZE1hdGNoWzFdOyAvLyBFeHRyYWN0IEJVSUxEX0lEIGZyb20gY2FwdHVyZSBncm91cFxuICAgICAgICAvLyBEZWxldGUgaWYgaXQncyBub3QgdGhlIGN1cnJlbnQgYnVpbGQgSURcbiAgICAgICAgcmV0dXJuIG9iamVjdEJ1aWxkSWQgIT09IGN1cnJlbnRCdWlsZElkO1xuICAgICAgfVxuXG4gICAgICAvLyBBbHNvIGRlbGV0ZSBvYmplY3RzIHRoYXQgZG9uJ3QgZm9sbG93IHRoZSBCVUlMRF9JRCBwcmVmaXggcGF0dGVyblxuICAgICAgLy8gVGhlc2UgbWlnaHQgYmUgbGVnYWN5IGNhY2hlIG9iamVjdHMgb3Igb2JqZWN0cyB3aXRoIGxlYWRpbmcgc2xhc2hlc1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG5cbiAgICBkZWJ1ZyhcbiAgICAgIGBGb3VuZCAke29sZENhY2hlT2JqZWN0cy5sZW5ndGh9IGNhY2hlIG9iamVjdHMgd2l0aCBvbGQgQlVJTERfSUQgcHJlZml4ZXMgdG8gZGVsZXRlYCxcbiAgICApO1xuXG4gICAgLy8gQWRkIG9iamVjdHMgdG8gZGVsZXRlIGxpc3RcbiAgICBvYmplY3RzVG9EZWxldGUucHVzaChcbiAgICAgIC4uLm9sZENhY2hlT2JqZWN0c1xuICAgICAgICAuZmlsdGVyKChvYmopID0+IG9iai5LZXkpXG4gICAgICAgIC5tYXAoKG9iaikgPT4gKHsgS2V5OiBvYmouS2V5ISB9KSksXG4gICAgKTtcblxuICAgIGlmIChsaXN0UmVzcG9uc2UuTmV4dENvbnRpbnVhdGlvblRva2VuKSB7XG4gICAgICBjb250aW51YXRpb25Ub2tlbiA9IGxpc3RSZXNwb25zZS5OZXh0Q29udGludWF0aW9uVG9rZW47XG4gICAgfVxuICAgIGxpc3RPYmplY3RzQ291bnQrKztcbiAgICAvLyBhc3N1bWUgbGVzcyB0aGFuIDEwMEsgb2JqZWN0cyAoMTAwICogMUsgb2JqZWN0cyBwZXIgTGlzdE9iamVjdHNWMkNvbW1hbmQgPSAxMDBLKVxuICB9IHdoaWxlIChjb250aW51YXRpb25Ub2tlbiAmJiBsaXN0T2JqZWN0c0NvdW50IDw9IDEwMCk7XG5cbiAgLy8gRGVsZXRlIG9iamVjdHMgaW4gcGFyYWxsZWwgYmF0Y2hlcyAocmVzcGVjdGluZyBTMydzIDEwMDAgb2JqZWN0cyBwZXIgcmVxdWVzdCBsaW1pdClcbiAgaWYgKG9iamVjdHNUb0RlbGV0ZS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgZGVsZXRlQmF0Y2hlcyA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3RzVG9EZWxldGUubGVuZ3RoOyBpICs9IDEwMDApIHtcbiAgICAgIGNvbnN0IGJhdGNoID0gb2JqZWN0c1RvRGVsZXRlLnNsaWNlKGksIGkgKyAxMDAwKTtcbiAgICAgIGRlbGV0ZUJhdGNoZXMucHVzaChiYXRjaCk7XG4gICAgfVxuXG4gICAgYXdhaXQgcHJvY2Vzc0JhdGNoKFxuICAgICAgZGVsZXRlQmF0Y2hlcyxcbiAgICAgIDUsIC8vIFByb2Nlc3MgdXAgdG8gNSBkZWxldGUgYmF0Y2hlcyBpbiBwYXJhbGxlbFxuICAgICAgYXN5bmMgKGJhdGNoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZGVidWcoXG4gICAgICAgICAgICBgRGVsZXRpbmcgY2FjaGUgb2JqZWN0czogJHtiYXRjaC5tYXAoKGIpID0+IGIuS2V5KX0gZnJvbSAke2J1Y2tldE5hbWV9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IHMzQ2xpZW50LnNlbmQoXG4gICAgICAgICAgICBuZXcgRGVsZXRlT2JqZWN0c0NvbW1hbmQoe1xuICAgICAgICAgICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAgIERlbGV0ZTogeyBPYmplY3RzOiBiYXRjaCB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkZWJ1ZyhgRGVsZXRlZCAke2JhdGNoLmxlbmd0aH0gY2FjaGUgb2JqZWN0cyBmcm9tICR7YnVja2V0TmFtZX1gKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZGVsZXRpbmcgY2FjaGUgb2JqZWN0czpcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBkZWJ1ZyhcbiAgICBgQ2FjaGUgYnVja2V0IHBydW5pbmcgY29tcGxldGUuIERlbGV0ZWQgJHtvYmplY3RzVG9EZWxldGUubGVuZ3RofSBvYmplY3RzIGZyb20gJHtidWNrZXROYW1lfWAsXG4gICk7XG59XG5cbi8qKlxuICogUHJvY2VzcyBvYmplY3RzIGluIGJhdGNoZXMgdG8gYXZvaWQgb3ZlcndoZWxtaW5nIHRoZSBzeXN0ZW1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0JhdGNoPFQsIFI+KFxuICBpdGVtczogVFtdLFxuICBiYXRjaFNpemU6IG51bWJlcixcbiAgcHJvY2Vzc0ZuOiAoaXRlbTogVCkgPT4gUHJvbWlzZTxSPixcbik6IFByb21pc2U8UltdPiB7XG4gIGNvbnN0IHJlc3VsdHM6IFJbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpICs9IGJhdGNoU2l6ZSkge1xuICAgIGNvbnN0IGJhdGNoID0gaXRlbXMuc2xpY2UoaSwgaSArIGJhdGNoU2l6ZSk7XG4gICAgY29uc3QgYmF0Y2hSZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoYmF0Y2gubWFwKHByb2Nlc3NGbikpO1xuICAgIHJlc3VsdHMucHVzaCguLi5iYXRjaFJlc3VsdHMpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59XG4iXX0=
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJ1bmUtY2FjaGUtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvcG9zdC1kZXBsb3kvcHJ1bmUtY2FjaGUtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBd0JBLDRDQTZGQztBQXJIRCw2REFBNkQ7QUFDN0Qsa0RBSzRCO0FBQzVCLDZEQUE2RDtBQUM3RCxrREFBNkI7QUFFN0IsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFRLEVBQUMsMkNBQTJDLENBQUMsQ0FBQztBQUVwRSxNQUFNLFFBQVEsR0FBRyxJQUFJLG9CQUFRLEVBQUUsQ0FBQztBQU9oQzs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGdCQUFnQixDQUFDLEtBQTRCO0lBQ2pFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRTdDLE1BQU0sZUFBZSxHQUFzQixFQUFFLENBQUM7SUFDOUMsSUFBSSxpQkFBaUIsR0FBdUIsU0FBUyxDQUFDO0lBQ3RELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRXpCLEdBQUcsQ0FBQztRQUNGLDZCQUE2QjtRQUM3QixNQUFNLGtCQUFrQixHQUE4QjtZQUNwRCxNQUFNLEVBQUUsVUFBVTtZQUNsQixpQkFBaUIsRUFBRSxpQkFBaUI7U0FDckMsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FDdEMsSUFBSSxnQ0FBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUM3QyxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakUsTUFBTTtRQUNSLENBQUM7UUFFRCxpREFBaUQ7UUFDakQsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMzRCxJ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QUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7SUFFeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7XG4gIFMzQ2xpZW50LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZCxcbiAgRGVsZXRlT2JqZWN0c0NvbW1hbmQsXG4gIExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtczNcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCBnZXREZWJ1ZyBmcm9tIFwiZGVidWdcIjtcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZyhcImNkay1uZXh0anM6cG9zdC1kZXBsb3k6cHJ1bmUtY2FjaGUtYnVja2V0XCIpO1xuXG5jb25zdCBzM0NsaWVudCA9IG5ldyBTM0NsaWVudCgpO1xuXG5pbnRlcmZhY2UgUHJ1bmVDYWNoZUJ1Y2tldFByb3BzIHtcbiAgYnVja2V0TmFtZTogc3RyaW5nO1xuICBjdXJyZW50QnVpbGRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEdpdmVuIGBidWNrZXROYW1lYCBhbmQgYGN1cnJlbnRCdWlsZElkYCwgbGlzdCBhbGwgb2JqZWN0cyBpbiB0aGUgY2FjaGUgYnVja2V0XG4gKiBhbmQgZGVsZXRlIGFueSB0aGF0IGhhdmUgQlVJTERfSUQgcHJlZml4ZXMgdGhhdCBkb24ndCBtYXRjaCB0aGUgY3VycmVudCBidWlsZCBJRC5cbiAqIENhY2hlIG9iamVjdHMgYXJlIHByZWZpeGVkIHdpdGgge2J1aWxkSWR9LyBwYXR0ZXJuIChubyBsZWFkaW5nIHNsYXNoKS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBydW5lQ2FjaGVCdWNrZXQocHJvcHM6IFBydW5lQ2FjaGVCdWNrZXRQcm9wcykge1xuICBjb25zdCB7IGJ1Y2tldE5hbWUsIGN1cnJlbnRCdWlsZElkIH0gPSBwcm9wcztcblxuICBjb25zdCBvYmplY3RzVG9EZWxldGU6IHsgS2V5OiBzdHJpbmcgfVtdID0gW107XG4gIGxldCBjb250aW51YXRpb25Ub2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBsZXQgbGlzdE9iamVjdHNDb3VudCA9IDA7XG5cbiAgZG8ge1xuICAgIC8vIExpc3Qgb2JqZWN0cyBpbiB0aGUgYnVja2V0XG4gICAgY29uc3QgbGlzdE9iamVjdHNWMklucHV0OiBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0ID0ge1xuICAgICAgQnVja2V0OiBidWNrZXROYW1lLFxuICAgICAgQ29udGludWF0aW9uVG9rZW46IGNvbnRpbnVhdGlvblRva2VuLFxuICAgIH07XG4gICAgY29uc3QgbGlzdFJlc3BvbnNlID0gYXdhaXQgczNDbGllbnQuc2VuZChcbiAgICAgIG5ldyBMaXN0T2JqZWN0c1YyQ29tbWFuZChsaXN0T2JqZWN0c1YySW5wdXQpLFxuICAgICk7XG5cbiAgICBpZiAoIWxpc3RSZXNwb25zZS5Db250ZW50cyB8fCBsaXN0UmVzcG9uc2UuQ29udGVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgb2JqZWN0cyB0aGF0IGhhdmUgb2xkIEJVSUxEX0lEIHByZWZpeGVzXG4gICAgY29uc3Qgb2xkQ2FjaGVPYmplY3RzID0gbGlzdFJlc3BvbnNlLkNvbnRlbnRzLmZpbHRlcigob2JqKSA9PiB7XG4gICAgICBpZiAoIW9iai5LZXkpIHJldHVybiBmYWxzZTtcblxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIG9iamVjdCBrZXkgc3RhcnRzIHdpdGggYSBCVUlMRF9JRCBwcmVmaXggcGF0dGVyblxuICAgICAgLy8gRXhwZWN0ZWQgcGF0dGVybjoge2J1aWxkSWR9LyogKGJ1aWxkSWQgZm9sbG93ZWQgYnkgc2xhc2gsIG5vIGxlYWRpbmcgc2xhc2gpXG4gICAgICAvLyBSZWdleCAvXihbXlxcL10rKVxcLy8gbWF0Y2hlczogQlVJTERfSUQvLi4uIGFuZCBjYXB0dXJlcyBCVUlMRF9JRCBpbiBncm91cCAxXG4gICAgICAvLyBFeGFtcGxlOiBcImFiYzEyM2RlZjQ1Ni9wYWdlcy9pbmRleC5odG1sXCIgY2FwdHVyZXMgXCJhYmMxMjNkZWY0NTZcIlxuICAgICAgY29uc3QgYnVpbGRJZE1hdGNoID0gb2JqLktleS5tYXRjaCgvXihbXlxcL10rKVxcLy8pO1xuICAgICAgaWYgKGJ1aWxkSWRNYXRjaCkge1xuICAgICAgICBjb25zdCBvYmplY3RCdWlsZElkID0gYnVpbGRJZE1hdGNoWzFdOyAvLyBFeHRyYWN0IEJVSUxEX0lEIGZyb20gY2FwdHVyZSBncm91cFxuICAgICAgICAvLyBEZWxldGUgaWYgaXQncyBub3QgdGhlIGN1cnJlbnQgYnVpbGQgSURcbiAgICAgICAgcmV0dXJuIG9iamVjdEJ1aWxkSWQgIT09IGN1cnJlbnRCdWlsZElkO1xuICAgICAgfVxuXG4gICAgICAvLyBBbHNvIGRlbGV0ZSBvYmplY3RzIHRoYXQgZG9uJ3QgZm9sbG93IHRoZSBCVUlMRF9JRCBwcmVmaXggcGF0dGVyblxuICAgICAgLy8gVGhlc2UgbWlnaHQgYmUgbGVnYWN5IGNhY2hlIG9iamVjdHMgb3Igb2JqZWN0cyB3aXRoIGxlYWRpbmcgc2xhc2hlc1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG5cbiAgICBkZWJ1ZyhcbiAgICAgIGBGb3VuZCAke29sZENhY2hlT2JqZWN0cy5sZW5ndGh9IGNhY2hlIG9iamVjdHMgd2l0aCBvbGQgQlVJTERfSUQgcHJlZml4ZXMgdG8gZGVsZXRlYCxcbiAgICApO1xuXG4gICAgLy8gQWRkIG9iamVjdHMgdG8gZGVsZXRlIGxpc3RcbiAgICBvYmplY3RzVG9EZWxldGUucHVzaChcbiAgICAgIC4uLm9sZENhY2hlT2JqZWN0c1xuICAgICAgICAuZmlsdGVyKChvYmopID0+IG9iai5LZXkpXG4gICAgICAgIC5tYXAoKG9iaikgPT4gKHsgS2V5OiBvYmouS2V5ISB9KSksXG4gICAgKTtcblxuICAgIGlmIChsaXN0UmVzcG9uc2UuTmV4dENvbnRpbnVhdGlvblRva2VuKSB7XG4gICAgICBjb250aW51YXRpb25Ub2tlbiA9IGxpc3RSZXNwb25zZS5OZXh0Q29udGludWF0aW9uVG9rZW47XG4gICAgfVxuICAgIGxpc3RPYmplY3RzQ291bnQrKztcbiAgICAvLyBhc3N1bWUgbGVzcyB0aGFuIDEwMEsgb2JqZWN0cyAoMTAwICogMUsgb2JqZWN0cyBwZXIgTGlzdE9iamVjdHNWMkNvbW1hbmQgPSAxMDBLKVxuICB9IHdoaWxlIChjb250aW51YXRpb25Ub2tlbiAmJiBsaXN0T2JqZWN0c0NvdW50IDw9IDEwMCk7XG5cbiAgLy8gRGVsZXRlIG9iamVjdHMgaW4gcGFyYWxsZWwgYmF0Y2hlcyAocmVzcGVjdGluZyBTMydzIDEwMDAgb2JqZWN0cyBwZXIgcmVxdWVzdCBsaW1pdClcbiAgaWYgKG9iamVjdHNUb0RlbGV0ZS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgZGVsZXRlQmF0Y2hlcyA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3RzVG9EZWxldGUubGVuZ3RoOyBpICs9IDEwMDApIHtcbiAgICAgIGNvbnN0IGJhdGNoID0gb2JqZWN0c1RvRGVsZXRlLnNsaWNlKGksIGkgKyAxMDAwKTtcbiAgICAgIGRlbGV0ZUJhdGNoZXMucHVzaChiYXRjaCk7XG4gICAgfVxuXG4gICAgYXdhaXQgcHJvY2Vzc0JhdGNoKFxuICAgICAgZGVsZXRlQmF0Y2hlcyxcbiAgICAgIDUsIC8vIFByb2Nlc3MgdXAgdG8gNSBkZWxldGUgYmF0Y2hlcyBpbiBwYXJhbGxlbFxuICAgICAgYXN5bmMgKGJhdGNoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZGVidWcoXG4gICAgICAgICAgICBgRGVsZXRpbmcgY2FjaGUgb2JqZWN0czogJHtiYXRjaC5tYXAoKGIpID0+IGIuS2V5KX0gZnJvbSAke2J1Y2tldE5hbWV9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IHMzQ2xpZW50LnNlbmQoXG4gICAgICAgICAgICBuZXcgRGVsZXRlT2JqZWN0c0NvbW1hbmQoe1xuICAgICAgICAgICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAgIERlbGV0ZTogeyBPYmplY3RzOiBiYXRjaCB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkZWJ1ZyhgRGVsZXRlZCAke2JhdGNoLmxlbmd0aH0gY2FjaGUgb2JqZWN0cyBmcm9tICR7YnVja2V0TmFtZX1gKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZGVsZXRpbmcgY2FjaGUgb2JqZWN0czpcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBkZWJ1ZyhcbiAgICBgQ2FjaGUgYnVja2V0IHBydW5pbmcgY29tcGxldGUuIERlbGV0ZWQgJHtvYmplY3RzVG9EZWxldGUubGVuZ3RofSBvYmplY3RzIGZyb20gJHtidWNrZXROYW1lfWAsXG4gICk7XG59XG5cbi8qKlxuICogUHJvY2VzcyBvYmplY3RzIGluIGJhdGNoZXMgdG8gYXZvaWQgb3ZlcndoZWxtaW5nIHRoZSBzeXN0ZW1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0JhdGNoPFQsIFI+KFxuICBpdGVtczogVFtdLFxuICBiYXRjaFNpemU6IG51bWJlcixcbiAgcHJvY2Vzc0ZuOiAoaXRlbTogVCkgPT4gUHJvbWlzZTxSPixcbik6IFByb21pc2U8UltdPiB7XG4gIGNvbnN0IHJlc3VsdHM6IFJbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpICs9IGJhdGNoU2l6ZSkge1xuICAgIGNvbnN0IGJhdGNoID0gaXRlbXMuc2xpY2UoaSwgaSArIGJhdGNoU2l6ZSk7XG4gICAgY29uc3QgYmF0Y2hSZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoYmF0Y2gubWFwKHByb2Nlc3NGbikpO1xuICAgIHJlc3VsdHMucHVzaCguLi5iYXRjaFJlc3VsdHMpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59XG4iXX0=
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.pruneRevalidationTable = pruneRevalidationTable;
|
|
4
7
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
8
|
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
6
9
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
7
|
-
const debug_1 = require("debug");
|
|
10
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
11
|
const debug = (0, debug_1.default)("cdk-nextjs:post-deploy:prune-revalidation-table");
|
|
9
12
|
const dynamoClient = new client_dynamodb_1.DynamoDBClient();
|
|
10
13
|
/**
|
|
@@ -130,4 +133,4 @@ async function processBatch(items, batchSize, processFn) {
|
|
|
130
133
|
}
|
|
131
134
|
return results;
|
|
132
135
|
}
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJ1bmUtcmV2YWxpZGF0aW9uLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvcG9zdC1kZXBsb3kvcHJ1bmUtcmV2YWxpZGF0aW9uLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNEJBLHdEQXdIQztBQXBKRCw2REFBNkQ7QUFDN0QsOERBTWtDO0FBQ2xDLDZEQUE2RDtBQUM3RCxpQ0FBNkI7QUFFN0IsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFRLEVBQUMsaURBQWlELENBQUMsQ0FBQztBQUUxRSxNQUFNLFlBQVksR0FBRyxJQUFJLGdDQUFjLEVBQUUsQ0FBQztBQU8xQzs7Ozs7OztHQU9HO0FBQ0ksS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxLQUFrQztJQUVsQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUU1Qyw0Q0FBNEM7SUFDNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxnQ0FBYyxDQUFDO1FBQ3BDLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLEdBQUcsRUFBRTtZQUNILEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUU7WUFDckIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLGVBQWUsRUFBRTtTQUMzQjtLQUNGLENBQUMsQ0FBQztJQUVILElBQUksZUFBbUMsQ0FBQztJQUN4QyxJQUFJLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLEtBQUssQ0FBQyw0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QUEyQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxZQUFZLENBQ3pCLEtBQVUsRUFDVixTQUFpQixFQUNqQixTQUFrQztJQUVsQyxNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7SUFFeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7XG4gIER5bmFtb0RCQ2xpZW50LFxuICBRdWVyeUNvbW1hbmQsXG4gIEdldEl0ZW1Db21tYW5kLFxuICBQdXRJdGVtQ29tbWFuZCxcbiAgQmF0Y2hXcml0ZUl0ZW1Db21tYW5kLFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgZ2V0RGVidWcgZnJvbSBcImRlYnVnXCI7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOnBvc3QtZGVwbG95OnBydW5lLXJldmFsaWRhdGlvbi10YWJsZVwiKTtcblxuY29uc3QgZHluYW1vQ2xpZW50ID0gbmV3IER5bmFtb0RCQ2xpZW50KCk7XG5cbmludGVyZmFjZSBQcnVuZVJldmFsaWRhdGlvblRhYmxlUHJvcHMge1xuICB0YWJsZU5hbWU6IHN0cmluZztcbiAgY3VycmVudEJ1aWxkSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHaXZlbiBgdGFibGVOYW1lYCBhbmQgYGN1cnJlbnRCdWlsZElkYCwgcXVlcnkgdGhlIHByZXZpb3VzIGJ1aWxkJ3MgcmV2YWxpZGF0aW9uIGVudHJpZXNcbiAqIGFuZCBkZWxldGUgdGhlbSBlZmZpY2llbnRseS4gVXNlcyBtZXRhZGF0YSBlbnRyeSB0byB0cmFjayBjdXJyZW50IGJ1aWxkIElELlxuICpcbiAqIFNjaGVtYTpcbiAqIC0gUmV2YWxpZGF0aW9uIGVudHJpZXM6IHBrPWJ1aWxkSWQsIHNrPXRhZyNjYWNoZUtleVxuICogLSBNZXRhZGF0YSBlbnRyeTogcGs9XCJNRVRBREFUQVwiLCBzaz1cIkNVUlJFTlRfQlVJTERcIiwgYnVpbGRJZD1jdXJyZW50QnVpbGRJZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJ1bmVSZXZhbGlkYXRpb25UYWJsZShcbiAgcHJvcHM6IFBydW5lUmV2YWxpZGF0aW9uVGFibGVQcm9wcyxcbikge1xuICBjb25zdCB7IHRhYmxlTmFtZSwgY3VycmVudEJ1aWxkSWQgfSA9IHByb3BzO1xuXG4gIC8vIDEuIFJlYWQgbWV0YWRhdGEgdG8gZ2V0IHByZXZpb3VzIGJ1aWxkIElEXG4gIGNvbnN0IGdldENvbW1hbmQgPSBuZXcgR2V0SXRlbUNvbW1hbmQoe1xuICAgIFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIEtleToge1xuICAgICAgcGs6IHsgUzogXCJNRVRBREFUQVwiIH0sXG4gICAgICBzazogeyBTOiBcIkNVUlJFTlRfQlVJTERcIiB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIGxldCBwcmV2aW91c0J1aWxkSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdHJ5IHtcbiAgICBjb25zdCBtZXRhZGF0YVJlc3BvbnNlID0gYXdhaXQgZHluYW1vQ2xpZW50LnNlbmQoZ2V0Q29tbWFuZCk7XG4gICAgcHJldmlvdXNCdWlsZElkID0gbWV0YWRhdGFSZXNwb25zZS5JdGVtPy5idWlsZElkPy5TO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGRlYnVnKFwiTm8gbWV0YWRhdGEgZW50cnkgZm91bmQsIHRoaXMgbWF5IGJlIHRoZSBmaXJzdCBkZXBsb3ltZW50XCIpO1xuICB9XG5cbiAgaWYgKCFwcmV2aW91c0J1aWxkSWQpIHtcbiAgICBkZWJ1ZyhcIk5vIHByZXZpb3VzIGJ1aWxkIHRvIHBydW5lXCIpO1xuICAgIC8vIFVwZGF0ZSBtZXRhZGF0YSB3aXRoIGN1cnJlbnQgYnVpbGQgSUQgZm9yIG5leHQgZGVwbG95bWVudFxuICAgIGF3YWl0IHVwZGF0ZU1ldGFkYXRhKHRhYmxlTmFtZSwgY3VycmVudEJ1aWxkSWQpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChwcmV2aW91c0J1aWxkSWQgPT09IGN1cnJlbnRCdWlsZElkKSB7XG4gICAgZGVidWcoXG4gICAgICBgUHJldmlvdXMgYnVpbGQgSUQgbWF0Y2hlcyBjdXJyZW50IGJ1aWxkIElEICgke2N1cnJlbnRCdWlsZElkfSksIG5vdGhpbmcgdG8gcHJ1bmVgLFxuICAgICk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZGVidWcoYFBydW5pbmcgcmV2YWxpZGF0aW9uIGVudHJpZXMgZm9yIHByZXZpb3VzIGJ1aWxkOiAke3ByZXZpb3VzQnVpbGRJZH1gKTtcblxuICAvLyAyLiBRdWVyeSBhbGwgaXRlbXMgZm9yIHByZXZpb3VzIGJ1aWxkIElEIChlZmZpY2llbnQgcGFydGl0aW9uIHF1ZXJ5KVxuICBjb25zdCBpdGVtc1RvRGVsZXRlOiBBcnJheTx7IHBrOiB7IFM6IHN0cmluZyB9OyBzazogeyBTOiBzdHJpbmcgfSB9PiA9IFtdO1xuICBsZXQgbGFzdEV2YWx1YXRlZEtleTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBkbyB7XG4gICAgY29uc3QgcXVlcnlDb21tYW5kOiBRdWVyeUNvbW1hbmQgPSBuZXcgUXVlcnlDb21tYW5kKHtcbiAgICAgIFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgICAgS2V5Q29uZGl0aW9uRXhwcmVzc2lvbjogXCJwayA9IDpwa1wiLFxuICAgICAgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgICBcIjpwa1wiOiB7IFM6IHByZXZpb3VzQnVpbGRJZCB9LFxuICAgICAgfSxcbiAgICAgIEV4Y2x1c2l2ZVN0YXJ0S2V5OiBsYXN0RXZhbHVhdGVkS2V5LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBkeW5hbW9DbGllbnQuc2VuZChxdWVyeUNvbW1hbmQpO1xuXG4gICAgaWYgKHJlc3BvbnNlLkl0ZW1zICYmIHJlc3BvbnNlLkl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiByZXNwb25zZS5JdGVtcykge1xuICAgICAgICBpZiAoaXRlbS5waz8uUyAmJiBpdGVtLnNrPy5TKSB7XG4gICAgICAgICAgaXRlbXNUb0RlbGV0ZS5wdXNoKHtcbiAgICAgICAgICAgIHBrOiB7IFM6IGl0ZW0ucGsuUyB9LFxuICAgICAgICAgICAgc2s6IHsgUzogaXRlbS5zay5TIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsYXN0RXZhbHVhdGVkS2V5ID0gcmVzcG9uc2UuTGFzdEV2YWx1YXRlZEtleTtcbiAgfSB3aGlsZSAobGFzdEV2YWx1YXRlZEtleSk7XG5cbiAgZGVidWcoXG4gICAgYEZvdW5kICR7aXRlbXNUb0RlbGV0ZS5sZW5ndGh9IHJldmFsaWRhdGlvbiBlbnRyaWVzIHRvIGRlbGV0ZSBmb3IgYnVpbGQgJHtwcmV2aW91c0J1aWxkSWR9YCxcbiAgKTtcblxuICAvLyAzLiBEZWxldGUgaXRlbXMgaW4gYmF0Y2hlcyAocmVzcGVjdGluZyBEeW5hbW9EQidzIDI1IGl0ZW1zIHBlciBiYXRjaCBsaW1pdClcbiAgaWYgKGl0ZW1zVG9EZWxldGUubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGRlbGV0ZUJhdGNoZXMgPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXNUb0RlbGV0ZS5sZW5ndGg7IGkgKz0gMjUpIHtcbiAgICAgIGNvbnN0IGJhdGNoID0gaXRlbXNUb0RlbGV0ZS5zbGljZShpLCBpICsgMjUpO1xuICAgICAgZGVsZXRlQmF0Y2hlcy5wdXNoKGJhdGNoKTtcbiAgICB9XG5cbiAgICBhd2FpdCBwcm9jZXNzQmF0Y2goXG4gICAgICBkZWxldGVCYXRjaGVzLFxuICAgICAgNSwgLy8gUHJvY2VzcyB1cCB0byA1IGRlbGV0ZSBiYXRjaGVzIGluIHBhcmFsbGVsXG4gICAgICBhc3luYyAoYmF0Y2gpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBkZWxldGVSZXF1ZXN0cyA9IGJhdGNoLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICAgIERlbGV0ZVJlcXVlc3Q6IHtcbiAgICAgICAgICAgICAgS2V5OiBpdGVtLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBEZWxldGluZyByZXZhbGlkYXRpb24gZW50cmllczogJHtiYXRjaC5tYXAoKGIpID0+IGAke2IucGsuU30vJHtiLnNrLlN9YCkuam9pbihcIiwgXCIpfSBmcm9tICR7dGFibGVOYW1lfWAsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGF3YWl0IGR5bmFtb0NsaWVudC5zZW5kKFxuICAgICAgICAgICAgbmV3IEJhdGNoV3JpdGVJdGVtQ29tbWFuZCh7XG4gICAgICAgICAgICAgIFJlcXVlc3RJdGVtczoge1xuICAgICAgICAgICAgICAgIFt0YWJsZU5hbWVdOiBkZWxldGVSZXF1ZXN0cyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBEZWxldGVkICR7YmF0Y2gubGVuZ3RofSByZXZhbGlkYXRpb24gZW50cmllcyBmcm9tICR7dGFibGVOYW1lfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZGVsZXRpbmcgcmV2YWxpZGF0aW9uIGVudHJpZXM6XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLy8gNC4gVXBkYXRlIG1ldGFkYXRhIHdpdGggbmV3IGJ1aWxkIElEXG4gIGF3YWl0IHVwZGF0ZU1ldGFkYXRhKHRhYmxlTmFtZSwgY3VycmVudEJ1aWxkSWQpO1xuXG4gIGRlYnVnKFxuICAgIGBSZXZhbGlkYXRpb24gdGFibGUgcHJ1bmluZyBjb21wbGV0ZS4gRGVsZXRlZCAke2l0ZW1zVG9EZWxldGUubGVuZ3RofSBlbnRyaWVzIGZyb20gJHt0YWJsZU5hbWV9YCxcbiAgKTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgdGhlIG1ldGFkYXRhIGVudHJ5IHdpdGggdGhlIGN1cnJlbnQgYnVpbGQgSURcbiAqL1xuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWV0YWRhdGEoXG4gIHRhYmxlTmFtZTogc3RyaW5nLFxuICBjdXJyZW50QnVpbGRJZDogc3RyaW5nLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHB1dENvbW1hbmQgPSBuZXcgUHV0SXRlbUNvbW1hbmQoe1xuICAgIFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIEl0ZW06IHtcbiAgICAgIHBrOiB7IFM6IFwiTUVUQURBVEFcIiB9LFxuICAgICAgc2s6IHsgUzogXCJDVVJSRU5UX0JVSUxEXCIgfSxcbiAgICAgIGJ1aWxkSWQ6IHsgUzogY3VycmVudEJ1aWxkSWQgfSxcbiAgICAgIHVwZGF0ZWRBdDogeyBOOiBEYXRlLm5vdygpLnRvU3RyaW5nKCkgfSxcbiAgICB9LFxuICB9KTtcblxuICBhd2FpdCBkeW5hbW9DbGllbnQuc2VuZChwdXRDb21tYW5kKTtcbiAgZGVidWcoYFVwZGF0ZWQgbWV0YWRhdGEgd2l0aCBjdXJyZW50IGJ1aWxkIElEOiAke2N1cnJlbnRCdWlsZElkfWApO1xufVxuXG4vKipcbiAqIFByb2Nlc3MgaXRlbXMgaW4gYmF0Y2hlcyB0byBhdm9pZCBvdmVyd2hlbG1pbmcgdGhlIHN5c3RlbVxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzQmF0Y2g8VCwgUj4oXG4gIGl0ZW1zOiBUW10sXG4gIGJhdGNoU2l6ZTogbnVtYmVyLFxuICBwcm9jZXNzRm46IChpdGVtOiBUKSA9PiBQcm9taXNlPFI+LFxuKTogUHJvbWlzZTxSW10+IHtcbiAgY29uc3QgcmVzdWx0czogUltdID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkgKz0gYmF0Y2hTaXplKSB7XG4gICAgY29uc3QgYmF0Y2ggPSBpdGVtcy5zbGljZShpLCBpICsgYmF0Y2hTaXplKTtcbiAgICBjb25zdCBiYXRjaFJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChiYXRjaC5tYXAocHJvY2Vzc0ZuKSk7XG4gICAgcmVzdWx0cy5wdXNoKC4uLmJhdGNoUmVzdWx0cyk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn1cbiJdfQ==
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJ1bmUtcmV2YWxpZGF0aW9uLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvcG9zdC1kZXBsb3kvcHJ1bmUtcmV2YWxpZGF0aW9uLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBNEJBLHdEQXdIQztBQXBKRCw2REFBNkQ7QUFDN0QsOERBTWtDO0FBQ2xDLDZEQUE2RDtBQUM3RCxrREFBNkI7QUFFN0IsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFRLEVBQUMsaURBQWlELENBQUMsQ0FBQztBQUUxRSxNQUFNLFlBQVksR0FBRyxJQUFJLGdDQUFjLEVBQUUsQ0FBQztBQU8xQzs7Ozs7OztHQU9HO0FBQ0ksS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxLQUFrQztJQUVsQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUU1Qyw0Q0FBNEM7SUFDNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxnQ0FBYyxDQUFDO1FBQ3BDLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLEdBQUcsRUFBRTtZQUNILEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUU7WUFDckIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLGVBQWUsRUFBRTtTQUMzQjtLQUNGLENBQUMsQ0FBQztJQUVILElBQUksZUFBbUMsQ0FBQztJQUN4QyxJQUFJLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLEtBQUssQ0FB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LDJDQUEyQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxZQUFZLENBQ3pCLEtBQVUsRUFDVixTQUFpQixFQUNqQixTQUFrQztJQUVsQyxNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7SUFFeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7XG4gIER5bmFtb0RCQ2xpZW50LFxuICBRdWVyeUNvbW1hbmQsXG4gIEdldEl0ZW1Db21tYW5kLFxuICBQdXRJdGVtQ29tbWFuZCxcbiAgQmF0Y2hXcml0ZUl0ZW1Db21tYW5kLFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgZ2V0RGVidWcgZnJvbSBcImRlYnVnXCI7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOnBvc3QtZGVwbG95OnBydW5lLXJldmFsaWRhdGlvbi10YWJsZVwiKTtcblxuY29uc3QgZHluYW1vQ2xpZW50ID0gbmV3IER5bmFtb0RCQ2xpZW50KCk7XG5cbmludGVyZmFjZSBQcnVuZVJldmFsaWRhdGlvblRhYmxlUHJvcHMge1xuICB0YWJsZU5hbWU6IHN0cmluZztcbiAgY3VycmVudEJ1aWxkSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHaXZlbiBgdGFibGVOYW1lYCBhbmQgYGN1cnJlbnRCdWlsZElkYCwgcXVlcnkgdGhlIHByZXZpb3VzIGJ1aWxkJ3MgcmV2YWxpZGF0aW9uIGVudHJpZXNcbiAqIGFuZCBkZWxldGUgdGhlbSBlZmZpY2llbnRseS4gVXNlcyBtZXRhZGF0YSBlbnRyeSB0byB0cmFjayBjdXJyZW50IGJ1aWxkIElELlxuICpcbiAqIFNjaGVtYTpcbiAqIC0gUmV2YWxpZGF0aW9uIGVudHJpZXM6IHBrPWJ1aWxkSWQsIHNrPXRhZyNjYWNoZUtleVxuICogLSBNZXRhZGF0YSBlbnRyeTogcGs9XCJNRVRBREFUQVwiLCBzaz1cIkNVUlJFTlRfQlVJTERcIiwgYnVpbGRJZD1jdXJyZW50QnVpbGRJZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJ1bmVSZXZhbGlkYXRpb25UYWJsZShcbiAgcHJvcHM6IFBydW5lUmV2YWxpZGF0aW9uVGFibGVQcm9wcyxcbikge1xuICBjb25zdCB7IHRhYmxlTmFtZSwgY3VycmVudEJ1aWxkSWQgfSA9IHByb3BzO1xuXG4gIC8vIDEuIFJlYWQgbWV0YWRhdGEgdG8gZ2V0IHByZXZpb3VzIGJ1aWxkIElEXG4gIGNvbnN0IGdldENvbW1hbmQgPSBuZXcgR2V0SXRlbUNvbW1hbmQoe1xuICAgIFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIEtleToge1xuICAgICAgcGs6IHsgUzogXCJNRVRBREFUQVwiIH0sXG4gICAgICBzazogeyBTOiBcIkNVUlJFTlRfQlVJTERcIiB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIGxldCBwcmV2aW91c0J1aWxkSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdHJ5IHtcbiAgICBjb25zdCBtZXRhZGF0YVJlc3BvbnNlID0gYXdhaXQgZHluYW1vQ2xpZW50LnNlbmQoZ2V0Q29tbWFuZCk7XG4gICAgcHJldmlvdXNCdWlsZElkID0gbWV0YWRhdGFSZXNwb25zZS5JdGVtPy5idWlsZElkPy5TO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGRlYnVnKFwiTm8gbWV0YWRhdGEgZW50cnkgZm91bmQsIHRoaXMgbWF5IGJlIHRoZSBmaXJzdCBkZXBsb3ltZW50XCIpO1xuICB9XG5cbiAgaWYgKCFwcmV2aW91c0J1aWxkSWQpIHtcbiAgICBkZWJ1ZyhcIk5vIHByZXZpb3VzIGJ1aWxkIHRvIHBydW5lXCIpO1xuICAgIC8vIFVwZGF0ZSBtZXRhZGF0YSB3aXRoIGN1cnJlbnQgYnVpbGQgSUQgZm9yIG5leHQgZGVwbG95bWVudFxuICAgIGF3YWl0IHVwZGF0ZU1ldGFkYXRhKHRhYmxlTmFtZSwgY3VycmVudEJ1aWxkSWQpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChwcmV2aW91c0J1aWxkSWQgPT09IGN1cnJlbnRCdWlsZElkKSB7XG4gICAgZGVidWcoXG4gICAgICBgUHJldmlvdXMgYnVpbGQgSUQgbWF0Y2hlcyBjdXJyZW50IGJ1aWxkIElEICgke2N1cnJlbnRCdWlsZElkfSksIG5vdGhpbmcgdG8gcHJ1bmVgLFxuICAgICk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZGVidWcoYFBydW5pbmcgcmV2YWxpZGF0aW9uIGVudHJpZXMgZm9yIHByZXZpb3VzIGJ1aWxkOiAke3ByZXZpb3VzQnVpbGRJZH1gKTtcblxuICAvLyAyLiBRdWVyeSBhbGwgaXRlbXMgZm9yIHByZXZpb3VzIGJ1aWxkIElEIChlZmZpY2llbnQgcGFydGl0aW9uIHF1ZXJ5KVxuICBjb25zdCBpdGVtc1RvRGVsZXRlOiBBcnJheTx7IHBrOiB7IFM6IHN0cmluZyB9OyBzazogeyBTOiBzdHJpbmcgfSB9PiA9IFtdO1xuICBsZXQgbGFzdEV2YWx1YXRlZEtleTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBkbyB7XG4gICAgY29uc3QgcXVlcnlDb21tYW5kOiBRdWVyeUNvbW1hbmQgPSBuZXcgUXVlcnlDb21tYW5kKHtcbiAgICAgIFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgICAgS2V5Q29uZGl0aW9uRXhwcmVzc2lvbjogXCJwayA9IDpwa1wiLFxuICAgICAgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgICBcIjpwa1wiOiB7IFM6IHByZXZpb3VzQnVpbGRJZCB9LFxuICAgICAgfSxcbiAgICAgIEV4Y2x1c2l2ZVN0YXJ0S2V5OiBsYXN0RXZhbHVhdGVkS2V5LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBkeW5hbW9DbGllbnQuc2VuZChxdWVyeUNvbW1hbmQpO1xuXG4gICAgaWYgKHJlc3BvbnNlLkl0ZW1zICYmIHJlc3BvbnNlLkl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiByZXNwb25zZS5JdGVtcykge1xuICAgICAgICBpZiAoaXRlbS5waz8uUyAmJiBpdGVtLnNrPy5TKSB7XG4gICAgICAgICAgaXRlbXNUb0RlbGV0ZS5wdXNoKHtcbiAgICAgICAgICAgIHBrOiB7IFM6IGl0ZW0ucGsuUyB9LFxuICAgICAgICAgICAgc2s6IHsgUzogaXRlbS5zay5TIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsYXN0RXZhbHVhdGVkS2V5ID0gcmVzcG9uc2UuTGFzdEV2YWx1YXRlZEtleTtcbiAgfSB3aGlsZSAobGFzdEV2YWx1YXRlZEtleSk7XG5cbiAgZGVidWcoXG4gICAgYEZvdW5kICR7aXRlbXNUb0RlbGV0ZS5sZW5ndGh9IHJldmFsaWRhdGlvbiBlbnRyaWVzIHRvIGRlbGV0ZSBmb3IgYnVpbGQgJHtwcmV2aW91c0J1aWxkSWR9YCxcbiAgKTtcblxuICAvLyAzLiBEZWxldGUgaXRlbXMgaW4gYmF0Y2hlcyAocmVzcGVjdGluZyBEeW5hbW9EQidzIDI1IGl0ZW1zIHBlciBiYXRjaCBsaW1pdClcbiAgaWYgKGl0ZW1zVG9EZWxldGUubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGRlbGV0ZUJhdGNoZXMgPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXNUb0RlbGV0ZS5sZW5ndGg7IGkgKz0gMjUpIHtcbiAgICAgIGNvbnN0IGJhdGNoID0gaXRlbXNUb0RlbGV0ZS5zbGljZShpLCBpICsgMjUpO1xuICAgICAgZGVsZXRlQmF0Y2hlcy5wdXNoKGJhdGNoKTtcbiAgICB9XG5cbiAgICBhd2FpdCBwcm9jZXNzQmF0Y2goXG4gICAgICBkZWxldGVCYXRjaGVzLFxuICAgICAgNSwgLy8gUHJvY2VzcyB1cCB0byA1IGRlbGV0ZSBiYXRjaGVzIGluIHBhcmFsbGVsXG4gICAgICBhc3luYyAoYmF0Y2gpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBkZWxldGVSZXF1ZXN0cyA9IGJhdGNoLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICAgIERlbGV0ZVJlcXVlc3Q6IHtcbiAgICAgICAgICAgICAgS2V5OiBpdGVtLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBEZWxldGluZyByZXZhbGlkYXRpb24gZW50cmllczogJHtiYXRjaC5tYXAoKGIpID0+IGAke2IucGsuU30vJHtiLnNrLlN9YCkuam9pbihcIiwgXCIpfSBmcm9tICR7dGFibGVOYW1lfWAsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGF3YWl0IGR5bmFtb0NsaWVudC5zZW5kKFxuICAgICAgICAgICAgbmV3IEJhdGNoV3JpdGVJdGVtQ29tbWFuZCh7XG4gICAgICAgICAgICAgIFJlcXVlc3RJdGVtczoge1xuICAgICAgICAgICAgICAgIFt0YWJsZU5hbWVdOiBkZWxldGVSZXF1ZXN0cyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBEZWxldGVkICR7YmF0Y2gubGVuZ3RofSByZXZhbGlkYXRpb24gZW50cmllcyBmcm9tICR7dGFibGVOYW1lfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZGVsZXRpbmcgcmV2YWxpZGF0aW9uIGVudHJpZXM6XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLy8gNC4gVXBkYXRlIG1ldGFkYXRhIHdpdGggbmV3IGJ1aWxkIElEXG4gIGF3YWl0IHVwZGF0ZU1ldGFkYXRhKHRhYmxlTmFtZSwgY3VycmVudEJ1aWxkSWQpO1xuXG4gIGRlYnVnKFxuICAgIGBSZXZhbGlkYXRpb24gdGFibGUgcHJ1bmluZyBjb21wbGV0ZS4gRGVsZXRlZCAke2l0ZW1zVG9EZWxldGUubGVuZ3RofSBlbnRyaWVzIGZyb20gJHt0YWJsZU5hbWV9YCxcbiAgKTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgdGhlIG1ldGFkYXRhIGVudHJ5IHdpdGggdGhlIGN1cnJlbnQgYnVpbGQgSURcbiAqL1xuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWV0YWRhdGEoXG4gIHRhYmxlTmFtZTogc3RyaW5nLFxuICBjdXJyZW50QnVpbGRJZDogc3RyaW5nLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHB1dENvbW1hbmQgPSBuZXcgUHV0SXRlbUNvbW1hbmQoe1xuICAgIFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIEl0ZW06IHtcbiAgICAgIHBrOiB7IFM6IFwiTUVUQURBVEFcIiB9LFxuICAgICAgc2s6IHsgUzogXCJDVVJSRU5UX0JVSUxEXCIgfSxcbiAgICAgIGJ1aWxkSWQ6IHsgUzogY3VycmVudEJ1aWxkSWQgfSxcbiAgICAgIHVwZGF0ZWRBdDogeyBOOiBEYXRlLm5vdygpLnRvU3RyaW5nKCkgfSxcbiAgICB9LFxuICB9KTtcblxuICBhd2FpdCBkeW5hbW9DbGllbnQuc2VuZChwdXRDb21tYW5kKTtcbiAgZGVidWcoYFVwZGF0ZWQgbWV0YWRhdGEgd2l0aCBjdXJyZW50IGJ1aWxkIElEOiAke2N1cnJlbnRCdWlsZElkfWApO1xufVxuXG4vKipcbiAqIFByb2Nlc3MgaXRlbXMgaW4gYmF0Y2hlcyB0byBhdm9pZCBvdmVyd2hlbG1pbmcgdGhlIHN5c3RlbVxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzQmF0Y2g8VCwgUj4oXG4gIGl0ZW1zOiBUW10sXG4gIGJhdGNoU2l6ZTogbnVtYmVyLFxuICBwcm9jZXNzRm46IChpdGVtOiBUKSA9PiBQcm9taXNlPFI+LFxuKTogUHJvbWlzZTxSW10+IHtcbiAgY29uc3QgcmVzdWx0czogUltdID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkgKz0gYmF0Y2hTaXplKSB7XG4gICAgY29uc3QgYmF0Y2ggPSBpdGVtcy5zbGljZShpLCBpICsgYmF0Y2hTaXplKTtcbiAgICBjb25zdCBiYXRjaFJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChiYXRjaC5tYXAocHJvY2Vzc0ZuKSk7XG4gICAgcmVzdWx0cy5wdXNoKC4uLmJhdGNoUmVzdWx0cyk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn1cbiJdfQ==
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.pruneS3 = pruneS3;
|
|
4
7
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
8
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
6
9
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
7
|
-
const debug_1 = require("debug");
|
|
10
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
11
|
const debug = (0, debug_1.default)("cdk-nextjs:post-deploy:prune-s3");
|
|
9
12
|
const s3Client = new client_s3_1.S3Client();
|
|
10
13
|
// Maximum number of concurrent operations
|
|
@@ -100,4 +103,4 @@ async function processBatch(items, batchSize, processFn) {
|
|
|
100
103
|
}
|
|
101
104
|
return results;
|
|
102
105
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJ1bmUtczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9wb3N0LWRlcGxveS9wcnVuZS1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQStCQSwwQkEyR0M7QUExSUQsNkRBQTZEO0FBQzdELGtEQU00QjtBQUM1Qiw2REFBNkQ7QUFDN0QsaUNBQTZCO0FBRTdCLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBUSxFQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFFMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBUSxFQUFFLENBQUM7QUFDaEMsMENBQTBDO0FBQzFDLE1BQU0seUJBQXlCLEdBQUcsRUFBRSxDQUFDO0FBV3JDOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsT0FBTyxDQUFDLEtBQW1CO0lBQy9DLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDaEQsTUFBTSxlQUFlLEdBQXNCLEVBQUUsQ0FBQztJQUU5QyxJQUFJLGlCQUFpQixHQUF1QixTQUFTLENBQUM7SUFDdEQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFFekIsR0FBRyxDQUFDO1FBQ0YsNkJBQTZCO1FBQzdCLE1BQU0sa0JBQWtCLEdBQThCO1lBQ3BELE1BQU0sRUFBRSxVQUFVO1lBQ2xCLGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUN0QyxJQUFJLGdDQUFvQixDQUFDLGtCQUFrQixDQUFDLENBQzdDLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNq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b0JBQ3ZCLE1BQU0sRUFBRSxVQUFVO29CQUNsQixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO2lCQUMzQixDQUFDLENBQ0gsQ0FBQztnQkFDRixLQUFLLENBQUMsV0FBVyxLQUFLLENBQUMsTUFBTSxpQkFBaUIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQ0gsNkJBQTZCLGVBQWUsQ0FBQyxNQUFNLGlCQUFpQixVQUFVLEVBQUUsQ0FDakYsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxZQUFZLENBQ3pCLEtBQVUsRUFDVixTQUFpQixFQUNqQixTQUFrQztJQUVsQyxNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7SUFFeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7XG4gIFMzQ2xpZW50LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZCxcbiAgRGVsZXRlT2JqZWN0c0NvbW1hbmQsXG4gIEhlYWRPYmplY3RDb21tYW5kLFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXMzXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgZ2V0RGVidWcgZnJvbSBcImRlYnVnXCI7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOnBvc3QtZGVwbG95OnBydW5lLXMzXCIpO1xuXG5jb25zdCBzM0NsaWVudCA9IG5ldyBTM0NsaWVudCgpO1xuLy8gTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBvcGVyYXRpb25zXG5jb25zdCBNQVhfQ09OQ1VSUkVOVF9PUEVSQVRJT05TID0gNTA7XG5cbmludGVyZmFjZSBQcnVuZVMzUHJvcHMge1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIGN1cnJlbnRCdWlsZElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaW1lIHRvIGxpdmUgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgbXNUdGw6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBHaXZlbiBgYnVja2V0TmFtZWAsIGBjdXJyZW50QnVpbGRJZGAsIGFuZCBgbXNUdGxgLCBsaXN0IGFsbCBvYmplY3RzXG4gKiBpbiB0aGUgYnVja2V0IGFuZCBkZWxldGUgYW55IHRoYXQgMS8gZG8gbm90IGhhdmUgYSBtZXRhZGF0YSBrZXkgb2YgXCJuZXh0LWJ1aWxkLWlkXCJcbiAqIGFuZCB2YWx1ZSBvZiBgY3VycmVudEJ1aWxkSWRgIGFuZCAyLyB3ZXJlIGNyZWF0ZWQgbW9yZSB0aGFuIGBtc1R0bGAgYWdvXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcnVuZVMzKHByb3BzOiBQcnVuZVMzUHJvcHMpIHtcbiAgY29uc3QgeyBidWNrZXROYW1lLCBjdXJyZW50QnVpbGRJZCwgbXNUdGwgfSA9IHByb3BzO1xuXG4gIGNvbnN0IGN1dG9mZkRhdGUgPSBuZXcgRGF0ZShEYXRlLm5vdygpIC0gbXNUdGwpO1xuICBjb25zdCBvYmplY3RzVG9EZWxldGU6IHsgS2V5OiBzdHJpbmcgfVtdID0gW107XG5cbiAgbGV0IGNvbnRpbnVhdGlvblRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGxldCBsaXN0T2JqZWN0c0NvdW50ID0gMDtcblxuICBkbyB7XG4gICAgLy8gTGlzdCBvYmplY3RzIGluIHRoZSBidWNrZXRcbiAgICBjb25zdCBsaXN0T2JqZWN0c1YySW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQgPSB7XG4gICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICBDb250aW51YXRpb25Ub2tlbjogY29udGludWF0aW9uVG9rZW4sXG4gICAgfTtcbiAgICBjb25zdCBsaXN0UmVzcG9uc2UgPSBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgbmV3IExpc3RPYmplY3RzVjJDb21tYW5kKGxpc3RPYmplY3RzVjJJbnB1dCksXG4gICAgKTtcblxuICAgIGlmICghbGlzdFJlc3BvbnNlLkNvbnRlbnRzIHx8IGxpc3RSZXNwb25zZS5Db250ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEZpbHRlciBvdXQgb2JqZWN0cyB3aXRob3V0IGtleXNcbiAgICBjb25zdCBvbGRPYmplY3RzID0gbGlzdFJlc3BvbnNlLkNvbnRlbnRzLmZpbHRlcigob2JqKSA9PiB7XG4gICAgICBjb25zdCBsYXN0TW9kaWZpZWQgPSBvYmouTGFzdE1vZGlmaWVkIHx8IG5ldyBEYXRlKCk7XG4gICAgICByZXR1cm4gb2JqLktleSAmJiBsYXN0TW9kaWZpZWQgPCBjdXRvZmZEYXRlO1xuICAgIH0pO1xuICAgIGRlYnVnKFxuICAgICAgYENoZWNraW5nIG9sZCBvYmplY3RzIG1ldGFkYXRhIHRvIGRldGVybWluZSBwcnVuaW5nOiAke29sZE9iamVjdHMubWFwKChvKSA9PiBvLktleSl9YCxcbiAgICApO1xuXG4gICAgLy8gUHJvY2VzcyBvYmplY3RzIGluIHBhcmFsbGVsIHdpdGggY29udHJvbGxlZCBjb25jdXJyZW5jeVxuICAgIGNvbnN0IGNoZWNrUmVzdWx0cyA9IGF3YWl0IHByb2Nlc3NCYXRjaChcbiAgICAgIG9sZE9iamVjdHMsXG4gICAgICBNQVhfQ09OQ1VSUkVOVF9PUEVSQVRJT05TLFxuICAgICAgYXN5bmMgKG9iamVjdCkgPT4ge1xuICAgICAgICBpZiAoIW9iamVjdC5LZXkpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgaGVhZFJlc3BvbnNlID0gYXdhaXQgczNDbGllbnQuc2VuZChcbiAgICAgICAgICAgIG5ldyBIZWFkT2JqZWN0Q29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgS2V5OiBvYmplY3QuS2V5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IG9iamVjdEJ1aWxkSWQgPSBoZWFkUmVzcG9uc2UuTWV0YWRhdGE/LltcIm5leHQtYnVpbGQtaWRcIl07XG5cbiAgICAgICAgICAvLyBSZXR1cm4gdGhlIGtleSBpZiBpdCBzaG91bGQgYmUgZGVsZXRlZFxuICAgICAgICAgIGlmIChvYmplY3RCdWlsZElkICE9PSBjdXJyZW50QnVpbGRJZCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgS2V5OiBvYmplY3QuS2V5IH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGNoZWNraW5nIG9iamVjdCAke29iamVjdC5LZXl9OmAsIGVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gQWRkIHZhbGlkIG9iamVjdHMgdG8gZGVsZXRlIGxpc3RcbiAgICBvYmplY3RzVG9EZWxldGUucHVzaChcbiAgICAgIC4uLihjaGVja1Jlc3VsdHMuZmlsdGVyKEJvb2xlYW4pIGFzIHsgS2V5OiBzdHJpbmcgfVtdKSxcbiAgICApO1xuXG4gICAgaWYgKGxpc3RSZXNwb25zZS5OZXh0Q29udGludWF0aW9uVG9rZW4pIHtcbiAgICAgIGNvbnRpbnVhdGlvblRva2VuID0gbGlzdFJlc3BvbnNlLk5leHRDb250aW51YXRpb25Ub2tlbjtcbiAgICB9XG4gICAgbGlzdE9iamVjdHNDb3VudCsrO1xuICAgIC8vIGFzc3VtZSBsZXNzIHRoYW4gMTAwSyBvYmplY3RzICgxMDAgKiAxSyBvYmplY3RzIHBlciBMaXN0T2JqZWN0c1YyQ29tbWFuZCA9IDEwMEspXG4gIH0gd2hpbGUgKGNvbnRpbnVhdGlvblRva2VuICYmIGxpc3RPYmplY3RzQ291bnQgPD0gMTAwKTtcblxuICAvLyBEZWxldGUgb2JqZWN0cyBpbiBwYXJhbGxlbCBiYXRjaGVzIChyZXNwZWN0aW5nIFMzJ3MgMTAwMCBvYmplY3RzIHBlciByZXF1ZXN0IGxpbWl0KVxuICBpZiAob2JqZWN0c1RvRGVsZXRlLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBkZWxldGVCYXRjaGVzID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9iamVjdHNUb0RlbGV0ZS5sZW5ndGg7IGkgKz0gMTAwMCkge1xuICAgICAgY29uc3QgYmF0Y2ggPSBvYmplY3RzVG9EZWxldGUuc2xpY2UoaSwgaSArIDEwMDApO1xuICAgICAgZGVsZXRlQmF0Y2hlcy5wdXNoKGJhdGNoKTtcbiAgICB9XG5cbiAgICBhd2FpdCBwcm9jZXNzQmF0Y2goXG4gICAgICBkZWxldGVCYXRjaGVzLFxuICAgICAgNSwgLy8gUHJvY2VzcyB1cCB0byA1IGRlbGV0ZSBiYXRjaGVzIGluIHBhcmFsbGVsXG4gICAgICBhc3luYyAoYmF0Y2gpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBEZWxldGluZyBvYmplY3RzOiAke2JhdGNoLm1hcCgoYikgPT4gYi5LZXkpfSBmcm9tICR7YnVja2V0TmFtZX1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgczNDbGllbnQuc2VuZChcbiAgICAgICAgICAgIG5ldyBEZWxldGVPYmplY3RzQ29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgRGVsZXRlOiB7IE9iamVjdHM6IGJhdGNoIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGRlYnVnKGBEZWxldGVkICR7YmF0Y2gubGVuZ3RofSBvYmplY3RzIGZyb20gJHtidWNrZXROYW1lfWApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBkZWxldGluZyBvYmplY3RzOlwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIGRlYnVnKFxuICAgIGBQcnVuaW5nIGNvbXBsZXRlLiBEZWxldGVkICR7b2JqZWN0c1RvRGVsZXRlLmxlbmd0aH0gb2JqZWN0cyBmcm9tICR7YnVja2V0TmFtZX1gLFxuICApO1xufVxuXG4vKipcbiAqIFByb2Nlc3Mgb2JqZWN0cyBpbiBiYXRjaGVzIHRvIGF2b2lkIG92ZXJ3aGVsbWluZyB0aGUgc3lzdGVtXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NCYXRjaDxULCBSPihcbiAgaXRlbXM6IFRbXSxcbiAgYmF0Y2hTaXplOiBudW1iZXIsXG4gIHByb2Nlc3NGbjogKGl0ZW06IFQpID0+IFByb21pc2U8Uj4sXG4pOiBQcm9taXNlPFJbXT4ge1xuICBjb25zdCByZXN1bHRzOiBSW10gPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSArPSBiYXRjaFNpemUpIHtcbiAgICBjb25zdCBiYXRjaCA9IGl0ZW1zLnNsaWNlKGksIGkgKyBiYXRjaFNpemUpO1xuICAgIGNvbnN0IGJhdGNoUmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKGJhdGNoLm1hcChwcm9jZXNzRm4pKTtcbiAgICByZXN1bHRzLnB1c2goLi4uYmF0Y2hSZXN1bHRzKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufVxuIl19
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJ1bmUtczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGFtYmRhcy9wb3N0LWRlcGxveS9wcnVuZS1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQStCQSwwQkEyR0M7QUExSUQsNkRBQTZEO0FBQzdELGtEQU00QjtBQUM1Qiw2REFBNkQ7QUFDN0Qsa0RBQTZCO0FBRTdCLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBUSxFQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFFMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBUSxFQUFFLENBQUM7QUFDaEMsMENBQTBDO0FBQzFDLE1BQU0seUJBQXlCLEdBQUcsRUFBRSxDQUFDO0FBV3JDOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsT0FBTyxDQUFDLEtBQW1CO0lBQy9DLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDaEQsTUFBTSxlQUFlLEdBQXNCLEVBQUUsQ0FBQztJQUU5QyxJQUFJLGlCQUFpQixHQUF1QixTQUFTLENBQUM7SUFDdEQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFFekIsR0FBRyxDQUFDO1FBQ0YsNkJBQTZCO1FBQzdCLE1BQU0sa0JBQWtCLEdBQThCO1lBQ3BELE1BQU0sRUFBRSxVQUFVO1lBQ2xCLGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUN0QyxJQUFJLGdDQUFvQixDQUFDLGtCQUFrQixDQUFDLENBQzdDLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZ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QUM7b0JBQ3ZCLE1BQU0sRUFBRSxVQUFVO29CQUNsQixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO2lCQUMzQixDQUFDLENBQ0gsQ0FBQztnQkFDRixLQUFLLENBQUMsV0FBVyxLQUFLLENBQUMsTUFBTSxpQkFBaUIsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQ0gsNkJBQTZCLGVBQWUsQ0FBQyxNQUFNLGlCQUFpQixVQUFVLEVBQUUsQ0FDakYsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxZQUFZLENBQ3pCLEtBQVUsRUFDVixTQUFpQixFQUNqQixTQUFrQztJQUVsQyxNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7SUFFeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7XG4gIFMzQ2xpZW50LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZCxcbiAgRGVsZXRlT2JqZWN0c0NvbW1hbmQsXG4gIEhlYWRPYmplY3RDb21tYW5kLFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXMzXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgZ2V0RGVidWcgZnJvbSBcImRlYnVnXCI7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOnBvc3QtZGVwbG95OnBydW5lLXMzXCIpO1xuXG5jb25zdCBzM0NsaWVudCA9IG5ldyBTM0NsaWVudCgpO1xuLy8gTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBvcGVyYXRpb25zXG5jb25zdCBNQVhfQ09OQ1VSUkVOVF9PUEVSQVRJT05TID0gNTA7XG5cbmludGVyZmFjZSBQcnVuZVMzUHJvcHMge1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIGN1cnJlbnRCdWlsZElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaW1lIHRvIGxpdmUgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgbXNUdGw6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBHaXZlbiBgYnVja2V0TmFtZWAsIGBjdXJyZW50QnVpbGRJZGAsIGFuZCBgbXNUdGxgLCBsaXN0IGFsbCBvYmplY3RzXG4gKiBpbiB0aGUgYnVja2V0IGFuZCBkZWxldGUgYW55IHRoYXQgMS8gZG8gbm90IGhhdmUgYSBtZXRhZGF0YSBrZXkgb2YgXCJuZXh0LWJ1aWxkLWlkXCJcbiAqIGFuZCB2YWx1ZSBvZiBgY3VycmVudEJ1aWxkSWRgIGFuZCAyLyB3ZXJlIGNyZWF0ZWQgbW9yZSB0aGFuIGBtc1R0bGAgYWdvXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcnVuZVMzKHByb3BzOiBQcnVuZVMzUHJvcHMpIHtcbiAgY29uc3QgeyBidWNrZXROYW1lLCBjdXJyZW50QnVpbGRJZCwgbXNUdGwgfSA9IHByb3BzO1xuXG4gIGNvbnN0IGN1dG9mZkRhdGUgPSBuZXcgRGF0ZShEYXRlLm5vdygpIC0gbXNUdGwpO1xuICBjb25zdCBvYmplY3RzVG9EZWxldGU6IHsgS2V5OiBzdHJpbmcgfVtdID0gW107XG5cbiAgbGV0IGNvbnRpbnVhdGlvblRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGxldCBsaXN0T2JqZWN0c0NvdW50ID0gMDtcblxuICBkbyB7XG4gICAgLy8gTGlzdCBvYmplY3RzIGluIHRoZSBidWNrZXRcbiAgICBjb25zdCBsaXN0T2JqZWN0c1YySW5wdXQ6IExpc3RPYmplY3RzVjJDb21tYW5kSW5wdXQgPSB7XG4gICAgICBCdWNrZXQ6IGJ1Y2tldE5hbWUsXG4gICAgICBDb250aW51YXRpb25Ub2tlbjogY29udGludWF0aW9uVG9rZW4sXG4gICAgfTtcbiAgICBjb25zdCBsaXN0UmVzcG9uc2UgPSBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgbmV3IExpc3RPYmplY3RzVjJDb21tYW5kKGxpc3RPYmplY3RzVjJJbnB1dCksXG4gICAgKTtcblxuICAgIGlmICghbGlzdFJlc3BvbnNlLkNvbnRlbnRzIHx8IGxpc3RSZXNwb25zZS5Db250ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEZpbHRlciBvdXQgb2JqZWN0cyB3aXRob3V0IGtleXNcbiAgICBjb25zdCBvbGRPYmplY3RzID0gbGlzdFJlc3BvbnNlLkNvbnRlbnRzLmZpbHRlcigob2JqKSA9PiB7XG4gICAgICBjb25zdCBsYXN0TW9kaWZpZWQgPSBvYmouTGFzdE1vZGlmaWVkIHx8IG5ldyBEYXRlKCk7XG4gICAgICByZXR1cm4gb2JqLktleSAmJiBsYXN0TW9kaWZpZWQgPCBjdXRvZmZEYXRlO1xuICAgIH0pO1xuICAgIGRlYnVnKFxuICAgICAgYENoZWNraW5nIG9sZCBvYmplY3RzIG1ldGFkYXRhIHRvIGRldGVybWluZSBwcnVuaW5nOiAke29sZE9iamVjdHMubWFwKChvKSA9PiBvLktleSl9YCxcbiAgICApO1xuXG4gICAgLy8gUHJvY2VzcyBvYmplY3RzIGluIHBhcmFsbGVsIHdpdGggY29udHJvbGxlZCBjb25jdXJyZW5jeVxuICAgIGNvbnN0IGNoZWNrUmVzdWx0cyA9IGF3YWl0IHByb2Nlc3NCYXRjaChcbiAgICAgIG9sZE9iamVjdHMsXG4gICAgICBNQVhfQ09OQ1VSUkVOVF9PUEVSQVRJT05TLFxuICAgICAgYXN5bmMgKG9iamVjdCkgPT4ge1xuICAgICAgICBpZiAoIW9iamVjdC5LZXkpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgaGVhZFJlc3BvbnNlID0gYXdhaXQgczNDbGllbnQuc2VuZChcbiAgICAgICAgICAgIG5ldyBIZWFkT2JqZWN0Q29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgS2V5OiBvYmplY3QuS2V5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IG9iamVjdEJ1aWxkSWQgPSBoZWFkUmVzcG9uc2UuTWV0YWRhdGE/LltcIm5leHQtYnVpbGQtaWRcIl07XG5cbiAgICAgICAgICAvLyBSZXR1cm4gdGhlIGtleSBpZiBpdCBzaG91bGQgYmUgZGVsZXRlZFxuICAgICAgICAgIGlmIChvYmplY3RCdWlsZElkICE9PSBjdXJyZW50QnVpbGRJZCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgS2V5OiBvYmplY3QuS2V5IH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGNoZWNraW5nIG9iamVjdCAke29iamVjdC5LZXl9OmAsIGVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gQWRkIHZhbGlkIG9iamVjdHMgdG8gZGVsZXRlIGxpc3RcbiAgICBvYmplY3RzVG9EZWxldGUucHVzaChcbiAgICAgIC4uLihjaGVja1Jlc3VsdHMuZmlsdGVyKEJvb2xlYW4pIGFzIHsgS2V5OiBzdHJpbmcgfVtdKSxcbiAgICApO1xuXG4gICAgaWYgKGxpc3RSZXNwb25zZS5OZXh0Q29udGludWF0aW9uVG9rZW4pIHtcbiAgICAgIGNvbnRpbnVhdGlvblRva2VuID0gbGlzdFJlc3BvbnNlLk5leHRDb250aW51YXRpb25Ub2tlbjtcbiAgICB9XG4gICAgbGlzdE9iamVjdHNDb3VudCsrO1xuICAgIC8vIGFzc3VtZSBsZXNzIHRoYW4gMTAwSyBvYmplY3RzICgxMDAgKiAxSyBvYmplY3RzIHBlciBMaXN0T2JqZWN0c1YyQ29tbWFuZCA9IDEwMEspXG4gIH0gd2hpbGUgKGNvbnRpbnVhdGlvblRva2VuICYmIGxpc3RPYmplY3RzQ291bnQgPD0gMTAwKTtcblxuICAvLyBEZWxldGUgb2JqZWN0cyBpbiBwYXJhbGxlbCBiYXRjaGVzIChyZXNwZWN0aW5nIFMzJ3MgMTAwMCBvYmplY3RzIHBlciByZXF1ZXN0IGxpbWl0KVxuICBpZiAob2JqZWN0c1RvRGVsZXRlLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBkZWxldGVCYXRjaGVzID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9iamVjdHNUb0RlbGV0ZS5sZW5ndGg7IGkgKz0gMTAwMCkge1xuICAgICAgY29uc3QgYmF0Y2ggPSBvYmplY3RzVG9EZWxldGUuc2xpY2UoaSwgaSArIDEwMDApO1xuICAgICAgZGVsZXRlQmF0Y2hlcy5wdXNoKGJhdGNoKTtcbiAgICB9XG5cbiAgICBhd2FpdCBwcm9jZXNzQmF0Y2goXG4gICAgICBkZWxldGVCYXRjaGVzLFxuICAgICAgNSwgLy8gUHJvY2VzcyB1cCB0byA1IGRlbGV0ZSBiYXRjaGVzIGluIHBhcmFsbGVsXG4gICAgICBhc3luYyAoYmF0Y2gpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBEZWxldGluZyBvYmplY3RzOiAke2JhdGNoLm1hcCgoYikgPT4gYi5LZXkpfSBmcm9tICR7YnVja2V0TmFtZX1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgczNDbGllbnQuc2VuZChcbiAgICAgICAgICAgIG5ldyBEZWxldGVPYmplY3RzQ29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgRGVsZXRlOiB7IE9iamVjdHM6IGJhdGNoIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGRlYnVnKGBEZWxldGVkICR7YmF0Y2gubGVuZ3RofSBvYmplY3RzIGZyb20gJHtidWNrZXROYW1lfWApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBkZWxldGluZyBvYmplY3RzOlwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIGRlYnVnKFxuICAgIGBQcnVuaW5nIGNvbXBsZXRlLiBEZWxldGVkICR7b2JqZWN0c1RvRGVsZXRlLmxlbmd0aH0gb2JqZWN0cyBmcm9tICR7YnVja2V0TmFtZX1gLFxuICApO1xufVxuXG4vKipcbiAqIFByb2Nlc3Mgb2JqZWN0cyBpbiBiYXRjaGVzIHRvIGF2b2lkIG92ZXJ3aGVsbWluZyB0aGUgc3lzdGVtXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NCYXRjaDxULCBSPihcbiAgaXRlbXM6IFRbXSxcbiAgYmF0Y2hTaXplOiBudW1iZXIsXG4gIHByb2Nlc3NGbjogKGl0ZW06IFQpID0+IFByb21pc2U8Uj4sXG4pOiBQcm9taXNlPFJbXT4ge1xuICBjb25zdCByZXN1bHRzOiBSW10gPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSArPSBiYXRjaFNpemUpIHtcbiAgICBjb25zdCBiYXRjaCA9IGl0ZW1zLnNsaWNlKGksIGkgKyBiYXRjaFNpemUpO1xuICAgIGNvbnN0IGJhdGNoUmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKGJhdGNoLm1hcChwcm9jZXNzRm4pKTtcbiAgICByZXN1bHRzLnB1c2goLi4uYmF0Y2hSZXN1bHRzKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufVxuIl19
|
package/lib/nextjs-api.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.NextjsApi = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -11,6 +10,15 @@ const constructs_1 = require("constructs");
|
|
|
11
10
|
* Creates an API Gateway REST API for Next.js applications
|
|
12
11
|
*/
|
|
13
12
|
class NextjsApi extends constructs_1.Construct {
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsApi", version: "0.5.4" };
|
|
14
|
+
/**
|
|
15
|
+
* The API Gateway REST API
|
|
16
|
+
*/
|
|
17
|
+
api;
|
|
18
|
+
baseResource;
|
|
19
|
+
nextResource;
|
|
20
|
+
props;
|
|
21
|
+
staticIntegrationRole;
|
|
14
22
|
constructor(scope, id, props) {
|
|
15
23
|
super(scope, id);
|
|
16
24
|
this.props = props;
|
|
@@ -177,6 +185,4 @@ class NextjsApi extends constructs_1.Construct {
|
|
|
177
185
|
}
|
|
178
186
|
}
|
|
179
187
|
exports.NextjsApi = NextjsApi;
|
|
180
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
181
|
-
NextjsApi[_a] = { fqn: "cdk-nextjs.NextjsApi", version: "0.5.3" };
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXh0anMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBQzFDLCtEQVlvQztBQUVwQyxpREFLNkI7QUFHN0IsMkNBQXVDO0FBc0N2Qzs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLHNCQUFTO0lBV3RDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyQiw4RUFBOEU7UUFDaEYsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsS0FBcUI7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUksd0JBQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ2xDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3pCLFdBQVcsRUFBRSwyQkFBMkIsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFO1lBQ2xFLGFBQWEsRUFBRSxDQUFDLDZCQUFZLENBQUMsUUFBUSxDQUFDO1lBQ3RDLGtCQUFrQixFQUFFLGtCQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLHlDQUF5QztZQUM1RSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFlBQVk7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCLENBQUMsUUFBaUI7UUFDMUMsc0NBQXNDO1FBQ3RDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2pDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixDQUFDLENBQUMsUUFBUSxDQUFDO1lBRWIsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyw2QkFBNkI7UUFDN0IsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQUksQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7WUFDcEUsU0FBUyxFQUFFLElBQUksMEJBQWdCLENBQUMsMEJBQTBCLENBQUM7U0FDNUQsQ0FBQyxDQUFDO1FBRUgscUJBQXFCLENBQUMsV0FBVyxDQUMvQixJQUFJLHlCQUFlLENBQUM7WUFDbEIsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQztZQUMxQyxTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTO2dCQUN2QyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsU0FBUyxJQUFJO2FBQy9DO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFDRixPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxDQUFDLFlBQVk7YUFDZCxXQUFXLENBQUMsUUFBUSxDQUFDO2FBQ3JCLFdBQVcsQ0FBQyxVQUFVLENBQUM7YUFDdkIsU0FBUyxDQUNSLEtBQUssRUFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxFQUN2RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDN0MsQ0FBQztRQUNKLHVGQUF1RjtRQUN2RixLQUFLLE1BQU0sY0FBYyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN6RCxJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFlBQVk7cUJBQ2QsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7cUJBQ2hDLFdBQVcsQ0FBQyxVQUFVLENBQUM7cUJBQ3ZCLFNBQVMsQ0FDUixLQUFLLEVBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsY0FBYyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUMsRUFDakUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQzdDLENBQUM7WUFDTixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFlBQVk7cUJBQ2QsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7cUJBQ2hDLFNBQVMsQ0FDUixLQUFLLEVBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUN0RCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FDOUIsQ0FBQztZQUNOLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBbUI7UUFDbEQsTUFBTSxhQUFhLEdBQUcsSUFBSSwrQkFBYyxDQUFDO1lBQ3ZDLE9BQU8sRUFBRSxJQUFJO1lBQ2IscUJBQXFCLEVBQUUsS0FBSztZQUM1QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsSUFBSSxHQUFHLEVBQUU7WUFDMUQsT0FBTyxFQUFFO2dCQUNQLGVBQWUsRUFBRSxJQUFJLENBQUMscUJBQXFCO2dCQUMzQyxtQkFBbUIsRUFBRSxvQ0FBbUIsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjO2dCQUMxRSxpQkFBaUIsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztvQkFDdEMsQ0FBQyxDQUFDO3dCQUNFLDhCQUE4QixFQUFFLDJCQUEyQjtxQkFDNUQ7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2Isb0JBQW9CLEVBQUU7b0JBQ3BCO3dCQUNFLFVBQVUsRUFBRSxLQUFLO3dCQUNqQixrQkFBa0IsRUFBRTs0QkFDbEIscUNBQXFDLEVBQ25DLDBDQUEwQzs0QkFDNUMsdUNBQXVDLEVBQ3JDLDRDQUE0Qzs0QkFDOUMsc0NBQXNDLEVBQ3BDLDJDQUEyQzs0QkFDN0MsNkJBQTZCLEVBQUUsa0NBQWtDOzRCQUNqRSxzQ0FBc0MsRUFDcEMsMkNBQTJDO3lCQUM5QztxQkFDRjtvQkFDRDt3QkFDRSxVQUFVLEVBQUUsS0FBSzt3QkFDakIsZ0JBQWdCLEVBQUUsS0FBSztxQkFDeEI7aUJBQ0Y7YUFDRjtZQUNELEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsc0JBQXNCO1NBQ2hELENBQUMsQ0FBQztRQUNILE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtRQUN6RCxPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsS0FBSztnQkFDdEIsQ0FBQyxDQUFDO29CQUNFLDJCQUEyQixFQUFFLElBQUk7aUJBQ2xDO2dCQUNILENBQUMsQ0FBQyxTQUFTO1lBQ2IsZUFBZSxFQUFFO2dCQUNmO29CQUNFLFVBQVUsRUFBRSxLQUFLO29CQUNqQixrQkFBa0IsRUFBRTt3QkFDbEIscUNBQXFDLEVBQUUsSUFBSTt3QkFDM0MsdUNBQXVDLEVBQUUsSUFBSTt3QkFDN0Msc0NBQXNDLEVBQUUsSUFBSTt3QkFDNUMsNkJBQTZCLEVBQUUsSUFBSTt3QkFDbkMsc0NBQXNDLEVBQUUsSUFBSTtxQkFDN0M7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCO2FBQ0Y7WUFDRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGVBQWU7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLHdCQUF3QixDQUFDLGNBQXlCO1FBQ3hELDJFQUEyRTtRQUMzRSxNQUFNLGdCQUFnQixHQUFHLElBQUksa0NBQWlCLENBQUMsY0FBYyxFQUFFO1lBQzdELG9CQUFvQixFQUFFLHFDQUFvQixDQUFDLFFBQVEsRUFBRSxxQ0FBcUM7WUFDMUYsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSx1QkFBdUI7U0FDakQsQ0FBQyxDQUFDO1FBQ0gsa0RBQWtEO1FBQ2xELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFakQsd0RBQXdEO1FBQ3hELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxrQ0FBaUIsQ0FBQyxjQUFjLEVBQUU7WUFDakUsb0JBQW9CLEVBQUUscUNBQW9CLENBQUMsTUFBTTtZQUNqRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtTQUNqRCxDQUFDLENBQUM7UUFFSCw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUN2RCxDQUFDOztBQTNNSCw4QkE0TUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaXplLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgUmVzdEFwaSxcbiAgTGFtYmRhSW50ZWdyYXRpb24sXG4gIEF3c0ludGVncmF0aW9uLFxuICBNZXRob2RPcHRpb25zLFxuICBJUmVzb3VyY2UsXG4gIEVuZHBvaW50VHlwZSxcbiAgUmVzdEFwaVByb3BzLFxuICBBd3NJbnRlZ3JhdGlvblByb3BzLFxuICBMYW1iZGFJbnRlZ3JhdGlvbk9wdGlvbnMsXG4gIFBhc3N0aHJvdWdoQmVoYXZpb3IsXG4gIFJlc3BvbnNlVHJhbnNmZXJNb2RlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IElWcGMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHtcbiAgUm9sZSxcbiAgU2VydmljZVByaW5jaXBhbCxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBJUm9sZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFB1YmxpY0RpckVudHJ5IH0gZnJvbSBcIi4vbmV4dGpzLWJ1aWxkL25leHRqcy1idWlsZFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0FwaU92ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IHJlc3RBcGlQcm9wcz86IFJlc3RBcGlQcm9wcztcbiAgcmVhZG9ubHkgc3RhdGljSW50ZWdyYXRpb25Qcm9wcz86IEF3c0ludGVncmF0aW9uUHJvcHM7XG4gIHJlYWRvbmx5IHMzTWV0aG9kT3B0aW9ucz86IE1ldGhvZE9wdGlvbnM7XG4gIHJlYWRvbmx5IGR5bmFtaWNJbnRlZ3JhdGlvblByb3BzPzogTGFtYmRhSW50ZWdyYXRpb25PcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0FwaVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGJhc2UgcGF0aCBmb3IgdGhlIGFwcGxpY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHByb3BzIGZvciBldmVyeSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNBcGlPdmVycmlkZXM7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGRpcmVjdG9yeSBvZiBOZXh0LmpzIGFwcCdzIHB1YmxpYyBkaXJlY3RvcnkuIFVzZWQgdG8gYWRkIHJlc291cmNlc1xuICAgKiB0byBBUEkgR2F0ZXdheSBSRVNUIEFQSSBmb3IgcHVibGljIGRpcmVjdG9yeSB0byBnbyBkaXJlY3RseSB0byBTMy5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0RpckVudHJpZXM6IFB1YmxpY0RpckVudHJ5W107XG4gIC8qKlxuICAgKiBSZXF1aXJlZCBpZiBgTmV4dGpzUmVnaW9uYWxGdW5jdGlvbnNgLiBUaGUgTGFtYmRhIGZ1bmN0aW9uIGZvciBzZXJ2ZXItc2lkZSByZW5kZXJpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlckZ1bmN0aW9uPzogSUZ1bmN0aW9uO1xuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCBjb250YWluaW5nIHN0YXRpYyBhc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRpY0Fzc2V0c0J1Y2tldDogSUJ1Y2tldDtcbiAgLyoqXG4gICAqIFtGdXR1cmVdIFJlcXVpcmVkIGlmIGBOZXh0anNSZWdpb25hbENvbnRhaW5lcnNgLiBWUEMgdG8gY3JlYXRlIFZQQyBMaW5rIGFuZCBFQ1MgU2VydmljZSBEaXNjb3ZlcnlcbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IElWcGM7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBBUEkgR2F0ZXdheSBSRVNUIEFQSSBmb3IgTmV4dC5qcyBhcHBsaWNhdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc0FwaSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQVBJIEdhdGV3YXkgUkVTVCBBUElcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcGk6IFJlc3RBcGk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlUmVzb3VyY2U6IElSZXNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBuZXh0UmVzb3VyY2U6IElSZXNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogTmV4dGpzQXBpUHJvcHM7XG4gIHByaXZhdGUgc3RhdGljSW50ZWdyYXRpb25Sb2xlOiBJUm9sZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmV4dGpzQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMudmFsaWRhdGVQcm9wcyhwcm9wcyk7XG4gICAgdGhpcy5hcGkgPSB0aGlzLmNyZWF0ZVJlc3RBcGkoKTtcbiAgICB0aGlzLmJhc2VSZXNvdXJjZSA9IHRoaXMuY3JlYXRlQmFzZVJlc291cmNlKHByb3BzLmJhc2VQYXRoKTtcbiAgICB0aGlzLm5leHRSZXNvdXJjZSA9IHRoaXMuYmFzZVJlc291cmNlLmFkZFJlc291cmNlKFwiX25leHRcIik7XG4gICAgdGhpcy5zdGF0aWNJbnRlZ3JhdGlvblJvbGUgPSB0aGlzLmNyZWF0ZVN0YXRpY0ludGVncmF0aW9uUm9sZSgpO1xuICAgIHRoaXMuY3JlYXRlU3RhdGljSW50ZWdyYXRpb25zKCk7XG4gICAgaWYgKHByb3BzLnNlcnZlckZ1bmN0aW9uKSB7XG4gICAgICB0aGlzLmNyZWF0ZUR5bmFtaWNJbnRlZ3JhdGlvbihwcm9wcy5zZXJ2ZXJGdW5jdGlvbik7XG4gICAgfSBlbHNlIGlmIChwcm9wcy52cGMpIHtcbiAgICAgIC8vIFtGdXR1cmVdIGNyZWF0ZSBpbnRlZ3JhdGlvbiB3aXRoIEVDUyB2aWEgVlBDIExpbmsgYW5kIEVDUyBTZXJ2aWNlIERpc2NvdmVyeVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVQcm9wcyhwcm9wczogTmV4dGpzQXBpUHJvcHMpIHtcbiAgICBpZiAoIXByb3BzLnNlcnZlckZ1bmN0aW9uICYmICFwcm9wcy52cGMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInNlcnZlckZ1bmN0aW9uIG9yIHZwYyBtdXN0IGJlIHNldCBpbiBOZXh0anNBcGlQcm9wc1wiKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlc3RBcGkoKTogUmVzdEFwaSB7XG4gICAgcmV0dXJuIG5ldyBSZXN0QXBpKHRoaXMsIFwiUmVzdEFwaVwiLCB7XG4gICAgICBiaW5hcnlNZWRpYVR5cGVzOiBbXCIqLypcIl0sXG4gICAgICBkZXNjcmlwdGlvbjogYGNkay1uZXh0anMgUkVTVCBBUEkgZm9yICR7U3RhY2sub2YodGhpcykuc3RhY2tOYW1lfWAsXG4gICAgICBlbmRwb2ludFR5cGVzOiBbRW5kcG9pbnRUeXBlLlJFR0lPTkFMXSxcbiAgICAgIG1pbkNvbXByZXNzaW9uU2l6ZTogU2l6ZS5ieXRlcygwKSwgLy8gY29tcHJlc3MgYWxsIHJlc3BvbnNlcyBmb3IgYmV0dGVyIHBlcmZcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5yZXN0QXBpUHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGJhc2UgcmVzb3VyY2UgcGF0aCBpZiBuZWVkZWQuIEltcG9ydGFudCBpZiBgYmFzZVBhdGhgIGlzIHNldC5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQmFzZVJlc291cmNlKGJhc2VQYXRoPzogc3RyaW5nKTogSVJlc291cmNlIHtcbiAgICAvLyBDcmVhdGUgYmFzZSByZXNvdXJjZSBwYXRoIGlmIG5lZWRlZFxuICAgIGxldCBiYXNlUmVzb3VyY2UgPSB0aGlzLmFwaS5yb290O1xuICAgIGlmIChiYXNlUGF0aCkge1xuICAgICAgY29uc3QgX2Jhc2VQYXRoID0gYmFzZVBhdGguc3RhcnRzV2l0aChcIi9cIilcbiAgICAgICAgPyBiYXNlUGF0aC5zdWJzdHJpbmcoMSlcbiAgICAgICAgOiBiYXNlUGF0aDtcblxuICAgICAgYmFzZVJlc291cmNlID0gdGhpcy5hcGkucm9vdC5hZGRSZXNvdXJjZShfYmFzZVBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZVJlc291cmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdGF0aWNJbnRlZ3JhdGlvblJvbGUoKSB7XG4gICAgLy8gQ3JlYXRlIFMzIGludGVncmF0aW9uIHJvbGVcbiAgICBjb25zdCBzdGF0aWNJbnRlZ3JhdGlvblJvbGUgPSBuZXcgUm9sZSh0aGlzLCBcIlN0YXRpY0ludGVncmF0aW9uUm9sZVwiLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwiYXBpZ2F0ZXdheS5hbWF6b25hd3MuY29tXCIpLFxuICAgIH0pO1xuXG4gICAgc3RhdGljSW50ZWdyYXRpb25Sb2xlLmFkZFRvUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcInMzOkdldE9iamVjdFwiLCBcInMzOkxpc3RCdWNrZXRcIl0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIHRoaXMucHJvcHMuc3RhdGljQXNzZXRzQnVja2V0LmJ1Y2tldEFybixcbiAgICAgICAgICBgJHt0aGlzLnByb3BzLnN0YXRpY0Fzc2V0c0J1Y2tldC5idWNrZXRBcm59LypgLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcbiAgICByZXR1cm4gc3RhdGljSW50ZWdyYXRpb25Sb2xlO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdGF0aWNJbnRlZ3JhdGlvbnMoKSB7XG4gICAgdGhpcy5uZXh0UmVzb3VyY2VcbiAgICAgIC5hZGRSZXNvdXJjZShcInN0YXRpY1wiKVxuICAgICAgLmFkZFJlc291cmNlKFwie3Byb3h5K31cIilcbiAgICAgIC5hZGRNZXRob2QoXG4gICAgICAgIFwiR0VUXCIsXG4gICAgICAgIHRoaXMuY3JlYXRlUzNJbnRlZ3JhdGlvbih7IGtleTogXCJfbmV4dC9zdGF0aWMve2tleX1cIiB9KSxcbiAgICAgICAgdGhpcy5nZXRTdGF0aWNNZXRob2RPcHRpb25zKHsgcHJveHk6IHRydWUgfSksXG4gICAgICApO1xuICAgIC8vIGFkZCBwdWJsaWMgZGlyZWN0b3J5IGZpbGVzL2RpcmVjdG9yaWVzIHRoYXQgZXhpc3QgYXQgdG9wIGxldmVsIGJ1dCBuZWVkIHRvIGdvIHRvIFMzLlxuICAgIGZvciAoY29uc3QgcHVibGljRGlyRW50cnkgb2YgdGhpcy5wcm9wcy5wdWJsaWNEaXJFbnRyaWVzKSB7XG4gICAgICBpZiAocHVibGljRGlyRW50cnkuaXNEaXJlY3RvcnkpIHtcbiAgICAgICAgdGhpcy5iYXNlUmVzb3VyY2VcbiAgICAgICAgICAuYWRkUmVzb3VyY2UocHVibGljRGlyRW50cnkubmFtZSlcbiAgICAgICAgICAuYWRkUmVzb3VyY2UoXCJ7cHJveHkrfVwiKVxuICAgICAgICAgIC5hZGRNZXRob2QoXG4gICAgICAgICAgICBcIkdFVFwiLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVTM0ludGVncmF0aW9uKHsga2V5OiBgJHtwdWJsaWNEaXJFbnRyeS5uYW1lfS97a2V5fWAgfSksXG4gICAgICAgICAgICB0aGlzLmdldFN0YXRpY01ldGhvZE9wdGlvbnMoeyBwcm94eTogdHJ1ZSB9KSxcbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5iYXNlUmVzb3VyY2VcbiAgICAgICAgICAuYWRkUmVzb3VyY2UocHVibGljRGlyRW50cnkubmFtZSlcbiAgICAgICAgICAuYWRkTWV0aG9kKFxuICAgICAgICAgICAgXCJHRVRcIixcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlUzNJbnRlZ3JhdGlvbih7IGtleTogcHVibGljRGlyRW50cnkubmFtZSB9KSxcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RhdGljTWV0aG9kT3B0aW9ucygpLFxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgQVBJIHJlcXVlc3QgdG8gUzMgcmVxdWVzdC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBpZ2F0ZXdheS9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmVzdC1hcGktcGFyYW1ldGVyLW1hcHBpbmctc291cmNlcy5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2ludGVncmF0aW5nLWFwaS13aXRoLWF3cy1zZXJ2aWNlcy1zMy5odG1sI2FwaS1pdGVtcy1pbi1mb2xkZXItYXMtczMtb2JqZWN0cy1pbi1idWNrZXRcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlUzNJbnRlZ3JhdGlvbih7IGtleSB9OiB7IGtleTogc3RyaW5nIH0pIHtcbiAgICBjb25zdCBzM0ludGVncmF0aW9uID0gbmV3IEF3c0ludGVncmF0aW9uKHtcbiAgICAgIHNlcnZpY2U6IFwiczNcIixcbiAgICAgIGludGVncmF0aW9uSHR0cE1ldGhvZDogXCJHRVRcIixcbiAgICAgIHBhdGg6IGAke3RoaXMucHJvcHMuc3RhdGljQXNzZXRzQnVja2V0LmJ1Y2tldE5hbWV9LyR7a2V5fWAsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGNyZWRlbnRpYWxzUm9sZTogdGhpcy5zdGF0aWNJbnRlZ3JhdGlvblJvbGUsXG4gICAgICAgIHBhc3N0aHJvdWdoQmVoYXZpb3I6IFBhc3N0aHJvdWdoQmVoYXZpb3IuV0hFTl9OT19URU1QTEFURVMsIC8vIHJlY29tbWVuZGVkXG4gICAgICAgIHJlcXVlc3RQYXJhbWV0ZXJzOiBrZXkuaW5jbHVkZXMoXCJ7a2V5fVwiKVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBcImludGVncmF0aW9uLnJlcXVlc3QucGF0aC5rZXlcIjogXCJtZXRob2QucmVxdWVzdC5wYXRoLnByb3h5XCIsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIGludGVncmF0aW9uUmVzcG9uc2VzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3RhdHVzQ29kZTogXCIyMDBcIixcbiAgICAgICAgICAgIHJlc3BvbnNlUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICBcIm1ldGhvZC5yZXNwb25zZS5oZWFkZXIuQ29udGVudC1UeXBlXCI6XG4gICAgICAgICAgICAgICAgXCJpbnRlZ3JhdGlvbi5yZXNwb25zZS5oZWFkZXIuQ29udGVudC1UeXBlXCIsXG4gICAgICAgICAgICAgIFwibWV0aG9kLnJlc3BvbnNlLmhlYWRlci5Db250ZW50LUxlbmd0aFwiOlxuICAgICAgICAgICAgICAgIFwiaW50ZWdyYXRpb24ucmVzcG9uc2UuaGVhZGVyLkNvbnRlbnQtTGVuZ3RoXCIsXG4gICAgICAgICAgICAgIFwibWV0aG9kLnJlc3BvbnNlLmhlYWRlci5DYWNoZS1Db250cm9sXCI6XG4gICAgICAgICAgICAgICAgXCJpbnRlZ3JhdGlvbi5yZXNwb25zZS5oZWFkZXIuQ2FjaGUtQ29udHJvbFwiLFxuICAgICAgICAgICAgICBcIm1ldGhvZC5yZXNwb25zZS5oZWFkZXIuRVRhZ1wiOiBcImludGVncmF0aW9uLnJlc3BvbnNlLmhlYWRlci5FVGFnXCIsXG4gICAgICAgICAgICAgIFwibWV0aG9kLnJlc3BvbnNlLmhlYWRlci5MYXN0LU1vZGlmaWVkXCI6XG4gICAgICAgICAgICAgICAgXCJpbnRlZ3JhdGlvbi5yZXNwb25zZS5oZWFkZXIuTGFzdC1Nb2RpZmllZFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IFwiNDA0XCIsXG4gICAgICAgICAgICBzZWxlY3Rpb25QYXR0ZXJuOiBcIjQwNFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LnN0YXRpY0ludGVncmF0aW9uUHJvcHMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHMzSW50ZWdyYXRpb247XG4gIH1cblxuICBwcml2YXRlIGdldFN0YXRpY01ldGhvZE9wdGlvbnMoeyBwcm94eSB9ID0geyBwcm94eTogZmFsc2UgfSk6IE1ldGhvZE9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICByZXF1ZXN0UGFyYW1ldGVyczogcHJveHlcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBcIm1ldGhvZC5yZXF1ZXN0LnBhdGgucHJveHlcIjogdHJ1ZSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgbWV0aG9kUmVzcG9uc2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzdGF0dXNDb2RlOiBcIjIwMFwiLFxuICAgICAgICAgIHJlc3BvbnNlUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgXCJtZXRob2QucmVzcG9uc2UuaGVhZGVyLkNvbnRlbnQtVHlwZVwiOiB0cnVlLFxuICAgICAgICAgICAgXCJtZXRob2QucmVzcG9uc2UuaGVhZGVyLkNvbnRlbnQtTGVuZ3RoXCI6IHRydWUsXG4gICAgICAgICAgICBcIm1ldGhvZC5yZXNwb25zZS5oZWFkZXIuQ2FjaGUtQ29udHJvbFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJtZXRob2QucmVzcG9uc2UuaGVhZGVyLkVUYWdcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwibWV0aG9kLnJlc3BvbnNlLmhlYWRlci5MYXN0LU1vZGlmaWVkXCI6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHN0YXR1c0NvZGU6IFwiNDA0XCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LnMzTWV0aG9kT3B0aW9ucyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBMYW1iZGEgUHJveHkgaW50ZWdyYXRpb24gZm9yIGFsbCBvdGhlciByb3V0ZXNcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY0ludGVncmF0aW9uKHNlcnZlckZ1bmN0aW9uOiBJRnVuY3Rpb24pIHtcbiAgICAvLyBJbWFnZSBvcHRpbWl6YXRpb24gcmVxdWlyZXMgYnVmZmVyZWQgbW9kZSAobm8gc3RyZWFtaW5nKSBmb3IgYmluYXJ5IGRhdGFcbiAgICBjb25zdCBpbWFnZUludGVncmF0aW9uID0gbmV3IExhbWJkYUludGVncmF0aW9uKHNlcnZlckZ1bmN0aW9uLCB7XG4gICAgICByZXNwb25zZVRyYW5zZmVyTW9kZTogUmVzcG9uc2VUcmFuc2Zlck1vZGUuQlVGRkVSRUQsIC8vIHJlcXVpcmVkIGZvciBpbWFnZXMsIG90aGVyd2lzZSA1MDJcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5keW5hbWljSW50ZWdyYXRpb25Qcm9wcyxcbiAgICB9KTtcbiAgICAvLyBBZGQgX25leHQvaW1hZ2Ugcm91dGUgd2l0aCBidWZmZXJlZCBpbnRlZ3JhdGlvblxuICAgIGNvbnN0IGltYWdlUmVzb3VyY2UgPSB0aGlzLm5leHRSZXNvdXJjZS5hZGRSZXNvdXJjZShcImltYWdlXCIpO1xuICAgIGltYWdlUmVzb3VyY2UuYWRkTWV0aG9kKFwiQU5ZXCIsIGltYWdlSW50ZWdyYXRpb24pO1xuXG4gICAgLy8gQWxsIG90aGVyIHJvdXRlcyB1c2Ugc3RyZWFtaW5nIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2VcbiAgICBjb25zdCBzdHJlYW1pbmdJbnRlZ3JhdGlvbiA9IG5ldyBMYW1iZGFJbnRlZ3JhdGlvbihzZXJ2ZXJGdW5jdGlvbiwge1xuICAgICAgcmVzcG9uc2VUcmFuc2Zlck1vZGU6IFJlc3BvbnNlVHJhbnNmZXJNb2RlLlNUUkVBTSxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5keW5hbWljSW50ZWdyYXRpb25Qcm9wcyxcbiAgICB9KTtcblxuICAgIC8vIEFkZCBjYXRjaC1hbGwgcm91dGVzIHdpdGggc3RyZWFtaW5nIGludGVncmF0aW9uIGZvciBzZXJ2ZXItc2lkZSByZW5kZXJpbmdcbiAgICB0aGlzLmJhc2VSZXNvdXJjZS5hZGRNZXRob2QoXCJBTllcIiwgc3RyZWFtaW5nSW50ZWdyYXRpb24pO1xuICAgIGNvbnN0IHByb3h5UmVzb3VyY2UgPSB0aGlzLmJhc2VSZXNvdXJjZS5hZGRSZXNvdXJjZShcIntwcm94eSt9XCIpO1xuICAgIHByb3h5UmVzb3VyY2UuYWRkTWV0aG9kKFwiQU5ZXCIsIHN0cmVhbWluZ0ludGVncmF0aW9uKTtcbiAgfVxufVxuIl19
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXh0anMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2Q0FBMEM7QUFDMUMsK0RBWW9DO0FBRXBDLGlEQUs2QjtBQUc3QiwyQ0FBdUM7QUFzQ3ZDOztHQUVHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsc0JBQVM7O0lBQ3RDOztPQUVHO0lBQ2EsR0FBRyxDQUFVO0lBRVosWUFBWSxDQUFZO0lBQ3hCLFlBQVksQ0FBWTtJQUN4QixLQUFLLENBQWlCO0lBQy9CLHFCQUFxQixDQUFRO0lBRXJDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyQiw4RUFBOEU7UUFDaEYsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsS0FBcUI7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUksd0JBQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ2xDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3pCLFdBQVcsRUFBRSwyQkFBMkIsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFO1lBQ2xFLGFBQWEsRUFBRSxDQUFDLDZCQUFZLENBQUMsUUFBUSxDQUFDO1lBQ3RDLGtCQUFrQixFQUFFLGtCQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLHlDQUF5QztZQUM1RSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFlBQVk7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCLENBQUMsUUFBaUI7UUFDMUMsc0NBQXNDO1FBQ3RDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2pDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixDQUFDLENBQUMsUUFBUSxDQUFDO1lBRWIsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyw2QkFBNkI7UUFDN0IsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQUksQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7WUFDcEUsU0FBUyxFQUFFLElBQUksMEJBQWdCLENBQUMsMEJBQTBCLENBQUM7U0FDNUQsQ0FBQyxDQUFDO1FBRUgscUJBQXFCLENBQUMsV0FBVyxDQUMvQixJQUFJLHlCQUFlLENBQUM7WUFDbEIsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQztZQUMxQyxTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTO2dCQUN2QyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsU0FBUyxJQUFJO2FBQy9DO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFDRixPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxDQUFDLFlBQVk7YUFDZCxXQUFXLENBQUMsUUFBUSxDQUFDO2FBQ3JCLFdBQVcsQ0FBQyxVQUFVLENBQUM7YUFDdkIsU0FBUyxDQUNSLEtBQUssRUFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxFQUN2RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDN0MsQ0FBQztRQUNKLHVGQUF1RjtRQUN2RixLQUFLLE1BQU0sY0FBYyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN6RCxJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFlBQVk7cUJBQ2QsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7cUJBQ2hDLFdBQVcsQ0FBQyxVQUFVLENBQUM7cUJBQ3ZCLFNBQVMsQ0FDUixLQUFLLEVBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsY0FBYyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUMsRUFDakUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQzdDLENBQUM7WUFDTixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFlBQVk7cUJBQ2QsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7cUJBQ2hDLFNBQVMsQ0FDUixLQUFLLEVBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUN0RCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FDOUIsQ0FBQztZQUNOLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBbUI7UUFDbEQsTUFBTSxhQUFhLEdBQUcsSUFBSSwrQkFBYyxDQUFDO1lBQ3ZDLE9BQU8sRUFBRSxJQUFJO1lBQ2IscUJBQXFCLEVBQUUsS0FBSztZQUM1QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsSUFBSSxHQUFHLEVBQUU7WUFDMUQsT0FBTyxFQUFFO2dCQUNQLGVBQWUsRUFBRSxJQUFJLENBQUMscUJBQXFCO2dCQUMzQyxtQkFBbUIsRUFBRSxvQ0FBbUIsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjO2dCQUMxRSxpQkFBaUIsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztvQkFDdEMsQ0FBQyxDQUFDO3dCQUNFLDhCQUE4QixFQUFFLDJCQUEyQjtxQkFDNUQ7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2Isb0JBQW9CLEVBQUU7b0JBQ3BCO3dCQUNFLFVBQVUsRUFBRSxLQUFLO3dCQUNqQixrQkFBa0IsRUFBRTs0QkFDbEIscUNBQXFDLEVBQ25DLDBDQUEwQzs0QkFDNUMsdUNBQXVDLEVBQ3JDLDRDQUE0Qzs0QkFDOUMsc0NBQXNDLEVBQ3BDLDJDQUEyQzs0QkFDN0MsNkJBQTZCLEVBQUUsa0NBQWtDOzRCQUNqRSxzQ0FBc0MsRUFDcEMsMkNBQTJDO3lCQUM5QztxQkFDRjtvQkFDRDt3QkFDRSxVQUFVLEVBQUUsS0FBSzt3QkFDakIsZ0JBQWdCLEVBQUUsS0FBSztxQkFDeEI7aUJBQ0Y7YUFDRjtZQUNELEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsc0JBQXNCO1NBQ2hELENBQUMsQ0FBQztRQUNILE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtRQUN6RCxPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsS0FBSztnQkFDdEIsQ0FBQyxDQUFDO29CQUNFLDJCQUEyQixFQUFFLElBQUk7aUJBQ2xDO2dCQUNILENBQUMsQ0FBQyxTQUFTO1lBQ2IsZUFBZSxFQUFFO2dCQUNmO29CQUNFLFVBQVUsRUFBRSxLQUFLO29CQUNqQixrQkFBa0IsRUFBRTt3QkFDbEIscUNBQXFDLEVBQUUsSUFBSTt3QkFDM0MsdUNBQXVDLEVBQUUsSUFBSTt3QkFDN0Msc0NBQXNDLEVBQUUsSUFBSTt3QkFDNUMsNkJBQTZCLEVBQUUsSUFBSTt3QkFDbkMsc0NBQXNDLEVBQUUsSUFBSTtxQkFDN0M7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCO2FBQ0Y7WUFDRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGVBQWU7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLHdCQUF3QixDQUFDLGNBQXlCO1FBQ3hELDJFQUEyRTtRQUMzRSxNQUFNLGdCQUFnQixHQUFHLElBQUksa0NBQWlCLENBQUMsY0FBYyxFQUFFO1lBQzdELG9CQUFvQixFQUFFLHFDQUFvQixDQUFDLFFBQVEsRUFBRSxxQ0FBcUM7WUFDMUYsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSx1QkFBdUI7U0FDakQsQ0FBQyxDQUFDO1FBQ0gsa0RBQWtEO1FBQ2xELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFakQsd0RBQXdEO1FBQ3hELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxrQ0FBaUIsQ0FBQyxjQUFjLEVBQUU7WUFDakUsb0JBQW9CLEVBQUUscUNBQW9CLENBQUMsTUFBTTtZQUNqRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtTQUNqRCxDQUFDLENBQUM7UUFFSCw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUN2RCxDQUFDOztBQTNNSCw4QkE0TUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaXplLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgUmVzdEFwaSxcbiAgTGFtYmRhSW50ZWdyYXRpb24sXG4gIEF3c0ludGVncmF0aW9uLFxuICBNZXRob2RPcHRpb25zLFxuICBJUmVzb3VyY2UsXG4gIEVuZHBvaW50VHlwZSxcbiAgUmVzdEFwaVByb3BzLFxuICBBd3NJbnRlZ3JhdGlvblByb3BzLFxuICBMYW1iZGFJbnRlZ3JhdGlvbk9wdGlvbnMsXG4gIFBhc3N0aHJvdWdoQmVoYXZpb3IsXG4gIFJlc3BvbnNlVHJhbnNmZXJNb2RlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IElWcGMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHtcbiAgUm9sZSxcbiAgU2VydmljZVByaW5jaXBhbCxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBJUm9sZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFB1YmxpY0RpckVudHJ5IH0gZnJvbSBcIi4vbmV4dGpzLWJ1aWxkL25leHRqcy1idWlsZFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0FwaU92ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IHJlc3RBcGlQcm9wcz86IFJlc3RBcGlQcm9wcztcbiAgcmVhZG9ubHkgc3RhdGljSW50ZWdyYXRpb25Qcm9wcz86IEF3c0ludGVncmF0aW9uUHJvcHM7XG4gIHJlYWRvbmx5IHMzTWV0aG9kT3B0aW9ucz86IE1ldGhvZE9wdGlvbnM7XG4gIHJlYWRvbmx5IGR5bmFtaWNJbnRlZ3JhdGlvblByb3BzPzogTGFtYmRhSW50ZWdyYXRpb25PcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0FwaVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGJhc2UgcGF0aCBmb3IgdGhlIGFwcGxpY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHByb3BzIGZvciBldmVyeSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNBcGlPdmVycmlkZXM7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGRpcmVjdG9yeSBvZiBOZXh0LmpzIGFwcCdzIHB1YmxpYyBkaXJlY3RvcnkuIFVzZWQgdG8gYWRkIHJlc291cmNlc1xuICAgKiB0byBBUEkgR2F0ZXdheSBSRVNUIEFQSSBmb3IgcHVibGljIGRpcmVjdG9yeSB0byBnbyBkaXJlY3RseSB0byBTMy5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0RpckVudHJpZXM6IFB1YmxpY0RpckVudHJ5W107XG4gIC8qKlxuICAgKiBSZXF1aXJlZCBpZiBgTmV4dGpzUmVnaW9uYWxGdW5jdGlvbnNgLiBUaGUgTGFtYmRhIGZ1bmN0aW9uIGZvciBzZXJ2ZXItc2lkZSByZW5kZXJpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlckZ1bmN0aW9uPzogSUZ1bmN0aW9uO1xuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCBjb250YWluaW5nIHN0YXRpYyBhc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRpY0Fzc2V0c0J1Y2tldDogSUJ1Y2tldDtcbiAgLyoqXG4gICAqIFtGdXR1cmVdIFJlcXVpcmVkIGlmIGBOZXh0anNSZWdpb25hbENvbnRhaW5lcnNgLiBWUEMgdG8gY3JlYXRlIFZQQyBMaW5rIGFuZCBFQ1MgU2VydmljZSBEaXNjb3ZlcnlcbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IElWcGM7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBBUEkgR2F0ZXdheSBSRVNUIEFQSSBmb3IgTmV4dC5qcyBhcHBsaWNhdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc0FwaSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQVBJIEdhdGV3YXkgUkVTVCBBUElcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcGk6IFJlc3RBcGk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlUmVzb3VyY2U6IElSZXNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBuZXh0UmVzb3VyY2U6IElSZXNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogTmV4dGpzQXBpUHJvcHM7XG4gIHByaXZhdGUgc3RhdGljSW50ZWdyYXRpb25Sb2xlOiBJUm9sZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmV4dGpzQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMudmFsaWRhdGVQcm9wcyhwcm9wcyk7XG4gICAgdGhpcy5hcGkgPSB0aGlzLmNyZWF0ZVJlc3RBcGkoKTtcbiAgICB0aGlzLmJhc2VSZXNvdXJjZSA9IHRoaXMuY3JlYXRlQmFzZVJlc291cmNlKHByb3BzLmJhc2VQYXRoKTtcbiAgICB0aGlzLm5leHRSZXNvdXJjZSA9IHRoaXMuYmFzZVJlc291cmNlLmFkZFJlc291cmNlKFwiX25leHRcIik7XG4gICAgdGhpcy5zdGF0aWNJbnRlZ3JhdGlvblJvbGUgPSB0aGlzLmNyZWF0ZVN0YXRpY0ludGVncmF0aW9uUm9sZSgpO1xuICAgIHRoaXMuY3JlYXRlU3RhdGljSW50ZWdyYXRpb25zKCk7XG4gICAgaWYgKHByb3BzLnNlcnZlckZ1bmN0aW9uKSB7XG4gICAgICB0aGlzLmNyZWF0ZUR5bmFtaWNJbnRlZ3JhdGlvbihwcm9wcy5zZXJ2ZXJGdW5jdGlvbik7XG4gICAgfSBlbHNlIGlmIChwcm9wcy52cGMpIHtcbiAgICAgIC8vIFtGdXR1cmVdIGNyZWF0ZSBpbnRlZ3JhdGlvbiB3aXRoIEVDUyB2aWEgVlBDIExpbmsgYW5kIEVDUyBTZXJ2aWNlIERpc2NvdmVyeVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVQcm9wcyhwcm9wczogTmV4dGpzQXBpUHJvcHMpIHtcbiAgICBpZiAoIXByb3BzLnNlcnZlckZ1bmN0aW9uICYmICFwcm9wcy52cGMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInNlcnZlckZ1bmN0aW9uIG9yIHZwYyBtdXN0IGJlIHNldCBpbiBOZXh0anNBcGlQcm9wc1wiKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlc3RBcGkoKTogUmVzdEFwaSB7XG4gICAgcmV0dXJuIG5ldyBSZXN0QXBpKHRoaXMsIFwiUmVzdEFwaVwiLCB7XG4gICAgICBiaW5hcnlNZWRpYVR5cGVzOiBbXCIqLypcIl0sXG4gICAgICBkZXNjcmlwdGlvbjogYGNkay1uZXh0anMgUkVTVCBBUEkgZm9yICR7U3RhY2sub2YodGhpcykuc3RhY2tOYW1lfWAsXG4gICAgICBlbmRwb2ludFR5cGVzOiBbRW5kcG9pbnRUeXBlLlJFR0lPTkFMXSxcbiAgICAgIG1pbkNvbXByZXNzaW9uU2l6ZTogU2l6ZS5ieXRlcygwKSwgLy8gY29tcHJlc3MgYWxsIHJlc3BvbnNlcyBmb3IgYmV0dGVyIHBlcmZcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5yZXN0QXBpUHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGJhc2UgcmVzb3VyY2UgcGF0aCBpZiBuZWVkZWQuIEltcG9ydGFudCBpZiBgYmFzZVBhdGhgIGlzIHNldC5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQmFzZVJlc291cmNlKGJhc2VQYXRoPzogc3RyaW5nKTogSVJlc291cmNlIHtcbiAgICAvLyBDcmVhdGUgYmFzZSByZXNvdXJjZSBwYXRoIGlmIG5lZWRlZFxuICAgIGxldCBiYXNlUmVzb3VyY2UgPSB0aGlzLmFwaS5yb290O1xuICAgIGlmIChiYXNlUGF0aCkge1xuICAgICAgY29uc3QgX2Jhc2VQYXRoID0gYmFzZVBhdGguc3RhcnRzV2l0aChcIi9cIilcbiAgICAgICAgPyBiYXNlUGF0aC5zdWJzdHJpbmcoMSlcbiAgICAgICAgOiBiYXNlUGF0aDtcblxuICAgICAgYmFzZVJlc291cmNlID0gdGhpcy5hcGkucm9vdC5hZGRSZXNvdXJjZShfYmFzZVBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZVJlc291cmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdGF0aWNJbnRlZ3JhdGlvblJvbGUoKSB7XG4gICAgLy8gQ3JlYXRlIFMzIGludGVncmF0aW9uIHJvbGVcbiAgICBjb25zdCBzdGF0aWNJbnRlZ3JhdGlvblJvbGUgPSBuZXcgUm9sZSh0aGlzLCBcIlN0YXRpY0ludGVncmF0aW9uUm9sZVwiLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwiYXBpZ2F0ZXdheS5hbWF6b25hd3MuY29tXCIpLFxuICAgIH0pO1xuXG4gICAgc3RhdGljSW50ZWdyYXRpb25Sb2xlLmFkZFRvUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcInMzOkdldE9iamVjdFwiLCBcInMzOkxpc3RCdWNrZXRcIl0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIHRoaXMucHJvcHMuc3RhdGljQXNzZXRzQnVja2V0LmJ1Y2tldEFybixcbiAgICAgICAgICBgJHt0aGlzLnByb3BzLnN0YXRpY0Fzc2V0c0J1Y2tldC5idWNrZXRBcm59LypgLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcbiAgICByZXR1cm4gc3RhdGljSW50ZWdyYXRpb25Sb2xlO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdGF0aWNJbnRlZ3JhdGlvbnMoKSB7XG4gICAgdGhpcy5uZXh0UmVzb3VyY2VcbiAgICAgIC5hZGRSZXNvdXJjZShcInN0YXRpY1wiKVxuICAgICAgLmFkZFJlc291cmNlKFwie3Byb3h5K31cIilcbiAgICAgIC5hZGRNZXRob2QoXG4gICAgICAgIFwiR0VUXCIsXG4gICAgICAgIHRoaXMuY3JlYXRlUzNJbnRlZ3JhdGlvbih7IGtleTogXCJfbmV4dC9zdGF0aWMve2tleX1cIiB9KSxcbiAgICAgICAgdGhpcy5nZXRTdGF0aWNNZXRob2RPcHRpb25zKHsgcHJveHk6IHRydWUgfSksXG4gICAgICApO1xuICAgIC8vIGFkZCBwdWJsaWMgZGlyZWN0b3J5IGZpbGVzL2RpcmVjdG9yaWVzIHRoYXQgZXhpc3QgYXQgdG9wIGxldmVsIGJ1dCBuZWVkIHRvIGdvIHRvIFMzLlxuICAgIGZvciAoY29uc3QgcHVibGljRGlyRW50cnkgb2YgdGhpcy5wcm9wcy5wdWJsaWNEaXJFbnRyaWVzKSB7XG4gICAgICBpZiAocHVibGljRGlyRW50cnkuaXNEaXJlY3RvcnkpIHtcbiAgICAgICAgdGhpcy5iYXNlUmVzb3VyY2VcbiAgICAgICAgICAuYWRkUmVzb3VyY2UocHVibGljRGlyRW50cnkubmFtZSlcbiAgICAgICAgICAuYWRkUmVzb3VyY2UoXCJ7cHJveHkrfVwiKVxuICAgICAgICAgIC5hZGRNZXRob2QoXG4gICAgICAgICAgICBcIkdFVFwiLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVTM0ludGVncmF0aW9uKHsga2V5OiBgJHtwdWJsaWNEaXJFbnRyeS5uYW1lfS97a2V5fWAgfSksXG4gICAgICAgICAgICB0aGlzLmdldFN0YXRpY01ldGhvZE9wdGlvbnMoeyBwcm94eTogdHJ1ZSB9KSxcbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5iYXNlUmVzb3VyY2VcbiAgICAgICAgICAuYWRkUmVzb3VyY2UocHVibGljRGlyRW50cnkubmFtZSlcbiAgICAgICAgICAuYWRkTWV0aG9kKFxuICAgICAgICAgICAgXCJHRVRcIixcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlUzNJbnRlZ3JhdGlvbih7IGtleTogcHVibGljRGlyRW50cnkubmFtZSB9KSxcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RhdGljTWV0aG9kT3B0aW9ucygpLFxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgQVBJIHJlcXVlc3QgdG8gUzMgcmVxdWVzdC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBpZ2F0ZXdheS9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmVzdC1hcGktcGFyYW1ldGVyLW1hcHBpbmctc291cmNlcy5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2ludGVncmF0aW5nLWFwaS13aXRoLWF3cy1zZXJ2aWNlcy1zMy5odG1sI2FwaS1pdGVtcy1pbi1mb2xkZXItYXMtczMtb2JqZWN0cy1pbi1idWNrZXRcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlUzNJbnRlZ3JhdGlvbih7IGtleSB9OiB7IGtleTogc3RyaW5nIH0pIHtcbiAgICBjb25zdCBzM0ludGVncmF0aW9uID0gbmV3IEF3c0ludGVncmF0aW9uKHtcbiAgICAgIHNlcnZpY2U6IFwiczNcIixcbiAgICAgIGludGVncmF0aW9uSHR0cE1ldGhvZDogXCJHRVRcIixcbiAgICAgIHBhdGg6IGAke3RoaXMucHJvcHMuc3RhdGljQXNzZXRzQnVja2V0LmJ1Y2tldE5hbWV9LyR7a2V5fWAsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGNyZWRlbnRpYWxzUm9sZTogdGhpcy5zdGF0aWNJbnRlZ3JhdGlvblJvbGUsXG4gICAgICAgIHBhc3N0aHJvdWdoQmVoYXZpb3I6IFBhc3N0aHJvdWdoQmVoYXZpb3IuV0hFTl9OT19URU1QTEFURVMsIC8vIHJlY29tbWVuZGVkXG4gICAgICAgIHJlcXVlc3RQYXJhbWV0ZXJzOiBrZXkuaW5jbHVkZXMoXCJ7a2V5fVwiKVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBcImludGVncmF0aW9uLnJlcXVlc3QucGF0aC5rZXlcIjogXCJtZXRob2QucmVxdWVzdC5wYXRoLnByb3h5XCIsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIGludGVncmF0aW9uUmVzcG9uc2VzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3RhdHVzQ29kZTogXCIyMDBcIixcbiAgICAgICAgICAgIHJlc3BvbnNlUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICBcIm1ldGhvZC5yZXNwb25zZS5oZWFkZXIuQ29udGVudC1UeXBlXCI6XG4gICAgICAgICAgICAgICAgXCJpbnRlZ3JhdGlvbi5yZXNwb25zZS5oZWFkZXIuQ29udGVudC1UeXBlXCIsXG4gICAgICAgICAgICAgIFwibWV0aG9kLnJlc3BvbnNlLmhlYWRlci5Db250ZW50LUxlbmd0aFwiOlxuICAgICAgICAgICAgICAgIFwiaW50ZWdyYXRpb24ucmVzcG9uc2UuaGVhZGVyLkNvbnRlbnQtTGVuZ3RoXCIsXG4gICAgICAgICAgICAgIFwibWV0aG9kLnJlc3BvbnNlLmhlYWRlci5DYWNoZS1Db250cm9sXCI6XG4gICAgICAgICAgICAgICAgXCJpbnRlZ3JhdGlvbi5yZXNwb25zZS5oZWFkZXIuQ2FjaGUtQ29udHJvbFwiLFxuICAgICAgICAgICAgICBcIm1ldGhvZC5yZXNwb25zZS5oZWFkZXIuRVRhZ1wiOiBcImludGVncmF0aW9uLnJlc3BvbnNlLmhlYWRlci5FVGFnXCIsXG4gICAgICAgICAgICAgIFwibWV0aG9kLnJlc3BvbnNlLmhlYWRlci5MYXN0LU1vZGlmaWVkXCI6XG4gICAgICAgICAgICAgICAgXCJpbnRlZ3JhdGlvbi5yZXNwb25zZS5oZWFkZXIuTGFzdC1Nb2RpZmllZFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IFwiNDA0XCIsXG4gICAgICAgICAgICBzZWxlY3Rpb25QYXR0ZXJuOiBcIjQwNFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LnN0YXRpY0ludGVncmF0aW9uUHJvcHMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHMzSW50ZWdyYXRpb247XG4gIH1cblxuICBwcml2YXRlIGdldFN0YXRpY01ldGhvZE9wdGlvbnMoeyBwcm94eSB9ID0geyBwcm94eTogZmFsc2UgfSk6IE1ldGhvZE9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICByZXF1ZXN0UGFyYW1ldGVyczogcHJveHlcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBcIm1ldGhvZC5yZXF1ZXN0LnBhdGgucHJveHlcIjogdHJ1ZSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgbWV0aG9kUmVzcG9uc2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzdGF0dXNDb2RlOiBcIjIwMFwiLFxuICAgICAgICAgIHJlc3BvbnNlUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgXCJtZXRob2QucmVzcG9uc2UuaGVhZGVyLkNvbnRlbnQtVHlwZVwiOiB0cnVlLFxuICAgICAgICAgICAgXCJtZXRob2QucmVzcG9uc2UuaGVhZGVyLkNvbnRlbnQtTGVuZ3RoXCI6IHRydWUsXG4gICAgICAgICAgICBcIm1ldGhvZC5yZXNwb25zZS5oZWFkZXIuQ2FjaGUtQ29udHJvbFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJtZXRob2QucmVzcG9uc2UuaGVhZGVyLkVUYWdcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwibWV0aG9kLnJlc3BvbnNlLmhlYWRlci5MYXN0LU1vZGlmaWVkXCI6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHN0YXR1c0NvZGU6IFwiNDA0XCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/LnMzTWV0aG9kT3B0aW9ucyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBMYW1iZGEgUHJveHkgaW50ZWdyYXRpb24gZm9yIGFsbCBvdGhlciByb3V0ZXNcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY0ludGVncmF0aW9uKHNlcnZlckZ1bmN0aW9uOiBJRnVuY3Rpb24pIHtcbiAgICAvLyBJbWFnZSBvcHRpbWl6YXRpb24gcmVxdWlyZXMgYnVmZmVyZWQgbW9kZSAobm8gc3RyZWFtaW5nKSBmb3IgYmluYXJ5IGRhdGFcbiAgICBjb25zdCBpbWFnZUludGVncmF0aW9uID0gbmV3IExhbWJkYUludGVncmF0aW9uKHNlcnZlckZ1bmN0aW9uLCB7XG4gICAgICByZXNwb25zZVRyYW5zZmVyTW9kZTogUmVzcG9uc2VUcmFuc2Zlck1vZGUuQlVGRkVSRUQsIC8vIHJlcXVpcmVkIGZvciBpbWFnZXMsIG90aGVyd2lzZSA1MDJcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5keW5hbWljSW50ZWdyYXRpb25Qcm9wcyxcbiAgICB9KTtcbiAgICAvLyBBZGQgX25leHQvaW1hZ2Ugcm91dGUgd2l0aCBidWZmZXJlZCBpbnRlZ3JhdGlvblxuICAgIGNvbnN0IGltYWdlUmVzb3VyY2UgPSB0aGlzLm5leHRSZXNvdXJjZS5hZGRSZXNvdXJjZShcImltYWdlXCIpO1xuICAgIGltYWdlUmVzb3VyY2UuYWRkTWV0aG9kKFwiQU5ZXCIsIGltYWdlSW50ZWdyYXRpb24pO1xuXG4gICAgLy8gQWxsIG90aGVyIHJvdXRlcyB1c2Ugc3RyZWFtaW5nIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2VcbiAgICBjb25zdCBzdHJlYW1pbmdJbnRlZ3JhdGlvbiA9IG5ldyBMYW1iZGFJbnRlZ3JhdGlvbihzZXJ2ZXJGdW5jdGlvbiwge1xuICAgICAgcmVzcG9uc2VUcmFuc2Zlck1vZGU6IFJlc3BvbnNlVHJhbnNmZXJNb2RlLlNUUkVBTSxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5keW5hbWljSW50ZWdyYXRpb25Qcm9wcyxcbiAgICB9KTtcblxuICAgIC8vIEFkZCBjYXRjaC1hbGwgcm91dGVzIHdpdGggc3RyZWFtaW5nIGludGVncmF0aW9uIGZvciBzZXJ2ZXItc2lkZSByZW5kZXJpbmdcbiAgICB0aGlzLmJhc2VSZXNvdXJjZS5hZGRNZXRob2QoXCJBTllcIiwgc3RyZWFtaW5nSW50ZWdyYXRpb24pO1xuICAgIGNvbnN0IHByb3h5UmVzb3VyY2UgPSB0aGlzLmJhc2VSZXNvdXJjZS5hZGRSZXNvdXJjZShcIntwcm94eSt9XCIpO1xuICAgIHByb3h5UmVzb3VyY2UuYWRkTWV0aG9kKFwiQU5ZXCIsIHN0cmVhbWluZ0ludGVncmF0aW9uKTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
3
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
6
|
exports.NextjsBuild = void 0;
|
|
5
7
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -10,7 +12,7 @@ const node_path_1 = require("node:path");
|
|
|
10
12
|
const posix_1 = require("node:path/posix");
|
|
11
13
|
const constructs_1 = require("constructs");
|
|
12
14
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
13
|
-
const debug_1 = require("debug");
|
|
15
|
+
const debug_1 = __importDefault(require("debug"));
|
|
14
16
|
const constants_1 = require("../constants");
|
|
15
17
|
const debug = (0, debug_1.default)("cdk-nextjs:nextjs-build");
|
|
16
18
|
/**
|
|
@@ -18,6 +20,42 @@ const debug = (0, debug_1.default)("cdk-nextjs:nextjs-build");
|
|
|
18
20
|
* @link https://nextjs.org/docs/pages/api-reference/next-config-js/output
|
|
19
21
|
*/
|
|
20
22
|
class NextjsBuild extends constructs_1.Construct {
|
|
23
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsBuild", version: "0.5.4" };
|
|
24
|
+
/**
|
|
25
|
+
* Unique id for Next.js build. Used to partition cache storage and as
|
|
26
|
+
* metadata for static assets in S3 bucket.
|
|
27
|
+
*/
|
|
28
|
+
buildId;
|
|
29
|
+
/**
|
|
30
|
+
* Absolute path to the init cache directory
|
|
31
|
+
* @example "/Users/john/myapp/.next/cdk-nextjs-init-cache"
|
|
32
|
+
*/
|
|
33
|
+
initCacheDir;
|
|
34
|
+
/**
|
|
35
|
+
* Absolute path to public. Use by CloudFront/ALB to create behaviors/rules
|
|
36
|
+
* @example "/Users/john/myapp/public"
|
|
37
|
+
*/
|
|
38
|
+
publicDirEntries;
|
|
39
|
+
/**
|
|
40
|
+
* The entrypoint JavaScript file used as an argument for Node.js to run the
|
|
41
|
+
* Next.js standalone server relative to the standalone directory.
|
|
42
|
+
* @example "./server.js"
|
|
43
|
+
* @example "./packages/ui/server.js" (monorepo)
|
|
44
|
+
*/
|
|
45
|
+
relativePathToEntrypoint;
|
|
46
|
+
/**
|
|
47
|
+
* Relative path from the standalone directory to the package containing the Next.js app.
|
|
48
|
+
* This is automatically detected from the standalone build output.
|
|
49
|
+
* @example "." for non-monorepo apps
|
|
50
|
+
* @example "./apps/web" for monorepo apps
|
|
51
|
+
*/
|
|
52
|
+
relativePathToPackage;
|
|
53
|
+
/**
|
|
54
|
+
* Absolute path to the .next directory containing Next.js build artifacts
|
|
55
|
+
*/
|
|
56
|
+
dotNextPath;
|
|
57
|
+
props;
|
|
58
|
+
buildCommand;
|
|
21
59
|
constructor(scope, id, props) {
|
|
22
60
|
super(scope, id);
|
|
23
61
|
this.props = props;
|
|
@@ -289,6 +327,4 @@ class NextjsBuild extends constructs_1.Construct {
|
|
|
289
327
|
}
|
|
290
328
|
}
|
|
291
329
|
exports.NextjsBuild = NextjsBuild;
|
|
292
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
293
|
-
NextjsBuild[_a] = { fqn: "cdk-nextjs.NextjsBuild", version: "0.5.3" };
|
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWJ1aWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25leHRqcy1idWlsZC9uZXh0anMtYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyREFBOEM7QUFDOUMscUNBT2lCO0FBQ2pCLHFDQUFpQztBQUNqQyx5Q0FBaUM7QUFDakMsMkNBQW9EO0FBQ3BELDJDQUF1QztBQUN2Qyw2REFBNkQ7QUFDN0QsaUNBQTZCO0FBQzdCLDRDQUFzRDtBQUd0RCxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBd0JsRDs7O0dBR0c7QUFDSCxNQUFhLFdBQVksU0FBUSxzQkFBUztJQXNDeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBQSxnQkFBSSxFQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLGVBQWUsQ0FBQztRQUUxRCxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFBLGdCQUFJLEVBQ3RCLEtBQUssQ0FBQyxjQUFjLEVBQ3BCLE9BQU8sRUFDUCx1QkFBdUIsQ0FDeEIsQ0FBQztRQUVGLDhCQUE4QjtRQUM5QixJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxDQUFDLEdBQUcsc0JBQVUsY0FBYyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsZ0RBQWdEO1FBQ2hELElB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QyxDQUFDO2dCQUN2RSxNQUFNLEtBQUssQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs7QUFsWUgsa0NBbVlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICByZWFkRmlsZVN5bmMsXG4gIHJlYWRkaXJTeW5jLFxuICB3cml0ZUZpbGVTeW5jLFxuICBybVN5bmMsXG4gIG1rZGlyU3luYyxcbn0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IHRtcGRpciB9IGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgam9pbiBhcyBqb2luUG9zaXggfSBmcm9tIFwibm9kZTpwYXRoL3Bvc2l4XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IGdldERlYnVnIGZyb20gXCJkZWJ1Z1wiO1xuaW1wb3J0IHsgTE9HX1BSRUZJWCwgTmV4dGpzVHlwZSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IE5leHRqc0Jhc2VQcm9wcyB9IGZyb20gXCIuLi9yb290LWNvbnN0cnVjdHMvbmV4dGpzLWJhc2UtY29uc3RydWN0XCI7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOm5leHRqcy1idWlsZFwiKTtcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNCdWlsZFByb3BzIHtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE5leHRqc0Jhc2VQcm9wc1tcImJ1aWxkQ29tbWFuZFwiXX1cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQ29tbWFuZDogTmV4dGpzQmFzZVByb3BzW1wiYnVpbGRDb21tYW5kXCJdO1xuICAvKipcbiAgICogRGlyZWN0b3J5IHdoZXJlIHRoZSBOZXh0LmpzIGFwcGxpY2F0aW9uIGlzIGxvY2F0ZWQgZm9yIGxvY2FsIGJ1aWxkcy5cbiAgICogVGhpcyBzaG91bGQgY29udGFpbiB0aGUgcGFja2FnZS5qc29uIGFuZCBOZXh0LmpzIGFwcGxpY2F0aW9uIGZpbGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGREaXJlY3Rvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgbmV4dGpzVHlwZTogTmV4dGpzVHlwZTtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE5leHRqc0Jhc2VQcm9wcy5za2lwQnVpbGR9XG4gICAqL1xuICByZWFkb25seSBza2lwQnVpbGQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1YmxpY0RpckVudHJ5IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBpc0RpcmVjdG9yeTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgTmV4dC5qcyBhc3NldHMuXG4gKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9wYWdlcy9hcGktcmVmZXJlbmNlL25leHQtY29uZmlnLWpzL291dHB1dFxuICovXG5leHBvcnQgY2xhc3MgTmV4dGpzQnVpbGQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVW5pcXVlIGlkIGZvciBOZXh0LmpzIGJ1aWxkLiBVc2VkIHRvIHBhcnRpdGlvbiBjYWNoZSBzdG9yYWdlIGFuZCBhc1xuICAgKiBtZXRhZGF0YSBmb3Igc3RhdGljIGFzc2V0cyBpbiBTMyBidWNrZXQuXG4gICAqL1xuICBidWlsZElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBwYXRoIHRvIHRoZSBpbml0IGNhY2hlIGRpcmVjdG9yeVxuICAgKiBAZXhhbXBsZSBcIi9Vc2Vycy9qb2huL215YXBwLy5uZXh0L2Nkay1uZXh0anMtaW5pdC1jYWNoZVwiXG4gICAqL1xuICBpbml0Q2FjaGVEaXI6IHN0cmluZztcbiAgLyoqXG4gICAqIEFic29sdXRlIHBhdGggdG8gcHVibGljLiBVc2UgYnkgQ2xvdWRGcm9udC9BTEIgdG8gY3JlYXRlIGJlaGF2aW9ycy9ydWxlc1xuICAgKiBAZXhhbXBsZSBcIi9Vc2Vycy9qb2huL215YXBwL3B1YmxpY1wiXG4gICAqL1xuICBwdWJsaWNEaXJFbnRyaWVzOiBQdWJsaWNEaXJFbnRyeVtdO1xuICAvKipcbiAgICogVGhlIGVudHJ5cG9pbnQgSmF2YVNjcmlwdCBmaWxlIHVzZWQgYXMgYW4gYXJndW1lbnQgZm9yIE5vZGUuanMgdG8gcnVuIHRoZVxuICAgKiBOZXh0LmpzIHN0YW5kYWxvbmUgc2VydmVyIHJlbGF0aXZlIHRvIHRoZSBzdGFuZGFsb25lIGRpcmVjdG9yeS5cbiAgICogQGV4YW1wbGUgXCIuL3NlcnZlci5qc1wiXG4gICAqIEBleGFtcGxlIFwiLi9wYWNrYWdlcy91aS9zZXJ2ZXIuanNcIiAobW9ub3JlcG8pXG4gICAqL1xuICByZWxhdGl2ZVBhdGhUb0VudHJ5cG9pbnQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFJlbGF0aXZlIHBhdGggZnJvbSB0aGUgc3RhbmRhbG9uZSBkaXJlY3RvcnkgdG8gdGhlIHBhY2thZ2UgY29udGFpbmluZyB0aGUgTmV4dC5qcyBhcHAuXG4gICAqIFRoaXMgaXMgYXV0b21hdGljYWxseSBkZXRlY3RlZCBmcm9tIHRoZSBzdGFuZGFsb25lIGJ1aWxkIG91dHB1dC5cbiAgICogQGV4YW1wbGUgXCIuXCIgZm9yIG5vbi1tb25vcmVwbyBhcHBzXG4gICAqIEBleGFtcGxlIFwiLi9hcHBzL3dlYlwiIGZvciBtb25vcmVwbyBhcHBzXG4gICAqL1xuICByZWxhdGl2ZVBhdGhUb1BhY2thZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIEFic29sdXRlIHBhdGggdG8gdGhlIC5uZXh0IGRpcmVjdG9yeSBjb250YWluaW5nIE5leHQuanMgYnVpbGQgYXJ0aWZhY3RzXG4gICAqL1xuICBkb3ROZXh0UGF0aDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcHJvcHM6IE5leHRqc0J1aWxkUHJvcHM7XG4gIHByaXZhdGUgYnVpbGRDb21tYW5kOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5leHRqc0J1aWxkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLmRvdE5leHRQYXRoID0gam9pbihwcm9wcy5idWlsZERpcmVjdG9yeSwgXCIubmV4dFwiKTtcblxuICAgIHRoaXMuYnVpbGRDb21tYW5kID0gcHJvcHMuYnVpbGRDb21tYW5kIHx8IFwibnBtIHJ1biBidWlsZFwiO1xuXG4gICAgLy8gU2V0IGluaXQgY2FjaGUgZGlyZWN0b3J5IHBhdGhcbiAgICB0aGlzLmluaXRDYWNoZURpciA9IGpvaW4oXG4gICAgICBwcm9wcy5idWlsZERpcmVjdG9yeSxcbiAgICAgIFwiLm5leHRcIixcbiAgICAgIFwiY2RrLW5leHRqcy1pbml0LWNhY2hlXCIsXG4gICAgKTtcblxuICAgIC8vIEV4ZWN1dGUgbG9jYWwgYnVpbGQgcHJvY2Vzc1xuICAgIGlmIChwcm9wcy5za2lwQnVpbGQgIT09IHRydWUpIHtcbiAgICAgIHRoaXMucnVuTmV4dEJ1aWxkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKGAke0xPR19QUkVGSVh9IFNraXBwaW5nOiAke3RoaXMuYnVpbGRDb21tYW5kfWApO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIGJ1aWxkIG91dHB1dCBhbmQgc2V0IHZhbGlkYXRlZCBwYXRoc1xuICAgIHRoaXMudmFsaWRhdGVOZXh0QnVpbGRPdXRwdXQoKTtcblxuICAgIC8vIEF1dG8tZGV0ZWN0IHJlbGF0aXZlUGF0aFRvUGFja2FnZSBmcm9tIHN0YW5kYWxvbmUgYnVpbGQgb3V0cHV0XG4gICAgdGhpcy5yZWxhdGl2ZVBhdGhUb1BhY2thZ2UgPSB0aGlzLmZpbmRSZWxhdGl2ZVBhdGhUb1NlcnZlckpzKCk7XG5cbiAgICAvLyBTZXQgZW50cnlwb2ludCBwYXRoIHVzaW5nIGRldGVjdGVkIHJlbGF0aXZlUGF0aFRvUGFja2FnZVxuICAgIHRoaXMucmVsYXRpdmVQYXRoVG9FbnRyeXBvaW50ID0gam9pblBvc2l4KFxuICAgICAgdGhpcy5yZWxhdGl2ZVBhdGhUb1BhY2thZ2UgPT09IFwiLlwiID8gXCJcIiA6IHRoaXMucmVsYXRpdmVQYXRoVG9QYWNrYWdlLFxuICAgICAgXCJzZXJ2ZXIuanNcIixcbiAgICApO1xuXG4gICAgdGhpcy5idWlsZElkID0gdGhpcy5nZXRCdWlsZElkKCk7XG4gICAgdGhpcy5wdWJsaWNEaXJFbnRyaWVzID0gdGhpcy5nZXRMb2NhbFB1YmxpY0RpckVudHJpZXMoKTtcblxuICAgIGNvbnN0IHN0YW5kYWxvbmVQYXRoID0gam9pbih0aGlzLmRvdE5leHRQYXRoLCBcInN0YW5kYWxvbmVcIik7XG4gICAgdGhpcy5yZW1vdmVFeGlzdGluZ1NoYXJwQmluYXJpZXMoc3RhbmRhbG9uZVBhdGgpO1xuICAgIHRoaXMuZG93bmxvYWRBbmRJbnN0YWxsU2hhcnBCaW5hcmllcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgbG9jYWwgYnVpbGQgY29tbWFuZCBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeVxuICAgKi9cbiAgcHJpdmF0ZSBydW5OZXh0QnVpbGQoKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgJHtMT0dfUFJFRklYfSBSdW5uaW5nOiBcIiR7dGhpcy5idWlsZENvbW1hbmR9XCIgaW4gZGlyZWN0b3J5OiAke3RoaXMucHJvcHMuYnVpbGREaXJlY3Rvcnl9YCxcbiAgICApO1xuXG4gICAgLy8gQ2xlYW4gZXhpc3RpbmcgY2FjaGUgZGlyZWN0b3J5IHRvIGF2b2lkIHN0YWxlIGRhdGEgZnJvbSBwcmV2aW91cyBidWlsZHNcbiAgICBpZiAoZXhpc3RzU3luYyh0aGlzLmluaXRDYWNoZURpcikpIHtcbiAgICAgIHJtU3luYyh0aGlzLmluaXRDYWNoZURpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgICAgZGVidWcoYENsZWFuZWQgZXhpc3RpbmcgY2FjaGUgZGlyZWN0b3J5OiAke3RoaXMuaW5pdENhY2hlRGlyfWApO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBleGVjU3luYyh0aGlzLmJ1aWxkQ29tbWFuZCwge1xuICAgICAgICBzdGRpbzogXCJpbmhlcml0XCIsXG4gICAgICAgIGN3ZDogdGhpcy5wcm9wcy5idWlsZERpcmVjdG9yeSxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICAgICAgQ0RLX05FWFRKU19JTklUX0NBQ0hFX0RJUjogdGhpcy5pbml0Q2FjaGVEaXIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gQ29weSBwYXRjaC1mZXRjaC5qcyBpbnRvIGNsaWVudCBKUyBidW5kbGUgYWZ0ZXIgYnVpbGQgb25seSBmb3IgTmV4dGpzR2xvYmFsRnVuY3Rpb25zXG4gICAgICBpZiAodGhpcy5wcm9wcy5uZXh0anNUeXBlID09PSBOZXh0anNUeXBlLkdMT0JBTF9GVU5DVElPTlMpIHtcbiAgICAgICAgdGhpcy5wYXRjaEZldGNoSW5DbGllbnRKcygpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYExvY2FsIGJ1aWxkIGZhaWxlZDogJHtlcnJvcn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgTmV4dC5qcyBidWlsZCBvdXRwdXRcbiAgICogQWxsIGJ1aWxkcyBtdXN0IGJlIHN0YW5kYWxvbmUgLSBubyBmYWxsYmFjayB0byByZWd1bGFyIGJ1aWxkc1xuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZU5leHRCdWlsZE91dHB1dCgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFuZGFsb25lRGlyID0gam9pbih0aGlzLmRvdE5leHRQYXRoLCBcInN0YW5kYWxvbmVcIik7XG4gICAgLy8gU3RhbmRhbG9uZSBkaXJlY3RvcnkgaXMgbWFuZGF0b3J5XG4gICAgaWYgKCFleGlzdHNTeW5jKHN0YW5kYWxvbmVEaXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBTdGFuZGFsb25lIGJ1aWxkIGRpcmVjdG9yeSBub3QgZm91bmQ6ICR7c3RhbmRhbG9uZURpcn0uIGAgK1xuICAgICAgICAgIGBBbGwgYnVpbGRzIG11c3QgYmUgY29uZmlndXJlZCBmb3Igc3RhbmRhbG9uZSBvdXRwdXQuIGAgK1xuICAgICAgICAgIGBQbGVhc2UgZW5zdXJlIHlvdXIgbmV4dC5jb25maWcuanMgaW5jbHVkZXMgJ291dHB1dDogXCJzdGFuZGFsb25lXCInLmAsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBBZGRpdGlvbmFsIHZhbGlkYXRpb24gKHNlcnZlci5qcyB3aXRoIC5uZXh0IHNpYmxpbmcpIGhhcHBlbnMgaW4gZmluZFJlbGF0aXZlUGF0aFRvU2VydmVySnMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgZW50cnlwb2ludCBjbGllbnQgc2lkZSBqcyBmaWxlcyB0byBwYXRjaCBgZmV0Y2hgIG9ubHkgZm9yIE5leHRqc0dsb2JhbEZ1bmN0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBwYXRjaEZldGNoSW5DbGllbnRKcygpIHtcbiAgICBjb25zdCBzdGF0aWNDaHVua3NQYXRoID0gam9pbih0aGlzLmRvdE5leHRQYXRoLCBcInN0YXRpY1wiLCBcImNodW5rc1wiKTtcbiAgICBjb25zdCBjaHVua0ZpbGVzID0gcmVhZGRpclN5bmMoc3RhdGljQ2h1bmtzUGF0aCkuZmlsdGVyKFxuICAgICAgKGZpbGU6IHN0cmluZykgPT5cbiAgICAgICAgLy8gbWFpbi1hcHAtIGZvciB3ZWJwYWNrLCB0dXJib3BhY2stIGZvciB0dXJib1xuICAgICAgICBmaWxlLnN0YXJ0c1dpdGgoXCJtYWluLWFwcC1cIikgfHxcbiAgICAgICAgKGZpbGUuc3RhcnRzV2l0aChcInR1cmJvcGFjay1cIikgJiYgZmlsZS5lbmRzV2l0aChcIi5qc1wiKSksXG4gICAgKTtcblxuICAgIGlmIChjaHVua0ZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gY2xpZW50IHNpZGUganMgZW50cnlwb2ludCBmaWxlcyBmb3VuZFwiKTtcbiAgICB9XG5cbiAgICAvLyBSZWFkIHRoZSBwYXRjaC1mZXRjaC5qcyBjb250ZW50XG4gICAgY29uc3QgcGF0Y2hGZXRjaFBhdGggPSBqb2luKF9fZGlybmFtZSwgXCJwYXRjaC1mZXRjaC5qc1wiKTtcbiAgICBpZiAoIWV4aXN0c1N5bmMocGF0Y2hGZXRjaFBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwYXRjaC1mZXRjaC5qcyBub3QgZm91bmRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0Y2hGZXRjaENvbnRlbnQgPSByZWFkRmlsZVN5bmMocGF0Y2hGZXRjaFBhdGgsIFwidXRmLThcIik7XG5cbiAgICAvLyBQcmVwZW5kIHBhdGNoLWZldGNoIGxvZ2ljIHRvIGVhY2ggZW50cnlwb2ludFxuICAgIGZvciAoY29uc3QgY2h1bmtGaWxlIG9mIGNodW5rRmlsZXMpIHtcbiAgICAgIGNvbnN0IGNodW5rRmlsZVBhdGggPSBqb2luKHN0YXRpY0NodW5rc1BhdGgsIGNodW5rRmlsZSk7XG4gICAgICBjb25zdCBvcmlnaW5hbENvbnRlbnQgPSByZWFkRmlsZVN5bmMoY2h1bmtGaWxlUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICAgIGNvbnN0IHBhdGNoZWRDb250ZW50ID0gcGF0Y2hGZXRjaENvbnRlbnQgKyBcIlxcblwiICsgb3JpZ2luYWxDb250ZW50O1xuICAgICAgd3JpdGVGaWxlU3luYyhjaHVua0ZpbGVQYXRoLCBwYXRjaGVkQ29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgZmluZHMgdGhlIHJlbGF0aXZlIHBhdGggZnJvbSBzdGFuZGFsb25lIGRpcmVjdG9yeSB0byB0aGVcbiAgICogcGFja2FnZSBjb250YWluaW5nIHNlcnZlci5qcyBieSBzZWFyY2hpbmcgZm9yIHNlcnZlci5qcyB3aXRoIGEgLm5leHQgc2libGluZy5cbiAgICogQHJldHVybnMgXCIuXCIgZm9yIG5vbi1tb25vcmVwbyBhcHBzLCBvciByZWxhdGl2ZSBwYXRoIGxpa2UgXCJhcHAtcGxheWdyb3VuZFwiIGZvciBtb25vcmVwbyBhcHBzXG4gICAqL1xuICBwcml2YXRlIGZpbmRSZWxhdGl2ZVBhdGhUb1NlcnZlckpzKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhbmRhbG9uZURpciA9IGpvaW4odGhpcy5kb3ROZXh0UGF0aCwgXCJzdGFuZGFsb25lXCIpO1xuXG4gICAgaWYgKCFleGlzdHNTeW5jKHN0YW5kYWxvbmVEaXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgZGV0ZWN0IHJlbGF0aXZlUGF0aFRvUGFja2FnZTogc3RhbmRhbG9uZSBkaXJlY3Rvcnkgbm90IGZvdW5kIGF0ICR7c3RhbmRhbG9uZURpcn1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaW5kU2VydmVySnMgPSAoXG4gICAgICBkaXI6IHN0cmluZyxcbiAgICAgIHJlbGF0aXZlUGF0aDogc3RyaW5nID0gXCJcIixcbiAgICApOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSByZWFkZGlyU3luYyhkaXIsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KTtcblxuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gam9pbihkaXIsIGVudHJ5Lm5hbWUpO1xuXG4gICAgICAgIGlmIChlbnRyeS5pc0RpcmVjdG9yeSgpICYmIGVudHJ5Lm5hbWUgIT09IFwibm9kZV9tb2R1bGVzXCIpIHtcbiAgICAgICAgICAvLyBSZWN1cnNpdmVseSBzZWFyY2ggZGlyZWN0b3JpZXMgKHNraXAgbm9kZV9tb2R1bGVzIGF0IHJvb3QgbGV2ZWwpXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gZmluZFNlcnZlckpzKGZ1bGxQYXRoLCBqb2luKHJlbGF0aXZlUGF0aCwgZW50cnkubmFtZSkpO1xuICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSBpZiAoZW50cnkuaXNGaWxlKCkgJiYgZW50cnkubmFtZSA9PT0gXCJzZXJ2ZXIuanNcIikge1xuICAgICAgICAgIC8vIENoZWNrIGlmIHRoaXMgc2VydmVyLmpzIGhhcyBhIC5uZXh0IHNpYmxpbmcgZGlyZWN0b3J5XG4gICAgICAgICAgY29uc3QgcGFyZW50RGlyID0gZGlyO1xuICAgICAgICAgIGNvbnN0IGRvdE5leHRQYXRoID0gam9pbihwYXJlbnREaXIsIFwiLm5leHRcIik7XG4gICAgICAgICAgaWYgKGV4aXN0c1N5bmMoZG90TmV4dFBhdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVsYXRpdmVQYXRoIHx8IFwiLlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpbmRTZXJ2ZXJKcyhzdGFuZGFsb25lRGlyKTtcbiAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgZGV0ZWN0IHJlbGF0aXZlUGF0aFRvUGFja2FnZTogQ291bGQgbm90IGZpbmQgc2VydmVyLmpzIHdpdGggLm5leHQgc2libGluZyBpbiAke3N0YW5kYWxvbmVEaXJ9LiBgICtcbiAgICAgICAgICBgUGxlYXNlIGVuc3VyZSBOZXh0LmpzIGJ1aWxkIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgb3IgcHJvdmlkZSByZWxhdGl2ZVBhdGhUb1BhY2thZ2UgbWFudWFsbHkuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZGVidWcoYCR7TE9HX1BSRUZJWH0gQXV0by1kZXRlY3RlZCByZWxhdGl2ZVBhdGhUb1BhY2thZ2U6IFwiJHtyZXN1bHR9XCJgKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBidWlsZCBJRCBmcm9tIC5uZXh0IGRpcmVjdG9yeVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRCdWlsZElkKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYnVpbGRJZFBhdGggPSBqb2luKHRoaXMuZG90TmV4dFBhdGgsIFwiQlVJTERfSURcIik7XG4gICAgLy8gVmVyaWZ5IEJVSUxEX0lEIGV4aXN0cyAobmVlZGVkIGZvciBjYWNoZSBwYXJ0aXRpb25pbmcpXG4gICAgaWYgKCFleGlzdHNTeW5jKGJ1aWxkSWRQYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQlVJTERfSUQgZmlsZSBub3QgZm91bmQgYXQgJHtidWlsZElkUGF0aH0uIGAgK1xuICAgICAgICAgIGBFbnN1cmUgTmV4dC5qcyBidWlsZCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LmAsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBCVUlMRF9JRCBleGlzdGVuY2UgaXMgYWxyZWFkeSB2YWxpZGF0ZWQgaW4gdmFsaWRhdGVOZXh0QnVpbGRPdXRwdXQoKVxuICAgIHJldHVybiByZWFkRmlsZVN5bmMoYnVpbGRJZFBhdGgsIFwidXRmLThcIikudHJpbSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwdWJsaWMgZGlyZWN0b3J5IGVudHJpZXMgZnJvbSBsb2NhbCBmaWxlc3lzdGVtXG4gICAqL1xuICBwcml2YXRlIGdldExvY2FsUHVibGljRGlyRW50cmllcygpOiBQdWJsaWNEaXJFbnRyeVtdIHtcbiAgICBjb25zdCBwdWJsaWNEaXJQYXRoID0gam9pbih0aGlzLnByb3BzLmJ1aWxkRGlyZWN0b3J5LCBcInB1YmxpY1wiKTtcbiAgICBpZiAoIWV4aXN0c1N5bmMocHVibGljRGlyUGF0aCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJlYWRkaXJTeW5jKHB1YmxpY0RpclBhdGgsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KS5tYXAoXG4gICAgICAgIChlbnRyeTogYW55KSA9PiAoe1xuICAgICAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICAgICAgaXNEaXJlY3Rvcnk6IGVudHJ5LmlzRGlyZWN0b3J5KCksXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKGAke0xPR19QUkVGSVh9IEZhaWxlZCB0byByZWFkIHB1YmxpYyBkaXJlY3Rvcnk6ICR7ZXJyb3J9YCk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IGZpbmQgYW5kIHJlbW92ZSBleGlzdGluZyBTaGFycCBwbGF0Zm9ybSBiaW5hcmllc1xuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVFeGlzdGluZ1NoYXJwQmluYXJpZXMoc3RhbmRhbG9uZVBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVNb2R1bGVzUGF0aCA9IGpvaW4oc3RhbmRhbG9uZVBhdGgsIFwibm9kZV9tb2R1bGVzXCIpO1xuICAgIGlmICghZXhpc3RzU3luYyhub2RlTW9kdWxlc1BhdGgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFVzZSByZWN1cnNpdmUgcmVhZGRpclN5bmMgdG8gZmluZCBhbGwgU2hhcnAgYmluYXJ5IGRpcmVjdG9yaWVzIGFuZCBzeW1saW5rc1xuICAgICAgY29uc3QgYWxsRW50cmllcyA9IHJlYWRkaXJTeW5jKG5vZGVNb2R1bGVzUGF0aCwge1xuICAgICAgICByZWN1cnNpdmU6IHRydWUsXG4gICAgICAgIHdpdGhGaWxlVHlwZXM6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc2hhcnBCaW5hcnlQYXRoczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBhbGxFbnRyaWVzKSB7XG4gICAgICAgIC8vIENoZWNrIGZvciBib3RoIGRpcmVjdG9yaWVzIGFuZCBzeW1saW5rcyAocG5wbSBjcmVhdGVzIHN5bWxpbmtzKVxuICAgICAgICBpZiAoZW50cnkuaXNEaXJlY3RvcnkoKSB8fCBlbnRyeS5pc1N5bWJvbGljTGluaygpKSB7XG4gICAgICAgICAgLy8gTWF0Y2ggU2hhcnAgYmluYXJ5IHBhY2thZ2VzIHdpdGggbW9yZSBjb21wcmVoZW5zaXZlIHBhdHRlcm5zXG4gICAgICAgICAgY29uc3QgaXNTaGFycEJpbmFyeSA9XG4gICAgICAgICAgICBlbnRyeS5uYW1lLmluY2x1ZGVzKFwic2hhcnAtXCIpIHx8XG4gICAgICAgICAgICBlbnRyeS5uYW1lLmluY2x1ZGVzKFwic2hhcnAtbGlidmlwc1wiKTtcblxuICAgICAgICAgIGlmIChpc1NoYXJwQmluYXJ5KSB7XG4gICAgICAgICAgICAvLyBGb3IgcmVjdXJzaXZlIHJlYWRkaXJTeW5jLCBwYXJlbnRQYXRoIGNvbnRhaW5zIHRoZSBmdWxsIGFic29sdXRlIHBhdGhcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gam9pbihlbnRyeS5wYXJlbnRQYXRoLCBlbnRyeS5uYW1lKTtcbiAgICAgICAgICAgIHNoYXJwQmluYXJ5UGF0aHMucHVzaChmdWxsUGF0aCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRlYnVnKFxuICAgICAgICBgJHtMT0dfUFJFRklYfSBGb3VuZCAke3NoYXJwQmluYXJ5UGF0aHMubGVuZ3RofSBTaGFycCBiaW5hcnkgZGlyZWN0b3JpZXMvc3ltbGlua3MgdG8gcmVtb3ZlYCxcbiAgICAgICk7XG5cbiAgICAgIC8vIFJlbW92ZSBhbGwgZm91bmQgU2hhcnAgYmluYXJ5IGRpcmVjdG9yaWVzIGFuZCBzeW1saW5rc1xuICAgICAgZm9yIChjb25zdCBwYXRoIG9mIHNoYXJwQmluYXJ5UGF0aHMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBybVN5bmMocGF0aCwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgICAgICAgIGRlYnVnKGAke0xPR19QUkVGSVh9IFJlbW92ZWQ6ICR7cGF0aH1gKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgJHtMT0dfUFJFRklYfSBXYXJuaW5nOiBDb3VsZCBub3QgcmVtb3ZlICR7cGF0aH06ICR7ZXJyb3J9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYCR7TE9HX1BSRUZJWH0gV2FybmluZzogQ291bGQgbm90IHJlYWQgbm9kZV9tb2R1bGVzIGRpcmVjdG9yeTogJHtlcnJvcn1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRG93bmxvYWQgYW5kIGluc3RhbGwgY29ycmVjdCBTaGFycCBiaW5hcmllcyBmb3IgTGludXggTVVTTFxuICAgKi9cbiAgcHJpdmF0ZSBkb3dubG9hZEFuZEluc3RhbGxTaGFycEJpbmFyaWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVNb2R1bGVzUGF0aCA9IGpvaW4oXG4gICAgICB0aGlzLmRvdE5leHRQYXRoLFxuICAgICAgXCJzdGFuZGFsb25lXCIsXG4gICAgICBcIm5vZGVfbW9kdWxlc1wiLFxuICAgICk7XG4gICAgY29uc3QgaW1nUGF0aCA9IGpvaW4obm9kZU1vZHVsZXNQYXRoLCBcIkBpbWdcIik7XG5cbiAgICAvLyBDcmVhdGUgYSBjb25zaXN0ZW50IGNhY2hlIGRpcmVjdG9yeSBmb3IgU2hhcnAgcGFja2FnZXNcbiAgICBjb25zdCBjYWNoZURpciA9IGpvaW4odG1wZGlyKCksIFwiY2RrLW5leHRqcy1zaGFycC1jYWNoZVwiKTtcbiAgICBpZiAoIWV4aXN0c1N5bmMoY2FjaGVEaXIpKSB7XG4gICAgICBta2RpclN5bmMoY2FjaGVEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSBAaW1nIGRpcmVjdG9yeSBleGlzdHNcbiAgICBpZiAoIWV4aXN0c1N5bmMoaW1nUGF0aCkpIHtcbiAgICAgIG1rZGlyU3luYyhpbWdQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICAvLyBEZXRlY3QgYXJjaGl0ZWN0dXJlIGZvciBjb3JyZWN0IFNoYXJwIGJpbmFyaWVzXG4gICAgY29uc3QgYXJjaCA9IHByb2Nlc3MuYXJjaC5zdGFydHNXaXRoKFwiYXJtXCIpID8gXCJhcm02NFwiIDogXCJ4NjRcIjtcblxuICAgIC8vIFNoYXJwIGJpbmFyeSBwYWNrYWdlcyB0byBkb3dubG9hZFxuICAgIGNvbnN0IHNoYXJwUGFja2FnZXMgPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGBzaGFycC1saWJ2aXBzLWxpbnV4bXVzbC0ke2FyY2h9YCxcbiAgICAgICAgdmVyc2lvbjogXCIxLjIuNFwiLFxuICAgICAgICB1cmw6IGBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AaW1nL3NoYXJwLWxpYnZpcHMtbGludXhtdXNsLSR7YXJjaH0vLS9zaGFycC1saWJ2aXBzLWxpbnV4bXVzbC0ke2FyY2h9LTEuMi40LnRnemAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBgc2hhcnAtbGludXhtdXNsLSR7YXJjaH1gLFxuICAgICAgICB2ZXJzaW9uOiBcIjAuMzQuNVwiLFxuICAgICAgICB1cmw6IGBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AaW1nL3NoYXJwLWxpbnV4bXVzbC0ke2FyY2h9Ly0vc2hhcnAtbGludXhtdXNsLSR7YXJjaH0tMC4zNC41LnRnemAsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IHBrZyBvZiBzaGFycFBhY2thZ2VzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBqb2luKGltZ1BhdGgsIHBrZy5uYW1lKTtcblxuICAgICAgICAvLyBDcmVhdGUgYSBjb25zaXN0ZW50IGZpbGVuYW1lIGJhc2VkIG9uIHBhY2thZ2UgbmFtZSBhbmQgdmVyc2lvblxuICAgICAgICBjb25zdCBjYWNoZUZpbGVOYW1lID0gYCR7cGtnLm5hbWV9LSR7cGtnLnZlcnNpb259LnRnemA7XG4gICAgICAgIGNvbnN0IGNhY2hlZEZpbGUgPSBqb2luKGNhY2hlRGlyLCBjYWNoZUZpbGVOYW1lKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhpcyBwYWNrYWdlIGNhY2hlZFxuICAgICAgICBpZiAoZXhpc3RzU3luYyhjYWNoZWRGaWxlKSkge1xuICAgICAgICAgIGRlYnVnKFxuICAgICAgICAgICAgYCR7TE9HX1BSRUZJWH0gVXNpbmcgY2FjaGVkICR7cGtnLm5hbWV9QCR7cGtnLnZlcnNpb259IGZyb20gJHtjYWNoZWRGaWxlfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWJ1ZyhgJHtMT0dfUFJFRklYfSBEb3dubG9hZGluZyAke3BrZy5uYW1lfUAke3BrZy52ZXJzaW9ufS4uLmApO1xuXG4gICAgICAgICAgLy8gRG93bmxvYWQgdG8gY2FjaGUgZGlyZWN0b3J5IHdpdGggY29uc2lzdGVudCBuYW1lXG4gICAgICAgICAgZXhlY1N5bmMoYGN1cmwgLUwgLW8gXCIke2NhY2hlZEZpbGV9XCIgXCIke3BrZy51cmx9XCJgLCB7XG4gICAgICAgICAgICBzdGRpbzogXCJwaXBlXCIsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZGVidWcoXG4gICAgICAgICAgICBgJHtMT0dfUFJFRklYfSBDYWNoZWQgJHtwa2cubmFtZX1AJHtwa2cudmVyc2lvbn0gdG8gJHtjYWNoZWRGaWxlfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSB0YXJnZXQgZGlyZWN0b3J5XG4gICAgICAgIG1rZGlyU3luYyh0YXJnZXREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgICAgIC8vIEV4dHJhY3QgZnJvbSBjYWNoZWQgZmlsZVxuICAgICAgICBleGVjU3luYyhcbiAgICAgICAgICBgdGFyIC14emYgXCIke2NhY2hlZEZpbGV9XCIgLUMgXCIke3RhcmdldERpcn1cIiAtLXN0cmlwLWNvbXBvbmVudHM9MWAsXG4gICAgICAgICAgeyBzdGRpbzogXCJwaXBlXCIgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBkZWJ1ZyhgJHtMT0dfUFJFRklYfSBJbnN0YWxsZWQgJHtwa2cubmFtZX1AJHtwa2cudmVyc2lvbn1gKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7TE9HX1BSRUZJWH0gRmFpbGVkIHRvIGluc3RhbGwgJHtwa2cubmFtZX06ICR7ZXJyb3J9YCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWJ1aWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25leHRqcy1idWlsZC9uZXh0anMtYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLDJEQUE4QztBQUM5QyxxQ0FPaUI7QUFDakIscUNBQWlDO0FBQ2pDLHlDQUFpQztBQUNqQywyQ0FBb0Q7QUFDcEQsMkNBQXVDO0FBQ3ZDLDZEQUE2RDtBQUM3RCxrREFBNkI7QUFDN0IsNENBQXNEO0FBR3RELE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBUSxFQUFDLHlCQUF5QixDQUFDLENBQUM7QUF3QmxEOzs7R0FHRztBQUNILE1BQWEsV0FBWSxTQUFRLHNCQUFTOztJQUN4Qzs7O09BR0c7SUFDSCxPQUFPLENBQVM7SUFDaEI7OztPQUdHO0lBQ0gsWUFBWSxDQUFTO0lBQ3JCOzs7T0FHRztJQUNILGdCQUFnQixDQUFtQjtJQUNuQzs7Ozs7T0FLRztJQUNILHdCQUF3QixDQUFTO0lBQ2pDOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQVM7SUFDOUI7O09BRUc7SUFDSCxXQUFXLENBQVM7SUFFWixLQUFLLENBQW1CO0lBQ3hCLFlBQVksQ0FBUztJQUU3QixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFBLGdCQUFJLEVBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksZUFBZSxDQUFDO1FBRTFELGdDQUFnQztRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUEsZ0JBQUksRUFDdEIsS0FBSyxDQUFDLGNBQWMsRUFDcEIsT0FBTyxFQUNQLHVCQUF1QixD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LEVBQUUsQ0FDbEIsQ0FBQztnQkFFRixLQUFLLENBQUMsR0FBRyxzQkFBVSxjQUFjLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLHNCQUFVLHNCQUFzQixHQUFHLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3ZFLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOztBQWxZSCxrQ0FtWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7XG4gIGV4aXN0c1N5bmMsXG4gIHJlYWRGaWxlU3luYyxcbiAgcmVhZGRpclN5bmMsXG4gIHdyaXRlRmlsZVN5bmMsXG4gIHJtU3luYyxcbiAgbWtkaXJTeW5jLFxufSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBqb2luIGFzIGpvaW5Qb3NpeCB9IGZyb20gXCJub2RlOnBhdGgvcG9zaXhcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgZ2V0RGVidWcgZnJvbSBcImRlYnVnXCI7XG5pbXBvcnQgeyBMT0dfUFJFRklYLCBOZXh0anNUeXBlIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTmV4dGpzQmFzZVByb3BzIH0gZnJvbSBcIi4uL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtYmFzZS1jb25zdHJ1Y3RcIjtcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZyhcImNkay1uZXh0anM6bmV4dGpzLWJ1aWxkXCIpO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0J1aWxkUHJvcHMge1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTmV4dGpzQmFzZVByb3BzW1wiYnVpbGRDb21tYW5kXCJdfVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRDb21tYW5kOiBOZXh0anNCYXNlUHJvcHNbXCJidWlsZENvbW1hbmRcIl07XG4gIC8qKlxuICAgKiBEaXJlY3Rvcnkgd2hlcmUgdGhlIE5leHQuanMgYXBwbGljYXRpb24gaXMgbG9jYXRlZCBmb3IgbG9jYWwgYnVpbGRzLlxuICAgKiBUaGlzIHNob3VsZCBjb250YWluIHRoZSBwYWNrYWdlLmpzb24gYW5kIE5leHQuanMgYXBwbGljYXRpb24gZmlsZXMuXG4gICAqL1xuICByZWFkb25seSBidWlsZERpcmVjdG9yeTogc3RyaW5nO1xuICByZWFkb25seSBuZXh0anNUeXBlOiBOZXh0anNUeXBlO1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTmV4dGpzQmFzZVByb3BzLnNraXBCdWlsZH1cbiAgICovXG4gIHJlYWRvbmx5IHNraXBCdWlsZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGljRGlyRW50cnkge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzRGlyZWN0b3J5OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBOZXh0LmpzIGFzc2V0cy5cbiAqIEBsaW5rIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2FwaS1yZWZlcmVuY2UvbmV4dC1jb25maWctanMvb3V0cHV0XG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0anNCdWlsZCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWQgZm9yIE5leHQuanMgYnVpbGQuIFVzZWQgdG8gcGFydGl0aW9uIGNhY2hlIHN0b3JhZ2UgYW5kIGFzXG4gICAqIG1ldGFkYXRhIGZvciBzdGF0aWMgYXNzZXRzIGluIFMzIGJ1Y2tldC5cbiAgICovXG4gIGJ1aWxkSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEFic29sdXRlIHBhdGggdG8gdGhlIGluaXQgY2FjaGUgZGlyZWN0b3J5XG4gICAqIEBleGFtcGxlIFwiL1VzZXJzL2pvaG4vbXlhcHAvLm5leHQvY2RrLW5leHRqcy1pbml0LWNhY2hlXCJcbiAgICovXG4gIGluaXRDYWNoZURpcjogc3RyaW5nO1xuICAvKipcbiAgICogQWJzb2x1dGUgcGF0aCB0byBwdWJsaWMuIFVzZSBieSBDbG91ZEZyb250L0FMQiB0byBjcmVhdGUgYmVoYXZpb3JzL3J1bGVzXG4gICAqIEBleGFtcGxlIFwiL1VzZXJzL2pvaG4vbXlhcHAvcHVibGljXCJcbiAgICovXG4gIHB1YmxpY0RpckVudHJpZXM6IFB1YmxpY0RpckVudHJ5W107XG4gIC8qKlxuICAgKiBUaGUgZW50cnlwb2ludCBKYXZhU2NyaXB0IGZpbGUgdXNlZCBhcyBhbiBhcmd1bWVudCBmb3IgTm9kZS5qcyB0byBydW4gdGhlXG4gICAqIE5leHQuanMgc3RhbmRhbG9uZSBzZXJ2ZXIgcmVsYXRpdmUgdG8gdGhlIHN0YW5kYWxvbmUgZGlyZWN0b3J5LlxuICAgKiBAZXhhbXBsZSBcIi4vc2VydmVyLmpzXCJcbiAgICogQGV4YW1wbGUgXCIuL3BhY2thZ2VzL3VpL3NlcnZlci5qc1wiIChtb25vcmVwbylcbiAgICovXG4gIHJlbGF0aXZlUGF0aFRvRW50cnlwb2ludDogc3RyaW5nO1xuICAvKipcbiAgICogUmVsYXRpdmUgcGF0aCBmcm9tIHRoZSBzdGFuZGFsb25lIGRpcmVjdG9yeSB0byB0aGUgcGFja2FnZSBjb250YWluaW5nIHRoZSBOZXh0LmpzIGFwcC5cbiAgICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IGRldGVjdGVkIGZyb20gdGhlIHN0YW5kYWxvbmUgYnVpbGQgb3V0cHV0LlxuICAgKiBAZXhhbXBsZSBcIi5cIiBmb3Igbm9uLW1vbm9yZXBvIGFwcHNcbiAgICogQGV4YW1wbGUgXCIuL2FwcHMvd2ViXCIgZm9yIG1vbm9yZXBvIGFwcHNcbiAgICovXG4gIHJlbGF0aXZlUGF0aFRvUGFja2FnZTogc3RyaW5nO1xuICAvKipcbiAgICogQWJzb2x1dGUgcGF0aCB0byB0aGUgLm5leHQgZGlyZWN0b3J5IGNvbnRhaW5pbmcgTmV4dC5qcyBidWlsZCBhcnRpZmFjdHNcbiAgICovXG4gIGRvdE5leHRQYXRoOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBwcm9wczogTmV4dGpzQnVpbGRQcm9wcztcbiAgcHJpdmF0ZSBidWlsZENvbW1hbmQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmV4dGpzQnVpbGRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuZG90TmV4dFBhdGggPSBqb2luKHByb3BzLmJ1aWxkRGlyZWN0b3J5LCBcIi5uZXh0XCIpO1xuXG4gICAgdGhpcy5idWlsZENvbW1hbmQgPSBwcm9wcy5idWlsZENvbW1hbmQgfHwgXCJucG0gcnVuIGJ1aWxkXCI7XG5cbiAgICAvLyBTZXQgaW5pdCBjYWNoZSBkaXJlY3RvcnkgcGF0aFxuICAgIHRoaXMuaW5pdENhY2hlRGlyID0gam9pbihcbiAgICAgIHByb3BzLmJ1aWxkRGlyZWN0b3J5LFxuICAgICAgXCIubmV4dFwiLFxuICAgICAgXCJjZGstbmV4dGpzLWluaXQtY2FjaGVcIixcbiAgICApO1xuXG4gICAgLy8gRXhlY3V0ZSBsb2NhbCBidWlsZCBwcm9jZXNzXG4gICAgaWYgKHByb3BzLnNraXBCdWlsZCAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5ydW5OZXh0QnVpbGQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoYCR7TE9HX1BSRUZJWH0gU2tpcHBpbmc6ICR7dGhpcy5idWlsZENvbW1hbmR9YCk7XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgYnVpbGQgb3V0cHV0IGFuZCBzZXQgdmFsaWRhdGVkIHBhdGhzXG4gICAgdGhpcy52YWxpZGF0ZU5leHRCdWlsZE91dHB1dCgpO1xuXG4gICAgLy8gQXV0by1kZXRlY3QgcmVsYXRpdmVQYXRoVG9QYWNrYWdlIGZyb20gc3RhbmRhbG9uZSBidWlsZCBvdXRwdXRcbiAgICB0aGlzLnJlbGF0aXZlUGF0aFRvUGFja2FnZSA9IHRoaXMuZmluZFJlbGF0aXZlUGF0aFRvU2VydmVySnMoKTtcblxuICAgIC8vIFNldCBlbnRyeXBvaW50IHBhdGggdXNpbmcgZGV0ZWN0ZWQgcmVsYXRpdmVQYXRoVG9QYWNrYWdlXG4gICAgdGhpcy5yZWxhdGl2ZVBhdGhUb0VudHJ5cG9pbnQgPSBqb2luUG9zaXgoXG4gICAgICB0aGlzLnJlbGF0aXZlUGF0aFRvUGFja2FnZSA9PT0gXCIuXCIgPyBcIlwiIDogdGhpcy5yZWxhdGl2ZVBhdGhUb1BhY2thZ2UsXG4gICAgICBcInNlcnZlci5qc1wiLFxuICAgICk7XG5cbiAgICB0aGlzLmJ1aWxkSWQgPSB0aGlzLmdldEJ1aWxkSWQoKTtcbiAgICB0aGlzLnB1YmxpY0RpckVudHJpZXMgPSB0aGlzLmdldExvY2FsUHVibGljRGlyRW50cmllcygpO1xuXG4gICAgY29uc3Qgc3RhbmRhbG9uZVBhdGggPSBqb2luKHRoaXMuZG90TmV4dFBhdGgsIFwic3RhbmRhbG9uZVwiKTtcbiAgICB0aGlzLnJlbW92ZUV4aXN0aW5nU2hhcnBCaW5hcmllcyhzdGFuZGFsb25lUGF0aCk7XG4gICAgdGhpcy5kb3dubG9hZEFuZEluc3RhbGxTaGFycEJpbmFyaWVzKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBsb2NhbCBidWlsZCBjb21tYW5kIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5XG4gICAqL1xuICBwcml2YXRlIHJ1bk5leHRCdWlsZCgpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAke0xPR19QUkVGSVh9IFJ1bm5pbmc6IFwiJHt0aGlzLmJ1aWxkQ29tbWFuZH1cIiBpbiBkaXJlY3Rvcnk6ICR7dGhpcy5wcm9wcy5idWlsZERpcmVjdG9yeX1gLFxuICAgICk7XG5cbiAgICAvLyBDbGVhbiBleGlzdGluZyBjYWNoZSBkaXJlY3RvcnkgdG8gYXZvaWQgc3RhbGUgZGF0YSBmcm9tIHByZXZpb3VzIGJ1aWxkc1xuICAgIGlmIChleGlzdHNTeW5jKHRoaXMuaW5pdENhY2hlRGlyKSkge1xuICAgICAgcm1TeW5jKHRoaXMuaW5pdENhY2hlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICBkZWJ1ZyhgQ2xlYW5lZCBleGlzdGluZyBjYWNoZSBkaXJlY3Rvcnk6ICR7dGhpcy5pbml0Q2FjaGVEaXJ9YCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGV4ZWNTeW5jKHRoaXMuYnVpbGRDb21tYW5kLCB7XG4gICAgICAgIHN0ZGlvOiBcImluaGVyaXRcIixcbiAgICAgICAgY3dkOiB0aGlzLnByb3BzLmJ1aWxkRGlyZWN0b3J5LFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICAuLi5wcm9jZXNzLmVudixcbiAgICAgICAgICBDREtfTkVYVEpTX0lOSVRfQ0FDSEVfRElSOiB0aGlzLmluaXRDYWNoZURpcixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBDb3B5IHBhdGNoLWZldGNoLmpzIGludG8gY2xpZW50IEpTIGJ1bmRsZSBhZnRlciBidWlsZCBvbmx5IGZvciBOZXh0anNHbG9iYWxGdW5jdGlvbnNcbiAgICAgIGlmICh0aGlzLnByb3BzLm5leHRqc1R5cGUgPT09IE5leHRqc1R5cGUuR0xPQkFMX0ZVTkNUSU9OUykge1xuICAgICAgICB0aGlzLnBhdGNoRmV0Y2hJbkNsaWVudEpzKCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTG9jYWwgYnVpbGQgZmFpbGVkOiAke2Vycm9yfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBOZXh0LmpzIGJ1aWxkIG91dHB1dFxuICAgKiBBbGwgYnVpbGRzIG11c3QgYmUgc3RhbmRhbG9uZSAtIG5vIGZhbGxiYWNrIHRvIHJlZ3VsYXIgYnVpbGRzXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlTmV4dEJ1aWxkT3V0cHV0KCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YW5kYWxvbmVEaXIgPSBqb2luKHRoaXMuZG90TmV4dFBhdGgsIFwic3RhbmRhbG9uZVwiKTtcbiAgICAvLyBTdGFuZGFsb25lIGRpcmVjdG9yeSBpcyBtYW5kYXRvcnlcbiAgICBpZiAoIWV4aXN0c1N5bmMoc3RhbmRhbG9uZURpcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFN0YW5kYWxvbmUgYnVpbGQgZGlyZWN0b3J5IG5vdCBmb3VuZDogJHtzdGFuZGFsb25lRGlyfS4gYCArXG4gICAgICAgICAgYEFsbCBidWlsZHMgbXVzdCBiZSBjb25maWd1cmVkIGZvciBzdGFuZGFsb25lIG91dHB1dC4gYCArXG4gICAgICAgICAgYFBsZWFzZSBlbnN1cmUgeW91ciBuZXh0LmNvbmZpZy5qcyBpbmNsdWRlcyAnb3V0cHV0OiBcInN0YW5kYWxvbmVcIicuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIEFkZGl0aW9uYWwgdmFsaWRhdGlvbiAoc2VydmVyLmpzIHdpdGggLm5leHQgc2libGluZykgaGFwcGVucyBpbiBmaW5kUmVsYXRpdmVQYXRoVG9TZXJ2ZXJKcygpXG4gIH1cblxuICAvKipcbiAgICogRmluZCBlbnRyeXBvaW50IGNsaWVudCBzaWRlIGpzIGZpbGVzIHRvIHBhdGNoIGBmZXRjaGAgb25seSBmb3IgTmV4dGpzR2xvYmFsRnVuY3Rpb25zXG4gICAqL1xuICBwcml2YXRlIHBhdGNoRmV0Y2hJbkNsaWVudEpzKCkge1xuICAgIGNvbnN0IHN0YXRpY0NodW5rc1BhdGggPSBqb2luKHRoaXMuZG90TmV4dFBhdGgsIFwic3RhdGljXCIsIFwiY2h1bmtzXCIpO1xuICAgIGNvbnN0IGNodW5rRmlsZXMgPSByZWFkZGlyU3luYyhzdGF0aWNDaHVua3NQYXRoKS5maWx0ZXIoXG4gICAgICAoZmlsZTogc3RyaW5nKSA9PlxuICAgICAgICAvLyBtYWluLWFwcC0gZm9yIHdlYnBhY2ssIHR1cmJvcGFjay0gZm9yIHR1cmJvXG4gICAgICAgIGZpbGUuc3RhcnRzV2l0aChcIm1haW4tYXBwLVwiKSB8fFxuICAgICAgICAoZmlsZS5zdGFydHNXaXRoKFwidHVyYm9wYWNrLVwiKSAmJiBmaWxlLmVuZHNXaXRoKFwiLmpzXCIpKSxcbiAgICApO1xuXG4gICAgaWYgKGNodW5rRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBjbGllbnQgc2lkZSBqcyBlbnRyeXBvaW50IGZpbGVzIGZvdW5kXCIpO1xuICAgIH1cblxuICAgIC8vIFJlYWQgdGhlIHBhdGNoLWZldGNoLmpzIGNvbnRlbnRcbiAgICBjb25zdCBwYXRjaEZldGNoUGF0aCA9IGpvaW4oX19kaXJuYW1lLCBcInBhdGNoLWZldGNoLmpzXCIpO1xuICAgIGlmICghZXhpc3RzU3luYyhwYXRjaEZldGNoUGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInBhdGNoLWZldGNoLmpzIG5vdCBmb3VuZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXRjaEZldGNoQ29udGVudCA9IHJlYWRGaWxlU3luYyhwYXRjaEZldGNoUGF0aCwgXCJ1dGYtOFwiKTtcblxuICAgIC8vIFByZXBlbmQgcGF0Y2gtZmV0Y2ggbG9naWMgdG8gZWFjaCBlbnRyeXBvaW50XG4gICAgZm9yIChjb25zdCBjaHVua0ZpbGUgb2YgY2h1bmtGaWxlcykge1xuICAgICAgY29uc3QgY2h1bmtGaWxlUGF0aCA9IGpvaW4oc3RhdGljQ2h1bmtzUGF0aCwgY2h1bmtGaWxlKTtcbiAgICAgIGNvbnN0IG9yaWdpbmFsQ29udGVudCA9IHJlYWRGaWxlU3luYyhjaHVua0ZpbGVQYXRoLCBcInV0Zi04XCIpO1xuICAgICAgY29uc3QgcGF0Y2hlZENvbnRlbnQgPSBwYXRjaEZldGNoQ29udGVudCArIFwiXFxuXCIgKyBvcmlnaW5hbENvbnRlbnQ7XG4gICAgICB3cml0ZUZpbGVTeW5jKGNodW5rRmlsZVBhdGgsIHBhdGNoZWRDb250ZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBmaW5kcyB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIHN0YW5kYWxvbmUgZGlyZWN0b3J5IHRvIHRoZVxuICAgKiBwYWNrYWdlIGNvbnRhaW5pbmcgc2VydmVyLmpzIGJ5IHNlYXJjaGluZyBmb3Igc2VydmVyLmpzIHdpdGggYSAubmV4dCBzaWJsaW5nLlxuICAgKiBAcmV0dXJucyBcIi5cIiBmb3Igbm9uLW1vbm9yZXBvIGFwcHMsIG9yIHJlbGF0aXZlIHBhdGggbGlrZSBcImFwcC1wbGF5Z3JvdW5kXCIgZm9yIG1vbm9yZXBvIGFwcHNcbiAgICovXG4gIHByaXZhdGUgZmluZFJlbGF0aXZlUGF0aFRvU2VydmVySnMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdGFuZGFsb25lRGlyID0gam9pbih0aGlzLmRvdE5leHRQYXRoLCBcInN0YW5kYWxvbmVcIik7XG5cbiAgICBpZiAoIWV4aXN0c1N5bmMoc3RhbmRhbG9uZURpcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCBkZXRlY3QgcmVsYXRpdmVQYXRoVG9QYWNrYWdlOiBzdGFuZGFsb25lIGRpcmVjdG9yeSBub3QgZm91bmQgYXQgJHtzdGFuZGFsb25lRGlyfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbmRTZXJ2ZXJKcyA9IChcbiAgICAgIGRpcjogc3RyaW5nLFxuICAgICAgcmVsYXRpdmVQYXRoOiBzdHJpbmcgPSBcIlwiLFxuICAgICk6IHN0cmluZyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgZW50cmllcyA9IHJlYWRkaXJTeW5jKGRpciwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pO1xuXG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgY29uc3QgZnVsbFBhdGggPSBqb2luKGRpciwgZW50cnkubmFtZSk7XG5cbiAgICAgICAgaWYgKGVudHJ5LmlzRGlyZWN0b3J5KCkgJiYgZW50cnkubmFtZSAhPT0gXCJub2RlX21vZHVsZXNcIikge1xuICAgICAgICAgIC8vIFJlY3Vyc2l2ZWx5IHNlYXJjaCBkaXJlY3RvcmllcyAoc2tpcCBub2RlX21vZHVsZXMgYXQgcm9vdCBsZXZlbClcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBmaW5kU2VydmVySnMoZnVsbFBhdGgsIGpvaW4ocmVsYXRpdmVQYXRoLCBlbnRyeS5uYW1lKSk7XG4gICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIGlmIChlbnRyeS5pc0ZpbGUoKSAmJiBlbnRyeS5uYW1lID09PSBcInNlcnZlci5qc1wiKSB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBzZXJ2ZXIuanMgaGFzIGEgLm5leHQgc2libGluZyBkaXJlY3RvcnlcbiAgICAgICAgICBjb25zdCBwYXJlbnREaXIgPSBkaXI7XG4gICAgICAgICAgY29uc3QgZG90TmV4dFBhdGggPSBqb2luKHBhcmVudERpciwgXCIubmV4dFwiKTtcbiAgICAgICAgICBpZiAoZXhpc3RzU3luYyhkb3ROZXh0UGF0aCkpIHtcbiAgICAgICAgICAgIHJldHVybiByZWxhdGl2ZVBhdGggfHwgXCIuXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gZmluZFNlcnZlckpzKHN0YW5kYWxvbmVEaXIpO1xuICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCBkZXRlY3QgcmVsYXRpdmVQYXRoVG9QYWNrYWdlOiBDb3VsZCBub3QgZmluZCBzZXJ2ZXIuanMgd2l0aCAubmV4dCBzaWJsaW5nIGluICR7c3RhbmRhbG9uZURpcn0uIGAgK1xuICAgICAgICAgIGBQbGVhc2UgZW5zdXJlIE5leHQuanMgYnVpbGQgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBvciBwcm92aWRlIHJlbGF0aXZlUGF0aFRvUGFja2FnZSBtYW51YWxseS5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBkZWJ1ZyhgJHtMT0dfUFJFRklYfSBBdXRvLWRldGVjdGVkIHJlbGF0aXZlUGF0aFRvUGFja2FnZTogXCIke3Jlc3VsdH1cImApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGJ1aWxkIElEIGZyb20gLm5leHQgZGlyZWN0b3J5XG4gICAqL1xuICBwcml2YXRlIGdldEJ1aWxkSWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBidWlsZElkUGF0aCA9IGpvaW4odGhpcy5kb3ROZXh0UGF0aCwgXCJCVUlMRF9JRFwiKTtcbiAgICAvLyBWZXJpZnkgQlVJTERfSUQgZXhpc3RzIChuZWVkZWQgZm9yIGNhY2hlIHBhcnRpdGlvbmluZylcbiAgICBpZiAoIWV4aXN0c1N5bmMoYnVpbGRJZFBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBCVUlMRF9JRCBmaWxlIG5vdCBmb3VuZCBhdCAke2J1aWxkSWRQYXRofS4gYCArXG4gICAgICAgICAgYEVuc3VyZSBOZXh0LmpzIGJ1aWxkIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIEJVSUxEX0lEIGV4aXN0ZW5jZSBpcyBhbHJlYWR5IHZhbGlkYXRlZCBpbiB2YWxpZGF0ZU5leHRCdWlsZE91dHB1dCgpXG4gICAgcmV0dXJuIHJlYWRGaWxlU3luYyhidWlsZElkUGF0aCwgXCJ1dGYtOFwiKS50cmltKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHB1YmxpYyBkaXJlY3RvcnkgZW50cmllcyBmcm9tIGxvY2FsIGZpbGVzeXN0ZW1cbiAgICovXG4gIHByaXZhdGUgZ2V0TG9jYWxQdWJsaWNEaXJFbnRyaWVzKCk6IFB1YmxpY0RpckVudHJ5W10ge1xuICAgIGNvbnN0IHB1YmxpY0RpclBhdGggPSBqb2luKHRoaXMucHJvcHMuYnVpbGREaXJlY3RvcnksIFwicHVibGljXCIpO1xuICAgIGlmICghZXhpc3RzU3luYyhwdWJsaWNEaXJQYXRoKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gcmVhZGRpclN5bmMocHVibGljRGlyUGF0aCwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pLm1hcChcbiAgICAgICAgKGVudHJ5OiBhbnkpID0+ICh7XG4gICAgICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICAgICAgICBpc0RpcmVjdG9yeTogZW50cnkuaXNEaXJlY3RvcnkoKSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oYCR7TE9HX1BSRUZJWH0gRmFpbGVkIHRvIHJlYWQgcHVibGljIGRpcmVjdG9yeTogJHtlcnJvcn1gKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgZmluZCBhbmQgcmVtb3ZlIGV4aXN0aW5nIFNoYXJwIHBsYXRmb3JtIGJpbmFyaWVzXG4gICAqL1xuICBwcml2YXRlIHJlbW92ZUV4aXN0aW5nU2hhcnBCaW5hcmllcyhzdGFuZGFsb25lUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgbm9kZU1vZHVsZXNQYXRoID0gam9pbihzdGFuZGFsb25lUGF0aCwgXCJub2RlX21vZHVsZXNcIik7XG4gICAgaWYgKCFleGlzdHNTeW5jKG5vZGVNb2R1bGVzUGF0aCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gVXNlIHJlY3Vyc2l2ZSByZWFkZGlyU3luYyB0byBmaW5kIGFsbCBTaGFycCBiaW5hcnkgZGlyZWN0b3JpZXMgYW5kIHN5bWxpbmtzXG4gICAgICBjb25zdCBhbGxFbnRyaWVzID0gcmVhZGRpclN5bmMobm9kZU1vZHVsZXNQYXRoLCB7XG4gICAgICAgIHJlY3Vyc2l2ZTogdHJ1ZSxcbiAgICAgICAgd2l0aEZpbGVUeXBlczogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzaGFycEJpbmFyeVBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGFsbEVudHJpZXMpIHtcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGJvdGggZGlyZWN0b3JpZXMgYW5kIHN5bWxpbmtzIChwbnBtIGNyZWF0ZXMgc3ltbGlua3MpXG4gICAgICAgIGlmIChlbnRyeS5pc0RpcmVjdG9yeSgpIHx8IGVudHJ5LmlzU3ltYm9saWNMaW5rKCkpIHtcbiAgICAgICAgICAvLyBNYXRjaCBTaGFycCBiaW5hcnkgcGFja2FnZXMgd2l0aCBtb3JlIGNvbXByZWhlbnNpdmUgcGF0dGVybnNcbiAgICAgICAgICBjb25zdCBpc1NoYXJwQmluYXJ5ID1cbiAgICAgICAgICAgIGVudHJ5Lm5hbWUuaW5jbHVkZXMoXCJzaGFycC1cIikgfHxcbiAgICAgICAgICAgIGVudHJ5Lm5hbWUuaW5jbHVkZXMoXCJzaGFycC1saWJ2aXBzXCIpO1xuXG4gICAgICAgICAgaWYgKGlzU2hhcnBCaW5hcnkpIHtcbiAgICAgICAgICAgIC8vIEZvciByZWN1cnNpdmUgcmVhZGRpclN5bmMsIHBhcmVudFBhdGggY29udGFpbnMgdGhlIGZ1bGwgYWJzb2x1dGUgcGF0aFxuICAgICAgICAgICAgY29uc3QgZnVsbFBhdGggPSBqb2luKGVudHJ5LnBhcmVudFBhdGgsIGVudHJ5Lm5hbWUpO1xuICAgICAgICAgICAgc2hhcnBCaW5hcnlQYXRocy5wdXNoKGZ1bGxQYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZGVidWcoXG4gICAgICAgIGAke0xPR19QUkVGSVh9IEZvdW5kICR7c2hhcnBCaW5hcnlQYXRocy5sZW5ndGh9IFNoYXJwIGJpbmFyeSBkaXJlY3Rvcmllcy9zeW1saW5rcyB0byByZW1vdmVgLFxuICAgICAgKTtcblxuICAgICAgLy8gUmVtb3ZlIGFsbCBmb3VuZCBTaGFycCBiaW5hcnkgZGlyZWN0b3JpZXMgYW5kIHN5bWxpbmtzXG4gICAgICBmb3IgKGNvbnN0IHBhdGggb2Ygc2hhcnBCaW5hcnlQYXRocykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJtU3luYyhwYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICAgICAgZGVidWcoYCR7TE9HX1BSRUZJWH0gUmVtb3ZlZDogJHtwYXRofWApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGAke0xPR19QUkVGSVh9IFdhcm5pbmc6IENvdWxkIG5vdCByZW1vdmUgJHtwYXRofTogJHtlcnJvcn1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtMT0dfUFJFRklYfSBXYXJuaW5nOiBDb3VsZCBub3QgcmVhZCBub2RlX21vZHVsZXMgZGlyZWN0b3J5OiAke2Vycm9yfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZCBhbmQgaW5zdGFsbCBjb3JyZWN0IFNoYXJwIGJpbmFyaWVzIGZvciBMaW51eCBNVVNMXG4gICAqL1xuICBwcml2YXRlIGRvd25sb2FkQW5kSW5zdGFsbFNoYXJwQmluYXJpZXMoKTogdm9pZCB7XG4gICAgY29uc3Qgbm9kZU1vZHVsZXNQYXRoID0gam9pbihcbiAgICAgIHRoaXMuZG90TmV4dFBhdGgsXG4gICAgICBcInN0YW5kYWxvbmVcIixcbiAgICAgIFwibm9kZV9tb2R1bGVzXCIsXG4gICAgKTtcbiAgICBjb25zdCBpbWdQYXRoID0gam9pbihub2RlTW9kdWxlc1BhdGgsIFwiQGltZ1wiKTtcblxuICAgIC8vIENyZWF0ZSBhIGNvbnNpc3RlbnQgY2FjaGUgZGlyZWN0b3J5IGZvciBTaGFycCBwYWNrYWdlc1xuICAgIGNvbnN0IGNhY2hlRGlyID0gam9pbih0bXBkaXIoKSwgXCJjZGstbmV4dGpzLXNoYXJwLWNhY2hlXCIpO1xuICAgIGlmICghZXhpc3RzU3luYyhjYWNoZURpcikpIHtcbiAgICAgIG1rZGlyU3luYyhjYWNoZURpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIEBpbWcgZGlyZWN0b3J5IGV4aXN0c1xuICAgIGlmICghZXhpc3RzU3luYyhpbWdQYXRoKSkge1xuICAgICAgbWtkaXJTeW5jKGltZ1BhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIC8vIERldGVjdCBhcmNoaXRlY3R1cmUgZm9yIGNvcnJlY3QgU2hhcnAgYmluYXJpZXNcbiAgICBjb25zdCBhcmNoID0gcHJvY2Vzcy5hcmNoLnN0YXJ0c1dpdGgoXCJhcm1cIikgPyBcImFybTY0XCIgOiBcIng2NFwiO1xuXG4gICAgLy8gU2hhcnAgYmluYXJ5IHBhY2thZ2VzIHRvIGRvd25sb2FkXG4gICAgY29uc3Qgc2hhcnBQYWNrYWdlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogYHNoYXJwLWxpYnZpcHMtbGludXhtdXNsLSR7YXJjaH1gLFxuICAgICAgICB2ZXJzaW9uOiBcIjEuMi40XCIsXG4gICAgICAgIHVybDogYGh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL0BpbWcvc2hhcnAtbGlidmlwcy1saW51eG11c2wtJHthcmNofS8tL3NoYXJwLWxpYnZpcHMtbGludXhtdXNsLSR7YXJjaH0tMS4yLjQudGd6YCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGBzaGFycC1saW51eG11c2wtJHthcmNofWAsXG4gICAgICAgIHZlcnNpb246IFwiMC4zNC41XCIsXG4gICAgICAgIHVybDogYGh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL0BpbWcvc2hhcnAtbGludXhtdXNsLSR7YXJjaH0vLS9zaGFycC1saW51eG11c2wtJHthcmNofS0wLjM0LjUudGd6YCxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGZvciAoY29uc3QgcGtnIG9mIHNoYXJwUGFja2FnZXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IGpvaW4oaW1nUGF0aCwgcGtnLm5hbWUpO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhIGNvbnNpc3RlbnQgZmlsZW5hbWUgYmFzZWQgb24gcGFja2FnZSBuYW1lIGFuZCB2ZXJzaW9uXG4gICAgICAgIGNvbnN0IGNhY2hlRmlsZU5hbWUgPSBgJHtwa2cubmFtZX0tJHtwa2cudmVyc2lvbn0udGd6YDtcbiAgICAgICAgY29uc3QgY2FjaGVkRmlsZSA9IGpvaW4oY2FjaGVEaXIsIGNhY2hlRmlsZU5hbWUpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHdlIGFscmVhZHkgaGF2ZSB0aGlzIHBhY2thZ2UgY2FjaGVkXG4gICAgICAgIGlmIChleGlzdHNTeW5jKGNhY2hlZEZpbGUpKSB7XG4gICAgICAgICAgZGVidWcoXG4gICAgICAgICAgICBgJHtMT0dfUFJFRklYfSBVc2luZyBjYWNoZWQgJHtwa2cubmFtZX1AJHtwa2cudmVyc2lvbn0gZnJvbSAke2NhY2hlZEZpbGV9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlYnVnKGAke0xPR19QUkVGSVh9IERvd25sb2FkaW5nICR7cGtnLm5hbWV9QCR7cGtnLnZlcnNpb259Li4uYCk7XG5cbiAgICAgICAgICAvLyBEb3dubG9hZCB0byBjYWNoZSBkaXJlY3Rvcnkgd2l0aCBjb25zaXN0ZW50IG5hbWVcbiAgICAgICAgICBleGVjU3luYyhgY3VybCAtTCAtbyBcIiR7Y2FjaGVkRmlsZX1cIiBcIiR7cGtnLnVybH1cImAsIHtcbiAgICAgICAgICAgIHN0ZGlvOiBcInBpcGVcIixcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGAke0xPR19QUkVGSVh9IENhY2hlZCAke3BrZy5uYW1lfUAke3BrZy52ZXJzaW9ufSB0byAke2NhY2hlZEZpbGV9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIHRhcmdldCBkaXJlY3RvcnlcbiAgICAgICAgbWtkaXJTeW5jKHRhcmdldERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAgICAgLy8gRXh0cmFjdCBmcm9tIGNhY2hlZCBmaWxlXG4gICAgICAgIGV4ZWNTeW5jKFxuICAgICAgICAgIGB0YXIgLXh6ZiBcIiR7Y2FjaGVkRmlsZX1cIiAtQyBcIiR7dGFyZ2V0RGlyfVwiIC0tc3RyaXAtY29tcG9uZW50cz0xYCxcbiAgICAgICAgICB7IHN0ZGlvOiBcInBpcGVcIiB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGRlYnVnKGAke0xPR19QUkVGSVh9IEluc3RhbGxlZCAke3BrZy5uYW1lfUAke3BrZy52ZXJzaW9ufWApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgJHtMT0dfUFJFRklYfSBGYWlsZWQgdG8gaW5zdGFsbCAke3BrZy5uYW1lfTogJHtlcnJvcn1gKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{async function f(e){let t=typeof e=="string"?new TextEncoder().encode(e):e,
|
|
1
|
+
"use strict";(()=>{async function f(e){let t=typeof e=="string"?new TextEncoder().encode(e):e,o=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(o)).map(n=>n.toString(16).padStart(2,"0")).join("")}var a=window.fetch,d=window.XMLHttpRequest;window.fetch=async function(e,t){if(!t)return a(e,t);let o=t.method?.toUpperCase();if(o!=="PUT"&&o!=="POST")return a(e,t);let r;if(typeof e=="string"?r=new URL(e,window.location.href):e instanceof URL?r=e:e instanceof Request?r=new URL(e.url,window.location.href):r=new URL(String(e),window.location.href),r.hostname!==window.location.hostname)return a(e,t);let n=t.body,s,i=new Headers(t.headers);if(n)if(typeof n=="string")s=new TextEncoder().encode(n);else if(n instanceof FormData){let c=new Response(n);s=new Uint8Array(await c.arrayBuffer());let h=c.headers.get("content-type");h&&i.set("content-type",h),t.body=s}else n instanceof Blob?s=new Uint8Array(await n.arrayBuffer()):n instanceof ArrayBuffer?s=new Uint8Array(n):n instanceof URLSearchParams?s=new TextEncoder().encode(n.toString()):s=new TextEncoder().encode(JSON.stringify(n));else s=new Uint8Array(0);let w=await f(s);return i.set("x-amz-content-sha256",w),t.headers=i,a(e,t)};window.XMLHttpRequest=class extends d{constructor(){super(),this.method="",this.url="",this.originalOpen=super.open,this.originalSend=super.send,super.open=(e,t,...o)=>{this.method=e.toUpperCase(),this.url=t,this.originalOpen.apply(this,[e,t,...o])},super.send=async e=>{if((this.method==="PUT"||this.method==="POST")&&new URL(this.url,window.location.href).hostname===window.location.hostname&&e){let t=typeof e=="string"?e:e instanceof URLSearchParams?e.toString():JSON.stringify(e),o=await f(t);this.setRequestHeader("x-amz-content-sha256",o)}this.originalSend.apply(this,[e])}}};})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|