@cdktn/commons 0.23.0-pre.8 → 0.24.0-pre.1

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.
Files changed (92) hide show
  1. package/ambient.d.ts +0 -2
  2. package/build/checkpoint.d.ts.map +1 -0
  3. package/build/checkpoint.js +176 -0
  4. package/build/config.d.ts.map +1 -0
  5. package/build/config.js +267 -0
  6. package/build/config.test.d.ts.map +1 -0
  7. package/build/config.test.js +680 -0
  8. package/build/construct-maker-target.d.ts.map +1 -0
  9. package/build/construct-maker-target.js +129 -0
  10. package/build/construct-maker-target.test.d.ts.map +1 -0
  11. package/build/construct-maker-target.test.js +72 -0
  12. package/build/debug.d.ts.map +1 -0
  13. package/build/debug.js +379 -0
  14. package/build/environment.d.ts.map +1 -0
  15. package/build/environment.js +15 -0
  16. package/build/errors.d.ts.map +1 -0
  17. package/build/errors.js +75 -0
  18. package/build/gradle.d.ts.map +1 -0
  19. package/build/gradle.js +160 -0
  20. package/build/index.d.ts.map +1 -0
  21. package/{src → build}/index.js +1 -1
  22. package/build/logging.d.ts.map +1 -0
  23. package/build/logging.js +117 -0
  24. package/{src → build}/module-schema.d.ts +1 -0
  25. package/build/module-schema.d.ts.map +1 -0
  26. package/build/module-schema.js +3 -0
  27. package/build/provider-schema.d.ts.map +1 -0
  28. package/build/provider-schema.js +21 -0
  29. package/build/terraform-module.d.ts.map +1 -0
  30. package/build/terraform-module.js +23 -0
  31. package/build/terraform-module.test.d.ts.map +1 -0
  32. package/build/terraform-module.test.js +31 -0
  33. package/build/terraform.d.ts.map +1 -0
  34. package/build/terraform.js +12 -0
  35. package/build/util.d.ts.map +1 -0
  36. package/build/util.js +262 -0
  37. package/build/version.d.ts.map +1 -0
  38. package/build/version.js +11 -0
  39. package/eslint.config.mjs +1 -76
  40. package/package.json +11 -20
  41. package/src/checkpoint.d.ts.map +0 -1
  42. package/src/checkpoint.js +0 -176
  43. package/src/config.d.ts.map +0 -1
  44. package/src/config.js +0 -267
  45. package/src/config.test.d.ts.map +0 -1
  46. package/src/config.test.js +0 -680
  47. package/src/construct-maker-target.d.ts.map +0 -1
  48. package/src/construct-maker-target.js +0 -129
  49. package/src/construct-maker-target.test.d.ts.map +0 -1
  50. package/src/construct-maker-target.test.js +0 -72
  51. package/src/debug.d.ts.map +0 -1
  52. package/src/debug.js +0 -379
  53. package/src/environment.d.ts.map +0 -1
  54. package/src/environment.js +0 -15
  55. package/src/errors.d.ts.map +0 -1
  56. package/src/errors.js +0 -75
  57. package/src/gradle.d.ts.map +0 -1
  58. package/src/gradle.js +0 -160
  59. package/src/index.d.ts.map +0 -1
  60. package/src/logging.d.ts.map +0 -1
  61. package/src/logging.js +0 -117
  62. package/src/module-schema.d.ts.map +0 -1
  63. package/src/module-schema.js +0 -3
  64. package/src/provider-schema.d.ts.map +0 -1
  65. package/src/provider-schema.js +0 -21
  66. package/src/terraform-module.d.ts.map +0 -1
  67. package/src/terraform-module.js +0 -23
  68. package/src/terraform-module.test.d.ts.map +0 -1
  69. package/src/terraform-module.test.js +0 -31
  70. package/src/terraform.d.ts.map +0 -1
  71. package/src/terraform.js +0 -12
  72. package/src/util.d.ts.map +0 -1
  73. package/src/util.js +0 -262
  74. package/src/version.d.ts.map +0 -1
  75. package/src/version.js +0 -11
  76. /package/{src → build}/checkpoint.d.ts +0 -0
  77. /package/{src → build}/config.d.ts +0 -0
  78. /package/{src → build}/config.test.d.ts +0 -0
  79. /package/{src → build}/construct-maker-target.d.ts +0 -0
  80. /package/{src → build}/construct-maker-target.test.d.ts +0 -0
  81. /package/{src → build}/debug.d.ts +0 -0
  82. /package/{src → build}/environment.d.ts +0 -0
  83. /package/{src → build}/errors.d.ts +0 -0
  84. /package/{src → build}/gradle.d.ts +0 -0
  85. /package/{src → build}/index.d.ts +0 -0
  86. /package/{src → build}/logging.d.ts +0 -0
  87. /package/{src → build}/provider-schema.d.ts +0 -0
  88. /package/{src → build}/terraform-module.d.ts +0 -0
  89. /package/{src → build}/terraform-module.test.d.ts +0 -0
  90. /package/{src → build}/terraform.d.ts +0 -0
  91. /package/{src → build}/util.d.ts +0 -0
  92. /package/{src → build}/version.d.ts +0 -0
