lerna-projen 0.1.528 → 0.1.530

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/.jsii +2 -2
  2. package/lib/index.js +4 -4
  3. package/package.json +2 -2
package/.jsii CHANGED
@@ -1031,6 +1031,6 @@
1031
1031
  "symbolId": "src/utils:AddNxTaskDependencyOptions"
1032
1032
  }
1033
1033
  },
1034
- "version": "0.1.528",
1035
- "fingerprint": "F+WkdKWpAS3Db4/sY4lW9PFzE8Fh1tQJ6umLHzmI8DI="
1034
+ "version": "0.1.530",
1035
+ "fingerprint": "bXF9kCRl5pq9v11rTyQNe3nIiKjgBo5zi57+kLkluEk="
1036
1036
  }
package/lib/index.js CHANGED
@@ -93,7 +93,7 @@ class LernaProject extends projen_1.javascript.NodeProject {
93
93
  }
94
94
  exports.LernaProject = LernaProject;
95
95
  _a = JSII_RTTI_SYMBOL_1;
96
- LernaProject[_a] = { fqn: "lerna-projen.LernaProject", version: "0.1.528" };
96
+ LernaProject[_a] = { fqn: "lerna-projen.LernaProject", version: "0.1.530" };
97
97
  /**
98
98
  * @pjid lerna-ts-project
99
99
  */
@@ -127,7 +127,7 @@ class LernaTypescriptProject extends projen_1.typescript.TypeScriptProject {
127
127
  }
128
128
  exports.LernaTypescriptProject = LernaTypescriptProject;
129
129
  _b = JSII_RTTI_SYMBOL_1;
