lerna-projen 0.0.338 → 0.0.339

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/index.d.ts CHANGED
@@ -1,8 +1,15 @@
1
- import { javascript, Project } from 'projen';
2
- import { LernaProjectOptions } from './types';
1
+ import { javascript, Project, typescript } from 'projen';
2
+ import { LernaProjectOptions, LernaTypescriptProjectOptions } from './types';
3
3
  export * from './types';
4
- export declare class LernaProject extends javascript.NodeProject {
5
- private subProjects;
4
+ interface ILernaProject {
5
+ readonly sinceLastRelease: boolean;
6
+ readonly useNx: boolean;
7
+ readonly independentMode: boolean;
8
+ readonly useWorkspaces: boolean;
9
+ readonly docsDirectory: string;
10
+ readonly docgen?: boolean;
11
+ }
12
+ export declare class LernaProject extends javascript.NodeProject implements ILernaProject {
6
13
  private projenrcTs;
7
14
  readonly docsDirectory: string;
8
15
  readonly docgen: boolean;
@@ -10,6 +17,7 @@ export declare class LernaProject extends javascript.NodeProject {
10
17
  readonly useNx: boolean;
11
18
  readonly independentMode: boolean;
12
19
  readonly useWorkspaces: boolean;
20
+ private readonly factory;
13
21
  constructor(options: LernaProjectOptions);
14
22
  /**
15
23
  * Adds a sub-project to this project.
@@ -24,11 +32,25 @@ export declare class LernaProject extends javascript.NodeProject {
24
32
  /**
25
33
  * @deprecated This is automatically called when a new project is created with `parent`
26
34
  */
27
- addSubProject(subProject: Project): void;
35
+ addSubProject(_subproject: Project): void;
36
+ preSynthesize(): void;
37
+ }
38
+ export declare class LernaTypescriptProject extends typescript.TypeScriptProject implements ILernaProject {
39
+ readonly sinceLastRelease: boolean;
40
+ readonly useNx: boolean;
41
+ readonly independentMode: boolean;
42
+ readonly useWorkspaces: boolean;
43
+ private readonly factory;
44
+ constructor(options: LernaTypescriptProjectOptions);
45
+ /**
46
+ * Adds a sub-project to this project.
47
+ *
48
+ * This is automatically called when a new project is created with `parent`
49
+ * pointing to this project, so there is no real need to call this manually.
50
+ *
51
+ * @param sub-project The child project to add.
52
+ * @internal
53
+ */
54
+ _addSubProject(subproject: Project): void;
28
55
  preSynthesize(): void;
29
- private addCrossLinks;
30
- private appendLernaCommands;
31
- private getLernaCommand;
32
- private updateSubProjects;
33
- private addDocumentsIndex;
34
56
  }
package/lib/index.js CHANGED
@@ -9,9 +9,9 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
9
9
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
11
  };
12
- var _a;
12
+ var _a, _b;
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.LernaProject = void 0;
14
+ exports.LernaTypescriptProject = exports.LernaProject = void 0;
15
15
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
16
16
  const projen_1 = require("projen");
17
17
  __exportStar(require("./types"), exports);
@@ -34,14 +34,9 @@ function extractJsiiDocsOutput(tasks) {
34
34
  const lockedTaskNames = ['build', 'upgrade', 'upgrade-projen'];
35
35
  class LernaProject extends projen_1.javascript.NodeProject {
36
36
  constructor(options) {
37
- super({
38
- ...options,
39
- jest: false,
40
- });
41
- this.addDevDeps('lerna-projen', 'lerna@5');
37
+ super(options);
42
38
  if (options.projenrcTs)
43
39
  this.addDevDeps('ts-node', 'typescript');
44
- this.subProjects = {};
45
40
  this.docsDirectory = options.docsDirectory ?? 'docs';
46
41
  this.docgen = options.docgen ?? false;
47
42
  this.sinceLastRelease = options.sinceLastRelease ?? false;
@@ -49,6 +44,7 @@ class LernaProject extends projen_1.javascript.NodeProject {
49
44
  this.projenrcTs = options.projenrcTs ?? false;
50
45
  this.independentMode = options.independentMode ?? false;
51
46
  this.useWorkspaces = options.useWorkspaces ?? false;
47
+ this.factory = new LernaProjectFactory(this);
52
48
  }
53
49
  /**
54
50
  * Adds a sub-project to this project.
@@ -61,15 +57,13 @@ class LernaProject extends projen_1.javascript.NodeProject {
61
57
  */
62
58
  _addSubProject(subproject) {
63
59
  super._addSubProject(subproject);
64
- this.addSubProject(subproject);
60
+ this.factory.addSubProject(subproject);
65
61
  }
66
62
  /**
67
63
  * @deprecated This is automatically called when a new project is created with `parent`
68
64
  */
69
- addSubProject(subProject) {
70
- const { outdir } = subProject;
71
- const relativeOutDir = outdir.replace(`${this.outdir}/`, '');
72
- this.subProjects[relativeOutDir] = subProject;
65
+ addSubProject(_subproject) {
66
+ console.warn('LernaProject.addSubProject is deprecated. It is now automatically called when a new project is created with `parent`');
73
67
  }
74
68
  preSynthesize() {
75
69
  super.preSynthesize();
@@ -78,35 +72,83 @@ class LernaProject extends projen_1.javascript.NodeProject {
78
72
  if (!defaultTask)
79
73
  throw new Error('Could not find default task');
80
74
  defaultTask.reset(projenCommand);
81
- this.packageTask.reset(`mkdir -p ${this.artifactsJavascriptDirectory}`);
75
+ this.factory.build();
76
+ }
77
+ }
78
+ exports.LernaProject = LernaProject;
79
+ _a = JSII_RTTI_SYMBOL_1;
80
+ LernaProject[_a] = { fqn: "lerna-projen.LernaProject", version: "0.0.339" };
81
+ class LernaTypescriptProject extends projen_1.typescript.TypeScriptProject {
82
+ constructor(options) {
83
+ super(options);
84
+ this.sinceLastRelease = options.sinceLastRelease ?? false;
85
+ this.useNx = options.useNx ?? false;
86
+ this.independentMode = options.independentMode ?? false;
87
+ this.useWorkspaces = options.useWorkspaces ?? false;
88
+ this.factory = new LernaProjectFactory(this);
89
+ }
90
+ /**
91
+ * Adds a sub-project to this project.
92
+ *
93
+ * This is automatically called when a new project is created with `parent`
94
+ * pointing to this project, so there is no real need to call this manually.
95
+ *
96
+ * @param sub-project The child project to add.
97
+ * @internal
98
+ */
99
+ _addSubProject(subproject) {
100
+ super._addSubProject(subproject);
101
+ this.factory.addSubProject(subproject);
102
+ }
103
+ preSynthesize() {
104
+ super.preSynthesize();
105
+ this.factory.build();
106
+ }
107
+ }
108
+ exports.LernaTypescriptProject = LernaTypescriptProject;
109
+ _b = JSII_RTTI_SYMBOL_1;
110
+ LernaTypescriptProject[_b] = { fqn: "lerna-projen.LernaTypescriptProject", version: "0.0.339" };
111
+ class LernaProjectFactory {
112
+ constructor(project) {
113
+ this.project = project;
114
+ this.subProjects = {};
115
+ project.addDevDeps('lerna-projen', 'lerna@5');
116
+ }
117
+ addSubProject(subProject) {
118
+ const { outdir } = subProject;
119
+ const relativeOutDir = outdir.replace(`${this.project.outdir}/`, '');
120
+ this.subProjects[relativeOutDir] = subProject;
121
+ }
122
+ build() {
123
+ this.project.packageTask.reset(`mkdir -p ${this.project.artifactsJavascriptDirectory}`);
124
+ this.project.preCompileTask.exec(`lerna-projen clean-dist ${this.project.artifactsDirectory}`);
82
125
  this.appendLernaCommands();
83
- this.preCompileTask.exec(`lerna-projen clean-dist ${this.artifactsDirectory}`);
84
126
  this.addCrossLinks();
85
127
  this.updateSubProjects();
86
128
  this.addDocumentsIndex();
87
129
  }
88
130
  addCrossLinks() {
89
131
  const lernaConfig = {
90
- useNx: this.useNx,
91
- version: this.independentMode ? 'independent' : '0.0.0',
132
+ useNx: this.project.useNx,
133
+ version: this.project.independentMode ? 'independent' : '0.0.0',
92
134
  };
93
135
  const packages = Object.keys(this.subProjects);
94
- if (this.useWorkspaces)
95
- this.package.addField('packages', packages);
136
+ if (this.project.useWorkspaces)
137
+ this.project.package.addField('packages', packages);
96
138
  else
97
139
  lernaConfig.packages = packages;
98
- new projen_1.JsonFile(this, 'lerna.json', {
140
+ new projen_1.JsonFile(this.project, 'lerna.json', {
99
141
  obj: lernaConfig,
100
142
  });
101
143
  }
102
144
  appendLernaCommands() {
103
145
  const upgradeTaskName = 'upgrade';
104
146
  const postUpgradeTaskName = 'post-upgrade';
105
- const postUpgradeTask = this.tasks.tryFind(postUpgradeTaskName);
147
+ const postUpgradeTask = this.project.tasks.tryFind(postUpgradeTaskName);
106
148
  postUpgradeTask?.prependExec(this.getLernaCommand(upgradeTaskName, false));
107
149
  postUpgradeTask?.exec('npx projen');
108
150
  postUpgradeTask?.exec(this.getLernaCommand(postUpgradeTaskName));
109
- this.tasks.all
151
+ this.project.tasks.all
110
152
  .forEach(task => {
111
153
  if (lockedTaskNames.includes(task.name) || task.name === postUpgradeTaskName)
112
154
  return;
@@ -115,21 +157,21 @@ class LernaProject extends projen_1.javascript.NodeProject {
115
157
  }
116
158
  getLernaCommand(taskName, useSinceFlag = true) {
117
159
  const mainCommand = `lerna run ${taskName} --stream`;
118
- const postCommand = useSinceFlag && this.sinceLastRelease ? ' --since $(git describe --abbrev=0 --tags --match "v*")' : '';
160
+ const postCommand = useSinceFlag && this.project.sinceLastRelease ? ' --since $(git describe --abbrev=0 --tags --match "v*")' : '';
119
161
  return `${mainCommand}${postCommand}`;
120
162
  }
121
163
  updateSubProjects() {
122
- const bumpTask = this.tasks.tryFind('bump');
123
- const unbumpTask = this.tasks.tryFind('unbump');
164
+ const bumpTask = this.project.tasks.tryFind('bump');
165
+ const unbumpTask = this.project.tasks.tryFind('unbump');
124
166
  Object.entries(this.subProjects).forEach(([subProjectPath, subProject]) => {
125
167
  const subProjectDocsDirectory = getDocsDirectory(subProject);
126
- if (this.docgen && subProjectDocsDirectory)
127
- this.postCompileTask.exec(`lerna-projen move-docs ${this.docsDirectory} ${subProjectPath} ${subProjectDocsDirectory}`);
168
+ if (this.project.docgen && subProjectDocsDirectory)
169
+ this.project.postCompileTask.exec(`lerna-projen move-docs ${this.project.docsDirectory} ${subProjectPath} ${subProjectDocsDirectory}`);
128
170
  const packageAllTask = subProject.tasks.tryFind('package-all');
129
171
  if (packageAllTask)
130
172
  subProject.packageTask.spawn(packageAllTask);
131
173
  const artifactsDirectory = getArtifactsDirectory(subProject);
132
- this.packageTask.exec(`lerna-projen copy-dist ${subProjectPath}/${artifactsDirectory} ${this.artifactsDirectory}`);
174
+ this.project.packageTask.exec(`lerna-projen copy-dist ${subProjectPath}/${artifactsDirectory} ${this.project.artifactsDirectory}`);
133
175
  subProject.defaultTask?.reset();
134
176
  const bumpEnvs = {
135
177
  OUTFILE: 'package.json',
@@ -157,11 +199,11 @@ class LernaProject extends projen_1.javascript.NodeProject {
157
199
  });
158
200
  }
159
201
  addDocumentsIndex() {
160
- if (!this.docgen)
202
+ if (!this.project.docgen)
161
203
  return;
162
204
  const subProjectsDocs = {};
163
- const indexMarkdown = new projen_1.SourceCode(this, `${this.docsDirectory}/index.md`);
164
- const readmeMarkdown = new projen_1.SourceCode(this, `${this.docsDirectory}/README.md`);
205
+ const indexMarkdown = new projen_1.SourceCode(this.project, `${this.project.docsDirectory}/index.md`);
206
+ const readmeMarkdown = new projen_1.SourceCode(this.project, `${this.project.docsDirectory}/README.md`);
165
207
  Object.entries(this.subProjects).forEach(([subProjectPath, subProject]) => {
166
208
  const subProjectDocsDirectory = getDocsDirectory(subProject);
167
209
  if (!subProjectDocsDirectory)
@@ -177,7 +219,7 @@ class LernaProject extends projen_1.javascript.NodeProject {
177
219
  }
178
220
  readmeMarkdown.line(`- ## [${subProject.name}](../${subProjectPath}/README.md)`);
179
221
  });
180
- const indexHtml = new projen_1.SourceCode(this, `${this.docsDirectory}/index.html`);
222
+ const indexHtml = new projen_1.SourceCode(this.project, `${this.project.docsDirectory}/index.html`);
181
223
  indexHtml.line('<!DOCTYPE html>');
182
224
  indexHtml.line('<html>');
183
225
  indexHtml.open('<body>');
@@ -193,10 +235,7 @@ class LernaProject extends projen_1.javascript.NodeProject {
193
235
  indexHtml.close('</body>');
194
236
  indexHtml.line('</html>');
195
237
  indexHtml.line();
196
- this.gitattributes.addAttributes(`/${this.docsDirectory}/**`, 'linguist-generated');
238
+ this.project.gitattributes.addAttributes(`/${this.project.docsDirectory}/**`, 'linguist-generated');
197
239
  }
198
240
  }
199
- exports.LernaProject = LernaProject;
200
- _a = JSII_RTTI_SYMBOL_1;
201
- LernaProject[_a] = { fqn: "lerna-projen.LernaProject", version: "0.0.338" };
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQXVFO0FBR3ZFLDBDQUF1QjtBQUV2QixTQUFTLGdCQUFnQixDQUFDLE9BQWdCO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxPQUFnQjtJQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3BGLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLGdDQUFnQyxDQUFBO0FBRXhELFNBQVMscUJBQXFCLENBQUMsS0FBWTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN0RyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7UUFDbkMsT0FBTTtJQUVSLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENB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QVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN4QixTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN2RCxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ3RCLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFBO1lBQ3BDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDcEIsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN2QixTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzFCLENBQUMsQ0FBQyxDQUFBO1FBQ0YsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN4QixTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDekIsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFBO1FBRWhCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUE7SUFDckYsQ0FBQzs7QUFsTkgsb0NBbU5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtKc29uRmlsZSwgamF2YXNjcmlwdCwgUHJvamVjdCwgVGFza3MsIFNvdXJjZUNvZGV9IGZyb20gJ3Byb2plbidcbmltcG9ydCB7TGVybmFQcm9qZWN0T3B0aW9uc30gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcblxuZnVuY3Rpb24gZ2V0RG9jc0RpcmVjdG9yeShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5lbnRyaWVzKHByb2plY3QpLmZpbmQoKFtrZXldKSA9PiBrZXkgPT09ICdkb2NzRGlyZWN0b3J5JylcbiAgcmV0dXJuIHJlc3VsdD8uWzFdLnJlcGxhY2UoL1xcLyQvLCAnJylcbn1cblxuZnVuY3Rpb24gZ2V0QXJ0aWZhY3RzRGlyZWN0b3J5KHByb2plY3Q6IFByb2plY3QpIHtcbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocHJvamVjdCkuZmluZCgoW2tleV0pID0+IGtleSA9PT0gJ2FydGlmYWN0c0RpcmVjdG9yeScpXG4gIHJldHVybiByZXN1bHQ/LlsxXVxufVxuXG5jb25zdCBqc2lpVGFza1BhdHRlcm4gPSAvanNpaS1kb2NnZW4gLW8gKD88b3V0cHV0Pi4rKSQvaVxuXG5mdW5jdGlvbiBleHRyYWN0SnNpaURvY3NPdXRwdXQodGFza3M6IFRhc2tzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QganNpaURvY1N0ZXAgPSB0YXNrcy50cnlGaW5kKCdkb2NnZW4nKT8uc3RlcHMuZmluZChzdGVwID0+IGpzaWlUYXNrUGF0dGVybi50ZXN0KHN0ZXAuZXhlYyA/PyAnJykpXG4gIGlmICghanNpaURvY1N0ZXAgfHwgIWpzaWlEb2NTdGVwLmV4ZWMpXG4gICAgcmV0dXJuXG5cbiAgY29uc3QgbWF0Y2ggPSBqc2lpRG9jU3RlcC5leGVjLm1hdGNoKGpzaWlUYXNrUGF0dGVybilcbiAgcmV0dXJuIG1hdGNoPy5ncm91cHM/Lm91dHB1dFxufVxuXG5jb25zdCBsb2NrZWRUYXNrTmFtZXMgPSBbJ2J1aWxkJywgJ3VwZ3JhZGUnLCAndXBncmFkZS1wcm9qZW4nXVxuXG5leHBvcnQgY2xhc3MgTGVybmFQcm9qZWN0IGV4dGVuZHMgamF2YXNjcmlwdC5Ob2RlUHJvamVjdCB7XG5cbiAgcHJpdmF0ZSBzdWJQcm9qZWN0czogUmVjb3JkPHN0cmluZywgUHJvamVjdD5cbiAgcHJpdmF0ZSBwcm9qZW5yY1RzOiBib29sZWFuXG5cbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nXG4gIHJlYWRvbmx5IGRvY2dlbjogYm9vbGVhblxuICByZWFkb25seSBzaW5jZUxhc3RSZWxlYXNlOiBib29sZWFuXG4gIHJlYWRvbmx5IHVzZU54OiBib29sZWFuXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhblxuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzOiBib29sZWFuXG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGVybmFQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBqZXN0OiBmYWxzZSxcbiAgICB9KVxuXG4gICAgdGhpcy5hZGREZXZEZXBzKCdsZXJuYS1wcm9qZW4nLCAnbGVybmFANScpXG5cbiAgICBpZiAob3B0aW9ucy5wcm9qZW5yY1RzKVxuICAgICAgdGhpcy5hZGREZXZEZXBzKCd0cy1ub2RlJywgJ3R5cGVzY3JpcHQnKVxuXG4gICAgdGhpcy5zdWJQcm9qZWN0cyA9IHt9XG4gICAgdGhpcy5kb2NzRGlyZWN0b3J5ID0gb3B0aW9ucy5kb2NzRGlyZWN0b3J5ID8/ICdkb2NzJ1xuICAgIHRoaXMuZG9jZ2VuID0gb3B0aW9ucy5kb2NnZW4gPz8gZmFsc2VcbiAgICB0aGlzLnNpbmNlTGFzdFJlbGVhc2UgPSBvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UgPz8gZmFsc2VcbiAgICB0aGlzLnVzZU54ID0gb3B0aW9ucy51c2VOeCA/PyBmYWxzZVxuICAgIHRoaXMucHJvamVucmNUcyA9IG9wdGlvbnMucHJvamVucmNUcyA/PyBmYWxzZVxuICAgIHRoaXMuaW5kZXBlbmRlbnRNb2RlID0gb3B0aW9ucy5pbmRlcGVuZGVudE1vZGUgPz8gZmFsc2VcbiAgICB0aGlzLnVzZVdvcmtzcGFjZXMgPSBvcHRpb25zLnVzZVdvcmtzcGFjZXMgPz8gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3ViLXByb2plY3QgdG8gdGhpcyBwcm9qZWN0LlxuICAgKlxuICAgKiBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgY2FsbGVkIHdoZW4gYSBuZXcgcHJvamVjdCBpcyBjcmVhdGVkIHdpdGggYHBhcmVudGBcbiAgICogcG9pbnRpbmcgdG8gdGhpcyBwcm9qZWN0LCBzbyB0aGVyZSBpcyBubyByZWFsIG5lZWQgdG8gY2FsbCB0aGlzIG1hbnVhbGx5LlxuICAgKlxuICAgKiBAcGFyYW0gc3ViLXByb2plY3QgVGhlIGNoaWxkIHByb2plY3QgdG8gYWRkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9hZGRTdWJQcm9qZWN0KHN1YnByb2plY3Q6IFByb2plY3QpOiB2b2lkIHtcbiAgICBzdXBlci5fYWRkU3ViUHJvamVjdChzdWJwcm9qZWN0KVxuXG4gICAgdGhpcy5hZGRTdWJQcm9qZWN0KHN1YnByb2plY3QpXG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBpcyBhdXRvbWF0aWNhbGx5IGNhbGxlZCB3aGVuIGEgbmV3IHByb2plY3QgaXMgY3JlYXRlZCB3aXRoIGBwYXJlbnRgXG4gICAqL1xuICBhZGRTdWJQcm9qZWN0KHN1YlByb2plY3Q6IFByb2plY3QpIHtcbiAgICBjb25zdCB7b3V0ZGlyfSA9IHN1YlByb2plY3RcblxuICAgIGNvbnN0IHJlbGF0aXZlT3V0RGlyID0gb3V0ZGlyLnJlcGxhY2UoYCR7dGhpcy5vdXRkaXJ9L2AsICcnKVxuXG4gICAgdGhpcy5zdWJQcm9qZWN0c1tyZWxhdGl2ZU91dERpcl0gPSBzdWJQcm9qZWN0XG4gIH1cblxuICBwcmVTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKVxuICAgIGNvbnN0IHByb2plbkNvbW1hbmQgPSB0aGlzLnByb2plbnJjVHMgPyAndHMtbm9kZSAtLXNraXAtcHJvamVjdCAucHJvamVucmMudHMnIDogJ25vZGUgLnByb2plbnJjLmpzJ1xuICAgIGNvbnN0IHtkZWZhdWx0VGFza30gPSB0aGlzXG4gICAgaWYgKCFkZWZhdWx0VGFzaylcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgZGVmYXVsdCB0YXNrJylcbiAgICBkZWZhdWx0VGFzay5yZXNldChwcm9qZW5Db21tYW5kKVxuICAgIHRoaXMucGFja2FnZVRhc2sucmVzZXQoYG1rZGlyIC1wICR7dGhpcy5hcnRpZmFjdHNKYXZhc2NyaXB0RGlyZWN0b3J5fWApXG5cbiAgICB0aGlzLmFwcGVuZExlcm5hQ29tbWFuZHMoKVxuXG4gICAgdGhpcy5wcmVDb21waWxlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gY2xlYW4tZGlzdCAke3RoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5fWApXG5cbiAgICB0aGlzLmFkZENyb3NzTGlua3MoKVxuICAgIHRoaXMudXBkYXRlU3ViUHJvamVjdHMoKVxuICAgIHRoaXMuYWRkRG9jdW1lbnRzSW5kZXgoKVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRDcm9zc0xpbmtzKCkge1xuICAgIGNvbnN0IGxlcm5hQ29uZmlnOiBhbnkgPSB7XG4gICAgICB1c2VOeDogdGhpcy51c2VOeCxcbiAgICAgIHZlcnNpb246IHRoaXMuaW5kZXBlbmRlbnRNb2RlID8gJ2luZGVwZW5kZW50JyA6ICcwLjAuMCcsXG4gICAgfVxuXG4gICAgY29uc3QgcGFja2FnZXMgPSBPYmplY3Qua2V5cyh0aGlzLnN1YlByb2plY3RzKVxuXG4gICAgaWYgKHRoaXMudXNlV29ya3NwYWNlcylcbiAgICAgIHRoaXMucGFja2FnZS5hZGRGaWVsZCgncGFja2FnZXMnLCBwYWNrYWdlcylcbiAgICBlbHNlXG4gICAgICBsZXJuYUNvbmZpZy5wYWNrYWdlcyA9IHBhY2thZ2VzXG5cblxuICAgIG5ldyBKc29uRmlsZSh0aGlzLCAnbGVybmEuanNvbicsIHtcbiAgICAgIG9iajogbGVybmFDb25maWcsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kTGVybmFDb21tYW5kcygpIHtcbiAgICBjb25zdCB1cGdyYWRlVGFza05hbWUgPSAndXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2tOYW1lID0gJ3Bvc3QtdXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2sgPSB0aGlzLnRhc2tzLnRyeUZpbmQocG9zdFVwZ3JhZGVUYXNrTmFtZSlcbiAgICBwb3N0VXBncmFkZVRhc2s/LnByZXBlbmRFeGVjKHRoaXMuZ2V0TGVybmFDb21tYW5kKHVwZ3JhZGVUYXNrTmFtZSwgZmFsc2UpKVxuICAgIHBvc3RVcGdyYWRlVGFzaz8uZXhlYygnbnB4IHByb2plbicpXG4gICAgcG9zdFVwZ3JhZGVUYXNrPy5leGVjKHRoaXMuZ2V0TGVybmFDb21tYW5kKHBvc3RVcGdyYWRlVGFza05hbWUpKVxuXG4gICAgdGhpcy50YXNrcy5hbGxcbiAgICAgIC5mb3JFYWNoKHRhc2sgPT4ge1xuICAgICAgICBpZiAobG9ja2VkVGFza05hbWVzLmluY2x1ZGVzKHRhc2submFtZSkgfHwgdGFzay5uYW1lID09PSBwb3N0VXBncmFkZVRhc2tOYW1lKVxuICAgICAgICAgIHJldHVyblxuXG4gICAgICAgIHRhc2suZXhlYyh0aGlzLmdldExlcm5hQ29tbWFuZCh0YXNrLm5hbWUpKVxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGVybmFDb21tYW5kKHRhc2tOYW1lOiBzdHJpbmcsIHVzZVNpbmNlRmxhZyA9IHRydWUpIHtcbiAgICBjb25zdCBtYWluQ29tbWFuZCA9IGBsZXJuYSBydW4gJHt0YXNrTmFtZX0gLS1zdHJlYW1gXG4gICAgY29uc3QgcG9zdENvbW1hbmQgPSB1c2VTaW5jZUZsYWcgJiYgdGhpcy5zaW5jZUxhc3RSZWxlYXNlID8gJyAtLXNpbmNlICQoZ2l0IGRlc2NyaWJlIC0tYWJicmV2PTAgLS10YWdzIC0tbWF0Y2ggXCJ2KlwiKScgOiAnJ1xuICAgIHJldHVybiBgJHttYWluQ29tbWFuZH0ke3Bvc3RDb21tYW5kfWBcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3ViUHJvamVjdHMoKSB7XG4gICAgY29uc3QgYnVtcFRhc2sgPSB0aGlzLnRhc2tzLnRyeUZpbmQoJ2J1bXAnKVxuICAgIGNvbnN0IHVuYnVtcFRhc2sgPSB0aGlzLnRhc2tzLnRyeUZpbmQoJ3VuYnVtcCcpXG5cbiAgICBPYmplY3QuZW50cmllcyh0aGlzLnN1YlByb2plY3RzKS5mb3JFYWNoKChbc3ViUHJvamVjdFBhdGgsIHN1YlByb2plY3RdKSA9PiB7XG4gICAgICBjb25zdCBzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeSA9IGdldERvY3NEaXJlY3Rvcnkoc3ViUHJvamVjdClcbiAgICAgIGlmICh0aGlzLmRvY2dlbiAmJiBzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeSlcbiAgICAgICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suZXhlYyhgbGVybmEtcHJvamVuIG1vdmUtZG9jcyAke3RoaXMuZG9jc0RpcmVjdG9yeX0gJHtzdWJQcm9qZWN0UGF0aH0gJHtzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeX1gKVxuXG4gICAgICBjb25zdCBwYWNrYWdlQWxsVGFzayA9IHN1YlByb2plY3QudGFza3MudHJ5RmluZCgncGFja2FnZS1hbGwnKVxuXG4gICAgICBpZiAocGFja2FnZUFsbFRhc2spXG4gICAgICAgIHN1YlByb2plY3QucGFja2FnZVRhc2suc3Bhd24ocGFja2FnZUFsbFRhc2spXG5cbiAgICAgIGNvbnN0IGFydGlmYWN0c0RpcmVjdG9yeSA9IGdldEFydGlmYWN0c0RpcmVjdG9yeShzdWJQcm9qZWN0KVxuXG4gICAgICB0aGlzLnBhY2thZ2VUYXNrLmV4ZWMoYGxlcm5hLXByb2plbiBjb3B5LWRpc3QgJHtzdWJQcm9qZWN0UGF0aH0vJHthcnRpZmFjdHNEaXJlY3Rvcnl9ICR7dGhpcy5hcnRpZmFjdHNEaXJlY3Rvcnl9YClcblxuICAgICAgc3ViUHJvamVjdC5kZWZhdWx0VGFzaz8ucmVzZXQoKVxuXG4gICAgICBjb25zdCBidW1wRW52cyA9IHtcbiAgICAgICAgT1VURklMRTogJ3BhY2thZ2UuanNvbicsXG4gICAgICAgIENIQU5HRUxPRzogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS9jaGFuZ2Vsb2cubWRgLFxuICAgICAgICBCVU1QRklMRTogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS92ZXJzaW9uLnR4dGAsXG4gICAgICAgIFJFTEVBU0VUQUc6IGAke2FydGlmYWN0c0RpcmVjdG9yeX0vcmVsZWFzZXRhZy50eHRgLFxuICAgICAgICBSRUxFQVNFX1RBR19QUkVGSVg6ICcnLFxuICAgICAgfVxuXG4gICAgICBpZiAoYnVtcFRhc2spIHtcbiAgICAgICAgY29uc3Qgc3ViQnVtcFRhc2sgPSBzdWJQcm9qZWN0LmFkZFRhc2soYnVtcFRhc2submFtZSwge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBidW1wVGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgICBjb25kaXRpb246IGJ1bXBUYXNrLmNvbmRpdGlvbixcbiAgICAgICAgICBlbnY6IGJ1bXBFbnZzLFxuICAgICAgICB9KVxuICAgICAgICBzdWJCdW1wVGFzay5idWlsdGluKCdyZWxlYXNlL2J1bXAtdmVyc2lvbicpXG4gICAgICB9XG5cbiAgICAgIGlmICh1bmJ1bXBUYXNrKSB7XG4gICAgICAgIGNvbnN0IHN1YkJ1bXBUYXNrID0gc3ViUHJvamVjdC5hZGRUYXNrKHVuYnVtcFRhc2submFtZSwge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiB1bmJ1bXBUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGNvbmRpdGlvbjogdW5idW1wVGFzay5jb25kaXRpb24sXG4gICAgICAgICAgZW52OiBidW1wRW52cyxcbiAgICAgICAgfSlcbiAgICAgICAgc3ViQnVtcFRhc2suYnVpbHRpbigncmVsZWFzZS9yZXNldC12ZXJzaW9uJylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBhZGREb2N1bWVudHNJbmRleCgpIHtcbiAgICBpZiAoIXRoaXMuZG9jZ2VuKVxuICAgICAgcmV0dXJuXG5cbiAgICBjb25zdCBzdWJQcm9qZWN0c0RvY3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuXG4gICAgY29uc3QgaW5kZXhNYXJrZG93biA9IG5ldyBTb3VyY2VDb2RlKHRoaXMsIGAke3RoaXMuZG9jc0RpcmVjdG9yeX0vaW5kZXgubWRgKVxuICAgIGNvbnN0IHJlYWRtZU1hcmtkb3duID0gbmV3IFNvdXJjZUNvZGUodGhpcywgYCR7dGhpcy5kb2NzRGlyZWN0b3J5fS9SRUFETUUubWRgKVxuXG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5zdWJQcm9qZWN0cykuZm9yRWFjaCgoW3N1YlByb2plY3RQYXRoLCBzdWJQcm9qZWN0XSkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpXG4gICAgICBpZiAoIXN1YlByb2plY3REb2NzRGlyZWN0b3J5KVxuICAgICAgICByZXR1cm5cblxuICAgICAgY29uc3QganNpaURvY3NPdXRwdXQgPSBleHRyYWN0SnNpaURvY3NPdXRwdXQoc3ViUHJvamVjdC50YXNrcylcbiAgICAgIGlmIChqc2lpRG9jc091dHB1dCkge1xuICAgICAgICBjb25zdCBwYXRoID0gYCR7c3ViUHJvamVjdFBhdGh9LyR7anNpaURvY3NPdXRwdXR9YFxuICAgICAgICBpbmRleE1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oJHtwYXRofSlgKVxuICAgICAgICBzdWJQcm9qZWN0c0RvY3Nbc3ViUHJvamVjdC5uYW1lXSA9IHBhdGhcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1YlByb2plY3RzRG9jc1tzdWJQcm9qZWN0Lm5hbWVdID0gYCR7c3ViUHJvamVjdFBhdGh9L2luZGV4Lmh0bWxgXG4gICAgICB9XG4gICAgICByZWFkbWVNYXJrZG93bi5saW5lKGAtICMjIFske3N1YlByb2plY3QubmFtZX1dKC4uLyR7c3ViUHJvamVjdFBhdGh9L1JFQURNRS5tZClgKVxuICAgIH0pXG5cbiAgICBjb25zdCBpbmRleEh0bWwgPSBuZXcgU291cmNlQ29kZSh0aGlzLCBgJHt0aGlzLmRvY3NEaXJlY3Rvcnl9L2luZGV4Lmh0bWxgKVxuICAgIGluZGV4SHRtbC5saW5lKCc8IURPQ1RZUEUgaHRtbD4nKVxuICAgIGluZGV4SHRtbC5saW5lKCc8aHRtbD4nKVxuICAgIGluZGV4SHRtbC5vcGVuKCc8Ym9keT4nKVxuICAgIGluZGV4SHRtbC5vcGVuKCc8dWw+JylcbiAgICBPYmplY3QuZW50cmllcyhzdWJQcm9qZWN0c0RvY3MpLmZvckVhY2goKFtuYW1lLCBwYXRoXSkgPT4ge1xuICAgICAgaW5kZXhIdG1sLm9wZW4oJzxsaT4nKVxuICAgICAgaW5kZXhIdG1sLm9wZW4oYDxhIGhyZWY9XCIke3BhdGh9XCI+YClcbiAgICAgIGluZGV4SHRtbC5saW5lKG5hbWUpXG4gICAgICBpbmRleEh0bWwuY2xvc2UoJzwvYT4nKVxuICAgICAgaW5kZXhIdG1sLmNsb3NlKCc8L2xpPicpXG4gICAgfSlcbiAgICBpbmRleEh0bWwuY2xvc2UoJzwvdWw+JylcbiAgICBpbmRleEh0bWwuY2xvc2UoJzwvYm9keT4nKVxuICAgIGluZGV4SHRtbC5saW5lKCc8L2h0bWw+JylcbiAgICBpbmRleEh0bWwubGluZSgpXG5cbiAgICB0aGlzLmdpdGF0dHJpYnV0ZXMuYWRkQXR0cmlidXRlcyhgLyR7dGhpcy5kb2NzRGlyZWN0b3J5fS8qKmAsICdsaW5ndWlzdC1nZW5lcmF0ZWQnKVxuICB9XG59Il19
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQW1GO0FBR25GLDBDQUF1QjtBQUV2QixTQUFTLGdCQUFnQixDQUFDLE9BQWdCO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxPQUFnQjtJQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3BGLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLGdDQUFnQyxDQUFBO0FBRXhELFNBQVMscUJBQXFCLENBQUMsS0FBWTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN0RyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7UUFDbkMsT0FBTTtJQUVSLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENB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LElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQTtJQUNyRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0pzb25GaWxlLCBqYXZhc2NyaXB0LCBQcm9qZWN0LCBUYXNrcywgU291cmNlQ29kZSwgdHlwZXNjcmlwdH0gZnJvbSAncHJvamVuJ1xuaW1wb3J0IHtMZXJuYVByb2plY3RPcHRpb25zLCBMZXJuYVR5cGVzY3JpcHRQcm9qZWN0T3B0aW9uc30gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcblxuZnVuY3Rpb24gZ2V0RG9jc0RpcmVjdG9yeShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5lbnRyaWVzKHByb2plY3QpLmZpbmQoKFtrZXldKSA9PiBrZXkgPT09ICdkb2NzRGlyZWN0b3J5JylcbiAgcmV0dXJuIHJlc3VsdD8uWzFdLnJlcGxhY2UoL1xcLyQvLCAnJylcbn1cblxuZnVuY3Rpb24gZ2V0QXJ0aWZhY3RzRGlyZWN0b3J5KHByb2plY3Q6IFByb2plY3QpIHtcbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocHJvamVjdCkuZmluZCgoW2tleV0pID0+IGtleSA9PT0gJ2FydGlmYWN0c0RpcmVjdG9yeScpXG4gIHJldHVybiByZXN1bHQ/LlsxXVxufVxuXG5jb25zdCBqc2lpVGFza1BhdHRlcm4gPSAvanNpaS1kb2NnZW4gLW8gKD88b3V0cHV0Pi4rKSQvaVxuXG5mdW5jdGlvbiBleHRyYWN0SnNpaURvY3NPdXRwdXQodGFza3M6IFRhc2tzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QganNpaURvY1N0ZXAgPSB0YXNrcy50cnlGaW5kKCdkb2NnZW4nKT8uc3RlcHMuZmluZChzdGVwID0+IGpzaWlUYXNrUGF0dGVybi50ZXN0KHN0ZXAuZXhlYyA/PyAnJykpXG4gIGlmICghanNpaURvY1N0ZXAgfHwgIWpzaWlEb2NTdGVwLmV4ZWMpXG4gICAgcmV0dXJuXG5cbiAgY29uc3QgbWF0Y2ggPSBqc2lpRG9jU3RlcC5leGVjLm1hdGNoKGpzaWlUYXNrUGF0dGVybilcbiAgcmV0dXJuIG1hdGNoPy5ncm91cHM/Lm91dHB1dFxufVxuXG5jb25zdCBsb2NrZWRUYXNrTmFtZXMgPSBbJ2J1aWxkJywgJ3VwZ3JhZGUnLCAndXBncmFkZS1wcm9qZW4nXVxuXG5pbnRlcmZhY2UgSUxlcm5hUHJvamVjdCB7XG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHVzZU54OiBib29sZWFuO1xuICByZWFkb25seSBpbmRlcGVuZGVudE1vZGU6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHVzZVdvcmtzcGFjZXM6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRvY3NEaXJlY3Rvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgZG9jZ2VuPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIExlcm5hUHJvamVjdCBleHRlbmRzIGphdmFzY3JpcHQuTm9kZVByb2plY3QgaW1wbGVtZW50cyBJTGVybmFQcm9qZWN0IHtcblxuICBwcml2YXRlIHByb2plbnJjVHM6IGJvb2xlYW5cblxuICByZWFkb25seSBkb2NzRGlyZWN0b3J5OiBzdHJpbmdcbiAgcmVhZG9ubHkgZG9jZ2VuOiBib29sZWFuXG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U6IGJvb2xlYW5cbiAgcmVhZG9ubHkgdXNlTng6IGJvb2xlYW5cbiAgcmVhZG9ubHkgaW5kZXBlbmRlbnRNb2RlOiBib29sZWFuXG4gIHJlYWRvbmx5IHVzZVdvcmtzcGFjZXM6IGJvb2xlYW5cblxuICBwcml2YXRlIHJlYWRvbmx5IGZhY3Rvcnk6IExlcm5hUHJvamVjdEZhY3RvcnlcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMZXJuYVByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucylcblxuICAgIGlmIChvcHRpb25zLnByb2plbnJjVHMpXG4gICAgICB0aGlzLmFkZERldkRlcHMoJ3RzLW5vZGUnLCAndHlwZXNjcmlwdCcpXG5cbiAgICB0aGlzLmRvY3NEaXJlY3RvcnkgPSBvcHRpb25zLmRvY3NEaXJlY3RvcnkgPz8gJ2RvY3MnXG4gICAgdGhpcy5kb2NnZW4gPSBvcHRpb25zLmRvY2dlbiA/PyBmYWxzZVxuICAgIHRoaXMuc2luY2VMYXN0UmVsZWFzZSA9IG9wdGlvbnMuc2luY2VMYXN0UmVsZWFzZSA/PyBmYWxzZVxuICAgIHRoaXMudXNlTnggPSBvcHRpb25zLnVzZU54ID8/IGZhbHNlXG4gICAgdGhpcy5wcm9qZW5yY1RzID0gb3B0aW9ucy5wcm9qZW5yY1RzID8/IGZhbHNlXG4gICAgdGhpcy5pbmRlcGVuZGVudE1vZGUgPSBvcHRpb25zLmluZGVwZW5kZW50TW9kZSA/PyBmYWxzZVxuICAgIHRoaXMudXNlV29ya3NwYWNlcyA9IG9wdGlvbnMudXNlV29ya3NwYWNlcyA/PyBmYWxzZVxuXG4gICAgdGhpcy5mYWN0b3J5ID0gbmV3IExlcm5hUHJvamVjdEZhY3RvcnkodGhpcylcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3ViLXByb2plY3QgdG8gdGhpcyBwcm9qZWN0LlxuICAgKlxuICAgKiBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgY2FsbGVkIHdoZW4gYSBuZXcgcHJvamVjdCBpcyBjcmVhdGVkIHdpdGggYHBhcmVudGBcbiAgICogcG9pbnRpbmcgdG8gdGhpcyBwcm9qZWN0LCBzbyB0aGVyZSBpcyBubyByZWFsIG5lZWQgdG8gY2FsbCB0aGlzIG1hbnVhbGx5LlxuICAgKlxuICAgKiBAcGFyYW0gc3ViLXByb2plY3QgVGhlIGNoaWxkIHByb2plY3QgdG8gYWRkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9hZGRTdWJQcm9qZWN0KHN1YnByb2plY3Q6IFByb2plY3QpOiB2b2lkIHtcbiAgICBzdXBlci5fYWRkU3ViUHJvamVjdChzdWJwcm9qZWN0KVxuICAgIHRoaXMuZmFjdG9yeS5hZGRTdWJQcm9qZWN0KHN1YnByb2plY3QpXG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBpcyBhdXRvbWF0aWNhbGx5IGNhbGxlZCB3aGVuIGEgbmV3IHByb2plY3QgaXMgY3JlYXRlZCB3aXRoIGBwYXJlbnRgXG4gICAqL1xuICBhZGRTdWJQcm9qZWN0KF9zdWJwcm9qZWN0OiBQcm9qZWN0KSB7XG4gICAgY29uc29sZS53YXJuKCdMZXJuYVByb2plY3QuYWRkU3ViUHJvamVjdCBpcyBkZXByZWNhdGVkLiBJdCBpcyBub3cgYXV0b21hdGljYWxseSBjYWxsZWQgd2hlbiBhIG5ldyBwcm9qZWN0IGlzIGNyZWF0ZWQgd2l0aCBgcGFyZW50YCcpXG4gIH1cblxuICBwcmVTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKVxuICAgIGNvbnN0IHByb2plbkNvbW1hbmQgPSB0aGlzLnByb2plbnJjVHMgPyAndHMtbm9kZSAtLXNraXAtcHJvamVjdCAucHJvamVucmMudHMnIDogJ25vZGUgLnByb2plbnJjLmpzJ1xuICAgIGNvbnN0IHtkZWZhdWx0VGFza30gPSB0aGlzXG4gICAgaWYgKCFkZWZhdWx0VGFzaylcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgZGVmYXVsdCB0YXNrJylcbiAgICBkZWZhdWx0VGFzay5yZXNldChwcm9qZW5Db21tYW5kKVxuXG4gICAgdGhpcy5mYWN0b3J5LmJ1aWxkKClcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGVybmFUeXBlc2NyaXB0UHJvamVjdCBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3QgaW1wbGVtZW50cyBJTGVybmFQcm9qZWN0IHtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhblxuICByZWFkb25seSB1c2VOeDogYm9vbGVhblxuICByZWFkb25seSBpbmRlcGVuZGVudE1vZGU6IGJvb2xlYW5cbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhblxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjdG9yeTogTGVybmFQcm9qZWN0RmFjdG9yeVxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExlcm5hVHlwZXNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucylcblxuICAgIHRoaXMuc2luY2VMYXN0UmVsZWFzZSA9IG9wdGlvbnMuc2luY2VMYXN0UmVsZWFzZSA/PyBmYWxzZVxuICAgIHRoaXMudXNlTnggPSBvcHRpb25zLnVzZU54ID8/IGZhbHNlXG4gICAgdGhpcy5pbmRlcGVuZGVudE1vZGUgPSBvcHRpb25zLmluZGVwZW5kZW50TW9kZSA/PyBmYWxzZVxuICAgIHRoaXMudXNlV29ya3NwYWNlcyA9IG9wdGlvbnMudXNlV29ya3NwYWNlcyA/PyBmYWxzZVxuXG4gICAgdGhpcy5mYWN0b3J5ID0gbmV3IExlcm5hUHJvamVjdEZhY3RvcnkodGhpcylcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3ViLXByb2plY3QgdG8gdGhpcyBwcm9qZWN0LlxuICAgKlxuICAgKiBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgY2FsbGVkIHdoZW4gYSBuZXcgcHJvamVjdCBpcyBjcmVhdGVkIHdpdGggYHBhcmVudGBcbiAgICogcG9pbnRpbmcgdG8gdGhpcyBwcm9qZWN0LCBzbyB0aGVyZSBpcyBubyByZWFsIG5lZWQgdG8gY2FsbCB0aGlzIG1hbnVhbGx5LlxuICAgKlxuICAgKiBAcGFyYW0gc3ViLXByb2plY3QgVGhlIGNoaWxkIHByb2plY3QgdG8gYWRkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9hZGRTdWJQcm9qZWN0KHN1YnByb2plY3Q6IFByb2plY3QpOiB2b2lkIHtcbiAgICBzdXBlci5fYWRkU3ViUHJvamVjdChzdWJwcm9qZWN0KVxuXG4gICAgdGhpcy5mYWN0b3J5LmFkZFN1YlByb2plY3Qoc3VicHJvamVjdClcbiAgfVxuXG4gIHByZVN5bnRoZXNpemUoKSB7XG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpXG4gICAgdGhpcy5mYWN0b3J5LmJ1aWxkKClcbiAgfVxufVxuXG5jbGFzcyBMZXJuYVByb2plY3RGYWN0b3J5IHtcbiAgcHJpdmF0ZSBzdWJQcm9qZWN0czogUmVjb3JkPHN0cmluZywgUHJvamVjdD4gPSB7fVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvamVjdDogSUxlcm5hUHJvamVjdCAmIGphdmFzY3JpcHQuTm9kZVByb2plY3QpIHtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoJ2xlcm5hLXByb2plbicsICdsZXJuYUA1JylcbiAgfVxuXG4gIGFkZFN1YlByb2plY3Qoc3ViUHJvamVjdDogUHJvamVjdCkge1xuICAgIGNvbnN0IHtvdXRkaXJ9ID0gc3ViUHJvamVjdFxuXG4gICAgY29uc3QgcmVsYXRpdmVPdXREaXIgPSBvdXRkaXIucmVwbGFjZShgJHt0aGlzLnByb2plY3Qub3V0ZGlyfS9gLCAnJylcblxuICAgIHRoaXMuc3ViUHJvamVjdHNbcmVsYXRpdmVPdXREaXJdID0gc3ViUHJvamVjdFxuICB9XG5cbiAgYnVpbGQoKSB7XG4gICAgdGhpcy5wcm9qZWN0LnBhY2thZ2VUYXNrLnJlc2V0KGBta2RpciAtcCAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNKYXZhc2NyaXB0RGlyZWN0b3J5fWApXG4gICAgdGhpcy5wcm9qZWN0LnByZUNvbXBpbGVUYXNrLmV4ZWMoYGxlcm5hLXByb2plbiBjbGVhbi1kaXN0ICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX1gKVxuXG4gICAgdGhpcy5hcHBlbmRMZXJuYUNvbW1hbmRzKClcbiAgICB0aGlzLmFkZENyb3NzTGlua3MoKVxuICAgIHRoaXMudXBkYXRlU3ViUHJvamVjdHMoKVxuICAgIHRoaXMuYWRkRG9jdW1lbnRzSW5kZXgoKVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRDcm9zc0xpbmtzKCkge1xuXG4gICAgY29uc3QgbGVybmFDb25maWc6IGFueSA9IHtcbiAgICAgIHVzZU54OiB0aGlzLnByb2plY3QudXNlTngsXG4gICAgICB2ZXJzaW9uOiB0aGlzLnByb2plY3QuaW5kZXBlbmRlbnRNb2RlID8gJ2luZGVwZW5kZW50JyA6ICcwLjAuMCcsXG4gICAgfVxuXG4gICAgY29uc3QgcGFja2FnZXMgPSBPYmplY3Qua2V5cyh0aGlzLnN1YlByb2plY3RzKVxuXG4gICAgaWYgKHRoaXMucHJvamVjdC51c2VXb3Jrc3BhY2VzKVxuICAgICAgdGhpcy5wcm9qZWN0LnBhY2thZ2UuYWRkRmllbGQoJ3BhY2thZ2VzJywgcGFja2FnZXMpXG4gICAgZWxzZVxuICAgICAgbGVybmFDb25maWcucGFja2FnZXMgPSBwYWNrYWdlc1xuXG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcy5wcm9qZWN0LCAnbGVybmEuanNvbicsIHtcbiAgICAgIG9iajogbGVybmFDb25maWcsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kTGVybmFDb21tYW5kcygpIHtcbiAgICBjb25zdCB1cGdyYWRlVGFza05hbWUgPSAndXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2tOYW1lID0gJ3Bvc3QtdXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChwb3N0VXBncmFkZVRhc2tOYW1lKVxuICAgIHBvc3RVcGdyYWRlVGFzaz8ucHJlcGVuZEV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodXBncmFkZVRhc2tOYW1lLCBmYWxzZSkpXG4gICAgcG9zdFVwZ3JhZGVUYXNrPy5leGVjKCducHggcHJvamVuJylcbiAgICBwb3N0VXBncmFkZVRhc2s/LmV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQocG9zdFVwZ3JhZGVUYXNrTmFtZSkpXG5cbiAgICB0aGlzLnByb2plY3QudGFza3MuYWxsXG4gICAgICAuZm9yRWFjaCh0YXNrID0+IHtcbiAgICAgICAgaWYgKGxvY2tlZFRhc2tOYW1lcy5pbmNsdWRlcyh0YXNrLm5hbWUpIHx8IHRhc2submFtZSA9PT0gcG9zdFVwZ3JhZGVUYXNrTmFtZSlcbiAgICAgICAgICByZXR1cm5cblxuICAgICAgICB0YXNrLmV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodGFzay5uYW1lKSlcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGdldExlcm5hQ29tbWFuZCh0YXNrTmFtZTogc3RyaW5nLCB1c2VTaW5jZUZsYWcgPSB0cnVlKSB7XG4gICAgY29uc3QgbWFpbkNvbW1hbmQgPSBgbGVybmEgcnVuICR7dGFza05hbWV9IC0tc3RyZWFtYFxuICAgIGNvbnN0IHBvc3RDb21tYW5kID0gdXNlU2luY2VGbGFnICYmIHRoaXMucHJvamVjdC5zaW5jZUxhc3RSZWxlYXNlID8gJyAtLXNpbmNlICQoZ2l0IGRlc2NyaWJlIC0tYWJicmV2PTAgLS10YWdzIC0tbWF0Y2ggXCJ2KlwiKScgOiAnJ1xuICAgIHJldHVybiBgJHttYWluQ29tbWFuZH0ke3Bvc3RDb21tYW5kfWBcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3ViUHJvamVjdHMoKSB7XG4gICAgY29uc3QgYnVtcFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgnYnVtcCcpXG4gICAgY29uc3QgdW5idW1wVGFzayA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKCd1bmJ1bXAnKVxuXG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5zdWJQcm9qZWN0cykuZm9yRWFjaCgoW3N1YlByb2plY3RQYXRoLCBzdWJQcm9qZWN0XSkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpXG4gICAgICBpZiAodGhpcy5wcm9qZWN0LmRvY2dlbiAmJiBzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeSlcbiAgICAgICAgdGhpcy5wcm9qZWN0LnBvc3RDb21waWxlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gbW92ZS1kb2NzICR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9ICR7c3ViUHJvamVjdFBhdGh9ICR7c3ViUHJvamVjdERvY3NEaXJlY3Rvcnl9YClcblxuICAgICAgY29uc3QgcGFja2FnZUFsbFRhc2sgPSBzdWJQcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ3BhY2thZ2UtYWxsJylcblxuICAgICAgaWYgKHBhY2thZ2VBbGxUYXNrKVxuICAgICAgICBzdWJQcm9qZWN0LnBhY2thZ2VUYXNrLnNwYXduKHBhY2thZ2VBbGxUYXNrKVxuXG4gICAgICBjb25zdCBhcnRpZmFjdHNEaXJlY3RvcnkgPSBnZXRBcnRpZmFjdHNEaXJlY3Rvcnkoc3ViUHJvamVjdClcblxuICAgICAgdGhpcy5wcm9qZWN0LnBhY2thZ2VUYXNrLmV4ZWMoYGxlcm5hLXByb2plbiBjb3B5LWRpc3QgJHtzdWJQcm9qZWN0UGF0aH0vJHthcnRpZmFjdHNEaXJlY3Rvcnl9ICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX1gKVxuXG4gICAgICBzdWJQcm9qZWN0LmRlZmF1bHRUYXNrPy5yZXNldCgpXG5cbiAgICAgIGNvbnN0IGJ1bXBFbnZzID0ge1xuICAgICAgICBPVVRGSUxFOiAncGFja2FnZS5qc29uJyxcbiAgICAgICAgQ0hBTkdFTE9HOiBgJHthcnRpZmFjdHNEaXJlY3Rvcnl9L2NoYW5nZWxvZy5tZGAsXG4gICAgICAgIEJVTVBGSUxFOiBgJHthcnRpZmFjdHNEaXJlY3Rvcnl9L3ZlcnNpb24udHh0YCxcbiAgICAgICAgUkVMRUFTRVRBRzogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS9yZWxlYXNldGFnLnR4dGAsXG4gICAgICAgIFJFTEVBU0VfVEFHX1BSRUZJWDogJycsXG4gICAgICB9XG5cbiAgICAgIGlmIChidW1wVGFzaykge1xuICAgICAgICBjb25zdCBzdWJCdW1wVGFzayA9IHN1YlByb2plY3QuYWRkVGFzayhidW1wVGFzay5uYW1lLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IGJ1bXBUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGNvbmRpdGlvbjogYnVtcFRhc2suY29uZGl0aW9uLFxuICAgICAgICAgIGVudjogYnVtcEVudnMsXG4gICAgICAgIH0pXG4gICAgICAgIHN1YkJ1bXBUYXNrLmJ1aWx0aW4oJ3JlbGVhc2UvYnVtcC12ZXJzaW9uJylcbiAgICAgIH1cblxuICAgICAgaWYgKHVuYnVtcFRhc2spIHtcbiAgICAgICAgY29uc3Qgc3ViQnVtcFRhc2sgPSBzdWJQcm9qZWN0LmFkZFRhc2sodW5idW1wVGFzay5uYW1lLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IHVuYnVtcFRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgICAgY29uZGl0aW9uOiB1bmJ1bXBUYXNrLmNvbmRpdGlvbixcbiAgICAgICAgICBlbnY6IGJ1bXBFbnZzLFxuICAgICAgICB9KVxuICAgICAgICBzdWJCdW1wVGFzay5idWlsdGluKCdyZWxlYXNlL3Jlc2V0LXZlcnNpb24nKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGFkZERvY3VtZW50c0luZGV4KCkge1xuICAgIGlmICghdGhpcy5wcm9qZWN0LmRvY2dlbilcbiAgICAgIHJldHVyblxuXG4gICAgY29uc3Qgc3ViUHJvamVjdHNEb2NzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge31cblxuICAgIGNvbnN0IGluZGV4TWFya2Rvd24gPSBuZXcgU291cmNlQ29kZSh0aGlzLnByb2plY3QsIGAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS9pbmRleC5tZGApXG4gICAgY29uc3QgcmVhZG1lTWFya2Rvd24gPSBuZXcgU291cmNlQ29kZSh0aGlzLnByb2plY3QsIGAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS9SRUFETUUubWRgKVxuXG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5zdWJQcm9qZWN0cykuZm9yRWFjaCgoW3N1YlByb2plY3RQYXRoLCBzdWJQcm9qZWN0XSkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpXG4gICAgICBpZiAoIXN1YlByb2plY3REb2NzRGlyZWN0b3J5KVxuICAgICAgICByZXR1cm5cblxuICAgICAgY29uc3QganNpaURvY3NPdXRwdXQgPSBleHRyYWN0SnNpaURvY3NPdXRwdXQoc3ViUHJvamVjdC50YXNrcylcbiAgICAgIGlmIChqc2lpRG9jc091dHB1dCkge1xuICAgICAgICBjb25zdCBwYXRoID0gYCR7c3ViUHJvamVjdFBhdGh9LyR7anNpaURvY3NPdXRwdXR9YFxuICAgICAgICBpbmRleE1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oJHtwYXRofSlgKVxuICAgICAgICBzdWJQcm9qZWN0c0RvY3Nbc3ViUHJvamVjdC5uYW1lXSA9IHBhdGhcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1YlByb2plY3RzRG9jc1tzdWJQcm9qZWN0Lm5hbWVdID0gYCR7c3ViUHJvamVjdFBhdGh9L2luZGV4Lmh0bWxgXG4gICAgICB9XG4gICAgICByZWFkbWVNYXJrZG93bi5saW5lKGAtICMjIFske3N1YlByb2plY3QubmFtZX1dKC4uLyR7c3ViUHJvamVjdFBhdGh9L1JFQURNRS5tZClgKVxuICAgIH0pXG5cbiAgICBjb25zdCBpbmRleEh0bWwgPSBuZXcgU291cmNlQ29kZSh0aGlzLnByb2plY3QsIGAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS9pbmRleC5odG1sYClcbiAgICBpbmRleEh0bWwubGluZSgnPCFET0NUWVBFIGh0bWw+JylcbiAgICBpbmRleEh0bWwubGluZSgnPGh0bWw+JylcbiAgICBpbmRleEh0bWwub3BlbignPGJvZHk+JylcbiAgICBpbmRleEh0bWwub3BlbignPHVsPicpXG4gICAgT2JqZWN0LmVudHJpZXMoc3ViUHJvamVjdHNEb2NzKS5mb3JFYWNoKChbbmFtZSwgcGF0aF0pID0+IHtcbiAgICAgIGluZGV4SHRtbC5vcGVuKCc8bGk+JylcbiAgICAgIGluZGV4SHRtbC5vcGVuKGA8YSBocmVmPVwiJHtwYXRofVwiPmApXG4gICAgICBpbmRleEh0bWwubGluZShuYW1lKVxuICAgICAgaW5kZXhIdG1sLmNsb3NlKCc8L2E+JylcbiAgICAgIGluZGV4SHRtbC5jbG9zZSgnPC9saT4nKVxuICAgIH0pXG4gICAgaW5kZXhIdG1sLmNsb3NlKCc8L3VsPicpXG4gICAgaW5kZXhIdG1sLmNsb3NlKCc8L2JvZHk+JylcbiAgICBpbmRleEh0bWwubGluZSgnPC9odG1sPicpXG4gICAgaW5kZXhIdG1sLmxpbmUoKVxuXG4gICAgdGhpcy5wcm9qZWN0LmdpdGF0dHJpYnV0ZXMuYWRkQXR0cmlidXRlcyhgLyR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9LyoqYCwgJ2xpbmd1aXN0LWdlbmVyYXRlZCcpXG4gIH1cbn0iXX0=
package/lib/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { javascript } from 'projen';
1
+ import { javascript, typescript } from 'projen';
2
2
  export interface LernaProjectOptions extends javascript.NodeProjectOptions {
3
3
  /**
4
4
  * (experimental) Use TypeScript for your projenrc file (`.projenrc.ts`).
@@ -50,3 +50,5 @@ export interface LernaProjectOptions extends javascript.NodeProjectOptions {
50
50
  */
51
51
  readonly useWorkspaces?: boolean;
52
52
  }
53
+ export interface LernaTypescriptProjectOptions extends LernaProjectOptions, typescript.TypeScriptProjectOptions {
54
+ }
package/lib/types.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7amF2YXNjcmlwdH0gZnJvbSAncHJvamVuJ1xuXG5leHBvcnQgaW50ZXJmYWNlIExlcm5hUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiAoZXhwZXJpbWVudGFsKSBVc2UgVHlwZVNjcmlwdCBmb3IgeW91ciBwcm9qZW5yYyBmaWxlIChgLnByb2plbnJjLnRzYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbnJjVHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25zb2xpZGF0ZSBzdWIgcHJvamVjdHMgZG9jIGZpbGVzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRvY2dlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIChleHBlcmltZW50YWwpIERvY3MgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImRvY3NcIlxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkb2NzRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoZXhwZXJpbWVudGFsKSBGbGFnIHRvIHJ1biB0YXNrcyBvbmx5IGZvciB0aGUgcGFja2FnZXMgdGhhdCBoYXMgY2hhbmdlcyBzaW5jZSBsYXN0IHJlbGVhc2VcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBOeCBmb3IgdGFzayBzY2hlZHVsaW5nXG4gICAqIGh0dHBzOi8vbGVybmEuanMub3JnL2RvY3MvbGVybmEtYW5kLW54XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB1c2VOeD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBpbmRlcGVuZGVudCB2ZXJzaW9uaW5nIGZvciBzdWItcHJvamVjdHNcbiAgICogaHR0cHM6Ly9sZXJuYS5qcy5vcmcvZG9jcy9mZWF0dXJlcy92ZXJzaW9uLWFuZC1wdWJsaXNoI2luZGVwZW5kZW50LW1vZGVcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSB3b3Jrc3BhY2VzIGluIHRoZSBwYWNrYWdlLmpzb24gZmlsZVxuICAgKiBPdGhlcndpc2UsIHdpbGwgYWRkIHBhY2thZ2VzIHRvIGxlcm5hLmpzb25cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZVdvcmtzcGFjZXM/OiBib29sZWFuO1xufSJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7amF2YXNjcmlwdCwgdHlwZXNjcmlwdH0gZnJvbSAncHJvamVuJ1xuXG5leHBvcnQgaW50ZXJmYWNlIExlcm5hUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiAoZXhwZXJpbWVudGFsKSBVc2UgVHlwZVNjcmlwdCBmb3IgeW91ciBwcm9qZW5yYyBmaWxlIChgLnByb2plbnJjLnRzYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbnJjVHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25zb2xpZGF0ZSBzdWIgcHJvamVjdHMgZG9jIGZpbGVzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRvY2dlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIChleHBlcmltZW50YWwpIERvY3MgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImRvY3NcIlxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkb2NzRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoZXhwZXJpbWVudGFsKSBGbGFnIHRvIHJ1biB0YXNrcyBvbmx5IGZvciB0aGUgcGFja2FnZXMgdGhhdCBoYXMgY2hhbmdlcyBzaW5jZSBsYXN0IHJlbGVhc2VcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBOeCBmb3IgdGFzayBzY2hlZHVsaW5nXG4gICAqIGh0dHBzOi8vbGVybmEuanMub3JnL2RvY3MvbGVybmEtYW5kLW54XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB1c2VOeD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBpbmRlcGVuZGVudCB2ZXJzaW9uaW5nIGZvciBzdWItcHJvamVjdHNcbiAgICogaHR0cHM6Ly9sZXJuYS5qcy5vcmcvZG9jcy9mZWF0dXJlcy92ZXJzaW9uLWFuZC1wdWJsaXNoI2luZGVwZW5kZW50LW1vZGVcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSB3b3Jrc3BhY2VzIGluIHRoZSBwYWNrYWdlLmpzb24gZmlsZVxuICAgKiBPdGhlcndpc2UsIHdpbGwgYWRkIHBhY2thZ2VzIHRvIGxlcm5hLmpzb25cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZVdvcmtzcGFjZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlcm5hVHlwZXNjcmlwdFByb2plY3RPcHRpb25zIGV4dGVuZHMgTGVybmFQcm9qZWN0T3B0aW9ucywgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMge31cbiJdfQ==
package/package.json CHANGED
@@ -83,7 +83,7 @@
83
83
  ],
84
84
  "main": "lib/index.js",
85
85
  "license": "Apache-2.0",
86
- "version": "0.0.338",
86
+ "version": "0.0.339",
87
87
  "jest": {
88
88
  "testMatch": [
89
89
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",