@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,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "auth0ConfigYaml", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return auth0ConfigYaml;
9
+ }
10
+ });
11
+ function auth0ConfigYaml(issuerBaseUrl, audience) {
12
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: intentional YAML env-var placeholders
13
+ const issuer = issuerBaseUrl ?? "${AUTH0_ISSUER_BASE_URL}";
14
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: intentional YAML env-var placeholders
15
+ const aud = audience ?? "${AUTH0_AUDIENCE}";
16
+ return `auth:\n discoveryUrl: ${issuer}\n audience: ${aud}\n`;
17
+ }
18
+
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9hdXRoMC9wcm9kLWNvbmZpZy50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gYXV0aDBDb25maWdZYW1sKGlzc3VlckJhc2VVcmw/OiBzdHJpbmcsIGF1ZGllbmNlPzogc3RyaW5nKTogc3RyaW5nIHtcblx0Ly8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub1RlbXBsYXRlQ3VybHlJblN0cmluZzogaW50ZW50aW9uYWwgWUFNTCBlbnYtdmFyIHBsYWNlaG9sZGVyc1xuXHRjb25zdCBpc3N1ZXIgPSBpc3N1ZXJCYXNlVXJsID8/IFwiJHtBVVRIMF9JU1NVRVJfQkFTRV9VUkx9XCI7XG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IGludGVudGlvbmFsIFlBTUwgZW52LXZhciBwbGFjZWhvbGRlcnNcblx0Y29uc3QgYXVkID0gYXVkaWVuY2UgPz8gXCIke0FVVEgwX0FVRElFTkNFfVwiO1xuXHRyZXR1cm4gYGF1dGg6XFxuICBkaXNjb3ZlcnlVcmw6ICR7aXNzdWVyfVxcbiAgYXVkaWVuY2U6ICR7YXVkfVxcbmA7XG59XG4iXSwibmFtZXMiOlsiYXV0aDBDb25maWdZYW1sIiwiaXNzdWVyQmFzZVVybCIsImF1ZGllbmNlIiwiaXNzdWVyIiwiYXVkIl0sIm1hcHBpbmdzIjoiOzs7OytCQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsZ0JBQWdCQyxhQUFzQixFQUFFQyxRQUFpQjtJQUN4RSw4RkFBOEY7SUFDOUYsTUFBTUMsU0FBU0YsaUJBQWlCO0lBQ2hDLDhGQUE4RjtJQUM5RixNQUFNRyxNQUFNRixZQUFZO0lBQ3hCLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRUMsT0FBTyxjQUFjLEVBQUVDLElBQUksRUFBRSxDQUFDO0FBQ2hFIn0=
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "cliCoreFeature", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return cliCoreFeature;
9
+ }
10
+ });
11
+ const _promises = require("node:fs/promises");
12
+ const _nodepath = require("node:path");
13
+ const _scaffoldfilestemplate = require("./scaffold-files.template.js");
14
+ async function render(ctx) {
15
+ const { targetDir, projectName } = ctx;
16
+ await (0, _promises.mkdir)((0, _nodepath.join)(targetDir, ".vscode"), {
17
+ recursive: true
18
+ });
19
+ await (0, _promises.mkdir)((0, _nodepath.join)(targetDir, "projects", "app", "src"), {
20
+ recursive: true
21
+ });
22
+ await Promise.all([
23
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "package.json"), (0, _scaffoldfilestemplate.rootPackageJson)(projectName)),
24
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "tsconfig.json"), _scaffoldfilestemplate.TSCONFIG),
25
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "projects", "app", "package.json"), (0, _scaffoldfilestemplate.appPackageJson)(projectName)),
26
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, "projects", "app", "src", "main.ts"), _scaffoldfilestemplate.MAIN_TS),
27
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, ".vscode", "launch.json"), _scaffoldfilestemplate.VSCODE_LAUNCH_JSON),
28
+ (0, _promises.writeFile)((0, _nodepath.join)(targetDir, ".vscode", "settings.json"), (0, _scaffoldfilestemplate.vscodeSettingsJson)(projectName))
29
+ ]);
30
+ return ctx;
31
+ }
32
+ const cliCoreFeature = {
33
+ name: "cli-core",
34
+ render
35
+ };
36
+
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9jbGktY29yZS9mZWF0dXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1rZGlyLCB3cml0ZUZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgRmVhdHVyZSwgU2NhZmZvbGRDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2RvbWFpbi9pbmRleC5qc1wiO1xuaW1wb3J0IHtcblx0YXBwUGFja2FnZUpzb24sXG5cdE1BSU5fVFMsXG5cdHJvb3RQYWNrYWdlSnNvbixcblx0VFNDT05GSUcsXG5cdFZTQ09ERV9MQVVOQ0hfSlNPTixcblx0dnNjb2RlU2V0dGluZ3NKc29uLFxufSBmcm9tIFwiLi9zY2FmZm9sZC1maWxlcy50ZW1wbGF0ZS5qc1wiO1xuXG5hc3luYyBmdW5jdGlvbiByZW5kZXIoY3R4OiBTY2FmZm9sZENvbnRleHQpOiBQcm9taXNlPFNjYWZmb2xkQ29udGV4dD4ge1xuXHRjb25zdCB7IHRhcmdldERpciwgcHJvamVjdE5hbWUgfSA9IGN0eDtcblxuXHRhd2FpdCBta2Rpcihqb2luKHRhcmdldERpciwgXCIudnNjb2RlXCIpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0YXdhaXQgbWtkaXIoam9pbih0YXJnZXREaXIsIFwicHJvamVjdHNcIiwgXCJhcHBcIiwgXCJzcmNcIiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG5cdGF3YWl0IFByb21pc2UuYWxsKFtcblx0XHR3cml0ZUZpbGUoam9pbih0YXJnZXREaXIsIFwicGFja2FnZS5qc29uXCIpLCByb290UGFja2FnZUpzb24ocHJvamVjdE5hbWUpKSxcblx0XHR3cml0ZUZpbGUoam9pbih0YXJnZXREaXIsIFwidHNjb25maWcuanNvblwiKSwgVFNDT05GSUcpLFxuXHRcdHdyaXRlRmlsZShqb2luKHRhcmdldERpciwgXCJwcm9qZWN0c1wiLCBcImFwcFwiLCBcInBhY2thZ2UuanNvblwiKSwgYXBwUGFja2FnZUpzb24ocHJvamVjdE5hbWUpKSxcblx0XHR3cml0ZUZpbGUoam9pbih0YXJnZXREaXIsIFwicHJvamVjdHNcIiwgXCJhcHBcIiwgXCJzcmNcIiwgXCJtYWluLnRzXCIpLCBNQUlOX1RTKSxcblx0XHR3cml0ZUZpbGUoam9pbih0YXJnZXREaXIsIFwiLnZzY29kZVwiLCBcImxhdW5jaC5qc29uXCIpLCBWU0NPREVfTEFVTkNIX0pTT04pLFxuXHRcdHdyaXRlRmlsZShqb2luKHRhcmdldERpciwgXCIudnNjb2RlXCIsIFwic2V0dGluZ3MuanNvblwiKSwgdnNjb2RlU2V0dGluZ3NKc29uKHByb2plY3ROYW1lKSksXG5cdF0pO1xuXG5cdHJldHVybiBjdHg7XG59XG5cbmV4cG9ydCBjb25zdCBjbGlDb3JlRmVhdHVyZTogRmVhdHVyZSA9IHtcblx0bmFtZTogXCJjbGktY29yZVwiLFxuXHRyZW5kZXIsXG59O1xuIl0sIm5hbWVzIjpbImNsaUNvcmVGZWF0dXJlIiwicmVuZGVyIiwiY3R4IiwidGFyZ2V0RGlyIiwicHJvamVjdE5hbWUiLCJta2RpciIsImpvaW4iLCJyZWN1cnNpdmUiLCJQcm9taXNlIiwiYWxsIiwid3JpdGVGaWxlIiwicm9vdFBhY2thZ2VKc29uIiwiVFNDT05GSUciLCJhcHBQYWNrYWdlSnNvbiIsIk1BSU5fVFMiLCJWU0NPREVfTEFVTkNIX0pTT04iLCJ2c2NvZGVTZXR0aW5nc0pzb24iLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7OytCQThCYUE7OztlQUFBQTs7OzBCQTlCb0I7MEJBQ1o7dUNBU2Q7QUFFUCxlQUFlQyxPQUFPQyxHQUFvQjtJQUN6QyxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxFQUFFLEdBQUdGO0lBRW5DLE1BQU1HLElBQUFBLGVBQUssRUFBQ0MsSUFBQUEsY0FBSSxFQUFDSCxXQUFXLFlBQVk7UUFBRUksV0FBVztJQUFLO0lBQzFELE1BQU1GLElBQUFBLGVBQUssRUFBQ0MsSUFBQUEsY0FBSSxFQUFDSCxXQUFXLFlBQVksT0FBTyxRQUFRO1FBQUVJLFdBQVc7SUFBSztJQUV6RSxNQUFNQyxRQUFRQyxHQUFHLENBQUM7UUFDakJDLElBQUFBLG1CQUFTLEVBQUNKLElBQUFBLGNBQUksRUFBQ0gsV0FBVyxpQkFBaUJRLElBQUFBLHNDQUFlLEVBQUNQO1FBQzNETSxJQUFBQSxtQkFBUyxFQUFDSixJQUFBQSxjQUFJLEVBQUNILFdBQVcsa0JBQWtCUywrQkFBUTtRQUNwREYsSUFBQUEsbUJBQVMsRUFBQ0osSUFBQUEsY0FBSSxFQUFDSCxXQUFXLFlBQVksT0FBTyxpQkFBaUJVLElBQUFBLHFDQUFjLEVBQUNUO1FBQzdFTSxJQUFBQSxtQkFBUyxFQUFDSixJQUFBQSxjQUFJLEVBQUNILFdBQVcsWUFBWSxPQUFPLE9BQU8sWUFBWVcsOEJBQU87UUFDdkVKLElBQUFBLG1CQUFTLEVBQUNKLElBQUFBLGNBQUksRUFBQ0gsV0FBVyxXQUFXLGdCQUFnQlkseUNBQWtCO1FBQ3ZFTCxJQUFBQSxtQkFBUyxFQUFDSixJQUFBQSxjQUFJLEVBQUNILFdBQVcsV0FBVyxrQkFBa0JhLElBQUFBLHlDQUFrQixFQUFDWjtLQUMxRTtJQUVELE9BQU9GO0FBQ1I7QUFFTyxNQUFNRixpQkFBMEI7SUFDdENpQixNQUFNO0lBQ05oQjtBQUNEIn0=
@@ -0,0 +1,103 @@
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 MAIN_TS () {
13
+ return MAIN_TS;
14
+ },
15
+ get TSCONFIG () {
16
+ return TSCONFIG;
17
+ },
18
+ get VSCODE_LAUNCH_JSON () {
19
+ return VSCODE_LAUNCH_JSON;
20
+ },
21
+ get appPackageJson () {
22
+ return appPackageJson;
23
+ },
24
+ get rootPackageJson () {
25
+ return rootPackageJson;
26
+ },
27
+ get vscodeSettingsJson () {
28
+ return vscodeSettingsJson;
29
+ }
30
+ });
31
+ const _version = require("../../version.js");
32
+ const TSCONFIG = JSON.stringify({
33
+ compilerOptions: {
34
+ target: "ES2022",
35
+ module: "NodeNext",
36
+ moduleResolution: "NodeNext",
37
+ strict: true,
38
+ skipLibCheck: true
39
+ },
40
+ include: [
41
+ "projects"
42
+ ]
43
+ }, null, 2);
44
+ const VSCODE_LAUNCH_JSON = JSON.stringify({
45
+ version: "0.2.0",
46
+ configurations: [
47
+ {
48
+ name: "Build",
49
+ type: "node",
50
+ request: "launch",
51
+ runtimeExecutable: "pnpm",
52
+ runtimeArgs: [
53
+ "build"
54
+ ],
55
+ console: "integratedTerminal",
56
+ cwd: `\${workspaceFolder}`
57
+ },
58
+ {
59
+ name: "Serve / Dev",
60
+ type: "node",
61
+ request: "launch",
62
+ runtimeExecutable: "pnpm",
63
+ runtimeArgs: [
64
+ "dev"
65
+ ],
66
+ console: "integratedTerminal",
67
+ cwd: `\${workspaceFolder}`
68
+ }
69
+ ]
70
+ }, null, 2);
71
+ function rootPackageJson(name) {
72
+ return JSON.stringify({
73
+ name,
74
+ version: "0.0.1",
75
+ type: "module",
76
+ scripts: {
77
+ build: "forge build",
78
+ "build:watch": "forge build --watch",
79
+ dev: "flux serve"
80
+ },
81
+ devDependencies: {
82
+ "@decohere/terminal": _version.CREATE_VERSION,
83
+ typescript: "^6.0.3"
84
+ }
85
+ }, null, 2);
86
+ }
87
+ function appPackageJson(name) {
88
+ return JSON.stringify({
89
+ name: `@${name}/app`,
90
+ version: "0.0.1",
91
+ type: "module",
92
+ main: "src/main.ts"
93
+ }, null, 2);
94
+ }
95
+ function vscodeSettingsJson(name) {
96
+ return JSON.stringify({
97
+ "window.title": `${name}\${separator}\${activeEditorShort}`,
98
+ "window.titleSeparator": " | "
99
+ }, null, 2);
100
+ }
101
+ const MAIN_TS = `console.log("Hello from Decohere!");\n`;
102
+
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9jbGktY29yZS9zY2FmZm9sZC1maWxlcy50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuLi8uLi92ZXJzaW9uLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBUU0NPTkZJRyA9IEpTT04uc3RyaW5naWZ5KFxuXHR7XG5cdFx0Y29tcGlsZXJPcHRpb25zOiB7XG5cdFx0XHR0YXJnZXQ6IFwiRVMyMDIyXCIsXG5cdFx0XHRtb2R1bGU6IFwiTm9kZU5leHRcIixcblx0XHRcdG1vZHVsZVJlc29sdXRpb246IFwiTm9kZU5leHRcIixcblx0XHRcdHN0cmljdDogdHJ1ZSxcblx0XHRcdHNraXBMaWJDaGVjazogdHJ1ZSxcblx0XHR9LFxuXHRcdGluY2x1ZGU6IFtcInByb2plY3RzXCJdLFxuXHR9LFxuXHRudWxsLFxuXHQyLFxuKTtcblxuZXhwb3J0IGNvbnN0IFZTQ09ERV9MQVVOQ0hfSlNPTiA9IEpTT04uc3RyaW5naWZ5KFxuXHR7XG5cdFx0dmVyc2lvbjogXCIwLjIuMFwiLFxuXHRcdGNvbmZpZ3VyYXRpb25zOiBbXG5cdFx0XHR7XG5cdFx0XHRcdG5hbWU6IFwiQnVpbGRcIixcblx0XHRcdFx0dHlwZTogXCJub2RlXCIsXG5cdFx0XHRcdHJlcXVlc3Q6IFwibGF1bmNoXCIsXG5cdFx0XHRcdHJ1bnRpbWVFeGVjdXRhYmxlOiBcInBucG1cIixcblx0XHRcdFx0cnVudGltZUFyZ3M6IFtcImJ1aWxkXCJdLFxuXHRcdFx0XHRjb25zb2xlOiBcImludGVncmF0ZWRUZXJtaW5hbFwiLFxuXHRcdFx0XHRjd2Q6IGBcXCR7d29ya3NwYWNlRm9sZGVyfWAsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRuYW1lOiBcIlNlcnZlIC8gRGV2XCIsXG5cdFx0XHRcdHR5cGU6IFwibm9kZVwiLFxuXHRcdFx0XHRyZXF1ZXN0OiBcImxhdW5jaFwiLFxuXHRcdFx0XHRydW50aW1lRXhlY3V0YWJsZTogXCJwbnBtXCIsXG5cdFx0XHRcdHJ1bnRpbWVBcmdzOiBbXCJkZXZcIl0sXG5cdFx0XHRcdGNvbnNvbGU6IFwiaW50ZWdyYXRlZFRlcm1pbmFsXCIsXG5cdFx0XHRcdGN3ZDogYFxcJHt3b3Jrc3BhY2VGb2xkZXJ9YCxcblx0XHRcdH0sXG5cdFx0XSxcblx0fSxcblx0bnVsbCxcblx0Mixcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiByb290UGFja2FnZUpzb24obmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KFxuXHRcdHtcblx0XHRcdG5hbWUsXG5cdFx0XHR2ZXJzaW9uOiBcIjAuMC4xXCIsXG5cdFx0XHR0eXBlOiBcIm1vZHVsZVwiLFxuXHRcdFx0c2NyaXB0czoge1xuXHRcdFx0XHRidWlsZDogXCJmb3JnZSBidWlsZFwiLFxuXHRcdFx0XHRcImJ1aWxkOndhdGNoXCI6IFwiZm9yZ2UgYnVpbGQgLS13YXRjaFwiLFxuXHRcdFx0XHRkZXY6IFwiZmx1eCBzZXJ2ZVwiLFxuXHRcdFx0fSxcblx0XHRcdGRldkRlcGVuZGVuY2llczoge1xuXHRcdFx0XHRcIkBkZWNvaGVyZS90ZXJtaW5hbFwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFx0dHlwZXNjcmlwdDogXCJeNi4wLjNcIixcblx0XHRcdH0sXG5cdFx0fSxcblx0XHRudWxsLFxuXHRcdDIsXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBQYWNrYWdlSnNvbihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkoXG5cdFx0e1xuXHRcdFx0bmFtZTogYEAke25hbWV9L2FwcGAsXG5cdFx0XHR2ZXJzaW9uOiBcIjAuMC4xXCIsXG5cdFx0XHR0eXBlOiBcIm1vZHVsZVwiLFxuXHRcdFx0bWFpbjogXCJzcmMvbWFpbi50c1wiLFxuXHRcdH0sXG5cdFx0bnVsbCxcblx0XHQyLFxuXHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdnNjb2RlU2V0dGluZ3NKc29uKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiBKU09OLnN0cmluZ2lmeShcblx0XHR7XG5cdFx0XHRcIndpbmRvdy50aXRsZVwiOiBgJHtuYW1lfVxcJHtzZXBhcmF0b3J9XFwke2FjdGl2ZUVkaXRvclNob3J0fWAsXG5cdFx0XHRcIndpbmRvdy50aXRsZVNlcGFyYXRvclwiOiBcIiB8IFwiLFxuXHRcdH0sXG5cdFx0bnVsbCxcblx0XHQyLFxuXHQpO1xufVxuXG5leHBvcnQgY29uc3QgTUFJTl9UUyA9IGBjb25zb2xlLmxvZyhcIkhlbGxvIGZyb20gRGVjb2hlcmUhXCIpO1xcbmA7XG4iXSwibmFtZXMiOlsiTUFJTl9UUyIsIlRTQ09ORklHIiwiVlNDT0RFX0xBVU5DSF9KU09OIiwiYXBwUGFja2FnZUpzb24iLCJyb290UGFja2FnZUpzb24iLCJ2c2NvZGVTZXR0aW5nc0pzb24iLCJKU09OIiwic3RyaW5naWZ5IiwiY29tcGlsZXJPcHRpb25zIiwidGFyZ2V0IiwibW9kdWxlIiwibW9kdWxlUmVzb2x1dGlvbiIsInN0cmljdCIsInNraXBMaWJDaGVjayIsImluY2x1ZGUiLCJ2ZXJzaW9uIiwiY29uZmlndXJhdGlvbnMiLCJuYW1lIiwidHlwZSIsInJlcXVlc3QiLCJydW50aW1lRXhlY3V0YWJsZSIsInJ1bnRpbWVBcmdzIiwiY29uc29sZSIsImN3ZCIsInNjcmlwdHMiLCJidWlsZCIsImRldiIsImRldkRlcGVuZGVuY2llcyIsIkNSRUFURV9WRVJTSU9OIiwidHlwZXNjcmlwdCIsIm1haW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBMEZhQTtlQUFBQTs7UUF4RkFDO2VBQUFBOztRQWVBQztlQUFBQTs7UUFpREdDO2VBQUFBOztRQXJCQUM7ZUFBQUE7O1FBa0NBQztlQUFBQTs7O3lCQS9FZTtBQUV4QixNQUFNSixXQUFXSyxLQUFLQyxTQUFTLENBQ3JDO0lBQ0NDLGlCQUFpQjtRQUNoQkMsUUFBUTtRQUNSQyxRQUFRO1FBQ1JDLGtCQUFrQjtRQUNsQkMsUUFBUTtRQUNSQyxjQUFjO0lBQ2Y7SUFDQUMsU0FBUztRQUFDO0tBQVc7QUFDdEIsR0FDQSxNQUNBO0FBR00sTUFBTVoscUJBQXFCSSxLQUFLQyxTQUFTLENBQy9DO0lBQ0NRLFNBQVM7SUFDVEMsZ0JBQWdCO1FBQ2Y7WUFDQ0MsTUFBTTtZQUNOQyxNQUFNO1lBQ05DLFNBQVM7WUFDVEMsbUJBQW1CO1lBQ25CQyxhQUFhO2dCQUFDO2FBQVE7WUFDdEJDLFNBQVM7WUFDVEMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1FBQzNCO1FBQ0E7WUFDQ04sTUFBTTtZQUNOQyxNQUFNO1lBQ05DLFNBQVM7WUFDVEMsbUJBQW1CO1lBQ25CQyxhQUFhO2dCQUFDO2FBQU07WUFDcEJDLFNBQVM7WUFDVEMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1FBQzNCO0tBQ0E7QUFDRixHQUNBLE1BQ0E7QUFHTSxTQUFTbkIsZ0JBQWdCYSxJQUFZO0lBQzNDLE9BQU9YLEtBQUtDLFNBQVMsQ0FDcEI7UUFDQ1U7UUFDQUYsU0FBUztRQUNURyxNQUFNO1FBQ05NLFNBQVM7WUFDUkMsT0FBTztZQUNQLGVBQWU7WUFDZkMsS0FBSztRQUNOO1FBQ0FDLGlCQUFpQjtZQUNoQixzQkFBc0JDLHVCQUFjO1lBQ3BDQyxZQUFZO1FBQ2I7SUFDRCxHQUNBLE1BQ0E7QUFFRjtBQUVPLFNBQVMxQixlQUFlYyxJQUFZO0lBQzFDLE9BQU9YLEtBQUtDLFNBQVMsQ0FDcEI7UUFDQ1UsTUFBTSxDQUFDLENBQUMsRUFBRUEsS0FBSyxJQUFJLENBQUM7UUFDcEJGLFNBQVM7UUFDVEcsTUFBTTtRQUNOWSxNQUFNO0lBQ1AsR0FDQSxNQUNBO0FBRUY7QUFFTyxTQUFTekIsbUJBQW1CWSxJQUFZO0lBQzlDLE9BQU9YLEtBQUtDLFNBQVMsQ0FDcEI7UUFDQyxnQkFBZ0IsR0FBR1UsS0FBSyxrQ0FBa0MsQ0FBQztRQUMzRCx5QkFBeUI7SUFDMUIsR0FDQSxNQUNBO0FBRUY7QUFFTyxNQUFNakIsVUFBVSxDQUFDLHNDQUFzQyxDQUFDIn0=
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "devcontainerFeature", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return devcontainerFeature;
9
+ }
10
+ });
11
+ const _promises = require("node:fs/promises");
12
+ const _nodepath = require("node:path");
13
+ const _composemodel = require("../../domain/compose.model.js");
14
+ const _devcontainermodel = require("../../domain/devcontainer.model.js");
15
+ async function render(ctx) {
16
+ const model = ctx.models.get(_devcontainermodel.DEVCONTAINER_KEY);
17
+ if (!model) return ctx;
18
+ const dir = (0, _nodepath.join)(ctx.targetDir, ".devcontainer");
19
+ await (0, _promises.mkdir)(dir, {
20
+ recursive: true
21
+ });
22
+ await (0, _promises.writeFile)((0, _nodepath.join)(dir, "devcontainer.json"), model.render());
23
+ const compose = ctx.models.get(_composemodel.COMPOSE_KEY);
24
+ if (compose) {
25
+ await (0, _promises.writeFile)((0, _nodepath.join)(dir, "docker-compose.yml"), compose.render());
26
+ const dockerfile = model.dockerfile;
27
+ if (dockerfile) {
28
+ await (0, _promises.writeFile)((0, _nodepath.join)(dir, "Dockerfile"), dockerfile.render());
29
+ }
30
+ }
31
+ return ctx;
32
+ }
33
+ const devcontainerFeature = {
34
+ name: "devcontainer",
35
+ render
36
+ };
37
+
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9kZXZjb250YWluZXIvZmVhdHVyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBta2Rpciwgd3JpdGVGaWxlIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDT01QT1NFX0tFWSB9IGZyb20gXCIuLi8uLi9kb21haW4vY29tcG9zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgREVWQ09OVEFJTkVSX0tFWSB9IGZyb20gXCIuLi8uLi9kb21haW4vZGV2Y29udGFpbmVyLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEZlYXR1cmUsIFNjYWZmb2xkQ29udGV4dCB9IGZyb20gXCIuLi8uLi9kb21haW4vaW5kZXguanNcIjtcblxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyKGN0eDogU2NhZmZvbGRDb250ZXh0KTogUHJvbWlzZTxTY2FmZm9sZENvbnRleHQ+IHtcblx0Y29uc3QgbW9kZWwgPSBjdHgubW9kZWxzLmdldChERVZDT05UQUlORVJfS0VZKTtcblx0aWYgKCFtb2RlbCkgcmV0dXJuIGN0eDtcblxuXHRjb25zdCBkaXIgPSBqb2luKGN0eC50YXJnZXREaXIsIFwiLmRldmNvbnRhaW5lclwiKTtcblx0YXdhaXQgbWtkaXIoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0YXdhaXQgd3JpdGVGaWxlKGpvaW4oZGlyLCBcImRldmNvbnRhaW5lci5qc29uXCIpLCBtb2RlbC5yZW5kZXIoKSk7XG5cblx0Y29uc3QgY29tcG9zZSA9IGN0eC5tb2RlbHMuZ2V0KENPTVBPU0VfS0VZKTtcblx0aWYgKGNvbXBvc2UpIHtcblx0XHRhd2FpdCB3cml0ZUZpbGUoam9pbihkaXIsIFwiZG9ja2VyLWNvbXBvc2UueW1sXCIpLCBjb21wb3NlLnJlbmRlcigpKTtcblx0XHRjb25zdCBkb2NrZXJmaWxlID0gbW9kZWwuZG9ja2VyZmlsZTtcblx0XHRpZiAoZG9ja2VyZmlsZSkge1xuXHRcdFx0YXdhaXQgd3JpdGVGaWxlKGpvaW4oZGlyLCBcIkRvY2tlcmZpbGVcIiksIGRvY2tlcmZpbGUucmVuZGVyKCkpO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBjdHg7XG59XG5cbmV4cG9ydCBjb25zdCBkZXZjb250YWluZXJGZWF0dXJlOiBGZWF0dXJlID0ge1xuXHRuYW1lOiBcImRldmNvbnRhaW5lclwiLFxuXHRyZW5kZXIsXG59O1xuIl0sIm5hbWVzIjpbImRldmNvbnRhaW5lckZlYXR1cmUiLCJyZW5kZXIiLCJjdHgiLCJtb2RlbCIsIm1vZGVscyIsImdldCIsIkRFVkNPTlRBSU5FUl9LRVkiLCJkaXIiLCJqb2luIiwidGFyZ2V0RGlyIiwibWtkaXIiLCJyZWN1cnNpdmUiLCJ3cml0ZUZpbGUiLCJjb21wb3NlIiwiQ09NUE9TRV9LRVkiLCJkb2NrZXJmaWxlIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEwQmFBOzs7ZUFBQUE7OzswQkExQm9COzBCQUNaOzhCQUNPO21DQUNLO0FBR2pDLGVBQWVDLE9BQU9DLEdBQW9CO0lBQ3pDLE1BQU1DLFFBQVFELElBQUlFLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDQyxtQ0FBZ0I7SUFDN0MsSUFBSSxDQUFDSCxPQUFPLE9BQU9EO0lBRW5CLE1BQU1LLE1BQU1DLElBQUFBLGNBQUksRUFBQ04sSUFBSU8sU0FBUyxFQUFFO0lBQ2hDLE1BQU1DLElBQUFBLGVBQUssRUFBQ0gsS0FBSztRQUFFSSxXQUFXO0lBQUs7SUFDbkMsTUFBTUMsSUFBQUEsbUJBQVMsRUFBQ0osSUFBQUEsY0FBSSxFQUFDRCxLQUFLLHNCQUFzQkosTUFBTUYsTUFBTTtJQUU1RCxNQUFNWSxVQUFVWCxJQUFJRSxNQUFNLENBQUNDLEdBQUcsQ0FBQ1MseUJBQVc7SUFDMUMsSUFBSUQsU0FBUztRQUNaLE1BQU1ELElBQUFBLG1CQUFTLEVBQUNKLElBQUFBLGNBQUksRUFBQ0QsS0FBSyx1QkFBdUJNLFFBQVFaLE1BQU07UUFDL0QsTUFBTWMsYUFBYVosTUFBTVksVUFBVTtRQUNuQyxJQUFJQSxZQUFZO1lBQ2YsTUFBTUgsSUFBQUEsbUJBQVMsRUFBQ0osSUFBQUEsY0FBSSxFQUFDRCxLQUFLLGVBQWVRLFdBQVdkLE1BQU07UUFDM0Q7SUFDRDtJQUVBLE9BQU9DO0FBQ1I7QUFFTyxNQUFNRixzQkFBK0I7SUFDM0NnQixNQUFNO0lBQ05mO0FBQ0QifQ==
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "finalizeFeature", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return finalizeFeature;
9
+ }
10
+ });
11
+ const _nodepath = require("node:path");
12
+ const _interop = require("@decohere/nexus/interop");
13
+ const _index = require("../../domain/index.js");
14
+ async function finalize(ctx) {
15
+ let pm = (0, _interop.detectPackageManager)(ctx.targetDir);
16
+ if (pm == null) {
17
+ pm = await (0, _interop.promptForPackageManager)();
18
+ }
19
+ let shouldInstall;
20
+ if (ctx.opts.yes) {
21
+ shouldInstall = true;
22
+ } else {
23
+ const answer = await (0, _index.ask)("\nInstall dependencies now? [yes/no] (yes): ", "yes");
24
+ shouldInstall = answer.toLowerCase() !== "no";
25
+ }
26
+ if (shouldInstall) {
27
+ console.log(`\nScaffolded ${ctx.projectName}. Installing dependencies...\n`);
28
+ await pm.install({
29
+ cwd: ctx.targetDir
30
+ });
31
+ }
32
+ console.log(`\nDone! ${shouldInstall ? "Next" : "To get started:"} steps:\n`);
33
+ if ((0, _nodepath.basename)(ctx.targetDir) !== ctx.targetDir) {
34
+ console.log(` cd ${ctx.projectName}`);
35
+ }
36
+ if (!shouldInstall) {
37
+ console.log(` ${pm.name} install`);
38
+ }
39
+ console.log(" pnpm build # forge build");
40
+ console.log(" pnpm dev # flux serve\n");
41
+ return ctx;
42
+ }
43
+ const finalizeFeature = {
44
+ name: "finalize",
45
+ finalize
46
+ };
47
+
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9maW5hbGl6ZS9mZWF0dXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZGV0ZWN0UGFja2FnZU1hbmFnZXIsIHByb21wdEZvclBhY2thZ2VNYW5hZ2VyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pbnRlcm9wXCI7XG5pbXBvcnQgeyBhc2ssIHR5cGUgRmVhdHVyZSwgdHlwZSBTY2FmZm9sZENvbnRleHQgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2luZGV4LmpzXCI7XG5cbmFzeW5jIGZ1bmN0aW9uIGZpbmFsaXplKGN0eDogU2NhZmZvbGRDb250ZXh0KTogUHJvbWlzZTxTY2FmZm9sZENvbnRleHQ+IHtcblx0bGV0IHBtID0gZGV0ZWN0UGFja2FnZU1hbmFnZXIoY3R4LnRhcmdldERpcik7XG5cdGlmIChwbSA9PSBudWxsKSB7XG5cdFx0cG0gPSBhd2FpdCBwcm9tcHRGb3JQYWNrYWdlTWFuYWdlcigpO1xuXHR9XG5cblx0bGV0IHNob3VsZEluc3RhbGw6IGJvb2xlYW47XG5cdGlmIChjdHgub3B0cy55ZXMpIHtcblx0XHRzaG91bGRJbnN0YWxsID0gdHJ1ZTtcblx0fSBlbHNlIHtcblx0XHRjb25zdCBhbnN3ZXIgPSBhd2FpdCBhc2soXCJcXG5JbnN0YWxsIGRlcGVuZGVuY2llcyBub3c/IFt5ZXMvbm9dICh5ZXMpOiBcIiwgXCJ5ZXNcIik7XG5cdFx0c2hvdWxkSW5zdGFsbCA9IGFuc3dlci50b0xvd2VyQ2FzZSgpICE9PSBcIm5vXCI7XG5cdH1cblxuXHRpZiAoc2hvdWxkSW5zdGFsbCkge1xuXHRcdGNvbnNvbGUubG9nKGBcXG5TY2FmZm9sZGVkICR7Y3R4LnByb2plY3ROYW1lfS4gSW5zdGFsbGluZyBkZXBlbmRlbmNpZXMuLi5cXG5gKTtcblx0XHRhd2FpdCBwbS5pbnN0YWxsKHsgY3dkOiBjdHgudGFyZ2V0RGlyIH0pO1xuXHR9XG5cblx0Y29uc29sZS5sb2coYFxcbkRvbmUhICR7c2hvdWxkSW5zdGFsbCA/IFwiTmV4dFwiIDogXCJUbyBnZXQgc3RhcnRlZDpcIn0gc3RlcHM6XFxuYCk7XG5cdGlmIChiYXNlbmFtZShjdHgudGFyZ2V0RGlyKSAhPT0gY3R4LnRhcmdldERpcikge1xuXHRcdGNvbnNvbGUubG9nKGAgIGNkICR7Y3R4LnByb2plY3ROYW1lfWApO1xuXHR9XG5cdGlmICghc2hvdWxkSW5zdGFsbCkge1xuXHRcdGNvbnNvbGUubG9nKGAgICR7cG0ubmFtZX0gaW5zdGFsbGApO1xuXHR9XG5cdGNvbnNvbGUubG9nKFwiICBwbnBtIGJ1aWxkICAgICAjIGZvcmdlIGJ1aWxkXCIpO1xuXHRjb25zb2xlLmxvZyhcIiAgcG5wbSBkZXYgICAgICAgIyBmbHV4IHNlcnZlXFxuXCIpO1xuXHRyZXR1cm4gY3R4O1xufVxuXG5leHBvcnQgY29uc3QgZmluYWxpemVGZWF0dXJlOiBGZWF0dXJlID0ge1xuXHRuYW1lOiBcImZpbmFsaXplXCIsXG5cdGZpbmFsaXplLFxufTtcbiJdLCJuYW1lcyI6WyJmaW5hbGl6ZUZlYXR1cmUiLCJmaW5hbGl6ZSIsImN0eCIsInBtIiwiZGV0ZWN0UGFja2FnZU1hbmFnZXIiLCJ0YXJnZXREaXIiLCJwcm9tcHRGb3JQYWNrYWdlTWFuYWdlciIsInNob3VsZEluc3RhbGwiLCJvcHRzIiwieWVzIiwiYW5zd2VyIiwiYXNrIiwidG9Mb3dlckNhc2UiLCJjb25zb2xlIiwibG9nIiwicHJvamVjdE5hbWUiLCJpbnN0YWxsIiwiY3dkIiwiYmFzZW5hbWUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7OytCQW1DYUE7OztlQUFBQTs7OzBCQW5DWTt5QkFDcUM7dUJBQ047QUFFeEQsZUFBZUMsU0FBU0MsR0FBb0I7SUFDM0MsSUFBSUMsS0FBS0MsSUFBQUEsNkJBQW9CLEVBQUNGLElBQUlHLFNBQVM7SUFDM0MsSUFBSUYsTUFBTSxNQUFNO1FBQ2ZBLEtBQUssTUFBTUcsSUFBQUEsZ0NBQXVCO0lBQ25DO0lBRUEsSUFBSUM7SUFDSixJQUFJTCxJQUFJTSxJQUFJLENBQUNDLEdBQUcsRUFBRTtRQUNqQkYsZ0JBQWdCO0lBQ2pCLE9BQU87UUFDTixNQUFNRyxTQUFTLE1BQU1DLElBQUFBLFVBQUcsRUFBQyxnREFBZ0Q7UUFDekVKLGdCQUFnQkcsT0FBT0UsV0FBVyxPQUFPO0lBQzFDO0lBRUEsSUFBSUwsZUFBZTtRQUNsQk0sUUFBUUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFWixJQUFJYSxXQUFXLENBQUMsOEJBQThCLENBQUM7UUFDM0UsTUFBTVosR0FBR2EsT0FBTyxDQUFDO1lBQUVDLEtBQUtmLElBQUlHLFNBQVM7UUFBQztJQUN2QztJQUVBUSxRQUFRQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUVQLGdCQUFnQixTQUFTLGtCQUFrQixTQUFTLENBQUM7SUFDNUUsSUFBSVcsSUFBQUEsa0JBQVEsRUFBQ2hCLElBQUlHLFNBQVMsTUFBTUgsSUFBSUcsU0FBUyxFQUFFO1FBQzlDUSxRQUFRQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUVaLElBQUlhLFdBQVcsRUFBRTtJQUN0QztJQUNBLElBQUksQ0FBQ1IsZUFBZTtRQUNuQk0sUUFBUUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFWCxHQUFHZ0IsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuQztJQUNBTixRQUFRQyxHQUFHLENBQUM7SUFDWkQsUUFBUUMsR0FBRyxDQUFDO0lBQ1osT0FBT1o7QUFDUjtBQUVPLE1BQU1GLGtCQUEyQjtJQUN2Q21CLE1BQU07SUFDTmxCO0FBQ0QifQ==
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "postgresqlFeature", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return postgresqlFeature;
9
+ }
10
+ });
11
+ const _nodecrypto = require("node:crypto");
12
+ const _promises = require("node:fs/promises");
13
+ const _nodepath = require("node:path");
14
+ const _composemodel = require("../../domain/compose.model.js");
15
+ const _devcontainermodel = require("../../domain/devcontainer.model.js");
16
+ const _models = require("./models.js");
17
+ const enabled = (ctx)=>ctx.opts.database === "typeorm";
18
+ async function configure(ctx) {
19
+ const devcontainer = ctx.models.get(_devcontainermodel.DEVCONTAINER_KEY);
20
+ const nodeModulesVolume = `${ctx.projectName}-node-modules`;
21
+ const db = `${ctx.projectName}_dev`;
22
+ const user = "postgres";
23
+ const password = (0, _nodecrypto.randomBytes)(16).toString("hex");
24
+ const compose = new _composemodel.ComposeModel().addService("devcontainer", {
25
+ build: ".",
26
+ volumes: [
27
+ `\${HOME}/.npm/${ctx.projectName}:/home/node/.npm`,
28
+ `${nodeModulesVolume}:/workspace/node_modules`
29
+ ],
30
+ environment: {
31
+ NPM_CONFIG_USERCONFIG: "/home/node/.npm/.npmrc"
32
+ },
33
+ command: "sleep infinity"
34
+ }).addService("postgres", {
35
+ image: "postgres:16",
36
+ restart: "unless-stopped",
37
+ environment: {
38
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: Docker Compose reads these from .env
39
+ POSTGRES_DB: "${POSTGRES_DB}",
40
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: Docker Compose reads these from .env
41
+ POSTGRES_USER: "${POSTGRES_USER}",
42
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: Docker Compose reads these from .env
43
+ POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
44
+ },
45
+ ports: [
46
+ "5432:5432"
47
+ ],
48
+ volumes: [
49
+ "postgres-data:/var/lib/postgresql/data"
50
+ ]
51
+ }).addVolume(nodeModulesVolume).addVolume("postgres-data");
52
+ devcontainer?.useCompose();
53
+ const creds = {
54
+ db,
55
+ user,
56
+ password
57
+ };
58
+ return {
59
+ ...ctx,
60
+ models: ctx.models.set(_composemodel.COMPOSE_KEY, compose).set(_models.POSTGRES_CREDS_KEY, creds)
61
+ };
62
+ }
63
+ async function render(ctx) {
64
+ const creds = ctx.models.get(_models.POSTGRES_CREDS_KEY);
65
+ if (!creds) return ctx;
66
+ const devcontainerDir = (0, _nodepath.join)(ctx.targetDir, ".devcontainer");
67
+ await (0, _promises.mkdir)(devcontainerDir, {
68
+ recursive: true
69
+ });
70
+ const envContent = `POSTGRES_DB=${creds.db}\nPOSTGRES_USER=${creds.user}\nPOSTGRES_PASSWORD=${creds.password}\n`;
71
+ await (0, _promises.writeFile)((0, _nodepath.join)(devcontainerDir, ".env"), envContent);
72
+ return ctx;
73
+ }
74
+ const postgresqlFeature = {
75
+ name: "postgresql",
76
+ enabled,
77
+ configure,
78
+ render
79
+ };
80
+
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9wb3N0Z3Jlc3FsL2ZlYXR1cmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCB7IG1rZGlyLCB3cml0ZUZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IENPTVBPU0VfS0VZLCBDb21wb3NlTW9kZWwgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2NvbXBvc2UubW9kZWwuanNcIjtcbmltcG9ydCB7IERFVkNPTlRBSU5FUl9LRVkgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2RldmNvbnRhaW5lci5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlLCBTY2FmZm9sZENvbnRleHQgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBQT1NUR1JFU19DUkVEU19LRVkgfSBmcm9tIFwiLi9tb2RlbHMuanNcIjtcblxuY29uc3QgZW5hYmxlZCA9IChjdHg6IFNjYWZmb2xkQ29udGV4dCkgPT4gY3R4Lm9wdHMuZGF0YWJhc2UgPT09IFwidHlwZW9ybVwiO1xuXG5hc3luYyBmdW5jdGlvbiBjb25maWd1cmUoY3R4OiBTY2FmZm9sZENvbnRleHQpOiBQcm9taXNlPFNjYWZmb2xkQ29udGV4dD4ge1xuXHRjb25zdCBkZXZjb250YWluZXIgPSBjdHgubW9kZWxzLmdldChERVZDT05UQUlORVJfS0VZKTtcblx0Y29uc3Qgbm9kZU1vZHVsZXNWb2x1bWUgPSBgJHtjdHgucHJvamVjdE5hbWV9LW5vZGUtbW9kdWxlc2A7XG5cblx0Y29uc3QgZGIgPSBgJHtjdHgucHJvamVjdE5hbWV9X2RldmA7XG5cdGNvbnN0IHVzZXIgPSBcInBvc3RncmVzXCI7XG5cdGNvbnN0IHBhc3N3b3JkID0gcmFuZG9tQnl0ZXMoMTYpLnRvU3RyaW5nKFwiaGV4XCIpO1xuXG5cdGNvbnN0IGNvbXBvc2UgPSBuZXcgQ29tcG9zZU1vZGVsKClcblx0XHQuYWRkU2VydmljZShcImRldmNvbnRhaW5lclwiLCB7XG5cdFx0XHRidWlsZDogXCIuXCIsXG5cdFx0XHR2b2x1bWVzOiBbXG5cdFx0XHRcdGBcXCR7SE9NRX0vLm5wbS8ke2N0eC5wcm9qZWN0TmFtZX06L2hvbWUvbm9kZS8ubnBtYCxcblx0XHRcdFx0YCR7bm9kZU1vZHVsZXNWb2x1bWV9Oi93b3Jrc3BhY2Uvbm9kZV9tb2R1bGVzYCxcblx0XHRcdF0sXG5cdFx0XHRlbnZpcm9ubWVudDoge1xuXHRcdFx0XHROUE1fQ09ORklHX1VTRVJDT05GSUc6IFwiL2hvbWUvbm9kZS8ubnBtLy5ucG1yY1wiLFxuXHRcdFx0fSxcblx0XHRcdGNvbW1hbmQ6IFwic2xlZXAgaW5maW5pdHlcIixcblx0XHR9KVxuXHRcdC5hZGRTZXJ2aWNlKFwicG9zdGdyZXNcIiwge1xuXHRcdFx0aW1hZ2U6IFwicG9zdGdyZXM6MTZcIixcblx0XHRcdHJlc3RhcnQ6IFwidW5sZXNzLXN0b3BwZWRcIixcblx0XHRcdGVudmlyb25tZW50OiB7XG5cdFx0XHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IERvY2tlciBDb21wb3NlIHJlYWRzIHRoZXNlIGZyb20gLmVudlxuXHRcdFx0XHRQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCfVwiLFxuXHRcdFx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vVGVtcGxhdGVDdXJseUluU3RyaW5nOiBEb2NrZXIgQ29tcG9zZSByZWFkcyB0aGVzZSBmcm9tIC5lbnZcblx0XHRcdFx0UE9TVEdSRVNfVVNFUjogXCIke1BPU1RHUkVTX1VTRVJ9XCIsXG5cdFx0XHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IERvY2tlciBDb21wb3NlIHJlYWRzIHRoZXNlIGZyb20gLmVudlxuXHRcdFx0XHRQT1NUR1JFU19QQVNTV09SRDogXCIke1BPU1RHUkVTX1BBU1NXT1JEfVwiLFxuXHRcdFx0fSxcblx0XHRcdHBvcnRzOiBbXCI1NDMyOjU0MzJcIl0sXG5cdFx0XHR2b2x1bWVzOiBbXCJwb3N0Z3Jlcy1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YVwiXSxcblx0XHR9KVxuXHRcdC5hZGRWb2x1bWUobm9kZU1vZHVsZXNWb2x1bWUpXG5cdFx0LmFkZFZvbHVtZShcInBvc3RncmVzLWRhdGFcIik7XG5cblx0ZGV2Y29udGFpbmVyPy51c2VDb21wb3NlKCk7XG5cblx0Y29uc3QgY3JlZHMgPSB7IGRiLCB1c2VyLCBwYXNzd29yZCB9O1xuXHRyZXR1cm4ge1xuXHRcdC4uLmN0eCxcblx0XHRtb2RlbHM6IGN0eC5tb2RlbHMuc2V0KENPTVBPU0VfS0VZLCBjb21wb3NlKS5zZXQoUE9TVEdSRVNfQ1JFRFNfS0VZLCBjcmVkcyksXG5cdH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlcihjdHg6IFNjYWZmb2xkQ29udGV4dCk6IFByb21pc2U8U2NhZmZvbGRDb250ZXh0PiB7XG5cdGNvbnN0IGNyZWRzID0gY3R4Lm1vZGVscy5nZXQoUE9TVEdSRVNfQ1JFRFNfS0VZKTtcblx0aWYgKCFjcmVkcykgcmV0dXJuIGN0eDtcblxuXHRjb25zdCBkZXZjb250YWluZXJEaXIgPSBqb2luKGN0eC50YXJnZXREaXIsIFwiLmRldmNvbnRhaW5lclwiKTtcblx0YXdhaXQgbWtkaXIoZGV2Y29udGFpbmVyRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblx0Y29uc3QgZW52Q29udGVudCA9IGBQT1NUR1JFU19EQj0ke2NyZWRzLmRifVxcblBPU1RHUkVTX1VTRVI9JHtjcmVkcy51c2VyfVxcblBPU1RHUkVTX1BBU1NXT1JEPSR7Y3JlZHMucGFzc3dvcmR9XFxuYDtcblx0YXdhaXQgd3JpdGVGaWxlKGpvaW4oZGV2Y29udGFpbmVyRGlyLCBcIi5lbnZcIiksIGVudkNvbnRlbnQpO1xuXG5cdHJldHVybiBjdHg7XG59XG5cbmV4cG9ydCBjb25zdCBwb3N0Z3Jlc3FsRmVhdHVyZTogRmVhdHVyZSA9IHtcblx0bmFtZTogXCJwb3N0Z3Jlc3FsXCIsXG5cdGVuYWJsZWQsXG5cdGNvbmZpZ3VyZSxcblx0cmVuZGVyLFxufTtcbiJdLCJuYW1lcyI6WyJwb3N0Z3Jlc3FsRmVhdHVyZSIsImVuYWJsZWQiLCJjdHgiLCJvcHRzIiwiZGF0YWJhc2UiLCJjb25maWd1cmUiLCJkZXZjb250YWluZXIiLCJtb2RlbHMiLCJnZXQiLCJERVZDT05UQUlORVJfS0VZIiwibm9kZU1vZHVsZXNWb2x1bWUiLCJwcm9qZWN0TmFtZSIsImRiIiwidXNlciIsInBhc3N3b3JkIiwicmFuZG9tQnl0ZXMiLCJ0b1N0cmluZyIsImNvbXBvc2UiLCJDb21wb3NlTW9kZWwiLCJhZGRTZXJ2aWNlIiwiYnVpbGQiLCJ2b2x1bWVzIiwiZW52aXJvbm1lbnQiLCJOUE1fQ09ORklHX1VTRVJDT05GSUciLCJjb21tYW5kIiwiaW1hZ2UiLCJyZXN0YXJ0IiwiUE9TVEdSRVNfREIiLCJQT1NUR1JFU19VU0VSIiwiUE9TVEdSRVNfUEFTU1dPUkQiLCJwb3J0cyIsImFkZFZvbHVtZSIsInVzZUNvbXBvc2UiLCJjcmVkcyIsInNldCIsIkNPTVBPU0VfS0VZIiwiUE9TVEdSRVNfQ1JFRFNfS0VZIiwicmVuZGVyIiwiZGV2Y29udGFpbmVyRGlyIiwiam9pbiIsInRhcmdldERpciIsIm1rZGlyIiwicmVjdXJzaXZlIiwiZW52Q29udGVudCIsIndyaXRlRmlsZSIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBb0VhQTs7O2VBQUFBOzs7NEJBcEVlOzBCQUNLOzBCQUNaOzhCQUNxQjttQ0FDVDt3QkFFRTtBQUVuQyxNQUFNQyxVQUFVLENBQUNDLE1BQXlCQSxJQUFJQyxJQUFJLENBQUNDLFFBQVEsS0FBSztBQUVoRSxlQUFlQyxVQUFVSCxHQUFvQjtJQUM1QyxNQUFNSSxlQUFlSixJQUFJSyxNQUFNLENBQUNDLEdBQUcsQ0FBQ0MsbUNBQWdCO0lBQ3BELE1BQU1DLG9CQUFvQixHQUFHUixJQUFJUyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBRTNELE1BQU1DLEtBQUssR0FBR1YsSUFBSVMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUNuQyxNQUFNRSxPQUFPO0lBQ2IsTUFBTUMsV0FBV0MsSUFBQUEsdUJBQVcsRUFBQyxJQUFJQyxRQUFRLENBQUM7SUFFMUMsTUFBTUMsVUFBVSxJQUFJQywwQkFBWSxHQUM5QkMsVUFBVSxDQUFDLGdCQUFnQjtRQUMzQkMsT0FBTztRQUNQQyxTQUFTO1lBQ1IsQ0FBQyxjQUFjLEVBQUVuQixJQUFJUyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDbEQsR0FBR0Qsa0JBQWtCLHdCQUF3QixDQUFDO1NBQzlDO1FBQ0RZLGFBQWE7WUFDWkMsdUJBQXVCO1FBQ3hCO1FBQ0FDLFNBQVM7SUFDVixHQUNDTCxVQUFVLENBQUMsWUFBWTtRQUN2Qk0sT0FBTztRQUNQQyxTQUFTO1FBQ1RKLGFBQWE7WUFDWiw2RkFBNkY7WUFDN0ZLLGFBQWE7WUFDYiw2RkFBNkY7WUFDN0ZDLGVBQWU7WUFDZiw2RkFBNkY7WUFDN0ZDLG1CQUFtQjtRQUNwQjtRQUNBQyxPQUFPO1lBQUM7U0FBWTtRQUNwQlQsU0FBUztZQUFDO1NBQXlDO0lBQ3BELEdBQ0NVLFNBQVMsQ0FBQ3JCLG1CQUNWcUIsU0FBUyxDQUFDO0lBRVp6QixjQUFjMEI7SUFFZCxNQUFNQyxRQUFRO1FBQUVyQjtRQUFJQztRQUFNQztJQUFTO0lBQ25DLE9BQU87UUFDTixHQUFHWixHQUFHO1FBQ05LLFFBQVFMLElBQUlLLE1BQU0sQ0FBQzJCLEdBQUcsQ0FBQ0MseUJBQVcsRUFBRWxCLFNBQVNpQixHQUFHLENBQUNFLDBCQUFrQixFQUFFSDtJQUN0RTtBQUNEO0FBRUEsZUFBZUksT0FBT25DLEdBQW9CO0lBQ3pDLE1BQU0rQixRQUFRL0IsSUFBSUssTUFBTSxDQUFDQyxHQUFHLENBQUM0QiwwQkFBa0I7SUFDL0MsSUFBSSxDQUFDSCxPQUFPLE9BQU8vQjtJQUVuQixNQUFNb0Msa0JBQWtCQyxJQUFBQSxjQUFJLEVBQUNyQyxJQUFJc0MsU0FBUyxFQUFFO0lBQzVDLE1BQU1DLElBQUFBLGVBQUssRUFBQ0gsaUJBQWlCO1FBQUVJLFdBQVc7SUFBSztJQUMvQyxNQUFNQyxhQUFhLENBQUMsWUFBWSxFQUFFVixNQUFNckIsRUFBRSxDQUFDLGdCQUFnQixFQUFFcUIsTUFBTXBCLElBQUksQ0FBQyxvQkFBb0IsRUFBRW9CLE1BQU1uQixRQUFRLENBQUMsRUFBRSxDQUFDO0lBQ2hILE1BQU04QixJQUFBQSxtQkFBUyxFQUFDTCxJQUFBQSxjQUFJLEVBQUNELGlCQUFpQixTQUFTSztJQUUvQyxPQUFPekM7QUFDUjtBQUVPLE1BQU1GLG9CQUE2QjtJQUN6QzZDLE1BQU07SUFDTjVDO0lBQ0FJO0lBQ0FnQztBQUNEIn0=
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "POSTGRES_CREDS_KEY", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return POSTGRES_CREDS_KEY;
9
+ }
10
+ });
11
+ const _context = require("../../domain/context.js");
12
+ const POSTGRES_CREDS_KEY = (0, _context.modelKey)("postgres-creds");
13
+
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9wb3N0Z3Jlc3FsL21vZGVscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb2RlbEtleSB9IGZyb20gXCIuLi8uLi9kb21haW4vY29udGV4dC5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RncmVzQ3JlZHMge1xuXHRkYjogc3RyaW5nO1xuXHR1c2VyOiBzdHJpbmc7XG5cdHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBQT1NUR1JFU19DUkVEU19LRVkgPSBtb2RlbEtleTxQb3N0Z3Jlc0NyZWRzPihcInBvc3RncmVzLWNyZWRzXCIpO1xuIl0sIm5hbWVzIjpbIlBPU1RHUkVTX0NSRURTX0tFWSIsIm1vZGVsS2V5Il0sIm1hcHBpbmdzIjoiOzs7OytCQVFhQTs7O2VBQUFBOzs7eUJBUlk7QUFRbEIsTUFBTUEscUJBQXFCQyxJQUFBQSxpQkFBUSxFQUFnQiJ9
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "buildPostmanCollection", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return buildPostmanCollection;
9
+ }
10
+ });
11
+ function buildPostmanCollection(projectName, withAuth0) {
12
+ const auth = withAuth0 ? {
13
+ type: "oauth2",
14
+ oauth2: [
15
+ {
16
+ key: "grant_type",
17
+ value: "authorization_code_with_pkce",
18
+ type: "string"
19
+ },
20
+ {
21
+ key: "authUrl",
22
+ value: "https://{{auth0Domain}}/authorize?audience={{auth0Audience}}",
23
+ type: "string"
24
+ },
25
+ {
26
+ key: "accessTokenUrl",
27
+ value: "https://{{auth0Domain}}/oauth/token",
28
+ type: "string"
29
+ },
30
+ {
31
+ key: "clientId",
32
+ value: "{{auth0ClientId}}",
33
+ type: "string"
34
+ },
35
+ {
36
+ key: "scope",
37
+ value: "openid profile email",
38
+ type: "string"
39
+ },
40
+ {
41
+ key: "addTokenTo",
42
+ value: "header",
43
+ type: "string"
44
+ },
45
+ {
46
+ key: "challengeAlgorithm",
47
+ value: "S256",
48
+ type: "string"
49
+ }
50
+ ]
51
+ } : undefined;
52
+ return {
53
+ info: {
54
+ name: `${projectName} WebAPI`,
55
+ schema: "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
56
+ },
57
+ ...auth ? {
58
+ auth
59
+ } : {},
60
+ item: [
61
+ {
62
+ name: "Hello",
63
+ request: {
64
+ method: "GET",
65
+ url: {
66
+ raw: "{{baseUrl}}/hello",
67
+ host: [
68
+ "{{baseUrl}}"
69
+ ],
70
+ path: [
71
+ "hello"
72
+ ]
73
+ }
74
+ }
75
+ }
76
+ ]
77
+ };
78
+ }
79
+
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9wb3N0bWFuL2NvbGxlY3Rpb24udGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUG9zdG1hbkNvbGxlY3Rpb24ocHJvamVjdE5hbWU6IHN0cmluZywgd2l0aEF1dGgwOiBib29sZWFuKTogdW5rbm93biB7XG5cdGNvbnN0IGF1dGggPSB3aXRoQXV0aDBcblx0XHQ/IHtcblx0XHRcdFx0dHlwZTogXCJvYXV0aDJcIixcblx0XHRcdFx0b2F1dGgyOiBbXG5cdFx0XHRcdFx0eyBrZXk6IFwiZ3JhbnRfdHlwZVwiLCB2YWx1ZTogXCJhdXRob3JpemF0aW9uX2NvZGVfd2l0aF9wa2NlXCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRrZXk6IFwiYXV0aFVybFwiLFxuXHRcdFx0XHRcdFx0dmFsdWU6IFwiaHR0cHM6Ly97e2F1dGgwRG9tYWlufX0vYXV0aG9yaXplP2F1ZGllbmNlPXt7YXV0aDBBdWRpZW5jZX19XCIsXG5cdFx0XHRcdFx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0a2V5OiBcImFjY2Vzc1Rva2VuVXJsXCIsXG5cdFx0XHRcdFx0XHR2YWx1ZTogXCJodHRwczovL3t7YXV0aDBEb21haW59fS9vYXV0aC90b2tlblwiLFxuXHRcdFx0XHRcdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHsga2V5OiBcImNsaWVudElkXCIsIHZhbHVlOiBcInt7YXV0aDBDbGllbnRJZH19XCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcblx0XHRcdFx0XHR7IGtleTogXCJzY29wZVwiLCB2YWx1ZTogXCJvcGVuaWQgcHJvZmlsZSBlbWFpbFwiLCB0eXBlOiBcInN0cmluZ1wiIH0sXG5cdFx0XHRcdFx0eyBrZXk6IFwiYWRkVG9rZW5Ub1wiLCB2YWx1ZTogXCJoZWFkZXJcIiwgdHlwZTogXCJzdHJpbmdcIiB9LFxuXHRcdFx0XHRcdHsga2V5OiBcImNoYWxsZW5nZUFsZ29yaXRobVwiLCB2YWx1ZTogXCJTMjU2XCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcblx0XHRcdFx0XSxcblx0XHRcdH1cblx0XHQ6IHVuZGVmaW5lZDtcblxuXHRyZXR1cm4ge1xuXHRcdGluZm86IHtcblx0XHRcdG5hbWU6IGAke3Byb2plY3ROYW1lfSBXZWJBUElgLFxuXHRcdFx0c2NoZW1hOiBcImh0dHBzOi8vc2NoZW1hLmdldHBvc3RtYW4uY29tL2pzb24vY29sbGVjdGlvbi92Mi4xLjAvY29sbGVjdGlvbi5qc29uXCIsXG5cdFx0fSxcblx0XHQuLi4oYXV0aCA/IHsgYXV0aCB9IDoge30pLFxuXHRcdGl0ZW06IFtcblx0XHRcdHtcblx0XHRcdFx0bmFtZTogXCJIZWxsb1wiLFxuXHRcdFx0XHRyZXF1ZXN0OiB7XG5cdFx0XHRcdFx0bWV0aG9kOiBcIkdFVFwiLFxuXHRcdFx0XHRcdHVybDogeyByYXc6IFwie3tiYXNlVXJsfX0vaGVsbG9cIiwgaG9zdDogW1wie3tiYXNlVXJsfX1cIl0sIHBhdGg6IFtcImhlbGxvXCJdIH0sXG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdF0sXG5cdH07XG59XG4iXSwibmFtZXMiOlsiYnVpbGRQb3N0bWFuQ29sbGVjdGlvbiIsInByb2plY3ROYW1lIiwid2l0aEF1dGgwIiwiYXV0aCIsInR5cGUiLCJvYXV0aDIiLCJrZXkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImluZm8iLCJuYW1lIiwic2NoZW1hIiwiaXRlbSIsInJlcXVlc3QiLCJtZXRob2QiLCJ1cmwiLCJyYXciLCJob3N0IiwicGF0aCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHVCQUF1QkMsV0FBbUIsRUFBRUMsU0FBa0I7SUFDN0UsTUFBTUMsT0FBT0QsWUFDVjtRQUNBRSxNQUFNO1FBQ05DLFFBQVE7WUFDUDtnQkFBRUMsS0FBSztnQkFBY0MsT0FBTztnQkFBZ0NILE1BQU07WUFBUztZQUMzRTtnQkFDQ0UsS0FBSztnQkFDTEMsT0FBTztnQkFDUEgsTUFBTTtZQUNQO1lBQ0E7Z0JBQ0NFLEtBQUs7Z0JBQ0xDLE9BQU87Z0JBQ1BILE1BQU07WUFDUDtZQUNBO2dCQUFFRSxLQUFLO2dCQUFZQyxPQUFPO2dCQUFxQkgsTUFBTTtZQUFTO1lBQzlEO2dCQUFFRSxLQUFLO2dCQUFTQyxPQUFPO2dCQUF3QkgsTUFBTTtZQUFTO1lBQzlEO2dCQUFFRSxLQUFLO2dCQUFjQyxPQUFPO2dCQUFVSCxNQUFNO1lBQVM7WUFDckQ7Z0JBQUVFLEtBQUs7Z0JBQXNCQyxPQUFPO2dCQUFRSCxNQUFNO1lBQVM7U0FDM0Q7SUFDRixJQUNDSTtJQUVILE9BQU87UUFDTkMsTUFBTTtZQUNMQyxNQUFNLEdBQUdULFlBQVksT0FBTyxDQUFDO1lBQzdCVSxRQUFRO1FBQ1Q7UUFDQSxHQUFJUixPQUFPO1lBQUVBO1FBQUssSUFBSSxDQUFDLENBQUM7UUFDeEJTLE1BQU07WUFDTDtnQkFDQ0YsTUFBTTtnQkFDTkcsU0FBUztvQkFDUkMsUUFBUTtvQkFDUkMsS0FBSzt3QkFBRUMsS0FBSzt3QkFBcUJDLE1BQU07NEJBQUM7eUJBQWM7d0JBQUVDLE1BQU07NEJBQUM7eUJBQVE7b0JBQUM7Z0JBQ3pFO1lBQ0Q7U0FDQTtJQUNGO0FBQ0QifQ==
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "postmanEnvironmentYaml", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return postmanEnvironmentYaml;
9
+ }
10
+ });
11
+ function postmanEnvironmentYaml(name, opts) {
12
+ const auth0Section = opts?.auth0Domain ? `${[
13
+ " - key: auth0Domain",
14
+ ` value: ${opts.auth0Domain}`,
15
+ " - key: auth0Audience",
16
+ ` value: '${opts.auth0Audience ?? ""}'`,
17
+ " - key: auth0ClientId",
18
+ ` value: '${opts.auth0ClientId ?? ""}'`,
19
+ " description: Client ID of the Auth0 SPA application used by Postman for PKCE authentication"
20
+ ].join("\n")}\n` : "";
21
+ return `name: ${name}\nvalues:\n - key: baseUrl\n value: 'http://localhost:3000'\n${auth0Section}`;
22
+ }
23
+
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS92MS9mZWF0dXJlcy9wb3N0bWFuL2Vudmlyb25tZW50LnRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUG9zdG1hbkVudk9wdGlvbnMge1xuXHRhdXRoMERvbWFpbj86IHN0cmluZztcblx0YXV0aDBBdWRpZW5jZT86IHN0cmluZztcblx0YXV0aDBDbGllbnRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc3RtYW5FbnZpcm9ubWVudFlhbWwobmFtZTogc3RyaW5nLCBvcHRzPzogUG9zdG1hbkVudk9wdGlvbnMpOiBzdHJpbmcge1xuXHRjb25zdCBhdXRoMFNlY3Rpb24gPSBvcHRzPy5hdXRoMERvbWFpblxuXHRcdD8gYCR7W1xuXHRcdFx0XHRcIiAgLSBrZXk6IGF1dGgwRG9tYWluXCIsXG5cdFx0XHRcdGAgICAgdmFsdWU6ICR7b3B0cy5hdXRoMERvbWFpbn1gLFxuXHRcdFx0XHRcIiAgLSBrZXk6IGF1dGgwQXVkaWVuY2VcIixcblx0XHRcdFx0YCAgICB2YWx1ZTogJyR7b3B0cy5hdXRoMEF1ZGllbmNlID8/IFwiXCJ9J2AsXG5cdFx0XHRcdFwiICAtIGtleTogYXV0aDBDbGllbnRJZFwiLFxuXHRcdFx0XHRgICAgIHZhbHVlOiAnJHtvcHRzLmF1dGgwQ2xpZW50SWQgPz8gXCJcIn0nYCxcblx0XHRcdFx0XCIgICAgZGVzY3JpcHRpb246IENsaWVudCBJRCBvZiB0aGUgQXV0aDAgU1BBIGFwcGxpY2F0aW9uIHVzZWQgYnkgUG9zdG1hbiBmb3IgUEtDRSBhdXRoZW50aWNhdGlvblwiLFxuXHRcdFx0XS5qb2luKFwiXFxuXCIpfVxcbmBcblx0XHQ6IFwiXCI7XG5cdHJldHVybiBgbmFtZTogJHtuYW1lfVxcbnZhbHVlczpcXG4gIC0ga2V5OiBiYXNlVXJsXFxuICAgIHZhbHVlOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwJ1xcbiR7YXV0aDBTZWN0aW9ufWA7XG59XG4iXSwibmFtZXMiOlsicG9zdG1hbkVudmlyb25tZW50WWFtbCIsIm5hbWUiLCJvcHRzIiwiYXV0aDBTZWN0aW9uIiwiYXV0aDBEb21haW4iLCJhdXRoMEF1ZGllbmNlIiwiYXV0aDBDbGllbnRJZCIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7K0JBTWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSx1QkFBdUJDLElBQVksRUFBRUMsSUFBd0I7SUFDNUUsTUFBTUMsZUFBZUQsTUFBTUUsY0FDeEIsR0FBRztRQUNIO1FBQ0EsQ0FBQyxXQUFXLEVBQUVGLEtBQUtFLFdBQVcsRUFBRTtRQUNoQztRQUNBLENBQUMsWUFBWSxFQUFFRixLQUFLRyxhQUFhLElBQUksR0FBRyxDQUFDLENBQUM7UUFDMUM7UUFDQSxDQUFDLFlBQVksRUFBRUgsS0FBS0ksYUFBYSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzFDO0tBQ0EsQ0FBQ0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQ2Y7SUFDSCxPQUFPLENBQUMsTUFBTSxFQUFFTixLQUFLLGlFQUFpRSxFQUFFRSxjQUFjO0FBQ3ZHIn0=