@baseplate-dev/project-builder-server 0.3.3 → 0.3.5

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 (247) hide show
  1. package/dist/actions/diff/diff-project.action.d.ts +73 -0
  2. package/dist/actions/diff/diff-project.action.d.ts.map +1 -0
  3. package/dist/actions/diff/diff-project.action.js +103 -0
  4. package/dist/actions/diff/diff-project.action.js.map +1 -0
  5. package/dist/actions/diff/index.d.ts +2 -0
  6. package/dist/actions/diff/index.d.ts.map +1 -0
  7. package/dist/actions/diff/index.js +2 -0
  8. package/dist/actions/diff/index.js.map +1 -0
  9. package/dist/actions/index.d.ts +7 -0
  10. package/dist/actions/index.d.ts.map +1 -0
  11. package/dist/actions/index.js +7 -0
  12. package/dist/actions/index.js.map +1 -0
  13. package/dist/actions/registry.d.ts +270 -0
  14. package/dist/actions/registry.d.ts.map +1 -0
  15. package/dist/actions/registry.js +23 -0
  16. package/dist/actions/registry.js.map +1 -0
  17. package/dist/actions/snapshot/index.d.ts +5 -0
  18. package/dist/actions/snapshot/index.d.ts.map +1 -0
  19. package/dist/actions/snapshot/index.js +5 -0
  20. package/dist/actions/snapshot/index.js.map +1 -0
  21. package/dist/actions/snapshot/snapshot-add.action.d.ts +16 -0
  22. package/dist/actions/snapshot/snapshot-add.action.d.ts.map +1 -0
  23. package/dist/actions/snapshot/snapshot-add.action.js +80 -0
  24. package/dist/actions/snapshot/snapshot-add.action.js.map +1 -0
  25. package/dist/actions/snapshot/snapshot-remove.action.d.ts +15 -0
  26. package/dist/actions/snapshot/snapshot-remove.action.d.ts.map +1 -0
  27. package/dist/actions/snapshot/snapshot-remove.action.js +75 -0
  28. package/dist/actions/snapshot/snapshot-remove.action.js.map +1 -0
  29. package/dist/actions/snapshot/snapshot-save.action.d.ts +15 -0
  30. package/dist/actions/snapshot/snapshot-save.action.d.ts.map +1 -0
  31. package/dist/actions/snapshot/snapshot-save.action.js +82 -0
  32. package/dist/actions/snapshot/snapshot-save.action.js.map +1 -0
  33. package/dist/actions/snapshot/snapshot-show.action.d.ts +43 -0
  34. package/dist/actions/snapshot/snapshot-show.action.d.ts.map +1 -0
  35. package/dist/actions/snapshot/snapshot-show.action.js +136 -0
  36. package/dist/actions/snapshot/snapshot-show.action.js.map +1 -0
  37. package/dist/actions/sync/index.d.ts +2 -0
  38. package/dist/actions/sync/index.d.ts.map +1 -0
  39. package/dist/actions/sync/index.js +2 -0
  40. package/dist/actions/sync/index.js.map +1 -0
  41. package/dist/actions/sync/sync-project.action.d.ts +14 -0
  42. package/dist/actions/sync/sync-project.action.d.ts.map +1 -0
  43. package/dist/actions/sync/sync-project.action.js +94 -0
  44. package/dist/actions/sync/sync-project.action.js.map +1 -0
  45. package/dist/actions/template-extractor/discover-generators.action.d.ts +49 -0
  46. package/dist/actions/template-extractor/discover-generators.action.d.ts.map +1 -0
  47. package/dist/actions/template-extractor/discover-generators.action.js +57 -0
  48. package/dist/actions/template-extractor/discover-generators.action.js.map +1 -0
  49. package/dist/actions/template-extractor/extract-templates.action.d.ts +14 -0
  50. package/dist/actions/template-extractor/extract-templates.action.d.ts.map +1 -0
  51. package/dist/actions/template-extractor/extract-templates.action.js +60 -0
  52. package/dist/actions/template-extractor/extract-templates.action.js.map +1 -0
  53. package/dist/actions/template-extractor/generate-templates.action.d.ts +12 -0
  54. package/dist/actions/template-extractor/generate-templates.action.d.ts.map +1 -0
  55. package/dist/actions/template-extractor/generate-templates.action.js +58 -0
  56. package/dist/actions/template-extractor/generate-templates.action.js.map +1 -0
  57. package/dist/actions/template-extractor/index.d.ts +4 -0
  58. package/dist/actions/template-extractor/index.d.ts.map +1 -0
  59. package/dist/actions/template-extractor/index.js +4 -0
  60. package/dist/actions/template-extractor/index.js.map +1 -0
  61. package/dist/actions/templates/configure-raw-template.action.d.ts +16 -0
  62. package/dist/actions/templates/configure-raw-template.action.d.ts.map +1 -0
  63. package/dist/actions/templates/configure-raw-template.action.js +50 -0
  64. package/dist/actions/templates/configure-raw-template.action.js.map +1 -0
  65. package/dist/actions/templates/configure-text-template.action.d.ts +27 -0
  66. package/dist/actions/templates/configure-text-template.action.d.ts.map +1 -0
  67. package/dist/actions/templates/configure-text-template.action.js +64 -0
  68. package/dist/actions/templates/configure-text-template.action.js.map +1 -0
  69. package/dist/actions/templates/configure-ts-template.action.d.ts +18 -0
  70. package/dist/actions/templates/configure-ts-template.action.d.ts.map +1 -0
  71. package/dist/actions/templates/configure-ts-template.action.js +58 -0
  72. package/dist/actions/templates/configure-ts-template.action.js.map +1 -0
  73. package/dist/actions/templates/delete-template.action.d.ts +15 -0
  74. package/dist/actions/templates/delete-template.action.d.ts.map +1 -0
  75. package/dist/actions/templates/delete-template.action.js +49 -0
  76. package/dist/actions/templates/delete-template.action.js.map +1 -0
  77. package/dist/actions/templates/index.d.ts +7 -0
  78. package/dist/actions/templates/index.d.ts.map +1 -0
  79. package/dist/actions/templates/index.js +7 -0
  80. package/dist/actions/templates/index.js.map +1 -0
  81. package/dist/actions/templates/list-templates.action.d.ts +35 -0
  82. package/dist/actions/templates/list-templates.action.d.ts.map +1 -0
  83. package/dist/actions/templates/list-templates.action.js +63 -0
  84. package/dist/actions/templates/list-templates.action.js.map +1 -0
  85. package/dist/actions/templates/show-template-metadata.action.d.ts +17 -0
  86. package/dist/actions/templates/show-template-metadata.action.d.ts.map +1 -0
  87. package/dist/actions/templates/show-template-metadata.action.js +57 -0
  88. package/dist/actions/templates/show-template-metadata.action.js.map +1 -0
  89. package/dist/actions/types.d.ts +60 -0
  90. package/dist/actions/types.d.ts.map +1 -0
  91. package/dist/actions/types.js +9 -0
  92. package/dist/actions/types.js.map +1 -0
  93. package/dist/actions/utils/cli.d.ts +12 -0
  94. package/dist/actions/utils/cli.d.ts.map +1 -0
  95. package/dist/actions/utils/cli.js +14 -0
  96. package/dist/actions/utils/cli.js.map +1 -0
  97. package/dist/actions/utils/index.d.ts +6 -0
  98. package/dist/actions/utils/index.d.ts.map +1 -0
  99. package/dist/actions/utils/index.js +6 -0
  100. package/dist/actions/utils/index.js.map +1 -0
  101. package/dist/actions/utils/project-discovery.d.ts +22 -0
  102. package/dist/actions/utils/project-discovery.d.ts.map +1 -0
  103. package/dist/actions/utils/project-discovery.js +78 -0
  104. package/dist/actions/utils/project-discovery.js.map +1 -0
  105. package/dist/actions/utils/project-id.d.ts +7 -0
  106. package/dist/actions/utils/project-id.d.ts.map +1 -0
  107. package/dist/actions/utils/project-id.js +15 -0
  108. package/dist/actions/utils/project-id.js.map +1 -0
  109. package/dist/actions/utils/projects.d.ts +9 -0
  110. package/dist/actions/utils/projects.d.ts.map +1 -0
  111. package/dist/actions/utils/projects.js +16 -0
  112. package/dist/actions/utils/projects.js.map +1 -0
  113. package/dist/actions/utils/run-in-worker.d.ts +13 -0
  114. package/dist/actions/utils/run-in-worker.d.ts.map +1 -0
  115. package/dist/actions/utils/run-in-worker.js +78 -0
  116. package/dist/actions/utils/run-in-worker.js.map +1 -0
  117. package/dist/actions/utils/trpc.d.ts +16 -0
  118. package/dist/actions/utils/trpc.d.ts.map +1 -0
  119. package/dist/actions/utils/trpc.js +19 -0
  120. package/dist/actions/utils/trpc.js.map +1 -0
  121. package/dist/actions/utils/worker-script.d.ts +28 -0
  122. package/dist/actions/utils/worker-script.d.ts.map +1 -0
  123. package/dist/actions/utils/worker-script.js +55 -0
  124. package/dist/actions/utils/worker-script.js.map +1 -0
  125. package/dist/api/context.d.ts.map +1 -1
  126. package/dist/api/trpc.d.ts.map +1 -1
  127. package/dist/compiler/web/index.d.ts.map +1 -1
  128. package/dist/compiler/web/index.js +3 -2
  129. package/dist/compiler/web/index.js.map +1 -1
  130. package/dist/constants/server.d.ts +1 -1
  131. package/dist/constants/server.js +1 -1
  132. package/dist/dev-server/api/router.d.ts +325 -0
  133. package/dist/dev-server/api/router.d.ts.map +1 -0
  134. package/dist/dev-server/api/router.js +40 -0
  135. package/dist/dev-server/api/router.js.map +1 -0
  136. package/dist/dev-server/api/trpc.d.ts +20 -0
  137. package/dist/dev-server/api/trpc.d.ts.map +1 -0
  138. package/dist/dev-server/api/trpc.js +18 -0
  139. package/dist/dev-server/api/trpc.js.map +1 -0
  140. package/dist/dev-server/auth-plugin.d.ts +6 -0
  141. package/dist/dev-server/auth-plugin.d.ts.map +1 -0
  142. package/dist/dev-server/auth-plugin.js +43 -0
  143. package/dist/dev-server/auth-plugin.js.map +1 -0
  144. package/dist/dev-server/get-or-create-config.d.ts +18 -0
  145. package/dist/dev-server/get-or-create-config.d.ts.map +1 -0
  146. package/dist/dev-server/get-or-create-config.js +76 -0
  147. package/dist/dev-server/get-or-create-config.js.map +1 -0
  148. package/dist/dev-server/index.d.ts +4 -0
  149. package/dist/dev-server/index.d.ts.map +1 -0
  150. package/dist/dev-server/index.js +3 -0
  151. package/dist/dev-server/index.js.map +1 -0
  152. package/dist/dev-server/mcp/fastify.d.ts +8 -0
  153. package/dist/dev-server/mcp/fastify.d.ts.map +1 -0
  154. package/dist/dev-server/mcp/fastify.js +80 -0
  155. package/dist/dev-server/mcp/fastify.js.map +1 -0
  156. package/dist/dev-server/mcp/server.d.ts +15 -0
  157. package/dist/dev-server/mcp/server.d.ts.map +1 -0
  158. package/dist/dev-server/mcp/server.js +120 -0
  159. package/dist/dev-server/mcp/server.js.map +1 -0
  160. package/dist/dev-server/mcp/stdio.d.ts +4 -0
  161. package/dist/dev-server/mcp/stdio.d.ts.map +1 -0
  162. package/dist/dev-server/mcp/stdio.js +15 -0
  163. package/dist/dev-server/mcp/stdio.js.map +1 -0
  164. package/dist/dev-server/server.d.ts +18 -0
  165. package/dist/dev-server/server.d.ts.map +1 -0
  166. package/dist/dev-server/server.js +91 -0
  167. package/dist/dev-server/server.js.map +1 -0
  168. package/dist/diff/diff-project.d.ts +37 -20
  169. package/dist/diff/diff-project.d.ts.map +1 -1
  170. package/dist/diff/diff-project.js +89 -79
  171. package/dist/diff/diff-project.js.map +1 -1
  172. package/dist/fastify-plugins/graceful-shutdown.d.ts.map +1 -0
  173. package/dist/fastify-plugins/graceful-shutdown.js.map +1 -0
  174. package/dist/server/builder-service-manager.d.ts +9 -8
  175. package/dist/server/builder-service-manager.d.ts.map +1 -1
  176. package/dist/server/builder-service-manager.js +4 -10
  177. package/dist/server/builder-service-manager.js.map +1 -1
  178. package/dist/server/server.js +1 -1
  179. package/dist/server/server.js.map +1 -1
  180. package/dist/service/builder-service.d.ts +3 -4
  181. package/dist/service/builder-service.d.ts.map +1 -1
  182. package/dist/service/builder-service.js +7 -3
  183. package/dist/service/builder-service.js.map +1 -1
  184. package/dist/template-extractor/discover-generators.d.ts.map +1 -1
  185. package/dist/template-extractor/discover-generators.js +1 -1
  186. package/dist/template-extractor/discover-generators.js.map +1 -1
  187. package/dist/templates/configure/configure-raw-template.d.ts +13 -0
  188. package/dist/templates/configure/configure-raw-template.d.ts.map +1 -0
  189. package/dist/templates/configure/configure-raw-template.js +26 -0
  190. package/dist/templates/configure/configure-raw-template.js.map +1 -0
  191. package/dist/templates/configure/configure-text-template.d.ts +18 -0
  192. package/dist/templates/configure/configure-text-template.d.ts.map +1 -0
  193. package/dist/templates/configure/configure-text-template.js +48 -0
  194. package/dist/templates/configure/configure-text-template.js.map +1 -0
  195. package/dist/templates/configure/configure-ts-template.d.ts +15 -0
  196. package/dist/templates/configure/configure-ts-template.d.ts.map +1 -0
  197. package/dist/templates/configure/configure-ts-template.js +44 -0
  198. package/dist/templates/configure/configure-ts-template.js.map +1 -0
  199. package/dist/templates/configure/index.d.ts +5 -0
  200. package/dist/templates/configure/index.d.ts.map +1 -0
  201. package/dist/templates/configure/index.js +4 -0
  202. package/dist/templates/configure/index.js.map +1 -0
  203. package/dist/templates/configure/types.d.ts +7 -0
  204. package/dist/templates/configure/types.d.ts.map +1 -0
  205. package/dist/templates/configure/types.js +2 -0
  206. package/dist/templates/configure/types.js.map +1 -0
  207. package/dist/templates/delete/delete-template.d.ts +16 -0
  208. package/dist/templates/delete/delete-template.d.ts.map +1 -0
  209. package/dist/templates/delete/delete-template.js +45 -0
  210. package/dist/templates/delete/delete-template.js.map +1 -0
  211. package/dist/templates/list/list-templates.d.ts +22 -0
  212. package/dist/templates/list/list-templates.d.ts.map +1 -0
  213. package/dist/templates/list/list-templates.js +29 -0
  214. package/dist/templates/list/list-templates.js.map +1 -0
  215. package/dist/templates/show/show-template-metadata.d.ts +19 -0
  216. package/dist/templates/show/show-template-metadata.d.ts.map +1 -0
  217. package/dist/templates/show/show-template-metadata.js +37 -0
  218. package/dist/templates/show/show-template-metadata.js.map +1 -0
  219. package/dist/templates/utils/extractor-config.d.ts +18 -0
  220. package/dist/templates/utils/extractor-config.d.ts.map +1 -0
  221. package/dist/templates/utils/extractor-config.js +55 -0
  222. package/dist/templates/utils/extractor-config.js.map +1 -0
  223. package/dist/templates/utils/infer-exports-from-ts-file.d.ts +10 -0
  224. package/dist/templates/utils/infer-exports-from-ts-file.d.ts.map +1 -0
  225. package/dist/templates/utils/infer-exports-from-ts-file.js +87 -0
  226. package/dist/templates/utils/infer-exports-from-ts-file.js.map +1 -0
  227. package/dist/templates/utils/resolve-file-path.d.ts +15 -0
  228. package/dist/templates/utils/resolve-file-path.d.ts.map +1 -0
  229. package/dist/templates/utils/resolve-file-path.js +48 -0
  230. package/dist/templates/utils/resolve-file-path.js.map +1 -0
  231. package/dist/templates/utils/resolve-generator.d.ts +8 -0
  232. package/dist/templates/utils/resolve-generator.d.ts.map +1 -0
  233. package/dist/templates/utils/resolve-generator.js +26 -0
  234. package/dist/templates/utils/resolve-generator.js.map +1 -0
  235. package/dist/templates/utils/template-metadata.d.ts +14 -0
  236. package/dist/templates/utils/template-metadata.d.ts.map +1 -0
  237. package/dist/templates/utils/template-metadata.js +54 -0
  238. package/dist/templates/utils/template-metadata.js.map +1 -0
  239. package/dist/utils/case.d.ts +0 -1
  240. package/dist/utils/case.d.ts.map +1 -1
  241. package/dist/utils/case.js +1 -10
  242. package/dist/utils/case.js.map +1 -1
  243. package/package.json +17 -12
  244. package/dist/server/graceful-shutdown.d.ts.map +0 -1
  245. package/dist/server/graceful-shutdown.js.map +0 -1
  246. /package/dist/{server → fastify-plugins}/graceful-shutdown.d.ts +0 -0
  247. /package/dist/{server → fastify-plugins}/graceful-shutdown.js +0 -0
