@libar-dev/architect 1.0.0-pre.3 → 1.0.0-pre.5
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 +1 -1
- package/README.md +5 -5
- package/dist/api/arch-queries.d.ts.map +1 -1
- package/dist/api/context-assembler.d.ts.map +1 -1
- package/dist/api/handoff-generator.d.ts.map +1 -1
- package/dist/api/index.d.ts +8 -8
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +7 -7
- package/dist/api/index.js.map +1 -1
- package/dist/api/{process-state.d.ts → pattern-graph-api.d.ts} +15 -15
- package/dist/api/pattern-graph-api.d.ts.map +1 -0
- package/dist/api/{process-state.js → pattern-graph-api.js} +13 -13
- package/dist/api/pattern-graph-api.js.map +1 -0
- package/dist/api/rules-query.d.ts +6 -6
- package/dist/api/rules-query.d.ts.map +1 -1
- package/dist/api/rules-query.js +4 -4
- package/dist/api/rules-query.js.map +1 -1
- package/dist/api/scope-validator.d.ts.map +1 -1
- package/dist/api/types.d.ts +8 -8
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js +5 -5
- package/dist/cli/cli-schema.d.ts +3 -4
- package/dist/cli/cli-schema.d.ts.map +1 -1
- package/dist/cli/cli-schema.js +13 -14
- package/dist/cli/cli-schema.js.map +1 -1
- package/dist/cli/output-pipeline.d.ts.map +1 -1
- package/dist/cli/pattern-graph-cli.d.ts.map +1 -0
- package/dist/cli/validate-patterns.d.ts.map +1 -1
- package/dist/generators/built-in/cli-recipe-generator.d.ts +3 -4
- package/dist/generators/built-in/cli-recipe-generator.d.ts.map +1 -1
- package/dist/generators/built-in/cli-recipe-generator.js +6 -7
- package/dist/generators/built-in/cli-recipe-generator.js.map +1 -1
- package/dist/generators/built-in/cli-reference-generator.d.ts +18 -0
- package/dist/generators/built-in/cli-reference-generator.d.ts.map +1 -0
- package/dist/generators/built-in/{process-api-reference-generator.js → cli-reference-generator.js} +13 -13
- package/dist/generators/built-in/cli-reference-generator.js.map +1 -0
- package/dist/generators/built-in/codec-generators.js +12 -12
- package/dist/generators/built-in/codec-generators.js.map +1 -1
- package/dist/generators/built-in/design-review-generator.d.ts.map +1 -1
- package/dist/generators/built-in/reference-generators.d.ts.map +1 -1
- package/dist/generators/codec-based.d.ts.map +1 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/orchestrator.d.ts.map +1 -1
- package/dist/generators/pipeline/build-pipeline.d.ts +17 -14
- package/dist/generators/pipeline/build-pipeline.d.ts.map +1 -1
- package/dist/generators/pipeline/build-pipeline.js +27 -21
- package/dist/generators/pipeline/build-pipeline.js.map +1 -1
- package/dist/generators/pipeline/index.d.ts.map +1 -1
- package/dist/generators/types.d.ts.map +1 -1
- package/dist/mcp/pipeline-session.d.ts.map +1 -1
- package/dist/renderable/codecs/index-codec.d.ts.map +1 -1
- package/dist/renderable/codecs/index-codec.js +54 -28
- package/dist/renderable/codecs/index-codec.js.map +1 -1
- package/docs/ANNOTATION-GUIDE.md +5 -5
- package/docs/ARCHITECTURE.md +79 -79
- package/docs/{PROCESS-API.md → CLI.md} +6 -6
- package/docs/CONFIGURATION.md +2 -2
- package/docs/DOCS-GAP-ANALYSIS.md +65 -65
- package/docs/INDEX.md +34 -34
- package/docs/MCP-SETUP.md +3 -3
- package/docs/METHODOLOGY.md +1 -1
- package/docs/SESSION-GUIDES.md +3 -3
- package/docs/VALIDATION.md +4 -4
- package/docs-live/ARCHITECTURE.md +48 -42
- package/docs-live/BUSINESS-RULES.md +3 -3
- package/docs-live/CHANGELOG-GENERATED.md +109 -103
- package/docs-live/INDEX.md +21 -21
- package/docs-live/PRODUCT-AREAS.md +7 -7
- package/docs-live/TAXONOMY.md +3 -5
- package/docs-live/_claude-md/annotation/annotation-overview.md +1 -1
- package/docs-live/_claude-md/annotation/annotation-reference.md +5 -5
- package/docs-live/_claude-md/architecture/architecture-types.md +4 -4
- package/docs-live/_claude-md/architecture/reference-sample.md +2 -2
- package/docs-live/_claude-md/data-api/data-api-overview.md +2 -2
- package/docs-live/_claude-md/generation/generation-overview.md +15 -15
- package/docs-live/_claude-md/process/process-overview.md +1 -1
- package/docs-live/_claude-md/validation/validation-overview.md +1 -1
- package/docs-live/business-rules/annotation.md +1 -2
- package/docs-live/business-rules/configuration.md +1 -1
- package/docs-live/business-rules/data-api.md +149 -136
- package/docs-live/business-rules/generation.md +172 -20
- package/docs-live/decisions/adr-003-source-first-pattern-architecture.md +1 -1
- package/docs-live/decisions/adr-005-codec-based-markdown-rendering.md +5 -5
- package/docs-live/decisions/adr-006-single-read-model-architecture.md +24 -24
- package/docs-live/product-areas/ANNOTATION.md +19 -9
- package/docs-live/product-areas/CONFIGURATION.md +39 -19
- package/docs-live/product-areas/DATA-API.md +155 -151
- package/docs-live/product-areas/GENERATION.md +159 -144
- package/docs-live/product-areas/PROCESS.md +4 -4
- package/docs-live/product-areas/VALIDATION.md +35 -20
- package/docs-live/reference/ANNOTATION-REFERENCE.md +5 -5
- package/docs-live/reference/ARCHITECTURE-CODECS.md +11 -11
- package/docs-live/reference/ARCHITECTURE-TYPES.md +28 -25
- package/docs-live/reference/{PROCESS-API-RECIPES.md → CLI-RECIPES.md} +11 -11
- package/docs-live/reference/{PROCESS-API-REFERENCE.md → CLI-REFERENCE.md} +2 -2
- package/docs-live/reference/REFERENCE-SAMPLE.md +56 -56
- package/docs-live/reference/SESSION-WORKFLOW-GUIDE.md +3 -3
- package/docs-live/taxonomy/format-types.md +2 -2
- package/docs-live/taxonomy/metadata-tags.md +1 -23
- package/package.json +7 -7
- package/dist/api/arch-queries.d.ts +0 -95
- package/dist/api/arch-queries.js +0 -310
- package/dist/api/arch-queries.js.map +0 -1
- package/dist/api/context-assembler.d.ts +0 -124
- package/dist/api/context-assembler.js +0 -472
- package/dist/api/context-assembler.js.map +0 -1
- package/dist/api/context-formatter.d.ts +0 -26
- package/dist/api/context-formatter.js +0 -183
- package/dist/api/context-formatter.js.map +0 -1
- package/dist/api/coverage-analyzer.d.ts +0 -38
- package/dist/api/coverage-analyzer.d.ts.map +0 -1
- package/dist/api/coverage-analyzer.js +0 -117
- package/dist/api/coverage-analyzer.js.map +0 -1
- package/dist/api/fuzzy-match.d.ts +0 -75
- package/dist/api/fuzzy-match.d.ts.map +0 -1
- package/dist/api/fuzzy-match.js +0 -150
- package/dist/api/fuzzy-match.js.map +0 -1
- package/dist/api/handoff-generator.d.ts +0 -45
- package/dist/api/handoff-generator.js +0 -139
- package/dist/api/handoff-generator.js.map +0 -1
- package/dist/api/pattern-helpers.d.ts +0 -51
- package/dist/api/pattern-helpers.d.ts.map +0 -1
- package/dist/api/pattern-helpers.js +0 -84
- package/dist/api/pattern-helpers.js.map +0 -1
- package/dist/api/process-state.d.ts.map +0 -1
- package/dist/api/process-state.js.map +0 -1
- package/dist/api/scope-validator.d.ts +0 -56
- package/dist/api/scope-validator.js +0 -293
- package/dist/api/scope-validator.js.map +0 -1
- package/dist/api/stub-resolver.d.ts +0 -117
- package/dist/api/stub-resolver.d.ts.map +0 -1
- package/dist/api/stub-resolver.js +0 -154
- package/dist/api/stub-resolver.js.map +0 -1
- package/dist/api/summarize.d.ts +0 -75
- package/dist/api/summarize.d.ts.map +0 -1
- package/dist/api/summarize.js +0 -97
- package/dist/api/summarize.js.map +0 -1
- package/dist/cache/file-cache.d.ts +0 -72
- package/dist/cache/file-cache.d.ts.map +0 -1
- package/dist/cache/file-cache.js +0 -80
- package/dist/cache/file-cache.js.map +0 -1
- package/dist/cache/index.d.ts +0 -5
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/index.js +0 -5
- package/dist/cache/index.js.map +0 -1
- package/dist/cli/dataset-cache.d.ts +0 -66
- package/dist/cli/dataset-cache.js +0 -179
- package/dist/cli/dataset-cache.js.map +0 -1
- package/dist/cli/error-handler.d.ts +0 -84
- package/dist/cli/error-handler.d.ts.map +0 -1
- package/dist/cli/error-handler.js +0 -197
- package/dist/cli/error-handler.js.map +0 -1
- package/dist/cli/generate-docs.d.ts +0 -30
- package/dist/cli/generate-docs.js +0 -370
- package/dist/cli/generate-docs.js.map +0 -1
- package/dist/cli/lint-patterns.d.ts +0 -57
- package/dist/cli/lint-patterns.d.ts.map +0 -1
- package/dist/cli/lint-patterns.js +0 -257
- package/dist/cli/lint-patterns.js.map +0 -1
- package/dist/cli/lint-process.d.ts +0 -54
- package/dist/cli/lint-process.d.ts.map +0 -1
- package/dist/cli/lint-process.js +0 -319
- package/dist/cli/lint-process.js.map +0 -1
- package/dist/cli/lint-steps.d.ts +0 -32
- package/dist/cli/lint-steps.d.ts.map +0 -1
- package/dist/cli/lint-steps.js +0 -172
- package/dist/cli/lint-steps.js.map +0 -1
- package/dist/cli/mcp-server.d.ts +0 -22
- package/dist/cli/mcp-server.js +0 -57
- package/dist/cli/mcp-server.js.map +0 -1
- package/dist/cli/output-pipeline.d.ts +0 -130
- package/dist/cli/output-pipeline.js +0 -234
- package/dist/cli/output-pipeline.js.map +0 -1
- package/dist/cli/process-api.d.ts +0 -37
- package/dist/cli/process-api.d.ts.map +0 -1
- package/dist/cli/process-api.js +0 -1550
- package/dist/cli/process-api.js.map +0 -1
- package/dist/cli/repl.d.ts +0 -38
- package/dist/cli/repl.js +0 -239
- package/dist/cli/repl.js.map +0 -1
- package/dist/cli/validate-patterns.d.ts +0 -115
- package/dist/cli/validate-patterns.js +0 -707
- package/dist/cli/validate-patterns.js.map +0 -1
- package/dist/cli/version.d.ts +0 -35
- package/dist/cli/version.d.ts.map +0 -1
- package/dist/cli/version.js +0 -64
- package/dist/cli/version.js.map +0 -1
- package/dist/config/config-loader.d.ts +0 -167
- package/dist/config/config-loader.d.ts.map +0 -1
- package/dist/config/config-loader.js +0 -294
- package/dist/config/config-loader.js.map +0 -1
- package/dist/config/defaults.d.ts +0 -92
- package/dist/config/defaults.d.ts.map +0 -1
- package/dist/config/defaults.js +0 -103
- package/dist/config/defaults.js.map +0 -1
- package/dist/config/define-config.d.ts +0 -37
- package/dist/config/define-config.d.ts.map +0 -1
- package/dist/config/define-config.js +0 -38
- package/dist/config/define-config.js.map +0 -1
- package/dist/config/factory.d.ts +0 -79
- package/dist/config/factory.d.ts.map +0 -1
- package/dist/config/factory.js +0 -116
- package/dist/config/factory.js.map +0 -1
- package/dist/config/index.d.ts +0 -45
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -48
- package/dist/config/index.js.map +0 -1
- package/dist/config/merge-sources.d.ts +0 -47
- package/dist/config/merge-sources.d.ts.map +0 -1
- package/dist/config/merge-sources.js +0 -61
- package/dist/config/merge-sources.js.map +0 -1
- package/dist/config/presets.d.ts +0 -115
- package/dist/config/presets.d.ts.map +0 -1
- package/dist/config/presets.js +0 -119
- package/dist/config/presets.js.map +0 -1
- package/dist/config/project-config-schema.d.ts +0 -192
- package/dist/config/project-config-schema.d.ts.map +0 -1
- package/dist/config/project-config-schema.js +0 -231
- package/dist/config/project-config-schema.js.map +0 -1
- package/dist/config/project-config.d.ts +0 -229
- package/dist/config/project-config.d.ts.map +0 -1
- package/dist/config/project-config.js +0 -37
- package/dist/config/project-config.js.map +0 -1
- package/dist/config/regex-builders.d.ts +0 -49
- package/dist/config/regex-builders.d.ts.map +0 -1
- package/dist/config/regex-builders.js +0 -85
- package/dist/config/regex-builders.js.map +0 -1
- package/dist/config/resolve-config.d.ts +0 -65
- package/dist/config/resolve-config.d.ts.map +0 -1
- package/dist/config/resolve-config.js +0 -150
- package/dist/config/resolve-config.js.map +0 -1
- package/dist/config/types.d.ts +0 -81
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -22
- package/dist/config/types.js.map +0 -1
- package/dist/config/workflow-loader.d.ts +0 -90
- package/dist/config/workflow-loader.d.ts.map +0 -1
- package/dist/config/workflow-loader.js +0 -167
- package/dist/config/workflow-loader.js.map +0 -1
- package/dist/extractor/doc-extractor.d.ts +0 -233
- package/dist/extractor/doc-extractor.d.ts.map +0 -1
- package/dist/extractor/doc-extractor.js +0 -481
- package/dist/extractor/doc-extractor.js.map +0 -1
- package/dist/extractor/dual-source-extractor.d.ts +0 -161
- package/dist/extractor/dual-source-extractor.d.ts.map +0 -1
- package/dist/extractor/dual-source-extractor.js +0 -407
- package/dist/extractor/dual-source-extractor.js.map +0 -1
- package/dist/extractor/gherkin-extractor.d.ts +0 -170
- package/dist/extractor/gherkin-extractor.d.ts.map +0 -1
- package/dist/extractor/gherkin-extractor.js +0 -543
- package/dist/extractor/gherkin-extractor.js.map +0 -1
- package/dist/extractor/index.d.ts +0 -7
- package/dist/extractor/index.d.ts.map +0 -1
- package/dist/extractor/index.js +0 -11
- package/dist/extractor/index.js.map +0 -1
- package/dist/extractor/layer-inference.d.ts +0 -66
- package/dist/extractor/layer-inference.d.ts.map +0 -1
- package/dist/extractor/layer-inference.js +0 -93
- package/dist/extractor/layer-inference.js.map +0 -1
- package/dist/extractor/shape-extractor.d.ts +0 -79
- package/dist/extractor/shape-extractor.d.ts.map +0 -1
- package/dist/extractor/shape-extractor.js +0 -966
- package/dist/extractor/shape-extractor.js.map +0 -1
- package/dist/generators/built-in/codec-generators.d.ts +0 -29
- package/dist/generators/built-in/decision-doc-generator.d.ts +0 -204
- package/dist/generators/built-in/decision-doc-generator.js +0 -654
- package/dist/generators/built-in/decision-doc-generator.js.map +0 -1
- package/dist/generators/built-in/design-review-generator.d.ts +0 -26
- package/dist/generators/built-in/design-review-generator.js +0 -94
- package/dist/generators/built-in/design-review-generator.js.map +0 -1
- package/dist/generators/built-in/index.d.ts +0 -22
- package/dist/generators/built-in/index.js +0 -23
- package/dist/generators/built-in/index.js.map +0 -1
- package/dist/generators/built-in/process-api-reference-generator.d.ts +0 -18
- package/dist/generators/built-in/process-api-reference-generator.d.ts.map +0 -1
- package/dist/generators/built-in/process-api-reference-generator.js.map +0 -1
- package/dist/generators/built-in/reference-generators.d.ts +0 -51
- package/dist/generators/built-in/reference-generators.js +0 -320
- package/dist/generators/built-in/reference-generators.js.map +0 -1
- package/dist/generators/codec-based.d.ts +0 -63
- package/dist/generators/codec-based.js +0 -88
- package/dist/generators/codec-based.js.map +0 -1
- package/dist/generators/content-deduplicator.d.ts +0 -114
- package/dist/generators/content-deduplicator.d.ts.map +0 -1
- package/dist/generators/content-deduplicator.js +0 -356
- package/dist/generators/content-deduplicator.js.map +0 -1
- package/dist/generators/index.d.ts +0 -50
- package/dist/generators/index.js +0 -54
- package/dist/generators/index.js.map +0 -1
- package/dist/generators/orchestrator.d.ts +0 -265
- package/dist/generators/orchestrator.js +0 -570
- package/dist/generators/orchestrator.js.map +0 -1
- package/dist/generators/pipeline/context-inference.d.ts +0 -55
- package/dist/generators/pipeline/context-inference.d.ts.map +0 -1
- package/dist/generators/pipeline/context-inference.js +0 -76
- package/dist/generators/pipeline/context-inference.js.map +0 -1
- package/dist/generators/pipeline/index.d.ts +0 -27
- package/dist/generators/pipeline/index.js +0 -34
- package/dist/generators/pipeline/index.js.map +0 -1
- package/dist/generators/pipeline/merge-patterns.d.ts +0 -33
- package/dist/generators/pipeline/merge-patterns.d.ts.map +0 -1
- package/dist/generators/pipeline/merge-patterns.js +0 -50
- package/dist/generators/pipeline/merge-patterns.js.map +0 -1
- package/dist/generators/pipeline/relationship-resolver.d.ts +0 -47
- package/dist/generators/pipeline/relationship-resolver.d.ts.map +0 -1
- package/dist/generators/pipeline/relationship-resolver.js +0 -132
- package/dist/generators/pipeline/relationship-resolver.js.map +0 -1
- package/dist/generators/pipeline/sequence-utils.d.ts +0 -49
- package/dist/generators/pipeline/sequence-utils.d.ts.map +0 -1
- package/dist/generators/pipeline/sequence-utils.js +0 -235
- package/dist/generators/pipeline/sequence-utils.js.map +0 -1
- package/dist/generators/pipeline/transform-dataset.d.ts +0 -82
- package/dist/generators/pipeline/transform-dataset.d.ts.map +0 -1
- package/dist/generators/pipeline/transform-dataset.js +0 -355
- package/dist/generators/pipeline/transform-dataset.js.map +0 -1
- package/dist/generators/pipeline/transform-types.d.ts +0 -96
- package/dist/generators/pipeline/transform-types.d.ts.map +0 -1
- package/dist/generators/pipeline/transform-types.js +0 -18
- package/dist/generators/pipeline/transform-types.js.map +0 -1
- package/dist/generators/registry.d.ts +0 -64
- package/dist/generators/registry.js +0 -77
- package/dist/generators/registry.js.map +0 -1
- package/dist/generators/source-mapper.d.ts +0 -143
- package/dist/generators/source-mapper.d.ts.map +0 -1
- package/dist/generators/source-mapper.js +0 -602
- package/dist/generators/source-mapper.js.map +0 -1
- package/dist/generators/source-mapping-validator.d.ts +0 -118
- package/dist/generators/source-mapping-validator.d.ts.map +0 -1
- package/dist/generators/source-mapping-validator.js +0 -334
- package/dist/generators/source-mapping-validator.js.map +0 -1
- package/dist/generators/types.d.ts +0 -104
- package/dist/generators/types.js +0 -5
- package/dist/generators/types.js.map +0 -1
- package/dist/generators/warning-collector.d.ts +0 -144
- package/dist/generators/warning-collector.d.ts.map +0 -1
- package/dist/generators/warning-collector.js +0 -166
- package/dist/generators/warning-collector.js.map +0 -1
- package/dist/git/branch-diff.d.ts +0 -44
- package/dist/git/branch-diff.d.ts.map +0 -1
- package/dist/git/branch-diff.js +0 -57
- package/dist/git/branch-diff.js.map +0 -1
- package/dist/git/helpers.d.ts +0 -46
- package/dist/git/helpers.d.ts.map +0 -1
- package/dist/git/helpers.js +0 -67
- package/dist/git/helpers.js.map +0 -1
- package/dist/git/index.d.ts +0 -18
- package/dist/git/index.d.ts.map +0 -1
- package/dist/git/index.js +0 -18
- package/dist/git/index.js.map +0 -1
- package/dist/git/name-status.d.ts +0 -32
- package/dist/git/name-status.d.ts.map +0 -1
- package/dist/git/name-status.js +0 -66
- package/dist/git/name-status.js.map +0 -1
- package/dist/index.d.ts +0 -107
- package/dist/index.js +0 -122
- package/dist/index.js.map +0 -1
- package/dist/lint/engine.d.ts +0 -113
- package/dist/lint/engine.d.ts.map +0 -1
- package/dist/lint/engine.js +0 -228
- package/dist/lint/engine.js.map +0 -1
- package/dist/lint/index.d.ts +0 -26
- package/dist/lint/index.d.ts.map +0 -1
- package/dist/lint/index.js +0 -24
- package/dist/lint/index.js.map +0 -1
- package/dist/lint/process-guard/decider.d.ts +0 -166
- package/dist/lint/process-guard/decider.d.ts.map +0 -1
- package/dist/lint/process-guard/decider.js +0 -412
- package/dist/lint/process-guard/decider.js.map +0 -1
- package/dist/lint/process-guard/derive-state.d.ts +0 -96
- package/dist/lint/process-guard/derive-state.d.ts.map +0 -1
- package/dist/lint/process-guard/derive-state.js +0 -368
- package/dist/lint/process-guard/derive-state.js.map +0 -1
- package/dist/lint/process-guard/detect-changes.d.ts +0 -109
- package/dist/lint/process-guard/detect-changes.d.ts.map +0 -1
- package/dist/lint/process-guard/detect-changes.js +0 -487
- package/dist/lint/process-guard/detect-changes.js.map +0 -1
- package/dist/lint/process-guard/index.d.ts +0 -35
- package/dist/lint/process-guard/index.d.ts.map +0 -1
- package/dist/lint/process-guard/index.js +0 -39
- package/dist/lint/process-guard/index.js.map +0 -1
- package/dist/lint/process-guard/types.d.ts +0 -255
- package/dist/lint/process-guard/types.d.ts.map +0 -1
- package/dist/lint/process-guard/types.js +0 -31
- package/dist/lint/process-guard/types.js.map +0 -1
- package/dist/lint/rules.d.ts +0 -147
- package/dist/lint/rules.d.ts.map +0 -1
- package/dist/lint/rules.js +0 -289
- package/dist/lint/rules.js.map +0 -1
- package/dist/lint/steps/cross-checks.d.ts +0 -66
- package/dist/lint/steps/cross-checks.d.ts.map +0 -1
- package/dist/lint/steps/cross-checks.js +0 -290
- package/dist/lint/steps/cross-checks.js.map +0 -1
- package/dist/lint/steps/feature-checks.d.ts +0 -78
- package/dist/lint/steps/feature-checks.d.ts.map +0 -1
- package/dist/lint/steps/feature-checks.js +0 -279
- package/dist/lint/steps/feature-checks.js.map +0 -1
- package/dist/lint/steps/index.d.ts +0 -22
- package/dist/lint/steps/index.d.ts.map +0 -1
- package/dist/lint/steps/index.js +0 -26
- package/dist/lint/steps/index.js.map +0 -1
- package/dist/lint/steps/pair-resolver.d.ts +0 -29
- package/dist/lint/steps/pair-resolver.d.ts.map +0 -1
- package/dist/lint/steps/pair-resolver.js +0 -76
- package/dist/lint/steps/pair-resolver.js.map +0 -1
- package/dist/lint/steps/runner.d.ts +0 -28
- package/dist/lint/steps/runner.d.ts.map +0 -1
- package/dist/lint/steps/runner.js +0 -143
- package/dist/lint/steps/runner.js.map +0 -1
- package/dist/lint/steps/step-checks.d.ts +0 -41
- package/dist/lint/steps/step-checks.d.ts.map +0 -1
- package/dist/lint/steps/step-checks.js +0 -164
- package/dist/lint/steps/step-checks.js.map +0 -1
- package/dist/lint/steps/types.d.ts +0 -95
- package/dist/lint/steps/types.d.ts.map +0 -1
- package/dist/lint/steps/types.js +0 -79
- package/dist/lint/steps/types.js.map +0 -1
- package/dist/lint/steps/utils.d.ts +0 -22
- package/dist/lint/steps/utils.d.ts.map +0 -1
- package/dist/lint/steps/utils.js +0 -57
- package/dist/lint/steps/utils.js.map +0 -1
- package/dist/mcp/file-watcher.d.ts +0 -24
- package/dist/mcp/file-watcher.js +0 -75
- package/dist/mcp/file-watcher.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -19
- package/dist/mcp/index.js +0 -21
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/pipeline-session.d.ts +0 -33
- package/dist/mcp/pipeline-session.js +0 -149
- package/dist/mcp/pipeline-session.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -28
- package/dist/mcp/server.js +0 -197
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/tool-registry.d.ts +0 -4
- package/dist/mcp/tool-registry.js +0 -525
- package/dist/mcp/tool-registry.js.map +0 -1
- package/dist/renderable/codecs/adr.d.ts +0 -4730
- package/dist/renderable/codecs/adr.d.ts.map +0 -1
- package/dist/renderable/codecs/adr.js +0 -590
- package/dist/renderable/codecs/adr.js.map +0 -1
- package/dist/renderable/codecs/architecture.d.ts +0 -4760
- package/dist/renderable/codecs/architecture.d.ts.map +0 -1
- package/dist/renderable/codecs/architecture.js +0 -524
- package/dist/renderable/codecs/architecture.js.map +0 -1
- package/dist/renderable/codecs/business-rules.d.ts +0 -4777
- package/dist/renderable/codecs/business-rules.d.ts.map +0 -1
- package/dist/renderable/codecs/business-rules.js +0 -648
- package/dist/renderable/codecs/business-rules.js.map +0 -1
- package/dist/renderable/codecs/claude-module.d.ts +0 -4710
- package/dist/renderable/codecs/claude-module.d.ts.map +0 -1
- package/dist/renderable/codecs/claude-module.js +0 -214
- package/dist/renderable/codecs/claude-module.js.map +0 -1
- package/dist/renderable/codecs/composite.d.ts +0 -84
- package/dist/renderable/codecs/composite.d.ts.map +0 -1
- package/dist/renderable/codecs/composite.js +0 -124
- package/dist/renderable/codecs/composite.js.map +0 -1
- package/dist/renderable/codecs/convention-extractor.d.ts +0 -105
- package/dist/renderable/codecs/convention-extractor.d.ts.map +0 -1
- package/dist/renderable/codecs/convention-extractor.js +0 -353
- package/dist/renderable/codecs/convention-extractor.js.map +0 -1
- package/dist/renderable/codecs/decision-doc.d.ts +0 -308
- package/dist/renderable/codecs/decision-doc.d.ts.map +0 -1
- package/dist/renderable/codecs/decision-doc.js +0 -485
- package/dist/renderable/codecs/decision-doc.js.map +0 -1
- package/dist/renderable/codecs/design-review.d.ts +0 -55
- package/dist/renderable/codecs/design-review.d.ts.map +0 -1
- package/dist/renderable/codecs/design-review.js +0 -532
- package/dist/renderable/codecs/design-review.js.map +0 -1
- package/dist/renderable/codecs/diagram-utils.d.ts +0 -62
- package/dist/renderable/codecs/diagram-utils.d.ts.map +0 -1
- package/dist/renderable/codecs/diagram-utils.js +0 -70
- package/dist/renderable/codecs/diagram-utils.js.map +0 -1
- package/dist/renderable/codecs/helpers.d.ts +0 -553
- package/dist/renderable/codecs/helpers.d.ts.map +0 -1
- package/dist/renderable/codecs/helpers.js +0 -913
- package/dist/renderable/codecs/helpers.js.map +0 -1
- package/dist/renderable/codecs/index-codec.d.ts +0 -4714
- package/dist/renderable/codecs/index.d.ts +0 -46
- package/dist/renderable/codecs/index.d.ts.map +0 -1
- package/dist/renderable/codecs/index.js +0 -70
- package/dist/renderable/codecs/index.js.map +0 -1
- package/dist/renderable/codecs/patterns.d.ts +0 -4757
- package/dist/renderable/codecs/patterns.d.ts.map +0 -1
- package/dist/renderable/codecs/patterns.js +0 -462
- package/dist/renderable/codecs/patterns.js.map +0 -1
- package/dist/renderable/codecs/planning.d.ts +0 -14055
- package/dist/renderable/codecs/planning.d.ts.map +0 -1
- package/dist/renderable/codecs/planning.js +0 -449
- package/dist/renderable/codecs/planning.js.map +0 -1
- package/dist/renderable/codecs/pr-changes.d.ts +0 -4742
- package/dist/renderable/codecs/pr-changes.d.ts.map +0 -1
- package/dist/renderable/codecs/pr-changes.js +0 -425
- package/dist/renderable/codecs/pr-changes.js.map +0 -1
- package/dist/renderable/codecs/reference.d.ts +0 -215
- package/dist/renderable/codecs/reference.d.ts.map +0 -1
- package/dist/renderable/codecs/reference.js +0 -1578
- package/dist/renderable/codecs/reference.js.map +0 -1
- package/dist/renderable/codecs/reporting.d.ts +0 -14026
- package/dist/renderable/codecs/reporting.d.ts.map +0 -1
- package/dist/renderable/codecs/reporting.js +0 -365
- package/dist/renderable/codecs/reporting.js.map +0 -1
- package/dist/renderable/codecs/requirements.d.ts +0 -4743
- package/dist/renderable/codecs/requirements.d.ts.map +0 -1
- package/dist/renderable/codecs/requirements.js +0 -428
- package/dist/renderable/codecs/requirements.js.map +0 -1
- package/dist/renderable/codecs/session.d.ts +0 -9410
- package/dist/renderable/codecs/session.d.ts.map +0 -1
- package/dist/renderable/codecs/session.js +0 -848
- package/dist/renderable/codecs/session.js.map +0 -1
- package/dist/renderable/codecs/shape-matcher.d.ts +0 -54
- package/dist/renderable/codecs/shape-matcher.d.ts.map +0 -1
- package/dist/renderable/codecs/shape-matcher.js +0 -106
- package/dist/renderable/codecs/shape-matcher.js.map +0 -1
- package/dist/renderable/codecs/shared-schema.d.ts +0 -44
- package/dist/renderable/codecs/shared-schema.d.ts.map +0 -1
- package/dist/renderable/codecs/shared-schema.js +0 -43
- package/dist/renderable/codecs/shared-schema.js.map +0 -1
- package/dist/renderable/codecs/taxonomy.d.ts +0 -4733
- package/dist/renderable/codecs/taxonomy.d.ts.map +0 -1
- package/dist/renderable/codecs/taxonomy.js +0 -570
- package/dist/renderable/codecs/taxonomy.js.map +0 -1
- package/dist/renderable/codecs/timeline.d.ts +0 -14094
- package/dist/renderable/codecs/timeline.d.ts.map +0 -1
- package/dist/renderable/codecs/timeline.js +0 -906
- package/dist/renderable/codecs/timeline.js.map +0 -1
- package/dist/renderable/codecs/types/base.d.ts +0 -81
- package/dist/renderable/codecs/types/base.d.ts.map +0 -1
- package/dist/renderable/codecs/types/base.js +0 -56
- package/dist/renderable/codecs/types/base.js.map +0 -1
- package/dist/renderable/codecs/types/index.d.ts +0 -5
- package/dist/renderable/codecs/types/index.d.ts.map +0 -1
- package/dist/renderable/codecs/types/index.js +0 -5
- package/dist/renderable/codecs/types/index.js.map +0 -1
- package/dist/renderable/codecs/validation-rules.d.ts +0 -4773
- package/dist/renderable/codecs/validation-rules.d.ts.map +0 -1
- package/dist/renderable/codecs/validation-rules.js +0 -537
- package/dist/renderable/codecs/validation-rules.js.map +0 -1
- package/dist/renderable/generate.d.ts +0 -338
- package/dist/renderable/generate.d.ts.map +0 -1
- package/dist/renderable/generate.js +0 -437
- package/dist/renderable/generate.js.map +0 -1
- package/dist/renderable/index.d.ts +0 -36
- package/dist/renderable/index.d.ts.map +0 -1
- package/dist/renderable/index.js +0 -58
- package/dist/renderable/index.js.map +0 -1
- package/dist/renderable/load-preamble.d.ts +0 -56
- package/dist/renderable/load-preamble.d.ts.map +0 -1
- package/dist/renderable/load-preamble.js +0 -298
- package/dist/renderable/load-preamble.js.map +0 -1
- package/dist/renderable/render.d.ts +0 -61
- package/dist/renderable/render.d.ts.map +0 -1
- package/dist/renderable/render.js +0 -346
- package/dist/renderable/render.js.map +0 -1
- package/dist/renderable/schema.d.ts +0 -194
- package/dist/renderable/schema.d.ts.map +0 -1
- package/dist/renderable/schema.js +0 -197
- package/dist/renderable/schema.js.map +0 -1
- package/dist/renderable/utils.d.ts +0 -146
- package/dist/renderable/utils.d.ts.map +0 -1
- package/dist/renderable/utils.js +0 -362
- package/dist/renderable/utils.js.map +0 -1
- package/dist/scanner/ast-parser.d.ts +0 -75
- package/dist/scanner/ast-parser.d.ts.map +0 -1
- package/dist/scanner/ast-parser.js +0 -835
- package/dist/scanner/ast-parser.js.map +0 -1
- package/dist/scanner/gherkin-ast-parser.d.ts +0 -166
- package/dist/scanner/gherkin-ast-parser.d.ts.map +0 -1
- package/dist/scanner/gherkin-ast-parser.js +0 -507
- package/dist/scanner/gherkin-ast-parser.js.map +0 -1
- package/dist/scanner/gherkin-scanner.d.ts +0 -106
- package/dist/scanner/gherkin-scanner.d.ts.map +0 -1
- package/dist/scanner/gherkin-scanner.js +0 -149
- package/dist/scanner/gherkin-scanner.js.map +0 -1
- package/dist/scanner/index.d.ts +0 -85
- package/dist/scanner/index.d.ts.map +0 -1
- package/dist/scanner/index.js +0 -102
- package/dist/scanner/index.js.map +0 -1
- package/dist/scanner/pattern-scanner.d.ts +0 -83
- package/dist/scanner/pattern-scanner.d.ts.map +0 -1
- package/dist/scanner/pattern-scanner.js +0 -110
- package/dist/scanner/pattern-scanner.js.map +0 -1
- package/dist/taxonomy/categories.d.ts +0 -47
- package/dist/taxonomy/categories.d.ts.map +0 -1
- package/dist/taxonomy/categories.js +0 -175
- package/dist/taxonomy/categories.js.map +0 -1
- package/dist/taxonomy/claude-section-values.d.ts +0 -12
- package/dist/taxonomy/claude-section-values.d.ts.map +0 -1
- package/dist/taxonomy/claude-section-values.js +0 -17
- package/dist/taxonomy/claude-section-values.js.map +0 -1
- package/dist/taxonomy/conventions.d.ts +0 -13
- package/dist/taxonomy/conventions.d.ts.map +0 -1
- package/dist/taxonomy/conventions.js +0 -27
- package/dist/taxonomy/conventions.js.map +0 -1
- package/dist/taxonomy/deliverable-status.d.ts +0 -99
- package/dist/taxonomy/deliverable-status.d.ts.map +0 -1
- package/dist/taxonomy/deliverable-status.js +0 -131
- package/dist/taxonomy/deliverable-status.js.map +0 -1
- package/dist/taxonomy/format-types.d.ts +0 -17
- package/dist/taxonomy/format-types.d.ts.map +0 -1
- package/dist/taxonomy/format-types.js +0 -23
- package/dist/taxonomy/format-types.js.map +0 -1
- package/dist/taxonomy/generator-options.d.ts +0 -67
- package/dist/taxonomy/generator-options.d.ts.map +0 -1
- package/dist/taxonomy/generator-options.js +0 -75
- package/dist/taxonomy/generator-options.js.map +0 -1
- package/dist/taxonomy/hierarchy-levels.d.ts +0 -23
- package/dist/taxonomy/hierarchy-levels.d.ts.map +0 -1
- package/dist/taxonomy/hierarchy-levels.js +0 -22
- package/dist/taxonomy/hierarchy-levels.js.map +0 -1
- package/dist/taxonomy/index.d.ts +0 -35
- package/dist/taxonomy/index.d.ts.map +0 -1
- package/dist/taxonomy/index.js +0 -56
- package/dist/taxonomy/index.js.map +0 -1
- package/dist/taxonomy/layer-types.d.ts +0 -22
- package/dist/taxonomy/layer-types.d.ts.map +0 -1
- package/dist/taxonomy/layer-types.js +0 -28
- package/dist/taxonomy/layer-types.js.map +0 -1
- package/dist/taxonomy/normalized-status.d.ts +0 -99
- package/dist/taxonomy/normalized-status.d.ts.map +0 -1
- package/dist/taxonomy/normalized-status.js +0 -113
- package/dist/taxonomy/normalized-status.js.map +0 -1
- package/dist/taxonomy/registry-builder.d.ts +0 -104
- package/dist/taxonomy/registry-builder.d.ts.map +0 -1
- package/dist/taxonomy/registry-builder.js +0 -561
- package/dist/taxonomy/registry-builder.js.map +0 -1
- package/dist/taxonomy/risk-levels.d.ts +0 -16
- package/dist/taxonomy/risk-levels.d.ts.map +0 -1
- package/dist/taxonomy/risk-levels.js +0 -15
- package/dist/taxonomy/risk-levels.js.map +0 -1
- package/dist/taxonomy/severity-types.d.ts +0 -6
- package/dist/taxonomy/severity-types.d.ts.map +0 -1
- package/dist/taxonomy/severity-types.js +0 -5
- package/dist/taxonomy/severity-types.js.map +0 -1
- package/dist/taxonomy/status-values.d.ts +0 -39
- package/dist/taxonomy/status-values.d.ts.map +0 -1
- package/dist/taxonomy/status-values.js +0 -42
- package/dist/taxonomy/status-values.js.map +0 -1
- package/dist/types/branded.d.ts +0 -89
- package/dist/types/branded.d.ts.map +0 -1
- package/dist/types/branded.js +0 -57
- package/dist/types/branded.js.map +0 -1
- package/dist/types/errors.d.ts +0 -342
- package/dist/types/errors.d.ts.map +0 -1
- package/dist/types/errors.js +0 -251
- package/dist/types/errors.js.map +0 -1
- package/dist/types/index.d.ts +0 -41
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -5
- package/dist/types/index.js.map +0 -1
- package/dist/types/result.d.ts +0 -78
- package/dist/types/result.d.ts.map +0 -1
- package/dist/types/result.js +0 -78
- package/dist/types/result.js.map +0 -1
- package/dist/utils/collection-utils.d.ts +0 -49
- package/dist/utils/collection-utils.d.ts.map +0 -1
- package/dist/utils/collection-utils.js +0 -58
- package/dist/utils/collection-utils.js.map +0 -1
- package/dist/utils/id-utils.d.ts +0 -46
- package/dist/utils/id-utils.d.ts.map +0 -1
- package/dist/utils/id-utils.js +0 -51
- package/dist/utils/id-utils.js.map +0 -1
- package/dist/utils/index.d.ts +0 -21
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -21
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/string-utils.d.ts +0 -150
- package/dist/utils/string-utils.d.ts.map +0 -1
- package/dist/utils/string-utils.js +0 -281
- package/dist/utils/string-utils.js.map +0 -1
- package/dist/validation/anti-patterns.d.ts +0 -134
- package/dist/validation/anti-patterns.d.ts.map +0 -1
- package/dist/validation/anti-patterns.js +0 -307
- package/dist/validation/anti-patterns.js.map +0 -1
- package/dist/validation/dod-validator.d.ts +0 -94
- package/dist/validation/dod-validator.d.ts.map +0 -1
- package/dist/validation/dod-validator.js +0 -198
- package/dist/validation/dod-validator.js.map +0 -1
- package/dist/validation/fsm/index.d.ts +0 -59
- package/dist/validation/fsm/index.d.ts.map +0 -1
- package/dist/validation/fsm/index.js +0 -64
- package/dist/validation/fsm/index.js.map +0 -1
- package/dist/validation/fsm/states.d.ts +0 -93
- package/dist/validation/fsm/states.d.ts.map +0 -1
- package/dist/validation/fsm/states.js +0 -98
- package/dist/validation/fsm/states.js.map +0 -1
- package/dist/validation/fsm/transitions.d.ts +0 -100
- package/dist/validation/fsm/transitions.d.ts.map +0 -1
- package/dist/validation/fsm/transitions.js +0 -122
- package/dist/validation/fsm/transitions.js.map +0 -1
- package/dist/validation/fsm/validator.d.ts +0 -163
- package/dist/validation/fsm/validator.d.ts.map +0 -1
- package/dist/validation/fsm/validator.js +0 -205
- package/dist/validation/fsm/validator.js.map +0 -1
- package/dist/validation/index.d.ts +0 -23
- package/dist/validation/index.d.ts.map +0 -1
- package/dist/validation/index.js +0 -25
- package/dist/validation/index.js.map +0 -1
- package/dist/validation/types.d.ts +0 -136
- package/dist/validation/types.d.ts.map +0 -1
- package/dist/validation/types.js +0 -56
- package/dist/validation/types.js.map +0 -1
- package/dist/validation-schemas/codec-utils.d.ts +0 -188
- package/dist/validation-schemas/codec-utils.d.ts.map +0 -1
- package/dist/validation-schemas/codec-utils.js +0 -258
- package/dist/validation-schemas/codec-utils.js.map +0 -1
- package/dist/validation-schemas/config.d.ts +0 -99
- package/dist/validation-schemas/config.d.ts.map +0 -1
- package/dist/validation-schemas/config.js +0 -178
- package/dist/validation-schemas/config.js.map +0 -1
- package/dist/validation-schemas/doc-directive.d.ts +0 -195
- package/dist/validation-schemas/doc-directive.d.ts.map +0 -1
- package/dist/validation-schemas/doc-directive.js +0 -239
- package/dist/validation-schemas/doc-directive.js.map +0 -1
- package/dist/validation-schemas/dual-source.d.ts +0 -167
- package/dist/validation-schemas/dual-source.d.ts.map +0 -1
- package/dist/validation-schemas/dual-source.js +0 -168
- package/dist/validation-schemas/dual-source.js.map +0 -1
- package/dist/validation-schemas/export-info.d.ts +0 -53
- package/dist/validation-schemas/export-info.d.ts.map +0 -1
- package/dist/validation-schemas/export-info.js +0 -101
- package/dist/validation-schemas/export-info.js.map +0 -1
- package/dist/validation-schemas/extracted-pattern.d.ts +0 -351
- package/dist/validation-schemas/extracted-pattern.d.ts.map +0 -1
- package/dist/validation-schemas/extracted-pattern.js +0 -459
- package/dist/validation-schemas/extracted-pattern.js.map +0 -1
- package/dist/validation-schemas/extracted-shape.d.ts +0 -200
- package/dist/validation-schemas/extracted-shape.d.ts.map +0 -1
- package/dist/validation-schemas/extracted-shape.js +0 -182
- package/dist/validation-schemas/extracted-shape.js.map +0 -1
- package/dist/validation-schemas/feature.d.ts +0 -554
- package/dist/validation-schemas/feature.d.ts.map +0 -1
- package/dist/validation-schemas/feature.js +0 -262
- package/dist/validation-schemas/feature.js.map +0 -1
- package/dist/validation-schemas/index.d.ts +0 -15
- package/dist/validation-schemas/index.d.ts.map +0 -1
- package/dist/validation-schemas/index.js +0 -32
- package/dist/validation-schemas/index.js.map +0 -1
- package/dist/validation-schemas/lint.d.ts +0 -46
- package/dist/validation-schemas/lint.d.ts.map +0 -1
- package/dist/validation-schemas/lint.js +0 -45
- package/dist/validation-schemas/lint.js.map +0 -1
- package/dist/validation-schemas/master-dataset.d.ts +0 -8299
- package/dist/validation-schemas/master-dataset.d.ts.map +0 -1
- package/dist/validation-schemas/master-dataset.js +0 -275
- package/dist/validation-schemas/master-dataset.js.map +0 -1
- package/dist/validation-schemas/output-schemas.d.ts +0 -183
- package/dist/validation-schemas/output-schemas.d.ts.map +0 -1
- package/dist/validation-schemas/output-schemas.js +0 -149
- package/dist/validation-schemas/output-schemas.js.map +0 -1
- package/dist/validation-schemas/scenario-ref.d.ts +0 -80
- package/dist/validation-schemas/scenario-ref.d.ts.map +0 -1
- package/dist/validation-schemas/scenario-ref.js +0 -73
- package/dist/validation-schemas/scenario-ref.js.map +0 -1
- package/dist/validation-schemas/tag-registry.d.ts +0 -210
- package/dist/validation-schemas/tag-registry.d.ts.map +0 -1
- package/dist/validation-schemas/tag-registry.js +0 -248
- package/dist/validation-schemas/tag-registry.js.map +0 -1
- package/dist/validation-schemas/workflow-config.d.ts +0 -125
- package/dist/validation-schemas/workflow-config.d.ts.map +0 -1
- package/dist/validation-schemas/workflow-config.js +0 -138
- package/dist/validation-schemas/workflow-config.js.map +0 -1
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Orchestrator for vitest-cucumber step lint checks.
|
|
3
|
-
*
|
|
4
|
-
* Discovers feature and step files, pairs them, runs all checks,
|
|
5
|
-
* and returns a LintSummary compatible with the existing lint engine.
|
|
6
|
-
*/
|
|
7
|
-
import { readFileSync } from 'fs';
|
|
8
|
-
import { globSync } from 'glob';
|
|
9
|
-
import { runFeatureChecks } from './feature-checks.js';
|
|
10
|
-
import { runStepChecks } from './step-checks.js';
|
|
11
|
-
import { runCrossChecks } from './cross-checks.js';
|
|
12
|
-
import { resolveFeatureStepPairs } from './pair-resolver.js';
|
|
13
|
-
/**
|
|
14
|
-
* Default scan paths relative to baseDir
|
|
15
|
-
*/
|
|
16
|
-
const DEFAULT_FEATURE_GLOBS = [
|
|
17
|
-
'tests/features/**/*.feature',
|
|
18
|
-
'architect/specs/**/*.feature',
|
|
19
|
-
'architect/decisions/**/*.feature',
|
|
20
|
-
];
|
|
21
|
-
const DEFAULT_STEP_GLOBS = ['tests/steps/**/*.steps.ts'];
|
|
22
|
-
/**
|
|
23
|
-
* Run all step lint checks and return a LintSummary.
|
|
24
|
-
*
|
|
25
|
-
* Executes three categories of checks:
|
|
26
|
-
* 1. Feature-only checks on all .feature files
|
|
27
|
-
* 2. Step-only checks on all .steps.ts files
|
|
28
|
-
* 3. Cross-file checks on paired feature+step files
|
|
29
|
-
*/
|
|
30
|
-
export function runStepLint(options = {}) {
|
|
31
|
-
const baseDir = options.baseDir ?? process.cwd();
|
|
32
|
-
const featureGlobs = options.featureGlobs ?? DEFAULT_FEATURE_GLOBS;
|
|
33
|
-
const stepGlobs = options.stepGlobs ?? DEFAULT_STEP_GLOBS;
|
|
34
|
-
// Discover files
|
|
35
|
-
const featureFiles = discoverFiles(featureGlobs, baseDir);
|
|
36
|
-
const stepFiles = discoverFiles(stepGlobs, baseDir);
|
|
37
|
-
// Collect all violations keyed by file path
|
|
38
|
-
const violationsByFile = new Map();
|
|
39
|
-
function addViolations(filePath, violations) {
|
|
40
|
-
for (const v of violations) {
|
|
41
|
-
const existing = violationsByFile.get(filePath);
|
|
42
|
-
if (existing !== undefined) {
|
|
43
|
-
existing.push(v);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
violationsByFile.set(filePath, [v]);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// Phase 1: Feature-only checks
|
|
51
|
-
for (const featurePath of featureFiles) {
|
|
52
|
-
const content = readFileSafe(featurePath);
|
|
53
|
-
if (content === null)
|
|
54
|
-
continue;
|
|
55
|
-
addViolations(featurePath, runFeatureChecks(content, featurePath));
|
|
56
|
-
}
|
|
57
|
-
// Phase 2: Step-only checks
|
|
58
|
-
for (const stepPath of stepFiles) {
|
|
59
|
-
const content = readFileSafe(stepPath);
|
|
60
|
-
if (content === null)
|
|
61
|
-
continue;
|
|
62
|
-
addViolations(stepPath, runStepChecks(content, stepPath));
|
|
63
|
-
}
|
|
64
|
-
// Phase 3: Cross-file checks
|
|
65
|
-
const { pairs, warnings } = resolveFeatureStepPairs(stepFiles, baseDir);
|
|
66
|
-
// Add pairing warnings
|
|
67
|
-
for (const w of warnings) {
|
|
68
|
-
addViolations(w.file, [w]);
|
|
69
|
-
}
|
|
70
|
-
for (const { featurePath, stepPath } of pairs) {
|
|
71
|
-
const featureContent = readFileSafe(featurePath);
|
|
72
|
-
const stepContent = readFileSafe(stepPath);
|
|
73
|
-
if (featureContent === null || stepContent === null)
|
|
74
|
-
continue;
|
|
75
|
-
const crossViolations = runCrossChecks(featureContent, stepContent, stepPath, featurePath);
|
|
76
|
-
// Cross-check violations may reference either the step file or the feature file.
|
|
77
|
-
// Group each violation under its own reported file path.
|
|
78
|
-
for (const v of crossViolations) {
|
|
79
|
-
addViolations(v.file, [v]);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
// Build LintSummary
|
|
83
|
-
return buildSummary(violationsByFile, featureFiles.length + stepFiles.length);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Discover files matching glob patterns relative to baseDir.
|
|
87
|
-
*/
|
|
88
|
-
function discoverFiles(patterns, baseDir) {
|
|
89
|
-
const files = [];
|
|
90
|
-
for (const pattern of patterns) {
|
|
91
|
-
const matches = globSync(pattern, { cwd: baseDir, absolute: true });
|
|
92
|
-
files.push(...matches);
|
|
93
|
-
}
|
|
94
|
-
// Deduplicate (in case patterns overlap)
|
|
95
|
-
return [...new Set(files)].sort();
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Read a file safely, returning null on failure.
|
|
99
|
-
*/
|
|
100
|
-
function readFileSafe(filePath) {
|
|
101
|
-
try {
|
|
102
|
-
return readFileSync(filePath, 'utf-8');
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Build a LintSummary from collected violations.
|
|
110
|
-
*/
|
|
111
|
-
function buildSummary(violationsByFile, filesScanned) {
|
|
112
|
-
const results = [];
|
|
113
|
-
let errorCount = 0;
|
|
114
|
-
let warningCount = 0;
|
|
115
|
-
let infoCount = 0;
|
|
116
|
-
for (const [file, violations] of violationsByFile) {
|
|
117
|
-
if (violations.length === 0)
|
|
118
|
-
continue;
|
|
119
|
-
results.push({ file, violations });
|
|
120
|
-
for (const v of violations) {
|
|
121
|
-
switch (v.severity) {
|
|
122
|
-
case 'error':
|
|
123
|
-
errorCount++;
|
|
124
|
-
break;
|
|
125
|
-
case 'warning':
|
|
126
|
-
warningCount++;
|
|
127
|
-
break;
|
|
128
|
-
case 'info':
|
|
129
|
-
infoCount++;
|
|
130
|
-
break;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return {
|
|
135
|
-
results,
|
|
136
|
-
errorCount,
|
|
137
|
-
warningCount,
|
|
138
|
-
infoCount,
|
|
139
|
-
filesScanned,
|
|
140
|
-
directivesChecked: filesScanned, // Each file is one "unit" checked
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=runner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/lint/steps/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Step-definition-only lint checks for vitest-cucumber compatibility.
|
|
3
|
-
*
|
|
4
|
-
* These checks scan .steps.ts files for patterns that vitest-cucumber
|
|
5
|
-
* does not support, without needing the corresponding .feature file.
|
|
6
|
-
*/
|
|
7
|
-
import type { LintViolation } from '../../validation-schemas/lint.js';
|
|
8
|
-
/**
|
|
9
|
-
* Check 5: Detect regex patterns in step definitions.
|
|
10
|
-
*
|
|
11
|
-
* vitest-cucumber only supports string patterns with {string}/{int}.
|
|
12
|
-
* Using regex patterns (e.g., Given(/pattern/, ...)) throws
|
|
13
|
-
* StepAbleStepExpressionError.
|
|
14
|
-
*/
|
|
15
|
-
export declare function checkRegexStepPatterns(content: string, filePath: string): readonly LintViolation[];
|
|
16
|
-
/**
|
|
17
|
-
* Check 6: Detect {phrase} usage in step definition strings.
|
|
18
|
-
*
|
|
19
|
-
* vitest-cucumber does not support the {phrase} Cucumber expression type.
|
|
20
|
-
* Use {string} (with quoted values in the feature file) instead.
|
|
21
|
-
*/
|
|
22
|
-
export declare function checkPhraseUsage(content: string, filePath: string): readonly LintViolation[];
|
|
23
|
-
/**
|
|
24
|
-
* Check 11: Detect repeated step patterns within the same scenario block.
|
|
25
|
-
*
|
|
26
|
-
* When the same step pattern (e.g., Given('a state', ...)) is registered
|
|
27
|
-
* twice in one Scenario block, vitest-cucumber overwrites the first
|
|
28
|
-
* registration. Only the last callback runs, causing silent test failures
|
|
29
|
-
* where assertions appear to pass but the setup was wrong.
|
|
30
|
-
*
|
|
31
|
-
* Detection: Track scenario blocks using brace-depth counting, collect
|
|
32
|
-
* step registration patterns within each block, and flag duplicates.
|
|
33
|
-
* The same pattern in different scenario blocks is fine — each block
|
|
34
|
-
* has its own scope.
|
|
35
|
-
*/
|
|
36
|
-
export declare function checkRepeatedStepPattern(content: string, filePath: string): readonly LintViolation[];
|
|
37
|
-
/**
|
|
38
|
-
* Run all step-only checks on a single file.
|
|
39
|
-
*/
|
|
40
|
-
export declare function runStepChecks(content: string, filePath: string): readonly LintViolation[];
|
|
41
|
-
//# sourceMappingURL=step-checks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"step-checks.d.ts","sourceRoot":"","sources":["../../../src/lint/steps/step-checks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAoBtE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,SAAS,aAAa,EAAE,CAoB1B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAoB5F;AAqBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,SAAS,aAAa,EAAE,CAuD1B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAMzF"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Step-definition-only lint checks for vitest-cucumber compatibility.
|
|
3
|
-
*
|
|
4
|
-
* These checks scan .steps.ts files for patterns that vitest-cucumber
|
|
5
|
-
* does not support, without needing the corresponding .feature file.
|
|
6
|
-
*/
|
|
7
|
-
import { STEP_LINT_RULES } from './types.js';
|
|
8
|
-
import { countBraceBalance } from './utils.js';
|
|
9
|
-
/**
|
|
10
|
-
* Matches step registration calls using regex patterns instead of strings.
|
|
11
|
-
* Pattern: Given(/ or When(/ or Then(/ or And(/ — with optional whitespace.
|
|
12
|
-
*
|
|
13
|
-
* Excludes:
|
|
14
|
-
* - Comment lines (// Given(/...))
|
|
15
|
-
* - String arguments that happen to contain a forward slash
|
|
16
|
-
*/
|
|
17
|
-
const REGEX_STEP_PATTERN = /^\s*(?!\/\/)(Given|When|Then|And|But)\s*\(\s*\//;
|
|
18
|
-
/**
|
|
19
|
-
* Matches step strings containing {phrase} — an unsupported Cucumber expression type.
|
|
20
|
-
* Looks for step registration calls with a string argument containing {phrase}.
|
|
21
|
-
*/
|
|
22
|
-
const PHRASE_IN_STEP = /(?:Given|When|Then|And|But)\s*\(\s*['"][^'"]*\{phrase\}[^'"]*['"]/;
|
|
23
|
-
/**
|
|
24
|
-
* Check 5: Detect regex patterns in step definitions.
|
|
25
|
-
*
|
|
26
|
-
* vitest-cucumber only supports string patterns with {string}/{int}.
|
|
27
|
-
* Using regex patterns (e.g., Given(/pattern/, ...)) throws
|
|
28
|
-
* StepAbleStepExpressionError.
|
|
29
|
-
*/
|
|
30
|
-
export function checkRegexStepPatterns(content, filePath) {
|
|
31
|
-
const violations = [];
|
|
32
|
-
const lines = content.split('\n');
|
|
33
|
-
for (let i = 0; i < lines.length; i++) {
|
|
34
|
-
const line = lines[i];
|
|
35
|
-
if (line === undefined)
|
|
36
|
-
continue;
|
|
37
|
-
if (REGEX_STEP_PATTERN.test(line)) {
|
|
38
|
-
violations.push({
|
|
39
|
-
rule: STEP_LINT_RULES.regexStepPattern.id,
|
|
40
|
-
severity: STEP_LINT_RULES.regexStepPattern.severity,
|
|
41
|
-
message: `Regex step pattern detected — vitest-cucumber only supports string patterns with {string}/{int}`,
|
|
42
|
-
file: filePath,
|
|
43
|
-
line: i + 1,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return violations;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Check 6: Detect {phrase} usage in step definition strings.
|
|
51
|
-
*
|
|
52
|
-
* vitest-cucumber does not support the {phrase} Cucumber expression type.
|
|
53
|
-
* Use {string} (with quoted values in the feature file) instead.
|
|
54
|
-
*/
|
|
55
|
-
export function checkPhraseUsage(content, filePath) {
|
|
56
|
-
const violations = [];
|
|
57
|
-
const lines = content.split('\n');
|
|
58
|
-
for (let i = 0; i < lines.length; i++) {
|
|
59
|
-
const line = lines[i];
|
|
60
|
-
if (line === undefined)
|
|
61
|
-
continue;
|
|
62
|
-
if (PHRASE_IN_STEP.test(line)) {
|
|
63
|
-
violations.push({
|
|
64
|
-
rule: STEP_LINT_RULES.unsupportedPhraseType.id,
|
|
65
|
-
severity: STEP_LINT_RULES.unsupportedPhraseType.severity,
|
|
66
|
-
message: `{phrase} is not supported by vitest-cucumber — use {string} with quoted values in the feature file`,
|
|
67
|
-
file: filePath,
|
|
68
|
-
line: i + 1,
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return violations;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Matches the start of a scenario block in step definitions.
|
|
76
|
-
* Captures: Scenario(, ScenarioOutline(, RuleScenario(, RuleScenarioOutline(
|
|
77
|
-
*/
|
|
78
|
-
const SCENARIO_BLOCK_START = /(?:Rule)?Scenario(?:Outline)?\s*\(/;
|
|
79
|
-
/**
|
|
80
|
-
* Matches step registration calls and captures the pattern string.
|
|
81
|
-
* Group 1: keyword (Given/When/Then/And/But)
|
|
82
|
-
* Group 2: opening quote character (' or ")
|
|
83
|
-
* Group 3: the pattern string (inside quotes)
|
|
84
|
-
*
|
|
85
|
-
* Uses a backreference (\2) to match the closing quote of the same type
|
|
86
|
-
* as the opening quote. This correctly handles embedded quotes:
|
|
87
|
-
* And('it should include category "api"') → captures full pattern
|
|
88
|
-
* And("it should include category 'api'") → captures full pattern
|
|
89
|
-
*/
|
|
90
|
-
const STEP_REGISTRATION = /^\s*(Given|When|Then|And|But)\s*\(\s*(['"])(.*?)\2/;
|
|
91
|
-
/**
|
|
92
|
-
* Check 11: Detect repeated step patterns within the same scenario block.
|
|
93
|
-
*
|
|
94
|
-
* When the same step pattern (e.g., Given('a state', ...)) is registered
|
|
95
|
-
* twice in one Scenario block, vitest-cucumber overwrites the first
|
|
96
|
-
* registration. Only the last callback runs, causing silent test failures
|
|
97
|
-
* where assertions appear to pass but the setup was wrong.
|
|
98
|
-
*
|
|
99
|
-
* Detection: Track scenario blocks using brace-depth counting, collect
|
|
100
|
-
* step registration patterns within each block, and flag duplicates.
|
|
101
|
-
* The same pattern in different scenario blocks is fine — each block
|
|
102
|
-
* has its own scope.
|
|
103
|
-
*/
|
|
104
|
-
export function checkRepeatedStepPattern(content, filePath) {
|
|
105
|
-
const violations = [];
|
|
106
|
-
const lines = content.split('\n');
|
|
107
|
-
let inScenarioBlock = false;
|
|
108
|
-
let braceDepth = 0;
|
|
109
|
-
// Map from "keyword:pattern" to first-seen line number
|
|
110
|
-
let patternsInBlock = new Map();
|
|
111
|
-
for (let i = 0; i < lines.length; i++) {
|
|
112
|
-
const line = lines[i];
|
|
113
|
-
if (line === undefined)
|
|
114
|
-
continue;
|
|
115
|
-
// Detect start of a new scenario block
|
|
116
|
-
if (!inScenarioBlock && SCENARIO_BLOCK_START.test(line)) {
|
|
117
|
-
inScenarioBlock = true;
|
|
118
|
-
braceDepth = countBraceBalance(line);
|
|
119
|
-
patternsInBlock = new Map();
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
if (inScenarioBlock) {
|
|
123
|
-
braceDepth += countBraceBalance(line);
|
|
124
|
-
// Check for step registration
|
|
125
|
-
const stepMatch = STEP_REGISTRATION.exec(line);
|
|
126
|
-
if (stepMatch !== null) {
|
|
127
|
-
const keyword = stepMatch[1] ?? '';
|
|
128
|
-
const pattern = stepMatch[3] ?? '';
|
|
129
|
-
const key = `${keyword}:${pattern}`;
|
|
130
|
-
const previousLine = patternsInBlock.get(key);
|
|
131
|
-
if (previousLine !== undefined) {
|
|
132
|
-
violations.push({
|
|
133
|
-
rule: STEP_LINT_RULES.repeatedStepPattern.id,
|
|
134
|
-
severity: STEP_LINT_RULES.repeatedStepPattern.severity,
|
|
135
|
-
message: `Step pattern ${keyword}('${pattern}') registered twice in this scenario — first at line ${previousLine}. Second registration overwrites the first`,
|
|
136
|
-
file: filePath,
|
|
137
|
-
line: i + 1,
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
patternsInBlock.set(key, i + 1);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
// End of scenario block
|
|
145
|
-
if (braceDepth <= 0) {
|
|
146
|
-
inScenarioBlock = false;
|
|
147
|
-
braceDepth = 0;
|
|
148
|
-
patternsInBlock = new Map();
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return violations;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Run all step-only checks on a single file.
|
|
156
|
-
*/
|
|
157
|
-
export function runStepChecks(content, filePath) {
|
|
158
|
-
return [
|
|
159
|
-
...checkRegexStepPatterns(content, filePath),
|
|
160
|
-
...checkPhraseUsage(content, filePath),
|
|
161
|
-
...checkRepeatedStepPattern(content, filePath),
|
|
162
|
-
];
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=step-checks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"step-checks.js","sourceRoot":"","sources":["../../../src/lint/steps/step-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types for the vitest-cucumber step linter.
|
|
3
|
-
*
|
|
4
|
-
* Defines the shapes used by feature-only, step-only, and cross-file checks.
|
|
5
|
-
*/
|
|
6
|
-
import type { LintSeverity } from '../../validation-schemas/lint.js';
|
|
7
|
-
/**
|
|
8
|
-
* A lint rule definition for step/feature boundary checking
|
|
9
|
-
*/
|
|
10
|
-
export interface StepLintRule {
|
|
11
|
-
/** Unique rule ID (e.g., 'hash-in-description') */
|
|
12
|
-
readonly id: string;
|
|
13
|
-
/** Default severity level */
|
|
14
|
-
readonly severity: LintSeverity;
|
|
15
|
-
/** Human-readable rule description */
|
|
16
|
-
readonly description: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* A paired feature file and its step definition file
|
|
20
|
-
*/
|
|
21
|
-
export interface FeatureStepPair {
|
|
22
|
-
/** Absolute path to the .feature file */
|
|
23
|
-
readonly featurePath: string;
|
|
24
|
-
/** Absolute path to the .steps.ts file */
|
|
25
|
-
readonly stepPath: string;
|
|
26
|
-
}
|
|
27
|
-
/** All step lint rule IDs */
|
|
28
|
-
export declare const STEP_LINT_RULES: {
|
|
29
|
-
hashInDescription: {
|
|
30
|
-
id: string;
|
|
31
|
-
severity: "error";
|
|
32
|
-
description: string;
|
|
33
|
-
};
|
|
34
|
-
duplicateAndStep: {
|
|
35
|
-
id: string;
|
|
36
|
-
severity: "error";
|
|
37
|
-
description: string;
|
|
38
|
-
};
|
|
39
|
-
dollarInStepText: {
|
|
40
|
-
id: string;
|
|
41
|
-
severity: "warning";
|
|
42
|
-
description: string;
|
|
43
|
-
};
|
|
44
|
-
regexStepPattern: {
|
|
45
|
-
id: string;
|
|
46
|
-
severity: "error";
|
|
47
|
-
description: string;
|
|
48
|
-
};
|
|
49
|
-
unsupportedPhraseType: {
|
|
50
|
-
id: string;
|
|
51
|
-
severity: "error";
|
|
52
|
-
description: string;
|
|
53
|
-
};
|
|
54
|
-
scenarioOutlineFunctionParams: {
|
|
55
|
-
id: string;
|
|
56
|
-
severity: "error";
|
|
57
|
-
description: string;
|
|
58
|
-
};
|
|
59
|
-
missingAndDestructuring: {
|
|
60
|
-
id: string;
|
|
61
|
-
severity: "error";
|
|
62
|
-
description: string;
|
|
63
|
-
};
|
|
64
|
-
missingRuleWrapper: {
|
|
65
|
-
id: string;
|
|
66
|
-
severity: "error";
|
|
67
|
-
description: string;
|
|
68
|
-
};
|
|
69
|
-
hashInStepText: {
|
|
70
|
-
id: string;
|
|
71
|
-
severity: "warning";
|
|
72
|
-
description: string;
|
|
73
|
-
};
|
|
74
|
-
keywordInDescription: {
|
|
75
|
-
id: string;
|
|
76
|
-
severity: "error";
|
|
77
|
-
description: string;
|
|
78
|
-
};
|
|
79
|
-
outlineQuotedValues: {
|
|
80
|
-
id: string;
|
|
81
|
-
severity: "warning";
|
|
82
|
-
description: string;
|
|
83
|
-
};
|
|
84
|
-
repeatedStepPattern: {
|
|
85
|
-
id: string;
|
|
86
|
-
severity: "error";
|
|
87
|
-
description: string;
|
|
88
|
-
};
|
|
89
|
-
pairResolver: {
|
|
90
|
-
id: string;
|
|
91
|
-
severity: "warning";
|
|
92
|
-
description: string;
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lint/steps/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,6BAA6B;AAC7B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFY,CAAC"}
|
package/dist/lint/steps/types.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types for the vitest-cucumber step linter.
|
|
3
|
-
*
|
|
4
|
-
* Defines the shapes used by feature-only, step-only, and cross-file checks.
|
|
5
|
-
*/
|
|
6
|
-
/** All step lint rule IDs */
|
|
7
|
-
export const STEP_LINT_RULES = {
|
|
8
|
-
// Feature-only checks
|
|
9
|
-
hashInDescription: {
|
|
10
|
-
id: 'hash-in-description',
|
|
11
|
-
severity: 'error',
|
|
12
|
-
description: '# at line start in description context terminates the description (Gherkin parser treats it as a comment)',
|
|
13
|
-
},
|
|
14
|
-
duplicateAndStep: {
|
|
15
|
-
id: 'duplicate-and-step',
|
|
16
|
-
severity: 'error',
|
|
17
|
-
description: 'Multiple And steps with identical text in the same scenario cause vitest-cucumber matching failures',
|
|
18
|
-
},
|
|
19
|
-
dollarInStepText: {
|
|
20
|
-
id: 'dollar-in-step-text',
|
|
21
|
-
severity: 'warning',
|
|
22
|
-
description: '$ character in step text causes matching issues in vitest-cucumber',
|
|
23
|
-
},
|
|
24
|
-
// Step-only checks
|
|
25
|
-
regexStepPattern: {
|
|
26
|
-
id: 'regex-step-pattern',
|
|
27
|
-
severity: 'error',
|
|
28
|
-
description: 'vitest-cucumber does not support regex step patterns — use string patterns with {string}/{int}',
|
|
29
|
-
},
|
|
30
|
-
unsupportedPhraseType: {
|
|
31
|
-
id: 'unsupported-phrase-type',
|
|
32
|
-
severity: 'error',
|
|
33
|
-
description: 'vitest-cucumber does not support {phrase} — use {string} instead',
|
|
34
|
-
},
|
|
35
|
-
// Cross-file checks
|
|
36
|
-
scenarioOutlineFunctionParams: {
|
|
37
|
-
id: 'scenario-outline-function-params',
|
|
38
|
-
severity: 'error',
|
|
39
|
-
description: 'ScenarioOutline step callbacks should use variables object, not function params (_ctx, value)',
|
|
40
|
-
},
|
|
41
|
-
missingAndDestructuring: {
|
|
42
|
-
id: 'missing-and-destructuring',
|
|
43
|
-
severity: 'error',
|
|
44
|
-
description: 'Feature has And steps but step definition does not destructure And — causes StepAbleUnknowStepError',
|
|
45
|
-
},
|
|
46
|
-
missingRuleWrapper: {
|
|
47
|
-
id: 'missing-rule-wrapper',
|
|
48
|
-
severity: 'error',
|
|
49
|
-
description: 'Feature has Rule: blocks but step definition does not destructure Rule from describeFeature',
|
|
50
|
-
},
|
|
51
|
-
// Extended rules (step-lint-extended-rules spec)
|
|
52
|
-
hashInStepText: {
|
|
53
|
-
id: 'hash-in-step-text',
|
|
54
|
-
severity: 'warning',
|
|
55
|
-
description: 'Mid-line # in step text is interpreted as a Gherkin comment, silently truncating the step',
|
|
56
|
-
},
|
|
57
|
-
keywordInDescription: {
|
|
58
|
-
id: 'keyword-in-description',
|
|
59
|
-
severity: 'error',
|
|
60
|
-
description: 'Description line starting with Given/When/Then/And/But breaks the Gherkin parser',
|
|
61
|
-
},
|
|
62
|
-
outlineQuotedValues: {
|
|
63
|
-
id: 'outline-quoted-values',
|
|
64
|
-
severity: 'warning',
|
|
65
|
-
description: 'Scenario Outline steps with quoted values suggest Cucumber expression pattern instead of variable substitution',
|
|
66
|
-
},
|
|
67
|
-
repeatedStepPattern: {
|
|
68
|
-
id: 'repeated-step-pattern',
|
|
69
|
-
severity: 'error',
|
|
70
|
-
description: 'Same step pattern registered twice in one scenario block — second registration overwrites the first',
|
|
71
|
-
},
|
|
72
|
-
// Infrastructure
|
|
73
|
-
pairResolver: {
|
|
74
|
-
id: 'pair-resolver',
|
|
75
|
-
severity: 'warning',
|
|
76
|
-
description: 'Feature-to-step file pairing issue — could not read step file or extract loadFeature() path',
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lint/steps/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0BH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,sBAAsB;IACtB,iBAAiB,EAAE;QACjB,EAAE,EAAE,qBAAqB;QACzB,QAAQ,EAAE,OAAgB;QAC1B,WAAW,EACT,2GAA2G;KAC9G;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,oBAAoB;QACxB,QAAQ,EAAE,OAAgB;QAC1B,WAAW,EACT,qGAAqG;KACxG;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,qBAAqB;QACzB,QAAQ,EAAE,SAAkB;QAC5B,WAAW,EAAE,oEAAoE;KAClF;IAED,mBAAmB;IACnB,gBAAgB,EAAE;QAChB,EAAE,EAAE,oBAAoB;QACxB,QAAQ,EAAE,OAAgB;QAC1B,WAAW,EACT,gGAAgG;KACnG;IACD,qBAAqB,EAAE;QACrB,EAAE,EAAE,yBAAyB;QAC7B,QAAQ,EAAE,OAAgB;QAC1B,WAAW,EAAE,kEAAkE;KAChF;IAED,oBAAoB;IACpB,6BAA6B,EAAE;QAC7B,EAAE,EAAE,kCAAkC;QACtC,QAAQ,EAAE,OAAgB;QAC1B,WAAW,EACT,+FAA+F;KAClG;IACD,uBAAuB,EAAE;QACvB,EAAE,EAAE,2BAA2B;QAC/B,QAAQ,EAAE,OAAgB;QAC1B,WAAW,EACT,qGAAqG;KACxG;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,sBAAsB;QAC1B,QAAQ,EAAE,OAAgB;QAC1B,WAAW,EACT,6FAA6F;KAChG;IAED,iDAAiD;IACjD,cAAc,EAAE;QACd,EAAE,EAAE,mBAAmB;QACvB,QAAQ,EAAE,SAAkB;QAC5B,WAAW,EACT,2FAA2F;KAC9F;IACD,oBAAoB,EAAE;QACpB,EAAE,EAAE,wBAAwB;QAC5B,QAAQ,EAAE,OAAgB;QAC1B,WAAW,EAAE,kFAAkF;KAChG;IACD,mBAAmB,EAAE;QACnB,EAAE,EAAE,uBAAuB;QAC3B,QAAQ,EAAE,SAAkB;QAC5B,WAAW,EACT,gHAAgH;KACnH;IACD,mBAAmB,EAAE;QACnB,EAAE,EAAE,uBAAuB;QAC3B,QAAQ,EAAE,OAAgB;QAC1B,WAAW,EACT,qGAAqG;KACxG;IAED,iBAAiB;IACjB,YAAY,EAAE;QACZ,EAAE,EAAE,eAAe;QACnB,QAAQ,EAAE,SAAkB;QAC5B,WAAW,EACT,6FAA6F;KAChG;CACqC,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared utilities for the vitest-cucumber step linter.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Strip content inside quoted strings (single and double quotes) from text.
|
|
6
|
-
*
|
|
7
|
-
* Returns the text with quoted content replaced by empty quote pairs.
|
|
8
|
-
* This allows lint checks to detect problematic characters (like $ or #)
|
|
9
|
-
* only when they appear OUTSIDE of quoted string values in step text.
|
|
10
|
-
*
|
|
11
|
-
* Example: `parse JSON '{"$schema": "..."}' now` → `parse JSON '' now`
|
|
12
|
-
*/
|
|
13
|
-
export declare function stripQuotedContent(text: string): string;
|
|
14
|
-
/**
|
|
15
|
-
* Count the net brace balance on a line: +1 for {, -1 for }.
|
|
16
|
-
* Ignores braces inside string literals (single/double/backtick quotes).
|
|
17
|
-
*
|
|
18
|
-
* Used by both step-checks and cross-checks to track scenario block
|
|
19
|
-
* boundaries via brace depth counting.
|
|
20
|
-
*/
|
|
21
|
-
export declare function countBraceBalance(line: string): number;
|
|
22
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lint/steps/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA6BtD"}
|
package/dist/lint/steps/utils.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared utilities for the vitest-cucumber step linter.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Strip content inside quoted strings (single and double quotes) from text.
|
|
6
|
-
*
|
|
7
|
-
* Returns the text with quoted content replaced by empty quote pairs.
|
|
8
|
-
* This allows lint checks to detect problematic characters (like $ or #)
|
|
9
|
-
* only when they appear OUTSIDE of quoted string values in step text.
|
|
10
|
-
*
|
|
11
|
-
* Example: `parse JSON '{"$schema": "..."}' now` → `parse JSON '' now`
|
|
12
|
-
*/
|
|
13
|
-
export function stripQuotedContent(text) {
|
|
14
|
-
return text.replace(/"[^"]*"|'[^']*'/g, (match) => {
|
|
15
|
-
// Preserve the quote characters but remove inner content
|
|
16
|
-
const quote = match.charAt(0);
|
|
17
|
-
return `${quote}${quote}`;
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Count the net brace balance on a line: +1 for {, -1 for }.
|
|
22
|
-
* Ignores braces inside string literals (single/double/backtick quotes).
|
|
23
|
-
*
|
|
24
|
-
* Used by both step-checks and cross-checks to track scenario block
|
|
25
|
-
* boundaries via brace depth counting.
|
|
26
|
-
*/
|
|
27
|
-
export function countBraceBalance(line) {
|
|
28
|
-
let balance = 0;
|
|
29
|
-
let inString = null;
|
|
30
|
-
let escaped = false;
|
|
31
|
-
for (const ch of line) {
|
|
32
|
-
if (escaped) {
|
|
33
|
-
escaped = false;
|
|
34
|
-
continue;
|
|
35
|
-
}
|
|
36
|
-
if (ch === '\\') {
|
|
37
|
-
escaped = true;
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
if (inString !== null) {
|
|
41
|
-
if (ch === inString) {
|
|
42
|
-
inString = null;
|
|
43
|
-
}
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
if (ch === "'" || ch === '"' || ch === '`') {
|
|
47
|
-
inString = ch;
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
if (ch === '{')
|
|
51
|
-
balance++;
|
|
52
|
-
if (ch === '}')
|
|
53
|
-
balance--;
|
|
54
|
-
}
|
|
55
|
-
return balance;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lint/steps/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE;QAChD,yDAAyD;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACpB,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC3C,QAAQ,GAAG,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG;YAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,EAAE,KAAK,GAAG;YAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { PipelineSessionManager } from './pipeline-session.js';
|
|
2
|
-
export interface FileWatcherOptions {
|
|
3
|
-
readonly globs: readonly string[];
|
|
4
|
-
readonly baseDir: string;
|
|
5
|
-
readonly debounceMs?: number;
|
|
6
|
-
readonly sessionManager: PipelineSessionManager;
|
|
7
|
-
readonly log: (message: string) => void;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Returns true if the file type should trigger a pipeline rebuild.
|
|
11
|
-
* Only TypeScript (.ts) and Gherkin (.feature) files are watched.
|
|
12
|
-
*/
|
|
13
|
-
export declare function isWatchedFileType(filePath: string): boolean;
|
|
14
|
-
export declare class McpFileWatcher {
|
|
15
|
-
private watcher;
|
|
16
|
-
private debounceTimer;
|
|
17
|
-
private readonly options;
|
|
18
|
-
constructor(options: FileWatcherOptions);
|
|
19
|
-
start(): void;
|
|
20
|
-
stop(): Promise<void>;
|
|
21
|
-
private onFileChange;
|
|
22
|
-
private triggerRebuild;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=file-watcher.d.ts.map
|