@jakubmazanec/carson 0.1.0-11dd4a3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/LICENSE.md +661 -0
  2. package/README.md +237 -0
  3. package/bin/carson.js +3 -0
  4. package/dist/commands/create-project/CreateProject.d.ts +8 -0
  5. package/dist/commands/create-project/CreateProject.js +138 -0
  6. package/dist/commands/create-project/CreateProject.js.map +1 -0
  7. package/dist/commands/create-project/CreateProjectInput.d.ts +20 -0
  8. package/dist/commands/create-project/CreateProjectInput.js +31 -0
  9. package/dist/commands/create-project/CreateProjectInput.js.map +1 -0
  10. package/dist/commands/create-project/createProjectCommand.d.ts +12 -0
  11. package/dist/commands/create-project/createProjectCommand.js +31 -0
  12. package/dist/commands/create-project/createProjectCommand.js.map +1 -0
  13. package/dist/commands/create-project/runCreateProject.d.ts +13 -0
  14. package/dist/commands/create-project/runCreateProject.js +34 -0
  15. package/dist/commands/create-project/runCreateProject.js.map +1 -0
  16. package/dist/commands/create-project.d.ts +4 -0
  17. package/dist/commands/create-project.js +6 -0
  18. package/dist/commands/create-project.js.map +1 -0
  19. package/dist/commands/create-workspace/CreateWorkspace.d.ts +7 -0
  20. package/dist/commands/create-workspace/CreateWorkspace.js +102 -0
  21. package/dist/commands/create-workspace/CreateWorkspace.js.map +1 -0
  22. package/dist/commands/create-workspace/CreateWorkspaceInput.d.ts +11 -0
  23. package/dist/commands/create-workspace/CreateWorkspaceInput.js +17 -0
  24. package/dist/commands/create-workspace/CreateWorkspaceInput.js.map +1 -0
  25. package/dist/commands/create-workspace/createWorkspaceCommand.d.ts +9 -0
  26. package/dist/commands/create-workspace/createWorkspaceCommand.js +30 -0
  27. package/dist/commands/create-workspace/createWorkspaceCommand.js.map +1 -0
  28. package/dist/commands/create-workspace/runCreateWorkspace.d.ts +10 -0
  29. package/dist/commands/create-workspace/runCreateWorkspace.js +33 -0
  30. package/dist/commands/create-workspace/runCreateWorkspace.js.map +1 -0
  31. package/dist/commands/create-workspace.d.ts +4 -0
  32. package/dist/commands/create-workspace.js +6 -0
  33. package/dist/commands/create-workspace.js.map +1 -0
  34. package/dist/commands/internals/packageNameToDirectory.d.ts +1 -0
  35. package/dist/commands/internals/packageNameToDirectory.js +12 -0
  36. package/dist/commands/internals/packageNameToDirectory.js.map +1 -0
  37. package/dist/commands/internals.d.ts +1 -0
  38. package/dist/commands/internals.js +3 -0
  39. package/dist/commands/internals.js.map +1 -0
  40. package/dist/commands/update-workspace/UpdateWorkspace.d.ts +8 -0
  41. package/dist/commands/update-workspace/UpdateWorkspace.js +71 -0
  42. package/dist/commands/update-workspace/UpdateWorkspace.js.map +1 -0
  43. package/dist/commands/update-workspace/runUpdateWorkspace.d.ts +10 -0
  44. package/dist/commands/update-workspace/runUpdateWorkspace.js +25 -0
  45. package/dist/commands/update-workspace/runUpdateWorkspace.js.map +1 -0
  46. package/dist/commands/update-workspace/updateWorkspaceCommand.d.ts +6 -0
  47. package/dist/commands/update-workspace/updateWorkspaceCommand.js +25 -0
  48. package/dist/commands/update-workspace/updateWorkspaceCommand.js.map +1 -0
  49. package/dist/commands/update-workspace.d.ts +3 -0
  50. package/dist/commands/update-workspace.js +5 -0
  51. package/dist/commands/update-workspace.js.map +1 -0
  52. package/dist/commands.d.ts +3 -0
  53. package/dist/commands.js +5 -0
  54. package/dist/commands.js.map +1 -0
  55. package/dist/constants.d.ts +7 -0
  56. package/dist/constants.js +16 -0
  57. package/dist/constants.js.map +1 -0
  58. package/dist/main.d.ts +3 -0
  59. package/dist/main.js +5 -0
  60. package/dist/main.js.map +1 -0
  61. package/dist/modules.d.js +2 -0
  62. package/dist/modules.d.js.map +1 -0
  63. package/dist/run.d.ts +1 -0
  64. package/dist/run.js +18 -0
  65. package/dist/run.js.map +1 -0
  66. package/dist/template/CarsonTemplate.d.ts +9 -0
  67. package/dist/template/CarsonTemplate.js +3 -0
  68. package/dist/template/CarsonTemplate.js.map +1 -0
  69. package/dist/template/CarsonTemplateConfig.d.ts +12 -0
  70. package/dist/template/CarsonTemplateConfig.js +7 -0
  71. package/dist/template/CarsonTemplateConfig.js.map +1 -0
  72. package/dist/template/TemplateAttributes.d.ts +9 -0
  73. package/dist/template/TemplateAttributes.js +16 -0
  74. package/dist/template/TemplateAttributes.js.map +1 -0
  75. package/dist/template/TemplateData.d.ts +35 -0
  76. package/dist/template/TemplateData.js +13 -0
  77. package/dist/template/TemplateData.js.map +1 -0
  78. package/dist/template/TemplateRender.d.ts +4 -0
  79. package/dist/template/TemplateRender.js +3 -0
  80. package/dist/template/TemplateRender.js.map +1 -0
  81. package/dist/template/TemplateRenderSnapshot.d.ts +27 -0
  82. package/dist/template/TemplateRenderSnapshot.js +11 -0
  83. package/dist/template/TemplateRenderSnapshot.js.map +1 -0
  84. package/dist/template/TemplateRenderSnapshots.d.ts +27 -0
  85. package/dist/template/TemplateRenderSnapshots.js +4 -0
  86. package/dist/template/TemplateRenderSnapshots.js.map +1 -0
  87. package/dist/template/TemplateRenders.d.ts +2 -0
  88. package/dist/template/TemplateRenders.js +3 -0
  89. package/dist/template/TemplateRenders.js.map +1 -0
  90. package/dist/template/applyTemplateRenders.d.ts +8 -0
  91. package/dist/template/applyTemplateRenders.js +60 -0
  92. package/dist/template/applyTemplateRenders.js.map +1 -0
  93. package/dist/template/createFileUsingTemplateRender.d.ts +2 -0
  94. package/dist/template/createFileUsingTemplateRender.js +12 -0
  95. package/dist/template/createFileUsingTemplateRender.js.map +1 -0
  96. package/dist/template/deleteFileUsingTemplateRender.d.ts +2 -0
  97. package/dist/template/deleteFileUsingTemplateRender.js +10 -0
  98. package/dist/template/deleteFileUsingTemplateRender.js.map +1 -0
  99. package/dist/template/importCarsonTemplate.d.ts +3 -0
  100. package/dist/template/importCarsonTemplate.js +8 -0
  101. package/dist/template/importCarsonTemplate.js.map +1 -0
  102. package/dist/template/insertUsingTemplateRender.d.ts +2 -0
  103. package/dist/template/insertUsingTemplateRender.js +29 -0
  104. package/dist/template/insertUsingTemplateRender.js.map +1 -0
  105. package/dist/template/internals/merge.d.ts +4 -0
  106. package/dist/template/internals/merge.js +30 -0
  107. package/dist/template/internals/merge.js.map +1 -0
  108. package/dist/template/internals/prettify.d.ts +1 -0
  109. package/dist/template/internals/prettify.js +25 -0
  110. package/dist/template/internals/prettify.js.map +1 -0
  111. package/dist/template/internals/unmerge.d.ts +4 -0
  112. package/dist/template/internals/unmerge.js +31 -0
  113. package/dist/template/internals/unmerge.js.map +1 -0
  114. package/dist/template/internals.d.ts +3 -0
  115. package/dist/template/internals.js +5 -0
  116. package/dist/template/internals.js.map +1 -0
  117. package/dist/template/loadTemplateRenderSnapshots.d.ts +7 -0
  118. package/dist/template/loadTemplateRenderSnapshots.js +14 -0
  119. package/dist/template/loadTemplateRenderSnapshots.js.map +1 -0
  120. package/dist/template/mergeFileUsingTemplateRender.d.ts +2 -0
  121. package/dist/template/mergeFileUsingTemplateRender.js +39 -0
  122. package/dist/template/mergeFileUsingTemplateRender.js.map +1 -0
  123. package/dist/template/overwriteFileUsingTemplateRender.d.ts +2 -0
  124. package/dist/template/overwriteFileUsingTemplateRender.js +12 -0
  125. package/dist/template/overwriteFileUsingTemplateRender.js.map +1 -0
  126. package/dist/template/parseTemplateId.d.ts +1 -0
  127. package/dist/template/parseTemplateId.js +12 -0
  128. package/dist/template/parseTemplateId.js.map +1 -0
  129. package/dist/template/readCarsonTemplate.d.ts +2 -0
  130. package/dist/template/readCarsonTemplate.js +39 -0
  131. package/dist/template/readCarsonTemplate.js.map +1 -0
  132. package/dist/template/renderTemplate.d.ts +7 -0
  133. package/dist/template/renderTemplate.js +19 -0
  134. package/dist/template/renderTemplate.js.map +1 -0
  135. package/dist/template/resolveTemplateModule.d.ts +1 -0
  136. package/dist/template/resolveTemplateModule.js +9 -0
  137. package/dist/template/resolveTemplateModule.js.map +1 -0
  138. package/dist/template/saveTemplateRenderSnapshots.d.ts +2 -0
  139. package/dist/template/saveTemplateRenderSnapshots.js +23 -0
  140. package/dist/template/saveTemplateRenderSnapshots.js.map +1 -0
  141. package/dist/template/uninsertUsingTemplateRender.d.ts +2 -0
  142. package/dist/template/uninsertUsingTemplateRender.js +29 -0
  143. package/dist/template/uninsertUsingTemplateRender.js.map +1 -0
  144. package/dist/template/unmergeFileUsingTemplateRender.d.ts +2 -0
  145. package/dist/template/unmergeFileUsingTemplateRender.js +39 -0
  146. package/dist/template/unmergeFileUsingTemplateRender.js.map +1 -0
  147. package/dist/template.d.ts +20 -0
  148. package/dist/template.js +22 -0
  149. package/dist/template.js.map +1 -0
  150. package/dist/workspace/Project.d.ts +33 -0
  151. package/dist/workspace/Project.js +184 -0
  152. package/dist/workspace/Project.js.map +1 -0
  153. package/dist/workspace/ProjectConfig.d.ts +9 -0
  154. package/dist/workspace/ProjectConfig.js +6 -0
  155. package/dist/workspace/ProjectConfig.js.map +1 -0
  156. package/dist/workspace/ProjectCreateOptions.d.ts +8 -0
  157. package/dist/workspace/ProjectCreateOptions.js +3 -0
  158. package/dist/workspace/ProjectCreateOptions.js.map +1 -0
  159. package/dist/workspace/ProjectError.d.ts +8 -0
  160. package/dist/workspace/ProjectError.js +11 -0
  161. package/dist/workspace/ProjectError.js.map +1 -0
  162. package/dist/workspace/ProjectOptions.d.ts +15 -0
  163. package/dist/workspace/ProjectOptions.js +3 -0
  164. package/dist/workspace/ProjectOptions.js.map +1 -0
  165. package/dist/workspace/ProjectUpdateOptions.d.ts +3 -0
  166. package/dist/workspace/ProjectUpdateOptions.js +3 -0
  167. package/dist/workspace/ProjectUpdateOptions.js.map +1 -0
  168. package/dist/workspace/Workspace.d.ts +68 -0
  169. package/dist/workspace/Workspace.js +426 -0
  170. package/dist/workspace/Workspace.js.map +1 -0
  171. package/dist/workspace/WorkspaceConfig.d.ts +9 -0
  172. package/dist/workspace/WorkspaceConfig.js +6 -0
  173. package/dist/workspace/WorkspaceConfig.js.map +1 -0
  174. package/dist/workspace/WorkspaceCreateOptions.d.ts +5 -0
  175. package/dist/workspace/WorkspaceCreateOptions.js +3 -0
  176. package/dist/workspace/WorkspaceCreateOptions.js.map +1 -0
  177. package/dist/workspace/WorkspaceCreateProjectOptions.d.ts +6 -0
  178. package/dist/workspace/WorkspaceCreateProjectOptions.js +3 -0
  179. package/dist/workspace/WorkspaceCreateProjectOptions.js.map +1 -0
  180. package/dist/workspace/WorkspaceDependencies.d.ts +30 -0
  181. package/dist/workspace/WorkspaceDependencies.js +126 -0
  182. package/dist/workspace/WorkspaceDependencies.js.map +1 -0
  183. package/dist/workspace/WorkspaceError.d.ts +8 -0
  184. package/dist/workspace/WorkspaceError.js +13 -0
  185. package/dist/workspace/WorkspaceError.js.map +1 -0
  186. package/dist/workspace/WorkspaceOptions.d.ts +25 -0
  187. package/dist/workspace/WorkspaceOptions.js +3 -0
  188. package/dist/workspace/WorkspaceOptions.js.map +1 -0
  189. package/dist/workspace/WorkspaceOptionsProjectOptions.d.ts +7 -0
  190. package/dist/workspace/WorkspaceOptionsProjectOptions.js +3 -0
  191. package/dist/workspace/WorkspaceOptionsProjectOptions.js.map +1 -0
  192. package/dist/workspace/WorkspacePackageJson.d.ts +2 -0
  193. package/dist/workspace/WorkspacePackageJson.js +3 -0
  194. package/dist/workspace/WorkspacePackageJson.js.map +1 -0
  195. package/dist/workspace/WorkspaceProjectGlobs.d.ts +1 -0
  196. package/dist/workspace/WorkspaceProjectGlobs.js +3 -0
  197. package/dist/workspace/WorkspaceProjectGlobs.js.map +1 -0
  198. package/dist/workspace/WorkspaceProjects.d.ts +2 -0
  199. package/dist/workspace/WorkspaceProjects.js +3 -0
  200. package/dist/workspace/WorkspaceProjects.js.map +1 -0
  201. package/dist/workspace/WorkspaceRepository.d.ts +4 -0
  202. package/dist/workspace/WorkspaceRepository.js +3 -0
  203. package/dist/workspace/WorkspaceRepository.js.map +1 -0
  204. package/dist/workspace/WorkspaceUpdateOptions.d.ts +3 -0
  205. package/dist/workspace/WorkspaceUpdateOptions.js +3 -0
  206. package/dist/workspace/WorkspaceUpdateOptions.js.map +1 -0
  207. package/dist/workspace/internals/compareSemver.d.ts +8 -0
  208. package/dist/workspace/internals/compareSemver.js +27 -0
  209. package/dist/workspace/internals/compareSemver.js.map +1 -0
  210. package/dist/workspace/internals/getPackageJsonWorkspaces.d.ts +2 -0
  211. package/dist/workspace/internals/getPackageJsonWorkspaces.js +11 -0
  212. package/dist/workspace/internals/getPackageJsonWorkspaces.js.map +1 -0
  213. package/dist/workspace/internals/getRepositoryBranches.d.ts +1 -0
  214. package/dist/workspace/internals/getRepositoryBranches.js +21 -0
  215. package/dist/workspace/internals/getRepositoryBranches.js.map +1 -0
  216. package/dist/workspace/internals/getRepositoryUrl.d.ts +1 -0
  217. package/dist/workspace/internals/getRepositoryUrl.js +21 -0
  218. package/dist/workspace/internals/getRepositoryUrl.js.map +1 -0
  219. package/dist/workspace/internals.d.ts +4 -0
  220. package/dist/workspace/internals.js +6 -0
  221. package/dist/workspace/internals.js.map +1 -0
  222. package/dist/workspace/saveProjectConfig.d.ts +6 -0
  223. package/dist/workspace/saveProjectConfig.js +13 -0
  224. package/dist/workspace/saveProjectConfig.js.map +1 -0
  225. package/dist/workspace/saveWorkspaceConfig.d.ts +6 -0
  226. package/dist/workspace/saveWorkspaceConfig.js +13 -0
  227. package/dist/workspace/saveWorkspaceConfig.js.map +1 -0
  228. package/dist/workspace.d.ts +10 -0
  229. package/dist/workspace.js +12 -0
  230. package/dist/workspace.js.map +1 -0
  231. package/package.json +84 -0
  232. package/src/commands/create-project/CreateProject.tsx +130 -0
  233. package/src/commands/create-project/CreateProjectInput.ts +37 -0
  234. package/src/commands/create-project/createProjectCommand.tsx +33 -0
  235. package/src/commands/create-project/runCreateProject.ts +59 -0
  236. package/src/commands/create-project.ts +4 -0
  237. package/src/commands/create-workspace/CreateWorkspace.tsx +90 -0
  238. package/src/commands/create-workspace/CreateWorkspaceInput.ts +21 -0
  239. package/src/commands/create-workspace/createWorkspaceCommand.tsx +34 -0
  240. package/src/commands/create-workspace/runCreateWorkspace.ts +49 -0
  241. package/src/commands/create-workspace.ts +4 -0
  242. package/src/commands/internals/packageNameToDirectory.ts +13 -0
  243. package/src/commands/internals.ts +1 -0
  244. package/src/commands/update-workspace/UpdateWorkspace.tsx +59 -0
  245. package/src/commands/update-workspace/runUpdateWorkspace.ts +36 -0
  246. package/src/commands/update-workspace/updateWorkspaceCommand.tsx +27 -0
  247. package/src/commands/update-workspace.ts +3 -0
  248. package/src/commands.ts +3 -0
  249. package/src/constants.ts +21 -0
  250. package/src/main.ts +3 -0
  251. package/src/modules.d.ts +1 -0
  252. package/src/run.ts +21 -0
  253. package/src/template/CarsonTemplate.ts +11 -0
  254. package/src/template/CarsonTemplateConfig.ts +12 -0
  255. package/src/template/TemplateAttributes.ts +16 -0
  256. package/src/template/TemplateData.ts +17 -0
  257. package/src/template/TemplateRender.ts +9 -0
  258. package/src/template/TemplateRenderSnapshot.ts +13 -0
  259. package/src/template/TemplateRenderSnapshots.ts +7 -0
  260. package/src/template/TemplateRenders.ts +3 -0
  261. package/src/template/applyTemplateRenders.ts +89 -0
  262. package/src/template/createFileUsingTemplateRender.ts +12 -0
  263. package/src/template/deleteFileUsingTemplateRender.ts +15 -0
  264. package/src/template/importCarsonTemplate.ts +13 -0
  265. package/src/template/insertUsingTemplateRender.ts +33 -0
  266. package/src/template/internals/merge.ts +44 -0
  267. package/src/template/internals/prettify.ts +24 -0
  268. package/src/template/internals/unmerge.ts +48 -0
  269. package/src/template/internals.ts +3 -0
  270. package/src/template/loadTemplateRenderSnapshots.ts +18 -0
  271. package/src/template/mergeFileUsingTemplateRender.ts +39 -0
  272. package/src/template/overwriteFileUsingTemplateRender.ts +12 -0
  273. package/src/template/parseTemplateId.ts +9 -0
  274. package/src/template/readCarsonTemplate.ts +46 -0
  275. package/src/template/renderTemplate.ts +30 -0
  276. package/src/template/resolveTemplateModule.ts +9 -0
  277. package/src/template/saveTemplateRenderSnapshots.ts +34 -0
  278. package/src/template/uninsertUsingTemplateRender.ts +36 -0
  279. package/src/template/unmergeFileUsingTemplateRender.ts +42 -0
  280. package/src/template.ts +20 -0
  281. package/src/workspace/Project.ts +246 -0
  282. package/src/workspace/ProjectConfig.ts +9 -0
  283. package/src/workspace/ProjectCreateOptions.ts +9 -0
  284. package/src/workspace/ProjectError.ts +15 -0
  285. package/src/workspace/ProjectOptions.ts +17 -0
  286. package/src/workspace/ProjectUpdateOptions.ts +3 -0
  287. package/src/workspace/Workspace.ts +553 -0
  288. package/src/workspace/WorkspaceConfig.ts +9 -0
  289. package/src/workspace/WorkspaceCreateOptions.ts +5 -0
  290. package/src/workspace/WorkspaceCreateProjectOptions.ts +6 -0
  291. package/src/workspace/WorkspaceDependencies.ts +196 -0
  292. package/src/workspace/WorkspaceError.ts +18 -0
  293. package/src/workspace/WorkspaceOptions.ts +29 -0
  294. package/src/workspace/WorkspaceOptionsProjectOptions.ts +9 -0
  295. package/src/workspace/WorkspacePackageJson.ts +3 -0
  296. package/src/workspace/WorkspaceProjectGlobs.ts +1 -0
  297. package/src/workspace/WorkspaceProjects.ts +3 -0
  298. package/src/workspace/WorkspaceRepository.ts +4 -0
  299. package/src/workspace/WorkspaceUpdateOptions.ts +3 -0
  300. package/src/workspace/internals/compareSemver.ts +35 -0
  301. package/src/workspace/internals/getPackageJsonWorkspaces.ts +11 -0
  302. package/src/workspace/internals/getRepositoryBranches.ts +25 -0
  303. package/src/workspace/internals/getRepositoryUrl.ts +23 -0
  304. package/src/workspace/internals.ts +4 -0
  305. package/src/workspace/saveProjectConfig.ts +23 -0
  306. package/src/workspace/saveWorkspaceConfig.ts +30 -0
  307. package/src/workspace.ts +10 -0
