@cdktn/commons 0.24.0-pre.3 → 0.24.0-pre.30
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/.spec.swcrc +22 -0
- package/build/checkpoint.js +2 -2
- package/build/config.d.ts +36 -2
- package/build/config.d.ts.map +1 -1
- package/build/config.js +1 -1
- package/build/gradle.js +2 -2
- package/build/util.d.ts +31 -0
- package/build/util.d.ts.map +1 -1
- package/build/util.js +68 -34
- package/build/util.test.d.ts +2 -0
- package/build/util.test.d.ts.map +1 -0
- package/build/util.test.js +86 -0
- package/jest.config.js +15 -11
- package/package.json +7 -11
package/.spec.swcrc
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"jsc": {
|
|
3
|
+
"target": "es2017",
|
|
4
|
+
"parser": {
|
|
5
|
+
"syntax": "typescript",
|
|
6
|
+
"decorators": true,
|
|
7
|
+
"dynamicImport": true
|
|
8
|
+
},
|
|
9
|
+
"transform": {
|
|
10
|
+
"decoratorMetadata": true,
|
|
11
|
+
"legacyDecorator": true
|
|
12
|
+
},
|
|
13
|
+
"keepClassNames": true,
|
|
14
|
+
"externalHelpers": true,
|
|
15
|
+
"loose": true
|
|
16
|
+
},
|
|
17
|
+
"module": {
|
|
18
|
+
"type": "commonjs"
|
|
19
|
+
},
|
|
20
|
+
"sourceMaps": true,
|
|
21
|
+
"exclude": []
|
|
22
|
+
}
|
package/build/checkpoint.js
CHANGED
|
@@ -129,7 +129,7 @@ function getUserId() {
|
|
|
129
129
|
return getId(path.resolve(homeDir(), "config.json"), "userId", true, `This signature is a randomly generated UUID used to anonymously differentiate users in telemetry data order to inform product direction.
|
|
130
130
|
This signature is random, it is not based on any personally identifiable information.
|
|
131
131
|
To create a new signature, you can simply delete this file at any time.
|
|
132
|
-
See https://
|
|
132
|
+
See https://cdktn.io/docs/telemetry for more
|
|
133
133
|
information on how to disable it.`);
|
|
134
134
|
}
|
|
135
135
|
exports.getUserId = getUserId;
|
|
@@ -173,4 +173,4 @@ async function ReportRequest(reportParams) {
|
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
exports.ReportRequest = ReportRequest;
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGVja3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyw2Q0FBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLCtCQUFvQztBQUNwQyx1Q0FBeUI7QUFDekIsc0RBQTZCO0FBQzdCLHVDQUF1RDtBQUN2RCwyQ0FBNkI7QUFDN0IsNkNBQStCO0FBQy9CLHVDQUE0QztBQUU1QyxNQUFNLFFBQVEsR0FBRywwQ0FBMEMsQ0FBQztBQUU1RCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXRDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO0FBRW5DLFNBQVMsT0FBTzs7SUFDZCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVTtRQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDUCxDQUFDLE1BQUEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sbUNBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxFQUNyRCxRQUFRLENBQ1QsQ0FBQztBQUNSLENBQUM7QUFpQkQsS0FBSyxVQUFVLElBQUksQ0FBQyxHQUFXLEVBQUUsSUFBWTtJQUMzQyxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQ3ZCLElBQUEsWUFBTSxFQUFDLEdBQUcsQ0FBQyxFQUNYO1lBQ0UsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxrQkFBa0I7Z0JBQzFCLGdCQUFn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QUFDO0lBRTlDLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBQzVDLGdCQUFNLENBQUMsSUFBSSxDQUNULDBEQUEwRCxRQUFRLENBQUMsTUFBTSx3QkFBd0IscUJBQXFCLFFBQVEsQ0FDL0gsQ0FBQztRQUNGLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsR0FBRyxRQUFRLGFBQWEsWUFBWSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLG1DQUFtQztRQUNuQyxJQUFBLDRCQUFrQixFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0FBQ0gsQ0FBQztBQWpERCxzQ0FpREMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcImh0dHBzXCI7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwidXJsXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tIFwidXVpZFwiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgY2lJbmZvIGZyb20gXCJjaS1pbmZvXCI7XG5pbXBvcnQgeyBsb2dnZXIsIHByb2Nlc3NMb2dnZXJFcnJvciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgRElTUExBWV9WRVJTSU9OIH0gZnJvbSBcIi4vdmVyc2lvblwiO1xuXG5jb25zdCBCQVNFX1VSTCA9IGBodHRwczovL2NoZWNrcG9pbnQtYXBpLmhhc2hpY29ycC5jb20vdjEvYDtcblxuY29uc3QgVkFMSURfU1RBVFVTX0NPREVTID0gWzIwMCwgMjAxXTtcblxuY29uc3QgTUFYX1JFUVVFU1RfQk9EWV9TSVpFID0gODE5MjtcblxuZnVuY3Rpb24gaG9tZURpcigpIHtcbiAgcmV0dXJuIHByb2Nlc3MuZW52LkNES1RGX0hPTUVcbiAgICA/IHBhdGgucmVzb2x2ZShwcm9jZXNzLmVudi5DREtURl9IT01FKVxuICAgIDogcGF0aC5qb2luKFxuICAgICAgICAob3MudXNlckluZm8oKS5ob21lZGlyID8/IG9zLmhvbWVkaXIoKSkudHJpbSgpIHx8IFwiL1wiLFxuICAgICAgICBcIi5jZGt0ZlwiLFxuICAgICAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRQYXJhbXMge1xuICBkYXRlVGltZT86IERhdGU7XG4gIGFyY2g/OiBzdHJpbmc7XG4gIG9zPzogc3RyaW5nO1xuICBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBwcm9kdWN0OiBzdHJpbmc7XG4gIHJ1bklEPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBjb21tYW5kPzogc3RyaW5nO1xuICBsYW5ndWFnZT86IHN0cmluZztcbiAgdXNlcklkPzogc3RyaW5nO1xuICBjaT86IHN0cmluZztcbiAgcHJvamVjdElkPzogc3RyaW5nO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwb3N0KHVybDogc3RyaW5nLCBkYXRhOiBzdHJpbmcpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChvaywga28pID0+IHtcbiAgICBjb25zdCByZXEgPSBodHRwcy5yZXF1ZXN0KFxuICAgICAgZm9ybWF0KHVybCksXG4gICAgICB7XG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgIFwiQ29udGVudC1MZW5ndGhcIjogZGF0YS5sZW5ndGgsXG4gICAgICAgICAgXCJVc2VyLUFnZW50XCI6IFwiT3BlbkNvbnN0cnVjdHMvY2RrdG4tY2xpXCIsXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICB9LFxuICAgICAgKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzLnN0YXR1c0NvZGUpIHtcbiAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gcmVzLnN0YXR1c0NvZGU7XG4gICAgICAgICAgaWYgKCFWQUxJRF9TVEFUVVNfQ09ERVMuaW5jbHVkZXMoc3RhdHVzQ29kZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBrbyhuZXcgRXJyb3IocmVzLnN0YXR1c01lc3NhZ2UpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IG5ldyBBcnJheTxCdWZmZXI+KCk7XG4gICAgICAgIHJlcy5vbihcImRhdGFcIiwgKGNodW5rKSA9PiBkYXRhLnB1c2goY2h1bmspKTtcbiAgICAgICAgcmVzLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ga28oZXJyKSk7XG4gICAgICAgIHJlcy5vbihcImVuZFwiLCAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9rKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmVxLnNldFRpbWVvdXQoMTAwMCwgKCkgPT4ga28obmV3IEVycm9yKFwicmVxdWVzdCB0aW1lb3V0XCIpKSk7XG4gICAgcmVxLndyaXRlKGRhdGEpO1xuICAgIHJlcS5lbmQoKTtcbiAgICByZXEub24oXCJlcnJvclwiLCAoZXJyKSA9PiBrbyhlcnIpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kVGVsZW1ldHJ5KFxuICBjb21tYW5kOiBzdHJpbmcsXG4gIHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4pIHtcbiAgY29uc3QgcmVwb3J0UGFyYW1zOiBSZXBvcnRQYXJhbXMgPSB7XG4gICAgY29tbWFuZCxcbiAgICBwcm9kdWN0OiBcImNka3RuXCIsXG4gICAgdmVyc2lvbjogYCR7RElTUExBWV9WRVJTSU9OfWAsXG4gICAgZGF0ZVRpbWU6IG5ldyBEYXRlKCksXG4gICAgbGFuZ3VhZ2U6IHBheWxvYWQubGFuZ3VhZ2UsXG4gICAgcGF5bG9hZCxcbiAgfTtcblxuICB0cnkge1xuICAgIGF3YWl0IFJlcG9ydFJlcXVlc3QocmVwb3J0UGFyYW1zKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmVycm9yKGBDb3VsZCBub3Qgc2VuZCB0ZWxlbWV0cnkgZGF0YTogJHtlcnJ9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SWQoXG4gIGZpbGVQYXRoOiBzdHJpbmcsXG4gIGtleTogc3RyaW5nLFxuICBmb3JjZUNyZWF0aW9uID0gZmFsc2UsXG4gIGV4cGxhbmF0b3J5Q29tbWVudD86IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IF91dWlkID0gdXVpZHY0KCk7IC8vIGNyZWF0ZSBhIG5ldyBVVUlEIGluIGNhc2Ugd2UgZG9uJ3QgZmluZCBvbmVcblxuICBsZXQganNvbkZpbGU7XG4gIHRyeSB7XG4gICAganNvbkZpbGUgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGYtOFwiKSk7IC8vIHdlIGZvdW5kIHRoZSBmaWxlXG4gIH0gY2F0Y2gge1xuICAgIC8vIHdlIGZvdW5kIG5vIGZpbGUsIGNyZWF0ZSBvbmUgaWYgd2UncmUgZm9yY2luZyBhIGNyZWF0aW9uXG4gICAgaWYgKGZvcmNlQ3JlYXRpb24pIHtcbiAgICAgIGNvbnN0IF9pZEZpbGUgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyAvLyBjb21wb3NlIEpTT04gaWQgZmlsZSBpbiBjYXNlIHdlIGRvbid0IGZpbmQgb25lXG4gICAgICBpZiAoZXhwbGFuYXRvcnlDb21tZW50KSB7XG4gICAgICAgIF9pZEZpbGVbXCIvL1wiXSA9IGV4cGxhbmF0b3J5Q29tbWVudC5yZXBsYWNlKC9cXG4vZywgXCIgXCIpO1xuICAgICAgfVxuICAgICAgX2lkRmlsZVtrZXldID0gX3V1aWQ7XG4gICAgICBmcy5lbnN1cmVEaXJTeW5jKHBhdGguZGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoX2lkRmlsZSwgbnVsbCwgMikpO1xuICAgIH1cbiAgICByZXR1cm4gX3V1aWQ7XG4gIH1cblxuICBpZiAoanNvbkZpbGVba2V5XSkge1xuICAgIHJldHVybiBqc29uRmlsZVtrZXldOyAvLyB3ZSBmb3VuZCBhbiBpZFxuICB9IGVsc2Uge1xuICAgIC8vIHdlIGZvdW5kIG5vIGlkLCB3ZSBhZGQgaXQgdG8gdGhlIGZpbGUgZm9yIGZ1dHVyZSB1c2VcbiAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgZmlsZVBhdGgsXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IC4uLmpzb25GaWxlLCBba2V5XTogX3V1aWQgfSwgbnVsbCwgMiksXG4gICAgKTtcbiAgICByZXR1cm4gX3V1aWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3RJZChwcm9qZWN0UGF0aCA9IHByb2Nlc3MuY3dkKCkpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0SWQocGF0aC5yZXNvbHZlKHByb2plY3RQYXRoLCBcImNka3RmLmpzb25cIiksIFwicHJvamVjdElkXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXNlcklkKCk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRJZChcbiAgICBwYXRoLnJlc29sdmUoaG9tZURpcigpLCBcImNvbmZpZy5qc29uXCIpLFxuICAgIFwidXNlcklkXCIsXG4gICAgdHJ1ZSxcbiAgICBgVGhpcyBzaWduYXR1cmUgaXMgYSByYW5kb21seSBnZW5lcmF0ZWQgVVVJRCB1c2VkIHRvIGFub255bW91c2x5IGRpZmZlcmVudGlhdGUgdXNlcnMgaW4gdGVsZW1ldHJ5IGRhdGEgb3JkZXIgdG8gaW5mb3JtIHByb2R1Y3QgZGlyZWN0aW9uLlxuVGhpcyBzaWduYXR1cmUgaXMgcmFuZG9tLCBpdCBpcyBub3QgYmFzZWQgb24gYW55IHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlIGluZm9ybWF0aW9uLlxuVG8gY3JlYXRlIGEgbmV3IHNpZ25hdHVyZSwgeW91IGNhbiBzaW1wbHkgZGVsZXRlIHRoaXMgZmlsZSBhdCBhbnkgdGltZS5cblNlZSBodHRwczovL2Nkay50Zi90ZWxlbWV0cnkgZm9yIG1vcmVcbmluZm9ybWF0aW9uIG9uIGhvdyB0byBkaXNhYmxlIGl0LmAsXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBSZXBvcnRSZXF1ZXN0KHJlcG9ydFBhcmFtczogUmVwb3J0UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIHdlIHdvbid0IHJlcG9ydCB3aGVuIGNoZWNrcG9pbnQgaXMgZGlzYWJsZWQuXG4gIC8vIENoZWNrIGF0IHJ1bnRpbWUgKG5vdCBpbXBvcnQgdGltZSkgdG8gYWxsb3cgdGVzdHMgdG8gbW9kaWZ5IHRoZSBlbnYgdmFyXG4gIGlmIChwcm9jZXNzLmVudi5DSEVDS1BPSU5UX0RJU0FCTEUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIXJlcG9ydFBhcmFtcy5ydW5JRCkge1xuICAgIHJlcG9ydFBhcmFtcy5ydW5JRCA9IHV1aWR2NCgpO1xuICB9XG5cbiAgaWYgKCFyZXBvcnRQYXJhbXMuZGF0ZVRpbWUpIHtcbiAgICByZXBvcnRQYXJhbXMuZGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xuICB9XG5cbiAgaWYgKCFyZXBvcnRQYXJhbXMuYXJjaCkge1xuICAgIHJlcG9ydFBhcmFtcy5hcmNoID0gb3MuYXJjaCgpO1xuICB9XG5cbiAgaWYgKCFyZXBvcnRQYXJhbXMub3MpIHtcbiAgICByZXBvcnRQYXJhbXMub3MgPSBvcy5wbGF0Zm9ybSgpO1xuICB9XG5cbiAgY29uc3QgY2k6IHN0cmluZyB8IGZhbHNlID0gY2lJbmZvLmlzQ0kgPyBjaUluZm8ubmFtZSB8fCBcInVua25vd25cIiA6IGZhbHNlO1xuICBpZiAoIXJlcG9ydFBhcmFtcy51c2VySWQgJiYgIWNpKSB7XG4gICAgcmVwb3J0UGFyYW1zLnVzZXJJZCA9IGdldFVzZXJJZCgpO1xuICB9XG5cbiAgaWYgKGNpKSB7XG4gICAgcmVwb3J0UGFyYW1zLmNpID0gY2k7XG4gIH1cblxuICByZXBvcnRQYXJhbXMucHJvamVjdElkID0gcmVwb3J0UGFyYW1zLnByb2plY3RJZCB8fCBnZXRQcm9qZWN0SWQoKTtcblxuICBjb25zdCBwb3N0RGF0YSA9IEpTT04uc3RyaW5naWZ5KHJlcG9ydFBhcmFtcyk7XG5cbiAgaWYgKHBvc3REYXRhLmxlbmd0aCA+IE1BWF9SRVFVRVNUX0JPRFlfU0laRSkge1xuICAgIGxvZ2dlci53YXJuKFxuICAgICAgYFNraXBwZWQgc2VuZGluZyB0ZWxlbWV0cnkgYXMgdGhlIHJlcXVlc3QgYm9keSBzaXplIHdhcyAke3Bvc3REYXRhLmxlbmd0aH0gYnl0ZXMuIFRoZSBsaW1pdCBpcyAke01BWF9SRVFVRVNUX0JPRFlfU0laRX0gYnl0ZXNgLFxuICAgICk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBwb3N0KGAke0JBU0VfVVJMfXRlbGVtZXRyeS8ke3JlcG9ydFBhcmFtcy5wcm9kdWN0fWAsIHBvc3REYXRhKTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgLy8gTG9nIGVycm9ycyB3cml0aW5nIHRvIGNoZWNrcG9pbnRcbiAgICBwcm9jZXNzTG9nZ2VyRXJyb3IoZS5tZXNzYWdlKTtcbiAgfVxufVxuIl19
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGVja3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyw2Q0FBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLCtCQUFvQztBQUNwQyx1Q0FBeUI7QUFDekIsc0RBQTZCO0FBQzdCLHVDQUF1RDtBQUN2RCwyQ0FBNkI7QUFDN0IsNkNBQStCO0FBQy9CLHVDQUE0QztBQUU1QyxNQUFNLFFBQVEsR0FBRywwQ0FBMEMsQ0FBQztBQUU1RCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXRDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO0FBRW5DLFNBQVMsT0FBTzs7SUFDZCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVTtRQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDUCxDQUFDLE1BQUEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sbUNBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxFQUNyRCxRQUFRLENBQ1QsQ0FBQztBQUNSLENBQUM7QUFpQkQsS0FBSyxVQUFVLElBQUksQ0FBQyxHQUFXLEVBQUUsSUFBWTtJQUMzQyxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQ3ZCLElBQUEsWUFBTSxFQUFDLEdBQUcsQ0FBQyxFQUNYO1lBQ0UsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxrQkFBa0I7Z0JBQzFCLGdCQUFn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QUFDO0lBRTlDLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBQzVDLGdCQUFNLENBQUMsSUFBSSxDQUNULDBEQUEwRCxRQUFRLENBQUMsTUFBTSx3QkFBd0IscUJBQXFCLFFBQVEsQ0FDL0gsQ0FBQztRQUNGLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsR0FBRyxRQUFRLGFBQWEsWUFBWSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLG1DQUFtQztRQUNuQyxJQUFBLDRCQUFrQixFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0FBQ0gsQ0FBQztBQWpERCxzQ0FpREMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcImh0dHBzXCI7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwidXJsXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tIFwidXVpZFwiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgY2lJbmZvIGZyb20gXCJjaS1pbmZvXCI7XG5pbXBvcnQgeyBsb2dnZXIsIHByb2Nlc3NMb2dnZXJFcnJvciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgRElTUExBWV9WRVJTSU9OIH0gZnJvbSBcIi4vdmVyc2lvblwiO1xuXG5jb25zdCBCQVNFX1VSTCA9IGBodHRwczovL2NoZWNrcG9pbnQtYXBpLmhhc2hpY29ycC5jb20vdjEvYDtcblxuY29uc3QgVkFMSURfU1RBVFVTX0NPREVTID0gWzIwMCwgMjAxXTtcblxuY29uc3QgTUFYX1JFUVVFU1RfQk9EWV9TSVpFID0gODE5MjtcblxuZnVuY3Rpb24gaG9tZURpcigpIHtcbiAgcmV0dXJuIHByb2Nlc3MuZW52LkNES1RGX0hPTUVcbiAgICA/IHBhdGgucmVzb2x2ZShwcm9jZXNzLmVudi5DREtURl9IT01FKVxuICAgIDogcGF0aC5qb2luKFxuICAgICAgICAob3MudXNlckluZm8oKS5ob21lZGlyID8/IG9zLmhvbWVkaXIoKSkudHJpbSgpIHx8IFwiL1wiLFxuICAgICAgICBcIi5jZGt0ZlwiLFxuICAgICAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRQYXJhbXMge1xuICBkYXRlVGltZT86IERhdGU7XG4gIGFyY2g/OiBzdHJpbmc7XG4gIG9zPzogc3RyaW5nO1xuICBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBwcm9kdWN0OiBzdHJpbmc7XG4gIHJ1bklEPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBjb21tYW5kPzogc3RyaW5nO1xuICBsYW5ndWFnZT86IHN0cmluZztcbiAgdXNlcklkPzogc3RyaW5nO1xuICBjaT86IHN0cmluZztcbiAgcHJvamVjdElkPzogc3RyaW5nO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwb3N0KHVybDogc3RyaW5nLCBkYXRhOiBzdHJpbmcpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChvaywga28pID0+IHtcbiAgICBjb25zdCByZXEgPSBodHRwcy5yZXF1ZXN0KFxuICAgICAgZm9ybWF0KHVybCksXG4gICAgICB7XG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgIFwiQ29udGVudC1MZW5ndGhcIjogZGF0YS5sZW5ndGgsXG4gICAgICAgICAgXCJVc2VyLUFnZW50XCI6IFwiT3BlbkNvbnN0cnVjdHMvY2RrdG4tY2xpXCIsXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICB9LFxuICAgICAgKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzLnN0YXR1c0NvZGUpIHtcbiAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gcmVzLnN0YXR1c0NvZGU7XG4gICAgICAgICAgaWYgKCFWQUxJRF9TVEFUVVNfQ09ERVMuaW5jbHVkZXMoc3RhdHVzQ29kZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBrbyhuZXcgRXJyb3IocmVzLnN0YXR1c01lc3NhZ2UpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IG5ldyBBcnJheTxCdWZmZXI+KCk7XG4gICAgICAgIHJlcy5vbihcImRhdGFcIiwgKGNodW5rKSA9PiBkYXRhLnB1c2goY2h1bmspKTtcbiAgICAgICAgcmVzLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ga28oZXJyKSk7XG4gICAgICAgIHJlcy5vbihcImVuZFwiLCAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9rKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmVxLnNldFRpbWVvdXQoMTAwMCwgKCkgPT4ga28obmV3IEVycm9yKFwicmVxdWVzdCB0aW1lb3V0XCIpKSk7XG4gICAgcmVxLndyaXRlKGRhdGEpO1xuICAgIHJlcS5lbmQoKTtcbiAgICByZXEub24oXCJlcnJvclwiLCAoZXJyKSA9PiBrbyhlcnIpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kVGVsZW1ldHJ5KFxuICBjb21tYW5kOiBzdHJpbmcsXG4gIHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4pIHtcbiAgY29uc3QgcmVwb3J0UGFyYW1zOiBSZXBvcnRQYXJhbXMgPSB7XG4gICAgY29tbWFuZCxcbiAgICBwcm9kdWN0OiBcImNka3RuXCIsXG4gICAgdmVyc2lvbjogYCR7RElTUExBWV9WRVJTSU9OfWAsXG4gICAgZGF0ZVRpbWU6IG5ldyBEYXRlKCksXG4gICAgbGFuZ3VhZ2U6IHBheWxvYWQubGFuZ3VhZ2UsXG4gICAgcGF5bG9hZCxcbiAgfTtcblxuICB0cnkge1xuICAgIGF3YWl0IFJlcG9ydFJlcXVlc3QocmVwb3J0UGFyYW1zKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmVycm9yKGBDb3VsZCBub3Qgc2VuZCB0ZWxlbWV0cnkgZGF0YTogJHtlcnJ9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SWQoXG4gIGZpbGVQYXRoOiBzdHJpbmcsXG4gIGtleTogc3RyaW5nLFxuICBmb3JjZUNyZWF0aW9uID0gZmFsc2UsXG4gIGV4cGxhbmF0b3J5Q29tbWVudD86IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IF91dWlkID0gdXVpZHY0KCk7IC8vIGNyZWF0ZSBhIG5ldyBVVUlEIGluIGNhc2Ugd2UgZG9uJ3QgZmluZCBvbmVcblxuICBsZXQganNvbkZpbGU7XG4gIHRyeSB7XG4gICAganNvbkZpbGUgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGYtOFwiKSk7IC8vIHdlIGZvdW5kIHRoZSBmaWxlXG4gIH0gY2F0Y2gge1xuICAgIC8vIHdlIGZvdW5kIG5vIGZpbGUsIGNyZWF0ZSBvbmUgaWYgd2UncmUgZm9yY2luZyBhIGNyZWF0aW9uXG4gICAgaWYgKGZvcmNlQ3JlYXRpb24pIHtcbiAgICAgIGNvbnN0IF9pZEZpbGUgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyAvLyBjb21wb3NlIEpTT04gaWQgZmlsZSBpbiBjYXNlIHdlIGRvbid0IGZpbmQgb25lXG4gICAgICBpZiAoZXhwbGFuYXRvcnlDb21tZW50KSB7XG4gICAgICAgIF9pZEZpbGVbXCIvL1wiXSA9IGV4cGxhbmF0b3J5Q29tbWVudC5yZXBsYWNlKC9cXG4vZywgXCIgXCIpO1xuICAgICAgfVxuICAgICAgX2lkRmlsZVtrZXldID0gX3V1aWQ7XG4gICAgICBmcy5lbnN1cmVEaXJTeW5jKHBhdGguZGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoX2lkRmlsZSwgbnVsbCwgMikpO1xuICAgIH1cbiAgICByZXR1cm4gX3V1aWQ7XG4gIH1cblxuICBpZiAoanNvbkZpbGVba2V5XSkge1xuICAgIHJldHVybiBqc29uRmlsZVtrZXldOyAvLyB3ZSBmb3VuZCBhbiBpZFxuICB9IGVsc2Uge1xuICAgIC8vIHdlIGZvdW5kIG5vIGlkLCB3ZSBhZGQgaXQgdG8gdGhlIGZpbGUgZm9yIGZ1dHVyZSB1c2VcbiAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgZmlsZVBhdGgsXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IC4uLmpzb25GaWxlLCBba2V5XTogX3V1aWQgfSwgbnVsbCwgMiksXG4gICAgKTtcbiAgICByZXR1cm4gX3V1aWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3RJZChwcm9qZWN0UGF0aCA9IHByb2Nlc3MuY3dkKCkpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0SWQocGF0aC5yZXNvbHZlKHByb2plY3RQYXRoLCBcImNka3RmLmpzb25cIiksIFwicHJvamVjdElkXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXNlcklkKCk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRJZChcbiAgICBwYXRoLnJlc29sdmUoaG9tZURpcigpLCBcImNvbmZpZy5qc29uXCIpLFxuICAgIFwidXNlcklkXCIsXG4gICAgdHJ1ZSxcbiAgICBgVGhpcyBzaWduYXR1cmUgaXMgYSByYW5kb21seSBnZW5lcmF0ZWQgVVVJRCB1c2VkIHRvIGFub255bW91c2x5IGRpZmZlcmVudGlhdGUgdXNlcnMgaW4gdGVsZW1ldHJ5IGRhdGEgb3JkZXIgdG8gaW5mb3JtIHByb2R1Y3QgZGlyZWN0aW9uLlxuVGhpcyBzaWduYXR1cmUgaXMgcmFuZG9tLCBpdCBpcyBub3QgYmFzZWQgb24gYW55IHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlIGluZm9ybWF0aW9uLlxuVG8gY3JlYXRlIGEgbmV3IHNpZ25hdHVyZSwgeW91IGNhbiBzaW1wbHkgZGVsZXRlIHRoaXMgZmlsZSBhdCBhbnkgdGltZS5cblNlZSBodHRwczovL2Nka3RuLmlvL2RvY3MvdGVsZW1ldHJ5IGZvciBtb3JlXG5pbmZvcm1hdGlvbiBvbiBob3cgdG8gZGlzYWJsZSBpdC5gLFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gUmVwb3J0UmVxdWVzdChyZXBvcnRQYXJhbXM6IFJlcG9ydFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAvLyB3ZSB3b24ndCByZXBvcnQgd2hlbiBjaGVja3BvaW50IGlzIGRpc2FibGVkLlxuICAvLyBDaGVjayBhdCBydW50aW1lIChub3QgaW1wb3J0IHRpbWUpIHRvIGFsbG93IHRlc3RzIHRvIG1vZGlmeSB0aGUgZW52IHZhclxuICBpZiAocHJvY2Vzcy5lbnYuQ0hFQ0tQT0lOVF9ESVNBQkxFKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFyZXBvcnRQYXJhbXMucnVuSUQpIHtcbiAgICByZXBvcnRQYXJhbXMucnVuSUQgPSB1dWlkdjQoKTtcbiAgfVxuXG4gIGlmICghcmVwb3J0UGFyYW1zLmRhdGVUaW1lKSB7XG4gICAgcmVwb3J0UGFyYW1zLmRhdGVUaW1lID0gbmV3IERhdGUoKTtcbiAgfVxuXG4gIGlmICghcmVwb3J0UGFyYW1zLmFyY2gpIHtcbiAgICByZXBvcnRQYXJhbXMuYXJjaCA9IG9zLmFyY2goKTtcbiAgfVxuXG4gIGlmICghcmVwb3J0UGFyYW1zLm9zKSB7XG4gICAgcmVwb3J0UGFyYW1zLm9zID0gb3MucGxhdGZvcm0oKTtcbiAgfVxuXG4gIGNvbnN0IGNpOiBzdHJpbmcgfCBmYWxzZSA9IGNpSW5mby5pc0NJID8gY2lJbmZvLm5hbWUgfHwgXCJ1bmtub3duXCIgOiBmYWxzZTtcbiAgaWYgKCFyZXBvcnRQYXJhbXMudXNlcklkICYmICFjaSkge1xuICAgIHJlcG9ydFBhcmFtcy51c2VySWQgPSBnZXRVc2VySWQoKTtcbiAgfVxuXG4gIGlmIChjaSkge1xuICAgIHJlcG9ydFBhcmFtcy5jaSA9IGNpO1xuICB9XG5cbiAgcmVwb3J0UGFyYW1zLnByb2plY3RJZCA9IHJlcG9ydFBhcmFtcy5wcm9qZWN0SWQgfHwgZ2V0UHJvamVjdElkKCk7XG5cbiAgY29uc3QgcG9zdERhdGEgPSBKU09OLnN0cmluZ2lmeShyZXBvcnRQYXJhbXMpO1xuXG4gIGlmIChwb3N0RGF0YS5sZW5ndGggPiBNQVhfUkVRVUVTVF9CT0RZX1NJWkUpIHtcbiAgICBsb2dnZXIud2FybihcbiAgICAgIGBTa2lwcGVkIHNlbmRpbmcgdGVsZW1ldHJ5IGFzIHRoZSByZXF1ZXN0IGJvZHkgc2l6ZSB3YXMgJHtwb3N0RGF0YS5sZW5ndGh9IGJ5dGVzLiBUaGUgbGltaXQgaXMgJHtNQVhfUkVRVUVTVF9CT0RZX1NJWkV9IGJ5dGVzYCxcbiAgICApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgcG9zdChgJHtCQVNFX1VSTH10ZWxlbWV0cnkvJHtyZXBvcnRQYXJhbXMucHJvZHVjdH1gLCBwb3N0RGF0YSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIC8vIExvZyBlcnJvcnMgd3JpdGluZyB0byBjaGVja3BvaW50XG4gICAgcHJvY2Vzc0xvZ2dlckVycm9yKGUubWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==
|
package/build/config.d.ts
CHANGED
|
@@ -10,6 +10,19 @@ export declare enum Language {
|
|
|
10
10
|
GO = "go"
|
|
11
11
|
}
|
|
12
12
|
export declare const LANGUAGES: Language[];
|
|
13
|
+
export interface TypeScriptLanguageOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Suffix to append to relative imports.
|
|
16
|
+
* Defaults to "" (CommonJS).
|
|
17
|
+
* Use ".js" or ".ts" for ESM-compatible imports.
|
|
18
|
+
*/
|
|
19
|
+
readonly importExtension?: string;
|
|
20
|
+
}
|
|
21
|
+
export type PythonLanguageOptions = Record<string, never>;
|
|
22
|
+
export type CSharpLanguageOptions = Record<string, never>;
|
|
23
|
+
export type JavaLanguageOptions = Record<string, never>;
|
|
24
|
+
export type GoLanguageOptions = Record<string, never>;
|
|
25
|
+
export type LanguageOptions = TypeScriptLanguageOptions | PythonLanguageOptions | CSharpLanguageOptions | JavaLanguageOptions | GoLanguageOptions;
|
|
13
26
|
export declare const CONFIG_DEFAULTS: {
|
|
14
27
|
output: string;
|
|
15
28
|
codeMakerOutput: string;
|
|
@@ -43,9 +56,8 @@ export declare class TerraformProviderConstraint implements TerraformDependencyC
|
|
|
43
56
|
constructor(item: Omit<TerraformDependencyConstraint, "fqn"> | string);
|
|
44
57
|
private parseDependencyConstraint;
|
|
45
58
|
}
|
|
46
|
-
|
|
59
|
+
interface ConfigBase {
|
|
47
60
|
readonly app?: string;
|
|
48
|
-
readonly language?: Language;
|
|
49
61
|
readonly output: string;
|
|
50
62
|
readonly codeMakerOutput: string;
|
|
51
63
|
terraformProviders?: TerraformProviderConstraint[];
|
|
@@ -54,8 +66,30 @@ export interface Config {
|
|
|
54
66
|
[key: string]: any;
|
|
55
67
|
};
|
|
56
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Language-specific code generation options, discriminated by `language`.
|
|
71
|
+
* Only TypeScript currently has tunable options; all other languages
|
|
72
|
+
* accept an empty `languageOptions` object as a future extension point.
|
|
73
|
+
*/
|
|
74
|
+
export type Config = ConfigBase & ({
|
|
75
|
+
readonly language?: Language.TYPESCRIPT;
|
|
76
|
+
readonly languageOptions?: TypeScriptLanguageOptions;
|
|
77
|
+
} | {
|
|
78
|
+
readonly language: Language.PYTHON;
|
|
79
|
+
readonly languageOptions?: PythonLanguageOptions;
|
|
80
|
+
} | {
|
|
81
|
+
readonly language: Language.CSHARP;
|
|
82
|
+
readonly languageOptions?: CSharpLanguageOptions;
|
|
83
|
+
} | {
|
|
84
|
+
readonly language: Language.JAVA;
|
|
85
|
+
readonly languageOptions?: JavaLanguageOptions;
|
|
86
|
+
} | {
|
|
87
|
+
readonly language: Language.GO;
|
|
88
|
+
readonly languageOptions?: GoLanguageOptions;
|
|
89
|
+
});
|
|
57
90
|
export declare const parseConfig: (configJSON?: string) => Config;
|
|
58
91
|
export declare function readConfigSync(configFile?: string): Config;
|
|
59
92
|
export declare function shouldCheckCodeMakerOutput(config: Config): boolean;
|
|
60
93
|
export declare function logTimespan(message: string): () => void;
|
|
94
|
+
export {};
|
|
61
95
|
//# sourceMappingURL=config.d.ts.map
|
package/build/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,oBAAY,QAAQ;IAClB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,EAAE,OAAO;CACV;AAED,eAAO,MAAM,SAAS,YAMrB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/build/config.js
CHANGED
|
@@ -264,4 +264,4 @@ function logTimespan(message) {
|
|
|
264
264
|
};
|
|
265
265
|
}
|
|
266
266
|
exports.logTimespan = logTimespan;
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDZDQUErQjtBQUMvQiwyQ0FBNkI7QUFDN0IsdUNBQW1DO0FBQ25DLHlEQUFzRDtBQUN0RCxxQ0FBOEI7QUFDOUIseUNBQXlDO0FBRXpDLElBQVksUUFNWDtBQU5ELFdBQVksUUFBUTtJQUNsQixxQ0FBeUIsQ0FBQTtJQUN6Qiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQix5QkFBYSxDQUFBO0lBQ2IscUJBQVMsQ0FBQTtBQUNYLENBQUMsRUFOVyxRQUFRLHdCQUFSLFFBQVEsUUFNbkI7QUFFWSxRQUFBLFNBQVMsR0FBRztJQUN2QixRQUFRLENBQUMsVUFBVTtJQUNuQixRQUFRLENBQUMsTUFBTTtJQUNmLFFBQVEsQ0FBQyxJQUFJO0lBQ2IsUUFBUSxDQUFDLE1BQU07SUFDZixRQUFRLENBQUMsRUFBRTtDQUNaLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQztBQUV6QyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFDcEIsUUFBQSxlQUFlLEdBQUc7SUFDN0IsTUFBTSxFQUFFLFdBQVc7SUFDbkIsZUFBZSxFQUFFLE1BQU07Q0FDeEIsQ0FBQztBQUVGLFNBQVMsU0FBUyxDQUFDLEtBQXdCO0lBQ3pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBU0QsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNuQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLE1BQWM7SUFDMUMsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUss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QUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM5QixpQkFBaUIsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRCxPQUFPLElBQUEsbUJBQVcsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFWRCx3Q0FVQztBQUVELFNBQWdCLDBCQUEwQixDQUFDLE1BQWM7SUFDdkQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQzNFLENBQUM7QUFDSixDQUFDO0FBSkQsZ0VBSUM7QUFFRCxTQUFnQixXQUFXLENBQUMsT0FBZTtJQUN6QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFekIsT0FBTyxTQUFTLGNBQWM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDN0IsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLFNBQVMsUUFBUSxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBVEQsa0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2luZ1wiO1xuaW1wb3J0IHsgaXNSZWdpc3RyeU1vZHVsZSB9IGZyb20gXCIuL3RlcnJhZm9ybS1tb2R1bGVcIjtcbmltcG9ydCB7IGVudiB9IGZyb20gXCJwcm9jZXNzXCI7XG5pbXBvcnQgeyB0b1Bhc2NhbENhc2UgfSBmcm9tIFwiY29kZW1ha2VyXCI7XG5cbmV4cG9ydCBlbnVtIExhbmd1YWdlIHtcbiAgVFlQRVNDUklQVCA9IFwidHlwZXNjcmlwdFwiLFxuICBQWVRIT04gPSBcInB5dGhvblwiLFxuICBDU0hBUlAgPSBcImNzaGFycFwiLFxuICBKQVZBID0gXCJqYXZhXCIsXG4gIEdPID0gXCJnb1wiLFxufVxuXG5leHBvcnQgY29uc3QgTEFOR1VBR0VTID0gW1xuICBMYW5ndWFnZS5UWVBFU0NSSVBULFxuICBMYW5ndWFnZS5QWVRIT04sXG4gIExhbmd1YWdlLkpBVkEsXG4gIExhbmd1YWdlLkNTSEFSUCxcbiAgTGFuZ3VhZ2UuR08sXG5dO1xuXG5jb25zdCBDT05URVhUX0VOViA9IFwiQ0RLVEZfQ09OVEVYVF9KU09OXCI7XG5cbmNvbnN0IENPTkZJR19GSUxFID0gXCJjZGt0Zi5qc29uXCI7XG5leHBvcnQgY29uc3QgQ09ORklHX0RFRkFVTFRTID0ge1xuICBvdXRwdXQ6IFwiY2RrdGYub3V0XCIsXG4gIGNvZGVNYWtlck91dHB1dDogXCIuZ2VuXCIsXG59O1xuXG5mdW5jdGlvbiBpc1ByZXNlbnQoaW5wdXQ6IGFueVtdIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGlucHV0KSAmJiBpbnB1dC5sZW5ndGggPiAwO1xufVxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICByZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGdldExvY2FsTWF0Y2goc291cmNlOiBzdHJpbmcpOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCB7XG4gIHJldHVybiBzb3VyY2UubWF0Y2goL14oXFwuXFwvfFxcLlxcLlxcL3xcXC5cXFxcXFxcXHxcXC5cXC5cXFxcXFxcXCkoLiopLyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xvY2FsTW9kdWxlKHNvdXJjZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRMb2NhbE1hdGNoKHNvdXJjZSkgIT09IG51bGw7XG59XG5cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IGltcGxlbWVudHMgVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBsb2NhbFNvdXJjZUFic29sdXRlUGF0aD86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihpdGVtOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KGl0ZW0pO1xuICAgICAgdGhpcy5uYW1lID0gcGFyc2VkLm5hbWU7XG4gICAgICB0aGlzLnNvdXJjZSA9IHBhcnNlZC5zb3VyY2U7XG4gICAgICB0aGlzLmZxbiA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnZlcnNpb24gPSBwYXJzZWQudmVyc2lvbjtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gcGFyc2VkLm5hbWVzcGFjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zb3VyY2UgPSBpdGVtLnNvdXJjZTtcbiAgICAgIHRoaXMubmFtZSA9IGl0ZW0ubmFtZTtcbiAgICAgIHRoaXMuZnFuID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy52ZXJzaW9uID0gaXRlbS52ZXJzaW9uO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBpdGVtLm5hbWVzcGFjZTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2NhbE1hdGNoID0gZ2V0TG9jYWxNYXRjaCh0aGlzLnNvdXJjZSk7XG4gICAgaWYgKGxvY2FsTWF0Y2gpIHtcbiAgICAgIHRoaXMubG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgdGhpcy5zb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xhc3NOYW1lKCkge1xuICAgIHJldHVybiB0b1Bhc2NhbENhc2UodGhpcy5uYW1lLnJlcGxhY2UoL1stLy5dL2csIFwiX1wiKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbGVOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWVzcGFjZSA/IGAke3RoaXMubmFtZXNwYWNlfS8ke3RoaXMubmFtZX1gIDogdGhpcy5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KFxuICAgIGl0ZW06IHN0cmluZyxcbiAgKTogVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQge1xuICAgIGNvbnN0IGxvY2FsTWF0Y2ggPSBnZXRMb2NhbE1hdGNoKGl0ZW0pO1xuICAgIGlmIChsb2NhbE1hdGNoKSB7XG4gICAgICBjb25zdCBmcW4gPSBsb2NhbE1hdGNoWzJdO1xuICAgICAgY29uc3QgbmFtZVBhcnRzID0gZnFuLnNwbGl0KFwiL1wiKTtcbiAgICAgIGNvbnN0IG5hbWUgPSBuYW1lUGFydHMucG9wKCkgPz8gZnFuO1xuICAgICAgY29uc3QgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBmcW4sXG4gICAgICAgIHNvdXJjZTogaXRlbSxcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBbc291cmNlLCB2ZXJzaW9uXSA9IGl0ZW0uc3BsaXQoXCJAXCIpO1xuICAgIGxldCBtb2R1bGVQYXJ0cyA9IHNvdXJjZS5zcGxpdChcIi8vXCIpO1xuICAgIGlmIChpc1JlZ2lzdHJ5TW9kdWxlKG1vZHVsZVBhcnRzWzBdKSkge1xuICAgICAgY29uc3QgbmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMF0uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgcHJvdmlkZXIgPSBuYW1lUGFydHMucG9wKCk7IC8vIGxhc3QgcGFydCBpcyB0aGUgcHJvdmlkZXJcbiAgICAgIGxldCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpID8/IHNvdXJjZTtcbiAgICAgIGxldCBuYW1lc3BhY2UgPSBgJHtuYW1lUGFydHMucG9wKCl9LyR7cHJvdmlkZXJ9YDtcblxuICAgICAgaWYgKG1vZHVsZVBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3QgbW9kdWxlTmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMV0uc3BsaXQoXCIvXCIpO1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lID0gbW9kdWxlTmFtZVBhcnRzLnBvcCgpO1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lc3BhY2V9LyR7bmFtZX0vJHttb2R1bGVOYW1lUGFydHMuam9pbihcIi9cIil9YDtcbiAgICAgICAgbmFtZSA9IG1vZHVsZU5hbWUgPz8gbmFtZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgc291cmNlLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIGZxbjogc291cmNlLnJlcGxhY2UoXCIvL1wiLCBcIi9cIikucmVwbGFjZSgvXFwuL2csIFwiLVwiKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHRvUHJvY2VzcyA9IGl0ZW07IC8vIHByb2Nlc3Mgb25lIHBhcnQgYXQgYSB0aW1lXG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHByZWZpeFxuICAgIGNvbnN0IHByZWZpeE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC9eKFthLXpBLVowLTldKik6OiguKikvKTtcbiAgICBpZiAocHJlZml4TWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IHByZWZpeE1hdGNoWzJdO1xuICAgIH1cblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcHJvdG9jb2xcbiAgICBjb25zdCBwcm90b2NvbE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC9eKFthLXpBLVpdKik6XFwvXFwvKC4qKS8pO1xuICAgIGlmIChwcm90b2NvbE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBwcm90b2NvbE1hdGNoWzJdO1xuICAgIH1cblxuICAgIC8vIGFueXRoaW5nIGJlZm9yZSBsYXN0ICc6JyB3b24ndCBjb250cmlidXRlXG4gICAgY29uc3QgY29sb25QYXJ0cyA9IHRvUHJvY2Vzcy5zcGxpdChcIjpcIik7XG4gICAgdG9Qcm9jZXNzID0gY29sb25QYXJ0cy5wb3AoKSA/PyB0b1Byb2Nlc3M7XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHBvcnRcbiAgICBjb25zdCBwb3J0TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL15bXFxkXSooLiopLyk7XG4gICAgaWYgKHBvcnRNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gcG9ydE1hdGNoWzFdO1xuICAgIH1cblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgaG9zdG5hbWVcbiAgICBjb25zdCBob3N0TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL1teL10qXFwuW14vXSpcXC8oLiopLyk7XG4gICAgaWYgKGhvc3RNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gaG9zdE1hdGNoWzFdO1xuICAgIH1cblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgYXJndW1lbnRzXG4gICAgY29uc3QgYXJndW1lbnRNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvKC4qKVxcPy4qLyk7XG4gICAgaWYgKGFyZ3VtZW50TWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IGFyZ3VtZW50TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSB0eXBlc1xuICAgIHRvUHJvY2VzcyA9IHRvUHJvY2Vzcy5yZXBsYWNlKC9cXC5naXR8XFwuaGd8XFwuemlwLywgXCJcIik7XG5cbiAgICBtb2R1bGVQYXJ0cyA9IHRvUHJvY2Vzcy5zcGxpdChcIi8vXCIpO1xuICAgIGNvbnN0IG5hbWVQYXJ0cyA9IG1vZHVsZVBhcnRzWzBdLnNwbGl0KFwiL1wiKTtcbiAgICBsZXQgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKTtcbiAgICBsZXQgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNb2R1bGUgbmFtZSBzaG91bGQgYmUgcHJvcGVybHkgc2V0IGluICR7aXRlbX1gKTtcbiAgICB9XG5cbiAgICBpZiAobW9kdWxlUGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgbW9kdWxlTmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMV0uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IG1vZHVsZU5hbWVQYXJ0cy5wb3AoKTtcbiAgICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgICAgbmFtZXNwYWNlID0gYCR7bmFtZXNwYWNlfS8ke25hbWV9LyR7bW9kdWxlTmFtZVBhcnRzLmpvaW4oXCIvXCIpfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lfS8ke21vZHVsZU5hbWVQYXJ0cy5qb2luKFwiL1wiKX1gO1xuICAgICAgfVxuICAgICAgbmFtZSA9IG1vZHVsZU5hbWUgPz8gbmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIHNvdXJjZTogaXRlbSxcbiAgICAgIGZxbjogdG9Qcm9jZXNzLnJlcGxhY2UoXCIvL1wiLCBcIi9cIiksXG4gICAgICBuYW1lc3BhY2UsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50IGltcGxlbWVudHMgVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoaXRlbTogT21pdDxUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCwgXCJmcW5cIj4gfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VEZXBlbmRlbmN5Q29uc3RyYWludChpdGVtKTtcbiAgICAgIHRoaXMubmFtZSA9IHBhcnNlZC5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBwYXJzZWQuZnFuO1xuICAgICAgdGhpcy5zb3VyY2UgPSBwYXJzZWQuZnFuO1xuICAgICAgdGhpcy52ZXJzaW9uID0gcGFyc2VkLnZlcnNpb247XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IHBhcnNlZC5uYW1lc3BhY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmFtZSA9IGl0ZW0ubmFtZTtcbiAgICAgIHRoaXMuZnFuID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy52ZXJzaW9uID0gaXRlbS52ZXJzaW9uO1xuICAgICAgdGhpcy5zb3VyY2UgPSBpdGVtLnNvdXJjZTtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gaXRlbS5uYW1lc3BhY2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KFxuICAgIGl0ZW06IHN0cmluZyxcbiAgKTogVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQge1xuICAgIGNvbnN0IFtmcW4sIHZlcnNpb25dID0gaXRlbS5zcGxpdChcIkBcIik7XG4gICAgY29uc3QgbmFtZVBhcnRzID0gZnFuLnNwbGl0KFwiL1wiKTtcbiAgICBjb25zdCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IG5hbWVQYXJ0cy5wb3AoKTtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvdmlkZXIgbmFtZSBzaG91bGQgYmUgcHJvcGVybHkgc2V0IGluICR7aXRlbX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIHNvdXJjZTogZnFuLFxuICAgICAgLy8gVGVycmFmb3JtIGRvZXNuJ3Qgc3VwcG9ydCAqLCBpbnN0ZWFkIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAgICB2ZXJzaW9uOiB2ZXJzaW9uID09PSBcIipcIiA/IHVuZGVmaW5lZCA6IHZlcnNpb24sXG4gICAgICBmcW4sXG4gICAgICBuYW1lc3BhY2UsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZyB7XG4gIHJlYWRvbmx5IGFwcD86IHN0cmluZztcbiAgcmVhZG9ubHkgbGFuZ3VhZ2U/OiBMYW5ndWFnZTtcbiAgcmVhZG9ubHkgb3V0cHV0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZGVNYWtlck91dHB1dDogc3RyaW5nO1xuICB0ZXJyYWZvcm1Qcm92aWRlcnM/OiBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnRbXTtcbiAgdGVycmFmb3JtTW9kdWxlcz86IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnRbXTtcbiAgcmVhZG9ubHkgY29udGV4dD86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbmZpZyA9IChjb25maWdKU09OPzogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGNvbmZpZzogQ29uZmlnID0ge1xuICAgIC4uLkNPTkZJR19ERUZBVUxUUyxcbiAgICAuLi5KU09OLnBhcnNlKGNvbmZpZ0pTT04gfHwgXCJ7fVwiKSxcbiAgfTtcblxuICBpZiAoaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzKSkge1xuICAgIGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzID0gY29uZmlnLnRlcnJhZm9ybU1vZHVsZXM/Lm1hcChcbiAgICAgIChtb2QpID0+IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KG1vZCksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycykpIHtcbiAgICBjb25maWcudGVycmFmb3JtUHJvdmlkZXJzID0gY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycz8ubWFwKFxuICAgICAgKHByb3ZpZGVyKSA9PiBuZXcgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KHByb3ZpZGVyKSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGNvbmZpZy5jb250ZXh0KSB7XG4gICAgZW52W0NPTlRFWFRfRU5WXSA9IEpTT04uc3RyaW5naWZ5KGNvbmZpZy5jb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZENvbmZpZ1N5bmMoXG4gIGNvbmZpZ0ZpbGUgPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgQ09ORklHX0ZJTEUpLFxuKTogQ29uZmlnIHtcbiAgbGV0IGNvbmZpZ0ZpbGVDb250ZW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgaWYgKGZzLmV4aXN0c1N5bmMoY29uZmlnRmlsZSkpIHtcbiAgICBjb25maWdGaWxlQ29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhjb25maWdGaWxlKS50b1N0cmluZygpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlQ29uZmlnKGNvbmZpZ0ZpbGVDb250ZW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZENoZWNrQ29kZU1ha2VyT3V0cHV0KGNvbmZpZzogQ29uZmlnKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzKSB8fCBpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycylcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ1RpbWVzcGFuKG1lc3NhZ2U6IHN0cmluZykge1xuICBsb2dnZXIuZGVidWcoYFN0YXJ0IHRpbWVyIGZvciAke21lc3NhZ2V9Li4uYCk7XG4gIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcblxuICByZXR1cm4gZnVuY3Rpb24gbG9nVGltZXNwYW5FbmQoKSB7XG4gICAgY29uc3QgZW5kID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IGVuZCAtIHN0YXJ0O1xuICAgIGxvZ2dlci5kZWJ1ZyhgJHttZXNzYWdlfSB0b29rICR7ZHVyYXRpb259bXNgKTtcbiAgfTtcbn1cbiJdfQ==
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDZDQUErQjtBQUMvQiwyQ0FBNkI7QUFDN0IsdUNBQW1DO0FBQ25DLHlEQUFzRDtBQUN0RCxxQ0FBOEI7QUFDOUIseUNBQXlDO0FBRXpDLElBQVksUUFNWDtBQU5ELFdBQVksUUFBUTtJQUNsQixxQ0FBeUIsQ0FBQTtJQUN6Qiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQix5QkFBYSxDQUFBO0lBQ2IscUJBQVMsQ0FBQTtBQUNYLENBQUMsRUFOVyxRQUFRLHdCQUFSLFFBQVEsUUFNbkI7QUFFWSxRQUFBLFNBQVMsR0FBRztJQUN2QixRQUFRLENBQUMsVUFBVTtJQUNuQixRQUFRLENBQUMsTUFBTTtJQUNmLFFBQVEsQ0FBQyxJQUFJO0lBQ2IsUUFBUSxDQUFDLE1BQU07SUFDZixRQUFRLENBQUMsRUFBRTtDQUNaLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQztBQUV6QyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7QUF3QnBCLFFBQUEsZUFBZSxHQUFHO0lBQzdCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0NBQ3hCLENBQUM7QUFFRixTQUFTLFNBQVMsQ0FBQyxLQUF3QjtJQUN6QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQVNELFNBQVMsYUFBYSxDQUFDLE1BQWM7SUFDbkMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxNQUFjO0lBQzFDLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFL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LFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzlCLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELE9BQU8sSUFBQSxtQkFBVyxFQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDeEMsQ0FBQztBQVZELHdDQVVDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsTUFBYztJQUN2RCxPQUFPLENBQ0wsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FDM0UsQ0FBQztBQUNKLENBQUM7QUFKRCxnRUFJQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxPQUFlO0lBQ3pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUV6QixPQUFPLFNBQVMsY0FBYztRQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUM3QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sU0FBUyxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQztBQUNKLENBQUM7QUFURCxrQ0FTQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBpc1JlZ2lzdHJ5TW9kdWxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLW1vZHVsZVwiO1xuaW1wb3J0IHsgZW52IH0gZnJvbSBcInByb2Nlc3NcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSB9IGZyb20gXCJjb2RlbWFrZXJcIjtcblxuZXhwb3J0IGVudW0gTGFuZ3VhZ2Uge1xuICBUWVBFU0NSSVBUID0gXCJ0eXBlc2NyaXB0XCIsXG4gIFBZVEhPTiA9IFwicHl0aG9uXCIsXG4gIENTSEFSUCA9IFwiY3NoYXJwXCIsXG4gIEpBVkEgPSBcImphdmFcIixcbiAgR08gPSBcImdvXCIsXG59XG5cbmV4cG9ydCBjb25zdCBMQU5HVUFHRVMgPSBbXG4gIExhbmd1YWdlLlRZUEVTQ1JJUFQsXG4gIExhbmd1YWdlLlBZVEhPTixcbiAgTGFuZ3VhZ2UuSkFWQSxcbiAgTGFuZ3VhZ2UuQ1NIQVJQLFxuICBMYW5ndWFnZS5HTyxcbl07XG5cbmNvbnN0IENPTlRFWFRfRU5WID0gXCJDREtURl9DT05URVhUX0pTT05cIjtcblxuY29uc3QgQ09ORklHX0ZJTEUgPSBcImNka3RmLmpzb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NyaXB0TGFuZ3VhZ2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN1ZmZpeCB0byBhcHBlbmQgdG8gcmVsYXRpdmUgaW1wb3J0cy5cbiAgICogRGVmYXVsdHMgdG8gXCJcIiAoQ29tbW9uSlMpLlxuICAgKiBVc2UgXCIuanNcIiBvciBcIi50c1wiIGZvciBFU00tY29tcGF0aWJsZSBpbXBvcnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0RXh0ZW5zaW9uPzogc3RyaW5nO1xufVxuXG4vLyBGb3Igbm93LCB0aGVzZSBsYW5ndWFnZXMgaGF2ZSBubyBsYW5ndWFnZS1zcGVjaWZpYyBvcHRpb25zLlxuZXhwb3J0IHR5cGUgUHl0aG9uTGFuZ3VhZ2VPcHRpb25zID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuZXhwb3J0IHR5cGUgQ1NoYXJwTGFuZ3VhZ2VPcHRpb25zID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuZXhwb3J0IHR5cGUgSmF2YUxhbmd1YWdlT3B0aW9ucyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbmV4cG9ydCB0eXBlIEdvTGFuZ3VhZ2VPcHRpb25zID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgdHlwZSBMYW5ndWFnZU9wdGlvbnMgPVxuICB8IFR5cGVTY3JpcHRMYW5ndWFnZU9wdGlvbnNcbiAgfCBQeXRob25MYW5ndWFnZU9wdGlvbnNcbiAgfCBDU2hhcnBMYW5ndWFnZU9wdGlvbnNcbiAgfCBKYXZhTGFuZ3VhZ2VPcHRpb25zXG4gIHwgR29MYW5ndWFnZU9wdGlvbnM7XG5cbmV4cG9ydCBjb25zdCBDT05GSUdfREVGQVVMVFMgPSB7XG4gIG91dHB1dDogXCJjZGt0Zi5vdXRcIixcbiAgY29kZU1ha2VyT3V0cHV0OiBcIi5nZW5cIixcbn07XG5cbmZ1bmN0aW9uIGlzUHJlc2VudChpbnB1dDogYW55W10gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaW5wdXQpICYmIGlucHV0Lmxlbmd0aCA+IDA7XG59XG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxNYXRjaChzb3VyY2U6IHN0cmluZyk6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHtcbiAgcmV0dXJuIHNvdXJjZS5tYXRjaCgvXihcXC5cXC98XFwuXFwuXFwvfFxcLlxcXFxcXFxcfFxcLlxcLlxcXFxcXFxcKSguKikvKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxNb2R1bGUoc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldExvY2FsTWF0Y2goc291cmNlKSAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGxvY2FsU291cmNlQWJzb2x1dGVQYXRoPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGl0ZW06IFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoaXRlbSk7XG4gICAgICB0aGlzLm5hbWUgPSBwYXJzZWQubmFtZTtcbiAgICAgIHRoaXMuc291cmNlID0gcGFyc2VkLnNvdXJjZTtcbiAgICAgIHRoaXMuZnFuID0gcGFyc2VkLmZxbjtcbiAgICAgIHRoaXMudmVyc2lvbiA9IHBhcnNlZC52ZXJzaW9uO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBwYXJzZWQubmFtZXNwYWNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLnZlcnNpb24gPSBpdGVtLnZlcnNpb247XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IGl0ZW0ubmFtZXNwYWNlO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsTWF0Y2ggPSBnZXRMb2NhbE1hdGNoKHRoaXMuc291cmNlKTtcbiAgICBpZiAobG9jYWxNYXRjaCkge1xuICAgICAgdGhpcy5sb2NhbFNvdXJjZUFic29sdXRlUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCB0aGlzLnNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjbGFzc05hbWUoKSB7XG4gICAgcmV0dXJuIHRvUGFzY2FsQ2FzZSh0aGlzLm5hbWUucmVwbGFjZSgvWy0vLl0vZywgXCJfXCIpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZXNwYWNlID8gYCR7dGhpcy5uYW1lc3BhY2V9LyR7dGhpcy5uYW1lfWAgOiB0aGlzLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoXG4gICAgaXRlbTogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gICAgY29uc3QgbG9jYWxNYXRjaCA9IGdldExvY2FsTWF0Y2goaXRlbSk7XG4gICAgaWYgKGxvY2FsTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGZxbiA9IGxvY2FsTWF0Y2hbMl07XG4gICAgICBjb25zdCBuYW1lUGFydHMgPSBmcW4uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKSA/PyBmcW47XG4gICAgICBjb25zdCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGZxbixcbiAgICAgICAgc291cmNlOiBpdGVtLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IFtzb3VyY2UsIHZlcnNpb25dID0gaXRlbS5zcGxpdChcIkBcIik7XG4gICAgbGV0IG1vZHVsZVBhcnRzID0gc291cmNlLnNwbGl0KFwiLy9cIik7XG4gICAgaWYgKGlzUmVnaXN0cnlNb2R1bGUobW9kdWxlUGFydHNbMF0pKSB7XG4gICAgICBjb25zdCBuYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1swXS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBwcm92aWRlciA9IG5hbWVQYXJ0cy5wb3AoKTsgLy8gbGFzdCBwYXJ0IGlzIHRoZSBwcm92aWRlclxuICAgICAgbGV0IG5hbWUgPSBuYW1lUGFydHMucG9wKCkgPz8gc291cmNlO1xuICAgICAgbGV0IG5hbWVzcGFjZSA9IGAke25hbWVQYXJ0cy5wb3AoKX0vJHtwcm92aWRlcn1gO1xuXG4gICAgICBpZiAobW9kdWxlUGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1sxXS5zcGxpdChcIi9cIik7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lUGFydHMucG9wKCk7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWVzcGFjZX0vJHtuYW1lfS8ke21vZHVsZU5hbWVQYXJ0cy5qb2luKFwiL1wiKX1gO1xuICAgICAgICBuYW1lID0gbW9kdWxlTmFtZSA/PyBuYW1lO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHZlcnNpb24sXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgZnFuOiBzb3VyY2UucmVwbGFjZShcIi8vXCIsIFwiL1wiKS5yZXBsYWNlKC9cXC4vZywgXCItXCIpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgdG9Qcm9jZXNzID0gaXRlbTsgLy8gcHJvY2VzcyBvbmUgcGFydCBhdCBhIHRpbWVcblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcHJlZml4XG4gICAgY29uc3QgcHJlZml4TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL14oW2EtekEtWjAtOV0qKTo6KC4qKS8pO1xuICAgIGlmIChwcmVmaXhNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gcHJlZml4TWF0Y2hbMl07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBwcm90b2NvbFxuICAgIGNvbnN0IHByb3RvY29sTWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL14oW2EtekEtWl0qKTpcXC9cXC8oLiopLyk7XG4gICAgaWYgKHByb3RvY29sTWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IHByb3RvY29sTWF0Y2hbMl07XG4gICAgfVxuXG4gICAgLy8gYW55dGhpbmcgYmVmb3JlIGxhc3QgJzonIHdvbid0IGNvbnRyaWJ1dGVcbiAgICBjb25zdCBjb2xvblBhcnRzID0gdG9Qcm9jZXNzLnNwbGl0KFwiOlwiKTtcbiAgICB0b1Byb2Nlc3MgPSBjb2xvblBhcnRzLnBvcCgpID8/IHRvUHJvY2VzcztcblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcG9ydFxuICAgIGNvbnN0IHBvcnRNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvXltcXGRdKiguKikvKTtcbiAgICBpZiAocG9ydE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBwb3J0TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBob3N0bmFtZVxuICAgIGNvbnN0IGhvc3RNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvW14vXSpcXC5bXi9dKlxcLyguKikvKTtcbiAgICBpZiAoaG9zdE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBob3N0TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBhcmd1bWVudHNcbiAgICBjb25zdCBhcmd1bWVudE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC8oLiopXFw/LiovKTtcbiAgICBpZiAoYXJndW1lbnRNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gYXJndW1lbnRNYXRjaFsxXTtcbiAgICB9XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHR5cGVzXG4gICAgdG9Qcm9jZXNzID0gdG9Qcm9jZXNzLnJlcGxhY2UoL1xcLmdpdHxcXC5oZ3xcXC56aXAvLCBcIlwiKTtcblxuICAgIG1vZHVsZVBhcnRzID0gdG9Qcm9jZXNzLnNwbGl0KFwiLy9cIik7XG4gICAgY29uc3QgbmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMF0uc3BsaXQoXCIvXCIpO1xuICAgIGxldCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGxldCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBuYW1lIHNob3VsZCBiZSBwcm9wZXJseSBzZXQgaW4gJHtpdGVtfWApO1xuICAgIH1cblxuICAgIGlmIChtb2R1bGVQYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1sxXS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lID0gbW9kdWxlTmFtZVBhcnRzLnBvcCgpO1xuICAgICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lc3BhY2V9LyR7bmFtZX0vJHttb2R1bGVOYW1lUGFydHMuam9pbihcIi9cIil9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWV9LyR7bW9kdWxlTmFtZVBhcnRzLmpvaW4oXCIvXCIpfWA7XG4gICAgICB9XG4gICAgICBuYW1lID0gbW9kdWxlTmFtZSA/PyBuYW1lO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgc291cmNlOiBpdGVtLFxuICAgICAgZnFuOiB0b1Byb2Nlc3MucmVwbGFjZShcIi8vXCIsIFwiL1wiKSxcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihpdGVtOiBPbWl0PFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50LCBcImZxblwiPiB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KGl0ZW0pO1xuICAgICAgdGhpcy5uYW1lID0gcGFyc2VkLm5hbWU7XG4gICAgICB0aGlzLmZxbiA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnNvdXJjZSA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnZlcnNpb24gPSBwYXJzZWQudmVyc2lvbjtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gcGFyc2VkLm5hbWVzcGFjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLnZlcnNpb24gPSBpdGVtLnZlcnNpb247XG4gICAgICB0aGlzLnNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBpdGVtLm5hbWVzcGFjZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoXG4gICAgaXRlbTogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gICAgY29uc3QgW2ZxbiwgdmVyc2lvbl0gPSBpdGVtLnNwbGl0KFwiQFwiKTtcbiAgICBjb25zdCBuYW1lUGFydHMgPSBmcW4uc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IG5hbWUgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm92aWRlciBuYW1lIHNob3VsZCBiZSBwcm9wZXJseSBzZXQgaW4gJHtpdGVtfWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgc291cmNlOiBmcW4sXG4gICAgICAvLyBUZXJyYWZvcm0gZG9lc24ndCBzdXBwb3J0ICosIGluc3RlYWQgbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICAgIHZlcnNpb246IHZlcnNpb24gPT09IFwiKlwiID8gdW5kZWZpbmVkIDogdmVyc2lvbixcbiAgICAgIGZxbixcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG59XG5cbmludGVyZmFjZSBDb25maWdCYXNlIHtcbiAgcmVhZG9ubHkgYXBwPzogc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY29kZU1ha2VyT3V0cHV0OiBzdHJpbmc7XG4gIHRlcnJhZm9ybVByb3ZpZGVycz86IFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludFtdO1xuICB0ZXJyYWZvcm1Nb2R1bGVzPzogVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludFtdO1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBMYW5ndWFnZS1zcGVjaWZpYyBjb2RlIGdlbmVyYXRpb24gb3B0aW9ucywgZGlzY3JpbWluYXRlZCBieSBgbGFuZ3VhZ2VgLlxuICogT25seSBUeXBlU2NyaXB0IGN1cnJlbnRseSBoYXMgdHVuYWJsZSBvcHRpb25zOyBhbGwgb3RoZXIgbGFuZ3VhZ2VzXG4gKiBhY2NlcHQgYW4gZW1wdHkgYGxhbmd1YWdlT3B0aW9uc2Agb2JqZWN0IGFzIGEgZnV0dXJlIGV4dGVuc2lvbiBwb2ludC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0gQ29uZmlnQmFzZSAmXG4gIChcbiAgICB8IHtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2U/OiBMYW5ndWFnZS5UWVBFU0NSSVBUO1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZU9wdGlvbnM/OiBUeXBlU2NyaXB0TGFuZ3VhZ2VPcHRpb25zO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZTogTGFuZ3VhZ2UuUFlUSE9OO1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZU9wdGlvbnM/OiBQeXRob25MYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlOiBMYW5ndWFnZS5DU0hBUlA7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlT3B0aW9ucz86IENTaGFycExhbmd1YWdlT3B0aW9ucztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2U6IExhbmd1YWdlLkpBVkE7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlT3B0aW9ucz86IEphdmFMYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlOiBMYW5ndWFnZS5HTztcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2VPcHRpb25zPzogR29MYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbmZpZyA9IChjb25maWdKU09OPzogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGNvbmZpZzogQ29uZmlnID0ge1xuICAgIC4uLkNPTkZJR19ERUZBVUxUUyxcbiAgICAuLi5KU09OLnBhcnNlKGNvbmZpZ0pTT04gfHwgXCJ7fVwiKSxcbiAgfTtcblxuICBpZiAoaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzKSkge1xuICAgIGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzID0gY29uZmlnLnRlcnJhZm9ybU1vZHVsZXM/Lm1hcChcbiAgICAgIChtb2QpID0+IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KG1vZCksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycykpIHtcbiAgICBjb25maWcudGVycmFmb3JtUHJvdmlkZXJzID0gY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycz8ubWFwKFxuICAgICAgKHByb3ZpZGVyKSA9PiBuZXcgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KHByb3ZpZGVyKSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGNvbmZpZy5jb250ZXh0KSB7XG4gICAgZW52W0NPTlRFWFRfRU5WXSA9IEpTT04uc3RyaW5naWZ5KGNvbmZpZy5jb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZENvbmZpZ1N5bmMoXG4gIGNvbmZpZ0ZpbGUgPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgQ09ORklHX0ZJTEUpLFxuKTogQ29uZmlnIHtcbiAgbGV0IGNvbmZpZ0ZpbGVDb250ZW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgaWYgKGZzLmV4aXN0c1N5bmMoY29uZmlnRmlsZSkpIHtcbiAgICBjb25maWdGaWxlQ29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhjb25maWdGaWxlKS50b1N0cmluZygpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlQ29uZmlnKGNvbmZpZ0ZpbGVDb250ZW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZENoZWNrQ29kZU1ha2VyT3V0cHV0KGNvbmZpZzogQ29uZmlnKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzKSB8fCBpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycylcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ1RpbWVzcGFuKG1lc3NhZ2U6IHN0cmluZykge1xuICBsb2dnZXIuZGVidWcoYFN0YXJ0IHRpbWVyIGZvciAke21lc3NhZ2V9Li4uYCk7XG4gIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcblxuICByZXR1cm4gZnVuY3Rpb24gbG9nVGltZXNwYW5FbmQoKSB7XG4gICAgY29uc3QgZW5kID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IGVuZCAtIHN0YXJ0O1xuICAgIGxvZ2dlci5kZWJ1ZyhgJHttZXNzYWdlfSB0b29rICR7ZHVyYXRpb259bXNgKTtcbiAgfTtcbn1cbiJdfQ==
|
package/build/gradle.js
CHANGED
|
@@ -66,7 +66,7 @@ function getDependencyInformationFromLine(line) {
|
|
|
66
66
|
const packageNameRegex = /^\s*([^:]+):([^:]+)(?::([^\s]+))?/;
|
|
67
67
|
const matches = line.match(packageNameRegex);
|
|
68
68
|
if (!matches) {
|
|
69
|
-
logging_1.logger.debug("Unexpected format for gradle build. Please file an issue at https://
|
|
69
|
+
logging_1.logger.debug("Unexpected format for gradle build. Please file an issue at https://github.com/open-constructs/cdk-terrain/issues/new?assignees=&labels=bug%2Cnew&template=bug-report.yml&title=");
|
|
70
70
|
return undefined;
|
|
71
71
|
}
|
|
72
72
|
if (matches[3] === undefined) {
|
|
@@ -157,4 +157,4 @@ async function getGradlePackageVersionFromBuild(packageName) {
|
|
|
157
157
|
return undefined;
|
|
158
158
|
}
|
|
159
159
|
exports.getGradlePackageVersionFromBuild = getGradlePackageVersionFromBuild;
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dyYWRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7QUFFSCxnREFBd0I7QUFDeEIsd0RBQTBCO0FBQzFCLHVDQUFtQztBQUNuQyxpQ0FBOEI7QUFFOUIsU0FBZ0IsZUFBZSxDQUFDLGdCQUF3QjtJQUN0RCxNQUFNLGVBQWUsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRXBFLElBQUksQ0FBQztRQUNILGtCQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxrQkFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsa0JBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsV0FBTSxDQUFDO1FBQ1AsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQVZELDBDQVVDO0FBRU0sS0FBSyxVQUFVLHFCQUFxQjtJQUN6QyxJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2pFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLGdCQUFNLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXpD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QyxJQUFJLENBQUMsQ0FBQztJQUM3RCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsT0FBTztZQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtTQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxNQUFNLENBQzlDLGFBQWEsV0FBVyxtQkFBbUIsRUFDM0MsR0FBRyxDQUNKLENBQUM7SUFFRixNQUFNLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0QsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE9BQU87WUFDTCxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQXJERCw0RUFxREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcmFkbGVQcm9qZWN0KHdvcmtpbmdEaXJlY3Rvcnk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBidWlsZEdyYWRsZVBhdGggPSBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgXCJidWlsZC5ncmFkbGVcIik7XG5cbiAgdHJ5IHtcbiAgICBmcy5hY2Nlc3NTeW5jKGJ1aWxkR3JhZGxlUGF0aCwgZnMuY29uc3RhbnRzLlJfT0sgfCBmcy5jb25zdGFudHMuV19PSyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIGxvZ2dlci5kZWJ1ZyhgTm8gYnVpbGQuZ3JhZGxlIGZvdW5kIGF0ICR7YnVpbGRHcmFkbGVQYXRofWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0R3JhZGxlRGVwZW5kZW5jaWVzKCkge1xuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJncmFkbGVcIiwgW1wiZGVwZW5kZW5jaWVzXCIsIFwiLS1jb25zb2xlPXBsYWluXCJdLCB7XG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdncmFkbGUgZGVwZW5kZW5jaWVzJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBsaW5lcyA9IG91dHB1dC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKTtcblxuICAvLyBmaW5kIHRoZSBpbXBsZW1lbnRhdGlvbiBzZWN0aW9uXG4gIGNvbnN0IGltcGxlbWVudGF0aW9uU2VjdGlvbiA9IGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT5cbiAgICBsaW5lLmluY2x1ZGVzKFwiaW1wbGVtZW50YXRpb24gLSBcIiksXG4gICk7XG4gIGlmIChpbXBsZW1lbnRhdGlvblNlY3Rpb24gPT09IC0xKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIGltcGxlbWVudGF0aW9uIHNlY3Rpb24gaW4gb3V0cHV0IG9mICdncmFkbGUgZGVwZW5kZW5jaWVzJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBlbXB0eUxpbmVSZWdleCA9IC9eXFxzKiQvO1xuICBjb25zdCBpbXBsZW1lbnRhdGlvblNlY3Rpb25MaW5lcyA9IGxpbmVzLnNsaWNlKGltcGxlbWVudGF0aW9uU2VjdGlvbiArIDEpO1xuICBjb25zdCBzZWN0aW9uRW5kID0gaW1wbGVtZW50YXRpb25TZWN0aW9uTGluZXMuZmluZEluZGV4KChsaW5lKSA9PlxuICAgIGVtcHR5TGluZVJlZ2V4LnRlc3QobGluZSksXG4gICk7XG4gIGNvbnN0IGltcGxlbWVudGF0aW9uTGluZXMgPSBpbXBsZW1lbnRhdGlvblNlY3Rpb25MaW5lcy5zbGljZSgwLCBzZWN0aW9uRW5kKTtcblxuICAvLyBmaW5kIHRoZSBhcGkgc2VjdGlvblxuICBjb25zdCBhcGlTZWN0aW9uID0gbGluZXMuZmluZEluZGV4KChsaW5lKSA9PiBsaW5lLmluY2x1ZGVzKFwiYXBpIC0gXCIpKTtcbiAgaWYgKGFwaVNlY3Rpb24gPT09IC0xKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIGFwaSBzZWN0aW9uIGluIG91dHB1dCBvZiAnZ3JhZGxlIGRlcGVuZGVuY2llcyc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgYXBpU2VjdGlvbkxpbmVzID0gbGluZXMuc2xpY2UoYXBpU2VjdGlvbiArIDEpO1xuICBjb25zdCBhcGlTZWN0aW9uRW5kID0gYXBpU2VjdGlvbkxpbmVzLmZpbmRJbmRleCgobGluZSkgPT5cbiAgICBlbXB0eUxpbmVSZWdleC50ZXN0KGxpbmUpLFxuICApO1xuXG4gIGNvbnN0IGFwaUxpbmVzID0gYXBpU2VjdGlvbkxpbmVzLnNsaWNlKDAsIGFwaVNlY3Rpb25FbmQpO1xuXG4gIGNvbnN0IHByZWZpeFJlZ2V4ID0gL15cXHMqWytcXFxcLV0rXFxzKi87XG4gIGNvbnN0IHN1ZmZpeFJlZ2V4ID0gL1xccytcXChbbmMqXVxcKVxccyokLztcblxuICByZXR1cm4gWy4uLmltcGxlbWVudGF0aW9uTGluZXMsIC4uLmFwaUxpbmVzXVxuICAgIC5maWx0ZXIoKGxpbmUpID0+IGxpbmUgIT09IFwiTm8gZGVwZW5kZW5jaWVzXCIpXG4gICAgLm1hcCgobGluZSkgPT4gbGluZS5yZXBsYWNlKHByZWZpeFJlZ2V4LCBcIlwiKS5yZXBsYWNlKHN1ZmZpeFJlZ2V4LCBcIlwiKSk7XG59XG5cbmV4cG9ydCB0eXBlIERlcGVuZGVuY3lJbmZvcm1hdGlvbiA9IHtcbiAgZ3JvdXA6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlcGVuZGVuY3lJbmZvcm1hdGlvbkZyb21MaW5lKFxuICBsaW5lOiBzdHJpbmcsXG4pOiBEZXBlbmRlbmN5SW5mb3JtYXRpb24gfCB1bmRlZmluZWQge1xuICBjb25zdCBwYWNrYWdlTmFtZVJlZ2V4ID0gL15cXHMqKFteOl0rKTooW146XSspKD86OihbXlxcc10rKSk/LztcbiAgY29uc3QgbWF0Y2hlcyA9IGxpbmUubWF0Y2gocGFja2FnZU5hbWVSZWdleCk7XG4gIGlmICghbWF0Y2hlcykge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIFwiVW5leHBlY3RlZCBmb3JtYXQgZm9yIGdyYWRsZSBidWlsZC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUgYXQgaHR0cHM6Ly9jZGsudGYvYnVnXCIsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKG1hdGNoZXNbM10gPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7XG4gICAgICBncm91cDogXCJcIixcbiAgICAgIG5hbWU6IG1hdGNoZXNbMV0sXG4gICAgICB2ZXJzaW9uOiBtYXRjaGVzWzJdLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGdyb3VwOiBtYXRjaGVzWzFdLFxuICAgIG5hbWU6IG1hdGNoZXNbMl0sXG4gICAgdmVyc2lvbjogbWF0Y2hlc1szXSxcbiAgfTtcbn1cblxuLypcbiAqIEV4YW1wbGUgb3V0cHV0OlxuICBpbXBsZW1lbnRhdGlvbiAtIEltcGxlbWVudGF0aW9uIGRlcGVuZGVuY2llcyBmb3IgdGhlICdtYWluJyBmZWF0dXJlLiAobilcbiAgKy0tLSBjb20uaGFzaGljb3JwOmNka3RmOjAuMTguMCAobilcbiAgKy0tLSBpby5jZGt0bjpjZGt0bjowLjE4LjAgKG4pXG4gICstLS0gc29mdHdhcmUuY29uc3RydWN0czpjb25zdHJ1Y3RzOjEwLjAuMjUgKG4pXG4gICstLS0ganVuaXQ6anVuaXQ6NC4xMy4yIChuKVxuICBcXC0tLSBvcmcuanVuaXQuanVwaXRlcjpqdW5pdC1qdXBpdGVyOjUuOC4wIChuKVxuKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRHcmFkbGVQYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGpzaWk6IFwianNpaS1ydW50aW1lXCIsXG4gIH07XG4gIGNvbnN0IGdyYWRsZVBhY2thZ2VOYW1lID0gdHJhbnNsYXRpb25NYXBbcGFja2FnZU5hbWVdIHx8IHBhY2thZ2VOYW1lO1xuICBsb2dnZXIuZGVidWcoXG4gICAgXCJSdW5uaW5nICdncmFkbGUgZGVwZW5kZW5jaWVzJyB0byBmaW5kIHBhY2thZ2UgdmVyc2lvblwiLFxuICAgIGdyYWRsZVBhY2thZ2VOYW1lLFxuICApO1xuXG4gIGNvbnN0IGxpbmVzID0gYXdhaXQgZ2V0R3JhZGxlRGVwZW5kZW5jaWVzKCk7XG4gIGlmICghbGluZXMgfHwgbGluZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIGxvb3AgdGhyb3VnaCB0aGUgc3Vic2VxdWVudCBsaW5lcyB0byBmaW5kIHRoZSBvbmUgc3RhcnRpbmcgd2l0aCBwYWNrYWdlIG5hbWVcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgaWYgKGxpbmUuaW5jbHVkZXMoYDoke2dyYWRsZVBhY2thZ2VOYW1lfTpgKSkge1xuICAgICAgY29uc3QgZGVwID0gZ2V0RGVwZW5kZW5jeUluZm9ybWF0aW9uRnJvbUxpbmUobGluZSk7XG4gICAgICBpZiAoZGVwKSB7XG4gICAgICAgIHJldHVybiBkZXAudmVyc2lvbjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRGlkbid0IGZpbmQgdGhlIHJpZ2h0IGZpbGUsIHJlYWQgdGhlIGJ1aWxkLmdyYWRsZSBmaWxlIGFzIGEgYmFja3VwXG4gIGNvbnN0IGJ1aWxkVmVyc2lvbiA9IGF3YWl0IGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uRnJvbUJ1aWxkKHBhY2thZ2VOYW1lKTtcbiAgaWYgKGJ1aWxkVmVyc2lvbikge1xuICAgIHJldHVybiBidWlsZFZlcnNpb24udmVyc2lvbjtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRHcmFkbGVQYWNrYWdlVmVyc2lvbkZyb21CdWlsZChwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IGJ1aWxkR3JhZGxlUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcImJ1aWxkLmdyYWRsZVwiKTtcbiAgY29uc3QgYnVpbGRHcmFkbGVDb250ZW50cyA9IGF3YWl0IGZzLnJlYWRGaWxlKGJ1aWxkR3JhZGxlUGF0aCwgXCJ1dGYtOFwiKTtcbiAgY29uc3QgYnVpbGRMaW5lcyA9IGJ1aWxkR3JhZGxlQ29udGVudHMuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLyk7XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzUmVnZXggPSAvXlxccypkZXBlbmRlbmNpZXNcXHMqXFx7L2k7XG4gIGNvbnN0IGRlcGVuZGVuY2llc1N0YXJ0ID0gYnVpbGRMaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+XG4gICAgZGVwZW5kZW5jaWVzUmVnZXgudGVzdChsaW5lKSxcbiAgKTtcblxuICBpZiAoZGVwZW5kZW5jaWVzU3RhcnQgPT09IC0xKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gZmluZCBkZXBlbmRlbmNpZXMgc2VjdGlvbiBpbiBvdXRwdXQgYnVpbGQuZ3JhZGxlYCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGZvdW5kSW5kZXggPSBidWlsZExpbmVzLmZpbmRJbmRleCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhwYWNrYWdlTmFtZSkpO1xuICBpZiAoZm91bmRJbmRleCA9PT0gLTEpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgcGFja2FnZSAke3BhY2thZ2VOYW1lfSBpbiBvdXRwdXQgYnVpbGQuZ3JhZGxlYCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgbGluZSA9IGJ1aWxkTGluZXNbZm91bmRJbmRleF07XG5cbiAgY29uc3QgY29sb25TZXBhcmF0ZWRQYWNrYWdlTmFtZVJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICBgKFteOl0rKToke3BhY2thZ2VOYW1lfSg/OjooW15cXFxcc10rKSk/YCxcbiAgICBcImlcIixcbiAgKTtcblxuICBjb25zdCBjb2xvbk1hdGNoID0gY29sb25TZXBhcmF0ZWRQYWNrYWdlTmFtZVJlZ2V4LmV4ZWMobGluZSk7XG4gIGlmIChjb2xvbk1hdGNoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdyb3VwOiBjb2xvbk1hdGNoWzFdLFxuICAgICAgbmFtZTogcGFja2FnZU5hbWUsXG4gICAgICB2ZXJzaW9uOiBjb2xvbk1hdGNoWzJdIHx8IFwiXCIsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGZpbGVTZXBhcmF0ZWRQYWNrYWdlTmFtZVJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICBgamF2YS8oLiopLyR7cGFja2FnZU5hbWV9LyhbXi9dKykvLipcXFxcLmphcmAsXG4gICAgXCJpXCIsXG4gICk7XG5cbiAgY29uc3QgZmlsZU1hdGNoID0gZmlsZVNlcGFyYXRlZFBhY2thZ2VOYW1lUmVnZXguZXhlYyhsaW5lKTtcbiAgaWYgKGZpbGVNYXRjaCkge1xuICAgIHJldHVybiB7XG4gICAgICBncm91cDogZmlsZU1hdGNoWzFdLnJlcGxhY2UoL1xcLy9nLCBcIi5cIiksXG4gICAgICBuYW1lOiBwYWNrYWdlTmFtZSxcbiAgICAgIHZlcnNpb246IGZpbGVNYXRjaFsyXSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dyYWRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7QUFFSCxnREFBd0I7QUFDeEIsd0RBQTBCO0FBQzFCLHVDQUFtQztBQUNuQyxpQ0FBOEI7QUFFOUIsU0FBZ0IsZUFBZSxDQUFDLGdCQUF3QjtJQUN0RCxNQUFNLGVBQWUsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRXBFLElBQUksQ0FBQztRQUNILGtCQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxrQkFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsa0JBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsV0FBTSxDQUFDO1FBQ1AsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQVZELDBDQVVDO0FBRU0sS0FBSyxVQUFVLHFCQUFxQjtJQUN6QyxJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2pFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLGdCQUFNLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXpD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QyxJQUFJLENBQUMsQ0FBQztJQUM3RCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsT0FBTztZQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtTQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxNQUFNLENBQzlDLGFBQWEsV0FBVyxtQkFBbUIsRUFDM0MsR0FBRyxDQUNKLENBQUM7SUFFRixNQUFNLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0QsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE9BQU87WUFDTCxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQXJERCw0RUFxREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcmFkbGVQcm9qZWN0KHdvcmtpbmdEaXJlY3Rvcnk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBidWlsZEdyYWRsZVBhdGggPSBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgXCJidWlsZC5ncmFkbGVcIik7XG5cbiAgdHJ5IHtcbiAgICBmcy5hY2Nlc3NTeW5jKGJ1aWxkR3JhZGxlUGF0aCwgZnMuY29uc3RhbnRzLlJfT0sgfCBmcy5jb25zdGFudHMuV19PSyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIGxvZ2dlci5kZWJ1ZyhgTm8gYnVpbGQuZ3JhZGxlIGZvdW5kIGF0ICR7YnVpbGRHcmFkbGVQYXRofWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0R3JhZGxlRGVwZW5kZW5jaWVzKCkge1xuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJncmFkbGVcIiwgW1wiZGVwZW5kZW5jaWVzXCIsIFwiLS1jb25zb2xlPXBsYWluXCJdLCB7XG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdncmFkbGUgZGVwZW5kZW5jaWVzJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBsaW5lcyA9IG91dHB1dC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKTtcblxuICAvLyBmaW5kIHRoZSBpbXBsZW1lbnRhdGlvbiBzZWN0aW9uXG4gIGNvbnN0IGltcGxlbWVudGF0aW9uU2VjdGlvbiA9IGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT5cbiAgICBsaW5lLmluY2x1ZGVzKFwiaW1wbGVtZW50YXRpb24gLSBcIiksXG4gICk7XG4gIGlmIChpbXBsZW1lbnRhdGlvblNlY3Rpb24gPT09IC0xKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIGltcGxlbWVudGF0aW9uIHNlY3Rpb24gaW4gb3V0cHV0IG9mICdncmFkbGUgZGVwZW5kZW5jaWVzJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBlbXB0eUxpbmVSZWdleCA9IC9eXFxzKiQvO1xuICBjb25zdCBpbXBsZW1lbnRhdGlvblNlY3Rpb25MaW5lcyA9IGxpbmVzLnNsaWNlKGltcGxlbWVudGF0aW9uU2VjdGlvbiArIDEpO1xuICBjb25zdCBzZWN0aW9uRW5kID0gaW1wbGVtZW50YXRpb25TZWN0aW9uTGluZXMuZmluZEluZGV4KChsaW5lKSA9PlxuICAgIGVtcHR5TGluZVJlZ2V4LnRlc3QobGluZSksXG4gICk7XG4gIGNvbnN0IGltcGxlbWVudGF0aW9uTGluZXMgPSBpbXBsZW1lbnRhdGlvblNlY3Rpb25MaW5lcy5zbGljZSgwLCBzZWN0aW9uRW5kKTtcblxuICAvLyBmaW5kIHRoZSBhcGkgc2VjdGlvblxuICBjb25zdCBhcGlTZWN0aW9uID0gbGluZXMuZmluZEluZGV4KChsaW5lKSA9PiBsaW5lLmluY2x1ZGVzKFwiYXBpIC0gXCIpKTtcbiAgaWYgKGFwaVNlY3Rpb24gPT09IC0xKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIGFwaSBzZWN0aW9uIGluIG91dHB1dCBvZiAnZ3JhZGxlIGRlcGVuZGVuY2llcyc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgYXBpU2VjdGlvbkxpbmVzID0gbGluZXMuc2xpY2UoYXBpU2VjdGlvbiArIDEpO1xuICBjb25zdCBhcGlTZWN0aW9uRW5kID0gYXBpU2VjdGlvbkxpbmVzLmZpbmRJbmRleCgobGluZSkgPT5cbiAgICBlbXB0eUxpbmVSZWdleC50ZXN0KGxpbmUpLFxuICApO1xuXG4gIGNvbnN0IGFwaUxpbmVzID0gYXBpU2VjdGlvbkxpbmVzLnNsaWNlKDAsIGFwaVNlY3Rpb25FbmQpO1xuXG4gIGNvbnN0IHByZWZpeFJlZ2V4ID0gL15cXHMqWytcXFxcLV0rXFxzKi87XG4gIGNvbnN0IHN1ZmZpeFJlZ2V4ID0gL1xccytcXChbbmMqXVxcKVxccyokLztcblxuICByZXR1cm4gWy4uLmltcGxlbWVudGF0aW9uTGluZXMsIC4uLmFwaUxpbmVzXVxuICAgIC5maWx0ZXIoKGxpbmUpID0+IGxpbmUgIT09IFwiTm8gZGVwZW5kZW5jaWVzXCIpXG4gICAgLm1hcCgobGluZSkgPT4gbGluZS5yZXBsYWNlKHByZWZpeFJlZ2V4LCBcIlwiKS5yZXBsYWNlKHN1ZmZpeFJlZ2V4LCBcIlwiKSk7XG59XG5cbmV4cG9ydCB0eXBlIERlcGVuZGVuY3lJbmZvcm1hdGlvbiA9IHtcbiAgZ3JvdXA6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlcGVuZGVuY3lJbmZvcm1hdGlvbkZyb21MaW5lKFxuICBsaW5lOiBzdHJpbmcsXG4pOiBEZXBlbmRlbmN5SW5mb3JtYXRpb24gfCB1bmRlZmluZWQge1xuICBjb25zdCBwYWNrYWdlTmFtZVJlZ2V4ID0gL15cXHMqKFteOl0rKTooW146XSspKD86OihbXlxcc10rKSk/LztcbiAgY29uc3QgbWF0Y2hlcyA9IGxpbmUubWF0Y2gocGFja2FnZU5hbWVSZWdleCk7XG4gIGlmICghbWF0Y2hlcykge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIFwiVW5leHBlY3RlZCBmb3JtYXQgZm9yIGdyYWRsZSBidWlsZC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUgYXQgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tY29uc3RydWN0cy9jZGstdGVycmFpbi9pc3N1ZXMvbmV3P2Fzc2lnbmVlcz0mbGFiZWxzPWJ1ZyUyQ25ldyZ0ZW1wbGF0ZT1idWctcmVwb3J0LnltbCZ0aXRsZT1cIixcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAobWF0Y2hlc1szXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdyb3VwOiBcIlwiLFxuICAgICAgbmFtZTogbWF0Y2hlc1sxXSxcbiAgICAgIHZlcnNpb246IG1hdGNoZXNbMl0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZ3JvdXA6IG1hdGNoZXNbMV0sXG4gICAgbmFtZTogbWF0Y2hlc1syXSxcbiAgICB2ZXJzaW9uOiBtYXRjaGVzWzNdLFxuICB9O1xufVxuXG4vKlxuICogRXhhbXBsZSBvdXRwdXQ6XG4gIGltcGxlbWVudGF0aW9uIC0gSW1wbGVtZW50YXRpb24gZGVwZW5kZW5jaWVzIGZvciB0aGUgJ21haW4nIGZlYXR1cmUuIChuKVxuICArLS0tIGNvbS5oYXNoaWNvcnA6Y2RrdGY6MC4xOC4wIChuKVxuICArLS0tIGlvLmNka3RuOmNka3RuOjAuMTguMCAobilcbiAgKy0tLSBzb2Z0d2FyZS5jb25zdHJ1Y3RzOmNvbnN0cnVjdHM6MTAuMC4yNSAobilcbiAgKy0tLSBqdW5pdDpqdW5pdDo0LjEzLjIgKG4pXG4gIFxcLS0tIG9yZy5qdW5pdC5qdXBpdGVyOmp1bml0LWp1cGl0ZXI6NS44LjAgKG4pXG4qL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJqc2lpLXJ1bnRpbWVcIixcbiAgfTtcbiAgY29uc3QgZ3JhZGxlUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBcIlJ1bm5pbmcgJ2dyYWRsZSBkZXBlbmRlbmNpZXMnIHRvIGZpbmQgcGFja2FnZSB2ZXJzaW9uXCIsXG4gICAgZ3JhZGxlUGFja2FnZU5hbWUsXG4gICk7XG5cbiAgY29uc3QgbGluZXMgPSBhd2FpdCBnZXRHcmFkbGVEZXBlbmRlbmNpZXMoKTtcbiAgaWYgKCFsaW5lcyB8fCBsaW5lcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gbG9vcCB0aHJvdWdoIHRoZSBzdWJzZXF1ZW50IGxpbmVzIHRvIGZpbmQgdGhlIG9uZSBzdGFydGluZyB3aXRoIHBhY2thZ2UgbmFtZVxuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBpZiAobGluZS5pbmNsdWRlcyhgOiR7Z3JhZGxlUGFja2FnZU5hbWV9OmApKSB7XG4gICAgICBjb25zdCBkZXAgPSBnZXREZXBlbmRlbmN5SW5mb3JtYXRpb25Gcm9tTGluZShsaW5lKTtcbiAgICAgIGlmIChkZXApIHtcbiAgICAgICAgcmV0dXJuIGRlcC52ZXJzaW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvLyBEaWRuJ3QgZmluZCB0aGUgcmlnaHQgZmlsZSwgcmVhZCB0aGUgYnVpbGQuZ3JhZGxlIGZpbGUgYXMgYSBiYWNrdXBcbiAgY29uc3QgYnVpbGRWZXJzaW9uID0gYXdhaXQgZ2V0R3JhZGxlUGFja2FnZVZlcnNpb25Gcm9tQnVpbGQocGFja2FnZU5hbWUpO1xuICBpZiAoYnVpbGRWZXJzaW9uKSB7XG4gICAgcmV0dXJuIGJ1aWxkVmVyc2lvbi52ZXJzaW9uO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uRnJvbUJ1aWxkKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgYnVpbGRHcmFkbGVQYXRoID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwiYnVpbGQuZ3JhZGxlXCIpO1xuICBjb25zdCBidWlsZEdyYWRsZUNvbnRlbnRzID0gYXdhaXQgZnMucmVhZEZpbGUoYnVpbGRHcmFkbGVQYXRoLCBcInV0Zi04XCIpO1xuICBjb25zdCBidWlsZExpbmVzID0gYnVpbGRHcmFkbGVDb250ZW50cy5zcGxpdCgvXFxyXFxufFxccnxcXG4vKTtcblxuICBjb25zdCBkZXBlbmRlbmNpZXNSZWdleCA9IC9eXFxzKmRlcGVuZGVuY2llc1xccypcXHsvaTtcbiAgY29uc3QgZGVwZW5kZW5jaWVzU3RhcnQgPSBidWlsZExpbmVzLmZpbmRJbmRleCgobGluZSkgPT5cbiAgICBkZXBlbmRlbmNpZXNSZWdleC50ZXN0KGxpbmUpLFxuICApO1xuXG4gIGlmIChkZXBlbmRlbmNpZXNTdGFydCA9PT0gLTEpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBmaW5kIGRlcGVuZGVuY2llcyBzZWN0aW9uIGluIG91dHB1dCBidWlsZC5ncmFkbGVgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgZm91bmRJbmRleCA9IGJ1aWxkTGluZXMuZmluZEluZGV4KChsaW5lKSA9PiBsaW5lLmluY2x1ZGVzKHBhY2thZ2VOYW1lKSk7XG4gIGlmIChmb3VuZEluZGV4ID09PSAtMSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCBwYWNrYWdlICR7cGFja2FnZU5hbWV9IGluIG91dHB1dCBidWlsZC5ncmFkbGVgLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBsaW5lID0gYnVpbGRMaW5lc1tmb3VuZEluZGV4XTtcblxuICBjb25zdCBjb2xvblNlcGFyYXRlZFBhY2thZ2VOYW1lUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgIGAoW146XSspOiR7cGFja2FnZU5hbWV9KD86OihbXlxcXFxzXSspKT9gLFxuICAgIFwiaVwiLFxuICApO1xuXG4gIGNvbnN0IGNvbG9uTWF0Y2ggPSBjb2xvblNlcGFyYXRlZFBhY2thZ2VOYW1lUmVnZXguZXhlYyhsaW5lKTtcbiAgaWYgKGNvbG9uTWF0Y2gpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ3JvdXA6IGNvbG9uTWF0Y2hbMV0sXG4gICAgICBuYW1lOiBwYWNrYWdlTmFtZSxcbiAgICAgIHZlcnNpb246IGNvbG9uTWF0Y2hbMl0gfHwgXCJcIixcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgZmlsZVNlcGFyYXRlZFBhY2thZ2VOYW1lUmVnZXggPSBuZXcgUmVnRXhwKFxuICAgIGBqYXZhLyguKikvJHtwYWNrYWdlTmFtZX0vKFteL10rKS8uKlxcXFwuamFyYCxcbiAgICBcImlcIixcbiAgKTtcblxuICBjb25zdCBmaWxlTWF0Y2ggPSBmaWxlU2VwYXJhdGVkUGFja2FnZU5hbWVSZWdleC5leGVjKGxpbmUpO1xuICBpZiAoZmlsZU1hdGNoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdyb3VwOiBmaWxlTWF0Y2hbMV0ucmVwbGFjZSgvXFwvL2csIFwiLlwiKSxcbiAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLFxuICAgICAgdmVyc2lvbjogZmlsZU1hdGNoWzJdLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|
package/build/util.d.ts
CHANGED
|
@@ -2,11 +2,42 @@
|
|
|
2
2
|
/// <reference types="node/child_process" />
|
|
3
3
|
import { SpawnOptions } from "child_process";
|
|
4
4
|
import { IManifest } from "cdktn";
|
|
5
|
+
/**
|
|
6
|
+
* Spawn a child process and mirror its stdout to the parent's console.
|
|
7
|
+
*
|
|
8
|
+
* Thin wrapper over {@link exec} for callers that want stdout chunks echoed via `console.log` as they arrive. Stderr is
|
|
9
|
+
* captured silently and surfaced on the thrown Error's `.stderr` / `toString()` if the process exits non-zero.
|
|
10
|
+
*
|
|
11
|
+
* @param program the executable to spawn
|
|
12
|
+
* @param args arguments passed to the executable
|
|
13
|
+
* @param options spawn options; `noColor: true` strips ANSI escapes from captured output
|
|
14
|
+
* @returns the full concatenated stdout as a string on success
|
|
15
|
+
* @throws an Error with `.stderr` and `.stdout` properties (see {@link attachProcessOutput}) on non-zero exit
|
|
16
|
+
*/
|
|
5
17
|
export declare function shell(program: string, args?: string[], options?: SpawnOptions & {
|
|
6
18
|
noColor?: boolean;
|
|
7
19
|
}): Promise<string>;
|
|
8
20
|
export declare function withTempDir(dirname: string, closure: () => Promise<void>): Promise<void>;
|
|
9
21
|
export declare function mkdtemp(closure: (dir: string) => Promise<void>): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Spawn a child process and resolve with its stdout, or reject with a decorated Error on non-zero exit.
|
|
24
|
+
*
|
|
25
|
+
* Captured stdout and stderr are always tee'd to `processLoggerDebug` / `processLoggerError`. The optional `stdout` and
|
|
26
|
+
* `stderr` callbacks receive each sanitized chunk as it arrives — useful for streaming output to the terminal.
|
|
27
|
+
* Passing a `stderr` callback (even a no-op) suppresses the default pass-through to `process.stderr` for that stream.
|
|
28
|
+
*
|
|
29
|
+
* On non-zero exit, rejects with an {@link ExecError} carrying `.stderr` / `.stdout` and a `toString()` that includes
|
|
30
|
+
* the captured body (see {@link attachProcessOutput}); `.message` itself stays as the headline.
|
|
31
|
+
*
|
|
32
|
+
* @param command the executable to spawn
|
|
33
|
+
* @param args arguments passed to the executable
|
|
34
|
+
* @param options spawn options; `noColor: true` strips ANSI escapes from captured output (auto-detected from CLI flags
|
|
35
|
+
* / `FORCE_COLOR=0` when omitted)
|
|
36
|
+
* @param stdout optional per-chunk callback for sanitized stdout
|
|
37
|
+
* @param stderr optional per-chunk callback for sanitized stderr; passing a callback suppresses default terminal echo
|
|
38
|
+
* @param sendToStderr when false, suppresses both the stderr callback invocation and the default terminal echo
|
|
39
|
+
* @returns the full concatenated stdout as a string on success
|
|
40
|
+
*/
|
|
10
41
|
export declare const exec: (command: string, args: string[], options: SpawnOptions & {
|
|
11
42
|
noColor?: boolean;
|
|
12
43
|
}, stdout?: (chunk: string) => any, stderr?: (chunk: string | Uint8Array) => any, sendToStderr?: boolean) => Promise<string>;
|
package/build/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAO7C,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAO7C,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAmC5C;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CACzB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,YAAY,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,mBAkBnD;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAa7B;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,iBAOpE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI,YACN,MAAM,QACT,MAAM,EAAE,WACL,YAAY,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,WACpC,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,WACtB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,KAAK,GAAG,6BAE3C,QAAQ,MAAM,CAgEhB,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASzE;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,SAAS,CAAC,CAI5D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,qBAAa,SAAU,SAAQ,KAAK;IAGzB,UAAU,CAAC;gBADlB,OAAO,CAAC,EAAE,MAAM,EACT,UAAU,CAAC,oBAAQ;CAM7B;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EACf,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,EAAE,iBAUvC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C"}
|
package/build/util.js
CHANGED
|
@@ -36,39 +36,54 @@ const logging_1 = require("./logging");
|
|
|
36
36
|
const cdktn_1 = require("cdktn");
|
|
37
37
|
const config = __importStar(require("./config"));
|
|
38
38
|
const strip_ansi_1 = __importDefault(require("strip-ansi"));
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
if (stdout.length > 0) {
|
|
64
|
-
e.stdout = stdout.join("");
|
|
65
|
-
if (options.noColor) {
|
|
66
|
-
e.stdout = (0, strip_ansi_1.default)(e.stdout);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
throw e;
|
|
39
|
+
/**
|
|
40
|
+
* Attach captured stderr/stdout to a process-failure Error.
|
|
41
|
+
*
|
|
42
|
+
* The body text is exposed two ways:
|
|
43
|
+
* - `.stderr` and `.stdout` properties, for callers that render the streams separately (e.g. synth-stack's chalk
|
|
44
|
+
* formatting).
|
|
45
|
+
* - A `toString()` override that appends the body after the headline, so callers using `${e}` interpolation surface the
|
|
46
|
+
* underlying tool output without double-printing for the property-reading callers.
|
|
47
|
+
*
|
|
48
|
+
* The Error's `.message` is left untouched as the headline only.
|
|
49
|
+
*
|
|
50
|
+
* @param error the Error to decorate (its `.message` becomes the toString headline)
|
|
51
|
+
* @param stderrText captured stderr, may be empty
|
|
52
|
+
* @param stdoutText captured stdout, may be empty
|
|
53
|
+
*/
|
|
54
|
+
function attachProcessOutput(error, stderrText, stdoutText) {
|
|
55
|
+
error.stderr = stderrText;
|
|
56
|
+
error.stdout = stdoutText;
|
|
57
|
+
const body = [stderrText, stdoutText].filter(Boolean).join("\n");
|
|
58
|
+
if (body) {
|
|
59
|
+
const headline = error.message;
|
|
60
|
+
error.toString = () => `Error: ${headline}\n${body}`;
|
|
70
61
|
}
|
|
71
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Spawn a child process and mirror its stdout to the parent's console.
|
|
65
|
+
*
|
|
66
|
+
* Thin wrapper over {@link exec} for callers that want stdout chunks echoed via `console.log` as they arrive. Stderr is
|
|
67
|
+
* captured silently and surfaced on the thrown Error's `.stderr` / `toString()` if the process exits non-zero.
|
|
68
|
+
*
|
|
69
|
+
* @param program the executable to spawn
|
|
70
|
+
* @param args arguments passed to the executable
|
|
71
|
+
* @param options spawn options; `noColor: true` strips ANSI escapes from captured output
|
|
72
|
+
* @returns the full concatenated stdout as a string on success
|
|
73
|
+
* @throws an Error with `.stderr` and `.stdout` properties (see {@link attachProcessOutput}) on non-zero exit
|
|
74
|
+
*/
|
|
75
|
+
async function shell(program, args = [], options = {}) {
|
|
76
|
+
return (0, exports.exec)(program, args, options, (chunk) => {
|
|
77
|
+
const sanitizedChunk = options.noColor
|
|
78
|
+
? (0, strip_ansi_1.default)(chunk.toLocaleString())
|
|
79
|
+
: chunk.toLocaleString();
|
|
80
|
+
console.log(sanitizedChunk);
|
|
81
|
+
}, () => {
|
|
82
|
+
// No-op: passing a callback (vs. undefined) suppresses exec()'s default
|
|
83
|
+
// pass-through to process.stderr; inner exec() still collects it for
|
|
84
|
+
// the thrown error's .stderr field.
|
|
85
|
+
});
|
|
86
|
+
}
|
|
72
87
|
exports.shell = shell;
|
|
73
88
|
async function withTempDir(dirname, closure) {
|
|
74
89
|
const prevdir = process.cwd();
|
|
@@ -95,6 +110,25 @@ async function mkdtemp(closure) {
|
|
|
95
110
|
}
|
|
96
111
|
}
|
|
97
112
|
exports.mkdtemp = mkdtemp;
|
|
113
|
+
/**
|
|
114
|
+
* Spawn a child process and resolve with its stdout, or reject with a decorated Error on non-zero exit.
|
|
115
|
+
*
|
|
116
|
+
* Captured stdout and stderr are always tee'd to `processLoggerDebug` / `processLoggerError`. The optional `stdout` and
|
|
117
|
+
* `stderr` callbacks receive each sanitized chunk as it arrives — useful for streaming output to the terminal.
|
|
118
|
+
* Passing a `stderr` callback (even a no-op) suppresses the default pass-through to `process.stderr` for that stream.
|
|
119
|
+
*
|
|
120
|
+
* On non-zero exit, rejects with an {@link ExecError} carrying `.stderr` / `.stdout` and a `toString()` that includes
|
|
121
|
+
* the captured body (see {@link attachProcessOutput}); `.message` itself stays as the headline.
|
|
122
|
+
*
|
|
123
|
+
* @param command the executable to spawn
|
|
124
|
+
* @param args arguments passed to the executable
|
|
125
|
+
* @param options spawn options; `noColor: true` strips ANSI escapes from captured output (auto-detected from CLI flags
|
|
126
|
+
* / `FORCE_COLOR=0` when omitted)
|
|
127
|
+
* @param stdout optional per-chunk callback for sanitized stdout
|
|
128
|
+
* @param stderr optional per-chunk callback for sanitized stderr; passing a callback suppresses default terminal echo
|
|
129
|
+
* @param sendToStderr when false, suppresses both the stderr callback invocation and the default terminal echo
|
|
130
|
+
* @returns the full concatenated stdout as a string on success
|
|
131
|
+
*/
|
|
98
132
|
const exec = async (command, args, options, stdout, stderr, sendToStderr = true) => {
|
|
99
133
|
// if options.noColor is not set, checking the flags & environment if it should be set
|
|
100
134
|
// This is required for collectDebugInformation() which does not have knowledge about flags
|
|
@@ -152,8 +186,8 @@ const exec = async (command, args, options, stdout, stderr, sendToStderr = true)
|
|
|
152
186
|
child.once("error", (err) => ko(err));
|
|
153
187
|
child.once("close", (code) => {
|
|
154
188
|
if (code !== 0) {
|
|
155
|
-
const error = new Error(
|
|
156
|
-
error
|
|
189
|
+
const error = new Error(`${command} ${args.join(" ")} exited with code ${code}`);
|
|
190
|
+
attachProcessOutput(error, err.join(""), out.join(""));
|
|
157
191
|
return ko(error);
|
|
158
192
|
}
|
|
159
193
|
return ok(out.join(""));
|
|
@@ -259,4 +293,4 @@ function hasFlag(flag) {
|
|
|
259
293
|
return (position !== -1 &&
|
|
260
294
|
(terminatorPosition === -1 || position < terminatorPosition));
|
|
261
295
|
}
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsNkNBQW9DO0FBQ3BDLDZDQUErQjtBQUMvQix1REFBK0M7QUFDL0MsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3Qix1Q0FBbUU7QUFDbkUsaUNBQTRDO0FBQzVDLGlEQUFtQztBQUNuQyw0REFBbUM7QUFFNUIsS0FBSyxVQUFVLEtBQUssQ0FDekIsT0FBZSxFQUNmLE9BQWlCLEVBQUUsRUFDbkIsVUFBZ0QsRUFBRTtJQUVsRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBdUIsQ0FBQztJQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQ25DLElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxJQUFBLFlBQUksRUFDZixPQUFPLEVBQ1AsSUFBSSxFQUNKLE9BQU8sRUFDUCxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPO2dCQUNwQyxDQUFDLENBQUMsSUFBQSxvQkFBUyxFQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxFQUNELENBQUMsS0FBMEIsRUFBRSxFQUFFO1lBQzdCLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPO2dCQUNwQyxDQUFDLENBQUMsSUFBQSxvQkFBUyxFQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsSUFBSSxD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QUNmLFFBQXNDO0lBRXRDLElBQUksQ0FBQztRQUNILE1BQU0sQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCwwRUFBMEU7UUFDMUUsMEVBQTBFO1FBQzFFLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxNQUFNLENBQUMsQ0FBQztJQUNWLENBQUM7QUFDSCxDQUFDO0FBWkQsd0VBWUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsbUJBQW1CO0lBQ2pDLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxLQUFLLEdBQUcsQ0FBQztBQUNoRSxDQUFDO0FBRkQsa0RBRUM7QUFFRCxvRUFBb0U7QUFDcEUsNENBQTRDO0FBQzVDLFNBQVMsT0FBTyxDQUFDLElBQVk7SUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3JELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsT0FBTyxDQUNMLFFBQVEsS0FBSyxDQUFDLENBQUM7UUFDZixDQUFDLGtCQUFrQixLQUFLLENBQUMsQ0FBQyxJQUFJLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxDQUM3RCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBTcGF3bk9wdGlvbnMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgc3Bhd24gfSBmcm9tIFwiY3Jvc3Mtc3Bhd25cIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgaHR0cHMsIGh0dHAgfSBmcm9tIFwiZm9sbG93LXJlZGlyZWN0c1wiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBwcm9jZXNzTG9nZ2VyRXJyb3IsIHByb2Nlc3NMb2dnZXJEZWJ1ZyB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB7IElNYW5pZmVzdCwgTWFuaWZlc3QgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCBzdHJpcEFuc2kgZnJvbSBcInN0cmlwLWFuc2lcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNoZWxsKFxuICBwcm9ncmFtOiBzdHJpbmcsXG4gIGFyZ3M6IHN0cmluZ1tdID0gW10sXG4gIG9wdGlvbnM6IFNwYXduT3B0aW9ucyAmIHsgbm9Db2xvcj86IGJvb2xlYW4gfSA9IHt9LFxuKSB7XG4gIGNvbnN0IHN0ZGVyciA9IG5ldyBBcnJheTxzdHJpbmcgfCBVaW50OEFycmF5PigpO1xuICBjb25zdCBzdGRvdXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBleGVjKFxuICAgICAgcHJvZ3JhbSxcbiAgICAgIGFyZ3MsXG4gICAgICBvcHRpb25zLFxuICAgICAgKGNodW5rOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3Qgc2FuaXRpemVkQ2h1bmsgPSBvcHRpb25zLm5vQ29sb3JcbiAgICAgICAgICA/IHN0cmlwQW5zaShjaHVuay50b0xvY2FsZVN0cmluZygpKVxuICAgICAgICAgIDogY2h1bmsudG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgICAgc3Rkb3V0LnB1c2goc2FuaXRpemVkQ2h1bmspO1xuICAgICAgICBjb25zb2xlLmxvZyhzYW5pdGl6ZWRDaHVuayk7XG4gICAgICB9LFxuICAgICAgKGNodW5rOiBzdHJpbmcgfCBVaW50OEFycmF5KSA9PiB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZENodW5rID0gb3B0aW9ucy5ub0NvbG9yXG4gICAgICAgICAgPyBzdHJpcEFuc2koY2h1bmsudG9Mb2NhbGVTdHJpbmcoKSlcbiAgICAgICAgICA6IGNodW5rLnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgICAgIHN0ZGVyci5wdXNoKHNhbml0aXplZENodW5rKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKHN0ZGVyci5sZW5ndGggPiAwKSB7XG4gICAgICBlLnN0ZGVyciA9IHN0ZGVyci5tYXAoKGNodW5rKSA9PiBjaHVuay50b1N0cmluZygpKS5qb2luKFwiXCIpO1xuICAgICAgaWYgKG9wdGlvbnMubm9Db2xvcikge1xuICAgICAgICBlLnN0ZGVyciA9IHN0cmlwQW5zaShlLnN0ZGVycik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzdGRvdXQubGVuZ3RoID4gMCkge1xuICAgICAgZS5zdGRvdXQgPSBzdGRvdXQuam9pbihcIlwiKTtcbiAgICAgIGlmIChvcHRpb25zLm5vQ29sb3IpIHtcbiAgICAgICAgZS5zdGRvdXQgPSBzdHJpcEFuc2koZS5zdGRvdXQpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3aXRoVGVtcERpcihcbiAgZGlybmFtZTogc3RyaW5nLFxuICBjbG9zdXJlOiAoKSA9PiBQcm9taXNlPHZvaWQ+LFxuKSB7XG4gIGNvbnN0IHByZXZkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICBjb25zdCBwYXJlbnQgPSBhd2FpdCBmcy5ta2R0ZW1wKHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJjZGt0Zi5cIikpO1xuICBjb25zdCB3b3JrZGlyID0gcGF0aC5qb2luKHBhcmVudCwgZGlybmFtZSk7XG4gIGF3YWl0IGZzLm1rZGlycCh3b3JrZGlyKTtcbiAgdHJ5IHtcbiAgICBwcm9jZXNzLmNoZGlyKHdvcmtkaXIpO1xuICAgIGF3YWl0IGNsb3N1cmUoKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBwcm9jZXNzLmNoZGlyKHByZXZkaXIpO1xuICAgIGF3YWl0IGZzLnJlbW92ZShwYXJlbnQpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBta2R0ZW1wKGNsb3N1cmU6IChkaXI6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPikge1xuICBjb25zdCB3b3JrZGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiY2RrdGYuXCIpKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBjbG9zdXJlKHdvcmtkaXIpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IGZzLnJlbW92ZSh3b3JrZGlyKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZXhlYyA9IGFzeW5jIChcbiAgY29tbWFuZDogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgb3B0aW9uczogU3Bhd25PcHRpb25zICYgeyBub0NvbG9yPzogYm9vbGVhbiB9LFxuICBzdGRvdXQ/OiAoY2h1bms6IHN0cmluZykgPT4gYW55LFxuICBzdGRlcnI/OiAoY2h1bms6IHN0cmluZyB8IFVpbnQ4QXJyYXkpID0+IGFueSxcbiAgc2VuZFRvU3RkZXJyID0gdHJ1ZSxcbik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIC8vIGlmIG9wdGlvbnMubm9Db2xvciBpcyBub3Qgc2V0LCBjaGVja2luZyB0aGUgZmxhZ3MgJiBlbnZpcm9ubWVudCBpZiBpdCBzaG91bGQgYmUgc2V0XG4gIC8vIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGNvbGxlY3REZWJ1Z0luZm9ybWF0aW9uKCkgd2hpY2ggZG9lcyBub3QgaGF2ZSBrbm93bGVkZ2UgYWJvdXQgZmxhZ3NcbiAgaWYgKHR5cGVvZiBvcHRpb25zLm5vQ29sb3IgIT09IFwiYm9vbGVhblwiICYmIGhhc05vQ29sb3JGbGFnT3JFbnYoKSkge1xuICAgIG9wdGlvbnMubm9Db2xvciA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gbmV3IFByb21pc2UoKG9rLCBrbykgPT4ge1xuICAgIGNvbnN0IGNoaWxkID0gc3Bhd24oY29tbWFuZCwgYXJncywgb3B0aW9ucyk7XG4gICAgY29uc3Qgb3V0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICBjb25zdCBlcnIgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIGlmIChzdGRvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2hpbGQuc3Rkb3V0Py5vbihcImRhdGFcIiwgKGNodW5rOiBCdWZmZXIpID0+IHtcbiAgICAgICAgY29uc3Qgc2FuaXRpemVkQ2h1bmsgPSBvcHRpb25zLm5vQ29sb3JcbiAgICAgICAgICA/IHN0cmlwQW5zaShjaHVuay50b0xvY2FsZVN0cmluZygpKVxuICAgICAgICAgIDogY2h1bmsudG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgICAgcHJvY2Vzc0xvZ2dlckRlYnVnKHNhbml0aXplZENodW5rKTtcbiAgICAgICAgb3V0LnB1c2goc2FuaXRpemVkQ2h1bmspO1xuICAgICAgICBzdGRvdXQoc2FuaXRpemVkQ2h1bmspO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoaWxkLnN0ZG91dD8ub24oXCJkYXRhXCIsIChjaHVuazogQnVmZmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZENodW5rID0gb3B0aW9ucy5ub0NvbG9yXG4gICAgICAgICAgPyBzdHJpcEFuc2koY2h1bmsudG9Mb2NhbGVTdHJpbmcoKSlcbiAgICAgICAgICA6IGNodW5rLnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgICAgIHByb2Nlc3NMb2dnZXJEZWJ1ZyhzYW5pdGl6ZWRDaHVuayk7XG4gICAgICAgIG91dC5wdXNoKHNhbml0aXplZENodW5rKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoc3RkZXJyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNoaWxkLnN0ZGVycj8ub24oXCJkYXRhXCIsIChjaHVuazogc3RyaW5nIHwgVWludDhBcnJheSkgPT4ge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWRDaHVuayA9IG9wdGlvbnMubm9Db2xvclxuICAgICAgICAgID8gc3RyaXBBbnNpKGNodW5rLnRvTG9jYWxlU3RyaW5nKCkpXG4gICAgICAgICAgOiBjaHVuay50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICBwcm9jZXNzTG9nZ2VyRXJyb3Ioc2FuaXRpemVkQ2h1bmspO1xuICAgICAgICBpZiAoc2VuZFRvU3RkZXJyKSB7XG4gICAgICAgICAgc3RkZXJyKHNhbml0aXplZENodW5rKTtcbiAgICAgICAgfVxuICAgICAgICBlcnIucHVzaChzYW5pdGl6ZWRDaHVuayk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2hpbGQuc3RkZXJyPy5vbihcImRhdGFcIiwgKGNodW5rOiBzdHJpbmcgfCBVaW50OEFycmF5KSA9PiB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZENodW5rID0gb3B0aW9ucy5ub0NvbG9yXG4gICAgICAgICAgPyBzdHJpcEFuc2koY2h1bmsudG9Mb2NhbGVTdHJpbmcoKSlcbiAgICAgICAgICA6IGNodW5rLnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgICAgIHByb2Nlc3NMb2dnZXJFcnJvcihzYW5pdGl6ZWRDaHVuayk7XG4gICAgICAgIGlmIChzZW5kVG9TdGRlcnIpIHtcbiAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShzYW5pdGl6ZWRDaHVuayk7XG4gICAgICAgIH1cbiAgICAgICAgZXJyLnB1c2goc2FuaXRpemVkQ2h1bmspO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNoaWxkLm9uY2UoXCJlcnJvclwiLCAoZXJyOiBhbnkpID0+IGtvKGVycikpO1xuICAgIGNoaWxkLm9uY2UoXCJjbG9zZVwiLCAoY29kZTogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoY29kZSAhPT0gMCkge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgbm9uLXplcm8gZXhpdCBjb2RlICR7Y29kZX1gKTtcbiAgICAgICAgKGVycm9yIGFzIGFueSkuc3RkZXJyID0gZXJyLm1hcCgoY2h1bmspID0+IGNodW5rLnRvU3RyaW5nKCkpLmpvaW4oXCJcIik7XG4gICAgICAgIHJldHVybiBrbyhlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2sob3V0LmpvaW4oXCJcIikpO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkQ0RLVEZWZXJzaW9uKG91dHB1dERpcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qgb3V0cHV0RmlsZSA9IHBhdGguam9pbihvdXRwdXREaXIsIFwiY2RrLnRmLmpzb25cIik7XG4gIGlmIChmcy5leGlzdHNTeW5jKG91dHB1dEZpbGUpKSB7XG4gICAgY29uc3Qgb3V0cHV0SlNPTiA9IGZzLnJlYWRGaWxlU3luYyhvdXRwdXRGaWxlLCBcInV0ZjhcIik7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2Uob3V0cHV0SlNPTik7XG4gICAgcmV0dXJuIGRhdGFbXCIvL1wiXS5tZXRhZGF0YS52ZXJzaW9uO1xuICB9XG5cbiAgcmV0dXJuIFwiXCI7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkQ0RLVEZNYW5pZmVzdCgpOiBQcm9taXNlPElNYW5pZmVzdD4ge1xuICBjb25zdCB7IG91dHB1dCB9ID0gY29uZmlnLnJlYWRDb25maWdTeW5jKCk7XG4gIGNvbnN0IGpzb24gPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLmpvaW4ob3V0cHV0LCBNYW5pZmVzdC5maWxlTmFtZSkpO1xuICByZXR1cm4gSlNPTi5wYXJzZShqc29uLnRvU3RyaW5nKCkpIGFzIElNYW5pZmVzdDtcbn1cblxuLyoqXG4gKiBEb3duY2FzZSB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBzdHIgdGhlIHN0cmluZyB0byBiZSBwcm9jZXNzZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb3duY2FzZUZpcnN0KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHN0ciA9PT0gXCJcIikge1xuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgcmV0dXJuIGAke3N0clswXS50b0xvY2FsZUxvd2VyQ2FzZSgpfSR7c3RyLnNsaWNlKDEpfWA7XG59XG5cbmV4cG9ydCBjbGFzcyBIdHRwRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U/OiBzdHJpbmcsXG4gICAgcHVibGljIHN0YXR1c0NvZGU/OiBudW1iZXIsXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpOyAvLyAnRXJyb3InIGJyZWFrcyBwcm90b3R5cGUgY2hhaW4gaGVyZVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBuZXcudGFyZ2V0LnByb3RvdHlwZSk7IC8vIHJlc3RvcmUgcHJvdG90eXBlIGNoYWluXG4gICAgLy8gc2VlOiBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay9yZWxlYXNlLW5vdGVzL3R5cGVzY3JpcHQtMi0yLmh0bWwjc3VwcG9ydC1mb3ItbmV3dGFyZ2V0XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkRmlsZShcbiAgdXJsOiBzdHJpbmcsXG4gIHRhcmdldEZpbGVuYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gaWYgdGhlIHR5cGUgaXMgaW5mZXJyZWQgdG8gYmUgXCJodHRwfGh0dHBzXCIgY2FsbGluZyAuZ2V0KCkgaXMgbm90IHBvc3NpYmxlXG4gIC8vIGJlY2F1c2UgdGhlIG9wdGlvbnMgcGFyYW1ldGVyICh3aGljaCB3ZSBkb24ndCB1c2UgYW55d2F5KSBmb3IgZ2V0IGlzXG4gIC8vIG5vdCBjb21wYXRpYmxlIGJldHdlZW4gaHR0cCBhbmQgaHR0cHMgLT4gc28gd2UgdHJlYXQgaXQgYXMgaHR0cFxuICBjb25zdCBjbGllbnQgPSAodXJsLnN0YXJ0c1dpdGgoXCJodHRwOi8vXCIpID8gaHR0cCA6IGh0dHBzKSBhcyB0eXBlb2YgaHR0cDtcbiAgY29uc3QgZmlsZSA9IGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHRhcmdldEZpbGVuYW1lKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChvaywga28pID0+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gY2xpZW50LmdldCh1cmwsIChyZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgIT09IDIwMCkge1xuICAgICAgICBrbyhcbiAgICAgICAgICBuZXcgSHR0cEVycm9yKFxuICAgICAgICAgICAgYEZhaWxlZCB0byBnZXQgJyR7dXJsfScgKCR7cmVzcG9uc2Uuc3RhdHVzQ29kZX0pYCxcbiAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVzcG9uc2UucGlwZShmaWxlKTtcbiAgICB9KTtcblxuICAgIGZpbGUub24oXCJmaW5pc2hcIiwgKCkgPT4gb2soKSk7XG5cbiAgICByZXF1ZXN0Lm9uKFwiZXJyb3JcIiwgKGVycjogRXJyb3IpID0+IHtcbiAgICAgIGZzLnVubGluayh0YXJnZXRGaWxlbmFtZSwgKCkgPT4ga28oZXJyKSk7XG4gICAgfSk7XG5cbiAgICBmaWxlLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuICAgICAgZnMudW5saW5rKHRhcmdldEZpbGVuYW1lLCAoKSA9PiBrbyhlcnIpKTtcbiAgICB9KTtcblxuICAgIHJlcXVlc3QuZW5kKCk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEF3YWl0cyBhIHByb21pc2UgYW5kIG1ha2VzIHN1cmUgaXQncyBlcnJvciAoaWYgYW55KSBpcyBvbmx5IHRocm93biBhZnRlciBhbGwgb3RoZXIgcHJvbWlzZXMgYXJlIHNldHRsZWRcbiAqIGlmIHRoZSBwcm9taXNlIGRvZXMgbm90IHRocm93IGFuIGVycm9yLCB0aGUgb3RoZXIgcHJvbWlzZXMgd29uJ3QgYmUgYXdhaXRlZFxuICogQHBhcmFtIHAgcHJvbWlzZSB0byBhd2FpdFxuICogQHBhcmFtIHByb21pc2VzIHByb21pc2VzIHRvIGF3YWl0IHRvIGJlIGFsbCBzZXR0bGVkIGlmIHAgZmFpbGVkIGJlZm9yZSB0aHJvd2luZyBlcnJvciB0aGF0IHAgZmFpbGVkIHdpdGhcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuc3VyZUFsbFNldHRsZWRCZWZvcmVUaHJvd2luZyhcbiAgcDogUHJvbWlzZTxhbnk+LFxuICBwcm9taXNlczogKFByb21pc2U8YW55PiB8IHVuZGVmaW5lZClbXSxcbikge1xuICB0cnkge1xuICAgIGF3YWl0IHA7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBpZiBhbiBlcnJvciBoYXBwZW5lZCwgd2Ugc3RpbGwgbmVlZCB0byB3YWl0IGZvciBhbGwgb3RoZXIgcHJvbWlzZXMgdGhhdFxuICAgIC8vIGFyZSBjdXJyZW50bHkgaW4gcHJvZ3Jlc3MgdG8gY29tcGxldGUgdG8gYWxsb3cgdGhlbSB0byBwcm9wZXJseSB3cmFwIHVwXG4gICAgYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKHByb21pc2VzKTtcbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbi8qKlxuICogcmV0dXJucyB0cnVlIGlmIC0tbm8tY29sb3IgaXMgcGFzc2VkIGFzIENMSSBmbGFnIG9yIHRoZSBlbnYgdmFyIEZPUkNFX0NPTE9SIGlzIHNldCB0byBcIjBcIlxuICogVXNlZCBmb3IgY2FzZXMgd2hlcmUgd2UgY2FuJ3QgcGFzcyBkb3duIHRoZSBub0NvbG9yIGZsYWcgKGUuZy4gd2hlbiBjb2xsZWN0aW5nIGRlYnVnIGluZm9ybWF0aW9uIGZyb20gdGhlIGVudmlyb25tZW50KVxuICogVGhpcyBpcyB0aGUgc2FtZSBiZWhhdmlvciBhcyB0aGUgYGNoYWxrYCBsaWIgd2UgdXNlIGZvciBjb2xvcmluZyBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc05vQ29sb3JGbGFnT3JFbnYoKTogYm9vbGVhbiB7XG4gIHJldHVybiBoYXNGbGFnKFwibm8tY29sb3JcIikgfHwgcHJvY2Vzcy5lbnYuRk9SQ0VfQ09MT1IgPT09IFwiMFwiO1xufVxuXG4vLyBGcm9tOiBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL2hhcy1mbGFnL2Jsb2IvbWFpbi9pbmRleC5qc1xuLy8gYXMgdXNlZCBpbiBodHRwczovL2dpdGh1Yi5jb20vY2hhbGsvY2hhbGtcbmZ1bmN0aW9uIGhhc0ZsYWcoZmxhZzogc3RyaW5nKSB7XG4gIGNvbnN0IHByZWZpeCA9IGZsYWcuc3RhcnRzV2l0aChcIi1cIikgPyBcIlwiIDogZmxhZy5sZW5ndGggPT09IDEgPyBcIi1cIiA6IFwiLS1cIjtcbiAgY29uc3QgcG9zaXRpb24gPSBwcm9jZXNzLmFyZ3YuaW5kZXhPZihwcmVmaXggKyBmbGFnKTtcbiAgY29uc3QgdGVybWluYXRvclBvc2l0aW9uID0gcHJvY2Vzcy5hcmd2LmluZGV4T2YoXCItLVwiKTtcbiAgcmV0dXJuIChcbiAgICBwb3NpdGlvbiAhPT0gLTEgJiZcbiAgICAodGVybWluYXRvclBvc2l0aW9uID09PSAtMSB8fCBwb3NpdGlvbiA8IHRlcm1pbmF0b3JQb3NpdGlvbilcbiAgKTtcbn1cbiJdfQ==
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsNkNBQW9DO0FBQ3BDLDZDQUErQjtBQUMvQix1REFBK0M7QUFDL0MsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3Qix1Q0FBbUU7QUFDbkUsaUNBQTRDO0FBQzVDLGlEQUFtQztBQUNuQyw0REFBbUM7QUFJbkM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixLQUFZLEVBQ1osVUFBa0IsRUFDbEIsVUFBa0I7SUFFakIsS0FBbUIsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO0lBQ3hDLEtBQW1CLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztJQUN6QyxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9CLEtBQUssQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDdkQsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNJLEtBQUssVUFBVSxLQUFLLENBQ3pCLE9BQWUsRUFDZixPQUFpQixFQUFFLEVBQ25CLFVBQWdELEVBQUU7SUFFbEQsT0FBTyxJQUFBLFlBQUksRUFDVCxPQUFPLEVBQ1AsSUFBSSxFQUNKLE9BQU8sRUFDUCxDQUFDLEtBQWEsRUFBRSxFQUFFO1FBQ2hCLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1lBQ3BDLENBQUMsQ0FBQyxJQUFBLG9CQUFTLEVBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxD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QUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3JELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsT0FBTyxDQUNMLFFBQVEsS0FBSyxDQUFDLENBQUM7UUFDZixDQUFDLGtCQUFrQixLQUFLLENBQUMsQ0FBQyxJQUFJLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxDQUM3RCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBTcGF3bk9wdGlvbnMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgc3Bhd24gfSBmcm9tIFwiY3Jvc3Mtc3Bhd25cIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgaHR0cHMsIGh0dHAgfSBmcm9tIFwiZm9sbG93LXJlZGlyZWN0c1wiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBwcm9jZXNzTG9nZ2VyRXJyb3IsIHByb2Nlc3NMb2dnZXJEZWJ1ZyB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB7IElNYW5pZmVzdCwgTWFuaWZlc3QgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCBzdHJpcEFuc2kgZnJvbSBcInN0cmlwLWFuc2lcIjtcblxudHlwZSBFeGVjRXJyb3IgPSBFcnJvciAmIHsgc3RkZXJyOiBzdHJpbmc7IHN0ZG91dDogc3RyaW5nIH07XG5cbi8qKlxuICogQXR0YWNoIGNhcHR1cmVkIHN0ZGVyci9zdGRvdXQgdG8gYSBwcm9jZXNzLWZhaWx1cmUgRXJyb3IuXG4gKlxuICogVGhlIGJvZHkgdGV4dCBpcyBleHBvc2VkIHR3byB3YXlzOlxuICogLSBgLnN0ZGVycmAgYW5kIGAuc3Rkb3V0YCBwcm9wZXJ0aWVzLCBmb3IgY2FsbGVycyB0aGF0IHJlbmRlciB0aGUgc3RyZWFtcyBzZXBhcmF0ZWx5IChlLmcuIHN5bnRoLXN0YWNrJ3MgY2hhbGtcbiAqICAgZm9ybWF0dGluZykuXG4gKiAtIEEgYHRvU3RyaW5nKClgIG92ZXJyaWRlIHRoYXQgYXBwZW5kcyB0aGUgYm9keSBhZnRlciB0aGUgaGVhZGxpbmUsIHNvIGNhbGxlcnMgdXNpbmcgYCR7ZX1gIGludGVycG9sYXRpb24gc3VyZmFjZSB0aGVcbiAqICAgdW5kZXJseWluZyB0b29sIG91dHB1dCB3aXRob3V0IGRvdWJsZS1wcmludGluZyBmb3IgdGhlIHByb3BlcnR5LXJlYWRpbmcgY2FsbGVycy5cbiAqXG4gKiBUaGUgRXJyb3IncyBgLm1lc3NhZ2VgIGlzIGxlZnQgdW50b3VjaGVkIGFzIHRoZSBoZWFkbGluZSBvbmx5LlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgRXJyb3IgdG8gZGVjb3JhdGUgKGl0cyBgLm1lc3NhZ2VgIGJlY29tZXMgdGhlIHRvU3RyaW5nIGhlYWRsaW5lKVxuICogQHBhcmFtIHN0ZGVyclRleHQgY2FwdHVyZWQgc3RkZXJyLCBtYXkgYmUgZW1wdHlcbiAqIEBwYXJhbSBzdGRvdXRUZXh0IGNhcHR1cmVkIHN0ZG91dCwgbWF5IGJlIGVtcHR5XG4gKi9cbmZ1bmN0aW9uIGF0dGFjaFByb2Nlc3NPdXRwdXQoXG4gIGVycm9yOiBFcnJvcixcbiAgc3RkZXJyVGV4dDogc3RyaW5nLFxuICBzdGRvdXRUZXh0OiBzdHJpbmcsXG4pOiBhc3NlcnRzIGVycm9yIGlzIEV4ZWNFcnJvciB7XG4gIChlcnJvciBhcyBFeGVjRXJyb3IpLnN0ZGVyciA9IHN0ZGVyclRleHQ7XG4gIChlcnJvciBhcyBFeGVjRXJyb3IpLnN0ZG91dCA9IHN0ZG91dFRleHQ7XG4gIGNvbnN0IGJvZHkgPSBbc3RkZXJyVGV4dCwgc3Rkb3V0VGV4dF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCJcXG5cIik7XG4gIGlmIChib2R5KSB7XG4gICAgY29uc3QgaGVhZGxpbmUgPSBlcnJvci5tZXNzYWdlO1xuICAgIGVycm9yLnRvU3RyaW5nID0gKCkgPT4gYEVycm9yOiAke2hlYWRsaW5lfVxcbiR7Ym9keX1gO1xuICB9XG59XG5cbi8qKlxuICogU3Bhd24gYSBjaGlsZCBwcm9jZXNzIGFuZCBtaXJyb3IgaXRzIHN0ZG91dCB0byB0aGUgcGFyZW50J3MgY29uc29sZS5cbiAqXG4gKiBUaGluIHdyYXBwZXIgb3ZlciB7QGxpbmsgZXhlY30gZm9yIGNhbGxlcnMgdGhhdCB3YW50IHN0ZG91dCBjaHVua3MgZWNob2VkIHZpYSBgY29uc29sZS5sb2dgIGFzIHRoZXkgYXJyaXZlLiBTdGRlcnIgaXNcbiAqIGNhcHR1cmVkIHNpbGVudGx5IGFuZCBzdXJmYWNlZCBvbiB0aGUgdGhyb3duIEVycm9yJ3MgYC5zdGRlcnJgIC8gYHRvU3RyaW5nKClgIGlmIHRoZSBwcm9jZXNzIGV4aXRzIG5vbi16ZXJvLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIHRoZSBleGVjdXRhYmxlIHRvIHNwYXduXG4gKiBAcGFyYW0gYXJncyBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBleGVjdXRhYmxlXG4gKiBAcGFyYW0gb3B0aW9ucyBzcGF3biBvcHRpb25zOyBgbm9Db2xvcjogdHJ1ZWAgc3RyaXBzIEFOU0kgZXNjYXBlcyBmcm9tIGNhcHR1cmVkIG91dHB1dFxuICogQHJldHVybnMgdGhlIGZ1bGwgY29uY2F0ZW5hdGVkIHN0ZG91dCBhcyBhIHN0cmluZyBvbiBzdWNjZXNzXG4gKiBAdGhyb3dzIGFuIEVycm9yIHdpdGggYC5zdGRlcnJgIGFuZCBgLnN0ZG91dGAgcHJvcGVydGllcyAoc2VlIHtAbGluayBhdHRhY2hQcm9jZXNzT3V0cHV0fSkgb24gbm9uLXplcm8gZXhpdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hlbGwoXG4gIHByb2dyYW06IHN0cmluZyxcbiAgYXJnczogc3RyaW5nW10gPSBbXSxcbiAgb3B0aW9uczogU3Bhd25PcHRpb25zICYgeyBub0NvbG9yPzogYm9vbGVhbiB9ID0ge30sXG4pIHtcbiAgcmV0dXJuIGV4ZWMoXG4gICAgcHJvZ3JhbSxcbiAgICBhcmdzLFxuICAgIG9wdGlvbnMsXG4gICAgKGNodW5rOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHNhbml0aXplZENodW5rID0gb3B0aW9ucy5ub0NvbG9yXG4gICAgICAgID8gc3RyaXBBbnNpKGNodW5rLnRvTG9jYWxlU3RyaW5nKCkpXG4gICAgICAgIDogY2h1bmsudG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgIGNvbnNvbGUubG9nKHNhbml0aXplZENodW5rKTtcbiAgICB9LFxuICAgICgpID0+IHtcbiAgICAgIC8vIE5vLW9wOiBwYXNzaW5nIGEgY2FsbGJhY2sgKHZzLiB1bmRlZmluZWQpIHN1cHByZXNzZXMgZXhlYygpJ3MgZGVmYXVsdFxuICAgICAgLy8gcGFzcy10aHJvdWdoIHRvIHByb2Nlc3Muc3RkZXJyOyBpbm5lciBleGVjKCkgc3RpbGwgY29sbGVjdHMgaXQgZm9yXG4gICAgICAvLyB0aGUgdGhyb3duIGVycm9yJ3MgLnN0ZGVyciBmaWVsZC5cbiAgICB9LFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2l0aFRlbXBEaXIoXG4gIGRpcm5hbWU6IHN0cmluZyxcbiAgY2xvc3VyZTogKCkgPT4gUHJvbWlzZTx2b2lkPixcbikge1xuICBjb25zdCBwcmV2ZGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgcGFyZW50ID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiY2RrdGYuXCIpKTtcbiAgY29uc3Qgd29ya2RpciA9IHBhdGguam9pbihwYXJlbnQsIGRpcm5hbWUpO1xuICBhd2FpdCBmcy5ta2RpcnAod29ya2Rpcik7XG4gIHRyeSB7XG4gICAgcHJvY2Vzcy5jaGRpcih3b3JrZGlyKTtcbiAgICBhd2FpdCBjbG9zdXJlKCk7XG4gIH0gZmluYWxseSB7XG4gICAgcHJvY2Vzcy5jaGRpcihwcmV2ZGlyKTtcbiAgICBhd2FpdCBmcy5yZW1vdmUocGFyZW50KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWtkdGVtcChjbG9zdXJlOiAoZGlyOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgY29uc3Qgd29ya2RpciA9IGF3YWl0IGZzLm1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCBcImNka3RmLlwiKSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgY2xvc3VyZSh3b3JrZGlyKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBmcy5yZW1vdmUod29ya2Rpcik7XG4gIH1cbn1cblxuLyoqXG4gKiBTcGF3biBhIGNoaWxkIHByb2Nlc3MgYW5kIHJlc29sdmUgd2l0aCBpdHMgc3Rkb3V0LCBvciByZWplY3Qgd2l0aCBhIGRlY29yYXRlZCBFcnJvciBvbiBub24temVybyBleGl0LlxuICpcbiAqIENhcHR1cmVkIHN0ZG91dCBhbmQgc3RkZXJyIGFyZSBhbHdheXMgdGVlJ2QgdG8gYHByb2Nlc3NMb2dnZXJEZWJ1Z2AgLyBgcHJvY2Vzc0xvZ2dlckVycm9yYC4gVGhlIG9wdGlvbmFsIGBzdGRvdXRgIGFuZFxuICogYHN0ZGVycmAgY2FsbGJhY2tzIHJlY2VpdmUgZWFjaCBzYW5pdGl6ZWQgY2h1bmsgYXMgaXQgYXJyaXZlcyDigJQgdXNlZnVsIGZvciBzdHJlYW1pbmcgb3V0cHV0IHRvIHRoZSB0ZXJtaW5hbC5cbiAqIFBhc3NpbmcgYSBgc3RkZXJyYCBjYWxsYmFjayAoZXZlbiBhIG5vLW9wKSBzdXBwcmVzc2VzIHRoZSBkZWZhdWx0IHBhc3MtdGhyb3VnaCB0byBgcHJvY2Vzcy5zdGRlcnJgIGZvciB0aGF0IHN0cmVhbS5cbiAqXG4gKiBPbiBub24temVybyBleGl0LCByZWplY3RzIHdpdGggYW4ge0BsaW5rIEV4ZWNFcnJvcn0gY2FycnlpbmcgYC5zdGRlcnJgIC8gYC5zdGRvdXRgIGFuZCBhIGB0b1N0cmluZygpYCB0aGF0IGluY2x1ZGVzXG4gKiB0aGUgY2FwdHVyZWQgYm9keSAoc2VlIHtAbGluayBhdHRhY2hQcm9jZXNzT3V0cHV0fSk7IGAubWVzc2FnZWAgaXRzZWxmIHN0YXlzIGFzIHRoZSBoZWFkbGluZS5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCB0aGUgZXhlY3V0YWJsZSB0byBzcGF3blxuICogQHBhcmFtIGFyZ3MgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgZXhlY3V0YWJsZVxuICogQHBhcmFtIG9wdGlvbnMgc3Bhd24gb3B0aW9uczsgYG5vQ29sb3I6IHRydWVgIHN0cmlwcyBBTlNJIGVzY2FwZXMgZnJvbSBjYXB0dXJlZCBvdXRwdXQgKGF1dG8tZGV0ZWN0ZWQgZnJvbSBDTEkgZmxhZ3NcbiAqICAvIGBGT1JDRV9DT0xPUj0wYCB3aGVuIG9taXR0ZWQpXG4gKiBAcGFyYW0gc3Rkb3V0IG9wdGlvbmFsIHBlci1jaHVuayBjYWxsYmFjayBmb3Igc2FuaXRpemVkIHN0ZG91dFxuICogQHBhcmFtIHN0ZGVyciBvcHRpb25hbCBwZXItY2h1bmsgY2FsbGJhY2sgZm9yIHNhbml0aXplZCBzdGRlcnI7IHBhc3NpbmcgYSBjYWxsYmFjayBzdXBwcmVzc2VzIGRlZmF1bHQgdGVybWluYWwgZWNob1xuICogQHBhcmFtIHNlbmRUb1N0ZGVyciB3aGVuIGZhbHNlLCBzdXBwcmVzc2VzIGJvdGggdGhlIHN0ZGVyciBjYWxsYmFjayBpbnZvY2F0aW9uIGFuZCB0aGUgZGVmYXVsdCB0ZXJtaW5hbCBlY2hvXG4gKiBAcmV0dXJucyB0aGUgZnVsbCBjb25jYXRlbmF0ZWQgc3Rkb3V0IGFzIGEgc3RyaW5nIG9uIHN1Y2Nlc3NcbiAqL1xuZXhwb3J0IGNvbnN0IGV4ZWMgPSBhc3luYyAoXG4gIGNvbW1hbmQ6IHN0cmluZyxcbiAgYXJnczogc3RyaW5nW10sXG4gIG9wdGlvbnM6IFNwYXduT3B0aW9ucyAmIHsgbm9Db2xvcj86IGJvb2xlYW4gfSxcbiAgc3Rkb3V0PzogKGNodW5rOiBzdHJpbmcpID0+IGFueSxcbiAgc3RkZXJyPzogKGNodW5rOiBzdHJpbmcgfCBVaW50OEFycmF5KSA9PiBhbnksXG4gIHNlbmRUb1N0ZGVyciA9IHRydWUsXG4pOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAvLyBpZiBvcHRpb25zLm5vQ29sb3IgaXMgbm90IHNldCwgY2hlY2tpbmcgdGhlIGZsYWdzICYgZW52aXJvbm1lbnQgaWYgaXQgc2hvdWxkIGJlIHNldFxuICAvLyBUaGlzIGlzIHJlcXVpcmVkIGZvciBjb2xsZWN0RGVidWdJbmZvcm1hdGlvbigpIHdoaWNoIGRvZXMgbm90IGhhdmUga25vd2xlZGdlIGFib3V0IGZsYWdzXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5ub0NvbG9yICE9PSBcImJvb2xlYW5cIiAmJiBoYXNOb0NvbG9yRmxhZ09yRW52KCkpIHtcbiAgICBvcHRpb25zLm5vQ29sb3IgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChvaywga28pID0+IHtcbiAgICBjb25zdCBjaGlsZCA9IHNwYXduKGNvbW1hbmQsIGFyZ3MsIG9wdGlvbnMpO1xuICAgIGNvbnN0IG91dCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgY29uc3QgZXJyID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICBpZiAoc3Rkb3V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNoaWxkLnN0ZG91dD8ub24oXCJkYXRhXCIsIChjaHVuazogQnVmZmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZENodW5rID0gb3B0aW9ucy5ub0NvbG9yXG4gICAgICAgICAgPyBzdHJpcEFuc2koY2h1bmsudG9Mb2NhbGVTdHJpbmcoKSlcbiAgICAgICAgICA6IGNodW5rLnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgICAgIHByb2Nlc3NMb2dnZXJEZWJ1ZyhzYW5pdGl6ZWRDaHVuayk7XG4gICAgICAgIG91dC5wdXNoKHNhbml0aXplZENodW5rKTtcbiAgICAgICAgc3Rkb3V0KHNhbml0aXplZENodW5rKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjaGlsZC5zdGRvdXQ/Lm9uKFwiZGF0YVwiLCAoY2h1bms6IEJ1ZmZlcikgPT4ge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWRDaHVuayA9IG9wdGlvbnMubm9Db2xvclxuICAgICAgICAgID8gc3RyaXBBbnNpKGNodW5rLnRvTG9jYWxlU3RyaW5nKCkpXG4gICAgICAgICAgOiBjaHVuay50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICBwcm9jZXNzTG9nZ2VyRGVidWcoc2FuaXRpemVkQ2h1bmspO1xuICAgICAgICBvdXQucHVzaChzYW5pdGl6ZWRDaHVuayk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHN0ZGVyciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjaGlsZC5zdGRlcnI/Lm9uKFwiZGF0YVwiLCAoY2h1bms6IHN0cmluZyB8IFVpbnQ4QXJyYXkpID0+IHtcbiAgICAgICAgY29uc3Qgc2FuaXRpemVkQ2h1bmsgPSBvcHRpb25zLm5vQ29sb3JcbiAgICAgICAgICA/IHN0cmlwQW5zaShjaHVuay50b0xvY2FsZVN0cmluZygpKVxuICAgICAgICAgIDogY2h1bmsudG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgICAgcHJvY2Vzc0xvZ2dlckVycm9yKHNhbml0aXplZENodW5rKTtcbiAgICAgICAgaWYgKHNlbmRUb1N0ZGVycikge1xuICAgICAgICAgIHN0ZGVycihzYW5pdGl6ZWRDaHVuayk7XG4gICAgICAgIH1cbiAgICAgICAgZXJyLnB1c2goc2FuaXRpemVkQ2h1bmspO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoaWxkLnN0ZGVycj8ub24oXCJkYXRhXCIsIChjaHVuazogc3RyaW5nIHwgVWludDhBcnJheSkgPT4ge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWRDaHVuayA9IG9wdGlvbnMubm9Db2xvclxuICAgICAgICAgID8gc3RyaXBBbnNpKGNodW5rLnRvTG9jYWxlU3RyaW5nKCkpXG4gICAgICAgICAgOiBjaHVuay50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICBwcm9jZXNzTG9nZ2VyRXJyb3Ioc2FuaXRpemVkQ2h1bmspO1xuICAgICAgICBpZiAoc2VuZFRvU3RkZXJyKSB7XG4gICAgICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoc2FuaXRpemVkQ2h1bmspO1xuICAgICAgICB9XG4gICAgICAgIGVyci5wdXNoKHNhbml0aXplZENodW5rKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjaGlsZC5vbmNlKFwiZXJyb3JcIiwgKGVycjogYW55KSA9PiBrbyhlcnIpKTtcbiAgICBjaGlsZC5vbmNlKFwiY2xvc2VcIiwgKGNvZGU6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKGNvZGUgIT09IDApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgYCR7Y29tbWFuZH0gJHthcmdzLmpvaW4oXCIgXCIpfSBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX1gLFxuICAgICAgICApO1xuICAgICAgICBhdHRhY2hQcm9jZXNzT3V0cHV0KGVycm9yLCBlcnIuam9pbihcIlwiKSwgb3V0LmpvaW4oXCJcIikpO1xuICAgICAgICByZXR1cm4ga28oZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9rKG91dC5qb2luKFwiXCIpKTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZENES1RGVmVyc2lvbihvdXRwdXREaXI6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IG91dHB1dEZpbGUgPSBwYXRoLmpvaW4ob3V0cHV0RGlyLCBcImNkay50Zi5qc29uXCIpO1xuICBpZiAoZnMuZXhpc3RzU3luYyhvdXRwdXRGaWxlKSkge1xuICAgIGNvbnN0IG91dHB1dEpTT04gPSBmcy5yZWFkRmlsZVN5bmMob3V0cHV0RmlsZSwgXCJ1dGY4XCIpO1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKG91dHB1dEpTT04pO1xuICAgIHJldHVybiBkYXRhW1wiLy9cIl0ubWV0YWRhdGEudmVyc2lvbjtcbiAgfVxuXG4gIHJldHVybiBcIlwiO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZENES1RGTWFuaWZlc3QoKTogUHJvbWlzZTxJTWFuaWZlc3Q+IHtcbiAgY29uc3QgeyBvdXRwdXQgfSA9IGNvbmZpZy5yZWFkQ29uZmlnU3luYygpO1xuICBjb25zdCBqc29uID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKG91dHB1dCwgTWFuaWZlc3QuZmlsZU5hbWUpKTtcbiAgcmV0dXJuIEpTT04ucGFyc2UoanNvbi50b1N0cmluZygpKSBhcyBJTWFuaWZlc3Q7XG59XG5cbi8qKlxuICogRG93bmNhc2UgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gc3RyIHRoZSBzdHJpbmcgdG8gYmUgcHJvY2Vzc2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZG93bmNhc2VGaXJzdChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChzdHIgPT09IFwiXCIpIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIHJldHVybiBgJHtzdHJbMF0udG9Mb2NhbGVMb3dlckNhc2UoKX0ke3N0ci5zbGljZSgxKX1gO1xufVxuXG5leHBvcnQgY2xhc3MgSHR0cEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlPzogc3RyaW5nLFxuICAgIHB1YmxpYyBzdGF0dXNDb2RlPzogbnVtYmVyLFxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlKTsgLy8gJ0Vycm9yJyBicmVha3MgcHJvdG90eXBlIGNoYWluIGhlcmVcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgbmV3LnRhcmdldC5wcm90b3R5cGUpOyAvLyByZXN0b3JlIHByb3RvdHlwZSBjaGFpblxuICAgIC8vIHNlZTogaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svcmVsZWFzZS1ub3Rlcy90eXBlc2NyaXB0LTItMi5odG1sI3N1cHBvcnQtZm9yLW5ld3RhcmdldFxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb3dubG9hZEZpbGUoXG4gIHVybDogc3RyaW5nLFxuICB0YXJnZXRGaWxlbmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIGlmIHRoZSB0eXBlIGlzIGluZmVycmVkIHRvIGJlIFwiaHR0cHxodHRwc1wiIGNhbGxpbmcgLmdldCgpIGlzIG5vdCBwb3NzaWJsZVxuICAvLyBiZWNhdXNlIHRoZSBvcHRpb25zIHBhcmFtZXRlciAod2hpY2ggd2UgZG9uJ3QgdXNlIGFueXdheSkgZm9yIGdldCBpc1xuICAvLyBub3QgY29tcGF0aWJsZSBiZXR3ZWVuIGh0dHAgYW5kIGh0dHBzIC0+IHNvIHdlIHRyZWF0IGl0IGFzIGh0dHBcbiAgY29uc3QgY2xpZW50ID0gKHVybC5zdGFydHNXaXRoKFwiaHR0cDovL1wiKSA/IGh0dHAgOiBodHRwcykgYXMgdHlwZW9mIGh0dHA7XG4gIGNvbnN0IGZpbGUgPSBmcy5jcmVhdGVXcml0ZVN0cmVhbSh0YXJnZXRGaWxlbmFtZSk7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgob2ssIGtvKSA9PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGNsaWVudC5nZXQodXJsLCAocmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlICE9PSAyMDApIHtcbiAgICAgICAga28oXG4gICAgICAgICAgbmV3IEh0dHBFcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gZ2V0ICcke3VybH0nICgke3Jlc3BvbnNlLnN0YXR1c0NvZGV9KWAsXG4gICAgICAgICAgICByZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlc3BvbnNlLnBpcGUoZmlsZSk7XG4gICAgfSk7XG5cbiAgICBmaWxlLm9uKFwiZmluaXNoXCIsICgpID0+IG9rKCkpO1xuXG4gICAgcmVxdWVzdC5vbihcImVycm9yXCIsIChlcnI6IEVycm9yKSA9PiB7XG4gICAgICBmcy51bmxpbmsodGFyZ2V0RmlsZW5hbWUsICgpID0+IGtvKGVycikpO1xuICAgIH0pO1xuXG4gICAgZmlsZS5vbihcImVycm9yXCIsIChlcnIpID0+IHtcbiAgICAgIGZzLnVubGluayh0YXJnZXRGaWxlbmFtZSwgKCkgPT4ga28oZXJyKSk7XG4gICAgfSk7XG5cbiAgICByZXF1ZXN0LmVuZCgpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBBd2FpdHMgYSBwcm9taXNlIGFuZCBtYWtlcyBzdXJlIGl0J3MgZXJyb3IgKGlmIGFueSkgaXMgb25seSB0aHJvd24gYWZ0ZXIgYWxsIG90aGVyIHByb21pc2VzIGFyZSBzZXR0bGVkXG4gKiBpZiB0aGUgcHJvbWlzZSBkb2VzIG5vdCB0aHJvdyBhbiBlcnJvciwgdGhlIG90aGVyIHByb21pc2VzIHdvbid0IGJlIGF3YWl0ZWRcbiAqIEBwYXJhbSBwIHByb21pc2UgdG8gYXdhaXRcbiAqIEBwYXJhbSBwcm9taXNlcyBwcm9taXNlcyB0byBhd2FpdCB0byBiZSBhbGwgc2V0dGxlZCBpZiBwIGZhaWxlZCBiZWZvcmUgdGhyb3dpbmcgZXJyb3IgdGhhdCBwIGZhaWxlZCB3aXRoXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVBbGxTZXR0bGVkQmVmb3JlVGhyb3dpbmcoXG4gIHA6IFByb21pc2U8YW55PixcbiAgcHJvbWlzZXM6IChQcm9taXNlPGFueT4gfCB1bmRlZmluZWQpW10sXG4pIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBwO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gaWYgYW4gZXJyb3IgaGFwcGVuZWQsIHdlIHN0aWxsIG5lZWQgdG8gd2FpdCBmb3IgYWxsIG90aGVyIHByb21pc2VzIHRoYXRcbiAgICAvLyBhcmUgY3VycmVudGx5IGluIHByb2dyZXNzIHRvIGNvbXBsZXRlIHRvIGFsbG93IHRoZW0gdG8gcHJvcGVybHkgd3JhcCB1cFxuICAgIGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChwcm9taXNlcyk7XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuXG4vKipcbiAqIHJldHVybnMgdHJ1ZSBpZiAtLW5vLWNvbG9yIGlzIHBhc3NlZCBhcyBDTEkgZmxhZyBvciB0aGUgZW52IHZhciBGT1JDRV9DT0xPUiBpcyBzZXQgdG8gXCIwXCJcbiAqIFVzZWQgZm9yIGNhc2VzIHdoZXJlIHdlIGNhbid0IHBhc3MgZG93biB0aGUgbm9Db2xvciBmbGFnIChlLmcuIHdoZW4gY29sbGVjdGluZyBkZWJ1ZyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBlbnZpcm9ubWVudClcbiAqIFRoaXMgaXMgdGhlIHNhbWUgYmVoYXZpb3IgYXMgdGhlIGBjaGFsa2AgbGliIHdlIHVzZSBmb3IgY29sb3Jpbmcgb3V0cHV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNOb0NvbG9yRmxhZ09yRW52KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gaGFzRmxhZyhcIm5vLWNvbG9yXCIpIHx8IHByb2Nlc3MuZW52LkZPUkNFX0NPTE9SID09PSBcIjBcIjtcbn1cblxuLy8gRnJvbTogaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9oYXMtZmxhZy9ibG9iL21haW4vaW5kZXguanNcbi8vIGFzIHVzZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL2NoYWxrL2NoYWxrXG5mdW5jdGlvbiBoYXNGbGFnKGZsYWc6IHN0cmluZykge1xuICBjb25zdCBwcmVmaXggPSBmbGFnLnN0YXJ0c1dpdGgoXCItXCIpID8gXCJcIiA6IGZsYWcubGVuZ3RoID09PSAxID8gXCItXCIgOiBcIi0tXCI7XG4gIGNvbnN0IHBvc2l0aW9uID0gcHJvY2Vzcy5hcmd2LmluZGV4T2YocHJlZml4ICsgZmxhZyk7XG4gIGNvbnN0IHRlcm1pbmF0b3JQb3NpdGlvbiA9IHByb2Nlc3MuYXJndi5pbmRleE9mKFwiLS1cIik7XG4gIHJldHVybiAoXG4gICAgcG9zaXRpb24gIT09IC0xICYmXG4gICAgKHRlcm1pbmF0b3JQb3NpdGlvbiA9PT0gLTEgfHwgcG9zaXRpb24gPCB0ZXJtaW5hdG9yUG9zaXRpb24pXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.test.d.ts","sourceRoot":"","sources":["../src/util.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) HashiCorp, Inc
|
|
3
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
// Import via the package barrel so the util.ts ↔ logging.ts module-init cycle
|
|
6
|
+
const index_1 = require("./index");
|
|
7
|
+
const log4js_1 = require("log4js");
|
|
8
|
+
// Silence log4js output so the test reporter shows only Jest's PASS/FAIL lines.
|
|
9
|
+
beforeAll(() => {
|
|
10
|
+
(0, log4js_1.getLogger)().level = "OFF";
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* Spawn a failing child process and return the rejected Error.
|
|
14
|
+
*
|
|
15
|
+
* Using the running node binary keeps the failure surface portable across CI / dev machines (no shell builtins, no
|
|
16
|
+
* external binaries). The `stderr` / `stdout` payloads are hex-encoded inside the script so the captured bytes do not
|
|
17
|
+
* appear verbatim in the headline's `args.join(" ")` echo — that lets tests assert the headline does not include
|
|
18
|
+
* captured output.
|
|
19
|
+
*
|
|
20
|
+
* @param spec what the child should write to each stream and which exit code to use
|
|
21
|
+
* @returns the Error rejected by `exec`, narrowed to expose the attached `.stderr` / `.stdout`
|
|
22
|
+
* @throws if `exec` resolves rather than rejecting (the test setup is wrong)
|
|
23
|
+
*/
|
|
24
|
+
async function runFailing(spec) {
|
|
25
|
+
const parts = [];
|
|
26
|
+
if (spec.stderr !== undefined) {
|
|
27
|
+
const hex = Buffer.from(spec.stderr).toString("hex");
|
|
28
|
+
parts.push(`process.stderr.write(Buffer.from("${hex}","hex").toString())`);
|
|
29
|
+
}
|
|
30
|
+
if (spec.stdout !== undefined) {
|
|
31
|
+
const hex = Buffer.from(spec.stdout).toString("hex");
|
|
32
|
+
parts.push(`process.stdout.write(Buffer.from("${hex}","hex").toString())`);
|
|
33
|
+
}
|
|
34
|
+
parts.push(`process.exit(${spec.exitCode})`);
|
|
35
|
+
try {
|
|
36
|
+
await (0, index_1.exec)(process.execPath, ["-e", parts.join("; ")], {}, undefined,
|
|
37
|
+
// No-op stderr callback suppresses exec()'s default pass-through to process.stderr.
|
|
38
|
+
() => { });
|
|
39
|
+
throw new Error("exec() resolved unexpectedly");
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
return e;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const STDERR_PAYLOAD = "stderr-payload-marker";
|
|
46
|
+
const STDOUT_PAYLOAD = "stdout-payload-marker";
|
|
47
|
+
describe("exec() failure decoration", () => {
|
|
48
|
+
it("attaches both stderr and stdout and surfaces them via toString()", async () => {
|
|
49
|
+
const error = await runFailing({
|
|
50
|
+
stderr: STDERR_PAYLOAD,
|
|
51
|
+
stdout: STDOUT_PAYLOAD,
|
|
52
|
+
exitCode: 2,
|
|
53
|
+
});
|
|
54
|
+
expect(error.stderr).toBe(STDERR_PAYLOAD);
|
|
55
|
+
expect(error.stdout).toBe(STDOUT_PAYLOAD);
|
|
56
|
+
expect(error.message).toContain("exited with code 2");
|
|
57
|
+
expect(error.message).not.toContain(STDERR_PAYLOAD);
|
|
58
|
+
expect(error.message).not.toContain(STDOUT_PAYLOAD);
|
|
59
|
+
expect(String(error)).toBe(`Error: ${error.message}\n${STDERR_PAYLOAD}\n${STDOUT_PAYLOAD}`);
|
|
60
|
+
});
|
|
61
|
+
it("renders stderr-only failures without a trailing blank line for empty stdout", async () => {
|
|
62
|
+
const error = await runFailing({ stderr: STDERR_PAYLOAD, exitCode: 3 });
|
|
63
|
+
expect(error.stderr).toBe(STDERR_PAYLOAD);
|
|
64
|
+
expect(error.stdout).toBe("");
|
|
65
|
+
expect(String(error)).toBe(`Error: ${error.message}\n${STDERR_PAYLOAD}`);
|
|
66
|
+
});
|
|
67
|
+
it("renders stdout-only failures without a leading blank line for empty stderr", async () => {
|
|
68
|
+
const error = await runFailing({ stdout: STDOUT_PAYLOAD, exitCode: 4 });
|
|
69
|
+
expect(error.stderr).toBe("");
|
|
70
|
+
expect(error.stdout).toBe(STDOUT_PAYLOAD);
|
|
71
|
+
expect(String(error)).toBe(`Error: ${error.message}\n${STDOUT_PAYLOAD}`);
|
|
72
|
+
});
|
|
73
|
+
it("leaves toString() at the default headline when both streams are empty", async () => {
|
|
74
|
+
const error = await runFailing({ exitCode: 5 });
|
|
75
|
+
expect(error.stderr).toBe("");
|
|
76
|
+
expect(error.stdout).toBe("");
|
|
77
|
+
// No custom toString override → default Error.prototype.toString = "Error: <message>".
|
|
78
|
+
expect(String(error)).toBe(`Error: ${error.message}`);
|
|
79
|
+
});
|
|
80
|
+
it("surfaces stderr and the exit code through template-literal interpolation of the error", async () => {
|
|
81
|
+
const error = await runFailing({ stderr: STDERR_PAYLOAD, exitCode: 6 });
|
|
82
|
+
expect(`${error}`).toContain(STDERR_PAYLOAD);
|
|
83
|
+
expect(`${error}`).toContain("exited with code 6");
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3V0aWwudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7QUFFbkMsOEVBQThFO0FBQzlFLG1DQUErQjtBQUMvQixtQ0FBbUM7QUFFbkMsZ0ZBQWdGO0FBQ2hGLFNBQVMsQ0FBQyxHQUFHLEVBQUU7SUFDYixJQUFBLGtCQUFTLEdBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDO0FBSUg7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxLQUFLLFVBQVUsVUFBVSxDQUFDLElBSXpCO0lBQ0MsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0lBQzNCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM5QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsS0FBSyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELEtBQUssQ0FBQyxJQUFJLENBQUMscUNBQXFDLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFBLFlBQUksRUFDUixPQUFPLENBQUMsUUFBUSxFQUNoQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3hCLEVBQUUsRUFDRixTQUFTO1FBQ1Qsb0ZBQW9GO1FBQ3BGLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FDVCxDQUFDO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQztBQUMvQyxNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQztBQUUvQyxRQUFRLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxFQUFFO0lBQ3pDLEVBQUUsQ0FBQyxrRUFBa0UsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNoRixNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQztZQUM3QixNQUFNLEVBQUUsY0FBYztZQUN0QixNQUFNLEVBQUUsY0FBYztZQUN0QixRQUFRLEVBQUUsQ0FBQztTQUNaLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDdEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN4QixVQUFVLEtBQUssQ0FBQyxPQUFPLEtBQUssY0FBYyxLQUFLLGNBQWMsRUFBRSxDQUNoRSxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNkVBQTZFLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0YsTUFBTSxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsT0FBTyxLQUFLLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNEVBQTRFLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDMUYsTUFBTSxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsT0FBTyxLQUFLLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUVBQXVFLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDckYsTUFBTSxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVoRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5Qix1RkFBdUY7UUFDdkYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVGQUF1RixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JHLE1BQU0sS0FBSyxHQUFHLE1BQU0sVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV4RSxNQUFNLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3QyxNQUFNLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG4vLyBJbXBvcnQgdmlhIHRoZSBwYWNrYWdlIGJhcnJlbCBzbyB0aGUgdXRpbC50cyDihpQgbG9nZ2luZy50cyBtb2R1bGUtaW5pdCBjeWNsZVxuaW1wb3J0IHsgZXhlYyB9IGZyb20gXCIuL2luZGV4XCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwibG9nNGpzXCI7XG5cbi8vIFNpbGVuY2UgbG9nNGpzIG91dHB1dCBzbyB0aGUgdGVzdCByZXBvcnRlciBzaG93cyBvbmx5IEplc3QncyBQQVNTL0ZBSUwgbGluZXMuXG5iZWZvcmVBbGwoKCkgPT4ge1xuICBnZXRMb2dnZXIoKS5sZXZlbCA9IFwiT0ZGXCI7XG59KTtcblxudHlwZSBEZWNvcmF0ZWRFcnJvciA9IEVycm9yICYgeyBzdGRlcnI/OiBzdHJpbmc7IHN0ZG91dD86IHN0cmluZyB9O1xuXG4vKipcbiAqIFNwYXduIGEgZmFpbGluZyBjaGlsZCBwcm9jZXNzIGFuZCByZXR1cm4gdGhlIHJlamVjdGVkIEVycm9yLlxuICpcbiAqIFVzaW5nIHRoZSBydW5uaW5nIG5vZGUgYmluYXJ5IGtlZXBzIHRoZSBmYWlsdXJlIHN1cmZhY2UgcG9ydGFibGUgYWNyb3NzIENJIC8gZGV2IG1hY2hpbmVzIChubyBzaGVsbCBidWlsdGlucywgbm9cbiAqIGV4dGVybmFsIGJpbmFyaWVzKS4gVGhlIGBzdGRlcnJgIC8gYHN0ZG91dGAgcGF5bG9hZHMgYXJlIGhleC1lbmNvZGVkIGluc2lkZSB0aGUgc2NyaXB0IHNvIHRoZSBjYXB0dXJlZCBieXRlcyBkbyBub3RcbiAqIGFwcGVhciB2ZXJiYXRpbSBpbiB0aGUgaGVhZGxpbmUncyBgYXJncy5qb2luKFwiIFwiKWAgZWNobyDigJQgdGhhdCBsZXRzIHRlc3RzIGFzc2VydCB0aGUgaGVhZGxpbmUgZG9lcyBub3QgaW5jbHVkZVxuICogY2FwdHVyZWQgb3V0cHV0LlxuICpcbiAqIEBwYXJhbSBzcGVjIHdoYXQgdGhlIGNoaWxkIHNob3VsZCB3cml0ZSB0byBlYWNoIHN0cmVhbSBhbmQgd2hpY2ggZXhpdCBjb2RlIHRvIHVzZVxuICogQHJldHVybnMgdGhlIEVycm9yIHJlamVjdGVkIGJ5IGBleGVjYCwgbmFycm93ZWQgdG8gZXhwb3NlIHRoZSBhdHRhY2hlZCBgLnN0ZGVycmAgLyBgLnN0ZG91dGBcbiAqIEB0aHJvd3MgaWYgYGV4ZWNgIHJlc29sdmVzIHJhdGhlciB0aGFuIHJlamVjdGluZyAodGhlIHRlc3Qgc2V0dXAgaXMgd3JvbmcpXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJ1bkZhaWxpbmcoc3BlYzoge1xuICBzdGRlcnI/OiBzdHJpbmc7XG4gIHN0ZG91dD86IHN0cmluZztcbiAgZXhpdENvZGU6IG51bWJlcjtcbn0pOiBQcm9taXNlPERlY29yYXRlZEVycm9yPiB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoc3BlYy5zdGRlcnIgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGhleCA9IEJ1ZmZlci5mcm9tKHNwZWMuc3RkZXJyKS50b1N0cmluZyhcImhleFwiKTtcbiAgICBwYXJ0cy5wdXNoKGBwcm9jZXNzLnN0ZGVyci53cml0ZShCdWZmZXIuZnJvbShcIiR7aGV4fVwiLFwiaGV4XCIpLnRvU3RyaW5nKCkpYCk7XG4gIH1cbiAgaWYgKHNwZWMuc3Rkb3V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBoZXggPSBCdWZmZXIuZnJvbShzcGVjLnN0ZG91dCkudG9TdHJpbmcoXCJoZXhcIik7XG4gICAgcGFydHMucHVzaChgcHJvY2Vzcy5zdGRvdXQud3JpdGUoQnVmZmVyLmZyb20oXCIke2hleH1cIixcImhleFwiKS50b1N0cmluZygpKWApO1xuICB9XG4gIHBhcnRzLnB1c2goYHByb2Nlc3MuZXhpdCgke3NwZWMuZXhpdENvZGV9KWApO1xuICB0cnkge1xuICAgIGF3YWl0IGV4ZWMoXG4gICAgICBwcm9jZXNzLmV4ZWNQYXRoLFxuICAgICAgW1wiLWVcIiwgcGFydHMuam9pbihcIjsgXCIpXSxcbiAgICAgIHt9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgLy8gTm8tb3Agc3RkZXJyIGNhbGxiYWNrIHN1cHByZXNzZXMgZXhlYygpJ3MgZGVmYXVsdCBwYXNzLXRocm91Z2ggdG8gcHJvY2Vzcy5zdGRlcnIuXG4gICAgICAoKSA9PiB7fSxcbiAgICApO1xuICAgIHRocm93IG5ldyBFcnJvcihcImV4ZWMoKSByZXNvbHZlZCB1bmV4cGVjdGVkbHlcIik7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIHJldHVybiBlO1xuICB9XG59XG5cbmNvbnN0IFNUREVSUl9QQVlMT0FEID0gXCJzdGRlcnItcGF5bG9hZC1tYXJrZXJcIjtcbmNvbnN0IFNURE9VVF9QQVlMT0FEID0gXCJzdGRvdXQtcGF5bG9hZC1tYXJrZXJcIjtcblxuZGVzY3JpYmUoXCJleGVjKCkgZmFpbHVyZSBkZWNvcmF0aW9uXCIsICgpID0+IHtcbiAgaXQoXCJhdHRhY2hlcyBib3RoIHN0ZGVyciBhbmQgc3Rkb3V0IGFuZCBzdXJmYWNlcyB0aGVtIHZpYSB0b1N0cmluZygpXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IGF3YWl0IHJ1bkZhaWxpbmcoe1xuICAgICAgc3RkZXJyOiBTVERFUlJfUEFZTE9BRCxcbiAgICAgIHN0ZG91dDogU1RET1VUX1BBWUxPQUQsXG4gICAgICBleGl0Q29kZTogMixcbiAgICB9KTtcblxuICAgIGV4cGVjdChlcnJvci5zdGRlcnIpLnRvQmUoU1RERVJSX1BBWUxPQUQpO1xuICAgIGV4cGVjdChlcnJvci5zdGRvdXQpLnRvQmUoU1RET1VUX1BBWUxPQUQpO1xuICAgIGV4cGVjdChlcnJvci5tZXNzYWdlKS50b0NvbnRhaW4oXCJleGl0ZWQgd2l0aCBjb2RlIDJcIik7XG4gICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLm5vdC50b0NvbnRhaW4oU1RERVJSX1BBWUxPQUQpO1xuICAgIGV4cGVjdChlcnJvci5tZXNzYWdlKS5ub3QudG9Db250YWluKFNURE9VVF9QQVlMT0FEKTtcbiAgICBleHBlY3QoU3RyaW5nKGVycm9yKSkudG9CZShcbiAgICAgIGBFcnJvcjogJHtlcnJvci5tZXNzYWdlfVxcbiR7U1RERVJSX1BBWUxPQUR9XFxuJHtTVERPVVRfUEFZTE9BRH1gLFxuICAgICk7XG4gIH0pO1xuXG4gIGl0KFwicmVuZGVycyBzdGRlcnItb25seSBmYWlsdXJlcyB3aXRob3V0IGEgdHJhaWxpbmcgYmxhbmsgbGluZSBmb3IgZW1wdHkgc3Rkb3V0XCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IGF3YWl0IHJ1bkZhaWxpbmcoeyBzdGRlcnI6IFNUREVSUl9QQVlMT0FELCBleGl0Q29kZTogMyB9KTtcblxuICAgIGV4cGVjdChlcnJvci5zdGRlcnIpLnRvQmUoU1RERVJSX1BBWUxPQUQpO1xuICAgIGV4cGVjdChlcnJvci5zdGRvdXQpLnRvQmUoXCJcIik7XG4gICAgZXhwZWN0KFN0cmluZyhlcnJvcikpLnRvQmUoYEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9XFxuJHtTVERFUlJfUEFZTE9BRH1gKTtcbiAgfSk7XG5cbiAgaXQoXCJyZW5kZXJzIHN0ZG91dC1vbmx5IGZhaWx1cmVzIHdpdGhvdXQgYSBsZWFkaW5nIGJsYW5rIGxpbmUgZm9yIGVtcHR5IHN0ZGVyclwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZXJyb3IgPSBhd2FpdCBydW5GYWlsaW5nKHsgc3Rkb3V0OiBTVERPVVRfUEFZTE9BRCwgZXhpdENvZGU6IDQgfSk7XG5cbiAgICBleHBlY3QoZXJyb3Iuc3RkZXJyKS50b0JlKFwiXCIpO1xuICAgIGV4cGVjdChlcnJvci5zdGRvdXQpLnRvQmUoU1RET1VUX1BBWUxPQUQpO1xuICAgIGV4cGVjdChTdHJpbmcoZXJyb3IpKS50b0JlKGBFcnJvcjogJHtlcnJvci5tZXNzYWdlfVxcbiR7U1RET1VUX1BBWUxPQUR9YCk7XG4gIH0pO1xuXG4gIGl0KFwibGVhdmVzIHRvU3RyaW5nKCkgYXQgdGhlIGRlZmF1bHQgaGVhZGxpbmUgd2hlbiBib3RoIHN0cmVhbXMgYXJlIGVtcHR5XCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IGF3YWl0IHJ1bkZhaWxpbmcoeyBleGl0Q29kZTogNSB9KTtcblxuICAgIGV4cGVjdChlcnJvci5zdGRlcnIpLnRvQmUoXCJcIik7XG4gICAgZXhwZWN0KGVycm9yLnN0ZG91dCkudG9CZShcIlwiKTtcbiAgICAvLyBObyBjdXN0b20gdG9TdHJpbmcgb3ZlcnJpZGUg4oaSIGRlZmF1bHQgRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nID0gXCJFcnJvcjogPG1lc3NhZ2U+XCIuXG4gICAgZXhwZWN0KFN0cmluZyhlcnJvcikpLnRvQmUoYEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gIH0pO1xuXG4gIGl0KFwic3VyZmFjZXMgc3RkZXJyIGFuZCB0aGUgZXhpdCBjb2RlIHRocm91Z2ggdGVtcGxhdGUtbGl0ZXJhbCBpbnRlcnBvbGF0aW9uIG9mIHRoZSBlcnJvclwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZXJyb3IgPSBhd2FpdCBydW5GYWlsaW5nKHsgc3RkZXJyOiBTVERFUlJfUEFZTE9BRCwgZXhpdENvZGU6IDYgfSk7XG5cbiAgICBleHBlY3QoYCR7ZXJyb3J9YCkudG9Db250YWluKFNUREVSUl9QQVlMT0FEKTtcbiAgICBleHBlY3QoYCR7ZXJyb3J9YCkudG9Db250YWluKFwiZXhpdGVkIHdpdGggY29kZSA2XCIpO1xuICB9KTtcbn0pO1xuIl19
|
package/jest.config.js
CHANGED
|
@@ -2,18 +2,22 @@
|
|
|
2
2
|
* Copyright (c) HashiCorp, Inc.
|
|
3
3
|
* SPDX-License-Identifier: MPL-2.0
|
|
4
4
|
*/
|
|
5
|
+
/* eslint-disable */
|
|
6
|
+
const { readFileSync } = require('fs');
|
|
7
|
+
|
|
8
|
+
const swcJestConfig = JSON.parse(
|
|
9
|
+
readFileSync(`${__dirname}/.spec.swcrc`, 'utf-8'),
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
swcJestConfig.swcrc = false;
|
|
5
13
|
|
|
6
14
|
module.exports = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
15
|
+
displayName: '@cdktn/commons',
|
|
16
|
+
preset: '../../../jest.preset.js',
|
|
17
|
+
rootDir: '.',
|
|
18
|
+
roots: ['<rootDir>'],
|
|
11
19
|
transform: {
|
|
12
|
-
|
|
20
|
+
'^.+\\.[tj]sx?$': ['@swc/jest', swcJestConfig],
|
|
13
21
|
},
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"ts",
|
|
17
|
-
"tsx"
|
|
18
|
-
],
|
|
19
|
-
}
|
|
22
|
+
coverageDirectory: 'test-output/jest/coverage',
|
|
23
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdktn/commons",
|
|
3
|
-
"version": "0.24.0-pre.
|
|
3
|
+
"version": "0.24.0-pre.30",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -9,20 +9,18 @@
|
|
|
9
9
|
"build": "tsc",
|
|
10
10
|
"watch": "tsc -w",
|
|
11
11
|
"watch-preserve-output": "tsc -w --preserveWatchOutput",
|
|
12
|
-
"lint": "eslint . ",
|
|
13
|
-
"lint:fix": "eslint . --fix",
|
|
14
|
-
"pretest": "yarn build",
|
|
15
|
-
"pretest:ci": "yarn build",
|
|
16
|
-
"test": "jest",
|
|
17
|
-
"test:ci": "jest --ci",
|
|
18
12
|
"test:update": "jest -u",
|
|
19
|
-
"jest-watch": "jest --watch",
|
|
20
13
|
"package": "./package.sh",
|
|
21
14
|
"dist-clean": "rm -rf dist",
|
|
22
15
|
"package:js": "./package.sh"
|
|
23
16
|
},
|
|
24
17
|
"main": "build/index.js",
|
|
25
18
|
"types": "build/index.d.ts",
|
|
19
|
+
"nx": {
|
|
20
|
+
"tags": [
|
|
21
|
+
"unit-test"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
26
24
|
"repository": {
|
|
27
25
|
"type": "git",
|
|
28
26
|
"url": "git://github.com/open-constructs/cdk-terrain.git",
|
|
@@ -41,7 +39,7 @@
|
|
|
41
39
|
"license": "MPL-2.0",
|
|
42
40
|
"dependencies": {
|
|
43
41
|
"@sentry/node": "7.120.4",
|
|
44
|
-
"cdktn": "0.24.0-pre.
|
|
42
|
+
"cdktn": "0.24.0-pre.30",
|
|
45
43
|
"ci-info": "3.9.0",
|
|
46
44
|
"codemaker": "1.128.0",
|
|
47
45
|
"cross-spawn": "7.0.6",
|
|
@@ -57,8 +55,6 @@
|
|
|
57
55
|
"@types/fs-extra": "11.0.4",
|
|
58
56
|
"@types/uuid": "9.0.8",
|
|
59
57
|
"@types/validator": "13.15.10",
|
|
60
|
-
"jest": "^30.3.0",
|
|
61
|
-
"ts-jest": "29.4.9",
|
|
62
58
|
"tsc-files": "1.1.4",
|
|
63
59
|
"typescript": "5.4.5"
|
|
64
60
|
},
|