@jakubmazanec/carson 0.1.0-9029e49

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 (307) hide show
  1. package/LICENSE.md +661 -0
  2. package/README.md +237 -0
  3. package/bin/carson.js +3 -0
  4. package/dist/commands/create-project/CreateProject.d.ts +8 -0
  5. package/dist/commands/create-project/CreateProject.js +138 -0
  6. package/dist/commands/create-project/CreateProject.js.map +1 -0
  7. package/dist/commands/create-project/CreateProjectInput.d.ts +20 -0
  8. package/dist/commands/create-project/CreateProjectInput.js +31 -0
  9. package/dist/commands/create-project/CreateProjectInput.js.map +1 -0
  10. package/dist/commands/create-project/createProjectCommand.d.ts +12 -0
  11. package/dist/commands/create-project/createProjectCommand.js +31 -0
  12. package/dist/commands/create-project/createProjectCommand.js.map +1 -0
  13. package/dist/commands/create-project/runCreateProject.d.ts +13 -0
  14. package/dist/commands/create-project/runCreateProject.js +34 -0
  15. package/dist/commands/create-project/runCreateProject.js.map +1 -0
  16. package/dist/commands/create-project.d.ts +4 -0
  17. package/dist/commands/create-project.js +6 -0
  18. package/dist/commands/create-project.js.map +1 -0
  19. package/dist/commands/create-workspace/CreateWorkspace.d.ts +7 -0
  20. package/dist/commands/create-workspace/CreateWorkspace.js +102 -0
  21. package/dist/commands/create-workspace/CreateWorkspace.js.map +1 -0
  22. package/dist/commands/create-workspace/CreateWorkspaceInput.d.ts +11 -0
  23. package/dist/commands/create-workspace/CreateWorkspaceInput.js +17 -0
  24. package/dist/commands/create-workspace/CreateWorkspaceInput.js.map +1 -0
  25. package/dist/commands/create-workspace/createWorkspaceCommand.d.ts +9 -0
  26. package/dist/commands/create-workspace/createWorkspaceCommand.js +30 -0
  27. package/dist/commands/create-workspace/createWorkspaceCommand.js.map +1 -0
  28. package/dist/commands/create-workspace/runCreateWorkspace.d.ts +10 -0
  29. package/dist/commands/create-workspace/runCreateWorkspace.js +33 -0
  30. package/dist/commands/create-workspace/runCreateWorkspace.js.map +1 -0
  31. package/dist/commands/create-workspace.d.ts +4 -0
  32. package/dist/commands/create-workspace.js +6 -0
  33. package/dist/commands/create-workspace.js.map +1 -0
  34. package/dist/commands/internals/packageNameToDirectory.d.ts +1 -0
  35. package/dist/commands/internals/packageNameToDirectory.js +12 -0
  36. package/dist/commands/internals/packageNameToDirectory.js.map +1 -0
  37. package/dist/commands/internals.d.ts +1 -0
  38. package/dist/commands/internals.js +3 -0
  39. package/dist/commands/internals.js.map +1 -0
  40. package/dist/commands/update-workspace/UpdateWorkspace.d.ts +8 -0
  41. package/dist/commands/update-workspace/UpdateWorkspace.js +71 -0
  42. package/dist/commands/update-workspace/UpdateWorkspace.js.map +1 -0
  43. package/dist/commands/update-workspace/runUpdateWorkspace.d.ts +10 -0
  44. package/dist/commands/update-workspace/runUpdateWorkspace.js +25 -0
  45. package/dist/commands/update-workspace/runUpdateWorkspace.js.map +1 -0
  46. package/dist/commands/update-workspace/updateWorkspaceCommand.d.ts +6 -0
  47. package/dist/commands/update-workspace/updateWorkspaceCommand.js +25 -0
  48. package/dist/commands/update-workspace/updateWorkspaceCommand.js.map +1 -0
  49. package/dist/commands/update-workspace.d.ts +3 -0
  50. package/dist/commands/update-workspace.js +5 -0
  51. package/dist/commands/update-workspace.js.map +1 -0
  52. package/dist/commands.d.ts +3 -0
  53. package/dist/commands.js +5 -0
  54. package/dist/commands.js.map +1 -0
  55. package/dist/constants.d.ts +7 -0
  56. package/dist/constants.js +16 -0
  57. package/dist/constants.js.map +1 -0
  58. package/dist/main.d.ts +3 -0
  59. package/dist/main.js +5 -0
  60. package/dist/main.js.map +1 -0
  61. package/dist/modules.d.js +2 -0
  62. package/dist/modules.d.js.map +1 -0
  63. package/dist/run.d.ts +1 -0
  64. package/dist/run.js +18 -0
  65. package/dist/run.js.map +1 -0
  66. package/dist/template/CarsonTemplate.d.ts +9 -0
  67. package/dist/template/CarsonTemplate.js +3 -0
  68. package/dist/template/CarsonTemplate.js.map +1 -0
  69. package/dist/template/CarsonTemplateConfig.d.ts +12 -0
  70. package/dist/template/CarsonTemplateConfig.js +7 -0
  71. package/dist/template/CarsonTemplateConfig.js.map +1 -0
  72. package/dist/template/TemplateAttributes.d.ts +9 -0
  73. package/dist/template/TemplateAttributes.js +16 -0
  74. package/dist/template/TemplateAttributes.js.map +1 -0
  75. package/dist/template/TemplateData.d.ts +35 -0
  76. package/dist/template/TemplateData.js +13 -0
  77. package/dist/template/TemplateData.js.map +1 -0
  78. package/dist/template/TemplateRender.d.ts +4 -0
  79. package/dist/template/TemplateRender.js +3 -0
  80. package/dist/template/TemplateRender.js.map +1 -0
  81. package/dist/template/TemplateRenderSnapshot.d.ts +27 -0
  82. package/dist/template/TemplateRenderSnapshot.js +11 -0
  83. package/dist/template/TemplateRenderSnapshot.js.map +1 -0
  84. package/dist/template/TemplateRenderSnapshots.d.ts +27 -0
  85. package/dist/template/TemplateRenderSnapshots.js +4 -0
  86. package/dist/template/TemplateRenderSnapshots.js.map +1 -0
  87. package/dist/template/TemplateRenders.d.ts +2 -0
  88. package/dist/template/TemplateRenders.js +3 -0
  89. package/dist/template/TemplateRenders.js.map +1 -0
  90. package/dist/template/applyTemplateRenders.d.ts +8 -0
  91. package/dist/template/applyTemplateRenders.js +60 -0
  92. package/dist/template/applyTemplateRenders.js.map +1 -0
  93. package/dist/template/createFileUsingTemplateRender.d.ts +2 -0
  94. package/dist/template/createFileUsingTemplateRender.js +12 -0
  95. package/dist/template/createFileUsingTemplateRender.js.map +1 -0
  96. package/dist/template/deleteFileUsingTemplateRender.d.ts +2 -0
  97. package/dist/template/deleteFileUsingTemplateRender.js +10 -0
  98. package/dist/template/deleteFileUsingTemplateRender.js.map +1 -0
  99. package/dist/template/importCarsonTemplate.d.ts +3 -0
  100. package/dist/template/importCarsonTemplate.js +8 -0
  101. package/dist/template/importCarsonTemplate.js.map +1 -0
  102. package/dist/template/insertUsingTemplateRender.d.ts +2 -0
  103. package/dist/template/insertUsingTemplateRender.js +29 -0
  104. package/dist/template/insertUsingTemplateRender.js.map +1 -0
  105. package/dist/template/internals/merge.d.ts +4 -0
  106. package/dist/template/internals/merge.js +30 -0
  107. package/dist/template/internals/merge.js.map +1 -0
  108. package/dist/template/internals/prettify.d.ts +1 -0
  109. package/dist/template/internals/prettify.js +25 -0
  110. package/dist/template/internals/prettify.js.map +1 -0
  111. package/dist/template/internals/unmerge.d.ts +4 -0
  112. package/dist/template/internals/unmerge.js +31 -0
  113. package/dist/template/internals/unmerge.js.map +1 -0
  114. package/dist/template/internals.d.ts +3 -0
  115. package/dist/template/internals.js +5 -0
  116. package/dist/template/internals.js.map +1 -0
  117. package/dist/template/loadTemplateRenderSnapshots.d.ts +7 -0
  118. package/dist/template/loadTemplateRenderSnapshots.js +14 -0
  119. package/dist/template/loadTemplateRenderSnapshots.js.map +1 -0
  120. package/dist/template/mergeFileUsingTemplateRender.d.ts +2 -0
  121. package/dist/template/mergeFileUsingTemplateRender.js +39 -0
  122. package/dist/template/mergeFileUsingTemplateRender.js.map +1 -0
  123. package/dist/template/overwriteFileUsingTemplateRender.d.ts +2 -0
  124. package/dist/template/overwriteFileUsingTemplateRender.js +12 -0
  125. package/dist/template/overwriteFileUsingTemplateRender.js.map +1 -0
  126. package/dist/template/parseTemplateId.d.ts +1 -0
  127. package/dist/template/parseTemplateId.js +12 -0
  128. package/dist/template/parseTemplateId.js.map +1 -0
  129. package/dist/template/readCarsonTemplate.d.ts +2 -0
  130. package/dist/template/readCarsonTemplate.js +39 -0
  131. package/dist/template/readCarsonTemplate.js.map +1 -0
  132. package/dist/template/renderTemplate.d.ts +7 -0
  133. package/dist/template/renderTemplate.js +19 -0
  134. package/dist/template/renderTemplate.js.map +1 -0
  135. package/dist/template/resolveTemplateModule.d.ts +1 -0
  136. package/dist/template/resolveTemplateModule.js +9 -0
  137. package/dist/template/resolveTemplateModule.js.map +1 -0
  138. package/dist/template/saveTemplateRenderSnapshots.d.ts +2 -0
  139. package/dist/template/saveTemplateRenderSnapshots.js +23 -0
  140. package/dist/template/saveTemplateRenderSnapshots.js.map +1 -0
  141. package/dist/template/uninsertUsingTemplateRender.d.ts +2 -0
  142. package/dist/template/uninsertUsingTemplateRender.js +29 -0
  143. package/dist/template/uninsertUsingTemplateRender.js.map +1 -0
  144. package/dist/template/unmergeFileUsingTemplateRender.d.ts +2 -0
  145. package/dist/template/unmergeFileUsingTemplateRender.js +39 -0
  146. package/dist/template/unmergeFileUsingTemplateRender.js.map +1 -0
  147. package/dist/template.d.ts +20 -0
  148. package/dist/template.js +22 -0
  149. package/dist/template.js.map +1 -0
  150. package/dist/workspace/Project.d.ts +33 -0
  151. package/dist/workspace/Project.js +184 -0
  152. package/dist/workspace/Project.js.map +1 -0
  153. package/dist/workspace/ProjectConfig.d.ts +9 -0
  154. package/dist/workspace/ProjectConfig.js +6 -0
  155. package/dist/workspace/ProjectConfig.js.map +1 -0
  156. package/dist/workspace/ProjectCreateOptions.d.ts +8 -0
  157. package/dist/workspace/ProjectCreateOptions.js +3 -0
  158. package/dist/workspace/ProjectCreateOptions.js.map +1 -0
  159. package/dist/workspace/ProjectError.d.ts +8 -0
  160. package/dist/workspace/ProjectError.js +11 -0
  161. package/dist/workspace/ProjectError.js.map +1 -0
  162. package/dist/workspace/ProjectOptions.d.ts +15 -0
  163. package/dist/workspace/ProjectOptions.js +3 -0
  164. package/dist/workspace/ProjectOptions.js.map +1 -0
  165. package/dist/workspace/ProjectUpdateOptions.d.ts +3 -0
  166. package/dist/workspace/ProjectUpdateOptions.js +3 -0
  167. package/dist/workspace/ProjectUpdateOptions.js.map +1 -0
  168. package/dist/workspace/Workspace.d.ts +68 -0
  169. package/dist/workspace/Workspace.js +426 -0
  170. package/dist/workspace/Workspace.js.map +1 -0
  171. package/dist/workspace/WorkspaceConfig.d.ts +9 -0
  172. package/dist/workspace/WorkspaceConfig.js +6 -0
  173. package/dist/workspace/WorkspaceConfig.js.map +1 -0
  174. package/dist/workspace/WorkspaceCreateOptions.d.ts +5 -0
  175. package/dist/workspace/WorkspaceCreateOptions.js +3 -0
  176. package/dist/workspace/WorkspaceCreateOptions.js.map +1 -0
  177. package/dist/workspace/WorkspaceCreateProjectOptions.d.ts +6 -0
  178. package/dist/workspace/WorkspaceCreateProjectOptions.js +3 -0
  179. package/dist/workspace/WorkspaceCreateProjectOptions.js.map +1 -0
  180. package/dist/workspace/WorkspaceDependencies.d.ts +30 -0
  181. package/dist/workspace/WorkspaceDependencies.js +126 -0
  182. package/dist/workspace/WorkspaceDependencies.js.map +1 -0
  183. package/dist/workspace/WorkspaceError.d.ts +8 -0
  184. package/dist/workspace/WorkspaceError.js +13 -0
  185. package/dist/workspace/WorkspaceError.js.map +1 -0
  186. package/dist/workspace/WorkspaceOptions.d.ts +25 -0
  187. package/dist/workspace/WorkspaceOptions.js +3 -0
  188. package/dist/workspace/WorkspaceOptions.js.map +1 -0
  189. package/dist/workspace/WorkspaceOptionsProjectOptions.d.ts +7 -0
  190. package/dist/workspace/WorkspaceOptionsProjectOptions.js +3 -0
  191. package/dist/workspace/WorkspaceOptionsProjectOptions.js.map +1 -0
  192. package/dist/workspace/WorkspacePackageJson.d.ts +2 -0
  193. package/dist/workspace/WorkspacePackageJson.js +3 -0
  194. package/dist/workspace/WorkspacePackageJson.js.map +1 -0
  195. package/dist/workspace/WorkspaceProjectGlobs.d.ts +1 -0
  196. package/dist/workspace/WorkspaceProjectGlobs.js +3 -0
  197. package/dist/workspace/WorkspaceProjectGlobs.js.map +1 -0
  198. package/dist/workspace/WorkspaceProjects.d.ts +2 -0
  199. package/dist/workspace/WorkspaceProjects.js +3 -0
  200. package/dist/workspace/WorkspaceProjects.js.map +1 -0
  201. package/dist/workspace/WorkspaceRepository.d.ts +4 -0
  202. package/dist/workspace/WorkspaceRepository.js +3 -0
  203. package/dist/workspace/WorkspaceRepository.js.map +1 -0
  204. package/dist/workspace/WorkspaceUpdateOptions.d.ts +3 -0
  205. package/dist/workspace/WorkspaceUpdateOptions.js +3 -0
  206. package/dist/workspace/WorkspaceUpdateOptions.js.map +1 -0
  207. package/dist/workspace/internals/compareSemver.d.ts +8 -0
  208. package/dist/workspace/internals/compareSemver.js +27 -0
  209. package/dist/workspace/internals/compareSemver.js.map +1 -0
  210. package/dist/workspace/internals/getPackageJsonWorkspaces.d.ts +2 -0
  211. package/dist/workspace/internals/getPackageJsonWorkspaces.js +11 -0
  212. package/dist/workspace/internals/getPackageJsonWorkspaces.js.map +1 -0
  213. package/dist/workspace/internals/getRepositoryBranches.d.ts +1 -0
  214. package/dist/workspace/internals/getRepositoryBranches.js +21 -0
  215. package/dist/workspace/internals/getRepositoryBranches.js.map +1 -0
  216. package/dist/workspace/internals/getRepositoryUrl.d.ts +1 -0
  217. package/dist/workspace/internals/getRepositoryUrl.js +21 -0
  218. package/dist/workspace/internals/getRepositoryUrl.js.map +1 -0
  219. package/dist/workspace/internals.d.ts +4 -0
  220. package/dist/workspace/internals.js +6 -0
  221. package/dist/workspace/internals.js.map +1 -0
  222. package/dist/workspace/saveProjectConfig.d.ts +6 -0
  223. package/dist/workspace/saveProjectConfig.js +13 -0
  224. package/dist/workspace/saveProjectConfig.js.map +1 -0
  225. package/dist/workspace/saveWorkspaceConfig.d.ts +6 -0
  226. package/dist/workspace/saveWorkspaceConfig.js +13 -0
  227. package/dist/workspace/saveWorkspaceConfig.js.map +1 -0
  228. package/dist/workspace.d.ts +10 -0
  229. package/dist/workspace.js +12 -0
  230. package/dist/workspace.js.map +1 -0
  231. package/package.json +84 -0
  232. package/src/commands/create-project/CreateProject.tsx +130 -0
  233. package/src/commands/create-project/CreateProjectInput.ts +37 -0
  234. package/src/commands/create-project/createProjectCommand.tsx +33 -0
  235. package/src/commands/create-project/runCreateProject.ts +59 -0
  236. package/src/commands/create-project.ts +4 -0
  237. package/src/commands/create-workspace/CreateWorkspace.tsx +90 -0
  238. package/src/commands/create-workspace/CreateWorkspaceInput.ts +21 -0
  239. package/src/commands/create-workspace/createWorkspaceCommand.tsx +34 -0
  240. package/src/commands/create-workspace/runCreateWorkspace.ts +49 -0
  241. package/src/commands/create-workspace.ts +4 -0
  242. package/src/commands/internals/packageNameToDirectory.ts +13 -0
  243. package/src/commands/internals.ts +1 -0
  244. package/src/commands/update-workspace/UpdateWorkspace.tsx +59 -0
  245. package/src/commands/update-workspace/runUpdateWorkspace.ts +36 -0
  246. package/src/commands/update-workspace/updateWorkspaceCommand.tsx +27 -0
  247. package/src/commands/update-workspace.ts +3 -0
  248. package/src/commands.ts +3 -0
  249. package/src/constants.ts +21 -0
  250. package/src/main.ts +3 -0
  251. package/src/modules.d.ts +1 -0
  252. package/src/run.ts +21 -0
  253. package/src/template/CarsonTemplate.ts +11 -0
  254. package/src/template/CarsonTemplateConfig.ts +12 -0
  255. package/src/template/TemplateAttributes.ts +16 -0
  256. package/src/template/TemplateData.ts +17 -0
  257. package/src/template/TemplateRender.ts +9 -0
  258. package/src/template/TemplateRenderSnapshot.ts +13 -0
  259. package/src/template/TemplateRenderSnapshots.ts +7 -0
  260. package/src/template/TemplateRenders.ts +3 -0
  261. package/src/template/applyTemplateRenders.ts +89 -0
  262. package/src/template/createFileUsingTemplateRender.ts +12 -0
  263. package/src/template/deleteFileUsingTemplateRender.ts +15 -0
  264. package/src/template/importCarsonTemplate.ts +13 -0
  265. package/src/template/insertUsingTemplateRender.ts +33 -0
  266. package/src/template/internals/merge.ts +44 -0
  267. package/src/template/internals/prettify.ts +24 -0
  268. package/src/template/internals/unmerge.ts +48 -0
  269. package/src/template/internals.ts +3 -0
  270. package/src/template/loadTemplateRenderSnapshots.ts +18 -0
  271. package/src/template/mergeFileUsingTemplateRender.ts +39 -0
  272. package/src/template/overwriteFileUsingTemplateRender.ts +12 -0
  273. package/src/template/parseTemplateId.ts +9 -0
  274. package/src/template/readCarsonTemplate.ts +46 -0
  275. package/src/template/renderTemplate.ts +30 -0
  276. package/src/template/resolveTemplateModule.ts +9 -0
  277. package/src/template/saveTemplateRenderSnapshots.ts +34 -0
  278. package/src/template/uninsertUsingTemplateRender.ts +36 -0
  279. package/src/template/unmergeFileUsingTemplateRender.ts +42 -0
  280. package/src/template.ts +20 -0
  281. package/src/workspace/Project.ts +246 -0
  282. package/src/workspace/ProjectConfig.ts +9 -0
  283. package/src/workspace/ProjectCreateOptions.ts +9 -0
  284. package/src/workspace/ProjectError.ts +15 -0
  285. package/src/workspace/ProjectOptions.ts +17 -0
  286. package/src/workspace/ProjectUpdateOptions.ts +3 -0
  287. package/src/workspace/Workspace.ts +553 -0
  288. package/src/workspace/WorkspaceConfig.ts +9 -0
  289. package/src/workspace/WorkspaceCreateOptions.ts +5 -0
  290. package/src/workspace/WorkspaceCreateProjectOptions.ts +6 -0
  291. package/src/workspace/WorkspaceDependencies.ts +196 -0
  292. package/src/workspace/WorkspaceError.ts +18 -0
  293. package/src/workspace/WorkspaceOptions.ts +29 -0
  294. package/src/workspace/WorkspaceOptionsProjectOptions.ts +9 -0
  295. package/src/workspace/WorkspacePackageJson.ts +3 -0
  296. package/src/workspace/WorkspaceProjectGlobs.ts +1 -0
  297. package/src/workspace/WorkspaceProjects.ts +3 -0
  298. package/src/workspace/WorkspaceRepository.ts +4 -0
  299. package/src/workspace/WorkspaceUpdateOptions.ts +3 -0
  300. package/src/workspace/internals/compareSemver.ts +35 -0
  301. package/src/workspace/internals/getPackageJsonWorkspaces.ts +11 -0
  302. package/src/workspace/internals/getRepositoryBranches.ts +25 -0
  303. package/src/workspace/internals/getRepositoryUrl.ts +23 -0
  304. package/src/workspace/internals.ts +4 -0
  305. package/src/workspace/saveProjectConfig.ts +23 -0
  306. package/src/workspace/saveWorkspaceConfig.ts +30 -0
  307. package/src/workspace.ts +10 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/CarsonTemplate.ts"],"sourcesContent":["import {type Template} from '@jakubmazanec/template';\n\nimport {type CarsonTemplateConfig} from './CarsonTemplateConfig.js';\nimport {type templateAttributesSchema} from './TemplateAttributes.js';\nimport {type templateDataSchema} from './TemplateData.js';\n\nexport type CarsonTemplate = {\n name: string;\n config: CarsonTemplateConfig;\n files: Array<Template<typeof templateAttributesSchema, typeof templateDataSchema>>;\n};\n"],"names":[],"mappings":"AAAA,WAUE"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ export declare const carsonTemplateConfigSchema: z.ZodObject<{
