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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Zudojs Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -51,22 +51,45 @@ zudojs generate module users
|
|
|
51
51
|
|
|
52
52
|
# Add a feature
|
|
53
53
|
zudojs add database
|
|
54
|
+
|
|
55
|
+
# Build the project
|
|
56
|
+
zudojs build
|
|
54
57
|
```
|
|
55
58
|
|
|
59
|
+
`zudojs build` and `zudojs doctor` exit with a non-zero status when they fail,
|
|
60
|
+
so they can be used as CI gates.
|
|
61
|
+
|
|
62
|
+
### Update check
|
|
63
|
+
|
|
64
|
+
`zudojs info` asks npm whether a newer `zudojs-cli` exists and prints the
|
|
65
|
+
version if so. Set `ZUDOJS_NO_UPDATE_CHECK=1` to turn it off; it is skipped
|
|
66
|
+
automatically when `CI` is set or npm is offline. Nothing runs at install
|
|
67
|
+
time.
|
|
68
|
+
|
|
69
|
+
### What a new project contains
|
|
70
|
+
|
|
71
|
+
`zudojs create` records the project's type, architecture, package manager and
|
|
72
|
+
capabilities in `.zudojs/manifest.json` (machine-managed) and in the `zudojs`
|
|
73
|
+
block of `package.json`. Every follow-up command reads those; no
|
|
74
|
+
`zudojs.config.ts` is written. Framework packages are added as `^1.0.0`
|
|
75
|
+
ranges, and projects created for pnpm carry a `pnpm-workspace.yaml` that
|
|
76
|
+
allows esbuild's build script, which pnpm 10+ would otherwise refuse to run.
|
|
77
|
+
|
|
56
78
|
## Commands
|
|
57
79
|
|
|
58
80
|
| Command | Description |
|
|
59
81
|
| ---------- | ------------------------------------------------------------------------ |
|
|
60
82
|
| `create` | Scaffold a new project (backend, frontend, or fullstack) |
|
|
61
83
|
| `generate` | Generate files (service, module, command, query, controller, repository) |
|
|
62
|
-
| `add` | Add feature packages (database, queue, messaging, etc.)
|
|
63
|
-
| `dev` | Start development servers
|
|
84
|
+
| `add` | Add feature packages (database, queue, messaging, etc.); `--service` targets one microservice app |
|
|
85
|
+
| `dev` | Start development servers through the project's package manager (`pnpm run dev`, …) |
|
|
86
|
+
| `build` | Build the project with its detected package manager |
|
|
64
87
|
| `doctor` | Run project diagnostics |
|
|
65
88
|
| `info` | Show project information |
|
|
66
89
|
|
|
67
90
|
## Supported Frameworks
|
|
68
91
|
|
|
69
|
-
- **Backend:** Node.js
|
|
92
|
+
- **Backend:** Node.js (Zudojs runtime)
|
|
70
93
|
- **Frontend:** React, Next.js, Vue, Nuxt, Angular, Svelte, SvelteKit, Astro, Vanilla, Flutter, React Native
|
|
71
94
|
- **Architectures:** Monolith, Modular Monolith, Microservice
|
|
72
95
|
|
|
@@ -17,18 +17,4 @@ export declare class PostgresAdapter implements DatabaseAdapter {
|
|
|
17
17
|
getDependencies(): readonly string[];
|
|
18
18
|
getEnvironmentVariables(): Record<string, string>;
|
|
19
19
|
}
|
|
20
|
-
export declare class MySqlAdapter implements DatabaseAdapter {
|
|
21
|
-
readonly name = "mysql";
|
|
22
|
-
readonly driver = "mysql";
|
|
23
|
-
getConnectionString(dbName: string): string;
|
|
24
|
-
getDependencies(): readonly string[];
|
|
25
|
-
getEnvironmentVariables(): Record<string, string>;
|
|
26
|
-
}
|
|
27
|
-
export declare class SqliteAdapter implements DatabaseAdapter {
|
|
28
|
-
readonly name = "sqlite";
|
|
29
|
-
readonly driver = "sqlite";
|
|
30
|
-
getConnectionString(dbName: string): string;
|
|
31
|
-
getDependencies(): readonly string[];
|
|
32
|
-
getEnvironmentVariables(): Record<string, string>;
|
|
33
|
-
}
|
|
34
20
|
//# sourceMappingURL=postgres.adapter.d.ts.map
|
|
@@ -18,34 +18,4 @@ export class PostgresAdapter {
|
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
export class MySqlAdapter {
|
|
22
|
-
name = "mysql";
|
|
23
|
-
driver = "mysql";
|
|
24
|
-
getConnectionString(dbName) {
|
|
25
|
-
return `mysql://localhost:3306/${dbName}`;
|
|
26
|
-
}
|
|
27
|
-
getDependencies() {
|
|
28
|
-
return ["@zudojs/database"];
|
|
29
|
-
}
|
|
30
|
-
getEnvironmentVariables() {
|
|
31
|
-
return {
|
|
32
|
-
DATABASE_URL: "mysql://localhost:3306/mydb",
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export class SqliteAdapter {
|
|
37
|
-
name = "sqlite";
|
|
38
|
-
driver = "sqlite";
|
|
39
|
-
getConnectionString(dbName) {
|
|
40
|
-
return `sqlite:${dbName}.db`;
|
|
41
|
-
}
|
|
42
|
-
getDependencies() {
|
|
43
|
-
return ["@zudojs/database"];
|
|
44
|
-
}
|
|
45
|
-
getEnvironmentVariables() {
|
|
46
|
-
return {
|
|
47
|
-
DATABASE_URL: "sqlite:mydb.db",
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
21
|
//# sourceMappingURL=postgres.adapter.js.map
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @module adapters/frontend/angular
|
|
5
5
|
*/
|
|
6
6
|
import { writeFileTree } from "../../utils/utils.fileSystem.js";
|
|
7
|
+
import { normalizeName } from "../../utils/utils.name.js";
|
|
7
8
|
import { scaffoldWithFallback } from "../../scaffolders/scaffolder.helper.js";
|
|
8
9
|
/**
|
|
9
10
|
* Angular adapter with standalone support.
|
|
@@ -19,11 +20,16 @@ export class AngularAdapter {
|
|
|
19
20
|
}
|
|
20
21
|
async scaffold(context) {
|
|
21
22
|
const files = this.getBaseFiles(context);
|
|
23
|
+
// Angular CLI requires a valid project name; "." is not one. Pass the
|
|
24
|
+
// real name and scaffold into the current directory via --directory.
|
|
25
|
+
const projectName = normalizeName(context.project.name) || "zudojs-app";
|
|
22
26
|
await scaffoldWithFallback({
|
|
23
27
|
command: "npx",
|
|
24
28
|
args: [
|
|
25
29
|
"@angular/cli@latest",
|
|
26
30
|
"new",
|
|
31
|
+
projectName,
|
|
32
|
+
"--directory",
|
|
27
33
|
".",
|
|
28
34
|
"--skip-git",
|
|
29
35
|
"--skip-install",
|
|
@@ -25,12 +25,12 @@ export class AstroAdapter {
|
|
|
25
25
|
"create",
|
|
26
26
|
"astro@latest",
|
|
27
27
|
".",
|
|
28
|
+
"--",
|
|
28
29
|
"--template",
|
|
29
30
|
"minimal",
|
|
30
31
|
"--no-install",
|
|
31
32
|
"--no-git",
|
|
32
|
-
"--
|
|
33
|
-
"strict",
|
|
33
|
+
"--yes",
|
|
34
34
|
],
|
|
35
35
|
targetPath: context.projectPath,
|
|
36
36
|
fallbackFiles: files,
|
|
@@ -17,6 +17,12 @@ export interface FrontendGenerationContext {
|
|
|
17
17
|
readonly architecture: "zudojs-standard" | "feature-based" | "minimal" | "framework-default";
|
|
18
18
|
readonly packageManager: "pnpm" | "npm" | "yarn" | "bun";
|
|
19
19
|
readonly features: FrontendFeatures;
|
|
20
|
+
/**
|
|
21
|
+
* Record resolved dependencies in package.json instead of installing
|
|
22
|
+
* them. Set by `zudojs create --no-install`, which the frontend pipeline
|
|
23
|
+
* used to ignore: it ran the package manager regardless of the flag.
|
|
24
|
+
*/
|
|
25
|
+
readonly skipInstall?: boolean;
|
|
20
26
|
}
|
|
21
27
|
/**
|
|
22
28
|
* Optional frontend features.
|
|
@@ -32,6 +32,7 @@ export class ReactAdapter {
|
|
|
32
32
|
"create",
|
|
33
33
|
"vite@latest",
|
|
34
34
|
".",
|
|
35
|
+
"--",
|
|
35
36
|
"--template",
|
|
36
37
|
context.language === "javascript" ? "react" : "react-ts",
|
|
37
38
|
],
|
|
@@ -76,6 +77,7 @@ export class ReactAdapter {
|
|
|
76
77
|
}
|
|
77
78
|
getBaseFiles(context) {
|
|
78
79
|
const useTypeScript = context.language === "typescript";
|
|
80
|
+
const ext = useTypeScript ? "tsx" : "jsx";
|
|
79
81
|
return {
|
|
80
82
|
"package.json": JSON.stringify({
|
|
81
83
|
name: context.project.name,
|
|
@@ -84,7 +86,8 @@ export class ReactAdapter {
|
|
|
84
86
|
type: "module",
|
|
85
87
|
scripts: {
|
|
86
88
|
dev: "vite",
|
|
87
|
-
build
|
|
89
|
+
// Vite performs the build; tsc only typechecks (noEmit).
|
|
90
|
+
build: useTypeScript ? "tsc --noEmit && vite build" : "vite build",
|
|
88
91
|
preview: "vite preview",
|
|
89
92
|
},
|
|
90
93
|
dependencies: {
|
|
@@ -104,18 +107,24 @@ export default defineConfig({
|
|
|
104
107
|
plugins: [react()],
|
|
105
108
|
});
|
|
106
109
|
`,
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
110
|
+
...(useTypeScript
|
|
111
|
+
? {
|
|
112
|
+
"tsconfig.json": JSON.stringify({
|
|
113
|
+
compilerOptions: {
|
|
114
|
+
target: "ES2020",
|
|
115
|
+
useDefineForClassFields: true,
|
|
116
|
+
lib: ["ES2020", "DOM", "DOM.Iterable"],
|
|
117
|
+
module: "ESNext",
|
|
118
|
+
skipLibCheck: true,
|
|
119
|
+
moduleResolution: "bundler",
|
|
120
|
+
allowImportingTsExtensions: true,
|
|
121
|
+
resolveJsonModule: true,
|
|
122
|
+
jsx: "react-jsx",
|
|
123
|
+
noEmit: true,
|
|
124
|
+
},
|
|
125
|
+
}, null, 2),
|
|
126
|
+
}
|
|
127
|
+
: {}),
|
|
119
128
|
"index.html": `<!DOCTYPE html>
|
|
120
129
|
<html lang="en">
|
|
121
130
|
<head>
|
|
@@ -125,21 +134,21 @@ export default defineConfig({
|
|
|
125
134
|
</head>
|
|
126
135
|
<body>
|
|
127
136
|
<div id="root"></div>
|
|
128
|
-
<script type="module" src="/src/main
|
|
137
|
+
<script type="module" src="/src/main.${ext}"></script>
|
|
129
138
|
</body>
|
|
130
139
|
</html>
|
|
131
140
|
`,
|
|
132
|
-
|
|
141
|
+
[`src/main.${ext}`]: `import { StrictMode } from "react";
|
|
133
142
|
import { createRoot } from "react-dom/client";
|
|
134
143
|
import App from "./App";
|
|
135
144
|
|
|
136
|
-
createRoot(document.getElementById("root")!).render(
|
|
145
|
+
createRoot(document.getElementById("root")${useTypeScript ? "!" : ""}).render(
|
|
137
146
|
<StrictMode>
|
|
138
147
|
<App />
|
|
139
148
|
</StrictMode>,
|
|
140
149
|
);
|
|
141
150
|
`,
|
|
142
|
-
|
|
151
|
+
[`src/App.${ext}`]: `export default function App() {
|
|
143
152
|
return (
|
|
144
153
|
<div>
|
|
145
154
|
<h1>Hello from Zudojs</h1>
|
|
@@ -20,17 +20,16 @@ export class SvelteKitAdapter {
|
|
|
20
20
|
async scaffold(context) {
|
|
21
21
|
const files = this.getBaseFiles(context);
|
|
22
22
|
await scaffoldWithFallback({
|
|
23
|
-
command: "
|
|
23
|
+
command: "npx",
|
|
24
24
|
args: [
|
|
25
|
+
"sv",
|
|
25
26
|
"create",
|
|
26
|
-
"svelte@latest",
|
|
27
27
|
".",
|
|
28
|
-
"--
|
|
29
|
-
"
|
|
30
|
-
"--
|
|
31
|
-
"
|
|
32
|
-
"--no-
|
|
33
|
-
"--no-git",
|
|
28
|
+
"--template",
|
|
29
|
+
"minimal",
|
|
30
|
+
"--types",
|
|
31
|
+
"ts",
|
|
32
|
+
"--no-add-ons",
|
|
34
33
|
"--no-install",
|
|
35
34
|
],
|
|
36
35
|
targetPath: context.projectPath,
|
|
@@ -21,7 +21,7 @@ export class VanillaAdapter {
|
|
|
21
21
|
const files = this.getBaseFiles(context);
|
|
22
22
|
await scaffoldWithFallback({
|
|
23
23
|
command: "npm",
|
|
24
|
-
args: ["create", "vite@latest", ".", "--template", "vanilla-ts"],
|
|
24
|
+
args: ["create", "vite@latest", ".", "--", "--template", "vanilla-ts"],
|
|
25
25
|
targetPath: context.projectPath,
|
|
26
26
|
fallbackFiles: files,
|
|
27
27
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module adapters/package-managers/bun
|
|
5
5
|
*/
|
|
6
|
-
import { execCommand } from "../../utils/utils.exec.js";
|
|
6
|
+
import { execCommand, runStreaming } from "../../utils/utils.exec.js";
|
|
7
7
|
/**
|
|
8
8
|
* bun adapter implementation.
|
|
9
9
|
*/
|
|
@@ -19,20 +19,20 @@ export class BunAdapter {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
async install(projectPath) {
|
|
22
|
-
await
|
|
22
|
+
await runStreaming("bun", ["install"], projectPath);
|
|
23
23
|
}
|
|
24
24
|
async add(projectPath, packages) {
|
|
25
25
|
if (packages.length === 0)
|
|
26
26
|
return;
|
|
27
|
-
await
|
|
27
|
+
await runStreaming("bun", ["add", ...packages], projectPath);
|
|
28
28
|
}
|
|
29
29
|
async addDev(projectPath, packages) {
|
|
30
30
|
if (packages.length === 0)
|
|
31
31
|
return;
|
|
32
|
-
await
|
|
32
|
+
await runStreaming("bun", ["add", "-d", ...packages], projectPath);
|
|
33
33
|
}
|
|
34
34
|
async run(projectPath, script) {
|
|
35
|
-
await
|
|
35
|
+
await runStreaming("bun", ["run", script], projectPath);
|
|
36
36
|
}
|
|
37
37
|
getInstallCommand() {
|
|
38
38
|
return "bun install";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module adapters/package-managers/npm
|
|
5
5
|
*/
|
|
6
|
-
import { execCommand } from "../../utils/utils.exec.js";
|
|
6
|
+
import { execCommand, runStreaming } from "../../utils/utils.exec.js";
|
|
7
7
|
/**
|
|
8
8
|
* npm adapter implementation.
|
|
9
9
|
*/
|
|
@@ -19,20 +19,20 @@ export class NpmAdapter {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
async install(projectPath) {
|
|
22
|
-
await
|
|
22
|
+
await runStreaming("npm", ["install"], projectPath);
|
|
23
23
|
}
|
|
24
24
|
async add(projectPath, packages) {
|
|
25
25
|
if (packages.length === 0)
|
|
26
26
|
return;
|
|
27
|
-
await
|
|
27
|
+
await runStreaming("npm", ["install", ...packages], projectPath);
|
|
28
28
|
}
|
|
29
29
|
async addDev(projectPath, packages) {
|
|
30
30
|
if (packages.length === 0)
|
|
31
31
|
return;
|
|
32
|
-
await
|
|
32
|
+
await runStreaming("npm", ["install", "-D", ...packages], projectPath);
|
|
33
33
|
}
|
|
34
34
|
async run(projectPath, script) {
|
|
35
|
-
await
|
|
35
|
+
await runStreaming("npm", ["run", script], projectPath);
|
|
36
36
|
}
|
|
37
37
|
getInstallCommand() {
|
|
38
38
|
return "npm install";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module adapters/package-managers/pnpm
|
|
5
5
|
*/
|
|
6
|
-
import { execCommand } from "../../utils/utils.exec.js";
|
|
6
|
+
import { execCommand, runStreaming } from "../../utils/utils.exec.js";
|
|
7
7
|
/**
|
|
8
8
|
* pnpm adapter implementation.
|
|
9
9
|
*/
|
|
@@ -19,20 +19,20 @@ export class PnpmAdapter {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
async install(projectPath) {
|
|
22
|
-
await
|
|
22
|
+
await runStreaming("pnpm", ["install"], projectPath);
|
|
23
23
|
}
|
|
24
24
|
async add(projectPath, packages) {
|
|
25
25
|
if (packages.length === 0)
|
|
26
26
|
return;
|
|
27
|
-
await
|
|
27
|
+
await runStreaming("pnpm", ["add", ...packages], projectPath);
|
|
28
28
|
}
|
|
29
29
|
async addDev(projectPath, packages) {
|
|
30
30
|
if (packages.length === 0)
|
|
31
31
|
return;
|
|
32
|
-
await
|
|
32
|
+
await runStreaming("pnpm", ["add", "-D", ...packages], projectPath);
|
|
33
33
|
}
|
|
34
34
|
async run(projectPath, script) {
|
|
35
|
-
await
|
|
35
|
+
await runStreaming("pnpm", ["run", script], projectPath);
|
|
36
36
|
}
|
|
37
37
|
getInstallCommand() {
|
|
38
38
|
return "pnpm install";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module adapters/package-managers/yarn
|
|
5
5
|
*/
|
|
6
|
-
import { execCommand } from "../../utils/utils.exec.js";
|
|
6
|
+
import { execCommand, runStreaming } from "../../utils/utils.exec.js";
|
|
7
7
|
/**
|
|
8
8
|
* yarn adapter implementation.
|
|
9
9
|
*/
|
|
@@ -19,20 +19,20 @@ export class YarnAdapter {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
async install(projectPath) {
|
|
22
|
-
await
|
|
22
|
+
await runStreaming("yarn", ["install"], projectPath);
|
|
23
23
|
}
|
|
24
24
|
async add(projectPath, packages) {
|
|
25
25
|
if (packages.length === 0)
|
|
26
26
|
return;
|
|
27
|
-
await
|
|
27
|
+
await runStreaming("yarn", ["add", ...packages], projectPath);
|
|
28
28
|
}
|
|
29
29
|
async addDev(projectPath, packages) {
|
|
30
30
|
if (packages.length === 0)
|
|
31
31
|
return;
|
|
32
|
-
await
|
|
32
|
+
await runStreaming("yarn", ["add", "-D", ...packages], projectPath);
|
|
33
33
|
}
|
|
34
34
|
async run(projectPath, script) {
|
|
35
|
-
await
|
|
35
|
+
await runStreaming("yarn", [script], projectPath);
|
|
36
36
|
}
|
|
37
37
|
getInstallCommand() {
|
|
38
38
|
return "yarn install";
|
package/dist/src/bin/zudojs.js
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* @module bin/zudojs
|
|
6
6
|
*/
|
|
7
7
|
import { createCLI } from "../cliApplication/index.js";
|
|
8
|
-
import { CLI_DEFAULTS } from "../cliConstant/cliConstant.value.js";
|
|
9
8
|
import { createCommand } from "../cliCommand/index.js";
|
|
9
|
+
import { CLI_VERSION, FEATURE_PACKAGES } from "../constants/index.js";
|
|
10
10
|
import { runCreateCommand } from "../commands/create.command.js";
|
|
11
11
|
import { runDevCommand } from "../commands/dev.command.js";
|
|
12
12
|
import { runGenerateCommand } from "../commands/generate.command.js";
|
|
@@ -16,7 +16,9 @@ import { runDoctorCommand } from "../commands/doctor.command.js";
|
|
|
16
16
|
import { runInfoCommand } from "../commands/info.command.js";
|
|
17
17
|
const app = createCLI({
|
|
18
18
|
name: "Zudojs",
|
|
19
|
-
|
|
19
|
+
// Read from the CLI's own package.json, so `zudojs --version` cannot
|
|
20
|
+
// drift from the published version.
|
|
21
|
+
version: CLI_VERSION,
|
|
20
22
|
description: "Command-line interface for the Zudojs framework.",
|
|
21
23
|
});
|
|
22
24
|
app.register(createCommand({
|
|
@@ -73,7 +75,7 @@ app.register(createCommand({
|
|
|
73
75
|
},
|
|
74
76
|
{
|
|
75
77
|
name: "frontend-architecture",
|
|
76
|
-
short: "
|
|
78
|
+
short: "F",
|
|
77
79
|
description: "Frontend architecture (zudojs-standard, feature-based, minimal, framework-default)",
|
|
78
80
|
type: "string",
|
|
79
81
|
defaultValue: "zudojs-standard",
|
|
@@ -98,10 +100,13 @@ app.register(createCommand({
|
|
|
98
100
|
defaultValue: false,
|
|
99
101
|
},
|
|
100
102
|
{
|
|
103
|
+
// No default: the flag default used to be "gateway,api", which made a
|
|
104
|
+
// non-interactive `--architecture microservice` generate
|
|
105
|
+
// apps/services/gateway alongside the always-generated apps/gateway.
|
|
106
|
+
// With no default the microservice template picks its own service set.
|
|
101
107
|
name: "services",
|
|
102
108
|
description: "Comma-separated service names (microservice architecture only)",
|
|
103
109
|
type: "string",
|
|
104
|
-
defaultValue: "gateway,api",
|
|
105
110
|
},
|
|
106
111
|
],
|
|
107
112
|
execute: async (context) => {
|
|
@@ -182,15 +187,15 @@ app.register(createCommand({
|
|
|
182
187
|
arguments: [
|
|
183
188
|
{
|
|
184
189
|
name: "feature",
|
|
185
|
-
description:
|
|
190
|
+
description: `The feature to add (${Object.keys(FEATURE_PACKAGES).join(", ")})`,
|
|
186
191
|
required: true,
|
|
187
192
|
},
|
|
188
193
|
],
|
|
189
194
|
options: [
|
|
190
195
|
{
|
|
191
|
-
name: "
|
|
192
|
-
short: "
|
|
193
|
-
description: "
|
|
196
|
+
name: "service",
|
|
197
|
+
short: "s",
|
|
198
|
+
description: "Add the feature to one app of a microservice project (gateway or a service name)",
|
|
194
199
|
type: "string",
|
|
195
200
|
},
|
|
196
201
|
{
|
|
@@ -226,8 +231,15 @@ app.register(createCommand({
|
|
|
226
231
|
await runInfoCommand(context);
|
|
227
232
|
},
|
|
228
233
|
}));
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
234
|
+
try {
|
|
235
|
+
const exitCode = await app.run(process.argv.slice(2));
|
|
236
|
+
if (exitCode !== 0) {
|
|
237
|
+
process.exit(exitCode);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
242
|
+
console.error(`Error: ${message}`);
|
|
243
|
+
process.exit(1);
|
|
232
244
|
}
|
|
233
245
|
//# sourceMappingURL=zudojs.js.map
|
|
@@ -4,9 +4,18 @@
|
|
|
4
4
|
* Help and version request detection and output.
|
|
5
5
|
*/
|
|
6
6
|
import type { CLIArguments, CLIWriter } from "../cliType/cliType.type.js";
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Returns whether the args are a help request.
|
|
9
|
+
*
|
|
10
|
+
* Only the first argument is considered so that command-specific flags
|
|
11
|
+
* (e.g. `zudojs create -h ...`) are not swallowed by the global handler.
|
|
12
|
+
*/
|
|
8
13
|
export declare function isHelpRequest(args: CLIArguments): boolean;
|
|
9
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Returns whether the args are a version request.
|
|
16
|
+
*
|
|
17
|
+
* Only the first argument is considered.
|
|
18
|
+
*/
|
|
10
19
|
export declare function isVersionRequest(args: CLIArguments): boolean;
|
|
11
20
|
/** Prints the version string. */
|
|
12
21
|
export declare function printVersion(writer: CLIWriter, version?: string): void;
|
|
@@ -4,13 +4,24 @@
|
|
|
4
4
|
* Help and version request detection and output.
|
|
5
5
|
*/
|
|
6
6
|
import { CLI_COMMANDS, CLI_DEFAULTS, } from "../cliConstant/cliConstant.value.js";
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Returns whether the args are a help request.
|
|
9
|
+
*
|
|
10
|
+
* Only the first argument is considered so that command-specific flags
|
|
11
|
+
* (e.g. `zudojs create -h ...`) are not swallowed by the global handler.
|
|
12
|
+
*/
|
|
8
13
|
export function isHelpRequest(args) {
|
|
9
|
-
|
|
14
|
+
const first = args[0];
|
|
15
|
+
return first === CLI_COMMANDS.HELP || first === "-h" || first === "--help";
|
|
10
16
|
}
|
|
11
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Returns whether the args are a version request.
|
|
19
|
+
*
|
|
20
|
+
* Only the first argument is considered.
|
|
21
|
+
*/
|
|
12
22
|
export function isVersionRequest(args) {
|
|
13
|
-
|
|
23
|
+
const first = args[0];
|
|
24
|
+
return (first === CLI_COMMANDS.VERSION || first === "-v" || first === "--version");
|
|
14
25
|
}
|
|
15
26
|
/** Prints the version string. */
|
|
16
27
|
export function printVersion(writer, version) {
|
|
@@ -10,8 +10,8 @@ import { CommandNotFoundError } from "../cliError/cliError.command.js";
|
|
|
10
10
|
import { CLICommandRegistry } from "../cliCommand/cliCommand.registry.js";
|
|
11
11
|
import { executeCommand } from "../cliCommand/cliCommand.factory.js";
|
|
12
12
|
import { CLIParser, resolveCommand } from "../cliParser/index.js";
|
|
13
|
-
import { createDefaultLogger } from "@zudojs/logger";
|
|
14
13
|
import { createCLIWriter } from "./cliApplication.writer.js";
|
|
14
|
+
import { createCLILogger } from "./cliApplication.logger.js";
|
|
15
15
|
import { isHelpRequest, isVersionRequest, printVersion, printHelp, } from "./cliApplication.builtins.js";
|
|
16
16
|
/* -------------------------------------------------------------------------- */
|
|
17
17
|
/* Application */
|
|
@@ -38,7 +38,7 @@ export class ZudojsCLI {
|
|
|
38
38
|
this.description = options.description ?? CLI_DEFAULTS.DESCRIPTION;
|
|
39
39
|
this.cwd = options.cwd ?? process.cwd();
|
|
40
40
|
this.env = options.env ?? process.env;
|
|
41
|
-
this.logger = options.logger ??
|
|
41
|
+
this.logger = options.logger ?? createCLILogger();
|
|
42
42
|
this.commands = new CLICommandRegistry();
|
|
43
43
|
this.parser = new CLIParser();
|
|
44
44
|
this.writer = createCLIWriter();
|
|
@@ -100,12 +100,27 @@ export class ZudojsCLI {
|
|
|
100
100
|
}
|
|
101
101
|
catch (error) {
|
|
102
102
|
const normalized = normalizeCLIError(error);
|
|
103
|
-
const command = this.findCommand(args);
|
|
104
|
-
const commandArgs = command
|
|
105
|
-
? this.getCommandArguments(args, command)
|
|
106
|
-
: args;
|
|
107
|
-
const fallbackContext = this.createContext(commandArgs, command);
|
|
108
103
|
if (this.hooks.onError) {
|
|
104
|
+
// Building the fallback context must never rethrow: if the original
|
|
105
|
+
// error came from argument parsing, re-parsing would fail again.
|
|
106
|
+
let fallbackContext;
|
|
107
|
+
try {
|
|
108
|
+
const command = this.findCommand(args);
|
|
109
|
+
const commandArgs = command
|
|
110
|
+
? this.getCommandArguments(args, command)
|
|
111
|
+
: args;
|
|
112
|
+
fallbackContext = this.createContext(commandArgs, command);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
fallbackContext = {
|
|
116
|
+
args,
|
|
117
|
+
values: {},
|
|
118
|
+
command: undefined,
|
|
119
|
+
cwd: this.cwd,
|
|
120
|
+
env: this.env,
|
|
121
|
+
logger: this.logger,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
109
124
|
await this.hooks.onError(normalized, fallbackContext);
|
|
110
125
|
}
|
|
111
126
|
this.writer.errorLine(normalized.message);
|