@jakubmazanec/carson 0.3.0-unstable.feec6e4 → 1.0.0-next.2fa8a2c

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 (523) hide show
  1. package/README.md +1 -1
  2. package/bin/carson.js +1 -1
  3. package/build/commands/create-project/CreateProject.js +97 -0
  4. package/build/commands/create-project/CreateProject.js.map +7 -0
  5. package/build/commands/create-project/CreateProjectInput.js +35 -0
  6. package/build/commands/create-project/CreateProjectInput.js.map +7 -0
  7. package/{dist → build}/commands/create-project/createProjectCommand.d.ts +6 -6
  8. package/build/commands/create-project/createProjectCommand.js +37 -0
  9. package/build/commands/create-project/createProjectCommand.js.map +7 -0
  10. package/build/commands/create-project/runCreateProject.js +28 -0
  11. package/build/commands/create-project/runCreateProject.js.map +7 -0
  12. package/build/commands/create-project.js +6 -0
  13. package/build/commands/create-project.js.map +7 -0
  14. package/build/commands/create-workspace/CreateWorkspace.js +68 -0
  15. package/build/commands/create-workspace/CreateWorkspace.js.map +7 -0
  16. package/build/commands/create-workspace/CreateWorkspaceInput.js +19 -0
  17. package/build/commands/create-workspace/CreateWorkspaceInput.js.map +7 -0
  18. package/{dist → build}/commands/create-workspace/createWorkspaceCommand.d.ts +4 -4
  19. package/build/commands/create-workspace/createWorkspaceCommand.js +22 -0
  20. package/build/commands/create-workspace/createWorkspaceCommand.js.map +7 -0
  21. package/build/commands/create-workspace/runCreateWorkspace.js +22 -0
  22. package/build/commands/create-workspace/runCreateWorkspace.js.map +7 -0
  23. package/build/commands/create-workspace.js +6 -0
  24. package/build/commands/create-workspace.js.map +7 -0
  25. package/build/commands/internals/CommandStatus.js +2 -0
  26. package/build/commands/internals/CommandStatus.js.map +7 -0
  27. package/build/commands/internals/packageNameToDirectory.js +12 -0
  28. package/build/commands/internals/packageNameToDirectory.js.map +7 -0
  29. package/build/commands/internals.js +4 -0
  30. package/build/commands/internals.js.map +7 -0
  31. package/build/commands/update-workspace/UpdateWorkspace.js +37 -0
  32. package/build/commands/update-workspace/UpdateWorkspace.js.map +7 -0
  33. package/build/commands/update-workspace/runUpdateWorkspace.js +19 -0
  34. package/build/commands/update-workspace/runUpdateWorkspace.js.map +7 -0
  35. package/{dist → build}/commands/update-workspace/updateWorkspaceCommand.d.ts +2 -2
  36. package/build/commands/update-workspace/updateWorkspaceCommand.js +31 -0
  37. package/build/commands/update-workspace/updateWorkspaceCommand.js.map +7 -0
  38. package/build/commands/update-workspace.js +5 -0
  39. package/build/commands/update-workspace.js.map +7 -0
  40. package/build/commands.js +5 -0
  41. package/build/commands.js.map +7 -0
  42. package/build/constants.js +14 -0
  43. package/build/constants.js.map +7 -0
  44. package/build/main.js +5 -0
  45. package/build/main.js.map +7 -0
  46. package/build/modules.d.js +2 -0
  47. package/build/modules.d.js.map +7 -0
  48. package/build/run.js +19 -0
  49. package/build/run.js.map +7 -0
  50. package/build/template/CarsonTemplate.js +2 -0
  51. package/build/template/CarsonTemplate.js.map +7 -0
  52. package/build/template/CarsonTemplateConfig.js +8 -0
  53. package/build/template/CarsonTemplateConfig.js.map +7 -0
  54. package/build/template/CarsonTemplateError.js +15 -0
  55. package/build/template/CarsonTemplateError.js.map +7 -0
  56. package/build/template/TemplateAttributes.js +14 -0
  57. package/build/template/TemplateAttributes.js.map +7 -0
  58. package/build/template/TemplateData.js +10 -0
  59. package/build/template/TemplateData.js.map +7 -0
  60. package/build/template/TemplateRender.js +2 -0
  61. package/build/template/TemplateRender.js.map +7 -0
  62. package/build/template/TemplateRenders.js +2 -0
  63. package/build/template/TemplateRenders.js.map +7 -0
  64. package/build/template/applyTemplateRenders.js +94 -0
  65. package/build/template/applyTemplateRenders.js.map +7 -0
  66. package/build/template/internals/TemplateRenderSnapshot.js +12 -0
  67. package/build/template/internals/TemplateRenderSnapshot.js.map +7 -0
  68. package/build/template/internals/TemplateRenderSnapshots.js +4 -0
  69. package/build/template/internals/TemplateRenderSnapshots.js.map +7 -0
  70. package/build/template/internals/createUsingTemplateRender.js +42 -0
  71. package/build/template/internals/createUsingTemplateRender.js.map +7 -0
  72. package/build/template/internals/deleteUsingTemplateRender.js +20 -0
  73. package/build/template/internals/deleteUsingTemplateRender.js.map +7 -0
  74. package/build/template/internals/importCarsonTemplate.js +8 -0
  75. package/build/template/internals/importCarsonTemplate.js.map +7 -0
  76. package/build/template/internals/insertUsingTemplateRender.js +40 -0
  77. package/build/template/internals/insertUsingTemplateRender.js.map +7 -0
  78. package/build/template/internals/loadTemplateRenderSnapshots.js +16 -0
  79. package/build/template/internals/loadTemplateRenderSnapshots.js.map +7 -0
  80. package/build/template/internals/merge.js +29 -0
  81. package/build/template/internals/merge.js.map +7 -0
  82. package/build/template/internals/mergeUsingTemplateRender.js +49 -0
  83. package/build/template/internals/mergeUsingTemplateRender.js.map +7 -0
  84. package/build/template/internals/overwriteUsingTemplateRender.js +10 -0
  85. package/build/template/internals/overwriteUsingTemplateRender.js.map +7 -0
  86. package/build/template/internals/parseCarsonTemplateId.js +12 -0
  87. package/build/template/internals/parseCarsonTemplateId.js.map +7 -0
  88. package/build/template/internals/prettify.js +21 -0
  89. package/build/template/internals/prettify.js.map +7 -0
  90. package/build/template/internals/readCarsonTemplate.js +44 -0
  91. package/build/template/internals/readCarsonTemplate.js.map +7 -0
  92. package/build/template/internals/resolveModule.js +9 -0
  93. package/build/template/internals/resolveModule.js.map +7 -0
  94. package/build/template/internals/saveTemplateRenderSnapshots.js +23 -0
  95. package/build/template/internals/saveTemplateRenderSnapshots.js.map +7 -0
  96. package/build/template/internals/uninsertUsingTemplateRender.js +40 -0
  97. package/build/template/internals/uninsertUsingTemplateRender.js.map +7 -0
  98. package/build/template/internals/unmerge.js +32 -0
  99. package/build/template/internals/unmerge.js.map +7 -0
  100. package/build/template/internals/unmergeUsingTemplateRender.js +41 -0
  101. package/build/template/internals/unmergeUsingTemplateRender.js.map +7 -0
  102. package/build/template/internals.js +20 -0
  103. package/build/template/internals.js.map +7 -0
  104. package/build/template/renderCarsonTemplate.js +42 -0
  105. package/build/template/renderCarsonTemplate.js.map +7 -0
  106. package/build/template.js +11 -0
  107. package/build/template.js.map +7 -0
  108. package/build/workspace/Project.js +205 -0
  109. package/build/workspace/Project.js.map +7 -0
  110. package/build/workspace/ProjectConfig.js +6 -0
  111. package/build/workspace/ProjectConfig.js.map +7 -0
  112. package/build/workspace/ProjectCreateOptions.js +2 -0
  113. package/build/workspace/ProjectCreateOptions.js.map +7 -0
  114. package/{dist → build}/workspace/ProjectError.d.ts +1 -1
  115. package/build/workspace/ProjectError.js +17 -0
  116. package/build/workspace/ProjectError.js.map +7 -0
  117. package/build/workspace/ProjectOptions.js +2 -0
  118. package/build/workspace/ProjectOptions.js.map +7 -0
  119. package/build/workspace/ProjectUpdateOptions.js +2 -0
  120. package/build/workspace/ProjectUpdateOptions.js.map +7 -0
  121. package/{dist → build}/workspace/Workspace.d.ts +2 -2
  122. package/build/workspace/Workspace.js +501 -0
  123. package/build/workspace/Workspace.js.map +7 -0
  124. package/build/workspace/WorkspaceConfig.js +6 -0
  125. package/build/workspace/WorkspaceConfig.js.map +7 -0
  126. package/build/workspace/WorkspaceCreateOptions.js +2 -0
  127. package/build/workspace/WorkspaceCreateOptions.js.map +7 -0
  128. package/build/workspace/WorkspaceCreateProjectOptions.js +2 -0
  129. package/build/workspace/WorkspaceCreateProjectOptions.js.map +7 -0
  130. package/build/workspace/WorkspaceDependencies.js +143 -0
  131. package/build/workspace/WorkspaceDependencies.js.map +7 -0
  132. package/build/workspace/WorkspaceDependenciesFromWorkspaceOptions.js +2 -0
  133. package/build/workspace/WorkspaceDependenciesFromWorkspaceOptions.js.map +7 -0
  134. package/build/workspace/WorkspaceDependenciesGetVersionsOptions.js +2 -0
  135. package/build/workspace/WorkspaceDependenciesGetVersionsOptions.js.map +7 -0
  136. package/build/workspace/WorkspaceDependency.js +2 -0
  137. package/build/workspace/WorkspaceDependency.js.map +7 -0
  138. package/build/workspace/WorkspaceDependencyProject.js +2 -0
  139. package/build/workspace/WorkspaceDependencyProject.js.map +7 -0
  140. package/{dist → build}/workspace/WorkspaceError.d.ts +1 -1
  141. package/{dist → build}/workspace/WorkspaceError.js +12 -10
  142. package/build/workspace/WorkspaceError.js.map +7 -0
  143. package/build/workspace/WorkspaceFindAndReadOptions.js +2 -0
  144. package/build/workspace/WorkspaceFindAndReadOptions.js.map +7 -0
  145. package/build/workspace/WorkspaceOptions.js +2 -0
  146. package/build/workspace/WorkspaceOptions.js.map +7 -0
  147. package/build/workspace/WorkspaceOptionsProject.js +2 -0
  148. package/build/workspace/WorkspaceOptionsProject.js.map +7 -0
  149. package/build/workspace/WorkspacePackageJson.js +2 -0
  150. package/build/workspace/WorkspacePackageJson.js.map +7 -0
  151. package/build/workspace/WorkspaceProjectGlobs.js +2 -0
  152. package/build/workspace/WorkspaceProjectGlobs.js.map +7 -0
  153. package/build/workspace/WorkspaceProjects.js +2 -0
  154. package/build/workspace/WorkspaceProjects.js.map +7 -0
  155. package/build/workspace/WorkspaceRepository.js +2 -0
  156. package/build/workspace/WorkspaceRepository.js.map +7 -0
  157. package/build/workspace/WorkspaceUpdateOptions.js +2 -0
  158. package/build/workspace/WorkspaceUpdateOptions.js.map +7 -0
  159. package/build/workspace/internals/compareProjectPath.js +10 -0
  160. package/build/workspace/internals/compareProjectPath.js.map +7 -0
  161. package/build/workspace/internals/compareSemver.js +20 -0
  162. package/build/workspace/internals/compareSemver.js.map +7 -0
  163. package/build/workspace/internals/compareWorkspaceDependencyProjectName.js +10 -0
  164. package/build/workspace/internals/compareWorkspaceDependencyProjectName.js.map +7 -0
  165. package/build/workspace/internals/containsProject.js +23 -0
  166. package/build/workspace/internals/containsProject.js.map +7 -0
  167. package/build/workspace/internals/containsWorkspace.js +20 -0
  168. package/build/workspace/internals/containsWorkspace.js.map +7 -0
  169. package/build/workspace/internals/getPackageJsonWorkspaces.js +31 -0
  170. package/build/workspace/internals/getPackageJsonWorkspaces.js.map +7 -0
  171. package/build/workspace/internals/getRepositoryBranches.js +26 -0
  172. package/build/workspace/internals/getRepositoryBranches.js.map +7 -0
  173. package/build/workspace/internals/getRepositoryUrl.js +19 -0
  174. package/build/workspace/internals/getRepositoryUrl.js.map +7 -0
  175. package/build/workspace/internals.js +10 -0
  176. package/build/workspace/internals.js.map +7 -0
  177. package/build/workspace/saveProjectConfig.js +15 -0
  178. package/build/workspace/saveProjectConfig.js.map +7 -0
  179. package/build/workspace/saveWorkspaceConfig.js +22 -0
  180. package/build/workspace/saveWorkspaceConfig.js.map +7 -0
  181. package/build/workspace.js +24 -0
  182. package/build/workspace.js.map +7 -0
  183. package/package.json +54 -49
  184. package/{src → source}/commands/create-project/CreateProject.tsx +7 -7
  185. package/{src → source}/commands/create-project/CreateProjectInput.ts +1 -1
  186. package/{src → source}/commands/create-workspace/CreateWorkspace.tsx +6 -6
  187. package/{src → source}/commands/create-workspace/CreateWorkspaceInput.ts +1 -1
  188. package/{src → source}/commands/update-workspace/UpdateWorkspace.tsx +4 -4
  189. package/{src → source}/run.ts +2 -2
  190. package/{src → source}/template/applyTemplateRenders.ts +10 -10
  191. package/{src → source}/template/internals/prettify.ts +2 -2
  192. package/{src → source}/template/internals/readCarsonTemplate.ts +3 -3
  193. package/{src → source}/workspace/Project.ts +8 -8
  194. package/{src → source}/workspace/Workspace.ts +21 -27
  195. package/{src → source}/workspace/WorkspaceDependencies.ts +11 -9
  196. package/{src → source}/workspace/WorkspaceOptions.ts +3 -2
  197. package/{src → source}/workspace/internals/compareSemver.ts +6 -4
  198. package/{src → source}/workspace/internals/getPackageJsonWorkspaces.ts +1 -1
  199. package/dist/commands/create-project/CreateProject.js +0 -138
  200. package/dist/commands/create-project/CreateProject.js.map +0 -1
  201. package/dist/commands/create-project/CreateProjectInput.js +0 -31
  202. package/dist/commands/create-project/CreateProjectInput.js.map +0 -1
  203. package/dist/commands/create-project/createProjectCommand.js +0 -38
  204. package/dist/commands/create-project/createProjectCommand.js.map +0 -1
  205. package/dist/commands/create-project/runCreateProject.js +0 -24
  206. package/dist/commands/create-project/runCreateProject.js.map +0 -1
  207. package/dist/commands/create-project.js +0 -6
  208. package/dist/commands/create-project.js.map +0 -1
  209. package/dist/commands/create-workspace/CreateWorkspace.js +0 -104
  210. package/dist/commands/create-workspace/CreateWorkspace.js.map +0 -1
  211. package/dist/commands/create-workspace/CreateWorkspaceInput.js +0 -17
  212. package/dist/commands/create-workspace/CreateWorkspaceInput.js.map +0 -1
  213. package/dist/commands/create-workspace/createWorkspaceCommand.js +0 -20
  214. package/dist/commands/create-workspace/createWorkspaceCommand.js.map +0 -1
  215. package/dist/commands/create-workspace/runCreateWorkspace.js +0 -24
  216. package/dist/commands/create-workspace/runCreateWorkspace.js.map +0 -1
  217. package/dist/commands/create-workspace.js +0 -6
  218. package/dist/commands/create-workspace.js.map +0 -1
  219. package/dist/commands/internals/CommandStatus.js +0 -3
  220. package/dist/commands/internals/CommandStatus.js.map +0 -1
  221. package/dist/commands/internals/packageNameToDirectory.js +0 -12
  222. package/dist/commands/internals/packageNameToDirectory.js.map +0 -1
  223. package/dist/commands/internals.js +0 -4
  224. package/dist/commands/internals.js.map +0 -1
  225. package/dist/commands/update-workspace/UpdateWorkspace.js +0 -71
  226. package/dist/commands/update-workspace/UpdateWorkspace.js.map +0 -1
  227. package/dist/commands/update-workspace/runUpdateWorkspace.js +0 -25
  228. package/dist/commands/update-workspace/runUpdateWorkspace.js.map +0 -1
  229. package/dist/commands/update-workspace/updateWorkspaceCommand.js +0 -32
  230. package/dist/commands/update-workspace/updateWorkspaceCommand.js.map +0 -1
  231. package/dist/commands/update-workspace.js +0 -5
  232. package/dist/commands/update-workspace.js.map +0 -1
  233. package/dist/commands.js +0 -5
  234. package/dist/commands.js.map +0 -1
  235. package/dist/constants.js +0 -14
  236. package/dist/constants.js.map +0 -1
  237. package/dist/main.js +0 -5
  238. package/dist/main.js.map +0 -1
  239. package/dist/modules.d.js +0 -2
  240. package/dist/modules.d.js.map +0 -1
  241. package/dist/run.js +0 -19
  242. package/dist/run.js.map +0 -1
  243. package/dist/template/CarsonTemplate.js +0 -3
  244. package/dist/template/CarsonTemplate.js.map +0 -1
  245. package/dist/template/CarsonTemplateConfig.js +0 -7
  246. package/dist/template/CarsonTemplateConfig.js.map +0 -1
  247. package/dist/template/CarsonTemplateError.js +0 -13
  248. package/dist/template/CarsonTemplateError.js.map +0 -1
  249. package/dist/template/TemplateAttributes.js +0 -18
  250. package/dist/template/TemplateAttributes.js.map +0 -1
  251. package/dist/template/TemplateData.js +0 -11
  252. package/dist/template/TemplateData.js.map +0 -1
  253. package/dist/template/TemplateRender.js +0 -3
  254. package/dist/template/TemplateRender.js.map +0 -1
  255. package/dist/template/TemplateRenders.js +0 -3
  256. package/dist/template/TemplateRenders.js.map +0 -1
  257. package/dist/template/applyTemplateRenders.js +0 -90
  258. package/dist/template/applyTemplateRenders.js.map +0 -1
  259. package/dist/template/internals/TemplateRenderSnapshot.js +0 -14
  260. package/dist/template/internals/TemplateRenderSnapshot.js.map +0 -1
  261. package/dist/template/internals/TemplateRenderSnapshots.js +0 -4
  262. package/dist/template/internals/TemplateRenderSnapshots.js.map +0 -1
  263. package/dist/template/internals/createUsingTemplateRender.js +0 -57
  264. package/dist/template/internals/createUsingTemplateRender.js.map +0 -1
  265. package/dist/template/internals/deleteUsingTemplateRender.js +0 -22
  266. package/dist/template/internals/deleteUsingTemplateRender.js.map +0 -1
  267. package/dist/template/internals/importCarsonTemplate.js +0 -8
  268. package/dist/template/internals/importCarsonTemplate.js.map +0 -1
  269. package/dist/template/internals/insertUsingTemplateRender.js +0 -41
  270. package/dist/template/internals/insertUsingTemplateRender.js.map +0 -1
  271. package/dist/template/internals/loadTemplateRenderSnapshots.js +0 -14
  272. package/dist/template/internals/loadTemplateRenderSnapshots.js.map +0 -1
  273. package/dist/template/internals/merge.js +0 -30
  274. package/dist/template/internals/merge.js.map +0 -1
  275. package/dist/template/internals/mergeUsingTemplateRender.js +0 -62
  276. package/dist/template/internals/mergeUsingTemplateRender.js.map +0 -1
  277. package/dist/template/internals/overwriteUsingTemplateRender.js +0 -12
  278. package/dist/template/internals/overwriteUsingTemplateRender.js.map +0 -1
  279. package/dist/template/internals/parseCarsonTemplateId.js +0 -17
  280. package/dist/template/internals/parseCarsonTemplateId.js.map +0 -1
  281. package/dist/template/internals/prettify.js +0 -25
  282. package/dist/template/internals/prettify.js.map +0 -1
  283. package/dist/template/internals/readCarsonTemplate.js +0 -45
  284. package/dist/template/internals/readCarsonTemplate.js.map +0 -1
  285. package/dist/template/internals/resolveModule.js +0 -9
  286. package/dist/template/internals/resolveModule.js.map +0 -1
  287. package/dist/template/internals/saveTemplateRenderSnapshots.js +0 -23
  288. package/dist/template/internals/saveTemplateRenderSnapshots.js.map +0 -1
  289. package/dist/template/internals/uninsertUsingTemplateRender.js +0 -41
  290. package/dist/template/internals/uninsertUsingTemplateRender.js.map +0 -1
  291. package/dist/template/internals/unmerge.js +0 -31
  292. package/dist/template/internals/unmerge.js.map +0 -1
  293. package/dist/template/internals/unmergeUsingTemplateRender.js +0 -50
  294. package/dist/template/internals/unmergeUsingTemplateRender.js.map +0 -1
  295. package/dist/template/internals.js +0 -20
  296. package/dist/template/internals.js.map +0 -1
  297. package/dist/template/renderCarsonTemplate.js +0 -34
  298. package/dist/template/renderCarsonTemplate.js.map +0 -1
  299. package/dist/template.js +0 -11
  300. package/dist/template.js.map +0 -1
  301. package/dist/workspace/Project.js +0 -204
  302. package/dist/workspace/Project.js.map +0 -1
  303. package/dist/workspace/ProjectConfig.js +0 -6
  304. package/dist/workspace/ProjectConfig.js.map +0 -1
  305. package/dist/workspace/ProjectCreateOptions.js +0 -3
  306. package/dist/workspace/ProjectCreateOptions.js.map +0 -1
  307. package/dist/workspace/ProjectError.js +0 -15
  308. package/dist/workspace/ProjectError.js.map +0 -1
  309. package/dist/workspace/ProjectOptions.js +0 -3
  310. package/dist/workspace/ProjectOptions.js.map +0 -1
  311. package/dist/workspace/ProjectUpdateOptions.js +0 -5
  312. package/dist/workspace/ProjectUpdateOptions.js.map +0 -1
  313. package/dist/workspace/Workspace.js +0 -529
  314. package/dist/workspace/Workspace.js.map +0 -1
  315. package/dist/workspace/WorkspaceConfig.js +0 -6
  316. package/dist/workspace/WorkspaceConfig.js.map +0 -1
  317. package/dist/workspace/WorkspaceCreateOptions.js +0 -5
  318. package/dist/workspace/WorkspaceCreateOptions.js.map +0 -1
  319. package/dist/workspace/WorkspaceCreateProjectOptions.js +0 -5
  320. package/dist/workspace/WorkspaceCreateProjectOptions.js.map +0 -1
  321. package/dist/workspace/WorkspaceDependencies.js +0 -140
  322. package/dist/workspace/WorkspaceDependencies.js.map +0 -1
  323. package/dist/workspace/WorkspaceDependenciesFromWorkspaceOptions.js +0 -5
  324. package/dist/workspace/WorkspaceDependenciesFromWorkspaceOptions.js.map +0 -1
  325. package/dist/workspace/WorkspaceDependenciesGetVersionsOptions.js +0 -5
  326. package/dist/workspace/WorkspaceDependenciesGetVersionsOptions.js.map +0 -1
  327. package/dist/workspace/WorkspaceDependency.js +0 -3
  328. package/dist/workspace/WorkspaceDependency.js.map +0 -1
  329. package/dist/workspace/WorkspaceDependencyProject.js +0 -5
  330. package/dist/workspace/WorkspaceDependencyProject.js.map +0 -1
  331. package/dist/workspace/WorkspaceError.js.map +0 -1
  332. package/dist/workspace/WorkspaceFindAndReadOptions.js +0 -5
  333. package/dist/workspace/WorkspaceFindAndReadOptions.js.map +0 -1
  334. package/dist/workspace/WorkspaceOptions.js +0 -3
  335. package/dist/workspace/WorkspaceOptions.js.map +0 -1
  336. package/dist/workspace/WorkspaceOptionsProject.js +0 -3
  337. package/dist/workspace/WorkspaceOptionsProject.js.map +0 -1
  338. package/dist/workspace/WorkspacePackageJson.js +0 -3
  339. package/dist/workspace/WorkspacePackageJson.js.map +0 -1
  340. package/dist/workspace/WorkspaceProjectGlobs.js +0 -5
  341. package/dist/workspace/WorkspaceProjectGlobs.js.map +0 -1
  342. package/dist/workspace/WorkspaceProjects.js +0 -3
  343. package/dist/workspace/WorkspaceProjects.js.map +0 -1
  344. package/dist/workspace/WorkspaceRepository.js +0 -5
  345. package/dist/workspace/WorkspaceRepository.js.map +0 -1
  346. package/dist/workspace/WorkspaceUpdateOptions.js +0 -5
  347. package/dist/workspace/WorkspaceUpdateOptions.js.map +0 -1
  348. package/dist/workspace/internals/compareProjectPath.js +0 -10
  349. package/dist/workspace/internals/compareProjectPath.js.map +0 -1
  350. package/dist/workspace/internals/compareSemver.js +0 -26
  351. package/dist/workspace/internals/compareSemver.js.map +0 -1
  352. package/dist/workspace/internals/compareWorkspaceDependencyProjectName.js +0 -10
  353. package/dist/workspace/internals/compareWorkspaceDependencyProjectName.js.map +0 -1
  354. package/dist/workspace/internals/containsProject.js +0 -19
  355. package/dist/workspace/internals/containsProject.js.map +0 -1
  356. package/dist/workspace/internals/containsWorkspace.js +0 -14
  357. package/dist/workspace/internals/containsWorkspace.js.map +0 -1
  358. package/dist/workspace/internals/getPackageJsonWorkspaces.js +0 -31
  359. package/dist/workspace/internals/getPackageJsonWorkspaces.js.map +0 -1
  360. package/dist/workspace/internals/getRepositoryBranches.js +0 -27
  361. package/dist/workspace/internals/getRepositoryBranches.js.map +0 -1
  362. package/dist/workspace/internals/getRepositoryUrl.js +0 -20
  363. package/dist/workspace/internals/getRepositoryUrl.js.map +0 -1
  364. package/dist/workspace/internals.js +0 -10
  365. package/dist/workspace/internals.js.map +0 -1
  366. package/dist/workspace/saveProjectConfig.js +0 -17
  367. package/dist/workspace/saveProjectConfig.js.map +0 -1
  368. package/dist/workspace/saveWorkspaceConfig.js +0 -17
  369. package/dist/workspace/saveWorkspaceConfig.js.map +0 -1
  370. package/dist/workspace.js +0 -24
  371. package/dist/workspace.js.map +0 -1
  372. package/{dist → build}/commands/create-project/CreateProject.d.ts +1 -1
  373. package/{dist → build}/commands/create-project/CreateProjectInput.d.ts +0 -0
  374. package/{dist → build}/commands/create-project/runCreateProject.d.ts +1 -1
  375. package/{dist → build}/commands/create-project.d.ts +2 -2
  376. package/{dist → build}/commands/create-workspace/CreateWorkspace.d.ts +0 -0
  377. package/{dist → build}/commands/create-workspace/CreateWorkspaceInput.d.ts +0 -0
  378. package/{dist → build}/commands/create-workspace/runCreateWorkspace.d.ts +0 -0
  379. package/{dist → build}/commands/create-workspace.d.ts +2 -2
  380. package/{dist → build}/commands/internals/CommandStatus.d.ts +0 -0
  381. package/{dist → build}/commands/internals/packageNameToDirectory.d.ts +0 -0
  382. package/{dist → build}/commands/internals.d.ts +0 -0
  383. package/{dist → build}/commands/update-workspace/UpdateWorkspace.d.ts +1 -1
  384. package/{dist → build}/commands/update-workspace/runUpdateWorkspace.d.ts +1 -1
  385. package/{dist → build}/commands/update-workspace.d.ts +0 -0
  386. package/{dist → build}/commands.d.ts +0 -0
  387. package/{dist → build}/constants.d.ts +0 -0
  388. package/{dist → build}/main.d.ts +0 -0
  389. package/{dist → build}/run.d.ts +0 -0
  390. package/{dist → build}/template/CarsonTemplate.d.ts +0 -0
  391. package/{dist → build}/template/CarsonTemplateConfig.d.ts +0 -0
  392. package/{dist → build}/template/CarsonTemplateError.d.ts +0 -0
  393. package/{dist → build}/template/TemplateAttributes.d.ts +0 -0
  394. package/{dist → build}/template/TemplateData.d.ts +0 -0
  395. package/{dist → build}/template/TemplateRender.d.ts +0 -0
  396. package/{dist → build}/template/TemplateRenders.d.ts +0 -0
  397. package/{dist → build}/template/applyTemplateRenders.d.ts +0 -0
  398. package/{dist → build}/template/internals/TemplateRenderSnapshot.d.ts +0 -0
  399. package/{dist → build}/template/internals/TemplateRenderSnapshots.d.ts +0 -0
  400. package/{dist → build}/template/internals/createUsingTemplateRender.d.ts +1 -1
  401. package/{dist → build}/template/internals/deleteUsingTemplateRender.d.ts +1 -1
  402. package/{dist → build}/template/internals/importCarsonTemplate.d.ts +0 -0
  403. package/{dist → build}/template/internals/insertUsingTemplateRender.d.ts +1 -1
  404. package/{dist → build}/template/internals/loadTemplateRenderSnapshots.d.ts +0 -0
  405. package/{dist → build}/template/internals/merge.d.ts +0 -0
  406. package/{dist → build}/template/internals/mergeUsingTemplateRender.d.ts +1 -1
  407. package/{dist → build}/template/internals/overwriteUsingTemplateRender.d.ts +1 -1
  408. package/{dist → build}/template/internals/parseCarsonTemplateId.d.ts +0 -0
  409. package/{dist → build}/template/internals/prettify.d.ts +0 -0
  410. package/{dist → build}/template/internals/readCarsonTemplate.d.ts +0 -0
  411. package/{dist → build}/template/internals/resolveModule.d.ts +0 -0
  412. package/{dist → build}/template/internals/saveTemplateRenderSnapshots.d.ts +0 -0
  413. package/{dist → build}/template/internals/uninsertUsingTemplateRender.d.ts +1 -1
  414. package/{dist → build}/template/internals/unmerge.d.ts +0 -0
  415. package/{dist → build}/template/internals/unmergeUsingTemplateRender.d.ts +1 -1
  416. package/{dist → build}/template/internals.d.ts +12 -12
  417. package/{dist → build}/template/renderCarsonTemplate.d.ts +0 -0
  418. package/{dist → build}/template.d.ts +0 -0
  419. package/{dist → build}/workspace/Project.d.ts +0 -0
  420. package/{dist → build}/workspace/ProjectConfig.d.ts +0 -0
  421. package/{dist → build}/workspace/ProjectCreateOptions.d.ts +0 -0
  422. package/{dist → build}/workspace/ProjectOptions.d.ts +0 -0
  423. package/{dist → build}/workspace/ProjectUpdateOptions.d.ts +0 -0
  424. package/{dist → build}/workspace/WorkspaceConfig.d.ts +0 -0
  425. package/{dist → build}/workspace/WorkspaceCreateOptions.d.ts +0 -0
  426. package/{dist → build}/workspace/WorkspaceCreateProjectOptions.d.ts +0 -0
  427. package/{dist → build}/workspace/WorkspaceDependencies.d.ts +0 -0
  428. package/{dist → build}/workspace/WorkspaceDependenciesFromWorkspaceOptions.d.ts +0 -0
  429. package/{dist → build}/workspace/WorkspaceDependenciesGetVersionsOptions.d.ts +0 -0
  430. package/{dist → build}/workspace/WorkspaceDependency.d.ts +0 -0
  431. package/{dist → build}/workspace/WorkspaceDependencyProject.d.ts +0 -0
  432. package/{dist → build}/workspace/WorkspaceFindAndReadOptions.d.ts +0 -0
  433. package/{dist → build}/workspace/WorkspaceOptions.d.ts +0 -0
  434. package/{dist → build}/workspace/WorkspaceOptionsProject.d.ts +0 -0
  435. package/{dist → build}/workspace/WorkspacePackageJson.d.ts +0 -0
  436. package/{dist → build}/workspace/WorkspaceProjectGlobs.d.ts +0 -0
  437. package/{dist → build}/workspace/WorkspaceProjects.d.ts +0 -0
  438. package/{dist → build}/workspace/WorkspaceRepository.d.ts +0 -0
  439. package/{dist → build}/workspace/WorkspaceUpdateOptions.d.ts +0 -0
  440. package/{dist → build}/workspace/internals/compareProjectPath.d.ts +0 -0
  441. package/{dist → build}/workspace/internals/compareSemver.d.ts +0 -0
  442. package/{dist → build}/workspace/internals/compareWorkspaceDependencyProjectName.d.ts +0 -0
  443. package/{dist → build}/workspace/internals/containsProject.d.ts +0 -0
  444. package/{dist → build}/workspace/internals/containsWorkspace.d.ts +0 -0
  445. package/{dist → build}/workspace/internals/getPackageJsonWorkspaces.d.ts +0 -0
  446. package/{dist → build}/workspace/internals/getRepositoryBranches.d.ts +0 -0
  447. package/{dist → build}/workspace/internals/getRepositoryUrl.d.ts +0 -0
  448. package/{dist → build}/workspace/internals.d.ts +0 -0
  449. package/{dist → build}/workspace/saveProjectConfig.d.ts +0 -0
  450. package/{dist → build}/workspace/saveWorkspaceConfig.d.ts +0 -0
  451. package/{dist → build}/workspace.d.ts +0 -0
  452. package/{src → source}/commands/create-project/createProjectCommand.tsx +1 -1
  453. package/{src → source}/commands/create-project/runCreateProject.ts +1 -1
  454. package/{src → source}/commands/create-project.ts +2 -2
  455. package/{src → source}/commands/create-workspace/createWorkspaceCommand.tsx +0 -0
  456. package/{src → source}/commands/create-workspace/runCreateWorkspace.ts +1 -1
  457. package/{src → source}/commands/create-workspace.ts +2 -2
  458. package/{src → source}/commands/internals/CommandStatus.ts +0 -0
  459. package/{src → source}/commands/internals/packageNameToDirectory.ts +0 -0
  460. package/{src → source}/commands/internals.ts +0 -0
  461. package/{src → source}/commands/update-workspace/runUpdateWorkspace.ts +1 -1
  462. package/{src → source}/commands/update-workspace/updateWorkspaceCommand.tsx +1 -1
  463. package/{src → source}/commands/update-workspace.ts +0 -0
  464. package/{src → source}/commands.ts +0 -0
  465. package/{src → source}/constants.ts +0 -0
  466. package/{src → source}/main.ts +0 -0
  467. package/{src → source}/modules.d.ts +0 -0
  468. package/{src → source}/template/CarsonTemplate.ts +0 -0
  469. package/{src → source}/template/CarsonTemplateConfig.ts +0 -0
  470. package/{src → source}/template/CarsonTemplateError.ts +0 -0
  471. package/{src → source}/template/TemplateAttributes.ts +0 -0
  472. package/{src → source}/template/TemplateData.ts +0 -0
  473. package/{src → source}/template/TemplateRender.ts +0 -0
  474. package/{src → source}/template/TemplateRenders.ts +0 -0
  475. package/{src → source}/template/internals/TemplateRenderSnapshot.ts +0 -0
  476. package/{src → source}/template/internals/TemplateRenderSnapshots.ts +0 -0
  477. package/{src → source}/template/internals/createUsingTemplateRender.ts +1 -1
  478. package/{src → source}/template/internals/deleteUsingTemplateRender.ts +1 -1
  479. package/{src → source}/template/internals/importCarsonTemplate.ts +0 -0
  480. package/{src → source}/template/internals/insertUsingTemplateRender.ts +2 -2
  481. package/{src → source}/template/internals/loadTemplateRenderSnapshots.ts +0 -0
  482. package/{src → source}/template/internals/merge.ts +0 -0
  483. package/{src → source}/template/internals/mergeUsingTemplateRender.ts +2 -2
  484. package/{src → source}/template/internals/overwriteUsingTemplateRender.ts +1 -1
  485. package/{src → source}/template/internals/parseCarsonTemplateId.ts +0 -0
  486. package/{src → source}/template/internals/resolveModule.ts +0 -0
  487. package/{src → source}/template/internals/saveTemplateRenderSnapshots.ts +1 -1
  488. package/{src → source}/template/internals/uninsertUsingTemplateRender.ts +2 -2
  489. package/{src → source}/template/internals/unmerge.ts +0 -0
  490. package/{src → source}/template/internals/unmergeUsingTemplateRender.ts +2 -2
  491. package/{src → source}/template/internals.ts +12 -12
  492. package/{src → source}/template/renderCarsonTemplate.ts +0 -0
  493. package/{src → source}/template.ts +0 -0
  494. package/{src → source}/workspace/ProjectConfig.ts +0 -0
  495. package/{src → source}/workspace/ProjectCreateOptions.ts +0 -0
  496. package/{src → source}/workspace/ProjectError.ts +0 -0
  497. package/{src → source}/workspace/ProjectOptions.ts +0 -0
  498. package/{src → source}/workspace/ProjectUpdateOptions.ts +0 -0
  499. package/{src → source}/workspace/WorkspaceConfig.ts +0 -0
  500. package/{src → source}/workspace/WorkspaceCreateOptions.ts +0 -0
  501. package/{src → source}/workspace/WorkspaceCreateProjectOptions.ts +0 -0
  502. package/{src → source}/workspace/WorkspaceDependenciesFromWorkspaceOptions.ts +0 -0
  503. package/{src → source}/workspace/WorkspaceDependenciesGetVersionsOptions.ts +0 -0
  504. package/{src → source}/workspace/WorkspaceDependency.ts +0 -0
  505. package/{src → source}/workspace/WorkspaceDependencyProject.ts +0 -0
  506. package/{src → source}/workspace/WorkspaceError.ts +0 -0
  507. package/{src → source}/workspace/WorkspaceFindAndReadOptions.ts +0 -0
  508. package/{src → source}/workspace/WorkspaceOptionsProject.ts +0 -0
  509. package/{src → source}/workspace/WorkspacePackageJson.ts +0 -0
  510. package/{src → source}/workspace/WorkspaceProjectGlobs.ts +0 -0
  511. package/{src → source}/workspace/WorkspaceProjects.ts +0 -0
  512. package/{src → source}/workspace/WorkspaceRepository.ts +0 -0
  513. package/{src → source}/workspace/WorkspaceUpdateOptions.ts +0 -0
  514. package/{src → source}/workspace/internals/compareProjectPath.ts +0 -0
  515. package/{src → source}/workspace/internals/compareWorkspaceDependencyProjectName.ts +0 -0
  516. package/{src → source}/workspace/internals/containsProject.ts +0 -0
  517. package/{src → source}/workspace/internals/containsWorkspace.ts +0 -0
  518. package/{src → source}/workspace/internals/getRepositoryBranches.ts +0 -0
  519. package/{src → source}/workspace/internals/getRepositoryUrl.ts +0 -0
  520. package/{src → source}/workspace/internals.ts +0 -0
  521. package/{src → source}/workspace/saveProjectConfig.ts +1 -1
  522. package/{src → source}/workspace/saveWorkspaceConfig.ts +1 -1
  523. /package/{src → source}/workspace.ts +0 -0
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ export * from "./template/applyTemplateRenders.js";
3
+ export * from "./template/CarsonTemplate.js";
4
+ export * from "./template/CarsonTemplateConfig.js";
5
+ export * from "./template/CarsonTemplateError.js";
6
+ export * from "./template/renderCarsonTemplate.js";
7
+ export * from "./template/TemplateAttributes.js";
8
+ export * from "./template/TemplateData.js";
9
+ export * from "./template/TemplateRender.js";
10
+ export * from "./template/TemplateRenders.js";
11
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../source/template.ts"],
4
+ "sourcesContent": ["export * from './template/applyTemplateRenders.js';\nexport * from './template/CarsonTemplate.js';\nexport * from './template/CarsonTemplateConfig.js';\nexport * from './template/CarsonTemplateError.js';\nexport * from './template/renderCarsonTemplate.js';\nexport * from './template/TemplateAttributes.js';\nexport * from './template/TemplateData.js';\nexport * from './template/TemplateRender.js';\nexport * from './template/TemplateRenders.js';\n"],
5
+ "mappings": ";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ import { ensureEmptyDirectory, pathToPosixPath } from "@jakubmazanec/fs-utils";
3
+ import { packageJsonSchema, readFile } from "@jakubmazanec/zod-utils";
4
+ import fs from "fs-extra";
5
+ import json5 from "json5";
6
+ import path from "node:path";
7
+ import { z } from "zod";
8
+ import {
9
+ CARSON_CONFIG_DIRECTORY,
10
+ PROJECT_CONFIG_FILENAME,
11
+ PROJECT_SNAPSHOT_FILENAME
12
+ } from "../constants.js";
13
+ import { applyTemplateRenders } from "../template/applyTemplateRenders.js";
14
+ import { renderCarsonTemplate } from "../template/renderCarsonTemplate.js";
15
+ import { projectConfigSchema } from "./ProjectConfig.js";
16
+ import { ProjectError } from "./ProjectError.js";
17
+ import { saveProjectConfig } from "./saveProjectConfig.js";
18
+ export class Project {
19
+ /** Project name. */
20
+ name;
21
+ /** Project path. */
22
+ path;
23
+ /** Project path relative to workspace path. */
24
+ relativePath;
25
+ /** Project configuration; if it's not found, the default is an empty object. */
26
+ config;
27
+ /** Parsed project `package.json` file; if it's not found, the default is an empty object. */
28
+ packageJson;
29
+ /** Parent {@link Workspace} instance. */
30
+ workspace;
31
+ /** Errors found during reading from the file system. */
32
+ errors = [];
33
+ constructor({
34
+ path: projectPath,
35
+ name,
36
+ config,
37
+ packageJson,
38
+ workspace,
39
+ errors
40
+ }) {
41
+ this.path = projectPath;
42
+ if (name) {
43
+ this.name = name;
44
+ }
45
+ if (config) {
46
+ this.config = config;
47
+ } else {
48
+ this.config = {};
49
+ }
50
+ if (packageJson) {
51
+ this.packageJson = packageJson;
52
+ } else {
53
+ this.packageJson = {};
54
+ }
55
+ this.workspace = workspace;
56
+ if (errors) {
57
+ this.errors = errors;
58
+ }
59
+ if (this.packageJson.name?.length) {
60
+ this.name = this.packageJson.name;
61
+ }
62
+ this.relativePath = pathToPosixPath(path.relative(this.workspace.path, this.path));
63
+ }
64
+ static async create({
65
+ templateId,
66
+ workspace,
67
+ projectPath,
68
+ projectName,
69
+ args
70
+ }) {
71
+ let project = new this({
72
+ path: projectPath,
73
+ name: projectName,
74
+ config: {
75
+ template: templateId
76
+ },
77
+ workspace
78
+ });
79
+ if (workspace.isMultiProject) {
80
+ try {
81
+ await ensureEmptyDirectory(project.path);
82
+ } catch {
83
+ throw new ProjectError("PROJECT_PATH_NOT_EMPTY", {
84
+ messageParameters: [project.path],
85
+ data: {
86
+ path: project.path
87
+ }
88
+ });
89
+ }
90
+ }
91
+ let templateRenders = await renderCarsonTemplate({
92
+ templateId,
93
+ templateData: {
94
+ workspace,
95
+ project,
96
+ args
97
+ }
98
+ });
99
+ await applyTemplateRenders({
100
+ templateRenders,
101
+ targetPath: project.path,
102
+ snapshotPath: path.join(project.path, CARSON_CONFIG_DIRECTORY, PROJECT_SNAPSHOT_FILENAME),
103
+ ignoreStrategies: ["check"]
104
+ });
105
+ await saveProjectConfig({ projectPath: project.path, projectConfig: { template: templateId } });
106
+ await project.read();
107
+ return project;
108
+ }
109
+ static async read(projectPath, workspace) {
110
+ let project = new this({
111
+ path: projectPath,
112
+ workspace
113
+ });
114
+ await project.read();
115
+ return project;
116
+ }
117
+ async read() {
118
+ if (!await fs.pathExists(this.path)) {
119
+ throw new ProjectError("NO_SUCH_PROJECT_PATH", {
120
+ messageParameters: [this.path],
121
+ data: {
122
+ path: this.path
123
+ }
124
+ });
125
+ }
126
+ let errors = [];
127
+ let projectConfigPath = path.join(this.path, CARSON_CONFIG_DIRECTORY, PROJECT_CONFIG_FILENAME);
128
+ let doesProjectConfigExist = await fs.pathExists(projectConfigPath);
129
+ let projectConfig;
130
+ if (doesProjectConfigExist) {
131
+ projectConfig = await readFile(projectConfigPath, projectConfigSchema, {
132
+ parser: (rawString) => json5.parse(rawString)
133
+ });
134
+ } else {
135
+ projectConfig = {};
136
+ }
137
+ if (projectConfig instanceof z.ZodError) {
138
+ let zodError = projectConfig;
139
+ errors.push(
140
+ new ProjectError("INVALID_PROJECT_CONFIG", {
141
+ messageParameters: [projectConfigPath],
142
+ data: {
143
+ path: projectConfigPath,
144
+ zodIssues: zodError.issues
145
+ }
146
+ })
147
+ );
148
+ projectConfig = {};
149
+ }
150
+ let packageJsonPath = path.join(this.path, "package.json");
151
+ let doesPackageJsonExist = await fs.pathExists(packageJsonPath);
152
+ let packageJson;
153
+ if (doesPackageJsonExist) {
154
+ packageJson = await readFile(packageJsonPath, packageJsonSchema, {
155
+ parser: (rawString) => json5.parse(rawString)
156
+ });
157
+ } else {
158
+ packageJson = {};
159
+ }
160
+ if (packageJson instanceof z.ZodError) {
161
+ let zodError = packageJson;
162
+ errors.push(
163
+ new ProjectError("INVALID_PACKAGE_JSON", {
164
+ messageParameters: [packageJsonPath],
165
+ data: {
166
+ path: packageJsonPath,
167
+ zodIssues: zodError.issues
168
+ }
169
+ })
170
+ );
171
+ packageJson = {};
172
+ }
173
+ if (packageJson.name?.length) {
174
+ this.name = packageJson.name;
175
+ }
176
+ this.config = projectConfig;
177
+ this.packageJson = packageJson;
178
+ this.errors = errors;
179
+ return this;
180
+ }
181
+ async update({ args }) {
182
+ if (!this.config.template) {
183
+ throw new ProjectError("MISSING_CARSON_TEMPLATE_ID", {
184
+ messageParameters: [path.join(this.path, CARSON_CONFIG_DIRECTORY, PROJECT_CONFIG_FILENAME)]
185
+ });
186
+ }
187
+ let templateRenders = await renderCarsonTemplate({
188
+ templateId: this.config.template,
189
+ templateData: {
190
+ workspace: this.workspace,
191
+ project: this,
192
+ args
193
+ }
194
+ });
195
+ await applyTemplateRenders({
196
+ templateRenders,
197
+ targetPath: this.path,
198
+ snapshotPath: path.join(this.path, CARSON_CONFIG_DIRECTORY, PROJECT_SNAPSHOT_FILENAME),
199
+ ignoreStrategies: ["create"]
200
+ });
201
+ await this.read();
202
+ return this;
203
+ }
204
+ }
205
+ //# sourceMappingURL=Project.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/workspace/Project.ts"],
4
+ "sourcesContent": ["import {ensureEmptyDirectory, pathToPosixPath} from '@jakubmazanec/fs-utils';\nimport {type PackageJson, packageJsonSchema, readFile} from '@jakubmazanec/zod-utils';\nimport fs from 'fs-extra';\nimport json5 from 'json5';\nimport path from 'node:path';\nimport {z} from 'zod';\n\nimport {\n CARSON_CONFIG_DIRECTORY,\n PROJECT_CONFIG_FILENAME,\n PROJECT_SNAPSHOT_FILENAME,\n} from '../constants.js';\nimport {applyTemplateRenders} from '../template/applyTemplateRenders.js';\nimport {renderCarsonTemplate} from '../template/renderCarsonTemplate.js';\nimport {type ProjectConfig, projectConfigSchema} from './ProjectConfig.js';\nimport {type ProjectCreateOptions} from './ProjectCreateOptions.js';\nimport {ProjectError} from './ProjectError.js';\nimport {type ProjectOptions} from './ProjectOptions.js';\nimport {type ProjectUpdateOptions} from './ProjectUpdateOptions.js';\nimport {saveProjectConfig} from './saveProjectConfig.js';\nimport {type Workspace} from './Workspace.js';\n\n/**\n * Project represent a self-contained piece of software (e.g. a package, or an app) that is part of a {@link Workspace}. Currently only Node.js projects are supported.\n *\n * @typeParam M If true, the project belongs to a multi-project workspace.\n */\nexport class Project<M extends boolean = true> {\n /** Project name. */\n name?: string;\n\n /** Project path. */\n path: string;\n\n /** Project path relative to workspace path. */\n relativePath: string;\n\n /** Project configuration; if it's not found, the default is an empty object. */\n config: ProjectConfig;\n\n /** Parsed project `package.json` file; if it's not found, the default is an empty object. */\n packageJson: PackageJson;\n\n /** Parent {@link Workspace} instance. */\n workspace: Workspace<M>;\n\n /** Errors found during reading from the file system. */\n errors: Array<InstanceType<typeof ProjectError>> = [];\n\n constructor({\n path: projectPath,\n name,\n config,\n packageJson,\n workspace,\n errors,\n }: ProjectOptions<M>) {\n // TODO: check that this path and workspace path are correct, i.e. project path must always be inside of workspace path\n this.path = projectPath;\n\n if (name) {\n this.name = name;\n }\n\n if (config) {\n this.config = config;\n } else {\n this.config = {};\n }\n\n if (packageJson) {\n this.packageJson = packageJson;\n } else {\n this.packageJson = {};\n }\n\n this.workspace = workspace;\n\n if (errors) {\n this.errors = errors;\n }\n\n if (this.packageJson.name?.length) {\n this.name = this.packageJson.name;\n }\n\n this.relativePath = pathToPosixPath(path.relative(this.workspace.path, this.path));\n }\n\n static async create<M extends boolean>({\n templateId,\n workspace,\n projectPath,\n projectName,\n args,\n }: ProjectCreateOptions<M>): Promise<Project<M>> {\n let project = new this({\n path: projectPath,\n name: projectName,\n config: {\n template: templateId,\n },\n workspace,\n });\n\n // if the workspace is single-project, it shares a directory with the project, so we can't insist on it being an empty directory\n if (workspace.isMultiProject) {\n try {\n await ensureEmptyDirectory(project.path);\n } catch {\n throw new ProjectError('PROJECT_PATH_NOT_EMPTY', {\n messageParameters: [project.path],\n data: {\n path: project.path,\n },\n });\n }\n }\n\n let templateRenders = await renderCarsonTemplate({\n templateId,\n templateData: {\n workspace,\n project,\n args,\n },\n });\n\n await applyTemplateRenders({\n templateRenders,\n targetPath: project.path,\n snapshotPath: path.join(project.path, CARSON_CONFIG_DIRECTORY, PROJECT_SNAPSHOT_FILENAME),\n ignoreStrategies: ['check'],\n });\n\n await saveProjectConfig({projectPath: project.path, projectConfig: {template: templateId}});\n\n await project.read();\n\n return project;\n }\n\n static async read<M extends boolean>(\n projectPath: string,\n workspace: Workspace<M>,\n ): Promise<Project<M>> {\n let project = new this({\n path: projectPath,\n workspace,\n });\n\n await project.read();\n\n return project;\n }\n\n async read() {\n if (!(await fs.pathExists(this.path))) {\n throw new ProjectError('NO_SUCH_PROJECT_PATH', {\n messageParameters: [this.path],\n data: {\n path: this.path,\n },\n });\n }\n\n let errors: Array<InstanceType<typeof ProjectError>> = [];\n\n // load project config\n let projectConfigPath = path.join(this.path, CARSON_CONFIG_DIRECTORY, PROJECT_CONFIG_FILENAME);\n let doesProjectConfigExist = await fs.pathExists(projectConfigPath);\n let projectConfig: ProjectConfig | z.ZodError;\n\n if (doesProjectConfigExist) {\n projectConfig = await readFile(projectConfigPath, projectConfigSchema, {\n parser: (rawString: string) => json5.parse<unknown>(rawString),\n });\n } else {\n projectConfig = {};\n }\n\n if (projectConfig instanceof z.ZodError) {\n let zodError = projectConfig;\n\n errors.push(\n new ProjectError('INVALID_PROJECT_CONFIG', {\n messageParameters: [projectConfigPath],\n data: {\n path: projectConfigPath,\n zodIssues: zodError.issues,\n },\n }),\n );\n\n projectConfig = {};\n }\n\n // load package.json\n let packageJsonPath = path.join(this.path, 'package.json');\n let doesPackageJsonExist = await fs.pathExists(packageJsonPath);\n let packageJson: PackageJson | z.ZodError;\n\n if (doesPackageJsonExist) {\n packageJson = await readFile(packageJsonPath, packageJsonSchema, {\n parser: (rawString: string) => json5.parse<unknown>(rawString),\n });\n } else {\n packageJson = {};\n }\n\n if (packageJson instanceof z.ZodError) {\n let zodError = packageJson;\n\n errors.push(\n new ProjectError('INVALID_PACKAGE_JSON', {\n messageParameters: [packageJsonPath],\n data: {\n path: packageJsonPath,\n zodIssues: zodError.issues,\n },\n }),\n );\n\n packageJson = {};\n }\n\n if (packageJson.name?.length) {\n this.name = packageJson.name;\n }\n\n this.config = projectConfig;\n this.packageJson = packageJson;\n this.errors = errors;\n\n return this;\n }\n\n async update({args}: ProjectUpdateOptions): Promise<this> {\n if (!this.config.template) {\n throw new ProjectError('MISSING_CARSON_TEMPLATE_ID', {\n messageParameters: [path.join(this.path, CARSON_CONFIG_DIRECTORY, PROJECT_CONFIG_FILENAME)],\n });\n }\n\n let templateRenders = await renderCarsonTemplate({\n templateId: this.config.template,\n templateData: {\n workspace: this.workspace,\n project: this,\n args,\n },\n });\n\n await applyTemplateRenders({\n templateRenders,\n targetPath: this.path,\n snapshotPath: path.join(this.path, CARSON_CONFIG_DIRECTORY, PROJECT_SNAPSHOT_FILENAME),\n ignoreStrategies: ['create'],\n });\n\n await this.read();\n\n return this;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ import { z } from "zod";
3
+ export const projectConfigSchema = z.object({
4
+ template: z.string().optional()
5
+ }).catchall(z.unknown());
6
+ //# sourceMappingURL=ProjectConfig.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/workspace/ProjectConfig.ts"],
4
+ "sourcesContent": ["import {z} from 'zod';\n\nexport const projectConfigSchema = z\n .object({\n template: z.string().optional(),\n })\n .catchall(z.unknown());\n\n/**\n * A project configuration.\n */\nexport type ProjectConfig = z.infer<typeof projectConfigSchema>;\n"],
5
+ "mappings": ";AAAA,SAAQ,SAAQ;AAET,aAAM,sBAAsB,EAChC,OAAO;AAAA,EACN,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC,EACA,SAAS,EAAE,QAAQ,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=ProjectCreateOptions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -5,7 +5,7 @@ import { type ZodIssue } from 'zod';
5
5
  export declare const ProjectError: new (code: "INVALID_PACKAGE_JSON" | "INVALID_PROJECT_CONFIG" | "NO_SUCH_PROJECT_PATH" | "PROJECT_PATH_NOT_EMPTY" | "MISSING_CARSON_TEMPLATE_ID", options?: import("@jakubmazanec/error").CustomErrorWithDataOptions<{
6
6
  path?: string;
7
7
  zodIssues?: ZodIssue[];
8
- }> | undefined) => import("@jakubmazanec/error").CustomErrorWithData<"UNKNOWN_ERROR" | "INVALID_PACKAGE_JSON" | "INVALID_PROJECT_CONFIG" | "NO_SUCH_PROJECT_PATH" | "PROJECT_PATH_NOT_EMPTY" | "MISSING_CARSON_TEMPLATE_ID", {
8
+ }> | undefined) => import("@jakubmazanec/error").CustomErrorWithData<"INVALID_PACKAGE_JSON" | "INVALID_PROJECT_CONFIG" | "NO_SUCH_PROJECT_PATH" | "PROJECT_PATH_NOT_EMPTY" | "MISSING_CARSON_TEMPLATE_ID" | "UNKNOWN_ERROR", {
9
9
  path?: string;
10
10
  zodIssues?: ZodIssue[];
11
11
  }>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ import { createCustomErrorWithData } from "@jakubmazanec/error";
