@jakubmazanec/carson 0.3.0-unstable.fe64d91 → 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
package/README.md CHANGED
@@ -33,7 +33,7 @@ npm install @jakubmazanec/carson @jakubmazanec/carson-templates -g
33
33
 
34
34
  #### Prerequisites
35
35
 
36
- - Node.js 16 or later
36
+ - Node.js 20 or later
37
37
 
38
38
  ## Usage
39
39
 
package/bin/carson.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import '../dist/run.js';
3
+ import '../build/run.js';
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { colors, Header, icons, useProgram } from "@jakubmazanec/cli";
4
+ import chalk from "chalk";
5
+ import { Box, Text } from "ink";
6
+ import path from "node:path";
7
+ import { useEffect, useState } from "react";
8
+ import { packageNameToDirectory } from "../internals.js";
9
+ import { CreateProjectInput } from "./CreateProjectInput.js";
10
+ import { runCreateProject } from "./runCreateProject.js";
11
+ const ONLY_ONE_STAR_REGEXP = /^(?!(.*?\*){2,}|.*? |\*$).*?\*.*$/;
12
+ export function CreateProject({ args, workspace }) {
13
+ let [status, setStatus] = useState("not-started");
14
+ let [subscription, setSubscription] = useState(null);
15
+ let [jobs, setJobs] = useState([]);
16
+ let [createProjectInputResult, setCreateProjectInputResult] = useState(
17
+ () => ({
18
+ projectName: { value: args.options.name ?? "", isComplete: !!args.options.name },
19
+ projectPath: { value: "", isComplete: false },
20
+ templateId: { value: args.options.template ?? "", isComplete: !!args.options.template }
21
+ })
22
+ );
23
+ let { exit } = useProgram();
24
+ useEffect(() => {
25
+ if (Object.entries(createProjectInputResult).every(([, result]) => result.isComplete)) {
26
+ setStatus("in-progress");
27
+ }
28
+ }, [createProjectInputResult]);
29
+ useEffect(() => {
30
+ if (status === "in-progress" && !subscription) {
31
+ let newSubscription = runCreateProject({
32
+ projectPath: createProjectInputResult.projectPath.value,
33
+ templateId: createProjectInputResult.templateId.value,
34
+ projectName: createProjectInputResult.projectName.value,
35
+ workspace,
36
+ args
37
+ }).subscribe({
38
+ next(value) {
39
+ setJobs((previousJobs) => [...previousJobs, value]);
40
+ },
41
+ error(error) {
42
+ exit(error);
43
+ },
44
+ complete() {
45
+ newSubscription.unsubscribe();
46
+ setStatus("finished");
47
+ }
48
+ });
49
+ setSubscription(newSubscription);
50
+ }
51
+ return () => {
52
+ if (subscription) {
53
+ subscription.unsubscribe();
54
+ }
55
+ };
56
+ }, [args, createProjectInputResult, exit, status, subscription, workspace]);
57
+ let possiblePaths = [];
58
+ if (createProjectInputResult.projectName.value) {
59
+ let destinationDirectory = packageNameToDirectory(createProjectInputResult.projectName.value);
60
+ if (workspace.projectGlobs) {
61
+ possiblePaths = workspace.projectGlobs.filter((projectGlob) => ONLY_ONE_STAR_REGEXP.test(projectGlob)).map((projectGlob) => projectGlob.replace(/\*/, destinationDirectory)).map((projectGlob) => path.join(workspace.path, projectGlob)).map((projectPath) => ({
62
+ value: projectPath,
63
+ label: path.relative(workspace.path, projectPath).replace("\\", "/")
64
+ }));
65
+ } else {
66
+ possiblePaths = [
67
+ {
68
+ value: workspace.path,
69
+ label: workspace.path
70
+ }
71
+ ];
72
+ }
73
+ }
74
+ return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
75
+ /* @__PURE__ */ jsx(Text, { color: colors.body, children: `Creating project in the workspace at ${chalk[colors.info](workspace.path)}.` }),
76
+ /* @__PURE__ */ jsx(
77
+ CreateProjectInput,
78
+ {
79
+ rows: {
80
+ projectPath: {
81
+ choices: possiblePaths
82
+ }
83
+ },
84
+ values: createProjectInputResult,
85
+ marginTop: 1,
86
+ onChange: setCreateProjectInputResult,
87
+ onComplete: setCreateProjectInputResult
88
+ }
89
+ ),
90
+ status === "in-progress" || status === "finished" ? /* @__PURE__ */ jsxs(Box, { marginTop: 1, flexDirection: "column", children: [
91
+ /* @__PURE__ */ jsx(Header, { showSpinner: status === "in-progress", icon: icons.success, marginBottom: 1, children: /* @__PURE__ */ jsx(Text, { children: "Creating project..." }) }),
92
+ jobs.map((job) => /* @__PURE__ */ jsx(Text, { children: `${icons.info} ${job}` }, job))
93
+ ] }) : null,
94
+ status === "finished" ? /* @__PURE__ */ jsx(Header, { marginTop: 1, icon: icons.success, children: /* @__PURE__ */ jsx(Text, { children: "Done." }) }) : null
95
+ ] });
96
+ }
97
+ //# sourceMappingURL=CreateProject.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../source/commands/create-project/CreateProject.tsx"],
4
+ "sourcesContent": ["import {colors, type CommandArguments, Header, icons, useProgram} from '@jakubmazanec/cli';\nimport chalk from 'chalk';\nimport {Box, Text} from 'ink';\nimport path from 'node:path';\nimport {useEffect, useState} from 'react';\n\nimport {type Workspace} from '../../workspace.js';\nimport {type CommandStatus, packageNameToDirectory} from '../internals.js';\nimport {type createProjectCommand} from './createProjectCommand.js';\nimport {CreateProjectInput, type CreateProjectInputResult} from './CreateProjectInput.js';\nimport {runCreateProject} from './runCreateProject.js';\n\nconst ONLY_ONE_STAR_REGEXP = /^(?!(.*?\\*){2,}|.*? |\\*$).*?\\*.*$/;\n\nexport type CreateProjectProps = {\n args: CommandArguments<typeof createProjectCommand>;\n workspace: Workspace | Workspace<false>;\n};\n\nexport function CreateProject({args, workspace}: CreateProjectProps) {\n let [status, setStatus] = useState<CommandStatus>('not-started');\n let [subscription, setSubscription] = useState<ZenObservable.Subscription | null>(null);\n let [jobs, setJobs] = useState<string[]>([]);\n let [createProjectInputResult, setCreateProjectInputResult] = useState<CreateProjectInputResult>(\n () => ({\n projectName: {value: args.options.name ?? '', isComplete: !!args.options.name},\n projectPath: {value: '', isComplete: false},\n templateId: {value: args.options.template ?? '', isComplete: !!args.options.template},\n }),\n );\n let {exit} = useProgram();\n\n useEffect(() => {\n if (Object.entries(createProjectInputResult).every(([, result]) => result.isComplete)) {\n setStatus('in-progress');\n }\n }, [createProjectInputResult]);\n\n useEffect(() => {\n if (status === 'in-progress' && !subscription) {\n let newSubscription = runCreateProject({\n projectPath: createProjectInputResult.projectPath.value,\n templateId: createProjectInputResult.templateId.value,\n projectName: createProjectInputResult.projectName.value,\n workspace,\n args,\n }).subscribe({\n next(value) {\n setJobs((previousJobs) => [...previousJobs, value]);\n },\n error(error) {\n exit(error);\n },\n complete() {\n newSubscription.unsubscribe();\n setStatus('finished');\n },\n });\n setSubscription(newSubscription);\n }\n\n return () => {\n if (subscription) {\n subscription.unsubscribe();\n }\n };\n }, [args, createProjectInputResult, exit, status, subscription, workspace]);\n\n let possiblePaths: Array<{value: string; label: string}> = [];\n\n if (createProjectInputResult.projectName.value) {\n let destinationDirectory = packageNameToDirectory(createProjectInputResult.projectName.value);\n\n if (workspace.projectGlobs) {\n possiblePaths = workspace.projectGlobs\n .filter((projectGlob) => ONLY_ONE_STAR_REGEXP.test(projectGlob))\n .map((projectGlob) => projectGlob.replace(/\\*/, destinationDirectory))\n .map((projectGlob) => path.join(workspace.path, projectGlob))\n .map((projectPath) => ({\n value: projectPath,\n label: path.relative(workspace.path, projectPath).replace('\\\\', '/'),\n }));\n } else {\n possiblePaths = [\n {\n value: workspace.path,\n label: workspace.path,\n },\n ];\n }\n }\n\n return (\n <Box flexDirection=\"column\">\n <Text color={colors.body}>\n {`Creating project in the workspace at ${chalk[colors.info](workspace.path)}.`}\n </Text>\n\n <CreateProjectInput\n rows={{\n projectPath: {\n choices: possiblePaths,\n },\n }}\n values={createProjectInputResult}\n marginTop={1}\n onChange={setCreateProjectInputResult}\n onComplete={setCreateProjectInputResult}\n />\n\n {status === 'in-progress' || status === 'finished' ?\n <Box marginTop={1} flexDirection=\"column\">\n <Header showSpinner={status === 'in-progress'} icon={icons.success} marginBottom={1}>\n <Text>Creating project...</Text>\n </Header>\n\n {jobs.map((job) => (\n <Text key={job}>{`${icons.info} ${job}`}</Text>\n ))}\n </Box>\n : null}\n\n {status === 'finished' ?\n <Header marginTop={1} icon={icons.success}>\n <Text>Done.</Text>\n </Header>\n : null}\n </Box>\n );\n}\n"],
5
+ "mappings": ";AA8FM,cAiBE,YAjBF;AA9FN,SAAQ,QAA+B,QAAQ,OAAO,kBAAiB;AACvE,OAAO,WAAW;AAClB,SAAQ,KAAK,YAAW;AACxB,OAAO,UAAU;AACjB,SAAQ,WAAW,gBAAe;AAGlC,SAA4B,8BAA6B;AAEzD,SAAQ,0BAAwD;AAChE,SAAQ,wBAAuB;AAE/B,MAAM,uBAAuB;AAOtB,gBAAS,cAAc,EAAC,MAAM,UAAS,GAAuB;AACnE,MAAI,CAAC,QAAQ,SAAS,IAAI,SAAwB,aAAa;AAC/D,MAAI,CAAC,cAAc,eAAe,IAAI,SAA4C,IAAI;AACtF,MAAI,CAAC,MAAM,OAAO,IAAI,SAAmB,CAAC,CAAC;AAC3C,MAAI,CAAC,0BAA0B,2BAA2B,IAAI;AAAA,IAC5D,OAAO;AAAA,MACL,aAAa,EAAC,OAAO,KAAK,QAAQ,QAAQ,IAAI,YAAY,CAAC,CAAC,KAAK,QAAQ,KAAI;AAAA,MAC7E,aAAa,EAAC,OAAO,IAAI,YAAY,MAAK;AAAA,MAC1C,YAAY,EAAC,OAAO,KAAK,QAAQ,YAAY,IAAI,YAAY,CAAC,CAAC,KAAK,QAAQ,SAAQ;AAAA,IACtF;AAAA,EACF;AACA,MAAI,EAAC,KAAI,IAAI,WAAW;AAExB,YAAU,MAAM;AACd,QAAI,OAAO,QAAQ,wBAAwB,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,MAAM,OAAO,UAAU,GAAG;AACrF,gBAAU,aAAa;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,wBAAwB,CAAC;AAE7B,YAAU,MAAM;AACd,QAAI,WAAW,iBAAiB,CAAC,cAAc;AAC7C,UAAI,kBAAkB,iBAAiB;AAAA,QACrC,aAAa,yBAAyB,YAAY;AAAA,QAClD,YAAY,yBAAyB,WAAW;AAAA,QAChD,aAAa,yBAAyB,YAAY;AAAA,QAClD;AAAA,QACA;AAAA,MACF,CAAC,EAAE,UAAU;AAAA,QACX,KAAK,OAAO;AACV,kBAAQ,CAAC,iBAAiB,CAAC,GAAG,cAAc,KAAK,CAAC;AAAA,QACpD;AAAA,QACA,MAAM,OAAO;AACX,eAAK,KAAK;AAAA,QACZ;AAAA,QACA,WAAW;AACT,0BAAgB,YAAY;AAC5B,oBAAU,UAAU;AAAA,QACtB;AAAA,MACF,CAAC;AACD,sBAAgB,eAAe;AAAA,IACjC;AAEA,WAAO,MAAM;AACX,UAAI,cAAc;AAChB,qBAAa,YAAY;AAAA,MAC3B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,MAAM,0BAA0B,MAAM,QAAQ,cAAc,SAAS,CAAC;AAE1E,MAAI,gBAAuD,CAAC;AAE5D,MAAI,yBAAyB,YAAY,OAAO;AAC9C,QAAI,uBAAuB,uBAAuB,yBAAyB,YAAY,KAAK;AAE5F,QAAI,UAAU,cAAc;AAC1B,sBAAgB,UAAU,aACvB,OAAO,CAAC,gBAAgB,qBAAqB,KAAK,WAAW,CAAC,EAC9D,IAAI,CAAC,gBAAgB,YAAY,QAAQ,MAAM,oBAAoB,CAAC,EACpE,IAAI,CAAC,gBAAgB,KAAK,KAAK,UAAU,MAAM,WAAW,CAAC,EAC3D,IAAI,CAAC,iBAAiB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO,KAAK,SAAS,UAAU,MAAM,WAAW,EAAE,QAAQ,MAAM,GAAG;AAAA,MACrE,EAAE;AAAA,IACN,OAAO;AACL,sBAAgB;AAAA,QACd;AAAA,UACE,OAAO,UAAU;AAAA,UACjB,OAAO,UAAU;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SACE,qBAAC,OAAI,eAAc,UACjB;AAAA,wBAAC,QAAK,OAAO,OAAO,MACjB,kDAAwC,MAAM,OAAO,IAAI,EAAE,UAAU,IAAI,CAAC,KAC7E;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,UACJ,aAAa;AAAA,YACX,SAAS;AAAA,UACX;AAAA,QACF;AAAA,QACA,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,UAAU;AAAA,QACV,YAAY;AAAA;AAAA,IACd;AAAA,IAEC,WAAW,iBAAiB,WAAW,aACtC,qBAAC,OAAI,WAAW,GAAG,eAAc,UAC/B;AAAA,0BAAC,UAAO,aAAa,WAAW,eAAe,MAAM,MAAM,SAAS,cAAc,GAChF,8BAAC,QAAK,iCAAmB,GAC3B;AAAA,MAEC,KAAK,IAAI,CAAC,QACT,oBAAC,QAAgB,aAAG,MAAM,IAAI,IAAI,GAAG,MAA1B,GAA6B,CACzC;AAAA,OACH,IACA;AAAA,IAED,WAAW,aACV,oBAAC,UAAO,WAAW,GAAG,MAAM,MAAM,SAChC,8BAAC,QAAK,mBAAK,GACb,IACA;AAAA,KACJ;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ import { createForm } from "@jakubmazanec/cli";
3
+ const TEMPLATE_ID_REGEXP = /^.+:.+$/;
4
+ const PROJECT_NAME_ID_REGEXP = /^[\d./@a-z-]+$/;
5
+ export const CreateProjectInput = createForm({
6
+ rows: {
7
+ templateId: {
8
+ type: "text",
9
+ label: "What template do you want to use?",
10
+ validate: (value) => {
11
+ if (!TEMPLATE_ID_REGEXP.test(value)) {
12
+ throw new Error(
13
+ "Template ID must consist of a module ID and a template name separated by a colon."
14
+ );
15
+ }
16
+ }
17
+ },
18
+ projectName: {
19
+ type: "text",
20
+ label: "What is the project name?",
21
+ validate: (value) => {
22
+ if (!PROJECT_NAME_ID_REGEXP.test(value)) {
23
+ throw new Error(
24
+ "Project name can contain only lowercase letters, numbers, hyphen, @, dot or /."
25
+ );
26
+ }
27
+ }
28
+ },
29
+ projectPath: {
30
+ type: "select",
31
+ label: "What is the project location?"
32
+ }
33
+ }
34
+ });
35
+ //# sourceMappingURL=CreateProjectInput.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../source/commands/create-project/CreateProjectInput.ts"],
4
+ "sourcesContent": ["import {createForm, type FormResult} from '@jakubmazanec/cli';\n\nconst TEMPLATE_ID_REGEXP = /^.+:.+$/;\nconst PROJECT_NAME_ID_REGEXP = /^[\\d./@a-z-]+$/;\n\nexport const CreateProjectInput = createForm({\n rows: {\n templateId: {\n type: 'text',\n label: 'What template do you want to use?',\n validate: (value: string) => {\n if (!TEMPLATE_ID_REGEXP.test(value)) {\n throw new Error(\n 'Template ID must consist of a module ID and a template name separated by a colon.',\n );\n }\n },\n },\n projectName: {\n type: 'text',\n label: 'What is the project name?',\n validate: (value: string) => {\n if (!PROJECT_NAME_ID_REGEXP.test(value)) {\n throw new Error(\n 'Project name can contain only lowercase letters, numbers, hyphen, @, dot or /.',\n );\n }\n },\n },\n projectPath: {\n type: 'select',\n label: 'What is the project location?',\n },\n },\n});\n\nexport type CreateProjectInputResult = FormResult<typeof CreateProjectInput>;\n"],
5
+ "mappings": ";AAAA,SAAQ,kBAAkC;AAE1C,MAAM,qBAAqB;AAC3B,MAAM,yBAAyB;AAExB,aAAM,qBAAqB,WAAW;AAAA,EAC3C,MAAM;AAAA,IACJ,YAAY;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,CAAC,UAAkB;AAC3B,YAAI,CAAC,mBAAmB,KAAK,KAAK,GAAG;AACnC,gBAAM,IAAI;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,CAAC,UAAkB;AAC3B,YAAI,CAAC,uBAAuB,KAAK,KAAK,GAAG;AACvC,gBAAM,IAAI;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;",
6
+ "names": []
7
+ }
@@ -1,12 +1,12 @@
1
1
  import { Command } from '@jakubmazanec/cli';
