@sk8metal/michi-cli 0.14.1 → 0.19.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/CHANGELOG.md +268 -2
- package/README.md +27 -2
- package/dist/scripts/config/config-schema.d.ts +5 -333
- package/dist/scripts/config/config-schema.d.ts.map +1 -1
- package/dist/scripts/config/config-schema.js +6 -233
- package/dist/scripts/config/config-schema.js.map +1 -1
- package/dist/scripts/config-global.d.ts.map +1 -1
- package/dist/scripts/config-global.js +3 -2
- package/dist/scripts/config-global.js.map +1 -1
- package/dist/scripts/confluence-sync.d.ts +5 -73
- package/dist/scripts/confluence-sync.d.ts.map +1 -1
- package/dist/scripts/confluence-sync.js +14 -392
- package/dist/scripts/confluence-sync.js.map +1 -1
- package/dist/scripts/constants/environments.d.ts +3 -30
- package/dist/scripts/constants/environments.d.ts.map +1 -1
- package/dist/scripts/constants/environments.js +3 -41
- package/dist/scripts/constants/environments.js.map +1 -1
- package/dist/scripts/constants/languages.d.ts +3 -20
- package/dist/scripts/constants/languages.d.ts.map +1 -1
- package/dist/scripts/constants/languages.js +3 -50
- package/dist/scripts/constants/languages.js.map +1 -1
- package/dist/scripts/constants/test-commands.d.ts +3 -33
- package/dist/scripts/constants/test-commands.d.ts.map +1 -1
- package/dist/scripts/constants/test-commands.js +3 -67
- package/dist/scripts/constants/test-commands.js.map +1 -1
- package/dist/scripts/dev-tools/mermaid-converter.d.ts.map +1 -0
- package/dist/scripts/dev-tools/mermaid-converter.js.map +1 -0
- package/dist/scripts/dev-tools/test-interactive.d.ts.map +1 -0
- package/dist/scripts/{test-interactive.js → dev-tools/test-interactive.js} +4 -3
- package/dist/scripts/dev-tools/test-interactive.js.map +1 -0
- package/dist/scripts/github-actions-client.d.ts +5 -75
- package/dist/scripts/github-actions-client.d.ts.map +1 -1
- package/dist/scripts/github-actions-client.js +4 -178
- package/dist/scripts/github-actions-client.js.map +1 -1
- package/dist/scripts/jira-sync.d.ts +3 -121
- package/dist/scripts/jira-sync.d.ts.map +1 -1
- package/dist/scripts/jira-sync.js +5 -879
- package/dist/scripts/jira-sync.js.map +1 -1
- package/dist/scripts/markdown-to-confluence.d.ts.map +1 -1
- package/dist/scripts/markdown-to-confluence.js +2 -2
- package/dist/scripts/markdown-to-confluence.js.map +1 -1
- package/dist/scripts/multi-project-estimate.d.ts.map +1 -1
- package/dist/scripts/multi-project-estimate.js +3 -2
- package/dist/scripts/multi-project-estimate.js.map +1 -1
- package/dist/scripts/phase-runner.d.ts.map +1 -1
- package/dist/scripts/phase-runner.js +34 -18
- package/dist/scripts/phase-runner.js.map +1 -1
- package/dist/scripts/pre-flight-check.d.ts.map +1 -1
- package/dist/scripts/pre-flight-check.js +27 -11
- package/dist/scripts/pre-flight-check.js.map +1 -1
- package/dist/scripts/template/multi-repo-renderer.js +2 -2
- package/dist/scripts/template/multi-repo-renderer.js.map +1 -1
- package/dist/scripts/test-execution-generator.d.ts.map +1 -1
- package/dist/scripts/test-execution-generator.js +5 -4
- package/dist/scripts/test-execution-generator.js.map +1 -1
- package/dist/scripts/utils/aidlc-parser.d.ts +5 -82
- package/dist/scripts/utils/aidlc-parser.d.ts.map +1 -1
- package/dist/scripts/utils/aidlc-parser.js +4 -204
- package/dist/scripts/utils/aidlc-parser.js.map +1 -1
- package/dist/scripts/utils/ci-generator.d.ts.map +1 -1
- package/dist/scripts/utils/ci-generator.js +4 -3
- package/dist/scripts/utils/ci-generator.js.map +1 -1
- package/dist/scripts/utils/config-loader.d.ts.map +1 -1
- package/dist/scripts/utils/config-loader.js +46 -49
- package/dist/scripts/utils/config-loader.js.map +1 -1
- package/dist/scripts/utils/config-validator.d.ts +9 -10
- package/dist/scripts/utils/config-validator.d.ts.map +1 -1
- package/dist/scripts/utils/config-validator.js +68 -70
- package/dist/scripts/utils/config-validator.js.map +1 -1
- package/dist/scripts/utils/docker-requirement-detector.d.ts.map +1 -1
- package/dist/scripts/utils/docker-requirement-detector.js +5 -4
- package/dist/scripts/utils/docker-requirement-detector.js.map +1 -1
- package/dist/scripts/utils/env-config.d.ts.map +1 -1
- package/dist/scripts/utils/env-config.js +55 -38
- package/dist/scripts/utils/env-config.js.map +1 -1
- package/dist/scripts/utils/feature-name-validator.d.ts +4 -9
- package/dist/scripts/utils/feature-name-validator.d.ts.map +1 -1
- package/dist/scripts/utils/feature-name-validator.js +12 -21
- package/dist/scripts/utils/feature-name-validator.js.map +1 -1
- package/dist/scripts/utils/interactive-helpers.d.ts +5 -29
- package/dist/scripts/utils/interactive-helpers.d.ts.map +1 -1
- package/dist/scripts/utils/interactive-helpers.js +5 -89
- package/dist/scripts/utils/interactive-helpers.js.map +1 -1
- package/dist/scripts/utils/language-detector.d.ts.map +1 -1
- package/dist/scripts/utils/language-detector.js +4 -3
- package/dist/scripts/utils/language-detector.js.map +1 -1
- package/dist/scripts/utils/markdown-parser.d.ts +6 -52
- package/dist/scripts/utils/markdown-parser.d.ts.map +1 -1
- package/dist/scripts/utils/markdown-parser.js +5 -286
- package/dist/scripts/utils/markdown-parser.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +9 -10
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.js +15 -17
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
- package/dist/scripts/utils/project-analyzer.d.ts +120 -0
- package/dist/scripts/utils/project-analyzer.d.ts.map +1 -0
- package/dist/scripts/utils/project-analyzer.js +358 -0
- package/dist/scripts/utils/project-analyzer.js.map +1 -0
- package/dist/scripts/utils/project-detector.d.ts.map +1 -1
- package/dist/scripts/utils/project-detector.js +6 -5
- package/dist/scripts/utils/project-detector.js.map +1 -1
- package/dist/scripts/utils/project-finder.d.ts +1 -21
- package/dist/scripts/utils/project-finder.d.ts.map +1 -1
- package/dist/scripts/utils/project-finder.js +2 -121
- package/dist/scripts/utils/project-finder.js.map +1 -1
- package/dist/scripts/utils/project-meta.d.ts +4 -27
- package/dist/scripts/utils/project-meta.d.ts.map +1 -1
- package/dist/scripts/utils/project-meta.js +3 -67
- package/dist/scripts/utils/project-meta.js.map +1 -1
- package/dist/scripts/utils/safe-file-reader.d.ts +84 -0
- package/dist/scripts/utils/safe-file-reader.d.ts.map +1 -0
- package/dist/scripts/utils/safe-file-reader.js +122 -0
- package/dist/scripts/utils/safe-file-reader.js.map +1 -0
- package/dist/scripts/utils/security-validator.d.ts +8 -19
- package/dist/scripts/utils/security-validator.d.ts.map +1 -1
- package/dist/scripts/utils/security-validator.js +28 -58
- package/dist/scripts/utils/security-validator.js.map +1 -1
- package/dist/scripts/utils/spec-archiver.d.ts.map +1 -1
- package/dist/scripts/utils/spec-archiver.js +7 -6
- package/dist/scripts/utils/spec-archiver.js.map +1 -1
- package/dist/scripts/utils/spec-updater.d.ts.map +1 -1
- package/dist/scripts/utils/spec-updater.js +10 -7
- package/dist/scripts/utils/spec-updater.js.map +1 -1
- package/dist/scripts/utils/tasks-converter.js +2 -2
- package/dist/scripts/utils/tasks-converter.js.map +1 -1
- package/dist/scripts/utils/tasks-format-validator.js +4 -4
- package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
- package/dist/scripts/utils/template-applier.d.ts.map +1 -1
- package/dist/scripts/utils/template-applier.js +4 -3
- package/dist/scripts/utils/template-applier.js.map +1 -1
- package/dist/scripts/utils/types/validation.d.ts +57 -0
- package/dist/scripts/utils/types/validation.d.ts.map +1 -0
- package/dist/scripts/utils/types/validation.js +50 -0
- package/dist/scripts/utils/types/validation.js.map +1 -0
- package/dist/scripts/validate-phase.d.ts +6 -1
- package/dist/scripts/validate-phase.d.ts.map +1 -1
- package/dist/scripts/validate-phase.js +42 -20
- package/dist/scripts/validate-phase.js.map +1 -1
- package/dist/scripts/workflow-orchestrator.d.ts +4 -40
- package/dist/scripts/workflow-orchestrator.d.ts.map +1 -1
- package/dist/scripts/workflow-orchestrator.js +7 -194
- package/dist/scripts/workflow-orchestrator.js.map +1 -1
- package/dist/src/application/interfaces/config-provider.d.ts +89 -0
- package/dist/src/application/interfaces/config-provider.d.ts.map +1 -0
- package/dist/src/application/interfaces/config-provider.js +8 -0
- package/dist/src/application/interfaces/config-provider.js.map +1 -0
- package/dist/src/application/interfaces/external-api.d.ts +80 -0
- package/dist/src/application/interfaces/external-api.d.ts.map +1 -0
- package/dist/src/application/interfaces/external-api.js +8 -0
- package/dist/src/application/interfaces/external-api.js.map +1 -0
- package/dist/src/application/interfaces/spec-repository.d.ts +52 -0
- package/dist/src/application/interfaces/spec-repository.d.ts.map +1 -0
- package/dist/src/application/interfaces/spec-repository.js +8 -0
- package/dist/src/application/interfaces/spec-repository.js.map +1 -0
- package/dist/src/application/services/spec-service.d.ts +49 -0
- package/dist/src/application/services/spec-service.d.ts.map +1 -0
- package/dist/src/application/services/spec-service.js +94 -0
- package/dist/src/application/services/spec-service.js.map +1 -0
- package/dist/src/application/services/workflow-service.d.ts +58 -0
- package/dist/src/application/services/workflow-service.d.ts.map +1 -0
- package/dist/src/application/services/workflow-service.js +125 -0
- package/dist/src/application/services/workflow-service.js.map +1 -0
- package/dist/src/application/templates/processor.d.ts +31 -0
- package/dist/src/application/templates/processor.d.ts.map +1 -0
- package/dist/src/application/templates/processor.js +58 -0
- package/dist/src/application/templates/processor.js.map +1 -0
- package/dist/src/application/use-cases/spec/archive-spec.d.ts +34 -0
- package/dist/src/application/use-cases/spec/archive-spec.d.ts.map +1 -0
- package/dist/src/application/use-cases/spec/archive-spec.js +56 -0
- package/dist/src/application/use-cases/spec/archive-spec.js.map +1 -0
- package/dist/src/application/use-cases/spec/generate-design.d.ts +34 -0
- package/dist/src/application/use-cases/spec/generate-design.d.ts.map +1 -0
- package/dist/src/application/use-cases/spec/generate-design.js +58 -0
- package/dist/src/application/use-cases/spec/generate-design.js.map +1 -0
- package/dist/src/application/use-cases/spec/generate-requirements.d.ts +34 -0
- package/dist/src/application/use-cases/spec/generate-requirements.d.ts.map +1 -0
- package/dist/src/application/use-cases/spec/generate-requirements.js +58 -0
- package/dist/src/application/use-cases/spec/generate-requirements.js.map +1 -0
- package/dist/src/application/use-cases/spec/generate-tasks.d.ts +34 -0
- package/dist/src/application/use-cases/spec/generate-tasks.d.ts.map +1 -0
- package/dist/src/application/use-cases/spec/generate-tasks.js +58 -0
- package/dist/src/application/use-cases/spec/generate-tasks.js.map +1 -0
- package/dist/src/application/use-cases/spec/init-spec.d.ts +48 -0
- package/dist/src/application/use-cases/spec/init-spec.d.ts.map +1 -0
- package/dist/src/application/use-cases/spec/init-spec.js +121 -0
- package/dist/src/application/use-cases/spec/init-spec.js.map +1 -0
- package/dist/src/cli.d.ts +6 -7
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +6 -745
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/config-validate.js +2 -2
- package/dist/src/commands/init.d.ts +6 -21
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +5 -508
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/migrate.js +4 -3
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/spec-archive.d.ts +6 -13
- package/dist/src/commands/spec-archive.d.ts.map +1 -1
- package/dist/src/commands/spec-archive.js +5 -36
- package/dist/src/commands/spec-archive.js.map +1 -1
- package/dist/src/commands/spec-list.d.ts +6 -11
- package/dist/src/commands/spec-list.d.ts.map +1 -1
- package/dist/src/commands/spec-list.js +5 -51
- package/dist/src/commands/spec-list.js.map +1 -1
- package/dist/src/domain/constants/approval.d.ts +18 -0
- package/dist/src/domain/constants/approval.d.ts.map +1 -0
- package/dist/src/domain/constants/approval.js +23 -0
- package/dist/src/domain/constants/approval.js.map +1 -0
- package/dist/src/domain/constants/environments.d.ts +33 -0
- package/dist/src/domain/constants/environments.d.ts.map +1 -0
- package/dist/src/domain/constants/environments.js +44 -0
- package/dist/src/domain/constants/environments.js.map +1 -0
- package/dist/src/domain/constants/index.d.ts +12 -0
- package/dist/src/domain/constants/index.d.ts.map +1 -0
- package/dist/src/domain/constants/index.js +18 -0
- package/dist/src/domain/constants/index.js.map +1 -0
- package/dist/src/domain/constants/languages.d.ts +23 -0
- package/dist/src/domain/constants/languages.d.ts.map +1 -0
- package/dist/src/domain/constants/languages.js +53 -0
- package/dist/src/domain/constants/languages.js.map +1 -0
- package/dist/src/domain/constants/phases.d.ts +32 -0
- package/dist/src/domain/constants/phases.d.ts.map +1 -0
- package/dist/src/domain/constants/phases.js +52 -0
- package/dist/src/domain/constants/phases.js.map +1 -0
- package/dist/src/domain/constants/test-commands.d.ts +36 -0
- package/dist/src/domain/constants/test-commands.d.ts.map +1 -0
- package/dist/src/domain/constants/test-commands.js +70 -0
- package/dist/src/domain/constants/test-commands.js.map +1 -0
- package/dist/src/domain/constants/validation-rules.d.ts +32 -0
- package/dist/src/domain/constants/validation-rules.d.ts.map +1 -0
- package/dist/src/domain/constants/validation-rules.js +51 -0
- package/dist/src/domain/constants/validation-rules.js.map +1 -0
- package/dist/src/domain/entities/spec.d.ts +66 -0
- package/dist/src/domain/entities/spec.d.ts.map +1 -0
- package/dist/src/domain/entities/spec.js +112 -0
- package/dist/src/domain/entities/spec.js.map +1 -0
- package/dist/src/domain/entities/task.d.ts +43 -0
- package/dist/src/domain/entities/task.d.ts.map +1 -0
- package/dist/src/domain/entities/task.js +65 -0
- package/dist/src/domain/entities/task.js.map +1 -0
- package/dist/src/domain/services/spec-validator.d.ts +46 -0
- package/dist/src/domain/services/spec-validator.d.ts.map +1 -0
- package/dist/src/domain/services/spec-validator.js +99 -0
- package/dist/src/domain/services/spec-validator.js.map +1 -0
- package/dist/src/domain/value-objects/feature-name.d.ts +24 -0
- package/dist/src/domain/value-objects/feature-name.d.ts.map +1 -0
- package/dist/src/domain/value-objects/feature-name.js +36 -0
- package/dist/src/domain/value-objects/feature-name.js.map +1 -0
- package/dist/src/domain/value-objects/index.d.ts +7 -0
- package/dist/src/domain/value-objects/index.d.ts.map +1 -0
- package/dist/src/domain/value-objects/index.js +7 -0
- package/dist/src/domain/value-objects/index.js.map +1 -0
- package/dist/src/infrastructure/config/index.d.ts +5 -0
- package/dist/src/infrastructure/config/index.d.ts.map +1 -0
- package/dist/src/infrastructure/config/index.js +6 -0
- package/dist/src/infrastructure/config/index.js.map +1 -0
- package/dist/src/infrastructure/config/schema.d.ts +337 -0
- package/dist/src/infrastructure/config/schema.d.ts.map +1 -0
- package/dist/src/infrastructure/config/schema.js +237 -0
- package/dist/src/infrastructure/config/schema.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/approval.d.ts +14 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/approval.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/approval.js +102 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/approval.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/client.d.ts +23 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/client.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/client.js +192 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/client.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/hierarchy.d.ts +48 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/hierarchy.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/hierarchy.js +531 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/hierarchy.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/index.d.ts +10 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/index.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/index.js +12 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/index.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/sync-service.d.ts +13 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/sync-service.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/sync-service.js +129 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/sync-service.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/types.d.ts +113 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/types.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/types.js +5 -0
- package/dist/src/infrastructure/external-apis/atlassian/confluence/types.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/adf-converter.d.ts +15 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/adf-converter.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/adf-converter.js +141 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/adf-converter.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/client.d.ts +50 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/client.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/client.js +226 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/client.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/index.d.ts +12 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/index.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/index.js +16 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/index.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/issue-builder.d.ts +49 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/issue-builder.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/issue-builder.js +165 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/issue-builder.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/status-mapper.d.ts +14 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/status-mapper.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/status-mapper.js +110 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/status-mapper.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/sync-service.d.ts +32 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/sync-service.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/sync-service.js +284 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/sync-service.js.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/types.d.ts +114 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/types.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/types.js +7 -0
- package/dist/src/infrastructure/external-apis/atlassian/jira/types.js.map +1 -0
- package/dist/src/infrastructure/external-apis/github/client.d.ts +25 -0
- package/dist/src/infrastructure/external-apis/github/client.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/github/client.js +109 -0
- package/dist/src/infrastructure/external-apis/github/client.js.map +1 -0
- package/dist/src/infrastructure/external-apis/github/index.d.ts +7 -0
- package/dist/src/infrastructure/external-apis/github/index.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/github/index.js +8 -0
- package/dist/src/infrastructure/external-apis/github/index.js.map +1 -0
- package/dist/src/infrastructure/external-apis/github/types.d.ts +69 -0
- package/dist/src/infrastructure/external-apis/github/types.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/github/types.js +5 -0
- package/dist/src/infrastructure/external-apis/github/types.js.map +1 -0
- package/dist/src/infrastructure/external-apis/github/utils.d.ts +18 -0
- package/dist/src/infrastructure/external-apis/github/utils.d.ts.map +1 -0
- package/dist/src/infrastructure/external-apis/github/utils.js +84 -0
- package/dist/src/infrastructure/external-apis/github/utils.js.map +1 -0
- package/dist/src/infrastructure/filesystem/index.d.ts +6 -0
- package/dist/src/infrastructure/filesystem/index.d.ts.map +1 -0
- package/dist/src/infrastructure/filesystem/index.js +5 -0
- package/dist/src/infrastructure/filesystem/index.js.map +1 -0
- package/dist/src/infrastructure/filesystem/project-meta.d.ts +32 -0
- package/dist/src/infrastructure/filesystem/project-meta.d.ts.map +1 -0
- package/dist/src/infrastructure/filesystem/project-meta.js +75 -0
- package/dist/src/infrastructure/filesystem/project-meta.js.map +1 -0
- package/dist/src/infrastructure/parsers/aidlc-parser.d.ts +86 -0
- package/dist/src/infrastructure/parsers/aidlc-parser.d.ts.map +1 -0
- package/dist/src/infrastructure/parsers/aidlc-parser.js +208 -0
- package/dist/src/infrastructure/parsers/aidlc-parser.js.map +1 -0
- package/dist/src/infrastructure/parsers/index.d.ts +8 -0
- package/dist/src/infrastructure/parsers/index.d.ts.map +1 -0
- package/dist/src/infrastructure/parsers/index.js +6 -0
- package/dist/src/infrastructure/parsers/index.js.map +1 -0
- package/dist/src/infrastructure/parsers/markdown-parser.d.ts +51 -0
- package/dist/src/infrastructure/parsers/markdown-parser.d.ts.map +1 -0
- package/dist/src/infrastructure/parsers/markdown-parser.js +253 -0
- package/dist/src/infrastructure/parsers/markdown-parser.js.map +1 -0
- package/dist/src/presentation/cli/config.d.ts +12 -0
- package/dist/src/presentation/cli/config.d.ts.map +1 -0
- package/dist/src/presentation/cli/config.js +22 -0
- package/dist/src/presentation/cli/config.js.map +1 -0
- package/dist/src/presentation/cli/version.d.ts +10 -0
- package/dist/src/presentation/cli/version.d.ts.map +1 -0
- package/dist/src/presentation/cli/version.js +41 -0
- package/dist/src/presentation/cli/version.js.map +1 -0
- package/dist/src/presentation/cli.d.ts +22 -0
- package/dist/src/presentation/cli.d.ts.map +1 -0
- package/dist/src/presentation/cli.js +85 -0
- package/dist/src/presentation/cli.js.map +1 -0
- package/dist/src/presentation/commands/config/register.d.ts +11 -0
- package/dist/src/presentation/commands/config/register.d.ts.map +1 -0
- package/dist/src/presentation/commands/config/register.js +44 -0
- package/dist/src/presentation/commands/config/register.js.map +1 -0
- package/dist/src/presentation/commands/confluence/register.d.ts +11 -0
- package/dist/src/presentation/commands/confluence/register.d.ts.map +1 -0
- package/dist/src/presentation/commands/confluence/register.js +32 -0
- package/dist/src/presentation/commands/confluence/register.js.map +1 -0
- package/dist/src/presentation/commands/confluence/sync.d.ts +17 -0
- package/dist/src/presentation/commands/confluence/sync.d.ts.map +1 -0
- package/dist/src/presentation/commands/confluence/sync.js +25 -0
- package/dist/src/presentation/commands/confluence/sync.js.map +1 -0
- package/dist/src/presentation/commands/init/handler.d.ts +10 -0
- package/dist/src/presentation/commands/init/handler.d.ts.map +1 -0
- package/dist/src/presentation/commands/init/handler.js +64 -0
- package/dist/src/presentation/commands/init/handler.js.map +1 -0
- package/dist/src/presentation/commands/init/prompts.d.ts +41 -0
- package/dist/src/presentation/commands/init/prompts.d.ts.map +1 -0
- package/dist/src/presentation/commands/init/prompts.js +119 -0
- package/dist/src/presentation/commands/init/prompts.js.map +1 -0
- package/dist/src/presentation/commands/init/register.d.ts +11 -0
- package/dist/src/presentation/commands/init/register.d.ts.map +1 -0
- package/dist/src/presentation/commands/init/register.js +141 -0
- package/dist/src/presentation/commands/init/register.js.map +1 -0
- package/dist/src/presentation/commands/init/setup.d.ts +26 -0
- package/dist/src/presentation/commands/init/setup.d.ts.map +1 -0
- package/dist/src/presentation/commands/init/setup.js +196 -0
- package/dist/src/presentation/commands/init/setup.js.map +1 -0
- package/dist/src/presentation/commands/init/templates.d.ts +19 -0
- package/dist/src/presentation/commands/init/templates.d.ts.map +1 -0
- package/dist/src/presentation/commands/init/templates.js +140 -0
- package/dist/src/presentation/commands/init/templates.js.map +1 -0
- package/dist/src/presentation/commands/init/validation.d.ts +21 -0
- package/dist/src/presentation/commands/init/validation.d.ts.map +1 -0
- package/dist/src/presentation/commands/init/validation.js +65 -0
- package/dist/src/presentation/commands/init/validation.js.map +1 -0
- package/dist/src/presentation/commands/jira/register.d.ts +11 -0
- package/dist/src/presentation/commands/jira/register.d.ts.map +1 -0
- package/dist/src/presentation/commands/jira/register.js +75 -0
- package/dist/src/presentation/commands/jira/register.js.map +1 -0
- package/dist/src/presentation/commands/jira/sync.d.ts +29 -0
- package/dist/src/presentation/commands/jira/sync.d.ts.map +1 -0
- package/dist/src/presentation/commands/jira/sync.js +37 -0
- package/dist/src/presentation/commands/jira/sync.js.map +1 -0
- package/dist/src/{commands/multi-repo-add-repo.d.ts → presentation/commands/multi-repo/add-repo.d.ts} +1 -1
- package/dist/src/presentation/commands/multi-repo/add-repo.d.ts.map +1 -0
- package/dist/src/{commands/multi-repo-add-repo.js → presentation/commands/multi-repo/add-repo.js} +4 -4
- package/dist/src/presentation/commands/multi-repo/add-repo.js.map +1 -0
- package/dist/src/{commands/multi-repo-ci-status.d.ts → presentation/commands/multi-repo/ci-status.d.ts} +2 -2
- package/dist/src/presentation/commands/multi-repo/ci-status.d.ts.map +1 -0
- package/dist/src/{commands/multi-repo-ci-status.js → presentation/commands/multi-repo/ci-status.js} +95 -81
- package/dist/src/presentation/commands/multi-repo/ci-status.js.map +1 -0
- package/dist/src/{commands/multi-repo-confluence-sync.d.ts → presentation/commands/multi-repo/confluence-sync.d.ts} +1 -1
- package/dist/src/presentation/commands/multi-repo/confluence-sync.d.ts.map +1 -0
- package/dist/src/{commands/multi-repo-confluence-sync.js → presentation/commands/multi-repo/confluence-sync.js} +7 -6
- package/dist/src/presentation/commands/multi-repo/confluence-sync.js.map +1 -0
- package/dist/src/{commands/multi-repo-init.d.ts → presentation/commands/multi-repo/init.d.ts} +1 -1
- package/dist/src/presentation/commands/multi-repo/init.d.ts.map +1 -0
- package/dist/src/{commands/multi-repo-init.js → presentation/commands/multi-repo/init.js} +6 -6
- package/dist/src/presentation/commands/multi-repo/init.js.map +1 -0
- package/dist/src/{commands/multi-repo-list.d.ts → presentation/commands/multi-repo/list.d.ts} +1 -1
- package/dist/src/presentation/commands/multi-repo/list.d.ts.map +1 -0
- package/dist/src/{commands/multi-repo-list.js → presentation/commands/multi-repo/list.js} +2 -2
- package/dist/src/presentation/commands/multi-repo/list.js.map +1 -0
- package/dist/src/presentation/commands/multi-repo/register.d.ts +12 -0
- package/dist/src/presentation/commands/multi-repo/register.d.ts.map +1 -0
- package/dist/src/presentation/commands/multi-repo/register.js +249 -0
- package/dist/src/presentation/commands/multi-repo/register.js.map +1 -0
- package/dist/src/{commands/multi-repo-test.d.ts → presentation/commands/multi-repo/test.d.ts} +1 -1
- package/dist/src/presentation/commands/multi-repo/test.d.ts.map +1 -0
- package/dist/src/{commands/multi-repo-test.js → presentation/commands/multi-repo/test.js} +4 -4
- package/dist/src/presentation/commands/multi-repo/test.js.map +1 -0
- package/dist/src/presentation/commands/phase/register.d.ts +11 -0
- package/dist/src/presentation/commands/phase/register.d.ts.map +1 -0
- package/dist/src/presentation/commands/phase/register.js +97 -0
- package/dist/src/presentation/commands/phase/register.js.map +1 -0
- package/dist/src/presentation/commands/spec/archive.d.ts +17 -0
- package/dist/src/presentation/commands/spec/archive.d.ts.map +1 -0
- package/dist/src/presentation/commands/spec/archive.js +40 -0
- package/dist/src/presentation/commands/spec/archive.js.map +1 -0
- package/dist/src/presentation/commands/spec/list.d.ts +15 -0
- package/dist/src/presentation/commands/spec/list.d.ts.map +1 -0
- package/dist/src/presentation/commands/spec/list.js +55 -0
- package/dist/src/presentation/commands/spec/list.js.map +1 -0
- package/dist/src/presentation/commands/spec/register.d.ts +11 -0
- package/dist/src/presentation/commands/spec/register.d.ts.map +1 -0
- package/dist/src/presentation/commands/spec/register.js +45 -0
- package/dist/src/presentation/commands/spec/register.js.map +1 -0
- package/dist/src/presentation/commands/workflow/orchestrator.d.ts +50 -0
- package/dist/src/presentation/commands/workflow/orchestrator.d.ts.map +1 -0
- package/dist/src/presentation/commands/workflow/orchestrator.js +174 -0
- package/dist/src/presentation/commands/workflow/orchestrator.js.map +1 -0
- package/dist/src/presentation/commands/workflow/register.d.ts +11 -0
- package/dist/src/presentation/commands/workflow/register.d.ts.map +1 -0
- package/dist/src/presentation/commands/workflow/register.js +58 -0
- package/dist/src/presentation/commands/workflow/register.js.map +1 -0
- package/dist/src/presentation/formatters/error-formatter.d.ts +79 -0
- package/dist/src/presentation/formatters/error-formatter.d.ts.map +1 -0
- package/dist/src/presentation/formatters/error-formatter.js +150 -0
- package/dist/src/presentation/formatters/error-formatter.js.map +1 -0
- package/dist/src/presentation/formatters/index.d.ts +8 -0
- package/dist/src/presentation/formatters/index.d.ts.map +1 -0
- package/dist/src/presentation/formatters/index.js +11 -0
- package/dist/src/presentation/formatters/index.js.map +1 -0
- package/dist/src/presentation/formatters/output-formatter.d.ts +98 -0
- package/dist/src/presentation/formatters/output-formatter.d.ts.map +1 -0
- package/dist/src/presentation/formatters/output-formatter.js +165 -0
- package/dist/src/presentation/formatters/output-formatter.js.map +1 -0
- package/dist/src/presentation/formatters/progress-formatter.d.ts +121 -0
- package/dist/src/presentation/formatters/progress-formatter.d.ts.map +1 -0
- package/dist/src/presentation/formatters/progress-formatter.js +235 -0
- package/dist/src/presentation/formatters/progress-formatter.js.map +1 -0
- package/dist/src/presentation/interactive/confirmation.d.ts +24 -0
- package/dist/src/presentation/interactive/confirmation.d.ts.map +1 -0
- package/dist/src/presentation/interactive/confirmation.js +54 -0
- package/dist/src/presentation/interactive/confirmation.js.map +1 -0
- package/dist/src/presentation/interactive/index.d.ts +8 -0
- package/dist/src/presentation/interactive/index.d.ts.map +1 -0
- package/dist/src/presentation/interactive/index.js +11 -0
- package/dist/src/presentation/interactive/index.js.map +1 -0
- package/dist/src/presentation/interactive/prompts.d.ts +31 -0
- package/dist/src/presentation/interactive/prompts.d.ts.map +1 -0
- package/dist/src/presentation/interactive/prompts.js +71 -0
- package/dist/src/presentation/interactive/prompts.js.map +1 -0
- package/dist/src/presentation/interactive/selection.d.ts +31 -0
- package/dist/src/presentation/interactive/selection.d.ts.map +1 -0
- package/dist/src/presentation/interactive/selection.js +138 -0
- package/dist/src/presentation/interactive/selection.js.map +1 -0
- package/dist/src/shared/types/errors.d.ts +132 -0
- package/dist/src/shared/types/errors.d.ts.map +1 -0
- package/dist/src/shared/types/errors.js +61 -0
- package/dist/src/shared/types/errors.js.map +1 -0
- package/dist/src/shared/types/result.d.ts +53 -0
- package/dist/src/shared/types/result.d.ts.map +1 -0
- package/dist/src/shared/types/result.js +42 -0
- package/dist/src/shared/types/result.js.map +1 -0
- package/dist/test-confluence-auth.d.ts +6 -0
- package/dist/test-confluence-auth.d.ts.map +1 -0
- package/dist/test-confluence-auth.js +128 -0
- package/dist/test-confluence-auth.js.map +1 -0
- package/docs/MIGRATION.md +513 -0
- package/docs/architecture.md +774 -0
- package/docs/guides/comprehensive-verification-guide.md +1926 -0
- package/docs/onion-architecture-phase0-complete.md +91 -0
- package/package.json +6 -6
- package/scripts/README.md +148 -0
- package/scripts/__tests__/jira-transitions.test.ts +44 -30
- package/scripts/__tests__/mermaid-converter.test.ts +2 -2
- package/scripts/__tests__/multi-repo-validator.test.ts +62 -62
- package/scripts/__tests__/spec-archiver.test.ts +12 -0
- package/scripts/__tests__/validate-phase.test.ts +6 -6
- package/scripts/build/README.md +24 -0
- package/scripts/{copy-static-assets.js → build/copy-static-assets.js} +1 -1
- package/scripts/{set-permissions.js → build/set-permissions.js} +1 -1
- package/scripts/config/config-schema.ts +43 -302
- package/scripts/config-global.ts +3 -2
- package/scripts/confluence-sync.ts +17 -538
- package/scripts/constants/environments.ts +3 -53
- package/scripts/constants/languages.ts +3 -68
- package/scripts/constants/test-commands.ts +3 -94
- package/scripts/dev-tools/README.md +22 -0
- package/scripts/{test-interactive.ts → dev-tools/test-interactive.ts} +4 -3
- package/scripts/github-actions-client.ts +18 -256
- package/scripts/jira-sync.ts +5 -1270
- package/scripts/markdown-to-confluence.ts +5 -5
- package/scripts/multi-project-estimate.ts +3 -2
- package/scripts/phase-runner.ts +41 -19
- package/scripts/pre-flight-check.ts +27 -11
- package/scripts/template/__tests__/multi-repo-renderer.test.ts +12 -0
- package/scripts/template/multi-repo-renderer.ts +2 -2
- package/scripts/test-execution-generator.ts +5 -4
- package/scripts/utils/__tests__/config-validator.test.ts +19 -19
- package/scripts/utils/__tests__/feature-name-validator.test.ts +13 -13
- package/scripts/utils/__tests__/multi-repo-validator.test.ts +34 -34
- package/scripts/utils/__tests__/project-analyzer.test.ts +542 -0
- package/scripts/utils/__tests__/safe-file-reader.test.ts +208 -0
- package/scripts/utils/__tests__/security-validator.test.ts +33 -33
- package/scripts/utils/__tests__/validation-result.test.ts +112 -0
- package/scripts/utils/aidlc-parser.ts +18 -287
- package/scripts/utils/ci-generator.ts +4 -3
- package/scripts/utils/config-loader.ts +54 -50
- package/scripts/utils/config-validator.ts +89 -80
- package/scripts/utils/docker-requirement-detector.ts +5 -4
- package/scripts/utils/env-config.ts +59 -40
- package/scripts/utils/feature-name-validator.ts +25 -40
- package/scripts/utils/interactive-helpers.ts +24 -132
- package/scripts/utils/language-detector.ts +4 -3
- package/scripts/utils/markdown-parser.ts +18 -373
- package/scripts/utils/multi-repo-validator.ts +27 -28
- package/scripts/utils/project-analyzer.ts +429 -0
- package/scripts/utils/project-detector.ts +6 -5
- package/scripts/utils/project-finder.ts +2 -154
- package/scripts/utils/project-meta.ts +8 -91
- package/scripts/utils/safe-file-reader.ts +158 -0
- package/scripts/utils/security-validator.ts +42 -78
- package/scripts/utils/spec-archiver.ts +7 -6
- package/scripts/utils/spec-updater.ts +12 -6
- package/scripts/utils/tasks-converter.ts +2 -2
- package/scripts/utils/tasks-format-validator.ts +4 -4
- package/scripts/utils/template-applier.ts +4 -3
- package/scripts/utils/types/validation.ts +92 -0
- package/scripts/validate-phase.ts +51 -23
- package/scripts/workflow-orchestrator.ts +16 -251
- package/dist/scripts/mermaid-converter.d.ts.map +0 -1
- package/dist/scripts/mermaid-converter.js.map +0 -1
- package/dist/scripts/resource-dashboard.d.ts +0 -7
- package/dist/scripts/resource-dashboard.d.ts.map +0 -1
- package/dist/scripts/resource-dashboard.js +0 -157
- package/dist/scripts/resource-dashboard.js.map +0 -1
- package/dist/scripts/test-interactive.d.ts.map +0 -1
- package/dist/scripts/test-interactive.js.map +0 -1
- package/dist/scripts/test-new-features.d.ts +0 -5
- package/dist/scripts/test-new-features.d.ts.map +0 -1
- package/dist/scripts/test-new-features.js +0 -148
- package/dist/scripts/test-new-features.js.map +0 -1
- package/dist/scripts/test-spec-generator.d.ts +0 -29
- package/dist/scripts/test-spec-generator.d.ts.map +0 -1
- package/dist/scripts/test-spec-generator.js +0 -493
- package/dist/scripts/test-spec-generator.js.map +0 -1
- package/dist/scripts/utils/confluence-approval.d.ts +0 -46
- package/dist/scripts/utils/confluence-approval.d.ts.map +0 -1
- package/dist/scripts/utils/confluence-approval.js +0 -120
- package/dist/scripts/utils/confluence-approval.js.map +0 -1
- package/dist/scripts/utils/template-finder.d.ts +0 -37
- package/dist/scripts/utils/template-finder.d.ts.map +0 -1
- package/dist/scripts/utils/template-finder.js +0 -58
- package/dist/scripts/utils/template-finder.js.map +0 -1
- package/dist/src/commands/multi-repo-add-repo.d.ts.map +0 -1
- package/dist/src/commands/multi-repo-add-repo.js.map +0 -1
- package/dist/src/commands/multi-repo-ci-status.d.ts.map +0 -1
- package/dist/src/commands/multi-repo-ci-status.js.map +0 -1
- package/dist/src/commands/multi-repo-confluence-sync.d.ts.map +0 -1
- package/dist/src/commands/multi-repo-confluence-sync.js.map +0 -1
- package/dist/src/commands/multi-repo-init.d.ts.map +0 -1
- package/dist/src/commands/multi-repo-init.js.map +0 -1
- package/dist/src/commands/multi-repo-list.d.ts.map +0 -1
- package/dist/src/commands/multi-repo-list.js.map +0 -1
- package/dist/src/commands/multi-repo-test.d.ts.map +0 -1
- package/dist/src/commands/multi-repo-test.js.map +0 -1
- package/dist/src/commands/setup-existing.d.ts +0 -22
- package/dist/src/commands/setup-existing.d.ts.map +0 -1
- package/dist/src/commands/setup-existing.js +0 -606
- package/dist/src/commands/setup-existing.js.map +0 -1
- package/scripts/__tests__/setup-existing-project.test.ts +0 -244
- package/scripts/resource-dashboard.ts +0 -189
- package/scripts/test-new-features.ts +0 -171
- package/scripts/test-spec-generator.ts +0 -570
- package/scripts/utils/confluence-approval.ts +0 -169
- package/scripts/utils/template-finder.ts +0 -69
- /package/dist/scripts/{mermaid-converter.d.ts → dev-tools/mermaid-converter.d.ts} +0 -0
- /package/dist/scripts/{mermaid-converter.js → dev-tools/mermaid-converter.js} +0 -0
- /package/dist/scripts/{test-interactive.d.ts → dev-tools/test-interactive.d.ts} +0 -0
- /package/scripts/{mermaid-converter.ts → dev-tools/mermaid-converter.ts} +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Constants - Phases
|
|
3
|
+
*
|
|
4
|
+
* Defines the phases of a specification in the cc-sdd workflow.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* All valid phases in order
|
|
8
|
+
*/
|
|
9
|
+
export const PHASES = [
|
|
10
|
+
'initialized',
|
|
11
|
+
'requirements-generated',
|
|
12
|
+
'design-generated',
|
|
13
|
+
'tasks-generated',
|
|
14
|
+
'implementation-in-progress',
|
|
15
|
+
'implementation-complete',
|
|
16
|
+
];
|
|
17
|
+
/**
|
|
18
|
+
* Check if a string is a valid Phase
|
|
19
|
+
*
|
|
20
|
+
* @param value - String to check
|
|
21
|
+
* @returns True if valid phase, false otherwise
|
|
22
|
+
*/
|
|
23
|
+
export function isValidPhase(value) {
|
|
24
|
+
return PHASES.includes(value);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get the next phase in the sequence
|
|
28
|
+
*
|
|
29
|
+
* @param currentPhase - Current phase
|
|
30
|
+
* @returns Next phase or null if at end
|
|
31
|
+
*/
|
|
32
|
+
export function getNextPhase(currentPhase) {
|
|
33
|
+
const currentIndex = PHASES.indexOf(currentPhase);
|
|
34
|
+
if (currentIndex === -1 || currentIndex === PHASES.length - 1) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return PHASES[currentIndex + 1];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get the previous phase in the sequence
|
|
41
|
+
*
|
|
42
|
+
* @param currentPhase - Current phase
|
|
43
|
+
* @returns Previous phase or null if at beginning
|
|
44
|
+
*/
|
|
45
|
+
export function getPreviousPhase(currentPhase) {
|
|
46
|
+
const currentIndex = PHASES.indexOf(currentPhase);
|
|
47
|
+
if (currentIndex <= 0) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
return PHASES[currentIndex - 1];
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=phases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phases.js","sourceRoot":"","sources":["../../../../src/domain/constants/phases.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAqB;IACtC,aAAa;IACb,wBAAwB;IACxB,kBAAkB;IAClB,iBAAiB;IACjB,4BAA4B;IAC5B,yBAAyB;CACjB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAQ,MAA4B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,YAAmB;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,YAAY,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAmB;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* テストコマンド定数定義
|
|
3
|
+
*
|
|
4
|
+
* 各言語のテストコマンドをCI/CDテンプレートから取得
|
|
5
|
+
* Reference: templates/ci/github-actions/*.yml
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* プロジェクト言語の型定義
|
|
9
|
+
*/
|
|
10
|
+
export type ProjectLanguage = 'Node.js/TypeScript' | 'Java' | 'PHP' | 'Python' | 'Go' | 'Rust';
|
|
11
|
+
/**
|
|
12
|
+
* テストコマンドの型定義
|
|
13
|
+
*/
|
|
14
|
+
export interface TestCommands {
|
|
15
|
+
test: string;
|
|
16
|
+
lint: string;
|
|
17
|
+
build: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 言語別テストコマンドマッピング
|
|
21
|
+
* CI/CDテンプレート(templates/ci/github-actions/*.yml)から取得
|
|
22
|
+
*/
|
|
23
|
+
export declare const TEST_COMMANDS_MAP: Record<ProjectLanguage, TestCommands>;
|
|
24
|
+
/**
|
|
25
|
+
* 言語に対応するテストコマンドを取得
|
|
26
|
+
*
|
|
27
|
+
* @param language - プロジェクト言語
|
|
28
|
+
* @returns テストコマンド一式
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* getTestCommands('Java') // => { test: './gradlew test', ... }
|
|
32
|
+
* getTestCommands('Node.js') // => { test: 'npm test', ... } (部分一致)
|
|
33
|
+
* getTestCommands('Unknown') // => Node.js/TypeScript のコマンド (デフォルト)
|
|
34
|
+
*/
|
|
35
|
+
export declare function getTestCommands(language: string): TestCommands;
|
|
36
|
+
//# sourceMappingURL=test-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-commands.d.ts","sourceRoot":"","sources":["../../../../src/domain/constants/test-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,oBAAoB,GACpB,MAAM,GACN,KAAK,GACL,QAAQ,GACR,IAAI,GACJ,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,eAAe,EAAE,YAAY,CA+BnE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAoB9D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* テストコマンド定数定義
|
|
3
|
+
*
|
|
4
|
+
* 各言語のテストコマンドをCI/CDテンプレートから取得
|
|
5
|
+
* Reference: templates/ci/github-actions/*.yml
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 言語別テストコマンドマッピング
|
|
9
|
+
* CI/CDテンプレート(templates/ci/github-actions/*.yml)から取得
|
|
10
|
+
*/
|
|
11
|
+
export const TEST_COMMANDS_MAP = {
|
|
12
|
+
'Node.js/TypeScript': {
|
|
13
|
+
test: 'npm test',
|
|
14
|
+
lint: 'npm run lint',
|
|
15
|
+
build: 'npm run build'
|
|
16
|
+
},
|
|
17
|
+
'Java': {
|
|
18
|
+
test: './gradlew test',
|
|
19
|
+
lint: './gradlew checkstyleMain checkstyleTest',
|
|
20
|
+
build: './gradlew build'
|
|
21
|
+
},
|
|
22
|
+
'PHP': {
|
|
23
|
+
test: 'composer test',
|
|
24
|
+
lint: 'composer phpstan',
|
|
25
|
+
build: 'composer install --no-dev --optimize-autoloader'
|
|
26
|
+
},
|
|
27
|
+
'Python': {
|
|
28
|
+
test: 'pytest',
|
|
29
|
+
lint: 'flake8 src tests',
|
|
30
|
+
build: 'python -m build'
|
|
31
|
+
},
|
|
32
|
+
'Go': {
|
|
33
|
+
test: 'go test ./...',
|
|
34
|
+
lint: 'golangci-lint run',
|
|
35
|
+
build: 'go build ./...'
|
|
36
|
+
},
|
|
37
|
+
'Rust': {
|
|
38
|
+
test: 'cargo test',
|
|
39
|
+
lint: 'cargo clippy -- -D warnings',
|
|
40
|
+
build: 'cargo build --release'
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* 言語に対応するテストコマンドを取得
|
|
45
|
+
*
|
|
46
|
+
* @param language - プロジェクト言語
|
|
47
|
+
* @returns テストコマンド一式
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* getTestCommands('Java') // => { test: './gradlew test', ... }
|
|
51
|
+
* getTestCommands('Node.js') // => { test: 'npm test', ... } (部分一致)
|
|
52
|
+
* getTestCommands('Unknown') // => Node.js/TypeScript のコマンド (デフォルト)
|
|
53
|
+
*/
|
|
54
|
+
export function getTestCommands(language) {
|
|
55
|
+
// 完全一致
|
|
56
|
+
if (language in TEST_COMMANDS_MAP) {
|
|
57
|
+
return TEST_COMMANDS_MAP[language];
|
|
58
|
+
}
|
|
59
|
+
// 部分一致フォールバック("Node.js" → "Node.js/TypeScript")
|
|
60
|
+
const partialMatch = Object.keys(TEST_COMMANDS_MAP).find(key => key.toLowerCase().includes(language.toLowerCase()) ||
|
|
61
|
+
language.toLowerCase().includes(key.toLowerCase()));
|
|
62
|
+
if (partialMatch) {
|
|
63
|
+
console.warn(`⚠️ 言語 "${language}" は部分一致で "${partialMatch}" として扱います`);
|
|
64
|
+
return TEST_COMMANDS_MAP[partialMatch];
|
|
65
|
+
}
|
|
66
|
+
// デフォルト: Node.js/TypeScript
|
|
67
|
+
console.warn(`⚠️ 未知の言語 "${language}"。デフォルト(Node.js/TypeScript)を使用します`);
|
|
68
|
+
return TEST_COMMANDS_MAP['Node.js/TypeScript'];
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=test-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-commands.js","sourceRoot":"","sources":["../../../../src/domain/constants/test-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsBH;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA0C;IACtE,oBAAoB,EAAE;QACpB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,eAAe;KACvB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,yCAAyC;QAC/C,KAAK,EAAE,iBAAiB;KACzB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,iDAAiD;KACzD;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,iBAAiB;KACzB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,gBAAgB;KACxB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,uBAAuB;KAC/B;CACF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO;IACP,IAAI,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QAClC,OAAO,iBAAiB,CAAC,QAA2B,CAAC,CAAC;IACxD,CAAC;IAED,gDAAgD;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAC7D,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAClD,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CACnD,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,WAAW,QAAQ,aAAa,YAAY,WAAW,CAAC,CAAC;QACtE,OAAO,iBAAiB,CAAC,YAA+B,CAAC,CAAC;IAC5D,CAAC;IAED,4BAA4B;IAC5B,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,mCAAmC,CAAC,CAAC;IACxE,OAAO,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Constants - Validation Rules
|
|
3
|
+
*
|
|
4
|
+
* Defines validation rules and patterns for domain entities.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Feature name validation pattern (kebab-case)
|
|
8
|
+
*/
|
|
9
|
+
export declare const FEATURE_NAME_PATTERN: RegExp;
|
|
10
|
+
/**
|
|
11
|
+
* Maximum length for feature names
|
|
12
|
+
*/
|
|
13
|
+
export declare const FEATURE_NAME_MAX_LENGTH = 50;
|
|
14
|
+
/**
|
|
15
|
+
* Minimum length for feature names
|
|
16
|
+
*/
|
|
17
|
+
export declare const FEATURE_NAME_MIN_LENGTH = 3;
|
|
18
|
+
/**
|
|
19
|
+
* Validate feature name format
|
|
20
|
+
*
|
|
21
|
+
* @param name - Feature name to validate
|
|
22
|
+
* @returns True if valid, false otherwise
|
|
23
|
+
*/
|
|
24
|
+
export declare function isValidFeatureName(name: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Get validation error message for feature name
|
|
27
|
+
*
|
|
28
|
+
* @param name - Feature name that failed validation
|
|
29
|
+
* @returns Error message describing the validation failure
|
|
30
|
+
*/
|
|
31
|
+
export declare function getFeatureNameValidationError(name: string): string;
|
|
32
|
+
//# sourceMappingURL=validation-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-rules.d.ts","sourceRoot":"","sources":["../../../../src/domain/constants/validation-rules.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAA6B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAclE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Constants - Validation Rules
|
|
3
|
+
*
|
|
4
|
+
* Defines validation rules and patterns for domain entities.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Feature name validation pattern (kebab-case)
|
|
8
|
+
*/
|
|
9
|
+
export const FEATURE_NAME_PATTERN = /^[a-z0-9]+(-[a-z0-9]+)*$/;
|
|
10
|
+
/**
|
|
11
|
+
* Maximum length for feature names
|
|
12
|
+
*/
|
|
13
|
+
export const FEATURE_NAME_MAX_LENGTH = 50;
|
|
14
|
+
/**
|
|
15
|
+
* Minimum length for feature names
|
|
16
|
+
*/
|
|
17
|
+
export const FEATURE_NAME_MIN_LENGTH = 3;
|
|
18
|
+
/**
|
|
19
|
+
* Validate feature name format
|
|
20
|
+
*
|
|
21
|
+
* @param name - Feature name to validate
|
|
22
|
+
* @returns True if valid, false otherwise
|
|
23
|
+
*/
|
|
24
|
+
export function isValidFeatureName(name) {
|
|
25
|
+
if (!name || name.length < FEATURE_NAME_MIN_LENGTH || name.length > FEATURE_NAME_MAX_LENGTH) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return FEATURE_NAME_PATTERN.test(name);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get validation error message for feature name
|
|
32
|
+
*
|
|
33
|
+
* @param name - Feature name that failed validation
|
|
34
|
+
* @returns Error message describing the validation failure
|
|
35
|
+
*/
|
|
36
|
+
export function getFeatureNameValidationError(name) {
|
|
37
|
+
if (!name) {
|
|
38
|
+
return 'Feature name is required';
|
|
39
|
+
}
|
|
40
|
+
if (name.length < FEATURE_NAME_MIN_LENGTH) {
|
|
41
|
+
return `Feature name must be at least ${FEATURE_NAME_MIN_LENGTH} characters`;
|
|
42
|
+
}
|
|
43
|
+
if (name.length > FEATURE_NAME_MAX_LENGTH) {
|
|
44
|
+
return `Feature name must not exceed ${FEATURE_NAME_MAX_LENGTH} characters`;
|
|
45
|
+
}
|
|
46
|
+
if (!FEATURE_NAME_PATTERN.test(name)) {
|
|
47
|
+
return 'Feature name must be in kebab-case format (lowercase letters, numbers, and hyphens only)';
|
|
48
|
+
}
|
|
49
|
+
return 'Invalid feature name';
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=validation-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-rules.js","sourceRoot":"","sources":["../../../../src/domain/constants/validation-rules.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,uBAAuB,IAAI,IAAI,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;QAC5F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAY;IACxD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,0BAA0B,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;QAC1C,OAAO,iCAAiC,uBAAuB,aAAa,CAAC;IAC/E,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;QAC1C,OAAO,gCAAgC,uBAAuB,aAAa,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,0FAA0F,CAAC;IACpG,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Entity - Spec
|
|
3
|
+
*
|
|
4
|
+
* Represents a specification in the cc-sdd workflow
|
|
5
|
+
*/
|
|
6
|
+
import type { Phase } from '../constants/phases.js';
|
|
7
|
+
export interface ApprovalState {
|
|
8
|
+
generated: boolean;
|
|
9
|
+
approved: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface Approvals {
|
|
12
|
+
requirements: ApprovalState;
|
|
13
|
+
design: ApprovalState;
|
|
14
|
+
tasks: ApprovalState;
|
|
15
|
+
}
|
|
16
|
+
export type ApprovalType = keyof Approvals;
|
|
17
|
+
/**
|
|
18
|
+
* Spec Entity
|
|
19
|
+
*
|
|
20
|
+
* Core domain entity representing a feature specification
|
|
21
|
+
*/
|
|
22
|
+
export declare class Spec {
|
|
23
|
+
private _featureName;
|
|
24
|
+
private _phase;
|
|
25
|
+
private _language;
|
|
26
|
+
private _approvals;
|
|
27
|
+
constructor(featureName: string, phase: Phase, language: string, approvals?: Approvals);
|
|
28
|
+
get featureName(): string;
|
|
29
|
+
get phase(): Phase;
|
|
30
|
+
get language(): string;
|
|
31
|
+
get approvals(): Approvals;
|
|
32
|
+
/**
|
|
33
|
+
* Update the phase of this specification
|
|
34
|
+
*
|
|
35
|
+
* @param newPhase - New phase to transition to
|
|
36
|
+
* @throws Error if phase transition is invalid
|
|
37
|
+
*/
|
|
38
|
+
updatePhase(newPhase: Phase): void;
|
|
39
|
+
/**
|
|
40
|
+
* Approve a specific approval type
|
|
41
|
+
*
|
|
42
|
+
* @param type - Type of approval (requirements, design, tasks)
|
|
43
|
+
* @throws Error if the item is not generated yet
|
|
44
|
+
*/
|
|
45
|
+
approve(type: ApprovalType): void;
|
|
46
|
+
/**
|
|
47
|
+
* Check if ready to transition to next phase
|
|
48
|
+
*
|
|
49
|
+
* @returns True if ready for next phase
|
|
50
|
+
*/
|
|
51
|
+
isReadyForNextPhase(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Check if ready for implementation
|
|
54
|
+
*
|
|
55
|
+
* @returns True if all approvals are done
|
|
56
|
+
*/
|
|
57
|
+
isReadyForImplementation(): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Check if can transition to a new phase
|
|
60
|
+
*
|
|
61
|
+
* @param newPhase - Target phase
|
|
62
|
+
* @returns True if transition is valid
|
|
63
|
+
*/
|
|
64
|
+
private canTransitionTo;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../../src/domain/entities/spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGpD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC;AAE3C;;;;GAIG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAY;gBAG5B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS;IAYvB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI;IAUlC;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAOjC;;;;OAIG;IACH,mBAAmB,IAAI,OAAO;IAuB9B;;;;OAIG;IACH,wBAAwB,IAAI,OAAO;IAQnC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAWxB"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Entity - Spec
|
|
3
|
+
*
|
|
4
|
+
* Represents a specification in the cc-sdd workflow
|
|
5
|
+
*/
|
|
6
|
+
import { getNextPhase } from '../constants/phases.js';
|
|
7
|
+
/**
|
|
8
|
+
* Spec Entity
|
|
9
|
+
*
|
|
10
|
+
* Core domain entity representing a feature specification
|
|
11
|
+
*/
|
|
12
|
+
export class Spec {
|
|
13
|
+
_featureName;
|
|
14
|
+
_phase;
|
|
15
|
+
_language;
|
|
16
|
+
_approvals;
|
|
17
|
+
constructor(featureName, phase, language, approvals) {
|
|
18
|
+
this._featureName = featureName;
|
|
19
|
+
this._phase = phase;
|
|
20
|
+
this._language = language;
|
|
21
|
+
this._approvals = approvals || {
|
|
22
|
+
requirements: { generated: false, approved: false },
|
|
23
|
+
design: { generated: false, approved: false },
|
|
24
|
+
tasks: { generated: false, approved: false },
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
get featureName() {
|
|
28
|
+
return this._featureName;
|
|
29
|
+
}
|
|
30
|
+
get phase() {
|
|
31
|
+
return this._phase;
|
|
32
|
+
}
|
|
33
|
+
get language() {
|
|
34
|
+
return this._language;
|
|
35
|
+
}
|
|
36
|
+
get approvals() {
|
|
37
|
+
return this._approvals;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Update the phase of this specification
|
|
41
|
+
*
|
|
42
|
+
* @param newPhase - New phase to transition to
|
|
43
|
+
* @throws Error if phase transition is invalid
|
|
44
|
+
*/
|
|
45
|
+
updatePhase(newPhase) {
|
|
46
|
+
// Validate phase transition
|
|
47
|
+
if (!this.canTransitionTo(newPhase)) {
|
|
48
|
+
throw new Error(`Invalid phase transition from ${this._phase} to ${newPhase}`);
|
|
49
|
+
}
|
|
50
|
+
this._phase = newPhase;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Approve a specific approval type
|
|
54
|
+
*
|
|
55
|
+
* @param type - Type of approval (requirements, design, tasks)
|
|
56
|
+
* @throws Error if the item is not generated yet
|
|
57
|
+
*/
|
|
58
|
+
approve(type) {
|
|
59
|
+
if (!this._approvals[type].generated) {
|
|
60
|
+
throw new Error(`Cannot approve: ${type} not generated yet`);
|
|
61
|
+
}
|
|
62
|
+
this._approvals[type].approved = true;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Check if ready to transition to next phase
|
|
66
|
+
*
|
|
67
|
+
* @returns True if ready for next phase
|
|
68
|
+
*/
|
|
69
|
+
isReadyForNextPhase() {
|
|
70
|
+
switch (this._phase) {
|
|
71
|
+
case 'initialized':
|
|
72
|
+
return true; // Always ready to generate requirements
|
|
73
|
+
case 'requirements-generated':
|
|
74
|
+
return this._approvals.requirements.approved;
|
|
75
|
+
case 'design-generated':
|
|
76
|
+
return this._approvals.design.approved;
|
|
77
|
+
case 'tasks-generated':
|
|
78
|
+
return this._approvals.tasks.approved;
|
|
79
|
+
case 'implementation-in-progress':
|
|
80
|
+
case 'implementation-complete':
|
|
81
|
+
return true; // Implementation phases don't block transitions
|
|
82
|
+
default:
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Check if ready for implementation
|
|
88
|
+
*
|
|
89
|
+
* @returns True if all approvals are done
|
|
90
|
+
*/
|
|
91
|
+
isReadyForImplementation() {
|
|
92
|
+
return (this._approvals.requirements.approved &&
|
|
93
|
+
this._approvals.design.approved &&
|
|
94
|
+
this._approvals.tasks.approved);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Check if can transition to a new phase
|
|
98
|
+
*
|
|
99
|
+
* @param newPhase - Target phase
|
|
100
|
+
* @returns True if transition is valid
|
|
101
|
+
*/
|
|
102
|
+
canTransitionTo(newPhase) {
|
|
103
|
+
const nextPhase = getNextPhase(this._phase);
|
|
104
|
+
// Can always stay in same phase
|
|
105
|
+
if (newPhase === this._phase) {
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
// Can only transition to next phase in sequence
|
|
109
|
+
return newPhase === nextPhase;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../../src/domain/entities/spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAetD;;;;GAIG;AACH,MAAM,OAAO,IAAI;IACP,YAAY,CAAS;IACrB,MAAM,CAAQ;IACd,SAAS,CAAS;IAClB,UAAU,CAAY;IAE9B,YACE,WAAmB,EACnB,KAAY,EACZ,QAAgB,EAChB,SAAqB;QAErB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,SAAS,IAAI;YAC7B,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnD,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC7C,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC7C,CAAC;IACJ,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,QAAe;QACzB,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAI,CAAC,MAAM,OAAO,QAAQ,EAAE,CAC9D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,oBAAoB,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,mBAAmB;QACjB,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,CAAC,wCAAwC;YAEvD,KAAK,wBAAwB;gBAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;YAE/C,KAAK,kBAAkB;gBACrB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;YAEzC,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;YAExC,KAAK,4BAA4B,CAAC;YAClC,KAAK,yBAAyB;gBAC5B,OAAO,IAAI,CAAC,CAAC,gDAAgD;YAE/D;gBACE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,wBAAwB;QACtB,OAAO,CACL,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ;YACrC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ;YAC/B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAC/B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,eAAe,CAAC,QAAe;QACrC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5C,gCAAgC;QAChC,IAAI,QAAQ,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gDAAgD;QAChD,OAAO,QAAQ,KAAK,SAAS,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Entity - Task
|
|
3
|
+
*
|
|
4
|
+
* Represents a task in the implementation workflow
|
|
5
|
+
*/
|
|
6
|
+
export type TaskStatus = 'pending' | 'in_progress' | 'completed';
|
|
7
|
+
/**
|
|
8
|
+
* Task Entity
|
|
9
|
+
*
|
|
10
|
+
* Represents an individual implementation task
|
|
11
|
+
*/
|
|
12
|
+
export declare class Task {
|
|
13
|
+
private _id;
|
|
14
|
+
private _title;
|
|
15
|
+
private _status;
|
|
16
|
+
private _description?;
|
|
17
|
+
constructor(id: string, title: string, status: TaskStatus, description?: string);
|
|
18
|
+
get id(): string;
|
|
19
|
+
get title(): string;
|
|
20
|
+
get status(): TaskStatus;
|
|
21
|
+
get description(): string | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Mark task as in progress
|
|
24
|
+
*/
|
|
25
|
+
markAsInProgress(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Mark task as completed
|
|
28
|
+
*/
|
|
29
|
+
markAsCompleted(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Check if task is pending
|
|
32
|
+
*/
|
|
33
|
+
isPending(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Check if task is completed
|
|
36
|
+
*/
|
|
37
|
+
isCompleted(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Update task description
|
|
40
|
+
*/
|
|
41
|
+
updateDescription(description: string): void;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../../src/domain/entities/task.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;AAEjE;;;;GAIG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAS;gBAElB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM;IAO/E,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,UAAU,CAEvB;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAG7C"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Entity - Task
|
|
3
|
+
*
|
|
4
|
+
* Represents a task in the implementation workflow
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Task Entity
|
|
8
|
+
*
|
|
9
|
+
* Represents an individual implementation task
|
|
10
|
+
*/
|
|
11
|
+
export class Task {
|
|
12
|
+
_id;
|
|
13
|
+
_title;
|
|
14
|
+
_status;
|
|
15
|
+
_description;
|
|
16
|
+
constructor(id, title, status, description) {
|
|
17
|
+
this._id = id;
|
|
18
|
+
this._title = title;
|
|
19
|
+
this._status = status;
|
|
20
|
+
this._description = description;
|
|
21
|
+
}
|
|
22
|
+
get id() {
|
|
23
|
+
return this._id;
|
|
24
|
+
}
|
|
25
|
+
get title() {
|
|
26
|
+
return this._title;
|
|
27
|
+
}
|
|
28
|
+
get status() {
|
|
29
|
+
return this._status;
|
|
30
|
+
}
|
|
31
|
+
get description() {
|
|
32
|
+
return this._description;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Mark task as in progress
|
|
36
|
+
*/
|
|
37
|
+
markAsInProgress() {
|
|
38
|
+
this._status = 'in_progress';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Mark task as completed
|
|
42
|
+
*/
|
|
43
|
+
markAsCompleted() {
|
|
44
|
+
this._status = 'completed';
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if task is pending
|
|
48
|
+
*/
|
|
49
|
+
isPending() {
|
|
50
|
+
return this._status === 'pending';
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Check if task is completed
|
|
54
|
+
*/
|
|
55
|
+
isCompleted() {
|
|
56
|
+
return this._status === 'completed';
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Update task description
|
|
60
|
+
*/
|
|
61
|
+
updateDescription(description) {
|
|
62
|
+
this._description = description;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../src/domain/entities/task.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;GAIG;AACH,MAAM,OAAO,IAAI;IACP,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,OAAO,CAAa;IACpB,YAAY,CAAU;IAE9B,YAAY,EAAU,EAAE,KAAa,EAAE,MAAkB,EAAE,WAAoB;QAC7E,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,WAAmB;QACnC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Service - SpecValidator
|
|
3
|
+
*
|
|
4
|
+
* Validates specifications and phase transitions
|
|
5
|
+
*/
|
|
6
|
+
import type { Spec } from '../entities/spec.js';
|
|
7
|
+
import type { Phase } from '../constants/phases.js';
|
|
8
|
+
export interface ValidationResult {
|
|
9
|
+
isValid: boolean;
|
|
10
|
+
error?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* SpecValidator Domain Service
|
|
14
|
+
*
|
|
15
|
+
* Provides validation logic for spec-related operations
|
|
16
|
+
*/
|
|
17
|
+
export declare class SpecValidator {
|
|
18
|
+
/**
|
|
19
|
+
* Validate phase transition
|
|
20
|
+
*
|
|
21
|
+
* @param spec - Specification to validate
|
|
22
|
+
* @param targetPhase - Target phase to transition to
|
|
23
|
+
* @returns Validation result
|
|
24
|
+
*/
|
|
25
|
+
static validatePhaseTransition(spec: Spec, targetPhase: Phase): ValidationResult;
|
|
26
|
+
/**
|
|
27
|
+
* Validate all approvals are present
|
|
28
|
+
*
|
|
29
|
+
* @param spec - Specification to validate
|
|
30
|
+
* @returns Validation result
|
|
31
|
+
*/
|
|
32
|
+
static validateApprovals(spec: Spec): ValidationResult;
|
|
33
|
+
/**
|
|
34
|
+
* Validate feature name uniqueness
|
|
35
|
+
*
|
|
36
|
+
* @param featureName - Feature name to check
|
|
37
|
+
* @param existingFeatures - List of existing feature names
|
|
38
|
+
* @returns Validation result
|
|
39
|
+
*/
|
|
40
|
+
static validateUniqueness(featureName: string, existingFeatures: string[]): ValidationResult;
|
|
41
|
+
/**
|
|
42
|
+
* Get phase-specific transition error message
|
|
43
|
+
*/
|
|
44
|
+
private static getPhaseTransitionError;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=spec-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-validator.d.ts","sourceRoot":"","sources":["../../../../src/domain/services/spec-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGpD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAAa,aAAa;IACxB;;;;;;OAMG;IACH,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,GAAG,gBAAgB;IAuBhF;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB;IA2BtD;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CACvB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EAAE,GACzB,gBAAgB;IAWnB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;CAYvC"}
|