@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,353 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convention Extractor
|
|
3
|
-
*
|
|
4
|
-
* Filters MasterDataset for patterns tagged with `@architect-convention`
|
|
5
|
-
* and extracts convention content as structured data for reference codec
|
|
6
|
-
* composition. Supports two sources:
|
|
7
|
-
*
|
|
8
|
-
* - **Gherkin**: Extracts from `Rule:` blocks on the pattern's `rules` array
|
|
9
|
-
* - **TypeScript**: Decomposes JSDoc `directive.description` by `## Heading`
|
|
10
|
-
* sections, parsing each section for structured annotations
|
|
11
|
-
*
|
|
12
|
-
* Both sources produce the same `ConventionRuleContent` output, enabling
|
|
13
|
-
* Gherkin and TypeScript convention content to merge in the same bundle.
|
|
14
|
-
*
|
|
15
|
-
* @see CodecDrivenReferenceGeneration spec
|
|
16
|
-
* @see ReferenceDocShowcase spec
|
|
17
|
-
*/
|
|
18
|
-
import { table } from '../schema.js';
|
|
19
|
-
import { parseBusinessRuleAnnotations } from './helpers.js';
|
|
20
|
-
// ============================================================================
|
|
21
|
-
// Table Extraction from Description Text
|
|
22
|
-
// ============================================================================
|
|
23
|
-
/**
|
|
24
|
-
* Extract markdown tables from description text.
|
|
25
|
-
*
|
|
26
|
-
* Identifies lines starting and ending with `|` as table rows,
|
|
27
|
-
* groups consecutive table lines, and parses headers + data rows.
|
|
28
|
-
*/
|
|
29
|
-
export function extractTablesFromDescription(description) {
|
|
30
|
-
if (!description)
|
|
31
|
-
return [];
|
|
32
|
-
const lines = description.split('\n');
|
|
33
|
-
const tables = [];
|
|
34
|
-
let currentTableLines = [];
|
|
35
|
-
for (const line of lines) {
|
|
36
|
-
const trimmed = line.trim();
|
|
37
|
-
if (trimmed.startsWith('|') && trimmed.endsWith('|')) {
|
|
38
|
-
currentTableLines.push(trimmed);
|
|
39
|
-
}
|
|
40
|
-
else if (currentTableLines.length > 0) {
|
|
41
|
-
// End of a table block — parse it
|
|
42
|
-
const parsed = parseTableLines(currentTableLines);
|
|
43
|
-
if (parsed)
|
|
44
|
-
tables.push(parsed);
|
|
45
|
-
currentTableLines = [];
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// Handle table at end of text
|
|
49
|
-
if (currentTableLines.length > 0) {
|
|
50
|
-
const parsed = parseTableLines(currentTableLines);
|
|
51
|
-
if (parsed)
|
|
52
|
-
tables.push(parsed);
|
|
53
|
-
}
|
|
54
|
-
return tables;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Extract markdown tables from description text and return as SectionBlock tables.
|
|
58
|
-
*
|
|
59
|
-
* Adapter that wraps `extractTablesFromDescription` for codecs that need
|
|
60
|
-
* `SectionBlock[]` output instead of `ConventionTable[]`.
|
|
61
|
-
*/
|
|
62
|
-
export function extractTablesAsSectionBlocks(description) {
|
|
63
|
-
const conventionTables = extractTablesFromDescription(description);
|
|
64
|
-
return conventionTables.map((ct) => {
|
|
65
|
-
const headers = [...ct.headers];
|
|
66
|
-
const rows = ct.rows.map((row) => headers.map((h) => row[h] ?? ''));
|
|
67
|
-
return table(headers, rows);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Parse a group of table lines into structured data.
|
|
72
|
-
*
|
|
73
|
-
* Supports both markdown tables (header + separator + data rows) and
|
|
74
|
-
* Gherkin-style tables (header + data rows, no separator). Returns null
|
|
75
|
-
* if insufficient rows.
|
|
76
|
-
*/
|
|
77
|
-
function parseTableLines(lines) {
|
|
78
|
-
// Need at least header + 1 data row
|
|
79
|
-
if (lines.length < 2)
|
|
80
|
-
return null;
|
|
81
|
-
const headerLine = lines[0];
|
|
82
|
-
if (!headerLine)
|
|
83
|
-
return null;
|
|
84
|
-
const headers = splitMarkdownTableRow(headerLine);
|
|
85
|
-
// Detect whether line 2 is a markdown separator row (| --- | --- |)
|
|
86
|
-
const secondLine = lines[1];
|
|
87
|
-
if (!secondLine)
|
|
88
|
-
return null;
|
|
89
|
-
const secondCells = splitMarkdownTableRow(secondLine);
|
|
90
|
-
const hasSeparator = secondCells.every((cell) => /^[\s:-]+$/.test(cell));
|
|
91
|
-
// Data rows start after separator (markdown) or immediately after header (Gherkin)
|
|
92
|
-
const dataStart = hasSeparator ? 2 : 1;
|
|
93
|
-
const rows = [];
|
|
94
|
-
for (let i = dataStart; i < lines.length; i++) {
|
|
95
|
-
const dataLine = lines[i];
|
|
96
|
-
if (!dataLine)
|
|
97
|
-
continue;
|
|
98
|
-
const cells = splitMarkdownTableRow(dataLine);
|
|
99
|
-
const row = {};
|
|
100
|
-
for (let j = 0; j < headers.length; j++) {
|
|
101
|
-
const header = headers[j];
|
|
102
|
-
if (header) {
|
|
103
|
-
row[header] = cells[j] ?? '';
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
rows.push(row);
|
|
107
|
-
}
|
|
108
|
-
return { headers, rows };
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Split a markdown table row into cells while preserving escaped pipe content.
|
|
112
|
-
*
|
|
113
|
-
* Markdown table rows use `|` as delimiters. Content pipes must be escaped
|
|
114
|
-
* as `\|` and should remain part of the parsed cell value.
|
|
115
|
-
*/
|
|
116
|
-
function splitMarkdownTableRow(line) {
|
|
117
|
-
const cells = [];
|
|
118
|
-
let current = '';
|
|
119
|
-
for (let i = 0; i < line.length; i++) {
|
|
120
|
-
const char = line[i] ?? '';
|
|
121
|
-
const next = line[i + 1];
|
|
122
|
-
if (char === '\\' && next === '|') {
|
|
123
|
-
current += '|';
|
|
124
|
-
i++;
|
|
125
|
-
continue;
|
|
126
|
-
}
|
|
127
|
-
if (char === '|') {
|
|
128
|
-
cells.push(current.trim());
|
|
129
|
-
current = '';
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
current += char;
|
|
133
|
-
}
|
|
134
|
-
cells.push(current.trim());
|
|
135
|
-
return cells.slice(1, -1);
|
|
136
|
-
}
|
|
137
|
-
// ============================================================================
|
|
138
|
-
// Rule Content Extraction
|
|
139
|
-
// ============================================================================
|
|
140
|
-
/**
|
|
141
|
-
* Build a ConventionRuleContent from raw text and a rule name.
|
|
142
|
-
*
|
|
143
|
-
* Shared helper used by both Gherkin Rule: block extraction and
|
|
144
|
-
* TypeScript JSDoc description decomposition.
|
|
145
|
-
*/
|
|
146
|
-
function buildRuleContentFromText(text, ruleName) {
|
|
147
|
-
const annotations = parseBusinessRuleAnnotations(text);
|
|
148
|
-
const tables = extractTablesFromDescription(text);
|
|
149
|
-
return {
|
|
150
|
-
ruleName,
|
|
151
|
-
...(annotations.invariant !== undefined && { invariant: annotations.invariant }),
|
|
152
|
-
...(annotations.rationale !== undefined && { rationale: annotations.rationale }),
|
|
153
|
-
...(annotations.verifiedBy !== undefined && {
|
|
154
|
-
verifiedBy: annotations.verifiedBy,
|
|
155
|
-
}),
|
|
156
|
-
tables,
|
|
157
|
-
...(annotations.codeExamples !== undefined &&
|
|
158
|
-
annotations.codeExamples.length > 0 && {
|
|
159
|
-
codeExamples: annotations.codeExamples,
|
|
160
|
-
}),
|
|
161
|
-
narrative: annotations.remainingContent ?? '',
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Extract structured convention content from a Gherkin business rule.
|
|
166
|
-
*/
|
|
167
|
-
function extractConventionRuleContent(rule) {
|
|
168
|
-
return buildRuleContentFromText(rule.description, rule.name);
|
|
169
|
-
}
|
|
170
|
-
// ============================================================================
|
|
171
|
-
// TypeScript JSDoc Description Decomposition
|
|
172
|
-
// ============================================================================
|
|
173
|
-
/**
|
|
174
|
-
* Extract convention rules from a TypeScript JSDoc description.
|
|
175
|
-
*
|
|
176
|
-
* Decomposes the description by `## Heading` sections into individual
|
|
177
|
-
* convention rules. Each heading becomes a rule name; the content below it
|
|
178
|
-
* (until the next `## ` or end) is parsed through `parseBusinessRuleAnnotations()`.
|
|
179
|
-
*
|
|
180
|
-
* If no `## ` headings exist, treats the entire description as a single rule.
|
|
181
|
-
*
|
|
182
|
-
* @param description - The JSDoc description text
|
|
183
|
-
* @param patternName - Fallback rule name when no ## headings exist
|
|
184
|
-
* @returns Array of ConventionRuleContent
|
|
185
|
-
*/
|
|
186
|
-
function extractConventionRulesFromDescription(description, patternName) {
|
|
187
|
-
if (!description || description.trim().length === 0)
|
|
188
|
-
return [];
|
|
189
|
-
// Split by ## headings (level 2 only, not ### or deeper)
|
|
190
|
-
// Allow optional leading whitespace for DocString content
|
|
191
|
-
const headingPattern = /^\s*## (?!#)(.+)$/gm;
|
|
192
|
-
const headings = [];
|
|
193
|
-
let match;
|
|
194
|
-
while ((match = headingPattern.exec(description)) !== null) {
|
|
195
|
-
const captured = match[1];
|
|
196
|
-
if (captured) {
|
|
197
|
-
headings.push({
|
|
198
|
-
name: captured.trim(),
|
|
199
|
-
index: match.index,
|
|
200
|
-
matchEnd: match.index + match[0].length,
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
if (headings.length === 0) {
|
|
205
|
-
// No headings: treat entire description as single rule
|
|
206
|
-
return [buildRuleContentFromText(description, patternName)];
|
|
207
|
-
}
|
|
208
|
-
const rules = [];
|
|
209
|
-
for (let i = 0; i < headings.length; i++) {
|
|
210
|
-
const heading = headings[i];
|
|
211
|
-
if (!heading)
|
|
212
|
-
continue;
|
|
213
|
-
const nextIndex = i + 1 < headings.length ? (headings[i + 1]?.index ?? description.length) : description.length;
|
|
214
|
-
// Content starts after the heading match (match includes the full "## Name" line)
|
|
215
|
-
// Use matchEnd instead of indexOf('\n', heading.index) because \s* in the regex
|
|
216
|
-
// can consume leading newlines, making heading.index point to those newlines
|
|
217
|
-
const contentStart = heading.matchEnd < description.length ? heading.matchEnd + 1 : description.length;
|
|
218
|
-
const content = description.slice(contentStart, nextIndex).trim();
|
|
219
|
-
if (content.length > 0) {
|
|
220
|
-
rules.push(buildRuleContentFromText(content, heading.name));
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
return rules;
|
|
224
|
-
}
|
|
225
|
-
// ============================================================================
|
|
226
|
-
// Extraction Function
|
|
227
|
-
// ============================================================================
|
|
228
|
-
/**
|
|
229
|
-
* Extracts convention content from MasterDataset.
|
|
230
|
-
*
|
|
231
|
-
* Filters patterns tagged with `@architect-convention` matching the
|
|
232
|
-
* requested tag values. For Gherkin-sourced patterns, extracts from
|
|
233
|
-
* Rule: blocks. For TypeScript-sourced patterns (no rules array),
|
|
234
|
-
* decomposes the JSDoc description by ## headings.
|
|
235
|
-
*
|
|
236
|
-
* @param dataset - The MasterDataset containing all extracted patterns
|
|
237
|
-
* @param conventionTags - Convention tag values to filter by
|
|
238
|
-
* @returns Array of ConventionBundles, one per requested tag value
|
|
239
|
-
*
|
|
240
|
-
* @example
|
|
241
|
-
* ```typescript
|
|
242
|
-
* const conventions = extractConventions(dataset, ['fsm-rules', 'testing-policy']);
|
|
243
|
-
* // conventions[0].conventionTag === 'fsm-rules'
|
|
244
|
-
* // conventions[0].rules[0].ruleName === 'FSM Transitions'
|
|
245
|
-
* // conventions[0].rules[0].tables[0].headers === ['From', 'To', 'Condition']
|
|
246
|
-
* ```
|
|
247
|
-
*/
|
|
248
|
-
export function extractConventions(dataset, conventionTags) {
|
|
249
|
-
if (conventionTags.length === 0)
|
|
250
|
-
return [];
|
|
251
|
-
const tagSet = new Set(conventionTags);
|
|
252
|
-
// Build a map of conventionTag -> { sourceDecisions, rules }
|
|
253
|
-
const bundles = new Map();
|
|
254
|
-
// Initialize bundles for all requested tags
|
|
255
|
-
for (const tag of conventionTags) {
|
|
256
|
-
bundles.set(tag, { sourceDecisions: [], rules: [] });
|
|
257
|
-
}
|
|
258
|
-
// Filter patterns that have convention tags matching our request
|
|
259
|
-
for (const pattern of dataset.patterns) {
|
|
260
|
-
if (!pattern.convention || pattern.convention.length === 0)
|
|
261
|
-
continue;
|
|
262
|
-
// Check if this pattern has any of the requested convention tags
|
|
263
|
-
const matchingTags = pattern.convention.filter((t) => tagSet.has(t));
|
|
264
|
-
if (matchingTags.length === 0)
|
|
265
|
-
continue;
|
|
266
|
-
// Extract rule content from Gherkin Rule: blocks or TypeScript JSDoc description
|
|
267
|
-
let ruleContents;
|
|
268
|
-
if (pattern.rules && pattern.rules.length > 0) {
|
|
269
|
-
// Gherkin source: extract from Rule: blocks
|
|
270
|
-
ruleContents = pattern.rules.map(extractConventionRuleContent);
|
|
271
|
-
}
|
|
272
|
-
else if (pattern.directive.description) {
|
|
273
|
-
// TypeScript source: decompose JSDoc description by ## headings
|
|
274
|
-
ruleContents = extractConventionRulesFromDescription(pattern.directive.description, pattern.name);
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
ruleContents = [];
|
|
278
|
-
}
|
|
279
|
-
// Only add to bundles if rules were extracted
|
|
280
|
-
if (ruleContents.length === 0)
|
|
281
|
-
continue;
|
|
282
|
-
for (const tag of matchingTags) {
|
|
283
|
-
const bundle = bundles.get(tag);
|
|
284
|
-
if (bundle) {
|
|
285
|
-
bundle.sourceDecisions.push(pattern.name);
|
|
286
|
-
bundle.rules.push(...ruleContents);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
// Convert map to array, preserving requested order
|
|
291
|
-
const result = [];
|
|
292
|
-
for (const tag of conventionTags) {
|
|
293
|
-
const bundle = bundles.get(tag);
|
|
294
|
-
if (!bundle)
|
|
295
|
-
continue;
|
|
296
|
-
if (bundle.rules.length === 0 && bundle.sourceDecisions.length === 0)
|
|
297
|
-
continue;
|
|
298
|
-
result.push({
|
|
299
|
-
conventionTag: tag,
|
|
300
|
-
sourceDecisions: bundle.sourceDecisions,
|
|
301
|
-
rules: bundle.rules,
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
return result;
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* Extract convention bundles from pre-filtered patterns.
|
|
308
|
-
*
|
|
309
|
-
* DD-1 (CrossCuttingDocumentInclusion): Used by the include-tag pass to
|
|
310
|
-
* build convention content from patterns selected by include tag rather
|
|
311
|
-
* than by conventionTags filter. Groups output by each pattern's convention
|
|
312
|
-
* tag values.
|
|
313
|
-
*
|
|
314
|
-
* @param patterns - Pre-filtered patterns that have convention content
|
|
315
|
-
* @returns Array of ConventionBundles
|
|
316
|
-
*/
|
|
317
|
-
export function extractConventionsFromPatterns(patterns) {
|
|
318
|
-
const bundles = new Map();
|
|
319
|
-
for (const pattern of patterns) {
|
|
320
|
-
if (!pattern.convention || pattern.convention.length === 0)
|
|
321
|
-
continue;
|
|
322
|
-
let ruleContents;
|
|
323
|
-
if (pattern.rules && pattern.rules.length > 0) {
|
|
324
|
-
ruleContents = pattern.rules.map(extractConventionRuleContent);
|
|
325
|
-
}
|
|
326
|
-
else if (pattern.directive.description) {
|
|
327
|
-
ruleContents = extractConventionRulesFromDescription(pattern.directive.description, pattern.name);
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
ruleContents = [];
|
|
331
|
-
}
|
|
332
|
-
if (ruleContents.length === 0)
|
|
333
|
-
continue;
|
|
334
|
-
for (const tag of pattern.convention) {
|
|
335
|
-
const bundle = bundles.get(tag) ?? { sourceDecisions: [], rules: [] };
|
|
336
|
-
bundle.sourceDecisions.push(pattern.name);
|
|
337
|
-
bundle.rules.push(...ruleContents);
|
|
338
|
-
bundles.set(tag, bundle);
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
const result = [];
|
|
342
|
-
for (const [tag, bundle] of bundles) {
|
|
343
|
-
if (bundle.rules.length === 0)
|
|
344
|
-
continue;
|
|
345
|
-
result.push({
|
|
346
|
-
conventionTag: tag,
|
|
347
|
-
sourceDecisions: bundle.sourceDecisions,
|
|
348
|
-
rules: bundle.rules,
|
|
349
|
-
});
|
|
350
|
-
}
|
|
351
|
-
return result;
|
|
352
|
-
}
|
|
353
|
-
//# sourceMappingURL=convention-extractor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convention-extractor.js","sourceRoot":"","sources":["../../../src/renderable/codecs/convention-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAsD5D,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,WAAmB;IAC9D,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAE5B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,IAAI,iBAAiB,GAAa,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,kCAAkC;YAClC,MAAM,MAAM,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAClD,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,iBAAiB,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAClD,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,WAAmB;IAC9D,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAC;IACnE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAAe;IACtC,oCAAoC;IACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAElD,oEAAoE;IACpE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,WAAW,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzE,mFAAmF;IACnF,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvC,MAAM,IAAI,GAAkC,EAAE,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,MAAM,EAAE,CAAC;gBACX,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAW,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAuB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClC,OAAO,IAAI,GAAG,CAAC;YACf,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3B,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,IAAY,EAAE,QAAgB;IAC9D,MAAM,WAAW,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAElD,OAAO;QACL,QAAQ;QACR,GAAG,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;QAChF,GAAG,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;QAChF,GAAG,CAAC,WAAW,CAAC,UAAU,KAAK,SAAS,IAAI;YAC1C,UAAU,EAAE,WAAW,CAAC,UAAU;SACnC,CAAC;QACF,MAAM;QACN,GAAG,CAAC,WAAW,CAAC,YAAY,KAAK,SAAS;YACxC,WAAW,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI;YACrC,YAAY,EAAE,WAAW,CAAC,YAAY;SACvC,CAAC;QACJ,SAAS,EAAE,WAAW,CAAC,gBAAgB,IAAI,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CAAC,IAAkB;IACtD,OAAO,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E;;;;;;;;;;;;GAYG;AACH,SAAS,qCAAqC,CAC5C,WAAmB,EACnB,WAAmB;IAEnB,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE/D,yDAAyD;IACzD,0DAA0D;IAC1D,MAAM,cAAc,GAAG,qBAAqB,CAAC;IAC7C,MAAM,QAAQ,GAA6D,EAAE,CAAC;IAC9E,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;gBACrB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;aACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,uDAAuD;QACvD,OAAO,CAAC,wBAAwB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,KAAK,GAA4B,EAAE,CAAC;IAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,SAAS,GACb,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;QAChG,kFAAkF;QAClF,gFAAgF;QAChF,6EAA6E;QAC7E,MAAM,YAAY,GAChB,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;QACpF,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QAElE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAsB,EACtB,cAAiC;IAEjC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IAEvC,6DAA6D;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyE,CAAC;IAEjG,4CAA4C;IAC5C,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,iEAAiE;IACjE,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAErE,iEAAiE;QACjE,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAExC,iFAAiF;QACjF,IAAI,YAAqC,CAAC;QAC1C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,4CAA4C;YAC5C,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YACzC,gEAAgE;YAChE,YAAY,GAAG,qCAAqC,CAClD,OAAO,CAAC,SAAS,CAAC,WAAW,EAC7B,OAAO,CAAC,IAAI,CACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,EAAE,CAAC;QACpB,CAAC;QAED,8CAA8C;QAC9C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAExC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC/E,MAAM,CAAC,IAAI,CAAC;YACV,aAAa,EAAE,GAAG;YAClB,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B,CAC5C,QAAqC;IAErC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyE,CAAC;IAEjG,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAErE,IAAI,YAAqC,CAAC;QAC1C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YACzC,YAAY,GAAG,qCAAqC,CAClD,OAAO,CAAC,SAAS,CAAC,WAAW,EAC7B,OAAO,CAAC,IAAI,CACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAExC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACtE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACxC,MAAM,CAAC,IAAI,CAAC;YACV,aAAa,EAAE,GAAG;YAClB,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,308 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @architect
|
|
3
|
-
* @architect-core
|
|
4
|
-
* @architect-pattern DecisionDocCodec
|
|
5
|
-
* @architect-status completed
|
|
6
|
-
* @architect-arch-role projection
|
|
7
|
-
* @architect-arch-context renderer
|
|
8
|
-
* @architect-arch-layer application
|
|
9
|
-
*
|
|
10
|
-
* ## Decision Doc Codec
|
|
11
|
-
*
|
|
12
|
-
* Parses decision documents (ADR/PDR in .feature format) and extracts content
|
|
13
|
-
* for documentation generation. Provides parsing utilities for source mapping
|
|
14
|
-
* tables, self-reference markers, and rule block extraction.
|
|
15
|
-
*
|
|
16
|
-
* ### When to Use
|
|
17
|
-
*
|
|
18
|
-
* - When extracting content from decision documents for doc generation
|
|
19
|
-
* - When parsing Rule: blocks for Context/Decision/Consequences sections
|
|
20
|
-
* - When extracting DocStrings (fenced code blocks) with language tags
|
|
21
|
-
* - When parsing source mapping tables from decision descriptions
|
|
22
|
-
*
|
|
23
|
-
* ### Source Mapping Table Format
|
|
24
|
-
*
|
|
25
|
-
* ```
|
|
26
|
-
* | Section | Source File | Extraction Method |
|
|
27
|
-
* | Intro & Context | THIS DECISION | Decision rule description |
|
|
28
|
-
* | API Types | src/types.ts | @extract-shapes tag |
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
|
-
* ### Self-Reference Markers
|
|
32
|
-
*
|
|
33
|
-
* - `THIS DECISION` - Extract from the current decision document
|
|
34
|
-
* - `THIS DECISION (Rule: X)` - Extract specific Rule: block
|
|
35
|
-
* - `THIS DECISION (DocString)` - Extract fenced code blocks
|
|
36
|
-
*/
|
|
37
|
-
import type { BusinessRule } from '../../validation-schemas/extracted-pattern.js';
|
|
38
|
-
import { type PartitionedRules } from './helpers.js';
|
|
39
|
-
import type { SectionBlock, CodeBlock } from '../schema.js';
|
|
40
|
-
/**
|
|
41
|
-
* Entry in a source mapping table
|
|
42
|
-
*
|
|
43
|
-
* Defines how a documentation section is assembled from source files.
|
|
44
|
-
*/
|
|
45
|
-
export interface SourceMappingEntry {
|
|
46
|
-
/** Target section heading in generated doc (e.g., "Intro & Context", "API Types") */
|
|
47
|
-
section: string;
|
|
48
|
-
/** Path to source file or self-reference marker (e.g., "src/types.ts", "THIS DECISION") */
|
|
49
|
-
sourceFile: string;
|
|
50
|
-
/** How to extract content from source (e.g., "@extract-shapes", "Rule blocks") */
|
|
51
|
-
extractionMethod: string;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Partitioned rules from a decision document.
|
|
55
|
-
* Re-exported from helpers for convenience.
|
|
56
|
-
*/
|
|
57
|
-
export type PartitionedDecisionRules = PartitionedRules;
|
|
58
|
-
/**
|
|
59
|
-
* Extracted DocString with language tag
|
|
60
|
-
*/
|
|
61
|
-
export interface ExtractedDocString {
|
|
62
|
-
/** Language tag from the fenced code block (e.g., "typescript", "bash") */
|
|
63
|
-
language: string;
|
|
64
|
-
/** Content of the DocString */
|
|
65
|
-
content: string;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Result of parsing a self-reference marker
|
|
69
|
-
*
|
|
70
|
-
* Identifies whether the reference points to:
|
|
71
|
-
* - The entire document (`document`)
|
|
72
|
-
* - A specific Rule: block (`rule` with name)
|
|
73
|
-
* - DocStrings in the document (`docstring`)
|
|
74
|
-
*/
|
|
75
|
-
export interface SelfReferenceResult {
|
|
76
|
-
/** Type of self-reference */
|
|
77
|
-
type: 'document' | 'rule' | 'docstring';
|
|
78
|
-
/** Name of the rule block (only for type: 'rule') */
|
|
79
|
-
name?: string;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Parsed content from a decision document
|
|
83
|
-
*
|
|
84
|
-
* Contains all extracted content from ADR/PDR feature files including:
|
|
85
|
-
* - Partitioned rules (Context/Decision/Consequences)
|
|
86
|
-
* - DocStrings with language tags
|
|
87
|
-
* - Source mapping entries
|
|
88
|
-
*/
|
|
89
|
-
export interface DecisionDocContent {
|
|
90
|
-
/** Pattern name from the decision document */
|
|
91
|
-
patternName: string;
|
|
92
|
-
/** Feature description text (before any rules) */
|
|
93
|
-
description: string;
|
|
94
|
-
/** Partitioned rules by semantic category */
|
|
95
|
-
rules: PartitionedDecisionRules;
|
|
96
|
-
/** Extracted DocStrings with language tags */
|
|
97
|
-
docStrings: ExtractedDocString[];
|
|
98
|
-
/** Source mapping entries parsed from tables */
|
|
99
|
-
sourceMappings: SourceMappingEntry[];
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Self-reference marker indicating content should be extracted from current document
|
|
103
|
-
*/
|
|
104
|
-
export declare const SELF_REFERENCE_MARKER = "THIS DECISION";
|
|
105
|
-
/**
|
|
106
|
-
* Pattern for self-reference with specific Rule: block
|
|
107
|
-
* Matches: "THIS DECISION (Rule: SomeName)"
|
|
108
|
-
*/
|
|
109
|
-
export declare const SELF_REFERENCE_RULE_PATTERN: RegExp;
|
|
110
|
-
/**
|
|
111
|
-
* Pattern for self-reference to DocStrings
|
|
112
|
-
* Matches: "THIS DECISION (DocString)"
|
|
113
|
-
*/
|
|
114
|
-
export declare const SELF_REFERENCE_DOCSTRING_PATTERN: RegExp;
|
|
115
|
-
/**
|
|
116
|
-
* Partition decision rules by semantic prefix
|
|
117
|
-
*
|
|
118
|
-
* Wrapper around shared partitionRulesByPrefix that doesn't warn about "other" rules.
|
|
119
|
-
* Decision docs may have additional rules like "Proof of Concept" or "Expected Output"
|
|
120
|
-
* that are valid but don't fit the standard ADR sections.
|
|
121
|
-
*
|
|
122
|
-
* @param rules - Business rules from the extracted pattern
|
|
123
|
-
* @param _patternName - Pattern name for context (unused, kept for API compatibility)
|
|
124
|
-
* @returns Partitioned rules by category
|
|
125
|
-
*/
|
|
126
|
-
export declare function partitionDecisionRules(rules: readonly BusinessRule[] | undefined, _patternName?: string): PartitionedDecisionRules;
|
|
127
|
-
/**
|
|
128
|
-
* Extract DocStrings (fenced code blocks) from text content
|
|
129
|
-
*
|
|
130
|
-
* Supports two formats:
|
|
131
|
-
* - Gherkin DocStrings: """language\ncontent\n"""
|
|
132
|
-
* - Markdown code fences: ```language\ncontent\n```
|
|
133
|
-
*
|
|
134
|
-
* @param text - Text content that may contain DocStrings
|
|
135
|
-
* @returns Array of extracted DocStrings with language tags
|
|
136
|
-
*
|
|
137
|
-
* @example
|
|
138
|
-
* ```typescript
|
|
139
|
-
* const docStrings = extractDocStrings(`
|
|
140
|
-
* Some text...
|
|
141
|
-
*
|
|
142
|
-
* """bash
|
|
143
|
-
* npm install
|
|
144
|
-
* """
|
|
145
|
-
*
|
|
146
|
-
* More text...
|
|
147
|
-
*
|
|
148
|
-
* """typescript
|
|
149
|
-
* const x = 1;
|
|
150
|
-
* """
|
|
151
|
-
* `);
|
|
152
|
-
* // Returns: [
|
|
153
|
-
* // { language: 'bash', content: 'npm install' },
|
|
154
|
-
* // { language: 'typescript', content: 'const x = 1;' }
|
|
155
|
-
* // ]
|
|
156
|
-
* ```
|
|
157
|
-
*/
|
|
158
|
-
export declare function extractDocStrings(text: string): ExtractedDocString[];
|
|
159
|
-
/**
|
|
160
|
-
* Extract DocStrings from business rules
|
|
161
|
-
*
|
|
162
|
-
* Iterates through rule descriptions and extracts all embedded DocStrings.
|
|
163
|
-
*
|
|
164
|
-
* @param rules - Business rules to extract DocStrings from
|
|
165
|
-
* @returns Array of extracted DocStrings with language tags
|
|
166
|
-
*/
|
|
167
|
-
export declare function extractDocStringsFromRules(rules: readonly BusinessRule[] | undefined): ExtractedDocString[];
|
|
168
|
-
/**
|
|
169
|
-
* Parse a source mapping table from markdown text
|
|
170
|
-
*
|
|
171
|
-
* Expected format:
|
|
172
|
-
* ```
|
|
173
|
-
* | Section | Source File | Extraction Method |
|
|
174
|
-
* | Intro & Context | THIS DECISION (Rule: Context above) | Decision rule description |
|
|
175
|
-
* | API Types | src/types.ts | @extract-shapes tag |
|
|
176
|
-
* ```
|
|
177
|
-
*
|
|
178
|
-
* The table must have headers: Section, Source File (or Source), Extraction Method (or Extraction)
|
|
179
|
-
*
|
|
180
|
-
* @param text - Text content that may contain a source mapping table
|
|
181
|
-
* @returns Array of source mapping entries, empty if no table found
|
|
182
|
-
*
|
|
183
|
-
* @example
|
|
184
|
-
* ```typescript
|
|
185
|
-
* const mappings = parseSourceMappingTable(`
|
|
186
|
-
* **Source Mapping for Process Guard:**
|
|
187
|
-
*
|
|
188
|
-
* | Section | Source File | Extraction Method |
|
|
189
|
-
* | Intro & Context | THIS DECISION | Decision rule description |
|
|
190
|
-
* | API Types | src/types.ts | @extract-shapes tag |
|
|
191
|
-
* `);
|
|
192
|
-
* // Returns: [
|
|
193
|
-
* // { section: 'Intro & Context', sourceFile: 'THIS DECISION', extractionMethod: 'Decision rule description' },
|
|
194
|
-
* // { section: 'API Types', sourceFile: 'src/types.ts', extractionMethod: '@extract-shapes tag' }
|
|
195
|
-
* // ]
|
|
196
|
-
* ```
|
|
197
|
-
*/
|
|
198
|
-
export declare function parseSourceMappingTable(text: string): SourceMappingEntry[];
|
|
199
|
-
/**
|
|
200
|
-
* Parse source mapping tables from business rules
|
|
201
|
-
*
|
|
202
|
-
* Searches through rule descriptions for source mapping tables.
|
|
203
|
-
*
|
|
204
|
-
* @param rules - Business rules to search for source mapping tables
|
|
205
|
-
* @returns Array of source mapping entries from all rules
|
|
206
|
-
*/
|
|
207
|
-
export declare function parseSourceMappingsFromRules(rules: readonly BusinessRule[] | undefined): SourceMappingEntry[];
|
|
208
|
-
/**
|
|
209
|
-
* Check if a source file reference is a self-reference
|
|
210
|
-
*
|
|
211
|
-
* @param sourceFile - The source file path to check
|
|
212
|
-
* @returns True if the reference is to the current decision document, false for null/undefined
|
|
213
|
-
*/
|
|
214
|
-
export declare function isSelfReference(sourceFile: string): boolean;
|
|
215
|
-
/**
|
|
216
|
-
* Parse a self-reference to extract the referenced element
|
|
217
|
-
*
|
|
218
|
-
* @param sourceFile - The source file reference to parse
|
|
219
|
-
* @returns Object with type and optional name, or null if not a self-reference
|
|
220
|
-
*
|
|
221
|
-
* @example
|
|
222
|
-
* ```typescript
|
|
223
|
-
* parseSelfReference('THIS DECISION');
|
|
224
|
-
* // Returns: { type: 'document' }
|
|
225
|
-
*
|
|
226
|
-
* parseSelfReference('THIS DECISION (Rule: Context above)');
|
|
227
|
-
* // Returns: { type: 'rule', name: 'Context above' }
|
|
228
|
-
*
|
|
229
|
-
* parseSelfReference('THIS DECISION (DocString)');
|
|
230
|
-
* // Returns: { type: 'docstring' }
|
|
231
|
-
*
|
|
232
|
-
* parseSelfReference('src/types.ts');
|
|
233
|
-
* // Returns: null
|
|
234
|
-
* ```
|
|
235
|
-
*/
|
|
236
|
-
export declare function parseSelfReference(sourceFile: string): SelfReferenceResult | null;
|
|
237
|
-
/**
|
|
238
|
-
* Find a specific rule by name (flexible matching)
|
|
239
|
-
*
|
|
240
|
-
* Matching strategy (in order):
|
|
241
|
-
* 1. Exact match on full name
|
|
242
|
-
* 2. Rule name contains search term
|
|
243
|
-
* 3. Both start with the same word (e.g., "Context above" matches "Context - ...")
|
|
244
|
-
*
|
|
245
|
-
* @param rules - Rules to search
|
|
246
|
-
* @param ruleName - Name to search for (case-insensitive)
|
|
247
|
-
* @returns The matching rule or undefined
|
|
248
|
-
*/
|
|
249
|
-
export declare function findRuleByName(rules: readonly BusinessRule[] | undefined, ruleName: string): BusinessRule | undefined;
|
|
250
|
-
/**
|
|
251
|
-
* Extract content from a rule's description
|
|
252
|
-
*
|
|
253
|
-
* Returns the description text with DocStrings parsed as code blocks.
|
|
254
|
-
*
|
|
255
|
-
* @param rule - The rule to extract content from
|
|
256
|
-
* @returns Array of SectionBlocks representing the rule content
|
|
257
|
-
*/
|
|
258
|
-
export declare function extractRuleContent(rule: BusinessRule): SectionBlock[];
|
|
259
|
-
/**
|
|
260
|
-
* Parse a complete decision document
|
|
261
|
-
*
|
|
262
|
-
* Extracts all relevant content from an ADR/PDR pattern including:
|
|
263
|
-
* - Partitioned rules (Context/Decision/Consequences/Other)
|
|
264
|
-
* - DocStrings with language tags
|
|
265
|
-
* - Source mapping entries
|
|
266
|
-
*
|
|
267
|
-
* @param patternName - The pattern name
|
|
268
|
-
* @param description - The feature description
|
|
269
|
-
* @param rules - Business rules from the pattern
|
|
270
|
-
* @returns Parsed decision document content
|
|
271
|
-
*
|
|
272
|
-
* @example
|
|
273
|
-
* ```typescript
|
|
274
|
-
* const content = parseDecisionDocument(
|
|
275
|
-
* 'DocGenerationProofOfConcept',
|
|
276
|
-
* pattern.directive.description ?? '',
|
|
277
|
-
* pattern.rules
|
|
278
|
-
* );
|
|
279
|
-
* ```
|
|
280
|
-
*/
|
|
281
|
-
export declare function parseDecisionDocument(patternName: string, description: string, rules: readonly BusinessRule[] | undefined): DecisionDocContent;
|
|
282
|
-
/**
|
|
283
|
-
* Known extraction methods and their descriptions
|
|
284
|
-
*/
|
|
285
|
-
export declare const EXTRACTION_METHODS: {
|
|
286
|
-
readonly DECISION_RULE_DESCRIPTION: "Decision rule description";
|
|
287
|
-
readonly EXTRACT_SHAPES: "@extract-shapes tag";
|
|
288
|
-
readonly RULE_BLOCKS: "Rule blocks";
|
|
289
|
-
readonly SCENARIO_OUTLINE_EXAMPLES: "Scenario Outline Examples";
|
|
290
|
-
readonly JSDOC_SECTION: "JSDoc section";
|
|
291
|
-
readonly CREATE_VIOLATION_PATTERNS: "createViolation() patterns";
|
|
292
|
-
readonly FENCED_CODE_BLOCK: "Fenced code block";
|
|
293
|
-
};
|
|
294
|
-
/**
|
|
295
|
-
* Normalize an extraction method string to a known type
|
|
296
|
-
*
|
|
297
|
-
* @param method - The extraction method string from the source mapping
|
|
298
|
-
* @returns Normalized method key or 'unknown'
|
|
299
|
-
*/
|
|
300
|
-
export declare function normalizeExtractionMethod(method: string): keyof typeof EXTRACTION_METHODS | 'unknown';
|
|
301
|
-
/**
|
|
302
|
-
* Convert ExtractedDocStrings to CodeBlock SectionBlocks
|
|
303
|
-
*
|
|
304
|
-
* @param docStrings - Extracted DocStrings
|
|
305
|
-
* @returns Array of CodeBlock sections
|
|
306
|
-
*/
|
|
307
|
-
export declare function docStringsToCodeBlocks(docStrings: ExtractedDocString[]): CodeBlock[];
|
|
308
|
-
//# sourceMappingURL=decision-doc.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decision-doc.d.ts","sourceRoot":"","sources":["../../../src/renderable/codecs/decision-doc.ts"],"names":[],"mappings":"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"}
|