130
- LernaTypescriptProject[_b] = { fqn: "lerna-projen.LernaTypescriptProject", version: "0.1.528" };
130
+ LernaTypescriptProject[_b] = { fqn: "lerna-projen.LernaTypescriptProject", version: "0.1.530" };
131
131
  class LernaProjectFactory {
132
132
  constructor(project) {
133
133
  this.project = project;
@@ -193,7 +193,7 @@ class LernaProjectFactory {
193
193
  const excludePatterns = customization?.exclude ?? [];
194
194
  const scopeFlags = includePatterns.map((glob) => ` --scope ${glob}`).join('');
195
195
  const ignoreFlags = excludePatterns.map((glob) => ` --ignore ${glob}`).join('');
196
- const postCommand = useSinceFlag ? ' --since $(git describe --abbrev=0 --tags --match "v*")' : '';
196
+ const postCommand = useSinceFlag ? ' --since $(git describe --abbrev=0 --tags --match "v*" HEAD^)' : '';
197
197
  return `${mainCommand}${postCommand}${scopeFlags}${ignoreFlags}`;
198
198
  }
199
199
  updateSubProjects() {
@@ -276,4 +276,4 @@ class LernaProjectFactory {
276
276
  this.project.gitattributes.addAttributes(`/${this.project.docsDirectory}/**`, 'linguist-generated');
277
277
  }
278
278
  }
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUE0QjtBQUM1QixtQ0FBNkY7QUFHN0YsMENBQXVCO0FBQ3ZCLG1DQUFnQztBQUVoQyxTQUFTLGdCQUFnQixDQUFDLE9BQWdCO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxPQUFnQjtJQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3BGLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLGdDQUFnQyxDQUFBO0FBRXhELFNBQVMscUJBQXFCLENBQUMsS0FBWTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN0RyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7UUFDbkMsT0FBTTtJQUVSLE1B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LCBqYXZhc2NyaXB0LCBQcm9qZWN0LCBUYXNrcywgU291cmNlQ29kZSwgdHlwZXNjcmlwdCwgWWFtbEZpbGV9IGZyb20gJ3Byb2plbidcbmltcG9ydCB7TGVybmFQcm9qZWN0T3B0aW9ucywgTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMsIFRhc2tDdXN0b21pemF0aW9uLCBUYXNrQ3VzdG9taXphdGlvbnN9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnXG5leHBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJ1xuXG5mdW5jdGlvbiBnZXREb2NzRGlyZWN0b3J5KHByb2plY3Q6IFByb2plY3QpIHtcbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocHJvamVjdCkuZmluZCgoW2tleV0pID0+IGtleSA9PT0gJ2RvY3NEaXJlY3RvcnknKVxuICByZXR1cm4gcmVzdWx0Py5bMV0ucmVwbGFjZSgvXFwvJC8sICcnKVxufVxuXG5mdW5jdGlvbiBnZXRBcnRpZmFjdHNEaXJlY3RvcnkocHJvamVjdDogUHJvamVjdCkge1xuICBjb25zdCByZXN1bHQgPSBPYmplY3QuZW50cmllcyhwcm9qZWN0KS5maW5kKChba2V5XSkgPT4ga2V5ID09PSAnYXJ0aWZhY3RzRGlyZWN0b3J5JylcbiAgcmV0dXJuIHJlc3VsdD8uWzFdXG59XG5cbmNvbnN0IGpzaWlUYXNrUGF0dGVybiA9IC9qc2lpLWRvY2dlbiAtbyAoPzxvdXRwdXQ+LispJC9pXG5cbmZ1bmN0aW9uIGV4dHJhY3RKc2lpRG9jc091dHB1dCh0YXNrczogVGFza3MpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBqc2lpRG9jU3RlcCA9IHRhc2tzLnRyeUZpbmQoJ2RvY2dlbicpPy5zdGVwcy5maW5kKHN0ZXAgPT4ganNpaVRhc2tQYXR0ZXJuLnRlc3Qoc3RlcC5leGVjID8/ICcnKSlcbiAgaWYgKCFqc2lpRG9jU3RlcCB8fCAhanNpaURvY1N0ZXAuZXhlYylcbiAgICByZXR1cm5cblxuICBjb25zdCBtYXRjaCA9IGpzaWlEb2NTdGVwLmV4ZWMubWF0Y2goanNpaVRhc2tQYXR0ZXJuKVxuICByZXR1cm4gbWF0Y2g/Lmdyb3Vwcz8ub3V0cHV0XG59XG5cbmZ1bmN0aW9uIGFwcGVuZFdvcmtmbG93Qm9vdHN0cmFwU3RlcHM8VCBleHRlbmRzIExlcm5hUHJvamVjdE9wdGlvbnMgfCBMZXJuYVR5cGVzY3JpcHRQcm9qZWN0T3B0aW9ucz4ob3B0aW9uczogVCk6IFQge1xuICBpZiAoIW9wdGlvbnMuc2luY2VMYXN0UmVsZWFzZSlcbiAgICByZXR1cm4gb3B0aW9uc1xuXG4gIHJldHVybiB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICB3b3JrZmxvd0Jvb3RzdHJhcFN0ZXBzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdGZXRjaCB0YWdzJyxcbiAgICAgICAgcnVuOiAnaWYgWyAkKGdpdCByZXYtcGFyc2UgLS1pcy1zaGFsbG93LXJlcG9zaXRvcnkpICE9IFwiZmFsc2VcIiBdIDsgdGhlbiBnaXQgZmV0Y2ggb3JpZ2luIG1haW4gLS10YWdzIC0tdW5zaGFsbG93OyBmaScsXG4gICAgICAgIGlmOiAnJHt7IGdpdGh1Yi53b3JrZmxvdyA9PSBcXCdidWlsZFxcJyB9fScsXG4gICAgICB9LFxuICAgICAgLi4ub3B0aW9ucy53b3JrZmxvd0Jvb3RzdHJhcFN0ZXBzID8/IFtdLFxuICAgIF0sXG4gIH1cbn1cblxuY29uc3QgbG9ja2VkVGFza05hbWVzID0gWydidWlsZCcsICd1cGdyYWRlJywgJ3VwZ3JhZGUtcHJvamVuJywgJ2Nsb2JiZXInLCAncG9zdC11cGdyYWRlJ11cblxuaW50ZXJmYWNlIElMZXJuYVByb2plY3Qge1xuICByZWFkb25seSBzaW5jZUxhc3RSZWxlYXNlOiBib29sZWFuO1xuICByZWFkb25seSB1c2VOeDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaW5kZXBlbmRlbnRNb2RlOiBib29sZWFuO1xuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzOiBib29sZWFuO1xuICByZWFkb25seSBkb2NzRGlyZWN0b3J5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRvY2dlbj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9uczogVGFza0N1c3RvbWl6YXRpb25zO1xuICByZWFkb25seSBwbnBtVmVyc2lvbj86IHN0cmluZztcblxuICBjdXN0b21pemVUYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb246IFRhc2tDdXN0b21pemF0aW9uKTogdm9pZDtcbn1cblxuLyoqXG4gKiBAcGppZCBsZXJuYS1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBMZXJuYVByb2plY3QgZXh0ZW5kcyBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0IGltcGxlbWVudHMgSUxlcm5hUHJvamVjdCB7XG5cbiAgcHJpdmF0ZSBwcm9qZW5yY1RzOiBib29sZWFuXG5cbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nXG4gIHJlYWRvbmx5IGRvY2dlbjogYm9vbGVhblxuICByZWFkb25seSBzaW5jZUxhc3RSZWxlYXNlOiBib29sZWFuXG4gIHJlYWRvbmx5IHVzZU54OiBib29sZWFuXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhblxuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzOiBib29sZWFuXG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9uczogVGFza0N1c3RvbWl6YXRpb25zXG4gIHJlYWRvbmx5IHBucG1WZXJzaW9uPzogc3RyaW5nXG5cbiAgcHJpdmF0ZSByZWFkb25seSBmYWN0b3J5OiBMZXJuYVByb2plY3RGYWN0b3J5XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGVybmFQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKGFwcGVuZFdvcmtmbG93Qm9vdHN0cmFwU3RlcHMob3B0aW9ucykpXG5cbiAgICBpZiAob3B0aW9ucy5wcm9qZW5yY1RzKVxuICAgICAgdGhpcy5hZGREZXZEZXBzKCd0cy1ub2RlJywgJ3R5cGVzY3JpcHQnKVxuXG4gICAgdGhpcy5kb2NzRGlyZWN0b3J5ID0gb3B0aW9ucy5kb2NzRGlyZWN0b3J5ID8/ICdkb2NzJ1xuICAgIHRoaXMuZG9jZ2VuID0gb3B0aW9ucy5kb2NnZW4gPz8gZmFsc2VcbiAgICB0aGlzLnNpbmNlTGFzdFJlbGVhc2UgPSBvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UgPz8gZmFsc2VcbiAgICB0aGlzLnVzZU54ID0gb3B0aW9ucy51c2VOeCA/PyBmYWxzZVxuICAgIHRoaXMucHJvamVucmNUcyA9IG9wdGlvbnMucHJvamVucmNUcyA/PyBmYWxzZVxuICAgIHRoaXMuaW5kZXBlbmRlbnRNb2RlID0gb3B0aW9ucy5pbmRlcGVuZGVudE1vZGUgPz8gZmFsc2VcbiAgICB0aGlzLnVzZVdvcmtzcGFjZXMgPSBvcHRpb25zLnVzZVdvcmtzcGFjZXMgPz8gZmFsc2VcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9ucyA9IG9wdGlvbnMudGFza0N1c3RvbWl6YXRpb25zID8/IHt9XG4gICAgdGhpcy5wbnBtVmVyc2lvbiA9IG9wdGlvbnMucG5wbVZlcnNpb25cblxuICAgIHRoaXMuZmFjdG9yeSA9IG5ldyBMZXJuYVByb2plY3RGYWN0b3J5KHRoaXMpXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGN1c3RvbWl6YXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdGFza1xuICAgKlxuICAgKiBAcGFyYW0gdGFza05hbWUgTmFtZSBvZiB0aGUgdGFzayB0byBjdXN0b21pemVcbiAgICogQHBhcmFtIGN1c3RvbWl6YXRpb24gVGFza0N1c3RvbWl6YXRpb24gb3B0aW9uc1xuICAgKi9cbiAgY3VzdG9taXplVGFzayh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uOiBUYXNrQ3VzdG9taXphdGlvbik6IHZvaWQge1xuICAgIHRoaXMudGFza0N1c3RvbWl6YXRpb25zW3Rhc2tOYW1lXSA9IGN1c3RvbWl6YXRpb25cbiAgfVxuXG4gIHByZVN5bnRoZXNpemUoKSB7XG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpXG4gICAgY29uc3QgcHJvamVuQ29tbWFuZCA9IHRoaXMucHJvamVucmNUcyA/ICd0cy1ub2RlIC0tc2tpcC1wcm9qZWN0IC5wcm9qZW5yYy50cycgOiAnbm9kZSAucHJvamVucmMuanMnXG4gICAgY29uc3Qge2RlZmF1bHRUYXNrfSA9IHRoaXNcbiAgICBpZiAoIWRlZmF1bHRUYXNrKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBkZWZhdWx0IHRhc2snKVxuICAgIGRlZmF1bHRUYXNrLnJlc2V0KHByb2plbkNvbW1hbmQpXG5cbiAgICB0aGlzLmZhY3RvcnkuYnVpbGQoKVxuICB9XG59XG5cbi8qKlxuICogQHBqaWQgbGVybmEtdHMtcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgTGVybmFUeXBlc2NyaXB0UHJvamVjdCBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3QgaW1wbGVtZW50cyBJTGVybmFQcm9qZWN0IHtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhblxuICByZWFkb25seSB1c2VOeDogYm9vbGVhblxuICByZWFkb25seSBpbmRlcGVuZGVudE1vZGU6IGJvb2xlYW5cbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhblxuICByZWFkb25seSB0YXNrQ3VzdG9taXphdGlvbnM6IFRhc2tDdXN0b21pemF0aW9uc1xuICByZWFkb25seSBwbnBtVmVyc2lvbj86IHN0cmluZ1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjdG9yeTogTGVybmFQcm9qZWN0RmFjdG9yeVxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExlcm5hVHlwZXNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwZW5kV29ya2Zsb3dCb290c3RyYXBTdGVwcyhvcHRpb25zKSlcblxuICAgIHRoaXMuc2luY2VMYXN0UmVsZWFzZSA9IG9wdGlvbnMuc2luY2VMYXN0UmVsZWFzZSA/PyBmYWxzZVxuICAgIHRoaXMudXNlTnggPSBvcHRpb25zLnVzZU54ID8/IGZhbHNlXG4gICAgdGhpcy5pbmRlcGVuZGVudE1vZGUgPSBvcHRpb25zLmluZGVwZW5kZW50TW9kZSA/PyBmYWxzZVxuICAgIHRoaXMudXNlV29ya3NwYWNlcyA9IG9wdGlvbnMudXNlV29ya3NwYWNlcyA/PyBmYWxzZVxuICAgIHRoaXMudGFza0N1c3RvbWl6YXRpb25zID0gb3B0aW9ucy50YXNrQ3VzdG9taXphdGlvbnMgPz8ge31cbiAgICB0aGlzLnBucG1WZXJzaW9uID0gb3B0aW9ucy5wbnBtVmVyc2lvblxuXG4gICAgaWYgKCEob3B0aW9ucy5oYXNSb290U291cmNlQ29kZSA/PyBmYWxzZSkpXG4gICAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2NvbXBpbGUnKT8ucmVzZXQoKVxuXG4gICAgdGhpcy50YXNrcy50cnlGaW5kKCdkb2NnZW4nKT8ucmVzZXQoKVxuXG4gICAgdGhpcy5mYWN0b3J5ID0gbmV3IExlcm5hUHJvamVjdEZhY3RvcnkodGhpcylcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY3VzdG9taXphdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0YXNrXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrTmFtZSBOYW1lIG9mIHRoZSB0YXNrIHRvIGN1c3RvbWl6ZVxuICAgKiBAcGFyYW0gY3VzdG9taXphdGlvbiBUYXNrQ3VzdG9taXphdGlvbiBvcHRpb25zXG4gICAqL1xuICBjdXN0b21pemVUYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb246IFRhc2tDdXN0b21pemF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy50YXNrQ3VzdG9taXphdGlvbnNbdGFza05hbWVdID0gY3VzdG9taXphdGlvblxuICB9XG5cbiAgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKClcbiAgICB0aGlzLmZhY3RvcnkuYnVpbGQoKVxuICB9XG59XG5cbmNsYXNzIExlcm5hUHJvamVjdEZhY3Rvcnkge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb2plY3Q6IElMZXJuYVByb2plY3QgJiBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0KSB7XG4gICAgcHJvamVjdC5hZGREZXZEZXBzKCdsZXJuYS1wcm9qZW4nLCAnbGVybmEnKVxuICB9XG5cbiAgYnVpbGQoKSB7XG4gICAgdGhpcy5wcm9qZWN0LnBhY2thZ2VUYXNrLnJlc2V0KGBta2RpciAtcCAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNKYXZhc2NyaXB0RGlyZWN0b3J5fWApXG4gICAgdGhpcy5wcm9qZWN0LnByZUNvbXBpbGVUYXNrLmV4ZWMoYGxlcm5hLXByb2plbiBjbGVhbi1kaXN0ICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX1gKVxuXG4gICAgdGhpcy5zZXR1cFBhY2thZ2VNYW5hZ2VyKClcbiAgICB0aGlzLmFwcGVuZExlcm5hQ29tbWFuZHMoKVxuICAgIHRoaXMuYWRkQ3Jvc3NMaW5rcygpXG4gICAgdGhpcy51cGRhdGVTdWJQcm9qZWN0cygpXG4gICAgdGhpcy5hZGREb2N1bWVudHNJbmRleCgpXG4gIH1cblxuICBwcml2YXRlIHNldHVwUGFja2FnZU1hbmFnZXIoKSB7XG4gICAgaWYgKHRoaXMucHJvamVjdC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyID09PSBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5QTlBNICYmIHRoaXMucHJvamVjdC5wbnBtVmVyc2lvbiA9PT0gJzknKVxuICAgICAgdGhpcy5wcm9qZWN0Lm5wbXJjLmFkZENvbmZpZygnbm9kZS1saW5rZXInLCAnaG9pc3RlZCcpXG4gIH1cblxuICBwcml2YXRlIGdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3Q6IFByb2plY3QpIHtcbiAgICByZXR1cm4gcGF0aC5yZWxhdGl2ZSh0aGlzLnByb2plY3Qub3V0ZGlyLCBzdWJQcm9qZWN0Lm91dGRpcilcbiAgfVxuXG4gIHByaXZhdGUgYWRkQ3Jvc3NMaW5rcygpIHtcblxuICAgIGNvbnN0IGxlcm5hQ29uZmlnOiBhbnkgPSB7XG4gICAgICB1c2VOeDogdGhpcy5wcm9qZWN0LnVzZU54LFxuICAgICAgdmVyc2lvbjogdGhpcy5wcm9qZWN0LmluZGVwZW5kZW50TW9kZSA/ICdpbmRlcGVuZGVudCcgOiAnMC4wLjAnLFxuICAgIH1cblxuICAgIGNvbnN0IHBhY2thZ2VzID0gdGhpcy5wcm9qZWN0LnN1YnByb2plY3RzLm1hcChzdWJQcm9qZWN0ID0+IHRoaXMuZ2V0U3ViUHJvamVjdFBhdGgoc3ViUHJvamVjdCkpXG5cbiAgICBpZiAodGhpcy5wcm9qZWN0LnVzZVdvcmtzcGFjZXMpIHtcbiAgICAgIGlmICh0aGlzLnByb2plY3QucGFja2FnZU1hbmFnZXIgPT09IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0pXG4gICAgICAgIG5ldyBZYW1sRmlsZSh0aGlzLnByb2plY3QsICdwbnBtLXdvcmtzcGFjZS55YW1sJywge1xuICAgICAgICAgIG9iajoge1xuICAgICAgICAgICAgcGFja2FnZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlLmFkZEZpZWxkKCd3b3Jrc3BhY2VzJywgcGFja2FnZXMpXG4gICAgfSBlbHNlIHtsZXJuYUNvbmZpZy5wYWNrYWdlcyA9IHBhY2thZ2VzfVxuXG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcy5wcm9qZWN0LCAnbGVybmEuanNvbicsIHtcbiAgICAgIG9iajogbGVybmFDb25maWcsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kTGVybmFDb21tYW5kcygpIHtcbiAgICBjb25zdCB1cGdyYWRlVGFza05hbWUgPSAndXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2tOYW1lID0gJ3Bvc3QtdXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChwb3N0VXBncmFkZVRhc2tOYW1lKVxuICAgIHBvc3RVcGdyYWRlVGFzaz8ucHJlcGVuZEV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodXBncmFkZVRhc2tOYW1lLCB7c2luY2VMYXN0UmVsZWFzZTogZmFsc2V9KSlcbiAgICBwb3N0VXBncmFkZVRhc2s/LmV4ZWMoJ25weCBwcm9qZW4nKVxuXG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLmFsbFxuICAgICAgLmZvckVhY2godGFzayA9PiB7XG4gICAgICAgIGNvbnN0IGN1c3RvbWl6YXRpb24gPSB0aGlzLnByb2plY3QudGFza0N1c3RvbWl6YXRpb25zW3Rhc2submFtZV1cbiAgICAgICAgY29uc3QgYWRkTGVybmFTdGVwID0gY3VzdG9taXphdGlvbj8uYWRkTGVybmFTdGVwID8/IHRydWVcblxuICAgICAgICBpZiAobG9ja2VkVGFza05hbWVzLmluY2x1ZGVzKHRhc2submFtZSkgfHwgIWFkZExlcm5hU3RlcClcbiAgICAgICAgICByZXR1cm5cblxuICAgICAgICB0YXNrLmV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodGFzay5uYW1lLCBjdXN0b21pemF0aW9uKSlcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGdldExlcm5hQ29tbWFuZCh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uPzogVGFza0N1c3RvbWl6YXRpb24pIHtcbiAgICBjb25zdCBtYWluQ29tbWFuZCA9IGBsZXJuYSBydW4gJHt0YXNrTmFtZX0gLS1zdHJlYW1gXG4gICAgY29uc3QgdXNlU2luY2VGbGFnID0gY3VzdG9taXphdGlvbj8uc2luY2VMYXN0UmVsZWFzZSA/PyB0aGlzLnByb2plY3Quc2luY2VMYXN0UmVsZWFzZVxuXG4gICAgY29uc3QgaW5jbHVkZVBhdHRlcm5zID0gY3VzdG9taXphdGlvbj8uaW5jbHVkZSA/PyBbXVxuICAgIGNvbnN0IGV4Y2x1ZGVQYXR0ZXJucyA9IGN1c3RvbWl6YXRpb24/LmV4Y2x1ZGUgPz8gW11cblxuICAgIGNvbnN0IHNjb3BlRmxhZ3MgPSBpbmNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0tc2NvcGUgJHtnbG9ifWApLmpvaW4oJycpXG4gICAgY29uc3QgaWdub3JlRmxhZ3MgPSBleGNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0taWdub3JlICR7Z2xvYn1gKS5qb2luKCcnKVxuXG5cbiAgICBjb25zdCBwb3N0Q29tbWFuZCA9IHVzZVNpbmNlRmxhZyA/ICcgLS1zaW5jZSAkKGdpdCBkZXNjcmliZSAtLWFiYnJldj0wIC0tdGFncyAtLW1hdGNoIFwidipcIiknIDogJydcbiAgICByZXR1cm4gYCR7bWFpbkNvbW1hbmR9JHtwb3N0Q29tbWFuZH0ke3Njb3BlRmxhZ3N9JHtpZ25vcmVGbGFnc31gXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN1YlByb2plY3RzKCkge1xuICAgIGNvbnN0IGJ1bXBUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ2J1bXAnKVxuICAgIGNvbnN0IHVuYnVtcFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgndW5idW1wJylcblxuICAgIHRoaXMucHJvamVjdC5zdWJwcm9qZWN0cy5mb3JFYWNoKChzdWJQcm9qZWN0KSA9PiB7XG4gICAgICBjb25zdCBzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeSA9IGdldERvY3NEaXJlY3Rvcnkoc3ViUHJvamVjdClcbiAgICAgIGNvbnN0IHN1YlByb2plY3RQYXRoID0gdGhpcy5nZXRTdWJQcm9qZWN0UGF0aChzdWJQcm9qZWN0KVxuICAgICAgaWYgKHRoaXMucHJvamVjdC5kb2NnZW4gJiYgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkpXG4gICAgICAgIHRoaXMucHJvamVjdC5wb3N0Q29tcGlsZVRhc2suZXhlYyhgbGVybmEtcHJvamVuIG1vdmUtZG9jcyAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fSAke3N1YlByb2plY3RQYXRofSAke3N1YlByb2plY3REb2NzRGlyZWN0b3J5fWApXG5cbiAgICAgIGNvbnN0IHBhY2thZ2VBbGxUYXNrID0gc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCdwYWNrYWdlLWFsbCcpXG5cbiAgICAgIGlmIChwYWNrYWdlQWxsVGFzaylcbiAgICAgICAgc3ViUHJvamVjdC5wYWNrYWdlVGFzay5zcGF3bihwYWNrYWdlQWxsVGFzaylcblxuICAgICAgY29uc3QgYXJ0aWZhY3RzRGlyZWN0b3J5ID0gZ2V0QXJ0aWZhY3RzRGlyZWN0b3J5KHN1YlByb2plY3QpXG5cbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gY29weS1kaXN0ICR7c3ViUHJvamVjdFBhdGh9LyR7YXJ0aWZhY3RzRGlyZWN0b3J5fSAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNEaXJlY3Rvcnl9YClcblxuICAgICAgc3ViUHJvamVjdC5kZWZhdWx0VGFzaz8ucmVzZXQoKVxuXG4gICAgICBjb25zdCBidW1wRW52cyA9IHtcbiAgICAgICAgT1VURklMRTogJ3BhY2thZ2UuanNvbicsXG4gICAgICAgIENIQU5HRUxPRzogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS9jaGFuZ2Vsb2cubWRgLFxuICAgICAgICBCVU1QRklMRTogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS92ZXJzaW9uLnR4dGAsXG4gICAgICAgIFJFTEVBU0VUQUc6IGAke2FydGlmYWN0c0RpcmVjdG9yeX0vcmVsZWFzZXRhZy50eHRgLFxuICAgICAgICBSRUxFQVNFX1RBR19QUkVGSVg6ICcnLFxuICAgICAgfVxuXG4gICAgICBpZiAoYnVtcFRhc2sgJiYgIXN1YlByb2plY3QudGFza3MudHJ5RmluZCgnYnVtcCcpKSB7XG4gICAgICAgIGNvbnN0IHN1YkJ1bXBUYXNrID0gc3ViUHJvamVjdC5hZGRUYXNrKGJ1bXBUYXNrLm5hbWUsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYnVtcFRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgICAgY29uZGl0aW9uOiBidW1wVGFzay5jb25kaXRpb24sXG4gICAgICAgICAgZW52OiBidW1wRW52cyxcbiAgICAgICAgfSlcbiAgICAgICAgc3ViQnVtcFRhc2suYnVpbHRpbigncmVsZWFzZS9idW1wLXZlcnNpb24nKVxuICAgICAgfVxuXG4gICAgICBpZiAodW5idW1wVGFzayAmJiAhc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCd1bmJ1bXAnKSkge1xuICAgICAgICBjb25zdCBzdWJCdW1wVGFzayA9IHN1YlByb2plY3QuYWRkVGFzayh1bmJ1bXBUYXNrLm5hbWUsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdW5idW1wVGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgICBjb25kaXRpb246IHVuYnVtcFRhc2suY29uZGl0aW9uLFxuICAgICAgICAgIGVudjogYnVtcEVudnMsXG4gICAgICAgIH0pXG4gICAgICAgIHN1YkJ1bXBUYXNrLmJ1aWx0aW4oJ3JlbGVhc2UvcmVzZXQtdmVyc2lvbicpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYWRkRG9jdW1lbnRzSW5kZXgoKSB7XG4gICAgaWYgKCF0aGlzLnByb2plY3QuZG9jZ2VuKVxuICAgICAgcmV0dXJuXG5cbiAgICBjb25zdCBzdWJQcm9qZWN0c0RvY3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuXG4gICAgY29uc3QgaW5kZXhNYXJrZG93biA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L2luZGV4Lm1kYClcbiAgICBjb25zdCByZWFkbWVNYXJrZG93biA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L1JFQURNRS5tZGApXG5cbiAgICB0aGlzLnByb2plY3Quc3VicHJvamVjdHMuZm9yRWFjaCgoc3ViUHJvamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpXG4gICAgICBpZiAoIXN1YlByb2plY3REb2NzRGlyZWN0b3J5KVxuICAgICAgICByZXR1cm5cblxuICAgICAgY29uc3Qgc3ViUHJvamVjdFBhdGggPSB0aGlzLmdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3QpXG4gICAgICBjb25zdCBqc2lpRG9jc091dHB1dCA9IGV4dHJhY3RKc2lpRG9jc091dHB1dChzdWJQcm9qZWN0LnRhc2tzKVxuICAgICAgaWYgKGpzaWlEb2NzT3V0cHV0KSB7XG4gICAgICAgIGNvbnN0IGRvY3NQYXRoID0gYCR7c3ViUHJvamVjdFBhdGh9LyR7anNpaURvY3NPdXRwdXR9YFxuICAgICAgICBpbmRleE1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oJHtkb2NzUGF0aH0pYClcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBkb2NzUGF0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBgJHtzdWJQcm9qZWN0UGF0aH0vaW5kZXguaHRtbGBcbiAgICAgIH1cbiAgICAgIHJlYWRtZU1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oLi4vJHtzdWJQcm9qZWN0UGF0aH0vUkVBRE1FLm1kKWApXG4gICAgfSlcblxuICAgIGNvbnN0IGluZGV4SHRtbCA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L2luZGV4Lmh0bWxgKVxuICAgIGluZGV4SHRtbC5saW5lKCc8IURPQ1RZUEUgaHRtbD4nKVxuICAgIGluZGV4SHRtbC5saW5lKCc8aHRtbD4nKVxuICAgIGluZGV4SHRtbC5vcGVuKCc8Ym9keT4nKVxuICAgIGluZGV4SHRtbC5vcGVuKCc8dWw+JylcbiAgICBPYmplY3QuZW50cmllcyhzdWJQcm9qZWN0c0RvY3MpLmZvckVhY2goKFtuYW1lLCBkb2NzUGF0aF0pID0+IHtcbiAgICAgIGluZGV4SHRtbC5vcGVuKCc8bGk+JylcbiAgICAgIGluZGV4SHRtbC5vcGVuKGA8YSBocmVmPVwiJHtkb2NzUGF0aH1cIj5gKVxuICAgICAgaW5kZXhIdG1sLmxpbmUobmFtZSlcbiAgICAgIGluZGV4SHRtbC5jbG9zZSgnPC9hPicpXG4gICAgICBpbmRleEh0bWwuY2xvc2UoJzwvbGk+JylcbiAgICB9KVxuICAgIGluZGV4SHRtbC5jbG9zZSgnPC91bD4nKVxuICAgIGluZGV4SHRtbC5jbG9zZSgnPC9ib2R5PicpXG4gICAgaW5kZXhIdG1sLmxpbmUoJzwvaHRtbD4nKVxuICAgIGluZGV4SHRtbC5saW5lKClcblxuICAgIHRoaXMucHJvamVjdC5naXRhdHRyaWJ1dGVzLmFkZEF0dHJpYnV0ZXMoYC8ke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS8qKmAsICdsaW5ndWlzdC1nZW5lcmF0ZWQnKVxuICB9XG59Il19
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUE0QjtBQUM1QixtQ0FBNkY7QUFHN0YsMENBQXVCO0FBQ3ZCLG1DQUFnQztBQUVoQyxTQUFTLGdCQUFnQixDQUFDLE9BQWdCO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxPQUFnQjtJQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3BGLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLGdDQUFnQyxDQUFBO0FBRXhELFNBQVMscUJBQXFCLENBQUMsS0FBWTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN0RyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7UUFDbkMsT0FBTTtJQUVSLE1B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LCBqYXZhc2NyaXB0LCBQcm9qZWN0LCBUYXNrcywgU291cmNlQ29kZSwgdHlwZXNjcmlwdCwgWWFtbEZpbGV9IGZyb20gJ3Byb2plbidcbmltcG9ydCB7TGVybmFQcm9qZWN0T3B0aW9ucywgTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMsIFRhc2tDdXN0b21pemF0aW9uLCBUYXNrQ3VzdG9taXphdGlvbnN9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnXG5leHBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJ1xuXG5mdW5jdGlvbiBnZXREb2NzRGlyZWN0b3J5KHByb2plY3Q6IFByb2plY3QpIHtcbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocHJvamVjdCkuZmluZCgoW2tleV0pID0+IGtleSA9PT0gJ2RvY3NEaXJlY3RvcnknKVxuICByZXR1cm4gcmVzdWx0Py5bMV0ucmVwbGFjZSgvXFwvJC8sICcnKVxufVxuXG5mdW5jdGlvbiBnZXRBcnRpZmFjdHNEaXJlY3RvcnkocHJvamVjdDogUHJvamVjdCkge1xuICBjb25zdCByZXN1bHQgPSBPYmplY3QuZW50cmllcyhwcm9qZWN0KS5maW5kKChba2V5XSkgPT4ga2V5ID09PSAnYXJ0aWZhY3RzRGlyZWN0b3J5JylcbiAgcmV0dXJuIHJlc3VsdD8uWzFdXG59XG5cbmNvbnN0IGpzaWlUYXNrUGF0dGVybiA9IC9qc2lpLWRvY2dlbiAtbyAoPzxvdXRwdXQ+LispJC9pXG5cbmZ1bmN0aW9uIGV4dHJhY3RKc2lpRG9jc091dHB1dCh0YXNrczogVGFza3MpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBqc2lpRG9jU3RlcCA9IHRhc2tzLnRyeUZpbmQoJ2RvY2dlbicpPy5zdGVwcy5maW5kKHN0ZXAgPT4ganNpaVRhc2tQYXR0ZXJuLnRlc3Qoc3RlcC5leGVjID8/ICcnKSlcbiAgaWYgKCFqc2lpRG9jU3RlcCB8fCAhanNpaURvY1N0ZXAuZXhlYylcbiAgICByZXR1cm5cblxuICBjb25zdCBtYXRjaCA9IGpzaWlEb2NTdGVwLmV4ZWMubWF0Y2goanNpaVRhc2tQYXR0ZXJuKVxuICByZXR1cm4gbWF0Y2g/Lmdyb3Vwcz8ub3V0cHV0XG59XG5cbmZ1bmN0aW9uIGFwcGVuZFdvcmtmbG93Qm9vdHN0cmFwU3RlcHM8VCBleHRlbmRzIExlcm5hUHJvamVjdE9wdGlvbnMgfCBMZXJuYVR5cGVzY3JpcHRQcm9qZWN0T3B0aW9ucz4ob3B0aW9uczogVCk6IFQge1xuICBpZiAoIW9wdGlvbnMuc2luY2VMYXN0UmVsZWFzZSlcbiAgICByZXR1cm4gb3B0aW9uc1xuXG4gIHJldHVybiB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICB3b3JrZmxvd0Jvb3RzdHJhcFN0ZXBzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdGZXRjaCB0YWdzJyxcbiAgICAgICAgcnVuOiAnaWYgWyAkKGdpdCByZXYtcGFyc2UgLS1pcy1zaGFsbG93LXJlcG9zaXRvcnkpICE9IFwiZmFsc2VcIiBdIDsgdGhlbiBnaXQgZmV0Y2ggb3JpZ2luIG1haW4gLS10YWdzIC0tdW5zaGFsbG93OyBmaScsXG4gICAgICAgIGlmOiAnJHt7IGdpdGh1Yi53b3JrZmxvdyA9PSBcXCdidWlsZFxcJyB9fScsXG4gICAgICB9LFxuICAgICAgLi4ub3B0aW9ucy53b3JrZmxvd0Jvb3RzdHJhcFN0ZXBzID8/IFtdLFxuICAgIF0sXG4gIH1cbn1cblxuY29uc3QgbG9ja2VkVGFza05hbWVzID0gWydidWlsZCcsICd1cGdyYWRlJywgJ3VwZ3JhZGUtcHJvamVuJywgJ2Nsb2JiZXInLCAncG9zdC11cGdyYWRlJ11cblxuaW50ZXJmYWNlIElMZXJuYVByb2plY3Qge1xuICByZWFkb25seSBzaW5jZUxhc3RSZWxlYXNlOiBib29sZWFuO1xuICByZWFkb25seSB1c2VOeDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaW5kZXBlbmRlbnRNb2RlOiBib29sZWFuO1xuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzOiBib29sZWFuO1xuICByZWFkb25seSBkb2NzRGlyZWN0b3J5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRvY2dlbj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9uczogVGFza0N1c3RvbWl6YXRpb25zO1xuICByZWFkb25seSBwbnBtVmVyc2lvbj86IHN0cmluZztcblxuICBjdXN0b21pemVUYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb246IFRhc2tDdXN0b21pemF0aW9uKTogdm9pZDtcbn1cblxuLyoqXG4gKiBAcGppZCBsZXJuYS1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBMZXJuYVByb2plY3QgZXh0ZW5kcyBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0IGltcGxlbWVudHMgSUxlcm5hUHJvamVjdCB7XG5cbiAgcHJpdmF0ZSBwcm9qZW5yY1RzOiBib29sZWFuXG5cbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nXG4gIHJlYWRvbmx5IGRvY2dlbjogYm9vbGVhblxuICByZWFkb25seSBzaW5jZUxhc3RSZWxlYXNlOiBib29sZWFuXG4gIHJlYWRvbmx5IHVzZU54OiBib29sZWFuXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhblxuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzOiBib29sZWFuXG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9uczogVGFza0N1c3RvbWl6YXRpb25zXG4gIHJlYWRvbmx5IHBucG1WZXJzaW9uPzogc3RyaW5nXG5cbiAgcHJpdmF0ZSByZWFkb25seSBmYWN0b3J5OiBMZXJuYVByb2plY3RGYWN0b3J5XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGVybmFQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKGFwcGVuZFdvcmtmbG93Qm9vdHN0cmFwU3RlcHMob3B0aW9ucykpXG5cbiAgICBpZiAob3B0aW9ucy5wcm9qZW5yY1RzKVxuICAgICAgdGhpcy5hZGREZXZEZXBzKCd0cy1ub2RlJywgJ3R5cGVzY3JpcHQnKVxuXG4gICAgdGhpcy5kb2NzRGlyZWN0b3J5ID0gb3B0aW9ucy5kb2NzRGlyZWN0b3J5ID8/ICdkb2NzJ1xuICAgIHRoaXMuZG9jZ2VuID0gb3B0aW9ucy5kb2NnZW4gPz8gZmFsc2VcbiAgICB0aGlzLnNpbmNlTGFzdFJlbGVhc2UgPSBvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UgPz8gZmFsc2VcbiAgICB0aGlzLnVzZU54ID0gb3B0aW9ucy51c2VOeCA/PyBmYWxzZVxuICAgIHRoaXMucHJvamVucmNUcyA9IG9wdGlvbnMucHJvamVucmNUcyA/PyBmYWxzZVxuICAgIHRoaXMuaW5kZXBlbmRlbnRNb2RlID0gb3B0aW9ucy5pbmRlcGVuZGVudE1vZGUgPz8gZmFsc2VcbiAgICB0aGlzLnVzZVdvcmtzcGFjZXMgPSBvcHRpb25zLnVzZVdvcmtzcGFjZXMgPz8gZmFsc2VcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9ucyA9IG9wdGlvbnMudGFza0N1c3RvbWl6YXRpb25zID8/IHt9XG4gICAgdGhpcy5wbnBtVmVyc2lvbiA9IG9wdGlvbnMucG5wbVZlcnNpb25cblxuICAgIHRoaXMuZmFjdG9yeSA9IG5ldyBMZXJuYVByb2plY3RGYWN0b3J5KHRoaXMpXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGN1c3RvbWl6YXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdGFza1xuICAgKlxuICAgKiBAcGFyYW0gdGFza05hbWUgTmFtZSBvZiB0aGUgdGFzayB0byBjdXN0b21pemVcbiAgICogQHBhcmFtIGN1c3RvbWl6YXRpb24gVGFza0N1c3RvbWl6YXRpb24gb3B0aW9uc1xuICAgKi9cbiAgY3VzdG9taXplVGFzayh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uOiBUYXNrQ3VzdG9taXphdGlvbik6IHZvaWQge1xuICAgIHRoaXMudGFza0N1c3RvbWl6YXRpb25zW3Rhc2tOYW1lXSA9IGN1c3RvbWl6YXRpb25cbiAgfVxuXG4gIHByZVN5bnRoZXNpemUoKSB7XG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpXG4gICAgY29uc3QgcHJvamVuQ29tbWFuZCA9IHRoaXMucHJvamVucmNUcyA/ICd0cy1ub2RlIC0tc2tpcC1wcm9qZWN0IC5wcm9qZW5yYy50cycgOiAnbm9kZSAucHJvamVucmMuanMnXG4gICAgY29uc3Qge2RlZmF1bHRUYXNrfSA9IHRoaXNcbiAgICBpZiAoIWRlZmF1bHRUYXNrKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBkZWZhdWx0IHRhc2snKVxuICAgIGRlZmF1bHRUYXNrLnJlc2V0KHByb2plbkNvbW1hbmQpXG5cbiAgICB0aGlzLmZhY3RvcnkuYnVpbGQoKVxuICB9XG59XG5cbi8qKlxuICogQHBqaWQgbGVybmEtdHMtcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgTGVybmFUeXBlc2NyaXB0UHJvamVjdCBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3QgaW1wbGVtZW50cyBJTGVybmFQcm9qZWN0IHtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhblxuICByZWFkb25seSB1c2VOeDogYm9vbGVhblxuICByZWFkb25seSBpbmRlcGVuZGVudE1vZGU6IGJvb2xlYW5cbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhblxuICByZWFkb25seSB0YXNrQ3VzdG9taXphdGlvbnM6IFRhc2tDdXN0b21pemF0aW9uc1xuICByZWFkb25seSBwbnBtVmVyc2lvbj86IHN0cmluZ1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjdG9yeTogTGVybmFQcm9qZWN0RmFjdG9yeVxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExlcm5hVHlwZXNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwZW5kV29ya2Zsb3dCb290c3RyYXBTdGVwcyhvcHRpb25zKSlcblxuICAgIHRoaXMuc2luY2VMYXN0UmVsZWFzZSA9IG9wdGlvbnMuc2luY2VMYXN0UmVsZWFzZSA/PyBmYWxzZVxuICAgIHRoaXMudXNlTnggPSBvcHRpb25zLnVzZU54ID8/IGZhbHNlXG4gICAgdGhpcy5pbmRlcGVuZGVudE1vZGUgPSBvcHRpb25zLmluZGVwZW5kZW50TW9kZSA/PyBmYWxzZVxuICAgIHRoaXMudXNlV29ya3NwYWNlcyA9IG9wdGlvbnMudXNlV29ya3NwYWNlcyA/PyBmYWxzZVxuICAgIHRoaXMudGFza0N1c3RvbWl6YXRpb25zID0gb3B0aW9ucy50YXNrQ3VzdG9taXphdGlvbnMgPz8ge31cbiAgICB0aGlzLnBucG1WZXJzaW9uID0gb3B0aW9ucy5wbnBtVmVyc2lvblxuXG4gICAgaWYgKCEob3B0aW9ucy5oYXNSb290U291cmNlQ29kZSA/PyBmYWxzZSkpXG4gICAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2NvbXBpbGUnKT8ucmVzZXQoKVxuXG4gICAgdGhpcy50YXNrcy50cnlGaW5kKCdkb2NnZW4nKT8ucmVzZXQoKVxuXG4gICAgdGhpcy5mYWN0b3J5ID0gbmV3IExlcm5hUHJvamVjdEZhY3RvcnkodGhpcylcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY3VzdG9taXphdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0YXNrXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrTmFtZSBOYW1lIG9mIHRoZSB0YXNrIHRvIGN1c3RvbWl6ZVxuICAgKiBAcGFyYW0gY3VzdG9taXphdGlvbiBUYXNrQ3VzdG9taXphdGlvbiBvcHRpb25zXG4gICAqL1xuICBjdXN0b21pemVUYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb246IFRhc2tDdXN0b21pemF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy50YXNrQ3VzdG9taXphdGlvbnNbdGFza05hbWVdID0gY3VzdG9taXphdGlvblxuICB9XG5cbiAgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKClcbiAgICB0aGlzLmZhY3RvcnkuYnVpbGQoKVxuICB9XG59XG5cbmNsYXNzIExlcm5hUHJvamVjdEZhY3Rvcnkge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb2plY3Q6IElMZXJuYVByb2plY3QgJiBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0KSB7XG4gICAgcHJvamVjdC5hZGREZXZEZXBzKCdsZXJuYS1wcm9qZW4nLCAnbGVybmEnKVxuICB9XG5cbiAgYnVpbGQoKSB7XG4gICAgdGhpcy5wcm9qZWN0LnBhY2thZ2VUYXNrLnJlc2V0KGBta2RpciAtcCAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNKYXZhc2NyaXB0RGlyZWN0b3J5fWApXG4gICAgdGhpcy5wcm9qZWN0LnByZUNvbXBpbGVUYXNrLmV4ZWMoYGxlcm5hLXByb2plbiBjbGVhbi1kaXN0ICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX1gKVxuXG4gICAgdGhpcy5zZXR1cFBhY2thZ2VNYW5hZ2VyKClcbiAgICB0aGlzLmFwcGVuZExlcm5hQ29tbWFuZHMoKVxuICAgIHRoaXMuYWRkQ3Jvc3NMaW5rcygpXG4gICAgdGhpcy51cGRhdGVTdWJQcm9qZWN0cygpXG4gICAgdGhpcy5hZGREb2N1bWVudHNJbmRleCgpXG4gIH1cblxuICBwcml2YXRlIHNldHVwUGFja2FnZU1hbmFnZXIoKSB7XG4gICAgaWYgKHRoaXMucHJvamVjdC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyID09PSBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5QTlBNICYmIHRoaXMucHJvamVjdC5wbnBtVmVyc2lvbiA9PT0gJzknKVxuICAgICAgdGhpcy5wcm9qZWN0Lm5wbXJjLmFkZENvbmZpZygnbm9kZS1saW5rZXInLCAnaG9pc3RlZCcpXG4gIH1cblxuICBwcml2YXRlIGdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3Q6IFByb2plY3QpIHtcbiAgICByZXR1cm4gcGF0aC5yZWxhdGl2ZSh0aGlzLnByb2plY3Qub3V0ZGlyLCBzdWJQcm9qZWN0Lm91dGRpcilcbiAgfVxuXG4gIHByaXZhdGUgYWRkQ3Jvc3NMaW5rcygpIHtcblxuICAgIGNvbnN0IGxlcm5hQ29uZmlnOiBhbnkgPSB7XG4gICAgICB1c2VOeDogdGhpcy5wcm9qZWN0LnVzZU54LFxuICAgICAgdmVyc2lvbjogdGhpcy5wcm9qZWN0LmluZGVwZW5kZW50TW9kZSA/ICdpbmRlcGVuZGVudCcgOiAnMC4wLjAnLFxuICAgIH1cblxuICAgIGNvbnN0IHBhY2thZ2VzID0gdGhpcy5wcm9qZWN0LnN1YnByb2plY3RzLm1hcChzdWJQcm9qZWN0ID0+IHRoaXMuZ2V0U3ViUHJvamVjdFBhdGgoc3ViUHJvamVjdCkpXG5cbiAgICBpZiAodGhpcy5wcm9qZWN0LnVzZVdvcmtzcGFjZXMpIHtcbiAgICAgIGlmICh0aGlzLnByb2plY3QucGFja2FnZU1hbmFnZXIgPT09IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0pXG4gICAgICAgIG5ldyBZYW1sRmlsZSh0aGlzLnByb2plY3QsICdwbnBtLXdvcmtzcGFjZS55YW1sJywge1xuICAgICAgICAgIG9iajoge1xuICAgICAgICAgICAgcGFja2FnZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlLmFkZEZpZWxkKCd3b3Jrc3BhY2VzJywgcGFja2FnZXMpXG4gICAgfSBlbHNlIHtsZXJuYUNvbmZpZy5wYWNrYWdlcyA9IHBhY2thZ2VzfVxuXG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcy5wcm9qZWN0LCAnbGVybmEuanNvbicsIHtcbiAgICAgIG9iajogbGVybmFDb25maWcsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kTGVybmFDb21tYW5kcygpIHtcbiAgICBjb25zdCB1cGdyYWRlVGFza05hbWUgPSAndXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2tOYW1lID0gJ3Bvc3QtdXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChwb3N0VXBncmFkZVRhc2tOYW1lKVxuICAgIHBvc3RVcGdyYWRlVGFzaz8ucHJlcGVuZEV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodXBncmFkZVRhc2tOYW1lLCB7c2luY2VMYXN0UmVsZWFzZTogZmFsc2V9KSlcbiAgICBwb3N0VXBncmFkZVRhc2s/LmV4ZWMoJ25weCBwcm9qZW4nKVxuXG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLmFsbFxuICAgICAgLmZvckVhY2godGFzayA9PiB7XG4gICAgICAgIGNvbnN0IGN1c3RvbWl6YXRpb24gPSB0aGlzLnByb2plY3QudGFza0N1c3RvbWl6YXRpb25zW3Rhc2submFtZV1cbiAgICAgICAgY29uc3QgYWRkTGVybmFTdGVwID0gY3VzdG9taXphdGlvbj8uYWRkTGVybmFTdGVwID8/IHRydWVcblxuICAgICAgICBpZiAobG9ja2VkVGFza05hbWVzLmluY2x1ZGVzKHRhc2submFtZSkgfHwgIWFkZExlcm5hU3RlcClcbiAgICAgICAgICByZXR1cm5cblxuICAgICAgICB0YXNrLmV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodGFzay5uYW1lLCBjdXN0b21pemF0aW9uKSlcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGdldExlcm5hQ29tbWFuZCh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uPzogVGFza0N1c3RvbWl6YXRpb24pIHtcbiAgICBjb25zdCBtYWluQ29tbWFuZCA9IGBsZXJuYSBydW4gJHt0YXNrTmFtZX0gLS1zdHJlYW1gXG4gICAgY29uc3QgdXNlU2luY2VGbGFnID0gY3VzdG9taXphdGlvbj8uc2luY2VMYXN0UmVsZWFzZSA/PyB0aGlzLnByb2plY3Quc2luY2VMYXN0UmVsZWFzZVxuXG4gICAgY29uc3QgaW5jbHVkZVBhdHRlcm5zID0gY3VzdG9taXphdGlvbj8uaW5jbHVkZSA/PyBbXVxuICAgIGNvbnN0IGV4Y2x1ZGVQYXR0ZXJucyA9IGN1c3RvbWl6YXRpb24/LmV4Y2x1ZGUgPz8gW11cblxuICAgIGNvbnN0IHNjb3BlRmxhZ3MgPSBpbmNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0tc2NvcGUgJHtnbG9ifWApLmpvaW4oJycpXG4gICAgY29uc3QgaWdub3JlRmxhZ3MgPSBleGNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0taWdub3JlICR7Z2xvYn1gKS5qb2luKCcnKVxuXG5cbiAgICBjb25zdCBwb3N0Q29tbWFuZCA9IHVzZVNpbmNlRmxhZyA/ICcgLS1zaW5jZSAkKGdpdCBkZXNjcmliZSAtLWFiYnJldj0wIC0tdGFncyAtLW1hdGNoIFwidipcIiBIRUFEXiknIDogJydcbiAgICByZXR1cm4gYCR7bWFpbkNvbW1hbmR9JHtwb3N0Q29tbWFuZH0ke3Njb3BlRmxhZ3N9JHtpZ25vcmVGbGFnc31gXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN1YlByb2plY3RzKCkge1xuICAgIGNvbnN0IGJ1bXBUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ2J1bXAnKVxuICAgIGNvbnN0IHVuYnVtcFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgndW5idW1wJylcblxuICAgIHRoaXMucHJvamVjdC5zdWJwcm9qZWN0cy5mb3JFYWNoKChzdWJQcm9qZWN0KSA9PiB7XG4gICAgICBjb25zdCBzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeSA9IGdldERvY3NEaXJlY3Rvcnkoc3ViUHJvamVjdClcbiAgICAgIGNvbnN0IHN1YlByb2plY3RQYXRoID0gdGhpcy5nZXRTdWJQcm9qZWN0UGF0aChzdWJQcm9qZWN0KVxuICAgICAgaWYgKHRoaXMucHJvamVjdC5kb2NnZW4gJiYgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkpXG4gICAgICAgIHRoaXMucHJvamVjdC5wb3N0Q29tcGlsZVRhc2suZXhlYyhgbGVybmEtcHJvamVuIG1vdmUtZG9jcyAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fSAke3N1YlByb2plY3RQYXRofSAke3N1YlByb2plY3REb2NzRGlyZWN0b3J5fWApXG5cbiAgICAgIGNvbnN0IHBhY2thZ2VBbGxUYXNrID0gc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCdwYWNrYWdlLWFsbCcpXG5cbiAgICAgIGlmIChwYWNrYWdlQWxsVGFzaylcbiAgICAgICAgc3ViUHJvamVjdC5wYWNrYWdlVGFzay5zcGF3bihwYWNrYWdlQWxsVGFzaylcblxuICAgICAgY29uc3QgYXJ0aWZhY3RzRGlyZWN0b3J5ID0gZ2V0QXJ0aWZhY3RzRGlyZWN0b3J5KHN1YlByb2plY3QpXG5cbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gY29weS1kaXN0ICR7c3ViUHJvamVjdFBhdGh9LyR7YXJ0aWZhY3RzRGlyZWN0b3J5fSAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNEaXJlY3Rvcnl9YClcblxuICAgICAgc3ViUHJvamVjdC5kZWZhdWx0VGFzaz8ucmVzZXQoKVxuXG4gICAgICBjb25zdCBidW1wRW52cyA9IHtcbiAgICAgICAgT1VURklMRTogJ3BhY2thZ2UuanNvbicsXG4gICAgICAgIENIQU5HRUxPRzogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS9jaGFuZ2Vsb2cubWRgLFxuICAgICAgICBCVU1QRklMRTogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS92ZXJzaW9uLnR4dGAsXG4gICAgICAgIFJFTEVBU0VUQUc6IGAke2FydGlmYWN0c0RpcmVjdG9yeX0vcmVsZWFzZXRhZy50eHRgLFxuICAgICAgICBSRUxFQVNFX1RBR19QUkVGSVg6ICcnLFxuICAgICAgfVxuXG4gICAgICBpZiAoYnVtcFRhc2sgJiYgIXN1YlByb2plY3QudGFza3MudHJ5RmluZCgnYnVtcCcpKSB7XG4gICAgICAgIGNvbnN0IHN1YkJ1bXBUYXNrID0gc3ViUHJvamVjdC5hZGRUYXNrKGJ1bXBUYXNrLm5hbWUsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYnVtcFRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgICAgY29uZGl0aW9uOiBidW1wVGFzay5jb25kaXRpb24sXG4gICAgICAgICAgZW52OiBidW1wRW52cyxcbiAgICAgICAgfSlcbiAgICAgICAgc3ViQnVtcFRhc2suYnVpbHRpbigncmVsZWFzZS9idW1wLXZlcnNpb24nKVxuICAgICAgfVxuXG4gICAgICBpZiAodW5idW1wVGFzayAmJiAhc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCd1bmJ1bXAnKSkge1xuICAgICAgICBjb25zdCBzdWJCdW1wVGFzayA9IHN1YlByb2plY3QuYWRkVGFzayh1bmJ1bXBUYXNrLm5hbWUsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdW5idW1wVGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgICBjb25kaXRpb246IHVuYnVtcFRhc2suY29uZGl0aW9uLFxuICAgICAgICAgIGVudjogYnVtcEVudnMsXG4gICAgICAgIH0pXG4gICAgICAgIHN1YkJ1bXBUYXNrLmJ1aWx0aW4oJ3JlbGVhc2UvcmVzZXQtdmVyc2lvbicpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYWRkRG9jdW1lbnRzSW5kZXgoKSB7XG4gICAgaWYgKCF0aGlzLnByb2plY3QuZG9jZ2VuKVxuICAgICAgcmV0dXJuXG5cbiAgICBjb25zdCBzdWJQcm9qZWN0c0RvY3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuXG4gICAgY29uc3QgaW5kZXhNYXJrZG93biA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L2luZGV4Lm1kYClcbiAgICBjb25zdCByZWFkbWVNYXJrZG93biA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L1JFQURNRS5tZGApXG5cbiAgICB0aGlzLnByb2plY3Quc3VicHJvamVjdHMuZm9yRWFjaCgoc3ViUHJvamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpXG4gICAgICBpZiAoIXN1YlByb2plY3REb2NzRGlyZWN0b3J5KVxuICAgICAgICByZXR1cm5cblxuICAgICAgY29uc3Qgc3ViUHJvamVjdFBhdGggPSB0aGlzLmdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3QpXG4gICAgICBjb25zdCBqc2lpRG9jc091dHB1dCA9IGV4dHJhY3RKc2lpRG9jc091dHB1dChzdWJQcm9qZWN0LnRhc2tzKVxuICAgICAgaWYgKGpzaWlEb2NzT3V0cHV0KSB7XG4gICAgICAgIGNvbnN0IGRvY3NQYXRoID0gYCR7c3ViUHJvamVjdFBhdGh9LyR7anNpaURvY3NPdXRwdXR9YFxuICAgICAgICBpbmRleE1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oJHtkb2NzUGF0aH0pYClcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBkb2NzUGF0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBgJHtzdWJQcm9qZWN0UGF0aH0vaW5kZXguaHRtbGBcbiAgICAgIH1cbiAgICAgIHJlYWRtZU1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oLi4vJHtzdWJQcm9qZWN0UGF0aH0vUkVBRE1FLm1kKWApXG4gICAgfSlcblxuICAgIGNvbnN0IGluZGV4SHRtbCA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L2luZGV4Lmh0bWxgKVxuICAgIGluZGV4SHRtbC5saW5lKCc8IURPQ1RZUEUgaHRtbD4nKVxuICAgIGluZGV4SHRtbC5saW5lKCc8aHRtbD4nKVxuICAgIGluZGV4SHRtbC5vcGVuKCc8Ym9keT4nKVxuICAgIGluZGV4SHRtbC5vcGVuKCc8dWw+JylcbiAgICBPYmplY3QuZW50cmllcyhzdWJQcm9qZWN0c0RvY3MpLmZvckVhY2goKFtuYW1lLCBkb2NzUGF0aF0pID0+IHtcbiAgICAgIGluZGV4SHRtbC5vcGVuKCc8bGk+JylcbiAgICAgIGluZGV4SHRtbC5vcGVuKGA8YSBocmVmPVwiJHtkb2NzUGF0aH1cIj5gKVxuICAgICAgaW5kZXhIdG1sLmxpbmUobmFtZSlcbiAgICAgIGluZGV4SHRtbC5jbG9zZSgnPC9hPicpXG4gICAgICBpbmRleEh0bWwuY2xvc2UoJzwvbGk+JylcbiAgICB9KVxuICAgIGluZGV4SHRtbC5jbG9zZSgnPC91bD4nKVxuICAgIGluZGV4SHRtbC5jbG9zZSgnPC9ib2R5PicpXG4gICAgaW5kZXhIdG1sLmxpbmUoJzwvaHRtbD4nKVxuICAgIGluZGV4SHRtbC5saW5lKClcblxuICAgIHRoaXMucHJvamVjdC5naXRhdHRyaWJ1dGVzLmFkZEF0dHJpYnV0ZXMoYC8ke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS8qKmAsICdsaW5ndWlzdC1nZW5lcmF0ZWQnKVxuICB9XG59Il19
package/package.json CHANGED
@@ -50,7 +50,7 @@
50
50
  "commit-and-tag-version": "^12",
51
51
  "constructs": "^10.4.2",
52
52
  "eslint": "^9",
53
- "eslint-import-resolver-typescript": "^3.6.3",
53
+ "eslint-import-resolver-typescript": "^3.7.0",
54
54
  "eslint-plugin-import": "^2.31.0",
55
55
  "jest": "^29.7.0",
56
56
  "jest-junit": "^15",
@@ -90,7 +90,7 @@
90
90
  "publishConfig": {
91
91
  "access": "public"
92
92
  },
93
- "version": "0.1.528",
93
+ "version": "0.1.530",
94
94
  "jest": {
95
95
  "coverageProvider": "v8",
96
96
  "testMatch": [