@contractspec/bundle.workspace 0.0.0-canary-20260113162409
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 +83 -0
- package/dist/_virtual/rolldown_runtime.mjs +20 -0
- package/dist/adapters/ai.d.mts +12 -0
- package/dist/adapters/ai.d.mts.map +1 -0
- package/dist/adapters/ai.mjs +83 -0
- package/dist/adapters/ai.mjs.map +1 -0
- package/dist/adapters/factory.d.mts +29 -0
- package/dist/adapters/factory.d.mts.map +1 -0
- package/dist/adapters/factory.mjs +37 -0
- package/dist/adapters/factory.mjs.map +1 -0
- package/dist/adapters/fs.d.mts +12 -0
- package/dist/adapters/fs.d.mts.map +1 -0
- package/dist/adapters/fs.mjs +133 -0
- package/dist/adapters/fs.mjs.map +1 -0
- package/dist/adapters/git.d.mts +11 -0
- package/dist/adapters/git.d.mts.map +1 -0
- package/dist/adapters/git.mjs +84 -0
- package/dist/adapters/git.mjs.map +1 -0
- package/dist/adapters/index.d.mts +7 -0
- package/dist/adapters/index.mjs +9 -0
- package/dist/adapters/logger.d.mts +18 -0
- package/dist/adapters/logger.d.mts.map +1 -0
- package/dist/adapters/logger.mjs +81 -0
- package/dist/adapters/logger.mjs.map +1 -0
- package/dist/adapters/watcher.d.mts +11 -0
- package/dist/adapters/watcher.d.mts.map +1 -0
- package/dist/adapters/watcher.mjs +74 -0
- package/dist/adapters/watcher.mjs.map +1 -0
- package/dist/adapters/workspace.d.mts +148 -0
- package/dist/adapters/workspace.d.mts.map +1 -0
- package/dist/adapters/workspace.mjs +275 -0
- package/dist/adapters/workspace.mjs.map +1 -0
- package/dist/ai/agents/claude-code-agent.d.mts +22 -0
- package/dist/ai/agents/claude-code-agent.d.mts.map +1 -0
- package/dist/ai/agents/claude-code-agent.mjs +182 -0
- package/dist/ai/agents/claude-code-agent.mjs.map +1 -0
- package/dist/ai/agents/cursor-agent.d.mts +68 -0
- package/dist/ai/agents/cursor-agent.d.mts.map +1 -0
- package/dist/ai/agents/cursor-agent.mjs +436 -0
- package/dist/ai/agents/cursor-agent.mjs.map +1 -0
- package/dist/ai/agents/index.mjs +7 -0
- package/dist/ai/agents/openai-codex-agent.d.mts +22 -0
- package/dist/ai/agents/openai-codex-agent.d.mts.map +1 -0
- package/dist/ai/agents/openai-codex-agent.mjs +167 -0
- package/dist/ai/agents/openai-codex-agent.mjs.map +1 -0
- package/dist/ai/agents/orchestrator.d.mts +50 -0
- package/dist/ai/agents/orchestrator.d.mts.map +1 -0
- package/dist/ai/agents/orchestrator.mjs +143 -0
- package/dist/ai/agents/orchestrator.mjs.map +1 -0
- package/dist/ai/agents/simple-agent.d.mts +17 -0
- package/dist/ai/agents/simple-agent.d.mts.map +1 -0
- package/dist/ai/agents/simple-agent.mjs +92 -0
- package/dist/ai/agents/simple-agent.mjs.map +1 -0
- package/dist/ai/agents/types.d.mts +36 -0
- package/dist/ai/agents/types.d.mts.map +1 -0
- package/dist/ai/client.d.mts +97 -0
- package/dist/ai/client.d.mts.map +1 -0
- package/dist/ai/client.mjs +189 -0
- package/dist/ai/client.mjs.map +1 -0
- package/dist/ai/index.d.mts +9 -0
- package/dist/ai/index.mjs +11 -0
- package/dist/ai/prompts/code-generation.d.mts +26 -0
- package/dist/ai/prompts/code-generation.d.mts.map +1 -0
- package/dist/ai/prompts/code-generation.mjs +143 -0
- package/dist/ai/prompts/code-generation.mjs.map +1 -0
- package/dist/ai/prompts/index.d.mts +10 -0
- package/dist/ai/prompts/index.d.mts.map +1 -0
- package/dist/ai/prompts/index.mjs +13 -0
- package/dist/ai/prompts/index.mjs.map +1 -0
- package/dist/ai/prompts/spec-creation.d.mts +29 -0
- package/dist/ai/prompts/spec-creation.d.mts.map +1 -0
- package/dist/ai/prompts/spec-creation.mjs +111 -0
- package/dist/ai/prompts/spec-creation.mjs.map +1 -0
- package/dist/ai/providers.d.mts +29 -0
- package/dist/ai/providers.d.mts.map +1 -0
- package/dist/ai/providers.mjs +39 -0
- package/dist/ai/providers.mjs.map +1 -0
- package/dist/formatters/index.d.mts +11 -0
- package/dist/formatters/index.d.mts.map +1 -0
- package/dist/formatters/index.mjs +17 -0
- package/dist/formatters/index.mjs.map +1 -0
- package/dist/formatters/json.d.mts +56 -0
- package/dist/formatters/json.d.mts.map +1 -0
- package/dist/formatters/json.mjs +43 -0
- package/dist/formatters/json.mjs.map +1 -0
- package/dist/formatters/sarif.d.mts +101 -0
- package/dist/formatters/sarif.d.mts.map +1 -0
- package/dist/formatters/sarif.mjs +163 -0
- package/dist/formatters/sarif.mjs.map +1 -0
- package/dist/formatters/text.d.mts +35 -0
- package/dist/formatters/text.d.mts.map +1 -0
- package/dist/formatters/text.mjs +209 -0
- package/dist/formatters/text.mjs.map +1 -0
- package/dist/index.d.mts +125 -0
- package/dist/index.mjs +110 -0
- package/dist/ports/ai.d.mts +59 -0
- package/dist/ports/ai.d.mts.map +1 -0
- package/dist/ports/fs.d.mts +81 -0
- package/dist/ports/fs.d.mts.map +1 -0
- package/dist/ports/git.d.mts +46 -0
- package/dist/ports/git.d.mts.map +1 -0
- package/dist/ports/index.d.mts +6 -0
- package/dist/ports/logger.d.mts +88 -0
- package/dist/ports/logger.d.mts.map +1 -0
- package/dist/ports/rulesync.d.mts +38 -0
- package/dist/ports/rulesync.d.mts.map +1 -0
- package/dist/ports/watcher.d.mts +52 -0
- package/dist/ports/watcher.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/claude-code.d.mts +35 -0
- package/dist/services/agent-guide/adapters/claude-code.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/claude-code.mjs +144 -0
- package/dist/services/agent-guide/adapters/claude-code.mjs.map +1 -0
- package/dist/services/agent-guide/adapters/cursor-cli.d.mts +39 -0
- package/dist/services/agent-guide/adapters/cursor-cli.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/cursor-cli.mjs +135 -0
- package/dist/services/agent-guide/adapters/cursor-cli.mjs.map +1 -0
- package/dist/services/agent-guide/adapters/generic-mcp.d.mts +53 -0
- package/dist/services/agent-guide/adapters/generic-mcp.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/generic-mcp.mjs +159 -0
- package/dist/services/agent-guide/adapters/generic-mcp.mjs.map +1 -0
- package/dist/services/agent-guide/adapters/index.d.mts +23 -0
- package/dist/services/agent-guide/adapters/index.d.mts.map +1 -0
- package/dist/services/agent-guide/adapters/index.mjs +31 -0
- package/dist/services/agent-guide/adapters/index.mjs.map +1 -0
- package/dist/services/agent-guide/agent-guide-service.d.mts +56 -0
- package/dist/services/agent-guide/agent-guide-service.d.mts.map +1 -0
- package/dist/services/agent-guide/agent-guide-service.mjs +147 -0
- package/dist/services/agent-guide/agent-guide-service.mjs.map +1 -0
- package/dist/services/agent-guide/index.d.mts +6 -0
- package/dist/services/agent-guide/index.mjs +7 -0
- package/dist/services/agent-guide/types.d.mts +58 -0
- package/dist/services/agent-guide/types.d.mts.map +1 -0
- package/dist/services/build.d.mts +61 -0
- package/dist/services/build.d.mts.map +1 -0
- package/dist/services/build.mjs +151 -0
- package/dist/services/build.mjs.map +1 -0
- package/dist/services/ci-check/checks/coverage.mjs +77 -0
- package/dist/services/ci-check/checks/coverage.mjs.map +1 -0
- package/dist/services/ci-check/checks/deps.mjs +32 -0
- package/dist/services/ci-check/checks/deps.mjs.map +1 -0
- package/dist/services/ci-check/checks/doctor.mjs +38 -0
- package/dist/services/ci-check/checks/doctor.mjs.map +1 -0
- package/dist/services/ci-check/checks/drift.mjs +40 -0
- package/dist/services/ci-check/checks/drift.mjs.map +1 -0
- package/dist/services/ci-check/checks/handlers.mjs +38 -0
- package/dist/services/ci-check/checks/handlers.mjs.map +1 -0
- package/dist/services/ci-check/checks/implementation.mjs +73 -0
- package/dist/services/ci-check/checks/implementation.mjs.map +1 -0
- package/dist/services/ci-check/checks/index.mjs +13 -0
- package/dist/services/ci-check/checks/integrity.mjs +31 -0
- package/dist/services/ci-check/checks/integrity.mjs.map +1 -0
- package/dist/services/ci-check/checks/layers.mjs +66 -0
- package/dist/services/ci-check/checks/layers.mjs.map +1 -0
- package/dist/services/ci-check/checks/structure.mjs +35 -0
- package/dist/services/ci-check/checks/structure.mjs.map +1 -0
- package/dist/services/ci-check/checks/test-refs.mjs +63 -0
- package/dist/services/ci-check/checks/test-refs.mjs.map +1 -0
- package/dist/services/ci-check/checks/tests.mjs +38 -0
- package/dist/services/ci-check/checks/tests.mjs.map +1 -0
- package/dist/services/ci-check/ci-check-service.d.mts +16 -0
- package/dist/services/ci-check/ci-check-service.d.mts.map +1 -0
- package/dist/services/ci-check/ci-check-service.mjs +129 -0
- package/dist/services/ci-check/ci-check-service.mjs.map +1 -0
- package/dist/services/ci-check/index.d.mts +2 -0
- package/dist/services/ci-check/index.mjs +4 -0
- package/dist/services/ci-check/types.d.mts +147 -0
- package/dist/services/ci-check/types.d.mts.map +1 -0
- package/dist/services/ci-check/types.mjs +37 -0
- package/dist/services/ci-check/types.mjs.map +1 -0
- package/dist/services/ci-check/utils.mjs +76 -0
- package/dist/services/ci-check/utils.mjs.map +1 -0
- package/dist/services/clean.d.mts +41 -0
- package/dist/services/clean.d.mts.map +1 -0
- package/dist/services/clean.mjs +72 -0
- package/dist/services/clean.mjs.map +1 -0
- package/dist/services/config.d.mts +16 -0
- package/dist/services/config.d.mts.map +1 -0
- package/dist/services/config.mjs +63 -0
- package/dist/services/config.mjs.map +1 -0
- package/dist/services/coverage/parsers/index.mjs +34 -0
- package/dist/services/coverage/parsers/index.mjs.map +1 -0
- package/dist/services/coverage/parsers/istanbul-parser.mjs +108 -0
- package/dist/services/coverage/parsers/istanbul-parser.mjs.map +1 -0
- package/dist/services/coverage/validator.mjs +55 -0
- package/dist/services/coverage/validator.mjs.map +1 -0
- package/dist/services/create/ai-generator.d.mts +84 -0
- package/dist/services/create/ai-generator.d.mts.map +1 -0
- package/dist/services/create/ai-generator.mjs +178 -0
- package/dist/services/create/ai-generator.mjs.map +1 -0
- package/dist/services/create/index.d.mts +28 -0
- package/dist/services/create/index.d.mts.map +1 -0
- package/dist/services/create/index.mjs +37 -0
- package/dist/services/create/index.mjs.map +1 -0
- package/dist/services/create/templates.d.mts +22 -0
- package/dist/services/create/templates.d.mts.map +1 -0
- package/dist/services/create/templates.mjs +39 -0
- package/dist/services/create/templates.mjs.map +1 -0
- package/dist/services/deps.d.mts +53 -0
- package/dist/services/deps.d.mts.map +1 -0
- package/dist/services/deps.mjs +62 -0
- package/dist/services/deps.mjs.map +1 -0
- package/dist/services/diff.d.mts +34 -0
- package/dist/services/diff.d.mts.map +1 -0
- package/dist/services/diff.mjs +34 -0
- package/dist/services/diff.mjs.map +1 -0
- package/dist/services/docs/docs-service.d.mts +20 -0
- package/dist/services/docs/docs-service.d.mts.map +1 -0
- package/dist/services/docs/docs-service.mjs +59 -0
- package/dist/services/docs/docs-service.mjs.map +1 -0
- package/dist/services/docs/index.d.mts +1 -0
- package/dist/services/docs/index.mjs +3 -0
- package/dist/services/doctor/checks/ai.mjs +119 -0
- package/dist/services/doctor/checks/ai.mjs.map +1 -0
- package/dist/services/doctor/checks/cli.mjs +156 -0
- package/dist/services/doctor/checks/cli.mjs.map +1 -0
- package/dist/services/doctor/checks/config.mjs +303 -0
- package/dist/services/doctor/checks/config.mjs.map +1 -0
- package/dist/services/doctor/checks/deps.mjs +267 -0
- package/dist/services/doctor/checks/deps.mjs.map +1 -0
- package/dist/services/doctor/checks/index.mjs +9 -0
- package/dist/services/doctor/checks/layers.mjs +139 -0
- package/dist/services/doctor/checks/layers.mjs.map +1 -0
- package/dist/services/doctor/checks/mcp.mjs +145 -0
- package/dist/services/doctor/checks/mcp.mjs.map +1 -0
- package/dist/services/doctor/checks/workspace.mjs +263 -0
- package/dist/services/doctor/checks/workspace.mjs.map +1 -0
- package/dist/services/doctor/doctor-service.d.mts +24 -0
- package/dist/services/doctor/doctor-service.d.mts.map +1 -0
- package/dist/services/doctor/doctor-service.mjs +118 -0
- package/dist/services/doctor/doctor-service.mjs.map +1 -0
- package/dist/services/doctor/index.d.mts +2 -0
- package/dist/services/doctor/index.mjs +4 -0
- package/dist/services/doctor/types.d.mts +118 -0
- package/dist/services/doctor/types.d.mts.map +1 -0
- package/dist/services/doctor/types.mjs +29 -0
- package/dist/services/doctor/types.mjs.map +1 -0
- package/dist/services/drift.mjs +73 -0
- package/dist/services/drift.mjs.map +1 -0
- package/dist/services/extract.d.mts +12 -0
- package/dist/services/extract.d.mts.map +1 -0
- package/dist/services/extract.mjs +33 -0
- package/dist/services/extract.mjs.map +1 -0
- package/dist/services/features/completion.d.mts +21 -0
- package/dist/services/features/completion.d.mts.map +1 -0
- package/dist/services/features/completion.mjs +70 -0
- package/dist/services/features/completion.mjs.map +1 -0
- package/dist/services/features/feature-editor.d.mts +27 -0
- package/dist/services/features/feature-editor.d.mts.map +1 -0
- package/dist/services/features/feature-editor.mjs +37 -0
- package/dist/services/features/feature-editor.mjs.map +1 -0
- package/dist/services/features/index.d.mts +11 -0
- package/dist/services/features/index.d.mts.map +1 -0
- package/dist/services/features/index.mjs +16 -0
- package/dist/services/features/index.mjs.map +1 -0
- package/dist/services/features/validation.d.mts +21 -0
- package/dist/services/features/validation.d.mts.map +1 -0
- package/dist/services/features/validation.mjs +27 -0
- package/dist/services/features/validation.mjs.map +1 -0
- package/dist/services/fix/fix-link-formatter.d.mts +12 -0
- package/dist/services/fix/fix-link-formatter.d.mts.map +1 -0
- package/dist/services/fix/fix-link-formatter.mjs +38 -0
- package/dist/services/fix/fix-link-formatter.mjs.map +1 -0
- package/dist/services/fix/fix-service.d.mts +74 -0
- package/dist/services/fix/fix-service.d.mts.map +1 -0
- package/dist/services/fix/fix-service.mjs +169 -0
- package/dist/services/fix/fix-service.mjs.map +1 -0
- package/dist/services/fix/index.d.mts +16 -0
- package/dist/services/fix/index.d.mts.map +1 -0
- package/dist/services/fix/index.mjs +24 -0
- package/dist/services/fix/index.mjs.map +1 -0
- package/dist/services/fix/path-resolver.mjs +83 -0
- package/dist/services/fix/path-resolver.mjs.map +1 -0
- package/dist/services/fix/schemas.d.mts +17 -0
- package/dist/services/fix/schemas.d.mts.map +1 -0
- package/dist/services/fix/schemas.mjs +12 -0
- package/dist/services/fix/schemas.mjs.map +1 -0
- package/dist/services/fix/strategies/implement-ai.d.mts +18 -0
- package/dist/services/fix/strategies/implement-ai.d.mts.map +1 -0
- package/dist/services/fix/strategies/implement-ai.mjs +139 -0
- package/dist/services/fix/strategies/implement-ai.mjs.map +1 -0
- package/dist/services/fix/strategies/implement-skeleton.d.mts +14 -0
- package/dist/services/fix/strategies/implement-skeleton.d.mts.map +1 -0
- package/dist/services/fix/strategies/implement-skeleton.mjs +77 -0
- package/dist/services/fix/strategies/implement-skeleton.mjs.map +1 -0
- package/dist/services/fix/strategies/index.d.mts +3 -0
- package/dist/services/fix/strategies/remove-reference.d.mts +17 -0
- package/dist/services/fix/strategies/remove-reference.d.mts.map +1 -0
- package/dist/services/fix/strategies/remove-reference.mjs +98 -0
- package/dist/services/fix/strategies/remove-reference.mjs.map +1 -0
- package/dist/services/fix/types.d.mts +207 -0
- package/dist/services/fix/types.d.mts.map +1 -0
- package/dist/services/fix/types.mjs +20 -0
- package/dist/services/fix/types.mjs.map +1 -0
- package/dist/services/formatter.d.mts +15 -0
- package/dist/services/formatter.d.mts.map +1 -0
- package/dist/services/formatter.mjs +26 -0
- package/dist/services/formatter.mjs.map +1 -0
- package/dist/services/gap.d.mts +18 -0
- package/dist/services/gap.d.mts.map +1 -0
- package/dist/services/gap.mjs +44 -0
- package/dist/services/gap.mjs.map +1 -0
- package/dist/services/generate-artifacts.d.mts +11 -0
- package/dist/services/generate-artifacts.d.mts.map +1 -0
- package/dist/services/generate-artifacts.mjs +27 -0
- package/dist/services/generate-artifacts.mjs.map +1 -0
- package/dist/services/hooks/hooks-service.d.mts +24 -0
- package/dist/services/hooks/hooks-service.d.mts.map +1 -0
- package/dist/services/hooks/hooks-service.mjs +126 -0
- package/dist/services/hooks/hooks-service.mjs.map +1 -0
- package/dist/services/hooks/index.d.mts +10 -0
- package/dist/services/hooks/index.d.mts.map +1 -0
- package/dist/services/hooks/index.mjs +12 -0
- package/dist/services/hooks/index.mjs.map +1 -0
- package/dist/services/hooks/types.d.mts +56 -0
- package/dist/services/hooks/types.d.mts.map +1 -0
- package/dist/services/impact/formatters.d.mts +27 -0
- package/dist/services/impact/formatters.d.mts.map +1 -0
- package/dist/services/impact/formatters.mjs +139 -0
- package/dist/services/impact/formatters.mjs.map +1 -0
- package/dist/services/impact/impact-detection-service.d.mts +22 -0
- package/dist/services/impact/impact-detection-service.d.mts.map +1 -0
- package/dist/services/impact/impact-detection-service.mjs +96 -0
- package/dist/services/impact/impact-detection-service.mjs.map +1 -0
- package/dist/services/impact/index.d.mts +11 -0
- package/dist/services/impact/index.d.mts.map +1 -0
- package/dist/services/impact/index.mjs +16 -0
- package/dist/services/impact/index.mjs.map +1 -0
- package/dist/services/impact/types.d.mts +63 -0
- package/dist/services/impact/types.d.mts.map +1 -0
- package/dist/services/implementation/discovery.d.mts +30 -0
- package/dist/services/implementation/discovery.d.mts.map +1 -0
- package/dist/services/implementation/discovery.mjs +144 -0
- package/dist/services/implementation/discovery.mjs.map +1 -0
- package/dist/services/implementation/index.d.mts +6 -0
- package/dist/services/implementation/index.mjs +7 -0
- package/dist/services/implementation/resolver/conventions.d.mts +18 -0
- package/dist/services/implementation/resolver/conventions.d.mts.map +1 -0
- package/dist/services/implementation/resolver/conventions.mjs +59 -0
- package/dist/services/implementation/resolver/conventions.mjs.map +1 -0
- package/dist/services/implementation/resolver/index.d.mts +24 -0
- package/dist/services/implementation/resolver/index.d.mts.map +1 -0
- package/dist/services/implementation/resolver/index.mjs +111 -0
- package/dist/services/implementation/resolver/index.mjs.map +1 -0
- package/dist/services/implementation/resolver/parsers.d.mts +16 -0
- package/dist/services/implementation/resolver/parsers.d.mts.map +1 -0
- package/dist/services/implementation/resolver/parsers.mjs +100 -0
- package/dist/services/implementation/resolver/parsers.mjs.map +1 -0
- package/dist/services/implementation/resolver/status.d.mts +21 -0
- package/dist/services/implementation/resolver/status.d.mts.map +1 -0
- package/dist/services/implementation/resolver/status.mjs +31 -0
- package/dist/services/implementation/resolver/status.mjs.map +1 -0
- package/dist/services/implementation/types.d.mts +89 -0
- package/dist/services/implementation/types.d.mts.map +1 -0
- package/dist/services/index.d.mts +103 -0
- package/dist/services/index.mjs +100 -0
- package/dist/services/integrity-diagram.d.mts +36 -0
- package/dist/services/integrity-diagram.d.mts.map +1 -0
- package/dist/services/integrity-diagram.mjs +275 -0
- package/dist/services/integrity-diagram.mjs.map +1 -0
- package/dist/services/integrity.d.mts +152 -0
- package/dist/services/integrity.d.mts.map +1 -0
- package/dist/services/integrity.mjs +361 -0
- package/dist/services/integrity.mjs.map +1 -0
- package/dist/services/layer-discovery.d.mts +77 -0
- package/dist/services/layer-discovery.d.mts.map +1 -0
- package/dist/services/layer-discovery.mjs +121 -0
- package/dist/services/layer-discovery.mjs.map +1 -0
- package/dist/services/list.d.mts +37 -0
- package/dist/services/list.d.mts.map +1 -0
- package/dist/services/list.mjs +46 -0
- package/dist/services/list.mjs.map +1 -0
- package/dist/services/llm/index.d.mts +28 -0
- package/dist/services/llm/index.d.mts.map +1 -0
- package/dist/services/llm/index.mjs +187 -0
- package/dist/services/llm/index.mjs.map +1 -0
- package/dist/services/llm/verify-static.d.mts +26 -0
- package/dist/services/llm/verify-static.d.mts.map +1 -0
- package/dist/services/llm/verify-static.mjs +82 -0
- package/dist/services/llm/verify-static.mjs.map +1 -0
- package/dist/services/modules/module-resolver.mjs +61 -0
- package/dist/services/modules/module-resolver.mjs.map +1 -0
- package/dist/services/openapi/export-service.d.mts +53 -0
- package/dist/services/openapi/export-service.d.mts.map +1 -0
- package/dist/services/openapi/export-service.mjs +50 -0
- package/dist/services/openapi/export-service.mjs.map +1 -0
- package/dist/services/openapi/import-service.d.mts +17 -0
- package/dist/services/openapi/import-service.d.mts.map +1 -0
- package/dist/services/openapi/import-service.mjs +168 -0
- package/dist/services/openapi/import-service.mjs.map +1 -0
- package/dist/services/openapi/index.d.mts +5 -0
- package/dist/services/openapi/index.mjs +6 -0
- package/dist/services/openapi/sync-service.d.mts +17 -0
- package/dist/services/openapi/sync-service.d.mts.map +1 -0
- package/dist/services/openapi/sync-service.mjs +120 -0
- package/dist/services/openapi/sync-service.mjs.map +1 -0
- package/dist/services/openapi/types.d.mts +162 -0
- package/dist/services/openapi/types.d.mts.map +1 -0
- package/dist/services/openapi/validate-service.d.mts +16 -0
- package/dist/services/openapi/validate-service.d.mts.map +1 -0
- package/dist/services/openapi/validate-service.mjs +130 -0
- package/dist/services/openapi/validate-service.mjs.map +1 -0
- package/dist/services/quickstart/dependencies.d.mts +31 -0
- package/dist/services/quickstart/dependencies.d.mts.map +1 -0
- package/dist/services/quickstart/dependencies.mjs +57 -0
- package/dist/services/quickstart/dependencies.mjs.map +1 -0
- package/dist/services/quickstart/index.mjs +4 -0
- package/dist/services/quickstart/quickstart-service.d.mts +20 -0
- package/dist/services/quickstart/quickstart-service.d.mts.map +1 -0
- package/dist/services/quickstart/quickstart-service.mjs +196 -0
- package/dist/services/quickstart/quickstart-service.mjs.map +1 -0
- package/dist/services/quickstart/types.d.mts +81 -0
- package/dist/services/quickstart/types.d.mts.map +1 -0
- package/dist/services/regenerator.d.mts +18 -0
- package/dist/services/regenerator.d.mts.map +1 -0
- package/dist/services/regenerator.mjs +23 -0
- package/dist/services/regenerator.mjs.map +1 -0
- package/dist/services/registry.d.mts +53 -0
- package/dist/services/registry.d.mts.map +1 -0
- package/dist/services/registry.mjs +74 -0
- package/dist/services/registry.mjs.map +1 -0
- package/dist/services/rulesync.d.mts +17 -0
- package/dist/services/rulesync.d.mts.map +1 -0
- package/dist/services/rulesync.mjs +71 -0
- package/dist/services/rulesync.mjs.map +1 -0
- package/dist/services/setup/config-generators.d.mts +42 -0
- package/dist/services/setup/config-generators.d.mts.map +1 -0
- package/dist/services/setup/config-generators.mjs +252 -0
- package/dist/services/setup/config-generators.mjs.map +1 -0
- package/dist/services/setup/file-merger.d.mts +27 -0
- package/dist/services/setup/file-merger.d.mts.map +1 -0
- package/dist/services/setup/file-merger.mjs +61 -0
- package/dist/services/setup/file-merger.mjs.map +1 -0
- package/dist/services/setup/setup-service.d.mts +12 -0
- package/dist/services/setup/setup-service.d.mts.map +1 -0
- package/dist/services/setup/setup-service.mjs +96 -0
- package/dist/services/setup/setup-service.mjs.map +1 -0
- package/dist/services/setup/targets/agents-md.mjs +47 -0
- package/dist/services/setup/targets/agents-md.mjs.map +1 -0
- package/dist/services/setup/targets/cli-config.mjs +60 -0
- package/dist/services/setup/targets/cli-config.mjs.map +1 -0
- package/dist/services/setup/targets/cursor-rules.mjs +48 -0
- package/dist/services/setup/targets/cursor-rules.mjs.map +1 -0
- package/dist/services/setup/targets/mcp-claude.mjs +60 -0
- package/dist/services/setup/targets/mcp-claude.mjs.map +1 -0
- package/dist/services/setup/targets/mcp-cursor.mjs +59 -0
- package/dist/services/setup/targets/mcp-cursor.mjs.map +1 -0
- package/dist/services/setup/targets/vscode-settings.mjs +63 -0
- package/dist/services/setup/targets/vscode-settings.mjs.map +1 -0
- package/dist/services/setup/types.d.mts +85 -0
- package/dist/services/setup/types.d.mts.map +1 -0
- package/dist/services/setup/types.mjs +27 -0
- package/dist/services/setup/types.mjs.map +1 -0
- package/dist/services/sync.d.mts +42 -0
- package/dist/services/sync.d.mts.map +1 -0
- package/dist/services/sync.mjs +64 -0
- package/dist/services/sync.mjs.map +1 -0
- package/dist/services/test/index.d.mts +2 -0
- package/dist/services/test/index.mjs +4 -0
- package/dist/services/test/test-generator-service.d.mts +24 -0
- package/dist/services/test/test-generator-service.d.mts.map +1 -0
- package/dist/services/test/test-generator-service.mjs +92 -0
- package/dist/services/test/test-generator-service.mjs.map +1 -0
- package/dist/services/test/test-service.d.mts +27 -0
- package/dist/services/test/test-service.d.mts.map +1 -0
- package/dist/services/test/test-service.mjs +94 -0
- package/dist/services/test/test-service.mjs.map +1 -0
- package/dist/services/test-link/index.d.mts +18 -0
- package/dist/services/test-link/index.d.mts.map +1 -0
- package/dist/services/test-link/index.mjs +60 -0
- package/dist/services/test-link/index.mjs.map +1 -0
- package/dist/services/test-link/test-ref-validator.d.mts +2 -0
- package/dist/services/test-link/test-ref-validator.mjs +50 -0
- package/dist/services/test-link/test-ref-validator.mjs.map +1 -0
- package/dist/services/upgrade/index.d.mts +10 -0
- package/dist/services/upgrade/index.d.mts.map +1 -0
- package/dist/services/upgrade/index.mjs +15 -0
- package/dist/services/upgrade/index.mjs.map +1 -0
- package/dist/services/upgrade/types.d.mts +78 -0
- package/dist/services/upgrade/types.d.mts.map +1 -0
- package/dist/services/upgrade/upgrade-service.d.mts +38 -0
- package/dist/services/upgrade/upgrade-service.d.mts.map +1 -0
- package/dist/services/upgrade/upgrade-service.mjs +201 -0
- package/dist/services/upgrade/upgrade-service.mjs.map +1 -0
- package/dist/services/validate/blueprint-validator.d.mts +23 -0
- package/dist/services/validate/blueprint-validator.d.mts.map +1 -0
- package/dist/services/validate/blueprint-validator.mjs +50 -0
- package/dist/services/validate/blueprint-validator.mjs.map +1 -0
- package/dist/services/validate/implementation-agent-validator.d.mts +20 -0
- package/dist/services/validate/implementation-agent-validator.d.mts.map +1 -0
- package/dist/services/validate/implementation-agent-validator.mjs +42 -0
- package/dist/services/validate/implementation-agent-validator.mjs.map +1 -0
- package/dist/services/validate/implementation-validator.d.mts +32 -0
- package/dist/services/validate/implementation-validator.d.mts.map +1 -0
- package/dist/services/validate/implementation-validator.mjs +64 -0
- package/dist/services/validate/implementation-validator.mjs.map +1 -0
- package/dist/services/validate/index.d.mts +5 -0
- package/dist/services/validate/index.mjs +7 -0
- package/dist/services/validate/spec-validator.d.mts +42 -0
- package/dist/services/validate/spec-validator.d.mts.map +1 -0
- package/dist/services/validate/spec-validator.mjs +49 -0
- package/dist/services/validate/spec-validator.mjs.map +1 -0
- package/dist/services/validate/tenant-validator.d.mts +21 -0
- package/dist/services/validate/tenant-validator.d.mts.map +1 -0
- package/dist/services/validate/tenant-validator.mjs +165 -0
- package/dist/services/validate/tenant-validator.mjs.map +1 -0
- package/dist/services/verification-cache/adapters/filesystem.d.mts +46 -0
- package/dist/services/verification-cache/adapters/filesystem.d.mts.map +1 -0
- package/dist/services/verification-cache/adapters/filesystem.mjs +120 -0
- package/dist/services/verification-cache/adapters/filesystem.mjs.map +1 -0
- package/dist/services/verification-cache/adapters/in-memory.d.mts +27 -0
- package/dist/services/verification-cache/adapters/in-memory.d.mts.map +1 -0
- package/dist/services/verification-cache/adapters/in-memory.mjs +46 -0
- package/dist/services/verification-cache/adapters/in-memory.mjs.map +1 -0
- package/dist/services/verification-cache/adapters/index.d.mts +3 -0
- package/dist/services/verification-cache/adapters/index.mjs +5 -0
- package/dist/services/verification-cache/adapters/workspace-state.d.mts +49 -0
- package/dist/services/verification-cache/adapters/workspace-state.d.mts.map +1 -0
- package/dist/services/verification-cache/adapters/workspace-state.mjs +91 -0
- package/dist/services/verification-cache/adapters/workspace-state.mjs.map +1 -0
- package/dist/services/verification-cache/cache-service.d.mts +70 -0
- package/dist/services/verification-cache/cache-service.d.mts.map +1 -0
- package/dist/services/verification-cache/cache-service.mjs +256 -0
- package/dist/services/verification-cache/cache-service.mjs.map +1 -0
- package/dist/services/verification-cache/index.d.mts +6 -0
- package/dist/services/verification-cache/index.mjs +8 -0
- package/dist/services/verification-cache/types.d.mts +124 -0
- package/dist/services/verification-cache/types.d.mts.map +1 -0
- package/dist/services/verification-cache/types.mjs +16 -0
- package/dist/services/verification-cache/types.mjs.map +1 -0
- package/dist/services/verify/ai-verifier.d.mts +25 -0
- package/dist/services/verify/ai-verifier.d.mts.map +1 -0
- package/dist/services/verify/ai-verifier.mjs +403 -0
- package/dist/services/verify/ai-verifier.mjs.map +1 -0
- package/dist/services/verify/behavior-verifier.d.mts +12 -0
- package/dist/services/verify/behavior-verifier.d.mts.map +1 -0
- package/dist/services/verify/behavior-verifier.mjs +186 -0
- package/dist/services/verify/behavior-verifier.mjs.map +1 -0
- package/dist/services/verify/index.d.mts +5 -0
- package/dist/services/verify/index.mjs +6 -0
- package/dist/services/verify/structure-verifier.d.mts +12 -0
- package/dist/services/verify/structure-verifier.d.mts.map +1 -0
- package/dist/services/verify/structure-verifier.mjs +196 -0
- package/dist/services/verify/structure-verifier.mjs.map +1 -0
- package/dist/services/verify/types.d.mts +137 -0
- package/dist/services/verify/types.d.mts.map +1 -0
- package/dist/services/verify/verify-service.d.mts +60 -0
- package/dist/services/verify/verify-service.d.mts.map +1 -0
- package/dist/services/verify/verify-service.mjs +204 -0
- package/dist/services/verify/verify-service.mjs.map +1 -0
- package/dist/services/versioning/changelog-formatter.d.mts +24 -0
- package/dist/services/versioning/changelog-formatter.d.mts.map +1 -0
- package/dist/services/versioning/changelog-formatter.mjs +155 -0
- package/dist/services/versioning/changelog-formatter.mjs.map +1 -0
- package/dist/services/versioning/conventional-commits.d.mts +95 -0
- package/dist/services/versioning/conventional-commits.d.mts.map +1 -0
- package/dist/services/versioning/conventional-commits.mjs +184 -0
- package/dist/services/versioning/conventional-commits.mjs.map +1 -0
- package/dist/services/versioning/index.d.mts +12 -0
- package/dist/services/versioning/index.d.mts.map +1 -0
- package/dist/services/versioning/index.mjs +28 -0
- package/dist/services/versioning/index.mjs.map +1 -0
- package/dist/services/versioning/types.d.mts +135 -0
- package/dist/services/versioning/types.d.mts.map +1 -0
- package/dist/services/versioning/versioning-service.d.mts +74 -0
- package/dist/services/versioning/versioning-service.d.mts.map +1 -0
- package/dist/services/versioning/versioning-service.mjs +501 -0
- package/dist/services/versioning/versioning-service.mjs.map +1 -0
- package/dist/services/vibe/config.d.mts +12 -0
- package/dist/services/vibe/config.d.mts.map +1 -0
- package/dist/services/vibe/config.mjs +43 -0
- package/dist/services/vibe/config.mjs.map +1 -0
- package/dist/services/vibe/context.d.mts +19 -0
- package/dist/services/vibe/context.d.mts.map +1 -0
- package/dist/services/vibe/context.mjs +92 -0
- package/dist/services/vibe/context.mjs.map +1 -0
- package/dist/services/vibe/definitions.d.mts +8 -0
- package/dist/services/vibe/definitions.d.mts.map +1 -0
- package/dist/services/vibe/definitions.mjs +129 -0
- package/dist/services/vibe/definitions.mjs.map +1 -0
- package/dist/services/vibe/engine.d.mts +44 -0
- package/dist/services/vibe/engine.d.mts.map +1 -0
- package/dist/services/vibe/engine.mjs +147 -0
- package/dist/services/vibe/engine.mjs.map +1 -0
- package/dist/services/vibe/index.d.mts +15 -0
- package/dist/services/vibe/index.d.mts.map +1 -0
- package/dist/services/vibe/index.mjs +26 -0
- package/dist/services/vibe/index.mjs.map +1 -0
- package/dist/services/vibe/loader.d.mts +15 -0
- package/dist/services/vibe/loader.d.mts.map +1 -0
- package/dist/services/vibe/loader.mjs +48 -0
- package/dist/services/vibe/loader.mjs.map +1 -0
- package/dist/services/vibe/pack.d.mts +19 -0
- package/dist/services/vibe/pack.d.mts.map +1 -0
- package/dist/services/vibe/pack.mjs +66 -0
- package/dist/services/vibe/pack.mjs.map +1 -0
- package/dist/services/vibe/types.d.mts +59 -0
- package/dist/services/vibe/types.d.mts.map +1 -0
- package/dist/services/vibe/types.mjs +12 -0
- package/dist/services/vibe/types.mjs.map +1 -0
- package/dist/services/view/index.d.mts +11 -0
- package/dist/services/view/index.d.mts.map +1 -0
- package/dist/services/view/index.mjs +119 -0
- package/dist/services/view/index.mjs.map +1 -0
- package/dist/services/watch.d.mts +25 -0
- package/dist/services/watch.d.mts.map +1 -0
- package/dist/services/watch.mjs +33 -0
- package/dist/services/watch.mjs.map +1 -0
- package/dist/services/workspace-info.d.mts +62 -0
- package/dist/services/workspace-info.d.mts.map +1 -0
- package/dist/services/workspace-info.mjs +103 -0
- package/dist/services/workspace-info.mjs.map +1 -0
- package/dist/templates/app-config.template.d.mts +7 -0
- package/dist/templates/app-config.template.d.mts.map +1 -0
- package/dist/templates/app-config.template.mjs +107 -0
- package/dist/templates/app-config.template.mjs.map +1 -0
- package/dist/templates/data-view.template.d.mts +7 -0
- package/dist/templates/data-view.template.d.mts.map +1 -0
- package/dist/templates/data-view.template.mjs +70 -0
- package/dist/templates/data-view.template.mjs.map +1 -0
- package/dist/templates/event.template.d.mts +11 -0
- package/dist/templates/event.template.d.mts.map +1 -0
- package/dist/templates/event.template.mjs +42 -0
- package/dist/templates/event.template.mjs.map +1 -0
- package/dist/templates/experiment.template.d.mts +7 -0
- package/dist/templates/experiment.template.d.mts.map +1 -0
- package/dist/templates/experiment.template.mjs +89 -0
- package/dist/templates/experiment.template.mjs.map +1 -0
- package/dist/templates/feature.template.d.mts +33 -0
- package/dist/templates/feature.template.d.mts.map +1 -0
- package/dist/templates/feature.template.mjs +52 -0
- package/dist/templates/feature.template.mjs.map +1 -0
- package/dist/templates/fix/skeleton-capability.mjs +49 -0
- package/dist/templates/fix/skeleton-capability.mjs.map +1 -0
- package/dist/templates/fix/skeleton-event.mjs +56 -0
- package/dist/templates/fix/skeleton-event.mjs.map +1 -0
- package/dist/templates/fix/skeleton-operation.mjs +122 -0
- package/dist/templates/fix/skeleton-operation.mjs.map +1 -0
- package/dist/templates/fix/skeleton-presentation.mjs +65 -0
- package/dist/templates/fix/skeleton-presentation.mjs.map +1 -0
- package/dist/templates/fix/utils.mjs +34 -0
- package/dist/templates/fix/utils.mjs.map +1 -0
- package/dist/templates/handler.template.d.mts +16 -0
- package/dist/templates/handler.template.d.mts.map +1 -0
- package/dist/templates/handler.template.mjs +100 -0
- package/dist/templates/handler.template.mjs.map +1 -0
- package/dist/templates/index.d.mts +22 -0
- package/dist/templates/index.d.mts.map +1 -0
- package/dist/templates/index.mjs +39 -0
- package/dist/templates/index.mjs.map +1 -0
- package/dist/templates/integration.template.d.mts +7 -0
- package/dist/templates/integration.template.d.mts.map +1 -0
- package/dist/templates/integration.template.mjs +160 -0
- package/dist/templates/integration.template.mjs.map +1 -0
- package/dist/templates/knowledge.template.d.mts +7 -0
- package/dist/templates/knowledge.template.d.mts.map +1 -0
- package/dist/templates/knowledge.template.mjs +75 -0
- package/dist/templates/knowledge.template.mjs.map +1 -0
- package/dist/templates/migration.template.d.mts +7 -0
- package/dist/templates/migration.template.d.mts.map +1 -0
- package/dist/templates/migration.template.mjs +62 -0
- package/dist/templates/migration.template.mjs.map +1 -0
- package/dist/templates/operation.template.d.mts +11 -0
- package/dist/templates/operation.template.d.mts.map +1 -0
- package/dist/templates/operation.template.mjs +107 -0
- package/dist/templates/operation.template.mjs.map +1 -0
- package/dist/templates/presentation.template.d.mts +11 -0
- package/dist/templates/presentation.template.d.mts.map +1 -0
- package/dist/templates/presentation.template.mjs +80 -0
- package/dist/templates/presentation.template.mjs.map +1 -0
- package/dist/templates/telemetry.template.d.mts +7 -0
- package/dist/templates/telemetry.template.d.mts.map +1 -0
- package/dist/templates/telemetry.template.mjs +91 -0
- package/dist/templates/telemetry.template.mjs.map +1 -0
- package/dist/templates/workflow-runner.template.d.mts +16 -0
- package/dist/templates/workflow-runner.template.d.mts.map +1 -0
- package/dist/templates/workflow-runner.template.mjs +50 -0
- package/dist/templates/workflow-runner.template.mjs.map +1 -0
- package/dist/templates/workflow.template.d.mts +7 -0
- package/dist/templates/workflow.template.d.mts.map +1 -0
- package/dist/templates/workflow.template.mjs +69 -0
- package/dist/templates/workflow.template.mjs.map +1 -0
- package/dist/types/config.d.mts +34 -0
- package/dist/types/config.d.mts.map +1 -0
- package/dist/types.d.mts +324 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/utils/filter.d.mts +16 -0
- package/dist/utils/filter.d.mts.map +1 -0
- package/dist/utils/filter.mjs +22 -0
- package/dist/utils/filter.mjs.map +1 -0
- package/dist/utils/index.d.mts +11 -0
- package/dist/utils/index.d.mts.map +1 -0
- package/dist/utils/index.mjs +20 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/module-loader.d.mts +5 -0
- package/dist/utils/module-loader.d.mts.map +1 -0
- package/dist/utils/module-loader.mjs +41 -0
- package/dist/utils/module-loader.mjs.map +1 -0
- package/dist/utils/validation.d.mts +37 -0
- package/dist/utils/validation.d.mts.map +1 -0
- package/dist/utils/validation.mjs +43 -0
- package/dist/utils/validation.mjs.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
//#region src/services/versioning/conventional-commits.ts
|
|
2
|
+
/**
|
|
3
|
+
* Default mapping of commit types to version bump types.
|
|
4
|
+
*
|
|
5
|
+
* - `feat` → minor (new feature)
|
|
6
|
+
* - `fix` → patch (bug fix)
|
|
7
|
+
* - `perf` → patch (performance improvement)
|
|
8
|
+
* - `refactor` → patch (code refactoring)
|
|
9
|
+
* - `docs` → null (no version bump)
|
|
10
|
+
* - `style` → null (no version bump)
|
|
11
|
+
* - `test` → null (no version bump)
|
|
12
|
+
* - `chore` → null (no version bump)
|
|
13
|
+
* - `ci` → null (no version bump)
|
|
14
|
+
* - `build` → null (no version bump)
|
|
15
|
+
*/
|
|
16
|
+
const DEFAULT_COMMIT_TYPE_MAP = {
|
|
17
|
+
feat: "minor",
|
|
18
|
+
fix: "patch",
|
|
19
|
+
perf: "patch",
|
|
20
|
+
refactor: "patch",
|
|
21
|
+
docs: null,
|
|
22
|
+
style: null,
|
|
23
|
+
test: null,
|
|
24
|
+
chore: null,
|
|
25
|
+
ci: null,
|
|
26
|
+
build: null,
|
|
27
|
+
revert: "patch"
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Regex pattern for parsing conventional commit messages.
|
|
31
|
+
*
|
|
32
|
+
* Matches: type(scope)!: description
|
|
33
|
+
* Groups:
|
|
34
|
+
* 1. type
|
|
35
|
+
* 2. scope (optional)
|
|
36
|
+
* 3. breaking indicator (optional !)
|
|
37
|
+
* 4. description
|
|
38
|
+
*/
|
|
39
|
+
const CONVENTIONAL_COMMIT_PATTERN = /^(\w+)(?:\(([^)]+)\))?(!)?\s*:\s*(.+)$/;
|
|
40
|
+
/**
|
|
41
|
+
* Pattern for detecting BREAKING CHANGE in commit body/footer.
|
|
42
|
+
*/
|
|
43
|
+
const BREAKING_CHANGE_PATTERN = /^BREAKING[ -]CHANGE:\s*(.+)$/im;
|
|
44
|
+
/**
|
|
45
|
+
* Parse a conventional commit message.
|
|
46
|
+
*
|
|
47
|
+
* @param message - Full commit message (may include body)
|
|
48
|
+
* @returns Parsed commit or null if not a valid conventional commit
|
|
49
|
+
*/
|
|
50
|
+
function parseConventionalCommit(message) {
|
|
51
|
+
const lines = message.split("\n");
|
|
52
|
+
const firstLine = lines[0]?.trim();
|
|
53
|
+
if (!firstLine) return null;
|
|
54
|
+
const match = firstLine.match(CONVENTIONAL_COMMIT_PATTERN);
|
|
55
|
+
if (!match) return null;
|
|
56
|
+
const [, type, scope, breakingIndicator, description] = match;
|
|
57
|
+
if (!type || !description) return null;
|
|
58
|
+
const body = lines.slice(1).join("\n").trim() || void 0;
|
|
59
|
+
const breakingMatch = body?.match(BREAKING_CHANGE_PATTERN);
|
|
60
|
+
const breakingDescription = breakingMatch?.[1];
|
|
61
|
+
return {
|
|
62
|
+
type: type.toLowerCase(),
|
|
63
|
+
scope: scope?.toLowerCase(),
|
|
64
|
+
breaking: !!breakingIndicator || !!breakingMatch,
|
|
65
|
+
description: description.trim(),
|
|
66
|
+
body,
|
|
67
|
+
breakingDescription,
|
|
68
|
+
raw: message
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check if a commit message follows conventional commit format.
|
|
73
|
+
*/
|
|
74
|
+
function isConventionalCommit(message) {
|
|
75
|
+
return parseConventionalCommit(message) !== null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Determine the version bump type from a conventional commit.
|
|
79
|
+
*
|
|
80
|
+
* @param commit - Parsed conventional commit
|
|
81
|
+
* @param typeMap - Optional custom type-to-bump mapping
|
|
82
|
+
* @returns Version bump type or null if no bump needed
|
|
83
|
+
*/
|
|
84
|
+
function getBumpTypeFromCommit(commit, typeMap = DEFAULT_COMMIT_TYPE_MAP) {
|
|
85
|
+
if (commit.breaking) return "major";
|
|
86
|
+
return typeMap[commit.type] ?? null;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Determine the highest bump type from multiple commits.
|
|
90
|
+
*
|
|
91
|
+
* @param commits - Array of parsed conventional commits
|
|
92
|
+
* @param typeMap - Optional custom type-to-bump mapping
|
|
93
|
+
* @returns Highest version bump type or null if no bump needed
|
|
94
|
+
*/
|
|
95
|
+
function getHighestBumpType(commits, typeMap = DEFAULT_COMMIT_TYPE_MAP) {
|
|
96
|
+
const bumpOrder = [
|
|
97
|
+
"major",
|
|
98
|
+
"minor",
|
|
99
|
+
"patch"
|
|
100
|
+
];
|
|
101
|
+
let highest = null;
|
|
102
|
+
for (const commit of commits) {
|
|
103
|
+
const bumpType = getBumpTypeFromCommit(commit, typeMap);
|
|
104
|
+
if (!bumpType) continue;
|
|
105
|
+
if (!highest) {
|
|
106
|
+
highest = bumpType;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
const currentIndex = bumpOrder.indexOf(highest);
|
|
110
|
+
if (bumpOrder.indexOf(bumpType) < currentIndex) highest = bumpType;
|
|
111
|
+
}
|
|
112
|
+
return highest;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Convert a conventional commit to a changelog ChangeEntry.
|
|
116
|
+
*
|
|
117
|
+
* @param commit - Parsed conventional commit
|
|
118
|
+
* @returns ChangeEntry for changelog
|
|
119
|
+
*/
|
|
120
|
+
function commitToChangeEntry(commit) {
|
|
121
|
+
if (commit.breaking) return {
|
|
122
|
+
type: "breaking",
|
|
123
|
+
description: commit.breakingDescription ?? commit.description,
|
|
124
|
+
path: commit.scope
|
|
125
|
+
};
|
|
126
|
+
switch (commit.type) {
|
|
127
|
+
case "feat": return {
|
|
128
|
+
type: "added",
|
|
129
|
+
description: commit.description,
|
|
130
|
+
path: commit.scope
|
|
131
|
+
};
|
|
132
|
+
case "fix": return {
|
|
133
|
+
type: "fixed",
|
|
134
|
+
description: commit.description,
|
|
135
|
+
path: commit.scope
|
|
136
|
+
};
|
|
137
|
+
case "deprecate": return {
|
|
138
|
+
type: "deprecated",
|
|
139
|
+
description: commit.description,
|
|
140
|
+
path: commit.scope
|
|
141
|
+
};
|
|
142
|
+
case "remove": return {
|
|
143
|
+
type: "removed",
|
|
144
|
+
description: commit.description,
|
|
145
|
+
path: commit.scope
|
|
146
|
+
};
|
|
147
|
+
case "security": return {
|
|
148
|
+
type: "security",
|
|
149
|
+
description: commit.description,
|
|
150
|
+
path: commit.scope
|
|
151
|
+
};
|
|
152
|
+
default: return {
|
|
153
|
+
type: "changed",
|
|
154
|
+
description: commit.description,
|
|
155
|
+
path: commit.scope
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Convert multiple commits to an array of ChangeEntries.
|
|
161
|
+
*/
|
|
162
|
+
function commitsToChangeEntries(commits) {
|
|
163
|
+
return commits.map(commitToChangeEntry);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Filter commits by scope (for spec-level changes).
|
|
167
|
+
*
|
|
168
|
+
* @param commits - Array of parsed conventional commits
|
|
169
|
+
* @param scope - Scope to filter by (e.g., "auth", "api")
|
|
170
|
+
* @returns Commits matching the scope
|
|
171
|
+
*/
|
|
172
|
+
function filterCommitsByScope(commits, scope) {
|
|
173
|
+
return commits.filter((c) => c.scope?.toLowerCase() === scope.toLowerCase());
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Filter commits that trigger version bumps.
|
|
177
|
+
*/
|
|
178
|
+
function filterBumpableCommits(commits, typeMap = DEFAULT_COMMIT_TYPE_MAP) {
|
|
179
|
+
return commits.filter((c) => getBumpTypeFromCommit(c, typeMap) !== null);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
//#endregion
|
|
183
|
+
export { DEFAULT_COMMIT_TYPE_MAP, commitToChangeEntry, commitsToChangeEntries, filterBumpableCommits, filterCommitsByScope, getBumpTypeFromCommit, getHighestBumpType, isConventionalCommit, parseConventionalCommit };
|
|
184
|
+
//# sourceMappingURL=conventional-commits.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conventional-commits.mjs","names":[],"sources":["../../../src/services/versioning/conventional-commits.ts"],"sourcesContent":["/**\n * Conventional commits parser and utilities.\n *\n * Parses conventional commit messages to determine version bump types\n * and extract change information for changelog generation.\n *\n * Supports:\n * - Standard conventional commits (feat, fix, chore, etc.)\n * - Breaking change detection (BREAKING CHANGE: or !)\n * - Scope extraction for spec-level changes\n *\n * @module versioning/conventional-commits\n */\n\nimport type { VersionBumpType, ChangeEntry } from '@contractspec/lib.contracts';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Parsed conventional commit message.\n */\nexport interface ConventionalCommit {\n /** Commit type (feat, fix, chore, etc.) */\n type: string;\n /** Optional scope (e.g., auth, api) */\n scope?: string;\n /** Whether this is a breaking change */\n breaking: boolean;\n /** Commit description */\n description: string;\n /** Commit body (optional) */\n body?: string;\n /** Breaking change description (if any) */\n breakingDescription?: string;\n /** Full original message */\n raw: string;\n}\n\n/**\n * Commit type to bump type mapping.\n */\nexport type CommitTypeBumpMap = Record<string, VersionBumpType | null>;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Constants\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Default mapping of commit types to version bump types.\n *\n * - `feat` → minor (new feature)\n * - `fix` → patch (bug fix)\n * - `perf` → patch (performance improvement)\n * - `refactor` → patch (code refactoring)\n * - `docs` → null (no version bump)\n * - `style` → null (no version bump)\n * - `test` → null (no version bump)\n * - `chore` → null (no version bump)\n * - `ci` → null (no version bump)\n * - `build` → null (no version bump)\n */\nexport const DEFAULT_COMMIT_TYPE_MAP: CommitTypeBumpMap = {\n feat: 'minor',\n fix: 'patch',\n perf: 'patch',\n refactor: 'patch',\n docs: null,\n style: null,\n test: null,\n chore: null,\n ci: null,\n build: null,\n revert: 'patch',\n};\n\n/**\n * Regex pattern for parsing conventional commit messages.\n *\n * Matches: type(scope)!: description\n * Groups:\n * 1. type\n * 2. scope (optional)\n * 3. breaking indicator (optional !)\n * 4. description\n */\nconst CONVENTIONAL_COMMIT_PATTERN = /^(\\w+)(?:\\(([^)]+)\\))?(!)?\\s*:\\s*(.+)$/;\n\n/**\n * Pattern for detecting BREAKING CHANGE in commit body/footer.\n */\nconst BREAKING_CHANGE_PATTERN = /^BREAKING[ -]CHANGE:\\s*(.+)$/im;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Parser\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Parse a conventional commit message.\n *\n * @param message - Full commit message (may include body)\n * @returns Parsed commit or null if not a valid conventional commit\n */\nexport function parseConventionalCommit(\n message: string\n): ConventionalCommit | null {\n const lines = message.split('\\n');\n const firstLine = lines[0]?.trim();\n\n if (!firstLine) {\n return null;\n }\n\n const match = firstLine.match(CONVENTIONAL_COMMIT_PATTERN);\n if (!match) {\n return null;\n }\n\n const [, type, scope, breakingIndicator, description] = match;\n\n if (!type || !description) {\n return null;\n }\n\n // Extract body (everything after first line)\n const body = lines.slice(1).join('\\n').trim() || undefined;\n\n // Check for breaking change in body\n const breakingMatch = body?.match(BREAKING_CHANGE_PATTERN);\n const breakingDescription = breakingMatch?.[1];\n\n return {\n type: type.toLowerCase(),\n scope: scope?.toLowerCase(),\n breaking: !!breakingIndicator || !!breakingMatch,\n description: description.trim(),\n body,\n breakingDescription,\n raw: message,\n };\n}\n\n/**\n * Check if a commit message follows conventional commit format.\n */\nexport function isConventionalCommit(message: string): boolean {\n return parseConventionalCommit(message) !== null;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Bump Type Determination\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Determine the version bump type from a conventional commit.\n *\n * @param commit - Parsed conventional commit\n * @param typeMap - Optional custom type-to-bump mapping\n * @returns Version bump type or null if no bump needed\n */\nexport function getBumpTypeFromCommit(\n commit: ConventionalCommit,\n typeMap: CommitTypeBumpMap = DEFAULT_COMMIT_TYPE_MAP\n): VersionBumpType | null {\n // Breaking changes always trigger major bump\n if (commit.breaking) {\n return 'major';\n }\n\n // Use type mapping\n return typeMap[commit.type] ?? null;\n}\n\n/**\n * Determine the highest bump type from multiple commits.\n *\n * @param commits - Array of parsed conventional commits\n * @param typeMap - Optional custom type-to-bump mapping\n * @returns Highest version bump type or null if no bump needed\n */\nexport function getHighestBumpType(\n commits: ConventionalCommit[],\n typeMap: CommitTypeBumpMap = DEFAULT_COMMIT_TYPE_MAP\n): VersionBumpType | null {\n const bumpOrder: VersionBumpType[] = ['major', 'minor', 'patch'];\n\n let highest: VersionBumpType | null = null;\n\n for (const commit of commits) {\n const bumpType = getBumpTypeFromCommit(commit, typeMap);\n\n if (!bumpType) continue;\n\n if (!highest) {\n highest = bumpType;\n continue;\n }\n\n // Check if this bump is higher precedence\n const currentIndex = bumpOrder.indexOf(highest);\n const newIndex = bumpOrder.indexOf(bumpType);\n\n if (newIndex < currentIndex) {\n highest = bumpType;\n }\n }\n\n return highest;\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Change Entry Conversion\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Convert a conventional commit to a changelog ChangeEntry.\n *\n * @param commit - Parsed conventional commit\n * @returns ChangeEntry for changelog\n */\nexport function commitToChangeEntry(commit: ConventionalCommit): ChangeEntry {\n if (commit.breaking) {\n return {\n type: 'breaking',\n description: commit.breakingDescription ?? commit.description,\n path: commit.scope,\n };\n }\n\n switch (commit.type) {\n case 'feat':\n return {\n type: 'added',\n description: commit.description,\n path: commit.scope,\n };\n case 'fix':\n return {\n type: 'fixed',\n description: commit.description,\n path: commit.scope,\n };\n case 'deprecate':\n return {\n type: 'deprecated',\n description: commit.description,\n path: commit.scope,\n };\n case 'remove':\n return {\n type: 'removed',\n description: commit.description,\n path: commit.scope,\n };\n case 'security':\n return {\n type: 'security',\n description: commit.description,\n path: commit.scope,\n };\n default:\n return {\n type: 'changed',\n description: commit.description,\n path: commit.scope,\n };\n }\n}\n\n/**\n * Convert multiple commits to an array of ChangeEntries.\n */\nexport function commitsToChangeEntries(\n commits: ConventionalCommit[]\n): ChangeEntry[] {\n return commits.map(commitToChangeEntry);\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Filtering\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Filter commits by scope (for spec-level changes).\n *\n * @param commits - Array of parsed conventional commits\n * @param scope - Scope to filter by (e.g., \"auth\", \"api\")\n * @returns Commits matching the scope\n */\nexport function filterCommitsByScope(\n commits: ConventionalCommit[],\n scope: string\n): ConventionalCommit[] {\n return commits.filter((c) => c.scope?.toLowerCase() === scope.toLowerCase());\n}\n\n/**\n * Filter commits that trigger version bumps.\n */\nexport function filterBumpableCommits(\n commits: ConventionalCommit[],\n typeMap: CommitTypeBumpMap = DEFAULT_COMMIT_TYPE_MAP\n): ConventionalCommit[] {\n return commits.filter((c) => getBumpTypeFromCommit(c, typeMap) !== null);\n}\n"],"mappings":";;;;;;;;;;;;;;;AA+DA,MAAa,0BAA6C;CACxD,MAAM;CACN,KAAK;CACL,MAAM;CACN,UAAU;CACV,MAAM;CACN,OAAO;CACP,MAAM;CACN,OAAO;CACP,IAAI;CACJ,OAAO;CACP,QAAQ;CACT;;;;;;;;;;;AAYD,MAAM,8BAA8B;;;;AAKpC,MAAM,0BAA0B;;;;;;;AAYhC,SAAgB,wBACd,SAC2B;CAC3B,MAAM,QAAQ,QAAQ,MAAM,KAAK;CACjC,MAAM,YAAY,MAAM,IAAI,MAAM;AAElC,KAAI,CAAC,UACH,QAAO;CAGT,MAAM,QAAQ,UAAU,MAAM,4BAA4B;AAC1D,KAAI,CAAC,MACH,QAAO;CAGT,MAAM,GAAG,MAAM,OAAO,mBAAmB,eAAe;AAExD,KAAI,CAAC,QAAQ,CAAC,YACZ,QAAO;CAIT,MAAM,OAAO,MAAM,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI;CAGjD,MAAM,gBAAgB,MAAM,MAAM,wBAAwB;CAC1D,MAAM,sBAAsB,gBAAgB;AAE5C,QAAO;EACL,MAAM,KAAK,aAAa;EACxB,OAAO,OAAO,aAAa;EAC3B,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC;EACnC,aAAa,YAAY,MAAM;EAC/B;EACA;EACA,KAAK;EACN;;;;;AAMH,SAAgB,qBAAqB,SAA0B;AAC7D,QAAO,wBAAwB,QAAQ,KAAK;;;;;;;;;AAc9C,SAAgB,sBACd,QACA,UAA6B,yBACL;AAExB,KAAI,OAAO,SACT,QAAO;AAIT,QAAO,QAAQ,OAAO,SAAS;;;;;;;;;AAUjC,SAAgB,mBACd,SACA,UAA6B,yBACL;CACxB,MAAM,YAA+B;EAAC;EAAS;EAAS;EAAQ;CAEhE,IAAI,UAAkC;AAEtC,MAAK,MAAM,UAAU,SAAS;EAC5B,MAAM,WAAW,sBAAsB,QAAQ,QAAQ;AAEvD,MAAI,CAAC,SAAU;AAEf,MAAI,CAAC,SAAS;AACZ,aAAU;AACV;;EAIF,MAAM,eAAe,UAAU,QAAQ,QAAQ;AAG/C,MAFiB,UAAU,QAAQ,SAAS,GAE7B,aACb,WAAU;;AAId,QAAO;;;;;;;;AAaT,SAAgB,oBAAoB,QAAyC;AAC3E,KAAI,OAAO,SACT,QAAO;EACL,MAAM;EACN,aAAa,OAAO,uBAAuB,OAAO;EAClD,MAAM,OAAO;EACd;AAGH,SAAQ,OAAO,MAAf;EACE,KAAK,OACH,QAAO;GACL,MAAM;GACN,aAAa,OAAO;GACpB,MAAM,OAAO;GACd;EACH,KAAK,MACH,QAAO;GACL,MAAM;GACN,aAAa,OAAO;GACpB,MAAM,OAAO;GACd;EACH,KAAK,YACH,QAAO;GACL,MAAM;GACN,aAAa,OAAO;GACpB,MAAM,OAAO;GACd;EACH,KAAK,SACH,QAAO;GACL,MAAM;GACN,aAAa,OAAO;GACpB,MAAM,OAAO;GACd;EACH,KAAK,WACH,QAAO;GACL,MAAM;GACN,aAAa,OAAO;GACpB,MAAM,OAAO;GACd;EACH,QACE,QAAO;GACL,MAAM;GACN,aAAa,OAAO;GACpB,MAAM,OAAO;GACd;;;;;;AAOP,SAAgB,uBACd,SACe;AACf,QAAO,QAAQ,IAAI,oBAAoB;;;;;;;;;AAczC,SAAgB,qBACd,SACA,OACsB;AACtB,QAAO,QAAQ,QAAQ,MAAM,EAAE,OAAO,aAAa,KAAK,MAAM,aAAa,CAAC;;;;;AAM9E,SAAgB,sBACd,SACA,UAA6B,yBACP;AACtB,QAAO,QAAQ,QAAQ,MAAM,sBAAsB,GAAG,QAAQ,KAAK,KAAK"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ChangeEntry, ChangelogDocBlock, ChangelogEntry, ChangelogGenerateOptions, ChangelogGenerateResult, ChangelogJsonExport, ChangelogTier, LibraryChangelogJson, SpecChangelogJson, SpecVersionAnalysis, VersionAnalyzeOptions, VersionAnalyzeResult, VersionBumpOptions, VersionBumpResult, VersionBumpType, VersioningConfig } from "./types.mjs";
|
|
2
|
+
import { analyzeVersions, analyzeVersionsFromCommits, applyVersionBump, generateChangelogs } from "./versioning-service.mjs";
|
|
3
|
+
import { formatChangelogJson, formatConventionalChangelog, formatKeepAChangelog } from "./changelog-formatter.mjs";
|
|
4
|
+
import { CommitTypeBumpMap, ConventionalCommit, DEFAULT_COMMIT_TYPE_MAP, commitToChangeEntry, commitsToChangeEntries, filterBumpableCommits, filterCommitsByScope, getBumpTypeFromCommit, getHighestBumpType, isConventionalCommit, parseConventionalCommit } from "./conventional-commits.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/services/versioning/index.d.ts
|
|
7
|
+
declare namespace index_d_exports {
|
|
8
|
+
export { ChangeEntry, ChangelogDocBlock, ChangelogEntry, ChangelogGenerateOptions, ChangelogGenerateResult, ChangelogJsonExport, ChangelogTier, CommitTypeBumpMap, ConventionalCommit, DEFAULT_COMMIT_TYPE_MAP, LibraryChangelogJson, SpecChangelogJson, SpecVersionAnalysis, VersionAnalyzeOptions, VersionAnalyzeResult, VersionBumpOptions, VersionBumpResult, VersionBumpType, VersioningConfig, analyzeVersions, analyzeVersionsFromCommits, applyVersionBump, commitToChangeEntry, commitsToChangeEntries, filterBumpableCommits, filterCommitsByScope, formatChangelogJson, formatConventionalChangelog, formatKeepAChangelog, generateChangelogs, getBumpTypeFromCommit, getHighestBumpType, isConventionalCommit, parseConventionalCommit };
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { index_d_exports };
|
|
12
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/services/versioning/index.ts"],"sourcesContent":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { __exportAll } from "../../_virtual/rolldown_runtime.mjs";
|
|
2
|
+
import { formatChangelogJson, formatConventionalChangelog, formatKeepAChangelog } from "./changelog-formatter.mjs";
|
|
3
|
+
import { DEFAULT_COMMIT_TYPE_MAP, commitToChangeEntry, commitsToChangeEntries, filterBumpableCommits, filterCommitsByScope, getBumpTypeFromCommit, getHighestBumpType, isConventionalCommit, parseConventionalCommit } from "./conventional-commits.mjs";
|
|
4
|
+
import { analyzeVersions, analyzeVersionsFromCommits, applyVersionBump, generateChangelogs } from "./versioning-service.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/services/versioning/index.ts
|
|
7
|
+
var versioning_exports = /* @__PURE__ */ __exportAll({
|
|
8
|
+
DEFAULT_COMMIT_TYPE_MAP: () => DEFAULT_COMMIT_TYPE_MAP,
|
|
9
|
+
analyzeVersions: () => analyzeVersions,
|
|
10
|
+
analyzeVersionsFromCommits: () => analyzeVersionsFromCommits,
|
|
11
|
+
applyVersionBump: () => applyVersionBump,
|
|
12
|
+
commitToChangeEntry: () => commitToChangeEntry,
|
|
13
|
+
commitsToChangeEntries: () => commitsToChangeEntries,
|
|
14
|
+
filterBumpableCommits: () => filterBumpableCommits,
|
|
15
|
+
filterCommitsByScope: () => filterCommitsByScope,
|
|
16
|
+
formatChangelogJson: () => formatChangelogJson,
|
|
17
|
+
formatConventionalChangelog: () => formatConventionalChangelog,
|
|
18
|
+
formatKeepAChangelog: () => formatKeepAChangelog,
|
|
19
|
+
generateChangelogs: () => generateChangelogs,
|
|
20
|
+
getBumpTypeFromCommit: () => getBumpTypeFromCommit,
|
|
21
|
+
getHighestBumpType: () => getHighestBumpType,
|
|
22
|
+
isConventionalCommit: () => isConventionalCommit,
|
|
23
|
+
parseConventionalCommit: () => parseConventionalCommit
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
export { versioning_exports };
|
|
28
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/services/versioning/index.ts"],"sourcesContent":["/**\n * Versioning service module exports.\n *\n * Provides version analysis, version bumping, and changelog generation.\n */\n\nexport * from './types';\nexport {\n analyzeVersions,\n applyVersionBump,\n generateChangelogs,\n analyzeVersionsFromCommits,\n} from './versioning-service';\nexport {\n formatKeepAChangelog,\n formatConventionalChangelog,\n formatChangelogJson,\n} from './changelog-formatter';\nexport * from './conventional-commits';\n"],"mappings":""}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { ChangeEntry as ChangeEntry$1, ChangelogDocBlock, ChangelogEntry as ChangelogEntry$1, ChangelogTier, VersionBumpType as VersionBumpType$1, VersioningConfig } from "@contractspec/lib.contracts";
|
|
2
|
+
|
|
3
|
+
//#region src/services/versioning/types.d.ts
|
|
4
|
+
|
|
5
|
+
/** Options for version analysis */
|
|
6
|
+
interface VersionAnalyzeOptions {
|
|
7
|
+
/** Git ref to compare against (branch, tag, commit) */
|
|
8
|
+
baseline?: string;
|
|
9
|
+
/** Glob pattern for spec discovery */
|
|
10
|
+
pattern?: string;
|
|
11
|
+
/** Workspace root directory */
|
|
12
|
+
workspaceRoot?: string;
|
|
13
|
+
/** Include paths (glob patterns) */
|
|
14
|
+
include?: string[];
|
|
15
|
+
/** Exclude paths (glob patterns) */
|
|
16
|
+
exclude?: string[];
|
|
17
|
+
}
|
|
18
|
+
/** Options for version bump */
|
|
19
|
+
interface VersionBumpOptions {
|
|
20
|
+
/** Spec file path to bump */
|
|
21
|
+
specPath: string;
|
|
22
|
+
/** Bump type (auto-detected if not specified) */
|
|
23
|
+
bumpType?: VersionBumpType$1;
|
|
24
|
+
/** Change description for changelog entry */
|
|
25
|
+
changeDescription?: string;
|
|
26
|
+
/** Additional change entries */
|
|
27
|
+
changes?: ChangeEntry$1[];
|
|
28
|
+
/** Dry run (don't write changes) */
|
|
29
|
+
dryRun?: boolean;
|
|
30
|
+
/** Versioning config (for changesets integration) */
|
|
31
|
+
config?: VersioningConfig;
|
|
32
|
+
}
|
|
33
|
+
/** Options for changelog generation */
|
|
34
|
+
interface ChangelogGenerateOptions {
|
|
35
|
+
/** Git ref to compare against */
|
|
36
|
+
baseline?: string;
|
|
37
|
+
/** Workspace root directory */
|
|
38
|
+
workspaceRoot?: string;
|
|
39
|
+
/** Changelog tiers to generate */
|
|
40
|
+
tiers?: ChangelogTier[];
|
|
41
|
+
/** Output format */
|
|
42
|
+
format?: 'keep-a-changelog' | 'conventional' | 'custom';
|
|
43
|
+
/** Custom template (for 'custom' format) */
|
|
44
|
+
template?: string;
|
|
45
|
+
}
|
|
46
|
+
/** Result of version analysis for a single spec */
|
|
47
|
+
interface SpecVersionAnalysis {
|
|
48
|
+
/** Path to the spec file */
|
|
49
|
+
specPath: string;
|
|
50
|
+
/** Spec key (e.g., "auth.login") */
|
|
51
|
+
specKey: string;
|
|
52
|
+
/** Current version in the spec */
|
|
53
|
+
currentVersion: string;
|
|
54
|
+
/** Suggested new version based on changes */
|
|
55
|
+
suggestedVersion: string;
|
|
56
|
+
/** Suggested bump type */
|
|
57
|
+
bumpType: VersionBumpType$1;
|
|
58
|
+
/** Detected changes requiring version bump */
|
|
59
|
+
changes: ChangeEntry$1[];
|
|
60
|
+
/** Whether breaking changes were detected */
|
|
61
|
+
hasBreaking: boolean;
|
|
62
|
+
/** Whether the spec needs a version bump */
|
|
63
|
+
needsBump: boolean;
|
|
64
|
+
}
|
|
65
|
+
/** Aggregated version analysis result */
|
|
66
|
+
interface VersionAnalyzeResult {
|
|
67
|
+
/** Individual spec analyses */
|
|
68
|
+
analyses: SpecVersionAnalysis[];
|
|
69
|
+
/** Total specs analyzed */
|
|
70
|
+
totalSpecs: number;
|
|
71
|
+
/** Specs needing version bump */
|
|
72
|
+
specsNeedingBump: number;
|
|
73
|
+
/** Total breaking changes across all specs */
|
|
74
|
+
totalBreaking: number;
|
|
75
|
+
/** Total non-breaking changes */
|
|
76
|
+
totalNonBreaking: number;
|
|
77
|
+
/** Git baseline used for comparison */
|
|
78
|
+
baseline?: string;
|
|
79
|
+
}
|
|
80
|
+
/** Result of version bump operation */
|
|
81
|
+
interface VersionBumpResult {
|
|
82
|
+
/** Whether the bump was successful */
|
|
83
|
+
success: boolean;
|
|
84
|
+
/** Path to the updated spec file */
|
|
85
|
+
specPath: string;
|
|
86
|
+
/** Spec key */
|
|
87
|
+
specKey: string;
|
|
88
|
+
/** Previous version */
|
|
89
|
+
previousVersion: string;
|
|
90
|
+
/** New version */
|
|
91
|
+
newVersion: string;
|
|
92
|
+
/** Bump type applied */
|
|
93
|
+
bumpType: VersionBumpType$1;
|
|
94
|
+
/** Changelog entry created */
|
|
95
|
+
changelogEntry: ChangelogEntry$1;
|
|
96
|
+
/** Error message if failed */
|
|
97
|
+
error?: string;
|
|
98
|
+
}
|
|
99
|
+
/** Result of changelog generation */
|
|
100
|
+
interface ChangelogGenerateResult {
|
|
101
|
+
/** Per-spec DocBlock entries */
|
|
102
|
+
specChangelogs: ChangelogDocBlock[];
|
|
103
|
+
/** Library-level markdown by package path */
|
|
104
|
+
libraryMarkdown: Map<string, string>;
|
|
105
|
+
/** Monorepo-level markdown */
|
|
106
|
+
monorepoMarkdown: string;
|
|
107
|
+
/** JSON format for programmatic use */
|
|
108
|
+
json: ChangelogJsonExport;
|
|
109
|
+
/** Total entries generated */
|
|
110
|
+
totalEntries: number;
|
|
111
|
+
}
|
|
112
|
+
/** JSON export format for changelogs */
|
|
113
|
+
interface ChangelogJsonExport {
|
|
114
|
+
generatedAt: string;
|
|
115
|
+
baseline?: string;
|
|
116
|
+
specs: SpecChangelogJson[];
|
|
117
|
+
libraries: LibraryChangelogJson[];
|
|
118
|
+
}
|
|
119
|
+
/** Spec-level changelog in JSON format */
|
|
120
|
+
interface SpecChangelogJson {
|
|
121
|
+
key: string;
|
|
122
|
+
version: string;
|
|
123
|
+
path: string;
|
|
124
|
+
entries: ChangelogEntry$1[];
|
|
125
|
+
}
|
|
126
|
+
/** Library-level changelog in JSON format */
|
|
127
|
+
interface LibraryChangelogJson {
|
|
128
|
+
name: string;
|
|
129
|
+
path: string;
|
|
130
|
+
version: string;
|
|
131
|
+
entries: ChangelogEntry$1[];
|
|
132
|
+
}
|
|
133
|
+
//#endregion
|
|
134
|
+
export { type ChangeEntry$1 as ChangeEntry, type ChangelogDocBlock, type ChangelogEntry$1 as ChangelogEntry, ChangelogGenerateOptions, ChangelogGenerateResult, ChangelogJsonExport, type ChangelogTier, LibraryChangelogJson, SpecChangelogJson, SpecVersionAnalysis, VersionAnalyzeOptions, VersionAnalyzeResult, VersionBumpOptions, VersionBumpResult, type VersionBumpType$1 as VersionBumpType, type VersioningConfig };
|
|
135
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/services/versioning/types.ts"],"sourcesContent":[],"mappings":";;;;;AA4DiB,UA9BA,qBAAA,CA8BwB;EAkBxB;EAoBA,QAAA,CAAA,EAAA,MAAA;EAgBA;EAoBA,OAAA,CAAA,EAAA,MAAA;EAEC;EAEC,aAAA,CAAA,EAAA,MAAA;EAIX;EAAmB,OAAA,CAAA,EAAA,MAAA,EAAA;EAMV;EAQA,OAAA,CAAA,EAAA,MAAA,EAAA;AAQjB;;UAxHiB,kBAAA;;;;aAIJ;;;;YAID;;;;WAID;;;UAIM,wBAAA;;;;;;UAMP;;;;;;;UAYO,mBAAA;;;;;;;;;;YAUL;;WAED;;;;;;;UAQM,oBAAA;;YAEL;;;;;;;;;;;;;UAcK,iBAAA;;;;;;;;;;;;YAYL;;kBAEM;;;;;UAMD,uBAAA;;kBAEC;;mBAEC;;;;QAIX;;;;;UAMS,mBAAA;;;SAGR;aACI;;;UAII,iBAAA;;;;WAIN;;;UAIM,oBAAA;;;;WAIN"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { FsAdapter } from "../../ports/fs.mjs";
|
|
2
|
+
import { GitAdapter } from "../../ports/git.mjs";
|
|
3
|
+
import { LoggerAdapter } from "../../ports/logger.mjs";
|
|
4
|
+
import { ChangelogGenerateOptions, ChangelogGenerateResult, VersionAnalyzeOptions, VersionAnalyzeResult, VersionBumpOptions, VersionBumpResult } from "./types.mjs";
|
|
5
|
+
import { ChangeEntry, VersionBumpType } from "@contractspec/lib.contracts";
|
|
6
|
+
|
|
7
|
+
//#region src/services/versioning/versioning-service.d.ts
|
|
8
|
+
|
|
9
|
+
interface ServiceAdapters {
|
|
10
|
+
fs: FsAdapter;
|
|
11
|
+
git: GitAdapter;
|
|
12
|
+
logger: LoggerAdapter;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Analyze specs and suggest version bumps based on changes.
|
|
16
|
+
*
|
|
17
|
+
* Compares the current state against a baseline (git ref) and determines
|
|
18
|
+
* which specs need version bumps based on detected changes.
|
|
19
|
+
*/
|
|
20
|
+
declare function analyzeVersions(adapters: ServiceAdapters, options?: VersionAnalyzeOptions): Promise<VersionAnalyzeResult>;
|
|
21
|
+
/**
|
|
22
|
+
* Options for commit-based version analysis.
|
|
23
|
+
*/
|
|
24
|
+
interface CommitAnalyzeOptions {
|
|
25
|
+
/** Git ref to compare against (branch, tag, commit) */
|
|
26
|
+
baseline?: string;
|
|
27
|
+
/** Workspace root directory */
|
|
28
|
+
workspaceRoot?: string;
|
|
29
|
+
/** Include commits matching these paths (glob patterns) */
|
|
30
|
+
include?: string[];
|
|
31
|
+
/** Exclude commits matching these paths (glob patterns) */
|
|
32
|
+
exclude?: string[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Result of commit-based version analysis.
|
|
36
|
+
*/
|
|
37
|
+
interface CommitAnalyzeResult {
|
|
38
|
+
/** Suggested bump type based on commits */
|
|
39
|
+
suggestedBumpType: VersionBumpType | null;
|
|
40
|
+
/** Parsed conventional commits */
|
|
41
|
+
commits: {
|
|
42
|
+
hash: string;
|
|
43
|
+
message: string;
|
|
44
|
+
type: string;
|
|
45
|
+
scope?: string;
|
|
46
|
+
breaking: boolean;
|
|
47
|
+
}[];
|
|
48
|
+
/** Change entries for changelog */
|
|
49
|
+
changes: ChangeEntry[];
|
|
50
|
+
/** Total commits analyzed */
|
|
51
|
+
totalCommits: number;
|
|
52
|
+
/** Breaking commits count */
|
|
53
|
+
breakingCommits: number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Analyze version bump based on git commits.
|
|
57
|
+
*
|
|
58
|
+
* Parses conventional commits since the baseline and determines
|
|
59
|
+
* the appropriate version bump type.
|
|
60
|
+
*/
|
|
61
|
+
declare function analyzeVersionsFromCommits(adapters: ServiceAdapters, options?: CommitAnalyzeOptions): Promise<CommitAnalyzeResult>;
|
|
62
|
+
/**
|
|
63
|
+
* Apply a version bump to a spec file.
|
|
64
|
+
*
|
|
65
|
+
* Updates the version in the spec file and creates a changelog entry.
|
|
66
|
+
*/
|
|
67
|
+
declare function applyVersionBump(adapters: ServiceAdapters, options: VersionBumpOptions): Promise<VersionBumpResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Generate changelogs at all configured tiers.
|
|
70
|
+
*/
|
|
71
|
+
declare function generateChangelogs(adapters: ServiceAdapters, options?: ChangelogGenerateOptions): Promise<ChangelogGenerateResult>;
|
|
72
|
+
//#endregion
|
|
73
|
+
export { analyzeVersions, analyzeVersionsFromCommits, applyVersionBump, generateChangelogs };
|
|
74
|
+
//# sourceMappingURL=versioning-service.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versioning-service.d.mts","names":[],"sources":["../../../src/services/versioning/versioning-service.ts"],"sourcesContent":[],"mappings":";;;;;;;;UA0CU,eAAA,CAGa;EAaD,EAAA,EAfhB,SAegB;EACV,GAAA,EAfL,UAeK;EACD,MAAA,EAfD,aAeC;;;;AAsGX;AAcA;AAyBA;;AAEW,iBAjJW,eAAA,CAiJX,QAAA,EAhJC,eAgJD,EAAA,OAAA,CAAA,EA/IA,qBA+IA,CAAA,EA9IR,OA8IQ,CA9IA,oBA8IA,CAAA;;;;AAsEW,UA/GL,oBAAA,CA+GqB;EAC1B;EACD,QAAA,CAAA,EAAA,MAAA;EACA;EAAR,aAAA,CAAA,EAAA,MAAA;EAAO;EA6GY,OAAA,CAAA,EAAA,MAAA,EAAA;EACV;EACD,OAAA,CAAA,EAAA,MAAA,EAAA;;;;;UAnNM,mBAAA;;qBAEI;;;;;;;;;;WAUV;;;;;;;;;;;;iBAaW,0BAAA,WACV,2BACD,uBACR,QAAQ;;;;;;iBAqEW,gBAAA,WACV,0BACD,qBACR,QAAQ;;;;iBA6GW,kBAAA,WACV,2BACD,2BACR,QAAQ"}
|