@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,4 @@
1
+ export * from './creators.js';
2
+ export type * from './types.js';
3
+ export * from './utils.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/fragments/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,mBAAmB,YAAY,CAAC;AAChC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './creators.js';
2
+ export * from './utils.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/fragments/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,65 @@
1
+ import type { TsImportDeclaration } from '../imports/index.js';
2
+ /**
3
+ * A code fragment that has a key.
4
+ */
5
+ export interface TsKeyedFragment extends TsCodeFragment {
6
+ /**
7
+ * The key of the fragment.
8
+ */
9
+ key: string;
10
+ }
11
+ /**
12
+ * Represents a code fragment that will be hoisted to a specific position in the generated file.
13
+ *
14
+ * Hoisted fragments allow code to be placed outside of the main code block, which is useful for
15
+ * type declarations, utility functions, or constants that need to be available in the module scope.
16
+ *
17
+ * They also support deduplication, so if multiple fragments with the same key are provided,
18
+ * they will be deduplicated. However, if any of the fragments have different contents, an error
19
+ * will be thrown.
20
+ */
21
+ export interface TsHoistedFragment extends TsKeyedFragment {
22
+ /**
23
+ * Unique identifier for this hoisted fragment used for deduplication and ordering
24
+ * (fragments are ordered by topological sort and then alphabetically by key).
25
+ */
26
+ key: string;
27
+ }
28
+ /**
29
+ * The position where a hoisted fragment should be placed in the generated file.
30
+ */
31
+ export type TsHoistedFragmentPosition = 'beforeImports' | 'afterImports';
32
+ /**
33
+ * A hoisted fragment with a specific position in the generated file, e.g.
34
+ * before imports or after imports.
35
+ */
36
+ export interface TsPositionedHoistedFragment extends Omit<TsHoistedFragment, 'hoistedFragments'> {
37
+ /**
38
+ * Position where this fragment should be placed in the generated file.
39
+ */
40
+ position: TsHoistedFragmentPosition;
41
+ }
42
+ /**
43
+ * Represents a piece of TypeScript code with its imports and related fragments.
44
+ *
45
+ * A code fragment is the basic unit of code generation in the TypeScript rendering system.
46
+ * It contains the actual code content along with any imports it requires and
47
+ * any additional fragments that should be hoisted to specific positions in the file.
48
+ */
49
+ export interface TsCodeFragment {
50
+ /**
51
+ * The actual TypeScript code as a string.
52
+ */
53
+ contents: string;
54
+ /**
55
+ * Import declarations that this code fragment requires.
56
+ * These imports will be collected and placed at the top of the generated file.
57
+ */
58
+ imports?: TsImportDeclaration[];
59
+ /**
60
+ * Additional code fragments that should be hoisted outside the current code block.
61
+ * These fragments are collected and placed in the module scope.
62
+ */
63
+ hoistedFragments?: TsHoistedFragment[];
64
+ }
65
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/fragments/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,eAAe,GAAG,cAAc,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,2BACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IACnD;;OAEG;IACH,QAAQ,EAAE,yBAAyB,CAAC;CACrC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAEhC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACxC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/fragments/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ import type { TsImportDeclaration } from '../imports/types.js';
2
+ import type { TsCodeFragment, TsHoistedFragment } from './types.js';
3
+ /**
4
+ * An object containing flattened imports and hoisted fragments.
5
+ */
6
+ export interface FlattenedImportsAndHoistedFragments {
7
+ /**
8
+ * A list of imports.
9
+ */
10
+ imports: TsImportDeclaration[];
11
+ /**
12
+ * A list of hoisted fragments ordered by lexical closeness/topological sort.
13
+ */
14
+ hoistedFragments: TsHoistedFragment[];
15
+ }
16
+ /**
17
+ * Flattens imports and hoisted fragments from a collection of code fragments.
18
+ *
19
+ * @param fragments - The code fragments to process
20
+ * @returns An object containing flattened imports and processed hoisted fragments
21
+ */
22
+ export declare function flattenImportsAndHoistedFragments(fragments: TsCodeFragment[]): FlattenedImportsAndHoistedFragments;
23
+ /**
24
+ * Merges a list of code fragments with hoisted fragments colocated near their usage points
25
+ * rather than hoisted to the top of the file.
26
+ *
27
+ * This places associated fragments (like type definitions) adjacent to the code fragments
28
+ * that use them, which improves code organization in dynamically generated files like
29
+ * service files with multiple service functions and hoisted fragments.
30
+ *
31
+ * @param fragments - The list of code fragments to merge
32
+ * @param separator - The separator to use between fragments
33
+ * @param options - The options for the merge
34
+ * @param options.preserveOrder - Whether to preserve the order of the fragments otherwise they will be sorted alphabetically by name
35
+ * @returns A new code fragment with the merged imports and hoisted fragments ordered by lexical closeness/topological sort
36
+ */
37
+ export declare function mergeFragmentsWithHoistedFragments(rootFragments: Map<string, TsCodeFragment> | Record<string, TsCodeFragment>, separator?: string): TsCodeFragment;
38
+ /**
39
+ * Merges a list of code fragments with hoisted fragments colocated near their usage points
40
+ * rather than hoisted to the top of the file maintaining the original order of the fragments.
41
+ *
42
+ * This places associated fragments (like type definitions) adjacent to the code fragments
43
+ * that use them, which improves code organization in dynamically generated files like
44
+ * service files with multiple service functions and hoisted fragments.
45
+ *
46
+ * @param rootFragments - The list of code fragments to merge
47
+ * @param separator - The separator to use between fragments
48
+ * @returns A new code fragment with the merged imports and hoisted fragments ordered by lexical closeness/topological sort
49
+ */
50
+ export declare function mergeFragmentsWithHoistedFragmentsPresorted(rootFragments: TsCodeFragment[], separator?: string): TsCodeFragment;
51
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/fragments/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA2DpE;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAClD;;OAEG;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B;;OAEG;IACH,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;CACvC;AA6CD;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,cAAc,EAAE,GAC1B,mCAAmC,CAiBrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kCAAkC,CAChD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC3E,SAAS,SAAS,GACjB,cAAc,CAqChB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2CAA2C,CACzD,aAAa,EAAE,cAAc,EAAE,EAC/B,SAAS,SAAS,GACjB,cAAc,CAchB"}
@@ -0,0 +1,134 @@
1
+ import { toposortLocal } from '@baseplate-dev/utils';
2
+ import { isEqual, keyBy, uniqWith } from 'es-toolkit';
3
+ /**
4
+ * Extracts the imports and hoisted fragments from a code fragment
5
+ * pulling out hoisted fragments that are nested within the fragment
6
+ * recursively.
7
+ *
8
+ * @param fragment - The code fragment to flatten
9
+ * @param parentKey - The key of the parent hoisted fragment or undefined if the fragment is not nested
10
+ * @returns An object containing flattened imports and hoisted fragments
11
+ */
12
+ function extractFlattenedHoistedFragmentsWithDependencies(fragment, parentKey) {
13
+ const hoistedFragments = [
14
+ ...(fragment.hoistedFragments ?? []),
15
+ ];
16
+ const imports = [...(fragment.imports ?? [])];
17
+ const dependencies = parentKey && fragment.hoistedFragments
18
+ ? fragment.hoistedFragments.map((d) => [d.key, parentKey])
19
+ : [];
20
+ for (const dependency of fragment.hoistedFragments ?? []) {
21
+ const flattened = extractFlattenedHoistedFragmentsWithDependencies(dependency, dependency.key);
22
+ hoistedFragments.push(...flattened.hoistedFragments);
23
+ imports.push(...flattened.imports);
24
+ dependencies.push(...flattened.dependencies);
25
+ }
26
+ return {
27
+ hoistedFragments,
28
+ imports,
29
+ dependencies,
30
+ };
31
+ }
32
+ function mergeFlattenedHoistedFragmentsWithDependencies(flattenedImportsAndHoistedFragments) {
33
+ const imports = [];
34
+ const hoistedFragments = [];
35
+ const dependencies = [];
36
+ for (const flattened of flattenedImportsAndHoistedFragments) {
37
+ imports.push(...flattened.imports);
38
+ hoistedFragments.push(...flattened.hoistedFragments);
39
+ dependencies.push(...flattened.dependencies);
40
+ }
41
+ return { imports, hoistedFragments, dependencies };
42
+ }
43
+ function sortKeyedFragments(keyedFragments, dependencies, compareFunc) {
44
+ const uniqueKeyedFragments = uniqWith(keyedFragments, (a, b) => {
45
+ if (a.key === b.key) {
46
+ if (!isEqual(a, b)) {
47
+ throw new Error(`Duplicate hoisted fragment key ${a.key} with different contents`);
48
+ }
49
+ return true;
50
+ }
51
+ return false;
52
+ });
53
+ const fragmentsByKey = keyBy(uniqueKeyedFragments, (f) => f.key);
54
+ const sortedFragmentKeys = toposortLocal(uniqueKeyedFragments.map((f) => f.key), dependencies, { compareFunc });
55
+ return sortedFragmentKeys.map((key) => fragmentsByKey[key]);
56
+ }
57
+ /**
58
+ * Flattens imports and hoisted fragments from a collection of code fragments.
59
+ *
60
+ * @param fragments - The code fragments to process
61
+ * @returns An object containing flattened imports and processed hoisted fragments
62
+ */
63
+ export function flattenImportsAndHoistedFragments(fragments) {
64
+ const flattenResults = fragments.map((f) => extractFlattenedHoistedFragmentsWithDependencies(f));
65
+ const { imports, hoistedFragments, dependencies } = mergeFlattenedHoistedFragmentsWithDependencies(flattenResults);
66
+ const sortedHoistedFragments = sortKeyedFragments(hoistedFragments, dependencies);
67
+ return {
68
+ imports,
69
+ hoistedFragments: sortedHoistedFragments,
70
+ };
71
+ }
72
+ /**
73
+ * Merges a list of code fragments with hoisted fragments colocated near their usage points
74
+ * rather than hoisted to the top of the file.
75
+ *
76
+ * This places associated fragments (like type definitions) adjacent to the code fragments
77
+ * that use them, which improves code organization in dynamically generated files like
78
+ * service files with multiple service functions and hoisted fragments.
79
+ *
80
+ * @param fragments - The list of code fragments to merge
81
+ * @param separator - The separator to use between fragments
82
+ * @param options - The options for the merge
83
+ * @param options.preserveOrder - Whether to preserve the order of the fragments otherwise they will be sorted alphabetically by name
84
+ * @returns A new code fragment with the merged imports and hoisted fragments ordered by lexical closeness/topological sort
85
+ */
86
+ export function mergeFragmentsWithHoistedFragments(rootFragments, separator = '\n\n') {
87
+ const rootFragmentMap = rootFragments instanceof Map
88
+ ? rootFragments
89
+ : new Map(Object.entries(rootFragments));
90
+ const rootFragmentsArray = [...rootFragmentMap].map(([key, fragment]) => ({
91
+ ...fragment,
92
+ key,
93
+ }));
94
+ const flattenedResults = rootFragmentsArray.map((fragment) => extractFlattenedHoistedFragmentsWithDependencies(fragment, fragment.key));
95
+ const { imports, hoistedFragments, dependencies } = mergeFlattenedHoistedFragmentsWithDependencies(flattenedResults);
96
+ const rootFragmentKeys = new Set(rootFragmentsArray.map((f) => f.key));
97
+ const fragments = [...hoistedFragments, ...rootFragmentsArray];
98
+ const sortedHoistedFragments = sortKeyedFragments(fragments, dependencies, (a, b) => {
99
+ const isARoot = rootFragmentKeys.has(a);
100
+ const isBRoot = rootFragmentKeys.has(b);
101
+ // if it's a root fragment, we want to place it before any other dependencies
102
+ // at the same topological level so that these dependencies will remain adjacent
103
+ // to the root fragment that uses them
104
+ if (isARoot && !isBRoot)
105
+ return -1;
106
+ if (!isARoot && isBRoot)
107
+ return 1;
108
+ return a.localeCompare(b);
109
+ });
110
+ return {
111
+ contents: sortedHoistedFragments.map((f) => f.contents).join(separator),
112
+ imports,
113
+ };
114
+ }
115
+ /**
116
+ * Merges a list of code fragments with hoisted fragments colocated near their usage points
117
+ * rather than hoisted to the top of the file maintaining the original order of the fragments.
118
+ *
119
+ * This places associated fragments (like type definitions) adjacent to the code fragments
120
+ * that use them, which improves code organization in dynamically generated files like
121
+ * service files with multiple service functions and hoisted fragments.
122
+ *
123
+ * @param rootFragments - The list of code fragments to merge
124
+ * @param separator - The separator to use between fragments
125
+ * @returns A new code fragment with the merged imports and hoisted fragments ordered by lexical closeness/topological sort
126
+ */
127
+ export function mergeFragmentsWithHoistedFragmentsPresorted(rootFragments, separator = '\n\n') {
128
+ const paddedDigits = Math.ceil(Math.log10(rootFragments.length + 1));
129
+ return mergeFragmentsWithHoistedFragments(new Map(rootFragments.map((f, idx) => [
130
+ `root-fragment-${String(idx).padStart(paddedDigits, '0')}`,
131
+ f,
132
+ ])), separator);
133
+ }
134
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/fragments/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './transform-ts-imports-with-map.js';
2
+ export * from './ts-import-map.js';
3
+ export type * from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/import-maps/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './transform-ts-imports-with-map.js';
2
+ export * from './ts-import-map.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/import-maps/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { TsImportDeclaration } from '../imports/types.js';
2
+ import type { TsImportMap } from './types.js';
3
+ /**
4
+ * Transform import declarations with an import map.
5
+ *
6
+ * Import declarations whose module specifiers begin with `%` are transformed
7
+ * using the import map. We first look up the correct import map using the
8
+ * module specifier without the `%` prefix. If the import map is not found, an
9
+ * error is thrown.
10
+ *
11
+ * Then we transform each named import using the import map entry found in the
12
+ * import map.
13
+ *
14
+ * @param imports - The import declarations to transform.
15
+ * @param importMaps - The import maps to use to transform the imports.
16
+ * @returns The transformed import declarations.
17
+ */
18
+ export declare function transformTsImportsWithMap(imports: TsImportDeclaration[], importMaps: Map<string, TsImportMap>): TsImportDeclaration[];
19
+ //# sourceMappingURL=transform-ts-imports-with-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-ts-imports-with-map.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/import-maps/transform-ts-imports-with-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACnC,mBAAmB,EAAE,CAmDvB"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Transform import declarations with an import map.
3
+ *
4
+ * Import declarations whose module specifiers begin with `%` are transformed
5
+ * using the import map. We first look up the correct import map using the
6
+ * module specifier without the `%` prefix. If the import map is not found, an
7
+ * error is thrown.
8
+ *
9
+ * Then we transform each named import using the import map entry found in the
10
+ * import map.
11
+ *
12
+ * @param imports - The import declarations to transform.
13
+ * @param importMaps - The import maps to use to transform the imports.
14
+ * @returns The transformed import declarations.
15
+ */
16
+ export function transformTsImportsWithMap(imports, importMaps) {
17
+ return imports.flatMap((importDeclaration) => {
18
+ if (!importDeclaration.moduleSpecifier.startsWith('%')) {
19
+ return [importDeclaration];
20
+ }
21
+ const importMapKey = importDeclaration.moduleSpecifier.slice(1);
22
+ const importMap = importMaps.get(importMapKey);
23
+ if (!importMap) {
24
+ throw new Error(`Import map not found for ${importDeclaration.moduleSpecifier}`);
25
+ }
26
+ if (importDeclaration.namespaceImport || importDeclaration.defaultImport) {
27
+ throw new Error(`Import map does not support namespace or default imports: ${importDeclaration.moduleSpecifier}`);
28
+ }
29
+ const wildcardImport = importMap['*'];
30
+ return (importDeclaration.namedImports?.map((namedImport) => {
31
+ if (!(namedImport.name in importMap)) {
32
+ if (wildcardImport) {
33
+ return {
34
+ moduleSpecifier: wildcardImport.moduleSpecifier,
35
+ namedImports: [
36
+ {
37
+ name: namedImport.name,
38
+ alias: namedImport.alias,
39
+ isTypeOnly: namedImport.isTypeOnly,
40
+ },
41
+ ],
42
+ isTypeOnly: importDeclaration.isTypeOnly,
43
+ };
44
+ }
45
+ throw new Error(`Import map entry not found for ${namedImport.name}`);
46
+ }
47
+ const entry = importMap[namedImport.name];
48
+ return importDeclaration.isTypeOnly || namedImport.isTypeOnly
49
+ ? entry.typeDeclaration()
50
+ : entry.declaration();
51
+ }) ?? []);
52
+ });
53
+ }
54
+ //# sourceMappingURL=transform-ts-imports-with-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-ts-imports-with-map.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/import-maps/transform-ts-imports-with-map.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAA8B,EAC9B,UAAoC;IAEpC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;QAC3C,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEhE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,4BAA4B,iBAAiB,CAAC,eAAe,EAAE,CAChE,CAAC;QACJ,CAAC;QAED,IAAI,iBAAiB,CAAC,eAAe,IAAI,iBAAiB,CAAC,aAAa,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CACb,6DAA6D,iBAAiB,CAAC,eAAe,EAAE,CACjG,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAI,SAAkC,CAAC,GAAG,CAAC,CAAC;QAEhE,OAAO,CACL,iBAAiB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YAClD,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC;gBACrC,IAAI,cAAc,EAAE,CAAC;oBACnB,OAAO;wBACL,eAAe,EAAE,cAAc,CAAC,eAAe;wBAC/C,YAAY,EAAE;4BACZ;gCACE,IAAI,EAAE,WAAW,CAAC,IAAI;gCACtB,KAAK,EAAE,WAAW,CAAC,KAAK;gCACxB,UAAU,EAAE,WAAW,CAAC,UAAU;6BACnC;yBACF;wBACD,UAAU,EAAE,iBAAiB,CAAC,UAAU;qBACzC,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAE1C,OAAO,iBAAiB,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU;gBAC3D,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE;gBACzB,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,EAAE,CACT,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { InferTsImportMapFromSchema, TsImportMapSchema, TsImportMapSchemaEntry } from './types.js';
2
+ export declare function createTsImportMapSchema<T extends Record<string, TsImportMapSchemaEntry>>(importSchema: T): T;
3
+ type ImportMapInputFromSchema<T extends TsImportMapSchema> = {
4
+ [K in keyof T]: string | {
5
+ moduleSpecifier: string;
6
+ };
7
+ };
8
+ export declare function createTsImportMap<T extends Record<string, TsImportMapSchemaEntry>>(importSchema: T, imports: ImportMapInputFromSchema<T>): InferTsImportMapFromSchema<T>;
9
+ export {};
10
+ //# sourceMappingURL=ts-import-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-import-map.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/import-maps/ts-import-map.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAIpB,wBAAgB,uBAAuB,CACrC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAChD,YAAY,EAAE,CAAC,GAAG,CAAC,CAEpB;AAED,KAAK,wBAAwB,CAAC,CAAC,SAAS,iBAAiB,IAAI;KAC1D,CAAC,IAAI,MAAM,CAAC,GACT,MAAM,GACN;QACE,eAAe,EAAE,MAAM,CAAC;KACzB;CACN,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAEhD,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACnC,0BAA0B,CAAC,CAAC,CAAC,CA4C/B"}
@@ -0,0 +1,39 @@
1
+ import { tsCodeFragment } from '../fragments/creators.js';
2
+ export function createTsImportMapSchema(importSchema) {
3
+ return importSchema;
4
+ }
5
+ export function createTsImportMap(importSchema, imports) {
6
+ return Object.fromEntries(Object.entries(importSchema).map(([key, value]) => {
7
+ const name = value.name ?? key;
8
+ const moduleSpecifier = typeof imports[key] === 'string'
9
+ ? imports[key]
10
+ : imports[key].moduleSpecifier;
11
+ const makeDeclaration = (alias, isTypeOnly) => {
12
+ if (value.isTypeOnly && !isTypeOnly) {
13
+ throw new Error(`Import ${name} in ${moduleSpecifier} must be marked with type-only imports`);
14
+ }
15
+ return {
16
+ moduleSpecifier,
17
+ ...(name === 'default'
18
+ ? { defaultImport: alias ?? key }
19
+ : {
20
+ namedImports: [{ name, alias }],
21
+ }),
22
+ isTypeOnly,
23
+ };
24
+ };
25
+ return [
26
+ key,
27
+ {
28
+ name,
29
+ moduleSpecifier,
30
+ isTypeOnly: value.isTypeOnly,
31
+ declaration: (alias) => makeDeclaration(alias),
32
+ typeDeclaration: (alias) => makeDeclaration(alias, true),
33
+ fragment: () => tsCodeFragment(name, makeDeclaration()),
34
+ typeFragment: () => tsCodeFragment(name, makeDeclaration(undefined, true)),
35
+ },
36
+ ];
37
+ }));
38
+ }
39
+ //# sourceMappingURL=ts-import-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-import-map.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/import-maps/ts-import-map.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,UAAU,uBAAuB,CAErC,YAAe;IACf,OAAO,YAAY,CAAC;AACtB,CAAC;AAUD,MAAM,UAAU,iBAAiB,CAG/B,YAAe,EACf,OAAoC;IAEpC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC;QAC/B,MAAM,eAAe,GACnB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ;YAC9B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;YACd,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;QAEnC,MAAM,eAAe,GAAG,CACtB,KAAc,EACd,UAAoB,EACC,EAAE;YACvB,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,OAAO,eAAe,wCAAwC,CAC7E,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,eAAe;gBACf,GAAG,CAAC,IAAI,KAAK,SAAS;oBACpB,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,IAAI,GAAG,EAAE;oBACjC,CAAC,CAAC;wBACE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;qBAChC,CAAC;gBACN,UAAU;aACX,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO;YACL,GAAG;YACH;gBACE,IAAI;gBACJ,eAAe;gBACf,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;gBAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC;gBACxD,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC;gBACvD,YAAY,EAAE,GAAG,EAAE,CACjB,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aACzD;SACF,CAAC;IACJ,CAAC,CAAC,CAC8B,CAAC;AACrC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { TsCodeFragment } from '../fragments/types.js';
2
+ import type { TsImportDeclaration } from '../imports/types.js';
3
+ export interface TsImportMapSchemaEntry<IsTypeOnly extends boolean | undefined = boolean | undefined> {
4
+ /**
5
+ * The name of the import (if not the key of the entry).
6
+ */
7
+ name?: string;
8
+ /**
9
+ * If the import can only be type only.
10
+ */
11
+ isTypeOnly?: IsTypeOnly;
12
+ }
13
+ export type TsImportMapSchema = Record<string, TsImportMapSchemaEntry>;
14
+ export interface TsImportMapEntry<IsTypeOnly extends boolean | undefined = boolean | undefined> {
15
+ name: string;
16
+ moduleSpecifier: string;
17
+ isTypeOnly: IsTypeOnly;
18
+ declaration: IsTypeOnly extends true ? never : (alias?: string) => TsImportDeclaration;
19
+ typeDeclaration: (alias?: string) => TsImportDeclaration;
20
+ fragment: IsTypeOnly extends true ? never : () => TsCodeFragment;
21
+ typeFragment: () => TsCodeFragment;
22
+ }
23
+ export type TsImportMap = Record<string, TsImportMapEntry>;
24
+ export type InferTsImportMapFromSchema<T extends TsImportMapSchema> = {
25
+ [K in keyof T]: TsImportMapEntry<T[K]['isTypeOnly']>;
26
+ };
27
+ export type TsImportMapProviderFromSchema<T extends TsImportMapSchema> = InferTsImportMapFromSchema<T>;
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/import-maps/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,sBAAsB,CACrC,UAAU,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAE5D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AAEvE,MAAM,WAAW,gBAAgB,CAC/B,UAAU,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAE5D,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,UAAU,SAAS,IAAI,GAChC,KAAK,GACL,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,mBAAmB,CAAC;IAC5C,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,mBAAmB,CAAC;IACzD,QAAQ,EAAE,UAAU,SAAS,IAAI,GAAG,KAAK,GAAG,MAAM,cAAc,CAAC;IACjE,YAAY,EAAE,MAAM,cAAc,CAAC;CACpC;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE3D,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,iBAAiB,IAAI;KACnE,CAAC,IAAI,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,6BAA6B,CAAC,CAAC,SAAS,iBAAiB,IACnE,0BAA0B,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/import-maps/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ import type { TsImportDeclaration } from './types.js';
2
+ /**
3
+ * A builder for creating import declarations.
4
+ */
5
+ export interface TsImportDeclarationBuilder {
6
+ /**
7
+ * Add a default import.
8
+ * @param defaultImport - The default import to add.
9
+ * @returns The builder.
10
+ */
11
+ default: (defaultImport: string) => TsImportDeclarationBuilder;
12
+ /**
13
+ * Add a namespace import.
14
+ * @param namespaceImport - The namespace import to add.
15
+ * @returns The builder.
16
+ */
17
+ namespace: (namespaceImport: string) => TsImportDeclarationBuilder;
18
+ /**
19
+ * Add a named import.
20
+ * @param namedImport - The named import to add.
21
+ * @param alias - The alias to add to the named import.
22
+ * @returns The builder.
23
+ */
24
+ named: (namedImport: string, alias?: string) => TsImportDeclarationBuilder;
25
+ /**
26
+ * Add a type-only import.
27
+ * @returns The builder.
28
+ */
29
+ typeOnly: () => TsImportDeclarationBuilder;
30
+ /**
31
+ * Add a from import.
32
+ * @param from - The from import to add.
33
+ * @returns The builder.
34
+ */
35
+ from: (from: string) => TsImportDeclaration;
36
+ }
37
+ /**
38
+ * Create a builder for creating import declarations.
39
+ * @param namedImports - The named imports to add.
40
+ * @returns The builder.
41
+ */
42
+ export declare function tsImportBuilder(namedImports?: string[]): TsImportDeclarationBuilder;
43
+ /**
44
+ * Create a builder for creating type-only import declarations.
45
+ * @param namedImports - The named imports to add.
46
+ * @returns The builder.
47
+ */
48
+ export declare function tsTypeImportBuilder(namedImports?: string[]): TsImportDeclarationBuilder;
49
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/imports/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,0BAA0B,CAAC;IAC/D;;;;OAIG;IACH,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,0BAA0B,CAAC;IACnE;;;;;OAKG;IACH,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,0BAA0B,CAAC;IAC3E;;;OAGG;IACH,QAAQ,EAAE,MAAM,0BAA0B,CAAC;IAC3C;;;;OAIG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,mBAAmB,CAAC;CAC7C;AAgCD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,0BAA0B,CAM5B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,0BAA0B,CAK5B"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Create a builder for creating import declarations.
3
+ * @param declarationPartial - The partial declaration to use for the builder.
4
+ * @returns The builder.
5
+ */
6
+ function tsImportDeclarationBuilder(declarationPartial) {
7
+ const newBuilder = (partial) => tsImportDeclarationBuilder({
8
+ ...declarationPartial,
9
+ ...partial,
10
+ });
11
+ return {
12
+ default: (defaultImport) => newBuilder({ defaultImport }),
13
+ namespace: (namespaceImport) => newBuilder({ namespaceImport }),
14
+ named: (namedImport, alias) => newBuilder({
15
+ namedImports: [
16
+ ...(declarationPartial.namedImports ?? []),
17
+ { name: namedImport, alias },
18
+ ],
19
+ }),
20
+ typeOnly: () => newBuilder({ isTypeOnly: true }),
21
+ from: (from) => ({ ...declarationPartial, moduleSpecifier: from }),
22
+ };
23
+ }
24
+ /**
25
+ * Create a builder for creating import declarations.
26
+ * @param namedImports - The named imports to add.
27
+ * @returns The builder.
28
+ */
29
+ export function tsImportBuilder(namedImports) {
30
+ return tsImportDeclarationBuilder({
31
+ namedImports: namedImports?.map((namedImport) => ({
32
+ name: namedImport,
33
+ })),
34
+ });
35
+ }
36
+ /**
37
+ * Create a builder for creating type-only import declarations.
38
+ * @param namedImports - The named imports to add.
39
+ * @returns The builder.
40
+ */
41
+ export function tsTypeImportBuilder(namedImports) {
42
+ return tsImportDeclarationBuilder({
43
+ namedImports: namedImports?.map((namedImport) => ({ name: namedImport })),
44
+ isTypeOnly: true,
45
+ });
46
+ }
47
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/imports/builder.ts"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,SAAS,0BAA0B,CACjC,kBAAgE;IAEhE,MAAM,UAAU,GAAG,CACjB,OAAqC,EACT,EAAE,CAC9B,0BAA0B,CAAC;QACzB,GAAG,kBAAkB;QACrB,GAAG,OAAO;KACX,CAAC,CAAC;IACL,OAAO;QACL,OAAO,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;QACjE,SAAS,EAAE,CAAC,eAAuB,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;QACvE,KAAK,EAAE,CAAC,WAAmB,EAAE,KAAc,EAAE,EAAE,CAC7C,UAAU,CAAC;YACT,YAAY,EAAE;gBACZ,GAAG,CAAC,kBAAkB,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC1C,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;aAC7B;SACF,CAAC;QACJ,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAChD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,YAAuB;IAEvB,OAAO,0BAA0B,CAAC;QAChC,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAuB;IAEvB,OAAO,0BAA0B,CAAC;QAChC,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACzE,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './builder.js';
2
+ export * from './merge-ts-import-declarations.js';
3
+ export * from './normalize-module-specifier.js';
4
+ export * from './sort-imports/index.js';
5
+ export * from './ts-morph-operations.js';
6
+ export * from './ts-path-maps.js';
7
+ export type * from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/imports/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './builder.js';
2
+ export * from './merge-ts-import-declarations.js';
3
+ export * from './normalize-module-specifier.js';
4
+ export * from './sort-imports/index.js';
5
+ export * from './ts-morph-operations.js';
6
+ export * from './ts-path-maps.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/imports/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC"}