@@ -0,0 +1,102 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Header, icons, colors, useProgram } from '@jakubmazanec/cli';
3
+ import chalk from 'chalk';
4
+ import { Box, Text } from 'ink';
5
+ import { useEffect, useState } from 'react';
6
+ import { CreateWorkspaceInput } from './CreateWorkspaceInput.js';
7
+ import { runCreateWorkspace } from './runCreateWorkspace.js';
8
+ export function CreateWorkspace({ args , path }) {
9
+ let [status, setStatus] = useState('not-started');
10
+ let [subscription, setSubscription] = useState(null);
11
+ let [jobs, setJobs] = useState([]);
12
+ let [createWorkspaceInputResult, setCreateWorkspaceInputResult] = useState(()=>({
13
+ templateId: {
14
+ value: args.options.template ?? '',
15
+ isComplete: !!args.options.template
16
+ }
17
+ }));
18
+ let { exit } = useProgram();
19
+ useEffect(()=>{
20
+ if (Object.entries(createWorkspaceInputResult).every(([, result])=>result.isComplete)) {
21
+ setStatus('in-progress');
22
+ }
23
+ }, [
24
+ createWorkspaceInputResult
25
+ ]);
26
+ useEffect(()=>{
27
+ if (status === 'in-progress' && !subscription) {
28
+ let newSubscription = runCreateWorkspace({
29
+ workspacePath: path,
30
+ templateId: createWorkspaceInputResult.templateId.value,
31
+ args
32
+ }).subscribe({
33
+ next (value) {
34
+ setJobs((previousJobs)=>[
35
+ ...previousJobs,
36
+ value
37
+ ]);
38
+ },
39
+ error (error) {
40
+ exit(error);
41
+ },
42
+ complete () {
43
+ newSubscription.unsubscribe();
44
+ setStatus('finished');
45
+ }
46
+ });
47
+ setSubscription(newSubscription);
48
+ }
49
+ return ()=>{
50
+ if (subscription) {
51
+ subscription.unsubscribe();
52
+ }
53
+ };
54
+ }, [
55
+ createWorkspaceInputResult,
56
+ path,
57
+ status,
58
+ subscription,
59
+ args,
60
+ exit
61
+ ]);
62
+ return /*#__PURE__*/ _jsxs(Box, {
63
+ flexDirection: "column",
64
+ children: [
65
+ /*#__PURE__*/ _jsx(Text, {
66
+ children: `Creating workspace at ${chalk[colors.highlighted](path)}.`
67
+ }),
68
+ /*#__PURE__*/ _jsx(CreateWorkspaceInput, {
69
+ values: createWorkspaceInputResult,
70
+ marginTop: 1,
71
+ onChange: setCreateWorkspaceInputResult,
72
+ onComplete: setCreateWorkspaceInputResult
73
+ }),
74
+ status === 'in-progress' || status === 'finished' ? /*#__PURE__*/ _jsxs(Box, {
75
+ marginTop: 1,
76
+ flexDirection: "column",
77
+ children: [
78
+ /*#__PURE__*/ _jsx(Header, {
79
+ showSpinner: status === 'in-progress',
80
+ icon: icons.success,
81
+ marginBottom: 1,
82
+ children: /*#__PURE__*/ _jsx(Text, {
83
+ children: "Creating workspace..."
84
+ })
85
+ }),
86
+ jobs.map((job)=>/*#__PURE__*/ _jsx(Text, {
87
+ children: `${icons.info} ${job}`
88
+ }, job))
89
+ ]
90
+ }) : null,
91
+ status === 'finished' ? /*#__PURE__*/ _jsx(Header, {
92
+ marginTop: 1,
93
+ icon: icons.success,
94
+ children: /*#__PURE__*/ _jsx(Text, {
95
+ children: "Done."
96
+ })
97
+ }) : null
98
+ ]
99
+ });
100
+ }
101
+
102
+ //# sourceMappingURL=CreateWorkspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/commands/create-workspace/CreateWorkspace.tsx"],"sourcesContent":["import {Header, icons, colors, type CommandArguments, useProgram} from '@jakubmazanec/cli';\nimport chalk from 'chalk';\nimport {Box, Text} from 'ink';\nimport {useEffect, useState} from 'react';\n\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 path: string;\n};\n\nexport function CreateWorkspace({args, path}: CreateWorkspaceProps) {\n let [status, setStatus] = useState<'finished' | 'in-progress' | 'not-started'>('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\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: path,\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, path, status, subscription, args, exit]);\n\n return (\n <Box flexDirection=\"column\">\n <Text>{`Creating workspace at ${chalk[colors.highlighted](path)}.`}</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"],"names":["Header","icons","colors","useProgram","chalk","Box","Text","useEffect","useState","CreateWorkspaceInput","runCreateWorkspace","CreateWorkspace","args","path","status","setStatus","subscription","setSubscription","jobs","setJobs","createWorkspaceInputResult","setCreateWorkspaceInputResult","templateId","value","options","template","isComplete","exit","Object","entries","every","result","newSubscription","workspacePath","subscribe","next","previousJobs","error","complete","unsubscribe","flexDirection","highlighted","values","marginTop","onChange","onComplete","showSpinner","icon","success","marginBottom","map","job","info"],"mappings":";AAAA,SAAQA,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAyBC,UAAU,QAAO,oBAAoB;AAC3F,OAAOC,WAAW,QAAQ;AAC1B,SAAQC,GAAG,EAAEC,IAAI,QAAO,MAAM;AAC9B,SAAQC,SAAS,EAAEC,QAAQ,QAAO,QAAQ;AAG1C,SAAQC,oBAAoB,QAAwC,4BAA4B;AAChG,SAAQC,kBAAkB,QAAO,0BAA0B;AAO3D,OAAO,SAASC,gBAAgB,EAACC,KAAI,EAAEC,KAAI,EAAuB;IAChE,IAAI,CAACC,QAAQC,UAAU,GAAGP,SAAqD;IAC/E,IAAI,CAACQ,cAAcC,gBAAgB,GAAGT,SAA4C;IAClF,IAAI,CAACU,MAAMC,QAAQ,GAAGX,SAAmB,EAAE;IAC3C,IAAI,CAACY,4BAA4BC,8BAA8B,GAC7Db,SAAqC,IAAO,CAAA;YAC1Cc,YAAY;gBAACC,OAAOX,KAAKY,QAAQC,YAAY;gBAAIC,YAAY,CAAC,CAACd,KAAKY,QAAQC;YAAQ;QACtF,CAAA;IACF,IAAI,EAACE,KAAI,EAAC,GAAGxB;IAEbI,UAAU;QACR,IAAIqB,OAAOC,QAAQT,4BAA4BU,MAAM,CAAC,GAAGC,OAAO,GAAKA,OAAOL,aAAa;YACvFX,UAAU;QACZ;IACF,GAAG;QAACK;KAA2B;IAE/Bb,UAAU;QACR,IAAIO,WAAW,iBAAiB,CAACE,cAAc;YAC7C,IAAIgB,kBAAkBtB,mBAAmB;gBACvCuB,eAAepB;gBACfS,YAAYF,2BAA2BE,WAAWC;gBAClDX;YACF,GAAGsB,UAAU;gBACXC,MAAKZ,KAAK;oBACRJ,QAAQ,CAACiB,eAAiB;+BAAIA;4BAAcb;yBAAM;gBACpD;gBACAc,OAAMA,KAAK;oBACTV,KAAKU;gBACP;gBACAC;oBACEN,gBAAgBO;oBAChBxB,UAAU;gBACZ;YACF;YAEAE,gBAAgBe;QAClB;QAEA,OAAO;YACL,IAAIhB,cAAc;gBAChBA,aAAauB;YACf;QACF;IACF,GAAG;QAACnB;QAA4BP;QAAMC;QAAQE;QAAcJ;QAAMe;KAAK;IAEvE,qBACE,MAACtB;QAAImC,eAAc;;0BACjB,KAAClC;0BAAM,CAAC,sBAAsB,EAAEF,KAAK,CAACF,OAAOuC,YAAY,CAAC5B,MAAM,CAAC,CAAC;;0BAElE,KAACJ;gBACCiC,QAAQtB;gBACRuB,WAAW;gBACXC,UAAUvB;gBACVwB,YAAYxB;;YAGbP,WAAW,iBAAiBA,WAAW,2BACtC,MAACT;gBAAIsC,WAAW;gBAAGH,eAAc;;kCAC/B,KAACxC;wBAAO8C,aAAahC,WAAW;wBAAeiC,MAAM9C,MAAM+C;wBAASC,cAAc;kCAChF,cAAA,KAAC3C;sCAAK;;;oBAGPY,KAAKgC,IAAI,CAACC,oBACT,KAAC7C;sCAAgB,CAAC,EAAEL,MAAMmD,KAAK,CAAC,EAAED,IAAI,CAAC;2BAA5BA;;iBAGb;YAEHrC,WAAW,2BACV,KAACd;gBAAO2C,WAAW;gBAAGI,MAAM9C,MAAM+C;0BAChC,cAAA,KAAC1C;8BAAK;;iBAEN;;;AAGV"}
@@ -0,0 +1,11 @@
1
+ import { type FormResult } from '@jakubmazanec/cli';
2
+ export declare const CreateWorkspaceInput: import("@jakubmazanec/cli").Form<{
3
+ rows: {
4
+ templateId: {
5
+ type: "text";
6
+ label: string;
7
+ validate: (value: string) => void;
8
+ };
9
+ };
10
+ }>;
11
+ export type CreateWorkspaceInputResult = FormResult<typeof CreateWorkspaceInput>;
@@ -0,0 +1,17 @@
1
+ import { createForm } from '@jakubmazanec/cli';
2
+ const TEMPLATE_ID_REGEXP = /^.+:.+$/;
3
+ export const CreateWorkspaceInput = createForm({
4
+ rows: {
5
+ templateId: {
6
+ type: 'text',
7
+ label: 'Enter template ID:',
8
+ validate: (value)=>{
9
+ if (!TEMPLATE_ID_REGEXP.test(value)) {
10
+ throw new Error('Template ID must consist of a module ID and a template name separated by a colon.');
11
+ }
12
+ }
13
+ }
14
+ }
15
+ });
16
+
17
+ //# sourceMappingURL=CreateWorkspaceInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/commands/create-workspace/CreateWorkspaceInput.ts"],"sourcesContent":["import {type FormResult, createForm} 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"],"names":["createForm","TEMPLATE_ID_REGEXP","CreateWorkspaceInput","rows","templateId","type","label","validate","value","test","Error"],"mappings":"AAAA,SAAyBA,UAAU,QAAO,oBAAoB;AAE9D,MAAMC,qBAAqB;AAE3B,OAAO,MAAMC,uBAAuBF,WAAW;IAC7CG,MAAM;QACJC,YAAY;YACVC,MAAM;YACNC,OAAO;YACPC,UAAU,CAACC;gBACT,IAAI,CAACP,mBAAmBQ,KAAKD,QAAQ;oBACnC,MAAM,IAAIE,MACR;gBAEJ;YACF;QACF;IACF;AACF,GAAG"}
@@ -0,0 +1,9 @@
1
+ import { Command } from '@jakubmazanec/cli';
2
+ export declare const createWorkspaceCommand: Command<"create workspace", undefined, {
3
+ path: {
4
+ type: "string";
5
+ };
6
+ template: {
7
+ type: "string";
8
+ };
9
+ }, false, false>;
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Command } from '@jakubmazanec/cli';
3
+ import { isEmptyDirectory } from '@jakubmazanec/fs-utils';
4
+ import fs from 'fs-extra';
5
+ import path from 'node:path';
6
+ import { CreateWorkspace } from './CreateWorkspace.js';
7
+ export const createWorkspaceCommand = new Command('create workspace', async (args, program)=>{
8
+ let workspacePath = path.resolve(process.cwd(), args.options.path ?? '');
9
+ await fs.ensureDir(workspacePath);
10
+ let isWorkspacePathEmpty = await isEmptyDirectory(workspacePath);
11
+ if (!isWorkspacePathEmpty) {
12
+ throw new Error(`Directory "${workspacePath}" must be empty`);
13
+ }
14
+ await program.renderElement(/*#__PURE__*/ _jsx(CreateWorkspace, {
15
+ args: args,
16
+ path: workspacePath
17
+ }));
18
+ }, {
19
+ description: 'Creates a new workspacee.',
20
+ options: {
21
+ path: {
22
+ type: 'string'
23
+ },
24
+ template: {
25
+ type: 'string'
26
+ }
27
+ }
28
+ });
29
+
30
+ //# sourceMappingURL=createWorkspaceCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/commands/create-workspace/createWorkspaceCommand.tsx"],"sourcesContent":["import {Command} from '@jakubmazanec/cli';\nimport {isEmptyDirectory} from '@jakubmazanec/fs-utils';\nimport fs from 'fs-extra';\nimport path from 'node:path';\n\nimport {CreateWorkspace} from './CreateWorkspace.js';\n\nexport const createWorkspaceCommand = new Command(\n 'create workspace',\n async (args, program) => {\n let workspacePath = path.resolve(process.cwd(), args.options.path ?? '');\n\n await fs.ensureDir(workspacePath);\n\n let isWorkspacePathEmpty = await isEmptyDirectory(workspacePath);\n\n if (!isWorkspacePathEmpty) {\n throw new Error(`Directory \"${workspacePath}\" must be empty`);\n }\n\n await program.renderElement(<CreateWorkspace args={args} path={workspacePath} />);\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"],"names":["Command","isEmptyDirectory","fs","path","CreateWorkspace","createWorkspaceCommand","args","program","workspacePath","resolve","process","cwd","options","ensureDir","isWorkspacePathEmpty","Error","renderElement","description","type","template"],"mappings":";AAAA,SAAQA,OAAO,QAAO,oBAAoB;AAC1C,SAAQC,gBAAgB,QAAO,yBAAyB;AACxD,OAAOC,QAAQ,WAAW;AAC1B,OAAOC,UAAU,YAAY;AAE7B,SAAQC,eAAe,QAAO,uBAAuB;AAErD,OAAO,MAAMC,yBAAyB,IAAIL,QACxC,oBACA,OAAOM,MAAMC;IACX,IAAIC,gBAAgBL,KAAKM,QAAQC,QAAQC,OAAOL,KAAKM,QAAQT,QAAQ;IAErE,MAAMD,GAAGW,UAAUL;IAEnB,IAAIM,uBAAuB,MAAMb,iBAAiBO;IAElD,IAAI,CAACM,sBAAsB;QACzB,MAAM,IAAIC,MAAM,CAAC,WAAW,EAAEP,cAAc,eAAe,CAAC;IAC9D;IAEA,MAAMD,QAAQS,4BAAc,KAACZ;QAAgBE,MAAMA;QAAMH,MAAMK;;AACjE,GACA;IACES,aAAa;IACbL,SAAS;QACPT,MAAM;YACJe,MAAM;QACR;QACAC,UAAU;YACRD,MAAM;QACR;IACF;AACF,GACA"}
@@ -0,0 +1,10 @@
1
+ import { type CommandArguments } from '@jakubmazanec/cli';
2
+ import Observable from 'zen-observable';
3
+ import { type createWorkspaceCommand } from './createWorkspaceCommand.js';
4
+ export type CreateWorkspaceOptions = {
5
+ workspacePath: string;
6
+ templateId: string;
7
+ args: CommandArguments<typeof createWorkspaceCommand>;
8
+ };
9
+ export type CreateWorkspaceStatus = string;
10
+ export declare function runCreateWorkspace({ workspacePath, templateId, args }: CreateWorkspaceOptions): Observable<string>;
@@ -0,0 +1,33 @@
1
+ import { isEmptyDirectory } from '@jakubmazanec/fs-utils';
2
+ import fs from 'fs-extra';
3
+ import path from 'node:path';
4
+ import Observable from 'zen-observable';
5
+ import { Workspace } from '../../workspace.js';
6
+ export function runCreateWorkspace({ workspacePath , templateId , args }) {
7
+ return new Observable((observer)=>{
8
+ (async ()=>{
9
+ observer.next('TODO');
10
+ let resolvedWorkspacePath = path.resolve(workspacePath);
11
+ await fs.ensureDir(resolvedWorkspacePath);
12
+ let isWorkspacePathEmpty = await isEmptyDirectory(resolvedWorkspacePath);
13
+ if (!isWorkspacePathEmpty) {
14
+ throw new Error(`Directory "${resolvedWorkspacePath}" must be empty`);
15
+ }
16
+ // create new workspace
17
+ let workspace = await Workspace.create({
18
+ args,
19
+ path: resolvedWorkspacePath,
20
+ templateId
21
+ });
22
+ await workspace.update({
23
+ args
24
+ });
25
+ })().then(()=>{
26
+ observer.complete();
27
+ }).catch((error)=>{
28
+ observer.error(error);
29
+ });
30
+ });
31
+ }
32
+
33
+ //# sourceMappingURL=runCreateWorkspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/commands/create-workspace/runCreateWorkspace.ts"],"sourcesContent":["import {type CommandArguments} from '@jakubmazanec/cli';\nimport {isEmptyDirectory} from '@jakubmazanec/fs-utils';\nimport fs from 'fs-extra';\nimport path from 'node:path';\nimport Observable from 'zen-observable';\n\nimport {type createWorkspaceCommand} from './createWorkspaceCommand.js';\nimport {Workspace} from '../../workspace.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('TODO');\n\n let resolvedWorkspacePath = path.resolve(workspacePath);\n\n await fs.ensureDir(resolvedWorkspacePath);\n\n let isWorkspacePathEmpty = await isEmptyDirectory(resolvedWorkspacePath);\n\n if (!isWorkspacePathEmpty) {\n throw new Error(`Directory \"${resolvedWorkspacePath}\" must be empty`);\n }\n\n // create new workspace\n let workspace = await Workspace.create({\n args,\n path: resolvedWorkspacePath,\n templateId,\n });\n\n await workspace.update({args});\n })()\n .then(() => {\n observer.complete();\n })\n .catch((error) => {\n observer.error(error);\n });\n });\n}\n"],"names":["isEmptyDirectory","fs","path","Observable","Workspace","runCreateWorkspace","workspacePath","templateId","args","observer","next","resolvedWorkspacePath","resolve","ensureDir","isWorkspacePathEmpty","Error","workspace","create","update","then","complete","catch","error"],"mappings":"AACA,SAAQA,gBAAgB,QAAO,yBAAyB;AACxD,OAAOC,QAAQ,WAAW;AAC1B,OAAOC,UAAU,YAAY;AAC7B,OAAOC,gBAAgB,iBAAiB;AAGxC,SAAQC,SAAS,QAAO,qBAAqB;AAU7C,OAAO,SAASC,mBAAmB,EAACC,cAAa,EAAEC,WAAU,EAAEC,KAAI,EAAyB;IAC1F,OAAO,IAAIL,WAAkC,CAACM;QAC3C,CAAA;YACCA,SAASC,KAAK;YAEd,IAAIC,wBAAwBT,KAAKU,QAAQN;YAEzC,MAAML,GAAGY,UAAUF;YAEnB,IAAIG,uBAAuB,MAAMd,iBAAiBW;YAElD,IAAI,CAACG,sBAAsB;gBACzB,MAAM,IAAIC,MAAM,CAAC,WAAW,EAAEJ,sBAAsB,eAAe,CAAC;YACtE;YAEA,uBAAuB;YACvB,IAAIK,YAAY,MAAMZ,UAAUa,OAAO;gBACrCT;gBACAN,MAAMS;gBACNJ;YACF;YAEA,MAAMS,UAAUE,OAAO;gBAACV;YAAI;QAC9B,CAAA,IACGW,KAAK;YACJV,SAASW;QACX,GACCC,MAAM,CAACC;YACNb,SAASa,MAAMA;QACjB;IACJ;AACF"}
@@ -0,0 +1,4 @@
1
+ export * from './create-workspace/CreateWorkspaceInput.js';
2
+ export * from './create-workspace/runCreateWorkspace.js';
3
+ export * from './create-workspace/CreateWorkspace.js';
4
+ export * from './create-workspace/createWorkspaceCommand.js';
@@ -0,0 +1,6 @@
1
+ export * from './create-workspace/CreateWorkspaceInput.js';
2
+ export * from './create-workspace/runCreateWorkspace.js';
3
+ export * from './create-workspace/CreateWorkspace.js';
4
+ export * from './create-workspace/createWorkspaceCommand.js';
5
+
6
+ //# sourceMappingURL=create-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/commands/create-workspace.ts"],"sourcesContent":["export * from './create-workspace/CreateWorkspaceInput.js';\nexport * from './create-workspace/runCreateWorkspace.js';\nexport * from './create-workspace/CreateWorkspace.js';\nexport * from './create-workspace/createWorkspaceCommand.js';\n"],"names":[],"mappings":"AAAA,cAAc,6CAA6C;AAC3D,cAAc,2CAA2C;AACzD,cAAc,wCAAwC;AACtD,cAAc,+CAA+C"}
@@ -0,0 +1 @@
1
+ export declare function packageNameToDirectory(packageName: string): string;
@@ -0,0 +1,12 @@
1
+ export function packageNameToDirectory(packageName) {
2
+ const packageNameParts = packageName.split('/');
3
+ if (packageNameParts.length === 1) {
4
+ return packageNameParts[0];
5
+ }
6
+ if (packageNameParts.length > 1 && packageName[0] !== '@') {
7
+ return packageNameParts[0];
8
+ }
9
+ return packageNameParts[1];
10
+ }
11
+
12
+ //# sourceMappingURL=packageNameToDirectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/commands/internals/packageNameToDirectory.ts"],"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"],"names":["packageNameToDirectory","packageName","packageNameParts","split","length"],"mappings":"AAAA,OAAO,SAASA,uBAAuBC,WAAmB;IACxD,MAAMC,mBAAmBD,YAAYE,MAAM;IAE3C,IAAID,iBAAiBE,WAAW,GAAG;QACjC,OAAOF,gBAAgB,CAAC,EAAE;IAC5B;IAEA,IAAIA,iBAAiBE,SAAS,KAAKH,WAAW,CAAC,EAAE,KAAK,KAAK;QACzD,OAAOC,gBAAgB,CAAC,EAAE;IAC5B;IAEA,OAAOA,gBAAgB,CAAC,EAAE;AAC5B"}
@@ -0,0 +1 @@
1
+ export * from './internals/packageNameToDirectory.js';
@@ -0,0 +1,3 @@
1
+ export * from './internals/packageNameToDirectory.js';
2
+
3
+ //# sourceMappingURL=internals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/commands/internals.ts"],"sourcesContent":["export * from './internals/packageNameToDirectory.js';\n"],"names":[],"mappings":"AAAA,cAAc,wCAAwC"}
@@ -0,0 +1,8 @@
1
+ import { type CommandArguments } from '@jakubmazanec/cli';
2
+ import { type updateWorkspaceCommand } from './updateWorkspaceCommand.js';
3
+ import { type Workspace } from '../../workspace.js';
4
+ export type UpdateWorkspaceProps = {
5
+ args: CommandArguments<typeof updateWorkspaceCommand>;
6
+ workspace: Workspace | Workspace<false>;
7
+ };
8
+ export declare function UpdateWorkspace({ workspace, args }: UpdateWorkspaceProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,71 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Header, icons, colors, useProgram } from '@jakubmazanec/cli';
3
+ import chalk from 'chalk';
4
+ import { Box, Text } from 'ink';
5
+ import { useEffect, useState } from 'react';
6
+ import { runUpdateWorkspace } from './runUpdateWorkspace.js';
7
+ export function UpdateWorkspace({ workspace , args }) {
8
+ let [isFinished, setIsFinished] = useState(false);
9
+ let [jobs, setJobs] = useState([]);
10
+ let { exit } = useProgram();
11
+ useEffect(()=>{
12
+ let subscription = runUpdateWorkspace({
13
+ workspace,
14
+ args
15
+ }).subscribe({
16
+ next (value) {
17
+ setJobs((previousJobs)=>[
18
+ ...previousJobs,
19
+ value
20
+ ]);
21
+ },
22
+ error (error) {
23
+ exit(error);
24
+ },
25
+ complete () {
26
+ setIsFinished(true);
27
+ }
28
+ });
29
+ return ()=>{
30
+ subscription.unsubscribe();
31
+ };
32
+ }, [
33
+ args,
34
+ exit,
35
+ workspace
36
+ ]);
37
+ return /*#__PURE__*/ _jsxs(Box, {
38
+ flexDirection: "column",
39
+ children: [
40
+ /*#__PURE__*/ _jsx(Text, {
41
+ children: `Updating workspace at ${chalk[colors.info](workspace.path)}.`
42
+ }),
43
+ /*#__PURE__*/ _jsxs(Box, {
44
+ marginTop: 1,
45
+ flexDirection: "column",
46
+ children: [
47
+ /*#__PURE__*/ _jsx(Header, {
48
+ showSpinner: !isFinished,
49
+ icon: icons.success,
50
+ marginBottom: 1,
51
+ children: /*#__PURE__*/ _jsx(Text, {
52
+ children: "Updating workspace..."
53
+ })
54
+ }),
55
+ jobs.map((job)=>/*#__PURE__*/ _jsx(Text, {
56
+ children: `${icons.info} ${job}`
57
+ }, job))
58
+ ]
59
+ }),
60
+ isFinished ? /*#__PURE__*/ _jsx(Header, {
61
+ marginTop: 1,
62
+ icon: icons.success,
63
+ children: /*#__PURE__*/ _jsx(Text, {
64
+ children: "Done."
65
+ })
66
+ }) : null
67
+ ]
68
+ });
69
+ }
70
+
71
+ //# sourceMappingURL=UpdateWorkspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/commands/update-workspace/UpdateWorkspace.tsx"],"sourcesContent":["import {type CommandArguments, Header, icons, colors, useProgram} from '@jakubmazanec/cli';\nimport chalk from 'chalk';\nimport {Box, Text} from 'ink';\nimport {useEffect, useState} from 'react';\n\nimport {runUpdateWorkspace} from './runUpdateWorkspace.js';\nimport {type updateWorkspaceCommand} from './updateWorkspaceCommand.js';\nimport {type Workspace} from '../../workspace.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...</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"],"names":["Header","icons","colors","useProgram","chalk","Box","Text","useEffect","useState","runUpdateWorkspace","UpdateWorkspace","workspace","args","isFinished","setIsFinished","jobs","setJobs","exit","subscription","subscribe","next","value","previousJobs","error","complete","unsubscribe","flexDirection","info","path","marginTop","showSpinner","icon","success","marginBottom","map","job"],"mappings":";AAAA,SAA+BA,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,UAAU,QAAO,oBAAoB;AAC3F,OAAOC,WAAW,QAAQ;AAC1B,SAAQC,GAAG,EAAEC,IAAI,QAAO,MAAM;AAC9B,SAAQC,SAAS,EAAEC,QAAQ,QAAO,QAAQ;AAE1C,SAAQC,kBAAkB,QAAO,0BAA0B;AAS3D,OAAO,SAASC,gBAAgB,EAACC,UAAS,EAAEC,KAAI,EAAuB;IACrE,IAAI,CAACC,YAAYC,cAAc,GAAGN,SAAS;IAC3C,IAAI,CAACO,MAAMC,QAAQ,GAAGR,SAAmB,EAAE;IAC3C,IAAI,EAACS,KAAI,EAAC,GAAGd;IAEbI,UAAU;QACR,IAAIW,eAAeT,mBAAmB;YAACE;YAAWC;QAAI,GAAGO,UAAU;YACjEC,MAAKC,KAAK;gBACRL,QAAQ,CAACM,eAAiB;2BAAIA;wBAAcD;qBAAM;YACpD;YACAE,OAAMA,KAAK;gBACTN,KAAKM;YACP;YACAC;gBACEV,cAAc;YAChB;QACF;QAEA,OAAO;YACLI,aAAaO;QACf;IACF,GAAG;QAACb;QAAMK;QAAMN;KAAU;IAE1B,qBACE,MAACN;QAAIqB,eAAc;;0BACjB,KAACpB;0BAAM,CAAC,sBAAsB,EAAEF,KAAK,CAACF,OAAOyB,KAAK,CAAChB,UAAUiB,MAAM,CAAC,CAAC;;0BAErE,MAACvB;gBAAIwB,WAAW;gBAAGH,eAAc;;kCAC/B,KAAC1B;wBAAO8B,aAAa,CAACjB;wBAAYkB,MAAM9B,MAAM+B;wBAASC,cAAc;kCACnE,cAAA,KAAC3B;sCAAK;;;oBAGPS,KAAKmB,IAAI,CAACC,oBACT,KAAC7B;sCAAgB,CAAC,EAAEL,MAAM0B,KAAK,CAAC,EAAEQ,IAAI,CAAC;2BAA5BA;;;YAIdtB,2BACC,KAACb;gBAAO6B,WAAW;gBAAGE,MAAM9B,MAAM+B;0BAChC,cAAA,KAAC1B;8BAAK;;iBAEN;;;AAGV"}
@@ -0,0 +1,10 @@
1
+ import { type CommandArguments } from '@jakubmazanec/cli';
2
+ import Observable from 'zen-observable';
3
+ import { type updateWorkspaceCommand } from './updateWorkspaceCommand.js';
4
+ import { type Workspace } from '../../workspace.js';
5
+ export type UpdateWorkspaceAndProjectsOptions = {
6
+ workspace: Workspace | Workspace<false>;
7
+ args: CommandArguments<typeof updateWorkspaceCommand>;
8
+ };
9
+ export type UpdateWorkspaceAndProjectsStatus = string;
10
+ export declare function runUpdateWorkspace({ workspace, args }: UpdateWorkspaceAndProjectsOptions): Observable<string>;
@@ -0,0 +1,25 @@
1
+ import Observable from 'zen-observable';
2
+ export function runUpdateWorkspace({ workspace , args }) {
3
+ return new Observable((observer)=>{
4
+ (async ()=>{
5
+ // update workspace
6
+ observer.next('Updating workspace');
7
+ await workspace.update({
8
+ args
9
+ });
10
+ // update projects
11
+ for (let project of workspace.projects){
12
+ observer.next(`Updating project ${project.name ?? '?'}`);
13
+ await project.update({
14
+ args
15
+ });
16
+ }
17
+ })().then(()=>{
18
+ observer.complete();
19
+ }).catch((error)=>{
20
+ observer.error(error);
21
+ });
22
+ });
23
+ }
24
+
25
+ //# sourceMappingURL=runUpdateWorkspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/commands/update-workspace/runUpdateWorkspace.ts"],"sourcesContent":["import {type CommandArguments} from '@jakubmazanec/cli';\nimport Observable from 'zen-observable';\n\nimport {type updateWorkspaceCommand} from './updateWorkspaceCommand.js';\nimport {type Workspace} from '../../workspace.js';\n\nexport type UpdateWorkspaceAndProjectsOptions = {\n workspace: Workspace | Workspace<false>;\n args: CommandArguments<typeof updateWorkspaceCommand>;\n};\n\nexport type UpdateWorkspaceAndProjectsStatus = string;\n\nexport function runUpdateWorkspace({workspace, args}: UpdateWorkspaceAndProjectsOptions) {\n return new Observable<UpdateWorkspaceAndProjectsStatus>((observer) => {\n (async () => {\n // update workspace\n observer.next('Updating workspace');\n\n await workspace.update({args});\n\n // update projects\n for (let project of workspace.projects) {\n observer.next(`Updating project ${project.name ?? '?'}`);\n\n await project.update({args});\n }\n })()\n .then(() => {\n observer.complete();\n })\n .catch((error) => {\n observer.error(error);\n });\n });\n}\n"],"names":["Observable","runUpdateWorkspace","workspace","args","observer","next","update","project","projects","name","then","complete","catch","error"],"mappings":"AACA,OAAOA,gBAAgB,iBAAiB;AAYxC,OAAO,SAASC,mBAAmB,EAACC,UAAS,EAAEC,KAAI,EAAoC;IACrF,OAAO,IAAIH,WAA6C,CAACI;QACtD,CAAA;YACC,mBAAmB;YACnBA,SAASC,KAAK;YAEd,MAAMH,UAAUI,OAAO;gBAACH;YAAI;YAE5B,kBAAkB;YAClB,KAAK,IAAII,WAAWL,UAAUM,SAAU;gBACtCJ,SAASC,KAAK,CAAC,iBAAiB,EAAEE,QAAQE,QAAQ,IAAI,CAAC;gBAEvD,MAAMF,QAAQD,OAAO;oBAACH;gBAAI;YAC5B;QACF,CAAA,IACGO,KAAK;YACJN,SAASO;QACX,GACCC,MAAM,CAACC;YACNT,SAASS,MAAMA;QACjB;IACJ;AACF"}
@@ -0,0 +1,6 @@
1
+ import { Command } from '@jakubmazanec/cli';
2
+ export declare const updateWorkspaceCommand: Command<"update workspace", undefined, {
3
+ path: {
4
+ type: "string";
5
+ };
6
+ }, false, false>;
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Command } from '@jakubmazanec/cli';
3
+ import path from 'node:path';
4
+ import { UpdateWorkspace } from './UpdateWorkspace.js';
5
+ import { Workspace } from '../../workspace.js';
6
+ export const updateWorkspaceCommand = new Command('update workspace', async (args, program)=>{
7
+ let resolvedPath = path.resolve(process.cwd(), args.options.path ?? '');
8
+ let workspace = await Workspace.findAndRead(resolvedPath);
9
+ if (!workspace) {
10
+ throw new Error(`No workspace found at "${resolvedPath}"!`);
11
+ }
12
+ await program.renderElement(/*#__PURE__*/ _jsx(UpdateWorkspace, {
13
+ workspace: workspace,
14
+ args: args
15
+ }));
16
+ }, {
17
+ description: 'Updates files in a workspace.',
18
+ options: {
19
+ path: {
20
+ type: 'string'
21
+ }
22
+ }
23
+ });
24
+
25
+ //# sourceMappingURL=updateWorkspaceCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/commands/update-workspace/updateWorkspaceCommand.tsx"],"sourcesContent":["import {Command} from '@jakubmazanec/cli';\nimport path from 'node:path';\n\nimport {UpdateWorkspace} from './UpdateWorkspace.js';\nimport {Workspace} from '../../workspace.js';\n\nexport const updateWorkspaceCommand = new Command(\n 'update workspace',\n async (args, program) => {\n let resolvedPath = path.resolve(process.cwd(), args.options.path ?? '');\n let workspace = await Workspace.findAndRead(resolvedPath);\n\n if (!workspace) {\n throw new Error(`No workspace found at \"${resolvedPath}\"!`);\n }\n\n await program.renderElement(<UpdateWorkspace workspace={workspace} args={args} />);\n },\n {\n description: 'Updates files in a workspace.',\n options: {\n path: {\n type: 'string',\n },\n },\n },\n);\n"],"names":["Command","path","UpdateWorkspace","Workspace","updateWorkspaceCommand","args","program","resolvedPath","resolve","process","cwd","options","workspace","findAndRead","Error","renderElement","description","type"],"mappings":";AAAA,SAAQA,OAAO,QAAO,oBAAoB;AAC1C,OAAOC,UAAU,YAAY;AAE7B,SAAQC,eAAe,QAAO,uBAAuB;AACrD,SAAQC,SAAS,QAAO,qBAAqB;AAE7C,OAAO,MAAMC,yBAAyB,IAAIJ,QACxC,oBACA,OAAOK,MAAMC;IACX,IAAIC,eAAeN,KAAKO,QAAQC,QAAQC,OAAOL,KAAKM,QAAQV,QAAQ;IACpE,IAAIW,YAAY,MAAMT,UAAUU,YAAYN;IAE5C,IAAI,CAACK,WAAW;QACd,MAAM,IAAIE,MAAM,CAAC,uBAAuB,EAAEP,aAAa,EAAE,CAAC;IAC5D;IAEA,MAAMD,QAAQS,4BAAc,KAACb;QAAgBU,WAAWA;QAAWP,MAAMA;;AAC3E,GACA;IACEW,aAAa;IACbL,SAAS;QACPV,MAAM;YACJgB,MAAM;QACR;IACF;AACF,GACA"}
@@ -0,0 +1,3 @@
1
+ export * from './update-workspace/runUpdateWorkspace.js';
2
+ export * from './update-workspace/UpdateWorkspace.js';
3
+ export * from './update-workspace/updateWorkspaceCommand.js';
@@ -0,0 +1,5 @@
1
+ export * from './update-workspace/runUpdateWorkspace.js';
2
+ export * from './update-workspace/UpdateWorkspace.js';
3
+ export * from './update-workspace/updateWorkspaceCommand.js';
4
+
5
+ //# sourceMappingURL=update-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/commands/update-workspace.ts"],"sourcesContent":["export * from './update-workspace/runUpdateWorkspace.js';\nexport * from './update-workspace/UpdateWorkspace.js';\nexport * from './update-workspace/updateWorkspaceCommand.js';\n"],"names":[],"mappings":"AAAA,cAAc,2CAA2C;AACzD,cAAc,wCAAwC;AACtD,cAAc,+CAA+C"}
@@ -0,0 +1,3 @@
1
+ export * from './commands/create-project.js';
2
+ export * from './commands/create-workspace.js';
3
+ export * from './commands/update-workspace.js';
@@ -0,0 +1,5 @@
1
+ export * from './commands/create-project.js';
2
+ export * from './commands/create-workspace.js';
3
+ export * from './commands/update-workspace.js';
4
+
5
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands.ts"],"sourcesContent":["export * from './commands/create-project.js';\nexport * from './commands/create-workspace.js';\nexport * from './commands/update-workspace.js';\n"],"names":[],"mappings":"AAAA,cAAc,+BAA+B;AAC7C,cAAc,iCAAiC;AAC/C,cAAc,iCAAiC"}
@@ -0,0 +1,7 @@
1
+ export declare const PACKAGE_PATH: string;
2
+ export declare const CARSON_CONFIG_DIRECTORY = ".carson";
3
+ export declare const PROJECT_CONFIG_FILENAME = "project.json";
4
+ export declare const WORKSPACE_CONFIG_FILENAME = "workspace.json";
5
+ export declare const SNAPSHOTS_FILENAME = ".snapshots";
6
+ export declare const TEMPLATES_PATH = "templates";
7
+ export declare const TEMPLATE_CONFIG_FILENAME = "config.json";
@@ -0,0 +1,16 @@
1
+ import path from 'node:path';
2
+ import url from 'node:url';
3
+ let directory = path.dirname(url.fileURLToPath(import.meta.url));
4
+ export const PACKAGE_PATH = path.resolve(directory, '..');
5
+ // import path from 'node:path';
6
+ // import url from 'node:url';
7
+ // let directory = path.dirname(url.fileURLToPath(import.meta.url));
8
+ export const CARSON_CONFIG_DIRECTORY = '.carson';
9
+ export const PROJECT_CONFIG_FILENAME = 'project.json';
10
+ export const WORKSPACE_CONFIG_FILENAME = 'workspace.json';
11
+ export const SNAPSHOTS_FILENAME = '.snapshots';
12
+ export const TEMPLATES_PATH = 'templates';
13
+ // config files in carson template package
14
+ export const TEMPLATE_CONFIG_FILENAME = 'config.json';
15
+
16
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/constants.ts"],"sourcesContent":["import path from 'node:path';\nimport url from 'node:url';\n\nlet directory = path.dirname(url.fileURLToPath(import.meta.url));\n\nexport const PACKAGE_PATH = path.resolve(directory, '..');\n\n// import path from 'node:path';\n// import url from 'node:url';\n\n// let directory = path.dirname(url.fileURLToPath(import.meta.url));\n\nexport const CARSON_CONFIG_DIRECTORY = '.carson';\nexport const PROJECT_CONFIG_FILENAME = 'project.json';\nexport const WORKSPACE_CONFIG_FILENAME = 'workspace.json';\nexport const SNAPSHOTS_FILENAME = '.snapshots';\n\nexport const TEMPLATES_PATH = 'templates';\n\n// config files in carson template package\nexport const TEMPLATE_CONFIG_FILENAME = 'config.json';\n"],"names":["path","url","directory","dirname","fileURLToPath","PACKAGE_PATH","resolve","CARSON_CONFIG_DIRECTORY","PROJECT_CONFIG_FILENAME","WORKSPACE_CONFIG_FILENAME","SNAPSHOTS_FILENAME","TEMPLATES_PATH","TEMPLATE_CONFIG_FILENAME"],"mappings":"AAAA,OAAOA,UAAU,YAAY;AAC7B,OAAOC,SAAS,WAAW;AAE3B,IAAIC,YAAYF,KAAKG,QAAQF,IAAIG,cAAc,YAAYH;AAE3D,OAAO,MAAMI,eAAeL,KAAKM,QAAQJ,WAAW,MAAM;AAE1D,gCAAgC;AAChC,8BAA8B;AAE9B,oEAAoE;AAEpE,OAAO,MAAMK,0BAA0B,UAAU;AACjD,OAAO,MAAMC,0BAA0B,eAAe;AACtD,OAAO,MAAMC,4BAA4B,iBAAiB;AAC1D,OAAO,MAAMC,qBAAqB,aAAa;AAE/C,OAAO,MAAMC,iBAAiB,YAAY;AAE1C,0CAA0C;AAC1C,OAAO,MAAMC,2BAA2B,cAAc"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './commands.js';
2
+ export * from './template.js';
3
+ export * from './workspace.js';
package/dist/main.js ADDED
@@ -0,0 +1,5 @@
1
+ export * from './commands.js';
2
+ export * from './template.js';
3
+ export * from './workspace.js';
4
+
5
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main.ts"],"sourcesContent":["export * from './commands.js';\nexport * from './template.js';\nexport * from './workspace.js';\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=modules.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/modules.d.ts"],"names":[],"mappings":""}
package/dist/run.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/dist/run.js ADDED
@@ -0,0 +1,18 @@
1
+ import { Program, getProgramDetail } from '@jakubmazanec/cli';
2
+ import { readPackageJson } from '@jakubmazanec/zod-utils';
3
+ import path from 'node:path';
4
+ import { createWorkspaceCommand, updateWorkspaceCommand, createProjectCommand } from './commands.js';
5
+ import { PACKAGE_PATH } from './constants.js';
6
+ let programDetail = getProgramDetail(await readPackageJson(path.join(PACKAGE_PATH, 'package.json'), {
7
+ throwOnZodError: true
8
+ }));
9
+ let program = new Program({
10
+ ...programDetail,
11
+ name: 'Carson'
12
+ });
13
+ program.addCommand(createWorkspaceCommand);
14
+ program.addCommand(createProjectCommand);
15
+ program.addCommand(updateWorkspaceCommand);
16
+ await program.run(process.argv.slice(2));
17
+
18
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/run.ts"],"sourcesContent":["import {Program, getProgramDetail} from '@jakubmazanec/cli';\nimport {readPackageJson} from '@jakubmazanec/zod-utils';\nimport path from 'node:path';\n\nimport {createWorkspaceCommand, updateWorkspaceCommand, createProjectCommand} from './commands.js';\nimport {PACKAGE_PATH} from './constants.js';\n\nlet programDetail = getProgramDetail(\n await readPackageJson(path.join(PACKAGE_PATH, 'package.json'), {throwOnZodError: true}),\n);\n\nlet program = new Program({\n ...programDetail,\n name: 'Carson',\n});\n\nprogram.addCommand(createWorkspaceCommand);\nprogram.addCommand(createProjectCommand);\nprogram.addCommand(updateWorkspaceCommand);\n\nawait program.run(process.argv.slice(2));\n"],"names":["Program","getProgramDetail","readPackageJson","path","createWorkspaceCommand","updateWorkspaceCommand","createProjectCommand","PACKAGE_PATH","programDetail","join","throwOnZodError","program","name","addCommand","run","process","argv","slice"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,gBAAgB,QAAO,oBAAoB;AAC5D,SAAQC,eAAe,QAAO,0BAA0B;AACxD,OAAOC,UAAU,YAAY;AAE7B,SAAQC,sBAAsB,EAAEC,sBAAsB,EAAEC,oBAAoB,QAAO,gBAAgB;AACnG,SAAQC,YAAY,QAAO,iBAAiB;AAE5C,IAAIC,gBAAgBP,iBAClB,MAAMC,gBAAgBC,KAAKM,KAAKF,cAAc,iBAAiB;IAACG,iBAAiB;AAAI;AAGvF,IAAIC,UAAU,IAAIX,QAAQ;IACxB,GAAGQ,aAAa;IAChBI,MAAM;AACR;AAEAD,QAAQE,WAAWT;AACnBO,QAAQE,WAAWP;AACnBK,QAAQE,WAAWR;AAEnB,MAAMM,QAAQG,IAAIC,QAAQC,KAAKC,MAAM"}
@@ -0,0 +1,9 @@
1
+ import { type Template } from '@jakubmazanec/template';
2
+ import { type CarsonTemplateConfig } from './CarsonTemplateConfig.js';
3
+ import { type templateAttributesSchema } from './TemplateAttributes.js';
4
+ import { type templateDataSchema } from './TemplateData.js';
5
+ export type CarsonTemplate = {
6
+ name: string;
7
+ config: CarsonTemplateConfig;
8
+ files: Array<Template<typeof templateAttributesSchema, typeof templateDataSchema>>;
9
+ };
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=CarsonTemplate.js.map