@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"methodology-loader.js","sourceRoot":"","sources":["../../src/model/methodology-loader.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF
|
|
1
|
+
{"version":3,"file":"methodology-loader.js","sourceRoot":"","sources":["../../src/model/methodology-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { NativeMethodBinding, NativeMethodology, NativeRulePolicy, ScopeMode } from './native-project.js';
|
|
2
|
+
import type { CompiledConstraint } from '../validator/constraint-eval.js';
|
|
3
|
+
/** Severity as the ontology and policies spell it. */
|
|
4
|
+
export type RuleSeverity = 'error' | 'warning' | 'info';
|
|
5
|
+
/** How far a rule may be tailored, from the rule's own `tailoring` attribute. */
|
|
6
|
+
export type RuleTailoring = 'invariant' | 'assurance' | 'methodology';
|
|
7
|
+
/** One step in the chain that produced a rule's effective disposition. */
|
|
8
|
+
export interface PolicyChainEntry {
|
|
9
|
+
/** Methodology usage name, or the binding's usage name for a project policy. */
|
|
10
|
+
source: string;
|
|
11
|
+
/** 'methodology' or 'project' — which authority applied it. */
|
|
12
|
+
level: 'methodology' | 'project';
|
|
13
|
+
policy: NativeRulePolicy;
|
|
14
|
+
}
|
|
15
|
+
/** A rule and everything that happened to it. */
|
|
16
|
+
export interface EffectiveRule {
|
|
17
|
+
/** The rule as originally defined. */
|
|
18
|
+
sourceRuleId: string;
|
|
19
|
+
sourceRuleType: string;
|
|
20
|
+
/** The rule that actually evaluates; differs from the source when replaced. */
|
|
21
|
+
activeRuleId: string;
|
|
22
|
+
activeRuleType: string;
|
|
23
|
+
disposition: 'enabled' | 'disabled' | 'replaced';
|
|
24
|
+
/** Severity after any override. */
|
|
25
|
+
effectiveSeverity: RuleSeverity;
|
|
26
|
+
/** Severity as the ontology authored it. */
|
|
27
|
+
declaredSeverity: RuleSeverity;
|
|
28
|
+
tailoring: RuleTailoring;
|
|
29
|
+
/** Every policy that touched this rule, base-first. */
|
|
30
|
+
policyChain: PolicyChainEntry[];
|
|
31
|
+
/** Rationale and authority from the last policy that changed the rule. */
|
|
32
|
+
rationaleText?: string;
|
|
33
|
+
authority?: string;
|
|
34
|
+
approvalReference?: string;
|
|
35
|
+
/** Where the rule is declared. */
|
|
36
|
+
sourceFile?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface RuleResolutionDiagnostic {
|
|
39
|
+
code: 'missing-target' | 'missing-replacement' | 'duplicate-rule-id' | 'invariant-protected' | 'replacement-without-target' | 'missing-rationale' | 'ambiguous-target'
|
|
40
|
+
/** Resolution itself threw. Reported so the UI shows why the set is empty. */
|
|
41
|
+
| 'resolution-failed';
|
|
42
|
+
message: string;
|
|
43
|
+
ruleId?: string;
|
|
44
|
+
policy?: string;
|
|
45
|
+
file?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface MethodologyDiagnostic {
|
|
48
|
+
code: 'missing-base' | 'inheritance-cycle' | 'unavailable-module' | 'scope-mode-conflict';
|
|
49
|
+
message: string;
|
|
50
|
+
methodology?: string;
|
|
51
|
+
}
|
|
52
|
+
/** The methodology chain plus its merged selection. */
|
|
53
|
+
export interface EffectiveMethodology {
|
|
54
|
+
/** Base first, selected methodology last. */
|
|
55
|
+
chain: NativeMethodology[];
|
|
56
|
+
scopeMode: ScopeMode;
|
|
57
|
+
includedLayers: string[];
|
|
58
|
+
includedModules: string[];
|
|
59
|
+
includedStandards: string[];
|
|
60
|
+
includedArtifactKinds: string[];
|
|
61
|
+
includedViewpoints: string[];
|
|
62
|
+
/** Policies in application order: base methodology first, project binding last. */
|
|
63
|
+
policyChain: PolicyChainEntry[];
|
|
64
|
+
diagnostics: MethodologyDiagnostic[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Walk the methodology inheritance chain and merge its selection.
|
|
68
|
+
*
|
|
69
|
+
* Exactly one base per methodology, so the chain is a list. The resolver walks
|
|
70
|
+
* base-first and then applies the child, which is also the order policies are
|
|
71
|
+
* applied in: a child methodology may tailor what its base decided, and the
|
|
72
|
+
* project binding gets the last word.
|
|
73
|
+
*/
|
|
74
|
+
export declare function resolveEffectiveMethodology(binding: NativeMethodBinding | undefined, methodologies: Map<string, NativeMethodology>, availablePackages: ReadonlySet<string>): EffectiveMethodology;
|
|
75
|
+
/** A rule as the constraint loader found it, plus the metadata policies need. */
|
|
76
|
+
export interface RuleCandidate {
|
|
77
|
+
/** Stable rule ID, e.g. "CR-MED-040". Durable identity for audit records. */
|
|
78
|
+
id: string;
|
|
79
|
+
/** The `constraint def` name, which is what a policy references. */
|
|
80
|
+
typeName: string;
|
|
81
|
+
severity: RuleSeverity;
|
|
82
|
+
tailoring: RuleTailoring;
|
|
83
|
+
file?: string;
|
|
84
|
+
constraint?: CompiledConstraint;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Map compiled native constraints onto rule candidates.
|
|
88
|
+
*
|
|
89
|
+
* One place, because both `memo rules` and the dev server need it and they got
|
|
90
|
+
* the field names wrong independently — `collectNativeConstraints` returns
|
|
91
|
+
* `id`/`typeName`/`sourceFile`, not `ruleId`/`ruleType`/`file`. A rule whose
|
|
92
|
+
* identity does not survive this mapping resolves as `undefined` and is
|
|
93
|
+
* unauditable, which is the opposite of what section 10.4 asks for.
|
|
94
|
+
*
|
|
95
|
+
* A constraint with no `typeName` is skipped: a policy references a rule by its
|
|
96
|
+
* `constraint def` name, so a rule without one cannot be tailored and does not
|
|
97
|
+
* belong in a set whose purpose is recording tailoring decisions.
|
|
98
|
+
*/
|
|
99
|
+
export declare function ruleCandidatesFromConstraints(constraints: readonly CompiledConstraint[]): RuleCandidate[];
|
|
100
|
+
export interface EffectiveRuleSet {
|
|
101
|
+
rules: EffectiveRule[];
|
|
102
|
+
diagnostics: RuleResolutionDiagnostic[];
|
|
103
|
+
/** The constraints that should actually be evaluated, in rule-ID order. */
|
|
104
|
+
activeConstraints: CompiledConstraint[];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Produce the effective rule set.
|
|
108
|
+
*
|
|
109
|
+
* Steps 1-3 of section 10.3 (collecting rules from ontology, extension, and
|
|
110
|
+
* methodology packages) happen upstream: `collectNativeConstraints` walks the
|
|
111
|
+
* resolved closure, which is exactly the set of packages those steps describe.
|
|
112
|
+
* This function is steps 4-9 — apply policies base-first, validate, and emit.
|
|
113
|
+
*/
|
|
114
|
+
export declare function resolveEffectiveRules(candidates: RuleCandidate[], policyChain: PolicyChainEntry[]): EffectiveRuleSet;
|
|
115
|
+
//# sourceMappingURL=methodology-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methodology-resolver.d.ts","sourceRoot":"","sources":["../../src/model/methodology-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
// ─── Effective Methodology and Effective Rule Resolution ──────────────────────
|
|
2
|
+
//
|
|
3
|
+
// What a project's methodology actually amounts to, and which rules are live.
|
|
4
|
+
//
|
|
5
|
+
// Both resolvers are deterministic: the same source produces the same result in
|
|
6
|
+
// the same order, and every entry says where it came from. There is no
|
|
7
|
+
// "last duplicate wins" anywhere — a duplicate rule ID is an error, and a rule
|
|
8
|
+
// is replaced only through an explicit `RulePolicy`.
|
|
9
|
+
//
|
|
10
|
+
// Under the section 4.1 Option P verdict this layer governs rule *identity and
|
|
11
|
+
// disposition*: which rules are in the effective set, at what severity, under
|
|
12
|
+
// whose authority. Whether a rule's predicate fires is a separate question that
|
|
13
|
+
// `predicateExpression` still answers, and nothing here should be reported as
|
|
14
|
+
// evidence that a model was validated.
|
|
15
|
+
//
|
|
16
|
+
// Design reference: sections 9.1-9.3, 10.1-10.4.
|
|
17
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
18
|
+
/**
|
|
19
|
+
* Walk the methodology inheritance chain and merge its selection.
|
|
20
|
+
*
|
|
21
|
+
* Exactly one base per methodology, so the chain is a list. The resolver walks
|
|
22
|
+
* base-first and then applies the child, which is also the order policies are
|
|
23
|
+
* applied in: a child methodology may tailor what its base decided, and the
|
|
24
|
+
* project binding gets the last word.
|
|
25
|
+
*/
|
|
26
|
+
export function resolveEffectiveMethodology(binding, methodologies, availablePackages) {
|
|
27
|
+
const diagnostics = [];
|
|
28
|
+
const chain = [];
|
|
29
|
+
let current = binding?.selectedMethodologyName
|
|
30
|
+
? methodologies.get(binding.selectedMethodologyName)
|
|
31
|
+
: undefined;
|
|
32
|
+
const seen = new Set();
|
|
33
|
+
while (current) {
|
|
34
|
+
if (seen.has(current.usageName)) {
|
|
35
|
+
diagnostics.push({
|
|
36
|
+
code: 'inheritance-cycle',
|
|
37
|
+
message: `Methodology inheritance cycles back to "${current.usageName}". A methodology chain must `
|
|
38
|
+
+ `terminate; a cycle has no base to resolve first.`,
|
|
39
|
+
methodology: current.usageName,
|
|
40
|
+
});
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
seen.add(current.usageName);
|
|
44
|
+
chain.unshift(current);
|
|
45
|
+
if (!current.baseMethodologyName)
|
|
46
|
+
break;
|
|
47
|
+
const base = methodologies.get(current.baseMethodologyName);
|
|
48
|
+
if (!base) {
|
|
49
|
+
diagnostics.push({
|
|
50
|
+
code: 'missing-base',
|
|
51
|
+
message: `Methodology "${current.usageName}" specializes "${current.baseMethodologyName}", which no `
|
|
52
|
+
+ `resolved package declares.`,
|
|
53
|
+
methodology: current.usageName,
|
|
54
|
+
});
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
current = base;
|
|
58
|
+
}
|
|
59
|
+
// The selected methodology decides the mode; a base cannot widen a child.
|
|
60
|
+
const selected = chain[chain.length - 1];
|
|
61
|
+
const scopeMode = binding?.scopeMode === 'allAvailable'
|
|
62
|
+
? 'allAvailable'
|
|
63
|
+
: selected?.scopeMode ?? 'explicit';
|
|
64
|
+
const merge = (pick) => {
|
|
65
|
+
const out = [];
|
|
66
|
+
for (const m of chain)
|
|
67
|
+
for (const v of pick(m))
|
|
68
|
+
if (!out.includes(v))
|
|
69
|
+
out.push(v);
|
|
70
|
+
return out;
|
|
71
|
+
};
|
|
72
|
+
const includedModules = merge(m => m.includedModules);
|
|
73
|
+
for (const extra of binding?.includedModules ?? []) {
|
|
74
|
+
if (!includedModules.includes(extra))
|
|
75
|
+
includedModules.push(extra);
|
|
76
|
+
}
|
|
77
|
+
// A module the methodology names but the import graph never resolved is a
|
|
78
|
+
// hard diagnostic: a string naming an unavailable package is not a selection.
|
|
79
|
+
for (const m of includedModules) {
|
|
80
|
+
if (!availablePackages.has(m)) {
|
|
81
|
+
diagnostics.push({
|
|
82
|
+
code: 'unavailable-module',
|
|
83
|
+
message: `Module "${m}" is selected but is not in the project's import closure. Import the package, `
|
|
84
|
+
+ `or remove it from the selection — a name alone does not make a module available.`,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
for (const m of chain) {
|
|
89
|
+
if (m.scopeMode === 'allAvailable') {
|
|
90
|
+
const listed = [
|
|
91
|
+
...m.includedLayers, ...m.includedModules, ...m.includedStandards,
|
|
92
|
+
...m.includedArtifactKinds, ...m.includedViewpoints,
|
|
93
|
+
];
|
|
94
|
+
if (listed.length > 0) {
|
|
95
|
+
diagnostics.push({
|
|
96
|
+
code: 'scope-mode-conflict',
|
|
97
|
+
message: `Methodology "${m.usageName}" sets scopeMode = allAvailable but also authors inclusion `
|
|
98
|
+
+ `entries. Under allAvailable the lists must be empty; otherwise the methodology states `
|
|
99
|
+
+ `its scope twice and the resolver has to pick.`,
|
|
100
|
+
methodology: m.usageName,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const policyChain = [];
|
|
106
|
+
for (const m of chain) {
|
|
107
|
+
for (const p of m.rulePolicies) {
|
|
108
|
+
policyChain.push({ source: m.usageName, level: 'methodology', policy: p });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
for (const p of binding?.rulePolicies ?? []) {
|
|
112
|
+
policyChain.push({ source: binding.usageName, level: 'project', policy: p });
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
chain,
|
|
116
|
+
scopeMode,
|
|
117
|
+
includedLayers: merge(m => m.includedLayers),
|
|
118
|
+
includedModules,
|
|
119
|
+
includedStandards: merge(m => m.includedStandards),
|
|
120
|
+
includedArtifactKinds: merge(m => m.includedArtifactKinds),
|
|
121
|
+
includedViewpoints: merge(m => m.includedViewpoints),
|
|
122
|
+
policyChain,
|
|
123
|
+
diagnostics,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Map compiled native constraints onto rule candidates.
|
|
128
|
+
*
|
|
129
|
+
* One place, because both `memo rules` and the dev server need it and they got
|
|
130
|
+
* the field names wrong independently — `collectNativeConstraints` returns
|
|
131
|
+
* `id`/`typeName`/`sourceFile`, not `ruleId`/`ruleType`/`file`. A rule whose
|
|
132
|
+
* identity does not survive this mapping resolves as `undefined` and is
|
|
133
|
+
* unauditable, which is the opposite of what section 10.4 asks for.
|
|
134
|
+
*
|
|
135
|
+
* A constraint with no `typeName` is skipped: a policy references a rule by its
|
|
136
|
+
* `constraint def` name, so a rule without one cannot be tailored and does not
|
|
137
|
+
* belong in a set whose purpose is recording tailoring decisions.
|
|
138
|
+
*/
|
|
139
|
+
export function ruleCandidatesFromConstraints(constraints) {
|
|
140
|
+
const candidates = [];
|
|
141
|
+
for (const constraint of constraints) {
|
|
142
|
+
if (!constraint.typeName)
|
|
143
|
+
continue;
|
|
144
|
+
candidates.push({
|
|
145
|
+
id: constraint.id,
|
|
146
|
+
typeName: constraint.typeName,
|
|
147
|
+
severity: constraint.severity,
|
|
148
|
+
tailoring: constraint.tailoring ?? 'assurance',
|
|
149
|
+
file: constraint.sourceFile,
|
|
150
|
+
constraint,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return candidates;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Produce the effective rule set.
|
|
157
|
+
*
|
|
158
|
+
* Steps 1-3 of section 10.3 (collecting rules from ontology, extension, and
|
|
159
|
+
* methodology packages) happen upstream: `collectNativeConstraints` walks the
|
|
160
|
+
* resolved closure, which is exactly the set of packages those steps describe.
|
|
161
|
+
* This function is steps 4-9 — apply policies base-first, validate, and emit.
|
|
162
|
+
*/
|
|
163
|
+
export function resolveEffectiveRules(candidates, policyChain) {
|
|
164
|
+
const diagnostics = [];
|
|
165
|
+
// Step 8, first half: IDs must be unique and types must be unambiguous.
|
|
166
|
+
const byId = new Map();
|
|
167
|
+
const byType = new Map();
|
|
168
|
+
for (const c of candidates) {
|
|
169
|
+
const clash = byId.get(c.id);
|
|
170
|
+
if (clash && clash.typeName !== c.typeName) {
|
|
171
|
+
diagnostics.push({
|
|
172
|
+
code: 'duplicate-rule-id',
|
|
173
|
+
message: `Rule ID ${c.id} is declared by both ${clash.typeName} and ${c.typeName}. Rule IDs are audit `
|
|
174
|
+
+ `identity; two rules sharing one leaves every violation ambiguous.`,
|
|
175
|
+
ruleId: c.id,
|
|
176
|
+
file: c.file,
|
|
177
|
+
});
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
byId.set(c.id, c);
|
|
181
|
+
const list = byType.get(c.typeName) ?? [];
|
|
182
|
+
list.push(c);
|
|
183
|
+
byType.set(c.typeName, list);
|
|
184
|
+
}
|
|
185
|
+
const state = new Map();
|
|
186
|
+
for (const c of byId.values()) {
|
|
187
|
+
state.set(c.typeName, {
|
|
188
|
+
sourceRuleId: c.id,
|
|
189
|
+
sourceRuleType: c.typeName,
|
|
190
|
+
activeRuleId: c.id,
|
|
191
|
+
activeRuleType: c.typeName,
|
|
192
|
+
disposition: 'enabled',
|
|
193
|
+
effectiveSeverity: c.severity,
|
|
194
|
+
declaredSeverity: c.severity,
|
|
195
|
+
tailoring: c.tailoring,
|
|
196
|
+
policyChain: [],
|
|
197
|
+
sourceFile: c.file,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
for (const entry of policyChain) {
|
|
201
|
+
const { policy } = entry;
|
|
202
|
+
const targetType = policy.targetRuleType;
|
|
203
|
+
if (!targetType) {
|
|
204
|
+
diagnostics.push({
|
|
205
|
+
code: 'missing-target',
|
|
206
|
+
message: `Policy "${policy.usageName}" names no targetRule. A policy with no target changes nothing `
|
|
207
|
+
+ `and hides that it changes nothing.`,
|
|
208
|
+
policy: policy.usageName,
|
|
209
|
+
file: policy.sourceFile,
|
|
210
|
+
});
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
const rule = state.get(targetType);
|
|
214
|
+
if (!rule) {
|
|
215
|
+
diagnostics.push({
|
|
216
|
+
code: 'missing-target',
|
|
217
|
+
message: `Policy "${policy.usageName}" targets rule "${targetType}", which is not in the resolved rule `
|
|
218
|
+
+ `set. Import the package declaring it, or remove the policy.`,
|
|
219
|
+
policy: policy.usageName,
|
|
220
|
+
file: policy.sourceFile,
|
|
221
|
+
});
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
224
|
+
const ambiguous = byType.get(targetType);
|
|
225
|
+
if (ambiguous && ambiguous.length > 1) {
|
|
226
|
+
diagnostics.push({
|
|
227
|
+
code: 'ambiguous-target',
|
|
228
|
+
message: `Policy "${policy.usageName}" targets "${targetType}", which resolves to ${ambiguous.length} `
|
|
229
|
+
+ `declarations. A reference must name exactly one rule.`,
|
|
230
|
+
policy: policy.usageName,
|
|
231
|
+
ruleId: rule.sourceRuleId,
|
|
232
|
+
file: policy.sourceFile,
|
|
233
|
+
});
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
const disposition = policy.disposition ?? 'enabled';
|
|
237
|
+
// Step 8: an invariant holds the ontology's own consistency. It changes
|
|
238
|
+
// in an ontology release, not in a methodology.
|
|
239
|
+
if (rule.tailoring === 'invariant' && disposition !== 'enabled') {
|
|
240
|
+
diagnostics.push({
|
|
241
|
+
code: 'invariant-protected',
|
|
242
|
+
message: `Policy "${policy.usageName}" tries to ${disposition === 'disabled' ? 'disable' : 'replace'} `
|
|
243
|
+
+ `${rule.sourceRuleId} (${targetType}), which is classified invariant. Invariant rules hold `
|
|
244
|
+
+ `the ontology's internal consistency and can only change in an ontology release.`,
|
|
245
|
+
ruleId: rule.sourceRuleId,
|
|
246
|
+
policy: policy.usageName,
|
|
247
|
+
file: policy.sourceFile,
|
|
248
|
+
});
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
if (disposition !== 'enabled' && !policy.rationaleText) {
|
|
252
|
+
diagnostics.push({
|
|
253
|
+
code: 'missing-rationale',
|
|
254
|
+
message: `Policy "${policy.usageName}" ${disposition}s ${rule.sourceRuleId} without a rationale. `
|
|
255
|
+
+ `A tailoring decision that records no reason cannot be audited.`,
|
|
256
|
+
ruleId: rule.sourceRuleId,
|
|
257
|
+
policy: policy.usageName,
|
|
258
|
+
file: policy.sourceFile,
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
if (disposition === 'replaced') {
|
|
262
|
+
const replacementType = policy.replacementRuleType;
|
|
263
|
+
if (!replacementType) {
|
|
264
|
+
diagnostics.push({
|
|
265
|
+
code: 'replacement-without-target',
|
|
266
|
+
message: `Policy "${policy.usageName}" sets disposition = replaced but names no replacementRule. `
|
|
267
|
+
+ `A replacement must point at another native constraint.`,
|
|
268
|
+
ruleId: rule.sourceRuleId,
|
|
269
|
+
policy: policy.usageName,
|
|
270
|
+
file: policy.sourceFile,
|
|
271
|
+
});
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
const replacement = state.get(replacementType);
|
|
275
|
+
if (!replacement) {
|
|
276
|
+
diagnostics.push({
|
|
277
|
+
code: 'missing-replacement',
|
|
278
|
+
message: `Policy "${policy.usageName}" replaces ${rule.sourceRuleId} with "${replacementType}", `
|
|
279
|
+
+ `which is not in the resolved rule set.`,
|
|
280
|
+
ruleId: rule.sourceRuleId,
|
|
281
|
+
policy: policy.usageName,
|
|
282
|
+
file: policy.sourceFile,
|
|
283
|
+
});
|
|
284
|
+
continue;
|
|
285
|
+
}
|
|
286
|
+
rule.activeRuleType = replacementType;
|
|
287
|
+
rule.activeRuleId = replacement.sourceRuleId;
|
|
288
|
+
}
|
|
289
|
+
rule.disposition = disposition;
|
|
290
|
+
if (policy.severityOverride)
|
|
291
|
+
rule.effectiveSeverity = policy.severityOverride;
|
|
292
|
+
rule.policyChain.push(entry);
|
|
293
|
+
if (policy.rationaleText)
|
|
294
|
+
rule.rationaleText = policy.rationaleText;
|
|
295
|
+
if (policy.authority)
|
|
296
|
+
rule.authority = policy.authority;
|
|
297
|
+
if (policy.approvalReference)
|
|
298
|
+
rule.approvalReference = policy.approvalReference;
|
|
299
|
+
}
|
|
300
|
+
// A replaced rule's replacement should not also evaluate in its own right;
|
|
301
|
+
// it is the substitute, not an addition.
|
|
302
|
+
const replacementTypes = new Set([...state.values()].filter(r => r.disposition === 'replaced').map(r => r.activeRuleType));
|
|
303
|
+
const rules = [...state.values()].sort((a, b) => a.sourceRuleId.localeCompare(b.sourceRuleId));
|
|
304
|
+
const activeConstraints = [];
|
|
305
|
+
for (const rule of rules) {
|
|
306
|
+
if (rule.disposition === 'disabled')
|
|
307
|
+
continue;
|
|
308
|
+
if (rule.disposition === 'enabled' && replacementTypes.has(rule.sourceRuleType))
|
|
309
|
+
continue;
|
|
310
|
+
const candidate = byType.get(rule.activeRuleType)?.[0];
|
|
311
|
+
if (!candidate?.constraint)
|
|
312
|
+
continue;
|
|
313
|
+
activeConstraints.push({ ...candidate.constraint, severity: rule.effectiveSeverity });
|
|
314
|
+
}
|
|
315
|
+
return { rules, diagnostics, activeConstraints };
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=methodology-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methodology-resolver.js","sourceRoot":"","sources":["../../src/model/methodology-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one conversion between how a name is WRITTEN in SysML source and how it
|
|
3
|
+
* is KEYED in the built model.
|
|
4
|
+
*
|
|
5
|
+
* SysML v2 cases the two halves of a model differently, and MEMO follows it:
|
|
6
|
+
*
|
|
7
|
+
* - definitions are PascalCase — `Composes`, `Mitigates`, `DataPort`
|
|
8
|
+
* - usages and features are lowerCamelCase — `fuelTankPort`, `takePicture`
|
|
9
|
+
* - keywords are lowercase — `flow`, `bind`, `connect`
|
|
10
|
+
*
|
|
11
|
+
* A `MemoRelationship.type` is a model KEY, not a definition name, so it is
|
|
12
|
+
* lowerCamelCase throughout: `connection : Composes ...` builds an edge of type
|
|
13
|
+
* `composes`, and a native `flow` builds one of type `flow`. A view that selects
|
|
14
|
+
* relationships names them the way SOURCE spells them — `("Composes", "flow")` —
|
|
15
|
+
* so every consumer has to normalize before it can match.
|
|
16
|
+
*
|
|
17
|
+
* That conversion used to be open-coded in seven places across two repos, in
|
|
18
|
+
* three mutually incompatible ways: decapitalize-the-first-character, full
|
|
19
|
+
* `.toLowerCase()`, and verbatim-no-normalization. `flow` and `bind` survive all
|
|
20
|
+
* three by accident, being lowercase already; `Composes` survives two of the
|
|
21
|
+
* three; anything reaching the verbatim path never matches at all. A filter that
|
|
22
|
+
* silently matches nothing looks exactly like a filter with nothing to match,
|
|
23
|
+
* which is why this stayed invisible.
|
|
24
|
+
*
|
|
25
|
+
* Use these helpers. Do not re-derive the rule at the call site.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* A definition name as written in source → the key the model stores.
|
|
29
|
+
*
|
|
30
|
+
* `Composes` → `composes`, `DerivesFrom` → `derivesFrom`, `flow` → `flow`.
|
|
31
|
+
*
|
|
32
|
+
* Only the first character changes. Lowercasing the whole string would collapse
|
|
33
|
+
* `derivesFrom` onto `derivesfrom` and stop matching the model, and an initialism
|
|
34
|
+
* like `DecisionRecordedInADR` must keep its trailing capitals.
|
|
35
|
+
*/
|
|
36
|
+
export declare function toModelType(name: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* A model key → the definition name source would spell it with.
|
|
39
|
+
*
|
|
40
|
+
* `composes` → `Composes`. Not a round-trip for native keywords: `flow` becomes
|
|
41
|
+
* `Flow`, which names no definition. Use it for display of MEMO relationship
|
|
42
|
+
* types, never to reconstruct a reference that has to resolve.
|
|
43
|
+
*/
|
|
44
|
+
export declare function toDefinitionName(type: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Compare a source-spelled relationship kind against a model-stored type.
|
|
47
|
+
*
|
|
48
|
+
* Both sides are normalized, so `"Composes"`, `"composes"`, a native `"flow"`,
|
|
49
|
+
* and a `"bind"` all behave the same way and no caller has to know which kind of
|
|
50
|
+
* name it was handed.
|
|
51
|
+
*/
|
|
52
|
+
export declare function matchesRelationshipType(declared: string, modelType: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Normalize a whole selection list once, for repeated membership tests.
|
|
55
|
+
*/
|
|
56
|
+
export declare function toModelTypeSet(names: readonly string[]): Set<string>;
|
|
57
|
+
//# sourceMappingURL=naming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/model/naming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAEpE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one conversion between how a name is WRITTEN in SysML source and how it
|
|
3
|
+
* is KEYED in the built model.
|
|
4
|
+
*
|
|
5
|
+
* SysML v2 cases the two halves of a model differently, and MEMO follows it:
|
|
6
|
+
*
|
|
7
|
+
* - definitions are PascalCase — `Composes`, `Mitigates`, `DataPort`
|
|
8
|
+
* - usages and features are lowerCamelCase — `fuelTankPort`, `takePicture`
|
|
9
|
+
* - keywords are lowercase — `flow`, `bind`, `connect`
|
|
10
|
+
*
|
|
11
|
+
* A `MemoRelationship.type` is a model KEY, not a definition name, so it is
|
|
12
|
+
* lowerCamelCase throughout: `connection : Composes ...` builds an edge of type
|
|
13
|
+
* `composes`, and a native `flow` builds one of type `flow`. A view that selects
|
|
14
|
+
* relationships names them the way SOURCE spells them — `("Composes", "flow")` —
|
|
15
|
+
* so every consumer has to normalize before it can match.
|
|
16
|
+
*
|
|
17
|
+
* That conversion used to be open-coded in seven places across two repos, in
|
|
18
|
+
* three mutually incompatible ways: decapitalize-the-first-character, full
|
|
19
|
+
* `.toLowerCase()`, and verbatim-no-normalization. `flow` and `bind` survive all
|
|
20
|
+
* three by accident, being lowercase already; `Composes` survives two of the
|
|
21
|
+
* three; anything reaching the verbatim path never matches at all. A filter that
|
|
22
|
+
* silently matches nothing looks exactly like a filter with nothing to match,
|
|
23
|
+
* which is why this stayed invisible.
|
|
24
|
+
*
|
|
25
|
+
* Use these helpers. Do not re-derive the rule at the call site.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* A definition name as written in source → the key the model stores.
|
|
29
|
+
*
|
|
30
|
+
* `Composes` → `composes`, `DerivesFrom` → `derivesFrom`, `flow` → `flow`.
|
|
31
|
+
*
|
|
32
|
+
* Only the first character changes. Lowercasing the whole string would collapse
|
|
33
|
+
* `derivesFrom` onto `derivesfrom` and stop matching the model, and an initialism
|
|
34
|
+
* like `DecisionRecordedInADR` must keep its trailing capitals.
|
|
35
|
+
*/
|
|
36
|
+
export function toModelType(name) {
|
|
37
|
+
if (!name)
|
|
38
|
+
return name;
|
|
39
|
+
return name.charAt(0).toLowerCase() + name.slice(1);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A model key → the definition name source would spell it with.
|
|
43
|
+
*
|
|
44
|
+
* `composes` → `Composes`. Not a round-trip for native keywords: `flow` becomes
|
|
45
|
+
* `Flow`, which names no definition. Use it for display of MEMO relationship
|
|
46
|
+
* types, never to reconstruct a reference that has to resolve.
|
|
47
|
+
*/
|
|
48
|
+
export function toDefinitionName(type) {
|
|
49
|
+
if (!type)
|
|
50
|
+
return type;
|
|
51
|
+
return type.charAt(0).toUpperCase() + type.slice(1);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Compare a source-spelled relationship kind against a model-stored type.
|
|
55
|
+
*
|
|
56
|
+
* Both sides are normalized, so `"Composes"`, `"composes"`, a native `"flow"`,
|
|
57
|
+
* and a `"bind"` all behave the same way and no caller has to know which kind of
|
|
58
|
+
* name it was handed.
|
|
59
|
+
*/
|
|
60
|
+
export function matchesRelationshipType(declared, modelType) {
|
|
61
|
+
return toModelType(declared) === toModelType(modelType);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Normalize a whole selection list once, for repeated membership tests.
|
|
65
|
+
*/
|
|
66
|
+
export function toModelTypeSet(names) {
|
|
67
|
+
return new Set(names.map(toModelType));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=naming.js.map
|