construct-hub 0.4.521 → 0.4.522
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 +2 -2
- package/.yarn/install-state.gz +0 -0
- package/lib/backend/ingestion/re-ingest.lambda.bundle/index.js.map +1 -1
- package/lib/backend/shared/time.lambda-shared.d.ts +1 -0
- package/lib/backend/shared/time.lambda-shared.js +5 -1
- package/lib/construct-hub.js +1 -1
- package/lib/package-sources/code-artifact.js +1 -1
- package/lib/package-sources/npmjs/stage-and-notify.lambda.bundle/index.js +77 -36
- package/lib/package-sources/npmjs/stage-and-notify.lambda.bundle/index.js.map +4 -4
- package/lib/package-sources/npmjs/stage-and-notify.lambda.js +47 -10
- package/lib/package-sources/npmjs.js +1 -1
- package/lib/package-tag/index.js +3 -3
- package/lib/package-tag-group/index.js +2 -2
- package/lib/preload-file/index.js +1 -1
- package/lib/s3/storage.js +1 -1
- package/lib/spdx-license.js +1 -1
- package/package.json +1 -1
|
@@ -42,8 +42,17 @@ const client_lambda_shared_1 = require("../../backend/deny-list/client.lambda-sh
|
|
|
42
42
|
const aws_lambda_shared_1 = require("../../backend/shared/aws.lambda-shared");
|
|
43
43
|
const env_lambda_shared_1 = require("../../backend/shared/env.lambda-shared");
|
|
44
44
|
const integrity_lambda_shared_1 = require("../../backend/shared/integrity.lambda-shared");
|
|
45
|
+
const time_lambda_shared_1 = require("../../backend/shared/time.lambda-shared");
|
|
45
46
|
class HttpNotFoundError extends Error {
|
|
46
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Retry configuration for tarball downloads that return HTTP 404.
|
|
50
|
+
*/
|
|
51
|
+
const NOT_FOUND_RETRY = {
|
|
52
|
+
baseDelayMs: 1_000,
|
|
53
|
+
maxDelayMs: 8_000,
|
|
54
|
+
deadlineMs: 60_000,
|
|
55
|
+
};
|
|
47
56
|
/**
|
|
48
57
|
* This function is invoked by the `npm-js-follower.lambda` with a `PackageVersion` object, or by
|
|
49
58
|
* an SQS trigger feeding from this function's Dead-Letter Queue (for re-trying purposes).
|
|
@@ -68,19 +77,20 @@ async function handler(event, context) {
|
|
|
68
77
|
console.log(`Package was deny-listed: ${denyRule.reason}`);
|
|
69
78
|
return;
|
|
70
79
|
}
|
|
71
|
-
let tarball
|
|
80
|
+
let tarball;
|
|
72
81
|
try {
|
|
73
|
-
|
|
74
|
-
console.log(`Downloading tarball from URL: ${event.tarballUrl}`);
|
|
75
|
-
tarball = await httpGet(event.tarballUrl);
|
|
82
|
+
tarball = await downloadTarball(event);
|
|
76
83
|
}
|
|
77
84
|
catch (e) {
|
|
78
85
|
if (e instanceof HttpNotFoundError) {
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
//
|
|
82
|
-
//
|
|
83
|
-
//
|
|
86
|
+
// The tarball is still not available, even after retrying for a while
|
|
87
|
+
// (see `downloadTarball`). It is probably permanently missing (e.g: the
|
|
88
|
+
// version was unpublished). If we throw an error, the message will be
|
|
89
|
+
// sent to the DLQ, to be processed again in a re-drive. But given that
|
|
90
|
+
// this file will probably never be available, the re-drives will also
|
|
91
|
+
// fail, and we'll never be able to get rid of the message in the DLQ.
|
|
92
|
+
// Instead, we ignore this version by returning silently.
|
|
93
|
+
console.log(`Tarball not found for ${event.name}@${event.version} (modified ${event.modified}), ignoring this version: ${event.tarballUrl}`);
|
|
84
94
|
return;
|
|
85
95
|
}
|
|
86
96
|
else {
|
|
@@ -141,6 +151,33 @@ async function handler(event, context) {
|
|
|
141
151
|
QueueUrl: queueUrl,
|
|
142
152
|
}));
|
|
143
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Downloads the tarball for a package version, retrying HTTP 404 responses
|
|
156
|
+
* for a while: npm metadata may propagate faster than tarballs, so a freshly
|
|
157
|
+
* published version can transiently 404 even though it will be available
|
|
158
|
+
* shortly.
|
|
159
|
+
*/
|
|
160
|
+
async function downloadTarball(event) {
|
|
161
|
+
const startTime = (0, time_lambda_shared_1.now)();
|
|
162
|
+
let attempt = 0;
|
|
163
|
+
while (true) {
|
|
164
|
+
try {
|
|
165
|
+
console.log(`Downloading tarball from URL: ${event.tarballUrl}`);
|
|
166
|
+
return await httpGet(event.tarballUrl);
|
|
167
|
+
}
|
|
168
|
+
catch (e) {
|
|
169
|
+
if (!(e instanceof HttpNotFoundError) ||
|
|
170
|
+
(0, time_lambda_shared_1.now)() - startTime >= NOT_FOUND_RETRY.deadlineMs) {
|
|
171
|
+
throw e;
|
|
172
|
+
}
|
|
173
|
+
const delay = Math.max(NOT_FOUND_RETRY.baseDelayMs, Math.floor(Math.random() *
|
|
174
|
+
Math.min(NOT_FOUND_RETRY.baseDelayMs * Math.pow(2, attempt), NOT_FOUND_RETRY.maxDelayMs)));
|
|
175
|
+
console.log(`Tarball not found (HTTP 404), retrying in ${delay} ms: ${event.tarballUrl}`);
|
|
176
|
+
await (0, time_lambda_shared_1.sleep)(delay);
|
|
177
|
+
attempt++;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
144
181
|
/**
|
|
145
182
|
* Makes an HTTP GET request, and returns the resulting payload.
|
|
146
183
|
*
|
|
@@ -165,4 +202,4 @@ function httpGet(url) {
|
|
|
165
202
|
});
|
|
166
203
|
});
|
|
167
204
|
}
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtYW5kLW5vdGlmeS5sYW1iZGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFja2FnZS1zb3VyY2VzL25wbWpzL3N0YWdlLWFuZC1ub3RpZnkubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JBLDBCQThHQztBQXBJRCw2Q0FBK0I7QUFDL0IsNkJBQTBCO0FBQzFCLGtEQUFzRDtBQUN0RCxvREFBeUQ7QUFHekQsdUZBQThFO0FBQzlFLDhFQUErRTtBQUMvRSw4RUFBb0U7QUFDcEUsMEZBQXlFO0FBRXpFLE1BQU0saUJBQWtCLFNBQVEsS0FBSztDQUFHO0FBRXhDOzs7Ozs7OztHQVFHO0FBQ0ksS0FBSyxVQUFVLE9BQU8sQ0FDM0IsS0FBZ0MsRUFDaEMsT0FBZ0I7SUFFaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFeEQsSUFBSSxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdkIsK0RBQStEO1FBQy9ELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFtQixDQUFDO1FBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLElBQUEsOEJBQVUsRUFBQyxhQUFhLENBQUMsQ0FBQztJQUNoRCxNQUFNLFFBQVEsR0FBRyxJQUFBLDhCQUFVLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFFekMsTUFBTSxRQUFRLEdBQUcsTUFBTSxxQ0FBYyxDQUFDLFNBQVMsRUFB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QUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixRQUFRLENBQUMsRUFBRSxDQUNULE1BQU0sRUFDTixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUM5RCxDQUFDO1lBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgeyBVUkwgfSBmcm9tICd1cmwnO1xuaW1wb3J0IHsgUHV0T2JqZWN0Q29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5pbXBvcnQgeyBTZW5kTWVzc2FnZUNvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc3FzJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dCwgU1FTRXZlbnQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB7IFMzS2V5UHJlZml4IH0gZnJvbSAnLi9jb25zdGFudHMubGFtYmRhLXNoYXJlZCc7XG5pbXBvcnQgeyBEZW55TGlzdENsaWVudCB9IGZyb20gJy4uLy4uL2JhY2tlbmQvZGVueS1saXN0L2NsaWVudC5sYW1iZGEtc2hhcmVkJztcbmltcG9ydCB7IFMzX0NMSUVOVCwgU1FTX0NMSUVOVCB9IGZyb20gJy4uLy4uL2JhY2tlbmQvc2hhcmVkL2F3cy5sYW1iZGEtc2hhcmVkJztcbmltcG9ydCB7IHJlcXVpcmVFbnYgfSBmcm9tICcuLi8uLi9iYWNrZW5kL3NoYXJlZC9lbnYubGFtYmRhLXNoYXJlZCc7XG5pbXBvcnQgeyBpbnRlZ3JpdHkgfSBmcm9tICcuLi8uLi9iYWNrZW5kL3NoYXJlZC9pbnRlZ3JpdHkubGFtYmRhLXNoYXJlZCc7XG5cbmNsYXNzIEh0dHBOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige31cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGludm9rZWQgYnkgdGhlIGBucG0tanMtZm9sbG93ZXIubGFtYmRhYCAgd2l0aCBhIGBQYWNrYWdlVmVyc2lvbmAgb2JqZWN0LCBvciBieVxuICogYW4gU1FTIHRyaWdnZXIgZmVlZGluZyBmcm9tIHRoaXMgZnVuY3Rpb24ncyBEZWFkLUxldHRlciBRdWV1ZSAoZm9yIHJlLXRyeWluZyBwdXJwb3NlcykuXG4gKlxuICogVGhlIHBheWxvYWQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYSBkaXNjb3ZlcmVkIG5ldyBwYWNrYWdlIHZlcnNpb24uIFRoaXMgaGFuZGxlciB3aWxsXG4gKiBjaGVjayB0aGUgcGFja2FnZSBpcyBub3QgZGVueS1saXN0ZWQsIGRvd25sb2FkIHRoZSB0YXJiYWxsIGZyb20gdGhlIHBheWxvYWQncyBgdGFyYmFsbFVybGAsIHN0b3JlXG4gKiBpdCBpbiB0aGUgc3RhZ2luZyBidWNrZXQsIHRoZW4gc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIENvbnN0cnVjdEh1YiBpbmdlc3Rpb24gU1FTIHF1ZXVlIGluIG9yZGVyIHRvXG4gKiB0cmlnZ2VyIGluZ2VzdGlvbiBvZiB0aGlzIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKFxuICBldmVudDogUGFja2FnZVZlcnNpb24gfCBTUVNFdmVudCxcbiAgY29udGV4dDogQ29udGV4dFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnNvbGUubG9nKGBFdmVudDogJHtKU09OLnN0cmluZ2lmeShldmVudCwgbnVsbCwgMil9YCk7XG5cbiAgaWYgKCdSZWNvcmRzJyBpbiBldmVudCkge1xuICAgIC8vIEFUVEVOVElPTjogQXNzdW1lcyB0aGVyZSBpcyBvbmx5IGV4YWN0bHkgMSBldmVudCBpbiB0aGVyZS4uLlxuICAgIGV2ZW50ID0gSlNPTi5wYXJzZShldmVudC5SZWNvcmRzWzBdLmJvZHkpIGFzIFBhY2thZ2VWZXJzaW9uO1xuICAgIGNvbnNvbGUubG9nKGBFdmVudCAoZXh0cmFjdGVkKTogJHtKU09OLnN0cmluZ2lmeShldmVudCwgbnVsbCwgMil9YCk7XG4gIH1cblxuICBjb25zdCBzdGFnaW5nQnVja2V0ID0gcmVxdWlyZUVudignQlVDS0VUX05BTUUnKTtcbiAgY29uc3QgcXVldWVVcmwgPSByZXF1aXJlRW52KCdRVUVVRV9VUkwnKTtcblxuICBjb25zdCBkZW55TGlzdCA9IGF3YWl0IERlbnlMaXN0Q2xpZW50Lm5ld0NsaWVudCgpO1xuICBjb25zdCBkZW55UnVsZSA9IGRlbnlMaXN0Lmxvb2t1cChldmVudC5uYW1lLCBldmVudC52ZXJzaW9uKTtcbiAgaWYgKGRlbnlSdWxlICE9IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhgUGFja2FnZSB3YXMgZGVueS1saXN0ZWQ6ICR7ZGVueVJ1bGUucmVhc29ufWApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCB0YXJiYWxsOiBCdWZmZXIgPSBCdWZmZXIuZnJvbSgnJyk7XG4gIHRyeSB7XG4gICAgLy8gRG93bmxvYWQgdGhlIHRhcmJhbGxcbiAgICBjb25zb2xlLmxvZyhgRG93bmxvYWRpbmcgdGFyYmFsbCBmcm9tIFVSTDogJHtldmVudC50YXJiYWxsVXJsfWApO1xuICAgIHRhcmJhbGwgPSBhd2FpdCBodHRwR2V0KGV2ZW50LnRhcmJhbGxVcmwpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGUgaW5zdGFuY2VvZiBIdHRwTm90Rm91bmRFcnJvcikge1xuICAgICAgLy8gV2UgcmVjZWl2ZWQgYSBtZXNzYWdlIHRvIGRvd25sb2FkIGEgZmlsZSB0aGF0IHNob3VsZCBleGlzdCBidXQgZG9lc24ndC5cbiAgICAgIC8vIElmIHdlIHRocm93IGFuIGVycm9yLCB0aGUgbWVzc2FnZSB3aWxsIGJlIHNlbnQgdG8gdGhlIERMUSwgdG8gYmUgcHJvY2Vzc2VkXG4gICAgICAvLyBhZ2FpbiBpbiBhIHJlLWRyaXZlLiBCdXQgZ2l2ZW4gdGhhdCB0aGlzIGZpbGUgd2lsbCBwcm9iYWJseSBuZXZlciBiZVxuICAgICAgLy8gYXZhaWxhYmxlLCB0aGUgcmUtZHJpdmVzIHdpbGwgYWxzbyBmYWlsLCBhbmQgd2UnbGwgbmV2ZXIgYmUgYWJsZSB0byBnZXQgcmlkXG4gICAgICAvLyBvZiB0aGUgbWVzc2FnZSBpbiB0aGUgRExRLiBJbnN0ZWFkLCB3ZSBpZ25vcmUgdGhpcyB2ZXJzaW9uIGJ5IHJldHVybmluZyBzaWxlbnRseS5cbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvLyBTdG9yZSB0aGUgdGFyYmFsbCBpbnRvIHRoZSBzdGFnaW5nIGJ1Y2tldFxuICAvLyAtIGluZm9zLmRpc3QudGFyYmFsbCA9PiBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy88QHNjb3BlPi88bmFtZT4vLS88bmFtZT4tPHZlcnNpb24+LnRnelxuICAvLyAtIHN0YWdpbmdLZXkgICAgICAgICA9PiAgICAgICAgICAgICAgICAgICAgIHN0YWdlZC88QHNjb3BlPi88bmFtZT4vLS88bmFtZT4tPHZlcnNpb24+LnRnelxuICBjb25zdCBzdGFnaW5nS2V5ID0gYCR7UzNLZXlQcmVmaXguU1RBR0VEX0tFWV9QUkVGSVh9JHtcbiAgICBuZXcgVVJMKGV2ZW50LnRhcmJhbGxVcmwpLnBhdGhuYW1lXG4gIH1gLnJlcGxhY2UoL1xcL3syLH0vZywgJy8nKTtcbiAgY29uc29sZS5sb2coYFN0b3JpbmcgdGFyYmFsbCBpbiBzdGFnaW5nIGJ1Y2tldCB3aXRoIGtleSAke3N0YWdpbmdLZXl9YCk7XG4gIGF3YWl0IFMzX0NMSUVOVC5zZW5kKFxuICAgIG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgIEJ1Y2tldDogc3RhZ2luZ0J1Y2tldCxcbiAgICAgIEtleTogc3RhZ2luZ0tleSxcbiAgICAgIEJvZHk6IHRhcmJhbGwsXG4gICAgICBDb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgICBNZXRhZGF0YToge1xuICAgICAgICAnTGFtYmRhLUxvZy1Hcm91cCc6IGNvbnRleHQubG9nR3JvdXBOYW1lLFxuICAgICAgICAnTGFtYmRhLUxvZy1TdHJlYW0nOiBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsXG4gICAgICAgICdMYW1iZGEtUnVuLUlkJzogY29udGV4dC5hd3NSZXF1ZXN0SWQsXG4gICAgICAgICdNb2RpZmllZC1BdCc6IGV2ZW50Lm1vZGlmaWVkLFxuICAgICAgICAnT3JpZ2luLUludGVncml0eSc6IGV2ZW50LmludGVncml0eSxcbiAgICAgICAgJ09yaWdpbi1VUkknOiBldmVudC50YXJiYWxsVXJsLFxuICAgICAgICAvLyBTZXEgbWlnaHQgbm90IGJlIHByZXNlbnQuLi4gc28gc2tpcCBpdCBpZiBhYnNlbnQuLi5cbiAgICAgICAgLi4uKGV2ZW50LnNlcSA/IHsgU2VxdWVuY2U6IGV2ZW50LnNlcSB9IDoge30pLFxuICAgICAgfSxcbiAgICB9KVxuICApO1xuXG4gIC8vIFByZXBhcmUgaW5nZXN0aW9uIHJlcXVlc3RcbiAgY29uc3QgbWVzc2FnZSA9IGludGVncml0eShcbiAgICB7XG4gICAgICB0YXJiYWxsVXJpOiBgczM6Ly8ke3N0YWdpbmdCdWNrZXR9LyR7c3RhZ2luZ0tleX1gLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgZGlzdDogZXZlbnQudGFyYmFsbFVybCxcbiAgICAgICAgaW50ZWdyaXR5OiBldmVudC5pbnRlZ3JpdHksXG4gICAgICAgIG1vZGlmaWVkOiBldmVudC5tb2RpZmllZCxcbiAgICAgICAgLy8gU2VxIG1pZ2h0IG5vdCBiZSBwcmVzZW50Li4uIHNvIHNraXAgaXQgaWYgYWJzZW50Li4uXG4gICAgICAgIC4uLihldmVudC5zZXEgPyB7IHNlcTogZXZlbnQuc2VxIH0gOiB7fSksXG4gICAgICB9LFxuICAgICAgdGltZTogZXZlbnQubW9kaWZpZWQsXG4gICAgfSxcbiAgICB0YXJiYWxsXG4gICk7XG5cbiAgLy8gU2VuZCBtZXNzYWdlIHRvIFNRU1xuICBjb25zb2xlLmxvZyhcbiAgICBgU2VuZGluZyBtZXNzYWdlIHRvIENvbnN0cnVjdEh1YiBpbmdlc3Rpb24gcXVldWU6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICBtZXNzYWdlLFxuICAgICAgbnVsbCxcbiAgICAgIDJcbiAgICApfWBcbiAgKTtcbiAgYXdhaXQgU1FTX0NMSUVOVC5zZW5kKFxuICAgIG5ldyBTZW5kTWVzc2FnZUNvbW1hbmQoe1xuICAgICAgTWVzc2FnZUJvZHk6IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpLFxuICAgICAgTWVzc2FnZUF0dHJpYnV0ZXM6IHtcbiAgICAgICAgJ0xhbWJkYS1Mb2ctR3JvdXAnOiB7XG4gICAgICAgICAgRGF0YVR5cGU6ICdTdHJpbmcnLFxuICAgICAgICAgIFN0cmluZ1ZhbHVlOiBjb250ZXh0LmxvZ0dyb3VwTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgJ0xhbWJkYS1Mb2ctU3RyZWFtJzoge1xuICAgICAgICAgIERhdGFUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgICBTdHJpbmdWYWx1ZTogY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgICAgICB9LFxuICAgICAgICAnTGFtYmRhLVJ1bi1JZCc6IHtcbiAgICAgICAgICBEYXRhVHlwZTogJ1N0cmluZycsXG4gICAgICAgICAgU3RyaW5nVmFsdWU6IGNvbnRleHQuYXdzUmVxdWVzdElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIFF1ZXVlVXJsOiBxdWV1ZVVybCxcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VWZXJzaW9uIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1vZGlmaWVkOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgdGFyYmFsbFVybDogc3RyaW5nO1xuICByZWFkb25seSBpbnRlZ3JpdHk6IHN0cmluZztcblxuICByZWFkb25seSBzZXE/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTWFrZXMgYW4gSFRUUCBHRVQgcmVxdWVzdCwgYW5kIHJldHVybnMgdGhlIHJlc3VsdGluZyBwYXlsb2FkLlxuICpcbiAqIEBwYXJhbSB1cmwgdGhlIFVSTCB0byBnZXQuXG4gKlxuICogQHJldHVybnMgYSBCdWZmZXIgY29udGFpbmluZyB0aGUgcmVjZWl2ZWQgZGF0YS5cbiAqL1xuZnVuY3Rpb24gaHR0cEdldCh1cmw6IHN0cmluZykge1xuICByZXR1cm4gbmV3IFByb21pc2U8QnVmZmVyPigob2ssIGtvKSA9PiB7XG4gICAgaHR0cHMuZ2V0KHVybCwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09PSA0MDQpIHtcbiAgICAgICAga28obmV3IEh0dHBOb3RGb3VuZEVycm9yKCkpO1xuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlICE9PSAyMDApIHtcbiAgICAgICAga28oXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFVuc3VjY2Vzc2Z1bCBHRVQ6ICR7cmVzcG9uc2Uuc3RhdHVzQ29kZX0gLSAke3Jlc3BvbnNlLnN0YXR1c01lc3NhZ2V9YFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGJvZHkgPSBCdWZmZXIuYWxsb2MoMCk7XG4gICAgICByZXNwb25zZS5vbihcbiAgICAgICAgJ2RhdGEnLFxuICAgICAgICAoY2h1bmspID0+IChib2R5ID0gQnVmZmVyLmNvbmNhdChbYm9keSwgQnVmZmVyLmZyb20oY2h1bmspXSkpXG4gICAgICApO1xuICAgICAgcmVzcG9uc2Uub25jZSgnY2xvc2UnLCAoKSA9PiBvayhib2R5KSk7XG4gICAgICByZXNwb25zZS5vbmNlKCdlcnJvcicsIGtvKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtYW5kLW5vdGlmeS5sYW1iZGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFja2FnZS1zb3VyY2VzL25wbWpzL3N0YWdlLWFuZC1ub3RpZnkubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0NBLDBCQWlIQztBQWpKRCw2Q0FBK0I7QUFDL0IsNkJBQTBCO0FBQzFCLGtEQUFzRDtBQUN0RCxvREFBeUQ7QUFHekQsdUZBQThFO0FBQzlFLDhFQUErRTtBQUMvRSw4RUFBb0U7QUFDcEUsMEZBQXlFO0FBQ3pFLGdGQUFxRTtBQUVyRSxNQUFNLGlCQUFrQixTQUFRLEtBQUs7Q0FBRztBQUV4Qzs7R0FFRztBQUNILE1BQU0sZUFBZSxHQUFHO0lBQ3RCLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFVBQVUsRUFBRSxNQUFNO0NBQ25CLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSxPQUFPLENBQzNCLEtBQWdDLEVBQ2hDLE9BQWdCO0lBRWhCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXhELElBQUksU0FBUyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLCtEQUErRDtRQUMvRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBbUIsQ0FBQztRQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLDhCQUFVLEVBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEQsTUFBTSxRQUFRLEdBQUcsSUFBQSw4QkFBVSxFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXpDLE1BQU0sUUFBUSxHQUFHLE1BQU0scUNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVELElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzNELE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxPQUFlLENBQUM7SUFDcEIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLFlBQVksaUJBQWlCLEVBQUUsQ0FBQztZQUNuQyxzRUFBc0U7WUFDdEUsd0VBQXdFO1lBQ3hFLHNFQUFzRTtZQUN0RSx1RUFBdUU7WUFDdkUsc0VBQXNFO1lBQ3RFLHNFQUFzRTtZQUN0RSx5REFBeUQ7WUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FDVCx5QkFBeUIsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxjQUFjLEtBQUssQ0FBQyxRQUFRLDZCQUE2QixLQUFLLENBQUMsVUFBVSxFQUFFLENBQ2hJLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLDRGQUE0RjtJQUM1Riw0RkFBNEY7SUFDNUYsTUFBTSxVQUFVLEdBQUcsR0FBRyw2Q0FBNkIsR0FDakQsSUFBSSxTQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQzVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsOENBQThDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDeEUsTUFBTSw2QkFBUyxDQUFDLElBQUksQ0FDbEIsSUFBSSw0QkFBZ0IsQ0FBQztRQUNuQixNQUFNLEVBQUUsYUFBYTtRQUNyQixHQUFHLEVBQUUsVUFBVTtRQUNmLElBQUksRUFBRSxPQUFPO1FBQ2IsV0FBVyxFQUFFLDBCQUEwQjtRQUN2QyxRQUFRLEVBQUU7WUFDUixrQkFBa0IsRUFBRSxPQUFPLENBQUMsWUFBWTtZQUN4QyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsYUFBYTtZQUMxQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFlBQVk7WUFDckMsYUFBYSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQzdCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQ25DLFlBQVksRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM5QixzREFBc0Q7WUFDdEQsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQzlDO0tBQ0YsQ0FBQyxDQUNILENBQUM7SUFFRiw0QkFBNEI7SUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBQSxtQ0FBUyxFQUN2QjtRQUNFLFVBQVUsRUFBRSxRQUFRLGFBQWEsSUFBSSxVQUFVLEVBQUU7UUFDakQsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQ3RCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsc0RBQXNEO1lBQ3RELEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUN6QztRQUNELElBQUksRUFBRSxLQUFLLENBQUMsUUFBUTtLQUNyQixFQUNELE9BQU8sQ0FDUixDQUFDO0lBRUYsc0JBQXNCO0lBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQ1Qsb0RBQW9ELElBQUksQ0FBQyxTQUFTLENBQ2hFLE9BQU8sRUFDUCxJQUFJLEVBQ0osQ0FBQyxDQUNGLEVBQUUsQ0FDSixDQUFDO0lBQ0YsTUFBTSw4QkFBVSxDQUFDLElBQUksQ0FDbkIsSUFBSSwrQkFBa0IsQ0FBQztRQUNyQixXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDcEMsaUJBQWlCLEVBQUU7WUFDakIsa0JBQWtCLEVBQUU7Z0JBQ2xCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixXQUFXLEVBQUUsT0FBTyxDQUFDLFlBQVk7YUFDbEM7WUFDRCxtQkFBbUIsRUFBRTtnQkFDbkIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFdBQVcsRUFBRSxPQUFPLENBQUMsYUFBYTthQUNuQztZQUNELGVBQWUsRUFBRTtnQkFDZixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxZQUFZO2FBQ2xDO1NBQ0Y7UUFDRCxRQUFRLEVBQUUsUUFBUTtLQUNuQixDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFhRDs7Ozs7R0FLRztBQUNILEtBQUssVUFBVSxlQUFlLENBQUMsS0FBcUI7SUFDbEQsTUFBTSxTQUFTLEdBQUcsSUFBQSx3QkFBRyxHQUFFLENBQUM7SUFDeEIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUM7WUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNqRSxPQUFPLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQ0UsQ0FBQyxDQUFDLENBQUMsWUFBWSxpQkFBaUIsQ0FBQztnQkFDakMsSUFBQSx3QkFBRyxHQUFFLEdBQUcsU0FBUyxJQUFJLGVBQWUsQ0FBQyxVQUFVLEVBQy9DLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDcEIsZUFBZSxDQUFDLFdBQVcsRUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FDUixJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLElBQUksQ0FBQyxHQUFHLENBQ04sZUFBZSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsRUFDbEQsZUFBZSxDQUFDLFVBQVUsQ0FDM0IsQ0FDSixDQUNGLENBQUM7WUFDRixPQUFPLENBQUMsR0FBRyxDQUNULDZDQUE2QyxLQUFLLFFBQVEsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUM3RSxDQUFDO1lBQ0YsTUFBTSxJQUFBLDBCQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLE9BQU8sQ0FBQyxHQUFXO0lBQzFCLE9BQU8sSUFBSSxPQUFPLENBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDcEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLEVBQUUsQ0FBQyxJQUFJLGlCQUFpQixFQUFFLENBQUMsQ0FBQztZQUM5QixDQUFDO2lCQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDdkMsRUFBRSxDQUNBLElBQUksS0FBSyxDQUNQLHFCQUFxQixRQUFRLENBQUMsVUFBVSxNQUFNLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FDdkUsQ0FDRixDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsUUFBUSxDQUFDLEVBQUUsQ0FDVCxNQUFNLEVBQ04sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDOUQsQ0FBQztZQUNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaHR0cHMgZnJvbSAnaHR0cHMnO1xuaW1wb3J0IHsgVVJMIH0gZnJvbSAndXJsJztcbmltcG9ydCB7IFB1dE9iamVjdENvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgU2VuZE1lc3NhZ2VDb21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXNxcyc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHQsIFNRU0V2ZW50IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBTM0tleVByZWZpeCB9IGZyb20gJy4vY29uc3RhbnRzLmxhbWJkYS1zaGFyZWQnO1xuaW1wb3J0IHsgRGVueUxpc3RDbGllbnQgfSBmcm9tICcuLi8uLi9iYWNrZW5kL2RlbnktbGlzdC9jbGllbnQubGFtYmRhLXNoYXJlZCc7XG5pbXBvcnQgeyBTM19DTElFTlQsIFNRU19DTElFTlQgfSBmcm9tICcuLi8uLi9iYWNrZW5kL3NoYXJlZC9hd3MubGFtYmRhLXNoYXJlZCc7XG5pbXBvcnQgeyByZXF1aXJlRW52IH0gZnJvbSAnLi4vLi4vYmFja2VuZC9zaGFyZWQvZW52LmxhbWJkYS1zaGFyZWQnO1xuaW1wb3J0IHsgaW50ZWdyaXR5IH0gZnJvbSAnLi4vLi4vYmFja2VuZC9zaGFyZWQvaW50ZWdyaXR5LmxhbWJkYS1zaGFyZWQnO1xuaW1wb3J0IHsgbm93LCBzbGVlcCB9IGZyb20gJy4uLy4uL2JhY2tlbmQvc2hhcmVkL3RpbWUubGFtYmRhLXNoYXJlZCc7XG5cbmNsYXNzIEh0dHBOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige31cblxuLyoqXG4gKiBSZXRyeSBjb25maWd1cmF0aW9uIGZvciB0YXJiYWxsIGRvd25sb2FkcyB0aGF0IHJldHVybiBIVFRQIDQwNC5cbiAqL1xuY29uc3QgTk9UX0ZPVU5EX1JFVFJZID0ge1xuICBiYXNlRGVsYXlNczogMV8wMDAsXG4gIG1heERlbGF5TXM6IDhfMDAwLFxuICBkZWFkbGluZU1zOiA2MF8wMDAsXG59O1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgaW52b2tlZCBieSB0aGUgYG5wbS1qcy1mb2xsb3dlci5sYW1iZGFgICB3aXRoIGEgYFBhY2thZ2VWZXJzaW9uYCBvYmplY3QsIG9yIGJ5XG4gKiBhbiBTUVMgdHJpZ2dlciBmZWVkaW5nIGZyb20gdGhpcyBmdW5jdGlvbidzIERlYWQtTGV0dGVyIFF1ZXVlIChmb3IgcmUtdHJ5aW5nIHB1cnBvc2VzKS5cbiAqXG4gKiBUaGUgcGF5bG9hZCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIGRpc2NvdmVyZWQgbmV3IHBhY2thZ2UgdmVyc2lvbi4gVGhpcyBoYW5kbGVyIHdpbGxcbiAqIGNoZWNrIHRoZSBwYWNrYWdlIGlzIG5vdCBkZW55LWxpc3RlZCwgZG93bmxvYWQgdGhlIHRhcmJhbGwgZnJvbSB0aGUgcGF5bG9hZCdzIGB0YXJiYWxsVXJsYCwgc3RvcmVcbiAqIGl0IGluIHRoZSBzdGFnaW5nIGJ1Y2tldCwgdGhlbiBzZW5kIGEgbWVzc2FnZSB0byB0aGUgQ29uc3RydWN0SHViIGluZ2VzdGlvbiBTUVMgcXVldWUgaW4gb3JkZXIgdG9cbiAqIHRyaWdnZXIgaW5nZXN0aW9uIG9mIHRoaXMgcGFja2FnZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoXG4gIGV2ZW50OiBQYWNrYWdlVmVyc2lvbiB8IFNRU0V2ZW50LFxuICBjb250ZXh0OiBDb250ZXh0XG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc29sZS5sb2coYEV2ZW50OiAke0pTT04uc3RyaW5naWZ5KGV2ZW50LCBudWxsLCAyKX1gKTtcblxuICBpZiAoJ1JlY29yZHMnIGluIGV2ZW50KSB7XG4gICAgLy8gQVRURU5USU9OOiBBc3N1bWVzIHRoZXJlIGlzIG9ubHkgZXhhY3RseSAxIGV2ZW50IGluIHRoZXJlLi4uXG4gICAgZXZlbnQgPSBKU09OLnBhcnNlKGV2ZW50LlJlY29yZHNbMF0uYm9keSkgYXMgUGFja2FnZVZlcnNpb247XG4gICAgY29uc29sZS5sb2coYEV2ZW50IChleHRyYWN0ZWQpOiAke0pTT04uc3RyaW5naWZ5KGV2ZW50LCBudWxsLCAyKX1gKTtcbiAgfVxuXG4gIGNvbnN0IHN0YWdpbmdCdWNrZXQgPSByZXF1aXJlRW52KCdCVUNLRVRfTkFNRScpO1xuICBjb25zdCBxdWV1ZVVybCA9IHJlcXVpcmVFbnYoJ1FVRVVFX1VSTCcpO1xuXG4gIGNvbnN0IGRlbnlMaXN0ID0gYXdhaXQgRGVueUxpc3RDbGllbnQubmV3Q2xpZW50KCk7XG4gIGNvbnN0IGRlbnlSdWxlID0gZGVueUxpc3QubG9va3VwKGV2ZW50Lm5hbWUsIGV2ZW50LnZlcnNpb24pO1xuICBpZiAoZGVueVJ1bGUgIT0gbnVsbCkge1xuICAgIGNvbnNvbGUubG9nKGBQYWNrYWdlIHdhcyBkZW55LWxpc3RlZDogJHtkZW55UnVsZS5yZWFzb259YCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IHRhcmJhbGw6IEJ1ZmZlcjtcbiAgdHJ5IHtcbiAgICB0YXJiYWxsID0gYXdhaXQgZG93bmxvYWRUYXJiYWxsKGV2ZW50KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlIGluc3RhbmNlb2YgSHR0cE5vdEZvdW5kRXJyb3IpIHtcbiAgICAgIC8vIFRoZSB0YXJiYWxsIGlzIHN0aWxsIG5vdCBhdmFpbGFibGUsIGV2ZW4gYWZ0ZXIgcmV0cnlpbmcgZm9yIGEgd2hpbGVcbiAgICAgIC8vIChzZWUgYGRvd25sb2FkVGFyYmFsbGApLiBJdCBpcyBwcm9iYWJseSBwZXJtYW5lbnRseSBtaXNzaW5nIChlLmc6IHRoZVxuICAgICAgLy8gdmVyc2lvbiB3YXMgdW5wdWJsaXNoZWQpLiBJZiB3ZSB0aHJvdyBhbiBlcnJvciwgdGhlIG1lc3NhZ2Ugd2lsbCBiZVxuICAgICAgLy8gc2VudCB0byB0aGUgRExRLCB0byBiZSBwcm9jZXNzZWQgYWdhaW4gaW4gYSByZS1kcml2ZS4gQnV0IGdpdmVuIHRoYXRcbiAgICAgIC8vIHRoaXMgZmlsZSB3aWxsIHByb2JhYmx5IG5ldmVyIGJlIGF2YWlsYWJsZSwgdGhlIHJlLWRyaXZlcyB3aWxsIGFsc29cbiAgICAgIC8vIGZhaWwsIGFuZCB3ZSdsbCBuZXZlciBiZSBhYmxlIHRvIGdldCByaWQgb2YgdGhlIG1lc3NhZ2UgaW4gdGhlIERMUS5cbiAgICAgIC8vIEluc3RlYWQsIHdlIGlnbm9yZSB0aGlzIHZlcnNpb24gYnkgcmV0dXJuaW5nIHNpbGVudGx5LlxuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBUYXJiYWxsIG5vdCBmb3VuZCBmb3IgJHtldmVudC5uYW1lfUAke2V2ZW50LnZlcnNpb259IChtb2RpZmllZCAke2V2ZW50Lm1vZGlmaWVkfSksIGlnbm9yaW5nIHRoaXMgdmVyc2lvbjogJHtldmVudC50YXJiYWxsVXJsfWBcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3RvcmUgdGhlIHRhcmJhbGwgaW50byB0aGUgc3RhZ2luZyBidWNrZXRcbiAgLy8gLSBpbmZvcy5kaXN0LnRhcmJhbGwgPT4gaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvPEBzY29wZT4vPG5hbWU+Ly0vPG5hbWU+LTx2ZXJzaW9uPi50Z3pcbiAgLy8gLSBzdGFnaW5nS2V5ICAgICAgICAgPT4gICAgICAgICAgICAgICAgICAgICBzdGFnZWQvPEBzY29wZT4vPG5hbWU+Ly0vPG5hbWU+LTx2ZXJzaW9uPi50Z3pcbiAgY29uc3Qgc3RhZ2luZ0tleSA9IGAke1MzS2V5UHJlZml4LlNUQUdFRF9LRVlfUFJFRklYfSR7XG4gICAgbmV3IFVSTChldmVudC50YXJiYWxsVXJsKS5wYXRobmFtZVxuICB9YC5yZXBsYWNlKC9cXC97Mix9L2csICcvJyk7XG4gIGNvbnNvbGUubG9nKGBTdG9yaW5nIHRhcmJhbGwgaW4gc3RhZ2luZyBidWNrZXQgd2l0aCBrZXkgJHtzdGFnaW5nS2V5fWApO1xuICBhd2FpdCBTM19DTElFTlQuc2VuZChcbiAgICBuZXcgUHV0T2JqZWN0Q29tbWFuZCh7XG4gICAgICBCdWNrZXQ6IHN0YWdpbmdCdWNrZXQsXG4gICAgICBLZXk6IHN0YWdpbmdLZXksXG4gICAgICBCb2R5OiB0YXJiYWxsLFxuICAgICAgQ29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLFxuICAgICAgTWV0YWRhdGE6IHtcbiAgICAgICAgJ0xhbWJkYS1Mb2ctR3JvdXAnOiBjb250ZXh0LmxvZ0dyb3VwTmFtZSxcbiAgICAgICAgJ0xhbWJkYS1Mb2ctU3RyZWFtJzogY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgICAgICAnTGFtYmRhLVJ1bi1JZCc6IGNvbnRleHQuYXdzUmVxdWVzdElkLFxuICAgICAgICAnTW9kaWZpZWQtQXQnOiBldmVudC5tb2RpZmllZCxcbiAgICAgICAgJ09yaWdpbi1JbnRlZ3JpdHknOiBldmVudC5pbnRlZ3JpdHksXG4gICAgICAgICdPcmlnaW4tVVJJJzogZXZlbnQudGFyYmFsbFVybCxcbiAgICAgICAgLy8gU2VxIG1pZ2h0IG5vdCBiZSBwcmVzZW50Li4uIHNvIHNraXAgaXQgaWYgYWJzZW50Li4uXG4gICAgICAgIC4uLihldmVudC5zZXEgPyB7IFNlcXVlbmNlOiBldmVudC5zZXEgfSA6IHt9KSxcbiAgICAgIH0sXG4gICAgfSlcbiAgKTtcblxuICAvLyBQcmVwYXJlIGluZ2VzdGlvbiByZXF1ZXN0XG4gIGNvbnN0IG1lc3NhZ2UgPSBpbnRlZ3JpdHkoXG4gICAge1xuICAgICAgdGFyYmFsbFVyaTogYHMzOi8vJHtzdGFnaW5nQnVja2V0fS8ke3N0YWdpbmdLZXl9YCxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGRpc3Q6IGV2ZW50LnRhcmJhbGxVcmwsXG4gICAgICAgIGludGVncml0eTogZXZlbnQuaW50ZWdyaXR5LFxuICAgICAgICBtb2RpZmllZDogZXZlbnQubW9kaWZpZWQsXG4gICAgICAgIC8vIFNlcSBtaWdodCBub3QgYmUgcHJlc2VudC4uLiBzbyBza2lwIGl0IGlmIGFic2VudC4uLlxuICAgICAgICAuLi4oZXZlbnQuc2VxID8geyBzZXE6IGV2ZW50LnNlcSB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIHRpbWU6IGV2ZW50Lm1vZGlmaWVkLFxuICAgIH0sXG4gICAgdGFyYmFsbFxuICApO1xuXG4gIC8vIFNlbmQgbWVzc2FnZSB0byBTUVNcbiAgY29uc29sZS5sb2coXG4gICAgYFNlbmRpbmcgbWVzc2FnZSB0byBDb25zdHJ1Y3RIdWIgaW5nZXN0aW9uIHF1ZXVlOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgbWVzc2FnZSxcbiAgICAgIG51bGwsXG4gICAgICAyXG4gICAgKX1gXG4gICk7XG4gIGF3YWl0IFNRU19DTElFTlQuc2VuZChcbiAgICBuZXcgU2VuZE1lc3NhZ2VDb21tYW5kKHtcbiAgICAgIE1lc3NhZ2VCb2R5OiBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSxcbiAgICAgIE1lc3NhZ2VBdHRyaWJ1dGVzOiB7XG4gICAgICAgICdMYW1iZGEtTG9nLUdyb3VwJzoge1xuICAgICAgICAgIERhdGFUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgICBTdHJpbmdWYWx1ZTogY29udGV4dC5sb2dHcm91cE5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgICdMYW1iZGEtTG9nLVN0cmVhbSc6IHtcbiAgICAgICAgICBEYXRhVHlwZTogJ1N0cmluZycsXG4gICAgICAgICAgU3RyaW5nVmFsdWU6IGNvbnRleHQubG9nU3RyZWFtTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgJ0xhbWJkYS1SdW4tSWQnOiB7XG4gICAgICAgICAgRGF0YVR5cGU6ICdTdHJpbmcnLFxuICAgICAgICAgIFN0cmluZ1ZhbHVlOiBjb250ZXh0LmF3c1JlcXVlc3RJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBRdWV1ZVVybDogcXVldWVVcmwsXG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlVmVyc2lvbiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBtb2RpZmllZDogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IHRhcmJhbGxVcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgaW50ZWdyaXR5OiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgc2VxPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIERvd25sb2FkcyB0aGUgdGFyYmFsbCBmb3IgYSBwYWNrYWdlIHZlcnNpb24sIHJldHJ5aW5nIEhUVFAgNDA0IHJlc3BvbnNlc1xuICogZm9yIGEgd2hpbGU6IG5wbSBtZXRhZGF0YSBtYXkgcHJvcGFnYXRlIGZhc3RlciB0aGFuIHRhcmJhbGxzLCBzbyBhIGZyZXNobHlcbiAqIHB1Ymxpc2hlZCB2ZXJzaW9uIGNhbiB0cmFuc2llbnRseSA0MDQgZXZlbiB0aG91Z2ggaXQgd2lsbCBiZSBhdmFpbGFibGVcbiAqIHNob3J0bHkuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkVGFyYmFsbChldmVudDogUGFja2FnZVZlcnNpb24pOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICBjb25zdCBzdGFydFRpbWUgPSBub3coKTtcbiAgbGV0IGF0dGVtcHQgPSAwO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zb2xlLmxvZyhgRG93bmxvYWRpbmcgdGFyYmFsbCBmcm9tIFVSTDogJHtldmVudC50YXJiYWxsVXJsfWApO1xuICAgICAgcmV0dXJuIGF3YWl0IGh0dHBHZXQoZXZlbnQudGFyYmFsbFVybCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKFxuICAgICAgICAhKGUgaW5zdGFuY2VvZiBIdHRwTm90Rm91bmRFcnJvcikgfHxcbiAgICAgICAgbm93KCkgLSBzdGFydFRpbWUgPj0gTk9UX0ZPVU5EX1JFVFJZLmRlYWRsaW5lTXNcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgY29uc3QgZGVsYXkgPSBNYXRoLm1heChcbiAgICAgICAgTk9UX0ZPVU5EX1JFVFJZLmJhc2VEZWxheU1zLFxuICAgICAgICBNYXRoLmZsb29yKFxuICAgICAgICAgIE1hdGgucmFuZG9tKCkgKlxuICAgICAgICAgICAgTWF0aC5taW4oXG4gICAgICAgICAgICAgIE5PVF9GT1VORF9SRVRSWS5iYXNlRGVsYXlNcyAqIE1hdGgucG93KDIsIGF0dGVtcHQpLFxuICAgICAgICAgICAgICBOT1RfRk9VTkRfUkVUUlkubWF4RGVsYXlNc1xuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBUYXJiYWxsIG5vdCBmb3VuZCAoSFRUUCA0MDQpLCByZXRyeWluZyBpbiAke2RlbGF5fSBtczogJHtldmVudC50YXJiYWxsVXJsfWBcbiAgICAgICk7XG4gICAgICBhd2FpdCBzbGVlcChkZWxheSk7XG4gICAgICBhdHRlbXB0Kys7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogTWFrZXMgYW4gSFRUUCBHRVQgcmVxdWVzdCwgYW5kIHJldHVybnMgdGhlIHJlc3VsdGluZyBwYXlsb2FkLlxuICpcbiAqIEBwYXJhbSB1cmwgdGhlIFVSTCB0byBnZXQuXG4gKlxuICogQHJldHVybnMgYSBCdWZmZXIgY29udGFpbmluZyB0aGUgcmVjZWl2ZWQgZGF0YS5cbiAqL1xuZnVuY3Rpb24gaHR0cEdldCh1cmw6IHN0cmluZykge1xuICByZXR1cm4gbmV3IFByb21pc2U8QnVmZmVyPigob2ssIGtvKSA9PiB7XG4gICAgaHR0cHMuZ2V0KHVybCwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09PSA0MDQpIHtcbiAgICAgICAga28obmV3IEh0dHBOb3RGb3VuZEVycm9yKCkpO1xuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlICE9PSAyMDApIHtcbiAgICAgICAga28oXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFVuc3VjY2Vzc2Z1bCBHRVQ6ICR7cmVzcG9uc2Uuc3RhdHVzQ29kZX0gLSAke3Jlc3BvbnNlLnN0YXR1c01lc3NhZ2V9YFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGJvZHkgPSBCdWZmZXIuYWxsb2MoMCk7XG4gICAgICByZXNwb25zZS5vbihcbiAgICAgICAgJ2RhdGEnLFxuICAgICAgICAoY2h1bmspID0+IChib2R5ID0gQnVmZmVyLmNvbmNhdChbYm9keSwgQnVmZmVyLmZyb20oY2h1bmspXSkpXG4gICAgICApO1xuICAgICAgcmVzcG9uc2Uub25jZSgnY2xvc2UnLCAoKSA9PiBvayhib2R5KSk7XG4gICAgICByZXNwb25zZS5vbmNlKCdlcnJvcicsIGtvKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -45,7 +45,7 @@ const NO_CHANGES_ALARM_DURATION = aws_cdk_lib_1.Duration.hours(24);
|
|
|
45
45
|
*/
|
|
46
46
|
class NpmJs {
|
|
47
47
|
props;
|
|
48
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.sources.NpmJs", version: "0.4.
|
|
48
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.sources.NpmJs", version: "0.4.522" };
|
|
49
49
|
constructor(props = {}) {
|
|
50
50
|
this.props = props;
|
|
51
51
|
}
|
package/lib/package-tag/index.js
CHANGED
|
@@ -11,7 +11,7 @@ var TagConditionSource;
|
|
|
11
11
|
* Condition for applying a custom tag to a package.
|
|
12
12
|
*/
|
|
13
13
|
class TagCondition {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.TagCondition", version: "0.4.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.TagCondition", version: "0.4.522" };
|
|
15
15
|
/**
|
|
16
16
|
* Create an && condition which applies only when all condition arguments are
|
|
17
17
|
* true.
|
|
@@ -107,7 +107,7 @@ class TagConditionPredicate extends TagCondition {
|
|
|
107
107
|
*/
|
|
108
108
|
class TagConditionField {
|
|
109
109
|
field;
|
|
110
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.TagConditionField", version: "0.4.
|
|
110
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.TagConditionField", version: "0.4.522" };
|
|
111
111
|
constructor(field) {
|
|
112
112
|
this.field = field;
|
|
113
113
|
}
|
|
@@ -140,7 +140,7 @@ exports.TagConditionField = TagConditionField;
|
|
|
140
140
|
* Target the README of the package to dictate whether a tag is relevant.
|
|
141
141
|
*/
|
|
142
142
|
class TagConditionReadme {
|
|
143
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.TagConditionReadme", version: "0.4.
|
|
143
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.TagConditionReadme", version: "0.4.522" };
|
|
144
144
|
constructor() { }
|
|
145
145
|
/**
|
|
146
146
|
* Create a `readme.includes(value)` condition which applies if the README
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PackageTagGroup = exports.FilterType = void 0;
|
|
4
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
5
|
class FilterType {
|
|
6
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.FilterType", version: "0.4.
|
|
6
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.FilterType", version: "0.4.522" };
|
|
7
7
|
static checkbox() {
|
|
8
8
|
return new FilterTypeCheckbox();
|
|
9
9
|
}
|
|
@@ -27,7 +27,7 @@ class FilterTypeCheckbox extends FilterType {
|
|
|
27
27
|
*/
|
|
28
28
|
class PackageTagGroup {
|
|
29
29
|
id;
|
|
30
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.PackageTagGroup", version: "0.4.
|
|
30
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.PackageTagGroup", version: "0.4.522" };
|
|
31
31
|
label;
|
|
32
32
|
tooltip;
|
|
33
33
|
filterType;
|
|
@@ -9,7 +9,7 @@ const fs_1 = require("fs");
|
|
|
9
9
|
*/
|
|
10
10
|
class PreloadFile {
|
|
11
11
|
data;
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.PreloadFile", version: "0.4.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.PreloadFile", version: "0.4.522" };
|
|
13
13
|
/**
|
|
14
14
|
* Creates a PreloadFile instance from a filepath to load
|
|
15
15
|
*/
|
package/lib/s3/storage.js
CHANGED
|
@@ -42,7 +42,7 @@ const constructs_1 = require("constructs");
|
|
|
42
42
|
* Create s3 storage resources.
|
|
43
43
|
*/
|
|
44
44
|
class S3StorageFactory extends constructs_1.Construct {
|
|
45
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.S3StorageFactory", version: "0.4.
|
|
45
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.S3StorageFactory", version: "0.4.522" };
|
|
46
46
|
/**
|
|
47
47
|
* Retrieve or create the storage factory for the current scope.
|
|
48
48
|
*
|
package/lib/spdx-license.js
CHANGED
|
@@ -9,7 +9,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
9
9
|
*/
|
|
10
10
|
class SpdxLicense {
|
|
11
11
|
id;
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.SpdxLicense", version: "0.4.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "construct-hub.SpdxLicense", version: "0.4.522" };
|
|
13
13
|
static _ALL = new Map();
|
|
14
14
|
//#region Individual SPDX Licenses
|
|
15
15
|
/**
|