2
2
  export declare const createProjectCommand: Command<"create project", undefined, {
3
- path: {
4
- type: "string";
3
+ readonly path: {
4
+ readonly type: "string";
5
5
  };
6
- template: {
7
- type: "string";
6
+ readonly template: {
7
+ readonly type: "string";
8
8
  };
9
- name: {
10
- type: "string";
9
+ readonly name: {
10
+ readonly type: "string";
11
11
  };
12
12
  }, false, false>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Command } from "@jakubmazanec/cli";
4
+ import path from "node:path";
5
+ import { Workspace } from "../../workspace.js";
6
+ import { CreateProject } from "./CreateProject.js";
7
+ export const createProjectCommand = new Command(
8
+ "create project",
9
+ async (args, program) => {
10
+ let targetPath = path.resolve(process.cwd(), args.options.path ?? "");
11
+ let workspace = await Workspace.findAndRead(targetPath, { throwIfNotFound: true });
12
+ if (workspace.errors[0]) {
13
+ throw workspace.errors[0];
14
+ }
15
+ for (let project of workspace.projects) {
16
+ if (project.errors[0]) {
17
+ throw project.errors[0];
18
+ }
19
+ }
20
+ await program.renderElement(/* @__PURE__ */ jsx(CreateProject, { args, workspace }));
21
+ },
22
+ {
23
+ description: "Creates a new project in an existing workspace.",
24
+ options: {
25
+ path: {
26
+ type: "string"
27
+ },
28
+ template: {
29
+ type: "string"
30
+ },
31
+ name: {
32
+ type: "string"
33
+ }
34
+ }
35
+ }
36
+ );
37
+ //# sourceMappingURL=createProjectCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../source/commands/create-project/createProjectCommand.tsx"],
4
+ "sourcesContent": ["import {Command} from '@jakubmazanec/cli';\nimport path from 'node:path';\n\nimport {Workspace} from '../../workspace.js';\nimport {CreateProject} from './CreateProject.js';\n\nexport const createProjectCommand = new Command(\n 'create project',\n async (args, program) => {\n let targetPath = path.resolve(process.cwd(), args.options.path ?? '');\n let workspace = await Workspace.findAndRead(targetPath, {throwIfNotFound: true});\n\n if (workspace.errors[0]) {\n throw workspace.errors[0];\n }\n\n for (let project of workspace.projects) {\n if (project.errors[0]) {\n throw project.errors[0];\n }\n }\n\n await program.renderElement(<CreateProject args={args} workspace={workspace} />);\n },\n {\n description: 'Creates a new project in an existing workspace.',\n options: {\n path: {\n type: 'string',\n },\n template: {\n type: 'string',\n },\n name: {\n type: 'string',\n },\n },\n },\n);\n"],
5
+ "mappings": ";AAsBgC;AAtBhC,SAAQ,eAAc;AACtB,OAAO,UAAU;AAEjB,SAAQ,iBAAgB;AACxB,SAAQ,qBAAoB;AAErB,aAAM,uBAAuB,IAAI;AAAA,EACtC;AAAA,EACA,OAAO,MAAM,YAAY;AACvB,QAAI,aAAa,KAAK,QAAQ,QAAQ,IAAI,GAAG,KAAK,QAAQ,QAAQ,EAAE;AACpE,QAAI,YAAY,MAAM,UAAU,YAAY,YAAY,EAAC,iBAAiB,KAAI,CAAC;AAE/E,QAAI,UAAU,OAAO,CAAC,GAAG;AACvB,YAAM,UAAU,OAAO,CAAC;AAAA,IAC1B;AAEA,aAAS,WAAW,UAAU,UAAU;AACtC,UAAI,QAAQ,OAAO,CAAC,GAAG;AACrB,cAAM,QAAQ,OAAO,CAAC;AAAA,MACxB;AAAA,IACF;AAEA,UAAM,QAAQ,cAAc,oBAAC,iBAAc,MAAY,WAAsB,CAAE;AAAA,EACjF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,SAAS;AAAA,MACP,MAAM;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,MACA,UAAU;AAAA,QACR,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ import Observable from "zen-observable";
3
+ export function runCreateProject({
4
+ projectPath,
5
+ templateId,
6
+ projectName,
7
+ workspace,
8
+ args
9
+ }) {
10
+ return new Observable((observer) => {
11
+ (async () => {
12
+ observer.next("Creating files");
13
+ let project = await workspace.createProject({
14
+ projectPath,
15
+ projectName,
16
+ templateId,
17
+ args
18
+ });
19
+ observer.next("Updating the new project");
20
+ await project.update({ args });
21
+ })().then(() => {
22
+ observer.complete();
23
+ }).catch((error) => {
24
+ observer.error(error);
25
+ });
26
+ });
27
+ }
28
+ //# sourceMappingURL=runCreateProject.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../source/commands/create-project/runCreateProject.ts"],
4
+ "sourcesContent": ["import {type CommandArguments} from '@jakubmazanec/cli';\nimport Observable from 'zen-observable';\n\nimport {type Workspace} from '../../workspace.js';\nimport {type createProjectCommand} from './createProjectCommand.js';\n\nexport type CreateProjectOptions = {\n projectPath: string;\n projectName: string;\n templateId: string;\n workspace: Workspace | Workspace<false>;\n args: CommandArguments<typeof createProjectCommand>;\n};\n\nexport type CreateProjectStatus = string;\n\nexport function runCreateProject({\n projectPath,\n templateId,\n projectName,\n workspace,\n args,\n}: CreateProjectOptions) {\n return new Observable<CreateProjectStatus>((observer) => {\n (async () => {\n observer.next('Creating files');\n\n let project = await workspace.createProject({\n projectPath,\n projectName,\n templateId,\n args,\n });\n\n observer.next('Updating the new project');\n\n await project.update({args});\n })()\n .then(() => {\n observer.complete();\n })\n .catch((error) => {\n observer.error(error);\n });\n });\n}\n"],
5
+ "mappings": ";AACA,OAAO,gBAAgB;AAehB,gBAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAyB;AACvB,SAAO,IAAI,WAAgC,CAAC,aAAa;AACvD,KAAC,YAAY;AACX,eAAS,KAAK,gBAAgB;AAE9B,UAAI,UAAU,MAAM,UAAU,cAAc;AAAA,QAC1C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,eAAS,KAAK,0BAA0B;AAExC,YAAM,QAAQ,OAAO,EAAC,KAAI,CAAC;AAAA,IAC7B,GAAG,EACA,KAAK,MAAM;AACV,eAAS,SAAS;AAAA,IACpB,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,eAAS,MAAM,KAAK;AAAA,IACtB,CAAC;AAAA,EACL,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ export * from "./create-project/CreateProject.js";
3
+ export * from "./create-project/createProjectCommand.js";
4
+ export * from "./create-project/CreateProjectInput.js";
5
+ export * from "./create-project/runCreateProject.js";
6
+ //# sourceMappingURL=create-project.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/commands/create-project.ts"],
4
+ "sourcesContent": ["export * from './create-project/CreateProject.js';\nexport * from './create-project/createProjectCommand.js';\nexport * from './create-project/CreateProjectInput.js';\nexport * from './create-project/runCreateProject.js';\n"],
5
+ "mappings": ";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { colors, Header, icons, useProgram } from "@jakubmazanec/cli";
4
+ import chalk from "chalk";
5
+ import { Box, Text } from "ink";
6
+ import path from "node:path";
7
+ import { useEffect, useState } from "react";
8
+ import { CreateWorkspaceInput } from "./CreateWorkspaceInput.js";
9
+ import { runCreateWorkspace } from "./runCreateWorkspace.js";
10
+ export function CreateWorkspace({ args }) {
11
+ let [status, setStatus] = useState("not-started");
12
+ let [subscription, setSubscription] = useState(null);
13
+ let [jobs, setJobs] = useState([]);
14
+ let [createWorkspaceInputResult, setCreateWorkspaceInputResult] = useState(() => ({
15
+ templateId: { value: args.options.template ?? "", isComplete: !!args.options.template }
16
+ }));
17
+ let { exit } = useProgram();
18
+ let workspacePath = path.resolve(process.cwd(), args.options.path ?? "");
19
+ useEffect(() => {
20
+ if (Object.entries(createWorkspaceInputResult).every(([, result]) => result.isComplete)) {
21
+ setStatus("in-progress");
22
+ }
23
+ }, [createWorkspaceInputResult]);
24
+ useEffect(() => {
25
+ if (status === "in-progress" && !subscription) {
26
+ let newSubscription = runCreateWorkspace({
27
+ workspacePath,
28
+ templateId: createWorkspaceInputResult.templateId.value,
29
+ args
30
+ }).subscribe({
31
+ next(value) {
32
+ setJobs((previousJobs) => [...previousJobs, value]);
33
+ },
34
+ error(error) {
35
+ exit(error);
36
+ },
37
+ complete() {
38
+ newSubscription.unsubscribe();
39
+ setStatus("finished");
40
+ }
41
+ });
42
+ setSubscription(newSubscription);
43
+ }
44
+ return () => {
45
+ if (subscription) {
46
+ subscription.unsubscribe();
47
+ }
48
+ };
49
+ }, [createWorkspaceInputResult, status, subscription, args, exit, workspacePath]);
50
+ return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
51
+ /* @__PURE__ */ jsx(Text, { children: `Creating workspace at ${chalk[colors.info](workspacePath)}.` }),
52
+ /* @__PURE__ */ jsx(
53
+ CreateWorkspaceInput,
54
+ {
55
+ values: createWorkspaceInputResult,
56
+ marginTop: 1,
57
+ onChange: setCreateWorkspaceInputResult,
58
+ onComplete: setCreateWorkspaceInputResult
59
+ }
60
+ ),
61
+ status === "in-progress" || status === "finished" ? /* @__PURE__ */ jsxs(Box, { marginTop: 1, flexDirection: "column", children: [
62
+ /* @__PURE__ */ jsx(Header, { showSpinner: status === "in-progress", icon: icons.success, marginBottom: 1, children: /* @__PURE__ */ jsx(Text, { children: "Creating workspace..." }) }),
63
+ jobs.map((job) => /* @__PURE__ */ jsx(Text, { children: `${icons.info} ${job}` }, job))
64
+ ] }) : null,
65
+ status === "finished" ? /* @__PURE__ */ jsx(Header, { marginTop: 1, icon: icons.success, children: /* @__PURE__ */ jsx(Text, { children: "Done." }) }) : null
66
+ ] });
67
+ }
68
+ //# sourceMappingURL=CreateWorkspace.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../source/commands/create-workspace/CreateWorkspace.tsx"],
4
+ "sourcesContent": ["import {colors, type CommandArguments, Header, icons, useProgram} from '@jakubmazanec/cli';\nimport chalk from 'chalk';\nimport {Box, Text} from 'ink';\nimport path from 'node:path';\nimport {useEffect, useState} from 'react';\n\nimport {type CommandStatus} from '../internals.js';\nimport {type createWorkspaceCommand} from './createWorkspaceCommand.js';\nimport {CreateWorkspaceInput, type CreateWorkspaceInputResult} from './CreateWorkspaceInput.js';\nimport {runCreateWorkspace} from './runCreateWorkspace.js';\n\nexport type CreateWorkspaceProps = {\n args: CommandArguments<typeof createWorkspaceCommand>;\n};\n\nexport function CreateWorkspace({args}: CreateWorkspaceProps) {\n let [status, setStatus] = useState<CommandStatus>('not-started');\n let [subscription, setSubscription] = useState<ZenObservable.Subscription | null>(null);\n let [jobs, setJobs] = useState<string[]>([]);\n let [createWorkspaceInputResult, setCreateWorkspaceInputResult] =\n useState<CreateWorkspaceInputResult>(() => ({\n templateId: {value: args.options.template ?? '', isComplete: !!args.options.template},\n }));\n let {exit} = useProgram();\n let workspacePath = path.resolve(process.cwd(), args.options.path ?? '');\n\n useEffect(() => {\n if (Object.entries(createWorkspaceInputResult).every(([, result]) => result.isComplete)) {\n setStatus('in-progress');\n }\n }, [createWorkspaceInputResult]);\n\n useEffect(() => {\n if (status === 'in-progress' && !subscription) {\n let newSubscription = runCreateWorkspace({\n workspacePath,\n templateId: createWorkspaceInputResult.templateId.value,\n args,\n }).subscribe({\n next(value) {\n setJobs((previousJobs) => [...previousJobs, value]);\n },\n error(error) {\n exit(error);\n },\n complete() {\n newSubscription.unsubscribe();\n setStatus('finished');\n },\n });\n\n setSubscription(newSubscription);\n }\n\n return () => {\n if (subscription) {\n subscription.unsubscribe();\n }\n };\n }, [createWorkspaceInputResult, status, subscription, args, exit, workspacePath]);\n\n return (\n <Box flexDirection=\"column\">\n <Text>{`Creating workspace at ${chalk[colors.info](workspacePath)}.`}</Text>\n\n <CreateWorkspaceInput\n values={createWorkspaceInputResult}\n marginTop={1}\n onChange={setCreateWorkspaceInputResult}\n onComplete={setCreateWorkspaceInputResult}\n />\n\n {status === 'in-progress' || status === 'finished' ?\n <Box marginTop={1} flexDirection=\"column\">\n <Header showSpinner={status === 'in-progress'} icon={icons.success} marginBottom={1}>\n <Text>Creating workspace...</Text>\n </Header>\n\n {jobs.map((job) => (\n <Text key={job}>{`${icons.info} ${job}`}</Text>\n ))}\n </Box>\n : null}\n\n {status === 'finished' ?\n <Header marginTop={1} icon={icons.success}>\n <Text>Done.</Text>\n </Header>\n : null}\n </Box>\n );\n}\n"],
5
+ "mappings": ";AA+DM,cAUE,YAVF;AA/DN,SAAQ,QAA+B,QAAQ,OAAO,kBAAiB;AACvE,OAAO,WAAW;AAClB,SAAQ,KAAK,YAAW;AACxB,OAAO,UAAU;AACjB,SAAQ,WAAW,gBAAe;AAIlC,SAAQ,4BAA4D;AACpE,SAAQ,0BAAyB;AAM1B,gBAAS,gBAAgB,EAAC,KAAI,GAAyB;AAC5D,MAAI,CAAC,QAAQ,SAAS,IAAI,SAAwB,aAAa;AAC/D,MAAI,CAAC,cAAc,eAAe,IAAI,SAA4C,IAAI;AACtF,MAAI,CAAC,MAAM,OAAO,IAAI,SAAmB,CAAC,CAAC;AAC3C,MAAI,CAAC,4BAA4B,6BAA6B,IAC5D,SAAqC,OAAO;AAAA,IAC1C,YAAY,EAAC,OAAO,KAAK,QAAQ,YAAY,IAAI,YAAY,CAAC,CAAC,KAAK,QAAQ,SAAQ;AAAA,EACtF,EAAE;AACJ,MAAI,EAAC,KAAI,IAAI,WAAW;AACxB,MAAI,gBAAgB,KAAK,QAAQ,QAAQ,IAAI,GAAG,KAAK,QAAQ,QAAQ,EAAE;AAEvE,YAAU,MAAM;AACd,QAAI,OAAO,QAAQ,0BAA0B,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,MAAM,OAAO,UAAU,GAAG;AACvF,gBAAU,aAAa;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,0BAA0B,CAAC;AAE/B,YAAU,MAAM;AACd,QAAI,WAAW,iBAAiB,CAAC,cAAc;AAC7C,UAAI,kBAAkB,mBAAmB;AAAA,QACvC;AAAA,QACA,YAAY,2BAA2B,WAAW;AAAA,QAClD;AAAA,MACF,CAAC,EAAE,UAAU;AAAA,QACX,KAAK,OAAO;AACV,kBAAQ,CAAC,iBAAiB,CAAC,GAAG,cAAc,KAAK,CAAC;AAAA,QACpD;AAAA,QACA,MAAM,OAAO;AACX,eAAK,KAAK;AAAA,QACZ;AAAA,QACA,WAAW;AACT,0BAAgB,YAAY;AAC5B,oBAAU,UAAU;AAAA,QACtB;AAAA,MACF,CAAC;AAED,sBAAgB,eAAe;AAAA,IACjC;AAEA,WAAO,MAAM;AACX,UAAI,cAAc;AAChB,qBAAa,YAAY;AAAA,MAC3B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,4BAA4B,QAAQ,cAAc,MAAM,MAAM,aAAa,CAAC;AAEhF,SACE,qBAAC,OAAI,eAAc,UACjB;AAAA,wBAAC,QAAM,mCAAyB,MAAM,OAAO,IAAI,EAAE,aAAa,CAAC,KAAI;AAAA,IAErE;AAAA,MAAC;AAAA;AAAA,QACC,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,UAAU;AAAA,QACV,YAAY;AAAA;AAAA,IACd;AAAA,IAEC,WAAW,iBAAiB,WAAW,aACtC,qBAAC,OAAI,WAAW,GAAG,eAAc,UAC/B;AAAA,0BAAC,UAAO,aAAa,WAAW,eAAe,MAAM,MAAM,SAAS,cAAc,GAChF,8BAAC,QAAK,mCAAqB,GAC7B;AAAA,MAEC,KAAK,IAAI,CAAC,QACT,oBAAC,QAAgB,aAAG,MAAM,IAAI,IAAI,GAAG,MAA1B,GAA6B,CACzC;AAAA,OACH,IACA;AAAA,IAED,WAAW,aACV,oBAAC,UAAO,WAAW,GAAG,MAAM,MAAM,SAChC,8BAAC,QAAK,mBAAK,GACb,IACA;AAAA,KACJ;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ import { createForm } from "@jakubmazanec/cli";
3
+ const TEMPLATE_ID_REGEXP = /^.+:.+$/;
4
+ export const CreateWorkspaceInput = createForm({
5
+ rows: {
6
+ templateId: {
7
+ type: "text",
8
+ label: "Enter template ID:",
9
+ validate: (value) => {
10
+ if (!TEMPLATE_ID_REGEXP.test(value)) {
11
+ throw new Error(
12
+ "Template ID must consist of a module ID and a template name separated by a colon."
13
+ );
14
+ }
15
+ }
16
+ }
17
+ }
18
+ });
19
+ //# sourceMappingURL=CreateWorkspaceInput.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../source/commands/create-workspace/CreateWorkspaceInput.ts"],
4
+ "sourcesContent": ["import {createForm, type FormResult} from '@jakubmazanec/cli';\n\nconst TEMPLATE_ID_REGEXP = /^.+:.+$/;\n\nexport const CreateWorkspaceInput = createForm({\n rows: {\n templateId: {\n type: 'text',\n label: 'Enter template ID:',\n validate: (value: string) => {\n if (!TEMPLATE_ID_REGEXP.test(value)) {\n throw new Error(\n 'Template ID must consist of a module ID and a template name separated by a colon.',\n );\n }\n },\n },\n },\n});\n\nexport type CreateWorkspaceInputResult = FormResult<typeof CreateWorkspaceInput>;\n"],
5
+ "mappings": ";AAAA,SAAQ,kBAAkC;AAE1C,MAAM,qBAAqB;AAEpB,aAAM,uBAAuB,WAAW;AAAA,EAC7C,MAAM;AAAA,IACJ,YAAY;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,CAAC,UAAkB;AAC3B,YAAI,CAAC,mBAAmB,KAAK,KAAK,GAAG;AACnC,gBAAM,IAAI;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;",
6
+ "names": []
7
+ }
@@ -1,9 +1,9 @@
1
1
  import { Command } from '@jakubmazanec/cli';
