@baseplate-dev/core-generators 0.1.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 (304) hide show
  1. package/LICENSE +390 -0
  2. package/dist/constants/core-packages.d.ts +21 -0
  3. package/dist/constants/core-packages.d.ts.map +1 -0
  4. package/dist/constants/core-packages.js +26 -0
  5. package/dist/constants/core-packages.js.map +1 -0
  6. package/dist/constants/index.d.ts +2 -0
  7. package/dist/constants/index.d.ts.map +1 -0
  8. package/dist/constants/index.js +2 -0
  9. package/dist/constants/index.js.map +1 -0
  10. package/dist/constants/node.d.ts +3 -0
  11. package/dist/constants/node.d.ts.map +1 -0
  12. package/dist/constants/node.js +3 -0
  13. package/dist/constants/node.js.map +1 -0
  14. package/dist/generators/docker/docker-compose/docker-compose.generator.d.ts +17 -0
  15. package/dist/generators/docker/docker-compose/docker-compose.generator.d.ts.map +1 -0
  16. package/dist/generators/docker/docker-compose/docker-compose.generator.js +83 -0
  17. package/dist/generators/docker/docker-compose/docker-compose.generator.js.map +1 -0
  18. package/dist/generators/docker/docker-compose/postgres.d.ts +8 -0
  19. package/dist/generators/docker/docker-compose/postgres.d.ts.map +1 -0
  20. package/dist/generators/docker/docker-compose/postgres.js +22 -0
  21. package/dist/generators/docker/docker-compose/postgres.js.map +1 -0
  22. package/dist/generators/docker/docker-compose/redis.d.ts +8 -0
  23. package/dist/generators/docker/docker-compose/redis.d.ts.map +1 -0
  24. package/dist/generators/docker/docker-compose/redis.js +21 -0
  25. package/dist/generators/docker/docker-compose/redis.js.map +1 -0
  26. package/dist/generators/docker/docker-compose/types.d.ts +5 -0
  27. package/dist/generators/docker/docker-compose/types.d.ts.map +1 -0
  28. package/dist/generators/docker/docker-compose/types.js +2 -0
  29. package/dist/generators/docker/docker-compose/types.js.map +1 -0
  30. package/dist/generators/docker/index.d.ts +2 -0
  31. package/dist/generators/docker/index.d.ts.map +1 -0
  32. package/dist/generators/docker/index.js +2 -0
  33. package/dist/generators/docker/index.js.map +1 -0
  34. package/dist/generators/index.d.ts +3 -0
  35. package/dist/generators/index.d.ts.map +1 -0
  36. package/dist/generators/index.js +3 -0
  37. package/dist/generators/index.js.map +1 -0
  38. package/dist/generators/node/_composers/index.d.ts +2 -0
  39. package/dist/generators/node/_composers/index.d.ts.map +1 -0
  40. package/dist/generators/node/_composers/index.js +2 -0
  41. package/dist/generators/node/_composers/index.js.map +1 -0
  42. package/dist/generators/node/_composers/node.d.ts +4 -0
  43. package/dist/generators/node/_composers/node.d.ts.map +1 -0
  44. package/dist/generators/node/_composers/node.js +18 -0
  45. package/dist/generators/node/_composers/node.js.map +1 -0
  46. package/dist/generators/node/eslint/eslint.generator.d.ts +33 -0
  47. package/dist/generators/node/eslint/eslint.generator.d.ts.map +1 -0
  48. package/dist/generators/node/eslint/eslint.generator.js +110 -0
  49. package/dist/generators/node/eslint/eslint.generator.js.map +1 -0
  50. package/dist/generators/node/eslint/generated/ts-templates.d.ts +9 -0
  51. package/dist/generators/node/eslint/generated/ts-templates.d.ts.map +1 -0
  52. package/dist/generators/node/eslint/generated/ts-templates.js +14 -0
  53. package/dist/generators/node/eslint/generated/ts-templates.js.map +1 -0
  54. package/dist/generators/node/eslint/react-rules.d.ts +2 -0
  55. package/dist/generators/node/eslint/react-rules.d.ts.map +1 -0
  56. package/dist/generators/node/eslint/react-rules.js +59 -0
  57. package/dist/generators/node/eslint/react-rules.js.map +1 -0
  58. package/dist/generators/node/eslint/templates/eslint.config.js +219 -0
  59. package/dist/generators/node/eslint/vitest-rules.d.ts +2 -0
  60. package/dist/generators/node/eslint/vitest-rules.d.ts.map +1 -0
  61. package/dist/generators/node/eslint/vitest-rules.js +17 -0
  62. package/dist/generators/node/eslint/vitest-rules.js.map +1 -0
  63. package/dist/generators/node/index.d.ts +9 -0
  64. package/dist/generators/node/index.d.ts.map +1 -0
  65. package/dist/generators/node/index.js +9 -0
  66. package/dist/generators/node/index.js.map +1 -0
  67. package/dist/generators/node/node/node.generator.d.ts +72 -0
  68. package/dist/generators/node/node/node.generator.d.ts.map +1 -0
  69. package/dist/generators/node/node/node.generator.js +149 -0
  70. package/dist/generators/node/node/node.generator.js.map +1 -0
  71. package/dist/generators/node/node/package-dependencies-container.d.ts +41 -0
  72. package/dist/generators/node/node/package-dependencies-container.d.ts.map +1 -0
  73. package/dist/generators/node/node/package-dependencies-container.js +104 -0
  74. package/dist/generators/node/node/package-dependencies-container.js.map +1 -0
  75. package/dist/generators/node/node-git-ignore/node-git-ignore.generator.d.ts +15 -0
  76. package/dist/generators/node/node-git-ignore/node-git-ignore.generator.d.ts.map +1 -0
  77. package/dist/generators/node/node-git-ignore/node-git-ignore.generator.js +75 -0
  78. package/dist/generators/node/node-git-ignore/node-git-ignore.generator.js.map +1 -0
  79. package/dist/generators/node/prettier/prettier.generator.d.ts +33 -0
  80. package/dist/generators/node/prettier/prettier.generator.d.ts.map +1 -0
  81. package/dist/generators/node/prettier/prettier.generator.js +191 -0
  82. package/dist/generators/node/prettier/prettier.generator.js.map +1 -0
  83. package/dist/generators/node/ts-utils/generated/ts-import-maps.d.ts +21 -0
  84. package/dist/generators/node/ts-utils/generated/ts-import-maps.d.ts.map +1 -0
  85. package/dist/generators/node/ts-utils/generated/ts-import-maps.js +22 -0
  86. package/dist/generators/node/ts-utils/generated/ts-import-maps.js.map +1 -0
  87. package/dist/generators/node/ts-utils/generated/ts-templates.d.ts +7 -0
  88. package/dist/generators/node/ts-utils/generated/ts-templates.d.ts.map +1 -0
  89. package/dist/generators/node/ts-utils/generated/ts-templates.js +32 -0
  90. package/dist/generators/node/ts-utils/generated/ts-templates.js.map +1 -0
  91. package/dist/generators/node/ts-utils/templates/arrays.ts +13 -0
  92. package/dist/generators/node/ts-utils/templates/normalize-types.ts +12 -0
  93. package/dist/generators/node/ts-utils/templates/nulls.ts +33 -0
  94. package/dist/generators/node/ts-utils/templates/string.ts +11 -0
  95. package/dist/generators/node/ts-utils/ts-utils.generator.d.ts +17 -0
  96. package/dist/generators/node/ts-utils/ts-utils.generator.d.ts.map +1 -0
  97. package/dist/generators/node/ts-utils/ts-utils.generator.js +48 -0
  98. package/dist/generators/node/ts-utils/ts-utils.generator.js.map +1 -0
  99. package/dist/generators/node/typescript/compiler-types.d.ts +178 -0
  100. package/dist/generators/node/typescript/compiler-types.d.ts.map +1 -0
  101. package/dist/generators/node/typescript/compiler-types.js +70 -0
  102. package/dist/generators/node/typescript/compiler-types.js.map +1 -0
  103. package/dist/generators/node/typescript/typescript.generator.d.ts +117 -0
  104. package/dist/generators/node/typescript/typescript.generator.d.ts.map +1 -0
  105. package/dist/generators/node/typescript/typescript.generator.js +198 -0
  106. package/dist/generators/node/typescript/typescript.generator.js.map +1 -0
  107. package/dist/generators/node/vitest/generated/ts-templates.d.ts +9 -0
  108. package/dist/generators/node/vitest/generated/ts-templates.d.ts.map +1 -0
  109. package/dist/generators/node/vitest/generated/ts-templates.js +15 -0
  110. package/dist/generators/node/vitest/generated/ts-templates.js.map +1 -0
  111. package/dist/generators/node/vitest/templates/global-setup.ts +5 -0
  112. package/dist/generators/node/vitest/templates/vitest.config.ts +5 -0
  113. package/dist/generators/node/vitest/vitest.generator.d.ts +26 -0
  114. package/dist/generators/node/vitest/vitest.generator.d.ts.map +1 -0
  115. package/dist/generators/node/vitest/vitest.generator.js +93 -0
  116. package/dist/generators/node/vitest/vitest.generator.js.map +1 -0
  117. package/dist/index.d.ts +7 -0
  118. package/dist/index.js +7 -0
  119. package/dist/index.js.map +1 -0
  120. package/dist/providers/index.d.ts +3 -0
  121. package/dist/providers/index.d.ts.map +1 -0
  122. package/dist/providers/index.js +3 -0
  123. package/dist/providers/index.js.map +1 -0
  124. package/dist/providers/project.d.ts +5 -0
  125. package/dist/providers/project.d.ts.map +1 -0
  126. package/dist/providers/project.js +3 -0
  127. package/dist/providers/project.js.map +1 -0
  128. package/dist/providers/scopes.d.ts +3 -0
  129. package/dist/providers/scopes.d.ts.map +1 -0
  130. package/dist/providers/scopes.js +4 -0
  131. package/dist/providers/scopes.js.map +1 -0
  132. package/dist/renderers/index.d.ts +2 -0
  133. package/dist/renderers/index.d.ts.map +1 -0
  134. package/dist/renderers/index.js +2 -0
  135. package/dist/renderers/index.js.map +1 -0
  136. package/dist/renderers/typescript/actions/index.d.ts +4 -0
  137. package/dist/renderers/typescript/actions/index.d.ts.map +1 -0
  138. package/dist/renderers/typescript/actions/index.js +4 -0
  139. package/dist/renderers/typescript/actions/index.js.map +1 -0
  140. package/dist/renderers/typescript/actions/render-ts-fragment-action.d.ts +12 -0
  141. package/dist/renderers/typescript/actions/render-ts-fragment-action.d.ts.map +1 -0
  142. package/dist/renderers/typescript/actions/render-ts-fragment-action.js +25 -0
  143. package/dist/renderers/typescript/actions/render-ts-fragment-action.js.map +1 -0
  144. package/dist/renderers/typescript/actions/render-ts-template-file-action.d.ts +32 -0
  145. package/dist/renderers/typescript/actions/render-ts-template-file-action.d.ts.map +1 -0
  146. package/dist/renderers/typescript/actions/render-ts-template-file-action.js +65 -0
  147. package/dist/renderers/typescript/actions/render-ts-template-file-action.js.map +1 -0
  148. package/dist/renderers/typescript/actions/render-ts-template-group-action.d.ts +58 -0
  149. package/dist/renderers/typescript/actions/render-ts-template-group-action.d.ts.map +1 -0
  150. package/dist/renderers/typescript/actions/render-ts-template-group-action.js +69 -0
  151. package/dist/renderers/typescript/actions/render-ts-template-group-action.js.map +1 -0
  152. package/dist/renderers/typescript/extractor/extract-ts-template-variables.d.ts +18 -0
  153. package/dist/renderers/typescript/extractor/extract-ts-template-variables.d.ts.map +1 -0
  154. package/dist/renderers/typescript/extractor/extract-ts-template-variables.js +38 -0
  155. package/dist/renderers/typescript/extractor/extract-ts-template-variables.js.map +1 -0
  156. package/dist/renderers/typescript/extractor/index.d.ts +2 -0
  157. package/dist/renderers/typescript/extractor/index.d.ts.map +1 -0
  158. package/dist/renderers/typescript/extractor/index.js +2 -0
  159. package/dist/renderers/typescript/extractor/index.js.map +1 -0
  160. package/dist/renderers/typescript/extractor/organize-ts-template-imports.d.ts +26 -0
  161. package/dist/renderers/typescript/extractor/organize-ts-template-imports.d.ts.map +1 -0
  162. package/dist/renderers/typescript/extractor/organize-ts-template-imports.js +175 -0
  163. package/dist/renderers/typescript/extractor/organize-ts-template-imports.js.map +1 -0
  164. package/dist/renderers/typescript/extractor/preprocess-code-for-extraction-hack.d.ts +17 -0
  165. package/dist/renderers/typescript/extractor/preprocess-code-for-extraction-hack.d.ts.map +1 -0
  166. package/dist/renderers/typescript/extractor/preprocess-code-for-extraction-hack.js +46 -0
  167. package/dist/renderers/typescript/extractor/preprocess-code-for-extraction-hack.js.map +1 -0
  168. package/dist/renderers/typescript/extractor/templates/imports-file.d.ts +2 -0
  169. package/dist/renderers/typescript/extractor/templates/imports-file.d.ts.map +1 -0
  170. package/dist/renderers/typescript/extractor/templates/imports-file.js +35 -0
  171. package/dist/renderers/typescript/extractor/templates/imports-file.js.map +1 -0
  172. package/dist/renderers/typescript/extractor/ts-template-file-extractor.d.ts +167 -0
  173. package/dist/renderers/typescript/extractor/ts-template-file-extractor.d.ts.map +1 -0
  174. package/dist/renderers/typescript/extractor/ts-template-file-extractor.js +279 -0
  175. package/dist/renderers/typescript/extractor/ts-template-file-extractor.js.map +1 -0
  176. package/dist/renderers/typescript/extractor/write-ts-project-exports.d.ts +96 -0
  177. package/dist/renderers/typescript/extractor/write-ts-project-exports.d.ts.map +1 -0
  178. package/dist/renderers/typescript/extractor/write-ts-project-exports.js +139 -0
  179. package/dist/renderers/typescript/extractor/write-ts-project-exports.js.map +1 -0
  180. package/dist/renderers/typescript/fragments/creators.d.ts +29 -0
  181. package/dist/renderers/typescript/fragments/creators.d.ts.map +1 -0
  182. package/dist/renderers/typescript/fragments/creators.js +53 -0
  183. package/dist/renderers/typescript/fragments/creators.js.map +1 -0
  184. package/dist/renderers/typescript/fragments/index.d.ts +4 -0
  185. package/dist/renderers/typescript/fragments/index.d.ts.map +1 -0
  186. package/dist/renderers/typescript/fragments/index.js +3 -0
  187. package/dist/renderers/typescript/fragments/index.js.map +1 -0
  188. package/dist/renderers/typescript/fragments/types.d.ts +65 -0
  189. package/dist/renderers/typescript/fragments/types.d.ts.map +1 -0
  190. package/dist/renderers/typescript/fragments/types.js +2 -0
  191. package/dist/renderers/typescript/fragments/types.js.map +1 -0
  192. package/dist/renderers/typescript/fragments/utils.d.ts +51 -0
  193. package/dist/renderers/typescript/fragments/utils.d.ts.map +1 -0
  194. package/dist/renderers/typescript/fragments/utils.js +134 -0
  195. package/dist/renderers/typescript/fragments/utils.js.map +1 -0
  196. package/dist/renderers/typescript/import-maps/index.d.ts +4 -0
  197. package/dist/renderers/typescript/import-maps/index.d.ts.map +1 -0
  198. package/dist/renderers/typescript/import-maps/index.js +3 -0
  199. package/dist/renderers/typescript/import-maps/index.js.map +1 -0
  200. package/dist/renderers/typescript/import-maps/transform-ts-imports-with-map.d.ts +19 -0
  201. package/dist/renderers/typescript/import-maps/transform-ts-imports-with-map.d.ts.map +1 -0
  202. package/dist/renderers/typescript/import-maps/transform-ts-imports-with-map.js +54 -0
  203. package/dist/renderers/typescript/import-maps/transform-ts-imports-with-map.js.map +1 -0
  204. package/dist/renderers/typescript/import-maps/ts-import-map.d.ts +10 -0
  205. package/dist/renderers/typescript/import-maps/ts-import-map.d.ts.map +1 -0
  206. package/dist/renderers/typescript/import-maps/ts-import-map.js +39 -0
  207. package/dist/renderers/typescript/import-maps/ts-import-map.js.map +1 -0
  208. package/dist/renderers/typescript/import-maps/types.d.ts +28 -0
  209. package/dist/renderers/typescript/import-maps/types.d.ts.map +1 -0
  210. package/dist/renderers/typescript/import-maps/types.js +2 -0
  211. package/dist/renderers/typescript/import-maps/types.js.map +1 -0
  212. package/dist/renderers/typescript/imports/builder.d.ts +49 -0
  213. package/dist/renderers/typescript/imports/builder.d.ts.map +1 -0
  214. package/dist/renderers/typescript/imports/builder.js +47 -0
  215. package/dist/renderers/typescript/imports/builder.js.map +1 -0
  216. package/dist/renderers/typescript/imports/index.d.ts +8 -0
  217. package/dist/renderers/typescript/imports/index.d.ts.map +1 -0
  218. package/dist/renderers/typescript/imports/index.js +7 -0
  219. package/dist/renderers/typescript/imports/index.js.map +1 -0
  220. package/dist/renderers/typescript/imports/merge-ts-import-declarations.d.ts +20 -0
  221. package/dist/renderers/typescript/imports/merge-ts-import-declarations.d.ts.map +1 -0
  222. package/dist/renderers/typescript/imports/merge-ts-import-declarations.js +114 -0
  223. package/dist/renderers/typescript/imports/merge-ts-import-declarations.js.map +1 -0
  224. package/dist/renderers/typescript/imports/normalize-module-specifier.d.ts +40 -0
  225. package/dist/renderers/typescript/imports/normalize-module-specifier.d.ts.map +1 -0
  226. package/dist/renderers/typescript/imports/normalize-module-specifier.js +133 -0
  227. package/dist/renderers/typescript/imports/normalize-module-specifier.js.map +1 -0
  228. package/dist/renderers/typescript/imports/sort-imports/get-import-sort-group.d.ts +31 -0
  229. package/dist/renderers/typescript/imports/sort-imports/get-import-sort-group.d.ts.map +1 -0
  230. package/dist/renderers/typescript/imports/sort-imports/get-import-sort-group.js +169 -0
  231. package/dist/renderers/typescript/imports/sort-imports/get-import-sort-group.js.map +1 -0
  232. package/dist/renderers/typescript/imports/sort-imports/index.d.ts +2 -0
  233. package/dist/renderers/typescript/imports/sort-imports/index.d.ts.map +1 -0
  234. package/dist/renderers/typescript/imports/sort-imports/index.js +2 -0
  235. package/dist/renderers/typescript/imports/sort-imports/index.js.map +1 -0
  236. package/dist/renderers/typescript/imports/sort-imports/sort-import-declarations.d.ts +32 -0
  237. package/dist/renderers/typescript/imports/sort-imports/sort-import-declarations.d.ts.map +1 -0
  238. package/dist/renderers/typescript/imports/sort-imports/sort-import-declarations.js +72 -0
  239. package/dist/renderers/typescript/imports/sort-imports/sort-import-declarations.js.map +1 -0
  240. package/dist/renderers/typescript/imports/ts-morph-operations.d.ts +42 -0
  241. package/dist/renderers/typescript/imports/ts-morph-operations.d.ts.map +1 -0
  242. package/dist/renderers/typescript/imports/ts-morph-operations.js +145 -0
  243. package/dist/renderers/typescript/imports/ts-morph-operations.js.map +1 -0
  244. package/dist/renderers/typescript/imports/ts-path-maps.d.ts +18 -0
  245. package/dist/renderers/typescript/imports/ts-path-maps.d.ts.map +1 -0
  246. package/dist/renderers/typescript/imports/ts-path-maps.js +39 -0
  247. package/dist/renderers/typescript/imports/ts-path-maps.js.map +1 -0
  248. package/dist/renderers/typescript/imports/types.d.ts +73 -0
  249. package/dist/renderers/typescript/imports/types.d.ts.map +1 -0
  250. package/dist/renderers/typescript/imports/types.js +2 -0
  251. package/dist/renderers/typescript/imports/types.js.map +1 -0
  252. package/dist/renderers/typescript/index.d.ts +9 -0
  253. package/dist/renderers/typescript/index.d.ts.map +1 -0
  254. package/dist/renderers/typescript/index.js +9 -0
  255. package/dist/renderers/typescript/index.js.map +1 -0
  256. package/dist/renderers/typescript/renderers/file.d.ts +18 -0
  257. package/dist/renderers/typescript/renderers/file.d.ts.map +1 -0
  258. package/dist/renderers/typescript/renderers/file.js +91 -0
  259. package/dist/renderers/typescript/renderers/file.js.map +1 -0
  260. package/dist/renderers/typescript/renderers/index.d.ts +3 -0
  261. package/dist/renderers/typescript/renderers/index.d.ts.map +1 -0
  262. package/dist/renderers/typescript/renderers/index.js +3 -0
  263. package/dist/renderers/typescript/renderers/index.js.map +1 -0
  264. package/dist/renderers/typescript/renderers/template.d.ts +21 -0
  265. package/dist/renderers/typescript/renderers/template.d.ts.map +1 -0
  266. package/dist/renderers/typescript/renderers/template.js +132 -0
  267. package/dist/renderers/typescript/renderers/template.js.map +1 -0
  268. package/dist/renderers/typescript/templates/creators.d.ts +10 -0
  269. package/dist/renderers/typescript/templates/creators.d.ts.map +1 -0
  270. package/dist/renderers/typescript/templates/creators.js +9 -0
  271. package/dist/renderers/typescript/templates/creators.js.map +1 -0
  272. package/dist/renderers/typescript/templates/index.d.ts +3 -0
  273. package/dist/renderers/typescript/templates/index.d.ts.map +1 -0
  274. package/dist/renderers/typescript/templates/index.js +3 -0
  275. package/dist/renderers/typescript/templates/index.js.map +1 -0
  276. package/dist/renderers/typescript/templates/types.d.ts +119 -0
  277. package/dist/renderers/typescript/templates/types.d.ts.map +1 -0
  278. package/dist/renderers/typescript/templates/types.js +43 -0
  279. package/dist/renderers/typescript/templates/types.js.map +1 -0
  280. package/dist/renderers/typescript/utils/index.d.ts +2 -0
  281. package/dist/renderers/typescript/utils/index.d.ts.map +1 -0
  282. package/dist/renderers/typescript/utils/index.js +2 -0
  283. package/dist/renderers/typescript/utils/index.js.map +1 -0
  284. package/dist/renderers/typescript/utils/ts-code-utils.d.ts +200 -0
  285. package/dist/renderers/typescript/utils/ts-code-utils.d.ts.map +1 -0
  286. package/dist/renderers/typescript/utils/ts-code-utils.js +431 -0
  287. package/dist/renderers/typescript/utils/ts-code-utils.js.map +1 -0
  288. package/dist/utils/extract-packages.d.ts +8 -0
  289. package/dist/utils/extract-packages.d.ts.map +1 -0
  290. package/dist/utils/extract-packages.js +10 -0
  291. package/dist/utils/extract-packages.js.map +1 -0
  292. package/dist/utils/index.d.ts +2 -0
  293. package/dist/utils/index.d.ts.map +1 -0
  294. package/dist/utils/index.js +2 -0
  295. package/dist/utils/index.js.map +1 -0
  296. package/dist/writers/index.d.ts +2 -0
  297. package/dist/writers/index.d.ts.map +1 -0
  298. package/dist/writers/index.js +2 -0
  299. package/dist/writers/index.js.map +1 -0
  300. package/dist/writers/json.d.ts +21 -0
  301. package/dist/writers/json.d.ts.map +1 -0
  302. package/dist/writers/json.js +14 -0
  303. package/dist/writers/json.js.map +1 -0
  304. package/package.json +88 -0
