create-relkit 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/dist/add-name.d.ts +9 -0
  2. package/dist/add-name.d.ts.map +1 -0
  3. package/dist/add-name.js +18 -0
  4. package/dist/add-name.js.map +1 -0
  5. package/dist/add-options-parser.d.ts +21 -0
  6. package/dist/add-options-parser.d.ts.map +1 -0
  7. package/dist/add-options-parser.js +103 -0
  8. package/dist/add-options-parser.js.map +1 -0
  9. package/dist/add-options-resource.d.ts +5 -0
  10. package/dist/add-options-resource.d.ts.map +1 -0
  11. package/dist/add-options-resource.js +18 -0
  12. package/dist/add-options-resource.js.map +1 -0
  13. package/dist/add-options.d.ts +6 -0
  14. package/dist/add-options.d.ts.map +1 -0
  15. package/dist/add-options.js +165 -0
  16. package/dist/add-options.js.map +1 -0
  17. package/dist/add-output.d.ts +4 -0
  18. package/dist/add-output.d.ts.map +1 -0
  19. package/dist/add-output.js +33 -0
  20. package/dist/add-output.js.map +1 -0
  21. package/dist/add-plan.d.ts +4 -0
  22. package/dist/add-plan.d.ts.map +1 -0
  23. package/dist/add-plan.js +62 -0
  24. package/dist/add-plan.js.map +1 -0
  25. package/dist/add-resolution-discovery.d.ts +13 -0
  26. package/dist/add-resolution-discovery.d.ts.map +1 -0
  27. package/dist/add-resolution-discovery.js +70 -0
  28. package/dist/add-resolution-discovery.js.map +1 -0
  29. package/dist/add-resolution-state.d.ts +23 -0
  30. package/dist/add-resolution-state.d.ts.map +1 -0
  31. package/dist/add-resolution-state.js +89 -0
  32. package/dist/add-resolution-state.js.map +1 -0
  33. package/dist/add-resolver-domain.d.ts +4 -0
  34. package/dist/add-resolver-domain.d.ts.map +1 -0
  35. package/dist/add-resolver-domain.js +150 -0
  36. package/dist/add-resolver-domain.js.map +1 -0
  37. package/dist/add-resolver-platform.d.ts +4 -0
  38. package/dist/add-resolver-platform.d.ts.map +1 -0
  39. package/dist/add-resolver-platform.js +112 -0
  40. package/dist/add-resolver-platform.js.map +1 -0
  41. package/dist/add-resolver-resources.d.ts +4 -0
  42. package/dist/add-resolver-resources.d.ts.map +1 -0
  43. package/dist/add-resolver-resources.js +150 -0
  44. package/dist/add-resolver-resources.js.map +1 -0
  45. package/dist/add-resolver.d.ts +14 -0
  46. package/dist/add-resolver.d.ts.map +1 -0
  47. package/dist/add-resolver.js +41 -0
  48. package/dist/add-resolver.js.map +1 -0
  49. package/dist/add-transaction-files.d.ts +12 -0
  50. package/dist/add-transaction-files.d.ts.map +1 -0
  51. package/dist/add-transaction-files.js +103 -0
  52. package/dist/add-transaction-files.js.map +1 -0
  53. package/dist/add-transaction.d.ts +17 -0
  54. package/dist/add-transaction.d.ts.map +1 -0
  55. package/dist/add-transaction.js +115 -0
  56. package/dist/add-transaction.js.map +1 -0
  57. package/dist/add-types.d.ts +136 -0
  58. package/dist/add-types.d.ts.map +1 -0
  59. package/dist/add-types.js +41 -0
  60. package/dist/add-types.js.map +1 -0
  61. package/dist/bucket-profiles.d.ts +4 -0
  62. package/dist/bucket-profiles.d.ts.map +1 -0
  63. package/dist/bucket-profiles.js +18 -0
  64. package/dist/bucket-profiles.js.map +1 -0
  65. package/dist/create-additions.d.ts +7 -0
  66. package/dist/create-additions.d.ts.map +1 -0
  67. package/dist/create-additions.js +27 -0
  68. package/dist/create-additions.js.map +1 -0
  69. package/dist/create-preview.d.ts +12 -0
  70. package/dist/create-preview.d.ts.map +1 -0
  71. package/dist/create-preview.js +50 -0
  72. package/dist/create-preview.js.map +1 -0
  73. package/dist/create-resolver.d.ts +14 -0
  74. package/dist/create-resolver.d.ts.map +1 -0
  75. package/dist/create-resolver.js +96 -0
  76. package/dist/create-resolver.js.map +1 -0
  77. package/dist/domain-planning.d.ts +24 -0
  78. package/dist/domain-planning.d.ts.map +1 -0
  79. package/dist/domain-planning.js +94 -0
  80. package/dist/domain-planning.js.map +1 -0
  81. package/dist/generate-files-utilities.d.ts +18 -0
  82. package/dist/generate-files-utilities.d.ts.map +1 -0
  83. package/dist/generate-files-utilities.js +87 -0
  84. package/dist/generate-files-utilities.js.map +1 -0
  85. package/dist/generate-files.d.ts +1 -12
  86. package/dist/generate-files.d.ts.map +1 -1
  87. package/dist/generate-files.js +39 -89
  88. package/dist/generate-files.js.map +1 -1
  89. package/dist/generate-output.d.ts +2 -1
  90. package/dist/generate-output.d.ts.map +1 -1
  91. package/dist/generate-output.js +9 -0
  92. package/dist/generate-output.js.map +1 -1
  93. package/dist/generate-process.d.ts +1 -1
  94. package/dist/generate-process.d.ts.map +1 -1
  95. package/dist/generate-process.js +7 -3
  96. package/dist/generate-process.js.map +1 -1
  97. package/dist/generate-types.d.ts +46 -0
  98. package/dist/generate-types.d.ts.map +1 -0
  99. package/dist/generate-types.js +20 -0
  100. package/dist/generate-types.js.map +1 -0
  101. package/dist/generate.d.ts +1 -38
  102. package/dist/generate.d.ts.map +1 -1
  103. package/dist/generate.js +34 -39
  104. package/dist/generate.js.map +1 -1
  105. package/dist/index.d.ts +18 -0
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +79 -9
  108. package/dist/index.js.map +1 -1
  109. package/dist/options.d.ts +5 -1
  110. package/dist/options.d.ts.map +1 -1
  111. package/dist/options.js +10 -1
  112. package/dist/options.js.map +1 -1
  113. package/dist/plan-builder.d.ts +33 -0
  114. package/dist/plan-builder.d.ts.map +1 -0
  115. package/dist/plan-builder.js +139 -0
  116. package/dist/plan-builder.js.map +1 -0
  117. package/dist/plan-manifest.d.ts +6 -0
  118. package/dist/plan-manifest.d.ts.map +1 -0
  119. package/dist/plan-manifest.js +40 -0
  120. package/dist/plan-manifest.js.map +1 -0
  121. package/dist/project-discovery-app.d.ts +7 -0
  122. package/dist/project-discovery-app.d.ts.map +1 -0
  123. package/dist/project-discovery-app.js +122 -0
  124. package/dist/project-discovery-app.js.map +1 -0
  125. package/dist/project-discovery-database.d.ts +11 -0
  126. package/dist/project-discovery-database.d.ts.map +1 -0
  127. package/dist/project-discovery-database.js +46 -0
  128. package/dist/project-discovery-database.js.map +1 -0
  129. package/dist/project-discovery-types.d.ts +45 -0
  130. package/dist/project-discovery-types.d.ts.map +1 -0
  131. package/dist/project-discovery-types.js +2 -0
  132. package/dist/project-discovery-types.js.map +1 -0
  133. package/dist/project-discovery.d.ts +4 -0
  134. package/dist/project-discovery.d.ts.map +1 -0
  135. package/dist/project-discovery.js +152 -0
  136. package/dist/project-discovery.js.map +1 -0
  137. package/dist/prompt-driver.d.ts +32 -0
  138. package/dist/prompt-driver.d.ts.map +1 -0
  139. package/dist/prompt-driver.js +42 -0
  140. package/dist/prompt-driver.js.map +1 -0
  141. package/dist/provider-planning-definitions.d.ts +35 -0
  142. package/dist/provider-planning-definitions.d.ts.map +1 -0
  143. package/dist/provider-planning-definitions.js +109 -0
  144. package/dist/provider-planning-definitions.js.map +1 -0
  145. package/dist/provider-planning.d.ts +11 -0
  146. package/dist/provider-planning.d.ts.map +1 -0
  147. package/dist/provider-planning.js +131 -0
  148. package/dist/provider-planning.js.map +1 -0
  149. package/dist/render-ai-sources.d.ts +18 -0
  150. package/dist/render-ai-sources.d.ts.map +1 -0
  151. package/dist/render-ai-sources.js +49 -0
  152. package/dist/render-ai-sources.js.map +1 -0
  153. package/dist/render-ai.d.ts +11 -0
  154. package/dist/render-ai.d.ts.map +1 -0
  155. package/dist/render-ai.js +61 -0
  156. package/dist/render-ai.js.map +1 -0
  157. package/dist/render-auth-schema.d.ts +3 -0
  158. package/dist/render-auth-schema.d.ts.map +1 -0
  159. package/dist/render-auth-schema.js +85 -0
  160. package/dist/render-auth-schema.js.map +1 -0
  161. package/dist/render-auth-sources.d.ts +3 -0
  162. package/dist/render-auth-sources.d.ts.map +1 -0
  163. package/dist/render-auth-sources.js +17 -0
  164. package/dist/render-auth-sources.js.map +1 -0
  165. package/dist/render-auth.d.ts +6 -0
  166. package/dist/render-auth.d.ts.map +1 -0
  167. package/dist/render-auth.js +84 -0
  168. package/dist/render-auth.js.map +1 -0
  169. package/dist/render-database-sources.d.ts +5 -0
  170. package/dist/render-database-sources.d.ts.map +1 -0
  171. package/dist/render-database-sources.js +65 -0
  172. package/dist/render-database-sources.js.map +1 -0
  173. package/dist/render-database.d.ts +13 -0
  174. package/dist/render-database.d.ts.map +1 -0
  175. package/dist/render-database.js +40 -0
  176. package/dist/render-database.js.map +1 -0
  177. package/dist/render-domain-register.d.ts +4 -0
  178. package/dist/render-domain-register.d.ts.map +1 -0
  179. package/dist/render-domain-register.js +11 -0
  180. package/dist/render-domain-register.js.map +1 -0
  181. package/dist/render-domain-sources.d.ts +19 -0
  182. package/dist/render-domain-sources.d.ts.map +1 -0
  183. package/dist/render-domain-sources.js +132 -0
  184. package/dist/render-domain-sources.js.map +1 -0
  185. package/dist/render-domain.d.ts +26 -0
  186. package/dist/render-domain.d.ts.map +1 -0
  187. package/dist/render-domain.js +98 -0
  188. package/dist/render-domain.js.map +1 -0
  189. package/dist/render-resource-sources.d.ts +4 -0
  190. package/dist/render-resource-sources.d.ts.map +1 -0
  191. package/dist/render-resource-sources.js +31 -0
  192. package/dist/render-resource-sources.js.map +1 -0
  193. package/dist/render-resources.d.ts +11 -0
  194. package/dist/render-resources.d.ts.map +1 -0
  195. package/dist/render-resources.js +53 -0
  196. package/dist/render-resources.js.map +1 -0
  197. package/dist/render-route-sources.d.ts +6 -0
  198. package/dist/render-route-sources.d.ts.map +1 -0
  199. package/dist/render-route-sources.js +35 -0
  200. package/dist/render-route-sources.js.map +1 -0
  201. package/dist/render-routes.d.ts +13 -0
  202. package/dist/render-routes.d.ts.map +1 -0
  203. package/dist/render-routes.js +48 -0
  204. package/dist/render-routes.js.map +1 -0
  205. package/dist/render-service.d.ts +6 -0
  206. package/dist/render-service.d.ts.map +1 -0
  207. package/dist/render-service.js +124 -0
  208. package/dist/render-service.js.map +1 -0
  209. package/dist/scaffold-catalog.d.ts +75 -0
  210. package/dist/scaffold-catalog.d.ts.map +1 -0
  211. package/dist/scaffold-catalog.js +24 -0
  212. package/dist/scaffold-catalog.js.map +1 -0
  213. package/dist/source-edit.d.ts +10 -0
  214. package/dist/source-edit.d.ts.map +1 -0
  215. package/dist/source-edit.js +136 -0
  216. package/dist/source-edit.js.map +1 -0
  217. package/dist/source-import-edit.d.ts +3 -0
  218. package/dist/source-import-edit.d.ts.map +1 -0
  219. package/dist/source-import-edit.js +52 -0
  220. package/dist/source-import-edit.js.map +1 -0
  221. package/dist/template-root.d.ts +5 -0
  222. package/dist/template-root.d.ts.map +1 -0
  223. package/dist/template-root.js +15 -0
  224. package/dist/template-root.js.map +1 -0
  225. package/dist/templates/default/README.md +1 -1
  226. package/dist/templates/default/v1/agent/.env.example +0 -2
  227. package/dist/templates/default/v1/agent/README.md +7 -8
  228. package/dist/templates/default/v1/agent/package.json +6 -4
  229. package/dist/templates/default/v1/agent/relkit.config.ts +5 -15
  230. package/dist/templates/default/v1/agent/src/hello/agents/assistant.agent.ts +37 -4
  231. package/dist/templates/default/v1/agent/src/hello/agents/review.agent.ts +43 -0
  232. package/dist/templates/default/v1/agent/src/platform/env.ts +0 -2
  233. package/dist/templates/default/v1/agent/tests/integration/hello.route.test.ts +17 -6
  234. package/dist/templates/default/v1/agent/tests/unit/assistant.agent.test.ts +14 -36
  235. package/dist/templates/default/v1/agent/tests/unit/review.agent.test.ts +19 -0
  236. package/dist/templates/default/v1/api/package.json +3 -3
  237. package/dist/templates/default/v1/fullstack/.env.example +1 -0
  238. package/dist/templates/default/v1/fullstack/README.md +15 -0
  239. package/dist/templates/default/v1/fullstack/gitignore +4 -0
  240. package/dist/templates/default/v1/fullstack/package.json +35 -0
  241. package/dist/templates/default/v1/fullstack/relkit.config.ts +15 -0
  242. package/dist/templates/default/v1/fullstack/src/hello/agents/assistant.agent.ts +46 -0
  243. package/dist/templates/default/v1/fullstack/src/hello/agents/review.agent.ts +43 -0
  244. package/dist/templates/default/v1/fullstack/src/hello/functions/hello.function.ts +10 -0
  245. package/dist/templates/default/v1/fullstack/src/hello/service.ts +4 -0
  246. package/dist/templates/default/v1/fullstack/src/hello/tools/lookup.tool.ts +9 -0
  247. package/dist/templates/default/v1/fullstack/src/platform/env.ts +5 -0
  248. package/dist/templates/default/v1/fullstack/src/routes/hello/route.ts +4 -0
  249. package/dist/templates/default/v1/fullstack/tests/integration/hello.route.test.ts +29 -0
  250. package/dist/templates/default/v1/fullstack/tests/unit/assistant.agent.test.ts +18 -0
  251. package/dist/templates/default/v1/fullstack/tests/unit/hello.function.test.ts +7 -0
  252. package/dist/templates/default/v1/fullstack/tests/unit/review.agent.test.ts +19 -0
  253. package/dist/templates/default/v1/fullstack/tsconfig.json +21 -0
  254. package/dist/templates/default/v1/fullstack/web/app/agent-config.ts +7 -0
  255. package/dist/templates/default/v1/fullstack/web/app/layout.tsx +12 -0
  256. package/dist/templates/default/v1/fullstack/web/app/page.tsx +85 -0
  257. package/dist/templates/default/v1/fullstack/web/app/providers.tsx +29 -0
  258. package/dist/templates/default/v1/fullstack/web/next-env.d.ts +2 -0
  259. package/dist/templates/default/v1/fullstack/web/next.config.ts +5 -0
  260. package/dist/templates/default/v1/fullstack/web/tsconfig.json +10 -0
  261. package/dist/templates/default/v1/minimal/package.json +3 -3
  262. package/dist/templates/default/v1/tasks/.env.example +2 -0
  263. package/dist/templates/default/v1/tasks/README.md +27 -0
  264. package/dist/templates/default/v1/tasks/examples/export-orders.json +1 -0
  265. package/dist/templates/default/v1/tasks/gitignore +10 -0
  266. package/dist/templates/default/v1/tasks/package.json +24 -0
  267. package/dist/templates/default/v1/tasks/relkit.config.ts +11 -0
  268. package/dist/templates/default/v1/tasks/src/orders/functions/health.function.ts +9 -0
  269. package/dist/templates/default/v1/tasks/src/orders/jobs/export-orders.job.ts +15 -0
  270. package/dist/templates/default/v1/tasks/src/orders/service.ts +10 -0
  271. package/dist/templates/default/v1/tasks/src/orders/tasks/export-orders.task.ts +19 -0
  272. package/dist/templates/default/v1/tasks/src/platform/env.ts +3 -0
  273. package/dist/templates/default/v1/tasks/src/routes/health/route.ts +4 -0
  274. package/dist/templates/default/v1/tasks/tests/unit/export-orders.task.test.ts +7 -0
  275. package/dist/templates/default/v1/tasks/tsconfig.json +14 -0
  276. package/package.json +6 -1
  277. package/dist/templates/default/v1/agent/src/hello/functions/ask-assistant.function.ts +0 -16
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AAErC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE;YAC5C,GAAG,CAAC,OAAO,CAAC,IAAI;gBACd,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE,CAAC;SAC/E,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAC5E,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GACR,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YACzE,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,sBAAsB,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI;YACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;YACzD,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,QAAQ,GAAG,IAAI,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/options.d.ts CHANGED
@@ -1,13 +1,16 @@
1
- export declare const CREATE_TEMPLATES: readonly ["minimal", "api", "agent"];
1
+ export declare const CREATE_TEMPLATES: readonly ["minimal", "api", "agent", "fullstack"];
2
2
  export type CreateTemplate = (typeof CREATE_TEMPLATES)[number];