@@ -0,0 +1,13 @@
1
+ import type { ServiceActionContext } from '#src/actions/types.js';
2
+ import type { ConfigureTemplateResult } from './types.js';
3
+ export interface ConfigureRawTemplateInput {
4
+ filePath: string;
5
+ project?: string;
6
+ generator: string;
7
+ templateName: string;
8
+ }
9
+ /**
10
+ * Configure a raw/binary template for copying files as-is
11
+ */
12
+ export declare function configureRawTemplate(input: ConfigureRawTemplateInput, { logger, plugins, projects }: ServiceActionContext): Promise<ConfigureTemplateResult>;
13
+ //# sourceMappingURL=configure-raw-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-raw-template.d.ts","sourceRoot":"","sources":["../../../src/templates/configure/configure-raw-template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAO1D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,yBAAyB,EAChC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,GAClD,OAAO,CAAC,uBAAuB,CAAC,CAqClC"}
@@ -0,0 +1,26 @@
1
+ import { updateExtractorTemplate } from '../utils/extractor-config.js';
2
+ import { resolveFilePath } from '../utils/resolve-file-path.js';
3
+ import { resolveGenerator } from '../utils/resolve-generator.js';
4
+ import { updateTemplateMetadata } from '../utils/template-metadata.js';
5
+ /**
6
+ * Configure a raw/binary template for copying files as-is
7
+ */
8
+ export async function configureRawTemplate(input, { logger, plugins, projects }) {
9
+ const { filePath, project: projectNameOrId, generator, templateName } = input;
10
+ // Resolve file path to project and package info
11
+ const { absolutePath, project, projectRelativePath } = resolveFilePath(filePath, projects, projectNameOrId);
12
+ // Resolve generator directory
13
+ const generatorDirectory = await resolveGenerator(project.directory, plugins, generator, logger);
14
+ // Update template metadata
15
+ await updateTemplateMetadata(absolutePath, generator, templateName);
16
+ // Configure the template
17
+ const templateConfig = {};
18
+ await updateExtractorTemplate(generatorDirectory, templateName, 'raw', templateConfig);
19
+ return {
20
+ message: `Successfully configured raw template '${templateName}' for file '${projectRelativePath}' in project '${project.name}'`,
21
+ templateName,
22
+ absolutePath,
23
+ generatorDirectory,
24
+ };
25
+ }
26
+ //# sourceMappingURL=configure-raw-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-raw-template.js","sourceRoot":"","sources":["../../../src/templates/configure/configure-raw-template.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AASvE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAgC,EAChC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAwB;IAEnD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAE9E,gDAAgD;IAChD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,eAAe,CACpE,QAAQ,EACR,QAAQ,EACR,eAAe,CAChB,CAAC;IAEF,8BAA8B;IAC9B,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAC/C,OAAO,CAAC,SAAS,EACjB,OAAO,EACP,SAAS,EACT,MAAM,CACP,CAAC;IAEF,2BAA2B;IAC3B,MAAM,sBAAsB,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAEpE,yBAAyB;IACzB,MAAM,cAAc,GAAiC,EAAE,CAAC;IAExD,MAAM,uBAAuB,CAC3B,kBAAkB,EAClB,YAAY,EACZ,KAAK,EACL,cAAc,CACf,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,yCAAyC,YAAY,eAAe,mBAAmB,iBAAiB,OAAO,CAAC,IAAI,GAAG;QAChI,YAAY;QACZ,YAAY;QACZ,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ServiceActionContext } from '#src/actions/types.js';
2
+ import type { ConfigureTemplateResult } from './types.js';
3
+ export interface ConfigureTextTemplateInput {
4
+ filePath: string;
5
+ project?: string;
6
+ generator: string;
7
+ templateName: string;
8
+ variables?: Record<string, {
9
+ description?: string;
10
+ value: string;
11
+ }>;
12
+ group?: string;
13
+ }
14
+ /**
15
+ * Configure a text template with variables for substitution
16
+ */
17
+ export declare function configureTextTemplate(input: ConfigureTextTemplateInput, { logger, plugins, projects }: ServiceActionContext): Promise<ConfigureTemplateResult>;
18
+ //# sourceMappingURL=configure-text-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-text-template.d.ts","sourceRoot":"","sources":["../../../src/templates/configure/configure-text-template.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAO1D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,EACjC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,GAClD,OAAO,CAAC,uBAAuB,CAAC,CAyElC"}
@@ -0,0 +1,48 @@
1
+ import { mapValues } from 'es-toolkit';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { updateExtractorTemplate } from '../utils/extractor-config.js';
4
+ import { resolveFilePath } from '../utils/resolve-file-path.js';
5
+ import { resolveGenerator } from '../utils/resolve-generator.js';
6
+ import { updateTemplateMetadata } from '../utils/template-metadata.js';
7
+ /**
8
+ * Configure a text template with variables for substitution
9
+ */
10
+ export async function configureTextTemplate(input, { logger, plugins, projects }) {
11
+ const { filePath, project: projectNameOrId, generator, templateName, variables, group, } = input;
12
+ // Resolve file path to project and package info
13
+ const { absolutePath, project, projectRelativePath } = resolveFilePath(filePath, projects, projectNameOrId);
14
+ // Resolve generator directory
15
+ const generatorDirectory = await resolveGenerator(project.directory, plugins, generator, logger);
16
+ // Simple validation to make sure the variables exist inside the file
17
+ const templateContents = await readFile(absolutePath, 'utf8');
18
+ for (const [variable, { value }] of Object.entries(variables ?? {})) {
19
+ if (value === '') {
20
+ throw new Error(`Variable ${variable} must have a value`);
21
+ }
22
+ if (!templateContents.includes(value)) {
23
+ throw new Error(`Variable ${variable} with value ${value} not found in template ${absolutePath}`);
24
+ }
25
+ }
26
+ // Update template metadata
27
+ await updateTemplateMetadata(absolutePath, generator, templateName, variables &&
28
+ {
29
+ variables: mapValues(variables, (v) => v.value),
30
+ });
31
+ // Configure the template
32
+ const templateConfig = {
33
+ group: group ?? undefined,
34
+ };
35
+ if (variables) {
36
+ templateConfig.variables = mapValues(variables, (v) => ({
37
+ description: v.description,
38
+ }));
39
+ }
40
+ await updateExtractorTemplate(generatorDirectory, templateName, 'text', templateConfig);
41
+ return {
42
+ message: `Successfully configured text template '${templateName}' for file '${projectRelativePath}' in project '${project.name}'`,
43
+ templateName,
44
+ absolutePath,
45
+ generatorDirectory,
46
+ };
47
+ }
48
+ //# sourceMappingURL=configure-text-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-text-template.js","sourceRoot":"","sources":["../../../src/templates/configure/configure-text-template.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAWvE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAiC,EACjC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAwB;IAEnD,MAAM,EACJ,QAAQ,EACR,OAAO,EAAE,eAAe,EACxB,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,GACN,GAAG,KAAK,CAAC;IAEV,gDAAgD;IAChD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,eAAe,CACpE,QAAQ,EACR,QAAQ,EACR,eAAe,CAChB,CAAC;IAEF,8BAA8B;IAC9B,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAC/C,OAAO,CAAC,SAAS,EACjB,OAAO,EACP,SAAS,EACT,MAAM,CACP,CAAC;IAEF,qEAAqE;IACrE,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,oBAAoB,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,YAAY,QAAQ,eAAe,KAAK,0BAA0B,YAAY,EAAE,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,sBAAsB,CAC1B,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,SAAS;QACN;YACC,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACZ,CACxC,CAAC;IAEF,yBAAyB;IACzB,MAAM,cAAc,GAAkC;QACpD,KAAK,EAAE,KAAK,IAAI,SAAS;KAC1B,CAAC;IAEF,IAAI,SAAS,EAAE,CAAC;QACd,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,uBAAuB,CAC3B,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,cAAc,CACf,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,0CAA0C,YAAY,eAAe,mBAAmB,iBAAiB,OAAO,CAAC,IAAI,GAAG;QACjI,YAAY;QACZ,YAAY;QACZ,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ServiceActionContext } from '#src/actions/types.js';
2
+ import type { ConfigureTemplateResult } from './types.js';
3
+ export interface ConfigureTsTemplateInput {
4
+ filePath: string;
5
+ project?: string;
6
+ generator: string;
7
+ templateName: string;
8
+ projectExports?: string[];
9
+ group?: string;
10
+ }
11
+ /**
12
+ * Configure a TypeScript template with project exports and validation
13
+ */
14
+ export declare function configureTsTemplate(input: ConfigureTsTemplateInput, { logger, plugins, projects }: ServiceActionContext): Promise<ConfigureTemplateResult>;
15
+ //# sourceMappingURL=configure-ts-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-ts-template.d.ts","sourceRoot":"","sources":["../../../src/templates/configure/configure-ts-template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAQ1D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,wBAAwB,EAC/B,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,GAClD,OAAO,CAAC,uBAAuB,CAAC,CA6DlC"}
@@ -0,0 +1,44 @@
1
+ import { updateExtractorTemplate } from '../utils/extractor-config.js';
2
+ import { inferExportsFromTsFile } from '../utils/infer-exports-from-ts-file.js';
3
+ import { resolveFilePath } from '../utils/resolve-file-path.js';
4
+ import { resolveGenerator } from '../utils/resolve-generator.js';
5
+ import { updateTemplateMetadata } from '../utils/template-metadata.js';
6
+ /**
7
+ * Configure a TypeScript template with project exports and validation
8
+ */
9
+ export async function configureTsTemplate(input, { logger, plugins, projects }) {
10
+ const { filePath, project: projectNameOrId, generator, templateName, projectExports: projectExportsList = [], group, } = input;
11
+ // Resolve file path to project and package info
12
+ const { absolutePath, project, projectRelativePath } = resolveFilePath(filePath, projects, projectNameOrId);
13
+ // Validate exports if provided
14
+ const projectExports = {};
15
+ if (projectExportsList.length > 0) {
16
+ const availableExports = inferExportsFromTsFile(absolutePath);
17
+ for (const exportName of projectExportsList) {
18
+ const exportInfo = availableExports.get(exportName);
19
+ if (exportInfo) {
20
+ projectExports[exportName] = exportInfo;
21
+ }
22
+ else {
23
+ throw new Error(`Export ${exportName} not found in ${absolutePath}`);
24
+ }
25
+ }
26
+ }
27
+ // Resolve generator directory
28
+ const generatorDirectory = await resolveGenerator(project.directory, plugins, generator, logger);
29
+ // Update template metadata
30
+ await updateTemplateMetadata(absolutePath, generator, templateName);
31
+ // Configure the template
32
+ const templateConfig = {
33
+ projectExports: Object.keys(projectExports).length > 0 ? projectExports : undefined,
34
+ group: group ?? undefined,
35
+ };
36
+ await updateExtractorTemplate(generatorDirectory, templateName, 'ts', templateConfig);
37
+ return {
38
+ message: `Successfully configured TypeScript template '${templateName}' for file '${projectRelativePath}' in project '${project.name}'`,
39
+ templateName,
40
+ absolutePath,
41
+ generatorDirectory,
42
+ };
43
+ }
44
+ //# sourceMappingURL=configure-ts-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-ts-template.js","sourceRoot":"","sources":["../../../src/templates/configure/configure-ts-template.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAWvE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAA+B,EAC/B,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAwB;IAEnD,MAAM,EACJ,QAAQ,EACR,OAAO,EAAE,eAAe,EACxB,SAAS,EACT,YAAY,EACZ,cAAc,EAAE,kBAAkB,GAAG,EAAE,EACvC,KAAK,GACN,GAAG,KAAK,CAAC;IAEV,gDAAgD;IAChD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,eAAe,CACpE,QAAQ,EACR,QAAQ,EACR,eAAe,CAChB,CAAC;IAEF,+BAA+B;IAC/B,MAAM,cAAc,GAAqC,EAAE,CAAC;IAC5D,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAC9D,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBACf,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,iBAAiB,YAAY,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IACD,8BAA8B;IAC9B,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAC/C,OAAO,CAAC,SAAS,EACjB,OAAO,EACP,SAAS,EACT,MAAM,CACP,CAAC;IAEF,2BAA2B;IAC3B,MAAM,sBAAsB,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAEpE,yBAAyB;IACzB,MAAM,cAAc,GAAgC;QAClD,cAAc,EACZ,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QACrE,KAAK,EAAE,KAAK,IAAI,SAAS;KAC1B,CAAC;IAEF,MAAM,uBAAuB,CAC3B,kBAAkB,EAClB,YAAY,EACZ,IAAI,EACJ,cAAc,CACf,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,gDAAgD,YAAY,eAAe,mBAAmB,iBAAiB,OAAO,CAAC,IAAI,GAAG;QACvI,YAAY;QACZ,YAAY;QACZ,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './configure-raw-template.js';
2
+ export * from './configure-text-template.js';
3
+ export * from './configure-ts-template.js';
4
+ export type * from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/configure/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './configure-raw-template.js';
2
+ export * from './configure-text-template.js';
3
+ export * from './configure-ts-template.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/configure/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface ConfigureTemplateResult {
2
+ message: string;
3
+ templateName: string;
4
+ absolutePath: string;
5
+ generatorDirectory: string;
6
+ }
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/templates/configure/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/templates/configure/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import type { ServiceActionContext } from '#src/actions/types.js';
2
+ export interface DeleteTemplateInput {
3
+ filePath: string;
4
+ project?: string;
5
+ }
6
+ export interface DeleteTemplateResult {
7
+ message: string;
8
+ templateName: string;
9
+ absolutePath: string;
10
+ generatorDirectory: string;
11
+ }
12
+ /**
13
+ * Delete a template by looking up its metadata from the file path
14
+ */
15
+ export declare function deleteTemplate(input: DeleteTemplateInput, { logger, plugins, projects }: ServiceActionContext): Promise<DeleteTemplateResult>;
16
+ //# sourceMappingURL=delete-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-template.d.ts","sourceRoot":"","sources":["../../../src/templates/delete/delete-template.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAalE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,mBAAmB,EAC1B,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,GAClD,OAAO,CAAC,oBAAoB,CAAC,CA0D/B"}
@@ -0,0 +1,45 @@
1
+ import { handleFileNotFoundError } from '@baseplate-dev/utils/node';
2
+ import fs from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { readExtractorConfig, removeExtractorTemplate, } from '../utils/extractor-config.js';
5
+ import { resolveFilePath } from '../utils/resolve-file-path.js';
6
+ import { resolveGenerator } from '../utils/resolve-generator.js';
7
+ import { readTemplateMetadataForFile, removeTemplateMetadata, } from '../utils/template-metadata.js';
8
+ /**
9
+ * Delete a template by looking up its metadata from the file path
10
+ */
11
+ export async function deleteTemplate(input, { logger, plugins, projects }) {
12
+ const { filePath, project: projectNameOrId } = input;
13
+ // Resolve file path to project and package info
14
+ const { absolutePath, project, projectRelativePath } = resolveFilePath(filePath, projects, projectNameOrId);
15
+ // Read template metadata for this file
16
+ const templateInfo = await readTemplateMetadataForFile(absolutePath);
17
+ const { template: templateName, generator } = templateInfo;
18
+ // Resolve generator directory
19
+ const generatorDirectory = await resolveGenerator(project.directory, plugins, generator, logger);
20
+ // Verify template exists in extractor.json
21
+ const config = await readExtractorConfig(generatorDirectory);
22
+ if (!config || !(templateName in config.templates)) {
23
+ throw new Error(`Template '${templateName}' not found in generator at ${generatorDirectory}`);
24
+ }
25
+ const templateConfig = config.templates[templateName];
26
+ const templatePath = templateConfig.sourceFile;
27
+ // Remove from extractor.json
28
+ await removeExtractorTemplate(generatorDirectory, templateName);
29
+ // Clean up the actual template file if it exists and has a sourceFile path
30
+ if (templatePath) {
31
+ const templateFilePath = path.join(generatorDirectory, 'templates', templatePath);
32
+ await fs.unlink(templateFilePath).catch(handleFileNotFoundError);
33
+ }
34
+ // Remove template metadata
35
+ await removeTemplateMetadata(absolutePath);
36
+ // Delete the generated file itself
37
+ await fs.unlink(absolutePath).catch(handleFileNotFoundError);
38
+ return {
39
+ message: `Successfully deleted template '${templateName}' and file '${projectRelativePath}' from project '${project.name}'`,
40
+ templateName,
41
+ absolutePath,
42
+ generatorDirectory,
43
+ };
44
+ }
45
+ //# sourceMappingURL=delete-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-template.js","sourceRoot":"","sources":["../../../src/templates/delete/delete-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAcvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAA0B,EAC1B,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAwB;IAEnD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAErD,gDAAgD;IAChD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,eAAe,CACpE,QAAQ,EACR,QAAQ,EACR,eAAe,CAChB,CAAC;IAEF,uCAAuC;IACvC,MAAM,YAAY,GAAG,MAAM,2BAA2B,CAAC,YAAY,CAAC,CAAC;IACrE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;IAE3D,8BAA8B;IAC9B,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAC/C,OAAO,CAAC,SAAS,EACjB,OAAO,EACP,SAAS,EACT,MAAM,CACP,CAAC;IAEF,2CAA2C;IAC3C,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,+BAA+B,kBAAkB,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC;IAE/C,6BAA6B;IAC7B,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;IAEhE,2EAA2E;IAC3E,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,kBAAkB,EAClB,WAAW,EACX,YAAY,CACb,CAAC;QACF,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACnE,CAAC;IAED,2BAA2B;IAC3B,MAAM,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAE3C,mCAAmC;IACnC,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAE7D,OAAO;QACL,OAAO,EAAE,kCAAkC,YAAY,eAAe,mBAAmB,mBAAmB,OAAO,CAAC,IAAI,GAAG;QAC3H,YAAY;QACZ,YAAY;QACZ,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { TemplateConfig } from '@baseplate-dev/sync';
2
+ export interface ListTemplatesInput {
3
+ generatorDirectory: string;
4
+ }
5
+ export interface TemplateInfo {
6
+ name: string;
7
+ type: string;
8
+ sourceFile?: string;
9
+ group?: string;
10
+ kind?: string;
11
+ config: TemplateConfig;
12
+ }
13
+ export interface ListTemplatesOutput {
14
+ generatorName: string;
15
+ templates: TemplateInfo[];
16
+ templateCount: number;
17
+ }
18
+ /**
19
+ * List all templates in a generator's extractor.json
20
+ */
21
+ export declare function listTemplates({ generatorDirectory, }: ListTemplatesInput): Promise<ListTemplatesOutput>;
22
+ //# sourceMappingURL=list-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-templates.d.ts","sourceRoot":"","sources":["../../../src/templates/list/list-templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAClC,kBAAkB,GACnB,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgCnD"}
@@ -0,0 +1,29 @@
1
+ import { readExtractorConfig } from '../utils/extractor-config.js';
2
+ /**
3
+ * List all templates in a generator's extractor.json
4
+ */
5
+ export async function listTemplates({ generatorDirectory, }) {
6
+ const config = await readExtractorConfig(generatorDirectory);
7
+ if (!config) {
8
+ throw new Error(`No extractor.json found in ${generatorDirectory}`);
9
+ }
10
+ const templates = [];
11
+ for (const [name, templateConfig] of Object.entries(config.templates)) {
12
+ templates.push({
13
+ name,
14
+ type: templateConfig.type,
15
+ sourceFile: templateConfig.sourceFile,
16
+ group: templateConfig.group,
17
+ kind: templateConfig.kind,
18
+ config: templateConfig,
19
+ });
20
+ }
21
+ // Sort templates by name for consistent output
22
+ templates.sort((a, b) => a.name.localeCompare(b.name));
23
+ return {
24
+ generatorName: config.name,
25
+ templates,
26
+ templateCount: templates.length,
27
+ };
28
+ }
29
+ //# sourceMappingURL=list-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-templates.js","sourceRoot":"","sources":["../../../src/templates/list/list-templates.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAqBnE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,kBAAkB,GACC;IACnB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,kBAAkB,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,SAAS,GAAmB,EAAE,CAAC;IAErC,KAAK,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,SAAS,CAAC,IAAI,CAAC;YACb,IAAI;YACJ,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,KAAK,EAAG,cAA0C,CAAC,KAEtC;YACb,IAAI,EAAG,cAA0C,CAAC,IAErC;YACb,MAAM,EAAE,cAAc;SACvB,CAAC,CAAC;IACL,CAAC;IAED,+CAA+C;IAC/C,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvD,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,IAAI;QAC1B,SAAS;QACT,aAAa,EAAE,SAAS,CAAC,MAAM;KAChC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { ServiceActionContext } from '#src/actions/types.js';
2
+ export interface ShowTemplateMetadataInput {
3
+ filePath: string;
4
+ project?: string;
5
+ }
6
+ export interface ShowTemplateMetadataResult {
7
+ message: string;
8
+ filePath: string;
9
+ absolutePath: string;
10
+ templateName: string;
11
+ generator: string;
12
+ instanceData?: Record<string, unknown>;
13
+ hasMetadata: boolean;
14
+ }
15
+ /**
16
+ * Show template metadata for a specific file
17
+ */
18
+ export declare function showTemplateMetadata(input: ShowTemplateMetadataInput, { projects }: ServiceActionContext): Promise<ShowTemplateMetadataResult>;
19
+ //# sourceMappingURL=show-template-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show-template-metadata.d.ts","sourceRoot":"","sources":["../../../src/templates/show/show-template-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAKlE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,yBAAyB,EAChC,EAAE,QAAQ,EAAE,EAAE,oBAAoB,GACjC,OAAO,CAAC,0BAA0B,CAAC,CAoCrC"}
@@ -0,0 +1,37 @@
1
+ import { resolveFilePath } from '../utils/resolve-file-path.js';
2
+ import { readTemplateMetadataForFile } from '../utils/template-metadata.js';
3
+ /**
4
+ * Show template metadata for a specific file
5
+ */
6
+ export async function showTemplateMetadata(input, { projects }) {
7
+ const { filePath, project: projectNameOrId } = input;
8
+ // Resolve file path to project and package info
9
+ const { absolutePath, project, projectRelativePath } = resolveFilePath(filePath, projects, projectNameOrId);
10
+ try {
11
+ // Read template metadata for this file
12
+ const templateInfo = await readTemplateMetadataForFile(absolutePath);
13
+ const { template: templateName, generator, instanceData } = templateInfo;
14
+ return {
15
+ message: `Template metadata found for '${projectRelativePath}' in project '${project.name}'`,
16
+ filePath: projectRelativePath,
17
+ absolutePath,
18
+ templateName,
19
+ generator,
20
+ instanceData,
21
+ hasMetadata: true,
22
+ };
23
+ }
24
+ catch {
25
+ // File has no template metadata
26
+ return {
27
+ message: `No template metadata found for '${projectRelativePath}' in project '${project.name}'`,
28
+ filePath: projectRelativePath,
29
+ absolutePath,
30
+ templateName: '',
31
+ generator: '',
32
+ instanceData: undefined,
33
+ hasMetadata: false,
34
+ };
35
+ }
36
+ }
37
+ //# sourceMappingURL=show-template-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show-template-metadata.js","sourceRoot":"","sources":["../../../src/templates/show/show-template-metadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAiB5E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAgC,EAChC,EAAE,QAAQ,EAAwB;IAElC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAErD,gDAAgD;IAChD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,eAAe,CACpE,QAAQ,EACR,QAAQ,EACR,eAAe,CAChB,CAAC;IAEF,IAAI,CAAC;QACH,uCAAuC;QACvC,MAAM,YAAY,GAAG,MAAM,2BAA2B,CAAC,YAAY,CAAC,CAAC;QACrE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC;QAEzE,OAAO;YACL,OAAO,EAAE,gCAAgC,mBAAmB,iBAAiB,OAAO,CAAC,IAAI,GAAG;YAC5F,QAAQ,EAAE,mBAAmB;YAC7B,YAAY;YACZ,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;QAChC,OAAO;YACL,OAAO,EAAE,mCAAmC,mBAAmB,iBAAiB,OAAO,CAAC,IAAI,GAAG;YAC/F,QAAQ,EAAE,mBAAmB;YAC7B,YAAY;YACZ,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,SAAS;YACvB,WAAW,EAAE,KAAK;SACnB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ExtractorConfig, TemplateConfig } from '@baseplate-dev/sync';
2
+ /**
3
+ * Read extractor.json configuration from a generator directory
4
+ */
5
+ export declare function readExtractorConfig(generatorDirectory: string): Promise<ExtractorConfig | undefined>;
6
+ /**
7
+ * Write extractor.json configuration to a generator directory
8
+ */
9
+ export declare function writeExtractorConfig(generatorDirectory: string, config: ExtractorConfig): Promise<void>;
10
+ /**
11
+ * Update a template configuration in extractor.json
12
+ */
13
+ export declare function updateExtractorTemplate(generatorDirectory: string, templateName: string, templateType?: string, overwriteConfig?: Partial<TemplateConfig>, defaultConfig?: Partial<TemplateConfig>): Promise<void>;
14
+ /**
15
+ * Remove a template configuration from extractor.json
16
+ */
17
+ export declare function removeExtractorTemplate(generatorDirectory: string, templateName: string): Promise<void>;
18
+ //# sourceMappingURL=extractor-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor-config.d.ts","sourceRoot":"","sources":["../../../src/templates/utils/extractor-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAe3E;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAStC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,EACpB,YAAY,SAAO,EACnB,eAAe,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EACzC,aAAa,GAAE,OAAO,CAAC,cAAc,CAAM,GAC1C,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,55 @@
1
+ import { EXTRACTOR_CONFIG_FILENAME, extractorConfigSchema, sortExtractorConfigKeys, } from '@baseplate-dev/sync';
2
+ import { stringifyPrettyCompact } from '@baseplate-dev/utils';
3
+ import { handleFileNotFoundError, readJsonWithSchema, } from '@baseplate-dev/utils/node';
4
+ import { writeFile } from 'node:fs/promises';
5
+ import path from 'node:path';
6
+ /**
7
+ * Read extractor.json configuration from a generator directory
8
+ */
9
+ export async function readExtractorConfig(generatorDirectory) {
10
+ const extractorPath = path.join(generatorDirectory, EXTRACTOR_CONFIG_FILENAME);
11
+ return readJsonWithSchema(extractorPath, extractorConfigSchema).catch(handleFileNotFoundError);
12
+ }
13
+ /**
14
+ * Write extractor.json configuration to a generator directory
15
+ */
16
+ export async function writeExtractorConfig(generatorDirectory, config) {
17
+ const extractorPath = path.join(generatorDirectory, EXTRACTOR_CONFIG_FILENAME);
18
+ const sortedConfig = sortExtractorConfigKeys(config);
19
+ await writeFile(extractorPath, `${stringifyPrettyCompact(sortedConfig)}\n`);
20
+ }
21
+ /**
22
+ * Update a template configuration in extractor.json
23
+ */
24
+ export async function updateExtractorTemplate(generatorDirectory, templateName, templateType = 'ts', overwriteConfig, defaultConfig = {}) {
25
+ const config = await readExtractorConfig(generatorDirectory);
26
+ if (!config) {
27
+ throw new Error(`No extractor.json found in ${generatorDirectory}`);
28
+ }
29
+ // Update or add the template configuration
30
+ const existingTemplate = templateName in config.templates ? config.templates[templateName] : {};
31
+ const existingTemplateTyped = existingTemplate;
32
+ config.templates[templateName] = {
33
+ ...defaultConfig, // Apply default config if provided
34
+ type: templateType,
35
+ sourceFile: existingTemplateTyped.sourceFile || '', // Preserve existing or default to empty string
36
+ fileOptions: { kind: 'singleton' },
37
+ ...existingTemplate, // Preserve existing properties
38
+ ...overwriteConfig, // Apply any additional template config
39
+ };
40
+ await writeExtractorConfig(generatorDirectory, config);
41
+ }
42
+ /**
43
+ * Remove a template configuration from extractor.json
44
+ */
45
+ export async function removeExtractorTemplate(generatorDirectory, templateName) {
46
+ const config = await readExtractorConfig(generatorDirectory);
47
+ if (!config) {
48
+ throw new Error(`No extractor.json found in ${generatorDirectory}`);
49
+ }
50
+ // Remove the template configuration
51
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
52
+ delete config.templates[templateName];
53
+ await writeExtractorConfig(generatorDirectory, config);
54
+ }
55
+ //# sourceMappingURL=extractor-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor-config.js","sourceRoot":"","sources":["../../../src/templates/utils/extractor-config.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,kBAA0B;IAE1B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC7B,kBAAkB,EAClB,yBAAyB,CAC1B,CAAC;IAEF,OAAO,kBAAkB,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC,KAAK,CACnE,uBAAuB,CACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,kBAA0B,EAC1B,MAAuB;IAEvB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC7B,kBAAkB,EAClB,yBAAyB,CAC1B,CAAC;IAEF,MAAM,YAAY,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,SAAS,CAAC,aAAa,EAAE,GAAG,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,kBAA0B,EAC1B,YAAoB,EACpB,YAAY,GAAG,IAAI,EACnB,eAAyC,EACzC,gBAAyC,EAAE;IAE3C,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,kBAAkB,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,2CAA2C;IAC3C,MAAM,gBAAgB,GACpB,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,qBAAqB,GAAG,gBAAkC,CAAC;IAEjE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG;QAC/B,GAAG,aAAa,EAAE,mCAAmC;QACrD,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,qBAAqB,CAAC,UAAU,IAAI,EAAE,EAAE,+CAA+C;QACnG,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;QAClC,GAAG,gBAAgB,EAAE,+BAA+B;QACpD,GAAG,eAAe,EAAE,uCAAuC;KAC5D,CAAC;IAEF,MAAM,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,kBAA0B,EAC1B,YAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,kBAAkB,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,oCAAoC;IACpC,gEAAgE;IAChE,OAAO,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAEtC,MAAM,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface TsFileExportInfo {
2
+ name: string;
3
+ isDefault?: boolean;
4
+ isTypeOnly?: boolean;
5
+ }
6
+ /**
7
+ * Extracts all available exports from a TypeScript file
8
+ */
9
+ export declare function inferExportsFromTsFile(filePath: string): Map<string, TsFileExportInfo>;
10
+ //# sourceMappingURL=infer-exports-from-ts-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infer-exports-from-ts-file.d.ts","sourceRoot":"","sources":["../../../src/templates/utils/infer-exports-from-ts-file.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GACf,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CA0F/B"}