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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { runStreaming } from "../utils/utils.exec.js";
|
|
2
2
|
export function getInstallCommand(packageManager) {
|
|
3
3
|
switch (packageManager) {
|
|
4
4
|
case "pnpm":
|
|
@@ -7,6 +7,8 @@ export function getInstallCommand(packageManager) {
|
|
|
7
7
|
return ["npm", "install"];
|
|
8
8
|
case "yarn":
|
|
9
9
|
return ["yarn", "install"];
|
|
10
|
+
case "bun":
|
|
11
|
+
return ["bun", "install"];
|
|
10
12
|
default:
|
|
11
13
|
return ["pnpm", "install"];
|
|
12
14
|
}
|
|
@@ -19,12 +21,35 @@ export function getAddCommand(packageManager, pkg) {
|
|
|
19
21
|
return ["npm", "install", pkg];
|
|
20
22
|
case "yarn":
|
|
21
23
|
return ["yarn", "add", pkg];
|
|
24
|
+
case "bun":
|
|
25
|
+
return ["bun", "add", pkg];
|
|
22
26
|
default:
|
|
23
27
|
return ["pnpm", "add", pkg];
|
|
24
28
|
}
|
|
25
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* The command that runs a `package.json` script with the given manager.
|
|
32
|
+
*
|
|
33
|
+
* Generated projects declare their dev/build tooling (`tsx`, `vite`, `ng`)
|
|
34
|
+
* as devDependencies, so the binaries live in `node_modules/.bin` and are
|
|
35
|
+
* not on the user's PATH. Running the script through the package manager is
|
|
36
|
+
* what puts them there.
|
|
37
|
+
*/
|
|
38
|
+
export function getRunScriptCommand(packageManager, script) {
|
|
39
|
+
switch (packageManager) {
|
|
40
|
+
case "npm":
|
|
41
|
+
return ["npm", "run", script];
|
|
42
|
+
case "yarn":
|
|
43
|
+
return ["yarn", "run", script];
|
|
44
|
+
case "bun":
|
|
45
|
+
return ["bun", "run", script];
|
|
46
|
+
case "pnpm":
|
|
47
|
+
default:
|
|
48
|
+
return ["pnpm", "run", script];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
26
51
|
export async function installDependencies(packageManager, cwd) {
|
|
27
52
|
const [file, ...args] = getInstallCommand(packageManager);
|
|
28
|
-
await
|
|
53
|
+
await runStreaming(file, args, cwd);
|
|
29
54
|
}
|
|
30
55
|
//# sourceMappingURL=dependency.installer.js.map
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zudojs-cli — Installers
|
|
3
|
-
*
|
|
4
|
-
* Dependency installation utilities.
|
|
5
3
|
*/
|
|
6
|
-
export {
|
|
4
|
+
export { getInstallCommand, getAddCommand, getRunScriptCommand, installDependencies, } from "./dependency.installer.js";
|
|
7
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zudojs-cli — Installers
|
|
3
|
-
*
|
|
4
|
-
* Dependency installation utilities.
|
|
5
3
|
*/
|
|
6
|
-
export {
|
|
4
|
+
export { getInstallCommand, getAddCommand, getRunScriptCommand, installDependencies, } from "./dependency.installer.js";
|
|
7
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export interface ZudojsManifest {
|
|
7
7
|
readonly version: string;
|
|
8
|
+
readonly projectType?: string;
|
|
8
9
|
readonly architecture: string;
|
|
10
|
+
/** Service names for microservice projects. */
|
|
11
|
+
readonly services?: readonly string[];
|
|
9
12
|
readonly backend?: {
|
|
10
13
|
readonly architecture: string;
|
|
11
14
|
readonly api: string;
|
|
@@ -6,4 +6,5 @@
|
|
|
6
6
|
export { promptBackendArchitecture } from "./backend-architecture.prompt.js";
|
|
7
7
|
export { promptDatabase } from "./database.prompt.js";
|
|
8
8
|
export { promptApiStyle } from "./api-style.prompt.js";
|
|
9
|
+
export { promptServices } from "./services.prompt.js";
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -6,4 +6,5 @@
|
|
|
6
6
|
export { promptBackendArchitecture } from "./backend-architecture.prompt.js";
|
|
7
7
|
export { promptDatabase } from "./database.prompt.js";
|
|
8
8
|
export { promptApiStyle } from "./api-style.prompt.js";
|
|
9
|
+
export { promptServices } from "./services.prompt.js";
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zudojs-cli — Services Prompt
|
|
3
|
+
*
|
|
4
|
+
* Prompts for microservice service names (comma-separated).
|
|
5
|
+
*/
|
|
6
|
+
import * as p from "@clack/prompts";
|
|
7
|
+
const SERVICE_NAME_PATTERN = /^[a-zA-Z0-9_-]+$/;
|
|
8
|
+
function parseServices(value) {
|
|
9
|
+
return value
|
|
10
|
+
.split(",")
|
|
11
|
+
.map((s) => s.trim())
|
|
12
|
+
.filter(Boolean);
|
|
13
|
+
}
|
|
14
|
+
export async function promptServices(overrides) {
|
|
15
|
+
if (overrides && overrides.length > 0) {
|
|
16
|
+
return [...overrides];
|
|
17
|
+
}
|
|
18
|
+
const value = await p.text({
|
|
19
|
+
message: "Service names (comma-separated)",
|
|
20
|
+
placeholder: "identity,billing,notification",
|
|
21
|
+
validate(input) {
|
|
22
|
+
const services = parseServices(input ?? "");
|
|
23
|
+
if (services.length === 0) {
|
|
24
|
+
return "At least one service name is required.";
|
|
25
|
+
}
|
|
26
|
+
for (const service of services) {
|
|
27
|
+
if (!SERVICE_NAME_PATTERN.test(service)) {
|
|
28
|
+
return `Invalid service name "${service}". Only alphanumeric characters, hyphens, and underscores are allowed.`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
if (p.isCancel(value)) {
|
|
34
|
+
p.cancel("Operation cancelled.");
|
|
35
|
+
process.exit(0);
|
|
36
|
+
}
|
|
37
|
+
return parseServices(value);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=services.prompt.js.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zudojs-cli — Prompts Index
|
|
3
3
|
*/
|
|
4
|
-
export { promptCreateProject, type CreateProjectPrompts, type PromptChoice, } from "./prompts.createProject.js";
|
|
5
4
|
export { promptProjectName } from "./project/project-name.prompt.js";
|
|
6
5
|
export { promptProjectType } from "./project/project-type.prompt.js";
|
|
7
6
|
export { promptConfirmation } from "./project/confirmation.prompt.js";
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zudojs-cli — Prompts Index
|
|
3
3
|
*/
|
|
4
|
-
export { promptCreateProject, } from "./prompts.createProject.js";
|
|
5
4
|
export { promptProjectName } from "./project/project-name.prompt.js";
|
|
6
5
|
export { promptProjectType } from "./project/project-type.prompt.js";
|
|
7
6
|
export { promptConfirmation } from "./project/confirmation.prompt.js";
|
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
declare const ARCHITECTURES: readonly ["monolith", "modular-monolith", "microservice"];
|
|
2
|
+
type Architecture = (typeof ARCHITECTURES)[number];
|
|
3
|
+
/**
|
|
4
|
+
* Detects the backend architecture of the project at `cwd`.
|
|
5
|
+
*
|
|
6
|
+
* Reads the manifest (then the legacy config, then package.json) through the
|
|
7
|
+
* shared layout resolver and falls back to directory heuristics for projects
|
|
8
|
+
* that were not created by the CLI.
|
|
9
|
+
*/
|
|
10
|
+
export declare function detectArchitecture(cwd: string): Promise<Architecture | null>;
|
|
11
|
+
export {};
|
|
2
12
|
//# sourceMappingURL=architecture.resolver.d.ts.map
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
2
1
|
import { existsSync } from "node:fs";
|
|
3
2
|
import { join } from "node:path";
|
|
3
|
+
import { resolveProjectLayout } from "./layout/projectLayout.core.js";
|
|
4
|
+
const ARCHITECTURES = ["monolith", "modular-monolith", "microservice"];
|
|
5
|
+
/**
|
|
6
|
+
* Detects the backend architecture of the project at `cwd`.
|
|
7
|
+
*
|
|
8
|
+
* Reads the manifest (then the legacy config, then package.json) through the
|
|
9
|
+
* shared layout resolver and falls back to directory heuristics for projects
|
|
10
|
+
* that were not created by the CLI.
|
|
11
|
+
*/
|
|
4
12
|
export async function detectArchitecture(cwd) {
|
|
5
|
-
const
|
|
6
|
-
if (
|
|
7
|
-
|
|
8
|
-
const content = await readFile(configPath, "utf-8");
|
|
9
|
-
const match = content.match(/architecture:\s*["'](monolith|modular-monolith|microservice)["']/);
|
|
10
|
-
if (match) {
|
|
11
|
-
return match[1];
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
catch {
|
|
15
|
-
// fall through
|
|
16
|
-
}
|
|
13
|
+
const recorded = resolveProjectLayout(cwd)?.architecture;
|
|
14
|
+
if (recorded && ARCHITECTURES.includes(recorded)) {
|
|
15
|
+
return recorded;
|
|
17
16
|
}
|
|
18
17
|
if (existsSync(join(cwd, "pnpm-workspace.yaml"))) {
|
|
19
18
|
const gateway = existsSync(join(cwd, "apps/gateway"));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zudojs-cli — Configuration Resolver
|
|
3
3
|
*
|
|
4
|
-
* Resolves
|
|
4
|
+
* Resolves project configuration from the sources `zudojs create` writes.
|
|
5
5
|
*/
|
|
6
6
|
export interface ResolvedConfiguration {
|
|
7
7
|
readonly projectName: string;
|
|
@@ -16,7 +16,16 @@ export interface ResolvedConfiguration {
|
|
|
16
16
|
readonly features: readonly string[];
|
|
17
17
|
}
|
|
18
18
|
export declare class ConfigurationResolver {
|
|
19
|
+
/**
|
|
20
|
+
* Resolves the configuration of the project at `cwd`, or `null` when the
|
|
21
|
+
* directory is not a Zudojs project.
|
|
22
|
+
*
|
|
23
|
+
* Only `zudojs.config.ts` used to be consulted, so every project created
|
|
24
|
+
* since the manifest became the source of truth resolved to `null`.
|
|
25
|
+
*/
|
|
19
26
|
resolve(cwd: string): ResolvedConfiguration | null;
|
|
27
|
+
private readJson;
|
|
28
|
+
private readLegacyConfig;
|
|
20
29
|
private extractValue;
|
|
21
30
|
private extractArray;
|
|
22
31
|
}
|
|
@@ -1,50 +1,89 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zudojs-cli — Configuration Resolver
|
|
3
3
|
*
|
|
4
|
-
* Resolves
|
|
4
|
+
* Resolves project configuration from the sources `zudojs create` writes.
|
|
5
5
|
*/
|
|
6
6
|
import { existsSync, readFileSync } from "node:fs";
|
|
7
7
|
import { join } from "node:path";
|
|
8
|
+
import { resolveProjectLayout } from "../layout/projectLayout.core.js";
|
|
8
9
|
export class ConfigurationResolver {
|
|
10
|
+
/**
|
|
11
|
+
* Resolves the configuration of the project at `cwd`, or `null` when the
|
|
12
|
+
* directory is not a Zudojs project.
|
|
13
|
+
*
|
|
14
|
+
* Only `zudojs.config.ts` used to be consulted, so every project created
|
|
15
|
+
* since the manifest became the source of truth resolved to `null`.
|
|
16
|
+
*/
|
|
9
17
|
resolve(cwd) {
|
|
10
|
-
const
|
|
11
|
-
if (!
|
|
18
|
+
const layout = resolveProjectLayout(cwd);
|
|
19
|
+
if (!layout)
|
|
20
|
+
return null;
|
|
21
|
+
const manifest = this.readJson(join(cwd, ".zudojs", "manifest.json"));
|
|
22
|
+
const pkg = this.readJson(join(cwd, "package.json"));
|
|
23
|
+
const legacy = this.readLegacyConfig(cwd);
|
|
24
|
+
const features = manifest?.capabilities ??
|
|
25
|
+
(Array.isArray(pkg?.zudojs?.features)
|
|
26
|
+
? pkg.zudojs.features.filter((feature) => typeof feature === "string")
|
|
27
|
+
: undefined) ??
|
|
28
|
+
this.extractArray(legacy, "features") ??
|
|
29
|
+
[];
|
|
30
|
+
const frontendArchitecture = manifest?.frontend?.architecture ??
|
|
31
|
+
this.extractValue(legacy, "architecture", "frontend");
|
|
32
|
+
const language = this.extractValue(legacy, "language");
|
|
33
|
+
return {
|
|
34
|
+
projectName: this.extractValue(legacy, "name") ?? pkg?.name ?? "unknown",
|
|
35
|
+
projectType: layout.projectType,
|
|
36
|
+
architecture: layout.architecture,
|
|
37
|
+
packageManager: layout.packageManager,
|
|
38
|
+
database: manifest?.database?.provider ??
|
|
39
|
+
this.extractValue(legacy, "provider") ??
|
|
40
|
+
"postgresql",
|
|
41
|
+
api: manifest?.backend?.api ?? this.extractValue(legacy, "api") ?? "rest",
|
|
42
|
+
...(layout.frontendFramework !== undefined
|
|
43
|
+
? { frontend: layout.frontendFramework }
|
|
44
|
+
: {}),
|
|
45
|
+
...(frontendArchitecture !== undefined ? { frontendArchitecture } : {}),
|
|
46
|
+
...(language !== undefined ? { language } : {}),
|
|
47
|
+
features,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
readJson(path) {
|
|
51
|
+
if (!existsSync(path))
|
|
12
52
|
return null;
|
|
13
|
-
}
|
|
14
53
|
try {
|
|
15
|
-
|
|
16
|
-
return {
|
|
17
|
-
projectName: this.extractValue(content, "name") ?? "unknown",
|
|
18
|
-
projectType: this.extractValue(content, "type") ?? "backend",
|
|
19
|
-
architecture: this.extractValue(content, "architecture") ?? "monolith",
|
|
20
|
-
packageManager: this.extractValue(content, "packageManager") ?? "pnpm",
|
|
21
|
-
database: this.extractValue(content, "provider") ?? "postgresql",
|
|
22
|
-
api: this.extractValue(content, "api") ?? "rest",
|
|
23
|
-
frontend: this.extractValue(content, "framework"),
|
|
24
|
-
frontendArchitecture: this.extractValue(content, "architecture", "frontend"),
|
|
25
|
-
language: this.extractValue(content, "language"),
|
|
26
|
-
features: this.extractArray(content, "features") ?? [],
|
|
27
|
-
};
|
|
54
|
+
return JSON.parse(readFileSync(path, "utf-8"));
|
|
28
55
|
}
|
|
29
56
|
catch {
|
|
30
57
|
return null;
|
|
31
58
|
}
|
|
32
59
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
60
|
+
readLegacyConfig(cwd) {
|
|
61
|
+
for (const name of ["zudojs.config.ts", "zudojs.config.js"]) {
|
|
62
|
+
const path = join(cwd, name);
|
|
63
|
+
if (!existsSync(path))
|
|
64
|
+
continue;
|
|
65
|
+
try {
|
|
66
|
+
return readFileSync(path, "utf-8");
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return "";
|
|
70
|
+
}
|
|
40
71
|
}
|
|
41
|
-
|
|
42
|
-
|
|
72
|
+
return "";
|
|
73
|
+
}
|
|
74
|
+
extractValue(content, key, section) {
|
|
75
|
+
if (content.length === 0)
|
|
76
|
+
return undefined;
|
|
77
|
+
const pattern = section
|
|
78
|
+
? new RegExp(`${section}[\\s\\S]*?${key}:\\s*["']([^"']+)["']`)
|
|
79
|
+
: new RegExp(`(?<![\\w])${key}:\\s*["']([^"']+)["']`);
|
|
80
|
+
return content.match(pattern)?.[1];
|
|
43
81
|
}
|
|
44
82
|
extractArray(content, key) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
83
|
+
if (content.length === 0)
|
|
84
|
+
return undefined;
|
|
85
|
+
const match = content.match(new RegExp(`${key}:\\s*\\[([^\\]]+)\\]`));
|
|
86
|
+
if (!match?.[1])
|
|
48
87
|
return undefined;
|
|
49
88
|
return match[1]
|
|
50
89
|
.split(",")
|
|
@@ -7,4 +7,5 @@ export { detectArchitecture } from "./architecture.resolver.js";
|
|
|
7
7
|
export { resolveProjectPath, findProjectRoot } from "./project.resolver.js";
|
|
8
8
|
export { CapabilityResolver, type CapabilityDependency, type CapabilityResolutionResult, } from "./capability/index.js";
|
|
9
9
|
export { ConfigurationResolver, type ResolvedConfiguration, } from "./configuration/index.js";
|
|
10
|
+
export { resolveProjectLayout, detectPackageManager, type ProjectLayout, type ProjectLayoutType, type ProjectLayoutSource, } from "./layout/index.js";
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -7,4 +7,5 @@ export { detectArchitecture } from "./architecture.resolver.js";
|
|
|
7
7
|
export { resolveProjectPath, findProjectRoot } from "./project.resolver.js";
|
|
8
8
|
export { CapabilityResolver, } from "./capability/index.js";
|
|
9
9
|
export { ConfigurationResolver, } from "./configuration/index.js";
|
|
10
|
+
export { resolveProjectLayout, detectPackageManager, } from "./layout/index.js";
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,60 @@
|
|
|
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 type { PackageManager } from "../../types/index.js";
|
|
23
|
+
/** Project type recorded by `zudojs create`. */
|
|
24
|
+
export type ProjectLayoutType = "backend" | "frontend" | "fullstack";
|
|
25
|
+
/** Where the description of the project came from. */
|
|
26
|
+
export type ProjectLayoutSource = "manifest" | "config" | "package.json";
|
|
27
|
+
/** The resolved shape of a Zudojs project on disk. */
|
|
28
|
+
export interface ProjectLayout {
|
|
29
|
+
/** Absolute project root: the directory holding the manifest or config. */
|
|
30
|
+
readonly root: string;
|
|
31
|
+
readonly projectType: ProjectLayoutType;
|
|
32
|
+
/** Backend architecture (`monolith`, `modular-monolith`, `microservice`). */
|
|
33
|
+
readonly architecture: string;
|
|
34
|
+
readonly packageManager: PackageManager;
|
|
35
|
+
/** Whether the root is a workspace (pnpm-workspace.yaml or `workspaces`). */
|
|
36
|
+
readonly isWorkspace: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Absolute directories that hold a backend app, each with its own
|
|
39
|
+
* `package.json`. Empty for a frontend-only project. A monolith has one
|
|
40
|
+
* (the root, or `apps/api` in a fullstack workspace); a microservice
|
|
41
|
+
* project has the gateway plus one per service.
|
|
42
|
+
*/
|
|
43
|
+
readonly backendDirs: readonly string[];
|
|
44
|
+
/** Absolute directory of the frontend app, when the project has one. */
|
|
45
|
+
readonly frontendDir?: string;
|
|
46
|
+
readonly frontendFramework?: string;
|
|
47
|
+
/** Service names of a microservice project. */
|
|
48
|
+
readonly services: readonly string[];
|
|
49
|
+
readonly source: ProjectLayoutSource;
|
|
50
|
+
}
|
|
51
|
+
/** Detects the package manager from lock files and workspace markers. */
|
|
52
|
+
export declare function detectPackageManager(root: string): PackageManager;
|
|
53
|
+
/**
|
|
54
|
+
* Resolves the layout of the Zudojs project rooted at `cwd`.
|
|
55
|
+
*
|
|
56
|
+
* Returns `null` when the directory is not a Zudojs project: no manifest,
|
|
57
|
+
* no legacy config and no `zudojs` block in `package.json`.
|
|
58
|
+
*/
|
|
59
|
+
export declare function resolveProjectLayout(cwd: string): ProjectLayout | null;
|
|
60
|
+
//# sourceMappingURL=projectLayout.core.d.ts.map
|