@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cross-checks.js","sourceRoot":"","sources":["../../../src/lint/steps/cross-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Feature-only lint checks for vitest-cucumber compatibility.
|
|
3
|
-
*
|
|
4
|
-
* These checks scan raw .feature file text without needing the Gherkin parser
|
|
5
|
-
* (which would fail on some of the very issues we're detecting).
|
|
6
|
-
*/
|
|
7
|
-
import type { LintViolation } from '../../validation-schemas/lint.js';
|
|
8
|
-
/**
|
|
9
|
-
* Check 4: Detect # at line start inside a """ pseudo-code-block in description context.
|
|
10
|
-
*
|
|
11
|
-
* The @cucumber/gherkin parser treats # as a comment even inside
|
|
12
|
-
* Feature/Rule descriptions. When authors embed code examples using
|
|
13
|
-
* """ delimiters in descriptions, they expect those to act as code blocks.
|
|
14
|
-
* But """ in descriptions is NOT a DocString — it's plain text. Any #
|
|
15
|
-
* inside will terminate the description and cause cryptic parse errors.
|
|
16
|
-
*
|
|
17
|
-
* Plain # comments outside """ blocks are intentional Gherkin comments
|
|
18
|
-
* and are NOT flagged (they gracefully terminate descriptions).
|
|
19
|
-
*
|
|
20
|
-
* Detection: State machine tracks description context AND whether we're
|
|
21
|
-
* inside a """ pseudo-code-block within that description.
|
|
22
|
-
*/
|
|
23
|
-
export declare function checkHashInDescription(content: string, filePath: string): readonly LintViolation[];
|
|
24
|
-
/**
|
|
25
|
-
* Check 7: Detect multiple And steps with identical text in the same scenario.
|
|
26
|
-
*
|
|
27
|
-
* vitest-cucumber fails when the same And step text appears twice in one scenario.
|
|
28
|
-
* The fix is to consolidate into a single step with a DataTable or DocString.
|
|
29
|
-
*/
|
|
30
|
-
export declare function checkDuplicateAndSteps(content: string, filePath: string): readonly LintViolation[];
|
|
31
|
-
/**
|
|
32
|
-
* Check 8: Detect $ in Given/When/Then/And step text.
|
|
33
|
-
*
|
|
34
|
-
* The $ character causes matching issues in vitest-cucumber's
|
|
35
|
-
* step expression parser.
|
|
36
|
-
*/
|
|
37
|
-
export declare function checkDollarInStepText(content: string, filePath: string): readonly LintViolation[];
|
|
38
|
-
/**
|
|
39
|
-
* Check 9: Detect # character inside step text (mid-line), outside quoted strings.
|
|
40
|
-
*
|
|
41
|
-
* Some Gherkin parsers interpret # as a comment delimiter even when it
|
|
42
|
-
* appears in the middle of a step line, silently truncating the step text.
|
|
43
|
-
* For example, "Given a file with # inside" becomes "Given a file with".
|
|
44
|
-
*
|
|
45
|
-
* However, # inside quoted string values (e.g. `"## DDD Patterns"`) is
|
|
46
|
-
* safe — the Gherkin parser treats it as part of the string literal and
|
|
47
|
-
* does not interpret it as a comment. Only unquoted # is flagged.
|
|
48
|
-
*
|
|
49
|
-
* This is distinct from hash-in-description (which catches # inside """
|
|
50
|
-
* pseudo-code-blocks in descriptions). This check catches # in actual
|
|
51
|
-
* Given/When/Then/And/But step lines.
|
|
52
|
-
*
|
|
53
|
-
* Pure comment lines (starting with #) do not match STEP_LINE, so they
|
|
54
|
-
* are not flagged.
|
|
55
|
-
*/
|
|
56
|
-
export declare function checkHashInStepText(content: string, filePath: string): readonly LintViolation[];
|
|
57
|
-
/**
|
|
58
|
-
* Check 10: Detect Gherkin keywords at the start of description lines.
|
|
59
|
-
*
|
|
60
|
-
* When a Feature or Rule description line starts with Given, When, Then,
|
|
61
|
-
* And, or But, the Gherkin parser interprets it as a step definition
|
|
62
|
-
* rather than description text. This terminates the description context
|
|
63
|
-
* and causes parse errors on subsequent description lines.
|
|
64
|
-
*
|
|
65
|
-
* Detection uses a state machine to track description context — after
|
|
66
|
-
* Feature: or Rule: lines, before Background:/Scenario:/etc. terminators.
|
|
67
|
-
* Within that context, lines starting with step keywords are flagged.
|
|
68
|
-
*
|
|
69
|
-
* Step DocStrings (""" blocks after Given/When/Then steps) are tracked
|
|
70
|
-
* separately. Feature:/Rule: appearing inside step DocStrings must NOT
|
|
71
|
-
* trigger description mode — they are just quoted text content.
|
|
72
|
-
*/
|
|
73
|
-
export declare function checkKeywordInDescription(content: string, filePath: string): readonly LintViolation[];
|
|
74
|
-
/**
|
|
75
|
-
* Run all feature-only checks on a single file.
|
|
76
|
-
*/
|
|
77
|
-
export declare function runFeatureChecks(content: string, filePath: string): readonly LintViolation[];
|
|
78
|
-
//# sourceMappingURL=feature-checks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"feature-checks.d.ts","sourceRoot":"","sources":["../../../src/lint/steps/feature-checks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AA0BtE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,SAAS,aAAa,EAAE,CA6C1B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,SAAS,aAAa,EAAE,CAsC1B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAwBjG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAwB/F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,SAAS,aAAa,EAAE,CA+D1B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAQ5F"}
|
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Feature-only lint checks for vitest-cucumber compatibility.
|
|
3
|
-
*
|
|
4
|
-
* These checks scan raw .feature file text without needing the Gherkin parser
|
|
5
|
-
* (which would fail on some of the very issues we're detecting).
|
|
6
|
-
*/
|
|
7
|
-
import { STEP_LINT_RULES } from './types.js';
|
|
8
|
-
import { stripQuotedContent } from './utils.js';
|
|
9
|
-
/**
|
|
10
|
-
* Gherkin keywords that terminate a description context.
|
|
11
|
-
* When one of these appears at the expected indentation, the description is over.
|
|
12
|
-
*/
|
|
13
|
-
const DESCRIPTION_TERMINATORS = /^\s*(Background:|Scenario:|Scenario Outline:|Rule:|@\S|Examples:|\||Given |When |Then |And |But )/;
|
|
14
|
-
/**
|
|
15
|
-
* Keywords that start a description context.
|
|
16
|
-
*/
|
|
17
|
-
const DESCRIPTION_STARTERS = /^\s*(Feature:|Rule:)\s/;
|
|
18
|
-
/**
|
|
19
|
-
* Step keywords at the start of a line (after whitespace).
|
|
20
|
-
*/
|
|
21
|
-
const STEP_LINE = /^(\s+)(Given|When|Then|And|But)\s+(.+)$/;
|
|
22
|
-
/**
|
|
23
|
-
* Scenario boundary markers (for grouping steps by scenario).
|
|
24
|
-
*/
|
|
25
|
-
const SCENARIO_BOUNDARY = /^\s*(Scenario:|Scenario Outline:|Examples:|Rule:|Feature:)/;
|
|
26
|
-
/**
|
|
27
|
-
* Check 4: Detect # at line start inside a """ pseudo-code-block in description context.
|
|
28
|
-
*
|
|
29
|
-
* The @cucumber/gherkin parser treats # as a comment even inside
|
|
30
|
-
* Feature/Rule descriptions. When authors embed code examples using
|
|
31
|
-
* """ delimiters in descriptions, they expect those to act as code blocks.
|
|
32
|
-
* But """ in descriptions is NOT a DocString — it's plain text. Any #
|
|
33
|
-
* inside will terminate the description and cause cryptic parse errors.
|
|
34
|
-
*
|
|
35
|
-
* Plain # comments outside """ blocks are intentional Gherkin comments
|
|
36
|
-
* and are NOT flagged (they gracefully terminate descriptions).
|
|
37
|
-
*
|
|
38
|
-
* Detection: State machine tracks description context AND whether we're
|
|
39
|
-
* inside a """ pseudo-code-block within that description.
|
|
40
|
-
*/
|
|
41
|
-
export function checkHashInDescription(content, filePath) {
|
|
42
|
-
const violations = [];
|
|
43
|
-
const lines = content.split('\n');
|
|
44
|
-
let inDescription = false;
|
|
45
|
-
let inPseudoCodeBlock = false;
|
|
46
|
-
for (let i = 0; i < lines.length; i++) {
|
|
47
|
-
const line = lines[i];
|
|
48
|
-
if (line === undefined)
|
|
49
|
-
continue;
|
|
50
|
-
// Start of description context
|
|
51
|
-
if (DESCRIPTION_STARTERS.test(line)) {
|
|
52
|
-
inDescription = true;
|
|
53
|
-
inPseudoCodeBlock = false;
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
// End of description context
|
|
57
|
-
if (inDescription && DESCRIPTION_TERMINATORS.test(line)) {
|
|
58
|
-
inDescription = false;
|
|
59
|
-
inPseudoCodeBlock = false;
|
|
60
|
-
continue;
|
|
61
|
-
}
|
|
62
|
-
if (!inDescription)
|
|
63
|
-
continue;
|
|
64
|
-
// Track """ pseudo-code-block boundaries within description
|
|
65
|
-
if (/^\s*"""/.test(line)) {
|
|
66
|
-
inPseudoCodeBlock = !inPseudoCodeBlock;
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
// Only flag # inside """ pseudo-code-blocks — those are the dangerous ones
|
|
70
|
-
if (inPseudoCodeBlock && /^\s*#/.test(line)) {
|
|
71
|
-
violations.push({
|
|
72
|
-
rule: STEP_LINT_RULES.hashInDescription.id,
|
|
73
|
-
severity: STEP_LINT_RULES.hashInDescription.severity,
|
|
74
|
-
message: `Line starts with # inside """ block in description — Gherkin parser will treat this as a comment, breaking the code example. Move to a step DocString or remove the #`,
|
|
75
|
-
file: filePath,
|
|
76
|
-
line: i + 1,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return violations;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Check 7: Detect multiple And steps with identical text in the same scenario.
|
|
84
|
-
*
|
|
85
|
-
* vitest-cucumber fails when the same And step text appears twice in one scenario.
|
|
86
|
-
* The fix is to consolidate into a single step with a DataTable or DocString.
|
|
87
|
-
*/
|
|
88
|
-
export function checkDuplicateAndSteps(content, filePath) {
|
|
89
|
-
const violations = [];
|
|
90
|
-
const lines = content.split('\n');
|
|
91
|
-
let currentScenarioAndSteps = new Map();
|
|
92
|
-
for (let i = 0; i < lines.length; i++) {
|
|
93
|
-
const line = lines[i];
|
|
94
|
-
if (line === undefined)
|
|
95
|
-
continue;
|
|
96
|
-
// New scenario boundary resets the And step collection
|
|
97
|
-
if (SCENARIO_BOUNDARY.test(line)) {
|
|
98
|
-
currentScenarioAndSteps = new Map();
|
|
99
|
-
continue;
|
|
100
|
-
}
|
|
101
|
-
// Check for And steps
|
|
102
|
-
const stepMatch = /^\s+And\s+(.+)$/.exec(line);
|
|
103
|
-
if (stepMatch !== null) {
|
|
104
|
-
const stepText = stepMatch[1]?.trim() ?? '';
|
|
105
|
-
if (stepText === '')
|
|
106
|
-
continue;
|
|
107
|
-
const previousLine = currentScenarioAndSteps.get(stepText);
|
|
108
|
-
if (previousLine !== undefined) {
|
|
109
|
-
violations.push({
|
|
110
|
-
rule: STEP_LINT_RULES.duplicateAndStep.id,
|
|
111
|
-
severity: STEP_LINT_RULES.duplicateAndStep.severity,
|
|
112
|
-
message: `Duplicate And step text "${stepText}" — first seen at line ${previousLine}. Consolidate into a single step with DataTable`,
|
|
113
|
-
file: filePath,
|
|
114
|
-
line: i + 1,
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
currentScenarioAndSteps.set(stepText, i + 1);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return violations;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Check 8: Detect $ in Given/When/Then/And step text.
|
|
126
|
-
*
|
|
127
|
-
* The $ character causes matching issues in vitest-cucumber's
|
|
128
|
-
* step expression parser.
|
|
129
|
-
*/
|
|
130
|
-
export function checkDollarInStepText(content, filePath) {
|
|
131
|
-
const violations = [];
|
|
132
|
-
const lines = content.split('\n');
|
|
133
|
-
for (let i = 0; i < lines.length; i++) {
|
|
134
|
-
const line = lines[i];
|
|
135
|
-
if (line === undefined)
|
|
136
|
-
continue;
|
|
137
|
-
const stepMatch = STEP_LINE.exec(line);
|
|
138
|
-
if (stepMatch !== null) {
|
|
139
|
-
const stepText = stepMatch[3];
|
|
140
|
-
if (stepText !== undefined && stripQuotedContent(stepText).includes('$')) {
|
|
141
|
-
violations.push({
|
|
142
|
-
rule: STEP_LINT_RULES.dollarInStepText.id,
|
|
143
|
-
severity: STEP_LINT_RULES.dollarInStepText.severity,
|
|
144
|
-
message: `Step text contains $ character which causes matching issues in vitest-cucumber`,
|
|
145
|
-
file: filePath,
|
|
146
|
-
line: i + 1,
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return violations;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Check 9: Detect # character inside step text (mid-line), outside quoted strings.
|
|
155
|
-
*
|
|
156
|
-
* Some Gherkin parsers interpret # as a comment delimiter even when it
|
|
157
|
-
* appears in the middle of a step line, silently truncating the step text.
|
|
158
|
-
* For example, "Given a file with # inside" becomes "Given a file with".
|
|
159
|
-
*
|
|
160
|
-
* However, # inside quoted string values (e.g. `"## DDD Patterns"`) is
|
|
161
|
-
* safe — the Gherkin parser treats it as part of the string literal and
|
|
162
|
-
* does not interpret it as a comment. Only unquoted # is flagged.
|
|
163
|
-
*
|
|
164
|
-
* This is distinct from hash-in-description (which catches # inside """
|
|
165
|
-
* pseudo-code-blocks in descriptions). This check catches # in actual
|
|
166
|
-
* Given/When/Then/And/But step lines.
|
|
167
|
-
*
|
|
168
|
-
* Pure comment lines (starting with #) do not match STEP_LINE, so they
|
|
169
|
-
* are not flagged.
|
|
170
|
-
*/
|
|
171
|
-
export function checkHashInStepText(content, filePath) {
|
|
172
|
-
const violations = [];
|
|
173
|
-
const lines = content.split('\n');
|
|
174
|
-
for (let i = 0; i < lines.length; i++) {
|
|
175
|
-
const line = lines[i];
|
|
176
|
-
if (line === undefined)
|
|
177
|
-
continue;
|
|
178
|
-
const stepMatch = STEP_LINE.exec(line);
|
|
179
|
-
if (stepMatch !== null) {
|
|
180
|
-
const stepText = stepMatch[3];
|
|
181
|
-
if (stepText !== undefined && stripQuotedContent(stepText).includes('#')) {
|
|
182
|
-
violations.push({
|
|
183
|
-
rule: STEP_LINT_RULES.hashInStepText.id,
|
|
184
|
-
severity: STEP_LINT_RULES.hashInStepText.severity,
|
|
185
|
-
message: `Step text contains # outside quoted strings which may be interpreted as a comment, silently truncating the step`,
|
|
186
|
-
file: filePath,
|
|
187
|
-
line: i + 1,
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return violations;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Check 10: Detect Gherkin keywords at the start of description lines.
|
|
196
|
-
*
|
|
197
|
-
* When a Feature or Rule description line starts with Given, When, Then,
|
|
198
|
-
* And, or But, the Gherkin parser interprets it as a step definition
|
|
199
|
-
* rather than description text. This terminates the description context
|
|
200
|
-
* and causes parse errors on subsequent description lines.
|
|
201
|
-
*
|
|
202
|
-
* Detection uses a state machine to track description context — after
|
|
203
|
-
* Feature: or Rule: lines, before Background:/Scenario:/etc. terminators.
|
|
204
|
-
* Within that context, lines starting with step keywords are flagged.
|
|
205
|
-
*
|
|
206
|
-
* Step DocStrings (""" blocks after Given/When/Then steps) are tracked
|
|
207
|
-
* separately. Feature:/Rule: appearing inside step DocStrings must NOT
|
|
208
|
-
* trigger description mode — they are just quoted text content.
|
|
209
|
-
*/
|
|
210
|
-
export function checkKeywordInDescription(content, filePath) {
|
|
211
|
-
const violations = [];
|
|
212
|
-
const lines = content.split('\n');
|
|
213
|
-
let inDescription = false;
|
|
214
|
-
let inStepDocString = false;
|
|
215
|
-
/** Keywords that break the parser when at the start of a description line */
|
|
216
|
-
const KEYWORD_AT_LINE_START = /^\s*(Given|When|Then|And|But)\s/;
|
|
217
|
-
/** Matches a """ delimiter line (with optional language hint) */
|
|
218
|
-
const DOCSTRING_DELIMITER = /^\s*"""/;
|
|
219
|
-
for (let i = 0; i < lines.length; i++) {
|
|
220
|
-
const line = lines[i];
|
|
221
|
-
if (line === undefined)
|
|
222
|
-
continue;
|
|
223
|
-
// Track step DocString boundaries (""" blocks outside description context).
|
|
224
|
-
// Inside a step DocString, Feature:/Rule: are just quoted text — skip them.
|
|
225
|
-
if (DOCSTRING_DELIMITER.test(line)) {
|
|
226
|
-
if (!inDescription) {
|
|
227
|
-
inStepDocString = !inStepDocString;
|
|
228
|
-
}
|
|
229
|
-
continue;
|
|
230
|
-
}
|
|
231
|
-
// While inside a step DocString, skip all other checks
|
|
232
|
-
if (inStepDocString)
|
|
233
|
-
continue;
|
|
234
|
-
// Start of description context
|
|
235
|
-
if (DESCRIPTION_STARTERS.test(line)) {
|
|
236
|
-
inDescription = true;
|
|
237
|
-
continue;
|
|
238
|
-
}
|
|
239
|
-
if (!inDescription)
|
|
240
|
-
continue;
|
|
241
|
-
// IMPORTANT: This keyword check MUST come before the DESCRIPTION_TERMINATORS
|
|
242
|
-
// check below. The keyword IS what terminates the description (it's also in
|
|
243
|
-
// DESCRIPTION_TERMINATORS), but we need to flag it as a violation FIRST
|
|
244
|
-
// before exiting the description context. Reordering these blocks would
|
|
245
|
-
// cause keywords to silently exit the description without being flagged.
|
|
246
|
-
if (KEYWORD_AT_LINE_START.test(line)) {
|
|
247
|
-
// But only flag if we're still in description context —
|
|
248
|
-
// actual step lines inside Scenario blocks are fine
|
|
249
|
-
violations.push({
|
|
250
|
-
rule: STEP_LINT_RULES.keywordInDescription.id,
|
|
251
|
-
severity: STEP_LINT_RULES.keywordInDescription.severity,
|
|
252
|
-
message: `Description line starts with a Gherkin keyword — this breaks the parser. Rephrase to not start with Given/When/Then/And/But`,
|
|
253
|
-
file: filePath,
|
|
254
|
-
line: i + 1,
|
|
255
|
-
});
|
|
256
|
-
inDescription = false;
|
|
257
|
-
continue;
|
|
258
|
-
}
|
|
259
|
-
// End of description context (non-keyword terminators)
|
|
260
|
-
if (DESCRIPTION_TERMINATORS.test(line)) {
|
|
261
|
-
inDescription = false;
|
|
262
|
-
continue;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
return violations;
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Run all feature-only checks on a single file.
|
|
269
|
-
*/
|
|
270
|
-
export function runFeatureChecks(content, filePath) {
|
|
271
|
-
return [
|
|
272
|
-
...checkHashInDescription(content, filePath),
|
|
273
|
-
...checkDuplicateAndSteps(content, filePath),
|
|
274
|
-
...checkDollarInStepText(content, filePath),
|
|
275
|
-
...checkHashInStepText(content, filePath),
|
|
276
|
-
...checkKeywordInDescription(content, filePath),
|
|
277
|
-
];
|
|
278
|
-
}
|
|
279
|
-
//# sourceMappingURL=feature-checks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"feature-checks.js","sourceRoot":"","sources":["../../../src/lint/steps/feature-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* vitest-cucumber step lint module.
|
|
3
|
-
*
|
|
4
|
-
* Provides static analysis for vitest-cucumber feature/step compatibility.
|
|
5
|
-
* Catches common traps that cause runtime failures:
|
|
6
|
-
* - {string} function params inside ScenarioOutline (should use variables)
|
|
7
|
-
* - Missing And destructuring (causes StepAbleUnknowStepError)
|
|
8
|
-
* - Missing Rule() wrapper (causes step matching failures)
|
|
9
|
-
* - # in descriptions (terminates Gherkin parser context)
|
|
10
|
-
* - Regex step patterns (not supported by vitest-cucumber)
|
|
11
|
-
* - {phrase} usage (not supported by vitest-cucumber)
|
|
12
|
-
*/
|
|
13
|
-
export type { StepLintRule, FeatureStepPair } from './types.js';
|
|
14
|
-
export { STEP_LINT_RULES } from './types.js';
|
|
15
|
-
export { runStepLint } from './runner.js';
|
|
16
|
-
export type { StepLintOptions } from './runner.js';
|
|
17
|
-
export { checkHashInDescription, checkDuplicateAndSteps, checkDollarInStepText, checkHashInStepText, checkKeywordInDescription, runFeatureChecks, } from './feature-checks.js';
|
|
18
|
-
export { checkRegexStepPatterns, checkPhraseUsage, checkRepeatedStepPattern, runStepChecks, } from './step-checks.js';
|
|
19
|
-
export { checkScenarioOutlineFunctionParams, checkMissingAndDestructuring, checkMissingRuleWrapper, checkOutlineQuotedValues, runCrossChecks, } from './cross-checks.js';
|
|
20
|
-
export { extractFeaturePath, resolveFeatureStepPairs } from './pair-resolver.js';
|
|
21
|
-
export { countBraceBalance } from './utils.js';
|
|
22
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/steps/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kCAAkC,EAClC,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/lint/steps/index.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* vitest-cucumber step lint module.
|
|
3
|
-
*
|
|
4
|
-
* Provides static analysis for vitest-cucumber feature/step compatibility.
|
|
5
|
-
* Catches common traps that cause runtime failures:
|
|
6
|
-
* - {string} function params inside ScenarioOutline (should use variables)
|
|
7
|
-
* - Missing And destructuring (causes StepAbleUnknowStepError)
|
|
8
|
-
* - Missing Rule() wrapper (causes step matching failures)
|
|
9
|
-
* - # in descriptions (terminates Gherkin parser context)
|
|
10
|
-
* - Regex step patterns (not supported by vitest-cucumber)
|
|
11
|
-
* - {phrase} usage (not supported by vitest-cucumber)
|
|
12
|
-
*/
|
|
13
|
-
export { STEP_LINT_RULES } from './types.js';
|
|
14
|
-
// Runner
|
|
15
|
-
export { runStepLint } from './runner.js';
|
|
16
|
-
// Feature checks (for targeted use)
|
|
17
|
-
export { checkHashInDescription, checkDuplicateAndSteps, checkDollarInStepText, checkHashInStepText, checkKeywordInDescription, runFeatureChecks, } from './feature-checks.js';
|
|
18
|
-
// Step checks (for targeted use)
|
|
19
|
-
export { checkRegexStepPatterns, checkPhraseUsage, checkRepeatedStepPattern, runStepChecks, } from './step-checks.js';
|
|
20
|
-
// Cross-file checks (for targeted use)
|
|
21
|
-
export { checkScenarioOutlineFunctionParams, checkMissingAndDestructuring, checkMissingRuleWrapper, checkOutlineQuotedValues, runCrossChecks, } from './cross-checks.js';
|
|
22
|
-
// Pair resolver (for targeted use)
|
|
23
|
-
export { extractFeaturePath, resolveFeatureStepPairs } from './pair-resolver.js';
|
|
24
|
-
// Utilities
|
|
25
|
-
export { countBraceBalance } from './utils.js';
|
|
26
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lint/steps/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,oCAAoC;AACpC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,iCAAiC;AACjC,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,uCAAuC;AACvC,OAAO,EACL,kCAAkC,EAClC,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,mCAAmC;AACnC,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEjF,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves feature-to-step file pairs by extracting loadFeature() paths
|
|
3
|
-
* from step definition files.
|
|
4
|
-
*/
|
|
5
|
-
import type { LintViolation } from '../../validation-schemas/lint.js';
|
|
6
|
-
import type { FeatureStepPair } from './types.js';
|
|
7
|
-
/**
|
|
8
|
-
* Extract the feature file path from a loadFeature() call in step file content.
|
|
9
|
-
*
|
|
10
|
-
* Supports two patterns:
|
|
11
|
-
* 1. Simple string: loadFeature('tests/features/path/name.feature')
|
|
12
|
-
* 2. resolve(): loadFeature(resolve(__dirname, '../../../features/path/name.feature'))
|
|
13
|
-
*
|
|
14
|
-
* Returns null if no loadFeature call found or path is not extractable.
|
|
15
|
-
*/
|
|
16
|
-
export declare function extractFeaturePath(stepFileContent: string): string | null;
|
|
17
|
-
/**
|
|
18
|
-
* Resolve feature<->step file pairs from a list of step files.
|
|
19
|
-
*
|
|
20
|
-
* For each .steps.ts file, extracts the loadFeature() path and resolves
|
|
21
|
-
* it to an absolute path relative to baseDir.
|
|
22
|
-
*
|
|
23
|
-
* Returns pairs and any warnings (e.g., unparseable loadFeature calls).
|
|
24
|
-
*/
|
|
25
|
-
export declare function resolveFeatureStepPairs(stepFiles: readonly string[], baseDir: string): {
|
|
26
|
-
readonly pairs: readonly FeatureStepPair[];
|
|
27
|
-
readonly warnings: readonly LintViolation[];
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=pair-resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pair-resolver.d.ts","sourceRoot":"","sources":["../../../src/lint/steps/pair-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgBzE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,EAAE,MAAM,GACd;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,CAwC7F"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves feature-to-step file pairs by extracting loadFeature() paths
|
|
3
|
-
* from step definition files.
|
|
4
|
-
*/
|
|
5
|
-
import { readFileSync } from 'fs';
|
|
6
|
-
import { dirname, resolve } from 'path';
|
|
7
|
-
import { STEP_LINT_RULES } from './types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Extract the feature file path from a loadFeature() call in step file content.
|
|
10
|
-
*
|
|
11
|
-
* Supports two patterns:
|
|
12
|
-
* 1. Simple string: loadFeature('tests/features/path/name.feature')
|
|
13
|
-
* 2. resolve(): loadFeature(resolve(__dirname, '../../../features/path/name.feature'))
|
|
14
|
-
*
|
|
15
|
-
* Returns null if no loadFeature call found or path is not extractable.
|
|
16
|
-
*/
|
|
17
|
-
export function extractFeaturePath(stepFileContent) {
|
|
18
|
-
// Pattern 1: Simple string literal
|
|
19
|
-
const simpleMatch = /loadFeature\s*\(\s*['"]([^'"]+)['"]\s*\)/.exec(stepFileContent);
|
|
20
|
-
if (simpleMatch?.[1] !== undefined) {
|
|
21
|
-
return simpleMatch[1];
|
|
22
|
-
}
|
|
23
|
-
// Pattern 2: resolve(__dirname, 'relative/path')
|
|
24
|
-
const resolveMatch = /loadFeature\s*\(\s*resolve\s*\([^,]*,\s*['"]([^'"]+)['"]\s*\)\s*\)/.exec(stepFileContent);
|
|
25
|
-
if (resolveMatch?.[1] !== undefined) {
|
|
26
|
-
return resolveMatch[1];
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Resolve feature<->step file pairs from a list of step files.
|
|
32
|
-
*
|
|
33
|
-
* For each .steps.ts file, extracts the loadFeature() path and resolves
|
|
34
|
-
* it to an absolute path relative to baseDir.
|
|
35
|
-
*
|
|
36
|
-
* Returns pairs and any warnings (e.g., unparseable loadFeature calls).
|
|
37
|
-
*/
|
|
38
|
-
export function resolveFeatureStepPairs(stepFiles, baseDir) {
|
|
39
|
-
const pairs = [];
|
|
40
|
-
const warnings = [];
|
|
41
|
-
for (const stepPath of stepFiles) {
|
|
42
|
-
let content;
|
|
43
|
-
try {
|
|
44
|
-
content = readFileSync(stepPath, 'utf-8');
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
warnings.push({
|
|
48
|
-
rule: STEP_LINT_RULES.pairResolver.id,
|
|
49
|
-
severity: STEP_LINT_RULES.pairResolver.severity,
|
|
50
|
-
message: `Could not read step file`,
|
|
51
|
-
file: stepPath,
|
|
52
|
-
line: 0,
|
|
53
|
-
});
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
const extractedPath = extractFeaturePath(content);
|
|
57
|
-
if (extractedPath === null) {
|
|
58
|
-
warnings.push({
|
|
59
|
-
rule: STEP_LINT_RULES.pairResolver.id,
|
|
60
|
-
severity: STEP_LINT_RULES.pairResolver.severity,
|
|
61
|
-
message: `Could not extract loadFeature() path — cross-file checks will be skipped`,
|
|
62
|
-
file: stepPath,
|
|
63
|
-
line: 0,
|
|
64
|
-
});
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
// If path starts with ../ or ./, resolve relative to the step file's directory
|
|
68
|
-
// (the resolve(__dirname, '...') pattern). Otherwise resolve relative to baseDir.
|
|
69
|
-
const featurePath = extractedPath.startsWith('.')
|
|
70
|
-
? resolve(dirname(stepPath), extractedPath)
|
|
71
|
-
: resolve(baseDir, extractedPath);
|
|
72
|
-
pairs.push({ featurePath, stepPath });
|
|
73
|
-
}
|
|
74
|
-
return { pairs, warnings };
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=pair-resolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pair-resolver.js","sourceRoot":"","sources":["../../../src/lint/steps/pair-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,eAAuB;IACxD,mCAAmC;IACnC,MAAM,WAAW,GAAG,0CAA0C,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrF,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAG,oEAAoE,CAAC,IAAI,CAC5F,eAAe,CAChB,CAAC;IACF,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAA4B,EAC5B,OAAe;IAEf,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE;gBACrC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,QAAQ;gBAC/C,OAAO,EAAE,0BAA0B;gBACnC,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC;aACR,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE;gBACrC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,QAAQ;gBAC/C,OAAO,EAAE,0EAA0E;gBACnF,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC;aACR,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,+EAA+E;QAC/E,kFAAkF;QAClF,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC;YAC/C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;YAC3C,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -1,28 +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 type { LintSummary } from '../engine.js';
|
|
8
|
-
/**
|
|
9
|
-
* Options for the step lint runner
|
|
10
|
-
*/
|
|
11
|
-
export interface StepLintOptions {
|
|
12
|
-
/** Base directory for resolving paths (default: cwd) */
|
|
13
|
-
readonly baseDir?: string;
|
|
14
|
-
/** Feature file glob patterns (default: tests + specs + decisions) */
|
|
15
|
-
readonly featureGlobs?: readonly string[];
|
|
16
|
-
/** Step file glob patterns (default: tests/steps) */
|
|
17
|
-
readonly stepGlobs?: readonly string[];
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Run all step lint checks and return a LintSummary.
|
|
21
|
-
*
|
|
22
|
-
* Executes three categories of checks:
|
|
23
|
-
* 1. Feature-only checks on all .feature files
|
|
24
|
-
* 2. Step-only checks on all .steps.ts files
|
|
25
|
-
* 3. Cross-file checks on paired feature+step files
|
|
26
|
-
*/
|
|
27
|
-
export declare function runStepLint(options?: StepLintOptions): LintSummary;
|
|
28
|
-
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/lint/steps/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,cAAc,CAAC;AAkB5D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,eAAoB,GAAG,WAAW,CA4DtE"}
|