package/src/checkpoint.js DELETED
@@ -1,176 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.ReportRequest = exports.getUserId = exports.getProjectId = exports.sendTelemetry = void 0;
30
- // Copyright (c) HashiCorp, Inc
31
- // SPDX-License-Identifier: MPL-2.0
32
- const https = require("https");
33
- const url_1 = require("url");
34
- const uuid_1 = require("uuid");
35
- const os = __importStar(require("os"));
36
- const ci_info_1 = __importDefault(require("ci-info"));
37
- const logging_1 = require("./logging");
38
- const path = __importStar(require("path"));
39
- const fs = __importStar(require("fs-extra"));
40
- const version_1 = require("./version");
41
- const BASE_URL = `https://checkpoint-api.hashicorp.com/v1/`;
42
- const VALID_STATUS_CODES = [200, 201];
43
- const MAX_REQUEST_BODY_SIZE = 8192;
44
- function homeDir() {
45
- var _a;
46
- return process.env.CDKTF_HOME
47
- ? path.resolve(process.env.CDKTF_HOME)
48
- : path.join(((_a = os.userInfo().homedir) !== null && _a !== void 0 ? _a : os.homedir()).trim() || "/", ".cdktf");
49
- }
50
- async function post(url, data) {
51
- return new Promise((ok, ko) => {
52
- const req = https.request((0, url_1.format)(url), {
53
- headers: {
54
- Accept: "application/json",
55
- "Content-Length": data.length,
56
- "User-Agent": "OpenConstructs/cdktn-cli",
57
- },
58
- method: "POST",
59
- }, (res) => {
60
- if (res.statusCode) {
61
- const statusCode = res.statusCode;
62
- if (!VALID_STATUS_CODES.includes(statusCode)) {
63
- return ko(new Error(res.statusMessage));
64
- }
65
- }
66
- const data = new Array();
67
- res.on("data", (chunk) => data.push(chunk));
68
- res.on("error", (err) => ko(err));
69
- res.on("end", () => {
70
- return ok();
71
- });
72
- });
73
- req.setTimeout(1000, () => ko(new Error("request timeout")));
74
- req.write(data);
75
- req.end();
76
- req.on("error", (err) => ko(err));
77
- });
78
- }
79
- async function sendTelemetry(command, payload) {
80
- const reportParams = {
81
- command,
82
- product: "cdktn",
83
- version: `${version_1.DISPLAY_VERSION}`,
84
- dateTime: new Date(),
85
- language: payload.language,
86
- payload,
87
- };
88
- try {
89
- await ReportRequest(reportParams);
90
- }
91
- catch (err) {
92
- logging_1.logger.error(`Could not send telemetry data: ${err}`);
93
- }
94
- }
95
- exports.sendTelemetry = sendTelemetry;
96
- function getId(filePath, key, forceCreation = false, explanatoryComment) {
97
- const _uuid = (0, uuid_1.v4)(); // create a new UUID in case we don't find one
98
- let jsonFile;
99
- try {
100
- jsonFile = require(filePath); // we found the file
101
- }
102
- catch (_a) {
103
- // we found no file, create one if we're forcing a creation
104
- if (forceCreation) {
105
- const _idFile = {}; // compose JSON id file in case we don't find one
106
- if (explanatoryComment) {
107
- _idFile["//"] = explanatoryComment.replace(/\n/g, " ");
108
- }
109
- _idFile[key] = _uuid;
110
- fs.ensureDirSync(path.dirname(filePath));
111
- fs.writeFileSync(filePath, JSON.stringify(_idFile, null, 2));
112
- }
113
- return _uuid;
114
- }
115
- if (jsonFile[key]) {
116
- return jsonFile[key]; // we found an id
117
- }
118
- else {
119
- // we found no id, we add it to the file for future use
120
- fs.writeFileSync(filePath, JSON.stringify({ ...jsonFile, [key]: _uuid }, null, 2));
121
- return _uuid;
122
- }
123
- }
124
- function getProjectId(projectPath = process.cwd()) {
125
- return getId(path.resolve(projectPath, "cdktf.json"), "projectId");
126
- }
127
- exports.getProjectId = getProjectId;
128
- function getUserId() {
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
- This signature is random, it is not based on any personally identifiable information.
131
- To create a new signature, you can simply delete this file at any time.
132
- See https://cdk.tf/telemetry for more
133
- information on how to disable it.`);
134
- }
135
- exports.getUserId = getUserId;
136
- async function ReportRequest(reportParams) {
137
- // we won't report when checkpoint is disabled.
138
- // Check at runtime (not import time) to allow tests to modify the env var
139
- if (process.env.CHECKPOINT_DISABLE) {
140
- return;
141
- }
142
- if (!reportParams.runID) {
143
- reportParams.runID = (0, uuid_1.v4)();
144
- }
145
- if (!reportParams.dateTime) {
146
- reportParams.dateTime = new Date();
147
- }
148
- if (!reportParams.arch) {
149
- reportParams.arch = os.arch();
150
- }
151
- if (!reportParams.os) {
152
- reportParams.os = os.platform();
153
- }
154
- const ci = ci_info_1.default.isCI ? ci_info_1.default.name || "unknown" : false;
155
- if (!reportParams.userId && !ci) {
156
- reportParams.userId = getUserId();
157
- }
158
- if (ci) {
159
- reportParams.ci = ci;
160
- }
161
- reportParams.projectId = reportParams.projectId || getProjectId();
162
- const postData = JSON.stringify(reportParams);
163
- if (postData.length > MAX_REQUEST_BODY_SIZE) {
164
- logging_1.logger.warn(`Skipped sending telemetry as the request body size was ${postData.length} bytes. The limit is ${MAX_REQUEST_BODY_SIZE} bytes`);
165
- return;
166
- }
167
- try {
168
- await post(`${BASE_URL}telemetry/${reportParams.product}`, postData);
169
- }
170
- catch (e) {
171
- // Log errors writing to checkpoint
172
- (0, logging_1.processLoggerError)(e.message);
173
- }
174
- }
175
- exports.ReportRequest = ReportRequest;
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNoZWNrcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLCtCQUFnQztBQUNoQyw2QkFBNkI7QUFDN0IsK0JBQW9DO0FBQ3BDLHVDQUF5QjtBQUN6QixzREFBNkI7QUFDN0IsdUNBQXVEO0FBQ3ZELDJDQUE2QjtBQUM3Qiw2Q0FBK0I7QUFDL0IsdUNBQTRDO0FBRTVDLE1BQU0sUUFBUSxHQUFHLDBDQUEwQyxDQUFDO0FBRTVELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFFdEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUM7QUFFbkMsU0FBUyxPQUFPOztJQUNkLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVO1FBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNQLENBQUMsTUFBQSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxtQ0FBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQ3JELFFBQVEsQ0FDVCxDQUFDO0FBQ1IsQ0FBQztBQWlCRCxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQVcsRUFBRSxJQUFZO0lBQzNDLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDbEMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FDdkIsSUFBQSxZQUFNLEVBQUMsR0FBRyxDQUFDLEVBQ1g7WUFDRSxPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLGtCQUFrQjtnQkFDMUIsZ0JBQWdCLEVBQUUs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UUFDNUMsZ0JBQU0sQ0FBQyxJQUFJLENBQ1QsMERBQTBELFFBQVEsQ0FBQyxNQUFNLHdCQUF3QixxQkFBcUIsUUFBUSxDQUMvSCxDQUFDO1FBQ0YsT0FBTztJQUNULENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxHQUFHLFFBQVEsYUFBYSxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsbUNBQW1DO1FBQ25DLElBQUEsNEJBQWtCLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7QUFDSCxDQUFDO0FBakRELHNDQWlEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgaHR0cHMgPSByZXF1aXJlKFwiaHR0cHNcIik7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwidXJsXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tIFwidXVpZFwiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgY2lJbmZvIGZyb20gXCJjaS1pbmZvXCI7XG5pbXBvcnQgeyBsb2dnZXIsIHByb2Nlc3NMb2dnZXJFcnJvciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgRElTUExBWV9WRVJTSU9OIH0gZnJvbSBcIi4vdmVyc2lvblwiO1xuXG5jb25zdCBCQVNFX1VSTCA9IGBodHRwczovL2NoZWNrcG9pbnQtYXBpLmhhc2hpY29ycC5jb20vdjEvYDtcblxuY29uc3QgVkFMSURfU1RBVFVTX0NPREVTID0gWzIwMCwgMjAxXTtcblxuY29uc3QgTUFYX1JFUVVFU1RfQk9EWV9TSVpFID0gODE5MjtcblxuZnVuY3Rpb24gaG9tZURpcigpIHtcbiAgcmV0dXJuIHByb2Nlc3MuZW52LkNES1RGX0hPTUVcbiAgICA/IHBhdGgucmVzb2x2ZShwcm9jZXNzLmVudi5DREtURl9IT01FKVxuICAgIDogcGF0aC5qb2luKFxuICAgICAgICAob3MudXNlckluZm8oKS5ob21lZGlyID8/IG9zLmhvbWVkaXIoKSkudHJpbSgpIHx8IFwiL1wiLFxuICAgICAgICBcIi5jZGt0ZlwiLFxuICAgICAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRQYXJhbXMge1xuICBkYXRlVGltZT86IERhdGU7XG4gIGFyY2g/OiBzdHJpbmc7XG4gIG9zPzogc3RyaW5nO1xuICBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBwcm9kdWN0OiBzdHJpbmc7XG4gIHJ1bklEPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBjb21tYW5kPzogc3RyaW5nO1xuICBsYW5ndWFnZT86IHN0cmluZztcbiAgdXNlcklkPzogc3RyaW5nO1xuICBjaT86IHN0cmluZztcbiAgcHJvamVjdElkPzogc3RyaW5nO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwb3N0KHVybDogc3RyaW5nLCBkYXRhOiBzdHJpbmcpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChvaywga28pID0+IHtcbiAgICBjb25zdCByZXEgPSBodHRwcy5yZXF1ZXN0KFxuICAgICAgZm9ybWF0KHVybCksXG4gICAgICB7XG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgIFwiQ29udGVudC1MZW5ndGhcIjogZGF0YS5sZW5ndGgsXG4gICAgICAgICAgXCJVc2VyLUFnZW50XCI6IFwiT3BlbkNvbnN0cnVjdHMvY2RrdG4tY2xpXCIsXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICB9LFxuICAgICAgKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzLnN0YXR1c0NvZGUpIHtcbiAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gcmVzLnN0YXR1c0NvZGU7XG4gICAgICAgICAgaWYgKCFWQUxJRF9TVEFUVVNfQ09ERVMuaW5jbHVkZXMoc3RhdHVzQ29kZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBrbyhuZXcgRXJyb3IocmVzLnN0YXR1c01lc3NhZ2UpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IG5ldyBBcnJheTxCdWZmZXI+KCk7XG4gICAgICAgIHJlcy5vbihcImRhdGFcIiwgKGNodW5rKSA9PiBkYXRhLnB1c2goY2h1bmspKTtcbiAgICAgICAgcmVzLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ga28oZXJyKSk7XG4gICAgICAgIHJlcy5vbihcImVuZFwiLCAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9rKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmVxLnNldFRpbWVvdXQoMTAwMCwgKCkgPT4ga28obmV3IEVycm9yKFwicmVxdWVzdCB0aW1lb3V0XCIpKSk7XG4gICAgcmVxLndyaXRlKGRhdGEpO1xuICAgIHJlcS5lbmQoKTtcbiAgICByZXEub24oXCJlcnJvclwiLCAoZXJyKSA9PiBrbyhlcnIpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kVGVsZW1ldHJ5KFxuICBjb21tYW5kOiBzdHJpbmcsXG4gIHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4pIHtcbiAgY29uc3QgcmVwb3J0UGFyYW1zOiBSZXBvcnRQYXJhbXMgPSB7XG4gICAgY29tbWFuZCxcbiAgICBwcm9kdWN0OiBcImNka3RuXCIsXG4gICAgdmVyc2lvbjogYCR7RElTUExBWV9WRVJTSU9OfWAsXG4gICAgZGF0ZVRpbWU6IG5ldyBEYXRlKCksXG4gICAgbGFuZ3VhZ2U6IHBheWxvYWQubGFuZ3VhZ2UsXG4gICAgcGF5bG9hZCxcbiAgfTtcblxuICB0cnkge1xuICAgIGF3YWl0IFJlcG9ydFJlcXVlc3QocmVwb3J0UGFyYW1zKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmVycm9yKGBDb3VsZCBub3Qgc2VuZCB0ZWxlbWV0cnkgZGF0YTogJHtlcnJ9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SWQoXG4gIGZpbGVQYXRoOiBzdHJpbmcsXG4gIGtleTogc3RyaW5nLFxuICBmb3JjZUNyZWF0aW9uID0gZmFsc2UsXG4gIGV4cGxhbmF0b3J5Q29tbWVudD86IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IF91dWlkID0gdXVpZHY0KCk7IC8vIGNyZWF0ZSBhIG5ldyBVVUlEIGluIGNhc2Ugd2UgZG9uJ3QgZmluZCBvbmVcblxuICBsZXQganNvbkZpbGU7XG4gIHRyeSB7XG4gICAganNvbkZpbGUgPSByZXF1aXJlKGZpbGVQYXRoKTsgLy8gd2UgZm91bmQgdGhlIGZpbGVcbiAgfSBjYXRjaCB7XG4gICAgLy8gd2UgZm91bmQgbm8gZmlsZSwgY3JlYXRlIG9uZSBpZiB3ZSdyZSBmb3JjaW5nIGEgY3JlYXRpb25cbiAgICBpZiAoZm9yY2VDcmVhdGlvbikge1xuICAgICAgY29uc3QgX2lkRmlsZSA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47IC8vIGNvbXBvc2UgSlNPTiBpZCBmaWxlIGluIGNhc2Ugd2UgZG9uJ3QgZmluZCBvbmVcbiAgICAgIGlmIChleHBsYW5hdG9yeUNvbW1lbnQpIHtcbiAgICAgICAgX2lkRmlsZVtcIi8vXCJdID0gZXhwbGFuYXRvcnlDb21tZW50LnJlcGxhY2UoL1xcbi9nLCBcIiBcIik7XG4gICAgICB9XG4gICAgICBfaWRGaWxlW2tleV0gPSBfdXVpZDtcbiAgICAgIGZzLmVuc3VyZURpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShfaWRGaWxlLCBudWxsLCAyKSk7XG4gICAgfVxuICAgIHJldHVybiBfdXVpZDtcbiAgfVxuXG4gIGlmIChqc29uRmlsZVtrZXldKSB7XG4gICAgcmV0dXJuIGpzb25GaWxlW2tleV07IC8vIHdlIGZvdW5kIGFuIGlkXG4gIH0gZWxzZSB7XG4gICAgLy8gd2UgZm91bmQgbm8gaWQsIHdlIGFkZCBpdCB0byB0aGUgZmlsZSBmb3IgZnV0dXJlIHVzZVxuICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICBmaWxlUGF0aCxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgLi4uanNvbkZpbGUsIFtrZXldOiBfdXVpZCB9LCBudWxsLCAyKSxcbiAgICApO1xuICAgIHJldHVybiBfdXVpZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvamVjdElkKHByb2plY3RQYXRoID0gcHJvY2Vzcy5jd2QoKSk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRJZChwYXRoLnJlc29sdmUocHJvamVjdFBhdGgsIFwiY2RrdGYuanNvblwiKSwgXCJwcm9qZWN0SWRcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VySWQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldElkKFxuICAgIHBhdGgucmVzb2x2ZShob21lRGlyKCksIFwiY29uZmlnLmpzb25cIiksXG4gICAgXCJ1c2VySWRcIixcbiAgICB0cnVlLFxuICAgIGBUaGlzIHNpZ25hdHVyZSBpcyBhIHJhbmRvbWx5IGdlbmVyYXRlZCBVVUlEIHVzZWQgdG8gYW5vbnltb3VzbHkgZGlmZmVyZW50aWF0ZSB1c2VycyBpbiB0ZWxlbWV0cnkgZGF0YSBvcmRlciB0byBpbmZvcm0gcHJvZHVjdCBkaXJlY3Rpb24uXG5UaGlzIHNpZ25hdHVyZSBpcyByYW5kb20sIGl0IGlzIG5vdCBiYXNlZCBvbiBhbnkgcGVyc29uYWxseSBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24uXG5UbyBjcmVhdGUgYSBuZXcgc2lnbmF0dXJlLCB5b3UgY2FuIHNpbXBseSBkZWxldGUgdGhpcyBmaWxlIGF0IGFueSB0aW1lLlxuU2VlIGh0dHBzOi8vY2RrLnRmL3RlbGVtZXRyeSBmb3IgbW9yZVxuaW5mb3JtYXRpb24gb24gaG93IHRvIGRpc2FibGUgaXQuYCxcbiAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIFJlcG9ydFJlcXVlc3QocmVwb3J0UGFyYW1zOiBSZXBvcnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gd2Ugd29uJ3QgcmVwb3J0IHdoZW4gY2hlY2twb2ludCBpcyBkaXNhYmxlZC5cbiAgLy8gQ2hlY2sgYXQgcnVudGltZSAobm90IGltcG9ydCB0aW1lKSB0byBhbGxvdyB0ZXN0cyB0byBtb2RpZnkgdGhlIGVudiB2YXJcbiAgaWYgKHByb2Nlc3MuZW52LkNIRUNLUE9JTlRfRElTQUJMRSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghcmVwb3J0UGFyYW1zLnJ1bklEKSB7XG4gICAgcmVwb3J0UGFyYW1zLnJ1bklEID0gdXVpZHY0KCk7XG4gIH1cblxuICBpZiAoIXJlcG9ydFBhcmFtcy5kYXRlVGltZSkge1xuICAgIHJlcG9ydFBhcmFtcy5kYXRlVGltZSA9IG5ldyBEYXRlKCk7XG4gIH1cblxuICBpZiAoIXJlcG9ydFBhcmFtcy5hcmNoKSB7XG4gICAgcmVwb3J0UGFyYW1zLmFyY2ggPSBvcy5hcmNoKCk7XG4gIH1cblxuICBpZiAoIXJlcG9ydFBhcmFtcy5vcykge1xuICAgIHJlcG9ydFBhcmFtcy5vcyA9IG9zLnBsYXRmb3JtKCk7XG4gIH1cblxuICBjb25zdCBjaTogc3RyaW5nIHwgZmFsc2UgPSBjaUluZm8uaXNDSSA/IGNpSW5mby5uYW1lIHx8IFwidW5rbm93blwiIDogZmFsc2U7XG4gIGlmICghcmVwb3J0UGFyYW1zLnVzZXJJZCAmJiAhY2kpIHtcbiAgICByZXBvcnRQYXJhbXMudXNlcklkID0gZ2V0VXNlcklkKCk7XG4gIH1cblxuICBpZiAoY2kpIHtcbiAgICByZXBvcnRQYXJhbXMuY2kgPSBjaTtcbiAgfVxuXG4gIHJlcG9ydFBhcmFtcy5wcm9qZWN0SWQgPSByZXBvcnRQYXJhbXMucHJvamVjdElkIHx8IGdldFByb2plY3RJZCgpO1xuXG4gIGNvbnN0IHBvc3REYXRhID0gSlNPTi5zdHJpbmdpZnkocmVwb3J0UGFyYW1zKTtcblxuICBpZiAocG9zdERhdGEubGVuZ3RoID4gTUFYX1JFUVVFU1RfQk9EWV9TSVpFKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICBgU2tpcHBlZCBzZW5kaW5nIHRlbGVtZXRyeSBhcyB0aGUgcmVxdWVzdCBib2R5IHNpemUgd2FzICR7cG9zdERhdGEubGVuZ3RofSBieXRlcy4gVGhlIGxpbWl0IGlzICR7TUFYX1JFUVVFU1RfQk9EWV9TSVpFfSBieXRlc2AsXG4gICAgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IHBvc3QoYCR7QkFTRV9VUkx9dGVsZW1ldHJ5LyR7cmVwb3J0UGFyYW1zLnByb2R1Y3R9YCwgcG9zdERhdGEpO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAvLyBMb2cgZXJyb3JzIHdyaXRpbmcgdG8gY2hlY2twb2ludFxuICAgIHByb2Nlc3NMb2dnZXJFcnJvcihlLm1lc3NhZ2UpO1xuICB9XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["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;AAKF,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAKF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,qBAAa,yBAA0B,YAAW,6BAA6B;IAC7E,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjD,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjC,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,IAAI,EAAE,6BAA6B,GAAG,MAAM;IAsBxD,IAAW,SAAS,WAEnB;IAED,IAAW,QAAQ,WAElB;IAED,OAAO,CAAC,yBAAyB;CA2GlC;AAED,qBAAa,2BAA4B,YAAW,6BAA6B;IAC/E,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjC,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,IAAI,EAAE,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,GAAG,MAAM;IAiBrE,OAAO,CAAC,yBAAyB;CAoBlC;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,2BAA2B,EAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CAC3C;AAED,eAAO,MAAM,WAAW,gBAAiB,MAAM,WAuB9C,CAAC;AAEF,wBAAgB,cAAc,CAC5B,UAAU,SAAwC,GACjD,MAAM,CAQR;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIlE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,cAS1C"}
package/src/config.js DELETED
@@ -1,267 +0,0 @@
1
- "use strict";
2
- /**
3
- * Copyright (c) HashiCorp, Inc.
4
- * SPDX-License-Identifier: MPL-2.0
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || function (mod) {
23
- if (mod && mod.__esModule) return mod;
24
- var result = {};
25
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
- __setModuleDefault(result, mod);
27
- return result;
28
- };
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.logTimespan = exports.shouldCheckCodeMakerOutput = exports.readConfigSync = exports.parseConfig = exports.TerraformProviderConstraint = exports.TerraformModuleConstraint = exports.isLocalModule = exports.CONFIG_DEFAULTS = exports.LANGUAGES = exports.Language = void 0;
31
- const fs = __importStar(require("fs-extra"));
32
- const path = __importStar(require("path"));
33
- const logging_1 = require("./logging");
34
- const terraform_module_1 = require("./terraform-module");
35
- const process_1 = require("process");
36
- const codemaker_1 = require("codemaker");
37
- var Language;
38
- (function (Language) {
39
- Language["TYPESCRIPT"] = "typescript";
40
- Language["PYTHON"] = "python";
41
- Language["CSHARP"] = "csharp";
42
- Language["JAVA"] = "java";
43
- Language["GO"] = "go";
44
- })(Language || (exports.Language = Language = {}));
45
- exports.LANGUAGES = [
46
- Language.TYPESCRIPT,
47
- Language.PYTHON,
48
- Language.JAVA,
49
- Language.CSHARP,
50
- Language.GO,
51
- ];
52
- const CONTEXT_ENV = "CDKTF_CONTEXT_JSON";
53
- const CONFIG_FILE = "cdktf.json";
54
- exports.CONFIG_DEFAULTS = {
55
- output: "cdktf.out",
56
- codeMakerOutput: ".gen",
57
- };
58
- function isPresent(input) {
59
- return Array.isArray(input) && input.length > 0;
60
- }
61
- function getLocalMatch(source) {
62
- return source.match(/^(\.\/|\.\.\/|\.\\\\|\.\.\\\\)(.*)/);
63
- }
64
- function isLocalModule(source) {
65
- return getLocalMatch(source) !== null;
66
- }
67
- exports.isLocalModule = isLocalModule;
68
- class TerraformModuleConstraint {
69
- constructor(item) {
70
- if (typeof item === "string") {
71
- const parsed = this.parseDependencyConstraint(item);
72
- this.name = parsed.name;
73
- this.source = parsed.source;
74
- this.fqn = parsed.fqn;
75
- this.version = parsed.version;
76
- this.namespace = parsed.namespace;
77
- }
78
- else {
79
- this.source = item.source;
80
- this.name = item.name;
81
- this.fqn = item.name;
82
- this.version = item.version;
83
- this.namespace = item.namespace;
84
- }
85
- const localMatch = getLocalMatch(this.source);
86
- if (localMatch) {
87
- this.localSourceAbsolutePath = path.join(process.cwd(), this.source);
88
- }
89
- }
90
- get className() {
91
- return (0, codemaker_1.toPascalCase)(this.name.replace(/[-/.]/g, "_"));
92
- }
93
- get fileName() {
94
- return this.namespace ? `${this.namespace}/${this.name}` : this.name;
95
- }
96
- parseDependencyConstraint(item) {
97
- var _a, _b, _c;
98
- const localMatch = getLocalMatch(item);
99
- if (localMatch) {
100
- const fqn = localMatch[2];
101
- const nameParts = fqn.split("/");
102
- const name = (_a = nameParts.pop()) !== null && _a !== void 0 ? _a : fqn;
103
- const namespace = nameParts.pop();
104
- return {
105
- name,
106
- fqn,
107
- source: item,
108
- namespace,
109
- };
110
- }
111
- const [source, version] = item.split("@");
112
- let moduleParts = source.split("//");
113
- if ((0, terraform_module_1.isRegistryModule)(moduleParts[0])) {
114
- const nameParts = moduleParts[0].split("/");
115
- const provider = nameParts.pop(); // last part is the provider
116
- let name = (_b = nameParts.pop()) !== null && _b !== void 0 ? _b : source;
117
- let namespace = `${nameParts.pop()}/${provider}`;
118
- if (moduleParts.length > 1) {
119
- const moduleNameParts = moduleParts[1].split("/");
120
- const moduleName = moduleNameParts.pop();
121
- namespace = `${namespace}/${name}/${moduleNameParts.join("/")}`;
122
- name = moduleName !== null && moduleName !== void 0 ? moduleName : name;
123
- }
124
- return {
125
- name,
126
- source,
127
- version,
128
- namespace,
129
- fqn: source.replace("//", "/").replace(/\./g, "-"),
130
- };
131
- }
132
- let toProcess = item; // process one part at a time
133
- // strip off any prefix
134
- const prefixMatch = toProcess.match(/^([a-zA-Z0-9]*)::(.*)/);
135
- if (prefixMatch) {
136
- toProcess = prefixMatch[2];
137
- }
138
- // strip off any protocol
139
- const protocolMatch = toProcess.match(/^([a-zA-Z]*):\/\/(.*)/);
140
- if (protocolMatch) {
141
- toProcess = protocolMatch[2];
142
- }
143
- // anything before last ':' won't contribute
144
- const colonParts = toProcess.split(":");
145
- toProcess = (_c = colonParts.pop()) !== null && _c !== void 0 ? _c : toProcess;
146
- // strip off any port
147
- const portMatch = toProcess.match(/^[\d]*(.*)/);
148
- if (portMatch) {
149
- toProcess = portMatch[1];
150
- }
151
- // strip off any hostname
152
- const hostMatch = toProcess.match(/[^/]*\.[^/]*\/(.*)/);
153
- if (hostMatch) {
154
- toProcess = hostMatch[1];
155
- }
156
- // strip off any arguments
157
- const argumentMatch = toProcess.match(/(.*)\?.*/);
158
- if (argumentMatch) {
159
- toProcess = argumentMatch[1];
160
- }
161
- // strip off any types
162
- toProcess = toProcess.replace(/\.git|\.hg|\.zip/, "");
163
- moduleParts = toProcess.split("//");
164
- const nameParts = moduleParts[0].split("/");
165
- let name = nameParts.pop();
166
- let namespace = nameParts.pop();
167
- if (!name) {
168
- throw new Error(`Module name should be properly set in ${item}`);
169
- }
170
- if (moduleParts.length > 1) {
171
- const moduleNameParts = moduleParts[1].split("/");
172
- const moduleName = moduleNameParts.pop();
173
- if (namespace) {
174
- namespace = `${namespace}/${name}/${moduleNameParts.join("/")}`;
175
- }
176
- else {
177
- namespace = `${name}/${moduleNameParts.join("/")}`;
178
- }
179
- name = moduleName !== null && moduleName !== void 0 ? moduleName : name;
180
- }
181
- return {
182
- name,
183
- source: item,
184
- fqn: toProcess.replace("//", "/"),
185
- namespace,
186
- };
187
- }
188
- }
189
- exports.TerraformModuleConstraint = TerraformModuleConstraint;
190
- class TerraformProviderConstraint {
191
- constructor(item) {
192
- if (typeof item === "string") {
193
- const parsed = this.parseDependencyConstraint(item);
194
- this.name = parsed.name;
195
- this.fqn = parsed.fqn;
196
- this.source = parsed.fqn;
197
- this.version = parsed.version;
198
- this.namespace = parsed.namespace;
199
- }
200
- else {
201
- this.name = item.name;
202
- this.fqn = item.name;
203
- this.version = item.version;
204
- this.source = item.source;
205
- this.namespace = item.namespace;
206
- }
207
- }
208
- parseDependencyConstraint(item) {
209
- const [fqn, version] = item.split("@");
210
- const nameParts = fqn.split("/");
211
- const name = nameParts.pop();
212
- const namespace = nameParts.pop();
213
- if (!name) {
214
- throw new Error(`Provider name should be properly set in ${item}`);
215
- }
216
- return {
217
- name,
218
- source: fqn,
219
- // Terraform doesn't support *, instead no version is specified
220
- version: version === "*" ? undefined : version,
221
- fqn,
222
- namespace,
223
- };
224
- }
225
- }
226
- exports.TerraformProviderConstraint = TerraformProviderConstraint;
227
- const parseConfig = (configJSON) => {
228
- var _a, _b;
229
- const config = {
230
- ...exports.CONFIG_DEFAULTS,
231
- ...JSON.parse(configJSON || "{}"),
232
- };
233
- if (isPresent(config.terraformModules)) {
234
- config.terraformModules = (_a = config.terraformModules) === null || _a === void 0 ? void 0 : _a.map((mod) => new TerraformModuleConstraint(mod));
235
- }
236
- if (isPresent(config.terraformProviders)) {
237
- config.terraformProviders = (_b = config.terraformProviders) === null || _b === void 0 ? void 0 : _b.map((provider) => new TerraformProviderConstraint(provider));
238
- }
239
- if (config.context) {
240
- process_1.env[CONTEXT_ENV] = JSON.stringify(config.context);
241
- }
242
- return config;
243
- };
244
- exports.parseConfig = parseConfig;
245
- function readConfigSync(configFile = path.join(process.cwd(), CONFIG_FILE)) {
246
- let configFileContent;
247
- if (fs.existsSync(configFile)) {
248
- configFileContent = fs.readFileSync(configFile).toString();
249
- }
250
- return (0, exports.parseConfig)(configFileContent);
251
- }
252
- exports.readConfigSync = readConfigSync;
253
- function shouldCheckCodeMakerOutput(config) {
254
- return (isPresent(config.terraformModules) || isPresent(config.terraformProviders));
255
- }
256
- exports.shouldCheckCodeMakerOutput = shouldCheckCodeMakerOutput;
257
- function logTimespan(message) {
258
- logging_1.logger.debug(`Start timer for ${message}...`);
259
- const start = Date.now();
260
- return function logTimespanEnd() {
261
- const end = Date.now();
262
- const duration = end - start;
263
- logging_1.logger.debug(`${message} took ${duration}ms`);
264
- };
265
- }
266
- exports.logTimespan = logTimespan;
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUM3Qix1Q0FBbUM7QUFDbkMseURBQXNEO0FBQ3RELHFDQUE4QjtBQUM5Qix5Q0FBeUM7QUFFekMsSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLHFDQUF5QixDQUFBO0lBQ3pCLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0lBQ2pCLHlCQUFhLENBQUE7SUFDYixxQkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQU5XLFFBQVEsd0JBQVIsUUFBUSxRQU1uQjtBQUVZLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLFFBQVEsQ0FBQyxVQUFVO0lBQ25CLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLElBQUk7SUFDYixRQUFRLENBQUMsTUFBTTtJQUNmLFFBQVEsQ0FBQyxFQUFFO0NBQ1osQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBRXpDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUNwQixRQUFBLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsV0FBVztJQUNuQixlQUFlLEVBQUUsTUFBTTtDQUN4QixDQUFDO0FBRUYsU0FBUyxTQUFTLENBQUMsS0FBd0I7SUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFTRCxTQUFTLGFBQWEsQ0FBQyxNQUFjO0lBQ25DLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsTUFBYztJQUMxQyxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENB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QyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzlCLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELE9BQU8sSUFBQSxtQkFBVyxFQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDeEMsQ0FBQztBQVZELHdDQVVDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsTUFBYztJQUN2RCxPQUFPLENBQ0wsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FDM0UsQ0FBQztBQUNKLENBQUM7QUFKRCxnRUFJQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxPQUFlO0lBQ3pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUV6QixPQUFPLFNBQVMsY0FBYztRQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUM3QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sU0FBUyxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQztBQUNKLENBQUM7QUFURCxrQ0FTQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBpc1JlZ2lzdHJ5TW9kdWxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLW1vZHVsZVwiO1xuaW1wb3J0IHsgZW52IH0gZnJvbSBcInByb2Nlc3NcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSB9IGZyb20gXCJjb2RlbWFrZXJcIjtcblxuZXhwb3J0IGVudW0gTGFuZ3VhZ2Uge1xuICBUWVBFU0NSSVBUID0gXCJ0eXBlc2NyaXB0XCIsXG4gIFBZVEhPTiA9IFwicHl0aG9uXCIsXG4gIENTSEFSUCA9IFwiY3NoYXJwXCIsXG4gIEpBVkEgPSBcImphdmFcIixcbiAgR08gPSBcImdvXCIsXG59XG5cbmV4cG9ydCBjb25zdCBMQU5HVUFHRVMgPSBbXG4gIExhbmd1YWdlLlRZUEVTQ1JJUFQsXG4gIExhbmd1YWdlLlBZVEhPTixcbiAgTGFuZ3VhZ2UuSkFWQSxcbiAgTGFuZ3VhZ2UuQ1NIQVJQLFxuICBMYW5ndWFnZS5HTyxcbl07XG5cbmNvbnN0IENPTlRFWFRfRU5WID0gXCJDREtURl9DT05URVhUX0pTT05cIjtcblxuY29uc3QgQ09ORklHX0ZJTEUgPSBcImNka3RmLmpzb25cIjtcbmV4cG9ydCBjb25zdCBDT05GSUdfREVGQVVMVFMgPSB7XG4gIG91dHB1dDogXCJjZGt0Zi5vdXRcIixcbiAgY29kZU1ha2VyT3V0cHV0OiBcIi5nZW5cIixcbn07XG5cbmZ1bmN0aW9uIGlzUHJlc2VudChpbnB1dDogYW55W10gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaW5wdXQpICYmIGlucHV0Lmxlbmd0aCA+IDA7XG59XG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxNYXRjaChzb3VyY2U6IHN0cmluZyk6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHtcbiAgcmV0dXJuIHNvdXJjZS5tYXRjaCgvXihcXC5cXC98XFwuXFwuXFwvfFxcLlxcXFxcXFxcfFxcLlxcLlxcXFxcXFxcKSguKikvKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxNb2R1bGUoc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldExvY2FsTWF0Y2goc291cmNlKSAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGxvY2FsU291cmNlQWJzb2x1dGVQYXRoPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGl0ZW06IFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoaXRlbSk7XG4gICAgICB0aGlzLm5hbWUgPSBwYXJzZWQubmFtZTtcbiAgICAgIHRoaXMuc291cmNlID0gcGFyc2VkLnNvdXJjZTtcbiAgICAgIHRoaXMuZnFuID0gcGFyc2VkLmZxbjtcbiAgICAgIHRoaXMudmVyc2lvbiA9IHBhcnNlZC52ZXJzaW9uO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBwYXJzZWQubmFtZXNwYWNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLnZlcnNpb24gPSBpdGVtLnZlcnNpb247XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IGl0ZW0ubmFtZXNwYWNlO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsTWF0Y2ggPSBnZXRMb2NhbE1hdGNoKHRoaXMuc291cmNlKTtcbiAgICBpZiAobG9jYWxNYXRjaCkge1xuICAgICAgdGhpcy5sb2NhbFNvdXJjZUFic29sdXRlUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCB0aGlzLnNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjbGFzc05hbWUoKSB7XG4gICAgcmV0dXJuIHRvUGFzY2FsQ2FzZSh0aGlzLm5hbWUucmVwbGFjZSgvWy0vLl0vZywgXCJfXCIpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZXNwYWNlID8gYCR7dGhpcy5uYW1lc3BhY2V9LyR7dGhpcy5uYW1lfWAgOiB0aGlzLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoXG4gICAgaXRlbTogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gICAgY29uc3QgbG9jYWxNYXRjaCA9IGdldExvY2FsTWF0Y2goaXRlbSk7XG4gICAgaWYgKGxvY2FsTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGZxbiA9IGxvY2FsTWF0Y2hbMl07XG4gICAgICBjb25zdCBuYW1lUGFydHMgPSBmcW4uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKSA/PyBmcW47XG4gICAgICBjb25zdCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGZxbixcbiAgICAgICAgc291cmNlOiBpdGVtLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IFtzb3VyY2UsIHZlcnNpb25dID0gaXRlbS5zcGxpdChcIkBcIik7XG4gICAgbGV0IG1vZHVsZVBhcnRzID0gc291cmNlLnNwbGl0KFwiLy9cIik7XG4gICAgaWYgKGlzUmVnaXN0cnlNb2R1bGUobW9kdWxlUGFydHNbMF0pKSB7XG4gICAgICBjb25zdCBuYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1swXS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBwcm92aWRlciA9IG5hbWVQYXJ0cy5wb3AoKTsgLy8gbGFzdCBwYXJ0IGlzIHRoZSBwcm92aWRlclxuICAgICAgbGV0IG5hbWUgPSBuYW1lUGFydHMucG9wKCkgPz8gc291cmNlO1xuICAgICAgbGV0IG5hbWVzcGFjZSA9IGAke25hbWVQYXJ0cy5wb3AoKX0vJHtwcm92aWRlcn1gO1xuXG4gICAgICBpZiAobW9kdWxlUGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1sxXS5zcGxpdChcIi9cIik7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lUGFydHMucG9wKCk7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWVzcGFjZX0vJHtuYW1lfS8ke21vZHVsZU5hbWVQYXJ0cy5qb2luKFwiL1wiKX1gO1xuICAgICAgICBuYW1lID0gbW9kdWxlTmFtZSA/PyBuYW1lO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHZlcnNpb24sXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgZnFuOiBzb3VyY2UucmVwbGFjZShcIi8vXCIsIFwiL1wiKS5yZXBsYWNlKC9cXC4vZywgXCItXCIpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgdG9Qcm9jZXNzID0gaXRlbTsgLy8gcHJvY2VzcyBvbmUgcGFydCBhdCBhIHRpbWVcblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcHJlZml4XG4gICAgY29uc3QgcHJlZml4TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL14oW2EtekEtWjAtOV0qKTo6KC4qKS8pO1xuICAgIGlmIChwcmVmaXhNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gcHJlZml4TWF0Y2hbMl07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBwcm90b2NvbFxuICAgIGNvbnN0IHByb3RvY29sTWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL14oW2EtekEtWl0qKTpcXC9cXC8oLiopLyk7XG4gICAgaWYgKHByb3RvY29sTWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IHByb3RvY29sTWF0Y2hbMl07XG4gICAgfVxuXG4gICAgLy8gYW55dGhpbmcgYmVmb3JlIGxhc3QgJzonIHdvbid0IGNvbnRyaWJ1dGVcbiAgICBjb25zdCBjb2xvblBhcnRzID0gdG9Qcm9jZXNzLnNwbGl0KFwiOlwiKTtcbiAgICB0b1Byb2Nlc3MgPSBjb2xvblBhcnRzLnBvcCgpID8/IHRvUHJvY2VzcztcblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcG9ydFxuICAgIGNvbnN0IHBvcnRNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvXltcXGRdKiguKikvKTtcbiAgICBpZiAocG9ydE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBwb3J0TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBob3N0bmFtZVxuICAgIGNvbnN0IGhvc3RNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvW14vXSpcXC5bXi9dKlxcLyguKikvKTtcbiAgICBpZiAoaG9zdE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBob3N0TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBhcmd1bWVudHNcbiAgICBjb25zdCBhcmd1bWVudE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC8oLiopXFw/LiovKTtcbiAgICBpZiAoYXJndW1lbnRNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gYXJndW1lbnRNYXRjaFsxXTtcbiAgICB9XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHR5cGVzXG4gICAgdG9Qcm9jZXNzID0gdG9Qcm9jZXNzLnJlcGxhY2UoL1xcLmdpdHxcXC5oZ3xcXC56aXAvLCBcIlwiKTtcblxuICAgIG1vZHVsZVBhcnRzID0gdG9Qcm9jZXNzLnNwbGl0KFwiLy9cIik7XG4gICAgY29uc3QgbmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMF0uc3BsaXQoXCIvXCIpO1xuICAgIGxldCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGxldCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBuYW1lIHNob3VsZCBiZSBwcm9wZXJseSBzZXQgaW4gJHtpdGVtfWApO1xuICAgIH1cblxuICAgIGlmIChtb2R1bGVQYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1sxXS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lID0gbW9kdWxlTmFtZVBhcnRzLnBvcCgpO1xuICAgICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lc3BhY2V9LyR7bmFtZX0vJHttb2R1bGVOYW1lUGFydHMuam9pbihcIi9cIil9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWV9LyR7bW9kdWxlTmFtZVBhcnRzLmpvaW4oXCIvXCIpfWA7XG4gICAgICB9XG4gICAgICBuYW1lID0gbW9kdWxlTmFtZSA/PyBuYW1lO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgc291cmNlOiBpdGVtLFxuICAgICAgZnFuOiB0b1Byb2Nlc3MucmVwbGFjZShcIi8vXCIsIFwiL1wiKSxcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihpdGVtOiBPbWl0PFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50LCBcImZxblwiPiB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KGl0ZW0pO1xuICAgICAgdGhpcy5uYW1lID0gcGFyc2VkLm5hbWU7XG4gICAgICB0aGlzLmZxbiA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnNvdXJjZSA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnZlcnNpb24gPSBwYXJzZWQudmVyc2lvbjtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gcGFyc2VkLm5hbWVzcGFjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLnZlcnNpb24gPSBpdGVtLnZlcnNpb247XG4gICAgICB0aGlzLnNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBpdGVtLm5hbWVzcGFjZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoXG4gICAgaXRlbTogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gICAgY29uc3QgW2ZxbiwgdmVyc2lvbl0gPSBpdGVtLnNwbGl0KFwiQFwiKTtcbiAgICBjb25zdCBuYW1lUGFydHMgPSBmcW4uc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IG5hbWUgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm92aWRlciBuYW1lIHNob3VsZCBiZSBwcm9wZXJseSBzZXQgaW4gJHtpdGVtfWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgc291cmNlOiBmcW4sXG4gICAgICAvLyBUZXJyYWZvcm0gZG9lc24ndCBzdXBwb3J0ICosIGluc3RlYWQgbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICAgIHZlcnNpb246IHZlcnNpb24gPT09IFwiKlwiID8gdW5kZWZpbmVkIDogdmVyc2lvbixcbiAgICAgIGZxbixcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnIHtcbiAgcmVhZG9ubHkgYXBwPzogc3RyaW5nO1xuICByZWFkb25seSBsYW5ndWFnZT86IExhbmd1YWdlO1xuICByZWFkb25seSBvdXRwdXQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY29kZU1ha2VyT3V0cHV0OiBzdHJpbmc7XG4gIHRlcnJhZm9ybVByb3ZpZGVycz86IFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludFtdO1xuICB0ZXJyYWZvcm1Nb2R1bGVzPzogVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludFtdO1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29uZmlnID0gKGNvbmZpZ0pTT04/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgY29uZmlnOiBDb25maWcgPSB7XG4gICAgLi4uQ09ORklHX0RFRkFVTFRTLFxuICAgIC4uLkpTT04ucGFyc2UoY29uZmlnSlNPTiB8fCBcInt9XCIpLFxuICB9O1xuXG4gIGlmIChpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMpKSB7XG4gICAgY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMgPSBjb25maWcudGVycmFmb3JtTW9kdWxlcz8ubWFwKFxuICAgICAgKG1vZCkgPT4gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQobW9kKSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGlzUHJlc2VudChjb25maWcudGVycmFmb3JtUHJvdmlkZXJzKSkge1xuICAgIGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcnMgPSBjb25maWcudGVycmFmb3JtUHJvdmlkZXJzPy5tYXAoXG4gICAgICAocHJvdmlkZXIpID0+IG5ldyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQocHJvdmlkZXIpLFxuICAgICk7XG4gIH1cblxuICBpZiAoY29uZmlnLmNvbnRleHQpIHtcbiAgICBlbnZbQ09OVEVYVF9FTlZdID0gSlNPTi5zdHJpbmdpZnkoY29uZmlnLmNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkQ29uZmlnU3luYyhcbiAgY29uZmlnRmlsZSA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBDT05GSUdfRklMRSksXG4pOiBDb25maWcge1xuICBsZXQgY29uZmlnRmlsZUNvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBpZiAoZnMuZXhpc3RzU3luYyhjb25maWdGaWxlKSkge1xuICAgIGNvbmZpZ0ZpbGVDb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGNvbmZpZ0ZpbGUpLnRvU3RyaW5nKCk7XG4gIH1cblxuICByZXR1cm4gcGFyc2VDb25maWcoY29uZmlnRmlsZUNvbnRlbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkQ2hlY2tDb2RlTWFrZXJPdXRwdXQoY29uZmlnOiBDb25maWcpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMpIHx8IGlzUHJlc2VudChjb25maWcudGVycmFmb3JtUHJvdmlkZXJzKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nVGltZXNwYW4obWVzc2FnZTogc3RyaW5nKSB7XG4gIGxvZ2dlci5kZWJ1ZyhgU3RhcnQgdGltZXIgZm9yICR7bWVzc2FnZX0uLi5gKTtcbiAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuXG4gIHJldHVybiBmdW5jdGlvbiBsb2dUaW1lc3BhbkVuZCgpIHtcbiAgICBjb25zdCBlbmQgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gZW5kIC0gc3RhcnQ7XG4gICAgbG9nZ2VyLmRlYnVnKGAke21lc3NhZ2V9IHRvb2sgJHtkdXJhdGlvbn1tc2ApO1xuICB9O1xufVxuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["config.test.ts"],"names":[],"mappings":"AAOA,wBAAsB,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,iBAOpE"}