3
+ export const ProjectError = createCustomErrorWithData(
4
+ "ProjectError",
5
+ {
6
+ INVALID_PACKAGE_JSON: 'Invalid package.json file "{0}".',
7
+ INVALID_PROJECT_CONFIG: 'Invalid project config file "{0}".',
8
+ NO_SUCH_PROJECT_PATH: `Project path "{0}" doesn't exist.`,
9
+ PROJECT_PATH_NOT_EMPTY: 'Project path "{0}" must be an empty directory.',
10
+ MISSING_CARSON_TEMPLATE_ID: 'Project config "{0}" is missing the Carson template ID.'
11
+ },
12
+ class ProjectErrorData {
13
+ path;
14
+ zodIssues;
15
+ }
16
+ );
17
+ //# sourceMappingURL=ProjectError.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/workspace/ProjectError.ts"],
4
+ "sourcesContent": ["import {createCustomErrorWithData} from '@jakubmazanec/error';\nimport {type ZodIssue} from 'zod';\n\n/**\n * A subclass of `Error` that indicates a project failure.\n */\nexport const ProjectError = createCustomErrorWithData(\n 'ProjectError',\n {\n INVALID_PACKAGE_JSON: 'Invalid package.json file \"{0}\".',\n INVALID_PROJECT_CONFIG: 'Invalid project config file \"{0}\".',\n NO_SUCH_PROJECT_PATH: 'Project path \"{0}\" doesn\\'t exist.',\n PROJECT_PATH_NOT_EMPTY: 'Project path \"{0}\" must be an empty directory.',\n MISSING_CARSON_TEMPLATE_ID: 'Project config \"{0}\" is missing the Carson template ID.',\n },\n class ProjectErrorData {\n path?: string;\n zodIssues?: ZodIssue[];\n },\n);\n"],
5
+ "mappings": ";AAAA,SAAQ,iCAAgC;AAMjC,aAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,sBAAsB;AAAA,IACtB,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,IACtB,wBAAwB;AAAA,IACxB,4BAA4B;AAAA,EAC9B;AAAA,EACA,MAAM,iBAAiB;AAAA,IACrB;AAAA,IACA;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=ProjectOptions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=ProjectUpdateOptions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -5,9 +5,9 @@ import { type WorkspaceCreateProjectOptions } from './WorkspaceCreateProjectOpti
5
5
  import { WorkspaceDependencies } from './WorkspaceDependencies.js';
6
6
  import { WorkspaceError } from './WorkspaceError.js';
7
7
  import { type WorkspaceFindAndReadOptions } from './WorkspaceFindAndReadOptions.js';
8
- import type { WorkspaceOptions } from './WorkspaceOptions.js';
8
+ import { type WorkspaceOptions } from './WorkspaceOptions.js';
9
9
  import { type WorkspacePackageJson } from './WorkspacePackageJson.js';
10
- import type { WorkspaceProjectGlobs } from './WorkspaceProjectGlobs.js';
10
+ import { type WorkspaceProjectGlobs } from './WorkspaceProjectGlobs.js';
11
11
  import { type WorkspaceProjects } from './WorkspaceProjects.js';
12
12
  import { type WorkspaceRepository } from './WorkspaceRepository.js';
13
13
  import { type WorkspaceUpdateOptions } from './WorkspaceUpdateOptions.js';