3
3
  export declare const CREATE_CLOUDS: readonly ["aws", "none"];
4
4
  export type CreateCloud = (typeof CREATE_CLOUDS)[number];
5
5
  export declare const CREATE_DEPLOYMENTS: readonly ["pulumi", "none"];
6
6
  export type CreateDeployment = (typeof CREATE_DEPLOYMENTS)[number];
7
+ export declare const CREATE_JOBS: readonly ["inngest-docker", "effect-mq-docker", "trigger-docker"];
8
+ export type CreateJobs = (typeof CREATE_JOBS)[number];
7
9
  export declare const CREATE_OPTION_DEFAULTS: Readonly<{
8
10
  template: CreateTemplate;
9
11
  cloud: CreateCloud;
10
12
  deploy: CreateDeployment;
13
+ jobs: CreateJobs | undefined;
11
14
  install: boolean;
12
15
  git: boolean;
13
16
  examples: boolean;
@@ -19,6 +22,7 @@ export interface CreateOptions {
19
22
  readonly template: CreateTemplate;
20
23
  readonly cloud: CreateCloud;
21
24
  readonly deploy: CreateDeployment;
25
+ readonly jobs?: CreateJobs;
22
26
  readonly install: boolean;
23
27
  readonly git: boolean;
24
28
  readonly examples: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,sCAAuC,CAAC;AACrE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,eAAO,MAAM,aAAa,0BAA2B,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,kBAAkB,6BAA8B,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,sBAAsB;cACV,cAAc;WACpB,WAAW;YACV,gBAAgB;aACjB,OAAO;SACX,OAAO;cACF,OAAO;yBACK,OAAO;UACtB,OAAO;EACtB,CAAC;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAG,qBAAqB,CAAU;gBAEnC,OAAO,EAAE,MAAM;CAI5B;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAyDf"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,mDAAoD,CAAC;AAClF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,eAAO,MAAM,aAAa,0BAA2B,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,kBAAkB,6BAA8B,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,WAAW,mEAAoE,CAAC;AAC7F,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,eAAO,MAAM,sBAAsB;cACV,cAAc;WACpB,WAAW;YACV,gBAAgB;UACf,UAAU,GAAG,SAAS;aACxB,OAAO;SACX,OAAO;cACF,OAAO;yBACK,OAAO;UACtB,OAAO;EACtB,CAAC;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAG,qBAAqB,CAAU;gBAEnC,OAAO,EAAE,MAAM;CAI5B;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,oBAAyB,GACjC,aAAa,CA+Df"}
package/dist/options.js CHANGED
@@ -1,10 +1,12 @@
1
- export const CREATE_TEMPLATES = ["minimal", "api", "agent"];
1
+ export const CREATE_TEMPLATES = ["minimal", "api", "agent", "fullstack"];
2
2
  export const CREATE_CLOUDS = ["aws", "none"];
3
3
  export const CREATE_DEPLOYMENTS = ["pulumi", "none"];
4
+ export const CREATE_JOBS = ["inngest-docker", "effect-mq-docker", "trigger-docker"];
4
5
  export const CREATE_OPTION_DEFAULTS = Object.freeze({
5
6
  template: "minimal",
6
7
  cloud: "none",
7
8
  deploy: "none",
9
+ jobs: undefined,
8
10
  install: true,
9
11
  git: true,
10
12
  examples: true,
@@ -25,6 +27,7 @@ export function normalizeCreateOptions(args, context = {}) {
25
27
  let template = CREATE_OPTION_DEFAULTS.template;
26
28
  let cloud = CREATE_OPTION_DEFAULTS.cloud;
27
29
  let deploy = CREATE_OPTION_DEFAULTS.deploy;
30
+ let jobs = CREATE_OPTION_DEFAULTS.jobs;
28
31
  let install = CREATE_OPTION_DEFAULTS.install;
29
32
  let git = CREATE_OPTION_DEFAULTS.git;
30
33
  let examples = CREATE_OPTION_DEFAULTS.examples;
@@ -63,6 +66,11 @@ export function normalizeCreateOptions(args, context = {}) {
63
66
  index = option.index;
64
67
  deploy = choice(option.value, "--deploy", CREATE_DEPLOYMENTS);
65
68
  }
69
+ else if (argument === "--jobs" || argument.startsWith("--jobs=")) {
70
+ const option = readValue(args, index, argument, "--jobs");
71
+ index = option.index;
72
+ jobs = choice(option.value, "--jobs", CREATE_JOBS);
73
+ }
66
74
  else if (argument === "--directory" || argument.startsWith("--directory=")) {
67
75
  const option = readValue(args, index, argument, "--directory");
68
76
  index = option.index;
@@ -83,6 +91,7 @@ export function normalizeCreateOptions(args, context = {}) {
83
91
  template,
84
92
  cloud,
85
93
  deploy,
94
+ ...(jobs === undefined ? {} : { jobs }),
86
95
  install,
87
96
  git,
88
97
  examples,
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAU,CAAC;AAGlF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;AAGtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAC;AAG9D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,CAAU,CAAC;AAG7F,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,SAA2B;IACrC,KAAK,EAAE,MAAqB;IAC5B,MAAM,EAAE,MAA0B;IAClC,IAAI,EAAE,SAAmC;IACzC,OAAO,EAAE,IAAe;IACxB,GAAG,EAAE,IAAe;IACpB,QAAQ,EAAE,IAAe;IACzB,mBAAmB,EAAE,KAAgB;IACrC,IAAI,EAAE,KAAgB;CACvB,CAAC,CAAC;AAoBH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,GAAG,qBAA8B,CAAC;IAE/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,UAAU,sBAAsB,CACpC,IAAuB,EACvB,UAAgC,EAAE;IAElC,IAAI,IAAwB,CAAC;IAC7B,IAAI,SAA6B,CAAC;IAClC,IAAI,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC;IAC/C,IAAI,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC;IACzC,IAAI,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAC3C,IAAI,IAAI,GAA2B,sBAAsB,CAAC,IAAI,CAAC;IAC/D,IAAI,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC7C,IAAI,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC;IACrC,IAAI,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC;IAC/C,IAAI,mBAAmB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC;IACrE,IAAI,IAAI,GAAG,sBAAsB,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;IAEhE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;QAC9B,IAAI,QAAQ,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC;aAClC,IAAI,QAAQ,KAAK,yBAAyB;YAAE,mBAAmB,GAAG,IAAI,CAAC;aACvE,IAAI,QAAQ,KAAK,WAAW;YAAE,OAAO,GAAG,IAAI,CAAC;aAC7C,IAAI,QAAQ,KAAK,cAAc;YAAE,OAAO,GAAG,KAAK,CAAC;aACjD,IAAI,QAAQ,KAAK,OAAO;YAAE,GAAG,GAAG,IAAI,CAAC;aACrC,IAAI,QAAQ,KAAK,UAAU;YAAE,GAAG,GAAG,KAAK,CAAC;aACzC,IAAI,QAAQ,KAAK,YAAY;YAAE,QAAQ,GAAG,IAAI,CAAC;aAC/C,IAAI,QAAQ,KAAK,eAAe;YAAE,QAAQ,GAAG,KAAK,CAAC;aACnD,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACzE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC9D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAClE,CAAC;aAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC3D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACvE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC5D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC/D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,kBAAkB,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,GAAG,QAAQ,CAAC;;YAC1C,MAAM,IAAI,kBAAkB,CAAC,mCAAmC,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,kBAAkB,CAAC,uCAAuC,CAAC,CAAC;IAC9F,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,MAAM;QACN,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,OAAO;QACP,GAAG;QACH,QAAQ;QACR,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,mBAAmB;QACnB,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAChB,IAAuB,EACvB,KAAa,EACb,QAAgB,EAChB,MAAc;IAEd,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;IAC5B,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IACxF,CAAC;IACD,MAAM,IAAI,kBAAkB,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,MAAM,CAAmB,KAAa,EAAE,MAAc,EAAE,OAAqB;IACpF,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAU,CAAC;QAAE,OAAO,KAAU,CAAC;IACpD,MAAM,IAAI,kBAAkB,CAAC,GAAG,MAAM,oBAAoB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClF,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { type AddRequest, type ScaffoldPlan } from "./add-types.js";
2
+ import type { DiscoveredArtifact, DiscoveredProfile, ProjectDiscovery } from "./project-discovery-types.js";
3
+ import type { ScaffoldDependencyName } from "./scaffold-catalog.js";
4
+ export declare class PlanBuilder {
5
+ #private;
6
+ readonly request: AddRequest;
7
+ readonly discovery: ProjectDiscovery;
8
+ constructor(request: AddRequest, discovery: ProjectDiscovery);
9
+ read(path: string): Promise<string>;
10
+ create(path: string, content: string, mode?: number): Promise<void>;
11
+ update(path: string, transform: (source: string) => string): Promise<void>;
12
+ dependency(name: ScaffoldDependencyName): void;
13
+ get artifacts(): readonly DiscoveredArtifact[];
14
+ registerArtifact(kind: DiscoveredArtifact["kind"], value: {
15
+ readonly domain: string;
16
+ readonly path: string;
17
+ readonly binding: string;
18
+ readonly id: string;
19
+ readonly exportKind?: "default" | "named";
20
+ }): void;
21
+ get profiles(): readonly DiscoveredProfile[];
22
+ registerProfile(profile: DiscoveredProfile): void;
23
+ script(name: string, command: string): void;
24
+ warning(code: string, message: string): void;
25
+ nextStep(command: string): void;
26
+ envExample(name: string, value?: string): Promise<void>;
27
+ gitignore(pattern: string): Promise<void>;
28
+ finish(): Promise<ScaffoldPlan>;
29
+ relative(absolutePath: string): string;
30
+ private appendLine;
31
+ private updateManifest;
32
+ }
33
+ //# sourceMappingURL=plan-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-builder.d.ts","sourceRoot":"","sources":["../src/plan-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,UAAU,EAEf,KAAK,YAAY,EAElB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,qBAAa,WAAW;;IAUpB,QAAQ,CAAC,OAAO,EAAE,UAAU;IAC5B,QAAQ,CAAC,SAAS,EAAE,gBAAgB;gBAD3B,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,gBAAgB;IAEhC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKnC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBhF,UAAU,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI;IAI9C,IAAI,SAAS,IAAI,SAAS,kBAAkB,EAAE,CAE7C;IAED,gBAAgB,CACd,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAChC,KAAK,EAAE;QACL,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;KAC3C,GACA,IAAI;IAcP,IAAI,QAAQ,IAAI,SAAS,iBAAiB,EAAE,CAE3C;IAED,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAIjD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAyBrC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;YAIxB,UAAU;YAiBV,cAAc;CAO7B"}
@@ -0,0 +1,139 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { relative, resolve } from "node:path";
3
+ import { ADD_FAILURE_CODES, AddScaffoldError, } from "./add-types.js";
4
+ import { mergeScaffoldManifest } from "./plan-manifest.js";
5
+ export class PlanBuilder {
6
+ request;
7
+ discovery;
8
+ #files = new Map();
9
+ #dependencies = new Set();
10
+ #scripts = new Map();
11
+ #warnings = new Map();
12
+ #nextSteps = new Set();
13
+ #plannedArtifacts = [];
14
+ #plannedProfiles = [];
15
+ constructor(request, discovery) {
16
+ this.request = request;
17
+ this.discovery = discovery;
18
+ }
19
+ async read(path) {
20
+ const planned = this.#files.get(path);
21
+ return planned?.content ?? readFile(resolve(this.discovery.projectRoot, path), "utf8");
22
+ }
23
+ async create(path, content, mode) {
24
+ if (this.#files.has(path) ||
25
+ (await Bun.file(resolve(this.discovery.projectRoot, path)).exists())) {
26
+ collision(`${path} already exists.`);
27
+ }
28
+ this.#files.set(path, {
29
+ path,
30
+ action: "create",
31
+ content,
32
+ ...(mode === undefined ? {} : { mode }),
33
+ });
34
+ }
35
+ async update(path, transform) {
36
+ const existing = this.#files.get(path);
37
+ let source;
38
+ try {
39
+ source =
40
+ existing?.content ?? (await readFile(resolve(this.discovery.projectRoot, path), "utf8"));
41
+ }
42
+ catch {
43
+ throw new AddScaffoldError(ADD_FAILURE_CODES.invalidProject, `${path} does not exist.`);
44
+ }
45
+ const content = transform(source);
46
+ if (content === source)
47
+ return;
48
+ this.#files.set(path, {
49
+ path,
50
+ action: existing?.action ?? "update",
51
+ content,
52
+ ...(existing?.mode === undefined ? {} : { mode: existing.mode }),
53
+ });
54
+ }
55
+ dependency(name) {
56
+ this.#dependencies.add(name);
57
+ }
58
+ get artifacts() {
59
+ return [...this.discovery.artifacts, ...this.#plannedArtifacts];
60
+ }
61
+ registerArtifact(kind, value) {
62
+ this.#plannedArtifacts.push({
63
+ kind,
64
+ path: value.path,
65
+ domain: value.domain,
66
+ binding: value.binding,
67
+ id: value.id,
68
+ factory: "scaffold",
69
+ exported: true,
70
+ exportKind: value.exportKind ?? "default",
71
+ options: [],
72
+ });
73
+ }
74
+ get profiles() {
75
+ return [...this.discovery.profiles, ...this.#plannedProfiles];
76
+ }
77
+ registerProfile(profile) {
78
+ this.#plannedProfiles.push(profile);
79
+ }
80
+ script(name, command) {
81
+ this.#scripts.set(name, command);
82
+ }
83
+ warning(code, message) {
84
+ this.#warnings.set(code, Object.freeze({ code, message }));
85
+ }
86
+ nextStep(command) {
87
+ this.#nextSteps.add(command);
88
+ }
89
+ async envExample(name, value = "") {
90
+ await this.appendLine(".env.example", `${name}=${value}`, (source) => new RegExp(`^${escape(name)}=`, "m").test(source));
91
+ }
92
+ async gitignore(pattern) {
93
+ await this.appendLine(".gitignore", pattern, (source) => source.split(/\r?\n/).includes(pattern));
94
+ }
95
+ async finish() {
96
+ const dependencies = await this.updateManifest();
97
+ return Object.freeze({
98
+ request: this.request,
99
+ projectRoot: this.discovery.projectRoot,
100
+ operations: Object.freeze([...this.#files.values()].sort((a, b) => a.path.localeCompare(b.path))),
101
+ dependencies: Object.freeze(dependencies),
102
+ artifacts: Object.freeze(this.#plannedArtifacts.map(({ kind, path, id, binding }) => ({
103
+ kind,
104
+ path,
105
+ id: id,
106
+ binding,
107
+ }))),
108
+ profiles: Object.freeze(this.#plannedProfiles.map(({ capability, name }) => ({ capability, name }))),
109
+ warnings: Object.freeze([...this.#warnings.values()]),
110
+ nextSteps: Object.freeze([...this.#nextSteps]),
111
+ });
112
+ }
113
+ relative(absolutePath) {
114
+ return relative(this.discovery.projectRoot, absolutePath).replaceAll("\\", "/");
115
+ }
116
+ async appendLine(path, line, present) {
117
+ if (!(await Bun.file(resolve(this.discovery.projectRoot, path)).exists()) &&
118
+ !this.#files.has(path)) {
119
+ await this.create(path, `${line}\n`);
120
+ return;
121
+ }
122
+ await this.update(path, (source) => present(source) ? source : `${source.trimEnd()}\n${line}\n`);
123
+ }
124
+ async updateManifest() {
125
+ if (this.#dependencies.size === 0 && this.#scripts.size === 0)
126
+ return {};
127
+ const path = "package.json";
128
+ const result = mergeScaffoldManifest(await this.read(path), this.#dependencies, this.#scripts);
129
+ await this.update(path, () => result.content);
130
+ return result.added;
131
+ }
132
+ }
133
+ function collision(message) {
134
+ throw new AddScaffoldError(ADD_FAILURE_CODES.collision, message);
135
+ }
136
+ function escape(value) {
137
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
138
+ }
139
+ //# sourceMappingURL=plan-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-builder.js","sourceRoot":"","sources":["../src/plan-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type ScaffoldDependencyName } from "./scaffold-catalog.js";
2
+ export declare function mergeScaffoldManifest(source: string, dependencies: ReadonlySet<ScaffoldDependencyName>, plannedScripts: ReadonlyMap<string, string>): {
3
+ readonly content: string;
4
+ readonly added: Record<string, string>;
5
+ };
6
+ //# sourceMappingURL=plan-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-manifest.d.ts","sourceRoot":"","sources":["../src/plan-manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAS3F,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,WAAW,CAAC,sBAAsB,CAAC,EACjD,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1C;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CA4BtE"}
@@ -0,0 +1,40 @@
1
+ import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
2
+ import { SCAFFOLD_DEPENDENCIES } from "./scaffold-catalog.js";
3
+ export function mergeScaffoldManifest(source, dependencies, plannedScripts) {
4
+ const manifest = JSON.parse(source);
5
+ const added = {};
6
+ for (const name of [...dependencies].sort()) {
7
+ const wanted = SCAFFOLD_DEPENDENCIES[name];
8
+ const current = manifest.dependencies?.[name] ?? manifest.devDependencies?.[name];
9
+ if (current !== undefined && current !== wanted.version && current !== "workspace:*") {
10
+ collision(`package.json already declares ${name}@${current}.`);
11
+ }
12
+ if (current !== undefined)
13
+ continue;
14
+ const section = wanted.section === "dependencies"
15
+ ? (manifest.dependencies ??= {})
16
+ : (manifest.devDependencies ??= {});
17
+ section[name] = wanted.version;
18
+ added[name] = wanted.version;
19
+ }
20
+ const scripts = (manifest.scripts ??= {});
21
+ for (const [name, command] of plannedScripts) {
22
+ if (scripts[name] !== undefined && scripts[name] !== command) {
23
+ collision(`package.json script ${name} already exists.`);
24
+ }
25
+ scripts[name] = command;
26
+ }
27
+ if (manifest.dependencies)
28
+ manifest.dependencies = sort(manifest.dependencies);
29
+ if (manifest.devDependencies)
30
+ manifest.devDependencies = sort(manifest.devDependencies);
31
+ manifest.scripts = sort(scripts);
32
+ return { content: `${JSON.stringify(manifest, null, 2)}\n`, added };
33
+ }
34
+ function sort(value) {
35
+ return Object.fromEntries(Object.entries(value).sort());
36
+ }
37
+ function collision(message) {
38
+ throw new AddScaffoldError(ADD_FAILURE_CODES.collision, message);
39
+ }
40
+ //# sourceMappingURL=plan-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-manifest.js","sourceRoot":"","sources":["../src/plan-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAA+B,MAAM,uBAAuB,CAAC;AAS3F,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,YAAiD,EACjD,cAA2C;IAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAa,CAAC;IAChD,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC;QAClF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YACrF,SAAS,CAAC,iCAAiC,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,KAAK,SAAS;YAAE,SAAS;QACpC,MAAM,OAAO,GACX,MAAM,CAAC,OAAO,KAAK,cAAc;YAC/B,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,KAAK,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,cAAc,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YAC7D,SAAS,CAAC,uBAAuB,IAAI,kBAAkB,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY;QAAE,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/E,IAAI,QAAQ,CAAC,eAAe;QAAE,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACxF,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,IAAI,CAAC,KAA6B;IACzC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { DiscoveredProfile } from "./project-discovery-types.js";
2
+ export declare function readAppDiscovery(source: string, path: string, root: string): {
3
+ readonly factory: "defineApp" | "defineConfig";
4
+ readonly envPath?: string;
5
+ readonly profiles: readonly DiscoveredProfile[];
6
+ };
7
+ //# sourceMappingURL=project-discovery-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-discovery-app.d.ts","sourceRoot":"","sources":["../src/project-discovery-app.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKtE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX;IACD,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACjD,CAiBA"}
@@ -0,0 +1,122 @@
1
+ import { dirname, join, resolve } from "node:path";
2
+ import * as ts from "typescript";
3
+ import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
4
+ import { readFactoryObject, staticPropertyName } from "./source-edit.js";
5
+ const CAPABILITIES = ["bucket", "cache", "job", "event", "model"];
6
+ export function readAppDiscovery(source, path, root) {
7
+ for (const factory of ["defineApp", "defineConfig"]) {
8
+ try {
9
+ const object = readFactoryObject(source, path, [factory]);
10
+ return {
11
+ factory,
12
+ ...optional("envPath", importedEnvPath(source, object, path, root)),
13
+ profiles: readProfiles(object),
14
+ };
15
+ }
16
+ catch (error) {
17
+ if (factory === "defineConfig")
18
+ throw error;
19
+ }
20
+ }
21
+ throw new AddScaffoldError(ADD_FAILURE_CODES.unsupportedSourceShape, `${path} has no canonical app.`);
22
+ }
23
+ function readProfiles(object) {
24
+ const defaults = objectPropertyObject(object, "defaults");
25
+ return CAPABILITIES.flatMap((capability) => {
26
+ const item = profileProperty(object, capability);
27
+ if (!item || !ts.isPropertyAssignment(item))
28
+ return [];
29
+ const value = unwrap(item.initializer);
30
+ const profiles = value && ts.isObjectLiteralExpression(value) ? value.properties : [];
31
+ const direct = value !== undefined && ts.isCallExpression(value);
32
+ return (direct ? [undefined] : profiles).flatMap((entry) => {
33
+ const name = entry === undefined ? "default" : staticPropertyName(entry.name);
34
+ if (name === undefined)
35
+ return [];
36
+ const expression = entry && ts.isPropertyAssignment(entry) ? unwrap(entry.initializer) : value;
37
+ return [
38
+ {
39
+ capability,
40
+ name,
41
+ ...optional("adapter", expression && ts.isCallExpression(expression) ? callName(expression) : undefined),
42
+ ...optional("modelId", capability === "model" && expression && ts.isCallExpression(expression)
43
+ ? callStringOption(expression, "defaultModel")
44
+ : undefined),
45
+ isDefault: defaultValue(defaults, capability === "job" ? "jobs" : capability) === name ||
46
+ (capability === "job" && defaultValue(defaults, "job") === name) ||
47
+ (direct && name === "default"),
48
+ },
49
+ ];
50
+ });
51
+ });
52
+ }
53
+ function importedEnvPath(source, object, appPath, root) {
54
+ const env = objectProperty(object, "env");
55
+ if (!env || !ts.isShorthandPropertyAssignment(env))
56
+ return undefined;
57
+ const file = ts.createSourceFile(appPath, source, ts.ScriptTarget.Latest, true);
58
+ const declaration = file.statements
59
+ .filter(ts.isImportDeclaration)
60
+ .find((statement) => statement.importClause?.name?.text === env.name.text);
61
+ if (!declaration || !ts.isStringLiteralLike(declaration.moduleSpecifier))
62
+ return undefined;
63
+ const specifier = declaration.moduleSpecifier.text;
64
+ const imported = specifier.startsWith("@app/")
65
+ ? join(root, "src", specifier.slice(5))
66
+ : resolve(dirname(appPath), specifier);
67
+ return imported.replace(/\.js$/, ".ts");
68
+ }
69
+ function objectProperty(object, name) {
70
+ return object.properties.find((item) => staticPropertyName(item.name) === name);
71
+ }
72
+ function profileProperty(object, capability) {
73
+ return capability === "job"
74
+ ? (objectProperty(object, "jobs") ?? objectProperty(object, "job"))
75
+ : objectProperty(object, capability);
76
+ }
77
+ function objectPropertyObject(object, name) {
78
+ const item = objectProperty(object, name);
79
+ const value = item && ts.isPropertyAssignment(item) ? unwrap(item.initializer) : undefined;
80
+ return value && ts.isObjectLiteralExpression(value) ? value : undefined;
81
+ }
82
+ function defaultValue(object, name) {
83
+ const item = object && objectProperty(object, name);
84
+ return item && ts.isPropertyAssignment(item) && ts.isStringLiteralLike(item.initializer)
85
+ ? item.initializer.text
86
+ : undefined;
87
+ }
88
+ function callName(call) {
89
+ const name = ts.isIdentifier(call.expression)
90
+ ? call.expression.text
91
+ : ts.isPropertyAccessExpression(call.expression)
92
+ ? call.expression.name.text
93
+ : undefined;
94
+ if (name === undefined)
95
+ return undefined;
96
+ const nested = call.arguments
97
+ .map((argument) => unwrap(argument))
98
+ .find((argument) => argument !== undefined && ts.isCallExpression(argument));
99
+ const nestedName = nested === undefined ? undefined : callName(nested);
100
+ return nestedName === undefined ? name : `${name}(${nestedName})`;
101
+ }
102
+ function callStringOption(call, name) {
103
+ const value = unwrap(call.arguments[0]);
104
+ if (!value || !ts.isObjectLiteralExpression(value))
105
+ return undefined;
106
+ const item = objectProperty(value, name);
107
+ return item && ts.isPropertyAssignment(item) && ts.isStringLiteralLike(item.initializer)
108
+ ? item.initializer.text
109
+ : undefined;
110
+ }
111
+ function unwrap(value) {
112
+ return value &&
113
+ (ts.isAsExpression(value) ||
114
+ ts.isSatisfiesExpression(value) ||
115
+ ts.isParenthesizedExpression(value))
116
+ ? unwrap(value.expression)
117
+ : value;
118
+ }
119
+ function optional(name, value) {
120
+ return value === undefined ? {} : { [name]: value };
121
+ }
122
+ //# sourceMappingURL=project-discovery-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-discovery-app.js","sourceRoot":"","sources":["../src/project-discovery-app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { DatabaseDialect } from "./add-types.js";
2
+ interface SourceModule {
3
+ readonly fileName: string;
4
+ readonly text: string;
5
+ }
6
+ export declare function discoverDatabaseDetails(modules: readonly SourceModule[], servicePath: string, source: string): {
7
+ readonly dialect?: DatabaseDialect;
8
+ readonly schemaPath?: string;
9
+ };
10
+ export {};
11
+ //# sourceMappingURL=project-discovery-database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-discovery-database.d.ts","sourceRoot":"","sources":["../src/project-discovery-database.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,UAAU,YAAY;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAStE"}
@@ -0,0 +1,46 @@
1
+ import { posix } from "node:path";
2
+ import * as ts from "typescript";
3
+ import { readFactoryObject, staticPropertyName } from "./source-edit.js";
4
+ export function discoverDatabaseDetails(modules, servicePath, source) {
5
+ const domain = servicePath.split("/").slice(0, -1).join("/");
6
+ const relevant = modules.filter((module) => module.fileName.startsWith(`${domain}/`));
7
+ const dialects = new Set(relevant.flatMap((module) => dialectOf(module.text)));
8
+ const schemaPath = importedSchemaPath(source, servicePath);
9
+ return {
10
+ ...(dialects.size === 1 ? { dialect: [...dialects][0] } : {}),
11
+ ...(schemaPath === undefined ? {} : { schemaPath }),
12
+ };
13
+ }
14
+ function importedSchemaPath(source, servicePath) {
15
+ const object = readFactoryObject(source, servicePath, ["defineDrizzleService"]);
16
+ const schema = object.properties.find((item) => staticPropertyName(item.name) === "schema");
17
+ const binding = schema && ts.isShorthandPropertyAssignment(schema)
18
+ ? schema.name.text
19
+ : schema && ts.isPropertyAssignment(schema) && ts.isIdentifier(schema.initializer)
20
+ ? schema.initializer.text
21
+ : undefined;
22
+ if (!binding)
23
+ return undefined;
24
+ const file = ts.createSourceFile(servicePath, source, ts.ScriptTarget.Latest, true);
25
+ const declaration = file.statements
26
+ .filter(ts.isImportDeclaration)
27
+ .find((item) => item.importClause?.namedBindings &&
28
+ ts.isNamespaceImport(item.importClause.namedBindings) &&
29
+ item.importClause.namedBindings.name.text === binding);
30
+ if (!declaration || !ts.isStringLiteralLike(declaration.moduleSpecifier))
31
+ return undefined;
32
+ const value = declaration.moduleSpecifier.text;
33
+ if (!value.startsWith("."))
34
+ return undefined;
35
+ return posix.normalize(posix.join(posix.dirname(servicePath), value.replace(/\.js$/, ".ts")));
36
+ }
37
+ function dialectOf(source) {
38
+ if (source.includes("drizzle-orm/sqlite-core") || source.includes("drizzle-orm/bun-sqlite"))
39
+ return ["sqlite"];
40
+ if (source.includes("drizzle-orm/pg-core") || source.includes("drizzle.postgres"))
41
+ return ["postgresql"];
42
+ if (source.includes("drizzle-orm/mysql-core") || source.includes("drizzle.mysql"))
43
+ return ["mysql"];
44
+ return [];
45
+ }
46
+ //# sourceMappingURL=project-discovery-database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-discovery-database.js","sourceRoot":"","sources":["../src/project-discovery-database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { SourceFactoryKind } from "@relkit/compiler";
2
+ import type { DatabaseDialect } from "./add-types.js";
3
+ export interface DiscoveredServiceMember {
4
+ readonly name: string;
5
+ readonly targetBinding?: string;
6
+ }
7
+ export interface DiscoveredService {
8
+ readonly domain: string;
9
+ readonly path: string;
10
+ readonly binding: string;
11
+ readonly capability: "generic" | "database" | "auth";
12
+ readonly dialect?: DatabaseDialect;
13
+ readonly schemaPath?: string;
14
+ readonly members: readonly DiscoveredServiceMember[];
15
+ }
16
+ export interface DiscoveredArtifact {
17
+ readonly kind: SourceFactoryKind;
18
+ readonly path: string;
19
+ readonly domain?: string;
20
+ readonly binding: string;
21
+ readonly id?: string;
22
+ readonly factory: string;
23
+ readonly exported: boolean;
24
+ readonly exportKind?: "default" | "named";
25
+ readonly options: readonly string[];
26
+ }
27
+ export interface DiscoveredProfile {
28
+ readonly capability: "bucket" | "cache" | "job" | "event" | "model";
29
+ readonly name: string;
30
+ readonly adapter?: string;
31
+ readonly modelId?: string;
32
+ readonly isDefault: boolean;
33
+ }
34
+ export interface ProjectDiscovery {
35
+ readonly projectRoot: string;
36
+ readonly packagePath: string;
37
+ readonly appPath: string;
38
+ readonly appFactory: "defineApp" | "defineConfig";
39
+ readonly envPath?: string;
40
+ readonly services: readonly DiscoveredService[];
41
+ readonly artifacts: readonly DiscoveredArtifact[];
42
+ readonly profiles: readonly DiscoveredProfile[];
43
+ readonly awsPulumiDeployment: boolean;
44
+ }
45
+ //# sourceMappingURL=project-discovery-types.d.ts.map