@decohere/create 0.0.1-dev.16 → 0.0.1-dev.18

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 (186) hide show
  1. package/commonjs/src/cli.js +26 -5
  2. package/commonjs/src/models/compose.model.js +82 -0
  3. package/commonjs/src/models/config-yaml.model.js +34 -0
  4. package/commonjs/src/models/const.js +29 -0
  5. package/commonjs/src/models/container-image.model.js +88 -0
  6. package/commonjs/src/models/dev-container.model.js +73 -0
  7. package/commonjs/src/models/env-file.model.js +33 -0
  8. package/commonjs/src/models/gitignore.model.js +32 -0
  9. package/commonjs/src/models/launch-json.model.js +52 -0
  10. package/commonjs/src/models/package-json.model.js +64 -0
  11. package/commonjs/src/models/project.model.js +126 -0
  12. package/commonjs/src/models/source-file.js +6 -0
  13. package/commonjs/src/models/tsconfig.model.js +34 -0
  14. package/commonjs/src/models/vscode-settings.model.js +31 -0
  15. package/commonjs/src/services/scaffold.service.js +62 -0
  16. package/commonjs/src/webapi/create-api.js +169 -0
  17. package/commonjs/src/webapi/features/auth.feature.js +166 -0
  18. package/commonjs/src/webapi/features/auth0-cli.js +151 -0
  19. package/commonjs/src/webapi/features/database.feature.js +151 -0
  20. package/commonjs/src/webapi/features/finalize.feature.js +46 -0
  21. package/commonjs/src/webapi/features/postman.feature.js +309 -0
  22. package/commonjs/src/webapi/models/api-package-json.model.js +57 -0
  23. package/commonjs/src/webapi/models/auth-config.model.js +23 -0
  24. package/commonjs/src/webapi/models/controller-source-file.model.js +180 -0
  25. package/commonjs/src/webapi/models/main-source-file.model.js +132 -0
  26. package/commonjs/src/webapi/models/sample-files.model.js +60 -0
  27. package/commonjs/v1/cli.js +15 -0
  28. package/commonjs/v1/domain/class-model.js +106 -0
  29. package/commonjs/v1/domain/compose.model.js +74 -0
  30. package/commonjs/v1/domain/context.js +53 -0
  31. package/commonjs/v1/domain/devcontainer.model.js +116 -0
  32. package/commonjs/v1/domain/dockerfile.model.js +62 -0
  33. package/commonjs/v1/domain/feature.js +19 -0
  34. package/commonjs/v1/domain/import-map.js +74 -0
  35. package/commonjs/v1/domain/index.js +68 -0
  36. package/commonjs/v1/domain/prompt.js +45 -0
  37. package/commonjs/v1/domain/workflow.js +37 -0
  38. package/commonjs/v1/features/api-core/feature.js +103 -0
  39. package/commonjs/v1/features/api-core/hello-controller.model.js +100 -0
  40. package/commonjs/v1/features/api-core/main-ts.model.js +85 -0
  41. package/commonjs/v1/features/api-core/scaffold-files.template.js +158 -0
  42. package/commonjs/v1/features/auth0/auth0-cli.js +151 -0
  43. package/commonjs/v1/features/auth0/feature.js +187 -0
  44. package/commonjs/v1/features/auth0/models.js +14 -0
  45. package/commonjs/v1/features/auth0/prod-config.template.js +19 -0
  46. package/commonjs/v1/features/cli-core/feature.js +37 -0
  47. package/commonjs/v1/features/cli-core/scaffold-files.template.js +103 -0
  48. package/commonjs/v1/features/devcontainer/feature.js +38 -0
  49. package/commonjs/v1/features/finalize/feature.js +48 -0
  50. package/commonjs/v1/features/postgresql/feature.js +81 -0
  51. package/commonjs/v1/features/postgresql/models.js +14 -0
  52. package/commonjs/v1/features/postman/collection.template.js +80 -0
  53. package/commonjs/v1/features/postman/environment.template.js +24 -0
  54. package/commonjs/v1/features/postman/feature.js +192 -0
  55. package/commonjs/v1/features/typeorm/feature.js +66 -0
  56. package/commonjs/v1/features/typeorm/scaffold-files.template.js +80 -0
  57. package/commonjs/v1/scaffold.js +50 -0
  58. package/commonjs/v1/version.js +32 -0
  59. package/commonjs/v1/workflows/api.js +29 -0
  60. package/commonjs/v1/workflows/cli.js +19 -0
  61. package/es6/src/cli.js +26 -5
  62. package/es6/src/models/compose.model.js +77 -0
  63. package/es6/src/models/config-yaml.model.js +30 -0
  64. package/es6/src/models/const.js +19 -0
  65. package/es6/src/models/container-image.model.js +84 -0
  66. package/es6/src/models/dev-container.model.js +68 -0
  67. package/es6/src/models/env-file.model.js +29 -0
  68. package/es6/src/models/gitignore.model.js +22 -0
  69. package/es6/src/models/launch-json.model.js +42 -0
  70. package/es6/src/models/package-json.model.js +60 -0
  71. package/es6/src/models/project.model.js +111 -0
  72. package/es6/src/models/source-file.js +3 -0
  73. package/es6/src/models/tsconfig.model.js +24 -0
  74. package/es6/src/models/vscode-settings.model.js +21 -0
  75. package/es6/src/services/scaffold.service.js +52 -0
  76. package/es6/src/webapi/create-api.js +151 -0
  77. package/es6/src/webapi/features/auth.feature.js +115 -0
  78. package/es6/src/webapi/features/auth0-cli.js +116 -0
  79. package/es6/src/webapi/features/database.feature.js +141 -0
  80. package/es6/src/webapi/features/finalize.feature.js +36 -0
  81. package/es6/src/webapi/features/postman.feature.js +258 -0
  82. package/es6/src/webapi/models/api-package-json.model.js +52 -0
  83. package/es6/src/webapi/models/auth-config.model.js +19 -0
  84. package/es6/src/webapi/models/controller-source-file.model.js +171 -0
  85. package/es6/src/webapi/models/main-source-file.model.js +128 -0
  86. package/es6/src/webapi/models/sample-files.model.js +42 -0
  87. package/es6/v1/cli.js +11 -0
  88. package/es6/v1/domain/class-model.js +104 -0
  89. package/es6/v1/domain/compose.model.js +61 -0
  90. package/es6/v1/domain/context.js +37 -0
  91. package/es6/v1/domain/devcontainer.model.js +104 -0
  92. package/es6/v1/domain/dockerfile.model.js +52 -0
  93. package/es6/v1/domain/feature.js +9 -0
  94. package/es6/v1/domain/import-map.js +64 -0
  95. package/es6/v1/domain/index.js +11 -0
  96. package/es6/v1/domain/prompt.js +27 -0
  97. package/es6/v1/domain/workflow.js +24 -0
  98. package/es6/v1/features/api-core/feature.js +93 -0
  99. package/es6/v1/features/api-core/hello-controller.model.js +96 -0
  100. package/es6/v1/features/api-core/main-ts.model.js +74 -0
  101. package/es6/v1/features/api-core/scaffold-files.template.js +116 -0
  102. package/es6/v1/features/auth0/auth0-cli.js +116 -0
  103. package/es6/v1/features/auth0/feature.js +136 -0
  104. package/es6/v1/features/auth0/models.js +4 -0
  105. package/es6/v1/features/auth0/prod-config.template.js +9 -0
  106. package/es6/v1/features/cli-core/feature.js +27 -0
  107. package/es6/v1/features/cli-core/scaffold-files.template.js +73 -0
  108. package/es6/v1/features/devcontainer/feature.js +28 -0
  109. package/es6/v1/features/finalize/feature.js +38 -0
  110. package/es6/v1/features/postgresql/feature.js +71 -0
  111. package/es6/v1/features/postgresql/models.js +4 -0
  112. package/es6/v1/features/postman/collection.template.js +70 -0
  113. package/es6/v1/features/postman/environment.template.js +14 -0
  114. package/es6/v1/features/postman/feature.js +141 -0
  115. package/es6/v1/features/typeorm/feature.js +56 -0
  116. package/es6/v1/features/typeorm/scaffold-files.template.js +56 -0
  117. package/es6/v1/scaffold.js +40 -0
  118. package/es6/v1/version.js +22 -0
  119. package/es6/v1/workflows/api.js +25 -0
  120. package/es6/v1/workflows/cli.js +9 -0
  121. package/package.json +2 -2
  122. package/types/src/models/compose.model.d.ts +32 -0
  123. package/types/src/models/config-yaml.model.d.ts +16 -0
  124. package/types/src/models/const.d.ts +17 -0
  125. package/types/src/models/container-image.model.d.ts +15 -0
  126. package/types/src/models/dev-container.model.d.ts +21 -0
  127. package/types/src/models/env-file.model.d.ts +14 -0
  128. package/types/src/models/gitignore.model.d.ts +6 -0
  129. package/types/src/models/launch-json.model.d.ts +5 -0
  130. package/types/src/models/package-json.model.d.ts +18 -0
  131. package/types/src/models/project.model.d.ts +55 -0
  132. package/types/src/models/source-file.d.ts +11 -0
  133. package/types/src/models/tsconfig.model.d.ts +5 -0
  134. package/types/src/models/vscode-settings.model.d.ts +7 -0
  135. package/types/src/services/scaffold.service.d.ts +22 -0
  136. package/types/src/webapi/create-api.d.ts +7 -0
  137. package/types/src/webapi/features/auth.feature.d.ts +7 -0
  138. package/types/src/webapi/features/auth0-cli.d.ts +22 -0
  139. package/types/src/webapi/features/database.feature.d.ts +5 -0
  140. package/types/src/webapi/features/finalize.feature.d.ts +2 -0
  141. package/types/src/webapi/features/postman.feature.d.ts +7 -0
  142. package/types/src/webapi/models/api-package-json.model.d.ts +17 -0
  143. package/types/src/webapi/models/auth-config.model.d.ts +18 -0
  144. package/types/src/webapi/models/controller-source-file.model.d.ts +42 -0
  145. package/types/src/webapi/models/main-source-file.model.d.ts +36 -0
  146. package/types/src/webapi/models/sample-files.model.d.ts +7 -0
  147. package/types/v1/cli.d.ts +2 -0
  148. package/types/v1/domain/class-model.d.ts +70 -0
  149. package/types/v1/domain/compose.model.d.ts +25 -0
  150. package/types/v1/domain/context.d.ts +36 -0
  151. package/types/v1/domain/devcontainer.model.d.ts +35 -0
  152. package/types/v1/domain/dockerfile.model.d.ts +11 -0
  153. package/types/v1/domain/feature.d.ts +29 -0
  154. package/types/v1/domain/import-map.d.ts +24 -0
  155. package/types/v1/domain/index.d.ts +12 -0
  156. package/types/v1/domain/prompt.d.ts +2 -0
  157. package/types/v1/domain/workflow.d.ts +14 -0
  158. package/types/v1/features/api-core/feature.d.ts +2 -0
  159. package/types/v1/features/api-core/hello-controller.model.d.ts +9 -0
  160. package/types/v1/features/api-core/main-ts.model.d.ts +31 -0
  161. package/types/v1/features/api-core/scaffold-files.template.d.ts +10 -0
  162. package/types/v1/features/auth0/auth0-cli.d.ts +22 -0
  163. package/types/v1/features/auth0/feature.d.ts +2 -0
  164. package/types/v1/features/auth0/models.d.ts +5 -0
  165. package/types/v1/features/auth0/prod-config.template.d.ts +1 -0
  166. package/types/v1/features/cli-core/feature.d.ts +2 -0
  167. package/types/v1/features/cli-core/scaffold-files.template.d.ts +6 -0
  168. package/types/v1/features/devcontainer/feature.d.ts +2 -0
  169. package/types/v1/features/finalize/feature.d.ts +2 -0
  170. package/types/v1/features/postgresql/feature.d.ts +2 -0
  171. package/types/v1/features/postgresql/models.d.ts +6 -0
  172. package/types/v1/features/postman/collection.template.d.ts +1 -0
  173. package/types/v1/features/postman/environment.template.d.ts +6 -0
  174. package/types/v1/features/postman/feature.d.ts +2 -0
  175. package/types/v1/features/typeorm/feature.d.ts +2 -0
  176. package/types/v1/features/typeorm/scaffold-files.template.d.ts +9 -0
  177. package/types/v1/scaffold.d.ts +3 -0
  178. package/types/v1/version.d.ts +2 -0
  179. package/types/v1/workflows/api.d.ts +8 -0
  180. package/types/v1/workflows/cli.d.ts +1 -0
  181. package/commonjs/src/scaffold.js +0 -89
  182. package/commonjs/src/templates.js +0 -305
  183. package/es6/src/scaffold.js +0 -79
  184. package/es6/src/templates.js +0 -245
  185. package/types/src/scaffold.d.ts +0 -6
  186. package/types/src/templates.d.ts +0 -20
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "DockerfileModel", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return DockerfileModel;
9
+ }
10
+ });
11
+ class DockerfileModel {
12
+ _baseImage;
13
+ _runs = [];
14
+ constructor(baseImage = "node:24"){
15
+ this._baseImage = baseImage;
16
+ }
17
+ /**
18
+ * Append a RUN instruction executed as root, inserted after the base
19
+ * toolchain setup and before the USER switch.
20
+ */ addRun(cmd) {
21
+ this._runs.push(cmd);
22
+ return this;
23
+ }
24
+ render() {
25
+ const extras = this._runs.length > 0 ? `\n${this._runs.map((cmd)=>`RUN ${cmd}`).join("\n\n")}\n` : "";
26
+ return `FROM ${this._baseImage}
27
+
28
+ ARG USERNAME=node
29
+
30
+ # System tools: jq + ripgrep for scripting/search, python3 for AI tooling,
31
+ # gh for GitHub workflows, curl/gnupg for package sources.
32
+ RUN apt-get update \\
33
+ && apt-get install -y --no-install-recommends ca-certificates curl gnupg jq ripgrep python3 \\
34
+ && curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg -o /usr/share/keyrings/githubcli-archive-keyring.gpg \\
35
+ && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \\
36
+ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list \\
37
+ && apt-get update \\
38
+ && apt-get install -y --no-install-recommends gh \\
39
+ && rm -rf /var/lib/apt/lists/*
40
+
41
+ RUN npm install --global npm@latest \\
42
+ && npm add --global pnpm@10
43
+
44
+ RUN mkdir -p /home/\${USERNAME}/.config/pnpm /home/\${USERNAME}/.pnpm-store \\
45
+ && chown -R \${USERNAME}:\${USERNAME} /home/\${USERNAME}/.config /home/\${USERNAME}/.pnpm-store \\
46
+ && printf "store-dir=/home/\${USERNAME}/.pnpm-store\\n" > /home/\${USERNAME}/.config/pnpm/rc
47
+
48
+ # Pre-create workspace node_modules so the named volume mount is owned by the user
49
+ RUN mkdir -p /workspace/node_modules && chown \${USERNAME}:\${USERNAME} /workspace/node_modules
50
+
51
+ RUN mkdir /commandhistory && touch /commandhistory/.bash_history \\
52
+ && chown -R \${USERNAME} /commandhistory
53
+
54
+ RUN SNIPPET="export PROMPT_COMMAND='history -a' && export HISTFILE=/commandhistory/.bash_history" \\
55
+ && echo "$SNIPPET" >> "/home/\${USERNAME}/.bashrc"
56
+ ${extras}
57
+ USER \${USERNAME}
58
+ `;
59
+ }
60
+ }
61
+
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9kb21haW4vZG9ja2VyZmlsZS5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRG9ja2VyZmlsZU1vZGVsIHtcblx0cHJpdmF0ZSByZWFkb25seSBfYmFzZUltYWdlOiBzdHJpbmc7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3J1bnM6IHN0cmluZ1tdID0gW107XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKGJhc2VJbWFnZSA9IFwibm9kZToyNFwiKSB7XG5cdFx0dGhpcy5fYmFzZUltYWdlID0gYmFzZUltYWdlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFwcGVuZCBhIFJVTiBpbnN0cnVjdGlvbiBleGVjdXRlZCBhcyByb290LCBpbnNlcnRlZCBhZnRlciB0aGUgYmFzZVxuXHQgKiB0b29sY2hhaW4gc2V0dXAgYW5kIGJlZm9yZSB0aGUgVVNFUiBzd2l0Y2guXG5cdCAqL1xuXHRwdWJsaWMgYWRkUnVuKGNtZDogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fcnVucy5wdXNoKGNtZCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgcmVuZGVyKCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgZXh0cmFzID1cblx0XHRcdHRoaXMuX3J1bnMubGVuZ3RoID4gMCA/IGBcXG4ke3RoaXMuX3J1bnMubWFwKChjbWQpID0+IGBSVU4gJHtjbWR9YCkuam9pbihcIlxcblxcblwiKX1cXG5gIDogXCJcIjtcblxuXHRcdHJldHVybiBgRlJPTSAke3RoaXMuX2Jhc2VJbWFnZX1cblxuQVJHIFVTRVJOQU1FPW5vZGVcblxuIyBTeXN0ZW0gdG9vbHM6IGpxICsgcmlwZ3JlcCBmb3Igc2NyaXB0aW5nL3NlYXJjaCwgcHl0aG9uMyBmb3IgQUkgdG9vbGluZyxcbiMgZ2ggZm9yIEdpdEh1YiB3b3JrZmxvd3MsIGN1cmwvZ251cGcgZm9yIHBhY2thZ2Ugc291cmNlcy5cblJVTiBhcHQtZ2V0IHVwZGF0ZSBcXFxcXG4gICAgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIGNhLWNlcnRpZmljYXRlcyBjdXJsIGdudXBnIGpxIHJpcGdyZXAgcHl0aG9uMyBcXFxcXG4gICAgJiYgY3VybCAtZnNTTCBodHRwczovL2NsaS5naXRodWIuY29tL3BhY2thZ2VzL2dpdGh1YmNsaS1hcmNoaXZlLWtleXJpbmcuZ3BnIC1vIC91c3Ivc2hhcmUva2V5cmluZ3MvZ2l0aHViY2xpLWFyY2hpdmUta2V5cmluZy5ncGcgXFxcXFxuICAgICYmIGNobW9kIGdvK3IgL3Vzci9zaGFyZS9rZXlyaW5ncy9naXRodWJjbGktYXJjaGl2ZS1rZXlyaW5nLmdwZyBcXFxcXG4gICAgJiYgZWNobyBcImRlYiBbYXJjaD0kKGRwa2cgLS1wcmludC1hcmNoaXRlY3R1cmUpIHNpZ25lZC1ieT0vdXNyL3NoYXJlL2tleXJpbmdzL2dpdGh1YmNsaS1hcmNoaXZlLWtleXJpbmcuZ3BnXSBodHRwczovL2NsaS5naXRodWIuY29tL3BhY2thZ2VzIHN0YWJsZSBtYWluXCIgPiAvZXRjL2FwdC9zb3VyY2VzLmxpc3QuZC9naXRodWItY2xpLmxpc3QgXFxcXFxuICAgICYmIGFwdC1nZXQgdXBkYXRlIFxcXFxcbiAgICAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgZ2ggXFxcXFxuICAgICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKlxuXG5SVU4gbnBtIGluc3RhbGwgLS1nbG9iYWwgbnBtQGxhdGVzdCBcXFxcXG4gICAgJiYgbnBtIGFkZCAtLWdsb2JhbCBwbnBtQDEwXG5cblJVTiBta2RpciAtcCAvaG9tZS9cXCR7VVNFUk5BTUV9Ly5jb25maWcvcG5wbSAvaG9tZS9cXCR7VVNFUk5BTUV9Ly5wbnBtLXN0b3JlIFxcXFxcbiAgICAmJiBjaG93biAtUiBcXCR7VVNFUk5BTUV9OlxcJHtVU0VSTkFNRX0gL2hvbWUvXFwke1VTRVJOQU1FfS8uY29uZmlnIC9ob21lL1xcJHtVU0VSTkFNRX0vLnBucG0tc3RvcmUgXFxcXFxuICAgICYmIHByaW50ZiBcInN0b3JlLWRpcj0vaG9tZS9cXCR7VVNFUk5BTUV9Ly5wbnBtLXN0b3JlXFxcXG5cIiA+IC9ob21lL1xcJHtVU0VSTkFNRX0vLmNvbmZpZy9wbnBtL3JjXG5cbiMgUHJlLWNyZWF0ZSB3b3Jrc3BhY2Ugbm9kZV9tb2R1bGVzIHNvIHRoZSBuYW1lZCB2b2x1bWUgbW91bnQgaXMgb3duZWQgYnkgdGhlIHVzZXJcblJVTiBta2RpciAtcCAvd29ya3NwYWNlL25vZGVfbW9kdWxlcyAmJiBjaG93biBcXCR7VVNFUk5BTUV9OlxcJHtVU0VSTkFNRX0gL3dvcmtzcGFjZS9ub2RlX21vZHVsZXNcblxuUlVOIG1rZGlyIC9jb21tYW5kaGlzdG9yeSAmJiB0b3VjaCAvY29tbWFuZGhpc3RvcnkvLmJhc2hfaGlzdG9yeSBcXFxcXG4gICAgJiYgY2hvd24gLVIgXFwke1VTRVJOQU1FfSAvY29tbWFuZGhpc3RvcnlcblxuUlVOIFNOSVBQRVQ9XCJleHBvcnQgUFJPTVBUX0NPTU1BTkQ9J2hpc3RvcnkgLWEnICYmIGV4cG9ydCBISVNURklMRT0vY29tbWFuZGhpc3RvcnkvLmJhc2hfaGlzdG9yeVwiIFxcXFxcbiAgICAmJiBlY2hvIFwiJFNOSVBQRVRcIiA+PiBcIi9ob21lL1xcJHtVU0VSTkFNRX0vLmJhc2hyY1wiXG4ke2V4dHJhc31cblVTRVIgXFwke1VTRVJOQU1FfVxuYDtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkRvY2tlcmZpbGVNb2RlbCIsIl9iYXNlSW1hZ2UiLCJfcnVucyIsImJhc2VJbWFnZSIsImFkZFJ1biIsImNtZCIsInB1c2giLCJyZW5kZXIiLCJleHRyYXMiLCJsZW5ndGgiLCJtYXAiLCJqb2luIl0sIm1hcHBpbmdzIjoiOzs7OytCQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQTtJQUNLQyxXQUFtQjtJQUNuQkMsUUFBa0IsRUFBRSxDQUFDO0lBRXRDLFlBQW1CQyxZQUFZLFNBQVMsQ0FBRTtRQUN6QyxJQUFJLENBQUNGLFVBQVUsR0FBR0U7SUFDbkI7SUFFQTs7O0VBR0MsR0FDRCxBQUFPQyxPQUFPQyxHQUFXLEVBQVE7UUFDaEMsSUFBSSxDQUFDSCxLQUFLLENBQUNJLElBQUksQ0FBQ0Q7UUFDaEIsT0FBTyxJQUFJO0lBQ1o7SUFFT0UsU0FBaUI7UUFDdkIsTUFBTUMsU0FDTCxJQUFJLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDUCxLQUFLLENBQUNRLEdBQUcsQ0FBQyxDQUFDTCxNQUFRLENBQUMsSUFBSSxFQUFFQSxLQUFLLEVBQUVNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHO1FBRXZGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDVixVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCakMsRUFBRU8sT0FBTzs7QUFFVCxDQUFDO0lBQ0E7QUFDRCJ9
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "PHASES", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return PHASES;
9
+ }
10
+ });
11
+ const PHASES = [
12
+ "resolve",
13
+ "configure",
14
+ "render",
15
+ "integrate",
16
+ "finalize"
17
+ ];
18
+
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9kb21haW4vZmVhdHVyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNjYWZmb2xkQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHQuanNcIjtcblxuZXhwb3J0IHR5cGUgU2NhZmZvbGRTdGVwID0gKGN0eDogU2NhZmZvbGRDb250ZXh0KSA9PiBQcm9taXNlPFNjYWZmb2xkQ29udGV4dD47XG5cbi8qKlxuICogQSBGZWF0dXJlIGlzIGEgc2VsZi1jb250YWluZWQgdW5pdCBvZiBzY2FmZm9sZGluZyBiZWhhdmlvci4gRWFjaCBmZWF0dXJlXG4gKiBtYXkgY29udHJpYnV0ZSB0byBvbmUgb3IgbW9yZSBwaGFzZXMuIFBoYXNlcyBydW4gaW4gb3JkZXIgYWNyb3NzIGFsbFxuICogZmVhdHVyZXMsIHNvIGFueSBjcm9zcy1mZWF0dXJlIGRlcGVuZGVuY3kgb24gc2hhcmVkIG1vZGVscyBpcyBuYXR1cmFsbHlcbiAqIHNhdGlzZmllZCAoZS5nLiBgdHlwZW9ybS5jb25maWd1cmVgIHJ1bnMgYmVmb3JlIGBhcGlDb3JlLnJlbmRlcmApLlxuICpcbiAqIFBoYXNlcyAoaW4gZXhlY3V0aW9uIG9yZGVyKTpcbiAqICAgMS4gcmVzb2x2ZSAgIOKAlCBpbnRlcmFjdGl2ZSBwcm9tcHRzOyBtYXkgdXBkYXRlIGN0eC5vcHRzIG9yIHNlZWQgbW9kZWxzXG4gKiAgIDIuIGNvbmZpZ3VyZSDigJQgcHVyZSBtb2RlbCBjb250cmlidXRpb25zIHRvIHRoZSBGZWF0dXJlTW9kZWxTdG9yZVxuICogICAzLiByZW5kZXIgICAg4oCUIHJlYWQgbW9kZWxzLCB3cml0ZSBmaWxlcyB0byBkaXNrXG4gKiAgIDQuIGludGVncmF0ZSDigJQgZXh0ZXJuYWwgc3lzdGVtIGNhbGxzIChDTEkgYmluYXJpZXMsIFJFU1QgQVBJcylcbiAqICAgNS4gZmluYWxpemUgIOKAlCBpbnN0YWxsIGRlcHMsIHByaW50IG5leHQgc3RlcHMsIGV0Yy5cbiAqXG4gKiBgZW5hYmxlZChjdHgpYCBpcyByZS1ldmFsdWF0ZWQgYmVmb3JlIGVhY2ggcGhhc2Ugc28gZmVhdHVyZXMgY2FuIG9wdCBpblxuICogYmFzZWQgb24gb3B0aW9ucyBzZXQgYnkgZWFybGllciBgcmVzb2x2ZWAgcGhhc2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmUge1xuXHRuYW1lOiBzdHJpbmc7XG5cdGVuYWJsZWQ/OiAoY3R4OiBTY2FmZm9sZENvbnRleHQpID0+IGJvb2xlYW47XG5cdHJlc29sdmU/OiBTY2FmZm9sZFN0ZXA7XG5cdGNvbmZpZ3VyZT86IFNjYWZmb2xkU3RlcDtcblx0cmVuZGVyPzogU2NhZmZvbGRTdGVwO1xuXHRpbnRlZ3JhdGU/OiBTY2FmZm9sZFN0ZXA7XG5cdGZpbmFsaXplPzogU2NhZmZvbGRTdGVwO1xufVxuXG5leHBvcnQgdHlwZSBQaGFzZSA9IFwicmVzb2x2ZVwiIHwgXCJjb25maWd1cmVcIiB8IFwicmVuZGVyXCIgfCBcImludGVncmF0ZVwiIHwgXCJmaW5hbGl6ZVwiO1xuXG5leHBvcnQgY29uc3QgUEhBU0VTOiByZWFkb25seSBQaGFzZVtdID0gW1xuXHRcInJlc29sdmVcIixcblx0XCJjb25maWd1cmVcIixcblx0XCJyZW5kZXJcIixcblx0XCJpbnRlZ3JhdGVcIixcblx0XCJmaW5hbGl6ZVwiLFxuXTtcbiJdLCJuYW1lcyI6WyJQSEFTRVMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBZ0NhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxTQUEyQjtJQUN2QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0EifQ==
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Groups imports from the same package, rendering mixed value+type imports
3
+ * as `import { A, type B } from "pkg"` rather than two separate statements.
4
+ */ "use strict";
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "ImportMap", {
9
+ enumerable: true,
10
+ get: function() {
11
+ return ImportMap;
12
+ }
13
+ });
14
+ class ImportMap {
15
+ _packages = new Map();
16
+ _entry(pkg) {
17
+ const existing = this._packages.get(pkg);
18
+ if (existing) return existing;
19
+ const e = {
20
+ named: new Set(),
21
+ types: new Set(),
22
+ sideEffect: false
23
+ };
24
+ this._packages.set(pkg, e);
25
+ return e;
26
+ }
27
+ /**
28
+ * Add named value imports.
29
+ * Called with no names, registers a side-effect `import "pkg"`.
30
+ */ add(pkg, ...names) {
31
+ const e = this._entry(pkg);
32
+ if (names.length === 0) e.sideEffect = true;
33
+ else for (const n of names)e.named.add(n);
34
+ return this;
35
+ }
36
+ /** Add type-only named imports. */ addType(pkg, ...names) {
37
+ const e = this._entry(pkg);
38
+ for (const n of names)e.types.add(n);
39
+ return this;
40
+ }
41
+ /**
42
+ * Render to an array of import statement strings (insertion order preserved).
43
+ *
44
+ * - All-type package → `import type { A, B } from "pkg";`
45
+ * - All-value package → `import { A, B } from "pkg";`
46
+ * - Mixed package → `import { A, type B } from "pkg";`
47
+ * - Side-effect only → `import "pkg";`
48
+ */ render() {
49
+ const lines = [];
50
+ for (const [pkg, e] of this._packages){
51
+ if (e.sideEffect) lines.push(`import "${pkg}";`);
52
+ const named = [
53
+ ...e.named
54
+ ].sort();
55
+ const types = [
56
+ ...e.types
57
+ ].sort();
58
+ if (named.length === 0 && types.length > 0) {
59
+ lines.push(`import type { ${types.join(", ")} } from "${pkg}";`);
60
+ } else if (named.length > 0 && types.length === 0) {
61
+ lines.push(`import { ${named.join(", ")} } from "${pkg}";`);
62
+ } else if (named.length > 0 && types.length > 0) {
63
+ const all = [
64
+ ...named,
65
+ ...types.map((t)=>`type ${t}`)
66
+ ].join(", ");
67
+ lines.push(`import { ${all} } from "${pkg}";`);
68
+ }
69
+ }
70
+ return lines;
71
+ }
72
+ }
73
+
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9kb21haW4vaW1wb3J0LW1hcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdyb3VwcyBpbXBvcnRzIGZyb20gdGhlIHNhbWUgcGFja2FnZSwgcmVuZGVyaW5nIG1peGVkIHZhbHVlK3R5cGUgaW1wb3J0c1xuICogYXMgYGltcG9ydCB7IEEsIHR5cGUgQiB9IGZyb20gXCJwa2dcImAgcmF0aGVyIHRoYW4gdHdvIHNlcGFyYXRlIHN0YXRlbWVudHMuXG4gKi9cblxuaW50ZXJmYWNlIFBhY2thZ2VFbnRyeSB7XG5cdG5hbWVkOiBTZXQ8c3RyaW5nPjtcblx0dHlwZXM6IFNldDxzdHJpbmc+O1xuXHRzaWRlRWZmZWN0OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgSW1wb3J0TWFwIHtcblx0cHJpdmF0ZSByZWFkb25seSBfcGFja2FnZXMgPSBuZXcgTWFwPHN0cmluZywgUGFja2FnZUVudHJ5PigpO1xuXG5cdHByaXZhdGUgX2VudHJ5KHBrZzogc3RyaW5nKTogUGFja2FnZUVudHJ5IHtcblx0XHRjb25zdCBleGlzdGluZyA9IHRoaXMuX3BhY2thZ2VzLmdldChwa2cpO1xuXHRcdGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nO1xuXHRcdGNvbnN0IGU6IFBhY2thZ2VFbnRyeSA9IHsgbmFtZWQ6IG5ldyBTZXQoKSwgdHlwZXM6IG5ldyBTZXQoKSwgc2lkZUVmZmVjdDogZmFsc2UgfTtcblx0XHR0aGlzLl9wYWNrYWdlcy5zZXQocGtnLCBlKTtcblx0XHRyZXR1cm4gZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGQgbmFtZWQgdmFsdWUgaW1wb3J0cy5cblx0ICogQ2FsbGVkIHdpdGggbm8gbmFtZXMsIHJlZ2lzdGVycyBhIHNpZGUtZWZmZWN0IGBpbXBvcnQgXCJwa2dcImAuXG5cdCAqL1xuXHRwdWJsaWMgYWRkKHBrZzogc3RyaW5nLCAuLi5uYW1lczogc3RyaW5nW10pOiB0aGlzIHtcblx0XHRjb25zdCBlID0gdGhpcy5fZW50cnkocGtnKTtcblx0XHRpZiAobmFtZXMubGVuZ3RoID09PSAwKSBlLnNpZGVFZmZlY3QgPSB0cnVlO1xuXHRcdGVsc2UgZm9yIChjb25zdCBuIG9mIG5hbWVzKSBlLm5hbWVkLmFkZChuKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKiBBZGQgdHlwZS1vbmx5IG5hbWVkIGltcG9ydHMuICovXG5cdHB1YmxpYyBhZGRUeXBlKHBrZzogc3RyaW5nLCAuLi5uYW1lczogc3RyaW5nW10pOiB0aGlzIHtcblx0XHRjb25zdCBlID0gdGhpcy5fZW50cnkocGtnKTtcblx0XHRmb3IgKGNvbnN0IG4gb2YgbmFtZXMpIGUudHlwZXMuYWRkKG4pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbmRlciB0byBhbiBhcnJheSBvZiBpbXBvcnQgc3RhdGVtZW50IHN0cmluZ3MgKGluc2VydGlvbiBvcmRlciBwcmVzZXJ2ZWQpLlxuXHQgKlxuXHQgKiAtIEFsbC10eXBlIHBhY2thZ2UgIOKGkiBgaW1wb3J0IHR5cGUgeyBBLCBCIH0gZnJvbSBcInBrZ1wiO2Bcblx0ICogLSBBbGwtdmFsdWUgcGFja2FnZSDihpIgYGltcG9ydCB7IEEsIEIgfSBmcm9tIFwicGtnXCI7YFxuXHQgKiAtIE1peGVkIHBhY2thZ2UgICAgIOKGkiBgaW1wb3J0IHsgQSwgdHlwZSBCIH0gZnJvbSBcInBrZ1wiO2Bcblx0ICogLSBTaWRlLWVmZmVjdCBvbmx5ICDihpIgYGltcG9ydCBcInBrZ1wiO2Bcblx0ICovXG5cdHB1YmxpYyByZW5kZXIoKTogc3RyaW5nW10ge1xuXHRcdGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdGZvciAoY29uc3QgW3BrZywgZV0gb2YgdGhpcy5fcGFja2FnZXMpIHtcblx0XHRcdGlmIChlLnNpZGVFZmZlY3QpIGxpbmVzLnB1c2goYGltcG9ydCBcIiR7cGtnfVwiO2ApO1xuXG5cdFx0XHRjb25zdCBuYW1lZCA9IFsuLi5lLm5hbWVkXS5zb3J0KCk7XG5cdFx0XHRjb25zdCB0eXBlcyA9IFsuLi5lLnR5cGVzXS5zb3J0KCk7XG5cblx0XHRcdGlmIChuYW1lZC5sZW5ndGggPT09IDAgJiYgdHlwZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRsaW5lcy5wdXNoKGBpbXBvcnQgdHlwZSB7ICR7dHlwZXMuam9pbihcIiwgXCIpfSB9IGZyb20gXCIke3BrZ31cIjtgKTtcblx0XHRcdH0gZWxzZSBpZiAobmFtZWQubGVuZ3RoID4gMCAmJiB0eXBlcy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0bGluZXMucHVzaChgaW1wb3J0IHsgJHtuYW1lZC5qb2luKFwiLCBcIil9IH0gZnJvbSBcIiR7cGtnfVwiO2ApO1xuXHRcdFx0fSBlbHNlIGlmIChuYW1lZC5sZW5ndGggPiAwICYmIHR5cGVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0Y29uc3QgYWxsID0gWy4uLm5hbWVkLCAuLi50eXBlcy5tYXAoKHQpID0+IGB0eXBlICR7dH1gKV0uam9pbihcIiwgXCIpO1xuXHRcdFx0XHRsaW5lcy5wdXNoKGBpbXBvcnQgeyAke2FsbH0gfSBmcm9tIFwiJHtwa2d9XCI7YCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBsaW5lcztcblx0fVxufVxuIl0sIm5hbWVzIjpbIkltcG9ydE1hcCIsIl9wYWNrYWdlcyIsIk1hcCIsIl9lbnRyeSIsInBrZyIsImV4aXN0aW5nIiwiZ2V0IiwiZSIsIm5hbWVkIiwiU2V0IiwidHlwZXMiLCJzaWRlRWZmZWN0Iiwic2V0IiwiYWRkIiwibmFtZXMiLCJsZW5ndGgiLCJuIiwiYWRkVHlwZSIsInJlbmRlciIsImxpbmVzIiwicHVzaCIsInNvcnQiLCJqb2luIiwiYWxsIiwibWFwIiwidCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDOzs7OytCQVFZQTs7O2VBQUFBOzs7QUFBTixNQUFNQTtJQUNLQyxZQUFZLElBQUlDLE1BQTRCO0lBRXJEQyxPQUFPQyxHQUFXLEVBQWdCO1FBQ3pDLE1BQU1DLFdBQVcsSUFBSSxDQUFDSixTQUFTLENBQUNLLEdBQUcsQ0FBQ0Y7UUFDcEMsSUFBSUMsVUFBVSxPQUFPQTtRQUNyQixNQUFNRSxJQUFrQjtZQUFFQyxPQUFPLElBQUlDO1lBQU9DLE9BQU8sSUFBSUQ7WUFBT0UsWUFBWTtRQUFNO1FBQ2hGLElBQUksQ0FBQ1YsU0FBUyxDQUFDVyxHQUFHLENBQUNSLEtBQUtHO1FBQ3hCLE9BQU9BO0lBQ1I7SUFFQTs7O0VBR0MsR0FDRCxBQUFPTSxJQUFJVCxHQUFXLEVBQUUsR0FBR1UsS0FBZSxFQUFRO1FBQ2pELE1BQU1QLElBQUksSUFBSSxDQUFDSixNQUFNLENBQUNDO1FBQ3RCLElBQUlVLE1BQU1DLE1BQU0sS0FBSyxHQUFHUixFQUFFSSxVQUFVLEdBQUc7YUFDbEMsS0FBSyxNQUFNSyxLQUFLRixNQUFPUCxFQUFFQyxLQUFLLENBQUNLLEdBQUcsQ0FBQ0c7UUFDeEMsT0FBTyxJQUFJO0lBQ1o7SUFFQSxpQ0FBaUMsR0FDakMsQUFBT0MsUUFBUWIsR0FBVyxFQUFFLEdBQUdVLEtBQWUsRUFBUTtRQUNyRCxNQUFNUCxJQUFJLElBQUksQ0FBQ0osTUFBTSxDQUFDQztRQUN0QixLQUFLLE1BQU1ZLEtBQUtGLE1BQU9QLEVBQUVHLEtBQUssQ0FBQ0csR0FBRyxDQUFDRztRQUNuQyxPQUFPLElBQUk7SUFDWjtJQUVBOzs7Ozs7O0VBT0MsR0FDRCxBQUFPRSxTQUFtQjtRQUN6QixNQUFNQyxRQUFrQixFQUFFO1FBQzFCLEtBQUssTUFBTSxDQUFDZixLQUFLRyxFQUFFLElBQUksSUFBSSxDQUFDTixTQUFTLENBQUU7WUFDdEMsSUFBSU0sRUFBRUksVUFBVSxFQUFFUSxNQUFNQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUVoQixJQUFJLEVBQUUsQ0FBQztZQUUvQyxNQUFNSSxRQUFRO21CQUFJRCxFQUFFQyxLQUFLO2FBQUMsQ0FBQ2EsSUFBSTtZQUMvQixNQUFNWCxRQUFRO21CQUFJSCxFQUFFRyxLQUFLO2FBQUMsQ0FBQ1csSUFBSTtZQUUvQixJQUFJYixNQUFNTyxNQUFNLEtBQUssS0FBS0wsTUFBTUssTUFBTSxHQUFHLEdBQUc7Z0JBQzNDSSxNQUFNQyxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUVWLE1BQU1ZLElBQUksQ0FBQyxNQUFNLFNBQVMsRUFBRWxCLElBQUksRUFBRSxDQUFDO1lBQ2hFLE9BQU8sSUFBSUksTUFBTU8sTUFBTSxHQUFHLEtBQUtMLE1BQU1LLE1BQU0sS0FBSyxHQUFHO2dCQUNsREksTUFBTUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFWixNQUFNYyxJQUFJLENBQUMsTUFBTSxTQUFTLEVBQUVsQixJQUFJLEVBQUUsQ0FBQztZQUMzRCxPQUFPLElBQUlJLE1BQU1PLE1BQU0sR0FBRyxLQUFLTCxNQUFNSyxNQUFNLEdBQUcsR0FBRztnQkFDaEQsTUFBTVEsTUFBTTt1QkFBSWY7dUJBQVVFLE1BQU1jLEdBQUcsQ0FBQyxDQUFDQyxJQUFNLENBQUMsS0FBSyxFQUFFQSxHQUFHO2lCQUFFLENBQUNILElBQUksQ0FBQztnQkFDOURILE1BQU1DLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRUcsSUFBSSxTQUFTLEVBQUVuQixJQUFJLEVBQUUsQ0FBQztZQUM5QztRQUNEO1FBQ0EsT0FBT2U7SUFDUjtBQUNEIn0=
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get COMPOSE_KEY () {
13
+ return _composemodel.COMPOSE_KEY;
14
+ },
15
+ get ClassModel () {
16
+ return _classmodel.ClassModel;
17
+ },
18
+ get ComposeModel () {
19
+ return _composemodel.ComposeModel;
20
+ },
21
+ get DEVCONTAINER_KEY () {
22
+ return _devcontainermodel.DEVCONTAINER_KEY;
23
+ },
24
+ get DevcontainerModel () {
25
+ return _devcontainermodel.DevcontainerModel;
26
+ },
27
+ get DockerfileModel () {
28
+ return _dockerfilemodel.DockerfileModel;
29
+ },
30
+ get FeatureModelStore () {
31
+ return _context.FeatureModelStore;
32
+ },
33
+ get ImportMap () {
34
+ return _importmap.ImportMap;
35
+ },
36
+ get PHASES () {
37
+ return _feature.PHASES;
38
+ },
39
+ get ask () {
40
+ return _prompt.ask;
41
+ },
42
+ get createContext () {
43
+ return _context.createContext;
44
+ },
45
+ get defineWorkflow () {
46
+ return _workflow.defineWorkflow;
47
+ },
48
+ get modelKey () {
49
+ return _context.modelKey;
50
+ },
51
+ get pick () {
52
+ return _prompt.pick;
53
+ },
54
+ get runWorkflow () {
55
+ return _workflow.runWorkflow;
56
+ }
57
+ });
58
+ const _classmodel = require("./class-model.js");
59
+ const _composemodel = require("./compose.model.js");
60
+ const _context = require("./context.js");
61
+ const _devcontainermodel = require("./devcontainer.model.js");
62
+ const _dockerfilemodel = require("./dockerfile.model.js");
63
+ const _feature = require("./feature.js");
64
+ const _importmap = require("./import-map.js");
65
+ const _prompt = require("./prompt.js");
66
+ const _workflow = require("./workflow.js");
67
+
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9kb21haW4vaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcblx0dHlwZSBCb2R5Q2xhc3NEZWYsXG5cdHR5cGUgQm9keUNsYXNzRmllbGQsXG5cdENsYXNzTW9kZWwsXG5cdHR5cGUgQ29uc3RydWN0b3JQYXJhbSxcblx0dHlwZSBNZXRob2REZWYsXG5cdHR5cGUgTWV0aG9kUGFyYW0sXG59IGZyb20gXCIuL2NsYXNzLW1vZGVsLmpzXCI7XG5leHBvcnQgeyBDT01QT1NFX0tFWSwgQ29tcG9zZU1vZGVsLCB0eXBlIENvbXBvc2VTZXJ2aWNlIH0gZnJvbSBcIi4vY29tcG9zZS5tb2RlbC5qc1wiO1xuZXhwb3J0IHR5cGUge1xuXHRGZWF0dXJlTW9kZWxLZXksXG5cdFNjYWZmb2xkQ29udGV4dCxcblx0U2NhZmZvbGRPcHRpb25zLFxufSBmcm9tIFwiLi9jb250ZXh0LmpzXCI7XG5leHBvcnQgeyBjcmVhdGVDb250ZXh0LCBGZWF0dXJlTW9kZWxTdG9yZSwgbW9kZWxLZXkgfSBmcm9tIFwiLi9jb250ZXh0LmpzXCI7XG5leHBvcnQgeyBERVZDT05UQUlORVJfS0VZLCBEZXZjb250YWluZXJNb2RlbCB9IGZyb20gXCIuL2RldmNvbnRhaW5lci5tb2RlbC5qc1wiO1xuZXhwb3J0IHsgRG9ja2VyZmlsZU1vZGVsIH0gZnJvbSBcIi4vZG9ja2VyZmlsZS5tb2RlbC5qc1wiO1xuZXhwb3J0IHR5cGUgeyBGZWF0dXJlLCBQaGFzZSwgU2NhZmZvbGRTdGVwIH0gZnJvbSBcIi4vZmVhdHVyZS5qc1wiO1xuZXhwb3J0IHsgUEhBU0VTIH0gZnJvbSBcIi4vZmVhdHVyZS5qc1wiO1xuZXhwb3J0IHsgSW1wb3J0TWFwIH0gZnJvbSBcIi4vaW1wb3J0LW1hcC5qc1wiO1xuZXhwb3J0IHsgYXNrLCBwaWNrIH0gZnJvbSBcIi4vcHJvbXB0LmpzXCI7XG5leHBvcnQgdHlwZSB7IFdvcmtmbG93IH0gZnJvbSBcIi4vd29ya2Zsb3cuanNcIjtcbmV4cG9ydCB7IGRlZmluZVdvcmtmbG93LCBydW5Xb3JrZmxvdyB9IGZyb20gXCIuL3dvcmtmbG93LmpzXCI7XG4iXSwibmFtZXMiOlsiQ09NUE9TRV9LRVkiLCJDbGFzc01vZGVsIiwiQ29tcG9zZU1vZGVsIiwiREVWQ09OVEFJTkVSX0tFWSIsIkRldmNvbnRhaW5lck1vZGVsIiwiRG9ja2VyZmlsZU1vZGVsIiwiRmVhdHVyZU1vZGVsU3RvcmUiLCJJbXBvcnRNYXAiLCJQSEFTRVMiLCJhc2siLCJjcmVhdGVDb250ZXh0IiwiZGVmaW5lV29ya2Zsb3ciLCJtb2RlbEtleSIsInBpY2siLCJydW5Xb3JrZmxvdyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFRU0E7ZUFBQUEseUJBQVc7O1FBTG5CQztlQUFBQSxzQkFBVTs7UUFLV0M7ZUFBQUEsMEJBQVk7O1FBT3pCQztlQUFBQSxtQ0FBZ0I7O1FBQUVDO2VBQUFBLG9DQUFpQjs7UUFDbkNDO2VBQUFBLGdDQUFlOztRQUZBQztlQUFBQSwwQkFBaUI7O1FBS2hDQztlQUFBQSxvQkFBUzs7UUFEVEM7ZUFBQUEsZUFBTTs7UUFFTkM7ZUFBQUEsV0FBRzs7UUFOSEM7ZUFBQUEsc0JBQWE7O1FBUWJDO2VBQUFBLHdCQUFjOztRQVJvQkM7ZUFBQUEsaUJBQVE7O1FBTXJDQztlQUFBQSxZQUFJOztRQUVPQztlQUFBQSxxQkFBVzs7OzRCQWY3Qjs4QkFDd0Q7eUJBTUo7bUNBQ1A7aUNBQ3BCO3lCQUVUOzJCQUNHO3dCQUNBOzBCQUVrQiJ9
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get ask () {
13
+ return ask;
14
+ },
15
+ get pick () {
16
+ return pick;
17
+ }
18
+ });
19
+ const _promises = require("node:readline/promises");
20
+ async function ask(question, fallback = "") {
21
+ const rl = (0, _promises.createInterface)({
22
+ input: process.stdin,
23
+ output: process.stdout
24
+ });
25
+ const answer = (await rl.question(question)).trim();
26
+ rl.close();
27
+ return answer || fallback;
28
+ }
29
+ async function pick(label, items, display) {
30
+ console.log(label.trimEnd());
31
+ for (const [i, item] of items.entries()){
32
+ console.log(` ${i + 1}. ${display(item)}`);
33
+ }
34
+ const rl = (0, _promises.createInterface)({
35
+ input: process.stdin,
36
+ output: process.stdout
37
+ });
38
+ const answer = (await rl.question(" > ")).trim();
39
+ rl.close();
40
+ const idx = Number.parseInt(answer, 10);
41
+ if (Number.isNaN(idx) || idx < 1 || idx > items.length) return null;
42
+ return items[idx - 1];
43
+ }
44
+
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9kb21haW4vcHJvbXB0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUludGVyZmFjZSB9IGZyb20gXCJub2RlOnJlYWRsaW5lL3Byb21pc2VzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc2socXVlc3Rpb246IHN0cmluZywgZmFsbGJhY2sgPSBcIlwiKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0Y29uc3QgcmwgPSBjcmVhdGVJbnRlcmZhY2UoeyBpbnB1dDogcHJvY2Vzcy5zdGRpbiwgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dCB9KTtcblx0Y29uc3QgYW5zd2VyID0gKGF3YWl0IHJsLnF1ZXN0aW9uKHF1ZXN0aW9uKSkudHJpbSgpO1xuXHRybC5jbG9zZSgpO1xuXHRyZXR1cm4gYW5zd2VyIHx8IGZhbGxiYWNrO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGljazxUPihcblx0bGFiZWw6IHN0cmluZyxcblx0aXRlbXM6IFRbXSxcblx0ZGlzcGxheTogKGl0ZW06IFQpID0+IHN0cmluZyxcbik6IFByb21pc2U8VCB8IG51bGw+IHtcblx0Y29uc29sZS5sb2cobGFiZWwudHJpbUVuZCgpKTtcblx0Zm9yIChjb25zdCBbaSwgaXRlbV0gb2YgaXRlbXMuZW50cmllcygpKSB7XG5cdFx0Y29uc29sZS5sb2coYCAgICAke2kgKyAxfS4gJHtkaXNwbGF5KGl0ZW0pfWApO1xuXHR9XG5cdGNvbnN0IHJsID0gY3JlYXRlSW50ZXJmYWNlKHsgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sIG91dHB1dDogcHJvY2Vzcy5zdGRvdXQgfSk7XG5cdGNvbnN0IGFuc3dlciA9IChhd2FpdCBybC5xdWVzdGlvbihcIiAgPiBcIikpLnRyaW0oKTtcblx0cmwuY2xvc2UoKTtcblx0Y29uc3QgaWR4ID0gTnVtYmVyLnBhcnNlSW50KGFuc3dlciwgMTApO1xuXHRpZiAoTnVtYmVyLmlzTmFOKGlkeCkgfHwgaWR4IDwgMSB8fCBpZHggPiBpdGVtcy5sZW5ndGgpIHJldHVybiBudWxsO1xuXHRyZXR1cm4gaXRlbXNbaWR4IC0gMV07XG59XG4iXSwibmFtZXMiOlsiYXNrIiwicGljayIsInF1ZXN0aW9uIiwiZmFsbGJhY2siLCJybCIsImNyZWF0ZUludGVyZmFjZSIsImlucHV0IiwicHJvY2VzcyIsInN0ZGluIiwib3V0cHV0Iiwic3Rkb3V0IiwiYW5zd2VyIiwidHJpbSIsImNsb3NlIiwibGFiZWwiLCJpdGVtcyIsImRpc3BsYXkiLCJjb25zb2xlIiwibG9nIiwidHJpbUVuZCIsImkiLCJpdGVtIiwiZW50cmllcyIsImlkeCIsIk51bWJlciIsInBhcnNlSW50IiwiaXNOYU4iLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBRXNCQTtlQUFBQTs7UUFPQUM7ZUFBQUE7OzswQkFUVTtBQUV6QixlQUFlRCxJQUFJRSxRQUFnQixFQUFFQyxXQUFXLEVBQUU7SUFDeEQsTUFBTUMsS0FBS0MsSUFBQUEseUJBQWUsRUFBQztRQUFFQyxPQUFPQyxRQUFRQyxLQUFLO1FBQUVDLFFBQVFGLFFBQVFHLE1BQU07SUFBQztJQUMxRSxNQUFNQyxTQUFTLEFBQUMsQ0FBQSxNQUFNUCxHQUFHRixRQUFRLENBQUNBLFNBQVEsRUFBR1UsSUFBSTtJQUNqRFIsR0FBR1MsS0FBSztJQUNSLE9BQU9GLFVBQVVSO0FBQ2xCO0FBRU8sZUFBZUYsS0FDckJhLEtBQWEsRUFDYkMsS0FBVSxFQUNWQyxPQUE0QjtJQUU1QkMsUUFBUUMsR0FBRyxDQUFDSixNQUFNSyxPQUFPO0lBQ3pCLEtBQUssTUFBTSxDQUFDQyxHQUFHQyxLQUFLLElBQUlOLE1BQU1PLE9BQU8sR0FBSTtRQUN4Q0wsUUFBUUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFRSxJQUFJLEVBQUUsRUFBRSxFQUFFSixRQUFRSyxPQUFPO0lBQzdDO0lBQ0EsTUFBTWpCLEtBQUtDLElBQUFBLHlCQUFlLEVBQUM7UUFBRUMsT0FBT0MsUUFBUUMsS0FBSztRQUFFQyxRQUFRRixRQUFRRyxNQUFNO0lBQUM7SUFDMUUsTUFBTUMsU0FBUyxBQUFDLENBQUEsTUFBTVAsR0FBR0YsUUFBUSxDQUFDLE9BQU0sRUFBR1UsSUFBSTtJQUMvQ1IsR0FBR1MsS0FBSztJQUNSLE1BQU1VLE1BQU1DLE9BQU9DLFFBQVEsQ0FBQ2QsUUFBUTtJQUNwQyxJQUFJYSxPQUFPRSxLQUFLLENBQUNILFFBQVFBLE1BQU0sS0FBS0EsTUFBTVIsTUFBTVksTUFBTSxFQUFFLE9BQU87SUFDL0QsT0FBT1osS0FBSyxDQUFDUSxNQUFNLEVBQUU7QUFDdEIifQ==
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get defineWorkflow () {
13
+ return defineWorkflow;
14
+ },
15
+ get runWorkflow () {
16
+ return runWorkflow;
17
+ }
18
+ });
19
+ const _feature = require("./feature.js");
20
+ function defineWorkflow(name, features) {
21
+ return {
22
+ name,
23
+ features
24
+ };
25
+ }
26
+ async function runWorkflow(workflow, ctx) {
27
+ for (const phase of _feature.PHASES){
28
+ for (const feature of workflow.features){
29
+ const step = feature[phase];
30
+ if (step == null) continue;
31
+ if (feature.enabled != null && !feature.enabled(ctx)) continue;
32
+ ctx = await step(ctx);
33
+ }
34
+ }
35
+ }
36
+
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9kb21haW4vd29ya2Zsb3cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTY2FmZm9sZENvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0LmpzXCI7XG5pbXBvcnQgeyB0eXBlIEZlYXR1cmUsIFBIQVNFUyB9IGZyb20gXCIuL2ZlYXR1cmUuanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvdyB7XG5cdHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblx0cmVhZG9ubHkgZmVhdHVyZXM6IHJlYWRvbmx5IEZlYXR1cmVbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVdvcmtmbG93KG5hbWU6IHN0cmluZywgZmVhdHVyZXM6IEZlYXR1cmVbXSk6IFdvcmtmbG93IHtcblx0cmV0dXJuIHsgbmFtZSwgZmVhdHVyZXMgfTtcbn1cblxuLyoqXG4gKiBSdW5zIGEgd29ya2Zsb3cgYnkgaXRlcmF0aW5nIHBoYXNlcyDDlyBmZWF0dXJlcy4gV2l0aGluIGVhY2ggcGhhc2UsIGV2ZXJ5XG4gKiBlbmFibGVkIGZlYXR1cmUncyBzdGVwIGZvciB0aGF0IHBoYXNlIGlzIGV4ZWN1dGVkIGluIGZlYXR1cmUgb3JkZXIuIFRoZVxuICogYGVuYWJsZWRgIHByZWRpY2F0ZSBpcyByZS1ldmFsdWF0ZWQgYmVmb3JlIGVhY2ggcGhhc2Ugc28gYSBmZWF0dXJlIGNhblxuICogYmVjb21lIGFjdGl2ZSBiYXNlZCBvbiBvcHRpb25zIHNldCBieSBlYXJsaWVyIGByZXNvbHZlYCBwaGFzZXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5Xb3JrZmxvdyh3b3JrZmxvdzogV29ya2Zsb3csIGN0eDogU2NhZmZvbGRDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG5cdGZvciAoY29uc3QgcGhhc2Ugb2YgUEhBU0VTKSB7XG5cdFx0Zm9yIChjb25zdCBmZWF0dXJlIG9mIHdvcmtmbG93LmZlYXR1cmVzKSB7XG5cdFx0XHRjb25zdCBzdGVwID0gZmVhdHVyZVtwaGFzZV07XG5cdFx0XHRpZiAoc3RlcCA9PSBudWxsKSBjb250aW51ZTtcblx0XHRcdGlmIChmZWF0dXJlLmVuYWJsZWQgIT0gbnVsbCAmJiAhZmVhdHVyZS5lbmFibGVkKGN0eCkpIGNvbnRpbnVlO1xuXHRcdFx0Y3R4ID0gYXdhaXQgc3RlcChjdHgpO1xuXHRcdH1cblx0fVxufVxuIl0sIm5hbWVzIjpbImRlZmluZVdvcmtmbG93IiwicnVuV29ya2Zsb3ciLCJuYW1lIiwiZmVhdHVyZXMiLCJ3b3JrZmxvdyIsImN0eCIsInBoYXNlIiwiUEhBU0VTIiwiZmVhdHVyZSIsInN0ZXAiLCJlbmFibGVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQVFnQkE7ZUFBQUE7O1FBVU1DO2VBQUFBOzs7eUJBakJlO0FBTzlCLFNBQVNELGVBQWVFLElBQVksRUFBRUMsUUFBbUI7SUFDL0QsT0FBTztRQUFFRDtRQUFNQztJQUFTO0FBQ3pCO0FBUU8sZUFBZUYsWUFBWUcsUUFBa0IsRUFBRUMsR0FBb0I7SUFDekUsS0FBSyxNQUFNQyxTQUFTQyxlQUFNLENBQUU7UUFDM0IsS0FBSyxNQUFNQyxXQUFXSixTQUFTRCxRQUFRLENBQUU7WUFDeEMsTUFBTU0sT0FBT0QsT0FBTyxDQUFDRixNQUFNO1lBQzNCLElBQUlHLFFBQVEsTUFBTTtZQUNsQixJQUFJRCxRQUFRRSxPQUFPLElBQUksUUFBUSxDQUFDRixRQUFRRSxPQUFPLENBQUNMLE1BQU07WUFDdERBLE1BQU0sTUFBTUksS0FBS0o7UUFDbEI7SUFDRDtBQUNEIn0=
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "apiCoreFeature", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return apiCoreFeature;
9
+ }
10
+ });
11
+ const _promises = require("node:fs/promises");
12
+ const _nodepath = require("node:path");
13
+ const _devcontainermodel = require("../../domain/devcontainer.model.js");
14
+ const _index = require("../../domain/index.js");
15
+ const _hellocontrollermodel = require("./hello-controller.model.js");
16
+ const _maintsmodel = require("./main-ts.model.js");
17
+ const _scaffoldfilestemplate = require("./scaffold-files.template.js");
18
+ async function resolve(ctx) {
19
+ if (ctx.opts.yes) return ctx;
20
+ let { database, idp, postman } = ctx.opts;
21
+ if (database == null) {
22
+ console.log("\n Select database:");
23
+ const db = await (0, _index.pick)(" Choice (enter for none): ", [
24
+ "postgresql/typeorm"
25
+ ], (id)=>id);
26
+ database = db === "postgresql/typeorm" ? "typeorm" : undefined;
27
+ }
28
+ if (idp == null) {
29
+ console.log("\n Select identity provider:");
30
+ const provider = await (0, _index.pick)(" Choice (enter for none): ", [
31
+ "Auth0"
32
+ ], (id)=>id);
33
+ idp = provider === "Auth0" ? "auth0" : undefined;
34
+ }
35
+ if (!postman) {
36
+ const answer = await (0, _index.ask)("\n Configure Postman workspace? [yes/no] (no): ");
37
+ postman = answer === "yes" || undefined;
38
+ }
39
+ return {
40
+ ...ctx,
41
+ opts: {
42
+ ...ctx.opts,
43
+ database,
44
+ idp,
45
+ postman
46
+ }
47
+ };
48
+ }
49
+ async function configure(ctx) {
50
+ const helloController = (0, _hellocontrollermodel.createHelloController)();
51
+ const devcontainer = new _devcontainermodel.DevcontainerModel(`${ctx.projectName}.api`).addExtension("biomejs.biome", "vitest.explorer").forwardPort(3000).addPostStartCommand("npm whoami 2>/dev/null || npm login");
52
+ return {
53
+ ...ctx,
54
+ models: ctx.models.set(_maintsmodel.MAIN_TS_KEY, new _maintsmodel.MainTsModel(`${ctx.projectName}.api`)).set(_devcontainermodel.DEVCONTAINER_KEY, devcontainer),
55
+ controllers: [
56
+ ...ctx.controllers,
57
+ helloController
58
+ ]
59
+ };
60
+ }
61
+ async function render(ctx) {
62
+ const { targetDir, projectName } = ctx;
63
+ await Promise.all([
64
+ (0, _promises.mkdir)((0, _nodepath.join)(targetDir, ".vscode"), {
65
+ recursive: true
66
+ }),
67
+ (0, _promises.mkdir)((0, _nodepath.join)(targetDir, "projects", "api", "src", "controllers"), {
68
+ recursive: true
69
+ }),
70
+ (0, _promises.mkdir)((0, _nodepath.join)(targetDir, "config"), {
71
+ recursive: true
72
+ })
73
+ ]);
74
+ const { controllers } = ctx;
75
+ const mainTsModel = ctx.models.get(_maintsmodel.MAIN_TS_KEY);
76
+ const writes = [
77
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "package.json"), (0, _scaffoldfilestemplate.rootPackageJson)(projectName)),
78
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "tsconfig.json"), _scaffoldfilestemplate.TSCONFIG),
79
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "projects", "api", "package.json"), (0, _scaffoldfilestemplate.apiPackageJson)(projectName)),
80
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "projects", "api", "src", "sample.config.ts"), _scaffoldfilestemplate.SAMPLE_CONFIG_TS),
81
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "projects", "api", "src", "sample.service.ts"), _scaffoldfilestemplate.SAMPLE_SERVICE_TS),
82
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "config", "config.yaml"), (0, _scaffoldfilestemplate.configYaml)()),
83
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "config", "config.dev.yaml"), _scaffoldfilestemplate.CONFIG_DEV_YAML),
84
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, ".vscode", "launch.json"), _scaffoldfilestemplate.VSCODE_LAUNCH_JSON),
85
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, ".vscode", "settings.json"), (0, _scaffoldfilestemplate.vscodeSettingsJson)(projectName)),
86
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, ".gitignore"), _scaffoldfilestemplate.GITIGNORE),
87
+ ...controllers.map((c)=>(0, _promises.writeFile)((0, _nodepath.join)(targetDir, "projects", "api", "src", "controllers", c.fileName), c.render()))
88
+ ];
89
+ if (mainTsModel) {
90
+ for (const c of controllers)mainTsModel.addController(c);
91
+ writes.push((0, _promises.writeFile)((0, _nodepath.join)(targetDir, "projects", "api", "src", "main.ts"), mainTsModel.render()));
92
+ }
93
+ await Promise.all(writes);
94
+ return ctx;
95
+ }
96
+ const apiCoreFeature = {
97
+ name: "api-core",
98
+ resolve,
99
+ configure,
100
+ render
101
+ };
102
+
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9hcGktY29yZS9mZWF0dXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1rZGlyLCB3cml0ZUZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IERFVkNPTlRBSU5FUl9LRVksIERldmNvbnRhaW5lck1vZGVsIH0gZnJvbSBcIi4uLy4uL2RvbWFpbi9kZXZjb250YWluZXIubW9kZWwuanNcIjtcbmltcG9ydCB7IGFzaywgdHlwZSBGZWF0dXJlLCBwaWNrLCB0eXBlIFNjYWZmb2xkQ29udGV4dCB9IGZyb20gXCIuLi8uLi9kb21haW4vaW5kZXguanNcIjtcbmltcG9ydCB7IGNyZWF0ZUhlbGxvQ29udHJvbGxlciB9IGZyb20gXCIuL2hlbGxvLWNvbnRyb2xsZXIubW9kZWwuanNcIjtcbmltcG9ydCB7IE1BSU5fVFNfS0VZLCBNYWluVHNNb2RlbCB9IGZyb20gXCIuL21haW4tdHMubW9kZWwuanNcIjtcbmltcG9ydCB7XG5cdGFwaVBhY2thZ2VKc29uLFxuXHRDT05GSUdfREVWX1lBTUwsXG5cdGNvbmZpZ1lhbWwsXG5cdEdJVElHTk9SRSxcblx0cm9vdFBhY2thZ2VKc29uLFxuXHRTQU1QTEVfQ09ORklHX1RTLFxuXHRTQU1QTEVfU0VSVklDRV9UUyxcblx0VFNDT05GSUcsXG5cdFZTQ09ERV9MQVVOQ0hfSlNPTixcblx0dnNjb2RlU2V0dGluZ3NKc29uLFxufSBmcm9tIFwiLi9zY2FmZm9sZC1maWxlcy50ZW1wbGF0ZS5qc1wiO1xuXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlKGN0eDogU2NhZmZvbGRDb250ZXh0KTogUHJvbWlzZTxTY2FmZm9sZENvbnRleHQ+IHtcblx0aWYgKGN0eC5vcHRzLnllcykgcmV0dXJuIGN0eDtcblxuXHRsZXQgeyBkYXRhYmFzZSwgaWRwLCBwb3N0bWFuIH0gPSBjdHgub3B0cztcblxuXHRpZiAoZGF0YWJhc2UgPT0gbnVsbCkge1xuXHRcdGNvbnNvbGUubG9nKFwiXFxuICBTZWxlY3QgZGF0YWJhc2U6XCIpO1xuXHRcdGNvbnN0IGRiID0gYXdhaXQgcGljayhcIiAgQ2hvaWNlIChlbnRlciBmb3Igbm9uZSk6IFwiLCBbXCJwb3N0Z3Jlc3FsL3R5cGVvcm1cIl0sIChpZCkgPT4gaWQpO1xuXHRcdGRhdGFiYXNlID0gZGIgPT09IFwicG9zdGdyZXNxbC90eXBlb3JtXCIgPyBcInR5cGVvcm1cIiA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdGlmIChpZHAgPT0gbnVsbCkge1xuXHRcdGNvbnNvbGUubG9nKFwiXFxuICBTZWxlY3QgaWRlbnRpdHkgcHJvdmlkZXI6XCIpO1xuXHRcdGNvbnN0IHByb3ZpZGVyID0gYXdhaXQgcGljayhcIiAgQ2hvaWNlIChlbnRlciBmb3Igbm9uZSk6IFwiLCBbXCJBdXRoMFwiXSwgKGlkKSA9PiBpZCk7XG5cdFx0aWRwID0gcHJvdmlkZXIgPT09IFwiQXV0aDBcIiA/IFwiYXV0aDBcIiA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdGlmICghcG9zdG1hbikge1xuXHRcdGNvbnN0IGFuc3dlciA9IGF3YWl0IGFzayhcIlxcbiAgQ29uZmlndXJlIFBvc3RtYW4gd29ya3NwYWNlPyBbeWVzL25vXSAobm8pOiBcIik7XG5cdFx0cG9zdG1hbiA9IGFuc3dlciA9PT0gXCJ5ZXNcIiB8fCB1bmRlZmluZWQ7XG5cdH1cblxuXHRyZXR1cm4geyAuLi5jdHgsIG9wdHM6IHsgLi4uY3R4Lm9wdHMsIGRhdGFiYXNlLCBpZHAsIHBvc3RtYW4gfSB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb25maWd1cmUoY3R4OiBTY2FmZm9sZENvbnRleHQpOiBQcm9taXNlPFNjYWZmb2xkQ29udGV4dD4ge1xuXHRjb25zdCBoZWxsb0NvbnRyb2xsZXIgPSBjcmVhdGVIZWxsb0NvbnRyb2xsZXIoKTtcblx0Y29uc3QgZGV2Y29udGFpbmVyID0gbmV3IERldmNvbnRhaW5lck1vZGVsKGAke2N0eC5wcm9qZWN0TmFtZX0uYXBpYClcblx0XHQuYWRkRXh0ZW5zaW9uKFwiYmlvbWVqcy5iaW9tZVwiLCBcInZpdGVzdC5leHBsb3JlclwiKVxuXHRcdC5mb3J3YXJkUG9ydCgzMDAwKVxuXHRcdC5hZGRQb3N0U3RhcnRDb21tYW5kKFwibnBtIHdob2FtaSAyPi9kZXYvbnVsbCB8fCBucG0gbG9naW5cIik7XG5cdHJldHVybiB7XG5cdFx0Li4uY3R4LFxuXHRcdG1vZGVsczogY3R4Lm1vZGVsc1xuXHRcdFx0LnNldChNQUlOX1RTX0tFWSwgbmV3IE1haW5Uc01vZGVsKGAke2N0eC5wcm9qZWN0TmFtZX0uYXBpYCkpXG5cdFx0XHQuc2V0KERFVkNPTlRBSU5FUl9LRVksIGRldmNvbnRhaW5lciksXG5cdFx0Y29udHJvbGxlcnM6IFsuLi5jdHguY29udHJvbGxlcnMsIGhlbGxvQ29udHJvbGxlcl0sXG5cdH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlcihjdHg6IFNjYWZmb2xkQ29udGV4dCk6IFByb21pc2U8U2NhZmZvbGRDb250ZXh0PiB7XG5cdGNvbnN0IHsgdGFyZ2V0RGlyLCBwcm9qZWN0TmFtZSB9ID0gY3R4O1xuXG5cdGF3YWl0IFByb21pc2UuYWxsKFtcblx0XHRta2Rpcihqb2luKHRhcmdldERpciwgXCIudnNjb2RlXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KSxcblx0XHRta2Rpcihqb2luKHRhcmdldERpciwgXCJwcm9qZWN0c1wiLCBcImFwaVwiLCBcInNyY1wiLCBcImNvbnRyb2xsZXJzXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KSxcblx0XHRta2Rpcihqb2luKHRhcmdldERpciwgXCJjb25maWdcIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pLFxuXHRdKTtcblxuXHRjb25zdCB7IGNvbnRyb2xsZXJzIH0gPSBjdHg7XG5cdGNvbnN0IG1haW5Uc01vZGVsID0gY3R4Lm1vZGVscy5nZXQoTUFJTl9UU19LRVkpO1xuXG5cdGNvbnN0IHdyaXRlczogQXJyYXk8UHJvbWlzZTx1bmtub3duPj4gPSBbXG5cdFx0d3JpdGVGaWxlKGpvaW4odGFyZ2V0RGlyLCBcInBhY2thZ2UuanNvblwiKSwgcm9vdFBhY2thZ2VKc29uKHByb2plY3ROYW1lKSksXG5cdFx0d3JpdGVGaWxlKGpvaW4odGFyZ2V0RGlyLCBcInRzY29uZmlnLmpzb25cIiksIFRTQ09ORklHKSxcblx0XHR3cml0ZUZpbGUoam9pbih0YXJnZXREaXIsIFwicHJvamVjdHNcIiwgXCJhcGlcIiwgXCJwYWNrYWdlLmpzb25cIiksIGFwaVBhY2thZ2VKc29uKHByb2plY3ROYW1lKSksXG5cdFx0d3JpdGVGaWxlKGpvaW4odGFyZ2V0RGlyLCBcInByb2plY3RzXCIsIFwiYXBpXCIsIFwic3JjXCIsIFwic2FtcGxlLmNvbmZpZy50c1wiKSwgU0FNUExFX0NPTkZJR19UUyksXG5cdFx0d3JpdGVGaWxlKFxuXHRcdFx0am9pbih0YXJnZXREaXIsIFwicHJvamVjdHNcIiwgXCJhcGlcIiwgXCJzcmNcIiwgXCJzYW1wbGUuc2VydmljZS50c1wiKSxcblx0XHRcdFNBTVBMRV9TRVJWSUNFX1RTLFxuXHRcdCksXG5cdFx0d3JpdGVGaWxlKGpvaW4odGFyZ2V0RGlyLCBcImNvbmZpZ1wiLCBcImNvbmZpZy55YW1sXCIpLCBjb25maWdZYW1sKCkpLFxuXHRcdHdyaXRlRmlsZShqb2luKHRhcmdldERpciwgXCJjb25maWdcIiwgXCJjb25maWcuZGV2LnlhbWxcIiksIENPTkZJR19ERVZfWUFNTCksXG5cdFx0d3JpdGVGaWxlKGpvaW4odGFyZ2V0RGlyLCBcIi52c2NvZGVcIiwgXCJsYXVuY2guanNvblwiKSwgVlNDT0RFX0xBVU5DSF9KU09OKSxcblx0XHR3cml0ZUZpbGUoam9pbih0YXJnZXREaXIsIFwiLnZzY29kZVwiLCBcInNldHRpbmdzLmpzb25cIiksIHZzY29kZVNldHRpbmdzSnNvbihwcm9qZWN0TmFtZSkpLFxuXHRcdHdyaXRlRmlsZShqb2luKHRhcmdldERpciwgXCIuZ2l0aWdub3JlXCIpLCBHSVRJR05PUkUpLFxuXHRcdC4uLmNvbnRyb2xsZXJzLm1hcCgoYykgPT5cblx0XHRcdHdyaXRlRmlsZShcblx0XHRcdFx0am9pbih0YXJnZXREaXIsIFwicHJvamVjdHNcIiwgXCJhcGlcIiwgXCJzcmNcIiwgXCJjb250cm9sbGVyc1wiLCBjLmZpbGVOYW1lKSxcblx0XHRcdFx0Yy5yZW5kZXIoKSxcblx0XHRcdCksXG5cdFx0KSxcblx0XTtcblxuXHRpZiAobWFpblRzTW9kZWwpIHtcblx0XHRmb3IgKGNvbnN0IGMgb2YgY29udHJvbGxlcnMpIG1haW5Uc01vZGVsLmFkZENvbnRyb2xsZXIoYyk7XG5cdFx0d3JpdGVzLnB1c2goXG5cdFx0XHR3cml0ZUZpbGUoam9pbih0YXJnZXREaXIsIFwicHJvamVjdHNcIiwgXCJhcGlcIiwgXCJzcmNcIiwgXCJtYWluLnRzXCIpLCBtYWluVHNNb2RlbC5yZW5kZXIoKSksXG5cdFx0KTtcblx0fVxuXG5cdGF3YWl0IFByb21pc2UuYWxsKHdyaXRlcyk7XG5cdHJldHVybiBjdHg7XG59XG5cbmV4cG9ydCBjb25zdCBhcGlDb3JlRmVhdHVyZTogRmVhdHVyZSA9IHtcblx0bmFtZTogXCJhcGktY29yZVwiLFxuXHRyZXNvbHZlLFxuXHRjb25maWd1cmUsXG5cdHJlbmRlcixcbn07XG4iXSwibmFtZXMiOlsiYXBpQ29yZUZlYXR1cmUiLCJyZXNvbHZlIiwiY3R4Iiwib3B0cyIsInllcyIsImRhdGFiYXNlIiwiaWRwIiwicG9zdG1hbiIsImNvbnNvbGUiLCJsb2ciLCJkYiIsInBpY2siLCJpZCIsInVuZGVmaW5lZCIsInByb3ZpZGVyIiwiYW5zd2VyIiwiYXNrIiwiY29uZmlndXJlIiwiaGVsbG9Db250cm9sbGVyIiwiY3JlYXRlSGVsbG9Db250cm9sbGVyIiwiZGV2Y29udGFpbmVyIiwiRGV2Y29udGFpbmVyTW9kZWwiLCJwcm9qZWN0TmFtZSIsImFkZEV4dGVuc2lvbiIsImZvcndhcmRQb3J0IiwiYWRkUG9zdFN0YXJ0Q29tbWFuZCIsIm1vZGVscyIsInNldCIsIk1BSU5fVFNfS0VZIiwiTWFpblRzTW9kZWwiLCJERVZDT05UQUlORVJfS0VZIiwiY29udHJvbGxlcnMiLCJyZW5kZXIiLCJ0YXJnZXREaXIiLCJQcm9taXNlIiwiYWxsIiwibWtkaXIiLCJqb2luIiwicmVjdXJzaXZlIiwibWFpblRzTW9kZWwiLCJnZXQiLCJ3cml0ZXMiLCJ3cml0ZUZpbGUiLCJyb290UGFja2FnZUpzb24iLCJUU0NPTkZJRyIsImFwaVBhY2thZ2VKc29uIiwiU0FNUExFX0NPTkZJR19UUyIsIlNBTVBMRV9TRVJWSUNFX1RTIiwiY29uZmlnWWFtbCIsIkNPTkZJR19ERVZfWUFNTCIsIlZTQ09ERV9MQVVOQ0hfSlNPTiIsInZzY29kZVNldHRpbmdzSnNvbiIsIkdJVElHTk9SRSIsIm1hcCIsImMiLCJmaWxlTmFtZSIsImFkZENvbnRyb2xsZXIiLCJwdXNoIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF3R2FBOzs7ZUFBQUE7OzswQkF4R29COzBCQUNaO21DQUMrQjt1QkFDVTtzQ0FDeEI7NkJBQ0c7dUNBWWxDO0FBRVAsZUFBZUMsUUFBUUMsR0FBb0I7SUFDMUMsSUFBSUEsSUFBSUMsSUFBSSxDQUFDQyxHQUFHLEVBQUUsT0FBT0Y7SUFFekIsSUFBSSxFQUFFRyxRQUFRLEVBQUVDLEdBQUcsRUFBRUMsT0FBTyxFQUFFLEdBQUdMLElBQUlDLElBQUk7SUFFekMsSUFBSUUsWUFBWSxNQUFNO1FBQ3JCRyxRQUFRQyxHQUFHLENBQUM7UUFDWixNQUFNQyxLQUFLLE1BQU1DLElBQUFBLFdBQUksRUFBQywrQkFBK0I7WUFBQztTQUFxQixFQUFFLENBQUNDLEtBQU9BO1FBQ3JGUCxXQUFXSyxPQUFPLHVCQUF1QixZQUFZRztJQUN0RDtJQUVBLElBQUlQLE9BQU8sTUFBTTtRQUNoQkUsUUFBUUMsR0FBRyxDQUFDO1FBQ1osTUFBTUssV0FBVyxNQUFNSCxJQUFBQSxXQUFJLEVBQUMsK0JBQStCO1lBQUM7U0FBUSxFQUFFLENBQUNDLEtBQU9BO1FBQzlFTixNQUFN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
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "createHelloController", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return createHelloController;
9
+ }
10
+ });
11
+ const _classmodel = require("../../domain/class-model.js");
12
+ function createHelloController() {
13
+ return new _classmodel.ClassModel("HelloController", "hello.controller.ts").addImport("@decohere/cortex", "Controller", "Delete", "Field", "Get", "Param", "Post", "Put", "Query").addImport("../sample.service.js", "SampleService").decorateClass(`@Controller({ prefix: "/hello" })`).addBodyClass({
14
+ name: "HelloBody",
15
+ fields: [
16
+ {
17
+ decorator: `@Field("body", "message")`,
18
+ name: "message",
19
+ typeName: "string"
20
+ }
21
+ ]
22
+ }).addConstructorParam({
23
+ paramDecorators: [],
24
+ name: "sample",
25
+ typeName: "SampleService",
26
+ isPrivate: true,
27
+ isReadonly: true
28
+ }).defineMethod({
29
+ decorators: [
30
+ "@Get()"
31
+ ],
32
+ name: "getAll",
33
+ isAsync: true,
34
+ params: [
35
+ {
36
+ decorator: `@Query("filter")`,
37
+ name: "filter",
38
+ typeName: "string"
39
+ }
40
+ ],
41
+ body: `const greeting = await this.sample.getGreeting();\n\t\treturn { filter, message: greeting };`
42
+ }).defineMethod({
43
+ decorators: [
44
+ `@Get("/:id")`
45
+ ],
46
+ name: "getOne",
47
+ params: [
48
+ {
49
+ decorator: `@Param("id")`,
50
+ name: "id",
51
+ typeName: "string"
52
+ }
53
+ ],
54
+ body: `return { id, message: \`Hello \${id}!\` };`
55
+ }).defineMethod({
56
+ decorators: [
57
+ `@Post("/")`
58
+ ],
59
+ name: "create",
60
+ params: [
61
+ {
62
+ name: "body",
63
+ typeName: "HelloBody"
64
+ }
65
+ ],
66
+ body: `return { message: body.message };`
67
+ }).defineMethod({
68
+ decorators: [
69
+ `@Put("/:id")`
70
+ ],
71
+ name: "update",
72
+ params: [
73
+ {
74
+ decorator: `@Param("id")`,
75
+ name: "id",
76
+ typeName: "string"
77
+ },
78
+ {
79
+ name: "body",
80
+ typeName: "HelloBody"
81
+ }
82
+ ],
83
+ body: `return { id, message: body.message };`
84
+ }).defineMethod({
85
+ decorators: [
86
+ `@Delete("/:id")`
87
+ ],
88
+ name: "remove",
89
+ params: [
90
+ {
91
+ decorator: `@Param("id")`,
92
+ name: "id",
93
+ typeName: "string"
94
+ }
95
+ ],
96
+ body: `return { id, deleted: true };`
97
+ });
98
+ }
99
+
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9hcGktY29yZS9oZWxsby1jb250cm9sbGVyLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsYXNzTW9kZWwgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2NsYXNzLW1vZGVsLmpzXCI7XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBzZWVkIGNvbnRyb2xsZXIgc2NhZmZvbGRlZCBpbnRvIGV2ZXJ5IG5ldyBhcGkgcHJvamVjdC5cbiAqXG4gKiBEZWZpbmVzIG9ubHkgdGhlIGJhc2UgQ1JVRCBzdHJ1Y3R1cmUuICBBdXRoIGRlY29yYXRvcnMsIElQcmluY2lwYWxQcm92aWRlclxuICogaW5qZWN0aW9uLCBhbmQgb3RoZXIgY3Jvc3MtY3V0dGluZyBjb25jZXJucyBhcmUgYWRkZWQgYnkgdGhlIHJlbGV2YW50XG4gKiBmZWF0dXJlIGR1cmluZyBpdHMgY29uZmlndXJlIHBoYXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGVsbG9Db250cm9sbGVyKCk6IENsYXNzTW9kZWwge1xuXHRyZXR1cm4gbmV3IENsYXNzTW9kZWwoXCJIZWxsb0NvbnRyb2xsZXJcIiwgXCJoZWxsby5jb250cm9sbGVyLnRzXCIpXG5cdFx0LmFkZEltcG9ydChcblx0XHRcdFwiQGRlY29oZXJlL2NvcnRleFwiLFxuXHRcdFx0XCJDb250cm9sbGVyXCIsXG5cdFx0XHRcIkRlbGV0ZVwiLFxuXHRcdFx0XCJGaWVsZFwiLFxuXHRcdFx0XCJHZXRcIixcblx0XHRcdFwiUGFyYW1cIixcblx0XHRcdFwiUG9zdFwiLFxuXHRcdFx0XCJQdXRcIixcblx0XHRcdFwiUXVlcnlcIixcblx0XHQpXG5cdFx0LmFkZEltcG9ydChcIi4uL3NhbXBsZS5zZXJ2aWNlLmpzXCIsIFwiU2FtcGxlU2VydmljZVwiKVxuXHRcdC5kZWNvcmF0ZUNsYXNzKGBAQ29udHJvbGxlcih7IHByZWZpeDogXCIvaGVsbG9cIiB9KWApXG5cdFx0LmFkZEJvZHlDbGFzcyh7XG5cdFx0XHRuYW1lOiBcIkhlbGxvQm9keVwiLFxuXHRcdFx0ZmllbGRzOiBbXG5cdFx0XHRcdHsgZGVjb3JhdG9yOiBgQEZpZWxkKFwiYm9keVwiLCBcIm1lc3NhZ2VcIilgLCBuYW1lOiBcIm1lc3NhZ2VcIiwgdHlwZU5hbWU6IFwic3RyaW5nXCIgfSxcblx0XHRcdF0sXG5cdFx0fSlcblx0XHQuYWRkQ29uc3RydWN0b3JQYXJhbSh7XG5cdFx0XHRwYXJhbURlY29yYXRvcnM6IFtdLFxuXHRcdFx0bmFtZTogXCJzYW1wbGVcIixcblx0XHRcdHR5cGVOYW1lOiBcIlNhbXBsZVNlcnZpY2VcIixcblx0XHRcdGlzUHJpdmF0ZTogdHJ1ZSxcblx0XHRcdGlzUmVhZG9ubHk6IHRydWUsXG5cdFx0fSlcblx0XHQuZGVmaW5lTWV0aG9kKHtcblx0XHRcdGRlY29yYXRvcnM6IFtcIkBHZXQoKVwiXSxcblx0XHRcdG5hbWU6IFwiZ2V0QWxsXCIsXG5cdFx0XHRpc0FzeW5jOiB0cnVlLFxuXHRcdFx0cGFyYW1zOiBbeyBkZWNvcmF0b3I6IGBAUXVlcnkoXCJmaWx0ZXJcIilgLCBuYW1lOiBcImZpbHRlclwiLCB0eXBlTmFtZTogXCJzdHJpbmdcIiB9XSxcblx0XHRcdGJvZHk6IGBjb25zdCBncmVldGluZyA9IGF3YWl0IHRoaXMuc2FtcGxlLmdldEdyZWV0aW5nKCk7XFxuXFx0XFx0cmV0dXJuIHsgZmlsdGVyLCBtZXNzYWdlOiBncmVldGluZyB9O2AsXG5cdFx0fSlcblx0XHQuZGVmaW5lTWV0aG9kKHtcblx0XHRcdGRlY29yYXRvcnM6IFtgQEdldChcIi86aWRcIilgXSxcblx0XHRcdG5hbWU6IFwiZ2V0T25lXCIsXG5cdFx0XHRwYXJhbXM6IFt7IGRlY29yYXRvcjogYEBQYXJhbShcImlkXCIpYCwgbmFtZTogXCJpZFwiLCB0eXBlTmFtZTogXCJzdHJpbmdcIiB9XSxcblx0XHRcdGJvZHk6IGByZXR1cm4geyBpZCwgbWVzc2FnZTogXFxgSGVsbG8gXFwke2lkfSFcXGAgfTtgLFxuXHRcdH0pXG5cdFx0LmRlZmluZU1ldGhvZCh7XG5cdFx0XHRkZWNvcmF0b3JzOiBbYEBQb3N0KFwiL1wiKWBdLFxuXHRcdFx0bmFtZTogXCJjcmVhdGVcIixcblx0XHRcdHBhcmFtczogW3sgbmFtZTogXCJib2R5XCIsIHR5cGVOYW1lOiBcIkhlbGxvQm9keVwiIH1dLFxuXHRcdFx0Ym9keTogYHJldHVybiB7IG1lc3NhZ2U6IGJvZHkubWVzc2FnZSB9O2AsXG5cdFx0fSlcblx0XHQuZGVmaW5lTWV0aG9kKHtcblx0XHRcdGRlY29yYXRvcnM6IFtgQFB1dChcIi86aWRcIilgXSxcblx0XHRcdG5hbWU6IFwidXBkYXRlXCIsXG5cdFx0XHRwYXJhbXM6IFtcblx0XHRcdFx0eyBkZWNvcmF0b3I6IGBAUGFyYW0oXCJpZFwiKWAsIG5hbWU6IFwiaWRcIiwgdHlwZU5hbWU6IFwic3RyaW5nXCIgfSxcblx0XHRcdFx0eyBuYW1lOiBcImJvZHlcIiwgdHlwZU5hbWU6IFwiSGVsbG9Cb2R5XCIgfSxcblx0XHRcdF0sXG5cdFx0XHRib2R5OiBgcmV0dXJuIHsgaWQsIG1lc3NhZ2U6IGJvZHkubWVzc2FnZSB9O2AsXG5cdFx0fSlcblx0XHQuZGVmaW5lTWV0aG9kKHtcblx0XHRcdGRlY29yYXRvcnM6IFtgQERlbGV0ZShcIi86aWRcIilgXSxcblx0XHRcdG5hbWU6IFwicmVtb3ZlXCIsXG5cdFx0XHRwYXJhbXM6IFt7IGRlY29yYXRvcjogYEBQYXJhbShcImlkXCIpYCwgbmFtZTogXCJpZFwiLCB0eXBlTmFtZTogXCJzdHJpbmdcIiB9XSxcblx0XHRcdGJvZHk6IGByZXR1cm4geyBpZCwgZGVsZXRlZDogdHJ1ZSB9O2AsXG5cdFx0fSk7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlSGVsbG9Db250cm9sbGVyIiwiQ2xhc3NNb2RlbCIsImFkZEltcG9ydCIsImRlY29yYXRlQ2xhc3MiLCJhZGRCb2R5Q2xhc3MiLCJuYW1lIiwiZmllbGRzIiwiZGVjb3JhdG9yIiwidHlwZU5hbWUiLCJhZGRDb25zdHJ1Y3RvclBhcmFtIiwicGFyYW1EZWNvcmF0b3JzIiwiaXNQcml2YXRlIiwiaXNSZWFkb25seSIsImRlZmluZU1ldGhvZCIsImRlY29yYXRvcnMiLCJpc0FzeW5jIiwicGFyYW1zIiwiYm9keSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFTZ0JBOzs7ZUFBQUE7Ozs0QkFUVztBQVNwQixTQUFTQTtJQUNmLE9BQU8sSUFBSUMsc0JBQVUsQ0FBQyxtQkFBbUIsdUJBQ3ZDQyxTQUFTLENBQ1Qsb0JBQ0EsY0FDQSxVQUNBLFNBQ0EsT0FDQSxTQUNBLFFBQ0EsT0FDQSxTQUVBQSxTQUFTLENBQUMsd0JBQXdCLGlCQUNsQ0MsYUFBYSxDQUFDLENBQUMsaUNBQWlDLENBQUMsRUFDakRDLFlBQVksQ0FBQztRQUNiQyxNQUFNO1FBQ05DLFFBQVE7WUFDUDtnQkFBRUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDO2dCQUFFRixNQUFNO2dCQUFXRyxVQUFVO1lBQVM7U0FDOUU7SUFDRixHQUNDQyxtQkFBbUIsQ0FBQztRQUNwQkMsaUJBQWlCLEVBQUU7UUFDbkJMLE1BQU07UUFDTkcsVUFBVTtRQUNWRyxXQUFXO1FBQ1hDLFlBQVk7SUFDYixHQUNDQyxZQUFZLENBQUM7UUFDYkMsWUFBWTtZQUFDO1NBQVM7UUFDdEJULE1BQU07UUFDTlUsU0FBUztRQUNUQyxRQUFRO1lBQUM7Z0JBQUVULFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFBRUYsTUFBTTtnQkFBVUcsVUFBVTtZQUFTO1NBQUU7UUFDL0VTLE1BQU0sQ0FBQyw0RkFBNEYsQ0FBQztJQUNyRyxHQUNDSixZQUFZLENBQUM7UUFDYkMsWUFBWTtZQUFDLENBQUMsWUFBWSxDQUFDO1NBQUM7UUFDNUJULE1BQU07UUFDTlcsUUFBUTtZQUFDO2dCQUFFVCxXQUFXLENBQUMsWUFBWSxDQUFDO2dCQUFFRixNQUFNO2dCQUFNRyxVQUFVO1lBQVM7U0FBRTtRQUN2RVMsTUFBTSxDQUFDLDBDQUEwQyxDQUFDO0lBQ25ELEdBQ0NKLFlBQVksQ0FBQztRQUNiQyxZQUFZO1lBQUMsQ0FBQyxVQUFVLENBQUM7U0FBQztRQUMxQlQsTUFBTTtRQUNOVyxRQUFRO1lBQUM7Z0JBQUVYLE1BQU07Z0JBQVFHLFVBQVU7WUFBWTtTQUFFO1FBQ2pEUyxNQUFNLENBQUMsaUNBQWlDLENBQUM7SUFDMUMsR0FDQ0osWUFBWSxDQUFDO1FBQ2JDLFlBQVk7WUFBQyxDQUFDLFlBQVksQ0FBQztTQUFDO1FBQzVCVCxNQUFNO1FBQ05XLFFBQVE7WUFDUDtnQkFBRVQsV0FBVyxDQUFDLFlBQVksQ0FBQztnQkFBRUYsTUFBTTtnQkFBTUcsVUFBVTtZQUFTO1lBQzVEO2dCQUFFSCxNQUFNO2dCQUFRRyxVQUFVO1lBQVk7U0FDdEM7UUFDRFMsTUFBTSxDQUFDLHFDQUFxQyxDQUFDO0lBQzlDLEdBQ0NKLFlBQVksQ0FBQztRQUNiQyxZQUFZO1lBQUMsQ0FBQyxlQUFlLENBQUM7U0FBQztRQUMvQlQsTUFBTTtRQUNOVyxRQUFRO1lBQUM7Z0JBQUVULFdBQVcsQ0FBQyxZQUFZLENBQUM7Z0JBQUVGLE1BQU07Z0JBQU1HLFVBQVU7WUFBUztTQUFFO1FBQ3ZFUyxNQUFNLENBQUMsNkJBQTZCLENBQUM7SUFDdEM7QUFDRiJ9