projen 0.36.6 → 0.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/.jsii +16740 -16583
  2. package/API.md +7147 -7069
  3. package/README.md +9 -9
  4. package/lib/awscdk/auto-discover.js +1 -1
  5. package/lib/{awscdk-app-ts.d.ts → awscdk/awscdk-app-ts.d.ts} +4 -3
  6. package/lib/awscdk/awscdk-app-ts.js +189 -0
  7. package/lib/{awscdk-construct.d.ts → awscdk/awscdk-construct.d.ts} +2 -2
  8. package/lib/awscdk/awscdk-construct.js +121 -0
  9. package/lib/awscdk/cdk-config.js +1 -1
  10. package/lib/awscdk/cdk-tasks.d.ts +1 -1
  11. package/lib/awscdk/cdk-tasks.js +2 -2
  12. package/lib/awscdk/index.d.ts +5 -3
  13. package/lib/awscdk/index.js +6 -4
  14. package/lib/awscdk/integration-test.d.ts +1 -1
  15. package/lib/awscdk/integration-test.js +2 -2
  16. package/lib/awscdk/java-app.js +1 -1
  17. package/lib/awscdk/lambda-function.d.ts +1 -1
  18. package/lib/awscdk/lambda-function.js +6 -7
  19. package/lib/{tasks/builtin-example.task.d.ts → builtin-example.task.d.ts} +0 -0
  20. package/lib/builtin-example.task.js +4 -0
  21. package/lib/{construct-lib.d.ts → cdk/construct-lib.d.ts} +0 -0
  22. package/lib/cdk/construct-lib.js +30 -0
  23. package/lib/cdk/index.d.ts +3 -0
  24. package/lib/{json → cdk}/index.js +4 -2
  25. package/lib/cdk/jsii-docgen.d.ts +12 -0
  26. package/lib/cdk/jsii-docgen.js +29 -0
  27. package/lib/{jsii-project.d.ts → cdk/jsii-project.d.ts} +4 -3
  28. package/lib/cdk/jsii-project.js +188 -0
  29. package/lib/{cdk8s-app-ts.d.ts → cdk8s/cdk8s-app-ts.d.ts} +1 -1
  30. package/lib/cdk8s/cdk8s-app-ts.js +134 -0
  31. package/lib/{cdk8s-construct.d.ts → cdk8s/cdk8s-construct.d.ts} +1 -1
  32. package/lib/{cdk8s-construct.js → cdk8s/cdk8s-construct.js} +4 -4
  33. package/lib/cdk8s/index.d.ts +2 -0
  34. package/lib/{deps → cdk8s}/index.js +3 -3
  35. package/lib/{cdktf-construct.d.ts → cdktf/cdktf-construct.d.ts} +1 -1
  36. package/lib/{cdktf-construct.js → cdktf/cdktf-construct.js} +4 -4
  37. package/lib/cdktf/index.d.ts +1 -0
  38. package/lib/{git → cdktf}/index.js +2 -2
  39. package/lib/cli/index.js +5 -5
  40. package/lib/cli/synth.d.ts +1 -1
  41. package/lib/cli/synth.js +1 -1
  42. package/lib/cli/tasks.d.ts +1 -1
  43. package/lib/cli/tasks.js +1 -1
  44. package/lib/component.js +1 -1
  45. package/lib/{deps/dependencies.d.ts → dependencies.d.ts} +101 -3
  46. package/lib/dependencies.js +206 -0
  47. package/lib/dev-env.d.ts +1 -1
  48. package/lib/dev-env.js +2 -2
  49. package/lib/docker-compose.js +2 -2
  50. package/lib/file.js +1 -1
  51. package/lib/{git/gitattributes.d.ts → gitattributes.d.ts} +2 -2
  52. package/lib/gitattributes.js +62 -0
  53. package/lib/github/auto-approve.js +1 -1
  54. package/lib/github/auto-merge.js +1 -1
  55. package/lib/github/dependabot.js +1 -1
  56. package/lib/github/github-project.d.ts +193 -0
  57. package/lib/github/github-project.js +70 -0
  58. package/lib/github/github.js +1 -1
  59. package/lib/github/index.d.ts +1 -0
  60. package/lib/github/index.js +2 -1
  61. package/lib/github/mergify.js +1 -1
  62. package/lib/github/pr-template.js +1 -1
  63. package/lib/github/pull-request-lint.js +1 -1
  64. package/lib/github/stale.js +1 -1
  65. package/lib/github/task-workflow.d.ts +1 -1
  66. package/lib/github/task-workflow.js +2 -2
  67. package/lib/github/workflows.js +1 -1
  68. package/lib/gitpod.d.ts +1 -1
  69. package/lib/gitpod.js +2 -2
  70. package/lib/ignore-file.js +1 -1
  71. package/lib/index.d.ts +12 -20
  72. package/lib/index.js +13 -21
  73. package/lib/ini.js +1 -1
  74. package/lib/java/java-project.d.ts +2 -2
  75. package/lib/java/java-project.js +4 -4
  76. package/lib/java/junit.js +1 -1
  77. package/lib/java/maven-compile.js +1 -1
  78. package/lib/java/maven-packaging.js +1 -1
  79. package/lib/java/maven-sample.js +1 -1
  80. package/lib/java/pom.d.ts +1 -1
  81. package/lib/java/pom.js +12 -12
  82. package/lib/java/projenrc.js +4 -4
  83. package/lib/javascript/bundler.d.ts +1 -1
  84. package/lib/javascript/bundler.js +4 -4
  85. package/lib/{eslint.d.ts → javascript/eslint.d.ts} +3 -3
  86. package/lib/javascript/eslint.js +261 -0
  87. package/lib/javascript/index.d.ts +8 -2
  88. package/lib/javascript/index.js +9 -3
  89. package/lib/{jest.d.ts → javascript/jest.d.ts} +1 -1
  90. package/lib/{jest.js → javascript/jest.js} +3 -3
  91. package/lib/{node-package.d.ts → javascript/node-package.d.ts} +2 -2
  92. package/lib/javascript/node-package.js +683 -0
  93. package/lib/{node-project.d.ts → javascript/node-project.d.ts} +9 -8
  94. package/lib/javascript/node-project.js +541 -0
  95. package/lib/javascript/npm-config.d.ts +1 -1
  96. package/lib/javascript/npm-config.js +2 -2
  97. package/lib/javascript/projenrc.js +3 -3
  98. package/lib/{typescript-config.d.ts → javascript/typescript-config.d.ts} +2 -2
  99. package/lib/{typescript-config.js → javascript/typescript-config.js} +3 -3
  100. package/lib/{upgrade-dependencies.d.ts → javascript/upgrade-dependencies.d.ts} +3 -3
  101. package/lib/javascript/upgrade-dependencies.js +328 -0
  102. package/lib/json.js +1 -1
  103. package/lib/license.js +1 -1
  104. package/lib/logger.js +1 -1
  105. package/lib/makefile.js +1 -1
  106. package/lib/object-file.js +1 -1
  107. package/lib/project-build.d.ts +1 -1
  108. package/lib/project-build.js +2 -2
  109. package/lib/project.d.ts +5 -198
  110. package/lib/project.js +14 -78
  111. package/lib/projects.js +1 -1
  112. package/lib/{json/projenrc.d.ts → projenrc-json.d.ts} +2 -2
  113. package/lib/{json/projenrc.js → projenrc-json.js} +4 -4
  114. package/lib/python/pip.d.ts +1 -1
  115. package/lib/python/pip.js +9 -9
  116. package/lib/python/poetry.d.ts +1 -1
  117. package/lib/python/poetry.js +10 -10
  118. package/lib/python/projenrc.js +4 -4
  119. package/lib/python/pytest.js +1 -1
  120. package/lib/python/python-deps.d.ts +2 -2
  121. package/lib/python/python-deps.js +1 -1
  122. package/lib/python/python-packaging.d.ts +1 -1
  123. package/lib/python/python-packaging.js +1 -1
  124. package/lib/python/python-project.d.ts +1 -1
  125. package/lib/python/python-project.js +4 -3
  126. package/lib/python/python-sample.js +1 -1
  127. package/lib/python/requirements-file.js +4 -4
  128. package/lib/python/setuppy.js +1 -1
  129. package/lib/python/setuptools.d.ts +1 -1
  130. package/lib/python/setuptools.js +2 -2
  131. package/lib/python/venv.js +1 -1
  132. package/lib/readme.js +1 -1
  133. package/lib/release/publisher.d.ts +9 -1
  134. package/lib/release/publisher.js +7 -4
  135. package/lib/release/release-trigger.d.ts +19 -0
  136. package/lib/release/release-trigger.js +7 -2
  137. package/lib/release/release.d.ts +2 -2
  138. package/lib/release/release.js +2 -2
  139. package/lib/{json/run-projenrc.task.d.ts → run-projenrc-json.task.d.ts} +0 -0
  140. package/lib/run-projenrc-json.task.js +31 -0
  141. package/lib/sample-file.js +2 -2
  142. package/lib/semver.js +1 -1
  143. package/lib/source-code.js +1 -1
  144. package/lib/{tasks/model.d.ts → task-model.d.ts} +0 -0
  145. package/lib/task-model.js +3 -0
  146. package/lib/{tasks/runtime.d.ts → task-runtime.d.ts} +1 -1
  147. package/lib/task-runtime.js +272 -0
  148. package/lib/{tasks/task.d.ts → task.d.ts} +1 -1
  149. package/lib/task.js +195 -0
  150. package/lib/{tasks/tasks.d.ts → tasks.d.ts} +2 -2
  151. package/lib/tasks.js +129 -0
  152. package/lib/textfile.js +1 -1
  153. package/lib/toml.js +1 -1
  154. package/lib/typescript/index.d.ts +2 -0
  155. package/lib/typescript/index.js +3 -1
  156. package/lib/typescript/projenrc.js +1 -1
  157. package/lib/typescript/typescript-typedoc.d.ts +12 -0
  158. package/lib/typescript/typescript-typedoc.js +28 -0
  159. package/lib/{typescript.d.ts → typescript/typescript.d.ts} +3 -5
  160. package/lib/typescript/typescript.js +281 -0
  161. package/lib/util/synth.d.ts +2 -2
  162. package/lib/util/synth.js +3 -3
  163. package/lib/version.d.ts +1 -1
  164. package/lib/version.js +2 -2
  165. package/lib/vscode/devcontainer.d.ts +1 -1
  166. package/lib/vscode/devcontainer.js +2 -2
  167. package/lib/vscode/launch-config.js +1 -1
  168. package/lib/vscode/vscode.js +1 -1
  169. package/lib/web/next.d.ts +1 -1
  170. package/lib/web/next.js +8 -9
  171. package/lib/web/postcss.d.ts +1 -1
  172. package/lib/web/postcss.js +2 -2
  173. package/lib/web/react.d.ts +1 -1
  174. package/lib/web/react.js +9 -10
  175. package/lib/web/tailwind.d.ts +1 -1
  176. package/lib/web/tailwind.js +2 -2
  177. package/lib/xmlfile.js +1 -1
  178. package/lib/yaml.js +1 -1
  179. package/package.json +5 -3
  180. package/lib/awscdk-app-ts.js +0 -188
  181. package/lib/awscdk-construct.js +0 -121
  182. package/lib/cdk8s-app-ts.js +0 -134
  183. package/lib/construct-lib.js +0 -30
  184. package/lib/deps/dependencies.js +0 -192
  185. package/lib/deps/index.d.ts +0 -2
  186. package/lib/deps/model.d.ts +0 -99
  187. package/lib/deps/model.js +0 -18
  188. package/lib/eslint.js +0 -261
  189. package/lib/git/gitattributes.js +0 -62
  190. package/lib/git/index.d.ts +0 -1
  191. package/lib/jsii-docgen.d.ts +0 -10
  192. package/lib/jsii-docgen.js +0 -23
  193. package/lib/jsii-project.js +0 -187
  194. package/lib/json/index.d.ts +0 -1
  195. package/lib/json/run-projenrc.task.js +0 -31
  196. package/lib/node-package.js +0 -683
  197. package/lib/node-project.js +0 -540
  198. package/lib/tasks/builtin-example.task.js +0 -4
  199. package/lib/tasks/index.d.ts +0 -4
  200. package/lib/tasks/index.js +0 -17
  201. package/lib/tasks/model.js +0 -3
  202. package/lib/tasks/runtime.js +0 -272
  203. package/lib/tasks/task.js +0 -195
  204. package/lib/tasks/tasks.js +0 -129
  205. package/lib/typescript-typedoc.d.ts +0 -7
  206. package/lib/typescript-typedoc.js +0 -19
  207. package/lib/typescript.js +0 -284
  208. package/lib/upgrade-dependencies.js +0 -328
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.GitAttributesFile = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const file_1 = require("../file");
7
- /**
8
- * (experimental) Assign attributes to file names in a git repository.
9
- *
10
- * @see https://git-scm.com/docs/gitattributes
11
- * @experimental
12
- */
13
- class GitAttributesFile extends file_1.FileBase {
14
- /**
15
- * @experimental
16
- */
17
- constructor(project) {
18
- super(project, '.gitattributes', {
19
- editGitignore: false,
20
- });
21
- this.attributes = new Map();
22
- }
23
- /**
24
- * (experimental) Maps a set of attributes to a set of files.
25
- *
26
- * @param glob Glob pattern to match files in the repo.
27
- * @param attributes Attributes to assign to these files.
28
- * @experimental
29
- */
30
- addAttributes(glob, ...attributes) {
31
- if (!this.attributes.has(glob)) {
32
- this.attributes.set(glob, new Set());
33
- }
34
- const set = this.attributes.get(glob);
35
- for (const attribute of attributes) {
36
- set.add(attribute);
37
- }
38
- }
39
- /**
40
- * (experimental) Implemented by derived classes and returns the contents of the file to emit.
41
- *
42
- * @experimental
43
- */
44
- synthesizeContent(_) {
45
- // We can assume the file map is never empty.
46
- const entries = Array.from(this.attributes.entries())
47
- .sort(([l], [r]) => l.localeCompare(r));
48
- if (entries.length === 0) {
49
- return undefined;
50
- }
51
- const maxLen = Math.max(...entries.map(([glob]) => glob.length));
52
- return [
53
- `# ${file_1.FileBase.PROJEN_MARKER}`,
54
- '',
55
- ...entries.map(([name, attributes]) => `${name.padEnd(maxLen, ' ')}\t${Array.from(attributes).join(' ')}`),
56
- ].join('\n');
57
- }
58
- }
59
- exports.GitAttributesFile = GitAttributesFile;
60
- _a = JSII_RTTI_SYMBOL_1;
61
- GitAttributesFile[_a] = { fqn: "projen.git.GitAttributesFile", version: "0.36.6" };
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0YXR0cmlidXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXQvZ2l0YXR0cmlidXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtDQUE4Qzs7Ozs7OztBQUk5QyxNQUFhLGlCQUFrQixTQUFRLGVBQVE7Ozs7SUFHN0MsWUFBbUIsT0FBZ0I7UUFDakMsS0FBSyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRTtZQUMvQixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7UUFMWSxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7SUFNN0QsQ0FBQzs7Ozs7Ozs7SUFHTSxhQUFhLENBQUMsSUFBWSxFQUFFLEdBQUcsVUFBb0I7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDdEM7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQztRQUN2QyxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRTtZQUNsQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQzs7Ozs7O0lBRVMsaUJBQWlCLENBQUMsQ0FBWTtRQUN0Qyw2Q0FBNkM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2xELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTFDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE9BQU87WUFDTCxLQUFLLGVBQVEsQ0FBQyxhQUFhLEVBQUU7WUFDN0IsRUFBRTtZQUNGLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7U0FDM0csQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZixDQUFDOztBQW5DSCw4Q0FvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUmVzb2x2ZXIsIEZpbGVCYXNlIH0gZnJvbSAnLi4vZmlsZSc7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vcHJvamVjdCc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgR2l0QXR0cmlidXRlc0ZpbGUgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXR0cmlidXRlcyA9IG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCkge1xuICAgIHN1cGVyKHByb2plY3QsICcuZ2l0YXR0cmlidXRlcycsIHtcbiAgICAgIGVkaXRHaXRpZ25vcmU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkQXR0cmlidXRlcyhnbG9iOiBzdHJpbmcsIC4uLmF0dHJpYnV0ZXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKCF0aGlzLmF0dHJpYnV0ZXMuaGFzKGdsb2IpKSB7XG4gICAgICB0aGlzLmF0dHJpYnV0ZXMuc2V0KGdsb2IsIG5ldyBTZXQoKSk7XG4gICAgfVxuICAgIGNvbnN0IHNldCA9IHRoaXMuYXR0cmlidXRlcy5nZXQoZ2xvYikhO1xuICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZXMpIHtcbiAgICAgIHNldC5hZGQoYXR0cmlidXRlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBXZSBjYW4gYXNzdW1lIHRoZSBmaWxlIG1hcCBpcyBuZXZlciBlbXB0eS5cbiAgICBjb25zdCBlbnRyaWVzID0gQXJyYXkuZnJvbSh0aGlzLmF0dHJpYnV0ZXMuZW50cmllcygpKVxuICAgICAgLnNvcnQoKFtsXSwgW3JdKSA9PiBsLmxvY2FsZUNvbXBhcmUocikpO1xuXG4gICAgaWYgKGVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IG1heExlbiA9IE1hdGgubWF4KC4uLmVudHJpZXMubWFwKChbZ2xvYl0pID0+IGdsb2IubGVuZ3RoKSk7XG4gICAgcmV0dXJuIFtcbiAgICAgIGAjICR7RmlsZUJhc2UuUFJPSkVOX01BUktFUn1gLFxuICAgICAgJycsXG4gICAgICAuLi5lbnRyaWVzLm1hcCgoW25hbWUsIGF0dHJpYnV0ZXNdKSA9PiBgJHtuYW1lLnBhZEVuZChtYXhMZW4sICcgJyl9XFx0JHtBcnJheS5mcm9tKGF0dHJpYnV0ZXMpLmpvaW4oJyAnKX1gKSxcbiAgICBdLmpvaW4oJ1xcbicpO1xuICB9XG59XG4iXX0=
@@ -1 +0,0 @@
1
- export * from './gitattributes';
@@ -1,10 +0,0 @@
1
- import { JsiiProject } from './jsii-project';
2
- /**
3
- * Creates an API.md file based on the jsii manifest:
4
- * - Adds a `docgen` script to package.json
5
- * - Runs `jsii-docgen` after compilation
6
- * - Enforces that API.md is checked in
7
- */
8
- export declare class JsiiDocgen {
9
- constructor(project: JsiiProject);
10
- }
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JsiiDocgen = void 0;
4
- /**
5
- * Creates an API.md file based on the jsii manifest:
6
- * - Adds a `docgen` script to package.json
7
- * - Runs `jsii-docgen` after compilation
8
- * - Enforces that API.md is checked in
9
- */
10
- class JsiiDocgen {
11
- constructor(project) {
12
- project.addDevDeps('jsii-docgen');
13
- const docgen = project.addTask('docgen', {
14
- description: 'Generate API.md from .jsii manifest',
15
- exec: 'jsii-docgen',
16
- });
17
- // spawn docgen after compilation (requires the .jsii manifest).
18
- project.postCompileTask.spawn(docgen);
19
- project.gitignore.include('/API.md');
20
- }
21
- }
22
- exports.JsiiDocgen = JsiiDocgen;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1kb2NnZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvanNpaS1kb2NnZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7Ozs7O0dBS0c7QUFDSCxNQUFhLFVBQVU7SUFDckIsWUFBWSxPQUFvQjtRQUM5QixPQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLFdBQVcsRUFBRSxxQ0FBcUM7WUFDbEQsSUFBSSxFQUFFLGFBQWE7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsZ0VBQWdFO1FBQ2hFLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQWJELGdDQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNpaVByb2plY3QgfSBmcm9tICcuL2pzaWktcHJvamVjdCc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBBUEkubWQgZmlsZSBiYXNlZCBvbiB0aGUganNpaSBtYW5pZmVzdDpcbiAqIC0gQWRkcyBhIGBkb2NnZW5gIHNjcmlwdCB0byBwYWNrYWdlLmpzb25cbiAqIC0gUnVucyBganNpaS1kb2NnZW5gIGFmdGVyIGNvbXBpbGF0aW9uXG4gKiAtIEVuZm9yY2VzIHRoYXQgQVBJLm1kIGlzIGNoZWNrZWQgaW5cbiAqL1xuZXhwb3J0IGNsYXNzIEpzaWlEb2NnZW4ge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBKc2lpUHJvamVjdCkge1xuICAgIHByb2plY3QuYWRkRGV2RGVwcygnanNpaS1kb2NnZW4nKTtcblxuICAgIGNvbnN0IGRvY2dlbiA9IHByb2plY3QuYWRkVGFzaygnZG9jZ2VuJywge1xuICAgICAgZGVzY3JpcHRpb246ICdHZW5lcmF0ZSBBUEkubWQgZnJvbSAuanNpaSBtYW5pZmVzdCcsXG4gICAgICBleGVjOiAnanNpaS1kb2NnZW4nLFxuICAgIH0pO1xuXG4gICAgLy8gc3Bhd24gZG9jZ2VuIGFmdGVyIGNvbXBpbGF0aW9uIChyZXF1aXJlcyB0aGUgLmpzaWkgbWFuaWZlc3QpLlxuICAgIHByb2plY3QucG9zdENvbXBpbGVUYXNrLnNwYXduKGRvY2dlbik7XG4gICAgcHJvamVjdC5naXRpZ25vcmUuaW5jbHVkZSgnL0FQSS5tZCcpO1xuICB9XG59Il19
@@ -1,187 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.JsiiProject = exports.Stability = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const semver = require("semver");
7
- const jsii_docgen_1 = require("./jsii-docgen");
8
- const typescript_1 = require("./typescript");
9
- const SUPERCHAIN_IMAGE = 'jsii/superchain:1-buster-slim';
10
- const SUPERCHAIN_NODE_VERSIONS = [12, 14, 16]; // supported jsii/superchain image tags: `1-buster-slim-nodeNN`
11
- const EMAIL_REGEX = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;
12
- const URL_REGEX = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/;
13
- /**
14
- * @experimental
15
- */
16
- var Stability;
17
- (function (Stability) {
18
- Stability["EXPERIMENTAL"] = "experimental";
19
- Stability["STABLE"] = "stable";
20
- Stability["DEPRECATED"] = "deprecated";
21
- })(Stability = exports.Stability || (exports.Stability = {}));
22
- /**
23
- * (experimental) Multi-language jsii library project.
24
- *
25
- * @experimental
26
- */
27
- class JsiiProject extends typescript_1.TypeScriptProject {
28
- /**
29
- * @experimental
30
- */
31
- constructor(options) {
32
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
33
- const { authorEmail, authorUrl } = parseAuthorAddress(options);
34
- super({
35
- repository: options.repositoryUrl,
36
- authorName: options.author,
37
- authorEmail,
38
- authorUrl,
39
- ...options,
40
- workflowContainerImage: (_b = options.workflowContainerImage) !== null && _b !== void 0 ? _b : determineSuperchainImage(options.minNodeVersion),
41
- // this is needed temporarily because our release workflows use the 'gh'
42
- // cli and its not yet available in jsii/superchain:node14
43
- releaseWorkflowSetupSteps: options.releaseWorkflowSetupSteps,
44
- releaseToNpm: false,
45
- disableTsconfig: true,
46
- docgen: false,
47
- });
48
- const srcdir = this.srcdir;
49
- const libdir = this.libdir;
50
- this.addFields({ types: `${libdir}/index.d.ts` });
51
- // this is an unhelpful warning
52
- const jsiiFlags = [
53
- '--silence-warnings=reserved-word',
54
- '--no-fix-peer-dependencies',
55
- ].join(' ');
56
- const compatIgnore = (_c = options.compatIgnore) !== null && _c !== void 0 ? _c : '.compatignore';
57
- this.addFields({ stability: (_d = options.stability) !== null && _d !== void 0 ? _d : Stability.STABLE });
58
- if (options.stability === Stability.DEPRECATED) {
59
- this.addFields({ deprecated: true });
60
- }
61
- const compatTask = this.addTask('compat', {
62
- description: 'Perform API compatibility check against latest version',
63
- exec: `jsii-diff npm:$(node -p "require(\'./package.json\').name") -k --ignore-file ${compatIgnore} || (echo "\nUNEXPECTED BREAKING CHANGES: add keys such as \'removed:constructs.Node.of\' to ${compatIgnore} to skip.\n" && exit 1)`,
64
- });
65
- const compat = (_e = options.compat) !== null && _e !== void 0 ? _e : false;
66
- if (compat) {
67
- this.compileTask.spawn(compatTask);
68
- }
69
- this.compileTask.reset(`jsii ${jsiiFlags}`);
70
- this.watchTask.reset(`jsii -w ${jsiiFlags}`);
71
- (_f = this.packageTask) === null || _f === void 0 ? void 0 : _f.reset('jsii-pacmak');
72
- const targets = {};
73
- const jsii = {
74
- outdir: 'dist',
75
- targets,
76
- tsc: {
77
- outDir: libdir,
78
- rootDir: srcdir,
79
- },
80
- };
81
- if (options.excludeTypescript) {
82
- jsii.excludeTypescript = options.excludeTypescript;
83
- }
84
- this.addFields({ jsii });
85
- if (options.releaseToNpm != false) {
86
- (_g = this.publisher) === null || _g === void 0 ? void 0 : _g.publishToNpm({
87
- distTag: this.package.npmDistTag,
88
- registry: this.package.npmRegistry,
89
- npmTokenSecret: this.package.npmTokenSecret,
90
- });
91
- }
92
- // we cannot call an option `java` because the java code generated by jsii
93
- // does not compile due to a conflict between this option name and the `java`
94
- // package (e.g. when `java.util.Objects` is referenced).
95
- if ('java' in options) {
96
- throw new Error('the "java" option is now called "publishToMaven"');
97
- }
98
- if (options.publishToMaven) {
99
- targets.java = {
100
- package: options.publishToMaven.javaPackage,
101
- maven: {
102
- groupId: options.publishToMaven.mavenGroupId,
103
- artifactId: options.publishToMaven.mavenArtifactId,
104
- },
105
- };
106
- (_h = this.publisher) === null || _h === void 0 ? void 0 : _h.publishToMaven(options.publishToMaven);
107
- }
108
- const pypi = (_j = options.publishToPypi) !== null && _j !== void 0 ? _j : options.python;
109
- if (pypi) {
110
- targets.python = {
111
- distName: pypi.distName,
112
- module: pypi.module,
113
- };
114
- (_k = this.publisher) === null || _k === void 0 ? void 0 : _k.publishToPyPi(pypi);
115
- }
116
- const nuget = (_l = options.publishToNuget) !== null && _l !== void 0 ? _l : options.dotnet;
117
- if (nuget) {
118
- targets.dotnet = {
119
- namespace: nuget.dotNetNamespace,
120
- packageId: nuget.packageId,
121
- };
122
- (_m = this.publisher) === null || _m === void 0 ? void 0 : _m.publishToNuget(nuget);
123
- }
124
- const golang = options.publishToGo;
125
- if (golang) {
126
- targets.go = {
127
- moduleName: golang.moduleName,
128
- };
129
- (_o = this.publisher) === null || _o === void 0 ? void 0 : _o.publishToGo(golang);
130
- }
131
- this.addDevDeps('jsii', 'jsii-diff', 'jsii-pacmak');
132
- this.gitignore.exclude('.jsii', 'tsconfig.json');
133
- (_p = this.npmignore) === null || _p === void 0 ? void 0 : _p.include('.jsii');
134
- if ((_q = options.docgen) !== null && _q !== void 0 ? _q : true) {
135
- new jsii_docgen_1.JsiiDocgen(this);
136
- }
137
- // jsii updates .npmignore, so we make it writable
138
- if (this.npmignore) {
139
- this.npmignore.readonly = false;
140
- }
141
- }
142
- }
143
- exports.JsiiProject = JsiiProject;
144
- _a = JSII_RTTI_SYMBOL_1;
145
- JsiiProject[_a] = { fqn: "projen.JsiiProject", version: "0.36.6" };
146
- function parseAuthorAddress(options) {
147
- let authorEmail = options.authorEmail;
148
- let authorUrl = options.authorUrl;
149
- if (options.authorAddress) {
150
- if (options.authorEmail && options.authorEmail !== options.authorAddress) {
151
- throw new Error('authorEmail is deprecated and cannot be used in conjunction with authorAddress');
152
- }
153
- if (options.authorUrl && options.authorUrl !== options.authorAddress) {
154
- throw new Error('authorUrl is deprecated and cannot be used in conjunction with authorAddress.');
155
- }
156
- if (EMAIL_REGEX.test(options.authorAddress)) {
157
- authorEmail = options.authorAddress;
158
- }
159
- else if (URL_REGEX.test(options.authorAddress)) {
160
- authorUrl = options.authorAddress;
161
- }
162
- else {
163
- throw new Error(`authorAddress must be either an email address or a URL: ${options.authorAddress}`);
164
- }
165
- }
166
- return { authorEmail, authorUrl };
167
- }
168
- /**
169
- * Determines the jsii/superchain image to use based on the minimum node
170
- * version.
171
- *
172
- * @param minNodeVersion The minimum node version of the project. If not
173
- * specified, v14.17.4 is used.
174
- */
175
- function determineSuperchainImage(minNodeVersion) {
176
- // the default image (`jsii/superchain:1-buster-slim`) will include the
177
- // minimum supported node version of JSII (as of this writing it is 12.x).
178
- if (!minNodeVersion) {
179
- return SUPERCHAIN_IMAGE;
180
- }
181
- const major = semver.major(minNodeVersion);
182
- if (!SUPERCHAIN_NODE_VERSIONS.includes(major)) {
183
- throw new Error(`No jsii/superchain image available for node ${major}.x. Supported node versions: ${SUPERCHAIN_NODE_VERSIONS.map(m => `${m}.x`).join(',')}`);
184
- }
185
- return `${SUPERCHAIN_IMAGE}-node${major}`;
186
- }
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2pzaWktcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUFpQztBQUVqQywrQ0FBMkM7QUFFM0MsNkNBQTJFO0FBRTNFLE1BQU0sZ0JBQWdCLEdBQUcsK0JBQStCLENBQUM7QUFDekQsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0Q7QUFFOUcsTUFBTSxXQUFXLEdBQUcsNGFBQTRhLENBQUM7QUFDamMsTUFBTSxTQUFTLEdBQUcsc0xBQXNMLENBQUM7Ozs7QUEyQ3pNLElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNuQiwwQ0FBNkIsQ0FBQTtJQUM3Qiw4QkFBaUIsQ0FBQTtJQUNqQixzQ0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBSlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFJcEI7Ozs7OztBQTBCRCxNQUFhLFdBQVksU0FBUSw4QkFBaUI7Ozs7SUFHaEQsWUFBWSxPQUEyQjs7UUFDckMsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvRCxLQUFLLENBQUM7WUFDSixVQUFVLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDakMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQzFCLFdBQVc7WUFDWCxTQUFTO1lBRVQsR0FBRyxPQUFPO1lBRVYsc0JBQXNCLFFBQUUsT0FBTyxDQUFDLHNCQUFzQixtQ0FBSSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBRTFHLHdFQUF3RTtZQUN4RSwwREFBMEQ7WUFDMUQseUJBQXlCLEVBQUUsT0FBTyxDQUFDLHlCQUF5QjtZQUM1RCxZQUFZLEVBQUUsS0FBSztZQUNuQixlQUFlLEVBQUUsSUFBSTtZQUNyQixNQUFNLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUUzQixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRWxELCtCQUErQjtRQUMvQixNQUFNLFNBQVMsR0FBRztZQUNoQixrQ0FBa0M7WUFDbEMsNEJBQTRCO1NBQzdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRVosTUFBTSxZQUFZLFNBQUcsT0FBTyxDQUFDLFlBQVksbUNBQUksZUFBZSxDQUFDO1FBRTdELElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLFFBQUUsT0FBTyxDQUFDLFNBQVMsbUNBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFckUsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxVQUFVLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3RDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDeEMsV0FBVyxFQUFFLHdEQUF3RDtZQUNyRSxJQUFJLEVBQUUsZ0ZBQWdGLFlBQVksZ0dBQWdHLFlBQVkseUJBQXlCO1NBQ3hPLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxTQUFHLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLEtBQUssQ0FBQztRQUN2QyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUM3QyxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUU7UUFFdkMsTUFBTSxPQUFPLEdBQXdCLEVBQUUsQ0FBQztRQUV4QyxNQUFNLElBQUksR0FBUTtZQUNoQixNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU87WUFDUCxHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsT0FBTyxFQUFFLE1BQU07YUFDaEI7U0FDRixDQUFDO1FBQ0YsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztTQUNwRDtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpCLElBQUksT0FBTyxDQUFDLFlBQVksSUFBSSxLQUFLLEVBQUU7WUFDakMsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxZQUFZLENBQUM7Z0JBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7Z0JBQ2hDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7Z0JBQ2xDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWM7YUFDNUMsRUFBRTtTQUNKO1FBRUQsMEVBQTBFO1FBQzFFLDZFQUE2RTtRQUM3RSx5REFBeUQ7UUFDekQsSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztTQUNyRTtRQUVELElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUMxQixPQUFPLENBQUMsSUFBSSxHQUFHO2dCQUNiLE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLFdBQVc7Z0JBQzNDLEtBQUssRUFBRTtvQkFDTCxPQUFPLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxZQUFZO29CQUM1QyxVQUFVLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxlQUFlO2lCQUNuRDthQUNGLENBQUM7WUFFRixNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1NBQ3hEO1FBRUQsTUFBTSxJQUFJLFNBQUcsT0FBTyxDQUFDLGFBQWEsbUNBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNyRCxJQUFJLElBQUksRUFBRTtZQUNSLE9BQU8sQ0FBQyxNQUFNLEdBQUc7Z0JBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07YUFDcEIsQ0FBQztZQUVGLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsYUFBYSxDQUFDLElBQUksRUFBRTtTQUNyQztRQUVELE1BQU0sS0FBSyxTQUFHLE9BQU8sQ0FBQyxjQUFjLG1DQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDdkQsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLENBQUMsTUFBTSxHQUFHO2dCQUNmLFNBQVMsRUFBRSxLQUFLLENBQUMsZUFBZTtnQkFDaEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2FBQzNCLENBQUM7WUFFRixNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLGNBQWMsQ0FBQyxLQUFLLEVBQUU7U0FDdkM7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ25DLElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxDQUFDLEVBQUUsR0FBRztnQkFDWCxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7YUFDOUIsQ0FBQztZQUVGLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRTtTQUNyQztRQUVELElBQUksQ0FBQyxVQUFVLENBQ2IsTUFBTSxFQUNOLFdBQVcsRUFDWCxhQUFhLENBQ2QsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNqRCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUU7UUFFakMsVUFBSSxPQUFPLENBQUMsTUFBTSxtQ0FBSSxJQUFJLEVBQUU7WUFDMUIsSUFBSSx3QkFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3RCO1FBRUQsa0RBQWtEO1FBQ2xELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDakM7SUFDSCxDQUFDOztBQWhKSCxrQ0FrSkM7OztBQUdELFNBQVMsa0JBQWtCLENBQUMsT0FBMkI7SUFDckQsSUFBSSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUN0QyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ2xDLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtRQUN6QixJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQ3hFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztTQUNuRztRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsQ0FBQyxDQUFDO1NBQ2xHO1FBRUQsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUMzQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUNyQzthQUFNLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEQsU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDbkM7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQ3JHO0tBQ0Y7SUFDRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLHdCQUF3QixDQUFDLGNBQXVCO0lBQ3ZELHVFQUF1RTtJQUN2RSwwRUFBMEU7SUFDMUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNuQixPQUFPLGdCQUFnQixDQUFDO0tBQ3pCO0lBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUUzQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzdDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLEtBQUssZ0NBQWdDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQzlKO0lBRUQsT0FBTyxHQUFHLGdCQUFnQixRQUFRLEtBQUssRUFBRSxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IEVzbGludCB9IGZyb20gJy4vZXNsaW50JztcbmltcG9ydCB7IEpzaWlEb2NnZW4gfSBmcm9tICcuL2pzaWktZG9jZ2VuJztcbmltcG9ydCB7IEdvUHVibGlzaE9wdGlvbnMsIE1hdmVuUHVibGlzaE9wdGlvbnMsIFB5UGlQdWJsaXNoT3B0aW9ucywgTnVnZXRQdWJsaXNoT3B0aW9ucyB9IGZyb20gJy4vcmVsZWFzZSc7XG5pbXBvcnQgeyBUeXBlU2NyaXB0UHJvamVjdCwgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIH0gZnJvbSAnLi90eXBlc2NyaXB0JztcblxuY29uc3QgU1VQRVJDSEFJTl9JTUFHRSA9ICdqc2lpL3N1cGVyY2hhaW46MS1idXN0ZXItc2xpbSc7XG5jb25zdCBTVVBFUkNIQUlOX05PREVfVkVSU0lPTlMgPSBbMTIsIDE0LCAxNl07IC8vIHN1cHBvcnRlZCBqc2lpL3N1cGVyY2hhaW4gaW1hZ2UgdGFnczogYDEtYnVzdGVyLXNsaW0tbm9kZU5OYFxuXG5jb25zdCBFTUFJTF9SRUdFWCA9IC8oPzpbYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XFwuW2EtejAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKykqfFwiKD86W1xceDAxLVxceDA4XFx4MGJcXHgwY1xceDBlLVxceDFmXFx4MjFcXHgyMy1cXHg1YlxceDVkLVxceDdmXXxcXFxcW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBlLVxceDdmXSkqXCIpQCg/Oig/OlthLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT9cXC4pK1thLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT98XFxbKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT98W2EtejAtOS1dKlthLXowLTldOig/OltcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDIxLVxceDVhXFx4NTMtXFx4N2ZdfFxcXFxbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGUtXFx4N2ZdKSspXFxdKS87XG5jb25zdCBVUkxfUkVHRVggPSAvKCgoW0EtWmEtel17Myw5fTooPzpcXC9cXC8pPykoPzpbXFwtOzomPVxcK1xcJCxcXHddK0ApP1tBLVphLXowLTlcXC5cXC1dK3woPzp3d3dcXC58W1xcLTs6Jj1cXCtcXCQsXFx3XStAKVtBLVphLXowLTlcXC5cXC1dKykoKD86XFwvW1xcK34lXFwvXFwuXFx3XFwtX10qKT9cXD8/KD86W1xcLVxcKz0mOyVAXFwuXFx3X10qKSM/KD86W1xcLlxcIVxcL1xcXFxcXHddKikpPykvO1xuXG5leHBvcnQgaW50ZXJmYWNlIEpzaWlQcm9qZWN0T3B0aW9ucyBleHRlbmRzIFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByb290ZGlyPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByZXBvc2l0b3J5VXJsOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGF1dGhvcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGF1dGhvckFkZHJlc3M6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHB1Ymxpc2hUb01hdmVuPzogSnNpaUphdmFUYXJnZXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHB1Ymxpc2hUb1B5cGk/OiBKc2lpUHl0aG9uVGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcHVibGlzaFRvR28/OiBKc2lpR29UYXJnZXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBweXRob24/OiBKc2lpUHl0aG9uVGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcHVibGlzaFRvTnVnZXQ/OiBKc2lpRG90TmV0VGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRvdG5ldD86IEpzaWlEb3ROZXRUYXJnZXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbXBhdD86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbXBhdElnbm9yZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZXhjbHVkZVR5cGVzY3JpcHQ/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGVudW0gU3RhYmlsaXR5IHtcbiAgRVhQRVJJTUVOVEFMID0gJ2V4cGVyaW1lbnRhbCcsXG4gIFNUQUJMRSA9ICdzdGFibGUnLFxuICBERVBSRUNBVEVEID0gJ2RlcHJlY2F0ZWQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSnNpaUphdmFUYXJnZXQgZXh0ZW5kcyBNYXZlblB1Ymxpc2hPcHRpb25zIHtcbiAgcmVhZG9ubHkgamF2YVBhY2thZ2U6IHN0cmluZztcbiAgcmVhZG9ubHkgbWF2ZW5Hcm91cElkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1hdmVuQXJ0aWZhY3RJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpzaWlQeXRob25UYXJnZXQgZXh0ZW5kcyBQeVBpUHVibGlzaE9wdGlvbnMge1xuICByZWFkb25seSBkaXN0TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBtb2R1bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKc2lpRG90TmV0VGFyZ2V0IGV4dGVuZHMgTnVnZXRQdWJsaXNoT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGRvdE5ldE5hbWVzcGFjZTogc3RyaW5nO1xuICByZWFkb25seSBwYWNrYWdlSWQ6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBKc2lpR29UYXJnZXQgZXh0ZW5kcyBHb1B1Ymxpc2hPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG1vZHVsZU5hbWU6IHN0cmluZztcblxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgSnNpaVByb2plY3QgZXh0ZW5kcyBUeXBlU2NyaXB0UHJvamVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBlc2xpbnQ/OiBFc2xpbnQ7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogSnNpaVByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3QgeyBhdXRob3JFbWFpbCwgYXV0aG9yVXJsIH0gPSBwYXJzZUF1dGhvckFkZHJlc3Mob3B0aW9ucyk7XG4gICAgc3VwZXIoe1xuICAgICAgcmVwb3NpdG9yeTogb3B0aW9ucy5yZXBvc2l0b3J5VXJsLFxuICAgICAgYXV0aG9yTmFtZTogb3B0aW9ucy5hdXRob3IsXG4gICAgICBhdXRob3JFbWFpbCxcbiAgICAgIGF1dGhvclVybCxcblxuICAgICAgLi4ub3B0aW9ucyxcblxuICAgICAgd29ya2Zsb3dDb250YWluZXJJbWFnZTogb3B0aW9ucy53b3JrZmxvd0NvbnRhaW5lckltYWdlID8/IGRldGVybWluZVN1cGVyY2hhaW5JbWFnZShvcHRpb25zLm1pbk5vZGVWZXJzaW9uKSxcblxuICAgICAgLy8gdGhpcyBpcyBuZWVkZWQgdGVtcG9yYXJpbHkgYmVjYXVzZSBvdXIgcmVsZWFzZSB3b3JrZmxvd3MgdXNlIHRoZSAnZ2gnXG4gICAgICAvLyBjbGkgYW5kIGl0cyBub3QgeWV0IGF2YWlsYWJsZSBpbiBqc2lpL3N1cGVyY2hhaW46bm9kZTE0XG4gICAgICByZWxlYXNlV29ya2Zsb3dTZXR1cFN0ZXBzOiBvcHRpb25zLnJlbGVhc2VXb3JrZmxvd1NldHVwU3RlcHMsXG4gICAgICByZWxlYXNlVG9OcG06IGZhbHNlLCAvLyB3ZSBoYXZlIGEganNpaSByZWxlYXNlIHdvcmtmbG93XG4gICAgICBkaXNhYmxlVHNjb25maWc6IHRydWUsIC8vIGpzaWkgZ2VuZXJhdGVzIGl0cyBvd24gdHNjb25maWcuanNvblxuICAgICAgZG9jZ2VuOiBmYWxzZSwgLy8gd2UgdXNlIGpzaWktZG9jZ2VuIGhlcmUgc28gZGlzYWJsZSB0eXBlc2NyaXB0IGRvY2dlblxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3JjZGlyID0gdGhpcy5zcmNkaXI7XG4gICAgY29uc3QgbGliZGlyID0gdGhpcy5saWJkaXI7XG5cbiAgICB0aGlzLmFkZEZpZWxkcyh7IHR5cGVzOiBgJHtsaWJkaXJ9L2luZGV4LmQudHNgIH0pO1xuXG4gICAgLy8gdGhpcyBpcyBhbiB1bmhlbHBmdWwgd2FybmluZ1xuICAgIGNvbnN0IGpzaWlGbGFncyA9IFtcbiAgICAgICctLXNpbGVuY2Utd2FybmluZ3M9cmVzZXJ2ZWQtd29yZCcsXG4gICAgICAnLS1uby1maXgtcGVlci1kZXBlbmRlbmNpZXMnLFxuICAgIF0uam9pbignICcpO1xuXG4gICAgY29uc3QgY29tcGF0SWdub3JlID0gb3B0aW9ucy5jb21wYXRJZ25vcmUgPz8gJy5jb21wYXRpZ25vcmUnO1xuXG4gICAgdGhpcy5hZGRGaWVsZHMoeyBzdGFiaWxpdHk6IG9wdGlvbnMuc3RhYmlsaXR5ID8/IFN0YWJpbGl0eS5TVEFCTEUgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5zdGFiaWxpdHkgPT09IFN0YWJpbGl0eS5ERVBSRUNBVEVEKSB7XG4gICAgICB0aGlzLmFkZEZpZWxkcyh7IGRlcHJlY2F0ZWQ6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGF0VGFzayA9IHRoaXMuYWRkVGFzaygnY29tcGF0Jywge1xuICAgICAgZGVzY3JpcHRpb246ICdQZXJmb3JtIEFQSSBjb21wYXRpYmlsaXR5IGNoZWNrIGFnYWluc3QgbGF0ZXN0IHZlcnNpb24nLFxuICAgICAgZXhlYzogYGpzaWktZGlmZiBucG06JChub2RlIC1wIFwicmVxdWlyZShcXCcuL3BhY2thZ2UuanNvblxcJykubmFtZVwiKSAtayAtLWlnbm9yZS1maWxlICR7Y29tcGF0SWdub3JlfSB8fCAoZWNobyBcIlxcblVORVhQRUNURUQgQlJFQUtJTkcgQ0hBTkdFUzogYWRkIGtleXMgc3VjaCBhcyBcXCdyZW1vdmVkOmNvbnN0cnVjdHMuTm9kZS5vZlxcJyB0byAke2NvbXBhdElnbm9yZX0gdG8gc2tpcC5cXG5cIiAmJiBleGl0IDEpYCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbXBhdCA9IG9wdGlvbnMuY29tcGF0ID8/IGZhbHNlO1xuICAgIGlmIChjb21wYXQpIHtcbiAgICAgIHRoaXMuY29tcGlsZVRhc2suc3Bhd24oY29tcGF0VGFzayk7XG4gICAgfVxuXG4gICAgdGhpcy5jb21waWxlVGFzay5yZXNldChganNpaSAke2pzaWlGbGFnc31gKTtcbiAgICB0aGlzLndhdGNoVGFzay5yZXNldChganNpaSAtdyAke2pzaWlGbGFnc31gKTtcbiAgICB0aGlzLnBhY2thZ2VUYXNrPy5yZXNldCgnanNpaS1wYWNtYWsnKTtcblxuICAgIGNvbnN0IHRhcmdldHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICAgIGNvbnN0IGpzaWk6IGFueSA9IHtcbiAgICAgIG91dGRpcjogJ2Rpc3QnLFxuICAgICAgdGFyZ2V0cyxcbiAgICAgIHRzYzoge1xuICAgICAgICBvdXREaXI6IGxpYmRpcixcbiAgICAgICAgcm9vdERpcjogc3JjZGlyLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVUeXBlc2NyaXB0KSB7XG4gICAgICBqc2lpLmV4Y2x1ZGVUeXBlc2NyaXB0ID0gb3B0aW9ucy5leGNsdWRlVHlwZXNjcmlwdDtcbiAgICB9XG4gICAgdGhpcy5hZGRGaWVsZHMoeyBqc2lpIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMucmVsZWFzZVRvTnBtICE9IGZhbHNlKSB7XG4gICAgICB0aGlzLnB1Ymxpc2hlcj8ucHVibGlzaFRvTnBtKHtcbiAgICAgICAgZGlzdFRhZzogdGhpcy5wYWNrYWdlLm5wbURpc3RUYWcsXG4gICAgICAgIHJlZ2lzdHJ5OiB0aGlzLnBhY2thZ2UubnBtUmVnaXN0cnksXG4gICAgICAgIG5wbVRva2VuU2VjcmV0OiB0aGlzLnBhY2thZ2UubnBtVG9rZW5TZWNyZXQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyB3ZSBjYW5ub3QgY2FsbCBhbiBvcHRpb24gYGphdmFgIGJlY2F1c2UgdGhlIGphdmEgY29kZSBnZW5lcmF0ZWQgYnkganNpaVxuICAgIC8vIGRvZXMgbm90IGNvbXBpbGUgZHVlIHRvIGEgY29uZmxpY3QgYmV0d2VlbiB0aGlzIG9wdGlvbiBuYW1lIGFuZCB0aGUgYGphdmFgXG4gICAgLy8gcGFja2FnZSAoZS5nLiB3aGVuIGBqYXZhLnV0aWwuT2JqZWN0c2AgaXMgcmVmZXJlbmNlZCkuXG4gICAgaWYgKCdqYXZhJyBpbiBvcHRpb25zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RoZSBcImphdmFcIiBvcHRpb24gaXMgbm93IGNhbGxlZCBcInB1Ymxpc2hUb01hdmVuXCInKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5wdWJsaXNoVG9NYXZlbikge1xuICAgICAgdGFyZ2V0cy5qYXZhID0ge1xuICAgICAgICBwYWNrYWdlOiBvcHRpb25zLnB1Ymxpc2hUb01hdmVuLmphdmFQYWNrYWdlLFxuICAgICAgICBtYXZlbjoge1xuICAgICAgICAgIGdyb3VwSWQ6IG9wdGlvbnMucHVibGlzaFRvTWF2ZW4ubWF2ZW5Hcm91cElkLFxuICAgICAgICAgIGFydGlmYWN0SWQ6IG9wdGlvbnMucHVibGlzaFRvTWF2ZW4ubWF2ZW5BcnRpZmFjdElkLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgdGhpcy5wdWJsaXNoZXI/LnB1Ymxpc2hUb01hdmVuKG9wdGlvbnMucHVibGlzaFRvTWF2ZW4pO1xuICAgIH1cblxuICAgIGNvbnN0IHB5cGkgPSBvcHRpb25zLnB1Ymxpc2hUb1B5cGkgPz8gb3B0aW9ucy5weXRob247XG4gICAgaWYgKHB5cGkpIHtcbiAgICAgIHRhcmdldHMucHl0aG9uID0ge1xuICAgICAgICBkaXN0TmFtZTogcHlwaS5kaXN0TmFtZSxcbiAgICAgICAgbW9kdWxlOiBweXBpLm1vZHVsZSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucHVibGlzaGVyPy5wdWJsaXNoVG9QeVBpKHB5cGkpO1xuICAgIH1cblxuICAgIGNvbnN0IG51Z2V0ID0gb3B0aW9ucy5wdWJsaXNoVG9OdWdldCA/PyBvcHRpb25zLmRvdG5ldDtcbiAgICBpZiAobnVnZXQpIHtcbiAgICAgIHRhcmdldHMuZG90bmV0ID0ge1xuICAgICAgICBuYW1lc3BhY2U6IG51Z2V0LmRvdE5ldE5hbWVzcGFjZSxcbiAgICAgICAgcGFja2FnZUlkOiBudWdldC5wYWNrYWdlSWQsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnB1Ymxpc2hlcj8ucHVibGlzaFRvTnVnZXQobnVnZXQpO1xuICAgIH1cblxuICAgIGNvbnN0IGdvbGFuZyA9IG9wdGlvbnMucHVibGlzaFRvR287XG4gICAgaWYgKGdvbGFuZykge1xuICAgICAgdGFyZ2V0cy5nbyA9IHtcbiAgICAgICAgbW9kdWxlTmFtZTogZ29sYW5nLm1vZHVsZU5hbWUsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnB1Ymxpc2hlcj8ucHVibGlzaFRvR28oZ29sYW5nKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZERldkRlcHMoXG4gICAgICAnanNpaScsXG4gICAgICAnanNpaS1kaWZmJyxcbiAgICAgICdqc2lpLXBhY21haycsXG4gICAgKTtcblxuICAgIHRoaXMuZ2l0aWdub3JlLmV4Y2x1ZGUoJy5qc2lpJywgJ3RzY29uZmlnLmpzb24nKTtcbiAgICB0aGlzLm5wbWlnbm9yZT8uaW5jbHVkZSgnLmpzaWknKTtcblxuICAgIGlmIChvcHRpb25zLmRvY2dlbiA/PyB0cnVlKSB7XG4gICAgICBuZXcgSnNpaURvY2dlbih0aGlzKTtcbiAgICB9XG5cbiAgICAvLyBqc2lpIHVwZGF0ZXMgLm5wbWlnbm9yZSwgc28gd2UgbWFrZSBpdCB3cml0YWJsZVxuICAgIGlmICh0aGlzLm5wbWlnbm9yZSkge1xuICAgICAgdGhpcy5ucG1pZ25vcmUucmVhZG9ubHkgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxufVxuXG5cbmZ1bmN0aW9uIHBhcnNlQXV0aG9yQWRkcmVzcyhvcHRpb25zOiBKc2lpUHJvamVjdE9wdGlvbnMpIHtcbiAgbGV0IGF1dGhvckVtYWlsID0gb3B0aW9ucy5hdXRob3JFbWFpbDtcbiAgbGV0IGF1dGhvclVybCA9IG9wdGlvbnMuYXV0aG9yVXJsO1xuICBpZiAob3B0aW9ucy5hdXRob3JBZGRyZXNzKSB7XG4gICAgaWYgKG9wdGlvbnMuYXV0aG9yRW1haWwgJiYgb3B0aW9ucy5hdXRob3JFbWFpbCAhPT0gb3B0aW9ucy5hdXRob3JBZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1dGhvckVtYWlsIGlzIGRlcHJlY2F0ZWQgYW5kIGNhbm5vdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYXV0aG9yQWRkcmVzcycpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmF1dGhvclVybCAmJiBvcHRpb25zLmF1dGhvclVybCAhPT0gb3B0aW9ucy5hdXRob3JBZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1dGhvclVybCBpcyBkZXByZWNhdGVkIGFuZCBjYW5ub3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGF1dGhvckFkZHJlc3MuJyk7XG4gICAgfVxuXG4gICAgaWYgKEVNQUlMX1JFR0VYLnRlc3Qob3B0aW9ucy5hdXRob3JBZGRyZXNzKSkge1xuICAgICAgYXV0aG9yRW1haWwgPSBvcHRpb25zLmF1dGhvckFkZHJlc3M7XG4gICAgfSBlbHNlIGlmIChVUkxfUkVHRVgudGVzdChvcHRpb25zLmF1dGhvckFkZHJlc3MpKSB7XG4gICAgICBhdXRob3JVcmwgPSBvcHRpb25zLmF1dGhvckFkZHJlc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgYXV0aG9yQWRkcmVzcyBtdXN0IGJlIGVpdGhlciBhbiBlbWFpbCBhZGRyZXNzIG9yIGEgVVJMOiAke29wdGlvbnMuYXV0aG9yQWRkcmVzc31gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgYXV0aG9yRW1haWwsIGF1dGhvclVybCB9O1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIGpzaWkvc3VwZXJjaGFpbiBpbWFnZSB0byB1c2UgYmFzZWQgb24gdGhlIG1pbmltdW0gbm9kZVxuICogdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gbWluTm9kZVZlcnNpb24gVGhlIG1pbmltdW0gbm9kZSB2ZXJzaW9uIG9mIHRoZSBwcm9qZWN0LiBJZiBub3RcbiAqIHNwZWNpZmllZCwgdjE0LjE3LjQgaXMgdXNlZC5cbiAqL1xuZnVuY3Rpb24gZGV0ZXJtaW5lU3VwZXJjaGFpbkltYWdlKG1pbk5vZGVWZXJzaW9uPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gdGhlIGRlZmF1bHQgaW1hZ2UgKGBqc2lpL3N1cGVyY2hhaW46MS1idXN0ZXItc2xpbWApIHdpbGwgaW5jbHVkZSB0aGVcbiAgLy8gbWluaW11bSBzdXBwb3J0ZWQgbm9kZSB2ZXJzaW9uIG9mIEpTSUkgKGFzIG9mIHRoaXMgd3JpdGluZyBpdCBpcyAxMi54KS5cbiAgaWYgKCFtaW5Ob2RlVmVyc2lvbikge1xuICAgIHJldHVybiBTVVBFUkNIQUlOX0lNQUdFO1xuICB9XG5cbiAgY29uc3QgbWFqb3IgPSBzZW12ZXIubWFqb3IobWluTm9kZVZlcnNpb24pO1xuXG4gIGlmICghU1VQRVJDSEFJTl9OT0RFX1ZFUlNJT05TLmluY2x1ZGVzKG1ham9yKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8ganNpaS9zdXBlcmNoYWluIGltYWdlIGF2YWlsYWJsZSBmb3Igbm9kZSAke21ham9yfS54LiBTdXBwb3J0ZWQgbm9kZSB2ZXJzaW9uczogJHtTVVBFUkNIQUlOX05PREVfVkVSU0lPTlMubWFwKG0gPT4gYCR7bX0ueGApLmpvaW4oJywnKX1gKTtcbiAgfVxuXG4gIHJldHVybiBgJHtTVVBFUkNIQUlOX0lNQUdFfS1ub2RlJHttYWpvcn1gO1xufSJdfQ==
@@ -1 +0,0 @@
1
- export * from './projenrc';
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Parses a projenrc.json file, uses it to generate a corresponding
5
- * projenrc.js file, and then run it to synthesize its contents.
6
- *
7
- * Environment variables:
8
- *
9
- * - PROJENRC_FILE: (optional) the name of the JSON file to parse from.
10
- * Defaults to `.projenrc.json`.
11
- */
12
- const fs = require("fs-extra");
13
- const option_hints_1 = require("../option-hints");
14
- const projects_1 = require("../projects");
15
- let filename = process.env.PROJENRC_FILE;
16
- if (!filename || filename == '') {
17
- filename = '.projenrc.json';
18
- }
19
- const { type, ...json } = fs.readJsonSync(filename, { encoding: 'utf8' });
20
- if (!type) {
21
- throw new Error('projenrc.json requires a "type" field with the fully qualified type name. e.g. projen.web.ReactProject');
22
- }
23
- projects_1.Projects.createProject({
24
- dir: '.',
25
- projectFqn: type,
26
- projectOptions: json,
27
- optionHints: option_hints_1.NewProjectOptionHints.NONE,
28
- synth: true,
29
- post: false,
30
- });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXByb2plbnJjLnRhc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvanNvbi9ydW4tcHJvamVucmMudGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7OztHQVFHO0FBQ0gsK0JBQStCO0FBQy9CLGtEQUF3RDtBQUN4RCwwQ0FBdUM7QUFFdkMsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7QUFFekMsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLElBQUksRUFBRSxFQUFFO0lBQy9CLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztDQUM3QjtBQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQzFFLElBQUksQ0FBQyxJQUFJLEVBQUU7SUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLHdHQUF3RyxDQUFDLENBQUM7Q0FDM0g7QUFFRCxtQkFBUSxDQUFDLGFBQWEsQ0FBQztJQUNyQixHQUFHLEVBQUUsR0FBRztJQUNSLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFdBQVcsRUFBRSxvQ0FBcUIsQ0FBQyxJQUFJO0lBQ3ZDLEtBQUssRUFBRSxJQUFJO0lBQ1gsSUFBSSxFQUFFLEtBQUs7Q0FDWixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFBhcnNlcyBhIHByb2plbnJjLmpzb24gZmlsZSwgdXNlcyBpdCB0byBnZW5lcmF0ZSBhIGNvcnJlc3BvbmRpbmdcbiAqIHByb2plbnJjLmpzIGZpbGUsIGFuZCB0aGVuIHJ1biBpdCB0byBzeW50aGVzaXplIGl0cyBjb250ZW50cy5cbiAqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXM6XG4gKlxuICogLSBQUk9KRU5SQ19GSUxFOiAob3B0aW9uYWwpIHRoZSBuYW1lIG9mIHRoZSBKU09OIGZpbGUgdG8gcGFyc2UgZnJvbS5cbiAqICAgRGVmYXVsdHMgdG8gYC5wcm9qZW5yYy5qc29uYC5cbiAqL1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgTmV3UHJvamVjdE9wdGlvbkhpbnRzIH0gZnJvbSAnLi4vb3B0aW9uLWhpbnRzJztcbmltcG9ydCB7IFByb2plY3RzIH0gZnJvbSAnLi4vcHJvamVjdHMnO1xuXG5sZXQgZmlsZW5hbWUgPSBwcm9jZXNzLmVudi5QUk9KRU5SQ19GSUxFO1xuXG5pZiAoIWZpbGVuYW1lIHx8IGZpbGVuYW1lID09ICcnKSB7XG4gIGZpbGVuYW1lID0gJy5wcm9qZW5yYy5qc29uJztcbn1cblxuY29uc3QgeyB0eXBlLCAuLi5qc29uIH0gPSBmcy5yZWFkSnNvblN5bmMoZmlsZW5hbWUsIHsgZW5jb2Rpbmc6ICd1dGY4JyB9KTtcbmlmICghdHlwZSkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2plbnJjLmpzb24gcmVxdWlyZXMgYSBcInR5cGVcIiBmaWVsZCB3aXRoIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lLiBlLmcuIHByb2plbi53ZWIuUmVhY3RQcm9qZWN0Jyk7XG59XG5cblByb2plY3RzLmNyZWF0ZVByb2plY3Qoe1xuICBkaXI6ICcuJyxcbiAgcHJvamVjdEZxbjogdHlwZSxcbiAgcHJvamVjdE9wdGlvbnM6IGpzb24sXG4gIG9wdGlvbkhpbnRzOiBOZXdQcm9qZWN0T3B0aW9uSGludHMuTk9ORSxcbiAgc3ludGg6IHRydWUsXG4gIHBvc3Q6IGZhbHNlLFxufSk7XG4iXX0=