@memoarchitect/tools 0.6.7 → 0.8.7
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/README.md +36 -11
- package/corpus/README.md +63 -0
- package/corpus/sysml-v2-release/bnf/SysML-graphical-bnf.kgbnf +2264 -0
- package/package.json +20 -7
- package/packages/tools/lib/analysis/dsm.d.ts +1 -1
- package/packages/tools/lib/analysis/dsm.d.ts.map +1 -1
- package/packages/tools/lib/analysis/dsm.js +1 -1
- package/packages/tools/lib/analysis/dsm.js.map +1 -1
- package/packages/tools/lib/bin/memo.js +186 -10
- package/packages/tools/lib/bin/memo.js.map +1 -1
- package/packages/tools/lib/browser/index.d.ts +3 -1
- package/packages/tools/lib/browser/index.d.ts.map +1 -1
- package/packages/tools/lib/browser/index.js +2 -1
- package/packages/tools/lib/browser/index.js.map +1 -1
- package/packages/tools/lib/commands/ask.js +1 -1
- package/packages/tools/lib/commands/ask.js.map +1 -1
- package/packages/tools/lib/commands/check.d.ts.map +1 -1
- package/packages/tools/lib/commands/check.js +3 -9
- package/packages/tools/lib/commands/check.js.map +1 -1
- package/packages/tools/lib/commands/conformance.d.ts +36 -0
- package/packages/tools/lib/commands/conformance.d.ts.map +1 -0
- package/packages/tools/lib/commands/conformance.js +212 -0
- package/packages/tools/lib/commands/conformance.js.map +1 -0
- package/packages/tools/lib/commands/convert.d.ts +12 -0
- package/packages/tools/lib/commands/convert.d.ts.map +1 -0
- package/packages/tools/lib/commands/convert.js +103 -0
- package/packages/tools/lib/commands/convert.js.map +1 -0
- package/packages/tools/lib/commands/create-package.d.ts +1 -2
- package/packages/tools/lib/commands/create-package.d.ts.map +1 -1
- package/packages/tools/lib/commands/create-package.js.map +1 -1
- package/packages/tools/lib/commands/dev.d.ts +13 -0
- package/packages/tools/lib/commands/dev.d.ts.map +1 -1
- package/packages/tools/lib/commands/dev.js +245 -89
- package/packages/tools/lib/commands/dev.js.map +1 -1
- package/packages/tools/lib/commands/dhf-draft.js +1 -1
- package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
- package/packages/tools/lib/commands/dhf-lint.d.ts +10 -0
- package/packages/tools/lib/commands/dhf-lint.d.ts.map +1 -0
- package/packages/tools/lib/commands/dhf-lint.js +72 -0
- package/packages/tools/lib/commands/dhf-lint.js.map +1 -0
- package/packages/tools/lib/commands/dhf-preview.js +1 -1
- package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
- package/packages/tools/lib/commands/dhf.d.ts.map +1 -1
- package/packages/tools/lib/commands/dhf.js +8 -2
- package/packages/tools/lib/commands/dhf.js.map +1 -1
- package/packages/tools/lib/commands/element.d.ts +34 -0
- package/packages/tools/lib/commands/element.d.ts.map +1 -0
- package/packages/tools/lib/commands/element.js +174 -0
- package/packages/tools/lib/commands/element.js.map +1 -0
- package/packages/tools/lib/commands/export.d.ts.map +1 -1
- package/packages/tools/lib/commands/export.js +39 -40
- package/packages/tools/lib/commands/export.js.map +1 -1
- package/packages/tools/lib/commands/generate.d.ts.map +1 -1
- package/packages/tools/lib/commands/generate.js +10 -7
- package/packages/tools/lib/commands/generate.js.map +1 -1
- package/packages/tools/lib/commands/import.d.ts.map +1 -1
- package/packages/tools/lib/commands/import.js +25 -12
- package/packages/tools/lib/commands/import.js.map +1 -1
- package/packages/tools/lib/commands/init.d.ts.map +1 -1
- package/packages/tools/lib/commands/init.js +34 -14
- package/packages/tools/lib/commands/init.js.map +1 -1
- package/packages/tools/lib/commands/inspect.d.ts +5 -0
- package/packages/tools/lib/commands/inspect.d.ts.map +1 -0
- package/packages/tools/lib/commands/inspect.js +56 -0
- package/packages/tools/lib/commands/inspect.js.map +1 -0
- package/packages/tools/lib/commands/lock.d.ts.map +1 -1
- package/packages/tools/lib/commands/lock.js +7 -2
- package/packages/tools/lib/commands/lock.js.map +1 -1
- package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
- package/packages/tools/lib/commands/ontology.js +69 -116
- package/packages/tools/lib/commands/ontology.js.map +1 -1
- package/packages/tools/lib/commands/pack.d.ts +1 -1
- package/packages/tools/lib/commands/pack.d.ts.map +1 -1
- package/packages/tools/lib/commands/pack.js +20 -78
- package/packages/tools/lib/commands/pack.js.map +1 -1
- package/packages/tools/lib/commands/package.d.ts +10 -0
- package/packages/tools/lib/commands/package.d.ts.map +1 -0
- package/packages/tools/lib/commands/package.js +113 -0
- package/packages/tools/lib/commands/package.js.map +1 -0
- package/packages/tools/lib/commands/plugin.js +1 -1
- package/packages/tools/lib/commands/plugin.js.map +1 -1
- package/packages/tools/lib/commands/rules.d.ts.map +1 -1
- package/packages/tools/lib/commands/rules.js +120 -30
- package/packages/tools/lib/commands/rules.js.map +1 -1
- package/packages/tools/lib/commands/standards.d.ts +28 -0
- package/packages/tools/lib/commands/standards.d.ts.map +1 -0
- package/packages/tools/lib/commands/standards.js +203 -0
- package/packages/tools/lib/commands/standards.js.map +1 -0
- package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
- package/packages/tools/lib/commands/sysand-publish.js +14 -16
- package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
- package/packages/tools/lib/commands/toolchain.d.ts +8 -0
- package/packages/tools/lib/commands/toolchain.d.ts.map +1 -0
- package/packages/tools/lib/commands/toolchain.js +64 -0
- package/packages/tools/lib/commands/toolchain.js.map +1 -0
- package/packages/tools/lib/commands/validate.d.ts +1 -1
- package/packages/tools/lib/commands/validate.d.ts.map +1 -1
- package/packages/tools/lib/commands/validate.js +194 -56
- package/packages/tools/lib/commands/validate.js.map +1 -1
- package/packages/tools/lib/completeness/tracker.d.ts +10 -2
- package/packages/tools/lib/completeness/tracker.d.ts.map +1 -1
- package/packages/tools/lib/completeness/tracker.js +16 -21
- package/packages/tools/lib/completeness/tracker.js.map +1 -1
- package/packages/tools/lib/conformance/baseline.d.ts +26 -0
- package/packages/tools/lib/conformance/baseline.d.ts.map +1 -0
- package/packages/tools/lib/conformance/baseline.js +170 -0
- package/packages/tools/lib/conformance/baseline.js.map +1 -0
- package/packages/tools/lib/conformance/bnf.d.ts +84 -0
- package/packages/tools/lib/conformance/bnf.d.ts.map +1 -0
- package/packages/tools/lib/conformance/bnf.js +166 -0
- package/packages/tools/lib/conformance/bnf.js.map +1 -0
- package/packages/tools/lib/conformance/corpus.d.ts +125 -0
- package/packages/tools/lib/conformance/corpus.d.ts.map +1 -0
- package/packages/tools/lib/conformance/corpus.js +190 -0
- package/packages/tools/lib/conformance/corpus.js.map +1 -0
- package/packages/tools/lib/conformance/diff-xmi.d.ts +118 -0
- package/packages/tools/lib/conformance/diff-xmi.d.ts.map +1 -0
- package/packages/tools/lib/conformance/diff-xmi.js +276 -0
- package/packages/tools/lib/conformance/diff-xmi.js.map +1 -0
- package/packages/tools/lib/conformance/generated/syside-rules.d.ts +10 -0
- package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +1 -0
- package/packages/tools/lib/conformance/generated/syside-rules.js +1142 -0
- package/packages/tools/lib/conformance/generated/syside-rules.js.map +1 -0
- package/packages/tools/lib/conformance/index.d.ts +7 -0
- package/packages/tools/lib/conformance/index.d.ts.map +1 -0
- package/packages/tools/lib/conformance/index.js +19 -0
- package/packages/tools/lib/conformance/index.js.map +1 -0
- package/packages/tools/lib/conformance/run.d.ts +117 -0
- package/packages/tools/lib/conformance/run.d.ts.map +1 -0
- package/packages/tools/lib/conformance/run.js +0 -0
- package/packages/tools/lib/conformance/run.js.map +1 -0
- package/packages/tools/lib/conformance/xmi.d.ts +45 -0
- package/packages/tools/lib/conformance/xmi.d.ts.map +1 -0
- package/packages/tools/lib/conformance/xmi.js +148 -0
- package/packages/tools/lib/conformance/xmi.js.map +1 -0
- package/packages/tools/lib/dhf/document-compiler.d.ts.map +1 -1
- package/packages/tools/lib/dhf/document-compiler.js +13 -8
- package/packages/tools/lib/dhf/document-compiler.js.map +1 -1
- package/packages/tools/lib/dhf/document-registry.d.ts +16 -2
- package/packages/tools/lib/dhf/document-registry.d.ts.map +1 -1
- package/packages/tools/lib/dhf/document-registry.js +74 -23
- package/packages/tools/lib/dhf/document-registry.js.map +1 -1
- package/packages/tools/lib/dhf/index.d.ts +3 -0
- package/packages/tools/lib/dhf/index.d.ts.map +1 -1
- package/packages/tools/lib/dhf/index.js +4 -0
- package/packages/tools/lib/dhf/index.js.map +1 -1
- package/packages/tools/lib/dhf/query-engine.d.ts +12 -1
- package/packages/tools/lib/dhf/query-engine.d.ts.map +1 -1
- package/packages/tools/lib/dhf/query-engine.js +2 -1
- package/packages/tools/lib/dhf/query-engine.js.map +1 -1
- package/packages/tools/lib/dhf/query-executor.d.ts +72 -5
- package/packages/tools/lib/dhf/query-executor.d.ts.map +1 -1
- package/packages/tools/lib/dhf/query-executor.js +471 -81
- package/packages/tools/lib/dhf/query-executor.js.map +1 -1
- package/packages/tools/lib/dhf/script-runner.js +6 -6
- package/packages/tools/lib/dhf/script-runner.js.map +1 -1
- package/packages/tools/lib/dhf/standards-block.d.ts +40 -0
- package/packages/tools/lib/dhf/standards-block.d.ts.map +1 -0
- package/packages/tools/lib/dhf/standards-block.js +223 -0
- package/packages/tools/lib/dhf/standards-block.js.map +1 -0
- package/packages/tools/lib/dhf/standards-library.d.ts +123 -0
- package/packages/tools/lib/dhf/standards-library.d.ts.map +1 -0
- package/packages/tools/lib/dhf/standards-library.js +295 -0
- package/packages/tools/lib/dhf/standards-library.js.map +1 -0
- package/packages/tools/lib/dhf/standards-report.d.ts +189 -0
- package/packages/tools/lib/dhf/standards-report.d.ts.map +1 -0
- package/packages/tools/lib/dhf/standards-report.js +384 -0
- package/packages/tools/lib/dhf/standards-report.js.map +1 -0
- package/packages/tools/lib/dhf/template-lint.d.ts +42 -0
- package/packages/tools/lib/dhf/template-lint.d.ts.map +1 -0
- package/packages/tools/lib/dhf/template-lint.js +421 -0
- package/packages/tools/lib/dhf/template-lint.js.map +1 -0
- package/packages/tools/lib/dhf/template-resolver.d.ts.map +1 -1
- package/packages/tools/lib/dhf/template-resolver.js +18 -6
- package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
- package/packages/tools/lib/import/column-mapper.d.ts +2 -2
- package/packages/tools/lib/import/column-mapper.d.ts.map +1 -1
- package/packages/tools/lib/import/column-mapper.js +3 -3
- package/packages/tools/lib/import/column-mapper.js.map +1 -1
- package/packages/tools/lib/importer/cameo-importer.js +2 -2
- package/packages/tools/lib/importer/cameo-importer.js.map +1 -1
- package/packages/tools/lib/importer/ea-importer.d.ts.map +1 -1
- package/packages/tools/lib/importer/ea-importer.js +4 -3
- package/packages/tools/lib/importer/ea-importer.js.map +1 -1
- package/packages/tools/lib/importer/owl-importer.d.ts.map +1 -1
- package/packages/tools/lib/importer/owl-importer.js +2 -3
- package/packages/tools/lib/importer/owl-importer.js.map +1 -1
- package/packages/tools/lib/index.d.ts +20 -3
- package/packages/tools/lib/index.d.ts.map +1 -1
- package/packages/tools/lib/index.js +19 -2
- package/packages/tools/lib/index.js.map +1 -1
- package/packages/tools/lib/language/generated/ast.d.ts +1344 -99
- package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
- package/packages/tools/lib/language/generated/ast.js +1066 -32
- package/packages/tools/lib/language/generated/ast.js.map +1 -1
- package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
- package/packages/tools/lib/language/generated/grammar.js +5242 -1454
- package/packages/tools/lib/language/generated/grammar.js.map +1 -1
- package/packages/tools/lib/llm/chat-engine.d.ts +4 -3
- package/packages/tools/lib/llm/chat-engine.d.ts.map +1 -1
- package/packages/tools/lib/llm/chat-engine.js +15 -12
- package/packages/tools/lib/llm/chat-engine.js.map +1 -1
- package/packages/tools/lib/llm/generate-engine.d.ts +7 -2
- package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -1
- package/packages/tools/lib/llm/generate-engine.js +22 -4
- package/packages/tools/lib/llm/generate-engine.js.map +1 -1
- package/packages/tools/lib/llm/index.d.ts +1 -0
- package/packages/tools/lib/llm/index.d.ts.map +1 -1
- package/packages/tools/lib/llm/index.js +1 -0
- package/packages/tools/lib/llm/index.js.map +1 -1
- package/packages/tools/lib/llm/model-context.d.ts +2 -2
- package/packages/tools/lib/llm/model-context.d.ts.map +1 -1
- package/packages/tools/lib/llm/model-context.js +7 -13
- package/packages/tools/lib/llm/model-context.js.map +1 -1
- package/packages/tools/lib/llm/sysml-guidance.d.ts +8 -0
- package/packages/tools/lib/llm/sysml-guidance.d.ts.map +1 -0
- package/packages/tools/lib/llm/sysml-guidance.js +28 -0
- package/packages/tools/lib/llm/sysml-guidance.js.map +1 -0
- package/packages/tools/lib/lock.d.ts +14 -8
- package/packages/tools/lib/lock.d.ts.map +1 -1
- package/packages/tools/lib/lock.js +97 -108
- package/packages/tools/lib/lock.js.map +1 -1
- package/packages/tools/lib/mcp/model-loader.d.ts +3 -0
- package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
- package/packages/tools/lib/mcp/model-loader.js +9 -5
- package/packages/tools/lib/mcp/model-loader.js.map +1 -1
- package/packages/tools/lib/mcp/tools.d.ts +3 -0
- package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
- package/packages/tools/lib/mcp/tools.js +8 -9
- package/packages/tools/lib/mcp/tools.js.map +1 -1
- package/packages/tools/lib/model/activity-notation.d.ts +54 -0
- package/packages/tools/lib/model/activity-notation.d.ts.map +1 -0
- package/packages/tools/lib/model/activity-notation.js +208 -0
- package/packages/tools/lib/model/activity-notation.js.map +1 -0
- package/packages/tools/lib/model/builder.d.ts +3 -0
- package/packages/tools/lib/model/builder.d.ts.map +1 -1
- package/packages/tools/lib/model/builder.js +956 -62
- package/packages/tools/lib/model/builder.js.map +1 -1
- package/packages/tools/lib/model/config-loader.d.ts +19 -25
- package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/config-loader.js +51 -233
- package/packages/tools/lib/model/config-loader.js.map +1 -1
- package/packages/tools/lib/model/config.d.ts +42 -213
- package/packages/tools/lib/model/config.d.ts.map +1 -1
- package/packages/tools/lib/model/config.js +11 -9
- package/packages/tools/lib/model/config.js.map +1 -1
- package/packages/tools/lib/model/effective-scope.d.ts +74 -0
- package/packages/tools/lib/model/effective-scope.d.ts.map +1 -0
- package/packages/tools/lib/model/effective-scope.js +133 -0
- package/packages/tools/lib/model/effective-scope.js.map +1 -0
- package/packages/tools/lib/model/ir-identity.d.ts +94 -0
- package/packages/tools/lib/model/ir-identity.d.ts.map +1 -0
- package/packages/tools/lib/model/ir-identity.js +178 -0
- package/packages/tools/lib/model/ir-identity.js.map +1 -0
- package/packages/tools/lib/model/kind-registry.d.ts +134 -1
- package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/kind-registry.js +186 -4
- package/packages/tools/lib/model/kind-registry.js.map +1 -1
- package/packages/tools/lib/model/layer-resolver.js +1 -1
- package/packages/tools/lib/model/layer-resolver.js.map +1 -1
- package/packages/tools/lib/model/manifest.d.ts +8 -0
- package/packages/tools/lib/model/manifest.d.ts.map +1 -1
- package/packages/tools/lib/model/manifest.js +3 -0
- package/packages/tools/lib/model/manifest.js.map +1 -1
- package/packages/tools/lib/model/methodology-loader.d.ts +19 -24
- package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/methodology-loader.js +179 -176
- package/packages/tools/lib/model/methodology-loader.js.map +1 -1
- package/packages/tools/lib/model/methodology-resolver.d.ts +115 -0
- package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -0
- package/packages/tools/lib/model/methodology-resolver.js +317 -0
- package/packages/tools/lib/model/methodology-resolver.js.map +1 -0
- package/packages/tools/lib/model/naming.d.ts +57 -0
- package/packages/tools/lib/model/naming.d.ts.map +1 -0
- package/packages/tools/lib/model/naming.js +69 -0
- package/packages/tools/lib/model/naming.js.map +1 -0
- package/packages/tools/lib/model/native-project.d.ts +130 -0
- package/packages/tools/lib/model/native-project.d.ts.map +1 -0
- package/packages/tools/lib/model/native-project.js +580 -0
- package/packages/tools/lib/model/native-project.js.map +1 -0
- package/packages/tools/lib/model/ontology-loader.d.ts +34 -21
- package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/ontology-loader.js +343 -614
- package/packages/tools/lib/model/ontology-loader.js.map +1 -1
- package/packages/tools/lib/model/package-manifest.d.ts +37 -0
- package/packages/tools/lib/model/package-manifest.d.ts.map +1 -0
- package/packages/tools/lib/model/package-manifest.js +96 -0
- package/packages/tools/lib/model/package-manifest.js.map +1 -0
- package/packages/tools/lib/model/parser-utils.d.ts +31 -0
- package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
- package/packages/tools/lib/model/parser-utils.js +89 -1
- package/packages/tools/lib/model/parser-utils.js.map +1 -1
- package/packages/tools/lib/model/paths.d.ts +10 -4
- package/packages/tools/lib/model/paths.d.ts.map +1 -1
- package/packages/tools/lib/model/paths.js +10 -4
- package/packages/tools/lib/model/paths.js.map +1 -1
- package/packages/tools/lib/model/project-conversion.d.ts +226 -0
- package/packages/tools/lib/model/project-conversion.d.ts.map +1 -0
- package/packages/tools/lib/model/project-conversion.js +946 -0
- package/packages/tools/lib/model/project-conversion.js.map +1 -0
- package/packages/tools/lib/model/relationship-legality.d.ts +27 -0
- package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
- package/packages/tools/lib/model/relationship-legality.js.map +1 -1
- package/packages/tools/lib/model/relationship-registry.d.ts +93 -1
- package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/relationship-registry.js +217 -2
- package/packages/tools/lib/model/relationship-registry.js.map +1 -1
- package/packages/tools/lib/model/semantic.d.ts +73 -0
- package/packages/tools/lib/model/semantic.d.ts.map +1 -1
- package/packages/tools/lib/model/semantic.js +6 -0
- package/packages/tools/lib/model/semantic.js.map +1 -1
- package/packages/tools/lib/model/settings-boundary.d.ts +19 -0
- package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -0
- package/packages/tools/lib/model/settings-boundary.js +118 -0
- package/packages/tools/lib/model/settings-boundary.js.map +1 -0
- package/packages/tools/lib/model/short-id.js +3 -3
- package/packages/tools/lib/model/short-id.js.map +1 -1
- package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
- package/packages/tools/lib/model/source-graph.js +5 -1
- package/packages/tools/lib/model/source-graph.js.map +1 -1
- package/packages/tools/lib/model/source-provenance.d.ts +112 -0
- package/packages/tools/lib/model/source-provenance.d.ts.map +1 -0
- package/packages/tools/lib/model/source-provenance.js +169 -0
- package/packages/tools/lib/model/source-provenance.js.map +1 -0
- package/packages/tools/lib/model/sysml-ir.d.ts +9 -0
- package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -0
- package/packages/tools/lib/model/sysml-ir.js +105 -0
- package/packages/tools/lib/model/sysml-ir.js.map +1 -0
- package/packages/tools/lib/model/view-deriver.d.ts +10 -1
- package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
- package/packages/tools/lib/model/view-deriver.js +139 -11
- package/packages/tools/lib/model/view-deriver.js.map +1 -1
- package/packages/tools/lib/model/view-kinds.d.ts +2 -0
- package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
- package/packages/tools/lib/model/view-kinds.js +11 -0
- package/packages/tools/lib/model/view-kinds.js.map +1 -1
- package/packages/tools/lib/ontology/owl-exporter.d.ts +2 -2
- package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
- package/packages/tools/lib/ontology/owl-exporter.js +12 -12
- package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
- package/packages/tools/lib/operations/ai-authoring.d.ts +24 -0
- package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -0
- package/packages/tools/lib/operations/ai-authoring.js +77 -0
- package/packages/tools/lib/operations/ai-authoring.js.map +1 -0
- package/packages/tools/lib/operations/authoring.d.ts +40 -0
- package/packages/tools/lib/operations/authoring.d.ts.map +1 -0
- package/packages/tools/lib/operations/authoring.js +56 -0
- package/packages/tools/lib/operations/authoring.js.map +1 -0
- package/packages/tools/lib/operations/index.d.ts +2 -0
- package/packages/tools/lib/operations/index.d.ts.map +1 -1
- package/packages/tools/lib/operations/index.js +2 -0
- package/packages/tools/lib/operations/index.js.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.d.ts +28 -3
- package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.js +79 -30
- package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
- package/packages/tools/lib/protocol/messages.d.ts +381 -12
- package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
- package/packages/tools/lib/serializer/csv-io.d.ts +7 -7
- package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
- package/packages/tools/lib/serializer/csv-io.js +11 -11
- package/packages/tools/lib/serializer/csv-io.js.map +1 -1
- package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
- package/packages/tools/lib/serializer/sysml-generator.js +34 -2
- package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
- package/packages/tools/lib/server/config-resolver.d.ts +8 -4
- package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
- package/packages/tools/lib/server/config-resolver.js +25 -44
- package/packages/tools/lib/server/config-resolver.js.map +1 -1
- package/packages/tools/lib/server/conflict-policy.d.ts +44 -0
- package/packages/tools/lib/server/conflict-policy.d.ts.map +1 -0
- package/packages/tools/lib/server/conflict-policy.js +94 -0
- package/packages/tools/lib/server/conflict-policy.js.map +1 -0
- package/packages/tools/lib/server/dev-server.d.ts +32 -2
- package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
- package/packages/tools/lib/server/dev-server.js +875 -54
- package/packages/tools/lib/server/dev-server.js.map +1 -1
- package/packages/tools/lib/server/element-writer.d.ts +11 -0
- package/packages/tools/lib/server/element-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/element-writer.js +123 -0
- package/packages/tools/lib/server/element-writer.js.map +1 -0
- package/packages/tools/lib/server/file-watcher.d.ts +4 -1
- package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
- package/packages/tools/lib/server/file-watcher.js +17 -7
- package/packages/tools/lib/server/file-watcher.js.map +1 -1
- package/packages/tools/lib/server/mutation-domain.d.ts +22 -0
- package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -0
- package/packages/tools/lib/server/mutation-domain.js +87 -0
- package/packages/tools/lib/server/mutation-domain.js.map +1 -0
- package/packages/tools/lib/server/package-source.d.ts +26 -0
- package/packages/tools/lib/server/package-source.d.ts.map +1 -0
- package/packages/tools/lib/server/package-source.js +81 -0
- package/packages/tools/lib/server/package-source.js.map +1 -0
- package/packages/tools/lib/server/package-writer.d.ts +94 -0
- package/packages/tools/lib/server/package-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/package-writer.js +317 -0
- package/packages/tools/lib/server/package-writer.js.map +1 -0
- package/packages/tools/lib/server/persistor.d.ts +81 -6
- package/packages/tools/lib/server/persistor.d.ts.map +1 -1
- package/packages/tools/lib/server/persistor.js +173 -44
- package/packages/tools/lib/server/persistor.js.map +1 -1
- package/packages/tools/lib/server/relationship-writer.d.ts +41 -5
- package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/relationship-writer.js +157 -13
- package/packages/tools/lib/server/relationship-writer.js.map +1 -1
- package/packages/tools/lib/server/rule-policy-writer.d.ts +40 -0
- package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/rule-policy-writer.js +124 -0
- package/packages/tools/lib/server/rule-policy-writer.js.map +1 -0
- package/packages/tools/lib/server/runtime-budget.d.ts +14 -0
- package/packages/tools/lib/server/runtime-budget.d.ts.map +1 -0
- package/packages/tools/lib/server/runtime-budget.js +15 -0
- package/packages/tools/lib/server/runtime-budget.js.map +1 -0
- package/packages/tools/lib/server/sysml-notation.d.ts +36 -0
- package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -0
- package/packages/tools/lib/server/sysml-notation.js +104 -0
- package/packages/tools/lib/server/sysml-notation.js.map +1 -0
- package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
- package/packages/tools/lib/server/view-layout-store.js +1 -0
- package/packages/tools/lib/server/view-layout-store.js.map +1 -1
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts +9 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js +315 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js.map +1 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts +5206 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js +1933 -0
- package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js.map +1 -0
- package/packages/tools/lib/sysml-ir/index.d.ts +3 -0
- package/packages/tools/lib/sysml-ir/index.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/index.js +3 -0
- package/packages/tools/lib/sysml-ir/index.js.map +1 -0
- package/packages/tools/lib/sysml-ir/ir.d.ts +50 -0
- package/packages/tools/lib/sysml-ir/ir.d.ts.map +1 -0
- package/packages/tools/lib/sysml-ir/ir.js +2 -0
- package/packages/tools/lib/sysml-ir/ir.js.map +1 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +3 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +1 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +97 -0
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +1 -0
- package/packages/tools/lib/sysmlc/index.d.ts +2 -0
- package/packages/tools/lib/sysmlc/index.d.ts.map +1 -0
- package/packages/tools/lib/sysmlc/index.js +7 -0
- package/packages/tools/lib/sysmlc/index.js.map +1 -0
- package/packages/tools/lib/sysmlc/server.d.ts +29 -0
- package/packages/tools/lib/sysmlc/server.d.ts.map +1 -0
- package/packages/tools/lib/sysmlc/server.js +168 -0
- package/packages/tools/lib/sysmlc/server.js.map +1 -0
- package/packages/tools/lib/toolchain/default-registry.d.ts +12 -0
- package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/default-registry.js +28 -0
- package/packages/tools/lib/toolchain/default-registry.js.map +1 -0
- package/packages/tools/lib/toolchain/diagnostic.d.ts +57 -0
- package/packages/tools/lib/toolchain/diagnostic.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/diagnostic.js +69 -0
- package/packages/tools/lib/toolchain/diagnostic.js.map +1 -0
- package/packages/tools/lib/toolchain/effective.d.ts +36 -0
- package/packages/tools/lib/toolchain/effective.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/effective.js +91 -0
- package/packages/tools/lib/toolchain/effective.js.map +1 -0
- package/packages/tools/lib/toolchain/index.d.ts +11 -0
- package/packages/tools/lib/toolchain/index.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/index.js +21 -0
- package/packages/tools/lib/toolchain/index.js.map +1 -0
- package/packages/tools/lib/toolchain/lowering.d.ts +63 -0
- package/packages/tools/lib/toolchain/lowering.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/lowering.js +100 -0
- package/packages/tools/lib/toolchain/lowering.js.map +1 -0
- package/packages/tools/lib/toolchain/operations.d.ts +87 -0
- package/packages/tools/lib/toolchain/operations.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/operations.js +111 -0
- package/packages/tools/lib/toolchain/operations.js.map +1 -0
- package/packages/tools/lib/toolchain/process.d.ts +45 -0
- package/packages/tools/lib/toolchain/process.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/process.js +125 -0
- package/packages/tools/lib/toolchain/process.js.map +1 -0
- package/packages/tools/lib/toolchain/protocol.d.ts +122 -0
- package/packages/tools/lib/toolchain/protocol.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/protocol.js +74 -0
- package/packages/tools/lib/toolchain/protocol.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts +9 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.js +84 -0
- package/packages/tools/lib/toolchain/providers/internal-kpar.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal.d.ts +33 -0
- package/packages/tools/lib/toolchain/providers/internal.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal.js +286 -0
- package/packages/tools/lib/toolchain/providers/internal.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand.d.ts +12 -0
- package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand.js +110 -0
- package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside.d.ts +24 -0
- package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside.js +208 -0
- package/packages/tools/lib/toolchain/providers/syside.js.map +1 -0
- package/packages/tools/lib/toolchain/registry.d.ts +192 -0
- package/packages/tools/lib/toolchain/registry.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/registry.js +130 -0
- package/packages/tools/lib/toolchain/registry.js.map +1 -0
- package/packages/tools/lib/toolchain/schema.d.ts +30 -0
- package/packages/tools/lib/toolchain/schema.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/schema.js +112 -0
- package/packages/tools/lib/toolchain/schema.js.map +1 -0
- package/packages/tools/lib/toolchain/sysmlc-client.d.ts +77 -0
- package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
- package/packages/tools/lib/toolchain/sysmlc-client.js.map +1 -0
- package/packages/tools/lib/validator/architecture-validator.d.ts +8 -1
- package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
- package/packages/tools/lib/validator/architecture-validator.js +25 -1
- package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
- package/packages/tools/lib/validator/behavior-validator.d.ts +1 -1
- package/packages/tools/lib/validator/behavior-validator.js +1 -1
- package/packages/tools/lib/validator/builtin-rules.d.ts +16 -0
- package/packages/tools/lib/validator/builtin-rules.d.ts.map +1 -0
- package/packages/tools/lib/validator/builtin-rules.js +62 -0
- package/packages/tools/lib/validator/builtin-rules.js.map +1 -0
- package/packages/tools/lib/validator/constraint-eval.d.ts +31 -0
- package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
- package/packages/tools/lib/validator/constraint-eval.js +164 -7
- package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
- package/packages/tools/lib/validator/constraint-loader.d.ts +22 -4
- package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
- package/packages/tools/lib/validator/constraint-loader.js +100 -27
- package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
- package/packages/tools/lib/validator/rule-engine.d.ts +2 -1
- package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
- package/packages/tools/lib/validator/rule-engine.js +56 -5
- package/packages/tools/lib/validator/rule-engine.js.map +1 -1
- package/packages/tools/lib/validator/sysml-constraints.d.ts +64 -0
- package/packages/tools/lib/validator/sysml-constraints.d.ts.map +1 -0
- package/packages/tools/lib/validator/sysml-constraints.js +251 -0
- package/packages/tools/lib/validator/sysml-constraints.js.map +1 -0
- package/packages/tools/lib/validator/types.d.ts +33 -0
- package/packages/tools/lib/validator/types.d.ts.map +1 -1
- package/packages/tools/lib/version.d.ts +2 -0
- package/packages/tools/lib/version.d.ts.map +1 -0
- package/packages/tools/lib/version.js +26 -0
- package/packages/tools/lib/version.js.map +1 -0
- package/packages/tools/src/grammar/memo-sysml.langium +517 -41
- package/packages/tools/lib/model/dimension-filter.d.ts +0 -33
- package/packages/tools/lib/model/dimension-filter.d.ts.map +0 -1
- package/packages/tools/lib/model/dimension-filter.js +0 -57
- package/packages/tools/lib/model/dimension-filter.js.map +0 -1
- package/packages/tools/lib/model/toolchain.d.ts +0 -12
- package/packages/tools/lib/model/toolchain.d.ts.map +0 -1
- package/packages/tools/lib/model/toolchain.js +0 -92
- package/packages/tools/lib/model/toolchain.js.map +0 -1
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
// ─── Standards Conformance Report ─────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// One computation, three outputs. `memo standards check`, the shipped
|
|
4
|
+
// standards-checklist.md template, and the Architect's gap badges all call
|
|
5
|
+
// `computeStandardsReport` and render the same numbers. There is deliberately
|
|
6
|
+
// no second place that decides what a gap is.
|
|
7
|
+
//
|
|
8
|
+
// required(project) clauses of every standard whose appliesToRegime
|
|
9
|
+
// intersects the regimes the project declares
|
|
10
|
+
// claimed(project) clauses targeted by a ConformsTo, or cited in the
|
|
11
|
+
// frontmatter of a document that exists in the project
|
|
12
|
+
// evidenced(project) claimed, where the claim also reaches verification,
|
|
13
|
+
// risk-control or approval evidence
|
|
14
|
+
//
|
|
15
|
+
// ─── Where this must NOT live ────────────────────────────────────────────────
|
|
16
|
+
//
|
|
17
|
+
// Not in a consistency rule. `memo_rules_coverage` is a deliberately empty
|
|
18
|
+
// package whose header states the reason: regulatory coverage is
|
|
19
|
+
// project-profile dependent, and a universal per-element constraint would
|
|
20
|
+
// force every project to implement every standard pack. Coverage is a REPORT.
|
|
21
|
+
// A red rule says "this model is wrong"; a gap says "this project has not
|
|
22
|
+
// claimed that clause yet", which is the normal state of a project in flight.
|
|
23
|
+
//
|
|
24
|
+
// ─── Why the library, not the element index ──────────────────────────────────
|
|
25
|
+
//
|
|
26
|
+
// The clause instances are ontology content. A consuming project resolves the
|
|
27
|
+
// ontology as a library root and its own model therefore holds the clause
|
|
28
|
+
// *definitions* through the registries but not the clause *instances* as
|
|
29
|
+
// elements — so `required()` is computed from the standards library reader,
|
|
30
|
+
// which reads the packs off disk in both the ontology repo and a consumer.
|
|
31
|
+
// `claimed()` comes from the project's own ConformsTo edges, whose endpoints
|
|
32
|
+
// name clauses by usage name or `id`; both are indexed here so an edge
|
|
33
|
+
// resolves whether or not the clause is in the element map.
|
|
34
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
35
|
+
import { resolveClause } from './standards-library.js';
|
|
36
|
+
import { loadTemplate, parseFrontmatter } from './template-resolver.js';
|
|
37
|
+
// ─── Evidence ─────────────────────────────────────────────────────────────────
|
|
38
|
+
/**
|
|
39
|
+
* The three evidence categories, anchored on ontology TYPE names rather than
|
|
40
|
+
* on relationship names.
|
|
41
|
+
*
|
|
42
|
+
* A claim is evidenced when the claiming element is linked — by any relation,
|
|
43
|
+
* in either direction — to an element of one of these types. Anchoring on the
|
|
44
|
+
* type means a new relation that reaches a verification case counts without a
|
|
45
|
+
* change here, and every subtype counts too, because membership is resolved
|
|
46
|
+
* through the kind registry's supertype closure rather than by name equality.
|
|
47
|
+
*
|
|
48
|
+
* These three names are the one thing this file states about the ontology.
|
|
49
|
+
* They are the plan's own definition of `evidenced` — "verification /
|
|
50
|
+
* risk-control / approval evidence" — and MEMO has no evidence-category
|
|
51
|
+
* concept to read them from. If one is ever added, this map is what it
|
|
52
|
+
* replaces.
|
|
53
|
+
*/
|
|
54
|
+
const EVIDENCE_ANCHORS = {
|
|
55
|
+
verification: ['MemoVerificationCase', 'MemoEvidence'],
|
|
56
|
+
'risk-control': ['RiskControlMeasure'],
|
|
57
|
+
approval: ['ControlledArtifact'],
|
|
58
|
+
};
|
|
59
|
+
// ─── Supertype closure ────────────────────────────────────────────────────────
|
|
60
|
+
/** Every kind that is, or specializes, one of `anchors`. */
|
|
61
|
+
function closureOf(anchors, registry) {
|
|
62
|
+
const out = new Set(anchors);
|
|
63
|
+
if (!registry)
|
|
64
|
+
return out;
|
|
65
|
+
const stack = [...anchors];
|
|
66
|
+
while (stack.length > 0) {
|
|
67
|
+
const name = stack.pop();
|
|
68
|
+
for (const derived of registry.getKind(name)?.derivedBy ?? []) {
|
|
69
|
+
if (out.has(derived))
|
|
70
|
+
continue;
|
|
71
|
+
out.add(derived);
|
|
72
|
+
stack.push(derived);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return out;
|
|
76
|
+
}
|
|
77
|
+
// ─── The computation ──────────────────────────────────────────────────────────
|
|
78
|
+
export function computeStandardsReport(input) {
|
|
79
|
+
const { library, model, kindRegistry, documentClauses = [] } = input;
|
|
80
|
+
const regimes = input.regimes ?? [];
|
|
81
|
+
const regimeSource = input.regimeSource ?? (regimes.length > 0 ? 'flag' : 'none');
|
|
82
|
+
// ── Index every clause by both names an edge can address it with ────────
|
|
83
|
+
const clauseByRef = new Map();
|
|
84
|
+
for (const std of library.standards.values()) {
|
|
85
|
+
for (const clause of std.clauses.values()) {
|
|
86
|
+
clauseByRef.set(clause.name, { std, clause });
|
|
87
|
+
if (clause.id)
|
|
88
|
+
clauseByRef.set(clause.id, { std, clause });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// ── claimed(): ConformsTo edges ─────────────────────────────────────────
|
|
92
|
+
/** clause usage name → claiming elements */
|
|
93
|
+
const claimants = new Map();
|
|
94
|
+
for (const rel of model?.relationshipsByType.get('conformsTo') ?? []) {
|
|
95
|
+
const hit = clauseByRef.get(rel.targetId);
|
|
96
|
+
if (!hit)
|
|
97
|
+
continue;
|
|
98
|
+
const el = model?.elements.get(rel.sourceId);
|
|
99
|
+
const list = claimants.get(hit.clause.name) ?? [];
|
|
100
|
+
list.push({
|
|
101
|
+
elementId: rel.sourceId,
|
|
102
|
+
name: el?.name ?? rel.sourceId,
|
|
103
|
+
kind: el?.kind ?? 'unknown',
|
|
104
|
+
});
|
|
105
|
+
claimants.set(hit.clause.name, list);
|
|
106
|
+
}
|
|
107
|
+
// ── claimed(): document frontmatter ─────────────────────────────────────
|
|
108
|
+
const docsByClause = new Map();
|
|
109
|
+
for (const cite of documentClauses) {
|
|
110
|
+
const std = library.standards.get(cite.designation);
|
|
111
|
+
const clause = std?.clauses.get(cite.clauseNumber);
|
|
112
|
+
if (!clause)
|
|
113
|
+
continue;
|
|
114
|
+
const list = docsByClause.get(clause.name) ?? [];
|
|
115
|
+
if (!list.some(d => d.documentId === cite.documentId)) {
|
|
116
|
+
list.push({ documentId: cite.documentId, documentTitle: cite.documentTitle });
|
|
117
|
+
}
|
|
118
|
+
docsByClause.set(clause.name, list);
|
|
119
|
+
}
|
|
120
|
+
// ── evidenced(): what each element reaches ──────────────────────────────
|
|
121
|
+
const anchorSets = new Map();
|
|
122
|
+
for (const [category, anchors] of Object.entries(EVIDENCE_ANCHORS)) {
|
|
123
|
+
anchorSets.set(category, closureOf(anchors, kindRegistry));
|
|
124
|
+
}
|
|
125
|
+
const evidenceCache = new Map();
|
|
126
|
+
const evidenceFor = (elementId) => {
|
|
127
|
+
const cached = evidenceCache.get(elementId);
|
|
128
|
+
if (cached)
|
|
129
|
+
return cached;
|
|
130
|
+
const found = [];
|
|
131
|
+
if (model) {
|
|
132
|
+
const links = [
|
|
133
|
+
...(model.outgoing.get(elementId) ?? []).map(r => ({ rel: r, otherId: r.targetId })),
|
|
134
|
+
...(model.incoming.get(elementId) ?? []).map(r => ({ rel: r, otherId: r.sourceId })),
|
|
135
|
+
];
|
|
136
|
+
for (const { rel, otherId } of links) {
|
|
137
|
+
const other = model.elements.get(otherId);
|
|
138
|
+
if (!other)
|
|
139
|
+
continue;
|
|
140
|
+
for (const [category, kinds] of anchorSets) {
|
|
141
|
+
if (!kinds.has(other.kind))
|
|
142
|
+
continue;
|
|
143
|
+
// An unapproved controlled artifact is a document, not an
|
|
144
|
+
// approval. Evidence that has not been approved is exactly
|
|
145
|
+
// the thing an auditor is looking for the absence of.
|
|
146
|
+
if (category === 'approval' && !isApproved(other))
|
|
147
|
+
continue;
|
|
148
|
+
found.push({
|
|
149
|
+
category,
|
|
150
|
+
elementId: otherId,
|
|
151
|
+
elementName: other.name,
|
|
152
|
+
elementKind: other.kind,
|
|
153
|
+
via: rel.type,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
evidenceCache.set(elementId, found);
|
|
159
|
+
return found;
|
|
160
|
+
};
|
|
161
|
+
// ── Roll up per standard ────────────────────────────────────────────────
|
|
162
|
+
const required = [];
|
|
163
|
+
const unrequired = [];
|
|
164
|
+
for (const std of [...library.standards.values()].sort((a, b) => a.designation.localeCompare(b.designation))) {
|
|
165
|
+
const isRequired = regimes.length === 0
|
|
166
|
+
? std.regimes.length > 0
|
|
167
|
+
: std.regimes.some(r => regimes.includes(r));
|
|
168
|
+
const clauses = [];
|
|
169
|
+
for (const clause of [...std.clauses.values()].sort(byClauseNumber)) {
|
|
170
|
+
const claimedBy = claimants.get(clause.name) ?? [];
|
|
171
|
+
const documents = docsByClause.get(clause.name) ?? [];
|
|
172
|
+
// Evidence attaches to the claiming element, and also to the
|
|
173
|
+
// clause itself: gpca authors TracesToDocument from the clause to
|
|
174
|
+
// the approved document, which is where a reviewer looks first.
|
|
175
|
+
const evidence = [
|
|
176
|
+
...evidenceFor(clause.name),
|
|
177
|
+
...(clause.id ? evidenceFor(clause.id) : []),
|
|
178
|
+
...claimedBy.flatMap(c => evidenceFor(c.elementId)),
|
|
179
|
+
];
|
|
180
|
+
const isClaimed = claimedBy.length > 0 || documents.length > 0;
|
|
181
|
+
clauses.push({
|
|
182
|
+
name: clause.name,
|
|
183
|
+
id: clause.id,
|
|
184
|
+
clauseNumber: clause.clauseNumber,
|
|
185
|
+
title: clause.title,
|
|
186
|
+
normativeStrength: clause.normativeStrength,
|
|
187
|
+
status: !isClaimed ? 'gap' : evidence.length > 0 ? 'evidenced' : 'claimed',
|
|
188
|
+
claimants: claimedBy,
|
|
189
|
+
documents,
|
|
190
|
+
evidence: dedupeEvidence(evidence),
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
const row = {
|
|
194
|
+
designation: std.designation,
|
|
195
|
+
edition: std.edition,
|
|
196
|
+
issuer: std.issuer,
|
|
197
|
+
regimes: std.regimes,
|
|
198
|
+
required: isRequired,
|
|
199
|
+
clauses,
|
|
200
|
+
totals: totalsOf(clauses),
|
|
201
|
+
};
|
|
202
|
+
(isRequired ? required : unrequired).push(row);
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
regimes,
|
|
206
|
+
regimeSource,
|
|
207
|
+
regimeVocabulary: library.regimeVocabulary,
|
|
208
|
+
standards: required,
|
|
209
|
+
unrequired,
|
|
210
|
+
totals: required.reduce((acc, s) => ({
|
|
211
|
+
clauses: acc.clauses + s.totals.clauses,
|
|
212
|
+
claimed: acc.claimed + s.totals.claimed,
|
|
213
|
+
evidenced: acc.evidenced + s.totals.evidenced,
|
|
214
|
+
gaps: acc.gaps + s.totals.gaps,
|
|
215
|
+
}), { clauses: 0, claimed: 0, evidenced: 0, gaps: 0 }),
|
|
216
|
+
unknownRegimes: library.unknownRegimes,
|
|
217
|
+
orphanClauses: library.orphanClauses,
|
|
218
|
+
libraryMissing: library.sourceDir === null,
|
|
219
|
+
// True when the kind registry was available and the evidence closure
|
|
220
|
+
// could widen anchors to their subtypes. False means we under-state
|
|
221
|
+
// evidence — the safer direction, but still wrong, so we say so.
|
|
222
|
+
evidenceResolvable: !!kindRegistry,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Resolve the clauses cited by documents that EXIST in the project.
|
|
227
|
+
*
|
|
228
|
+
* Existence is the point. The clause list a template carries says what a
|
|
229
|
+
* document of that type would claim; only a document actually present in
|
|
230
|
+
* `dhf/documents/` claims it. A checklist built from the template set would
|
|
231
|
+
* report full coverage for a project that has written nothing.
|
|
232
|
+
*
|
|
233
|
+
* A document's own frontmatter wins over its template's, because the workbench
|
|
234
|
+
* merges hand edits back into the file and a document that has narrowed or
|
|
235
|
+
* extended its claim has said so there.
|
|
236
|
+
*/
|
|
237
|
+
export function collectDocumentClauses(docs, library, customTemplateDir) {
|
|
238
|
+
const out = [];
|
|
239
|
+
for (const doc of docs) {
|
|
240
|
+
let standard;
|
|
241
|
+
let clauses;
|
|
242
|
+
if (doc.content) {
|
|
243
|
+
const own = parseFrontmatter(doc.content).frontmatter;
|
|
244
|
+
if (typeof own.standard === 'string')
|
|
245
|
+
standard = own.standard;
|
|
246
|
+
if (Array.isArray(own.clauses))
|
|
247
|
+
clauses = own.clauses.map(String);
|
|
248
|
+
}
|
|
249
|
+
if (!clauses && doc.templateId) {
|
|
250
|
+
const tpl = loadTemplate(doc.templateId, customTemplateDir);
|
|
251
|
+
if (tpl) {
|
|
252
|
+
standard = standard ?? tpl.frontmatter.standard;
|
|
253
|
+
clauses = Array.isArray(tpl.frontmatter.clauses)
|
|
254
|
+
? tpl.frontmatter.clauses.map(String) : undefined;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
for (const entry of clauses ?? []) {
|
|
258
|
+
const resolution = resolveClause(library, entry, standard);
|
|
259
|
+
if (!resolution.ok)
|
|
260
|
+
continue;
|
|
261
|
+
out.push({
|
|
262
|
+
documentId: doc.id,
|
|
263
|
+
documentTitle: doc.title,
|
|
264
|
+
designation: resolution.clause.designation,
|
|
265
|
+
clauseNumber: resolution.clause.clauseNumber,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
return out;
|
|
270
|
+
}
|
|
271
|
+
// ─── Reading the project's declared regimes ───────────────────────────────────
|
|
272
|
+
/**
|
|
273
|
+
* The regimes a project declares on its `ProjectMethodBinding`.
|
|
274
|
+
*
|
|
275
|
+
* Not application settings: `MEMOConfig` carries how a command runs, never what
|
|
276
|
+
* the model means, and `settings-boundary.ts` rejects semantic fields outright.
|
|
277
|
+
* A submission target selects which clauses a project is answerable for, which
|
|
278
|
+
* is squarely semantic, so it is declared in `model/catalog/project.sysml` like
|
|
279
|
+
* the methodology selection beside it.
|
|
280
|
+
*
|
|
281
|
+
* The attribute arrives from the builder as the qualified members joined by
|
|
282
|
+
* commas — `"RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR"`. One
|
|
283
|
+
* spelling only: an unqualified member is not a synonym, it is skipped and
|
|
284
|
+
* reported, the same rule the enum carries everywhere else in MEMO.
|
|
285
|
+
*/
|
|
286
|
+
export function readDeclaredRegimes(model) {
|
|
287
|
+
const regimes = [];
|
|
288
|
+
const rejected = [];
|
|
289
|
+
for (const el of model?.elementsByKind.get('ProjectMethodBinding') ?? []) {
|
|
290
|
+
const raw = el.attributes?.regulatoryRegime;
|
|
291
|
+
if (!raw)
|
|
292
|
+
continue;
|
|
293
|
+
for (const entry of raw.split(',').map(s => s.trim()).filter(Boolean)) {
|
|
294
|
+
const parts = entry.split('::');
|
|
295
|
+
if (parts.length === 2 && parts[0] === 'RegulatoryRegimeKind') {
|
|
296
|
+
if (!regimes.includes(parts[1]))
|
|
297
|
+
regimes.push(parts[1]);
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
rejected.push(entry);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return { regimes, rejected };
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Narrow a computed report. Filtering is separate from computing so the totals
|
|
308
|
+
* a filtered view shows are the totals of what it shows — a `--gaps-only`
|
|
309
|
+
* table whose "Clauses" column still counted the claimed ones would be a
|
|
310
|
+
* different kind of lie than the one this whole area exists to remove.
|
|
311
|
+
*/
|
|
312
|
+
export function filterStandardsReport(report, filter) {
|
|
313
|
+
const matches = (row) => !filter.standard || row.designation.toLowerCase().includes(filter.standard.toLowerCase());
|
|
314
|
+
const narrow = (rows) => rows
|
|
315
|
+
.filter(matches)
|
|
316
|
+
.map(row => {
|
|
317
|
+
if (!filter.gapsOnly)
|
|
318
|
+
return row;
|
|
319
|
+
const clauses = row.clauses.filter(c => c.status === 'gap');
|
|
320
|
+
return { ...row, clauses, totals: totalsOf(clauses) };
|
|
321
|
+
})
|
|
322
|
+
.filter(row => !filter.gapsOnly || row.clauses.length > 0);
|
|
323
|
+
const standards = narrow(report.standards);
|
|
324
|
+
return {
|
|
325
|
+
...report,
|
|
326
|
+
standards,
|
|
327
|
+
unrequired: narrow(report.unrequired),
|
|
328
|
+
totals: standards.reduce((acc, s) => ({
|
|
329
|
+
clauses: acc.clauses + s.totals.clauses,
|
|
330
|
+
claimed: acc.claimed + s.totals.claimed,
|
|
331
|
+
evidenced: acc.evidenced + s.totals.evidenced,
|
|
332
|
+
gaps: acc.gaps + s.totals.gaps,
|
|
333
|
+
}), { clauses: 0, claimed: 0, evidenced: 0, gaps: 0 }),
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
337
|
+
function isApproved(el) {
|
|
338
|
+
return (el.attributes?.approvalStatus ?? '').toLowerCase() === 'approved';
|
|
339
|
+
}
|
|
340
|
+
function totalsOf(clauses) {
|
|
341
|
+
const evidenced = clauses.filter(c => c.status === 'evidenced').length;
|
|
342
|
+
const claimed = evidenced + clauses.filter(c => c.status === 'claimed').length;
|
|
343
|
+
return { clauses: clauses.length, claimed, evidenced, gaps: clauses.length - claimed };
|
|
344
|
+
}
|
|
345
|
+
function dedupeEvidence(evidence) {
|
|
346
|
+
const seen = new Set();
|
|
347
|
+
return evidence.filter(e => {
|
|
348
|
+
const key = `${e.category}|${e.elementId}|${e.via}`;
|
|
349
|
+
if (seen.has(key))
|
|
350
|
+
return false;
|
|
351
|
+
seen.add(key);
|
|
352
|
+
return true;
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Clause numbers sort numerically segment by segment, so §8 precedes §14.
|
|
357
|
+
* `localeCompare` put IEC 60601-1 clause 14 above clause 8 in the Phase 3.0
|
|
358
|
+
* conformance matrix; a compliance table ordered 10, 11, 14, 8, 9 reads as
|
|
359
|
+
* broken long before a reader works out why. Non-numeric segments — 820.30(c),
|
|
360
|
+
* V.A — fall back to a string compare within the segment.
|
|
361
|
+
*/
|
|
362
|
+
export function byClauseNumber(a, b) {
|
|
363
|
+
const as = a.clauseNumber.split('.');
|
|
364
|
+
const bs = b.clauseNumber.split('.');
|
|
365
|
+
for (let i = 0; i < Math.max(as.length, bs.length); i++) {
|
|
366
|
+
const x = as[i], y = bs[i];
|
|
367
|
+
if (x === undefined)
|
|
368
|
+
return -1;
|
|
369
|
+
if (y === undefined)
|
|
370
|
+
return 1;
|
|
371
|
+
const nx = Number.parseInt(x, 10), ny = Number.parseInt(y, 10);
|
|
372
|
+
if (Number.isNaN(nx) || Number.isNaN(ny)) {
|
|
373
|
+
if (x !== y)
|
|
374
|
+
return x.localeCompare(y);
|
|
375
|
+
continue;
|
|
376
|
+
}
|
|
377
|
+
if (nx !== ny)
|
|
378
|
+
return nx - ny;
|
|
379
|
+
if (x !== y)
|
|
380
|
+
return x.localeCompare(y);
|
|
381
|
+
}
|
|
382
|
+
return 0;
|
|
383
|
+
}
|
|
384
|
+
//# sourceMappingURL=standards-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standards-report.js","sourceRoot":"","sources":["../../src/dhf/standards-report.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,8EAA8E;AAC9E,8CAA8C;AAC9C,EAAE;AACF,wEAAwE;AACxE,oEAAoE;AACpE,0EAA0E;AAC1E,6EAA6E;AAC7E,4EAA4E;AAC5E,0DAA0D;AAC1D,EAAE;AACF,gFAAgF;AAChF,EAAE;AACF,2EAA2E;AAC3E,iEAAiE;AACjE,0EAA0E;AAC1E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,EAAE;AACF,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,uEAAuE;AACvE,4DAA4D;AAC5D,gFAAgF;AAOhF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAExE,iFAAiF;AAEjF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,gBAAgB,GAAuC;IACzD,YAAY,EAAE,CAAC,sBAAsB,EAAE,cAAc,CAAC;IACtD,cAAc,EAAE,CAAC,oBAAoB,CAAC;IACtC,QAAQ,EAAE,CAAC,oBAAoB,CAAC;CACnC,CAAC;AAoIF,iFAAiF;AAEjF,4DAA4D;AAC5D,SAAS,SAAS,CAAC,OAAiB,EAAE,QAAuB;IACzD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAS,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC1B,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAC1B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC;YAC5D,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,SAAS;YAC/B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,sBAAsB,CAAC,KAA2B;IAC9D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IACrE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAElF,2EAA2E;IAC3E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuE,CAAC;IACnG,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,EAAE;gBAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,4CAA4C;IAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACnE,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,EAAE,GAAG,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC;YACN,SAAS,EAAE,GAAG,CAAC,QAAQ;YACvB,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,GAAG,CAAC,QAAQ;YAC9B,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,SAAS;SAC9B,CAAC,CAAC;QACH,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,2EAA2E;IAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAgE,CAAC;IAC7F,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,2EAA2E;IAC3E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC5D,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAwC,EAAE,CAAC;QACxG,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAC;IACvD,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAiB,EAAE;QACrD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,KAAK,GAAG;gBACV,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpF,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aACvF,CAAC;YACF,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,CAAC,KAAK;oBAAE,SAAS;gBACrB,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;oBACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,SAAS;oBACrC,0DAA0D;oBAC1D,2DAA2D;oBAC3D,sDAAsD;oBACtD,IAAI,QAAQ,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;wBAAE,SAAS;oBAC5D,KAAK,CAAC,IAAI,CAAC;wBACP,QAAQ;wBACR,SAAS,EAAE,OAAO;wBAClB,WAAW,EAAE,KAAK,CAAC,IAAI;wBACvB,WAAW,EAAE,KAAK,CAAC,IAAI;wBACvB,GAAG,EAAE,GAAG,CAAC,IAAI;qBAChB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,2EAA2E;IAC3E,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAkB,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAC3G,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC;YACnC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAClE,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAEtD,6DAA6D;YAC7D,kEAAkE;YAClE,gEAAgE;YAChE,MAAM,QAAQ,GAAkB;gBAC5B,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACtD,CAAC;YAEF,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;gBAC1E,SAAS,EAAE,SAAS;gBACpB,SAAS;gBACT,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;aACrC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,GAAG,GAAgB;YACrB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,UAAU;YACpB,OAAO;YACP,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;SAC5B,CAAC;QACF,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,OAAO;QACH,OAAO;QACP,YAAY;QACZ,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,SAAS,EAAE,QAAQ;QACnB,UAAU;QACV,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACjD,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;YACvC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;YACvC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS;YAC7C,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI;SACjC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACtD,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,cAAc,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI;QAC1C,qEAAqE;QACrE,oEAAoE;QACpE,iEAAiE;QACjE,kBAAkB,EAAE,CAAC,CAAC,YAAY;KACrC,CAAC;AACN,CAAC;AAcD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CAClC,IAAuB,EACvB,OAAyB,EACzB,iBAA0B;IAE1B,MAAM,GAAG,GAA6B,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,QAA4B,CAAC;QACjC,IAAI,OAA6B,CAAC;QAElC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC;YACtD,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;gBAAE,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;YAC5D,IAAI,GAAG,EAAE,CAAC;gBACN,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAChD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC;oBAC5C,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,CAAC;QACL,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,EAAE;gBAAE,SAAS;YAC7B,GAAG,CAAC,IAAI,CAAC;gBACL,UAAU,EAAE,GAAG,CAAC,EAAE;gBAClB,aAAa,EAAE,GAAG,CAAC,KAAK;gBACxB,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW;gBAC1C,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,YAAY;aAC/C,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA4B;IAK5D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC;QACvE,MAAM,GAAG,GAAG,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACpE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,sBAAsB,EAAE,CAAC;gBAC5D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACJ,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC;AAWD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAuB,EAAE,MAA6B;IACxF,MAAM,OAAO,GAAG,CAAC,GAAgB,EAAW,EAAE,CAC1C,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAE9F,MAAM,MAAM,GAAG,CAAC,IAAmB,EAAiB,EAAE,CAAC,IAAI;SACtD,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,GAAG,CAAC,EAAE;QACP,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,GAAG,CAAC;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;QAC5D,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,CAAC,CAAC;SACD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO;QACH,GAAG,MAAM;QACT,SAAS;QACT,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QACrC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAClD,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;YACvC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;YACvC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS;YAC7C,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI;SACjC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;KACzD,CAAC;AACN,CAAC;AAED,iFAAiF;AAEjF,SAAS,UAAU,CAAC,EAAe;IAC/B,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC;AAC9E,CAAC;AAED,SAAS,QAAQ,CAAC,OAAoB;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC/E,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;AAC3F,CAAC;AAED,SAAS,cAAc,CAAC,QAAuB;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,CAA2B,EAAE,CAA2B;IACnF,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACvC,SAAS;QACb,CAAC;QACD,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { KindRegistry } from '../model/kind-registry.js';
|
|
2
|
+
import type { RelationshipRegistry } from '../model/relationship-registry.js';
|
|
3
|
+
export type LintSeverity = 'error' | 'warning';
|
|
4
|
+
export interface LintFinding {
|
|
5
|
+
severity: LintSeverity;
|
|
6
|
+
/** Template id, e.g. "iso-14971/fmea" */
|
|
7
|
+
template: string;
|
|
8
|
+
/** Source file path */
|
|
9
|
+
file: string;
|
|
10
|
+
/** 1-based query block index within the template, when the finding is in one */
|
|
11
|
+
block?: number;
|
|
12
|
+
/** Short machine-readable rule id */
|
|
13
|
+
rule: string;
|
|
14
|
+
message: string;
|
|
15
|
+
}
|
|
16
|
+
export interface LintOptions {
|
|
17
|
+
/** Resolved ontology kinds. Omit to run structural checks only. */
|
|
18
|
+
kindRegistry?: KindRegistry;
|
|
19
|
+
/**
|
|
20
|
+
* Resolved ontology relationship types. Omit to skip the checks that only
|
|
21
|
+
* apply to `select: relationships` blocks.
|
|
22
|
+
*/
|
|
23
|
+
relationshipRegistry?: RelationshipRegistry;
|
|
24
|
+
/** Layer ids the ontology actually defines. Omit to skip layer checks. */
|
|
25
|
+
knownLayers?: Set<string>;
|
|
26
|
+
/** Restrict to templates whose id starts with this prefix. */
|
|
27
|
+
filter?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface LintReport {
|
|
30
|
+
findings: LintFinding[];
|
|
31
|
+
templatesChecked: number;
|
|
32
|
+
ontologyAware: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Lint one template's raw content.
|
|
36
|
+
*
|
|
37
|
+
* Separate from `lintTemplates` so the rules can be exercised against fixture
|
|
38
|
+
* strings rather than only against whatever happens to be on disk.
|
|
39
|
+
*/
|
|
40
|
+
export declare function lintTemplateContent(templateId: string, file: string, raw: string, options?: LintOptions, templatesDir?: string): LintFinding[];
|
|
41
|
+
export declare function lintTemplates(options?: LintOptions): LintReport;
|
|
42
|
+
//# sourceMappingURL=template-lint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-lint.d.ts","sourceRoot":"","sources":["../../src/dhf/template-lint.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,mEAAmE;IACnE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,0EAA0E;IAC1E,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;CAC1B;AA4VD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,EACzB,YAAY,CAAC,EAAE,MAAM,GACtB,WAAW,EAAE,CA8Df;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,WAAgB,GAAG,UAAU,CAqCnE"}
|