zudojs-cli 0.1.2 → 1.1.0
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/LICENSE +21 -0
- package/README.md +26 -3
- package/dist/src/adapters/databases/postgres.adapter.d.ts +0 -14
- package/dist/src/adapters/databases/postgres.adapter.js +0 -30
- package/dist/src/adapters/frontend/angular.adapter.js +6 -0
- package/dist/src/adapters/frontend/astro.adapter.js +2 -2
- package/dist/src/adapters/frontend/frontendAdapter.type.d.ts +6 -0
- package/dist/src/adapters/frontend/react.adapter.js +26 -17
- package/dist/src/adapters/frontend/svelte.adapter.js +1 -0
- package/dist/src/adapters/frontend/sveltekit.adapter.js +7 -8
- package/dist/src/adapters/frontend/vanilla.adapter.js +1 -1
- package/dist/src/adapters/frontend/vue.adapter.js +1 -0
- package/dist/src/adapters/package-managers/bun.adapter.js +5 -5
- package/dist/src/adapters/package-managers/npm.adapter.js +5 -5
- package/dist/src/adapters/package-managers/pnpm.adapter.js +5 -5
- package/dist/src/adapters/package-managers/yarn.adapter.js +5 -5
- package/dist/src/bin/zudojs.js +23 -11
- package/dist/src/cliApplication/cliApplication.builtins.d.ts +11 -2
- package/dist/src/cliApplication/cliApplication.builtins.js +15 -4
- package/dist/src/cliApplication/cliApplication.core.js +22 -7
- package/dist/src/cliApplication/cliApplication.logger.d.ts +28 -0
- package/dist/src/cliApplication/cliApplication.logger.js +68 -0
- package/dist/src/cliApplication/index.d.ts +1 -3
- package/dist/src/cliApplication/index.js +1 -3
- package/dist/src/cliConstant/cliConstant.value.d.ts +1 -1
- package/dist/src/cliConstant/cliConstant.value.js +2 -1
- package/dist/src/cliConstant/cliVersion.d.ts +16 -0
- package/dist/src/cliConstant/cliVersion.js +57 -0
- package/dist/src/cliParser/cliParser.core.js +7 -0
- package/dist/src/cliParser/cliParser.shortOption.js +1 -1
- package/dist/src/cliVersion/cliVersion.update.d.ts +38 -0
- package/dist/src/cliVersion/cliVersion.update.js +63 -0
- package/dist/src/cliVersion/index.d.ts +2 -1
- package/dist/src/cliVersion/index.js +2 -1
- package/dist/src/commands/add.command.d.ts +29 -0
- package/dist/src/commands/add.command.js +95 -107
- package/dist/src/commands/build.command.d.ts +8 -0
- package/dist/src/commands/build.command.js +24 -24
- package/dist/src/commands/create.command.js +176 -55
- package/dist/src/commands/dev.command.d.ts +30 -2
- package/dist/src/commands/dev.command.js +106 -150
- package/dist/src/commands/doctor.command.d.ts +18 -0
- package/dist/src/commands/doctor.command.js +160 -110
- package/dist/src/commands/generate.command.d.ts +2 -1
- package/dist/src/commands/generate.command.js +91 -41
- package/dist/src/commands/info.command.js +61 -30
- package/dist/src/constants/index.d.ts +19 -1
- package/dist/src/constants/index.js +32 -1
- package/dist/src/generators/command/command.generator.d.ts +1 -0
- package/dist/src/generators/command/command.generator.js +10 -4
- package/dist/src/generators/controller/controller.generator.d.ts +1 -0
- package/dist/src/generators/controller/controller.generator.js +12 -9
- package/dist/src/generators/dto/dto.generator.d.ts +1 -0
- package/dist/src/generators/dto/dto.generator.js +9 -3
- package/dist/src/generators/event/event.generator.d.ts +1 -0
- package/dist/src/generators/event/event.generator.js +10 -4
- package/dist/src/generators/frontend/frontendGenerator.core.d.ts +2 -0
- package/dist/src/generators/frontend/frontendGenerator.core.js +14 -27
- package/dist/src/generators/frontend/frontendPipeline.d.ts +26 -0
- package/dist/src/generators/frontend/frontendPipeline.js +136 -0
- package/dist/src/generators/fullstack/fullstackComposer.core.d.ts +3 -2
- package/dist/src/generators/fullstack/fullstackComposer.core.js +58 -43
- package/dist/src/generators/infrastructure/infrastructure.generator.d.ts +11 -0
- package/dist/src/generators/infrastructure/infrastructure.generator.js +101 -61
- package/dist/src/generators/integration/integrationGenerator.core.d.ts +6 -0
- package/dist/src/generators/integration/integrationGenerator.core.js +35 -6
- package/dist/src/generators/job/job.generator.d.ts +1 -0
- package/dist/src/generators/job/job.generator.js +9 -3
- package/dist/src/generators/middleware/middleware.generator.d.ts +1 -0
- package/dist/src/generators/middleware/middleware.generator.js +10 -4
- package/dist/src/generators/model/model.generator.d.ts +1 -0
- package/dist/src/generators/model/model.generator.js +9 -3
- package/dist/src/generators/module/module.generator.d.ts +1 -0
- package/dist/src/generators/module/module.generator.js +11 -24
- package/dist/src/generators/project/project.generator.js +2 -23
- package/dist/src/generators/query/query.generator.d.ts +1 -0
- package/dist/src/generators/query/query.generator.js +10 -4
- package/dist/src/generators/repository/repository.generator.d.ts +1 -0
- package/dist/src/generators/repository/repository.generator.js +12 -9
- package/dist/src/generators/route/route.generator.d.ts +1 -0
- package/dist/src/generators/route/route.generator.js +11 -5
- package/dist/src/generators/service/service.generator.d.ts +1 -0
- package/dist/src/generators/service/service.generator.js +12 -9
- package/dist/src/generators/validator/validator.generator.d.ts +1 -0
- package/dist/src/generators/validator/validator.generator.js +9 -3
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.js +3 -2
- package/dist/src/installers/dependency.installer.d.ts +9 -0
- package/dist/src/installers/dependency.installer.js +27 -2
- package/dist/src/installers/index.d.ts +1 -3
- package/dist/src/installers/index.js +1 -3
- package/dist/src/manifest/manifestManager.core.d.ts +3 -0
- package/dist/src/prompts/backend/index.d.ts +1 -0
- package/dist/src/prompts/backend/index.js +1 -0
- package/dist/src/prompts/backend/services.prompt.d.ts +7 -0
- package/dist/src/prompts/backend/services.prompt.js +39 -0
- package/dist/src/prompts/index.d.ts +0 -1
- package/dist/src/prompts/index.js +0 -1
- package/dist/src/resolvers/architecture.resolver.d.ts +11 -1
- package/dist/src/resolvers/architecture.resolver.js +12 -13
- package/dist/src/resolvers/configuration/configurationResolver.core.d.ts +10 -1
- package/dist/src/resolvers/configuration/configurationResolver.core.js +68 -29
- package/dist/src/resolvers/index.d.ts +1 -0
- package/dist/src/resolvers/index.js +1 -0
- package/dist/src/resolvers/layout/index.d.ts +5 -0
- package/dist/src/resolvers/layout/index.js +5 -0
- package/dist/src/resolvers/layout/projectLayout.core.d.ts +60 -0
- package/dist/src/resolvers/layout/projectLayout.core.js +236 -0
- package/dist/src/resolvers/project.resolver.d.ts +5 -0
- package/dist/src/resolvers/project.resolver.js +10 -6
- package/dist/src/rollback/rollbackManager.core.js +0 -1
- package/dist/src/runners/process/processRunner.core.d.ts +4 -0
- package/dist/src/runners/process/processRunner.core.js +17 -3
- package/dist/src/scaffolders/framework.scaffolder.js +9 -6
- package/dist/src/scaffolders/scaffolder.helper.js +7 -2
- package/dist/src/templates/microservice/index.d.ts +1 -1
- package/dist/src/templates/microservice/index.js +1 -1
- package/dist/src/templates/microservice/microservice.template.d.ts +14 -0
- package/dist/src/templates/microservice/microservice.template.js +140 -162
- package/dist/src/templates/modular-monolith/modularMonolith.template.d.ts +0 -1
- package/dist/src/templates/modular-monolith/modularMonolith.template.js +43 -77
- package/dist/src/templates/monolith/monolith.template.d.ts +1 -1
- package/dist/src/templates/monolith/monolith.template.js +46 -69
- package/dist/src/templates/shared/appRuntime.template.d.ts +60 -0
- package/dist/src/templates/shared/appRuntime.template.js +189 -0
- package/dist/src/templates/shared/index.d.ts +6 -0
- package/dist/src/templates/shared/index.js +6 -0
- package/dist/src/templates/shared/pnpm.template.d.ts +27 -0
- package/dist/src/templates/shared/pnpm.template.js +57 -0
- package/dist/src/utils/index.d.ts +3 -3
- package/dist/src/utils/index.js +3 -3
- package/dist/src/utils/utils.detect.d.ts +9 -0
- package/dist/src/utils/utils.detect.js +11 -11
- package/dist/src/utils/utils.exec.d.ts +35 -1
- package/dist/src/utils/utils.exec.js +99 -4
- package/dist/src/utils/utils.fileSystem.d.ts +6 -0
- package/dist/src/utils/utils.fileSystem.js +19 -0
- package/dist/src/utils/utils.name.d.ts +26 -0
- package/dist/src/utils/utils.name.js +51 -1
- package/package.json +32 -23
- package/dist/.tsbuildinfo +0 -1
- package/dist/src/adapters/databases/index.d.ts.map +0 -1
- package/dist/src/adapters/databases/index.js.map +0 -1
- package/dist/src/adapters/databases/mysql.adapter.d.ts.map +0 -1
- package/dist/src/adapters/databases/mysql.adapter.js.map +0 -1
- package/dist/src/adapters/databases/postgres.adapter.d.ts.map +0 -1
- package/dist/src/adapters/databases/postgres.adapter.js.map +0 -1
- package/dist/src/adapters/databases/sqlite.adapter.d.ts.map +0 -1
- package/dist/src/adapters/databases/sqlite.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/angular.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/angular.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/astro.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/astro.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/flutter.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/flutter.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/frontendAdapter.type.d.ts.map +0 -1
- package/dist/src/adapters/frontend/frontendAdapter.type.js.map +0 -1
- package/dist/src/adapters/frontend/index.d.ts.map +0 -1
- package/dist/src/adapters/frontend/index.js.map +0 -1
- package/dist/src/adapters/frontend/next.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/next.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/nuxt.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/nuxt.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/react-native.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/react-native.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/react.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/react.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/svelte.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/svelte.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/sveltekit.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/sveltekit.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/vanilla.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/vanilla.adapter.js.map +0 -1
- package/dist/src/adapters/frontend/vue.adapter.d.ts.map +0 -1
- package/dist/src/adapters/frontend/vue.adapter.js.map +0 -1
- package/dist/src/adapters/package-managers/bun.adapter.d.ts.map +0 -1
- package/dist/src/adapters/package-managers/bun.adapter.js.map +0 -1
- package/dist/src/adapters/package-managers/index.d.ts.map +0 -1
- package/dist/src/adapters/package-managers/index.js.map +0 -1
- package/dist/src/adapters/package-managers/npm.adapter.d.ts.map +0 -1
- package/dist/src/adapters/package-managers/npm.adapter.js.map +0 -1
- package/dist/src/adapters/package-managers/packageManager.type.d.ts.map +0 -1
- package/dist/src/adapters/package-managers/packageManager.type.js.map +0 -1
- package/dist/src/adapters/package-managers/pnpm.adapter.d.ts.map +0 -1
- package/dist/src/adapters/package-managers/pnpm.adapter.js.map +0 -1
- package/dist/src/adapters/package-managers/yarn.adapter.d.ts.map +0 -1
- package/dist/src/adapters/package-managers/yarn.adapter.js.map +0 -1
- package/dist/src/bin/zudojs.d.ts.map +0 -1
- package/dist/src/bin/zudojs.js.map +0 -1
- package/dist/src/cliApplication/cliApplication.builtins.d.ts.map +0 -1
- package/dist/src/cliApplication/cliApplication.builtins.js.map +0 -1
- package/dist/src/cliApplication/cliApplication.core.d.ts.map +0 -1
- package/dist/src/cliApplication/cliApplication.core.js.map +0 -1
- package/dist/src/cliApplication/cliApplication.writer.d.ts.map +0 -1
- package/dist/src/cliApplication/cliApplication.writer.js.map +0 -1
- package/dist/src/cliApplication/index.d.ts.map +0 -1
- package/dist/src/cliApplication/index.js.map +0 -1
- package/dist/src/cliCommand/cliCommand.builder.d.ts.map +0 -1
- package/dist/src/cliCommand/cliCommand.builder.js.map +0 -1
- package/dist/src/cliCommand/cliCommand.factory.d.ts.map +0 -1
- package/dist/src/cliCommand/cliCommand.factory.js.map +0 -1
- package/dist/src/cliCommand/cliCommand.registry.d.ts.map +0 -1
- package/dist/src/cliCommand/cliCommand.registry.js.map +0 -1
- package/dist/src/cliCommand/cliCommand.validator.d.ts.map +0 -1
- package/dist/src/cliCommand/cliCommand.validator.js.map +0 -1
- package/dist/src/cliCommand/index.d.ts.map +0 -1
- package/dist/src/cliCommand/index.js.map +0 -1
- package/dist/src/cliConstant/cliConstant.value.d.ts.map +0 -1
- package/dist/src/cliConstant/cliConstant.value.js.map +0 -1
- package/dist/src/cliConstant/index.d.ts.map +0 -1
- package/dist/src/cliConstant/index.js.map +0 -1
- package/dist/src/cliError/cliError.argument.d.ts.map +0 -1
- package/dist/src/cliError/cliError.argument.js.map +0 -1
- package/dist/src/cliError/cliError.base.d.ts.map +0 -1
- package/dist/src/cliError/cliError.base.js.map +0 -1
- package/dist/src/cliError/cliError.command.d.ts.map +0 -1
- package/dist/src/cliError/cliError.command.js.map +0 -1
- package/dist/src/cliError/cliError.execution.d.ts.map +0 -1
- package/dist/src/cliError/cliError.execution.js.map +0 -1
- package/dist/src/cliError/cliError.option.d.ts.map +0 -1
- package/dist/src/cliError/cliError.option.js.map +0 -1
- package/dist/src/cliError/index.d.ts.map +0 -1
- package/dist/src/cliError/index.js.map +0 -1
- package/dist/src/cliParser/cliParser.core.d.ts.map +0 -1
- package/dist/src/cliParser/cliParser.core.js.map +0 -1
- package/dist/src/cliParser/cliParser.helper.d.ts.map +0 -1
- package/dist/src/cliParser/cliParser.helper.js.map +0 -1
- package/dist/src/cliParser/cliParser.longOption.d.ts.map +0 -1
- package/dist/src/cliParser/cliParser.longOption.js.map +0 -1
- package/dist/src/cliParser/cliParser.shortOption.d.ts.map +0 -1
- package/dist/src/cliParser/cliParser.shortOption.js.map +0 -1
- package/dist/src/cliParser/index.d.ts.map +0 -1
- package/dist/src/cliParser/index.js.map +0 -1
- package/dist/src/cliType/cliType.type.d.ts.map +0 -1
- package/dist/src/cliType/cliType.type.js.map +0 -1
- package/dist/src/cliType/index.d.ts.map +0 -1
- package/dist/src/cliType/index.js.map +0 -1
- package/dist/src/cliVersion/cliVersion.core.d.ts.map +0 -1
- package/dist/src/cliVersion/cliVersion.core.js.map +0 -1
- package/dist/src/cliVersion/index.d.ts.map +0 -1
- package/dist/src/cliVersion/index.js.map +0 -1
- package/dist/src/commands/add.command.d.ts.map +0 -1
- package/dist/src/commands/add.command.js.map +0 -1
- package/dist/src/commands/build.command.d.ts.map +0 -1
- package/dist/src/commands/build.command.js.map +0 -1
- package/dist/src/commands/create.command.d.ts.map +0 -1
- package/dist/src/commands/create.command.js.map +0 -1
- package/dist/src/commands/dev.command.d.ts.map +0 -1
- package/dist/src/commands/dev.command.js.map +0 -1
- package/dist/src/commands/doctor.command.d.ts.map +0 -1
- package/dist/src/commands/doctor.command.js.map +0 -1
- package/dist/src/commands/generate.command.d.ts.map +0 -1
- package/dist/src/commands/generate.command.js.map +0 -1
- package/dist/src/commands/index.d.ts.map +0 -1
- package/dist/src/commands/index.js.map +0 -1
- package/dist/src/commands/info.command.d.ts.map +0 -1
- package/dist/src/commands/info.command.js.map +0 -1
- package/dist/src/constants/index.d.ts.map +0 -1
- package/dist/src/constants/index.js.map +0 -1
- package/dist/src/errors/index.d.ts.map +0 -1
- package/dist/src/errors/index.js.map +0 -1
- package/dist/src/generators/backend/backend.generator.d.ts.map +0 -1
- package/dist/src/generators/backend/backend.generator.js.map +0 -1
- package/dist/src/generators/backend/index.d.ts.map +0 -1
- package/dist/src/generators/backend/index.js.map +0 -1
- package/dist/src/generators/command/command.generator.d.ts.map +0 -1
- package/dist/src/generators/command/command.generator.js.map +0 -1
- package/dist/src/generators/controller/controller.generator.d.ts.map +0 -1
- package/dist/src/generators/controller/controller.generator.js.map +0 -1
- package/dist/src/generators/dto/dto.generator.d.ts.map +0 -1
- package/dist/src/generators/dto/dto.generator.js.map +0 -1
- package/dist/src/generators/dto/index.d.ts.map +0 -1
- package/dist/src/generators/dto/index.js.map +0 -1
- package/dist/src/generators/event/event.generator.d.ts.map +0 -1
- package/dist/src/generators/event/event.generator.js.map +0 -1
- package/dist/src/generators/event/index.d.ts.map +0 -1
- package/dist/src/generators/event/index.js.map +0 -1
- package/dist/src/generators/frontend/frontendGenerator.core.d.ts.map +0 -1
- package/dist/src/generators/frontend/frontendGenerator.core.js.map +0 -1
- package/dist/src/generators/frontend/index.d.ts.map +0 -1
- package/dist/src/generators/frontend/index.js.map +0 -1
- package/dist/src/generators/fullstack/fullstackComposer.core.d.ts.map +0 -1
- package/dist/src/generators/fullstack/fullstackComposer.core.js.map +0 -1
- package/dist/src/generators/fullstack/index.d.ts.map +0 -1
- package/dist/src/generators/fullstack/index.js.map +0 -1
- package/dist/src/generators/index.d.ts.map +0 -1
- package/dist/src/generators/index.js.map +0 -1
- package/dist/src/generators/infrastructure/index.d.ts.map +0 -1
- package/dist/src/generators/infrastructure/index.js.map +0 -1
- package/dist/src/generators/infrastructure/infrastructure.generator.d.ts.map +0 -1
- package/dist/src/generators/infrastructure/infrastructure.generator.js.map +0 -1
- package/dist/src/generators/integration/index.d.ts.map +0 -1
- package/dist/src/generators/integration/index.js.map +0 -1
- package/dist/src/generators/integration/integrationGenerator.core.d.ts.map +0 -1
- package/dist/src/generators/integration/integrationGenerator.core.js.map +0 -1
- package/dist/src/generators/job/index.d.ts.map +0 -1
- package/dist/src/generators/job/index.js.map +0 -1
- package/dist/src/generators/job/job.generator.d.ts.map +0 -1
- package/dist/src/generators/job/job.generator.js.map +0 -1
- package/dist/src/generators/middleware/index.d.ts.map +0 -1
- package/dist/src/generators/middleware/index.js.map +0 -1
- package/dist/src/generators/middleware/middleware.generator.d.ts.map +0 -1
- package/dist/src/generators/middleware/middleware.generator.js.map +0 -1
- package/dist/src/generators/model/index.d.ts.map +0 -1
- package/dist/src/generators/model/index.js.map +0 -1
- package/dist/src/generators/model/model.generator.d.ts.map +0 -1
- package/dist/src/generators/model/model.generator.js.map +0 -1
- package/dist/src/generators/module/module.generator.d.ts.map +0 -1
- package/dist/src/generators/module/module.generator.js.map +0 -1
- package/dist/src/generators/project/project.generator.d.ts.map +0 -1
- package/dist/src/generators/project/project.generator.js.map +0 -1
- package/dist/src/generators/query/query.generator.d.ts.map +0 -1
- package/dist/src/generators/query/query.generator.js.map +0 -1
- package/dist/src/generators/repository/repository.generator.d.ts.map +0 -1
- package/dist/src/generators/repository/repository.generator.js.map +0 -1
- package/dist/src/generators/route/index.d.ts.map +0 -1
- package/dist/src/generators/route/index.js.map +0 -1
- package/dist/src/generators/route/route.generator.d.ts.map +0 -1
- package/dist/src/generators/route/route.generator.js.map +0 -1
- package/dist/src/generators/service/service.generator.d.ts.map +0 -1
- package/dist/src/generators/service/service.generator.js.map +0 -1
- package/dist/src/generators/validator/index.d.ts.map +0 -1
- package/dist/src/generators/validator/index.js.map +0 -1
- package/dist/src/generators/validator/validator.generator.d.ts.map +0 -1
- package/dist/src/generators/validator/validator.generator.js.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/installers/dependency.installer.d.ts.map +0 -1
- package/dist/src/installers/dependency.installer.js.map +0 -1
- package/dist/src/installers/index.d.ts.map +0 -1
- package/dist/src/installers/index.js.map +0 -1
- package/dist/src/manifest/index.d.ts.map +0 -1
- package/dist/src/manifest/index.js.map +0 -1
- package/dist/src/manifest/manifestManager.core.d.ts.map +0 -1
- package/dist/src/manifest/manifestManager.core.js.map +0 -1
- package/dist/src/prompts/backend/api-style.prompt.d.ts.map +0 -1
- package/dist/src/prompts/backend/api-style.prompt.js.map +0 -1
- package/dist/src/prompts/backend/backend-architecture.prompt.d.ts.map +0 -1
- package/dist/src/prompts/backend/backend-architecture.prompt.js.map +0 -1
- package/dist/src/prompts/backend/database.prompt.d.ts.map +0 -1
- package/dist/src/prompts/backend/database.prompt.js.map +0 -1
- package/dist/src/prompts/backend/index.d.ts.map +0 -1
- package/dist/src/prompts/backend/index.js.map +0 -1
- package/dist/src/prompts/capabilities/capabilities.prompt.d.ts.map +0 -1
- package/dist/src/prompts/capabilities/capabilities.prompt.js.map +0 -1
- package/dist/src/prompts/capabilities/index.d.ts.map +0 -1
- package/dist/src/prompts/capabilities/index.js.map +0 -1
- package/dist/src/prompts/frontend/framework.prompt.d.ts.map +0 -1
- package/dist/src/prompts/frontend/framework.prompt.js.map +0 -1
- package/dist/src/prompts/frontend/frontend-architecture.prompt.d.ts.map +0 -1
- package/dist/src/prompts/frontend/frontend-architecture.prompt.js.map +0 -1
- package/dist/src/prompts/frontend/index.d.ts.map +0 -1
- package/dist/src/prompts/frontend/index.js.map +0 -1
- package/dist/src/prompts/index.d.ts.map +0 -1
- package/dist/src/prompts/index.js.map +0 -1
- package/dist/src/prompts/project/confirmation.prompt.d.ts.map +0 -1
- package/dist/src/prompts/project/confirmation.prompt.js.map +0 -1
- package/dist/src/prompts/project/index.d.ts.map +0 -1
- package/dist/src/prompts/project/index.js.map +0 -1
- package/dist/src/prompts/project/project-name.prompt.d.ts.map +0 -1
- package/dist/src/prompts/project/project-name.prompt.js.map +0 -1
- package/dist/src/prompts/project/project-type.prompt.d.ts.map +0 -1
- package/dist/src/prompts/project/project-type.prompt.js.map +0 -1
- package/dist/src/prompts/prompts.createProject.d.ts +0 -33
- package/dist/src/prompts/prompts.createProject.d.ts.map +0 -1
- package/dist/src/prompts/prompts.createProject.js +0 -150
- package/dist/src/prompts/prompts.createProject.js.map +0 -1
- package/dist/src/prompts/workspace/index.d.ts.map +0 -1
- package/dist/src/prompts/workspace/index.js.map +0 -1
- package/dist/src/prompts/workspace/package-manager.prompt.d.ts.map +0 -1
- package/dist/src/prompts/workspace/package-manager.prompt.js.map +0 -1
- package/dist/src/registries/adapter/frontendAdapterRegistry.core.d.ts.map +0 -1
- package/dist/src/registries/adapter/frontendAdapterRegistry.core.js.map +0 -1
- package/dist/src/registries/adapter/packageManagerRegistry.core.d.ts.map +0 -1
- package/dist/src/registries/adapter/packageManagerRegistry.core.js.map +0 -1
- package/dist/src/registries/dependency/dependencyRegistry.core.d.ts.map +0 -1
- package/dist/src/registries/dependency/dependencyRegistry.core.js.map +0 -1
- package/dist/src/registries/dependency/index.d.ts.map +0 -1
- package/dist/src/registries/dependency/index.js.map +0 -1
- package/dist/src/registries/generator/generatorRegistry.core.d.ts.map +0 -1
- package/dist/src/registries/generator/generatorRegistry.core.js.map +0 -1
- package/dist/src/registries/generator/index.d.ts.map +0 -1
- package/dist/src/registries/generator/index.js.map +0 -1
- package/dist/src/registries/index.d.ts.map +0 -1
- package/dist/src/registries/index.js.map +0 -1
- package/dist/src/resolvers/architecture.resolver.d.ts.map +0 -1
- package/dist/src/resolvers/architecture.resolver.js.map +0 -1
- package/dist/src/resolvers/capability/capabilityResolver.core.d.ts.map +0 -1
- package/dist/src/resolvers/capability/capabilityResolver.core.js.map +0 -1
- package/dist/src/resolvers/capability/index.d.ts.map +0 -1
- package/dist/src/resolvers/capability/index.js.map +0 -1
- package/dist/src/resolvers/configuration/configurationResolver.core.d.ts.map +0 -1
- package/dist/src/resolvers/configuration/configurationResolver.core.js.map +0 -1
- package/dist/src/resolvers/configuration/index.d.ts.map +0 -1
- package/dist/src/resolvers/configuration/index.js.map +0 -1
- package/dist/src/resolvers/dependency/dependencyResolver.core.d.ts.map +0 -1
- package/dist/src/resolvers/dependency/dependencyResolver.core.js.map +0 -1
- package/dist/src/resolvers/dependency/index.d.ts.map +0 -1
- package/dist/src/resolvers/dependency/index.js.map +0 -1
- package/dist/src/resolvers/index.d.ts.map +0 -1
- package/dist/src/resolvers/index.js.map +0 -1
- package/dist/src/resolvers/project.resolver.d.ts.map +0 -1
- package/dist/src/resolvers/project.resolver.js.map +0 -1
- package/dist/src/rollback/index.d.ts.map +0 -1
- package/dist/src/rollback/index.js.map +0 -1
- package/dist/src/rollback/rollbackManager.core.d.ts.map +0 -1
- package/dist/src/rollback/rollbackManager.core.js.map +0 -1
- package/dist/src/runners/package-manager/index.d.ts.map +0 -1
- package/dist/src/runners/package-manager/index.js.map +0 -1
- package/dist/src/runners/package-manager/packageManagerRunner.core.d.ts.map +0 -1
- package/dist/src/runners/package-manager/packageManagerRunner.core.js.map +0 -1
- package/dist/src/runners/process/index.d.ts.map +0 -1
- package/dist/src/runners/process/index.js.map +0 -1
- package/dist/src/runners/process/processRunner.core.d.ts.map +0 -1
- package/dist/src/runners/process/processRunner.core.js.map +0 -1
- package/dist/src/runners/task/index.d.ts.map +0 -1
- package/dist/src/runners/task/index.js.map +0 -1
- package/dist/src/runners/task/taskRunner.core.d.ts.map +0 -1
- package/dist/src/runners/task/taskRunner.core.js.map +0 -1
- package/dist/src/scaffolders/framework.scaffolder.d.ts.map +0 -1
- package/dist/src/scaffolders/framework.scaffolder.js.map +0 -1
- package/dist/src/scaffolders/index.d.ts.map +0 -1
- package/dist/src/scaffolders/index.js.map +0 -1
- package/dist/src/scaffolders/scaffolder.helper.d.ts.map +0 -1
- package/dist/src/scaffolders/scaffolder.helper.js.map +0 -1
- package/dist/src/scripts/postinstall.cjs +0 -56
- package/dist/src/templates/microservice/index.d.ts.map +0 -1
- package/dist/src/templates/microservice/index.js.map +0 -1
- package/dist/src/templates/microservice/microservice.template.d.ts.map +0 -1
- package/dist/src/templates/microservice/microservice.template.js.map +0 -1
- package/dist/src/templates/modular-monolith/index.d.ts.map +0 -1
- package/dist/src/templates/modular-monolith/index.js.map +0 -1
- package/dist/src/templates/modular-monolith/modularMonolith.template.d.ts.map +0 -1
- package/dist/src/templates/modular-monolith/modularMonolith.template.js.map +0 -1
- package/dist/src/templates/monolith/index.d.ts.map +0 -1
- package/dist/src/templates/monolith/index.js.map +0 -1
- package/dist/src/templates/monolith/monolith.template.d.ts.map +0 -1
- package/dist/src/templates/monolith/monolith.template.js.map +0 -1
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/types/projectConfiguration.type.d.ts.map +0 -1
- package/dist/src/types/projectConfiguration.type.js.map +0 -1
- package/dist/src/types/scaffold.type.d.ts.map +0 -1
- package/dist/src/types/scaffold.type.js.map +0 -1
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/utils.detect.d.ts.map +0 -1
- package/dist/src/utils/utils.detect.js.map +0 -1
- package/dist/src/utils/utils.exec.d.ts.map +0 -1
- package/dist/src/utils/utils.exec.js.map +0 -1
- package/dist/src/utils/utils.fileSystem.d.ts.map +0 -1
- package/dist/src/utils/utils.fileSystem.js.map +0 -1
- package/dist/src/utils/utils.name.d.ts.map +0 -1
- package/dist/src/utils/utils.name.js.map +0 -1
- package/dist/src/validators/compatibility/compatibilityValidator.core.d.ts.map +0 -1
- package/dist/src/validators/compatibility/compatibilityValidator.core.js.map +0 -1
- package/dist/src/validators/compatibility/index.d.ts.map +0 -1
- package/dist/src/validators/compatibility/index.js.map +0 -1
- package/dist/src/validators/environment/environmentValidator.core.d.ts.map +0 -1
- package/dist/src/validators/environment/environmentValidator.core.js.map +0 -1
- package/dist/src/validators/environment/index.d.ts.map +0 -1
- package/dist/src/validators/environment/index.js.map +0 -1
- package/dist/src/validators/index.d.ts.map +0 -1
- package/dist/src/validators/index.js.map +0 -1
- package/dist/src/validators/project/index.d.ts.map +0 -1
- package/dist/src/validators/project/index.js.map +0 -1
- package/dist/src/validators/project/projectValidator.core.d.ts.map +0 -1
- package/dist/src/validators/project/projectValidator.core.js.map +0 -1
- package/src/scripts/postinstall.cjs +0 -56
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — Project Layout Resolver
|
|
3
|
+
*
|
|
4
|
+
* One place that answers "what kind of project is this directory, and where
|
|
5
|
+
* do its apps live?". Every follow-up command (`dev`, `add`, `generate`,
|
|
6
|
+
* `doctor`, `info`, `build`) used to answer that question on its own, and
|
|
7
|
+
* each answer was different: `dev` read `zudojs.config.ts` first and only
|
|
8
|
+
* fell back to the manifest, `generate` never looked past the workspace
|
|
9
|
+
* root for a fullstack project, `doctor` required a `tsconfig.json` at the
|
|
10
|
+
* root of a workspace that has none, and `add` wrote into the workspace root
|
|
11
|
+
* `package.json` where no app can import from.
|
|
12
|
+
*
|
|
13
|
+
* Resolution order:
|
|
14
|
+
*
|
|
15
|
+
* 1. `.zudojs/manifest.json` — written by `zudojs create`, machine-managed.
|
|
16
|
+
* 2. `zudojs.config.ts` / `.js` — older projects; read with a regex, never
|
|
17
|
+
* executed.
|
|
18
|
+
* 3. the `zudojs` block in `package.json`.
|
|
19
|
+
*
|
|
20
|
+
* @module resolvers/layout
|
|
21
|
+
*/
|
|
22
|
+
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
23
|
+
import { join } from "node:path";
|
|
24
|
+
import { SAFE_PATH_SEGMENT } from "../../utils/utils.name.js";
|
|
25
|
+
const PROJECT_TYPES = [
|
|
26
|
+
"backend",
|
|
27
|
+
"frontend",
|
|
28
|
+
"fullstack",
|
|
29
|
+
];
|
|
30
|
+
const PACKAGE_MANAGERS = [
|
|
31
|
+
"pnpm",
|
|
32
|
+
"npm",
|
|
33
|
+
"yarn",
|
|
34
|
+
"bun",
|
|
35
|
+
];
|
|
36
|
+
function readJson(path) {
|
|
37
|
+
try {
|
|
38
|
+
const parsed = JSON.parse(readFileSync(path, "utf-8"));
|
|
39
|
+
return typeof parsed === "object" && parsed !== null
|
|
40
|
+
? parsed
|
|
41
|
+
: null;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function asString(value) {
|
|
48
|
+
return typeof value === "string" && value.length > 0 ? value : undefined;
|
|
49
|
+
}
|
|
50
|
+
function readManifest(root) {
|
|
51
|
+
const manifest = readJson(join(root, ".zudojs", "manifest.json"));
|
|
52
|
+
if (!manifest)
|
|
53
|
+
return null;
|
|
54
|
+
const backend = manifest.backend;
|
|
55
|
+
const frontend = manifest.frontend;
|
|
56
|
+
const workspace = manifest.workspace;
|
|
57
|
+
const services = Array.isArray(manifest.services)
|
|
58
|
+
? manifest.services.filter((service) => typeof service === "string")
|
|
59
|
+
: undefined;
|
|
60
|
+
return {
|
|
61
|
+
projectType: asString(manifest.projectType),
|
|
62
|
+
architecture: asString(backend?.architecture) ?? asString(manifest.architecture),
|
|
63
|
+
packageManager: asString(workspace?.packageManager),
|
|
64
|
+
frontendFramework: asString(frontend?.framework),
|
|
65
|
+
services,
|
|
66
|
+
source: "manifest",
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Reads the legacy `zudojs.config.ts` with a regex. The file is user-owned
|
|
71
|
+
* TypeScript and is never executed.
|
|
72
|
+
*/
|
|
73
|
+
function readLegacyConfig(root) {
|
|
74
|
+
for (const name of ["zudojs.config.ts", "zudojs.config.js"]) {
|
|
75
|
+
const path = join(root, name);
|
|
76
|
+
if (!existsSync(path))
|
|
77
|
+
continue;
|
|
78
|
+
let content;
|
|
79
|
+
try {
|
|
80
|
+
content = readFileSync(path, "utf-8");
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const projectType = content.match(/projectType:\s*["'](\w+)["']/)?.[1];
|
|
86
|
+
const architecture = content.match(/architecture:\s*["'](\w[\w-]*)["']/)?.[1];
|
|
87
|
+
const frontendFramework = content.match(/frontend:\s*\{[\s\S]*?framework:\s*["']([^"']+)["']/)?.[1];
|
|
88
|
+
return {
|
|
89
|
+
projectType,
|
|
90
|
+
architecture,
|
|
91
|
+
frontendFramework,
|
|
92
|
+
source: "config",
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
function readPackageJsonBlock(root) {
|
|
98
|
+
const pkg = readJson(join(root, "package.json"));
|
|
99
|
+
const block = pkg?.zudojs;
|
|
100
|
+
if (typeof block !== "object" || block === null)
|
|
101
|
+
return null;
|
|
102
|
+
const zudojs = block;
|
|
103
|
+
return {
|
|
104
|
+
projectType: asString(zudojs.projectType),
|
|
105
|
+
architecture: asString(zudojs.architecture),
|
|
106
|
+
frontendFramework: asString(zudojs.frontend),
|
|
107
|
+
source: "package.json",
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/** Detects the package manager from lock files and workspace markers. */
|
|
111
|
+
export function detectPackageManager(root) {
|
|
112
|
+
if (existsSync(join(root, "pnpm-lock.yaml")) ||
|
|
113
|
+
existsSync(join(root, "pnpm-workspace.yaml"))) {
|
|
114
|
+
return "pnpm";
|
|
115
|
+
}
|
|
116
|
+
if (existsSync(join(root, "yarn.lock")))
|
|
117
|
+
return "yarn";
|
|
118
|
+
if (existsSync(join(root, "bun.lock")) || existsSync(join(root, "bun.lockb")))
|
|
119
|
+
return "bun";
|
|
120
|
+
return "npm";
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Whether `root` is a multi-package workspace.
|
|
124
|
+
*
|
|
125
|
+
* A `pnpm-workspace.yaml` alone is not enough: pnpm 10+ also uses that file
|
|
126
|
+
* for settings (the build-script allow-list every generated project
|
|
127
|
+
* carries), so only one that declares `packages:` makes a workspace.
|
|
128
|
+
*/
|
|
129
|
+
function isWorkspaceRoot(root) {
|
|
130
|
+
const workspaceFile = join(root, "pnpm-workspace.yaml");
|
|
131
|
+
if (existsSync(workspaceFile)) {
|
|
132
|
+
try {
|
|
133
|
+
if (/^packages:/m.test(readFileSync(workspaceFile, "utf-8")))
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
// unreadable: fall through to package.json
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const pkg = readJson(join(root, "package.json"));
|
|
141
|
+
return pkg?.workspaces !== undefined;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Lists the service apps under `<backendRoot>/apps/services`, preferring the
|
|
145
|
+
* names recorded in the manifest and falling back to the directory listing.
|
|
146
|
+
*/
|
|
147
|
+
function listServiceDirs(backendRoot, recorded) {
|
|
148
|
+
const servicesRoot = join(backendRoot, "apps", "services");
|
|
149
|
+
let names;
|
|
150
|
+
if (recorded && recorded.length > 0) {
|
|
151
|
+
// Names come from a file on disk and become path segments.
|
|
152
|
+
names = recorded.filter((name) => SAFE_PATH_SEGMENT.test(name));
|
|
153
|
+
}
|
|
154
|
+
else if (existsSync(servicesRoot)) {
|
|
155
|
+
names = readdirSync(servicesRoot, { withFileTypes: true })
|
|
156
|
+
.filter((entry) => entry.isDirectory())
|
|
157
|
+
.map((entry) => entry.name)
|
|
158
|
+
.filter((name) => SAFE_PATH_SEGMENT.test(name));
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
names = [];
|
|
162
|
+
}
|
|
163
|
+
const dirs = names
|
|
164
|
+
.map((name) => join(servicesRoot, name))
|
|
165
|
+
.filter((dir) => existsSync(join(dir, "package.json")));
|
|
166
|
+
return { names, dirs };
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Resolves the layout of the Zudojs project rooted at `cwd`.
|
|
170
|
+
*
|
|
171
|
+
* Returns `null` when the directory is not a Zudojs project: no manifest,
|
|
172
|
+
* no legacy config and no `zudojs` block in `package.json`.
|
|
173
|
+
*/
|
|
174
|
+
export function resolveProjectLayout(cwd) {
|
|
175
|
+
const raw = readManifest(cwd) ?? readLegacyConfig(cwd) ?? readPackageJsonBlock(cwd);
|
|
176
|
+
if (!raw)
|
|
177
|
+
return null;
|
|
178
|
+
const projectType = PROJECT_TYPES.includes(raw.projectType)
|
|
179
|
+
? raw.projectType
|
|
180
|
+
: "backend";
|
|
181
|
+
const architecture = raw.architecture ?? "monolith";
|
|
182
|
+
const packageManager = PACKAGE_MANAGERS.includes(raw.packageManager)
|
|
183
|
+
? raw.packageManager
|
|
184
|
+
: detectPackageManager(cwd);
|
|
185
|
+
// In a fullstack workspace the backend is generated into apps/api; a
|
|
186
|
+
// backend-only project is its own backend root.
|
|
187
|
+
const fullstackApi = join(cwd, "apps", "api");
|
|
188
|
+
const backendRoot = projectType === "fullstack" &&
|
|
189
|
+
existsSync(join(fullstackApi, "package.json"))
|
|
190
|
+
? fullstackApi
|
|
191
|
+
: cwd;
|
|
192
|
+
let backendDirs = [];
|
|
193
|
+
let services = [];
|
|
194
|
+
if (projectType !== "frontend") {
|
|
195
|
+
if (architecture === "microservice") {
|
|
196
|
+
const gateway = join(backendRoot, "apps", "gateway");
|
|
197
|
+
const listed = listServiceDirs(backendRoot, raw.services);
|
|
198
|
+
services = listed.names;
|
|
199
|
+
backendDirs = [
|
|
200
|
+
...(existsSync(join(gateway, "package.json")) ? [gateway] : []),
|
|
201
|
+
...listed.dirs,
|
|
202
|
+
];
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
backendDirs = [backendRoot];
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
let frontendDir;
|
|
209
|
+
let frontendFramework;
|
|
210
|
+
if (projectType === "frontend") {
|
|
211
|
+
const nested = join(cwd, "apps", "web");
|
|
212
|
+
frontendDir = existsSync(join(nested, "package.json")) ? nested : cwd;
|
|
213
|
+
frontendFramework = raw.frontendFramework ?? "react";
|
|
214
|
+
}
|
|
215
|
+
else if (projectType === "fullstack") {
|
|
216
|
+
frontendDir = join(cwd, "apps", "web");
|
|
217
|
+
frontendFramework = raw.frontendFramework ?? "react";
|
|
218
|
+
}
|
|
219
|
+
else if (raw.frontendFramework && raw.frontendFramework !== "none") {
|
|
220
|
+
frontendDir = join(cwd, "apps", "web");
|
|
221
|
+
frontendFramework = raw.frontendFramework;
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
root: cwd,
|
|
225
|
+
projectType,
|
|
226
|
+
architecture,
|
|
227
|
+
packageManager,
|
|
228
|
+
isWorkspace: isWorkspaceRoot(cwd),
|
|
229
|
+
backendDirs,
|
|
230
|
+
...(frontendDir !== undefined ? { frontendDir } : {}),
|
|
231
|
+
...(frontendFramework !== undefined ? { frontendFramework } : {}),
|
|
232
|
+
services,
|
|
233
|
+
source: raw.source,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=projectLayout.core.js.map
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Walks upward from `startDir` to the nearest directory that looks like a
|
|
3
|
+
* project root: one holding a `.zudojs/manifest.json`, a legacy
|
|
4
|
+
* `zudojs.config.ts`, or a `package.json`.
|
|
5
|
+
*/
|
|
1
6
|
export declare function findProjectRoot(startDir?: string): string | null;
|
|
2
7
|
export declare function resolveProjectPath(cwd: string, name: string): string;
|
|
3
8
|
//# sourceMappingURL=project.resolver.d.ts.map
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* Walks upward from `startDir` to the nearest directory that looks like a
|
|
5
|
+
* project root: one holding a `.zudojs/manifest.json`, a legacy
|
|
6
|
+
* `zudojs.config.ts`, or a `package.json`.
|
|
7
|
+
*/
|
|
3
8
|
export function findProjectRoot(startDir = process.cwd()) {
|
|
4
9
|
let dir = startDir;
|
|
5
10
|
while (true) {
|
|
6
|
-
if (existsSync(join(dir, "zudojs.
|
|
11
|
+
if (existsSync(join(dir, ".zudojs", "manifest.json")) ||
|
|
12
|
+
existsSync(join(dir, "zudojs.config.ts")) ||
|
|
13
|
+
existsSync(join(dir, "package.json"))) {
|
|
7
14
|
return dir;
|
|
8
15
|
}
|
|
9
|
-
|
|
10
|
-
return dir;
|
|
11
|
-
}
|
|
12
|
-
const parent = join(dir, "..");
|
|
16
|
+
const parent = dirname(dir);
|
|
13
17
|
if (parent === dir) {
|
|
14
18
|
return null;
|
|
15
19
|
}
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
export interface ProcessOptions {
|
|
7
7
|
readonly cwd: string;
|
|
8
8
|
readonly env?: Record<string, string>;
|
|
9
|
+
/**
|
|
10
|
+
* Child stdio mode. Only meaningful for {@link ProcessRunner.runBackground};
|
|
11
|
+
* {@link ProcessRunner.run} always buffers output so it can return it.
|
|
12
|
+
*/
|
|
9
13
|
readonly stdio?: "inherit" | "pipe" | "ignore";
|
|
10
14
|
}
|
|
11
15
|
export declare class ProcessRunner {
|
|
@@ -7,12 +7,26 @@ import { execCommand } from "../../utils/utils.exec.js";
|
|
|
7
7
|
export class ProcessRunner {
|
|
8
8
|
async run(command, args, options) {
|
|
9
9
|
try {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
// The buffered output used to be thrown away and every caller got
|
|
11
|
+
// empty strings, making the documented `stdout`/`stderr` fields
|
|
12
|
+
// useless. `options.env` was ignored here too.
|
|
13
|
+
const result = await execCommand(command, Array.from(args), options.cwd, {
|
|
14
|
+
...(options.env ? { env: { ...process.env, ...options.env } } : {}),
|
|
15
|
+
});
|
|
16
|
+
return { stdout: result.stdout, stderr: result.stderr, exitCode: 0 };
|
|
12
17
|
}
|
|
13
18
|
catch (error) {
|
|
14
19
|
const message = error instanceof Error ? error.message : String(error);
|
|
15
|
-
|
|
20
|
+
const stdout = typeof error.stdout === "string"
|
|
21
|
+
? error.stdout
|
|
22
|
+
: "";
|
|
23
|
+
const stderr = typeof error.stderr === "string"
|
|
24
|
+
? error.stderr
|
|
25
|
+
: message;
|
|
26
|
+
const exitCode = typeof error.code === "number"
|
|
27
|
+
? error.code
|
|
28
|
+
: 1;
|
|
29
|
+
return { stdout, stderr, exitCode };
|
|
16
30
|
}
|
|
17
31
|
}
|
|
18
32
|
async runBackground(command, args, options) {
|
|
@@ -7,7 +7,10 @@ import { execCommand } from "../utils/utils.exec.js";
|
|
|
7
7
|
export class FrameworkScaffolder {
|
|
8
8
|
async scaffold(targetPath) {
|
|
9
9
|
try {
|
|
10
|
-
await execCommand(this.command, this.args, targetPath
|
|
10
|
+
await execCommand(this.command, this.args, targetPath, {
|
|
11
|
+
// Suppress interactive prompts from create-* tools.
|
|
12
|
+
env: { ...process.env, CI: "1" },
|
|
13
|
+
});
|
|
11
14
|
return { success: true, path: targetPath };
|
|
12
15
|
}
|
|
13
16
|
catch (error) {
|
|
@@ -19,12 +22,12 @@ export class FrameworkScaffolder {
|
|
|
19
22
|
export class ViteReactScaffolder extends FrameworkScaffolder {
|
|
20
23
|
name = "react-vite";
|
|
21
24
|
command = "npm";
|
|
22
|
-
args = ["create", "vite@latest", ".", "--template", "react-ts"];
|
|
25
|
+
args = ["create", "vite@latest", ".", "--", "--template", "react-ts"];
|
|
23
26
|
}
|
|
24
27
|
export class ViteVueScaffolder extends FrameworkScaffolder {
|
|
25
28
|
name = "vue-vite";
|
|
26
29
|
command = "npm";
|
|
27
|
-
args = ["create", "vite@latest", ".", "--template", "vue-ts"];
|
|
30
|
+
args = ["create", "vite@latest", ".", "--", "--template", "vue-ts"];
|
|
28
31
|
}
|
|
29
32
|
export class NextScaffolder extends FrameworkScaffolder {
|
|
30
33
|
name = "next";
|
|
@@ -61,12 +64,12 @@ export class AngularScaffolder extends FrameworkScaffolder {
|
|
|
61
64
|
export class AstroScaffolder extends FrameworkScaffolder {
|
|
62
65
|
name = "astro";
|
|
63
66
|
command = "npm";
|
|
64
|
-
args = ["create", "astro@latest", ".", "--template", "minimal"];
|
|
67
|
+
args = ["create", "astro@latest", ".", "--", "--template", "minimal"];
|
|
65
68
|
}
|
|
66
69
|
export class SvelteScaffolder extends FrameworkScaffolder {
|
|
67
70
|
name = "svelte";
|
|
68
71
|
command = "npm";
|
|
69
|
-
args = ["create", "
|
|
72
|
+
args = ["create", "vite@latest", ".", "--", "--template", "svelte-ts"];
|
|
70
73
|
}
|
|
71
74
|
export class SvelteKitScaffolder extends FrameworkScaffolder {
|
|
72
75
|
name = "sveltekit";
|
|
@@ -76,7 +79,7 @@ export class SvelteKitScaffolder extends FrameworkScaffolder {
|
|
|
76
79
|
export class VanillaScaffolder extends FrameworkScaffolder {
|
|
77
80
|
name = "vanilla";
|
|
78
81
|
command = "npm";
|
|
79
|
-
args = ["create", "vite@latest", ".", "--template", "vanilla-ts"];
|
|
82
|
+
args = ["create", "vite@latest", ".", "--", "--template", "vanilla-ts"];
|
|
80
83
|
}
|
|
81
84
|
export class FlutterScaffolder extends FrameworkScaffolder {
|
|
82
85
|
name = "flutter";
|
|
@@ -7,10 +7,15 @@ import { execCommand } from "../utils/utils.exec.js";
|
|
|
7
7
|
import { writeFileTree } from "../utils/utils.fileSystem.js";
|
|
8
8
|
export async function scaffoldWithFallback(options) {
|
|
9
9
|
try {
|
|
10
|
-
await execCommand(options.command, Array.from(options.args), options.targetPath
|
|
10
|
+
await execCommand(options.command, Array.from(options.args), options.targetPath, {
|
|
11
|
+
// Suppress interactive prompts from create-* tools.
|
|
12
|
+
env: { ...process.env, CI: "1" },
|
|
13
|
+
});
|
|
11
14
|
return true;
|
|
12
15
|
}
|
|
13
|
-
catch {
|
|
16
|
+
catch (error) {
|
|
17
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
18
|
+
console.warn(`Warning: official scaffolder "${options.command} ${options.args.join(" ")}" failed (${message.split("\n")[0]}). Using built-in fallback template.`);
|
|
14
19
|
await writeFileTree(options.targetPath, options.fallbackFiles);
|
|
15
20
|
return false;
|
|
16
21
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zudojs-cli — Microservice Template Index
|
|
3
3
|
*/
|
|
4
|
-
export { generateMicroserviceFiles } from "./microservice.template.js";
|
|
4
|
+
export { generateMicroserviceFiles, resolveMicroserviceServices, DEFAULT_MICROSERVICE_SERVICES, RESERVED_MICROSERVICE_APP_NAMES, } from "./microservice.template.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zudojs-cli — Microservice Template Index
|
|
3
3
|
*/
|
|
4
|
-
export { generateMicroserviceFiles } from "./microservice.template.js";
|
|
4
|
+
export { generateMicroserviceFiles, resolveMicroserviceServices, DEFAULT_MICROSERVICE_SERVICES, RESERVED_MICROSERVICE_APP_NAMES, } from "./microservice.template.js";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -22,5 +22,19 @@
|
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
import type { ScaffoldOptions } from "../../types/index.js";
|
|
25
|
+
/** Default service names used when none are provided. */
|
|
26
|
+
export declare const DEFAULT_MICROSERVICE_SERVICES: readonly ["identity", "enrollment", "assessment", "notification"];
|
|
27
|
+
/**
|
|
28
|
+
* The gateway app is always generated at `apps/gateway`, so "gateway" is a
|
|
29
|
+
* reserved name: a service called `gateway` would produce a second, competing
|
|
30
|
+
* gateway at `apps/services/gateway`.
|
|
31
|
+
*/
|
|
32
|
+
export declare const RESERVED_MICROSERVICE_APP_NAMES: readonly ["gateway"];
|
|
33
|
+
/**
|
|
34
|
+
* Normalizes a requested service list into the service apps generated under
|
|
35
|
+
* `apps/services/`. Reserved names and duplicates are dropped; an empty list
|
|
36
|
+
* falls back to DEFAULT_MICROSERVICE_SERVICES.
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolveMicroserviceServices(requested: readonly string[]): readonly string[];
|
|
25
39
|
export declare function generateMicroserviceFiles(options: ScaffoldOptions): Record<string, string>;
|
|
26
40
|
//# sourceMappingURL=microservice.template.d.ts.map
|