@@ -0,0 +1,431 @@
1
+ import { quot } from '@baseplate-dev/utils';
2
+ import { sortBy } from 'es-toolkit';
3
+ import { tsCodeFragment } from '../fragments/creators.js';
4
+ import { tsImportBuilder, tsTypeImportBuilder } from '../imports/builder.js';
5
+ function formatStringWithContent(str, args) {
6
+ if (Object.keys(args).some((key) => !/^[A-Z0-9_-]+$/.test(key))) {
7
+ throw new Error('All arguments for format must follow [A-Z0-9_-]');
8
+ }
9
+ const regex = new RegExp(`(${Object.keys(args).join('|')})`, 'g');
10
+ return str.replace(regex, (key) => {
11
+ const entry = args[key];
12
+ if (entry === undefined) {
13
+ throw new Error(`Could not find entry for ${key}`);
14
+ }
15
+ return typeof entry === 'string' ? entry : entry.contents;
16
+ });
17
+ }
18
+ function isTsCodeFragment(value) {
19
+ return typeof value === 'object' && value !== null && 'contents' in value;
20
+ }
21
+ export function mergeFragmentImportsAndHoistedFragments(fragments, options) {
22
+ return {
23
+ imports: [
24
+ ...(options?.imports ?? []),
25
+ ...fragments.flatMap((f) => f.imports ?? []),
26
+ ],
27
+ hoistedFragments: [
28
+ ...(options?.hoistedFragments ?? []),
29
+ ...fragments.flatMap((f) => f.hoistedFragments ?? []),
30
+ ],
31
+ };
32
+ }
33
+ /**
34
+ * Validate a property key and strips out unnecessary quotes.
35
+ *
36
+ * Property keys must be valid identifiers or quoted strings and may optionally end with a question mark.
37
+ *
38
+ * @param key - The key to validate.
39
+ * @throws An error if the key is invalid.
40
+ */
41
+ function validatePropertyKey(key) {
42
+ const quotedKeyRegex = /^(['"])[^]*\1\??$/;
43
+ const unquotedKeyRegex = /^[A-Za-z0-9_]+\??$/;
44
+ const isQuoted = quotedKeyRegex.test(key);
45
+ const isValidUnquoted = unquotedKeyRegex.test(key);
46
+ if (!isQuoted && !isValidUnquoted) {
47
+ throw new Error(`Invalid key: ${key}. Please escape the key with quotes.`);
48
+ }
49
+ const unnecessaryQuoteRegex = /^(['"])[A-Za-z0-9_]+\1\??$/;
50
+ if (isQuoted && unnecessaryQuoteRegex.test(key)) {
51
+ return key.slice(1, -1);
52
+ }
53
+ return key;
54
+ }
55
+ /**
56
+ * Utility functions for working with TypeScript code fragments.
57
+ */
58
+ export const TsCodeUtils = {
59
+ /**
60
+ * Create a code fragment from a string.
61
+ * @param contents - The contents of the code fragment.
62
+ * @returns The code fragment.
63
+ */
64
+ frag(contents, imports, options) {
65
+ return tsCodeFragment(contents, imports, options);
66
+ },
67
+ /**
68
+ * Create an import builder.
69
+ * @param namedImports - The named imports to add to the import builder.
70
+ * @returns The import builder.
71
+ */
72
+ importBuilder(namedImports) {
73
+ return tsImportBuilder(namedImports);
74
+ },
75
+ /**
76
+ * Create a default import declaration.
77
+ * @param name - The name of the import.
78
+ * @param importFrom - The module to import from.
79
+ * @returns The import declaration.
80
+ */
81
+ defaultImport(name, importFrom) {
82
+ return tsImportBuilder().default(name).from(importFrom);
83
+ },
84
+ /**
85
+ * Shortcut function for creating a fragment that imports a named import from a module.
86
+ * @param name - The name of the import.
87
+ * @param importFrom - The module to import from.
88
+ * @returns The import fragment.
89
+ */
90
+ importFragment(name, importFrom) {
91
+ return tsCodeFragment(name, tsImportBuilder([name]).from(importFrom));
92
+ },
93
+ /**
94
+ * Shortcut function for creating a fragment that imports a named type from a module.
95
+ * @param name - The name of the type.
96
+ * @param importFrom - The module to import from.
97
+ * @returns The import fragment.
98
+ */
99
+ typeImportFragment(name, importFrom) {
100
+ return tsCodeFragment(name, tsTypeImportBuilder([name]).from(importFrom));
101
+ },
102
+ /**
103
+ * Shortcut function for creating a fragment that imports a default import from a module.
104
+ * @param name - The name of the import.
105
+ * @param importFrom - The module to import from.
106
+ * @returns The import fragment.
107
+ */
108
+ defaultImportFragment(name, importFrom) {
109
+ return tsCodeFragment(name, tsImportBuilder().default(name).from(importFrom));
110
+ },
111
+ /**
112
+ * Merge a map of code fragments into a single code fragment. We by default use
113
+ * maps to ensure that the order of the fragments is deterministic since the
114
+ * code fragments are merged by the order of the keys.
115
+ *
116
+ * @param fragments - The code fragments to merge.
117
+ * @param separator - The separator to use between the fragments.
118
+ * @returns The merged code fragment.
119
+ */
120
+ mergeFragments(fragments, separator = '\n') {
121
+ const map = fragments instanceof Map ? fragments : new Map(Object.entries(fragments));
122
+ const sortedFragmentEntries = sortBy([...map.entries()], [([key]) => key]);
123
+ return {
124
+ contents: sortedFragmentEntries
125
+ .map(([, fragment]) => fragment)
126
+ .filter((f) => f !== undefined)
127
+ .map((fragment) => typeof fragment === 'string' ? fragment : fragment.contents)
128
+ .join(separator),
129
+ ...mergeFragmentImportsAndHoistedFragments(sortedFragmentEntries
130
+ .map(([, fragment]) => fragment)
131
+ .filter(isTsCodeFragment)),
132
+ };
133
+ },
134
+ /**
135
+ * Merge an array of code fragments into a single code fragment.
136
+ *
137
+ * NOTE: Be careful about using this function since the order of the fragments may not
138
+ * be deterministic so fragments should be presorted before using.
139
+ *
140
+ * @param fragments - The code fragments to merge.
141
+ * @param separator - The separator to use between the fragments.
142
+ * @returns The merged code fragment.
143
+ */
144
+ mergeFragmentsPresorted(fragments, separator = '\n') {
145
+ return {
146
+ contents: fragments
147
+ .map((f) => (typeof f === 'string' ? f : f.contents))
148
+ .join(separator),
149
+ ...mergeFragmentImportsAndHoistedFragments(fragments.filter(isTsCodeFragment)),
150
+ };
151
+ },
152
+ /**
153
+ * Format a string as a comment.
154
+ * @param text - The text to format.
155
+ * @returns The formatted text.
156
+ */
157
+ formatAsComment(text) {
158
+ return text
159
+ .split('\n')
160
+ .map((line) => `// ${line}`)
161
+ .join('\n');
162
+ },
163
+ /**
164
+ * Format a string with content.
165
+ * @param formatString - The string to format.
166
+ * @param args - The arguments to format the string with.
167
+ * @returns The formatted string.
168
+ */
169
+ formatFragment(formatString, args, imports, options) {
170
+ return {
171
+ contents: formatStringWithContent(formatString, args),
172
+ ...mergeFragmentImportsAndHoistedFragments(Object.values(args).filter(isTsCodeFragment), {
173
+ imports: imports && (Array.isArray(imports) ? imports : [imports]),
174
+ hoistedFragments: options?.hoistedFragments,
175
+ }),
176
+ };
177
+ },
178
+ /**
179
+ * Merge an object of code fragments into a single code fragment.
180
+ *
181
+ * Keys are sorted by default for persistence.
182
+ *
183
+ * @param obj - The object to merge.
184
+ * @param options - The options for the merge.
185
+ * @returns The merged code fragment.
186
+ */
187
+ mergeFragmentsAsObject(objOrMap, options = {}) {
188
+ const { wrapWithParenthesis = false, disableSort = false, caseSensitive = false, } = options;
189
+ const map = objOrMap instanceof Map ? objOrMap : new Map(Object.entries(objOrMap));
190
+ const keys = [...map.keys()];
191
+ const fragments = [...map.values()].filter(isTsCodeFragment);
192
+ const sortedKeys = disableSort
193
+ ? keys
194
+ : keys.toSorted(caseSensitive ? undefined : (a, b) => a.localeCompare(b));
195
+ if (!disableSort && keys.some((k) => k.startsWith('...'))) {
196
+ throw new Error('Cannot have spread keys when sorting is enabled');
197
+ }
198
+ const mergedContent = sortedKeys
199
+ .filter((key) => map.get(key))
200
+ .map((key) => {
201
+ const value = map.get(key) ?? '';
202
+ const content = typeof value === 'string' ? value : value.contents;
203
+ const trimmedContent = content.trim();
204
+ if (key.startsWith('...')) {
205
+ return `...${trimmedContent},`;
206
+ }
207
+ if (key === trimmedContent) {
208
+ return `${trimmedContent},`;
209
+ }
210
+ if (trimmedContent.startsWith(`function ${key}`)) {
211
+ return `${trimmedContent.replace(/^function /, '')},`;
212
+ }
213
+ if (trimmedContent.startsWith(`async function ${key}`)) {
214
+ return `${trimmedContent.replace(/^async function /, 'async ')},`;
215
+ }
216
+ const escapedKey = /^[a-zA-Z0-9_]+$/.test(key) ? key : `'${key}'`;
217
+ return `${escapedKey}: ${content},`;
218
+ })
219
+ .join('\n');
220
+ return {
221
+ contents: wrapWithParenthesis
222
+ ? `({${mergedContent}})`
223
+ : `{${mergedContent}}`,
224
+ ...mergeFragmentImportsAndHoistedFragments(fragments),
225
+ };
226
+ },
227
+ mergeFragmentsAsObjectPresorted(objOrMap, options = {}) {
228
+ return this.mergeFragmentsAsObject(objOrMap, {
229
+ ...options,
230
+ disableSort: true,
231
+ });
232
+ },
233
+ /**
234
+ * Merge a map of code fragments into interface content. The fragments are sorted by key
235
+ * to ensure deterministic output.
236
+ *
237
+ * Add quotes around property keys that should be escaped and optional properties should be
238
+ * marked with a question mark, e.g. 'complex-key'? for an optional property named complex-key.
239
+ *
240
+ * @param fragments - The code fragments to merge.
241
+ * @param options - The options for the merge.
242
+ * @returns The merged code fragment as interface content.
243
+ */
244
+ mergeFragmentsAsInterfaceContent(objOrMap, options = {}) {
245
+ const { disableSort = false, caseSensitive = false } = options;
246
+ const map = objOrMap instanceof Map ? objOrMap : new Map(Object.entries(objOrMap));
247
+ const keys = [...map.keys()];
248
+ const fragments = [...map.values()].filter(isTsCodeFragment);
249
+ const sortedKeys = disableSort
250
+ ? keys
251
+ : keys.toSorted(caseSensitive ? undefined : (a, b) => a.localeCompare(b));
252
+ const mergedContent = sortedKeys
253
+ .filter((key) => map.get(key))
254
+ .map((key) => {
255
+ const value = map.get(key) ?? '';
256
+ const content = typeof value === 'string' ? value : value.contents;
257
+ const validatedKey = validatePropertyKey(key);
258
+ const escapedKey = validatedKey.startsWith('"') || validatedKey.startsWith("'")
259
+ ? `[${validatedKey}]`
260
+ : validatedKey;
261
+ return `${escapedKey}: ${content};`;
262
+ })
263
+ .join('\n');
264
+ return {
265
+ contents: mergedContent,
266
+ ...mergeFragmentImportsAndHoistedFragments(fragments),
267
+ };
268
+ },
269
+ /**
270
+ * Merge an array of code fragments into an array literal.
271
+ *
272
+ * @param fragments - The code fragments to merge.
273
+ * @returns The merged code fragment as an array literal.
274
+ */
275
+ mergeFragmentsAsArrayPresorted(fragments) {
276
+ return {
277
+ contents: `[${fragments
278
+ .map((fragment) => typeof fragment === 'string' ? fragment : fragment.contents)
279
+ .join(',\n')}]`,
280
+ ...mergeFragmentImportsAndHoistedFragments(fragments.filter(isTsCodeFragment)),
281
+ };
282
+ },
283
+ /**
284
+ * Merge a map of code fragments into an array literal. The fragments are sorted by key
285
+ * to ensure deterministic output.
286
+ *
287
+ * @param fragments - The code fragments to merge.
288
+ * @returns The merged code fragment as an array literal.
289
+ */
290
+ mergeFragmentsAsArray(objOrMap) {
291
+ const map = objOrMap instanceof Map ? objOrMap : new Map(Object.entries(objOrMap));
292
+ const sortedFragmentEntries = sortBy([...map.entries()], [([key]) => key]);
293
+ return this.mergeFragmentsAsArrayPresorted(sortedFragmentEntries.map(([, fragment]) => fragment));
294
+ },
295
+ /**
296
+ * Wrap a code fragment with a string.
297
+ * @param fragment - The code fragment to wrap.
298
+ * @param wrapper - The string to wrap the code fragment with.
299
+ * @returns The wrapped code fragment.
300
+ */
301
+ wrapFragment(fragment, wrapper) {
302
+ return {
303
+ contents: wrapper.replace('CONTENTS', fragment.contents),
304
+ imports: fragment.imports,
305
+ hoistedFragments: fragment.hoistedFragments,
306
+ };
307
+ },
308
+ /**
309
+ * Creates a template string function that processes template literals with embedded expressions.
310
+ * Similar to the standard template literals, but handles TsCodeFragment objects and collects their imports.
311
+ *
312
+ * @param strings The string parts of the template
313
+ * @param expressions The expressions to be interpolated between the string parts
314
+ * @returns A new TsCodeFragment with the combined content and collected imports
315
+ *
316
+ * @example
317
+ * const name = 'world';
318
+ * const greeting = tsCodeFragment('Hello');
319
+ * const result = template`${greeting}, ${name}!`;
320
+ * // result.contents will be "Hello, world!"
321
+ * // result.imports will include any imports from the greeting fragment
322
+ */
323
+ template(strings, ...expressions) {
324
+ const fragments = expressions.filter(isTsCodeFragment);
325
+ const result = [];
326
+ // Interleave the strings with the expressions
327
+ for (const [i, str] of strings.entries()) {
328
+ result.push(str);
329
+ if (i < expressions.length) {
330
+ const expr = expressions[i];
331
+ result.push(typeof expr === 'string' ? expr : expr.contents);
332
+ }
333
+ }
334
+ return {
335
+ contents: result.join('').trim(),
336
+ ...mergeFragmentImportsAndHoistedFragments(fragments),
337
+ };
338
+ },
339
+ templateWithImports(imports) {
340
+ return (strings, ...expressions) => this.template(strings, ...expressions, {
341
+ contents: '',
342
+ imports: Array.isArray(imports) ? imports : imports ? [imports] : [],
343
+ });
344
+ },
345
+ /**
346
+ * Merge fragments into a JSX element.
347
+ *
348
+ * Attribute values depending on their type are handled differently:
349
+ *
350
+ * - `string`: The value is used as is and automatically escaped if it contains double quotes.
351
+ * - `boolean`: The attribute is added to the JSX element if true, e.g.
352
+ * <Component showBlink /> if showBlink is true. If false, the attribute is
353
+ * not added.
354
+ * - `TsCodeFragment`: The value is used as is inside { } braces, e.g.
355
+ * <Component foo={<div>bar</div>} />.
356
+ *
357
+ * @param name - The name of the JSX element.
358
+ * @param attributes - The attributes of the JSX element.
359
+ * @param imports - Optional imports to add to the fragment.
360
+ * @returns The merged code fragment as a JSX element.
361
+ */
362
+ mergeFragmentsAsJsxElement(name, attributes, imports) {
363
+ const { children, ...rest } = attributes;
364
+ const keys = Object.keys(rest);
365
+ const attributesStr = keys
366
+ .filter((key) => rest[key] !== false && rest[key] !== undefined)
367
+ .map((key) => {
368
+ const value = rest[key];
369
+ if (value === true) {
370
+ return key;
371
+ }
372
+ if (typeof value === 'string') {
373
+ return value.includes('"')
374
+ ? `${key}={${quot(value)}}`
375
+ : `${key}="${value}"`;
376
+ }
377
+ if (isTsCodeFragment(value)) {
378
+ return `${key}={${value.contents}}`;
379
+ }
380
+ throw new Error(`Invalid value for attribute ${key}`);
381
+ })
382
+ .join(' ');
383
+ const fragments = Object.values(attributes).filter((value) => isTsCodeFragment(value));
384
+ if (typeof children === 'boolean') {
385
+ throw new TypeError('children must be an expression');
386
+ }
387
+ const contents = children
388
+ ? `<${name} ${attributesStr}>${typeof children === 'string' ? children : children.contents}</${name}>`
389
+ : `<${name} ${attributesStr} />`;
390
+ return {
391
+ contents,
392
+ ...mergeFragmentImportsAndHoistedFragments([
393
+ ...fragments,
394
+ {
395
+ contents: '',
396
+ imports: Array.isArray(imports) ? imports : imports ? [imports] : [],
397
+ },
398
+ ]),
399
+ };
400
+ },
401
+ /**
402
+ * Extract a snippet from a template string of the form:
403
+ *
404
+ * ```
405
+ * // <key>:START
406
+ * <snippet>
407
+ * // <key>:END
408
+ * ```
409
+ *
410
+ * Note: This is a temporary carry-over from the old TS system. In the future,
411
+ * we will aim to have auto-generated properly typed template snippets.
412
+ *
413
+ * @param template - The template string.
414
+ * @param key - The key to extract.
415
+ * @returns The extracted snippet.
416
+ */
417
+ extractTemplateSnippet(template, key) {
418
+ const startDivision = template.split(`// ${key}:START`);
419
+ if (startDivision.length !== 2) {
420
+ throw new Error(`Could not find start divider // ${key}:START in template file`);
421
+ }
422
+ const endDivision = startDivision[1].split(`// ${key}:END`);
423
+ if (endDivision.length !== 2) {
424
+ throw new Error(`Could not find end divider // ${key}:END in template file`);
425
+ }
426
+ return endDivision[0].trim();
427
+ },
428
+ };
429
+ // Shortcut for template function
430
+ export const tsTemplate = TsCodeUtils.template.bind(TsCodeUtils);
431
+ //# sourceMappingURL=ts-code-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-code-utils.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/utils/ts-code-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Extract packages from a record
3
+ * @param packages - The packages to extract
4
+ * @param keys - The keys to extract
5
+ * @returns The extracted packages
6
+ */
7
+ export declare function extractPackageVersions<T extends Record<string, string>>(packages: T, keys: (keyof T)[]): Record<keyof T, string>;
8
+ //# sourceMappingURL=extract-packages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-packages.d.ts","sourceRoot":"","sources":["../../src/utils/extract-packages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrE,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAChB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAIzB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Extract packages from a record
3
+ * @param packages - The packages to extract
4
+ * @param keys - The keys to extract
5
+ * @returns The extracted packages
6
+ */
7
+ export function extractPackageVersions(packages, keys) {
8
+ return Object.fromEntries(Object.entries(packages).filter(([key]) => keys.includes(key)));
9
+ }
10
+ //# sourceMappingURL=extract-packages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-packages.js","sourceRoot":"","sources":["../../src/utils/extract-packages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAW,EACX,IAAiB;IAEjB,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACpC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './extract-packages.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './extract-packages.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './json.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/writers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './json.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/writers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { GeneratorTaskOutputBuilder, WriteFileOptions } from '@baseplate-dev/sync';
2
+ interface WriteJsonToBuilderOptions extends WriteFileOptions {
3
+ /**
4
+ * The ID of the file to write
5
+ */
6
+ id: string;
7
+ /**
8
+ * The destination of the file to write
9
+ */
10
+ destination: string;
11
+ /**
12
+ * The contents of the file to write
13
+ */
14
+ contents: unknown;
15
+ }
16
+ /**
17
+ * Writes a JSON file to the builder
18
+ */
19
+ export declare function writeJsonToBuilder(builder: GeneratorTaskOutputBuilder, options: WriteJsonToBuilderOptions): void;
20
+ export {};
21
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/writers/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAE7B,UAAU,yBAA0B,SAAQ,gBAAgB;IAC1D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,yBAAyB,GACjC,IAAI,CAWN"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Writes a JSON file to the builder
3
+ */
4
+ export function writeJsonToBuilder(builder, options) {
5
+ const { id, destination, contents, ...rest } = options;
6
+ const jsonString = `${JSON.stringify(contents, null, 2)}\n`;
7
+ builder.writeFile({
8
+ id,
9
+ destination,
10
+ contents: jsonString,
11
+ options: rest,
12
+ });
13
+ }
14
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/writers/json.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAmC,EACnC,OAAkC;IAElC,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEvD,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAE5D,OAAO,CAAC,SAAS,CAAC;QAChB,EAAE;QACF,WAAW;QACX,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;AACL,CAAC"}
package/package.json ADDED
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "@baseplate-dev/core-generators",
3
+ "version": "0.1.1",
4
+ "description": "Core generators for Baseplate",
5
+ "homepage": "https://www.halfdomelabs.com/",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/halfdomelabs/baseplate",
9
+ "directory": "packages/code-generators"
10
+ },
11
+ "license": "SEE LICENSE IN LICENSE",
12
+ "author": "Half Dome Labs LLC",
13
+ "sideEffects": false,
14
+ "type": "module",
15
+ "imports": {
16
+ "#src/*": "./dist/*"
17
+ },
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "default": "./dist/index.js"
22
+ },
23
+ "./renderers": {
24
+ "types": "./dist/renderers/types.d.ts",
25
+ "default": "./dist/renderers/index.js"
26
+ }
27
+ },
28
+ "main": "dist/index.js",
29
+ "files": [
30
+ "LICENSE",
31
+ "dist/**/*",
32
+ "!dist/**/*.d.ts.map",
33
+ "!dist/**/*.tsbuildinfo",
34
+ "CHANGELOG"
35
+ ],
36
+ "dependencies": {
37
+ "change-case": "5.4.4",
38
+ "es-toolkit": "1.31.0",
39
+ "memfs": "4.15.1",
40
+ "oxc-resolver": "5.2.0",
41
+ "p-limit": "6.1.0",
42
+ "prettier": "3.5.3",
43
+ "prettier-plugin-packagejson": "2.5.11",
44
+ "resolve-from": "5.0.0",
45
+ "semver": "^7.5.4",
46
+ "sort-package-json": "2.10.1",
47
+ "ts-morph": "25.0.0",
48
+ "zod": "3.24.1",
49
+ "@baseplate-dev/sync": "0.1.1",
50
+ "@baseplate-dev/utils": "0.1.1"
51
+ },
52
+ "devDependencies": {
53
+ "@types/node": "^22.0.0",
54
+ "@types/prettier": "^2.7.3",
55
+ "@types/semver": "^7.5.0",
56
+ "concurrently": "9.0.1",
57
+ "cpx2": "7.0.1",
58
+ "eslint": "9.26.0",
59
+ "typescript": "5.7.3",
60
+ "vitest": "3.0.7",
61
+ "@baseplate-dev/tools": "0.1.1"
62
+ },
63
+ "engines": {
64
+ "node": "^22.0.0"
65
+ },
66
+ "volta": {
67
+ "extends": "../../package.json"
68
+ },
69
+ "publishConfig": {
70
+ "access": "public",
71
+ "provenance": true
72
+ },
73
+ "scripts": {
74
+ "build": "concurrently pnpm:build:*",
75
+ "build:templates": "cpx \"src/generators/*/*/templates/**\" \"dist/generators\" --clean",
76
+ "build:tsc": "tsc -p tsconfig.build.json",
77
+ "clean": "rm -rf ./dist",
78
+ "lint": "eslint .",
79
+ "prettier:check": "prettier --check .",
80
+ "prettier:write": "prettier -w .",
81
+ "test": "vitest",
82
+ "test:coverage": "vitest run --coverage",
83
+ "typecheck": "tsc --noEmit",
84
+ "watch": "concurrently pnpm:watch:*",
85
+ "watch:templates": "pnpm build:templates --watch",
86
+ "watch:tsc": "tsc -p tsconfig.build.json --preserveWatchOutput -w"
87
+ }
88
+ }