3
+ disallowMultiProjectWorkspace: z.ZodOptional<z.ZodBoolean>;
4
+ disallowSingleProjectWorkspace: z.ZodOptional<z.ZodBoolean>;
5
+ }, "strict", z.ZodTypeAny, {
6
+ disallowMultiProjectWorkspace?: boolean | undefined;
7
+ disallowSingleProjectWorkspace?: boolean | undefined;
8
+ }, {
9
+ disallowMultiProjectWorkspace?: boolean | undefined;
10
+ disallowSingleProjectWorkspace?: boolean | undefined;
11
+ }>;
12
+ export type CarsonTemplateConfig = z.infer<typeof carsonTemplateConfigSchema>;
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ export const carsonTemplateConfigSchema = z.object({
3
+ disallowMultiProjectWorkspace: z.boolean().optional(),
4
+ disallowSingleProjectWorkspace: z.boolean().optional()
5
+ }).strict();
6
+
7
+ //# sourceMappingURL=CarsonTemplateConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/CarsonTemplateConfig.ts"],"sourcesContent":["import {z} from 'zod';\n\nexport const carsonTemplateConfigSchema = z\n .object({\n disallowMultiProjectWorkspace: z.boolean().optional(),\n disallowSingleProjectWorkspace: z.boolean().optional(),\n\n // TODO: add extends property to allow reuisng template files from another carson template\n })\n .strict();\n\nexport type CarsonTemplateConfig = z.infer<typeof carsonTemplateConfigSchema>;\n"],"names":["z","carsonTemplateConfigSchema","object","disallowMultiProjectWorkspace","boolean","optional","disallowSingleProjectWorkspace","strict"],"mappings":"AAAA,SAAQA,CAAC,QAAO,MAAM;AAEtB,OAAO,MAAMC,6BAA6BD,EACvCE,OAAO;IACNC,+BAA+BH,EAAEI,UAAUC;IAC3CC,gCAAgCN,EAAEI,UAAUC;AAG9C,GACCE,SAAS"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const templateAttributesSchema: z.ZodObject<{
3
+ strategy: z.ZodUnion<[z.ZodLiteral<"create">, z.ZodLiteral<"overwrite">, z.ZodLiteral<"merge">, z.ZodLiteral<"check">, z.ZodTuple<[z.ZodLiteral<"insert">, z.ZodString], null>]>;
4
+ }, "strict", z.ZodTypeAny, {
5
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
6
+ }, {
7
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
8
+ }>;
9
+ export type TemplateAttributes = z.infer<typeof templateAttributesSchema>;
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ export const templateAttributesSchema = z.object({
3
+ // TODO: add strategy 'none' so when you using template A that extends template B, you can overwrite template files to no-op
4
+ strategy: z.union([
5
+ z.literal('create'),
6
+ z.literal('overwrite'),
7
+ z.literal('merge'),
8
+ z.literal('check'),
9
+ z.tuple([
10
+ z.literal('insert'),
11
+ z.string()
12
+ ])
13
+ ])
14
+ }).strict();
15
+
16
+ //# sourceMappingURL=TemplateAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/TemplateAttributes.ts"],"sourcesContent":["import {z} from 'zod';\n\nexport const templateAttributesSchema = z\n .object({\n // TODO: add strategy 'none' so when you using template A that extends template B, you can overwrite template files to no-op\n strategy: z.union([\n z.literal('create'),\n z.literal('overwrite'),\n z.literal('merge'),\n z.literal('check'),\n z.tuple([z.literal('insert'), z.string()]),\n ]),\n })\n .strict();\n\nexport type TemplateAttributes = z.infer<typeof templateAttributesSchema>;\n"],"names":["z","templateAttributesSchema","object","strategy","union","literal","tuple","string","strict"],"mappings":"AAAA,SAAQA,CAAC,QAAO,MAAM;AAEtB,OAAO,MAAMC,2BAA2BD,EACrCE,OAAO;IACN,4HAA4H;IAC5HC,UAAUH,EAAEI,MAAM;QAChBJ,EAAEK,QAAQ;QACVL,EAAEK,QAAQ;QACVL,EAAEK,QAAQ;QACVL,EAAEK,QAAQ;QACVL,EAAEM,MAAM;YAACN,EAAEK,QAAQ;YAAWL,EAAEO;SAAS;KAC1C;AACH,GACCC,SAAS"}
@@ -0,0 +1,35 @@
1
+ import { z } from 'zod';
2
+ import { Project } from '../workspace/Project.js';
3
+ import { Workspace } from '../workspace/Workspace.js';
4
+ export declare const templateDataSchema: z.ZodObject<{
5
+ workspace: z.ZodOptional<z.ZodType<Workspace<boolean>, z.ZodTypeDef, Workspace<boolean>>>;
6
+ project: z.ZodOptional<z.ZodType<Project<boolean>, z.ZodTypeDef, Project<boolean>>>;
7
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
8
+ templateConfig: z.ZodOptional<z.ZodObject<{
9
+ disallowMultiProjectWorkspace: z.ZodOptional<z.ZodBoolean>;
10
+ disallowSingleProjectWorkspace: z.ZodOptional<z.ZodBoolean>;
11
+ }, "strict", z.ZodTypeAny, {
12
+ disallowMultiProjectWorkspace?: boolean | undefined;
13
+ disallowSingleProjectWorkspace?: boolean | undefined;
14
+ }, {
15
+ disallowMultiProjectWorkspace?: boolean | undefined;
16
+ disallowSingleProjectWorkspace?: boolean | undefined;
17
+ }>>;
18
+ }, "strict", z.ZodTypeAny, {
19
+ workspace?: Workspace<boolean> | undefined;
20
+ project?: Project<boolean> | undefined;
21
+ args?: Record<string, unknown> | undefined;
22
+ templateConfig?: {
23
+ disallowMultiProjectWorkspace?: boolean | undefined;
24
+ disallowSingleProjectWorkspace?: boolean | undefined;
25
+ } | undefined;
26
+ }, {
27
+ workspace?: Workspace<boolean> | undefined;
28
+ project?: Project<boolean> | undefined;
29
+ args?: Record<string, unknown> | undefined;
30
+ templateConfig?: {
31
+ disallowMultiProjectWorkspace?: boolean | undefined;
32
+ disallowSingleProjectWorkspace?: boolean | undefined;
33
+ } | undefined;
34
+ }>;
35
+ export type TemplateData = z.infer<typeof templateDataSchema>;
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ import { carsonTemplateConfigSchema } from './CarsonTemplateConfig.js';
3
+ import { Project } from '../workspace/Project.js';
4
+ import { Workspace } from '../workspace/Workspace.js';
5
+ // TODO: what about template data for workspace and template data for project, so we can get rid of the `.optional()`?
6
+ export const templateDataSchema = z.object({
7
+ workspace: z.instanceof(Workspace).optional(),
8
+ project: z.instanceof(Project).optional(),
9
+ args: z.record(z.unknown()).optional(),
10
+ templateConfig: carsonTemplateConfigSchema.optional()
11
+ }).strict();
12
+
13
+ //# sourceMappingURL=TemplateData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/TemplateData.ts"],"sourcesContent":["import {z} from 'zod';\n\nimport {carsonTemplateConfigSchema} from './CarsonTemplateConfig.js';\nimport {Project} from '../workspace/Project.js';\nimport {Workspace} from '../workspace/Workspace.js';\n\n// TODO: what about template data for workspace and template data for project, so we can get rid of the `.optional()`?\nexport const templateDataSchema = z\n .object({\n workspace: z.instanceof(Workspace).optional(),\n project: z.instanceof(Project).optional(),\n args: z.record(z.unknown()).optional(),\n templateConfig: carsonTemplateConfigSchema.optional(),\n })\n .strict();\n\nexport type TemplateData = z.infer<typeof templateDataSchema>;\n"],"names":["z","carsonTemplateConfigSchema","Project","Workspace","templateDataSchema","object","workspace","instanceof","optional","project","args","record","unknown","templateConfig","strict"],"mappings":"AAAA,SAAQA,CAAC,QAAO,MAAM;AAEtB,SAAQC,0BAA0B,QAAO,4BAA4B;AACrE,SAAQC,OAAO,QAAO,0BAA0B;AAChD,SAAQC,SAAS,QAAO,4BAA4B;AAEpD,sHAAsH;AACtH,OAAO,MAAMC,qBAAqBJ,EAC/BK,OAAO;IACNC,WAAWN,EAAEO,WAAWJ,WAAWK;IACnCC,SAAST,EAAEO,WAAWL,SAASM;IAC/BE,MAAMV,EAAEW,OAAOX,EAAEY,WAAWJ;IAC5BK,gBAAgBZ,2BAA2BO;AAC7C,GACCM,SAAS"}
@@ -0,0 +1,4 @@
1
+ import { type TemplateRender as BaseTemplateRender } from '@jakubmazanec/template';
2
+ import { type templateAttributesSchema } from './TemplateAttributes.js';
3
+ import { type templateDataSchema } from './TemplateData.js';
4
+ export type TemplateRender = BaseTemplateRender<typeof templateAttributesSchema, typeof templateDataSchema>;
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=TemplateRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/TemplateRender.ts"],"sourcesContent":["import {type TemplateRender as BaseTemplateRender} from '@jakubmazanec/template';\n\nimport {type templateAttributesSchema} from './TemplateAttributes.js';\nimport {type templateDataSchema} from './TemplateData.js';\n\nexport type TemplateRender = BaseTemplateRender<\n typeof templateAttributesSchema,\n typeof templateDataSchema\n>;\n"],"names":[],"mappings":"AAAA,WAQE"}
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ export declare const templateRenderSnapshotSchema: z.ZodObject<{
3
+ attributes: z.ZodObject<{
4
+ to: z.ZodString;
5
+ strategy: z.ZodUnion<[z.ZodLiteral<"create">, z.ZodLiteral<"overwrite">, z.ZodLiteral<"merge">, z.ZodLiteral<"check">, z.ZodTuple<[z.ZodLiteral<"insert">, z.ZodString], null>]>;
6
+ }, "strict", z.ZodTypeAny, {
7
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
8
+ to: string;
9
+ }, {
10
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
11
+ to: string;
12
+ }>;
13
+ content: z.ZodString;
14
+ }, "strict", z.ZodTypeAny, {
15
+ attributes: {
16
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
17
+ to: string;
18
+ };
19
+ content: string;
20
+ }, {
21
+ attributes: {
22
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
23
+ to: string;
24
+ };
25
+ content: string;
26
+ }>;
27
+ export type TemplateRenderSnapshot = z.infer<typeof templateRenderSnapshotSchema>;
@@ -0,0 +1,11 @@
1
+ import { templateAttributesSchema as baseTemplateAttributesSchema } from '@jakubmazanec/template';
2
+ import { z } from 'zod';
3
+ import { templateAttributesSchema } from './TemplateAttributes.js';
4
+ export const templateRenderSnapshotSchema = z.object({
5
+ attributes: baseTemplateAttributesSchema.pick({
6
+ to: true
7
+ }).merge(templateAttributesSchema),
8
+ content: z.string()
9
+ }).strict();
10
+
11
+ //# sourceMappingURL=TemplateRenderSnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/TemplateRenderSnapshot.ts"],"sourcesContent":["import {templateAttributesSchema as baseTemplateAttributesSchema} from '@jakubmazanec/template';\nimport {z} from 'zod';\n\nimport {templateAttributesSchema} from './TemplateAttributes.js';\n\nexport const templateRenderSnapshotSchema = z\n .object({\n attributes: baseTemplateAttributesSchema.pick({to: true}).merge(templateAttributesSchema),\n content: z.string(),\n })\n .strict();\n\nexport type TemplateRenderSnapshot = z.infer<typeof templateRenderSnapshotSchema>;\n"],"names":["templateAttributesSchema","baseTemplateAttributesSchema","z","templateRenderSnapshotSchema","object","attributes","pick","to","merge","content","string","strict"],"mappings":"AAAA,SAAQA,4BAA4BC,4BAA4B,QAAO,yBAAyB;AAChG,SAAQC,CAAC,QAAO,MAAM;AAEtB,SAAQF,wBAAwB,QAAO,0BAA0B;AAEjE,OAAO,MAAMG,+BAA+BD,EACzCE,OAAO;IACNC,YAAYJ,6BAA6BK,KAAK;QAACC,IAAI;IAAI,GAAGC,MAAMR;IAChES,SAASP,EAAEQ;AACb,GACCC,SAAS"}
@@ -0,0 +1,27 @@
1
+ import { type z } from 'zod';
2
+ export declare const templateRenderSnapshotsSchema: z.ZodArray<z.ZodObject<{
3
+ attributes: z.ZodObject<{
4
+ to: z.ZodString;
5
+ strategy: z.ZodUnion<[z.ZodLiteral<"create">, z.ZodLiteral<"overwrite">, z.ZodLiteral<"merge">, z.ZodLiteral<"check">, z.ZodTuple<[z.ZodLiteral<"insert">, z.ZodString], null>]>;
6
+ }, "strict", z.ZodTypeAny, {
7
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
8
+ to: string;
9
+ }, {
10
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
11
+ to: string;
12
+ }>;
13
+ content: z.ZodString;
14
+ }, "strict", z.ZodTypeAny, {
15
+ attributes: {
16
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
17
+ to: string;
18
+ };
19
+ content: string;
20
+ }, {
21
+ attributes: {
22
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
23
+ to: string;
24
+ };
25
+ content: string;
26
+ }>, "many">;
27
+ export type TemplateRenderSnapshots = z.infer<typeof templateRenderSnapshotsSchema>;
@@ -0,0 +1,4 @@
1
+ import { templateRenderSnapshotSchema } from './TemplateRenderSnapshot.js';
2
+ export const templateRenderSnapshotsSchema = templateRenderSnapshotSchema.array();
3
+
4
+ //# sourceMappingURL=TemplateRenderSnapshots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/TemplateRenderSnapshots.ts"],"sourcesContent":["import {type z} from 'zod';\n\nimport {templateRenderSnapshotSchema} from './TemplateRenderSnapshot.js';\n\nexport const templateRenderSnapshotsSchema = templateRenderSnapshotSchema.array();\n\nexport type TemplateRenderSnapshots = z.infer<typeof templateRenderSnapshotsSchema>;\n"],"names":["templateRenderSnapshotSchema","templateRenderSnapshotsSchema","array"],"mappings":"AAEA,SAAQA,4BAA4B,QAAO,8BAA8B;AAEzE,OAAO,MAAMC,gCAAgCD,6BAA6BE,QAAQ"}
@@ -0,0 +1,2 @@
1
+ import { type TemplateRender } from './TemplateRender.js';
2
+ export type TemplateRenders = TemplateRender[];
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=TemplateRenders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/TemplateRenders.ts"],"sourcesContent":["import {type TemplateRender} from './TemplateRender.js';\n\nexport type TemplateRenders = TemplateRender[];\n"],"names":[],"mappings":"AAAA,WAE+C"}
@@ -0,0 +1,8 @@
1
+ import { type TemplateRenders } from './TemplateRenders.js';
2
+ export type ApplyTemplateRendersOptions = {
3
+ templateRenders: TemplateRenders;
4
+ path: string;
5
+ ignoreCreateStrategies: boolean;
6
+ ignoreCheckStrategies: boolean;
7
+ };
8
+ export declare function applyTemplateRenders({ templateRenders, path: targetPath, ignoreCheckStrategies, ignoreCreateStrategies, }: ApplyTemplateRendersOptions): Promise<void>;
@@ -0,0 +1,60 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'node:path';
3
+ import prettier from 'prettier';
4
+ import { createFileUsingTemplateRender } from './createFileUsingTemplateRender.js';
5
+ import { deleteFileUsingTemplateRender } from './deleteFileUsingTemplateRender.js';
6
+ import { insertUsingTemplateRender } from './insertUsingTemplateRender.js';
7
+ import { loadTemplateRenderSnapshots } from './loadTemplateRenderSnapshots.js';
8
+ import { mergeFileUsingTemplateRender } from './mergeFileUsingTemplateRender.js';
9
+ import { overwriteFileUsingTemplateRender } from './overwriteFileUsingTemplateRender.js';
10
+ import { saveTemplateRenderSnapshots } from './saveTemplateRenderSnapshots.js';
11
+ import { uninsertUsingTemplateRender } from './uninsertUsingTemplateRender.js';
12
+ import { unmergeFileUsingTemplateRender } from './unmergeFileUsingTemplateRender.js';
13
+ import { CARSON_CONFIG_DIRECTORY, SNAPSHOTS_FILENAME } from '../constants.js';
14
+ export async function applyTemplateRenders({ templateRenders , path: targetPath , ignoreCheckStrategies , ignoreCreateStrategies }) {
15
+ // we need to clear Prettier cache, because we are changing file system
16
+ prettier.clearConfigCache();
17
+ let templateRenderSnapshotsPath = path.join(targetPath, CARSON_CONFIG_DIRECTORY, SNAPSHOTS_FILENAME);
18
+ if (await fs.pathExists(templateRenderSnapshotsPath)) {
19
+ let templateRenderSnapshots = await loadTemplateRenderSnapshots(templateRenderSnapshotsPath);
20
+ for (let templateRenderSnapshot of templateRenderSnapshots){
21
+ if (templateRenderSnapshot.attributes.strategy === 'overwrite') {
22
+ await deleteFileUsingTemplateRender(templateRenderSnapshot, targetPath);
23
+ }
24
+ if (templateRenderSnapshot.attributes.strategy === 'merge') {
25
+ await unmergeFileUsingTemplateRender(templateRenderSnapshot, targetPath);
26
+ }
27
+ if (templateRenderSnapshot.attributes.strategy[0] === 'insert') {
28
+ await uninsertUsingTemplateRender(templateRenderSnapshot, targetPath);
29
+ }
30
+ }
31
+ }
32
+ if (!ignoreCreateStrategies) {
33
+ for (let templateRender of templateRenders){
34
+ if (templateRender.attributes.strategy === 'create') {
35
+ await createFileUsingTemplateRender(templateRender, targetPath);
36
+ }
37
+ }
38
+ }
39
+ for (let templateRender of templateRenders){
40
+ if (templateRender.attributes.strategy === 'overwrite') {
41
+ await overwriteFileUsingTemplateRender(templateRender, targetPath);
42
+ }
43
+ if (templateRender.attributes.strategy === 'merge') {
44
+ await mergeFileUsingTemplateRender(templateRender, targetPath);
45
+ }
46
+ if (templateRender.attributes.strategy[0] === 'insert') {
47
+ await insertUsingTemplateRender(templateRender, targetPath);
48
+ }
49
+ if (!ignoreCheckStrategies && templateRender.attributes.strategy === 'check') {
50
+ let to = path.join(targetPath, templateRender.attributes.to);
51
+ let doesToExist = await fs.pathExists(to);
52
+ if (!doesToExist) {
53
+ throw new Error(`File "${to}" doesn't exist!`);
54
+ }
55
+ }
56
+ }
57
+ await saveTemplateRenderSnapshots(templateRenders, templateRenderSnapshotsPath);
58
+ }
59
+
60
+ //# sourceMappingURL=applyTemplateRenders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/applyTemplateRenders.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'node:path';\nimport prettier from 'prettier';\n\nimport {createFileUsingTemplateRender} from './createFileUsingTemplateRender.js';\nimport {deleteFileUsingTemplateRender} from './deleteFileUsingTemplateRender.js';\nimport {insertUsingTemplateRender} from './insertUsingTemplateRender.js';\nimport {loadTemplateRenderSnapshots} from './loadTemplateRenderSnapshots.js';\nimport {mergeFileUsingTemplateRender} from './mergeFileUsingTemplateRender.js';\nimport {overwriteFileUsingTemplateRender} from './overwriteFileUsingTemplateRender.js';\nimport {saveTemplateRenderSnapshots} from './saveTemplateRenderSnapshots.js';\nimport {type TemplateRenders} from './TemplateRenders.js';\nimport {uninsertUsingTemplateRender} from './uninsertUsingTemplateRender.js';\nimport {unmergeFileUsingTemplateRender} from './unmergeFileUsingTemplateRender.js';\nimport {CARSON_CONFIG_DIRECTORY, SNAPSHOTS_FILENAME} from '../constants.js';\n\nexport type ApplyTemplateRendersOptions = {\n templateRenders: TemplateRenders;\n path: string;\n ignoreCreateStrategies: boolean;\n ignoreCheckStrategies: boolean;\n};\n\nexport async function applyTemplateRenders({\n templateRenders,\n path: targetPath,\n ignoreCheckStrategies,\n ignoreCreateStrategies,\n}: ApplyTemplateRendersOptions) {\n // we need to clear Prettier cache, because we are changing file system\n prettier.clearConfigCache();\n\n let templateRenderSnapshotsPath = path.join(\n targetPath,\n CARSON_CONFIG_DIRECTORY,\n SNAPSHOTS_FILENAME,\n );\n\n if (await fs.pathExists(templateRenderSnapshotsPath)) {\n let templateRenderSnapshots = await loadTemplateRenderSnapshots(templateRenderSnapshotsPath);\n\n for (let templateRenderSnapshot of templateRenderSnapshots) {\n if (templateRenderSnapshot.attributes.strategy === 'overwrite') {\n await deleteFileUsingTemplateRender(templateRenderSnapshot, targetPath);\n }\n\n if (templateRenderSnapshot.attributes.strategy === 'merge') {\n await unmergeFileUsingTemplateRender(templateRenderSnapshot, targetPath);\n }\n\n if (templateRenderSnapshot.attributes.strategy[0] === 'insert') {\n await uninsertUsingTemplateRender(templateRenderSnapshot, targetPath);\n }\n }\n }\n\n if (!ignoreCreateStrategies) {\n for (let templateRender of templateRenders) {\n if (templateRender.attributes.strategy === 'create') {\n await createFileUsingTemplateRender(templateRender, targetPath);\n }\n }\n }\n\n for (let templateRender of templateRenders) {\n if (templateRender.attributes.strategy === 'overwrite') {\n await overwriteFileUsingTemplateRender(templateRender, targetPath);\n }\n\n if (templateRender.attributes.strategy === 'merge') {\n await mergeFileUsingTemplateRender(templateRender, targetPath);\n }\n\n if (templateRender.attributes.strategy[0] === 'insert') {\n await insertUsingTemplateRender(templateRender, targetPath);\n }\n\n if (!ignoreCheckStrategies && templateRender.attributes.strategy === 'check') {\n let to = path.join(targetPath, templateRender.attributes.to);\n let doesToExist = await fs.pathExists(to);\n\n if (!doesToExist) {\n throw new Error(`File \"${to}\" doesn't exist!`);\n }\n }\n }\n\n await saveTemplateRenderSnapshots(templateRenders, templateRenderSnapshotsPath);\n}\n"],"names":["fs","path","prettier","createFileUsingTemplateRender","deleteFileUsingTemplateRender","insertUsingTemplateRender","loadTemplateRenderSnapshots","mergeFileUsingTemplateRender","overwriteFileUsingTemplateRender","saveTemplateRenderSnapshots","uninsertUsingTemplateRender","unmergeFileUsingTemplateRender","CARSON_CONFIG_DIRECTORY","SNAPSHOTS_FILENAME","applyTemplateRenders","templateRenders","targetPath","ignoreCheckStrategies","ignoreCreateStrategies","clearConfigCache","templateRenderSnapshotsPath","join","pathExists","templateRenderSnapshots","templateRenderSnapshot","attributes","strategy","templateRender","to","doesToExist","Error"],"mappings":"AAAA,OAAOA,QAAQ,WAAW;AAC1B,OAAOC,UAAU,YAAY;AAC7B,OAAOC,cAAc,WAAW;AAEhC,SAAQC,6BAA6B,QAAO,qCAAqC;AACjF,SAAQC,6BAA6B,QAAO,qCAAqC;AACjF,SAAQC,yBAAyB,QAAO,iCAAiC;AACzE,SAAQC,2BAA2B,QAAO,mCAAmC;AAC7E,SAAQC,4BAA4B,QAAO,oCAAoC;AAC/E,SAAQC,gCAAgC,QAAO,wCAAwC;AACvF,SAAQC,2BAA2B,QAAO,mCAAmC;AAE7E,SAAQC,2BAA2B,QAAO,mCAAmC;AAC7E,SAAQC,8BAA8B,QAAO,sCAAsC;AACnF,SAAQC,uBAAuB,EAAEC,kBAAkB,QAAO,kBAAkB;AAS5E,OAAO,eAAeC,qBAAqB,EACzCC,gBAAe,EACfd,MAAMe,WAAU,EAChBC,sBAAqB,EACrBC,uBAAsB,EACM;IAC5B,uEAAuE;IACvEhB,SAASiB;IAET,IAAIC,8BAA8BnB,KAAKoB,KACrCL,YACAJ,yBACAC;IAGF,IAAI,MAAMb,GAAGsB,WAAWF,8BAA8B;QACpD,IAAIG,0BAA0B,MAAMjB,4BAA4Bc;QAEhE,KAAK,IAAII,0BAA0BD,wBAAyB;YAC1D,IAAIC,uBAAuBC,WAAWC,aAAa,aAAa;gBAC9D,MAAMtB,8BAA8BoB,wBAAwBR;YAC9D;YAEA,IAAIQ,uBAAuBC,WAAWC,aAAa,SAAS;gBAC1D,MAAMf,+BAA+Ba,wBAAwBR;YAC/D;YAEA,IAAIQ,uBAAuBC,WAAWC,QAAQ,CAAC,EAAE,KAAK,UAAU;gBAC9D,MAAMhB,4BAA4Bc,wBAAwBR;YAC5D;QACF;IACF;IAEA,IAAI,CAACE,wBAAwB;QAC3B,KAAK,IAAIS,kBAAkBZ,gBAAiB;YAC1C,IAAIY,eAAeF,WAAWC,aAAa,UAAU;gBACnD,MAAMvB,8BAA8BwB,gBAAgBX;YACtD;QACF;IACF;IAEA,KAAK,IAAIW,kBAAkBZ,gBAAiB;QAC1C,IAAIY,eAAeF,WAAWC,aAAa,aAAa;YACtD,MAAMlB,iCAAiCmB,gBAAgBX;QACzD;QAEA,IAAIW,eAAeF,WAAWC,aAAa,SAAS;YAClD,MAAMnB,6BAA6BoB,gBAAgBX;QACrD;QAEA,IAAIW,eAAeF,WAAWC,QAAQ,CAAC,EAAE,KAAK,UAAU;YACtD,MAAMrB,0BAA0BsB,gBAAgBX;QAClD;QAEA,IAAI,CAACC,yBAAyBU,eAAeF,WAAWC,aAAa,SAAS;YAC5E,IAAIE,KAAK3B,KAAKoB,KAAKL,YAAYW,eAAeF,WAAWG;YACzD,IAAIC,cAAc,MAAM7B,GAAGsB,WAAWM;YAEtC,IAAI,CAACC,aAAa;gBAChB,MAAM,IAAIC,MAAM,CAAC,MAAM,EAAEF,GAAG,gBAAgB,CAAC;YAC/C;QACF;IACF;IAEA,MAAMnB,4BAA4BM,iBAAiBK;AACrD"}
@@ -0,0 +1,2 @@
1
+ import { type TemplateRender } from './TemplateRender.js';
2
+ export declare function createFileUsingTemplateRender(render: TemplateRender, basePath: string): Promise<void>;
@@ -0,0 +1,12 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'node:path';
3
+ import { prettify } from './internals.js';
4
+ export async function createFileUsingTemplateRender(render, basePath) {
5
+ let to = path.join(basePath, render.attributes.to);
6
+ await fs.ensureDir(path.dirname(to));
7
+ await fs.writeFile(to, await prettify(render.content, to), {
8
+ encoding: 'utf8'
9
+ });
10
+ }
11
+
12
+ //# sourceMappingURL=createFileUsingTemplateRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/createFileUsingTemplateRender.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'node:path';\n\nimport {prettify} from './internals.js';\nimport {type TemplateRender} from './TemplateRender.js';\n\nexport async function createFileUsingTemplateRender(render: TemplateRender, basePath: string) {\n let to = path.join(basePath, render.attributes.to);\n\n await fs.ensureDir(path.dirname(to));\n await fs.writeFile(to, await prettify(render.content, to), {encoding: 'utf8'});\n}\n"],"names":["fs","path","prettify","createFileUsingTemplateRender","render","basePath","to","join","attributes","ensureDir","dirname","writeFile","content","encoding"],"mappings":"AAAA,OAAOA,QAAQ,WAAW;AAC1B,OAAOC,UAAU,YAAY;AAE7B,SAAQC,QAAQ,QAAO,iBAAiB;AAGxC,OAAO,eAAeC,8BAA8BC,MAAsB,EAAEC,QAAgB;IAC1F,IAAIC,KAAKL,KAAKM,KAAKF,UAAUD,OAAOI,WAAWF;IAE/C,MAAMN,GAAGS,UAAUR,KAAKS,QAAQJ;IAChC,MAAMN,GAAGW,UAAUL,IAAI,MAAMJ,SAASE,OAAOQ,SAASN,KAAK;QAACO,UAAU;IAAM;AAC9E"}
@@ -0,0 +1,2 @@
1
+ import { type TemplateRenderSnapshot } from './TemplateRenderSnapshot.js';
2
+ export declare function deleteFileUsingTemplateRender(render: TemplateRenderSnapshot, basePath: string): Promise<void>;
@@ -0,0 +1,10 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'node:path';
3
+ export async function deleteFileUsingTemplateRender(render, basePath) {
4
+ let to = path.join(basePath, render.attributes.to);
5
+ if (await fs.pathExists(to)) {
6
+ await fs.rm(to);
7
+ }
8
+ }
9
+
10
+ //# sourceMappingURL=deleteFileUsingTemplateRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/deleteFileUsingTemplateRender.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'node:path';\n\nimport {type TemplateRenderSnapshot} from './TemplateRenderSnapshot.js';\n\nexport async function deleteFileUsingTemplateRender(\n render: TemplateRenderSnapshot,\n basePath: string,\n) {\n let to = path.join(basePath, render.attributes.to);\n\n if (await fs.pathExists(to)) {\n await fs.rm(to);\n }\n}\n"],"names":["fs","path","deleteFileUsingTemplateRender","render","basePath","to","join","attributes","pathExists","rm"],"mappings":"AAAA,OAAOA,QAAQ,WAAW;AAC1B,OAAOC,UAAU,YAAY;AAI7B,OAAO,eAAeC,8BACpBC,MAA8B,EAC9BC,QAAgB;IAEhB,IAAIC,KAAKJ,KAAKK,KAAKF,UAAUD,OAAOI,WAAWF;IAE/C,IAAI,MAAML,GAAGQ,WAAWH,KAAK;QAC3B,MAAML,GAAGS,GAAGJ;IACd;AACF"}
@@ -0,0 +1,3 @@
1
+ export declare function importCarsonTemplate(templateId: string): Promise<{
2
+ [key: string]: unknown;
3
+ }>;
@@ -0,0 +1,8 @@
1
+ import { parseTemplateId } from './parseTemplateId.js';
2
+ export async function importCarsonTemplate(templateId) {
3
+ let [moduleId] = parseTemplateId(templateId);
4
+ let { default: _ , ...moduleWithoutDefault } = await import(moduleId);
5
+ return moduleWithoutDefault;
6
+ }
7
+
8
+ //# sourceMappingURL=importCarsonTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/importCarsonTemplate.ts"],"sourcesContent":["import {parseTemplateId} from './parseTemplateId.js';\n\ntype Module = {\n [key: string]: unknown;\n default: unknown;\n};\n\nexport async function importCarsonTemplate(templateId: string) {\n let [moduleId] = parseTemplateId(templateId);\n let {default: _, ...moduleWithoutDefault} = (await import(moduleId)) as Module;\n\n return moduleWithoutDefault;\n}\n"],"names":["parseTemplateId","importCarsonTemplate","templateId","moduleId","default","_","moduleWithoutDefault"],"mappings":"AAAA,SAAQA,eAAe,QAAO,uBAAuB;AAOrD,OAAO,eAAeC,qBAAqBC,UAAkB;IAC3D,IAAI,CAACC,SAAS,GAAGH,gBAAgBE;IACjC,IAAI,EAACE,SAASC,EAAC,EAAE,GAAGC,sBAAqB,GAAI,MAAM,MAAM,CAACH;IAE1D,OAAOG;AACT"}
@@ -0,0 +1,2 @@
1
+ import { type TemplateRender } from './TemplateRender.js';
2
+ export declare function insertUsingTemplateRender(render: TemplateRender, basePath: string): Promise<void>;
@@ -0,0 +1,29 @@
1
+ import fs from 'fs-extra';
2
+ import _ from 'lodash';
3
+ import path from 'node:path';
4
+ import { prettify } from './internals.js';
5
+ export async function insertUsingTemplateRender(render, basePath) {
6
+ let to = path.join(basePath, render.attributes.to);
7
+ let extension = path.extname(to);
8
+ switch(extension){
9
+ case '.md':
10
+ {
11
+ let targetFile = await fs.readFile(to, {
12
+ encoding: 'utf8'
13
+ });
14
+ let newContent = `<!-- ${render.attributes.strategy[1]} -->${render.content}<!-- ${render.attributes.strategy[1]} -->`;
15
+ let oldContentRegexp = new RegExp(`<!--\\s*${_.escapeRegExp(render.attributes.strategy[1])}\\s-->[\\s\\S]*<!--\\s*${_.escapeRegExp(render.attributes.strategy[1])}\\s-->`, 'u');
16
+ let newFile = targetFile.replace(oldContentRegexp, newContent);
17
+ await fs.writeFile(to, await prettify(newFile, to), {
18
+ encoding: 'utf8'
19
+ });
20
+ break;
21
+ }
22
+ default:
23
+ {
24
+ throw new Error(`File extension "${extension}" is not supported!`);
25
+ }
26
+ }
27
+ }
28
+
29
+ //# sourceMappingURL=insertUsingTemplateRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/insertUsingTemplateRender.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport _ from 'lodash';\nimport path from 'node:path';\n\nimport {prettify} from './internals.js';\nimport {type TemplateRender} from './TemplateRender.js';\n\nexport async function insertUsingTemplateRender(render: TemplateRender, basePath: string) {\n let to = path.join(basePath, render.attributes.to);\n let extension = path.extname(to);\n\n switch (extension) {\n case '.md': {\n let targetFile = await fs.readFile(to, {encoding: 'utf8'});\n let newContent = `<!-- ${render.attributes.strategy[1]} -->${render.content}<!-- ${render.attributes.strategy[1]} -->`;\n let oldContentRegexp = new RegExp(\n `<!--\\\\s*${_.escapeRegExp(\n render.attributes.strategy[1],\n )}\\\\s-->[\\\\s\\\\S]*<!--\\\\s*${_.escapeRegExp(render.attributes.strategy[1])}\\\\s-->`,\n 'u',\n );\n let newFile = targetFile.replace(oldContentRegexp, newContent);\n\n await fs.writeFile(to, await prettify(newFile, to), {encoding: 'utf8'});\n\n break;\n }\n\n default: {\n throw new Error(`File extension \"${extension}\" is not supported!`);\n }\n }\n}\n"],"names":["fs","_","path","prettify","insertUsingTemplateRender","render","basePath","to","join","attributes","extension","extname","targetFile","readFile","encoding","newContent","strategy","content","oldContentRegexp","RegExp","escapeRegExp","newFile","replace","writeFile","Error"],"mappings":"AAAA,OAAOA,QAAQ,WAAW;AAC1B,OAAOC,OAAO,SAAS;AACvB,OAAOC,UAAU,YAAY;AAE7B,SAAQC,QAAQ,QAAO,iBAAiB;AAGxC,OAAO,eAAeC,0BAA0BC,MAAsB,EAAEC,QAAgB;IACtF,IAAIC,KAAKL,KAAKM,KAAKF,UAAUD,OAAOI,WAAWF;IAC/C,IAAIG,YAAYR,KAAKS,QAAQJ;IAE7B,OAAQG;QACN,KAAK;YAAO;gBACV,IAAIE,aAAa,MAAMZ,GAAGa,SAASN,IAAI;oBAACO,UAAU;gBAAM;gBACxD,IAAIC,aAAa,CAAC,KAAK,EAAEV,OAAOI,WAAWO,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAEX,OAAOY,QAAQ,KAAK,EAAEZ,OAAOI,WAAWO,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;gBACtH,IAAIE,mBAAmB,IAAIC,OACzB,CAAC,QAAQ,EAAElB,EAAEmB,aACXf,OAAOI,WAAWO,QAAQ,CAAC,EAAE,EAC7B,uBAAuB,EAAEf,EAAEmB,aAAaf,OAAOI,WAAWO,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAChF;gBAEF,IAAIK,UAAUT,WAAWU,QAAQJ,kBAAkBH;gBAEnD,MAAMf,GAAGuB,UAAUhB,IAAI,MAAMJ,SAASkB,SAASd,KAAK;oBAACO,UAAU;gBAAM;gBAErE;YACF;QAEA;YAAS;gBACP,MAAM,IAAIU,MAAM,CAAC,gBAAgB,EAAEd,UAAU,mBAAmB,CAAC;YACnE;IACF;AACF"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Merges two JSON-like variables. Only simple objects, not arrays, are merged recursively.
3
+ */
4
+ export declare function merge(a: unknown, b: unknown): unknown;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Merges two JSON-like variables. Only simple objects, not arrays, are merged recursively.
3
+ */ export function merge(a, b) {
4
+ if (b === undefined || b == null) {
5
+ return a;
6
+ }
7
+ if (typeof b !== 'object' || Array.isArray(b)) {
8
+ return a;
9
+ }
10
+ if (a === undefined || a == null) {
11
+ return a;
12
+ }
13
+ if (typeof a !== 'object' || Array.isArray(a)) {
14
+ return a;
15
+ }
16
+ const newA = {
17
+ ...a
18
+ };
19
+ for (let [key, value] of Object.entries(b)){
20
+ if (a[key] && typeof a[key] === 'object' && !Array.isArray(a[key]) && b[key] && typeof b[key] === 'object' && !Array.isArray(b[key])) {
21
+ const result = merge(a[key], b[key]);
22
+ newA[key] = result;
23
+ } else {
24
+ newA[key] = value;
25
+ }
26
+ }
27
+ return newA;
28
+ }
29
+
30
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/template/internals/merge.ts"],"sourcesContent":["/**\n * Merges two JSON-like variables. Only simple objects, not arrays, are merged recursively.\n */\nexport function merge(a: unknown, b: unknown) {\n if (b === undefined || b == null) {\n return a;\n }\n\n if (typeof b !== 'object' || Array.isArray(b)) {\n return a;\n }\n\n if (a === undefined || a == null) {\n return a;\n }\n\n if (typeof a !== 'object' || Array.isArray(a)) {\n return a;\n }\n\n const newA: Record<string, unknown> = {...a};\n\n for (let [key, value] of Object.entries(b)) {\n if (\n (a as Record<string, unknown>)[key] &&\n typeof (a as Record<string, unknown>)[key] === 'object' &&\n !Array.isArray((a as Record<string, unknown>)[key]) &&\n (b as Record<string, unknown>)[key] &&\n typeof (b as Record<string, unknown>)[key] === 'object' &&\n !Array.isArray((b as Record<string, unknown>)[key])\n ) {\n const result = merge(\n (a as Record<string, unknown>)[key],\n (b as Record<string, unknown>)[key],\n );\n\n newA[key] = result;\n } else {\n newA[key] = value;\n }\n }\n\n return newA;\n}\n"],"names":["merge","a","b","undefined","Array","isArray","newA","key","value","Object","entries","result"],"mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,MAAMC,CAAU,EAAEC,CAAU;IAC1C,IAAIA,MAAMC,aAAaD,KAAK,MAAM;QAChC,OAAOD;IACT;IAEA,IAAI,OAAOC,MAAM,YAAYE,MAAMC,QAAQH,IAAI;QAC7C,OAAOD;IACT;IAEA,IAAIA,MAAME,aAAaF,KAAK,MAAM;QAChC,OAAOA;IACT;IAEA,IAAI,OAAOA,MAAM,YAAYG,MAAMC,QAAQJ,IAAI;QAC7C,OAAOA;IACT;IAEA,MAAMK,OAAgC;QAAC,GAAGL,CAAC;IAAA;IAE3C,KAAK,IAAI,CAACM,KAAKC,MAAM,IAAIC,OAAOC,QAAQR,GAAI;QAC1C,IACE,AAACD,CAA6B,CAACM,IAAI,IACnC,OAAO,AAACN,CAA6B,CAACM,IAAI,KAAK,YAC/C,CAACH,MAAMC,QAAQ,AAACJ,CAA6B,CAACM,IAAI,KAClD,AAACL,CAA6B,CAACK,IAAI,IACnC,OAAO,AAACL,CAA6B,CAACK,IAAI,KAAK,YAC/C,CAACH,MAAMC,QAAQ,AAACH,CAA6B,CAACK,IAAI,GAClD;YACA,MAAMI,SAASX,MACb,AAACC,CAA6B,CAACM,IAAI,EACnC,AAACL,CAA6B,CAACK,IAAI;YAGrCD,IAAI,CAACC,IAAI,GAAGI;QACd,OAAO;YACLL,IAAI,CAACC,IAAI,GAAGC;QACd;IACF;IAEA,OAAOF;AACT"}
@@ -0,0 +1 @@
1
+ export declare function prettify(content: string, targetPath: string): Promise<string>;
@@ -0,0 +1,25 @@
1
+ import prettier from 'prettier';
2
+ import packageJsonPrettierPlugin from 'prettier-plugin-packagejson';
3
+ const NO_INFERRED_PARSER = /parser.*inferred/i;
4
+ export async function prettify(content, targetPath) {
5
+ let prettifiedContent = content;
6
+ try {
7
+ let prettierOptions = await prettier.resolveConfig(targetPath, {
8
+ editorconfig: true
9
+ });
10
+ prettifiedContent = prettier.format(content, {
11
+ ...prettierOptions,
12
+ filepath: targetPath,
13
+ plugins: [
14
+ packageJsonPrettierPlugin
15
+ ]
16
+ });
17
+ } catch (error) {
18
+ if (!NO_INFERRED_PARSER.test(error.message)) {
19
+ throw error;
20
+ }
21
+ }
22
+ return prettifiedContent;
23
+ }
24
+
25
+ //# sourceMappingURL=prettify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/template/internals/prettify.ts"],"sourcesContent":["import prettier from 'prettier';\nimport packageJsonPrettierPlugin from 'prettier-plugin-packagejson';\n\nconst NO_INFERRED_PARSER = /parser.*inferred/i;\n\nexport async function prettify(content: string, targetPath: string) {\n let prettifiedContent = content;\n\n try {\n let prettierOptions = await prettier.resolveConfig(targetPath, {editorconfig: true});\n\n prettifiedContent = prettier.format(content, {\n ...prettierOptions,\n filepath: targetPath,\n plugins: [packageJsonPrettierPlugin],\n });\n } catch (error: unknown) {\n if (!NO_INFERRED_PARSER.test((error as Error).message)) {\n throw error;\n }\n }\n\n return prettifiedContent;\n}\n"],"names":["prettier","packageJsonPrettierPlugin","NO_INFERRED_PARSER","prettify","content","targetPath","prettifiedContent","prettierOptions","resolveConfig","editorconfig","format","filepath","plugins","error","test","message"],"mappings":"AAAA,OAAOA,cAAc,WAAW;AAChC,OAAOC,+BAA+B,8BAA8B;AAEpE,MAAMC,qBAAqB;AAE3B,OAAO,eAAeC,SAASC,OAAe,EAAEC,UAAkB;IAChE,IAAIC,oBAAoBF;IAExB,IAAI;QACF,IAAIG,kBAAkB,MAAMP,SAASQ,cAAcH,YAAY;YAACI,cAAc;QAAI;QAElFH,oBAAoBN,SAASU,OAAON,SAAS;YAC3C,GAAGG,eAAe;YAClBI,UAAUN;YACVO,SAAS;gBAACX;aAA0B;QACtC;IACF,EAAE,OAAOY,OAAgB;QACvB,IAAI,CAACX,mBAAmBY,KAAK,AAACD,MAAgBE,UAAU;YACtD,MAAMF;QACR;IACF;IAEA,OAAOP;AACT"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Reverts {@linkcode merge}.
3
+ */
4
+ export declare function unmerge(a: unknown, b: unknown): unknown;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Reverts {@linkcode merge}.
3
+ */ export function unmerge(a, b) {
4
+ if (b === undefined || b == null) {
5
+ return a;
6
+ }
7
+ if (typeof b !== 'object' || Array.isArray(b)) {
8
+ return a;
9
+ }
10
+ if (a === undefined || a == null) {
11
+ return a;
12
+ }
13
+ if (typeof a !== 'object' || Array.isArray(a)) {
14
+ return a;
15
+ }
16
+ const newA = {};
17
+ for (let [key] of Object.entries(a)){
18
+ if (!Object.hasOwn(b, key)) {
19
+ newA[key] = a[key];
20
+ continue;
21
+ } else if (a[key] && typeof a[key] === 'object' && !Array.isArray(a[key]) && b[key] && typeof b[key] === 'object' && !Array.isArray(b[key])) {
22
+ const result = unmerge(a[key], b[key]);
23
+ if (Object.keys(result).length > 0) {
24
+ newA[key] = result;
25
+ }
26
+ }
27
+ }
28
+ return newA;
29
+ }
30
+
31
+ //# sourceMappingURL=unmerge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/template/internals/unmerge.ts"],"sourcesContent":["/**\n * Reverts {@linkcode merge}.\n */\nexport function unmerge(a: unknown, b: unknown) {\n if (b === undefined || b == null) {\n return a;\n }\n\n if (typeof b !== 'object' || Array.isArray(b)) {\n return a;\n }\n\n if (a === undefined || a == null) {\n return a;\n }\n\n if (typeof a !== 'object' || Array.isArray(a)) {\n return a;\n }\n\n const newA: Record<string, unknown> = {};\n\n for (let [key] of Object.entries(a)) {\n if (!Object.hasOwn(b, key)) {\n newA[key] = (a as Record<string, unknown>)[key];\n\n continue;\n } else if (\n (a as Record<string, unknown>)[key] &&\n typeof (a as Record<string, unknown>)[key] === 'object' &&\n !Array.isArray((a as Record<string, unknown>)[key]) &&\n (b as Record<string, unknown>)[key] &&\n typeof (b as Record<string, unknown>)[key] === 'object' &&\n !Array.isArray((b as Record<string, unknown>)[key])\n ) {\n const result = unmerge(\n (a as Record<string, unknown>)[key],\n (b as Record<string, unknown>)[key],\n );\n\n if (Object.keys(result as Record<string, unknown>).length > 0) {\n newA[key] = result;\n }\n }\n }\n\n return newA;\n}\n"],"names":["unmerge","a","b","undefined","Array","isArray","newA","key","Object","entries","hasOwn","result","keys","length"],"mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,QAAQC,CAAU,EAAEC,CAAU;IAC5C,IAAIA,MAAMC,aAAaD,KAAK,MAAM;QAChC,OAAOD;IACT;IAEA,IAAI,OAAOC,MAAM,YAAYE,MAAMC,QAAQH,IAAI;QAC7C,OAAOD;IACT;IAEA,IAAIA,MAAME,aAAaF,KAAK,MAAM;QAChC,OAAOA;IACT;IAEA,IAAI,OAAOA,MAAM,YAAYG,MAAMC,QAAQJ,IAAI;QAC7C,OAAOA;IACT;IAEA,MAAMK,OAAgC,CAAC;IAEvC,KAAK,IAAI,CAACC,IAAI,IAAIC,OAAOC,QAAQR,GAAI;QACnC,IAAI,CAACO,OAAOE,OAAOR,GAAGK,MAAM;YAC1BD,IAAI,CAACC,IAAI,GAAG,AAACN,CAA6B,CAACM,IAAI;YAE/C;QACF,OAAO,IACL,AAACN,CAA6B,CAACM,IAAI,IACnC,OAAO,AAACN,CAA6B,CAACM,IAAI,KAAK,YAC/C,CAACH,MAAMC,QAAQ,AAACJ,CAA6B,CAACM,IAAI,KAClD,AAACL,CAA6B,CAACK,IAAI,IACnC,OAAO,AAACL,CAA6B,CAACK,IAAI,KAAK,YAC/C,CAACH,MAAMC,QAAQ,AAACH,CAA6B,CAACK,IAAI,GAClD;YACA,MAAMI,SAASX,QACb,AAACC,CAA6B,CAACM,IAAI,EACnC,AAACL,CAA6B,CAACK,IAAI;YAGrC,IAAIC,OAAOI,KAAKD,QAAmCE,SAAS,GAAG;gBAC7DP,IAAI,CAACC,IAAI,GAAGI;YACd;QACF;IACF;IAEA,OAAOL;AACT"}
@@ -0,0 +1,3 @@
1
+ export * from './internals/merge.js';
2
+ export * from './internals/prettify.js';
3
+ export * from './internals/unmerge.js';
@@ -0,0 +1,5 @@
1
+ export * from './internals/merge.js';
2
+ export * from './internals/prettify.js';
3
+ export * from './internals/unmerge.js';
4
+
5
+ //# sourceMappingURL=internals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/internals.ts"],"sourcesContent":["export * from './internals/merge.js';\nexport * from './internals/prettify.js';\nexport * from './internals/unmerge.js';\n"],"names":[],"mappings":"AAAA,cAAc,uBAAuB;AACrC,cAAc,0BAA0B;AACxC,cAAc,yBAAyB"}
@@ -0,0 +1,7 @@
1
+ export declare function loadTemplateRenderSnapshots(templateRenderSnapshotsPath: string): Promise<{
2
+ attributes: {
3
+ strategy: ("create" | "overwrite" | "merge" | "check" | ["insert", string]) & ("create" | "overwrite" | "merge" | "check" | ["insert", string] | undefined);
4
+ to: string;
5
+ };
6
+ content: string;
7
+ }[]>;
@@ -0,0 +1,14 @@
1
+ import { inflateSync, strFromU8 } from 'fflate';
2
+ import fs from 'fs-extra';
3
+ import { templateRenderSnapshotsSchema } from './TemplateRenderSnapshots.js';
4
+ export async function loadTemplateRenderSnapshots(templateRenderSnapshotsPath) {
5
+ let compressedSnapshots = await fs.readFile(templateRenderSnapshotsPath);
6
+ let decompressedSnapshots = inflateSync(new Uint8Array(compressedSnapshots));
7
+ let parsingResult = templateRenderSnapshotsSchema.safeParse(JSON.parse(strFromU8(decompressedSnapshots)));
8
+ if (!parsingResult.success) {
9
+ throw parsingResult.error;
10
+ }
11
+ return parsingResult.data;
12
+ }
13
+
14
+ //# sourceMappingURL=loadTemplateRenderSnapshots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/template/loadTemplateRenderSnapshots.ts"],"sourcesContent":["import {inflateSync, strFromU8} from 'fflate';\nimport fs from 'fs-extra';\n\nimport {templateRenderSnapshotsSchema} from './TemplateRenderSnapshots.js';\n\nexport async function loadTemplateRenderSnapshots(templateRenderSnapshotsPath: string) {\n let compressedSnapshots = await fs.readFile(templateRenderSnapshotsPath);\n let decompressedSnapshots = inflateSync(new Uint8Array(compressedSnapshots));\n let parsingResult = templateRenderSnapshotsSchema.safeParse(\n JSON.parse(strFromU8(decompressedSnapshots)),\n );\n\n if (!parsingResult.success) {\n throw parsingResult.error;\n }\n\n return parsingResult.data;\n}\n"],"names":["inflateSync","strFromU8","fs","templateRenderSnapshotsSchema","loadTemplateRenderSnapshots","templateRenderSnapshotsPath","compressedSnapshots","readFile","decompressedSnapshots","Uint8Array","parsingResult","safeParse","JSON","parse","success","error","data"],"mappings":"AAAA,SAAQA,WAAW,EAAEC,SAAS,QAAO,SAAS;AAC9C,OAAOC,QAAQ,WAAW;AAE1B,SAAQC,6BAA6B,QAAO,+BAA+B;AAE3E,OAAO,eAAeC,4BAA4BC,2BAAmC;IACnF,IAAIC,sBAAsB,MAAMJ,GAAGK,SAASF;IAC5C,IAAIG,wBAAwBR,YAAY,IAAIS,WAAWH;IACvD,IAAII,gBAAgBP,8BAA8BQ,UAChDC,KAAKC,MAAMZ,UAAUO;IAGvB,IAAI,CAACE,cAAcI,SAAS;QAC1B,MAAMJ,cAAcK;IACtB;IAEA,OAAOL,cAAcM;AACvB"}
@@ -0,0 +1,2 @@
1
+ import { type TemplateRender } from './TemplateRender.js';
2
+ export declare function mergeFileUsingTemplateRender(render: TemplateRender, basePath: string): Promise<void>;