cdk8s-cli 2.202.1 → 2.202.3
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/lib/import/codegen.js +4 -4
- package/lib/import/helm.js +4 -4
- package/package.json +2 -2
package/lib/import/codegen.js
CHANGED
|
@@ -175,10 +175,10 @@ function generateHelmConstruct(typegen, def) {
|
|
|
175
175
|
const chartVersion = def.chartVersion;
|
|
176
176
|
// Create custom type
|
|
177
177
|
typegen.emitCustomType(chartName, code => {
|
|
178
|
-
|
|
178
|
+
let valuesInterface = `${chartName}Values`;
|
|
179
179
|
if (schema !== undefined) {
|
|
180
180
|
// Creating values interface
|
|
181
|
-
emitValuesInterface();
|
|
181
|
+
valuesInterface = emitValuesInterface();
|
|
182
182
|
function emitValuesInterface() {
|
|
183
183
|
const copyOfSchema = schema ? addAdditionalValuesToProps(schema) : undefined;
|
|
184
184
|
if (copyOfSchema && copyOfSchema.properties) {
|
|
@@ -193,7 +193,7 @@ function generateHelmConstruct(typegen, def) {
|
|
|
193
193
|
additionalProperties: { type: 'object' },
|
|
194
194
|
};
|
|
195
195
|
}
|
|
196
|
-
typegen.emitType(valuesInterface, copyOfSchema, def.fqn);
|
|
196
|
+
return typegen.emitType(valuesInterface, copyOfSchema, def.fqn);
|
|
197
197
|
}
|
|
198
198
|
function addAdditionalValuesToProps(schma) {
|
|
199
199
|
const tempSchema = schma;
|
|
@@ -313,4 +313,4 @@ exports.generateHelmConstruct = generateHelmConstruct;
|
|
|
313
313
|
function hasRequiredProps(schema) {
|
|
314
314
|
return schema?.required && Array.isArray(schema.required) && schema.required.length > 0;
|
|
315
315
|
}
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvY29kZWdlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBb0Q7QUFJcEQseUNBQTBDO0FBRTFDLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQztBQStCekI7Ozs7O0dBS0c7QUFDSCxTQUFnQixVQUFVLENBQUMsSUFBZSxFQUFFLE1BQWU7SUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ25DLElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO0tBQ3hGO1NBQU07UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7S0FDckU7SUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2QsQ0FBQztBQVRELGdDQVNDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLE1BQWUsRUFBRSxJQUFZLEVBQUUsT0FBZTtJQUN4RSxzRUFBc0U7SUFDdEUsdUZBQXVGO0lBQ3ZGLDJFQUEyRTtJQUMzRSxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSx3QkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLE9BQU8sR0FBRyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQU5ELGtDQU1DO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsR0FBd0I7SUFDM0QsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1B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QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXpLRCxzREF5S0M7QUFFRCxTQUFTLGdCQUFnQixDQUFDLE1BQW1CO0lBQzNDLE9BQU8sTUFBTSxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDMUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciwgdG9QYXNjYWxDYXNlIH0gZnJvbSAnY29kZW1ha2VyJztcbi8vIHdlIGp1c3QgbmVlZCB0aGUgdHlwZXMgZnJvbSBqc29uLXNjaGVtYVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgSlNPTlNjaGVtYTQgfSBmcm9tICdqc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBUeXBlR2VuZXJhdG9yIH0gZnJvbSAnanNvbjJqc2lpJztcblxuY29uc3QgTUFOSUZFU1RfU1RBVElDX01FVEhPRCA9ICdtYW5pZmVzdCc7XG5jb25zdCBHVktfU1RBVElDID0gJ0dWSyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpT2JqZWN0RGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICByZWFkb25seSBncm91cDogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2NoZW1hOiBKU09OU2NoZW1hNDtcblxuICAvKipcbiAgICogSXMgdGhpcyBpcyBhIGN1c3RvbSByZXNvdXJjZSAoaW1wb3J0ZWQgZnJvbSBhIENSRCkgb3IgYSBjb3JlIEFQSSBvYmplY3Q/XG4gICAqL1xuICByZWFkb25seSBjdXN0b206IGJvb2xlYW47XG5cbiAgLypcbiAgICogSW5kaWNhdGVzIGlmIGEgcHJlZml4IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29uc3RydWN0IGNsYXNzIG5hbWUuIEZvclxuICAgKiBleGFtcGxlLCBmb3IgbmF0aXZlIGs4cyBhcGkgb2JqZWN0cywgd2UgYWRkIGBLdWJlYCBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgLypcbiAgICogSW5kaWNhdGVzIGlmIGEgc3VmZml4IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29uc3RydWN0IGNsYXNzIG5hbWUuIEZvclxuICAgKiBleGFtcGxlLCBmb3IgbXVsdGktdmVyc2lvbmVkIGNyZHMsIHdlIGFkZCB0aGUgdmVyc2lvbiBhcyB0aGUgc3VmZml4LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqL1xuICByZWFkb25seSBzdWZmaXg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW1pdHMgdGhlIGhlYWRlciBmb3IgYSBnZW5lcmF0ZWQgaW1wb3J0cyBmaWxlLlxuICpcbiAqIEBwYXJhbSBjdXN0b20gLSB3aGV0aGVyIHRoZSBoZWFkZXIgaXMgYmVpbmcgZW1pdHRlZCBmb3IgYSBjdXN0b20gcmVzb3VyY2VcbiAqIChpbXBvcnRlZCBmcm9tIGEgQ1JEKSBvciBhIGNvcmUgQVBJIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1pdEhlYWRlcihjb2RlOiBDb2RlTWFrZXIsIGN1c3RvbTogYm9vbGVhbikge1xuICBjb2RlLmxpbmUoJy8vIGdlbmVyYXRlZCBieSBjZGs4cycpO1xuICBpZiAoY3VzdG9tKSB7XG4gICAgY29kZS5saW5lKCdpbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSBcXCdjZGs4c1xcJzsnKTtcbiAgfSBlbHNlIHtcbiAgICBjb2RlLmxpbmUoJ2ltcG9ydCB7IEFwaU9iamVjdCwgR3JvdXBWZXJzaW9uS2luZCB9IGZyb20gXFwnY2RrOHNcXCc7Jyk7XG4gIH1cbiAgY29kZS5saW5lKCdpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFxcJ2NvbnN0cnVjdHNcXCc7Jyk7XG4gIGNvZGUubGluZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZU5hbWUoY3VzdG9tOiBib29sZWFuLCBraW5kOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykge1xuICAvLyBhZGQgYW4gQVBJIHZlcnNpb24gcG9zdGZpeCBvbmx5IGlmIHRoaXMgaXMgY29yZSBBUEkgKGBpbXBvcnQgazhzYCkuXG4gIC8vIFRPRE8gPSB3aGF0IGFib3V0IHRoZSByZXN0IG9mIHRoZSBuYW1lc3BhY2U/IHRoZSBzYW1lIHJlc291cmNlIGNhbiBleGlzdCBpbiBtdWx0aXBsZVxuICAvLyBhcGkgZ3JvdXBzIChJbmdyZXNzIGZvciBleGFtcGxlIGV4aXN0cyBpbiAnZXh0ZW5zaW9ucycgYW5kICduZXR3b3JraW5nJylcbiAgY29uc3QgcG9zdGZpeCA9IChjdXN0b20gfHwgdmVyc2lvbiA9PT0gJ3YxJykgPyAnJyA6IHRvUGFzY2FsQ2FzZSh2ZXJzaW9uKTtcbiAgcmV0dXJuIGAke2tpbmR9JHtwb3N0Zml4fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25zdHJ1Y3RUeXBlTmFtZShkZWY6IEFwaU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3QgcHJlZml4ID0gZGVmLnByZWZpeCA/PyAnJztcbiAgY29uc3Qgc3VmZml4ID0gZGVmLnN1ZmZpeCA/PyAnJztcbiAgcmV0dXJuIFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUoYCR7cHJlZml4fSR7Z2V0VHlwZU5hbWUoZGVmLmN1c3RvbSwgZGVmLmtpbmQsIGRlZi52ZXJzaW9uKX0ke3N1ZmZpeH1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3BzVHlwZU5hbWUoZGVmOiBBcGlPYmplY3REZWZpbml0aW9uKSB7XG4gIGNvbnN0IGNvbnN0cnVjdE5hbWUgPSBnZXRDb25zdHJ1Y3RUeXBlTmFtZShkZWYpO1xuICByZXR1cm4gVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShgJHtjb25zdHJ1Y3ROYW1lfVByb3BzYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUNvbnN0cnVjdCh0eXBlZ2VuOiBUeXBlR2VuZXJhdG9yLCBkZWY6IEFwaU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3QgY29uc3RydWN0TmFtZSA9IGdldENvbnN0cnVjdFR5cGVOYW1lKGRlZik7XG5cbiAgaWYgKGRlZi5jdXN0b20pIHtcbiAgICB0eXBlZ2VuLmVtaXRDdXN0b21UeXBlKCdBcGlPYmplY3RNZXRhZGF0YScsICgpID0+IHt9KTtcbiAgfVxuXG4gIHR5cGVnZW4uZW1pdEN1c3RvbVR5cGUoY29uc3RydWN0TmFtZSwgY29kZSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gZGVmLnNjaGVtYTtcblxuICAgIC8vIGBwcm9wc1R5cGVOYW1lYCBjb3VsZCBhbHNvIGJlIFwiYW55XCIgaWYgd2UgY2FuJ3QgcGFyc2UgdGhlIHNjaGVtYSBmb3Igc29tZSByZWFzb25cbiAgICBjb25zdCBwcm9wc1R5cGVOYW1lID0gZW1pdFByb3BzU3RydWN0KCk7XG4gICAgY29uc3QgZ3JvdXBQcmVmaXggPSBkZWYuZ3JvdXAgPyBgJHtkZWYuZ3JvdXB9L2AgOiAnJztcbiAgICBjb25zdCBoYXNSZXF1aXJlZCA9IGhhc1JlcXVpcmVkUHJvcHMoc2NoZW1hKTtcbiAgICBjb25zdCBkZWZhdWx0UHJvcHMgPSBoYXNSZXF1aXJlZCA/ICcnIDogJyA9IHt9JztcbiAgICBlbWl0Q29uc3RydWN0KCk7XG5cbiAgICBmdW5jdGlvbiBlbWl0UHJvcHNTdHJ1Y3QoKSB7XG4gICAgICBjb25zdCBwcm9wc1NjaGVtYSA9IGNyZWF0ZVByb3BzU3RydWN0U2NoZW1hKCk7XG4gICAgICBjb25zdCBwcm9wc1N0cnVjdE5hbWUgPSBnZXRQcm9wc1R5cGVOYW1lKGRlZik7XG4gICAgICByZXR1cm4gdHlwZWdlbi5lbWl0VHlwZShwcm9wc1N0cnVjdE5hbWUsIHByb3BzU2NoZW1hLCBkZWYuZnFuKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVQcm9wc1N0cnVjdFNjaGVtYSgpIHtcbiAgICAgIGNvbnN0IGNvcHk6IEpTT05TY2hlbWE0ID0geyAuLi5kZWYuc2NoZW1hIHx8IHt9IH07XG4gICAgICBjb25zdCBwcm9wcyA9IGNvcHkucHJvcGVydGllcyA9IGNvcHkucHJvcGVydGllcyB8fCB7fTtcbiAgICAgIGRlbGV0ZSBwcm9wcy5hcGlWZXJzaW9uO1xuICAgICAgZGVsZXRlIHByb3BzLmtpbmQ7XG4gICAgICBkZWxldGUgcHJvcHMuc3RhdHVzO1xuICAgICAgZGVsZXRlIGNvcHlbJ3gta3ViZXJuZXRlcy1ncm91cC12ZXJzaW9uLWtpbmQnXTtcblxuICAgICAgY29weS5yZXF1aXJlZCA9IGNvcHkucmVxdWlyZWQgfHwgW107XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvcHkucmVxdWlyZWQpKSB7XG4gICAgICAgIGNvcHkucmVxdWlyZWQgPSBjb3B5LnJlcXVpcmVkLmZpbHRlcih4ID0+IHggIT09ICdhcGlWZXJzaW9uJyAmJiB4ICE9PSAna2luZCcgJiYgeCAhPT0gJ3N0YXR1cycpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGVmLmN1c3RvbSkge1xuICAgICAgICAvLyBhZGQgXCJtZXRhZGF0YVwiIGZpZWxkIGZvciBhbGwgQ1JEcywgb3ZlcnJpZGluZyBhbnkgZXhpc3RpbmcgdHlwaW5nc1xuICAgICAgICBjb3B5LnByb3BlcnRpZXMubWV0YWRhdGEgPSB7ICRyZWY6ICcjL2RlZmluaXRpb25zL0FwaU9iamVjdE1ldGFkYXRhJyB9O1xuICAgICAgfVxuXG4gICAgICAvLyByZW9yZGVyIHRvcC1sZXZlbCBrZXlzIHNvIHRoYXQgd2UgaGF2ZSBcIm1ldGFkYXRhXCIgZmlyc3QgYW5kIHRoZW4gYWxsIHRoZSByZXN0XG4gICAgICAvLyBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIGluIHRoZSBBcGlPYmplY3QncyB0b0pzb24gZnVuY3Rpb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9jZGs4cy10ZWFtL2NkazhzLWNvcmUvYmxvYi81OGZiOGMwODgyZGRkOTVhOWI5ZGVkYjQxMDdlMTJmNjAxNDQzY2Y0L3NyYy9hcGktb2JqZWN0LnRzI0wxODUpXG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrIG9mIFsnbWV0YWRhdGEnLCAuLi5PYmplY3Qua2V5cyhjb3B5LnByb3BlcnRpZXMpXSkge1xuICAgICAgICBpZiAoayBpbiBjb3B5LnByb3BlcnRpZXMpIHtcbiAgICAgICAgICByZXN1bHRba10gPSBjb3B5LnByb3BlcnRpZXNba107XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29weS5wcm9wZXJ0aWVzID0gcmVzdWx0O1xuICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdENvbnN0cnVjdCgpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqICR7ZGVmLnNjaGVtYT8uZGVzY3JpcHRpb24gPz8gJyd9YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIEBzY2hlbWEgJHtkZWYuZnFufWApO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgY2xhc3MgJHtjb25zdHJ1Y3ROYW1lfSBleHRlbmRzIEFwaU9iamVjdGApO1xuXG4gICAgICBlbWl0R1ZLKCk7XG5cbiAgICAgIGNvZGUubGluZSgnJyk7XG5cbiAgICAgIGVtaXRNYW5pZmVzdEZhY3RvcnkoKTtcblxuICAgICAgY29kZS5saW5lKCcnKTtcblxuICAgICAgZW1pdEluaXRpYWxpemVyKCk7XG5cbiAgICAgIGNvZGUubGluZSgnJyk7XG5cbiAgICAgIGVtaXRUb0pzb24oKTtcblxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdEdWSygpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIFJldHVybnMgdGhlIGFwaVZlcnNpb24gYW5kIGtpbmQgZm9yIFwiJHtkZWYuZnFufVwiYCk7XG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5vcGVuQmxvY2soYHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgJHtHVktfU1RBVElDfTogR3JvdXBWZXJzaW9uS2luZCA9YCk7XG4gICAgICBjb2RlLmxpbmUoYGFwaVZlcnNpb246ICcke2dyb3VwUHJlZml4fSR7ZGVmLnZlcnNpb259JyxgKTtcbiAgICAgIGNvZGUubGluZShga2luZDogJyR7ZGVmLmtpbmR9JyxgKTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRJbml0aWFsaXplcigpIHtcblxuICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgIGNvZGUubGluZShgICogRGVmaW5lcyBhIFwiJHtkZWYuZnFufVwiIEFQSSBvYmplY3RgKTtcbiAgICAgIGNvZGUubGluZSgnICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBvYmplY3QnKTtcbiAgICAgIGNvZGUubGluZSgnICogQHBhcmFtIGlkIGEgc2NvcGUtbG9jYWwgbmFtZSBmb3IgdGhlIG9iamVjdCcpO1xuICAgICAgY29kZS5saW5lKCcgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHMnKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG5cbiAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7cHJvcHNUeXBlTmFtZX0ke2RlZmF1bHRQcm9wc30pYCk7XG5cbiAgICAgIGNvZGUub3Blbignc3VwZXIoc2NvcGUsIGlkLCB7Jyk7XG4gICAgICBjb2RlLmxpbmUoYC4uLiR7Y29uc3RydWN0TmFtZX0uJHtHVktfU1RBVElDfSxgKTtcbiAgICAgIGNvZGUubGluZSgnLi4ucHJvcHMsJyk7XG4gICAgICBjb2RlLmNsb3NlKCd9KTsnKTtcblxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdE1hbmlmZXN0RmFjdG9yeSgpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIFJlbmRlcnMgYSBLdWJlcm5ldGVzIG1hbmlmZXN0IGZvciBcIiR7ZGVmLmZxbn1cIi5gKTtcbiAgICAgIGNvZGUubGluZSgnIConKTtcbiAgICAgIGNvZGUubGluZSgnICogVGhpcyBjYW4gYmUgdXNlZCB0byBpbmxpbmUgcmVzb3VyY2UgbWFuaWZlc3RzIGluc2lkZSBvdGhlciBvYmplY3RzIChlLmcuIGFzIHRlbXBsYXRlcykuJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wcycpO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcblxuICAgICAgY29kZS5vcGVuQmxvY2soYHB1YmxpYyBzdGF0aWMgJHtNQU5JRkVTVF9TVEFUSUNfTUVUSE9EfShwcm9wczogJHtwcm9wc1R5cGVOYW1lfSR7ZGVmYXVsdFByb3BzfSk6IGFueWApO1xuICAgICAgY29kZS5vcGVuKCdyZXR1cm4geycpO1xuICAgICAgY29kZS5saW5lKGAuLi4ke2NvbnN0cnVjdE5hbWV9LiR7R1ZLX1NUQVRJQ30sYCk7XG4gICAgICBjb2RlLmxpbmUoYC4uLnRvSnNvbl8ke3Byb3BzVHlwZU5hbWV9KHByb3BzKSxgKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0VG9Kc29uKCkge1xuICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgIGNvZGUubGluZSgnICogUmVuZGVycyB0aGUgb2JqZWN0IHRvIEt1YmVybmV0ZXMgSlNPTi4nKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICBjb2RlLm9wZW5CbG9jaygncHVibGljIG92ZXJyaWRlIHRvSnNvbigpOiBhbnknKTtcbiAgICAgIGNvZGUubGluZSgnY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTsnKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgICAgY29kZS5vcGVuKCdyZXR1cm4geycpO1xuICAgICAgY29kZS5saW5lKGAuLi4ke2NvbnN0cnVjdE5hbWV9LiR7R1ZLX1NUQVRJQ30sYCk7XG4gICAgICBjb2RlLmxpbmUoYC4uLnRvSnNvbl8ke3Byb3BzVHlwZU5hbWV9KHJlc29sdmVkKSxgKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEVtaXQgaW1wb3J0cyBmb3IgZ2VuZXJhdGVkIGhlbG0gY29uc3RydWN0XG4gKiBAcGFyYW0gY29kZSBDb2RlTWFrZXIgaXN0YW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1pdEhlbG1IZWFkZXIoY29kZTogQ29kZU1ha2VyKSB7XG4gIGNvZGUubGluZSgnLy8gZ2VuZXJhdGVkIGJ5IGNkazhzJyk7XG4gIGNvZGUubGluZSgnaW1wb3J0IHsgSGVsbSwgSGVsbVByb3BzIH0gZnJvbSBcXCdjZGs4c1xcJzsnKTtcbiAgY29kZS5saW5lKCdpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFxcJ2NvbnN0cnVjdHNcXCc7Jyk7XG4gIGNvZGUubGluZSgpO1xufVxuXG4vKipcbiAqIEhlbG0gT2JqZWN0IERlZmluaXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWxtT2JqZWN0RGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBgdmFsdWVzLnNjaGVtYS5qc29uYCBmb3IgdGhlIGhlbG0gY2hhcnRcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVtYTogSlNPTlNjaGVtYTQgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBDaGFydCBuYW1lXG4gICAqL1xuICByZWFkb25seSBjaGFydE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIENoYXJ0IHVybFxuICAgKi9cbiAgcmVhZG9ubHkgY2hhcnRVcmw6IHN0cmluZztcbiAgLyoqXG4gICAqIENoYXJ0IHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IGNoYXJ0VmVyc2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogQ2hhcnQgZGVwZW5kZW5jaWVzXG4gICAqL1xuICByZWFkb25seSBjaGFydERlcGVuZGVuY2llczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBGdWxseSBxdWFsaWZpZWQgbmFtZSBmb3IgdGhlIGNvbnN0cnVjdFxuICAgKi9cbiAgcmVhZG9ubHkgZnFuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVIZWxtQ29uc3RydWN0KHR5cGVnZW46IFR5cGVHZW5lcmF0b3IsIGRlZjogSGVsbU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3Qgbm9TcGVjaWFsQ2hhcnMgPSBkZWYuY2hhcnROYW1lLnJlcGxhY2UoLyhbXlxcdyBdfF8pL2csICcnKTtcbiAgY29uc3QgY2hhcnROYW1lID0gVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShub1NwZWNpYWxDaGFycyk7XG4gIGNvbnN0IHNjaGVtYSA9IGRlZi5zY2hlbWE7XG4gIGNvbnN0IHJlcG9VcmwgPSBkZWYuY2hhcnRVcmw7XG4gIGNvbnN0IGNoYXJ0VmVyc2lvbiA9IGRlZi5jaGFydFZlcnNpb247XG5cbiAgLy8gQ3JlYXRlIGN1c3RvbSB0eXBlXG4gIHR5cGVnZW4uZW1pdEN1c3RvbVR5cGUoY2hhcnROYW1lLCBjb2RlID0+IHtcblxuICAgIGNvbnN0IHZhbHVlc0ludGVyZmFjZSA9IGAke2NoYXJ0TmFtZX1WYWx1ZXNgO1xuICAgIGlmIChzY2hlbWEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gQ3JlYXRpbmcgdmFsdWVzIGludGVyZmFjZVxuICAgICAgZW1pdFZhbHVlc0ludGVyZmFjZSgpO1xuXG4gICAgICBmdW5jdGlvbiBlbWl0VmFsdWVzSW50ZXJmYWNlKCkge1xuXG4gICAgICAgIGNvbnN0IGNvcHlPZlNjaGVtYSA9IHNjaGVtYSA/IGFkZEFkZGl0aW9uYWxWYWx1ZXNUb1Byb3BzKHNjaGVtYSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGNvcHlPZlNjaGVtYSAmJiBjb3B5T2ZTY2hlbWEucHJvcGVydGllcykge1xuICAgICAgICAgIC8vIFN1YiBjaGFydHMgb3IgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgZm9yIChjb25zdCBkZXBlbmRlbmN5IG9mIGRlZi5jaGFydERlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgY29weU9mU2NoZW1hLnByb3BlcnRpZXNbZGVwZW5kZW5jeV0gPSB7IHR5cGU6ICdvYmplY3QnLCBhZGRpdGlvbmFsUHJvcGVydGllczogeyB0eXBlOiAnb2JqZWN0JyB9IH07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29weU9mU2NoZW1hLnByb3BlcnRpZXMuZ2xvYmFsID0geyB0eXBlOiAnb2JqZWN0JywgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgdHlwZTogJ29iamVjdCcgfSB9O1xuICAgICAgICAgIGNvcHlPZlNjaGVtYS5wcm9wZXJ0aWVzLmFkZGl0aW9uYWxWYWx1ZXMgPSB7XG4gICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVmFsdWVzIHRoYXQgYXJlIG5vdCBhdmFpbGFibGUgaW4gdmFsdWVzLnNjaGVtYS5qc29uIHdpbGwgbm90IGJlIGNvZGUgZ2VuZXJhdGVkLiBZb3UgY2FuIGFkZCBzdWNoIHZhbHVlcyB0byB0aGlzIHByb3BlcnR5LicsXG4gICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyB0eXBlOiAnb2JqZWN0JyB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0eXBlZ2VuLmVtaXRUeXBlKHZhbHVlc0ludGVyZmFjZSwgY29weU9mU2NoZW1hLCBkZWYuZnFuKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gYWRkQWRkaXRpb25hbFZhbHVlc1RvUHJvcHMoc2NobWE6IEpTT05TY2hlbWE0KTogSlNPTlNjaGVtYTQge1xuICAgICAgICBjb25zdCB0ZW1wU2NoZW1hID0gc2NobWE7XG5cbiAgICAgICAgaWYgKCF0ZW1wU2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICByZXR1cm4gdGVtcFNjaGVtYTtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC52YWx1ZXModGVtcFNjaGVtYS5wcm9wZXJ0aWVzKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgICAgICAgaWYgKHByb3AudHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocHJvcC5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBwcm9wLnByb3BlcnRpZXMuYWRkaXRpb25hbFZhbHVlcyA9IHtcbiAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVmFsdWVzIHRoYXQgYXJlIG5vdCBhdmFpbGFibGUgaW4gdmFsdWVzLnNjaGVtYS5qc29uIHdpbGwgbm90IGJlIGNvZGUgZ2VuZXJhdGVkLiBZb3UgY2FuIGFkZCBzdWNoIHZhbHVlcyB0byB0aGlzIHByb3BlcnR5LicsXG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7IHR5cGU6ICdvYmplY3QnIH0sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBhZGRBZGRpdGlvbmFsVmFsdWVzVG9Qcm9wcyhwcm9wKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0ZW1wU2NoZW1hO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENyZWF0aW5nIGNvbnN0cnVjdCBwcm9wZXJ0aWVzXG4gICAgZW1pdFByb3BzSW50ZXJmYWNlKCk7XG5cbiAgICBjb2RlLmxpbmUoKTtcblxuICAgIC8vIENyZWF0aW5nIGNvbnN0cnVjdCBmb3IgaGVsbSBjaGFydFxuICAgIGVtaXRDb25zdHJ1Y3QoKTtcblxuICAgIGZ1bmN0aW9uIGVtaXRQcm9wc0ludGVyZmFjZSgpIHtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgaW50ZXJmYWNlICR7Y2hhcnROYW1lfVByb3BzYCk7XG5cbiAgICAgIGNvZGUubGluZSgncmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nOycpO1xuICAgICAgY29kZS5saW5lKCdyZWFkb25seSByZWxlYXNlTmFtZT86IHN0cmluZzsnKTtcbiAgICAgIGNvZGUubGluZSgncmVhZG9ubHkgaGVsbUV4ZWN1dGFibGU/OiBzdHJpbmc7Jyk7XG4gICAgICBjb2RlLmxpbmUoJ3JlYWRvbmx5IGhlbG1GbGFncz86IHN0cmluZ1tdOycpO1xuXG4gICAgICBpZiAoc2NoZW1hID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29kZS5saW5lKCdyZWFkb25seSB2YWx1ZXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9OycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZG9WYWx1ZXNIYXZlUmVxUHJvcHMgPSBoYXNSZXF1aXJlZFByb3BzKHNjaGVtYSkgPyAnJyA6ICc/JztcbiAgICAgICAgY29kZS5saW5lKGByZWFkb25seSB2YWx1ZXMke2RvVmFsdWVzSGF2ZVJlcVByb3BzfTogJHt2YWx1ZXNJbnRlcmZhY2V9O2ApO1xuICAgICAgfVxuXG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0Q29uc3RydWN0KCkge1xuICAgICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBjbGFzcyAke2NoYXJ0TmFtZX0gZXh0ZW5kcyBDb25zdHJ1Y3RgKTtcblxuICAgICAgZW1pdEluaXRpYWxpemVyKCk7XG5cbiAgICAgIGNvZGUubGluZSgpO1xuXG4gICAgICBlbWl0QWRkaXRpb25hbFZhbHVlc0ZsYXR0ZW5GdW5jKCk7XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRJbml0aWFsaXplcigpIHtcbiAgICAgIGNvbnN0IHByb3BzRGVmaW5pdGlvbiA9IHNjaGVtYSAmJiBoYXNSZXF1aXJlZFByb3BzKHNjaGVtYSkgPyBgJHtjaGFydE5hbWV9UHJvcHNgIDogYCR7Y2hhcnROYW1lfVByb3BzID0ge31gO1xuXG4gICAgICBjb2RlLm9wZW5CbG9jayhgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiAke3Byb3BzRGVmaW5pdGlvbn0pYCk7XG4gICAgICBjb2RlLmxpbmUoJ3N1cGVyKHNjb3BlLCBpZCk7Jyk7XG5cbiAgICAgIGNvZGUubGluZSgnbGV0IHVwZGF0ZWRQcm9wcyA9IHt9OycpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgICBjb2RlLm9wZW5CbG9jaygnaWYgKHByb3BzLnZhbHVlcyknKTtcbiAgICAgIGlmIChzY2hlbWEpIHtcbiAgICAgICAgY29kZS5saW5lKGBjb25zdCB2YWx1ZXMgPSB0b0pzb25fJHt2YWx1ZXNJbnRlcmZhY2V9KHByb3BzLnZhbHVlcyk7YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2RlLmxpbmUoJ2NvbnN0IHZhbHVlcyA9IHByb3BzLnZhbHVlczsnKTtcbiAgICAgIH1cbiAgICAgIGNvZGUub3BlbkJsb2NrKCdpZiAodmFsdWVzKScpO1xuICAgICAgY29kZS5saW5lKCdjb25zdCB7IGFkZGl0aW9uYWxWYWx1ZXMsIC4uLnZhbHVlc1dpdGhvdXRBZGRpdGlvbmFsVmFsdWVzIH0gPSB2YWx1ZXM7Jyk7XG4gICAgICBjb2RlLm9wZW4oJ3VwZGF0ZWRQcm9wcyA9IHsnKTtcbiAgICAgIGNvZGUubGluZSgnLi4ucHJvcHMsJyk7XG4gICAgICBjb2RlLm9wZW4oJ3ZhbHVlczogeycpO1xuICAgICAgY29kZS5saW5lKCcuLi50aGlzLmZsYXR0ZW5BZGRpdGlvbmFsVmFsdWVzKHZhbHVlc1dpdGhvdXRBZGRpdGlvbmFsVmFsdWVzKSwnKTtcbiAgICAgIGNvZGUubGluZSgnLi4uYWRkaXRpb25hbFZhbHVlcywnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30sJyk7XG4gICAgICBjb2RlLmNsb3NlKCd9OycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIGNvZGUubGluZSgpO1xuXG4gICAgICBjb2RlLm9wZW4oJ2NvbnN0IGZpbmFsUHJvcHM6IEhlbG1Qcm9wcyA9IHsnKTtcbiAgICAgIGlmIChyZXBvVXJsLnN0YXJ0c1dpdGgoJ29jaTovLycpKSB7XG4gICAgICAgIGNvZGUubGluZShgY2hhcnQ6IFxcJyR7cmVwb1VybH1cXCcsYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2RlLmxpbmUoYGNoYXJ0OiBcXCcke2RlZi5jaGFydE5hbWV9XFwnLGApO1xuICAgICAgICBjb2RlLmxpbmUoYHJlcG86IFxcJyR7cmVwb1VybH1cXCcsYCk7XG4gICAgICB9XG4gICAgICBjb2RlLmxpbmUoYHZlcnNpb246IFxcJyR7Y2hhcnRWZXJzaW9ufVxcJyxgKTtcbiAgICAgIGNvZGUubGluZSgnLi4uKE9iamVjdC5rZXlzKHVwZGF0ZWRQcm9wcykubGVuZ3RoICE9PSAwID8gdXBkYXRlZFByb3BzIDogcHJvcHMpLCcpO1xuICAgICAgY29kZS5jbG9zZSgnfTsnKTtcblxuICAgICAgY29kZS5saW5lKCk7XG4gICAgICBjb2RlLmxpbmUoJ25ldyBIZWxtKHRoaXMsIFxcJ0hlbG1cXCcsIGZpbmFsUHJvcHMpOycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdEFkZGl0aW9uYWxWYWx1ZXNGbGF0dGVuRnVuYygpIHtcbiAgICAgIGNvZGUub3BlbkJsb2NrKCdwcml2YXRlIGZsYXR0ZW5BZGRpdGlvbmFsVmFsdWVzKHByb3BzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfScpO1xuICAgICAgY29kZS5vcGVuKCdmb3IgKGxldCBwcm9wIGluIHByb3BzKSB7Jyk7XG4gICAgICBjb2RlLm9wZW4oJ2lmIChBcnJheS5pc0FycmF5KHByb3BzW3Byb3BdKSkgeycpO1xuICAgICAgY29kZS5vcGVuKCdwcm9wc1twcm9wXS5tYXAoKGl0ZW06IGFueSkgPT4geycpO1xuICAgICAgY29kZS5vcGVuKCdpZiAodHlwZW9mIGl0ZW0gPT09IFxcJ29iamVjdFxcJyAmJiBwcm9wICE9PSBcXCdhZGRpdGlvbmFsVmFsdWVzXFwnKSB7Jyk7XG4gICAgICBjb2RlLmxpbmUoJ3JldHVybiB0aGlzLmZsYXR0ZW5BZGRpdGlvbmFsVmFsdWVzKGl0ZW0pOycpO1xuICAgICAgY29kZS5jbG9zZSgnfScpO1xuICAgICAgY29kZS5saW5lKCdyZXR1cm4gaXRlbTsnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30pOycpO1xuICAgICAgY29kZS5jbG9zZSgnfScpO1xuICAgICAgY29kZS5vcGVuKCdlbHNlIGlmICh0eXBlb2YgcHJvcHNbcHJvcF0gPT09IFxcJ29iamVjdFxcJyAmJiBwcm9wICE9PSBcXCdhZGRpdGlvbmFsVmFsdWVzXFwnKSB7Jyk7XG4gICAgICBjb2RlLmxpbmUoJ3Byb3BzW3Byb3BdID0gdGhpcy5mbGF0dGVuQWRkaXRpb25hbFZhbHVlcyhwcm9wc1twcm9wXSk7Jyk7XG4gICAgICBjb2RlLmNsb3NlKCd9Jyk7XG4gICAgICBjb2RlLmNsb3NlKCd9Jyk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUubGluZSgnY29uc3QgeyBhZGRpdGlvbmFsVmFsdWVzLCAuLi52YWx1ZXNXaXRob3V0QWRkaXRpb25hbFZhbHVlcyB9ID0gcHJvcHM7Jyk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUub3BlbigncmV0dXJuIHsnKTtcbiAgICAgIGNvZGUubGluZSgnLi4udmFsdWVzV2l0aG91dEFkZGl0aW9uYWxWYWx1ZXMsJyk7XG4gICAgICBjb2RlLmxpbmUoJy4uLmFkZGl0aW9uYWxWYWx1ZXMsJyk7XG4gICAgICBjb2RlLmNsb3NlKCd9OycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gaGFzUmVxdWlyZWRQcm9wcyhzY2hlbWE6IEpTT05TY2hlbWE0KTpib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHNjaGVtYT8ucmVxdWlyZWQgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEucmVxdWlyZWQpICYmIHNjaGVtYS5yZXF1aXJlZC5sZW5ndGggPiAwO1xufSJdfQ==
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvY29kZWdlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBb0Q7QUFJcEQseUNBQTBDO0FBRTFDLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQztBQStCekI7Ozs7O0dBS0c7QUFDSCxTQUFnQixVQUFVLENBQUMsSUFBZSxFQUFFLE1BQWU7SUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ25DLElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO0tBQ3hGO1NBQU07UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7S0FDckU7SUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2QsQ0FBQztBQVRELGdDQVNDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLE1BQWUsRUFBRSxJQUFZLEVBQUUsT0FBZTtJQUN4RSxzRUFBc0U7SUFDdEUsdUZBQXVGO0lBQ3ZGLDJFQUEyRTtJQUMzRSxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSx3QkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLE9BQU8sR0FBRyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQU5ELGtDQU1DO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsR0FBd0I7SUFDM0QsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1B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LENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXpLRCxzREF5S0M7QUFFRCxTQUFTLGdCQUFnQixDQUFDLE1BQW1CO0lBQzNDLE9BQU8sTUFBTSxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDMUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciwgdG9QYXNjYWxDYXNlIH0gZnJvbSAnY29kZW1ha2VyJztcbi8vIHdlIGp1c3QgbmVlZCB0aGUgdHlwZXMgZnJvbSBqc29uLXNjaGVtYVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgSlNPTlNjaGVtYTQgfSBmcm9tICdqc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBUeXBlR2VuZXJhdG9yIH0gZnJvbSAnanNvbjJqc2lpJztcblxuY29uc3QgTUFOSUZFU1RfU1RBVElDX01FVEhPRCA9ICdtYW5pZmVzdCc7XG5jb25zdCBHVktfU1RBVElDID0gJ0dWSyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpT2JqZWN0RGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICByZWFkb25seSBncm91cDogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2NoZW1hOiBKU09OU2NoZW1hNDtcblxuICAvKipcbiAgICogSXMgdGhpcyBpcyBhIGN1c3RvbSByZXNvdXJjZSAoaW1wb3J0ZWQgZnJvbSBhIENSRCkgb3IgYSBjb3JlIEFQSSBvYmplY3Q/XG4gICAqL1xuICByZWFkb25seSBjdXN0b206IGJvb2xlYW47XG5cbiAgLypcbiAgICogSW5kaWNhdGVzIGlmIGEgcHJlZml4IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29uc3RydWN0IGNsYXNzIG5hbWUuIEZvclxuICAgKiBleGFtcGxlLCBmb3IgbmF0aXZlIGs4cyBhcGkgb2JqZWN0cywgd2UgYWRkIGBLdWJlYCBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgLypcbiAgICogSW5kaWNhdGVzIGlmIGEgc3VmZml4IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29uc3RydWN0IGNsYXNzIG5hbWUuIEZvclxuICAgKiBleGFtcGxlLCBmb3IgbXVsdGktdmVyc2lvbmVkIGNyZHMsIHdlIGFkZCB0aGUgdmVyc2lvbiBhcyB0aGUgc3VmZml4LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqL1xuICByZWFkb25seSBzdWZmaXg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW1pdHMgdGhlIGhlYWRlciBmb3IgYSBnZW5lcmF0ZWQgaW1wb3J0cyBmaWxlLlxuICpcbiAqIEBwYXJhbSBjdXN0b20gLSB3aGV0aGVyIHRoZSBoZWFkZXIgaXMgYmVpbmcgZW1pdHRlZCBmb3IgYSBjdXN0b20gcmVzb3VyY2VcbiAqIChpbXBvcnRlZCBmcm9tIGEgQ1JEKSBvciBhIGNvcmUgQVBJIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1pdEhlYWRlcihjb2RlOiBDb2RlTWFrZXIsIGN1c3RvbTogYm9vbGVhbikge1xuICBjb2RlLmxpbmUoJy8vIGdlbmVyYXRlZCBieSBjZGs4cycpO1xuICBpZiAoY3VzdG9tKSB7XG4gICAgY29kZS5saW5lKCdpbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSBcXCdjZGs4c1xcJzsnKTtcbiAgfSBlbHNlIHtcbiAgICBjb2RlLmxpbmUoJ2ltcG9ydCB7IEFwaU9iamVjdCwgR3JvdXBWZXJzaW9uS2luZCB9IGZyb20gXFwnY2RrOHNcXCc7Jyk7XG4gIH1cbiAgY29kZS5saW5lKCdpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFxcJ2NvbnN0cnVjdHNcXCc7Jyk7XG4gIGNvZGUubGluZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZU5hbWUoY3VzdG9tOiBib29sZWFuLCBraW5kOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykge1xuICAvLyBhZGQgYW4gQVBJIHZlcnNpb24gcG9zdGZpeCBvbmx5IGlmIHRoaXMgaXMgY29yZSBBUEkgKGBpbXBvcnQgazhzYCkuXG4gIC8vIFRPRE8gPSB3aGF0IGFib3V0IHRoZSByZXN0IG9mIHRoZSBuYW1lc3BhY2U/IHRoZSBzYW1lIHJlc291cmNlIGNhbiBleGlzdCBpbiBtdWx0aXBsZVxuICAvLyBhcGkgZ3JvdXBzIChJbmdyZXNzIGZvciBleGFtcGxlIGV4aXN0cyBpbiAnZXh0ZW5zaW9ucycgYW5kICduZXR3b3JraW5nJylcbiAgY29uc3QgcG9zdGZpeCA9IChjdXN0b20gfHwgdmVyc2lvbiA9PT0gJ3YxJykgPyAnJyA6IHRvUGFzY2FsQ2FzZSh2ZXJzaW9uKTtcbiAgcmV0dXJuIGAke2tpbmR9JHtwb3N0Zml4fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25zdHJ1Y3RUeXBlTmFtZShkZWY6IEFwaU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3QgcHJlZml4ID0gZGVmLnByZWZpeCA/PyAnJztcbiAgY29uc3Qgc3VmZml4ID0gZGVmLnN1ZmZpeCA/PyAnJztcbiAgcmV0dXJuIFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUoYCR7cHJlZml4fSR7Z2V0VHlwZU5hbWUoZGVmLmN1c3RvbSwgZGVmLmtpbmQsIGRlZi52ZXJzaW9uKX0ke3N1ZmZpeH1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3BzVHlwZU5hbWUoZGVmOiBBcGlPYmplY3REZWZpbml0aW9uKSB7XG4gIGNvbnN0IGNvbnN0cnVjdE5hbWUgPSBnZXRDb25zdHJ1Y3RUeXBlTmFtZShkZWYpO1xuICByZXR1cm4gVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShgJHtjb25zdHJ1Y3ROYW1lfVByb3BzYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUNvbnN0cnVjdCh0eXBlZ2VuOiBUeXBlR2VuZXJhdG9yLCBkZWY6IEFwaU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3QgY29uc3RydWN0TmFtZSA9IGdldENvbnN0cnVjdFR5cGVOYW1lKGRlZik7XG5cbiAgaWYgKGRlZi5jdXN0b20pIHtcbiAgICB0eXBlZ2VuLmVtaXRDdXN0b21UeXBlKCdBcGlPYmplY3RNZXRhZGF0YScsICgpID0+IHt9KTtcbiAgfVxuXG4gIHR5cGVnZW4uZW1pdEN1c3RvbVR5cGUoY29uc3RydWN0TmFtZSwgY29kZSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gZGVmLnNjaGVtYTtcblxuICAgIC8vIGBwcm9wc1R5cGVOYW1lYCBjb3VsZCBhbHNvIGJlIFwiYW55XCIgaWYgd2UgY2FuJ3QgcGFyc2UgdGhlIHNjaGVtYSBmb3Igc29tZSByZWFzb25cbiAgICBjb25zdCBwcm9wc1R5cGVOYW1lID0gZW1pdFByb3BzU3RydWN0KCk7XG4gICAgY29uc3QgZ3JvdXBQcmVmaXggPSBkZWYuZ3JvdXAgPyBgJHtkZWYuZ3JvdXB9L2AgOiAnJztcbiAgICBjb25zdCBoYXNSZXF1aXJlZCA9IGhhc1JlcXVpcmVkUHJvcHMoc2NoZW1hKTtcbiAgICBjb25zdCBkZWZhdWx0UHJvcHMgPSBoYXNSZXF1aXJlZCA/ICcnIDogJyA9IHt9JztcbiAgICBlbWl0Q29uc3RydWN0KCk7XG5cbiAgICBmdW5jdGlvbiBlbWl0UHJvcHNTdHJ1Y3QoKSB7XG4gICAgICBjb25zdCBwcm9wc1NjaGVtYSA9IGNyZWF0ZVByb3BzU3RydWN0U2NoZW1hKCk7XG4gICAgICBjb25zdCBwcm9wc1N0cnVjdE5hbWUgPSBnZXRQcm9wc1R5cGVOYW1lKGRlZik7XG4gICAgICByZXR1cm4gdHlwZWdlbi5lbWl0VHlwZShwcm9wc1N0cnVjdE5hbWUsIHByb3BzU2NoZW1hLCBkZWYuZnFuKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVQcm9wc1N0cnVjdFNjaGVtYSgpIHtcbiAgICAgIGNvbnN0IGNvcHk6IEpTT05TY2hlbWE0ID0geyAuLi5kZWYuc2NoZW1hIHx8IHt9IH07XG4gICAgICBjb25zdCBwcm9wcyA9IGNvcHkucHJvcGVydGllcyA9IGNvcHkucHJvcGVydGllcyB8fCB7fTtcbiAgICAgIGRlbGV0ZSBwcm9wcy5hcGlWZXJzaW9uO1xuICAgICAgZGVsZXRlIHByb3BzLmtpbmQ7XG4gICAgICBkZWxldGUgcHJvcHMuc3RhdHVzO1xuICAgICAgZGVsZXRlIGNvcHlbJ3gta3ViZXJuZXRlcy1ncm91cC12ZXJzaW9uLWtpbmQnXTtcblxuICAgICAgY29weS5yZXF1aXJlZCA9IGNvcHkucmVxdWlyZWQgfHwgW107XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvcHkucmVxdWlyZWQpKSB7XG4gICAgICAgIGNvcHkucmVxdWlyZWQgPSBjb3B5LnJlcXVpcmVkLmZpbHRlcih4ID0+IHggIT09ICdhcGlWZXJzaW9uJyAmJiB4ICE9PSAna2luZCcgJiYgeCAhPT0gJ3N0YXR1cycpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGVmLmN1c3RvbSkge1xuICAgICAgICAvLyBhZGQgXCJtZXRhZGF0YVwiIGZpZWxkIGZvciBhbGwgQ1JEcywgb3ZlcnJpZGluZyBhbnkgZXhpc3RpbmcgdHlwaW5nc1xuICAgICAgICBjb3B5LnByb3BlcnRpZXMubWV0YWRhdGEgPSB7ICRyZWY6ICcjL2RlZmluaXRpb25zL0FwaU9iamVjdE1ldGFkYXRhJyB9O1xuICAgICAgfVxuXG4gICAgICAvLyByZW9yZGVyIHRvcC1sZXZlbCBrZXlzIHNvIHRoYXQgd2UgaGF2ZSBcIm1ldGFkYXRhXCIgZmlyc3QgYW5kIHRoZW4gYWxsIHRoZSByZXN0XG4gICAgICAvLyBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIGluIHRoZSBBcGlPYmplY3QncyB0b0pzb24gZnVuY3Rpb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9jZGs4cy10ZWFtL2NkazhzLWNvcmUvYmxvYi81OGZiOGMwODgyZGRkOTVhOWI5ZGVkYjQxMDdlMTJmNjAxNDQzY2Y0L3NyYy9hcGktb2JqZWN0LnRzI0wxODUpXG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrIG9mIFsnbWV0YWRhdGEnLCAuLi5PYmplY3Qua2V5cyhjb3B5LnByb3BlcnRpZXMpXSkge1xuICAgICAgICBpZiAoayBpbiBjb3B5LnByb3BlcnRpZXMpIHtcbiAgICAgICAgICByZXN1bHRba10gPSBjb3B5LnByb3BlcnRpZXNba107XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29weS5wcm9wZXJ0aWVzID0gcmVzdWx0O1xuICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdENvbnN0cnVjdCgpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqICR7ZGVmLnNjaGVtYT8uZGVzY3JpcHRpb24gPz8gJyd9YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIEBzY2hlbWEgJHtkZWYuZnFufWApO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgY2xhc3MgJHtjb25zdHJ1Y3ROYW1lfSBleHRlbmRzIEFwaU9iamVjdGApO1xuXG4gICAgICBlbWl0R1ZLKCk7XG5cbiAgICAgIGNvZGUubGluZSgnJyk7XG5cbiAgICAgIGVtaXRNYW5pZmVzdEZhY3RvcnkoKTtcblxuICAgICAgY29kZS5saW5lKCcnKTtcblxuICAgICAgZW1pdEluaXRpYWxpemVyKCk7XG5cbiAgICAgIGNvZGUubGluZSgnJyk7XG5cbiAgICAgIGVtaXRUb0pzb24oKTtcblxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdEdWSygpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIFJldHVybnMgdGhlIGFwaVZlcnNpb24gYW5kIGtpbmQgZm9yIFwiJHtkZWYuZnFufVwiYCk7XG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5vcGVuQmxvY2soYHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgJHtHVktfU1RBVElDfTogR3JvdXBWZXJzaW9uS2luZCA9YCk7XG4gICAgICBjb2RlLmxpbmUoYGFwaVZlcnNpb246ICcke2dyb3VwUHJlZml4fSR7ZGVmLnZlcnNpb259JyxgKTtcbiAgICAgIGNvZGUubGluZShga2luZDogJyR7ZGVmLmtpbmR9JyxgKTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRJbml0aWFsaXplcigpIHtcblxuICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgIGNvZGUubGluZShgICogRGVmaW5lcyBhIFwiJHtkZWYuZnFufVwiIEFQSSBvYmplY3RgKTtcbiAgICAgIGNvZGUubGluZSgnICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBvYmplY3QnKTtcbiAgICAgIGNvZGUubGluZSgnICogQHBhcmFtIGlkIGEgc2NvcGUtbG9jYWwgbmFtZSBmb3IgdGhlIG9iamVjdCcpO1xuICAgICAgY29kZS5saW5lKCcgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHMnKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG5cbiAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7cHJvcHNUeXBlTmFtZX0ke2RlZmF1bHRQcm9wc30pYCk7XG5cbiAgICAgIGNvZGUub3Blbignc3VwZXIoc2NvcGUsIGlkLCB7Jyk7XG4gICAgICBjb2RlLmxpbmUoYC4uLiR7Y29uc3RydWN0TmFtZX0uJHtHVktfU1RBVElDfSxgKTtcbiAgICAgIGNvZGUubGluZSgnLi4ucHJvcHMsJyk7XG4gICAgICBjb2RlLmNsb3NlKCd9KTsnKTtcblxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdE1hbmlmZXN0RmFjdG9yeSgpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIFJlbmRlcnMgYSBLdWJlcm5ldGVzIG1hbmlmZXN0IGZvciBcIiR7ZGVmLmZxbn1cIi5gKTtcbiAgICAgIGNvZGUubGluZSgnIConKTtcbiAgICAgIGNvZGUubGluZSgnICogVGhpcyBjYW4gYmUgdXNlZCB0byBpbmxpbmUgcmVzb3VyY2UgbWFuaWZlc3RzIGluc2lkZSBvdGhlciBvYmplY3RzIChlLmcuIGFzIHRlbXBsYXRlcykuJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wcycpO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcblxuICAgICAgY29kZS5vcGVuQmxvY2soYHB1YmxpYyBzdGF0aWMgJHtNQU5JRkVTVF9TVEFUSUNfTUVUSE9EfShwcm9wczogJHtwcm9wc1R5cGVOYW1lfSR7ZGVmYXVsdFByb3BzfSk6IGFueWApO1xuICAgICAgY29kZS5vcGVuKCdyZXR1cm4geycpO1xuICAgICAgY29kZS5saW5lKGAuLi4ke2NvbnN0cnVjdE5hbWV9LiR7R1ZLX1NUQVRJQ30sYCk7XG4gICAgICBjb2RlLmxpbmUoYC4uLnRvSnNvbl8ke3Byb3BzVHlwZU5hbWV9KHByb3BzKSxgKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0VG9Kc29uKCkge1xuICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgIGNvZGUubGluZSgnICogUmVuZGVycyB0aGUgb2JqZWN0IHRvIEt1YmVybmV0ZXMgSlNPTi4nKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICBjb2RlLm9wZW5CbG9jaygncHVibGljIG92ZXJyaWRlIHRvSnNvbigpOiBhbnknKTtcbiAgICAgIGNvZGUubGluZSgnY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTsnKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgICAgY29kZS5vcGVuKCdyZXR1cm4geycpO1xuICAgICAgY29kZS5saW5lKGAuLi4ke2NvbnN0cnVjdE5hbWV9LiR7R1ZLX1NUQVRJQ30sYCk7XG4gICAgICBjb2RlLmxpbmUoYC4uLnRvSnNvbl8ke3Byb3BzVHlwZU5hbWV9KHJlc29sdmVkKSxgKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEVtaXQgaW1wb3J0cyBmb3IgZ2VuZXJhdGVkIGhlbG0gY29uc3RydWN0XG4gKiBAcGFyYW0gY29kZSBDb2RlTWFrZXIgaXN0YW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1pdEhlbG1IZWFkZXIoY29kZTogQ29kZU1ha2VyKSB7XG4gIGNvZGUubGluZSgnLy8gZ2VuZXJhdGVkIGJ5IGNkazhzJyk7XG4gIGNvZGUubGluZSgnaW1wb3J0IHsgSGVsbSwgSGVsbVByb3BzIH0gZnJvbSBcXCdjZGs4c1xcJzsnKTtcbiAgY29kZS5saW5lKCdpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFxcJ2NvbnN0cnVjdHNcXCc7Jyk7XG4gIGNvZGUubGluZSgpO1xufVxuXG4vKipcbiAqIEhlbG0gT2JqZWN0IERlZmluaXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWxtT2JqZWN0RGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBgdmFsdWVzLnNjaGVtYS5qc29uYCBmb3IgdGhlIGhlbG0gY2hhcnRcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVtYTogSlNPTlNjaGVtYTQgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBDaGFydCBuYW1lXG4gICAqL1xuICByZWFkb25seSBjaGFydE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIENoYXJ0IHVybFxuICAgKi9cbiAgcmVhZG9ubHkgY2hhcnRVcmw6IHN0cmluZztcbiAgLyoqXG4gICAqIENoYXJ0IHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IGNoYXJ0VmVyc2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogQ2hhcnQgZGVwZW5kZW5jaWVzXG4gICAqL1xuICByZWFkb25seSBjaGFydERlcGVuZGVuY2llczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBGdWxseSBxdWFsaWZpZWQgbmFtZSBmb3IgdGhlIGNvbnN0cnVjdFxuICAgKi9cbiAgcmVhZG9ubHkgZnFuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVIZWxtQ29uc3RydWN0KHR5cGVnZW46IFR5cGVHZW5lcmF0b3IsIGRlZjogSGVsbU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3Qgbm9TcGVjaWFsQ2hhcnMgPSBkZWYuY2hhcnROYW1lLnJlcGxhY2UoLyhbXlxcdyBdfF8pL2csICcnKTtcbiAgY29uc3QgY2hhcnROYW1lID0gVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShub1NwZWNpYWxDaGFycyk7XG4gIGNvbnN0IHNjaGVtYSA9IGRlZi5zY2hlbWE7XG4gIGNvbnN0IHJlcG9VcmwgPSBkZWYuY2hhcnRVcmw7XG4gIGNvbnN0IGNoYXJ0VmVyc2lvbiA9IGRlZi5jaGFydFZlcnNpb247XG5cbiAgLy8gQ3JlYXRlIGN1c3RvbSB0eXBlXG4gIHR5cGVnZW4uZW1pdEN1c3RvbVR5cGUoY2hhcnROYW1lLCBjb2RlID0+IHtcblxuICAgIGxldCB2YWx1ZXNJbnRlcmZhY2UgPSBgJHtjaGFydE5hbWV9VmFsdWVzYDtcbiAgICBpZiAoc2NoZW1hICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIENyZWF0aW5nIHZhbHVlcyBpbnRlcmZhY2VcbiAgICAgIHZhbHVlc0ludGVyZmFjZSA9IGVtaXRWYWx1ZXNJbnRlcmZhY2UoKTtcblxuICAgICAgZnVuY3Rpb24gZW1pdFZhbHVlc0ludGVyZmFjZSgpIHtcblxuICAgICAgICBjb25zdCBjb3B5T2ZTY2hlbWEgPSBzY2hlbWEgPyBhZGRBZGRpdGlvbmFsVmFsdWVzVG9Qcm9wcyhzY2hlbWEpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChjb3B5T2ZTY2hlbWEgJiYgY29weU9mU2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAvLyBTdWIgY2hhcnRzIG9yIGRlcGVuZGVuY2llc1xuICAgICAgICAgIGZvciAoY29uc3QgZGVwZW5kZW5jeSBvZiBkZWYuY2hhcnREZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIGNvcHlPZlNjaGVtYS5wcm9wZXJ0aWVzW2RlcGVuZGVuY3ldID0geyB0eXBlOiAnb2JqZWN0JywgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgdHlwZTogJ29iamVjdCcgfSB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvcHlPZlNjaGVtYS5wcm9wZXJ0aWVzLmdsb2JhbCA9IHsgdHlwZTogJ29iamVjdCcsIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7IHR5cGU6ICdvYmplY3QnIH0gfTtcbiAgICAgICAgICBjb3B5T2ZTY2hlbWEucHJvcGVydGllcy5hZGRpdGlvbmFsVmFsdWVzID0ge1xuICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1ZhbHVlcyB0aGF0IGFyZSBub3QgYXZhaWxhYmxlIGluIHZhbHVlcy5zY2hlbWEuanNvbiB3aWxsIG5vdCBiZSBjb2RlIGdlbmVyYXRlZC4gWW91IGNhbiBhZGQgc3VjaCB2YWx1ZXMgdG8gdGhpcyBwcm9wZXJ0eS4nLFxuICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgdHlwZTogJ29iamVjdCcgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHR5cGVnZW4uZW1pdFR5cGUodmFsdWVzSW50ZXJmYWNlLCBjb3B5T2ZTY2hlbWEsIGRlZi5mcW4pO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBhZGRBZGRpdGlvbmFsVmFsdWVzVG9Qcm9wcyhzY2htYTogSlNPTlNjaGVtYTQpOiBKU09OU2NoZW1hNCB7XG4gICAgICAgIGNvbnN0IHRlbXBTY2hlbWEgPSBzY2htYTtcblxuICAgICAgICBpZiAoIXRlbXBTY2hlbWEucHJvcGVydGllcykge1xuICAgICAgICAgIHJldHVybiB0ZW1wU2NoZW1hO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LnZhbHVlcyh0ZW1wU2NoZW1hLnByb3BlcnRpZXMpLmZvckVhY2goKHByb3ApID0+IHtcbiAgICAgICAgICBpZiAocHJvcC50eXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwcm9wLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHByb3AucHJvcGVydGllcy5hZGRpdGlvbmFsVmFsdWVzID0ge1xuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdWYWx1ZXMgdGhhdCBhcmUgbm90IGF2YWlsYWJsZSBpbiB2YWx1ZXMuc2NoZW1hLmpzb24gd2lsbCBub3QgYmUgY29kZSBnZW5lcmF0ZWQuIFlvdSBjYW4gYWRkIHN1Y2ggdmFsdWVzIHRvIHRoaXMgcHJvcGVydHkuJyxcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgdHlwZTogJ29iamVjdCcgfSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGFkZEFkZGl0aW9uYWxWYWx1ZXNUb1Byb3BzKHByb3ApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRlbXBTY2hlbWE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRpbmcgY29uc3RydWN0IHByb3BlcnRpZXNcbiAgICBlbWl0UHJvcHNJbnRlcmZhY2UoKTtcblxuICAgIGNvZGUubGluZSgpO1xuXG4gICAgLy8gQ3JlYXRpbmcgY29uc3RydWN0IGZvciBoZWxtIGNoYXJ0XG4gICAgZW1pdENvbnN0cnVjdCgpO1xuXG4gICAgZnVuY3Rpb24gZW1pdFByb3BzSW50ZXJmYWNlKCkge1xuICAgICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBpbnRlcmZhY2UgJHtjaGFydE5hbWV9UHJvcHNgKTtcblxuICAgICAgY29kZS5saW5lKCdyZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7Jyk7XG4gICAgICBjb2RlLmxpbmUoJ3JlYWRvbmx5IHJlbGVhc2VOYW1lPzogc3RyaW5nOycpO1xuICAgICAgY29kZS5saW5lKCdyZWFkb25seSBoZWxtRXhlY3V0YWJsZT86IHN0cmluZzsnKTtcbiAgICAgIGNvZGUubGluZSgncmVhZG9ubHkgaGVsbUZsYWdzPzogc3RyaW5nW107Jyk7XG5cbiAgICAgIGlmIChzY2hlbWEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb2RlLmxpbmUoJ3JlYWRvbmx5IHZhbHVlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkb1ZhbHVlc0hhdmVSZXFQcm9wcyA9IGhhc1JlcXVpcmVkUHJvcHMoc2NoZW1hKSA/ICcnIDogJz8nO1xuICAgICAgICBjb2RlLmxpbmUoYHJlYWRvbmx5IHZhbHVlcyR7ZG9WYWx1ZXNIYXZlUmVxUHJvcHN9OiAke3ZhbHVlc0ludGVyZmFjZX07YCk7XG4gICAgICB9XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRDb25zdHJ1Y3QoKSB7XG4gICAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IGNsYXNzICR7Y2hhcnROYW1lfSBleHRlbmRzIENvbnN0cnVjdGApO1xuXG4gICAgICBlbWl0SW5pdGlhbGl6ZXIoKTtcblxuICAgICAgY29kZS5saW5lKCk7XG5cbiAgICAgIGVtaXRBZGRpdGlvbmFsVmFsdWVzRmxhdHRlbkZ1bmMoKTtcblxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdEluaXRpYWxpemVyKCkge1xuICAgICAgY29uc3QgcHJvcHNEZWZpbml0aW9uID0gc2NoZW1hICYmIGhhc1JlcXVpcmVkUHJvcHMoc2NoZW1hKSA/IGAke2NoYXJ0TmFtZX1Qcm9wc2AgOiBgJHtjaGFydE5hbWV9UHJvcHMgPSB7fWA7XG5cbiAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7cHJvcHNEZWZpbml0aW9ufSlgKTtcbiAgICAgIGNvZGUubGluZSgnc3VwZXIoc2NvcGUsIGlkKTsnKTtcblxuICAgICAgY29kZS5saW5lKCdsZXQgdXBkYXRlZFByb3BzID0ge307Jyk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKCdpZiAocHJvcHMudmFsdWVzKScpO1xuICAgICAgaWYgKHNjaGVtYSkge1xuICAgICAgICBjb2RlLmxpbmUoYGNvbnN0IHZhbHVlcyA9IHRvSnNvbl8ke3ZhbHVlc0ludGVyZmFjZX0ocHJvcHMudmFsdWVzKTtgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvZGUubGluZSgnY29uc3QgdmFsdWVzID0gcHJvcHMudmFsdWVzOycpO1xuICAgICAgfVxuICAgICAgY29kZS5vcGVuQmxvY2soJ2lmICh2YWx1ZXMpJyk7XG4gICAgICBjb2RlLmxpbmUoJ2NvbnN0IHsgYWRkaXRpb25hbFZhbHVlcywgLi4udmFsdWVzV2l0aG91dEFkZGl0aW9uYWxWYWx1ZXMgfSA9IHZhbHVlczsnKTtcbiAgICAgIGNvZGUub3BlbigndXBkYXRlZFByb3BzID0geycpO1xuICAgICAgY29kZS5saW5lKCcuLi5wcm9wcywnKTtcbiAgICAgIGNvZGUub3BlbigndmFsdWVzOiB7Jyk7XG4gICAgICBjb2RlLmxpbmUoJy4uLnRoaXMuZmxhdHRlbkFkZGl0aW9uYWxWYWx1ZXModmFsdWVzV2l0aG91dEFkZGl0aW9uYWxWYWx1ZXMpLCcpO1xuICAgICAgY29kZS5saW5lKCcuLi5hZGRpdGlvbmFsVmFsdWVzLCcpO1xuICAgICAgY29kZS5jbG9zZSgnfSwnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgICAgY29kZS5saW5lKCk7XG5cbiAgICAgIGNvZGUub3BlbignY29uc3QgZmluYWxQcm9wczogSGVsbVByb3BzID0geycpO1xuICAgICAgaWYgKHJlcG9Vcmwuc3RhcnRzV2l0aCgnb2NpOi8vJykpIHtcbiAgICAgICAgY29kZS5saW5lKGBjaGFydDogXFwnJHtyZXBvVXJsfVxcJyxgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvZGUubGluZShgY2hhcnQ6IFxcJyR7ZGVmLmNoYXJ0TmFtZX1cXCcsYCk7XG4gICAgICAgIGNvZGUubGluZShgcmVwbzogXFwnJHtyZXBvVXJsfVxcJyxgKTtcbiAgICAgIH1cbiAgICAgIGNvZGUubGluZShgdmVyc2lvbjogXFwnJHtjaGFydFZlcnNpb259XFwnLGApO1xuICAgICAgY29kZS5saW5lKCcuLi4oT2JqZWN0LmtleXModXBkYXRlZFByb3BzKS5sZW5ndGggIT09IDAgPyB1cGRhdGVkUHJvcHMgOiBwcm9wcyksJyk7XG4gICAgICBjb2RlLmNsb3NlKCd9OycpO1xuXG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUubGluZSgnbmV3IEhlbG0odGhpcywgXFwnSGVsbVxcJywgZmluYWxQcm9wcyk7Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0QWRkaXRpb25hbFZhbHVlc0ZsYXR0ZW5GdW5jKCkge1xuICAgICAgY29kZS5vcGVuQmxvY2soJ3ByaXZhdGUgZmxhdHRlbkFkZGl0aW9uYWxWYWx1ZXMocHJvcHM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9Jyk7XG4gICAgICBjb2RlLm9wZW4oJ2ZvciAobGV0IHByb3AgaW4gcHJvcHMpIHsnKTtcbiAgICAgIGNvZGUub3BlbignaWYgKEFycmF5LmlzQXJyYXkocHJvcHNbcHJvcF0pKSB7Jyk7XG4gICAgICBjb2RlLm9wZW4oJ3Byb3BzW3Byb3BdLm1hcCgoaXRlbTogYW55KSA9PiB7Jyk7XG4gICAgICBjb2RlLm9wZW4oJ2lmICh0eXBlb2YgaXRlbSA9PT0gXFwnb2JqZWN0XFwnICYmIHByb3AgIT09IFxcJ2FkZGl0aW9uYWxWYWx1ZXNcXCcpIHsnKTtcbiAgICAgIGNvZGUubGluZSgncmV0dXJuIHRoaXMuZmxhdHRlbkFkZGl0aW9uYWxWYWx1ZXMoaXRlbSk7Jyk7XG4gICAgICBjb2RlLmNsb3NlKCd9Jyk7XG4gICAgICBjb2RlLmxpbmUoJ3JldHVybiBpdGVtOycpO1xuICAgICAgY29kZS5jbG9zZSgnfSk7Jyk7XG4gICAgICBjb2RlLmNsb3NlKCd9Jyk7XG4gICAgICBjb2RlLm9wZW4oJ2Vsc2UgaWYgKHR5cGVvZiBwcm9wc1twcm9wXSA9PT0gXFwnb2JqZWN0XFwnICYmIHByb3AgIT09IFxcJ2FkZGl0aW9uYWxWYWx1ZXNcXCcpIHsnKTtcbiAgICAgIGNvZGUubGluZSgncHJvcHNbcHJvcF0gPSB0aGlzLmZsYXR0ZW5BZGRpdGlvbmFsVmFsdWVzKHByb3BzW3Byb3BdKTsnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30nKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30nKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgICAgY29kZS5saW5lKCdjb25zdCB7IGFkZGl0aW9uYWxWYWx1ZXMsIC4uLnZhbHVlc1dpdGhvdXRBZGRpdGlvbmFsVmFsdWVzIH0gPSBwcm9wczsnKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgICAgY29kZS5vcGVuKCdyZXR1cm4geycpO1xuICAgICAgY29kZS5saW5lKCcuLi52YWx1ZXNXaXRob3V0QWRkaXRpb25hbFZhbHVlcywnKTtcbiAgICAgIGNvZGUubGluZSgnLi4uYWRkaXRpb25hbFZhbHVlcywnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBoYXNSZXF1aXJlZFByb3BzKHNjaGVtYTogSlNPTlNjaGVtYTQpOmJvb2xlYW4gfCB1bmRlZmluZWQge1xuICByZXR1cm4gc2NoZW1hPy5yZXF1aXJlZCAmJiBBcnJheS5pc0FycmF5KHNjaGVtYS5yZXF1aXJlZCkgJiYgc2NoZW1hLnJlcXVpcmVkLmxlbmd0aCA+IDA7XG59Il19
|
package/lib/import/helm.js
CHANGED
|
@@ -67,7 +67,7 @@ class ImportHelm extends base_1.ImportBase {
|
|
|
67
67
|
async generateTypeScript(code) {
|
|
68
68
|
(0, codegen_1.emitHelmHeader)(code);
|
|
69
69
|
const types = new json2jsii_1.TypeGenerator({
|
|
70
|
-
definitions: this.schema?.definitions,
|
|
70
|
+
definitions: this.schema?.definitions ?? this.schema?.$defs,
|
|
71
71
|
toJson: true,
|
|
72
72
|
sanitizeEnums: true,
|
|
73
73
|
});
|
|
@@ -94,7 +94,7 @@ function extractHelmChartDetails(url) {
|
|
|
94
94
|
let chartVersion;
|
|
95
95
|
if (url.startsWith('helm:oci://')) {
|
|
96
96
|
// URL: helm:oci://registry-1.docker.io/bitnamicharts/wordpress@17.1.17
|
|
97
|
-
const helmRegex = /^helm:(oci:\/\/[A-Za-z0-9_.-:\-]+)\@([0-9]+)\.([0-9]+)\.([A-Za-z0-9-+]+)$/;
|
|
97
|
+
const helmRegex = /^helm:(oci:\/\/[A-Za-z0-9_.-:\-]+)\@(v?[0-9]+)\.([0-9]+)\.([A-Za-z0-9-+]+)$/;
|
|
98
98
|
const helmDetails = helmRegex.exec(url);
|
|
99
99
|
if (!helmDetails) {
|
|
100
100
|
throw Error(`Invalid helm URL: ${url}. Must match the format: 'helm:<oci-registry-url>@<chart-version>'.`);
|
|
@@ -109,7 +109,7 @@ function extractHelmChartDetails(url) {
|
|
|
109
109
|
}
|
|
110
110
|
else {
|
|
111
111
|
// URL: helm:https://lacework.github.io/helm-charts/lacework-agent@6.9.0
|
|
112
|
-
const helmRegex = /^helm:([A-Za-z0-9_.-:\-]+)\/([A-Za-z0-9_.-:\-]+)\@([0-9]+)\.([0-9]+)\.([A-Za-z0-9-+]+)$/;
|
|
112
|
+
const helmRegex = /^helm:([A-Za-z0-9_.-:\-]+)\/([A-Za-z0-9_.-:\-]+)\@(v?[0-9]+)\.([0-9]+)\.([A-Za-z0-9-+]+)$/;
|
|
113
113
|
const helmDetails = helmRegex.exec(url);
|
|
114
114
|
if (!helmDetails) {
|
|
115
115
|
throw Error(`Invalid helm URL: ${url}. Must match the format: 'helm:<repo-url>/<chart-name>@<chart-version>'.`);
|
|
@@ -170,4 +170,4 @@ function pullHelmRepo(chartUrl, chartName, chartVersion) {
|
|
|
170
170
|
function cleanup(tmpDir) {
|
|
171
171
|
fs.rmSync(tmpDir, { recursive: true });
|
|
172
172
|
}
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVsbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvaGVsbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUEwQztBQUMxQyx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixpQ0FBNkI7QUFHN0IseUNBQTBDO0FBQzFDLCtDQUFpQztBQUNqQyxpQ0FBb0M7QUFDcEMsdUNBQWtFO0FBR2xFLE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUVoQyxNQUFhLFVBQVcsU0FBUSxpQkFBVTtJQUNqQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFzQjtRQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQVNELFlBQW9CLE1BQWM7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFKTyxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFNaEQsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFL0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJ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SUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ3pDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsT0FBTyxDQUFDLE1BQWM7SUFDN0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd25TeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgWWFtbCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgdHlwZSB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IEltcG9ydEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgZW1pdEhlbG1IZWFkZXIsIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCB9IGZyb20gJy4vY29kZWdlbic7XG5pbXBvcnQgeyBJbXBvcnRTcGVjIH0gZnJvbSAnLi4vY29uZmlnJztcblxuY29uc3QgTUFYX0hFTE1fQlVGRkVSID0gMTAgKiAxMDI0ICogMTAyNDtcbmNvbnN0IENIQVJUX1NDSEVNQSA9ICd2YWx1ZXMuc2NoZW1hLmpzb24nO1xuY29uc3QgQ0hBUlRfWUFNTCA9ICdDaGFydC55YW1sJztcblxuZXhwb3J0IGNsYXNzIEltcG9ydEhlbG0gZXh0ZW5kcyBJbXBvcnRCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBmcm9tU3BlYyhpbXBvcnRTcGVjOiBJbXBvcnRTcGVjKTogUHJvbWlzZTxJbXBvcnRIZWxtPiB7XG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IGltcG9ydFNwZWM7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRIZWxtKHNvdXJjZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0VXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRWZXJzaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRTY2hlbWFQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnREZXBlbmRlbmNpZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBKU09OU2NoZW1hNCB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHNvdXJjZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IFtjaGFydFVybCwgY2hhcnROYW1lLCBjaGFydFZlcnNpb25dID0gZXh0cmFjdEhlbG1DaGFydERldGFpbHMoc291cmNlKTtcblxuICAgIHRoaXMuY2hhcnROYW1lID0gY2hhcnROYW1lO1xuICAgIHRoaXMuY2hhcnRVcmwgPSBjaGFydFVybDtcbiAgICB0aGlzLmNoYXJ0VmVyc2lvbiA9IGNoYXJ0VmVyc2lvbjtcbiAgICBjb25zdCB0bXBEaXIgPSBwdWxsSGVsbVJlcG8oY2hhcnRVcmwsIGNoYXJ0TmFtZSwgY2hhcnRWZXJzaW9uKTtcblxuICAgIGNvbnN0IGNoYXJ0WWFtbEZpbGVQYXRoID0gcGF0aC5qb2luKHRtcERpciwgdGhpcy5jaGFydE5hbWUsIENIQVJUX1lBTUwpO1xuICAgIGNvbnN0IGNvbnRlbnRzID0gWWFtbC5sb2FkKGNoYXJ0WWFtbEZpbGVQYXRoKTtcblxuICAgIGlmIChjb250ZW50cy5sZW5ndGggPT09IDEgJiYgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3kgb2YgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHRoaXMuY2hhcnREZXBlbmRlbmNpZXMucHVzaChkZXBlbmRlbmN5Lm5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBvdGVudGlhbFNjaGVtYVBhdGggPSBwYXRoLmpvaW4odG1wRGlyLCB0aGlzLmNoYXJ0TmFtZSwgQ0hBUlRfU0NIRU1BKTtcbiAgICB0aGlzLmNoYXJ0U2NoZW1hUGF0aCA9IGZzLmV4aXN0c1N5bmMocG90ZW50aWFsU2NoZW1hUGF0aCkgPyBwb3RlbnRpYWxTY2hlbWFQYXRoIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc2NoZW1hID0gdGhpcy5jaGFydFNjaGVtYVBhdGggPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyh0aGlzLmNoYXJ0U2NoZW1hUGF0aCwgJ3V0Zi04JykpIDogdW5kZWZpbmVkO1xuXG4gICAgY2xlYW51cCh0bXBEaXIpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2R1bGVOYW1lcygpIHtcbiAgICByZXR1cm4gW3RoaXMuY2hhcnROYW1lXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZW5lcmF0ZVR5cGVTY3JpcHQoY29kZTogQ29kZU1ha2VyKSB7XG4gICAgZW1pdEhlbG1IZWFkZXIoY29kZSk7XG5cbiAgICBjb25zdCB0eXBlcyA9IG5ldyBUeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiB0aGlzLnNjaGVtYT8uZGVmaW5pdGlvbnMsXG4gICAgICB0b0pzb246IHRydWUsXG4gICAgICBzYW5pdGl6ZUVudW1zOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgZ2VuZXJhdGVIZWxtQ29uc3RydWN0KHR5cGVzLCB7XG4gICAgICBzY2hlbWE6IHRoaXMuc2NoZW1hLFxuICAgICAgY2hhcnROYW1lOiB0aGlzLmNoYXJ0TmFtZSxcbiAgICAgIGNoYXJ0VXJsOiB0aGlzLmNoYXJ0VXJsLFxuICAgICAgY2hhcnRWZXJzaW9uOiB0aGlzLmNoYXJ0VmVyc2lvbixcbiAgICAgIGNoYXJ0RGVwZW5kZW5jaWVzOiB0aGlzLmNoYXJ0RGVwZW5kZW5jaWVzLFxuICAgICAgZnFuOiB0aGlzLmNoYXJ0TmFtZSxcbiAgICB9KTtcblxuICAgIGNvZGUubGluZSh0eXBlcy5yZW5kZXIoKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBoZWxtIGNoYXJ0IGZyb20gdGhlIGhlbG0gdXJsXG4gKiBAcGFyYW0gdXJsXG4gKiBAcmV0dXJucyBjaGFydFVybCwgY2hhcnROYW1lIGFuZCBjaGFydFZlcnNpb25cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdEhlbG1DaGFydERldGFpbHModXJsOiBzdHJpbmcpIHtcblxuICBsZXQgY2hhcnRVcmw7XG4gIGxldCBjaGFydE5hbWU7XG4gIGxldCBjaGFydFZlcnNpb247XG5cbiAgaWYgKHVybC5zdGFydHNXaXRoKCdoZWxtOm9jaTovLycpKSB7XG4gICAgLy8gVVJMOiBoZWxtOm9jaTovL3JlZ2lzdHJ5LTEuZG9ja2VyLmlvL2JpdG5hbWljaGFydHMvd29yZHByZXNzQDE3LjEuMTdcbiAgICBjb25zdCBoZWxtUmVnZXggPSAvXmhlbG06KG9jaTpcXC9cXC9bQS1aYS16MC05Xy4tOlxcLV0rKVxcQChbMC05XSspXFwuKFswLTldKylcXC4oW0EtWmEtejAtOS0rXSspJC87XG4gICAgY29uc3QgaGVsbURldGFpbHMgPSBoZWxtUmVnZXguZXhlYyh1cmwpO1xuXG4gICAgaWYgKCFoZWxtRGV0YWlscykge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaGVsbSBVUkw6ICR7dXJsfS4gTXVzdCBtYXRjaCB0aGUgZm9ybWF0OiAnaGVsbTo8b2NpLXJlZ2lzdHJ5LXVybD5APGNoYXJ0LXZlcnNpb24+Jy5gKTtcbiAgICB9XG5cbiAgICBjaGFydFVybCA9IGhlbG1EZXRhaWxzWzFdO1xuICAgIGNvbnN0IGxhc3RJbmRleE9mU2xhc2ggPSBjaGFydFVybC5sYXN0SW5kZXhPZignLycpO1xuICAgIGNoYXJ0TmFtZSA9IGNoYXJ0VXJsLnN1YnN0cmluZyhsYXN0SW5kZXhPZlNsYXNoICsgMSk7XG5cbiAgICBjb25zdCBtYWpvciA9IGhlbG1EZXRhaWxzWzJdO1xuICAgIGNvbnN0IG1pbm9yID0gaGVsbURldGFpbHNbM107XG4gICAgY29uc3QgcGF0Y2ggPSBoZWxtRGV0YWlsc1s0XTtcbiAgICBjaGFydFZlcnNpb24gPSBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xuXG4gIH0gZWxzZSB7XG4gICAgLy8gVVJMOiBoZWxtOmh0dHBzOi8vbGFjZXdvcmsuZ2l0aHViLmlvL2hlbG0tY2hhcnRzL2xhY2V3b3JrLWFnZW50QDYuOS4wXG4gICAgY29uc3QgaGVsbVJlZ2V4ID0gL15oZWxtOihbQS1aYS16MC05Xy4tOlxcLV0rKVxcLyhbQS1aYS16MC05Xy4tOlxcLV0rKVxcQChbMC05XSspXFwuKFswLTldKylcXC4oW0EtWmEtejAtOS0rXSspJC87XG4gICAgY29uc3QgaGVsbURldGFpbHMgPSBoZWxtUmVnZXguZXhlYyh1cmwpO1xuXG4gICAgaWYgKCFoZWxtRGV0YWlscykge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaGVsbSBVUkw6ICR7dXJsfS4gTXVzdCBtYXRjaCB0aGUgZm9ybWF0OiAnaGVsbTo8cmVwby11cmw+LzxjaGFydC1uYW1lPkA8Y2hhcnQtdmVyc2lvbj4nLmApO1xuICAgIH1cblxuICAgIGNoYXJ0VXJsID0gaGVsbURldGFpbHNbMV07XG4gICAgY2hhcnROYW1lID0gaGVsbURldGFpbHNbMl07XG5cbiAgICBjb25zdCBtYWpvciA9IGhlbG1EZXRhaWxzWzNdO1xuICAgIGNvbnN0IG1pbm9yID0gaGVsbURldGFpbHNbNF07XG4gICAgY29uc3QgcGF0Y2ggPSBoZWxtRGV0YWlsc1s1XTtcbiAgICBjaGFydFZlcnNpb24gPSBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xuICB9XG5cbiAgaWYgKCFzZW12ZXIudmFsaWQoY2hhcnRWZXJzaW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFydCB2ZXJzaW9uICgke2NoYXJ0VmVyc2lvbn0pIGluIFVSTDogJHt1cmx9LiBNdXN0IGZvbGxvdyBTZW1WZXItMiAoc2VlIGh0dHBzOi8vc2VtdmVyLm9yZy8pLmApO1xuICB9XG5cbiAgcmV0dXJuIFtjaGFydFVybCwgY2hhcnROYW1lLCBjaGFydFZlcnNpb25dO1xufVxuXG4vKipcbiAqIFB1bGxzIHRoZSBoZWxtIGNoYXJ0IGluIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeVxuICogQHBhcmFtIGNoYXJ0VXJsIENoYXJ0IHVybFxuICogQHBhcmFtIGNoYXJ0TmFtZSBDaGFydCBuYW1lXG4gKiBAcGFyYW0gY2hhcnRWZXJzaW9uIENoYXJ0IHZlcnNpb25cbiAqIEByZXR1cm5zIFRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aFxuICovXG5mdW5jdGlvbiBwdWxsSGVsbVJlcG8oY2hhcnRVcmw6IHN0cmluZywgY2hhcnROYW1lOiBzdHJpbmcsIGNoYXJ0VmVyc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgd29ya2RpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2NkazhzLWhlbG0tJykpO1xuXG4gIGNvbnN0IGFyZ3MgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBhcmdzLnB1c2goJ3B1bGwnKTtcblxuICBpZiAoIWNoYXJ0VXJsLnN0YXJ0c1dpdGgoJ29jaTovLycpKSB7XG4gICAgYXJncy5wdXNoKGNoYXJ0TmFtZSk7XG4gICAgYXJncy5wdXNoKCctLXJlcG8nLCBjaGFydFVybCk7XG4gIH0gZWxzZSB7XG4gICAgYXJncy5wdXNoKGNoYXJ0VXJsKTtcbiAgfVxuXG4gIGFyZ3MucHVzaCgnLS12ZXJzaW9uJywgY2hhcnRWZXJzaW9uKTtcbiAgYXJncy5wdXNoKCctLXVudGFyJyk7XG4gIGFyZ3MucHVzaCgnLS11bnRhcmRpcicsIHdvcmtkaXIpO1xuXG4gIGNvbnN0IGNvbW1hbmQgPSAnaGVsbSc7XG5cbiAgY29uc3QgaGVsbSA9IHNwYXduU3luYyhjb21tYW5kLCBhcmdzLCB7XG4gICAgbWF4QnVmZmVyOiBNQVhfSEVMTV9CVUZGRVIsXG4gIH0pO1xuXG4gIGlmIChoZWxtLmVycm9yKSB7XG4gICAgY29uc3QgZXJyID0gaGVsbS5lcnJvci5tZXNzYWdlO1xuICAgIGlmIChlcnIuaW5jbHVkZXMoJ0VOT0VOVCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBleGVjdXRlICcke2NvbW1hbmR9JyB0byBwdWxsIHRoZSBIZWxtIGNoYXJ0LiBJcyBoZWxtIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbT9gKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCBwdWxsaW5nIGhlbG0gY2hhcnQgZnJvbSBVUkwgKCR7Y2hhcnRVcmx9KTogJHtlcnJ9YCk7XG4gIH1cblxuICBpZiAoaGVsbS5zdGF0dXMgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoaGVsbS5zdGRlcnIudG9TdHJpbmcoKSk7XG4gIH1cblxuICByZXR1cm4gd29ya2Rpcjtcbn1cblxuLyoqXG4gKiBDbGVhbnVwIHRlbXAgZGlyZWN0b3J5IGNyZWF0ZWRcbiAqIEBwYXJhbSB0bXBEaXIgVGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoXG4gKi9cbmZ1bmN0aW9uIGNsZWFudXAodG1wRGlyOiBzdHJpbmcpIHtcbiAgZnMucm1TeW5jKHRtcERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG59Il19
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVsbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvaGVsbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUEwQztBQUMxQyx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixpQ0FBNkI7QUFHN0IseUNBQTBDO0FBQzFDLCtDQUFpQztBQUNqQyxpQ0FBb0M7QUFDcEMsdUNBQWtFO0FBR2xFLE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUVoQyxNQUFhLFVBQVcsU0FBUSxpQkFBVTtJQUNqQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFzQjtRQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQVNELFlBQW9CLE1BQWM7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFKTyxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFNaEQsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFL0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJ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QUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDN0U7SUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ3pDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsT0FBTyxDQUFDLE1BQWM7SUFDN0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd25TeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgWWFtbCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgdHlwZSB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IEltcG9ydEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgZW1pdEhlbG1IZWFkZXIsIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCB9IGZyb20gJy4vY29kZWdlbic7XG5pbXBvcnQgeyBJbXBvcnRTcGVjIH0gZnJvbSAnLi4vY29uZmlnJztcblxuY29uc3QgTUFYX0hFTE1fQlVGRkVSID0gMTAgKiAxMDI0ICogMTAyNDtcbmNvbnN0IENIQVJUX1NDSEVNQSA9ICd2YWx1ZXMuc2NoZW1hLmpzb24nO1xuY29uc3QgQ0hBUlRfWUFNTCA9ICdDaGFydC55YW1sJztcblxuZXhwb3J0IGNsYXNzIEltcG9ydEhlbG0gZXh0ZW5kcyBJbXBvcnRCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBmcm9tU3BlYyhpbXBvcnRTcGVjOiBJbXBvcnRTcGVjKTogUHJvbWlzZTxJbXBvcnRIZWxtPiB7XG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IGltcG9ydFNwZWM7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRIZWxtKHNvdXJjZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0VXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRWZXJzaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRTY2hlbWFQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnREZXBlbmRlbmNpZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBKU09OU2NoZW1hNCB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHNvdXJjZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IFtjaGFydFVybCwgY2hhcnROYW1lLCBjaGFydFZlcnNpb25dID0gZXh0cmFjdEhlbG1DaGFydERldGFpbHMoc291cmNlKTtcblxuICAgIHRoaXMuY2hhcnROYW1lID0gY2hhcnROYW1lO1xuICAgIHRoaXMuY2hhcnRVcmwgPSBjaGFydFVybDtcbiAgICB0aGlzLmNoYXJ0VmVyc2lvbiA9IGNoYXJ0VmVyc2lvbjtcbiAgICBjb25zdCB0bXBEaXIgPSBwdWxsSGVsbVJlcG8oY2hhcnRVcmwsIGNoYXJ0TmFtZSwgY2hhcnRWZXJzaW9uKTtcblxuICAgIGNvbnN0IGNoYXJ0WWFtbEZpbGVQYXRoID0gcGF0aC5qb2luKHRtcERpciwgdGhpcy5jaGFydE5hbWUsIENIQVJUX1lBTUwpO1xuICAgIGNvbnN0IGNvbnRlbnRzID0gWWFtbC5sb2FkKGNoYXJ0WWFtbEZpbGVQYXRoKTtcblxuICAgIGlmIChjb250ZW50cy5sZW5ndGggPT09IDEgJiYgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3kgb2YgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHRoaXMuY2hhcnREZXBlbmRlbmNpZXMucHVzaChkZXBlbmRlbmN5Lm5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBvdGVudGlhbFNjaGVtYVBhdGggPSBwYXRoLmpvaW4odG1wRGlyLCB0aGlzLmNoYXJ0TmFtZSwgQ0hBUlRfU0NIRU1BKTtcbiAgICB0aGlzLmNoYXJ0U2NoZW1hUGF0aCA9IGZzLmV4aXN0c1N5bmMocG90ZW50aWFsU2NoZW1hUGF0aCkgPyBwb3RlbnRpYWxTY2hlbWFQYXRoIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc2NoZW1hID0gdGhpcy5jaGFydFNjaGVtYVBhdGggPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyh0aGlzLmNoYXJ0U2NoZW1hUGF0aCwgJ3V0Zi04JykpIDogdW5kZWZpbmVkO1xuXG4gICAgY2xlYW51cCh0bXBEaXIpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2R1bGVOYW1lcygpIHtcbiAgICByZXR1cm4gW3RoaXMuY2hhcnROYW1lXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZW5lcmF0ZVR5cGVTY3JpcHQoY29kZTogQ29kZU1ha2VyKSB7XG4gICAgZW1pdEhlbG1IZWFkZXIoY29kZSk7XG5cbiAgICBjb25zdCB0eXBlcyA9IG5ldyBUeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiB0aGlzLnNjaGVtYT8uZGVmaW5pdGlvbnMgPz8gdGhpcy5zY2hlbWE/LiRkZWZzLFxuICAgICAgdG9Kc29uOiB0cnVlLFxuICAgICAgc2FuaXRpemVFbnVtczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCh0eXBlcywge1xuICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYSxcbiAgICAgIGNoYXJ0TmFtZTogdGhpcy5jaGFydE5hbWUsXG4gICAgICBjaGFydFVybDogdGhpcy5jaGFydFVybCxcbiAgICAgIGNoYXJ0VmVyc2lvbjogdGhpcy5jaGFydFZlcnNpb24sXG4gICAgICBjaGFydERlcGVuZGVuY2llczogdGhpcy5jaGFydERlcGVuZGVuY2llcyxcbiAgICAgIGZxbjogdGhpcy5jaGFydE5hbWUsXG4gICAgfSk7XG5cbiAgICBjb2RlLmxpbmUodHlwZXMucmVuZGVyKCkpO1xuICB9XG59XG5cbi8qKlxuICogR2V0cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaGVsbSBjaGFydCBmcm9tIHRoZSBoZWxtIHVybFxuICogQHBhcmFtIHVybFxuICogQHJldHVybnMgY2hhcnRVcmwsIGNoYXJ0TmFtZSBhbmQgY2hhcnRWZXJzaW9uXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RIZWxtQ2hhcnREZXRhaWxzKHVybDogc3RyaW5nKSB7XG5cbiAgbGV0IGNoYXJ0VXJsO1xuICBsZXQgY2hhcnROYW1lO1xuICBsZXQgY2hhcnRWZXJzaW9uO1xuXG4gIGlmICh1cmwuc3RhcnRzV2l0aCgnaGVsbTpvY2k6Ly8nKSkge1xuICAgIC8vIFVSTDogaGVsbTpvY2k6Ly9yZWdpc3RyeS0xLmRvY2tlci5pby9iaXRuYW1pY2hhcnRzL3dvcmRwcmVzc0AxNy4xLjE3XG4gICAgY29uc3QgaGVsbVJlZ2V4ID0gL15oZWxtOihvY2k6XFwvXFwvW0EtWmEtejAtOV8uLTpcXC1dKylcXEAodj9bMC05XSspXFwuKFswLTldKylcXC4oW0EtWmEtejAtOS0rXSspJC87XG4gICAgY29uc3QgaGVsbURldGFpbHMgPSBoZWxtUmVnZXguZXhlYyh1cmwpO1xuXG4gICAgaWYgKCFoZWxtRGV0YWlscykge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaGVsbSBVUkw6ICR7dXJsfS4gTXVzdCBtYXRjaCB0aGUgZm9ybWF0OiAnaGVsbTo8b2NpLXJlZ2lzdHJ5LXVybD5APGNoYXJ0LXZlcnNpb24+Jy5gKTtcbiAgICB9XG5cbiAgICBjaGFydFVybCA9IGhlbG1EZXRhaWxzWzFdO1xuICAgIGNvbnN0IGxhc3RJbmRleE9mU2xhc2ggPSBjaGFydFVybC5sYXN0SW5kZXhPZignLycpO1xuICAgIGNoYXJ0TmFtZSA9IGNoYXJ0VXJsLnN1YnN0cmluZyhsYXN0SW5kZXhPZlNsYXNoICsgMSk7XG5cbiAgICBjb25zdCBtYWpvciA9IGhlbG1EZXRhaWxzWzJdO1xuICAgIGNvbnN0IG1pbm9yID0gaGVsbURldGFpbHNbM107XG4gICAgY29uc3QgcGF0Y2ggPSBoZWxtRGV0YWlsc1s0XTtcbiAgICBjaGFydFZlcnNpb24gPSBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xuXG4gIH0gZWxzZSB7XG4gICAgLy8gVVJMOiBoZWxtOmh0dHBzOi8vbGFjZXdvcmsuZ2l0aHViLmlvL2hlbG0tY2hhcnRzL2xhY2V3b3JrLWFnZW50QDYuOS4wXG4gICAgY29uc3QgaGVsbVJlZ2V4ID0gL15oZWxtOihbQS1aYS16MC05Xy4tOlxcLV0rKVxcLyhbQS1aYS16MC05Xy4tOlxcLV0rKVxcQCh2P1swLTldKylcXC4oWzAtOV0rKVxcLihbQS1aYS16MC05LStdKykkLztcbiAgICBjb25zdCBoZWxtRGV0YWlscyA9IGhlbG1SZWdleC5leGVjKHVybCk7XG5cbiAgICBpZiAoIWhlbG1EZXRhaWxzKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBoZWxtIFVSTDogJHt1cmx9LiBNdXN0IG1hdGNoIHRoZSBmb3JtYXQ6ICdoZWxtOjxyZXBvLXVybD4vPGNoYXJ0LW5hbWU+QDxjaGFydC12ZXJzaW9uPicuYCk7XG4gICAgfVxuXG4gICAgY2hhcnRVcmwgPSBoZWxtRGV0YWlsc1sxXTtcbiAgICBjaGFydE5hbWUgPSBoZWxtRGV0YWlsc1syXTtcblxuICAgIGNvbnN0IG1ham9yID0gaGVsbURldGFpbHNbM107XG4gICAgY29uc3QgbWlub3IgPSBoZWxtRGV0YWlsc1s0XTtcbiAgICBjb25zdCBwYXRjaCA9IGhlbG1EZXRhaWxzWzVdO1xuICAgIGNoYXJ0VmVyc2lvbiA9IGAke21ham9yfS4ke21pbm9yfS4ke3BhdGNofWA7XG4gIH1cblxuICBpZiAoIXNlbXZlci52YWxpZChjaGFydFZlcnNpb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNoYXJ0IHZlcnNpb24gKCR7Y2hhcnRWZXJzaW9ufSkgaW4gVVJMOiAke3VybH0uIE11c3QgZm9sbG93IFNlbVZlci0yIChzZWUgaHR0cHM6Ly9zZW12ZXIub3JnLykuYCk7XG4gIH1cblxuICByZXR1cm4gW2NoYXJ0VXJsLCBjaGFydE5hbWUsIGNoYXJ0VmVyc2lvbl07XG59XG5cbi8qKlxuICogUHVsbHMgdGhlIGhlbG0gY2hhcnQgaW4gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gKiBAcGFyYW0gY2hhcnRVcmwgQ2hhcnQgdXJsXG4gKiBAcGFyYW0gY2hhcnROYW1lIENoYXJ0IG5hbWVcbiAqIEBwYXJhbSBjaGFydFZlcnNpb24gQ2hhcnQgdmVyc2lvblxuICogQHJldHVybnMgVGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoXG4gKi9cbmZ1bmN0aW9uIHB1bGxIZWxtUmVwbyhjaGFydFVybDogc3RyaW5nLCBjaGFydE5hbWU6IHN0cmluZywgY2hhcnRWZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB3b3JrZGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrOHMtaGVsbS0nKSk7XG5cbiAgY29uc3QgYXJncyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGFyZ3MucHVzaCgncHVsbCcpO1xuXG4gIGlmICghY2hhcnRVcmwuc3RhcnRzV2l0aCgnb2NpOi8vJykpIHtcbiAgICBhcmdzLnB1c2goY2hhcnROYW1lKTtcbiAgICBhcmdzLnB1c2goJy0tcmVwbycsIGNoYXJ0VXJsKTtcbiAgfSBlbHNlIHtcbiAgICBhcmdzLnB1c2goY2hhcnRVcmwpO1xuICB9XG5cbiAgYXJncy5wdXNoKCctLXZlcnNpb24nLCBjaGFydFZlcnNpb24pO1xuICBhcmdzLnB1c2goJy0tdW50YXInKTtcbiAgYXJncy5wdXNoKCctLXVudGFyZGlyJywgd29ya2Rpcik7XG5cbiAgY29uc3QgY29tbWFuZCA9ICdoZWxtJztcblxuICBjb25zdCBoZWxtID0gc3Bhd25TeW5jKGNvbW1hbmQsIGFyZ3MsIHtcbiAgICBtYXhCdWZmZXI6IE1BWF9IRUxNX0JVRkZFUixcbiAgfSk7XG5cbiAgaWYgKGhlbG0uZXJyb3IpIHtcbiAgICBjb25zdCBlcnIgPSBoZWxtLmVycm9yLm1lc3NhZ2U7XG4gICAgaWYgKGVyci5pbmNsdWRlcygnRU5PRU5UJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGV4ZWN1dGUgJyR7Y29tbWFuZH0nIHRvIHB1bGwgdGhlIEhlbG0gY2hhcnQuIElzIGhlbG0gaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtP2ApO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHB1bGxpbmcgaGVsbSBjaGFydCBmcm9tIFVSTCAoJHtjaGFydFVybH0pOiAke2Vycn1gKTtcbiAgfVxuXG4gIGlmIChoZWxtLnN0YXR1cyAhPT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihoZWxtLnN0ZGVyci50b1N0cmluZygpKTtcbiAgfVxuXG4gIHJldHVybiB3b3JrZGlyO1xufVxuXG4vKipcbiAqIENsZWFudXAgdGVtcCBkaXJlY3RvcnkgY3JlYXRlZFxuICogQHBhcmFtIHRtcERpciBUZW1wb3JhcnkgZGlyZWN0b3J5IHBhdGhcbiAqL1xuZnVuY3Rpb24gY2xlYW51cCh0bXBEaXI6IHN0cmluZykge1xuICBmcy5ybVN5bmModG1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn0iXX0=
|
package/package.json
CHANGED
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"constructs": "^10.4.2",
|
|
82
82
|
"fs-extra": "^8",
|
|
83
83
|
"jsii-pacmak": "^1.116.0",
|
|
84
|
-
"jsii-rosetta": "^5.9.
|
|
84
|
+
"jsii-rosetta": "^5.9.9",
|
|
85
85
|
"jsii-srcmak": "0.1.1319",
|
|
86
86
|
"json2jsii": "0.5.12",
|
|
87
87
|
"semver": "^7.7.3",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"publishConfig": {
|
|
107
107
|
"access": "public"
|
|
108
108
|
},
|
|
109
|
-
"version": "2.202.
|
|
109
|
+
"version": "2.202.3",
|
|
110
110
|
"jest": {
|
|
111
111
|
"coverageProvider": "v8",
|
|
112
112
|
"testMatch": [
|