2
2
  export declare const createWorkspaceCommand: Command<"create workspace", undefined, {
3
- path: {
4
- type: "string";
3
+ readonly path: {
4
+ readonly type: "string";
5
5
  };
6
- template: {
7
- type: "string";
6
+ readonly template: {
7
+ readonly type: "string";
8
8
  };
9
9
  }, false, false>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Command } from "@jakubmazanec/cli";
4
+ import { CreateWorkspace } from "./CreateWorkspace.js";
5
+ export const createWorkspaceCommand = new Command(
6
+ "create workspace",
7
+ async (args, program) => {
8
+ await program.renderElement(/* @__PURE__ */ jsx(CreateWorkspace, { args }));
9
+ },
10
+ {
11
+ description: "Creates a new workspacee.",
12
+ options: {
13
+ path: {
14
+ type: "string"
15
+ },
16
+ template: {
17
+ type: "string"
18
+ }
19
+ }
20
+ }
21
+ );
22
+ //# sourceMappingURL=createWorkspaceCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../source/commands/create-workspace/createWorkspaceCommand.tsx"],
4
+ "sourcesContent": ["import {Command} from '@jakubmazanec/cli';\n\nimport {CreateWorkspace} from './CreateWorkspace.js';\n\nexport const createWorkspaceCommand = new Command(\n 'create workspace',\n async (args, program) => {\n await program.renderElement(<CreateWorkspace args={args} />);\n },\n {\n description: 'Creates a new workspacee.',\n options: {\n path: {\n type: 'string',\n },\n template: {\n type: 'string',\n },\n },\n },\n);\n"],
5
+ "mappings": ";AAOgC;AAPhC,SAAQ,eAAc;AAEtB,SAAQ,uBAAsB;AAEvB,aAAM,yBAAyB,IAAI;AAAA,EACxC;AAAA,EACA,OAAO,MAAM,YAAY;AACvB,UAAM,QAAQ,cAAc,oBAAC,mBAAgB,MAAY,CAAE;AAAA,EAC7D;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,SAAS;AAAA,MACP,MAAM;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,MACA,UAAU;AAAA,QACR,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ import Observable from "zen-observable";
3
+ import { Workspace } from "../../workspace.js";
4
+ export function runCreateWorkspace({ workspacePath, templateId, args }) {
5
+ return new Observable((observer) => {
6
+ (async () => {
7
+ observer.next("Creating files");
8
+ let workspace = await Workspace.create({
9
+ args,
10
+ path: workspacePath,
11
+ templateId
12
+ });
13
+ observer.next("Updating the new workspace");
14
+ await workspace.update({ args });
15
+ })().then(() => {
16
+ observer.complete();
17
+ }).catch((error) => {
18
+ observer.error(error);
19
+ });
20
+ });
21
+ }
22
+ //# sourceMappingURL=runCreateWorkspace.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../source/commands/create-workspace/runCreateWorkspace.ts"],
4
+ "sourcesContent": ["import {type CommandArguments} from '@jakubmazanec/cli';\nimport Observable from 'zen-observable';\n\nimport {Workspace} from '../../workspace.js';\nimport {type createWorkspaceCommand} from './createWorkspaceCommand.js';\n\nexport type CreateWorkspaceOptions = {\n workspacePath: string;\n templateId: string;\n args: CommandArguments<typeof createWorkspaceCommand>;\n};\n\nexport type CreateWorkspaceStatus = string;\n\nexport function runCreateWorkspace({workspacePath, templateId, args}: CreateWorkspaceOptions) {\n return new Observable<CreateWorkspaceStatus>((observer) => {\n (async () => {\n observer.next('Creating files');\n\n let workspace = await Workspace.create({\n args,\n path: workspacePath,\n templateId,\n });\n\n observer.next('Updating the new workspace');\n\n await workspace.update({args});\n })()\n .then(() => {\n observer.complete();\n })\n .catch((error) => {\n observer.error(error);\n });\n });\n}\n"],
5
+ "mappings": ";AACA,OAAO,gBAAgB;AAEvB,SAAQ,iBAAgB;AAWjB,gBAAS,mBAAmB,EAAC,eAAe,YAAY,KAAI,GAA2B;AAC5F,SAAO,IAAI,WAAkC,CAAC,aAAa;AACzD,KAAC,YAAY;AACX,eAAS,KAAK,gBAAgB;AAE9B,UAAI,YAAY,MAAM,UAAU,OAAO;AAAA,QACrC;AAAA,QACA,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAED,eAAS,KAAK,4BAA4B;AAE1C,YAAM,UAAU,OAAO,EAAC,KAAI,CAAC;AAAA,IAC/B,GAAG,EACA,KAAK,MAAM;AACV,eAAS,SAAS;AAAA,IACpB,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,eAAS,MAAM,KAAK;AAAA,IACtB,CAAC;AAAA,EACL,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ export * from "./create-workspace/CreateWorkspace.js";
3
+ export * from "./create-workspace/createWorkspaceCommand.js";
4
+ export * from "./create-workspace/CreateWorkspaceInput.js";
5
+ export * from "./create-workspace/runCreateWorkspace.js";
6
+ //# sourceMappingURL=create-workspace.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/commands/create-workspace.ts"],
4
+ "sourcesContent": ["export * from './create-workspace/CreateWorkspace.js';\nexport * from './create-workspace/createWorkspaceCommand.js';\nexport * from './create-workspace/CreateWorkspaceInput.js';\nexport * from './create-workspace/runCreateWorkspace.js';\n"],
5
+ "mappings": ";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=CommandStatus.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ export function packageNameToDirectory(packageName) {
3
+ const packageNameParts = packageName.split("/");
4
+ if (packageNameParts.length === 1) {
5
+ return packageNameParts[0];
6
+ }
7
+ if (packageNameParts.length > 1 && packageName[0] !== "@") {
8
+ return packageNameParts[0];
9
+ }
10
+ return packageNameParts[1];
11
+ }
12
+ //# sourceMappingURL=packageNameToDirectory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../source/commands/internals/packageNameToDirectory.ts"],
4
+ "sourcesContent": ["export function packageNameToDirectory(packageName: string): string {\n const packageNameParts = packageName.split('/');\n\n if (packageNameParts.length === 1) {\n return packageNameParts[0] as string;\n }\n\n if (packageNameParts.length > 1 && packageName[0] !== '@') {\n return packageNameParts[0] as string;\n }\n\n return packageNameParts[1] as string;\n}\n"],
5
+ "mappings": ";AAAO,gBAAS,uBAAuB,aAA6B;AAClE,QAAM,mBAAmB,YAAY,MAAM,GAAG;AAE9C,MAAI,iBAAiB,WAAW,GAAG;AACjC,WAAO,iBAAiB,CAAC;AAAA,EAC3B;AAEA,MAAI,iBAAiB,SAAS,KAAK,YAAY,CAAC,MAAM,KAAK;AACzD,WAAO,iBAAiB,CAAC;AAAA,EAC3B;AAEA,SAAO,iBAAiB,CAAC;AAC3B;",
6
+ "names": []
7
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ export * from "./internals/CommandStatus.js";
3
+ export * from "./internals/packageNameToDirectory.js";
4
+ //# sourceMappingURL=internals.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/commands/internals.ts"],
4
+ "sourcesContent": ["export * from './internals/CommandStatus.js';\nexport * from './internals/packageNameToDirectory.js';\n"],
5
+ "mappings": ";AAAA,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { colors, Header, icons, useProgram } from "@jakubmazanec/cli";
4
+ import chalk from "chalk";
5
+ import { Box, Text } from "ink";
6
+ import { useEffect, useState } from "react";
7
+ import { runUpdateWorkspace } from "./runUpdateWorkspace.js";
8
+ export function UpdateWorkspace({ workspace, args }) {
9
+ let [isFinished, setIsFinished] = useState(false);
10
+ let [jobs, setJobs] = useState([]);
11
+ let { exit } = useProgram();
12
+ useEffect(() => {
13
+ let subscription = runUpdateWorkspace({ workspace, args }).subscribe({
14
+ next(value) {
15
+ setJobs((previousJobs) => [...previousJobs, value]);
16
+ },
17
+ error(error) {
18
+ exit(error);
19
+ },
20
+ complete() {
21
+ setIsFinished(true);
22
+ }
23
+ });
24
+ return () => {
25
+ subscription.unsubscribe();
26
+ };
27
+ }, [args, exit, workspace]);
28
+ return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
29
+ /* @__PURE__ */ jsx(Text, { children: `Updating workspace at ${chalk[colors.info](workspace.path)}.` }),
30
+ /* @__PURE__ */ jsxs(Box, { marginTop: 1, flexDirection: "column", children: [
31
+ /* @__PURE__ */ jsx(Header, { showSpinner: !isFinished, icon: icons.success, marginBottom: 1, children: /* @__PURE__ */ jsx(Text, { children: "Updating workspace and projects..." }) }),
32
+ jobs.map((job) => /* @__PURE__ */ jsx(Text, { children: `${icons.info} ${job}` }, job))
33
+ ] }),
34
+ isFinished ? /* @__PURE__ */ jsx(Header, { marginTop: 1, icon: icons.success, children: /* @__PURE__ */ jsx(Text, { children: "Done." }) }) : null
35
+ ] });
36
+ }
37
+ //# sourceMappingURL=UpdateWorkspace.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../source/commands/update-workspace/UpdateWorkspace.tsx"],
4
+ "sourcesContent": ["import {colors, type CommandArguments, Header, icons, useProgram} from '@jakubmazanec/cli';\nimport chalk from 'chalk';\nimport {Box, Text} from 'ink';\nimport {useEffect, useState} from 'react';\n\nimport {type Workspace} from '../../workspace.js';\nimport {runUpdateWorkspace} from './runUpdateWorkspace.js';\nimport {type updateWorkspaceCommand} from './updateWorkspaceCommand.js';\n\nexport type UpdateWorkspaceProps = {\n args: CommandArguments<typeof updateWorkspaceCommand>;\n workspace: Workspace | Workspace<false>;\n};\n\nexport function UpdateWorkspace({workspace, args}: UpdateWorkspaceProps) {\n let [isFinished, setIsFinished] = useState(false);\n let [jobs, setJobs] = useState<string[]>([]);\n let {exit} = useProgram();\n\n useEffect(() => {\n let subscription = runUpdateWorkspace({workspace, args}).subscribe({\n next(value) {\n setJobs((previousJobs) => [...previousJobs, value]);\n },\n error(error) {\n exit(error);\n },\n complete() {\n setIsFinished(true);\n },\n });\n\n return () => {\n subscription.unsubscribe();\n };\n }, [args, exit, workspace]);\n\n return (\n <Box flexDirection=\"column\">\n <Text>{`Updating workspace at ${chalk[colors.info](workspace.path)}.`}</Text>\n\n <Box marginTop={1} flexDirection=\"column\">\n <Header showSpinner={!isFinished} icon={icons.success} marginBottom={1}>\n <Text>Updating workspace and projects...</Text>\n </Header>\n\n {jobs.map((job) => (\n <Text key={job}>{`${icons.info} ${job}`}</Text>\n ))}\n </Box>\n\n {isFinished ?\n <Header marginTop={1} icon={icons.success}>\n <Text>Done.</Text>\n </Header>\n : null}\n </Box>\n );\n}\n"],
5
+ "mappings": ";AAuCM,cAEA,YAFA;AAvCN,SAAQ,QAA+B,QAAQ,OAAO,kBAAiB;AACvE,OAAO,WAAW;AAClB,SAAQ,KAAK,YAAW;AACxB,SAAQ,WAAW,gBAAe;AAGlC,SAAQ,0BAAyB;AAQ1B,gBAAS,gBAAgB,EAAC,WAAW,KAAI,GAAyB;AACvE,MAAI,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAChD,MAAI,CAAC,MAAM,OAAO,IAAI,SAAmB,CAAC,CAAC;AAC3C,MAAI,EAAC,KAAI,IAAI,WAAW;AAExB,YAAU,MAAM;AACd,QAAI,eAAe,mBAAmB,EAAC,WAAW,KAAI,CAAC,EAAE,UAAU;AAAA,MACjE,KAAK,OAAO;AACV,gBAAQ,CAAC,iBAAiB,CAAC,GAAG,cAAc,KAAK,CAAC;AAAA,MACpD;AAAA,MACA,MAAM,OAAO;AACX,aAAK,KAAK;AAAA,MACZ;AAAA,MACA,WAAW;AACT,sBAAc,IAAI;AAAA,MACpB;AAAA,IACF,CAAC;AAED,WAAO,MAAM;AACX,mBAAa,YAAY;AAAA,IAC3B;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,SAAS,CAAC;AAE1B,SACE,qBAAC,OAAI,eAAc,UACjB;AAAA,wBAAC,QAAM,mCAAyB,MAAM,OAAO,IAAI,EAAE,UAAU,IAAI,CAAC,KAAI;AAAA,IAEtE,qBAAC,OAAI,WAAW,GAAG,eAAc,UAC/B;AAAA,0BAAC,UAAO,aAAa,CAAC,YAAY,MAAM,MAAM,SAAS,cAAc,GACnE,8BAAC,QAAK,gDAAkC,GAC1C;AAAA,MAEC,KAAK,IAAI,CAAC,QACT,oBAAC,QAAgB,aAAG,MAAM,IAAI,IAAI,GAAG,MAA1B,GAA6B,CACzC;AAAA,OACH;AAAA,IAEC,aACC,oBAAC,UAAO,WAAW,GAAG,MAAM,MAAM,SAChC,8BAAC,QAAK,mBAAK,GACb,IACA;AAAA,KACJ;AAEJ;",
6
+ "names": []
7
+ }