@jakubmazanec/carson 0.3.0-unstable.feec6e4 → 1.0.0-next.6fd9f2b
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.
- package/README.md +1 -1
- package/bin/carson.js +1 -1
- package/build/commands/create-project/CreateProject.js +97 -0
- package/build/commands/create-project/CreateProject.js.map +7 -0
- package/build/commands/create-project/CreateProjectInput.js +35 -0
- package/build/commands/create-project/CreateProjectInput.js.map +7 -0
- package/{dist → build}/commands/create-project/createProjectCommand.d.ts +6 -6
- package/build/commands/create-project/createProjectCommand.js +37 -0
- package/build/commands/create-project/createProjectCommand.js.map +7 -0
- package/build/commands/create-project/runCreateProject.js +28 -0
- package/build/commands/create-project/runCreateProject.js.map +7 -0
- package/build/commands/create-project.js +6 -0
- package/build/commands/create-project.js.map +7 -0
- package/build/commands/create-workspace/CreateWorkspace.js +68 -0
- package/build/commands/create-workspace/CreateWorkspace.js.map +7 -0
- package/build/commands/create-workspace/CreateWorkspaceInput.js +19 -0
- package/build/commands/create-workspace/CreateWorkspaceInput.js.map +7 -0
- package/{dist → build}/commands/create-workspace/createWorkspaceCommand.d.ts +4 -4
- package/build/commands/create-workspace/createWorkspaceCommand.js +22 -0
- package/build/commands/create-workspace/createWorkspaceCommand.js.map +7 -0
- package/build/commands/create-workspace/runCreateWorkspace.js +22 -0
- package/build/commands/create-workspace/runCreateWorkspace.js.map +7 -0
- package/build/commands/create-workspace.js +6 -0
- package/build/commands/create-workspace.js.map +7 -0
- package/build/commands/internals/CommandStatus.js +2 -0
- package/build/commands/internals/CommandStatus.js.map +7 -0
- package/build/commands/internals/packageNameToDirectory.js +12 -0
- package/build/commands/internals/packageNameToDirectory.js.map +7 -0
- package/build/commands/internals.js +4 -0
- package/build/commands/internals.js.map +7 -0
- package/build/commands/update-workspace/UpdateWorkspace.js +37 -0
- package/build/commands/update-workspace/UpdateWorkspace.js.map +7 -0
- package/build/commands/update-workspace/runUpdateWorkspace.js +19 -0
- package/build/commands/update-workspace/runUpdateWorkspace.js.map +7 -0
- package/{dist → build}/commands/update-workspace/updateWorkspaceCommand.d.ts +2 -2
- package/build/commands/update-workspace/updateWorkspaceCommand.js +31 -0
- package/build/commands/update-workspace/updateWorkspaceCommand.js.map +7 -0
- package/build/commands/update-workspace.js +5 -0
- package/build/commands/update-workspace.js.map +7 -0
- package/build/commands.js +5 -0
- package/build/commands.js.map +7 -0
- package/build/constants.js +14 -0
- package/build/constants.js.map +7 -0
- package/build/main.js +5 -0
- package/build/main.js.map +7 -0
- package/build/modules.d.js +2 -0
- package/build/modules.d.js.map +7 -0
- package/build/run.js +19 -0
- package/build/run.js.map +7 -0
- package/build/template/CarsonTemplate.js +2 -0
- package/build/template/CarsonTemplate.js.map +7 -0
- package/build/template/CarsonTemplateConfig.js +8 -0
- package/build/template/CarsonTemplateConfig.js.map +7 -0
- package/build/template/CarsonTemplateError.js +15 -0
- package/build/template/CarsonTemplateError.js.map +7 -0
- package/build/template/TemplateAttributes.js +14 -0
- package/build/template/TemplateAttributes.js.map +7 -0
- package/build/template/TemplateData.js +10 -0
- package/build/template/TemplateData.js.map +7 -0
- package/build/template/TemplateRender.js +2 -0
- package/build/template/TemplateRender.js.map +7 -0
- package/build/template/TemplateRenders.js +2 -0
- package/build/template/TemplateRenders.js.map +7 -0
- package/build/template/applyTemplateRenders.js +94 -0
- package/build/template/applyTemplateRenders.js.map +7 -0
- package/build/template/internals/TemplateRenderSnapshot.js +12 -0
- package/build/template/internals/TemplateRenderSnapshot.js.map +7 -0
- package/build/template/internals/TemplateRenderSnapshots.js +4 -0
- package/build/template/internals/TemplateRenderSnapshots.js.map +7 -0
- package/build/template/internals/createUsingTemplateRender.js +42 -0
- package/build/template/internals/createUsingTemplateRender.js.map +7 -0
- package/build/template/internals/deleteUsingTemplateRender.js +20 -0
- package/build/template/internals/deleteUsingTemplateRender.js.map +7 -0
- package/build/template/internals/importCarsonTemplate.js +8 -0
- package/build/template/internals/importCarsonTemplate.js.map +7 -0
- package/build/template/internals/insertUsingTemplateRender.js +40 -0
- package/build/template/internals/insertUsingTemplateRender.js.map +7 -0
- package/build/template/internals/loadTemplateRenderSnapshots.js +16 -0
- package/build/template/internals/loadTemplateRenderSnapshots.js.map +7 -0
- package/build/template/internals/merge.js +29 -0
- package/build/template/internals/merge.js.map +7 -0
- package/build/template/internals/mergeUsingTemplateRender.js +49 -0
- package/build/template/internals/mergeUsingTemplateRender.js.map +7 -0
- package/build/template/internals/overwriteUsingTemplateRender.js +10 -0
- package/build/template/internals/overwriteUsingTemplateRender.js.map +7 -0
- package/build/template/internals/parseCarsonTemplateId.js +12 -0
- package/build/template/internals/parseCarsonTemplateId.js.map +7 -0
- package/build/template/internals/prettify.js +21 -0
- package/build/template/internals/prettify.js.map +7 -0
- package/build/template/internals/readCarsonTemplate.js +44 -0
- package/build/template/internals/readCarsonTemplate.js.map +7 -0
- package/build/template/internals/resolveModule.js +9 -0
- package/build/template/internals/resolveModule.js.map +7 -0
- package/build/template/internals/saveTemplateRenderSnapshots.js +23 -0
- package/build/template/internals/saveTemplateRenderSnapshots.js.map +7 -0
- package/build/template/internals/uninsertUsingTemplateRender.js +40 -0
- package/build/template/internals/uninsertUsingTemplateRender.js.map +7 -0
- package/build/template/internals/unmerge.js +32 -0
- package/build/template/internals/unmerge.js.map +7 -0
- package/build/template/internals/unmergeUsingTemplateRender.js +41 -0
- package/build/template/internals/unmergeUsingTemplateRender.js.map +7 -0
- package/build/template/internals.js +20 -0
- package/build/template/internals.js.map +7 -0
- package/build/template/renderCarsonTemplate.js +42 -0
- package/build/template/renderCarsonTemplate.js.map +7 -0
- package/build/template.js +11 -0
- package/build/template.js.map +7 -0
- package/build/workspace/Project.js +205 -0
- package/build/workspace/Project.js.map +7 -0
- package/build/workspace/ProjectConfig.js +6 -0
- package/build/workspace/ProjectConfig.js.map +7 -0
- package/build/workspace/ProjectCreateOptions.js +2 -0
- package/build/workspace/ProjectCreateOptions.js.map +7 -0
- package/{dist → build}/workspace/ProjectError.d.ts +1 -1
- package/build/workspace/ProjectError.js +17 -0
- package/build/workspace/ProjectError.js.map +7 -0
- package/build/workspace/ProjectOptions.js +2 -0
- package/build/workspace/ProjectOptions.js.map +7 -0
- package/build/workspace/ProjectUpdateOptions.js +2 -0
- package/build/workspace/ProjectUpdateOptions.js.map +7 -0
- package/{dist → build}/workspace/Workspace.d.ts +2 -2
- package/build/workspace/Workspace.js +501 -0
- package/build/workspace/Workspace.js.map +7 -0
- package/build/workspace/WorkspaceConfig.js +6 -0
- package/build/workspace/WorkspaceConfig.js.map +7 -0
- package/build/workspace/WorkspaceCreateOptions.js +2 -0
- package/build/workspace/WorkspaceCreateOptions.js.map +7 -0
- package/build/workspace/WorkspaceCreateProjectOptions.js +2 -0
- package/build/workspace/WorkspaceCreateProjectOptions.js.map +7 -0
- package/build/workspace/WorkspaceDependencies.js +143 -0
- package/build/workspace/WorkspaceDependencies.js.map +7 -0
- package/build/workspace/WorkspaceDependenciesFromWorkspaceOptions.js +2 -0
- package/build/workspace/WorkspaceDependenciesFromWorkspaceOptions.js.map +7 -0
- package/build/workspace/WorkspaceDependenciesGetVersionsOptions.js +2 -0
- package/build/workspace/WorkspaceDependenciesGetVersionsOptions.js.map +7 -0
- package/build/workspace/WorkspaceDependency.js +2 -0
- package/build/workspace/WorkspaceDependency.js.map +7 -0
- package/build/workspace/WorkspaceDependencyProject.js +2 -0
- package/build/workspace/WorkspaceDependencyProject.js.map +7 -0
- package/{dist → build}/workspace/WorkspaceError.d.ts +1 -1
- package/{dist → build}/workspace/WorkspaceError.js +12 -10
- package/build/workspace/WorkspaceError.js.map +7 -0
- package/build/workspace/WorkspaceFindAndReadOptions.js +2 -0
- package/build/workspace/WorkspaceFindAndReadOptions.js.map +7 -0
- package/build/workspace/WorkspaceOptions.js +2 -0
- package/build/workspace/WorkspaceOptions.js.map +7 -0
- package/build/workspace/WorkspaceOptionsProject.js +2 -0
- package/build/workspace/WorkspaceOptionsProject.js.map +7 -0
- package/build/workspace/WorkspacePackageJson.js +2 -0
- package/build/workspace/WorkspacePackageJson.js.map +7 -0
- package/build/workspace/WorkspaceProjectGlobs.js +2 -0
- package/build/workspace/WorkspaceProjectGlobs.js.map +7 -0
- package/build/workspace/WorkspaceProjects.js +2 -0
- package/build/workspace/WorkspaceProjects.js.map +7 -0
- package/build/workspace/WorkspaceRepository.js +2 -0
- package/build/workspace/WorkspaceRepository.js.map +7 -0
- package/build/workspace/WorkspaceUpdateOptions.js +2 -0
- package/build/workspace/WorkspaceUpdateOptions.js.map +7 -0
- package/build/workspace/internals/compareProjectPath.js +10 -0
- package/build/workspace/internals/compareProjectPath.js.map +7 -0
- package/build/workspace/internals/compareSemver.js +20 -0
- package/build/workspace/internals/compareSemver.js.map +7 -0
- package/build/workspace/internals/compareWorkspaceDependencyProjectName.js +10 -0
- package/build/workspace/internals/compareWorkspaceDependencyProjectName.js.map +7 -0
- package/build/workspace/internals/containsProject.js +23 -0
- package/build/workspace/internals/containsProject.js.map +7 -0
- package/build/workspace/internals/containsWorkspace.js +20 -0
- package/build/workspace/internals/containsWorkspace.js.map +7 -0
- package/build/workspace/internals/getPackageJsonWorkspaces.js +31 -0
- package/build/workspace/internals/getPackageJsonWorkspaces.js.map +7 -0
- package/build/workspace/internals/getRepositoryBranches.js +26 -0
- package/build/workspace/internals/getRepositoryBranches.js.map +7 -0
- package/build/workspace/internals/getRepositoryUrl.js +19 -0
- package/build/workspace/internals/getRepositoryUrl.js.map +7 -0
- package/build/workspace/internals.js +10 -0
- package/build/workspace/internals.js.map +7 -0
- package/build/workspace/saveProjectConfig.js +15 -0
- package/build/workspace/saveProjectConfig.js.map +7 -0
- package/build/workspace/saveWorkspaceConfig.js +22 -0
- package/build/workspace/saveWorkspaceConfig.js.map +7 -0
- package/build/workspace.js +24 -0
- package/build/workspace.js.map +7 -0
- package/package.json +45 -40
- package/{src → source}/commands/create-project/CreateProject.tsx +7 -7
- package/{src → source}/commands/create-project/CreateProjectInput.ts +1 -1
- package/{src → source}/commands/create-workspace/CreateWorkspace.tsx +6 -6
- package/{src → source}/commands/create-workspace/CreateWorkspaceInput.ts +1 -1
- package/{src → source}/commands/update-workspace/UpdateWorkspace.tsx +4 -4
- package/{src → source}/run.ts +2 -2
- package/{src → source}/template/applyTemplateRenders.ts +10 -10
- package/{src → source}/template/internals/prettify.ts +2 -2
- package/{src → source}/template/internals/readCarsonTemplate.ts +3 -3
- package/{src → source}/workspace/Project.ts +8 -8
- package/{src → source}/workspace/Workspace.ts +21 -27
- package/{src → source}/workspace/WorkspaceDependencies.ts +11 -9
- package/{src → source}/workspace/WorkspaceOptions.ts +3 -2
- package/{src → source}/workspace/internals/compareSemver.ts +6 -4
- package/{src → source}/workspace/internals/getPackageJsonWorkspaces.ts +1 -1
- package/dist/commands/create-project/CreateProject.js +0 -138
- package/dist/commands/create-project/CreateProject.js.map +0 -1
- package/dist/commands/create-project/CreateProjectInput.js +0 -31
- package/dist/commands/create-project/CreateProjectInput.js.map +0 -1
- package/dist/commands/create-project/createProjectCommand.js +0 -38
- package/dist/commands/create-project/createProjectCommand.js.map +0 -1
- package/dist/commands/create-project/runCreateProject.js +0 -24
- package/dist/commands/create-project/runCreateProject.js.map +0 -1
- package/dist/commands/create-project.js +0 -6
- package/dist/commands/create-project.js.map +0 -1
- package/dist/commands/create-workspace/CreateWorkspace.js +0 -104
- package/dist/commands/create-workspace/CreateWorkspace.js.map +0 -1
- package/dist/commands/create-workspace/CreateWorkspaceInput.js +0 -17
- package/dist/commands/create-workspace/CreateWorkspaceInput.js.map +0 -1
- package/dist/commands/create-workspace/createWorkspaceCommand.js +0 -20
- package/dist/commands/create-workspace/createWorkspaceCommand.js.map +0 -1
- package/dist/commands/create-workspace/runCreateWorkspace.js +0 -24
- package/dist/commands/create-workspace/runCreateWorkspace.js.map +0 -1
- package/dist/commands/create-workspace.js +0 -6
- package/dist/commands/create-workspace.js.map +0 -1
- package/dist/commands/internals/CommandStatus.js +0 -3
- package/dist/commands/internals/CommandStatus.js.map +0 -1
- package/dist/commands/internals/packageNameToDirectory.js +0 -12
- package/dist/commands/internals/packageNameToDirectory.js.map +0 -1
- package/dist/commands/internals.js +0 -4
- package/dist/commands/internals.js.map +0 -1
- package/dist/commands/update-workspace/UpdateWorkspace.js +0 -71
- package/dist/commands/update-workspace/UpdateWorkspace.js.map +0 -1
- package/dist/commands/update-workspace/runUpdateWorkspace.js +0 -25
- package/dist/commands/update-workspace/runUpdateWorkspace.js.map +0 -1
- package/dist/commands/update-workspace/updateWorkspaceCommand.js +0 -32
- package/dist/commands/update-workspace/updateWorkspaceCommand.js.map +0 -1
- package/dist/commands/update-workspace.js +0 -5
- package/dist/commands/update-workspace.js.map +0 -1
- package/dist/commands.js +0 -5
- package/dist/commands.js.map +0 -1
- package/dist/constants.js +0 -14
- package/dist/constants.js.map +0 -1
- package/dist/main.js +0 -5
- package/dist/main.js.map +0 -1
- package/dist/modules.d.js +0 -2
- package/dist/modules.d.js.map +0 -1
- package/dist/run.js +0 -19
- package/dist/run.js.map +0 -1
- package/dist/template/CarsonTemplate.js +0 -3
- package/dist/template/CarsonTemplate.js.map +0 -1
- package/dist/template/CarsonTemplateConfig.js +0 -7
- package/dist/template/CarsonTemplateConfig.js.map +0 -1
- package/dist/template/CarsonTemplateError.js +0 -13
- package/dist/template/CarsonTemplateError.js.map +0 -1
- package/dist/template/TemplateAttributes.js +0 -18
- package/dist/template/TemplateAttributes.js.map +0 -1
- package/dist/template/TemplateData.js +0 -11
- package/dist/template/TemplateData.js.map +0 -1
- package/dist/template/TemplateRender.js +0 -3
- package/dist/template/TemplateRender.js.map +0 -1
- package/dist/template/TemplateRenders.js +0 -3
- package/dist/template/TemplateRenders.js.map +0 -1
- package/dist/template/applyTemplateRenders.js +0 -90
- package/dist/template/applyTemplateRenders.js.map +0 -1
- package/dist/template/internals/TemplateRenderSnapshot.js +0 -14
- package/dist/template/internals/TemplateRenderSnapshot.js.map +0 -1
- package/dist/template/internals/TemplateRenderSnapshots.js +0 -4
- package/dist/template/internals/TemplateRenderSnapshots.js.map +0 -1
- package/dist/template/internals/createUsingTemplateRender.js +0 -57
- package/dist/template/internals/createUsingTemplateRender.js.map +0 -1
- package/dist/template/internals/deleteUsingTemplateRender.js +0 -22
- package/dist/template/internals/deleteUsingTemplateRender.js.map +0 -1
- package/dist/template/internals/importCarsonTemplate.js +0 -8
- package/dist/template/internals/importCarsonTemplate.js.map +0 -1
- package/dist/template/internals/insertUsingTemplateRender.js +0 -41
- package/dist/template/internals/insertUsingTemplateRender.js.map +0 -1
- package/dist/template/internals/loadTemplateRenderSnapshots.js +0 -14
- package/dist/template/internals/loadTemplateRenderSnapshots.js.map +0 -1
- package/dist/template/internals/merge.js +0 -30
- package/dist/template/internals/merge.js.map +0 -1
- package/dist/template/internals/mergeUsingTemplateRender.js +0 -62
- package/dist/template/internals/mergeUsingTemplateRender.js.map +0 -1
- package/dist/template/internals/overwriteUsingTemplateRender.js +0 -12
- package/dist/template/internals/overwriteUsingTemplateRender.js.map +0 -1
- package/dist/template/internals/parseCarsonTemplateId.js +0 -17
- package/dist/template/internals/parseCarsonTemplateId.js.map +0 -1
- package/dist/template/internals/prettify.js +0 -25
- package/dist/template/internals/prettify.js.map +0 -1
- package/dist/template/internals/readCarsonTemplate.js +0 -45
- package/dist/template/internals/readCarsonTemplate.js.map +0 -1
- package/dist/template/internals/resolveModule.js +0 -9
- package/dist/template/internals/resolveModule.js.map +0 -1
- package/dist/template/internals/saveTemplateRenderSnapshots.js +0 -23
- package/dist/template/internals/saveTemplateRenderSnapshots.js.map +0 -1
- package/dist/template/internals/uninsertUsingTemplateRender.js +0 -41
- package/dist/template/internals/uninsertUsingTemplateRender.js.map +0 -1
- package/dist/template/internals/unmerge.js +0 -31
- package/dist/template/internals/unmerge.js.map +0 -1
- package/dist/template/internals/unmergeUsingTemplateRender.js +0 -50
- package/dist/template/internals/unmergeUsingTemplateRender.js.map +0 -1
- package/dist/template/internals.js +0 -20
- package/dist/template/internals.js.map +0 -1
- package/dist/template/renderCarsonTemplate.js +0 -34
- package/dist/template/renderCarsonTemplate.js.map +0 -1
- package/dist/template.js +0 -11
- package/dist/template.js.map +0 -1
- package/dist/workspace/Project.js +0 -204
- package/dist/workspace/Project.js.map +0 -1
- package/dist/workspace/ProjectConfig.js +0 -6
- package/dist/workspace/ProjectConfig.js.map +0 -1
- package/dist/workspace/ProjectCreateOptions.js +0 -3
- package/dist/workspace/ProjectCreateOptions.js.map +0 -1
- package/dist/workspace/ProjectError.js +0 -15
- package/dist/workspace/ProjectError.js.map +0 -1
- package/dist/workspace/ProjectOptions.js +0 -3
- package/dist/workspace/ProjectOptions.js.map +0 -1
- package/dist/workspace/ProjectUpdateOptions.js +0 -5
- package/dist/workspace/ProjectUpdateOptions.js.map +0 -1
- package/dist/workspace/Workspace.js +0 -529
- package/dist/workspace/Workspace.js.map +0 -1
- package/dist/workspace/WorkspaceConfig.js +0 -6
- package/dist/workspace/WorkspaceConfig.js.map +0 -1
- package/dist/workspace/WorkspaceCreateOptions.js +0 -5
- package/dist/workspace/WorkspaceCreateOptions.js.map +0 -1
- package/dist/workspace/WorkspaceCreateProjectOptions.js +0 -5
- package/dist/workspace/WorkspaceCreateProjectOptions.js.map +0 -1
- package/dist/workspace/WorkspaceDependencies.js +0 -140
- package/dist/workspace/WorkspaceDependencies.js.map +0 -1
- package/dist/workspace/WorkspaceDependenciesFromWorkspaceOptions.js +0 -5
- package/dist/workspace/WorkspaceDependenciesFromWorkspaceOptions.js.map +0 -1
- package/dist/workspace/WorkspaceDependenciesGetVersionsOptions.js +0 -5
- package/dist/workspace/WorkspaceDependenciesGetVersionsOptions.js.map +0 -1
- package/dist/workspace/WorkspaceDependency.js +0 -3
- package/dist/workspace/WorkspaceDependency.js.map +0 -1
- package/dist/workspace/WorkspaceDependencyProject.js +0 -5
- package/dist/workspace/WorkspaceDependencyProject.js.map +0 -1
- package/dist/workspace/WorkspaceError.js.map +0 -1
- package/dist/workspace/WorkspaceFindAndReadOptions.js +0 -5
- package/dist/workspace/WorkspaceFindAndReadOptions.js.map +0 -1
- package/dist/workspace/WorkspaceOptions.js +0 -3
- package/dist/workspace/WorkspaceOptions.js.map +0 -1
- package/dist/workspace/WorkspaceOptionsProject.js +0 -3
- package/dist/workspace/WorkspaceOptionsProject.js.map +0 -1
- package/dist/workspace/WorkspacePackageJson.js +0 -3
- package/dist/workspace/WorkspacePackageJson.js.map +0 -1
- package/dist/workspace/WorkspaceProjectGlobs.js +0 -5
- package/dist/workspace/WorkspaceProjectGlobs.js.map +0 -1
- package/dist/workspace/WorkspaceProjects.js +0 -3
- package/dist/workspace/WorkspaceProjects.js.map +0 -1
- package/dist/workspace/WorkspaceRepository.js +0 -5
- package/dist/workspace/WorkspaceRepository.js.map +0 -1
- package/dist/workspace/WorkspaceUpdateOptions.js +0 -5
- package/dist/workspace/WorkspaceUpdateOptions.js.map +0 -1
- package/dist/workspace/internals/compareProjectPath.js +0 -10
- package/dist/workspace/internals/compareProjectPath.js.map +0 -1
- package/dist/workspace/internals/compareSemver.js +0 -26
- package/dist/workspace/internals/compareSemver.js.map +0 -1
- package/dist/workspace/internals/compareWorkspaceDependencyProjectName.js +0 -10
- package/dist/workspace/internals/compareWorkspaceDependencyProjectName.js.map +0 -1
- package/dist/workspace/internals/containsProject.js +0 -19
- package/dist/workspace/internals/containsProject.js.map +0 -1
- package/dist/workspace/internals/containsWorkspace.js +0 -14
- package/dist/workspace/internals/containsWorkspace.js.map +0 -1
- package/dist/workspace/internals/getPackageJsonWorkspaces.js +0 -31
- package/dist/workspace/internals/getPackageJsonWorkspaces.js.map +0 -1
- package/dist/workspace/internals/getRepositoryBranches.js +0 -27
- package/dist/workspace/internals/getRepositoryBranches.js.map +0 -1
- package/dist/workspace/internals/getRepositoryUrl.js +0 -20
- package/dist/workspace/internals/getRepositoryUrl.js.map +0 -1
- package/dist/workspace/internals.js +0 -10
- package/dist/workspace/internals.js.map +0 -1
- package/dist/workspace/saveProjectConfig.js +0 -17
- package/dist/workspace/saveProjectConfig.js.map +0 -1
- package/dist/workspace/saveWorkspaceConfig.js +0 -17
- package/dist/workspace/saveWorkspaceConfig.js.map +0 -1
- package/dist/workspace.js +0 -24
- package/dist/workspace.js.map +0 -1
- package/{dist → build}/commands/create-project/CreateProject.d.ts +1 -1
- package/{dist → build}/commands/create-project/CreateProjectInput.d.ts +0 -0
- package/{dist → build}/commands/create-project/runCreateProject.d.ts +1 -1
- package/{dist → build}/commands/create-project.d.ts +2 -2
- package/{dist → build}/commands/create-workspace/CreateWorkspace.d.ts +0 -0
- package/{dist → build}/commands/create-workspace/CreateWorkspaceInput.d.ts +0 -0
- package/{dist → build}/commands/create-workspace/runCreateWorkspace.d.ts +0 -0
- package/{dist → build}/commands/create-workspace.d.ts +2 -2
- package/{dist → build}/commands/internals/CommandStatus.d.ts +0 -0
- package/{dist → build}/commands/internals/packageNameToDirectory.d.ts +0 -0
- package/{dist → build}/commands/internals.d.ts +0 -0
- package/{dist → build}/commands/update-workspace/UpdateWorkspace.d.ts +1 -1
- package/{dist → build}/commands/update-workspace/runUpdateWorkspace.d.ts +1 -1
- package/{dist → build}/commands/update-workspace.d.ts +0 -0
- package/{dist → build}/commands.d.ts +0 -0
- package/{dist → build}/constants.d.ts +0 -0
- package/{dist → build}/main.d.ts +0 -0
- package/{dist → build}/run.d.ts +0 -0
- package/{dist → build}/template/CarsonTemplate.d.ts +0 -0
- package/{dist → build}/template/CarsonTemplateConfig.d.ts +0 -0
- package/{dist → build}/template/CarsonTemplateError.d.ts +0 -0
- package/{dist → build}/template/TemplateAttributes.d.ts +0 -0
- package/{dist → build}/template/TemplateData.d.ts +0 -0
- package/{dist → build}/template/TemplateRender.d.ts +0 -0
- package/{dist → build}/template/TemplateRenders.d.ts +0 -0
- package/{dist → build}/template/applyTemplateRenders.d.ts +0 -0
- package/{dist → build}/template/internals/TemplateRenderSnapshot.d.ts +0 -0
- package/{dist → build}/template/internals/TemplateRenderSnapshots.d.ts +0 -0
- package/{dist → build}/template/internals/createUsingTemplateRender.d.ts +1 -1
- package/{dist → build}/template/internals/deleteUsingTemplateRender.d.ts +1 -1
- package/{dist → build}/template/internals/importCarsonTemplate.d.ts +0 -0
- package/{dist → build}/template/internals/insertUsingTemplateRender.d.ts +1 -1
- package/{dist → build}/template/internals/loadTemplateRenderSnapshots.d.ts +0 -0
- package/{dist → build}/template/internals/merge.d.ts +0 -0
- package/{dist → build}/template/internals/mergeUsingTemplateRender.d.ts +1 -1
- package/{dist → build}/template/internals/overwriteUsingTemplateRender.d.ts +1 -1
- package/{dist → build}/template/internals/parseCarsonTemplateId.d.ts +0 -0
- package/{dist → build}/template/internals/prettify.d.ts +0 -0
- package/{dist → build}/template/internals/readCarsonTemplate.d.ts +0 -0
- package/{dist → build}/template/internals/resolveModule.d.ts +0 -0
- package/{dist → build}/template/internals/saveTemplateRenderSnapshots.d.ts +0 -0
- package/{dist → build}/template/internals/uninsertUsingTemplateRender.d.ts +1 -1
- package/{dist → build}/template/internals/unmerge.d.ts +0 -0
- package/{dist → build}/template/internals/unmergeUsingTemplateRender.d.ts +1 -1
- package/{dist → build}/template/internals.d.ts +12 -12
- package/{dist → build}/template/renderCarsonTemplate.d.ts +0 -0
- package/{dist → build}/template.d.ts +0 -0
- package/{dist → build}/workspace/Project.d.ts +0 -0
- package/{dist → build}/workspace/ProjectConfig.d.ts +0 -0
- package/{dist → build}/workspace/ProjectCreateOptions.d.ts +0 -0
- package/{dist → build}/workspace/ProjectOptions.d.ts +0 -0
- package/{dist → build}/workspace/ProjectUpdateOptions.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceConfig.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceCreateOptions.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceCreateProjectOptions.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceDependencies.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceDependenciesFromWorkspaceOptions.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceDependenciesGetVersionsOptions.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceDependency.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceDependencyProject.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceFindAndReadOptions.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceOptions.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceOptionsProject.d.ts +0 -0
- package/{dist → build}/workspace/WorkspacePackageJson.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceProjectGlobs.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceProjects.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceRepository.d.ts +0 -0
- package/{dist → build}/workspace/WorkspaceUpdateOptions.d.ts +0 -0
- package/{dist → build}/workspace/internals/compareProjectPath.d.ts +0 -0
- package/{dist → build}/workspace/internals/compareSemver.d.ts +0 -0
- package/{dist → build}/workspace/internals/compareWorkspaceDependencyProjectName.d.ts +0 -0
- package/{dist → build}/workspace/internals/containsProject.d.ts +0 -0
- package/{dist → build}/workspace/internals/containsWorkspace.d.ts +0 -0
- package/{dist → build}/workspace/internals/getPackageJsonWorkspaces.d.ts +0 -0
- package/{dist → build}/workspace/internals/getRepositoryBranches.d.ts +0 -0
- package/{dist → build}/workspace/internals/getRepositoryUrl.d.ts +0 -0
- package/{dist → build}/workspace/internals.d.ts +0 -0
- package/{dist → build}/workspace/saveProjectConfig.d.ts +0 -0
- package/{dist → build}/workspace/saveWorkspaceConfig.d.ts +0 -0
- package/{dist → build}/workspace.d.ts +0 -0
- package/{src → source}/commands/create-project/createProjectCommand.tsx +1 -1
- package/{src → source}/commands/create-project/runCreateProject.ts +1 -1
- package/{src → source}/commands/create-project.ts +2 -2
- package/{src → source}/commands/create-workspace/createWorkspaceCommand.tsx +0 -0
- package/{src → source}/commands/create-workspace/runCreateWorkspace.ts +1 -1
- package/{src → source}/commands/create-workspace.ts +2 -2
- package/{src → source}/commands/internals/CommandStatus.ts +0 -0
- package/{src → source}/commands/internals/packageNameToDirectory.ts +0 -0
- package/{src → source}/commands/internals.ts +0 -0
- package/{src → source}/commands/update-workspace/runUpdateWorkspace.ts +1 -1
- package/{src → source}/commands/update-workspace/updateWorkspaceCommand.tsx +1 -1
- package/{src → source}/commands/update-workspace.ts +0 -0
- package/{src → source}/commands.ts +0 -0
- package/{src → source}/constants.ts +0 -0
- package/{src → source}/main.ts +0 -0
- package/{src → source}/modules.d.ts +0 -0
- package/{src → source}/template/CarsonTemplate.ts +0 -0
- package/{src → source}/template/CarsonTemplateConfig.ts +0 -0
- package/{src → source}/template/CarsonTemplateError.ts +0 -0
- package/{src → source}/template/TemplateAttributes.ts +0 -0
- package/{src → source}/template/TemplateData.ts +0 -0
- package/{src → source}/template/TemplateRender.ts +0 -0
- package/{src → source}/template/TemplateRenders.ts +0 -0
- package/{src → source}/template/internals/TemplateRenderSnapshot.ts +0 -0
- package/{src → source}/template/internals/TemplateRenderSnapshots.ts +0 -0
- package/{src → source}/template/internals/createUsingTemplateRender.ts +1 -1
- package/{src → source}/template/internals/deleteUsingTemplateRender.ts +1 -1
- package/{src → source}/template/internals/importCarsonTemplate.ts +0 -0
- package/{src → source}/template/internals/insertUsingTemplateRender.ts +2 -2
- package/{src → source}/template/internals/loadTemplateRenderSnapshots.ts +0 -0
- package/{src → source}/template/internals/merge.ts +0 -0
- package/{src → source}/template/internals/mergeUsingTemplateRender.ts +2 -2
- package/{src → source}/template/internals/overwriteUsingTemplateRender.ts +1 -1
- package/{src → source}/template/internals/parseCarsonTemplateId.ts +0 -0
- package/{src → source}/template/internals/resolveModule.ts +0 -0
- package/{src → source}/template/internals/saveTemplateRenderSnapshots.ts +1 -1
- package/{src → source}/template/internals/uninsertUsingTemplateRender.ts +2 -2
- package/{src → source}/template/internals/unmerge.ts +0 -0
- package/{src → source}/template/internals/unmergeUsingTemplateRender.ts +2 -2
- package/{src → source}/template/internals.ts +12 -12
- package/{src → source}/template/renderCarsonTemplate.ts +0 -0
- package/{src → source}/template.ts +0 -0
- package/{src → source}/workspace/ProjectConfig.ts +0 -0
- package/{src → source}/workspace/ProjectCreateOptions.ts +0 -0
- package/{src → source}/workspace/ProjectError.ts +0 -0
- package/{src → source}/workspace/ProjectOptions.ts +0 -0
- package/{src → source}/workspace/ProjectUpdateOptions.ts +0 -0
- package/{src → source}/workspace/WorkspaceConfig.ts +0 -0
- package/{src → source}/workspace/WorkspaceCreateOptions.ts +0 -0
- package/{src → source}/workspace/WorkspaceCreateProjectOptions.ts +0 -0
- package/{src → source}/workspace/WorkspaceDependenciesFromWorkspaceOptions.ts +0 -0
- package/{src → source}/workspace/WorkspaceDependenciesGetVersionsOptions.ts +0 -0
- package/{src → source}/workspace/WorkspaceDependency.ts +0 -0
- package/{src → source}/workspace/WorkspaceDependencyProject.ts +0 -0
- package/{src → source}/workspace/WorkspaceError.ts +0 -0
- package/{src → source}/workspace/WorkspaceFindAndReadOptions.ts +0 -0
- package/{src → source}/workspace/WorkspaceOptionsProject.ts +0 -0
- package/{src → source}/workspace/WorkspacePackageJson.ts +0 -0
- package/{src → source}/workspace/WorkspaceProjectGlobs.ts +0 -0
- package/{src → source}/workspace/WorkspaceProjects.ts +0 -0
- package/{src → source}/workspace/WorkspaceRepository.ts +0 -0
- package/{src → source}/workspace/WorkspaceUpdateOptions.ts +0 -0
- package/{src → source}/workspace/internals/compareProjectPath.ts +0 -0
- package/{src → source}/workspace/internals/compareWorkspaceDependencyProjectName.ts +0 -0
- package/{src → source}/workspace/internals/containsProject.ts +0 -0
- package/{src → source}/workspace/internals/containsWorkspace.ts +0 -0
- package/{src → source}/workspace/internals/getRepositoryBranches.ts +0 -0
- package/{src → source}/workspace/internals/getRepositoryUrl.ts +0 -0
- package/{src → source}/workspace/internals.ts +0 -0
- package/{src → source}/workspace/saveProjectConfig.ts +1 -1
- package/{src → source}/workspace/saveWorkspaceConfig.ts +1 -1
- /package/{src → source}/workspace.ts +0 -0
package/README.md
CHANGED
package/bin/carson.js
CHANGED
|
@@ -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,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,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
|
+
}
|