cdk8s-cli 2.200.49 → 2.200.51

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/crd.js CHANGED
@@ -44,9 +44,8 @@ const SUPPORTED_API_VERSIONS = [
44
44
  ];
45
45
  class CustomResourceDefinition {
46
46
  constructor(manifest) {
47
- var _a, _b, _c;
48
47
  this.versions = [];
49
- const apiVersion = (_a = manifest === null || manifest === void 0 ? void 0 : manifest.apiVersion) !== null && _a !== void 0 ? _a : 'undefined';
48
+ const apiVersion = manifest?.apiVersion ?? 'undefined';
50
49
  assert(SUPPORTED_API_VERSIONS.includes(apiVersion), `"apiVersion" is "${apiVersion}" but it should be one of: ${SUPPORTED_API_VERSIONS.map(x => `"${x}"`).join(', ')}`);
51
50
  assert(manifest.kind === CRD_KIND, `"kind" must be "${CRD_KIND}"`);
52
51
  const spec = manifest.spec;
@@ -56,10 +55,10 @@ class CustomResourceDefinition {
56
55
  this.group = spec.group;
57
56
  this.kind = spec.names.kind;
58
57
  if (spec.version) {
59
- this.addVersions([{ name: spec.version, schema: (_b = spec.validation) === null || _b === void 0 ? void 0 : _b.openAPIV3Schema }]);
58
+ this.addVersions([{ name: spec.version, schema: spec.validation?.openAPIV3Schema }]);
60
59
  }
61
60
  else {
62
- this.addVersions(((_c = spec.versions) !== null && _c !== void 0 ? _c : []).map(v => { var _a, _b, _c; return ({ name: v.name, schema: (_b = (_a = v.schema) === null || _a === void 0 ? void 0 : _a.openAPIV3Schema) !== null && _b !== void 0 ? _b : (_c = spec.validation) === null || _c === void 0 ? void 0 : _c.openAPIV3Schema }); }));
61
+ this.addVersions((spec.versions ?? []).map(v => ({ name: v.name, schema: v.schema?.openAPIV3Schema ?? spec.validation?.openAPIV3Schema })));
63
62
  }
64
63
  if (this.versions.length === 0) {
65
64
  throw new Error('unable to determine CRD versions');
@@ -193,4 +192,4 @@ function safeParseCrds(manifest) {
193
192
  return crds;
194
193
  }
195
194
  exports.safeParseCrds = safeParseCrds;
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydC9jcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDhDQUFzQjtBQUN0Qix5Q0FBb0Q7QUFDcEQseUNBQTBDO0FBQzFDLGlDQUFxRDtBQUNyRCx1Q0FBMEQ7QUFFMUQsd0NBQXlDO0FBQ3pDLGtDQUFrRDtBQUVsRCxNQUFNLFFBQVEsR0FBRywwQkFBMEIsQ0FBQztBQTBCNUMsc0RBQXNEO0FBQ3RELE1BQU0sc0JBQXNCLEdBQUc7SUFDN0IsOEJBQThCO0lBQzlCLHlCQUF5QjtDQUMxQixDQUFDO0FBSUYsTUFBYSx3QkFBd0I7SUFPbkMsWUFBWSxRQUFrQzs7UUFKN0IsYUFBUSxHQUFzQyxFQUFFLENBQUM7UUFLaEUsTUFBTSxVQUFVLEdBQUcsTUFBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsVUFBVSxtQ0FBSSxXQUFXLENBQUM7UUFDdkQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxvQkFBb0IsVUFBVSw4QkFBOEIsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEssTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLG1CQUFtQixRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRW5FLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztTQUM5RDtRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUss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SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXJCLE1BQU0sR0FBRyxHQUFHLElBQUksYUFBRyxFQUFFLENBQUM7SUFDdEIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDbEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7UUFDdEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakM7UUFBQSxDQUFDO0tBQ0g7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDeEc7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUF6Q0Qsc0NBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBBanYgZnJvbSAnYWp2JztcbmltcG9ydCB7IENvZGVNYWtlciwgdG9QYXNjYWxDYXNlIH0gZnJvbSAnY29kZW1ha2VyJztcbmltcG9ydCB7IFR5cGVHZW5lcmF0b3IgfSBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0IHsgR2VuZXJhdGVPcHRpb25zLCBJbXBvcnRCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IGVtaXRIZWFkZXIsIGdlbmVyYXRlQ29uc3RydWN0IH0gZnJvbSAnLi9jb2RlZ2VuJztcbmltcG9ydCB7IEltcG9ydFNwZWMgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgU2FmZVJldml2ZXIgfSBmcm9tICcuLi9yZXZpdmVyJztcbmltcG9ydCB7IGRvd25sb2FkLCBzYWZlUGFyc2VZYW1sIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmNvbnN0IENSRF9LSU5EID0gJ0N1c3RvbVJlc291cmNlRGVmaW5pdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3RPYmplY3REZWZpbml0aW9uIHtcbiAgYXBpVmVyc2lvbj86IHN0cmluZztcbiAga2luZD86IHN0cmluZztcbiAgaXRlbXM/OiBNYW5pZmVzdE9iamVjdERlZmluaXRpb25bXTsgLy8gaWYgYGtpbmRgIGlzIFwiTGlzdFwiXG4gIG1ldGFkYXRhPzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gIH07XG4gIHNwZWM/OiB7XG4gICAgZ3JvdXA6IHN0cmluZztcbiAgICBuYW1lczoge1xuICAgICAga2luZDogc3RyaW5nO1xuICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH07XG4gICAgdmVyc2lvbnM/OiBBcnJheTx7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBzY2hlbWE/OiB7IG9wZW5BUElWM1NjaGVtYT86IGFueSB9O1xuICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH0+O1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gICAgdmFsaWRhdGlvbj86IHsgb3BlbkFQSVYzU2NoZW1hPzogYW55IH07XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xufVxuXG4vLyBhbGwgdGhlc2UgQVBJcyBhcmUgY29tcGF0aWJsZSBmcm9tIG91ciBwZXJzcGVjdGl2ZS5cbmNvbnN0IFNVUFBPUlRFRF9BUElfVkVSU0lPTlMgPSBbXG4gICdhcGlleHRlbnNpb25zLms4cy5pby92MWJldGExJyxcbiAgJ2FwaWV4dGVuc2lvbnMuazhzLmlvL3YxJyxcbl07XG5cbnR5cGUgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiA9IHsgbmFtZTogc3RyaW5nOyBzY2hlbWE/OiBhbnkgfTtcblxuZXhwb3J0IGNsYXNzIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBraW5kOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmVyc2lvbnM6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvblZlcnNpb25bXSA9IFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSBncm91cDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG1hbmlmZXN0OiBNYW5pZmVzdE9iamVjdERlZmluaXRpb24pIHtcbiAgICBjb25zdCBhcGlWZXJzaW9uID0gbWFuaWZlc3Q/LmFwaVZlcnNpb24gPz8gJ3VuZGVmaW5lZCc7XG4gICAgYXNzZXJ0KFNVUFBPUlRFRF9BUElfVkVSU0lPTlMuaW5jbHVkZXMoYXBpVmVyc2lvbiksIGBcImFwaVZlcnNpb25cIiBpcyBcIiR7YXBpVmVyc2lvbn1cIiBidXQgaXQgc2hvdWxkIGJlIG9uZSBvZjogJHtTVVBQT1JURURfQVBJX1ZFUlNJT05TLm1hcCh4ID0+IGBcIiR7eH1cImApLmpvaW4oJywgJyl9YCk7XG4gICAgYXNzZXJ0KG1hbmlmZXN0LmtpbmQgPT09IENSRF9LSU5ELCBgXCJraW5kXCIgbXVzdCBiZSBcIiR7Q1JEX0tJTkR9XCJgKTtcblxuICAgIGNvbnN0IHNwZWMgPSBtYW5pZmVzdC5zcGVjO1xuICAgIGlmICghc3BlYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYW5pZmVzdCBkb2VzIG5vdCBoYXZlIGEgXCJzcGVjXCIgYXR0cmlidXRlJyk7XG4gICAgfVxuXG4gICAgdGhpcy5ncm91cCA9IHNwZWMuZ3JvdXA7XG4gICAgdGhpcy5raW5kID0gc3BlYy5uYW1lcy5raW5kO1xuXG4gICAgaWYgKHNwZWMudmVyc2lvbikge1xuICAgICAgdGhpcy5hZGRWZXJzaW9ucyhbeyBuYW1lOiBzcGVjLnZlcnNpb24sIHNjaGVtYTogc3BlYy52YWxpZGF0aW9uPy5vcGVuQVBJVjNTY2hlbWEgfV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZFZlcnNpb25zKChzcGVjLnZlcnNpb25zID8/IFtdKS5tYXAodiA9PiAoeyBuYW1lOiB2Lm5hbWUsIHNjaGVtYTogdi5zY2hlbWE/Lm9wZW5BUElWM1NjaGVtYSA/PyBzcGVjLnZhbGlkYXRpb24/Lm9wZW5BUElWM1NjaGVtYSB9KSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZlcnNpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmFibGUgdG8gZGV0ZXJtaW5lIENSRCB2ZXJzaW9ucycpO1xuICAgIH1cblxuICB9XG5cbiAgcHVibGljIG1lcmdlKGNyZDogQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uKSB7XG4gICAgdGhpcy5hZGRWZXJzaW9ucyhjcmQudmVyc2lvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRWZXJzaW9ucyh2ZXJzaW9uczogQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbltdKSB7XG4gICAgZm9yIChjb25zdCB2IG9mIHZlcnNpb25zKSB7XG4gICAgICBjb25zdCBleGlzdGluZ1ZlcnNpb25zID0gdGhpcy52ZXJzaW9ucy5tYXAodmVyID0+IHZlci5uYW1lKTtcbiAgICAgIGlmIChleGlzdGluZ1ZlcnNpb25zLmluY2x1ZGVzKHYubmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3VuZCBtdWx0aXBsZSBvY2N1cnJlbmNlcyBvZiB2ZXJzaW9uICR7di5uYW1lfSBmb3IgJHt0aGlzLmtleX1gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudmVyc2lvbnMucHVzaCh7IG5hbWU6IHYubmFtZSwgc2NoZW1hOiB2LnNjaGVtYSB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGtleSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5ncm91cH0vJHt0aGlzLmtpbmQudG9Mb2NhbGVMb3dlckNhc2UoKX1gO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdlbmVyYXRlVHlwZVNjcmlwdChjb2RlOiBDb2RlTWFrZXIsIG9wdGlvbnM6IEdlbmVyYXRlT3B0aW9ucykge1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnZlcnNpb25zLmxlbmd0aDsgaSsrKSB7XG5cbiAgICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLnZlcnNpb25zW2ldO1xuXG4gICAgICAvLyB0byBwcmVzZXZlIGJhY2t3YXJkcyBjb21wYXRpYmxpdHksIG9ubHkgYXBwZW5kIGEgc3VmZml4IGZvclxuICAgICAgLy8gdGhlIHNlY29uZCB2ZXJzaW9uIG9ud2FyZHMuXG4gICAgICBjb25zdCBzdWZmaXggPSBpID09PSAwID8gJycgOiB0b1Bhc2NhbENhc2UodmVyc2lvbi5uYW1lKTtcblxuICAgICAgY29uc3QgdHlwZXMgPSBuZXcgVHlwZUdlbmVyYXRvcih7fSk7XG5cbiAgICAgIGdlbmVyYXRlQ29uc3RydWN0KHR5cGVzLCB7XG4gICAgICAgIGdyb3VwOiB0aGlzLmdyb3VwLFxuICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uLm5hbWUsXG4gICAgICAgIGtpbmQ6IHRoaXMua2luZCxcbiAgICAgICAgZnFuOiBgJHt0aGlzLmtpbmR9JHtzdWZmaXh9YCxcbiAgICAgICAgc2NoZW1hOiB2ZXJzaW9uLnNjaGVtYSxcbiAgICAgICAgY3VzdG9tOiB0cnVlLFxuICAgICAgICBwcmVmaXg6IG9wdGlvbnMuY2xhc3NOYW1lUHJlZml4LFxuICAgICAgICBzdWZmaXgsXG4gICAgICB9KTtcblxuICAgICAgY29kZS5saW5lKHR5cGVzLnJlbmRlcigpKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiBleHRlbmRzIEltcG9ydEJhc2Uge1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGZyb21TcGVjKGltcG9ydFNwZWM6IEltcG9ydFNwZWMpOiBQcm9taXNlPEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbj4ge1xuICAgIGNvbnN0IHsgc291cmNlIH0gPSBpbXBvcnRTcGVjO1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gYXdhaXQgZG93bmxvYWQoc291cmNlKTtcbiAgICByZXR1cm4gbmV3IEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbihtYW5pZmVzdCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmF3TWFuaWZlc3Q6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBncm91cHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbltdPiA9IHsgfTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHJhd01hbmlmZXN0OiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5yYXdNYW5pZmVzdCA9IHJhd01hbmlmZXN0O1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gc2FmZVBhcnNlQ3JkcyhyYXdNYW5pZmVzdCk7XG5cbiAgICBjb25zdCBjcmRzOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21SZXNvdXJjZURlZmluaXRpb24+ID0geyB9O1xuICAgIGNvbnN0IGdyb3VwczogUmVjb3JkPHN0cmluZywgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uW10+ID0geyB9O1xuXG4gICAgZm9yIChjb25zdCBzcGVjIG9mIG1hbmlmZXN0KSB7XG4gICAgICBjb25zdCBjcmQgPSBuZXcgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uKHNwZWMpO1xuICAgICAgY29uc3Qga2V5ID0gY3JkLmtleTtcblxuICAgICAgaWYgKGtleSBpbiBjcmRzKSB7XG4gICAgICAgIC8vIG1pZ2h0IGNvbnRhaW4gZGlmZmVyZW50IHZlcnNpb25zIC0gbGV0cyB0cnkgdG8gbWVyZ2UgdGhlbSBpblxuICAgICAgICBjcmRzW2tleV0ubWVyZ2UoY3JkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNyZHNba2V5XSA9IGNyZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL3NvcnQgdG8gZW5zdXJlIGNvbnNpc3RlbnQgb3JkZXJpbmcgZm9yIHNuYXBzaG90IGNvbXBhcmVcbiAgICBjb25zdCBzb3J0ZWRDcmRzID0gT2JqZWN0LnZhbHVlcyhjcmRzKS5zb3J0KChhOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb24sIGI6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbikgPT4gYS5rZXkubG9jYWxlQ29tcGFyZShiLmtleSkpO1xuXG4gICAgZm9yIChjb25zdCBjcmQgb2Ygc29ydGVkQ3Jkcykge1xuICAgICAgY29uc3QgZyA9IGNyZC5ncm91cDtcbiAgICAgIGlmICggIShnIGluIGdyb3VwcykgKSB7XG4gICAgICAgIGdyb3Vwc1tnXSA9IG5ldyBBcnJheTxDdXN0b21SZXNvdXJjZURlZmluaXRpb24+KCk7XG4gICAgICB9XG4gICAgICBncm91cHNbZ10ucHVzaChjcmQpO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzID0gZ3JvdXBzO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2R1bGVOYW1lcygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5ncm91cHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdlbmVyYXRlVHlwZVNjcmlwdChjb2RlOiBDb2RlTWFrZXIsIG1vZHVsZU5hbWU6IHN0cmluZywgb3B0aW9uczogR2VuZXJhdGVPcHRpb25zKSB7XG4gICAgY29uc3QgY3JkcyA9IHRoaXMuZ3JvdXBzW21vZHVsZU5hbWVdO1xuXG5cbiAgICBlbWl0SGVhZGVyKGNvZGUsIHRydWUpO1xuXG4gICAgZm9yIChjb25zdCBjcmQgb2YgY3Jkcykge1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjcmQua2V5fWApO1xuICAgICAgYXdhaXQgY3JkLmdlbmVyYXRlVHlwZVNjcmlwdChjb2RlLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0KGNvbmRpdGlvbjogYm9vbGVhbiwgbWVzc2FnZTogc3RyaW5nKSB7XG4gIGlmICghY29uZGl0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiBtYW5pZmVzdDogJHttZXNzYWdlfWApO1xuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVQYXJzZUNyZHMobWFuaWZlc3Q6IHN0cmluZyk6IE1hbmlmZXN0T2JqZWN0RGVmaW5pdGlvbltdIHtcbiAgY29uc3Qgc2NoZW1hUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdzY2hlbWFzJywgJ2NyZC5zY2hlbWEuanNvbicpO1xuICBjb25zdCBzY2hlbWEgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhzY2hlbWFQYXRoLCB7IGVuY29kaW5nOiAndXRmOCcgfSkpO1xuICBjb25zdCByZXZpdmVyID0gbmV3IFNhZmVSZXZpdmVyKHtcbiAgICBzYW5pdGl6ZXJzOiBbU2FmZVJldml2ZXIuREVTQ1JJUFRJT05fU0FOSVRJWkVSLCBTYWZlUmV2aXZlci5MRUdBTF9DSEFSX1NBTklUSVpFUl0sXG4gIH0pO1xuXG4gIC8vIGZpcnN0IHBhcnNlIGFuZCBzdHJpcFxuICBjb25zdCBvYmplY3RzID0gc2FmZVBhcnNlWWFtbChtYW5pZmVzdCwgcmV2aXZlcik7XG5cbiAgLy8gc2luY2UgdGhlIG1hbmlmZXN0IGNhbiBjb250YWluIG5vbiBjcmRzIGFzIHdlbGwsIHdlIGZpcnN0XG4gIC8vIGNvbGxlY3QgYWxsIGNyZHMgYW5kIG9ubHkgYXBwbHkgYSBzY2hlbWEgdmFsaWRhdGlvbiBvbiB0aGVtLlxuXG4gIGNvbnN0IGNyZHM6IGFueVtdID0gW107XG5cbiAgZnVuY3Rpb24gY29sbGVjdENSRHMob2JqczogYW55W10pIHtcbiAgICBmb3IgKGNvbnN0IG9iaiBvZiBvYmpzLmZpbHRlcihvID0+IG8pKSB7XG4gICAgICBpZiAob2JqLmtpbmQgPT09IENSRF9LSU5EKSB7XG4gICAgICAgIGNyZHMucHVzaChvYmopO1xuICAgICAgfVxuICAgICAgaWYgKG9iai5raW5kID09PSAnTGlzdCcpIHtcbiAgICAgICAgY29sbGVjdENSRHMob2JqLml0ZW1zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb2xsZWN0Q1JEcyhvYmplY3RzKTtcblxuICBjb25zdCBhanYgPSBuZXcgQWp2KCk7XG4gIGNvbnN0IHZhbGlkYXRlID0gYWp2LmNvbXBpbGUoc2NoZW1hKTtcbiAgY29uc3QgZXJyb3JzID0gW107XG4gIGZvciAoY29uc3QgY3JkIG9mIGNyZHMpIHtcbiAgICB2YWxpZGF0ZShjcmQpO1xuICAgIGlmICh2YWxpZGF0ZS5lcnJvcnMpIHtcbiAgICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlLmVycm9ycyk7XG4gICAgfTtcbiAgfVxuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNjaGVtYSB2YWxpZGF0aW9uIGVycm9ycyBkZXRlY3RlZFxcbiAke2Vycm9ycy5tYXAoZSA9PiBgKiAke2UubWVzc2FnZX1gKS5qb2luKCdcXG4nKX1gKTtcbiAgfVxuICByZXR1cm4gY3Jkcztcbn1cbiJdfQ==
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydC9jcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDhDQUFzQjtBQUN0Qix5Q0FBb0Q7QUFDcEQseUNBQTBDO0FBQzFDLGlDQUFxRDtBQUNyRCx1Q0FBMEQ7QUFFMUQsd0NBQXlDO0FBQ3pDLGtDQUFrRDtBQUVsRCxNQUFNLFFBQVEsR0FBRywwQkFBMEIsQ0FBQztBQTBCNUMsc0RBQXNEO0FBQ3RELE1BQU0sc0JBQXNCLEdBQUc7SUFDN0IsOEJBQThCO0lBQzlCLHlCQUF5QjtDQUMxQixDQUFDO0FBSUYsTUFBYSx3QkFBd0I7SUFPbkMsWUFBWSxRQUFrQztRQUo3QixhQUFRLEdBQXNDLEVBQUUsQ0FBQztRQUtoRSxNQUFNLFVBQVUsR0FBRyxRQUFRLEVBQUUsVUFBVSxJQUFJLFdBQVcsQ0FBQztRQUN2RCxNQUFNLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLG9CQUFvQixVQUFVLDhCQUE4QixzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4SyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsbUJBQW1CLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFFbkUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdB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RSxDQUFDO0lBQ3RCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ3RCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pDO1FBQUEsQ0FBQztLQUNIO0lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ3hHO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBekNELHNDQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgQWp2IGZyb20gJ2Fqdic7XG5pbXBvcnQgeyBDb2RlTWFrZXIsIHRvUGFzY2FsQ2FzZSB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgeyBUeXBlR2VuZXJhdG9yIH0gZnJvbSAnanNvbjJqc2lpJztcbmltcG9ydCB7IEdlbmVyYXRlT3B0aW9ucywgSW1wb3J0QmFzZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBlbWl0SGVhZGVyLCBnZW5lcmF0ZUNvbnN0cnVjdCB9IGZyb20gJy4vY29kZWdlbic7XG5pbXBvcnQgeyBJbXBvcnRTcGVjIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IFNhZmVSZXZpdmVyIH0gZnJvbSAnLi4vcmV2aXZlcic7XG5pbXBvcnQgeyBkb3dubG9hZCwgc2FmZVBhcnNlWWFtbCB9IGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBDUkRfS0lORCA9ICdDdXN0b21SZXNvdXJjZURlZmluaXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmlmZXN0T2JqZWN0RGVmaW5pdGlvbiB7XG4gIGFwaVZlcnNpb24/OiBzdHJpbmc7XG4gIGtpbmQ/OiBzdHJpbmc7XG4gIGl0ZW1zPzogTWFuaWZlc3RPYmplY3REZWZpbml0aW9uW107IC8vIGlmIGBraW5kYCBpcyBcIkxpc3RcIlxuICBtZXRhZGF0YT86IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICB9O1xuICBzcGVjPzoge1xuICAgIGdyb3VwOiBzdHJpbmc7XG4gICAgbmFtZXM6IHtcbiAgICAgIGtpbmQ6IHN0cmluZztcbiAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICB9O1xuICAgIHZlcnNpb25zPzogQXJyYXk8e1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgc2NoZW1hPzogeyBvcGVuQVBJVjNTY2hlbWE/OiBhbnkgfTtcbiAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICB9PjtcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgIHZhbGlkYXRpb24/OiB7IG9wZW5BUElWM1NjaGVtYT86IGFueSB9O1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbn1cblxuLy8gYWxsIHRoZXNlIEFQSXMgYXJlIGNvbXBhdGlibGUgZnJvbSBvdXIgcGVyc3BlY3RpdmUuXG5jb25zdCBTVVBQT1JURURfQVBJX1ZFUlNJT05TID0gW1xuICAnYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjFiZXRhMScsXG4gICdhcGlleHRlbnNpb25zLms4cy5pby92MScsXG5dO1xuXG50eXBlIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvblZlcnNpb24gPSB7IG5hbWU6IHN0cmluZzsgc2NoZW1hPzogYW55IH07XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21SZXNvdXJjZURlZmluaXRpb24ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkga2luZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHZlcnNpb25zOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb25WZXJzaW9uW10gPSBbXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZ3JvdXA6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihtYW5pZmVzdDogTWFuaWZlc3RPYmplY3REZWZpbml0aW9uKSB7XG4gICAgY29uc3QgYXBpVmVyc2lvbiA9IG1hbmlmZXN0Py5hcGlWZXJzaW9uID8/ICd1bmRlZmluZWQnO1xuICAgIGFzc2VydChTVVBQT1JURURfQVBJX1ZFUlNJT05TLmluY2x1ZGVzKGFwaVZlcnNpb24pLCBgXCJhcGlWZXJzaW9uXCIgaXMgXCIke2FwaVZlcnNpb259XCIgYnV0IGl0IHNob3VsZCBiZSBvbmUgb2Y6ICR7U1VQUE9SVEVEX0FQSV9WRVJTSU9OUy5tYXAoeCA9PiBgXCIke3h9XCJgKS5qb2luKCcsICcpfWApO1xuICAgIGFzc2VydChtYW5pZmVzdC5raW5kID09PSBDUkRfS0lORCwgYFwia2luZFwiIG11c3QgYmUgXCIke0NSRF9LSU5EfVwiYCk7XG5cbiAgICBjb25zdCBzcGVjID0gbWFuaWZlc3Quc3BlYztcbiAgICBpZiAoIXNwZWMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWFuaWZlc3QgZG9lcyBub3QgaGF2ZSBhIFwic3BlY1wiIGF0dHJpYnV0ZScpO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXAgPSBzcGVjLmdyb3VwO1xuICAgIHRoaXMua2luZCA9IHNwZWMubmFtZXMua2luZDtcblxuICAgIGlmIChzcGVjLnZlcnNpb24pIHtcbiAgICAgIHRoaXMuYWRkVmVyc2lvbnMoW3sgbmFtZTogc3BlYy52ZXJzaW9uLCBzY2hlbWE6IHNwZWMudmFsaWRhdGlvbj8ub3BlbkFQSVYzU2NoZW1hIH1dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRWZXJzaW9ucygoc3BlYy52ZXJzaW9ucyA/PyBbXSkubWFwKHYgPT4gKHsgbmFtZTogdi5uYW1lLCBzY2hlbWE6IHYuc2NoZW1hPy5vcGVuQVBJVjNTY2hlbWEgPz8gc3BlYy52YWxpZGF0aW9uPy5vcGVuQVBJVjNTY2hlbWEgfSkpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52ZXJzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5hYmxlIHRvIGRldGVybWluZSBDUkQgdmVyc2lvbnMnKTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBtZXJnZShjcmQ6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbikge1xuICAgIHRoaXMuYWRkVmVyc2lvbnMoY3JkLnZlcnNpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVmVyc2lvbnModmVyc2lvbnM6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvblZlcnNpb25bXSkge1xuICAgIGZvciAoY29uc3QgdiBvZiB2ZXJzaW9ucykge1xuICAgICAgY29uc3QgZXhpc3RpbmdWZXJzaW9ucyA9IHRoaXMudmVyc2lvbnMubWFwKHZlciA9PiB2ZXIubmFtZSk7XG4gICAgICBpZiAoZXhpc3RpbmdWZXJzaW9ucy5pbmNsdWRlcyh2Lm5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRm91bmQgbXVsdGlwbGUgb2NjdXJyZW5jZXMgb2YgdmVyc2lvbiAke3YubmFtZX0gZm9yICR7dGhpcy5rZXl9YCk7XG4gICAgICB9XG4gICAgICB0aGlzLnZlcnNpb25zLnB1c2goeyBuYW1lOiB2Lm5hbWUsIHNjaGVtYTogdi5zY2hlbWEgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBrZXkoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ3JvdXB9LyR7dGhpcy5raW5kLnRvTG9jYWxlTG93ZXJDYXNlKCl9YDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZW5lcmF0ZVR5cGVTY3JpcHQoY29kZTogQ29kZU1ha2VyLCBvcHRpb25zOiBHZW5lcmF0ZU9wdGlvbnMpIHtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy52ZXJzaW9ucy5sZW5ndGg7IGkrKykge1xuXG4gICAgICBjb25zdCB2ZXJzaW9uID0gdGhpcy52ZXJzaW9uc1tpXTtcblxuICAgICAgLy8gdG8gcHJlc2V2ZSBiYWNrd2FyZHMgY29tcGF0aWJsaXR5LCBvbmx5IGFwcGVuZCBhIHN1ZmZpeCBmb3JcbiAgICAgIC8vIHRoZSBzZWNvbmQgdmVyc2lvbiBvbndhcmRzLlxuICAgICAgY29uc3Qgc3VmZml4ID0gaSA9PT0gMCA/ICcnIDogdG9QYXNjYWxDYXNlKHZlcnNpb24ubmFtZSk7XG5cbiAgICAgIGNvbnN0IHR5cGVzID0gbmV3IFR5cGVHZW5lcmF0b3Ioe30pO1xuXG4gICAgICBnZW5lcmF0ZUNvbnN0cnVjdCh0eXBlcywge1xuICAgICAgICBncm91cDogdGhpcy5ncm91cCxcbiAgICAgICAgdmVyc2lvbjogdmVyc2lvbi5uYW1lLFxuICAgICAgICBraW5kOiB0aGlzLmtpbmQsXG4gICAgICAgIGZxbjogYCR7dGhpcy5raW5kfSR7c3VmZml4fWAsXG4gICAgICAgIHNjaGVtYTogdmVyc2lvbi5zY2hlbWEsXG4gICAgICAgIGN1c3RvbTogdHJ1ZSxcbiAgICAgICAgcHJlZml4OiBvcHRpb25zLmNsYXNzTmFtZVByZWZpeCxcbiAgICAgICAgc3VmZml4LFxuICAgICAgfSk7XG5cbiAgICAgIGNvZGUubGluZSh0eXBlcy5yZW5kZXIoKSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRDdXN0b21SZXNvdXJjZURlZmluaXRpb24gZXh0ZW5kcyBJbXBvcnRCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBmcm9tU3BlYyhpbXBvcnRTcGVjOiBJbXBvcnRTcGVjKTogUHJvbWlzZTxJbXBvcnRDdXN0b21SZXNvdXJjZURlZmluaXRpb24+IHtcbiAgICBjb25zdCB7IHNvdXJjZSB9ID0gaW1wb3J0U3BlYztcbiAgICBjb25zdCBtYW5pZmVzdCA9IGF3YWl0IGRvd25sb2FkKHNvdXJjZSk7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRDdXN0b21SZXNvdXJjZURlZmluaXRpb24obWFuaWZlc3QpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJhd01hbmlmZXN0OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ3JvdXBzOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21SZXNvdXJjZURlZmluaXRpb25bXT4gPSB7IH07XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihyYXdNYW5pZmVzdDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMucmF3TWFuaWZlc3QgPSByYXdNYW5pZmVzdDtcbiAgICBjb25zdCBtYW5pZmVzdCA9IHNhZmVQYXJzZUNyZHMocmF3TWFuaWZlc3QpO1xuXG4gICAgY29uc3QgY3JkczogUmVjb3JkPHN0cmluZywgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uPiA9IHsgfTtcbiAgICBjb25zdCBncm91cHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbltdPiA9IHsgfTtcblxuICAgIGZvciAoY29uc3Qgc3BlYyBvZiBtYW5pZmVzdCkge1xuICAgICAgY29uc3QgY3JkID0gbmV3IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbihzcGVjKTtcbiAgICAgIGNvbnN0IGtleSA9IGNyZC5rZXk7XG5cbiAgICAgIGlmIChrZXkgaW4gY3Jkcykge1xuICAgICAgICAvLyBtaWdodCBjb250YWluIGRpZmZlcmVudCB2ZXJzaW9ucyAtIGxldHMgdHJ5IHRvIG1lcmdlIHRoZW0gaW5cbiAgICAgICAgY3Jkc1trZXldLm1lcmdlKGNyZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjcmRzW2tleV0gPSBjcmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9zb3J0IHRvIGVuc3VyZSBjb25zaXN0ZW50IG9yZGVyaW5nIGZvciBzbmFwc2hvdCBjb21wYXJlXG4gICAgY29uc3Qgc29ydGVkQ3JkcyA9IE9iamVjdC52YWx1ZXMoY3Jkcykuc29ydCgoYTogQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLCBiOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb24pID0+IGEua2V5LmxvY2FsZUNvbXBhcmUoYi5rZXkpKTtcblxuICAgIGZvciAoY29uc3QgY3JkIG9mIHNvcnRlZENyZHMpIHtcbiAgICAgIGNvbnN0IGcgPSBjcmQuZ3JvdXA7XG4gICAgICBpZiAoICEoZyBpbiBncm91cHMpICkge1xuICAgICAgICBncm91cHNbZ10gPSBuZXcgQXJyYXk8Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uPigpO1xuICAgICAgfVxuICAgICAgZ3JvdXBzW2ddLnB1c2goY3JkKTtcbiAgICB9XG5cbiAgICB0aGlzLmdyb3VwcyA9IGdyb3VwcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kdWxlTmFtZXMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZ3JvdXBzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZW5lcmF0ZVR5cGVTY3JpcHQoY29kZTogQ29kZU1ha2VyLCBtb2R1bGVOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEdlbmVyYXRlT3B0aW9ucykge1xuICAgIGNvbnN0IGNyZHMgPSB0aGlzLmdyb3Vwc1ttb2R1bGVOYW1lXTtcblxuXG4gICAgZW1pdEhlYWRlcihjb2RlLCB0cnVlKTtcblxuICAgIGZvciAoY29uc3QgY3JkIG9mIGNyZHMpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y3JkLmtleX1gKTtcbiAgICAgIGF3YWl0IGNyZC5nZW5lcmF0ZVR5cGVTY3JpcHQoY29kZSwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydChjb25kaXRpb246IGJvb2xlYW4sIG1lc3NhZ2U6IHN0cmluZykge1xuICBpZiAoIWNvbmRpdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBDdXN0b21SZXNvdXJjZURlZmluaXRpb24gbWFuaWZlc3Q6ICR7bWVzc2FnZX1gKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBzYWZlUGFyc2VDcmRzKG1hbmlmZXN0OiBzdHJpbmcpOiBNYW5pZmVzdE9iamVjdERlZmluaXRpb25bXSB7XG4gIGNvbnN0IHNjaGVtYVBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnc2NoZW1hcycsICdjcmQuc2NoZW1hLmpzb24nKTtcbiAgY29uc3Qgc2NoZW1hID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoc2NoZW1hUGF0aCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pKTtcbiAgY29uc3QgcmV2aXZlciA9IG5ldyBTYWZlUmV2aXZlcih7XG4gICAgc2FuaXRpemVyczogW1NhZmVSZXZpdmVyLkRFU0NSSVBUSU9OX1NBTklUSVpFUiwgU2FmZVJldml2ZXIuTEVHQUxfQ0hBUl9TQU5JVElaRVJdLFxuICB9KTtcblxuICAvLyBmaXJzdCBwYXJzZSBhbmQgc3RyaXBcbiAgY29uc3Qgb2JqZWN0cyA9IHNhZmVQYXJzZVlhbWwobWFuaWZlc3QsIHJldml2ZXIpO1xuXG4gIC8vIHNpbmNlIHRoZSBtYW5pZmVzdCBjYW4gY29udGFpbiBub24gY3JkcyBhcyB3ZWxsLCB3ZSBmaXJzdFxuICAvLyBjb2xsZWN0IGFsbCBjcmRzIGFuZCBvbmx5IGFwcGx5IGEgc2NoZW1hIHZhbGlkYXRpb24gb24gdGhlbS5cblxuICBjb25zdCBjcmRzOiBhbnlbXSA9IFtdO1xuXG4gIGZ1bmN0aW9uIGNvbGxlY3RDUkRzKG9ianM6IGFueVtdKSB7XG4gICAgZm9yIChjb25zdCBvYmogb2Ygb2Jqcy5maWx0ZXIobyA9PiBvKSkge1xuICAgICAgaWYgKG9iai5raW5kID09PSBDUkRfS0lORCkge1xuICAgICAgICBjcmRzLnB1c2gob2JqKTtcbiAgICAgIH1cbiAgICAgIGlmIChvYmoua2luZCA9PT0gJ0xpc3QnKSB7XG4gICAgICAgIGNvbGxlY3RDUkRzKG9iai5pdGVtcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29sbGVjdENSRHMob2JqZWN0cyk7XG5cbiAgY29uc3QgYWp2ID0gbmV3IEFqdigpO1xuICBjb25zdCB2YWxpZGF0ZSA9IGFqdi5jb21waWxlKHNjaGVtYSk7XG4gIGNvbnN0IGVycm9ycyA9IFtdO1xuICBmb3IgKGNvbnN0IGNyZCBvZiBjcmRzKSB7XG4gICAgdmFsaWRhdGUoY3JkKTtcbiAgICBpZiAodmFsaWRhdGUuZXJyb3JzKSB7XG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZS5lcnJvcnMpO1xuICAgIH07XG4gIH1cbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTY2hlbWEgdmFsaWRhdGlvbiBlcnJvcnMgZGV0ZWN0ZWRcXG4gJHtlcnJvcnMubWFwKGUgPT4gYCogJHtlLm1lc3NhZ2V9YCkuam9pbignXFxuJyl9YCk7XG4gIH1cbiAgcmV0dXJuIGNyZHM7XG59XG4iXX0=
@@ -22,7 +22,6 @@ exports.matchCrdsDevUrl = void 0;
22
22
  * @param source
23
23
  */
24
24
  function matchCrdsDevUrl(source) {
25
- var _a;
26
25
  const match = /^github:([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)(?:\@([0-9]+)\.([0-9]+)(?:\.([0-9]+))?)?$/.exec(source);
27
26
  if (match) {
28
27
  const account = match[1];
@@ -33,7 +32,7 @@ function matchCrdsDevUrl(source) {
33
32
  let url = `https://doc.crds.dev/raw/github.com/${account}/${repo}`;
34
33
  if (major) {
35
34
  const minor = match[4];
36
- const patch = (_a = match[5]) !== null && _a !== void 0 ? _a : '0';
35
+ const patch = match[5] ?? '0';
37
36
  url = `https://doc.crds.dev/raw/github.com/${account}/${repo}@v${major}.${minor}.${patch}`;
38
37
  }
39
38
  return url;
@@ -41,4 +40,4 @@ function matchCrdsDevUrl(source) {
41
40
  return undefined;
42
41
  }
43
42
  exports.matchCrdsDevUrl = matchCrdsDevUrl;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jkcy1kZXYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2NyZHMtZGV2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxNQUFjOztJQUM1QyxNQUFNLEtBQUssR0FBRyx1RkFBdUYsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkgsSUFBSSxLQUFLLEVBQUU7UUFDVCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2QiwyQ0FBMkM7UUFDM0MsMkRBQTJEO1FBQzNELElBQUksR0FBRyxHQUFHLHVDQUF1QyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbkUsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsTUFBTSxLQUFLLEdBQUcsTUFBQSxLQUFLLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEdBQUcsQ0FBQztZQUU5QixHQUFHLEdBQUcsdUNBQXVDLE9BQU8sSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQztTQUM1RjtRQUVELE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBckJELDBDQXFCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqICAgICAgICAgICAgICBnaXRodWI6Y3Jvc3NwbGFuZS9jcm9zc3BsYW5lQDAuMTQuMFxuICogICAgICAgICAgICAgIHwtLV4tIHwgIF4gICAgICAgICBeICAgICAgICAgXiBeICBeXG4gKiAgICAgICAgICAgICAgICAgfCAgICAgfCAgICAgICAgIHwgICAgICAgICB8IHwgIHxcbiAqICAtIHByb3ZpZGVyIC0tLS0rICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgfCAgfFxuICogIC0gYWNjb3VudCAtLS0tLS0tLS0tLSsgICAgICAgICB8ICAgICAgICAgfCB8ICB8XG4gKiAgLSByZXBvIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgICB8IHwgIHxcbiAqICAtIG1ham9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfCAgfFxuICogIC0gbWlub3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICB8XG4gKiAgLSBwYXRjaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAqL1xuXG4vKipcbiAqIE1hdGNoZXMgYSBodHRwczovL2RvYy5jcmRzLmRldiByZXBvXG4gKlxuICogIC0gdXJsIGlmIGZvdW5kXG4gKiAgLSB1bmRlZmluZWQgaWYgbm90XG4gKlxuICogQHBhcmFtIHNvdXJjZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hDcmRzRGV2VXJsKHNvdXJjZTogc3RyaW5nKTogKHVuZGVmaW5lZCB8IHN0cmluZykge1xuICBjb25zdCBtYXRjaCA9IC9eZ2l0aHViOihbQS1aYS16MC05Xy4tXSspXFwvKFtBLVphLXowLTlfLi1dKykoPzpcXEAoWzAtOV0rKVxcLihbMC05XSspKD86XFwuKFswLTldKykpPyk/JC8uZXhlYyhzb3VyY2UpO1xuICBpZiAobWF0Y2gpIHtcbiAgICBjb25zdCBhY2NvdW50ID0gbWF0Y2hbMV07XG4gICAgY29uc3QgcmVwbyA9IG1hdGNoWzJdO1xuICAgIGNvbnN0IG1ham9yID0gbWF0Y2hbM107XG5cbiAgICAvL2RlZmF1bHQgdG8gbWFzdGVyIGlmIG5vIHZlcnNpb24gc3BlY2lmaWVkXG4gICAgLy9UT0RPOiBnZXQgbGF0ZXN0IHJlbGVhc2VkIHZlcnNpb24gZnJvbSBhdmFpbGFibGUgdmVyc2lvbnNcbiAgICBsZXQgdXJsID0gYGh0dHBzOi8vZG9jLmNyZHMuZGV2L3Jhdy9naXRodWIuY29tLyR7YWNjb3VudH0vJHtyZXBvfWA7XG4gICAgaWYgKG1ham9yKSB7XG4gICAgICBjb25zdCBtaW5vciA9IG1hdGNoWzRdO1xuICAgICAgY29uc3QgcGF0Y2ggPSBtYXRjaFs1XSA/PyAnMCc7XG5cbiAgICAgIHVybCA9IGBodHRwczovL2RvYy5jcmRzLmRldi9yYXcvZ2l0aHViLmNvbS8ke2FjY291bnR9LyR7cmVwb31AdiR7bWFqb3J9LiR7bWlub3J9LiR7cGF0Y2h9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jkcy1kZXYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2NyZHMtZGV2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxNQUFjO0lBQzVDLE1BQU0sS0FBSyxHQUFHLHVGQUF1RixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuSCxJQUFJLEtBQUssRUFBRTtRQUNULE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZCLDJDQUEyQztRQUMzQywyREFBMkQ7UUFDM0QsSUFBSSxHQUFHLEdBQUcsdUNBQXVDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuRSxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO1lBRTlCLEdBQUcsR0FBRyx1Q0FBdUMsT0FBTyxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDO1NBQzVGO1FBRUQsT0FBTyxHQUFHLENBQUM7S0FDWjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFyQkQsMENBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogICAgICAgICAgICAgIGdpdGh1Yjpjcm9zc3BsYW5lL2Nyb3NzcGxhbmVAMC4xNC4wXG4gKiAgICAgICAgICAgICAgfC0tXi0gfCAgXiAgICAgICAgIF4gICAgICAgICBeIF4gIF5cbiAqICAgICAgICAgICAgICAgICB8ICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgfCAgfFxuICogIC0gcHJvdmlkZXIgLS0tLSsgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB8ICB8XG4gKiAgLSBhY2NvdW50IC0tLS0tLS0tLS0tKyAgICAgICAgIHwgICAgICAgICB8IHwgIHxcbiAqICAtIHJlcG8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgICAgIHwgfCAgfFxuICogIC0gbWFqb3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8ICB8XG4gKiAgLSBtaW5vciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgIHxcbiAqICAtIHBhdGNoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICovXG5cbi8qKlxuICogTWF0Y2hlcyBhIGh0dHBzOi8vZG9jLmNyZHMuZGV2IHJlcG9cbiAqXG4gKiAgLSB1cmwgaWYgZm91bmRcbiAqICAtIHVuZGVmaW5lZCBpZiBub3RcbiAqXG4gKiBAcGFyYW0gc291cmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaENyZHNEZXZVcmwoc291cmNlOiBzdHJpbmcpOiAodW5kZWZpbmVkIHwgc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gL15naXRodWI6KFtBLVphLXowLTlfLi1dKylcXC8oW0EtWmEtejAtOV8uLV0rKSg/OlxcQChbMC05XSspXFwuKFswLTldKykoPzpcXC4oWzAtOV0rKSk/KT8kLy5leGVjKHNvdXJjZSk7XG4gIGlmIChtYXRjaCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBtYXRjaFsxXTtcbiAgICBjb25zdCByZXBvID0gbWF0Y2hbMl07XG4gICAgY29uc3QgbWFqb3IgPSBtYXRjaFszXTtcblxuICAgIC8vZGVmYXVsdCB0byBtYXN0ZXIgaWYgbm8gdmVyc2lvbiBzcGVjaWZpZWRcbiAgICAvL1RPRE86IGdldCBsYXRlc3QgcmVsZWFzZWQgdmVyc2lvbiBmcm9tIGF2YWlsYWJsZSB2ZXJzaW9uc1xuICAgIGxldCB1cmwgPSBgaHR0cHM6Ly9kb2MuY3Jkcy5kZXYvcmF3L2dpdGh1Yi5jb20vJHthY2NvdW50fS8ke3JlcG99YDtcbiAgICBpZiAobWFqb3IpIHtcbiAgICAgIGNvbnN0IG1pbm9yID0gbWF0Y2hbNF07XG4gICAgICBjb25zdCBwYXRjaCA9IG1hdGNoWzVdID8/ICcwJztcblxuICAgICAgdXJsID0gYGh0dHBzOi8vZG9jLmNyZHMuZGV2L3Jhdy9naXRodWIuY29tLyR7YWNjb3VudH0vJHtyZXBvfUB2JHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xuICAgIH1cblxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
@@ -8,7 +8,6 @@ const k8s_1 = require("./k8s");
8
8
  const config_1 = require("../config");
9
9
  const util_1 = require("../util");
10
10
  async function importDispatch(imports, argv, options) {
11
- var _a;
12
11
  for (const importSpec of imports) {
13
12
  const importer = await matchImporter(importSpec, argv);
14
13
  if (!importer) {
@@ -19,7 +18,7 @@ async function importDispatch(imports, argv, options) {
19
18
  moduleNamePrefix: importSpec.moduleNamePrefix,
20
19
  ...options,
21
20
  });
22
- if ((_a = options.save) !== null && _a !== void 0 ? _a : true) {
21
+ if (options.save ?? true) {
23
22
  const spec = importSpec.moduleNamePrefix ? `${importSpec.moduleNamePrefix}${util_1.PREFIX_DELIM}${importSpec.source}` : importSpec.source;
24
23
  await (0, config_1.addImportToConfig)(spec);
25
24
  }
@@ -45,4 +44,4 @@ async function matchImporter(importSpec, argv) {
45
44
  return crd_1.ImportCustomResourceDefinition.fromSpec(importSpec);
46
45
  }
47
46
  exports.matchImporter = matchImporter;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2Rpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUF1RDtBQUN2RCx5Q0FBNkM7QUFDN0MsaUNBQW9DO0FBQ3BDLCtCQUE0QztBQUM1QyxzQ0FBMEQ7QUFDMUQsa0NBQXVDO0FBRWhDLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBcUIsRUFBRSxJQUFTLEVBQUUsT0FBc0I7O0lBQzNGLEtBQUssTUFBTSxVQUFVLElBQUksT0FBTyxFQUFFO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLE1BQU0sYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUN4RTtRQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUVyRSxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDcEIsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQjtZQUM3QyxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLE1BQUEsT0FBTyxDQUFDLElBQUksbUNBQUksSUFBSSxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsbUJBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDbkksTUFBTSxJQUFBLDBCQUFpQixFQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0tBQ0Y7QUFDSCxDQUFDO0FBcEJELHdDQW9CQztBQUVNLEtBQUssVUFBVSxhQUFhLENBQUMsVUFBc0IsRUFBRSxJQUFTO0lBRW5FLHFDQUFxQztJQUNyQyxNQUFNLEdBQUcsR0FBRyxNQUFNLHlCQUFtQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUQsSUFBSSxHQUFHLEVBQUU7UUFDUCxPQUFPLElBQUkseUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDckM7SUFFRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvQyxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUU7UUFDckIsT0FBTyxpQkFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUN4QztJQUVELHFDQUFxQztJQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFBLDBCQUFlLEVBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELElBQUksVUFBVSxFQUFFO1FBQ2QsT0FBTyxvQ0FBOEIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7S0FDdkg7SUFFRCwwQkFBMEI7SUFDMUIsT0FBTyxvQ0FBOEIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQXRCRCxzQ0FzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbXBvcnRCYXNlLCBJbXBvcnRPcHRpb25zIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4vY3JkJztcbmltcG9ydCB7IG1hdGNoQ3Jkc0RldlVybCB9IGZyb20gJy4vY3Jkcy1kZXYnO1xuaW1wb3J0IHsgSW1wb3J0SGVsbSB9IGZyb20gJy4vaGVsbSc7XG5pbXBvcnQgeyBJbXBvcnRLdWJlcm5ldGVzQXBpIH0gZnJvbSAnLi9rOHMnO1xuaW1wb3J0IHsgSW1wb3J0U3BlYywgYWRkSW1wb3J0VG9Db25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgUFJFRklYX0RFTElNIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbXBvcnREaXNwYXRjaChpbXBvcnRzOiBJbXBvcnRTcGVjW10sIGFyZ3Y6IGFueSwgb3B0aW9uczogSW1wb3J0T3B0aW9ucykge1xuICBmb3IgKGNvbnN0IGltcG9ydFNwZWMgb2YgaW1wb3J0cykge1xuICAgIGNvbnN0IGltcG9ydGVyID0gYXdhaXQgbWF0Y2hJbXBvcnRlcihpbXBvcnRTcGVjLCBhcmd2KTtcblxuICAgIGlmICghaW1wb3J0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5hYmxlIHRvIGRldGVybWluZSBpbXBvcnQgdHlwZSBmb3IgXCIke2ltcG9ydFNwZWN9XCJgKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmVycm9yKCdJbXBvcnRpbmcgcmVzb3VyY2VzLCB0aGlzIG1heSB0YWtlIGEgZmV3IG1vbWVudHMuLi4nKTtcblxuICAgIGF3YWl0IGltcG9ydGVyLmltcG9ydCh7XG4gICAgICBtb2R1bGVOYW1lUHJlZml4OiBpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXgsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuc2F2ZSA/PyB0cnVlKSB7XG4gICAgICBjb25zdCBzcGVjID0gaW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4ID8gYCR7aW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4fSR7UFJFRklYX0RFTElNfSR7aW1wb3J0U3BlYy5zb3VyY2V9YCA6IGltcG9ydFNwZWMuc291cmNlO1xuICAgICAgYXdhaXQgYWRkSW1wb3J0VG9Db25maWcoc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYXRjaEltcG9ydGVyKGltcG9ydFNwZWM6IEltcG9ydFNwZWMsIGFyZ3Y6IGFueSk6IFByb21pc2U8SW1wb3J0QmFzZT4ge1xuXG4gIC8vIGZpcnN0IGNoZWNrIGlmIGl0cyBhIGBrOHNAYCBpbXBvcnRcbiAgY29uc3QgazhzID0gYXdhaXQgSW1wb3J0S3ViZXJuZXRlc0FwaS5tYXRjaChpbXBvcnRTcGVjLCBhcmd2KTtcbiAgaWYgKGs4cykge1xuICAgIHJldHVybiBuZXcgSW1wb3J0S3ViZXJuZXRlc0FwaShrOHMpO1xuICB9XG5cbiAgY29uc3QgcHJlZml4ID0gaW1wb3J0U3BlYy5zb3VyY2Uuc3BsaXQoJzonKVswXTtcblxuICBpZiAocHJlZml4ID09PSAnaGVsbScpIHtcbiAgICByZXR1cm4gSW1wb3J0SGVsbS5mcm9tU3BlYyhpbXBvcnRTcGVjKTtcbiAgfVxuXG4gIC8vIG5vdyBjaGVjayBpZiBpdHMgYSBjcmRzLmRldiBpbXBvcnRcbiAgY29uc3QgY3Jkc0RldlVybCA9IG1hdGNoQ3Jkc0RldlVybChpbXBvcnRTcGVjLnNvdXJjZSk7XG4gIGlmIChjcmRzRGV2VXJsKSB7XG4gICAgcmV0dXJuIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbi5mcm9tU3BlYyh7IHNvdXJjZTogY3Jkc0RldlVybCwgbW9kdWxlTmFtZVByZWZpeDogaW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4IH0pO1xuICB9XG5cbiAgLy8gZGVmYXVsdCB0byBhIG5vcm1hbCBDUkRcbiAgcmV0dXJuIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbi5mcm9tU3BlYyhpbXBvcnRTcGVjKTtcbn0iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2Rpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUF1RDtBQUN2RCx5Q0FBNkM7QUFDN0MsaUNBQW9DO0FBQ3BDLCtCQUE0QztBQUM1QyxzQ0FBMEQ7QUFDMUQsa0NBQXVDO0FBRWhDLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBcUIsRUFBRSxJQUFTLEVBQUUsT0FBc0I7SUFDM0YsS0FBSyxNQUFNLFVBQVUsSUFBSSxPQUFPLEVBQUU7UUFDaEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNwQixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCO1lBQzdDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxtQkFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNuSSxNQUFNLElBQUEsMEJBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7S0FDRjtBQUNILENBQUM7QUFwQkQsd0NBb0JDO0FBRU0sS0FBSyxVQUFVLGFBQWEsQ0FBQyxVQUFzQixFQUFFLElBQVM7SUFFbkUscUNBQXFDO0lBQ3JDLE1BQU0sR0FBRyxHQUFHLE1BQU0seUJBQW1CLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxJQUFJLEdBQUcsRUFBRTtRQUNQLE9BQU8sSUFBSSx5QkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNyQztJQUVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRS9DLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtRQUNyQixPQUFPLGlCQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3hDO0lBRUQscUNBQXFDO0lBQ3JDLE1BQU0sVUFBVSxHQUFHLElBQUEsMEJBQWUsRUFBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsSUFBSSxVQUFVLEVBQUU7UUFDZCxPQUFPLG9DQUE4QixDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztLQUN2SDtJQUVELDBCQUEwQjtJQUMxQixPQUFPLG9DQUE4QixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBdEJELHNDQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEltcG9ydEJhc2UsIEltcG9ydE9wdGlvbnMgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9jcmQnO1xuaW1wb3J0IHsgbWF0Y2hDcmRzRGV2VXJsIH0gZnJvbSAnLi9jcmRzLWRldic7XG5pbXBvcnQgeyBJbXBvcnRIZWxtIH0gZnJvbSAnLi9oZWxtJztcbmltcG9ydCB7IEltcG9ydEt1YmVybmV0ZXNBcGkgfSBmcm9tICcuL2s4cyc7XG5pbXBvcnQgeyBJbXBvcnRTcGVjLCBhZGRJbXBvcnRUb0NvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBQUkVGSVhfREVMSU0gfSBmcm9tICcuLi91dGlsJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGltcG9ydERpc3BhdGNoKGltcG9ydHM6IEltcG9ydFNwZWNbXSwgYXJndjogYW55LCBvcHRpb25zOiBJbXBvcnRPcHRpb25zKSB7XG4gIGZvciAoY29uc3QgaW1wb3J0U3BlYyBvZiBpbXBvcnRzKSB7XG4gICAgY29uc3QgaW1wb3J0ZXIgPSBhd2FpdCBtYXRjaEltcG9ydGVyKGltcG9ydFNwZWMsIGFyZ3YpO1xuXG4gICAgaWYgKCFpbXBvcnRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmFibGUgdG8gZGV0ZXJtaW5lIGltcG9ydCB0eXBlIGZvciBcIiR7aW1wb3J0U3BlY31cImApO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoJ0ltcG9ydGluZyByZXNvdXJjZXMsIHRoaXMgbWF5IHRha2UgYSBmZXcgbW9tZW50cy4uLicpO1xuXG4gICAgYXdhaXQgaW1wb3J0ZXIuaW1wb3J0KHtcbiAgICAgIG1vZHVsZU5hbWVQcmVmaXg6IGltcG9ydFNwZWMubW9kdWxlTmFtZVByZWZpeCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5zYXZlID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IHNwZWMgPSBpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXggPyBgJHtpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXh9JHtQUkVGSVhfREVMSU19JHtpbXBvcnRTcGVjLnNvdXJjZX1gIDogaW1wb3J0U3BlYy5zb3VyY2U7XG4gICAgICBhd2FpdCBhZGRJbXBvcnRUb0NvbmZpZyhzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1hdGNoSW1wb3J0ZXIoaW1wb3J0U3BlYzogSW1wb3J0U3BlYywgYXJndjogYW55KTogUHJvbWlzZTxJbXBvcnRCYXNlPiB7XG5cbiAgLy8gZmlyc3QgY2hlY2sgaWYgaXRzIGEgYGs4c0BgIGltcG9ydFxuICBjb25zdCBrOHMgPSBhd2FpdCBJbXBvcnRLdWJlcm5ldGVzQXBpLm1hdGNoKGltcG9ydFNwZWMsIGFyZ3YpO1xuICBpZiAoazhzKSB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRLdWJlcm5ldGVzQXBpKGs4cyk7XG4gIH1cblxuICBjb25zdCBwcmVmaXggPSBpbXBvcnRTcGVjLnNvdXJjZS5zcGxpdCgnOicpWzBdO1xuXG4gIGlmIChwcmVmaXggPT09ICdoZWxtJykge1xuICAgIHJldHVybiBJbXBvcnRIZWxtLmZyb21TcGVjKGltcG9ydFNwZWMpO1xuICB9XG5cbiAgLy8gbm93IGNoZWNrIGlmIGl0cyBhIGNyZHMuZGV2IGltcG9ydFxuICBjb25zdCBjcmRzRGV2VXJsID0gbWF0Y2hDcmRzRGV2VXJsKGltcG9ydFNwZWMuc291cmNlKTtcbiAgaWYgKGNyZHNEZXZVcmwpIHtcbiAgICByZXR1cm4gSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLmZyb21TcGVjKHsgc291cmNlOiBjcmRzRGV2VXJsLCBtb2R1bGVOYW1lUHJlZml4OiBpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXggfSk7XG4gIH1cblxuICAvLyBkZWZhdWx0IHRvIGEgbm9ybWFsIENSRFxuICByZXR1cm4gSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLmZyb21TcGVjKGltcG9ydFNwZWMpO1xufSJdfQ==
@@ -65,10 +65,9 @@ class ImportHelm extends base_1.ImportBase {
65
65
  return [this.chartName];
66
66
  }
67
67
  async generateTypeScript(code) {
68
- var _a;
69
68
  (0, codegen_1.emitHelmHeader)(code);
70
69
  const types = new json2jsii_1.TypeGenerator({
71
- definitions: (_a = this.schema) === null || _a === void 0 ? void 0 : _a.definitions,
70
+ definitions: this.schema?.definitions,
72
71
  toJson: false,
73
72
  sanitizeEnums: true,
74
73
  });
@@ -171,4 +170,4 @@ function pullHelmRepo(chartUrl, chartName, chartVersion) {
171
170
  function cleanup(tmpDir) {
172
171
  fs.rmSync(tmpDir, { recursive: true });
173
172
  }
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVsbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvaGVsbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUEwQztBQUMxQyx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixpQ0FBNkI7QUFHN0IseUNBQTBDO0FBQzFDLCtDQUFpQztBQUNqQyxpQ0FBb0M7QUFDcEMsdUNBQWtFO0FBR2xFLE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUVoQyxNQUFhLFVBQVcsU0FBUSxpQkFBVTtJQUNqQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFzQjtRQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQVNELFlBQW9CLE1BQWM7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFKTyxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFNaEQsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFL0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJ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O0tBQzdFO0lBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUN6QztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLE9BQU8sQ0FBQyxNQUFjO0lBQzdCLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduU3luYyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IFlhbWwgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tICdjb2RlbWFrZXInO1xuaW1wb3J0IHR5cGUgeyBKU09OU2NoZW1hNCB9IGZyb20gJ2pzb24tc2NoZW1hJztcbmltcG9ydCB7IFR5cGVHZW5lcmF0b3IgfSBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgeyBJbXBvcnRCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IGVtaXRIZWxtSGVhZGVyLCBnZW5lcmF0ZUhlbG1Db25zdHJ1Y3QgfSBmcm9tICcuL2NvZGVnZW4nO1xuaW1wb3J0IHsgSW1wb3J0U3BlYyB9IGZyb20gJy4uL2NvbmZpZyc7XG5cbmNvbnN0IE1BWF9IRUxNX0JVRkZFUiA9IDEwICogMTAyNCAqIDEwMjQ7XG5jb25zdCBDSEFSVF9TQ0hFTUEgPSAndmFsdWVzLnNjaGVtYS5qc29uJztcbmNvbnN0IENIQVJUX1lBTUwgPSAnQ2hhcnQueWFtbCc7XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRIZWxtIGV4dGVuZHMgSW1wb3J0QmFzZSB7XG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgZnJvbVNwZWMoaW1wb3J0U3BlYzogSW1wb3J0U3BlYyk6IFByb21pc2U8SW1wb3J0SGVsbT4ge1xuICAgIGNvbnN0IHsgc291cmNlIH0gPSBpbXBvcnRTcGVjO1xuICAgIHJldHVybiBuZXcgSW1wb3J0SGVsbShzb3VyY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGFydE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjaGFydFVybDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0VmVyc2lvbjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0U2NoZW1hUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0RGVwZW5kZW5jaWVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHNjaGVtYTogSlNPTlNjaGVtYTQgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihzb3VyY2U6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG5cbiAgICBjb25zdCBbY2hhcnRVcmwsIGNoYXJ0TmFtZSwgY2hhcnRWZXJzaW9uXSA9IGV4dHJhY3RIZWxtQ2hhcnREZXRhaWxzKHNvdXJjZSk7XG5cbiAgICB0aGlzLmNoYXJ0TmFtZSA9IGNoYXJ0TmFtZTtcbiAgICB0aGlzLmNoYXJ0VXJsID0gY2hhcnRVcmw7XG4gICAgdGhpcy5jaGFydFZlcnNpb24gPSBjaGFydFZlcnNpb247XG4gICAgY29uc3QgdG1wRGlyID0gcHVsbEhlbG1SZXBvKGNoYXJ0VXJsLCBjaGFydE5hbWUsIGNoYXJ0VmVyc2lvbik7XG5cbiAgICBjb25zdCBjaGFydFlhbWxGaWxlUGF0aCA9IHBhdGguam9pbih0bXBEaXIsIHRoaXMuY2hhcnROYW1lLCBDSEFSVF9ZQU1MKTtcbiAgICBjb25zdCBjb250ZW50cyA9IFlhbWwubG9hZChjaGFydFlhbWxGaWxlUGF0aCk7XG5cbiAgICBpZiAoY29udGVudHMubGVuZ3RoID09PSAxICYmIGNvbnRlbnRzWzBdLmRlcGVuZGVuY2llcykge1xuICAgICAgZm9yIChjb25zdCBkZXBlbmRlbmN5IG9mIGNvbnRlbnRzWzBdLmRlcGVuZGVuY2llcykge1xuICAgICAgICB0aGlzLmNoYXJ0RGVwZW5kZW5jaWVzLnB1c2goZGVwZW5kZW5jeS5uYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwb3RlbnRpYWxTY2hlbWFQYXRoID0gcGF0aC5qb2luKHRtcERpciwgdGhpcy5jaGFydE5hbWUsIENIQVJUX1NDSEVNQSk7XG4gICAgdGhpcy5jaGFydFNjaGVtYVBhdGggPSBmcy5leGlzdHNTeW5jKHBvdGVudGlhbFNjaGVtYVBhdGgpID8gcG90ZW50aWFsU2NoZW1hUGF0aCA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNjaGVtYSA9IHRoaXMuY2hhcnRTY2hlbWFQYXRoID8gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmModGhpcy5jaGFydFNjaGVtYVBhdGgsICd1dGYtOCcpKSA6IHVuZGVmaW5lZDtcblxuICAgIGNsZWFudXAodG1wRGlyKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kdWxlTmFtZXMoKSB7XG4gICAgcmV0dXJuIFt0aGlzLmNoYXJ0TmFtZV07XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2VuZXJhdGVUeXBlU2NyaXB0KGNvZGU6IENvZGVNYWtlcikge1xuICAgIGVtaXRIZWxtSGVhZGVyKGNvZGUpO1xuXG4gICAgY29uc3QgdHlwZXMgPSBuZXcgVHlwZUdlbmVyYXRvcih7XG4gICAgICBkZWZpbml0aW9uczogdGhpcy5zY2hlbWE/LmRlZmluaXRpb25zLFxuICAgICAgdG9Kc29uOiBmYWxzZSxcbiAgICAgIHNhbml0aXplRW51bXM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBnZW5lcmF0ZUhlbG1Db25zdHJ1Y3QodHlwZXMsIHtcbiAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEsXG4gICAgICBjaGFydE5hbWU6IHRoaXMuY2hhcnROYW1lLFxuICAgICAgY2hhcnRVcmw6IHRoaXMuY2hhcnRVcmwsXG4gICAgICBjaGFydFZlcnNpb246IHRoaXMuY2hhcnRWZXJzaW9uLFxuICAgICAgY2hhcnREZXBlbmRlbmNpZXM6IHRoaXMuY2hhcnREZXBlbmRlbmNpZXMsXG4gICAgICBmcW46IHRoaXMuY2hhcnROYW1lLFxuICAgIH0pO1xuXG4gICAgY29kZS5saW5lKHR5cGVzLnJlbmRlcigpKTtcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGhlbG0gY2hhcnQgZnJvbSB0aGUgaGVsbSB1cmxcbiAqIEBwYXJhbSB1cmxcbiAqIEByZXR1cm5zIGNoYXJ0VXJsLCBjaGFydE5hbWUgYW5kIGNoYXJ0VmVyc2lvblxuICovXG5mdW5jdGlvbiBleHRyYWN0SGVsbUNoYXJ0RGV0YWlscyh1cmw6IHN0cmluZykge1xuXG4gIGxldCBjaGFydFVybDtcbiAgbGV0IGNoYXJ0TmFtZTtcbiAgbGV0IGNoYXJ0VmVyc2lvbjtcblxuICBpZiAodXJsLnN0YXJ0c1dpdGgoJ2hlbG06b2NpOi8vJykpIHtcbiAgICAvLyBVUkw6IGhlbG06b2NpOi8vcmVnaXN0cnktMS5kb2NrZXIuaW8vYml0bmFtaWNoYXJ0cy93b3JkcHJlc3NAMTcuMS4xN1xuICAgIGNvbnN0IGhlbG1SZWdleCA9IC9eaGVsbToob2NpOlxcL1xcL1tBLVphLXowLTlfLi06XFwtXSspXFxAKFswLTldKylcXC4oWzAtOV0rKVxcLihbQS1aYS16MC05LStdKykkLztcbiAgICBjb25zdCBoZWxtRGV0YWlscyA9IGhlbG1SZWdleC5leGVjKHVybCk7XG5cbiAgICBpZiAoIWhlbG1EZXRhaWxzKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBoZWxtIFVSTDogJHt1cmx9LiBNdXN0IG1hdGNoIHRoZSBmb3JtYXQ6ICdoZWxtOjxvY2ktcmVnaXN0cnktdXJsPkA8Y2hhcnQtdmVyc2lvbj4nLmApO1xuICAgIH1cblxuICAgIGNoYXJ0VXJsID0gaGVsbURldGFpbHNbMV07XG4gICAgY29uc3QgbGFzdEluZGV4T2ZTbGFzaCA9IGNoYXJ0VXJsLmxhc3RJbmRleE9mKCcvJyk7XG4gICAgY2hhcnROYW1lID0gY2hhcnRVcmwuc3Vic3RyaW5nKGxhc3RJbmRleE9mU2xhc2ggKyAxKTtcblxuICAgIGNvbnN0IG1ham9yID0gaGVsbURldGFpbHNbMl07XG4gICAgY29uc3QgbWlub3IgPSBoZWxtRGV0YWlsc1szXTtcbiAgICBjb25zdCBwYXRjaCA9IGhlbG1EZXRhaWxzWzRdO1xuICAgIGNoYXJ0VmVyc2lvbiA9IGAke21ham9yfS4ke21pbm9yfS4ke3BhdGNofWA7XG5cbiAgfSBlbHNlIHtcbiAgICAvLyBVUkw6IGhlbG06aHR0cHM6Ly9sYWNld29yay5naXRodWIuaW8vaGVsbS1jaGFydHMvbGFjZXdvcmstYWdlbnRANi45LjBcbiAgICBjb25zdCBoZWxtUmVnZXggPSAvXmhlbG06KFtBLVphLXowLTlfLi06XFwtXSspXFwvKFtBLVphLXowLTlfLi06XFwtXSspXFxAKFswLTldKylcXC4oWzAtOV0rKVxcLihbQS1aYS16MC05LStdKykkLztcbiAgICBjb25zdCBoZWxtRGV0YWlscyA9IGhlbG1SZWdleC5leGVjKHVybCk7XG5cbiAgICBpZiAoIWhlbG1EZXRhaWxzKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBoZWxtIFVSTDogJHt1cmx9LiBNdXN0IG1hdGNoIHRoZSBmb3JtYXQ6ICdoZWxtOjxyZXBvLXVybD4vPGNoYXJ0LW5hbWU+QDxjaGFydC12ZXJzaW9uPicuYCk7XG4gICAgfVxuXG4gICAgY2hhcnRVcmwgPSBoZWxtRGV0YWlsc1sxXTtcbiAgICBjaGFydE5hbWUgPSBoZWxtRGV0YWlsc1syXTtcblxuICAgIGNvbnN0IG1ham9yID0gaGVsbURldGFpbHNbM107XG4gICAgY29uc3QgbWlub3IgPSBoZWxtRGV0YWlsc1s0XTtcbiAgICBjb25zdCBwYXRjaCA9IGhlbG1EZXRhaWxzWzVdO1xuICAgIGNoYXJ0VmVyc2lvbiA9IGAke21ham9yfS4ke21pbm9yfS4ke3BhdGNofWA7XG4gIH1cblxuICBpZiAoIXNlbXZlci52YWxpZChjaGFydFZlcnNpb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNoYXJ0IHZlcnNpb24gKCR7Y2hhcnRWZXJzaW9ufSkgaW4gVVJMOiAke3VybH0uIE11c3QgZm9sbG93IFNlbVZlci0yIChzZWUgaHR0cHM6Ly9zZW12ZXIub3JnLykuYCk7XG4gIH1cblxuICByZXR1cm4gW2NoYXJ0VXJsLCBjaGFydE5hbWUsIGNoYXJ0VmVyc2lvbl07XG59XG5cbi8qKlxuICogUHVsbHMgdGhlIGhlbG0gY2hhcnQgaW4gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gKiBAcGFyYW0gY2hhcnRVcmwgQ2hhcnQgdXJsXG4gKiBAcGFyYW0gY2hhcnROYW1lIENoYXJ0IG5hbWVcbiAqIEBwYXJhbSBjaGFydFZlcnNpb24gQ2hhcnQgdmVyc2lvblxuICogQHJldHVybnMgVGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoXG4gKi9cbmZ1bmN0aW9uIHB1bGxIZWxtUmVwbyhjaGFydFVybDogc3RyaW5nLCBjaGFydE5hbWU6IHN0cmluZywgY2hhcnRWZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB3b3JrZGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrOHMtaGVsbS0nKSk7XG5cbiAgY29uc3QgYXJncyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGFyZ3MucHVzaCgncHVsbCcpO1xuXG4gIGlmICghY2hhcnRVcmwuc3RhcnRzV2l0aCgnb2NpOi8vJykpIHtcbiAgICBhcmdzLnB1c2goY2hhcnROYW1lKTtcbiAgICBhcmdzLnB1c2goJy0tcmVwbycsIGNoYXJ0VXJsKTtcbiAgfSBlbHNlIHtcbiAgICBhcmdzLnB1c2goY2hhcnRVcmwpO1xuICB9XG5cbiAgYXJncy5wdXNoKCctLXZlcnNpb24nLCBjaGFydFZlcnNpb24pO1xuICBhcmdzLnB1c2goJy0tdW50YXInKTtcbiAgYXJncy5wdXNoKCctLXVudGFyZGlyJywgd29ya2Rpcik7XG5cbiAgY29uc3QgY29tbWFuZCA9ICdoZWxtJztcblxuICBjb25zdCBoZWxtID0gc3Bhd25TeW5jKGNvbW1hbmQsIGFyZ3MsIHtcbiAgICBtYXhCdWZmZXI6IE1BWF9IRUxNX0JVRkZFUixcbiAgfSk7XG5cbiAgaWYgKGhlbG0uZXJyb3IpIHtcbiAgICBjb25zdCBlcnIgPSBoZWxtLmVycm9yLm1lc3NhZ2U7XG4gICAgaWYgKGVyci5pbmNsdWRlcygnRU5PRU5UJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGV4ZWN1dGUgJyR7Y29tbWFuZH0nIHRvIHB1bGwgdGhlIEhlbG0gY2hhcnQuIElzIGhlbG0gaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtP2ApO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHB1bGxpbmcgaGVsbSBjaGFydCBmcm9tIFVSTCAoJHtjaGFydFVybH0pOiAke2Vycn1gKTtcbiAgfVxuXG4gIGlmIChoZWxtLnN0YXR1cyAhPT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihoZWxtLnN0ZGVyci50b1N0cmluZygpKTtcbiAgfVxuXG4gIHJldHVybiB3b3JrZGlyO1xufVxuXG4vKipcbiAqIENsZWFudXAgdGVtcCBkaXJlY3RvcnkgY3JlYXRlZFxuICogQHBhcmFtIHRtcERpciBUZW1wb3JhcnkgZGlyZWN0b3J5IHBhdGhcbiAqL1xuZnVuY3Rpb24gY2xlYW51cCh0bXBEaXI6IHN0cmluZykge1xuICBmcy5ybVN5bmModG1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn0iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVsbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvaGVsbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUEwQztBQUMxQyx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixpQ0FBNkI7QUFHN0IseUNBQTBDO0FBQzFDLCtDQUFpQztBQUNqQyxpQ0FBb0M7QUFDcEMsdUNBQWtFO0FBR2xFLE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUVoQyxNQUFhLFVBQVcsU0FBUSxpQkFBVTtJQUNqQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFzQjtRQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQVNELFlBQW9CLE1BQWM7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFKTyxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFNaEQsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFL0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJ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SUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ3pDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsT0FBTyxDQUFDLE1BQWM7SUFDN0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd25TeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgWWFtbCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgdHlwZSB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IEltcG9ydEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgZW1pdEhlbG1IZWFkZXIsIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCB9IGZyb20gJy4vY29kZWdlbic7XG5pbXBvcnQgeyBJbXBvcnRTcGVjIH0gZnJvbSAnLi4vY29uZmlnJztcblxuY29uc3QgTUFYX0hFTE1fQlVGRkVSID0gMTAgKiAxMDI0ICogMTAyNDtcbmNvbnN0IENIQVJUX1NDSEVNQSA9ICd2YWx1ZXMuc2NoZW1hLmpzb24nO1xuY29uc3QgQ0hBUlRfWUFNTCA9ICdDaGFydC55YW1sJztcblxuZXhwb3J0IGNsYXNzIEltcG9ydEhlbG0gZXh0ZW5kcyBJbXBvcnRCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBmcm9tU3BlYyhpbXBvcnRTcGVjOiBJbXBvcnRTcGVjKTogUHJvbWlzZTxJbXBvcnRIZWxtPiB7XG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IGltcG9ydFNwZWM7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRIZWxtKHNvdXJjZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0VXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRWZXJzaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRTY2hlbWFQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnREZXBlbmRlbmNpZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBKU09OU2NoZW1hNCB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHNvdXJjZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IFtjaGFydFVybCwgY2hhcnROYW1lLCBjaGFydFZlcnNpb25dID0gZXh0cmFjdEhlbG1DaGFydERldGFpbHMoc291cmNlKTtcblxuICAgIHRoaXMuY2hhcnROYW1lID0gY2hhcnROYW1lO1xuICAgIHRoaXMuY2hhcnRVcmwgPSBjaGFydFVybDtcbiAgICB0aGlzLmNoYXJ0VmVyc2lvbiA9IGNoYXJ0VmVyc2lvbjtcbiAgICBjb25zdCB0bXBEaXIgPSBwdWxsSGVsbVJlcG8oY2hhcnRVcmwsIGNoYXJ0TmFtZSwgY2hhcnRWZXJzaW9uKTtcblxuICAgIGNvbnN0IGNoYXJ0WWFtbEZpbGVQYXRoID0gcGF0aC5qb2luKHRtcERpciwgdGhpcy5jaGFydE5hbWUsIENIQVJUX1lBTUwpO1xuICAgIGNvbnN0IGNvbnRlbnRzID0gWWFtbC5sb2FkKGNoYXJ0WWFtbEZpbGVQYXRoKTtcblxuICAgIGlmIChjb250ZW50cy5sZW5ndGggPT09IDEgJiYgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3kgb2YgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHRoaXMuY2hhcnREZXBlbmRlbmNpZXMucHVzaChkZXBlbmRlbmN5Lm5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBvdGVudGlhbFNjaGVtYVBhdGggPSBwYXRoLmpvaW4odG1wRGlyLCB0aGlzLmNoYXJ0TmFtZSwgQ0hBUlRfU0NIRU1BKTtcbiAgICB0aGlzLmNoYXJ0U2NoZW1hUGF0aCA9IGZzLmV4aXN0c1N5bmMocG90ZW50aWFsU2NoZW1hUGF0aCkgPyBwb3RlbnRpYWxTY2hlbWFQYXRoIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc2NoZW1hID0gdGhpcy5jaGFydFNjaGVtYVBhdGggPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyh0aGlzLmNoYXJ0U2NoZW1hUGF0aCwgJ3V0Zi04JykpIDogdW5kZWZpbmVkO1xuXG4gICAgY2xlYW51cCh0bXBEaXIpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2R1bGVOYW1lcygpIHtcbiAgICByZXR1cm4gW3RoaXMuY2hhcnROYW1lXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZW5lcmF0ZVR5cGVTY3JpcHQoY29kZTogQ29kZU1ha2VyKSB7XG4gICAgZW1pdEhlbG1IZWFkZXIoY29kZSk7XG5cbiAgICBjb25zdCB0eXBlcyA9IG5ldyBUeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiB0aGlzLnNjaGVtYT8uZGVmaW5pdGlvbnMsXG4gICAgICB0b0pzb246IGZhbHNlLFxuICAgICAgc2FuaXRpemVFbnVtczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCh0eXBlcywge1xuICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYSxcbiAgICAgIGNoYXJ0TmFtZTogdGhpcy5jaGFydE5hbWUsXG4gICAgICBjaGFydFVybDogdGhpcy5jaGFydFVybCxcbiAgICAgIGNoYXJ0VmVyc2lvbjogdGhpcy5jaGFydFZlcnNpb24sXG4gICAgICBjaGFydERlcGVuZGVuY2llczogdGhpcy5jaGFydERlcGVuZGVuY2llcyxcbiAgICAgIGZxbjogdGhpcy5jaGFydE5hbWUsXG4gICAgfSk7XG5cbiAgICBjb2RlLmxpbmUodHlwZXMucmVuZGVyKCkpO1xuICB9XG59XG5cbi8qKlxuICogR2V0cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaGVsbSBjaGFydCBmcm9tIHRoZSBoZWxtIHVybFxuICogQHBhcmFtIHVybFxuICogQHJldHVybnMgY2hhcnRVcmwsIGNoYXJ0TmFtZSBhbmQgY2hhcnRWZXJzaW9uXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RIZWxtQ2hhcnREZXRhaWxzKHVybDogc3RyaW5nKSB7XG5cbiAgbGV0IGNoYXJ0VXJsO1xuICBsZXQgY2hhcnROYW1lO1xuICBsZXQgY2hhcnRWZXJzaW9uO1xuXG4gIGlmICh1cmwuc3RhcnRzV2l0aCgnaGVsbTpvY2k6Ly8nKSkge1xuICAgIC8vIFVSTDogaGVsbTpvY2k6Ly9yZWdpc3RyeS0xLmRvY2tlci5pby9iaXRuYW1pY2hhcnRzL3dvcmRwcmVzc0AxNy4xLjE3XG4gICAgY29uc3QgaGVsbVJlZ2V4ID0gL15oZWxtOihvY2k6XFwvXFwvW0EtWmEtejAtOV8uLTpcXC1dKylcXEAoWzAtOV0rKVxcLihbMC05XSspXFwuKFtBLVphLXowLTktK10rKSQvO1xuICAgIGNvbnN0IGhlbG1EZXRhaWxzID0gaGVsbVJlZ2V4LmV4ZWModXJsKTtcblxuICAgIGlmICghaGVsbURldGFpbHMpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGhlbG0gVVJMOiAke3VybH0uIE11c3QgbWF0Y2ggdGhlIGZvcm1hdDogJ2hlbG06PG9jaS1yZWdpc3RyeS11cmw+QDxjaGFydC12ZXJzaW9uPicuYCk7XG4gICAgfVxuXG4gICAgY2hhcnRVcmwgPSBoZWxtRGV0YWlsc1sxXTtcbiAgICBjb25zdCBsYXN0SW5kZXhPZlNsYXNoID0gY2hhcnRVcmwubGFzdEluZGV4T2YoJy8nKTtcbiAgICBjaGFydE5hbWUgPSBjaGFydFVybC5zdWJzdHJpbmcobGFzdEluZGV4T2ZTbGFzaCArIDEpO1xuXG4gICAgY29uc3QgbWFqb3IgPSBoZWxtRGV0YWlsc1syXTtcbiAgICBjb25zdCBtaW5vciA9IGhlbG1EZXRhaWxzWzNdO1xuICAgIGNvbnN0IHBhdGNoID0gaGVsbURldGFpbHNbNF07XG4gICAgY2hhcnRWZXJzaW9uID0gYCR7bWFqb3J9LiR7bWlub3J9LiR7cGF0Y2h9YDtcblxuICB9IGVsc2Uge1xuICAgIC8vIFVSTDogaGVsbTpodHRwczovL2xhY2V3b3JrLmdpdGh1Yi5pby9oZWxtLWNoYXJ0cy9sYWNld29yay1hZ2VudEA2LjkuMFxuICAgIGNvbnN0IGhlbG1SZWdleCA9IC9eaGVsbTooW0EtWmEtejAtOV8uLTpcXC1dKylcXC8oW0EtWmEtejAtOV8uLTpcXC1dKylcXEAoWzAtOV0rKVxcLihbMC05XSspXFwuKFtBLVphLXowLTktK10rKSQvO1xuICAgIGNvbnN0IGhlbG1EZXRhaWxzID0gaGVsbVJlZ2V4LmV4ZWModXJsKTtcblxuICAgIGlmICghaGVsbURldGFpbHMpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGhlbG0gVVJMOiAke3VybH0uIE11c3QgbWF0Y2ggdGhlIGZvcm1hdDogJ2hlbG06PHJlcG8tdXJsPi88Y2hhcnQtbmFtZT5APGNoYXJ0LXZlcnNpb24+Jy5gKTtcbiAgICB9XG5cbiAgICBjaGFydFVybCA9IGhlbG1EZXRhaWxzWzFdO1xuICAgIGNoYXJ0TmFtZSA9IGhlbG1EZXRhaWxzWzJdO1xuXG4gICAgY29uc3QgbWFqb3IgPSBoZWxtRGV0YWlsc1szXTtcbiAgICBjb25zdCBtaW5vciA9IGhlbG1EZXRhaWxzWzRdO1xuICAgIGNvbnN0IHBhdGNoID0gaGVsbURldGFpbHNbNV07XG4gICAgY2hhcnRWZXJzaW9uID0gYCR7bWFqb3J9LiR7bWlub3J9LiR7cGF0Y2h9YDtcbiAgfVxuXG4gIGlmICghc2VtdmVyLnZhbGlkKGNoYXJ0VmVyc2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2hhcnQgdmVyc2lvbiAoJHtjaGFydFZlcnNpb259KSBpbiBVUkw6ICR7dXJsfS4gTXVzdCBmb2xsb3cgU2VtVmVyLTIgKHNlZSBodHRwczovL3NlbXZlci5vcmcvKS5gKTtcbiAgfVxuXG4gIHJldHVybiBbY2hhcnRVcmwsIGNoYXJ0TmFtZSwgY2hhcnRWZXJzaW9uXTtcbn1cblxuLyoqXG4gKiBQdWxscyB0aGUgaGVsbSBjaGFydCBpbiBhIHRlbXBvcmFyeSBkaXJlY3RvcnlcbiAqIEBwYXJhbSBjaGFydFVybCBDaGFydCB1cmxcbiAqIEBwYXJhbSBjaGFydE5hbWUgQ2hhcnQgbmFtZVxuICogQHBhcmFtIGNoYXJ0VmVyc2lvbiBDaGFydCB2ZXJzaW9uXG4gKiBAcmV0dXJucyBUZW1wb3JhcnkgZGlyZWN0b3J5IHBhdGhcbiAqL1xuZnVuY3Rpb24gcHVsbEhlbG1SZXBvKGNoYXJ0VXJsOiBzdHJpbmcsIGNoYXJ0TmFtZTogc3RyaW5nLCBjaGFydFZlcnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHdvcmtkaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGs4cy1oZWxtLScpKTtcblxuICBjb25zdCBhcmdzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgYXJncy5wdXNoKCdwdWxsJyk7XG5cbiAgaWYgKCFjaGFydFVybC5zdGFydHNXaXRoKCdvY2k6Ly8nKSkge1xuICAgIGFyZ3MucHVzaChjaGFydE5hbWUpO1xuICAgIGFyZ3MucHVzaCgnLS1yZXBvJywgY2hhcnRVcmwpO1xuICB9IGVsc2Uge1xuICAgIGFyZ3MucHVzaChjaGFydFVybCk7XG4gIH1cblxuICBhcmdzLnB1c2goJy0tdmVyc2lvbicsIGNoYXJ0VmVyc2lvbik7XG4gIGFyZ3MucHVzaCgnLS11bnRhcicpO1xuICBhcmdzLnB1c2goJy0tdW50YXJkaXInLCB3b3JrZGlyKTtcblxuICBjb25zdCBjb21tYW5kID0gJ2hlbG0nO1xuXG4gIGNvbnN0IGhlbG0gPSBzcGF3blN5bmMoY29tbWFuZCwgYXJncywge1xuICAgIG1heEJ1ZmZlcjogTUFYX0hFTE1fQlVGRkVSLFxuICB9KTtcblxuICBpZiAoaGVsbS5lcnJvcikge1xuICAgIGNvbnN0IGVyciA9IGhlbG0uZXJyb3IubWVzc2FnZTtcbiAgICBpZiAoZXJyLmluY2x1ZGVzKCdFTk9FTlQnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZXhlY3V0ZSAnJHtjb21tYW5kfScgdG8gcHVsbCB0aGUgSGVsbSBjaGFydC4gSXMgaGVsbSBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0/YCk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgcHVsbGluZyBoZWxtIGNoYXJ0IGZyb20gVVJMICgke2NoYXJ0VXJsfSk6ICR7ZXJyfWApO1xuICB9XG5cbiAgaWYgKGhlbG0uc3RhdHVzICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGhlbG0uc3RkZXJyLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgcmV0dXJuIHdvcmtkaXI7XG59XG5cbi8qKlxuICogQ2xlYW51cCB0ZW1wIGRpcmVjdG9yeSBjcmVhdGVkXG4gKiBAcGFyYW0gdG1wRGlyIFRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aFxuICovXG5mdW5jdGlvbiBjbGVhbnVwKHRtcERpcjogc3RyaW5nKSB7XG4gIGZzLnJtU3luYyh0bXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xufSJdfQ==
@@ -17,7 +17,6 @@ var ApiLevel;
17
17
  * Parses a fully qualified type name such as to it's components.
18
18
  */
19
19
  function parseApiTypeName(fullname) {
20
- var _a, _b;
21
20
  const parts = fullname.split('.');
22
21
  const type = parts[parts.length - 1];
23
22
  const namespace = parts.slice(0, parts.length - 2).join('.');
@@ -28,8 +27,8 @@ function parseApiTypeName(fullname) {
28
27
  version: version ? {
29
28
  raw: version[0],
30
29
  major: parseInt(version[1]),
31
- level: (_a = version[3]) !== null && _a !== void 0 ? _a : ApiLevel.STABLE,
32
- subversion: parseInt((_b = version[4]) !== null && _b !== void 0 ? _b : '0'),
30
+ level: version[3] ?? ApiLevel.STABLE,
31
+ subversion: parseInt(version[4] ?? '0'),
33
32
  } : undefined,
34
33
  namespace: version ? namespace : `${namespace}.${prebase}`,
35
34
  basename: type,
@@ -47,4 +46,4 @@ function safeParseJsonSchema(text) {
47
46
  return schema;
48
47
  }
49
48
  exports.safeParseJsonSchema = safeParseJsonSchema;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2s4cy11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUFzQjtBQUl0Qix3Q0FBeUM7QUFDekMsa0NBQXdDO0FBNEJ4QyxJQUFLLFFBSUo7QUFKRCxXQUFLLFFBQVE7SUFDWCwyQkFBZSxDQUFBO0lBQ2YseUJBQWEsQ0FBQTtJQUNiLDZCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKSSxRQUFRLEtBQVIsUUFBUSxRQUlaO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxRQUFnQjs7SUFDL0MsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVyQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLE9BQU8sR0FBRyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0QsT0FBTztRQUNMLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2YsS0FBSyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsS0FBSyxFQUFFLE1BQUEsT0FBTyxDQUFDLENBQUMsQ0FBYSxtQ0FBSSxRQUFRLENBQUMsTUFBTTtZQUNoRCxVQUFVLEVBQUUsUUFBUSxDQUFDLE1BQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxHQUFHLENBQUM7U0FDeEMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNiLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLElBQUksT0FBTyxFQUFFO1FBQzFELFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQztBQUNKLENBQUM7QUFsQkQsNENBa0JDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsSUFBWTtJQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLHFCQUFXLENBQUM7UUFDOUIsZUFBZSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztRQUNwQyxVQUFVLEVBQUUsQ0FBQyxxQkFBVyxDQUFDLHFCQUFxQixFQUFFLHFCQUFXLENBQUMsb0JBQW9CLENBQUM7S0FDbEYsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBQSxvQkFBYSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLGFBQUcsRUFBRSxDQUFDO0lBQ3RCLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQVRELGtEQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFqdiBmcm9tICdhanYnO1xuLy8gd2UganVzdCBuZWVkIHRoZSB0eXBlcyBmcm9tIGpzb24tc2NoZW1hXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBKU09OU2NoZW1hNCB9IGZyb20gJ2pzb24tc2NoZW1hJztcbmltcG9ydCB7IFNhZmVSZXZpdmVyIH0gZnJvbSAnLi4vcmV2aXZlcic7XG5pbXBvcnQgeyBzYWZlUGFyc2VKc29uIH0gZnJvbSAnLi4vdXRpbCc7XG5cblxuLyoqXG4gKlxuICogICAgIGlvLms4cy5hcGkuZXh0ZW5zaW9ucy52MWJldGExLkRlcGxveW1lbnRcbiAqICAgICB8LS0tLS0tLS0tIF4gLS0tLS0tLXwgIF4gIF4gXiB8LS0tXi0tLS18XG4gKiAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICB8IHwgICAgIHxcbiAqICAtIG5hbWVzcGFjZSAtLSsgICAgICAgICAgIHwgIHwgfCAgICAgfFxuICogIC0gbWFqb3IgLS0tLS0tLS0tLS0tLS0tLS0tKyAgfCB8ICAgICB8XG4gKiAgLSBsZXZlbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0rIHwgICAgIHxcbiAqICAtIHN1YnZlcnNpb24gLS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgfFxuICogIC0gYmFzZW5hbWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpVHlwZU5hbWUge1xuICBiYXNlbmFtZTogc3RyaW5nO1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgZnVsbG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbj86IEFwaVR5cGVWZXJzaW9uO1xufVxuXG5pbnRlcmZhY2UgQXBpVHlwZVZlcnNpb24ge1xuICByYXc6IHN0cmluZztcbiAgbGV2ZWw6IEFwaUxldmVsO1xuICBtYWpvcjogbnVtYmVyO1xuICBzdWJ2ZXJzaW9uOiBudW1iZXI7XG59XG5cbmVudW0gQXBpTGV2ZWwge1xuICBBTFBIQSA9ICdhbHBoYScsXG4gIEJFVEEgPSAnYmV0YScsXG4gIFNUQUJMRSA9ICdzdGFibGUnLFxufVxuXG4vKipcbiAqIFBhcnNlcyBhIGZ1bGx5IHF1YWxpZmllZCB0eXBlIG5hbWUgc3VjaCBhcyB0byBpdCdzIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUFwaVR5cGVOYW1lKGZ1bGxuYW1lOiBzdHJpbmcpOiBBcGlUeXBlTmFtZSB7XG4gIGNvbnN0IHBhcnRzID0gZnVsbG5hbWUuc3BsaXQoJy4nKTtcbiAgY29uc3QgdHlwZSA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuXG4gIGNvbnN0IG5hbWVzcGFjZSA9IHBhcnRzLnNsaWNlKDAsIHBhcnRzLmxlbmd0aCAtIDIpLmpvaW4oJy4nKTtcbiAgY29uc3QgcHJlYmFzZSA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDJdO1xuICBjb25zdCB2ZXJzaW9uID0gL152KFswLTldKykoKFthLXpdKykoWzAtOV0rKSk/JC8uZXhlYyhwcmViYXNlKTtcbiAgcmV0dXJuIHtcbiAgICBmdWxsbmFtZTogZnVsbG5hbWUsXG4gICAgdmVyc2lvbjogdmVyc2lvbiA/IHtcbiAgICAgIHJhdzogdmVyc2lvblswXSxcbiAgICAgIG1ham9yOiBwYXJzZUludCh2ZXJzaW9uWzFdKSxcbiAgICAgIGxldmVsOiB2ZXJzaW9uWzNdIGFzIEFwaUxldmVsID8/IEFwaUxldmVsLlNUQUJMRSxcbiAgICAgIHN1YnZlcnNpb246IHBhcnNlSW50KHZlcnNpb25bNF0gPz8gJzAnKSxcbiAgICB9IDogdW5kZWZpbmVkLFxuICAgIG5hbWVzcGFjZTogdmVyc2lvbiA/IG5hbWVzcGFjZSA6IGAke25hbWVzcGFjZX0uJHtwcmViYXNlfWAsXG4gICAgYmFzZW5hbWU6IHR5cGUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYWZlUGFyc2VKc29uU2NoZW1hKHRleHQ6IHN0cmluZyk6IEpTT05TY2hlbWE0IHtcbiAgY29uc3QgcmV2aXZlciA9IG5ldyBTYWZlUmV2aXZlcih7XG4gICAgYWxsb3dsaXN0ZWRLZXlzOiBbJyRyZWYnLCAnJHNjaGVtYSddLFxuICAgIHNhbml0aXplcnM6IFtTYWZlUmV2aXZlci5ERVNDUklQVElPTl9TQU5JVElaRVIsIFNhZmVSZXZpdmVyLkxFR0FMX0NIQVJfU0FOSVRJWkVSXSxcbiAgfSk7XG4gIGNvbnN0IHNjaGVtYSA9IHNhZmVQYXJzZUpzb24odGV4dCwgcmV2aXZlcik7XG4gIGNvbnN0IGFqdiA9IG5ldyBBanYoKTtcbiAgYWp2LmNvbXBpbGUoc2NoZW1hKTtcbiAgcmV0dXJuIHNjaGVtYTtcbn1cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2s4cy11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUFzQjtBQUl0Qix3Q0FBeUM7QUFDekMsa0NBQXdDO0FBNEJ4QyxJQUFLLFFBSUo7QUFKRCxXQUFLLFFBQVE7SUFDWCwyQkFBZSxDQUFBO0lBQ2YseUJBQWEsQ0FBQTtJQUNiLDZCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKSSxRQUFRLEtBQVIsUUFBUSxRQUlaO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxRQUFnQjtJQUMvQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLFFBQVE7UUFDbEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDakIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDZixLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBYSxJQUFJLFFBQVEsQ0FBQyxNQUFNO1lBQ2hELFVBQVUsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztTQUN4QyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ2IsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsSUFBSSxPQUFPLEVBQUU7UUFDMUQsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDO0FBQ0osQ0FBQztBQWxCRCw0Q0FrQkM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxJQUFZO0lBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUkscUJBQVcsQ0FBQztRQUM5QixlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQ3BDLFVBQVUsRUFBRSxDQUFDLHFCQUFXLENBQUMscUJBQXFCLEVBQUUscUJBQVcsQ0FBQyxvQkFBb0IsQ0FBQztLQUNsRixDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFBLG9CQUFhLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksYUFBRyxFQUFFLENBQUM7SUFDdEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBVEQsa0RBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWp2IGZyb20gJ2Fqdic7XG4vLyB3ZSBqdXN0IG5lZWQgdGhlIHR5cGVzIGZyb20ganNvbi1zY2hlbWFcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgU2FmZVJldml2ZXIgfSBmcm9tICcuLi9yZXZpdmVyJztcbmltcG9ydCB7IHNhZmVQYXJzZUpzb24gfSBmcm9tICcuLi91dGlsJztcblxuXG4vKipcbiAqXG4gKiAgICAgaW8uazhzLmFwaS5leHRlbnNpb25zLnYxYmV0YTEuRGVwbG95bWVudFxuICogICAgIHwtLS0tLS0tLS0gXiAtLS0tLS0tfCAgXiAgXiBeIHwtLS1eLS0tLXxcbiAqICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgIHwgfCAgICAgfFxuICogIC0gbmFtZXNwYWNlIC0tKyAgICAgICAgICAgfCAgfCB8ICAgICB8XG4gKiAgLSBtYWpvciAtLS0tLS0tLS0tLS0tLS0tLS0rICB8IHwgICAgIHxcbiAqICAtIGxldmVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfCAgICAgfFxuICogIC0gc3VidmVyc2lvbiAtLS0tLS0tLS0tLS0tLS0tLS0rICAgICB8XG4gKiAgLSBiYXNlbmFtZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlUeXBlTmFtZSB7XG4gIGJhc2VuYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBmdWxsbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uPzogQXBpVHlwZVZlcnNpb247XG59XG5cbmludGVyZmFjZSBBcGlUeXBlVmVyc2lvbiB7XG4gIHJhdzogc3RyaW5nO1xuICBsZXZlbDogQXBpTGV2ZWw7XG4gIG1ham9yOiBudW1iZXI7XG4gIHN1YnZlcnNpb246IG51bWJlcjtcbn1cblxuZW51bSBBcGlMZXZlbCB7XG4gIEFMUEhBID0gJ2FscGhhJyxcbiAgQkVUQSA9ICdiZXRhJyxcbiAgU1RBQkxFID0gJ3N0YWJsZScsXG59XG5cbi8qKlxuICogUGFyc2VzIGEgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBzdWNoIGFzIHRvIGl0J3MgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXBpVHlwZU5hbWUoZnVsbG5hbWU6IHN0cmluZyk6IEFwaVR5cGVOYW1lIHtcbiAgY29uc3QgcGFydHMgPSBmdWxsbmFtZS5zcGxpdCgnLicpO1xuICBjb25zdCB0eXBlID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV07XG5cbiAgY29uc3QgbmFtZXNwYWNlID0gcGFydHMuc2xpY2UoMCwgcGFydHMubGVuZ3RoIC0gMikuam9pbignLicpO1xuICBjb25zdCBwcmViYXNlID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMl07XG4gIGNvbnN0IHZlcnNpb24gPSAvXnYoWzAtOV0rKSgoW2Etel0rKShbMC05XSspKT8kLy5leGVjKHByZWJhc2UpO1xuICByZXR1cm4ge1xuICAgIGZ1bGxuYW1lOiBmdWxsbmFtZSxcbiAgICB2ZXJzaW9uOiB2ZXJzaW9uID8ge1xuICAgICAgcmF3OiB2ZXJzaW9uWzBdLFxuICAgICAgbWFqb3I6IHBhcnNlSW50KHZlcnNpb25bMV0pLFxuICAgICAgbGV2ZWw6IHZlcnNpb25bM10gYXMgQXBpTGV2ZWwgPz8gQXBpTGV2ZWwuU1RBQkxFLFxuICAgICAgc3VidmVyc2lvbjogcGFyc2VJbnQodmVyc2lvbls0XSA/PyAnMCcpLFxuICAgIH0gOiB1bmRlZmluZWQsXG4gICAgbmFtZXNwYWNlOiB2ZXJzaW9uID8gbmFtZXNwYWNlIDogYCR7bmFtZXNwYWNlfS4ke3ByZWJhc2V9YCxcbiAgICBiYXNlbmFtZTogdHlwZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVQYXJzZUpzb25TY2hlbWEodGV4dDogc3RyaW5nKTogSlNPTlNjaGVtYTQge1xuICBjb25zdCByZXZpdmVyID0gbmV3IFNhZmVSZXZpdmVyKHtcbiAgICBhbGxvd2xpc3RlZEtleXM6IFsnJHJlZicsICckc2NoZW1hJ10sXG4gICAgc2FuaXRpemVyczogW1NhZmVSZXZpdmVyLkRFU0NSSVBUSU9OX1NBTklUSVpFUiwgU2FmZVJldml2ZXIuTEVHQUxfQ0hBUl9TQU5JVElaRVJdLFxuICB9KTtcbiAgY29uc3Qgc2NoZW1hID0gc2FmZVBhcnNlSnNvbih0ZXh0LCByZXZpdmVyKTtcbiAgY29uc3QgYWp2ID0gbmV3IEFqdigpO1xuICBhanYuY29tcGlsZShzY2hlbWEpO1xuICByZXR1cm4gc2NoZW1hO1xufVxuIl19
package/lib/import/k8s.js CHANGED
@@ -10,12 +10,11 @@ exports.DEFAULT_API_VERSION = '1.25.0';
10
10
  const DEFAULT_CLASS_NAME_PREFIX = 'Kube';
11
11
  class ImportKubernetesApi extends base_1.ImportBase {
12
12
  static async match(importSpec, argv) {
13
- var _a;
14
13
  const { source } = importSpec;
15
14
  if (source !== 'k8s' && !source.startsWith('k8s@')) {
16
15
  return undefined;
17
16
  }
18
- let k8sVersion = (_a = source.split('@')[1]) !== null && _a !== void 0 ? _a : exports.DEFAULT_API_VERSION;
17
+ let k8sVersion = source.split('@')[1] ?? exports.DEFAULT_API_VERSION;
19
18
  const k8sVersionRegex = /^\d+\.\d+\.\d+$/;
20
19
  if (!k8sVersionRegex.test(k8sVersion)) {
21
20
  throw new Error(`Expected k8s version "${k8sVersion}" to match format "<major>.<minor>.<patch>".`);
@@ -34,12 +33,11 @@ class ImportKubernetesApi extends base_1.ImportBase {
34
33
  return ['k8s'];
35
34
  }
36
35
  async generateTypeScript(code, moduleName, options) {
37
- var _a;
38
36
  const schema = await downloadSchema(this.options.apiVersion);
39
37
  if (moduleName !== 'k8s') {
40
38
  throw new Error(`unexpected module name "${moduleName}" when importing k8s types (expected "k8s")`);
41
39
  }
42
- const prefix = (_a = options.classNamePrefix) !== null && _a !== void 0 ? _a : DEFAULT_CLASS_NAME_PREFIX;
40
+ const prefix = options.classNamePrefix ?? DEFAULT_CLASS_NAME_PREFIX;
43
41
  const topLevelObjects = findApiObjectDefinitions(schema, prefix);
44
42
  const typeGenerator = new json2jsii_1.TypeGenerator({
45
43
  definitions: schema.definitions,
@@ -105,7 +103,6 @@ function findApiObjectDefinitions(schema, prefix) {
105
103
  }
106
104
  exports.findApiObjectDefinitions = findApiObjectDefinitions;
107
105
  function tryGetObjectName(def) {
108
- var _a;
109
106
  const objectNames = def[X_GROUP_VERSION_KIND];
110
107
  if (!objectNames) {
111
108
  return undefined;
@@ -117,7 +114,7 @@ function tryGetObjectName(def) {
117
114
  // skip definitions without "metadata". they are not API objects that can be defined
118
115
  // in manifests (example: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions)
119
116
  // they will be treated as data types
120
- if (!((_a = def.properties) === null || _a === void 0 ? void 0 : _a.metadata)) {
117
+ if (!def.properties?.metadata) {
121
118
  return undefined;
122
119
  }
123
120
  return objectName;
@@ -140,4 +137,4 @@ async function downloadSchema(apiVersion) {
140
137
  throw new Error(`Unable to parse schema at ${url}: ${e}`);
141
138
  }
142
139
  }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydC9rOHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEseUNBQTBDO0FBQzFDLGlDQUFxRDtBQUNyRCx1Q0FBOEc7QUFDOUcseUNBQW1FO0FBRW5FLGtDQUFtQztBQUd0QixRQUFBLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztBQUU1QyxNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQztBQWdCekMsTUFBYSxtQkFBb0IsU0FBUSxpQkFBVTtJQUUxQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFzQixFQUFFLElBQVM7O1FBQ3pELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxNQUFNLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELElBQUksVUFBVSxHQUFHLE1BQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQUksMkJBQW1CLENBQUM7UUFFN0QsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLENBQUM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsVUFBVSw4Q0FBOEMsQ0FBQyxDQUFDO1NBQ3BHO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsVUFBVSxLQUFLLENBQUMsQ0FBQztRQUVqRCxPQUFPO1lBQ0wsVUFBVSxFQUFFLFVBQVU7WUFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBNkIsT0FBbUM7UUFDOUQsS0FBSyxFQUFFLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7SUFFaEUs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SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQzNEO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5cbi8vIHdlIGp1c3QgbmVlZCB0aGUgdHlwZXMgZnJvbSBqc29uLXNjaGVtYVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgSlNPTlNjaGVtYTQgfSBmcm9tICdqc29uLXNjaGVtYSc7XG5cbmltcG9ydCB7IFR5cGVHZW5lcmF0b3IgfSBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0IHsgR2VuZXJhdGVPcHRpb25zLCBJbXBvcnRCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEFwaU9iamVjdERlZmluaXRpb24sIGVtaXRIZWFkZXIsIGdlbmVyYXRlQ29uc3RydWN0LCBnZXRQcm9wc1R5cGVOYW1lLCBnZXRUeXBlTmFtZSB9IGZyb20gJy4vY29kZWdlbic7XG5pbXBvcnQgeyBwYXJzZUFwaVR5cGVOYW1lLCBzYWZlUGFyc2VKc29uU2NoZW1hIH0gZnJvbSAnLi9rOHMtdXRpbCc7XG5pbXBvcnQgeyBJbXBvcnRTcGVjIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IGRvd25sb2FkIH0gZnJvbSAnLi4vdXRpbCc7XG5cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQVBJX1ZFUlNJT04gPSAnMS4yNS4wJztcblxuY29uc3QgREVGQVVMVF9DTEFTU19OQU1FX1BSRUZJWCA9ICdLdWJlJztcblxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRLdWJlcm5ldGVzQXBpT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgQVBJIHZlcnNpb24gdG8gZ2VuZXJhdGUuXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERvIG5vdCBpbXBvcnQgdGhlc2UgdHlwZXMuIEluc3RlYWQsIHJlcHJlc2VudCB0aGVtIGFzIFwiYW55XCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaW5jbHVkZSBhbGwgdHlwZXMgdGhhdCBkZXJpdmUgZnJvbSB0aGUgcm9vdCB0eXBlcy5cbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEltcG9ydEt1YmVybmV0ZXNBcGkgZXh0ZW5kcyBJbXBvcnRCYXNlIHtcblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIG1hdGNoKGltcG9ydFNwZWM6IEltcG9ydFNwZWMsIGFyZ3Y6IGFueSk6IFByb21pc2U8SW1wb3J0S3ViZXJuZXRlc0FwaU9wdGlvbnMgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7IHNvdXJjZSB9ID0gaW1wb3J0U3BlYztcbiAgICBpZiAoc291cmNlICE9PSAnazhzJyAmJiAhc291cmNlLnN0YXJ0c1dpdGgoJ2s4c0AnKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsZXQgazhzVmVyc2lvbiA9IHNvdXJjZS5zcGxpdCgnQCcpWzFdID8/IERFRkFVTFRfQVBJX1ZFUlNJT047XG5cbiAgICBjb25zdCBrOHNWZXJzaW9uUmVnZXggPSAvXlxcZCtcXC5cXGQrXFwuXFxkKyQvO1xuICAgIGlmICghazhzVmVyc2lvblJlZ2V4LnRlc3QoazhzVmVyc2lvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgazhzIHZlcnNpb24gXCIke2s4c1ZlcnNpb259XCIgdG8gbWF0Y2ggZm9ybWF0IFwiPG1ham9yPi48bWlub3I+LjxwYXRjaD5cIi5gKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmVycm9yKGBJbXBvcnRpbmcgazhzIHYke2s4c1ZlcnNpb259Li4uYCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXBpVmVyc2lvbjogazhzVmVyc2lvbixcbiAgICAgIGV4Y2x1ZGU6IGFyZ3YuZXhjbHVkZSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBJbXBvcnRLdWJlcm5ldGVzQXBpT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1vZHVsZU5hbWVzKCkge1xuICAgIHJldHVybiBbJ2s4cyddO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdlbmVyYXRlVHlwZVNjcmlwdChjb2RlOiBDb2RlTWFrZXIsIG1vZHVsZU5hbWU6IHN0cmluZywgb3B0aW9uczogR2VuZXJhdGVPcHRpb25zKSB7XG4gICAgY29uc3Qgc2NoZW1hID0gYXdhaXQgZG93bmxvYWRTY2hlbWEodGhpcy5vcHRpb25zLmFwaVZlcnNpb24pO1xuXG4gICAgaWYgKG1vZHVsZU5hbWUgIT09ICdrOHMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgbW9kdWxlIG5hbWUgXCIke21vZHVsZU5hbWV9XCIgd2hlbiBpbXBvcnRpbmcgazhzIHR5cGVzIChleHBlY3RlZCBcIms4c1wiKWApO1xuICAgIH1cblxuICAgIGNvbnN0IHByZWZpeCA9IG9wdGlvbnMuY2xhc3NOYW1lUHJlZml4ID8/IERFRkFVTFRfQ0xBU1NfTkFNRV9QUkVGSVg7XG4gICAgY29uc3QgdG9wTGV2ZWxPYmplY3RzID0gZmluZEFwaU9iamVjdERlZmluaXRpb25zKHNjaGVtYSwgcHJlZml4KTtcblxuICAgIGNvbnN0IHR5cGVHZW5lcmF0b3IgPSBuZXcgVHlwZUdlbmVyYXRvcih7XG4gICAgICBkZWZpbml0aW9uczogc2NoZW1hLmRlZmluaXRpb25zLFxuICAgICAgZXhjbHVkZTogdGhpcy5vcHRpb25zLmV4Y2x1ZGUsXG4gICAgICByZW5kZXJUeXBlTmFtZTogKGRlZjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQXBpVHlwZU5hbWUoZGVmKTtcbiAgICAgICAgaWYgKCFwYXJzZWQudmVyc2lvbikge1xuICAgICAgICAgIC8vIG5vdCBhIHZlcnNpb25lZCBhcGkgdHlwZS4gcmV0dXJuIGJhc2VuYW1lXG4gICAgICAgICAgcmV0dXJuIHBhcnNlZC5iYXNlbmFtZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0VHlwZU5hbWUoZmFsc2UsIHBhcnNlZC5iYXNlbmFtZSwgcGFyc2VkLnZlcnNpb24ucmF3KTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyByZW5hbWUgXCJQcm9wc1wiIHR5cGUgZnJvbSB0aGVpciBvcmlnaW5hbCBuYW1lIGJhc2VkIG9uIHRoZSBBUEkgb2JqZWN0IGtpbmRcbiAgICAvLyAoZS5nLiBgRGVwbG95bWVudGApIHRvIHRoZWlyIGFjdHVhbCBwcm9wcyB0eXBlIChgS3ViZURlcGxveW1lbnRQcm9wc2ApIGluXG4gICAgLy8gb3JkZXIgdG8gYXZvaWQgY29uZnVzaW9uIGJldHdlZW4gY29uc3RydWN0cyAoYEt1YmVEZXBsb3ltZW50YCkgYW5kIHRob3NlXG4gICAgLy8gdHlwZXMuIFRoaXMgaXMgZG9uZSBieSBzaW1wbHkgcmVwbGFjaW5nIHRoZWlyIGRlZmluaXRpb24gaW4gdGhlIHNjaGVtYVxuICAgIC8vIHdpdGggYSAkcmVmIHRvIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBwcm9wcyB0eXBlLlxuICAgIGZvciAoY29uc3QgbyBvZiB0b3BMZXZlbE9iamVjdHMpIHtcbiAgICAgIHR5cGVHZW5lcmF0b3IuYWRkRGVmaW5pdGlvbihvLmZxbiwgeyAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2dldFByb3BzVHlwZU5hbWUobyl9YCB9KTtcbiAgICB9XG5cbiAgICAvLyBlbWl0IGNvbnN0cnVjdCB0eXBlcyAocmVjdXJzaXZlKVxuICAgIGZvciAoY29uc3QgbyBvZiB0b3BMZXZlbE9iamVjdHMpIHtcbiAgICAgIGdlbmVyYXRlQ29uc3RydWN0KHR5cGVHZW5lcmF0b3IsIG8pO1xuICAgIH1cblxuICAgIGVtaXRIZWFkZXIoY29kZSwgZmFsc2UpO1xuXG4gICAgY29kZS5saW5lKHR5cGVHZW5lcmF0b3IucmVuZGVyKCkpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBhIG1hcCBvZiBhbGwgQVBJIG9iamVjdHMgaW4gdGhlIHNwZWMgKG9iamVjdHMgdGhhdCBoYXZlIHRoZVxuICogJ3gta3ViZXJuZXRlcy1ncm91cC12ZXJzaW9uLWtpbmQnIGFubm90YXRpb24pLlxuICpcbiAqIFRoZSBrZXkgaXMgdGhlIGJhc2UgbmFtZSBvZiB0aGUgdHlwZSAoaS5lLiBgRGVwbG95bWVudGApLiBTaW5jZSBBUEkgb2JqZWN0c1xuICogbWF5IGhhdmUgbXVsdGlwbGUgdmVyc2lvbnMsIGVhY2ggdmFsdWUgaW4gdGhlIG1hcCBpcyBhbiBhcnJheSBvZiB0eXBlIGRlZmluaXRpb25zXG4gKiBhbG9uZyB3aXRoIHZlcnNpb24gaW5mb3JtYXRpb24uXG4gKlxuICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy9rdWJlcm5ldGVzLWFwaS8jYXBpLXZlcnNpb25pbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBcGlPYmplY3REZWZpbml0aW9ucyhzY2hlbWE6IEpTT05TY2hlbWE0LCBwcmVmaXg6IHN0cmluZyk6IEFwaU9iamVjdERlZmluaXRpb25bXSB7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxBcGlPYmplY3REZWZpbml0aW9uPigpO1xuXG4gIGZvciAoY29uc3QgW3R5cGVuYW1lLCBhcGlzY2hlbWFdIG9mIE9iamVjdC5lbnRyaWVzKHNjaGVtYS5kZWZpbml0aW9ucyB8fCB7IH0pKSB7XG4gICAgY29uc3Qgb2JqZWN0TmFtZSA9IHRyeUdldE9iamVjdE5hbWUoYXBpc2NoZW1hKTtcbiAgICBpZiAoIW9iamVjdE5hbWUpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHR5cGUgPSBwYXJzZUFwaVR5cGVOYW1lKHR5cGVuYW1lKTtcbiAgICBpZiAoIXR5cGUudmVyc2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcGFyc2UgdmVyc2lvbiBmb3IgdHlwZTogJHt0eXBlbmFtZX1gKTtcbiAgICB9XG4gICAgcmVzdWx0LnB1c2goe1xuICAgICAgY3VzdG9tOiBmYWxzZSwgLy8gbm90IGEgQ1JEXG4gICAgICBmcW46IHR5cGUuZnVsbG5hbWUsXG4gICAgICBncm91cDogb2JqZWN0TmFtZS5ncm91cCxcbiAgICAgIGtpbmQ6IG9iamVjdE5hbWUua2luZCxcbiAgICAgIHZlcnNpb246IG9iamVjdE5hbWUudmVyc2lvbixcbiAgICAgIHNjaGVtYTogYXBpc2NoZW1hLFxuICAgICAgcHJlZml4LFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gdHJ5R2V0T2JqZWN0TmFtZShkZWY6IEpTT05TY2hlbWE0KTogR3JvdXBWZXJzaW9uS2luZCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG9iamVjdE5hbWVzID0gZGVmW1hfR1JPVVBfVkVSU0lPTl9LSU5EXSBhcyBHcm91cFZlcnNpb25LaW5kW107XG4gIGlmICghb2JqZWN0TmFtZXMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3Qgb2JqZWN0TmFtZSA9IG9iamVjdE5hbWVzWzBdO1xuICBpZiAoIW9iamVjdE5hbWUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gc2tpcCBkZWZpbml0aW9ucyB3aXRob3V0IFwibWV0YWRhdGFcIi4gdGhleSBhcmUgbm90IEFQSSBvYmplY3RzIHRoYXQgY2FuIGJlIGRlZmluZWRcbiAgLy8gaW4gbWFuaWZlc3RzIChleGFtcGxlOiBpby5rOHMuYXBpbWFjaGluZXJ5LnBrZy5hcGlzLm1ldGEudjEuRGVsZXRlT3B0aW9ucylcbiAgLy8gdGhleSB3aWxsIGJlIHRyZWF0ZWQgYXMgZGF0YSB0eXBlc1xuICBpZiAoIWRlZi5wcm9wZXJ0aWVzPy5tZXRhZGF0YSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gb2JqZWN0TmFtZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cFZlcnNpb25LaW5kIHtcbiAgcmVhZG9ubHkgZ3JvdXA6IHN0cmluZztcbiAgcmVhZG9ubHkga2luZDogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbmNvbnN0IFhfR1JPVVBfVkVSU0lPTl9LSU5EID0gJ3gta3ViZXJuZXRlcy1ncm91cC12ZXJzaW9uLWtpbmQnO1xuXG5hc3luYyBmdW5jdGlvbiBkb3dubG9hZFNjaGVtYShhcGlWZXJzaW9uOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsID0gYGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jZGs4cy10ZWFtL2NkazhzL21hc3Rlci9rdWJlcm5ldGVzLXNjaGVtYXMvdiR7YXBpVmVyc2lvbn0vX2RlZmluaXRpb25zLmpzb25gO1xuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGRvd25sb2FkKHVybCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGBDb3VsZCBub3QgZmluZCBhIHNjaGVtYSBmb3IgazhzIHZlcnNpb24gJHthcGlWZXJzaW9ufS4gVGhlIGN1cnJlbnQgbGlzdCBvZiBhdmFpbGFibGUgc2NoZW1hcyBpcyBhdCBodHRwczovL2dpdGh1Yi5jb20vY2RrOHMtdGVhbS9jZGs4cy90cmVlL21hc3Rlci9rdWJlcm5ldGVzLXNjaGVtYXMuYCk7XG4gICAgdGhyb3cgZTtcbiAgfVxuICB0cnkge1xuICAgIHJldHVybiBzYWZlUGFyc2VKc29uU2NoZW1hKG91dHB1dCkgYXMgSlNPTlNjaGVtYTQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSBzY2hlbWEgYXQgJHt1cmx9OiAke2V9YCk7XG4gIH1cbn1cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydC9rOHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEseUNBQTBDO0FBQzFDLGlDQUFxRDtBQUNyRCx1Q0FBOEc7QUFDOUcseUNBQW1FO0FBRW5FLGtDQUFtQztBQUd0QixRQUFBLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztBQUU1QyxNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQztBQWdCekMsTUFBYSxtQkFBb0IsU0FBUSxpQkFBVTtJQUUxQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFzQixFQUFFLElBQVM7UUFDekQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xELE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSwyQkFBbUIsQ0FBQztRQUU3RCxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixVQUFVLDhDQUE4QyxDQUFDLENBQUM7U0FDcEc7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixVQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWpELE9BQU87WUFDTCxVQUFVLEVBQUUsVUFBVTtZQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUE2QixPQUFtQztRQUM5RCxLQUFLLEVBQUUsQ0FBQztRQURtQixZQUFPLEdBQVAsT0FBTyxDQUE0QjtJQUVoRSxDQUFDO0lB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QUFJLEtBQUssQ0FBQyw2QkFBNkIsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDM0Q7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSAnY29kZW1ha2VyJztcblxuLy8gd2UganVzdCBuZWVkIHRoZSB0eXBlcyBmcm9tIGpzb24tc2NoZW1hXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBKU09OU2NoZW1hNCB9IGZyb20gJ2pzb24tc2NoZW1hJztcblxuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5pbXBvcnQgeyBHZW5lcmF0ZU9wdGlvbnMsIEltcG9ydEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQXBpT2JqZWN0RGVmaW5pdGlvbiwgZW1pdEhlYWRlciwgZ2VuZXJhdGVDb25zdHJ1Y3QsIGdldFByb3BzVHlwZU5hbWUsIGdldFR5cGVOYW1lIH0gZnJvbSAnLi9jb2RlZ2VuJztcbmltcG9ydCB7IHBhcnNlQXBpVHlwZU5hbWUsIHNhZmVQYXJzZUpzb25TY2hlbWEgfSBmcm9tICcuL2s4cy11dGlsJztcbmltcG9ydCB7IEltcG9ydFNwZWMgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgZG93bmxvYWQgfSBmcm9tICcuLi91dGlsJztcblxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BUElfVkVSU0lPTiA9ICcxLjI1LjAnO1xuXG5jb25zdCBERUZBVUxUX0NMQVNTX05BTUVfUFJFRklYID0gJ0t1YmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydEt1YmVybmV0ZXNBcGlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBBUEkgdmVyc2lvbiB0byBnZW5lcmF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwaVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogRG8gbm90IGltcG9ydCB0aGVzZSB0eXBlcy4gSW5zdGVhZCwgcmVwcmVzZW50IHRoZW0gYXMgXCJhbnlcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBpbmNsdWRlIGFsbCB0eXBlcyB0aGF0IGRlcml2ZSBmcm9tIHRoZSByb290IHR5cGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgSW1wb3J0S3ViZXJuZXRlc0FwaSBleHRlbmRzIEltcG9ydEJhc2Uge1xuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgbWF0Y2goaW1wb3J0U3BlYzogSW1wb3J0U3BlYywgYXJndjogYW55KTogUHJvbWlzZTxJbXBvcnRLdWJlcm5ldGVzQXBpT3B0aW9ucyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHsgc291cmNlIH0gPSBpbXBvcnRTcGVjO1xuICAgIGlmIChzb3VyY2UgIT09ICdrOHMnICYmICFzb3VyY2Uuc3RhcnRzV2l0aCgnazhzQCcpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCBrOHNWZXJzaW9uID0gc291cmNlLnNwbGl0KCdAJylbMV0gPz8gREVGQVVMVF9BUElfVkVSU0lPTjtcblxuICAgIGNvbnN0IGs4c1ZlcnNpb25SZWdleCA9IC9eXFxkK1xcLlxcZCtcXC5cXGQrJC87XG4gICAgaWYgKCFrOHNWZXJzaW9uUmVnZXgudGVzdChrOHNWZXJzaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBrOHMgdmVyc2lvbiBcIiR7azhzVmVyc2lvbn1cIiB0byBtYXRjaCBmb3JtYXQgXCI8bWFqb3I+LjxtaW5vcj4uPHBhdGNoPlwiLmApO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoYEltcG9ydGluZyBrOHMgdiR7azhzVmVyc2lvbn0uLi5gKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhcGlWZXJzaW9uOiBrOHNWZXJzaW9uLFxuICAgICAgZXhjbHVkZTogYXJndi5leGNsdWRlLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEltcG9ydEt1YmVybmV0ZXNBcGlPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kdWxlTmFtZXMoKSB7XG4gICAgcmV0dXJuIFsnazhzJ107XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2VuZXJhdGVUeXBlU2NyaXB0KGNvZGU6IENvZGVNYWtlciwgbW9kdWxlTmFtZTogc3RyaW5nLCBvcHRpb25zOiBHZW5lcmF0ZU9wdGlvbnMpIHtcbiAgICBjb25zdCBzY2hlbWEgPSBhd2FpdCBkb3dubG9hZFNjaGVtYSh0aGlzLm9wdGlvbnMuYXBpVmVyc2lvbik7XG5cbiAgICBpZiAobW9kdWxlTmFtZSAhPT0gJ2s4cycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBtb2R1bGUgbmFtZSBcIiR7bW9kdWxlTmFtZX1cIiB3aGVuIGltcG9ydGluZyBrOHMgdHlwZXMgKGV4cGVjdGVkIFwiazhzXCIpYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy5jbGFzc05hbWVQcmVmaXggPz8gREVGQVVMVF9DTEFTU19OQU1FX1BSRUZJWDtcbiAgICBjb25zdCB0b3BMZXZlbE9iamVjdHMgPSBmaW5kQXBpT2JqZWN0RGVmaW5pdGlvbnMoc2NoZW1hLCBwcmVmaXgpO1xuXG4gICAgY29uc3QgdHlwZUdlbmVyYXRvciA9IG5ldyBUeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiBzY2hlbWEuZGVmaW5pdGlvbnMsXG4gICAgICBleGNsdWRlOiB0aGlzLm9wdGlvbnMuZXhjbHVkZSxcbiAgICAgIHJlbmRlclR5cGVOYW1lOiAoZGVmOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VBcGlUeXBlTmFtZShkZWYpO1xuICAgICAgICBpZiAoIXBhcnNlZC52ZXJzaW9uKSB7XG4gICAgICAgICAgLy8gbm90IGEgdmVyc2lvbmVkIGFwaSB0eXBlLiByZXR1cm4gYmFzZW5hbWVcbiAgICAgICAgICByZXR1cm4gcGFyc2VkLmJhc2VuYW1lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRUeXBlTmFtZShmYWxzZSwgcGFyc2VkLmJhc2VuYW1lLCBwYXJzZWQudmVyc2lvbi5yYXcpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIHJlbmFtZSBcIlByb3BzXCIgdHlwZSBmcm9tIHRoZWlyIG9yaWdpbmFsIG5hbWUgYmFzZWQgb24gdGhlIEFQSSBvYmplY3Qga2luZFxuICAgIC8vIChlLmcuIGBEZXBsb3ltZW50YCkgdG8gdGhlaXIgYWN0dWFsIHByb3BzIHR5cGUgKGBLdWJlRGVwbG95bWVudFByb3BzYCkgaW5cbiAgICAvLyBvcmRlciB0byBhdm9pZCBjb25mdXNpb24gYmV0d2VlbiBjb25zdHJ1Y3RzIChgS3ViZURlcGxveW1lbnRgKSBhbmQgdGhvc2VcbiAgICAvLyB0eXBlcy4gVGhpcyBpcyBkb25lIGJ5IHNpbXBseSByZXBsYWNpbmcgdGhlaXIgZGVmaW5pdGlvbiBpbiB0aGUgc2NoZW1hXG4gICAgLy8gd2l0aCBhICRyZWYgdG8gdGhlIGRlZmluaXRpb24gb2YgdGhlIHByb3BzIHR5cGUuXG4gICAgZm9yIChjb25zdCBvIG9mIHRvcExldmVsT2JqZWN0cykge1xuICAgICAgdHlwZUdlbmVyYXRvci5hZGREZWZpbml0aW9uKG8uZnFuLCB7ICRyZWY6IGAjL2RlZmluaXRpb25zLyR7Z2V0UHJvcHNUeXBlTmFtZShvKX1gIH0pO1xuICAgIH1cblxuICAgIC8vIGVtaXQgY29uc3RydWN0IHR5cGVzIChyZWN1cnNpdmUpXG4gICAgZm9yIChjb25zdCBvIG9mIHRvcExldmVsT2JqZWN0cykge1xuICAgICAgZ2VuZXJhdGVDb25zdHJ1Y3QodHlwZUdlbmVyYXRvciwgbyk7XG4gICAgfVxuXG4gICAgZW1pdEhlYWRlcihjb2RlLCBmYWxzZSk7XG5cbiAgICBjb2RlLmxpbmUodHlwZUdlbmVyYXRvci5yZW5kZXIoKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgbWFwIG9mIGFsbCBBUEkgb2JqZWN0cyBpbiB0aGUgc3BlYyAob2JqZWN0cyB0aGF0IGhhdmUgdGhlXG4gKiAneC1rdWJlcm5ldGVzLWdyb3VwLXZlcnNpb24ta2luZCcgYW5ub3RhdGlvbikuXG4gKlxuICogVGhlIGtleSBpcyB0aGUgYmFzZSBuYW1lIG9mIHRoZSB0eXBlIChpLmUuIGBEZXBsb3ltZW50YCkuIFNpbmNlIEFQSSBvYmplY3RzXG4gKiBtYXkgaGF2ZSBtdWx0aXBsZSB2ZXJzaW9ucywgZWFjaCB2YWx1ZSBpbiB0aGUgbWFwIGlzIGFuIGFycmF5IG9mIHR5cGUgZGVmaW5pdGlvbnNcbiAqIGFsb25nIHdpdGggdmVyc2lvbiBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L2t1YmVybmV0ZXMtYXBpLyNhcGktdmVyc2lvbmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEFwaU9iamVjdERlZmluaXRpb25zKHNjaGVtYTogSlNPTlNjaGVtYTQsIHByZWZpeDogc3RyaW5nKTogQXBpT2JqZWN0RGVmaW5pdGlvbltdIHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PEFwaU9iamVjdERlZmluaXRpb24+KCk7XG5cbiAgZm9yIChjb25zdCBbdHlwZW5hbWUsIGFwaXNjaGVtYV0gb2YgT2JqZWN0LmVudHJpZXMoc2NoZW1hLmRlZmluaXRpb25zIHx8IHsgfSkpIHtcbiAgICBjb25zdCBvYmplY3ROYW1lID0gdHJ5R2V0T2JqZWN0TmFtZShhcGlzY2hlbWEpO1xuICAgIGlmICghb2JqZWN0TmFtZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZSA9IHBhcnNlQXBpVHlwZU5hbWUodHlwZW5hbWUpO1xuICAgIGlmICghdHlwZS52ZXJzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSB2ZXJzaW9uIGZvciB0eXBlOiAke3R5cGVuYW1lfWApO1xuICAgIH1cbiAgICByZXN1bHQucHVzaCh7XG4gICAgICBjdXN0b206IGZhbHNlLCAvLyBub3QgYSBDUkRcbiAgICAgIGZxbjogdHlwZS5mdWxsbmFtZSxcbiAgICAgIGdyb3VwOiBvYmplY3ROYW1lLmdyb3VwLFxuICAgICAga2luZDogb2JqZWN0TmFtZS5raW5kLFxuICAgICAgdmVyc2lvbjogb2JqZWN0TmFtZS52ZXJzaW9uLFxuICAgICAgc2NoZW1hOiBhcGlzY2hlbWEsXG4gICAgICBwcmVmaXgsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB0cnlHZXRPYmplY3ROYW1lKGRlZjogSlNPTlNjaGVtYTQpOiBHcm91cFZlcnNpb25LaW5kIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgb2JqZWN0TmFtZXMgPSBkZWZbWF9HUk9VUF9WRVJTSU9OX0tJTkRdIGFzIEdyb3VwVmVyc2lvbktpbmRbXTtcbiAgaWYgKCFvYmplY3ROYW1lcykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBvYmplY3ROYW1lID0gb2JqZWN0TmFtZXNbMF07XG4gIGlmICghb2JqZWN0TmFtZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBza2lwIGRlZmluaXRpb25zIHdpdGhvdXQgXCJtZXRhZGF0YVwiLiB0aGV5IGFyZSBub3QgQVBJIG9iamVjdHMgdGhhdCBjYW4gYmUgZGVmaW5lZFxuICAvLyBpbiBtYW5pZmVzdHMgKGV4YW1wbGU6IGlvLms4cy5hcGltYWNoaW5lcnkucGtnLmFwaXMubWV0YS52MS5EZWxldGVPcHRpb25zKVxuICAvLyB0aGV5IHdpbGwgYmUgdHJlYXRlZCBhcyBkYXRhIHR5cGVzXG4gIGlmICghZGVmLnByb3BlcnRpZXM/Lm1ldGFkYXRhKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBvYmplY3ROYW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwVmVyc2lvbktpbmQge1xuICByZWFkb25seSBncm91cDogc3RyaW5nO1xuICByZWFkb25seSBraW5kOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuY29uc3QgWF9HUk9VUF9WRVJTSU9OX0tJTkQgPSAneC1rdWJlcm5ldGVzLWdyb3VwLXZlcnNpb24ta2luZCc7XG5cbmFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkU2NoZW1hKGFwaVZlcnNpb246IHN0cmluZykge1xuICBjb25zdCB1cmwgPSBgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NkazhzLXRlYW0vY2RrOHMvbWFzdGVyL2t1YmVybmV0ZXMtc2NoZW1hcy92JHthcGlWZXJzaW9ufS9fZGVmaW5pdGlvbnMuanNvbmA7XG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZG93bmxvYWQodXJsKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoYENvdWxkIG5vdCBmaW5kIGEgc2NoZW1hIGZvciBrOHMgdmVyc2lvbiAke2FwaVZlcnNpb259LiBUaGUgY3VycmVudCBsaXN0IG9mIGF2YWlsYWJsZSBzY2hlbWFzIGlzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9jZGs4cy10ZWFtL2NkazhzL3RyZWUvbWFzdGVyL2t1YmVybmV0ZXMtc2NoZW1hcy5gKTtcbiAgICB0aHJvdyBlO1xuICB9XG4gIHRyeSB7XG4gICAgcmV0dXJuIHNhZmVQYXJzZUpzb25TY2hlbWEob3V0cHV0KSBhcyBKU09OU2NoZW1hNDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHBhcnNlIHNjaGVtYSBhdCAke3VybH06ICR7ZX1gKTtcbiAgfVxufVxuIl19
@@ -38,13 +38,12 @@ class PluginManager {
38
38
  this.dir = dir;
39
39
  }
40
40
  load(options) {
41
- var _a, _b;
42
- const pkg = this.loadPackage(options.pkg, options.version, (_a = options.installEnv) !== null && _a !== void 0 ? _a : {});
41
+ const pkg = this.loadPackage(options.pkg, options.version, options.installEnv ?? {});
43
42
  const clazz = pkg.module[options.class];
44
43
  if (!clazz) {
45
44
  throw new Error(`Unable to locate class '${options.class}' in package '${options.pkg}@${options.version}'. Are you sure you exported it?`);
46
45
  }
47
- return { instance: new clazz((_b = options.properties) !== null && _b !== void 0 ? _b : {}), class: options.class, package: pkg };
46
+ return { instance: new clazz(options.properties ?? {}), class: options.class, package: pkg };
48
47
  }
49
48
  loadPackage(pkg, version, installEnv) {
50
49
  if (isRange(version)) {
@@ -103,7 +102,7 @@ class PluginManager {
103
102
  const modulePath = require.resolve(spec);
104
103
  // eslint-disable-next-line @typescript-eslint/no-require-imports
105
104
  const module = require(modulePath);
106
- return { version, pkg: pluginName !== null && pluginName !== void 0 ? pluginName : spec, path: modulePath, module };
105
+ return { version, pkg: pluginName ?? spec, path: modulePath, module };
107
106
  }
108
107
  pluginDir(pkg, version) {
109
108
  return path.join(this.dir, pkg, version, 'node_modules', pkg);
@@ -121,4 +120,4 @@ exports.PluginManager = PluginManager;
121
120
  function isRange(version) {
122
121
  return new semver.Range(version).range !== version;
123
122
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX21hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGx1Z2lucy9fbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1QztBQUN2QywyQ0FBNkI7QUFDN0IseUNBQTJCO0FBQzNCLDZDQUErQjtBQUMvQiwrQ0FBaUM7QUFFakMsTUFBTSwyQkFBMkIsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLGtEQUFrRDtBQW1GMUc7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFFeEIsWUFBNkIsR0FBVztRQUFYLFFBQUcsR0FBSCxHQUFHLENBQVE7SUFBRyxDQUFDO0lBRXJDLElBQUksQ0FBQyxPQUFpQzs7UUFFM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBQSxPQUFPLENBQUMsVUFBVSxtQ0FBSSxFQUFFLENBQUMsQ0FBQztRQUVyRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsT0FBTyxDQUFDLEtBQUssaUJBQWlCLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sa0NBQWtDLENBQUMsQ0FBQztTQUM1STtRQUVELE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBQSxPQUFPLENBQUMsVUFBVSxtQ0FBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDL0YsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFXLEVBQUUsT0FBZSxFQUFFLFVBQWtDO1FBRWxGLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FB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RUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU8sT0FBTyxDQUFDLElBQVksRUFBRSxPQUFlLEVBQUUsVUFBa0I7UUFFL0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxpRUFBaUU7UUFDakUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5DLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsYUFBVixVQUFVLGNBQVYsVUFBVSxHQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFTyxTQUFTLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUVGO0FBakdELHNDQWlHQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLE9BQU8sQ0FBQyxPQUFlO0lBQzlCLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5cbmNvbnN0IE1PRFVMRV9OT1RfRk9VTkRfRVJST1JfQ09ERSA9ICdNT0RVTEVfTk9UX0ZPVU5EJzsgLy8gVE9ETyBpcyB0aGVyZSBhIGtub3duIGNvbnN0YW50IHdlIGNhbiB1c2UgaGVyZT9cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGxvYWRlZCBwbHVnaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luIHtcblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlIG9mIHRoZSBwbHVnaW4gY2xhc3MuXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZTogdW5rbm93bjtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBjbGFzcyBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xhc3M6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBwYWNrYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZTogUGFja2FnZTtcblxufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgcGx1Z2luIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZSB7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gbW9kdWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlOiBSZXR1cm5UeXBlPE5vZGVSZXF1aXJlPjtcblxuICAvKipcbiAgICAqIFRoZSBucG0gcGFja2FnZSBvZiB0aGUgcGx1Z2luLlxuICAgICovXG4gIHJlYWRvbmx5IHBrZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICogVGhlIHZlcnNpb24gb2YgdGhlIHBsdWdpbi5cbiAgICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgKiBUaGUgcGF0aCBvZiB0aGUgcGx1Z2luIG9uIHRoZSBsb2NhbCBzeXN0ZW0gKGFmdGVyIGl0cyBpbnN0YWxsZWQpLlxuICAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGxvYWRpbmcgYSBwbHVnaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luTWFuYWdlckxvYWRPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBwYWNrYWdlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBwa2c6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBwYWNrYWdlIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gcGFja2FnZSBjbGFzcy5cbiAgICovXG4gIHJlYWRvbmx5IGNsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluc3RhbGxhdGlvbiBlbnZpcm9ubWVudCAocGFzc2VkIG9uIHRvIG5wbSBpbnN0YWxsKVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFsbEVudj86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBpbnN0YW50aWF0aW9uIHByb3BlcnRpZXMuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxufVxuXG4vKipcbiAqIEEgYFBsdWdpbk1hbmFnZXJgIGlzIHJlc3BvbnNpYmxlIGZvciBsb2FkaW5nIChhbmQgaW5zdGFsbGluZykgcGx1Z2lucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpbk1hbmFnZXIge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGlyOiBzdHJpbmcpIHt9XG5cbiAgcHVibGljIGxvYWQob3B0aW9uczogUGx1Z2luTWFuYWdlckxvYWRPcHRpb25zKTogUGx1Z2luIHtcblxuICAgIGNvbnN0IHBrZyA9IHRoaXMubG9hZFBhY2thZ2Uob3B0aW9ucy5wa2csIG9wdGlvbnMudmVyc2lvbiwgb3B0aW9ucy5pbnN0YWxsRW52ID8/IHt9KTtcblxuICAgIGNvbnN0IGNsYXp6ID0gcGtnLm1vZHVsZVtvcHRpb25zLmNsYXNzXTtcbiAgICBpZiAoIWNsYXp6KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBsb2NhdGUgY2xhc3MgJyR7b3B0aW9ucy5jbGFzc30nIGluIHBhY2thZ2UgJyR7b3B0aW9ucy5wa2d9QCR7b3B0aW9ucy52ZXJzaW9ufScuIEFyZSB5b3Ugc3VyZSB5b3UgZXhwb3J0ZWQgaXQ/YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgaW5zdGFuY2U6IG5ldyBjbGF6eihvcHRpb25zLnByb3BlcnRpZXMgPz8ge30pLCBjbGFzczogb3B0aW9ucy5jbGFzcywgcGFja2FnZTogcGtnIH07XG4gIH1cblxuICBwcml2YXRlIGxvYWRQYWNrYWdlKHBrZzogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIGluc3RhbGxFbnY6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBQYWNrYWdlIHtcblxuICAgIGlmIChpc1JhbmdlKHZlcnNpb24pKSB7XG4gICAgICAvLyB3ZSBmb3JiaWQgdmVyc2lvbiByYW5nZXMgYmVjYXVzZSBpdCBtaWdodCBnaXZlIHRoZSBmYWxzZSBpbXByZXNzaW9uIHdlIHdpbGwgYmUgaW5zdGFsbGluZ1xuICAgICAgLy8gdGhlIGxhdGVzdCB2ZXJzaW9uICh3aGljaCB3ZSB3aWxsIG5vdCBiZWNhdXNlIGl0IHdvdWxkIG1lYW4gY29udGFjdGluZyBOUE0gb24gZXZlcnkgc3ludGgpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHZlcnNpb24gc3BlYyBmb3IgcGFja2FnZSAke3BrZ306ICR7dmVyc2lvbn0uIENhbm5vdCBiZSBhIHJhbmdlLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3RvID0gdXJsLnBhcnNlKHBrZykucHJvdG9jb2w7XG5cbiAgICBpZiAocHJvdG8pIHtcbiAgICAgIC8vIHVybHMgYXJlIG5vdCBzdXBwb3J0ZWQgYmVjYXVzZSB0aGV5IGRvbid0IHByb3ZpZGUgYSBuYW1lIHdpdGggd2hpY2ggd2UgY2FuICdyZXF1aXJlJyB0aGUgbW9kdWxlLlxuICAgICAgLy8gaWYgbmVlZGVkLCB3ZSBjYW4gbWFrZSB0aGUgbG9hZGVyIHNtYXJ0ZXIgYW5kIGVuYWJsZSB0aGlzLCBidXQgbm90IGZvciBub3cuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHBhY2thZ2UgcmVmZXJlbmNlOiAke3BrZ30uIENhbiBlaXRoZXIgYmUgYW4gTlBNIHBhY2thZ2UgbmFtZSwgb3IgYSBsb2NhbCBwYXRoIHRvIGEgZGlyZWN0b3J5YCk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWwgPSBwYXRoLmlzQWJzb2x1dGUocGtnKVxuICAgICAgLy8gYXNzdW1lIHJlbGF0aXZlIHBhdGhzIHN0YXJ0IHdpdGggJy4nIGJlY2F1c2Ugb3RoZXJpc2UgdGhleVxuICAgICAgLy8gYXJlIGVhc2lseSBjb25mdXNlZCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVzLlxuICAgICAgfHwgcGtnLnN0YXJ0c1dpdGgoYC4ke3BhdGguc2VwfWApO1xuXG4gICAgLy8gbG9jYWwgcGx1Z2lucyBhcmUgbG9hZGVkIGRpcmVjdGx5LCBucG0gcGFja2FnZXMgYXJlIGxvYWRlZFxuICAgIC8vIGZyb20gdGhlIHBsdWdpbnMgZGlyZWN0b3J5LlxuICAgIGNvbnN0IG1vZHVsZVBhdGggPSBsb2NhbCA/IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBwa2cpIDogdGhpcy5wbHVnaW5EaXIocGtnLCB2ZXJzaW9uKTtcbiAgICBjb25zdCBwbHVnaW5OYW1lID0gbG9jYWwgPyBtb2R1bGVQYXRoIDogcGtnO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLnJlcXVpcmUobW9kdWxlUGF0aCwgdmVyc2lvbiwgcGx1Z2luTmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG5cbiAgICAgIGlmICghW01PRFVMRV9OT1RfRk9VTkRfRVJST1JfQ09ERV0uaW5jbHVkZXMoZS5jb2RlKSkge1xuICAgICAgICAvLyBzb21lIHVuZXhwZWN0ZWQgZXJyb3JcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGxvY2FsKSB7XG4gICAgICAgIC8vIGlmIGEgbG9jYWwgcGx1Z2luIGlzIG1pc3NpbmcsIG5vdGhpbmcgd2UgY2FuIGRvIGFib3V0IGl0XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG5cbiAgICAgIC8vIG90aGVyd2lzZSwgd2UgaW5zdGFsbCBmcm9tIG5wbSBhbmQgcmUtcmVxdWlyZS5cbiAgICAgIHRoaXMuaW5zdGFsbFBhY2thZ2UocGtnLCB2ZXJzaW9uLCBpbnN0YWxsRW52KTtcbiAgICAgIHJldHVybiB0aGlzLnJlcXVpcmUobW9kdWxlUGF0aCwgdmVyc2lvbiwgcGx1Z2luTmFtZSk7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxQYWNrYWdlKHBrZzogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIGVudjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuXG4gICAgY29uc3QgcGx1Z2luRGlyID0gcGF0aC5qb2luKHRoaXMuZGlyLCBwa2csIHZlcnNpb24pO1xuICAgIGZzLm1rZGlycFN5bmMocGx1Z2luRGlyKTtcblxuICAgIGNvbnN0IGNvbW1hbmQgPSBbXG4gICAgICAnbnBtJyxcbiAgICAgICdpbnN0YWxsJywgYCR7cGtnfUAke3ZlcnNpb259YCxcbiAgICAgICctLW5vLXNhdmUnLFxuICAgICAgJy0tcHJlZml4JywgcGx1Z2luRGlyLFxuICAgIF0uam9pbignICcpO1xuXG4gICAgY29uc3QgZmluYWxFbnYgPSB7IC4uLnByb2Nlc3MuZW52IH07XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZW52KSkge1xuICAgICAgZmluYWxFbnZba2V5XSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBrZXkgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGBJbnN0YWxsaW5nIHZhbGlkYXRpb24gcGx1Z2luOiAke3BrZ31AJHt2ZXJzaW9ufSAodGhpcyBtYXkgdGFrZSBhIHdoaWxlIHRoZSBmaXJzdCB0aW1lIGFyb3VuZClgKTtcbiAgICBjaGlsZC5leGVjU3luYyhjb21tYW5kLCB7IHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ3BpcGUnXSwgZW52OiBmaW5hbEVudiB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVxdWlyZShzcGVjOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZywgcGx1Z2luTmFtZTogc3RyaW5nKTogUGFja2FnZSB7XG5cbiAgICBjb25zdCBtb2R1bGVQYXRoID0gcmVxdWlyZS5yZXNvbHZlKHNwZWMpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICBjb25zdCBtb2R1bGUgPSByZXF1aXJlKG1vZHVsZVBhdGgpO1xuXG4gICAgcmV0dXJuIHsgdmVyc2lvbiwgcGtnOiBwbHVnaW5OYW1lID8/IHNwZWMsIHBhdGg6IG1vZHVsZVBhdGgsIG1vZHVsZSB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwbHVnaW5EaXIocGtnOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykge1xuICAgIHJldHVybiBwYXRoLmpvaW4odGhpcy5kaXIsIHBrZywgdmVyc2lvbiwgJ25vZGVfbW9kdWxlcycsIHBrZyk7XG4gIH1cblxufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIHZlcnNpb24gcmVwcmVzZW50cyBhIHJhbmdlLCBvciBhIHBpbm5lZCB2ZXJzaW9uLlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogICAtICcxLnggZXhwYW5kcyB0byAnPj0xLjAuMCA8Mi4wLjAtMCdcbiAqICAgLSBgfjEuMicgZXhwYW5kcyB0byAnPj0xLjIuMCA8MS4zLjAtMCdcbiAqICAgLSAnMS4yLjMnIGV4cGFuZHMgdG8gJzEuMi4zJ1xuICovXG5mdW5jdGlvbiBpc1JhbmdlKHZlcnNpb246IHN0cmluZykge1xuICByZXR1cm4gbmV3IHNlbXZlci5SYW5nZSh2ZXJzaW9uKS5yYW5nZSAhPT0gdmVyc2lvbjtcbn0iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX21hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGx1Z2lucy9fbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1QztBQUN2QywyQ0FBNkI7QUFDN0IseUNBQTJCO0FBQzNCLDZDQUErQjtBQUMvQiwrQ0FBaUM7QUFFakMsTUFBTSwyQkFBMkIsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLGtEQUFrRDtBQW1GMUc7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFFeEIsWUFBNkIsR0FBVztRQUFYLFFBQUcsR0FBSCxHQUFHLENBQVE7SUFBRyxDQUFDO0lBRXJDLElBQUksQ0FBQyxPQUFpQztRQUUzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXJGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixPQUFPLENBQUMsS0FBSyxpQkFBaUIsT0FBTyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxrQ0FBa0MsQ0FBQyxDQUFDO1NBQzVJO1FBRUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUMvRixDQUFDO0lBRU8sV0FBVyxDQUFDLEdBQVcsRUFBRSxPQUFlLEVBQUUsVUFBa0M7UUFFbEYsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDcEIs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QyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTyxPQUFPLENBQUMsSUFBWSxFQUFFLE9BQWUsRUFBRSxVQUFrQjtRQUUvRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLGlFQUFpRTtRQUNqRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFTyxTQUFTLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUVGO0FBakdELHNDQWlHQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLE9BQU8sQ0FBQyxPQUFlO0lBQzlCLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5cbmNvbnN0IE1PRFVMRV9OT1RfRk9VTkRfRVJST1JfQ09ERSA9ICdNT0RVTEVfTk9UX0ZPVU5EJzsgLy8gVE9ETyBpcyB0aGVyZSBhIGtub3duIGNvbnN0YW50IHdlIGNhbiB1c2UgaGVyZT9cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGxvYWRlZCBwbHVnaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luIHtcblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlIG9mIHRoZSBwbHVnaW4gY2xhc3MuXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZTogdW5rbm93bjtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBjbGFzcyBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xhc3M6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBwYWNrYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZTogUGFja2FnZTtcblxufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgcGx1Z2luIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZSB7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gbW9kdWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlOiBSZXR1cm5UeXBlPE5vZGVSZXF1aXJlPjtcblxuICAvKipcbiAgICAqIFRoZSBucG0gcGFja2FnZSBvZiB0aGUgcGx1Z2luLlxuICAgICovXG4gIHJlYWRvbmx5IHBrZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICogVGhlIHZlcnNpb24gb2YgdGhlIHBsdWdpbi5cbiAgICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgKiBUaGUgcGF0aCBvZiB0aGUgcGx1Z2luIG9uIHRoZSBsb2NhbCBzeXN0ZW0gKGFmdGVyIGl0cyBpbnN0YWxsZWQpLlxuICAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGxvYWRpbmcgYSBwbHVnaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luTWFuYWdlckxvYWRPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBwYWNrYWdlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBwa2c6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBwYWNrYWdlIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gcGFja2FnZSBjbGFzcy5cbiAgICovXG4gIHJlYWRvbmx5IGNsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluc3RhbGxhdGlvbiBlbnZpcm9ubWVudCAocGFzc2VkIG9uIHRvIG5wbSBpbnN0YWxsKVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFsbEVudj86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBpbnN0YW50aWF0aW9uIHByb3BlcnRpZXMuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxufVxuXG4vKipcbiAqIEEgYFBsdWdpbk1hbmFnZXJgIGlzIHJlc3BvbnNpYmxlIGZvciBsb2FkaW5nIChhbmQgaW5zdGFsbGluZykgcGx1Z2lucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpbk1hbmFnZXIge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGlyOiBzdHJpbmcpIHt9XG5cbiAgcHVibGljIGxvYWQob3B0aW9uczogUGx1Z2luTWFuYWdlckxvYWRPcHRpb25zKTogUGx1Z2luIHtcblxuICAgIGNvbnN0IHBrZyA9IHRoaXMubG9hZFBhY2thZ2Uob3B0aW9ucy5wa2csIG9wdGlvbnMudmVyc2lvbiwgb3B0aW9ucy5pbnN0YWxsRW52ID8/IHt9KTtcblxuICAgIGNvbnN0IGNsYXp6ID0gcGtnLm1vZHVsZVtvcHRpb25zLmNsYXNzXTtcbiAgICBpZiAoIWNsYXp6KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBsb2NhdGUgY2xhc3MgJyR7b3B0aW9ucy5jbGFzc30nIGluIHBhY2thZ2UgJyR7b3B0aW9ucy5wa2d9QCR7b3B0aW9ucy52ZXJzaW9ufScuIEFyZSB5b3Ugc3VyZSB5b3UgZXhwb3J0ZWQgaXQ/YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgaW5zdGFuY2U6IG5ldyBjbGF6eihvcHRpb25zLnByb3BlcnRpZXMgPz8ge30pLCBjbGFzczogb3B0aW9ucy5jbGFzcywgcGFja2FnZTogcGtnIH07XG4gIH1cblxuICBwcml2YXRlIGxvYWRQYWNrYWdlKHBrZzogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIGluc3RhbGxFbnY6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBQYWNrYWdlIHtcblxuICAgIGlmIChpc1JhbmdlKHZlcnNpb24pKSB7XG4gICAgICAvLyB3ZSBmb3JiaWQgdmVyc2lvbiByYW5nZXMgYmVjYXVzZSBpdCBtaWdodCBnaXZlIHRoZSBmYWxzZSBpbXByZXNzaW9uIHdlIHdpbGwgYmUgaW5zdGFsbGluZ1xuICAgICAgLy8gdGhlIGxhdGVzdCB2ZXJzaW9uICh3aGljaCB3ZSB3aWxsIG5vdCBiZWNhdXNlIGl0IHdvdWxkIG1lYW4gY29udGFjdGluZyBOUE0gb24gZXZlcnkgc3ludGgpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHZlcnNpb24gc3BlYyBmb3IgcGFja2FnZSAke3BrZ306ICR7dmVyc2lvbn0uIENhbm5vdCBiZSBhIHJhbmdlLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3RvID0gdXJsLnBhcnNlKHBrZykucHJvdG9jb2w7XG5cbiAgICBpZiAocHJvdG8pIHtcbiAgICAgIC8vIHVybHMgYXJlIG5vdCBzdXBwb3J0ZWQgYmVjYXVzZSB0aGV5IGRvbid0IHByb3ZpZGUgYSBuYW1lIHdpdGggd2hpY2ggd2UgY2FuICdyZXF1aXJlJyB0aGUgbW9kdWxlLlxuICAgICAgLy8gaWYgbmVlZGVkLCB3ZSBjYW4gbWFrZSB0aGUgbG9hZGVyIHNtYXJ0ZXIgYW5kIGVuYWJsZSB0aGlzLCBidXQgbm90IGZvciBub3cuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHBhY2thZ2UgcmVmZXJlbmNlOiAke3BrZ30uIENhbiBlaXRoZXIgYmUgYW4gTlBNIHBhY2thZ2UgbmFtZSwgb3IgYSBsb2NhbCBwYXRoIHRvIGEgZGlyZWN0b3J5YCk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWwgPSBwYXRoLmlzQWJzb2x1dGUocGtnKVxuICAgICAgLy8gYXNzdW1lIHJlbGF0aXZlIHBhdGhzIHN0YXJ0IHdpdGggJy4nIGJlY2F1c2Ugb3RoZXJpc2UgdGhleVxuICAgICAgLy8gYXJlIGVhc2lseSBjb25mdXNlZCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVzLlxuICAgICAgfHwgcGtnLnN0YXJ0c1dpdGgoYC4ke3BhdGguc2VwfWApO1xuXG4gICAgLy8gbG9jYWwgcGx1Z2lucyBhcmUgbG9hZGVkIGRpcmVjdGx5LCBucG0gcGFja2FnZXMgYXJlIGxvYWRlZFxuICAgIC8vIGZyb20gdGhlIHBsdWdpbnMgZGlyZWN0b3J5LlxuICAgIGNvbnN0IG1vZHVsZVBhdGggPSBsb2NhbCA/IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBwa2cpIDogdGhpcy5wbHVnaW5EaXIocGtnLCB2ZXJzaW9uKTtcbiAgICBjb25zdCBwbHVnaW5OYW1lID0gbG9jYWwgPyBtb2R1bGVQYXRoIDogcGtnO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLnJlcXVpcmUobW9kdWxlUGF0aCwgdmVyc2lvbiwgcGx1Z2luTmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG5cbiAgICAgIGlmICghW01PRFVMRV9OT1RfRk9VTkRfRVJST1JfQ09ERV0uaW5jbHVkZXMoZS5jb2RlKSkge1xuICAgICAgICAvLyBzb21lIHVuZXhwZWN0ZWQgZXJyb3JcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGxvY2FsKSB7XG4gICAgICAgIC8vIGlmIGEgbG9jYWwgcGx1Z2luIGlzIG1pc3NpbmcsIG5vdGhpbmcgd2UgY2FuIGRvIGFib3V0IGl0XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG5cbiAgICAgIC8vIG90aGVyd2lzZSwgd2UgaW5zdGFsbCBmcm9tIG5wbSBhbmQgcmUtcmVxdWlyZS5cbiAgICAgIHRoaXMuaW5zdGFsbFBhY2thZ2UocGtnLCB2ZXJzaW9uLCBpbnN0YWxsRW52KTtcbiAgICAgIHJldHVybiB0aGlzLnJlcXVpcmUobW9kdWxlUGF0aCwgdmVyc2lvbiwgcGx1Z2luTmFtZSk7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxQYWNrYWdlKHBrZzogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIGVudjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuXG4gICAgY29uc3QgcGx1Z2luRGlyID0gcGF0aC5qb2luKHRoaXMuZGlyLCBwa2csIHZlcnNpb24pO1xuICAgIGZzLm1rZGlycFN5bmMocGx1Z2luRGlyKTtcblxuICAgIGNvbnN0IGNvbW1hbmQgPSBbXG4gICAgICAnbnBtJyxcbiAgICAgICdpbnN0YWxsJywgYCR7cGtnfUAke3ZlcnNpb259YCxcbiAgICAgICctLW5vLXNhdmUnLFxuICAgICAgJy0tcHJlZml4JywgcGx1Z2luRGlyLFxuICAgIF0uam9pbignICcpO1xuXG4gICAgY29uc3QgZmluYWxFbnYgPSB7IC4uLnByb2Nlc3MuZW52IH07XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZW52KSkge1xuICAgICAgZmluYWxFbnZba2V5XSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBrZXkgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGBJbnN0YWxsaW5nIHZhbGlkYXRpb24gcGx1Z2luOiAke3BrZ31AJHt2ZXJzaW9ufSAodGhpcyBtYXkgdGFrZSBhIHdoaWxlIHRoZSBmaXJzdCB0aW1lIGFyb3VuZClgKTtcbiAgICBjaGlsZC5leGVjU3luYyhjb21tYW5kLCB7IHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ3BpcGUnXSwgZW52OiBmaW5hbEVudiB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVxdWlyZShzcGVjOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZywgcGx1Z2luTmFtZTogc3RyaW5nKTogUGFja2FnZSB7XG5cbiAgICBjb25zdCBtb2R1bGVQYXRoID0gcmVxdWlyZS5yZXNvbHZlKHNwZWMpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICBjb25zdCBtb2R1bGUgPSByZXF1aXJlKG1vZHVsZVBhdGgpO1xuXG4gICAgcmV0dXJuIHsgdmVyc2lvbiwgcGtnOiBwbHVnaW5OYW1lID8/IHNwZWMsIHBhdGg6IG1vZHVsZVBhdGgsIG1vZHVsZSB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwbHVnaW5EaXIocGtnOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykge1xuICAgIHJldHVybiBwYXRoLmpvaW4odGhpcy5kaXIsIHBrZywgdmVyc2lvbiwgJ25vZGVfbW9kdWxlcycsIHBrZyk7XG4gIH1cblxufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIHZlcnNpb24gcmVwcmVzZW50cyBhIHJhbmdlLCBvciBhIHBpbm5lZCB2ZXJzaW9uLlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogICAtICcxLnggZXhwYW5kcyB0byAnPj0xLjAuMCA8Mi4wLjAtMCdcbiAqICAgLSBgfjEuMicgZXhwYW5kcyB0byAnPj0xLjIuMCA8MS4zLjAtMCdcbiAqICAgLSAnMS4yLjMnIGV4cGFuZHMgdG8gJzEuMi4zJ1xuICovXG5mdW5jdGlvbiBpc1JhbmdlKHZlcnNpb246IHN0cmluZykge1xuICByZXR1cm4gbmV3IHNlbXZlci5SYW5nZSh2ZXJzaW9uKS5yYW5nZSAhPT0gdmVyc2lvbjtcbn0iXX0=