@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,190 @@
|
|
|
1
|
+
// ─── The conformance corpus ──────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// A pinned, checksummed copy of the OMG's own published artifacts, vendored
|
|
4
|
+
// under `corpus/sysml-v2-release/` by `scripts/vendor-corpus.mjs`.
|
|
5
|
+
//
|
|
6
|
+
// Why static artifacts rather than a spawned reference implementation: they are
|
|
7
|
+
// versioned, deterministic, diffable in review, and carry no runtime, licence
|
|
8
|
+
// or startup cost — and MEMO's dependency graph stays free of a JVM (§1.3).
|
|
9
|
+
// The `xmi.implied` tree is the Pilot's own *computed* output published as
|
|
10
|
+
// data, which is the part that could not otherwise be had without running it.
|
|
11
|
+
//
|
|
12
|
+
// What a static corpus cannot do is judge source nobody has seen before. That
|
|
13
|
+
// is what an external live validator is for, and why `conformance run` takes a
|
|
14
|
+
// provider rather than grading MEMO against MEMO.
|
|
15
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
16
|
+
import { createHash } from 'node:crypto';
|
|
17
|
+
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
|
|
18
|
+
import { dirname, join, posix, relative, resolve, sep } from 'node:path';
|
|
19
|
+
import { fileURLToPath } from 'node:url';
|
|
20
|
+
/** Textual model sources. `.kerml` is half the Kernel libraries. */
|
|
21
|
+
export const MODEL_EXTENSIONS = ['.sysml', '.kerml'];
|
|
22
|
+
/** The XMI serializations, declared and with implied elements. */
|
|
23
|
+
export const XMI_EXTENSIONS = ['.sysmlx', '.kermlx'];
|
|
24
|
+
export const LIBRARY_SOURCE_TREE = 'sysml.library';
|
|
25
|
+
export const LIBRARY_XMI_TREE = 'sysml.library.xmi';
|
|
26
|
+
export const LIBRARY_XMI_IMPLIED_TREE = 'sysml.library.xmi.implied';
|
|
27
|
+
/** The normative textual and graphical grammars. */
|
|
28
|
+
export const BNF_TREE = 'bnf';
|
|
29
|
+
export function provenanceOf(corpus) {
|
|
30
|
+
const { repository, commit, commitDate, digest, libraryVersions } = corpus.manifest;
|
|
31
|
+
return { repository, commit, commitDate, digest, libraryVersions };
|
|
32
|
+
}
|
|
33
|
+
export class CorpusNotFoundError extends Error {
|
|
34
|
+
dir;
|
|
35
|
+
constructor(dir) {
|
|
36
|
+
super(`No conformance corpus at "${dir}" — expected a manifest.json beside the vendored trees. `
|
|
37
|
+
+ 'Run `node scripts/vendor-corpus.mjs` in memo-tools, or pass --corpus <dir>.');
|
|
38
|
+
this.dir = dir;
|
|
39
|
+
this.name = 'CorpusNotFoundError';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Where the vendored corpus lives, relative to this module.
|
|
44
|
+
*
|
|
45
|
+
* `src/conformance/` and `lib/conformance/` sit at the same depth below the
|
|
46
|
+
* package root, so one expression serves both the compiled and the sources
|
|
47
|
+
* build without a build-time constant.
|
|
48
|
+
*/
|
|
49
|
+
export function defaultCorpusDir() {
|
|
50
|
+
return resolve(dirname(fileURLToPath(import.meta.url)), '../../../../corpus/sysml-v2-release');
|
|
51
|
+
}
|
|
52
|
+
export function loadCorpus(dir) {
|
|
53
|
+
const root = resolve(dir ?? defaultCorpusDir());
|
|
54
|
+
const manifestPath = join(root, 'manifest.json');
|
|
55
|
+
if (!existsSync(manifestPath))
|
|
56
|
+
throw new CorpusNotFoundError(root);
|
|
57
|
+
return { root, manifest: JSON.parse(readFileSync(manifestPath, 'utf-8')) };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check vendored content against the manifest.
|
|
61
|
+
*
|
|
62
|
+
* `trees` narrows the check — hashing 150 MB to run a report over 1.4 MB of
|
|
63
|
+
* textual sources costs more than the report. The full sweep is what the
|
|
64
|
+
* corpus-integrity test runs.
|
|
65
|
+
*/
|
|
66
|
+
export function verifyCorpus(corpus, trees) {
|
|
67
|
+
const mismatches = [];
|
|
68
|
+
for (const [rel, entry] of Object.entries(corpus.manifest.files)) {
|
|
69
|
+
if (trees && !trees.some(tree => rel === tree || rel.startsWith(`${tree}/`)))
|
|
70
|
+
continue;
|
|
71
|
+
const full = join(corpus.root, rel.split(posix.sep).join(sep));
|
|
72
|
+
if (!existsSync(full)) {
|
|
73
|
+
mismatches.push({ path: rel, reason: 'missing' });
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
const actual = createHash('sha256').update(readFileSync(full)).digest('hex');
|
|
77
|
+
if (actual !== entry.sha256)
|
|
78
|
+
mismatches.push({ path: rel, reason: 'changed' });
|
|
79
|
+
}
|
|
80
|
+
return mismatches;
|
|
81
|
+
}
|
|
82
|
+
function slug(segment) {
|
|
83
|
+
return segment.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
|
|
84
|
+
}
|
|
85
|
+
function isModelSource(name) {
|
|
86
|
+
return MODEL_EXTENSIONS.some(extension => name.endsWith(extension));
|
|
87
|
+
}
|
|
88
|
+
/** Every model source under `dir`, absolute and sorted. */
|
|
89
|
+
export function modelSourcesIn(dir) {
|
|
90
|
+
const out = [];
|
|
91
|
+
const walk = (current) => {
|
|
92
|
+
for (const entry of readdirSync(current, { withFileTypes: true })) {
|
|
93
|
+
const full = join(current, entry.name);
|
|
94
|
+
if (entry.isDirectory())
|
|
95
|
+
walk(full);
|
|
96
|
+
else if (isModelSource(entry.name))
|
|
97
|
+
out.push(full);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
if (existsSync(dir))
|
|
101
|
+
walk(dir);
|
|
102
|
+
return out.sort();
|
|
103
|
+
}
|
|
104
|
+
function unitAt(root, relPath, kind, id) {
|
|
105
|
+
const files = modelSourcesIn(join(root, relPath.split(posix.sep).join(sep)));
|
|
106
|
+
return {
|
|
107
|
+
id,
|
|
108
|
+
path: relPath,
|
|
109
|
+
kind,
|
|
110
|
+
files,
|
|
111
|
+
bytes: files.reduce((n, file) => n + statSync(file).size, 0),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Partition the corpus into units.
|
|
116
|
+
*
|
|
117
|
+
* A library group whose own directory holds sources is one unit (the Systems
|
|
118
|
+
* Library); otherwise each child directory is (Kernel Libraries, Domain
|
|
119
|
+
* Libraries). That rule is what produces the ten-way split matching the KPARs,
|
|
120
|
+
* without this file carrying a hardcoded list of library names that a Release
|
|
121
|
+
* bump would silently invalidate.
|
|
122
|
+
*/
|
|
123
|
+
export function corpusUnits(corpus) {
|
|
124
|
+
const units = [];
|
|
125
|
+
const libraryRoot = join(corpus.root, LIBRARY_SOURCE_TREE);
|
|
126
|
+
if (existsSync(libraryRoot)) {
|
|
127
|
+
for (const group of readdirSync(libraryRoot, { withFileTypes: true })
|
|
128
|
+
.filter(entry => entry.isDirectory())
|
|
129
|
+
.sort((a, b) => (a.name < b.name ? -1 : 1))) {
|
|
130
|
+
const groupPath = posix.join(LIBRARY_SOURCE_TREE, group.name);
|
|
131
|
+
const groupDir = join(libraryRoot, group.name);
|
|
132
|
+
const ownSources = readdirSync(groupDir).some(isModelSource);
|
|
133
|
+
if (ownSources) {
|
|
134
|
+
units.push(unitAt(corpus.root, groupPath, 'library', `library/${slug(group.name)}`));
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
for (const library of readdirSync(groupDir, { withFileTypes: true })
|
|
138
|
+
.filter(entry => entry.isDirectory())
|
|
139
|
+
.sort((a, b) => (a.name < b.name ? -1 : 1))) {
|
|
140
|
+
units.push(unitAt(corpus.root, posix.join(groupPath, library.name), 'library', `library/${slug(group.name)}/${slug(library.name)}`));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
for (const [relPath, id] of [['sysml/src', 'examples/sysml'], ['kerml/src', 'examples/kerml']]) {
|
|
145
|
+
if (existsSync(join(corpus.root, relPath.split(posix.sep).join(sep)))) {
|
|
146
|
+
units.push(unitAt(corpus.root, relPath, 'examples', id));
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return units.filter(unit => unit.files.length > 0);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Select units by id, accepting a prefix so `--unit library` means all of them.
|
|
153
|
+
*
|
|
154
|
+
* An unmatched selector is an error rather than an empty run: a conformance
|
|
155
|
+
* command that reports zero findings because it ran nothing is the worst
|
|
156
|
+
* possible false green.
|
|
157
|
+
*/
|
|
158
|
+
export function selectUnits(units, selectors) {
|
|
159
|
+
if (selectors.length === 0)
|
|
160
|
+
return [...units];
|
|
161
|
+
const selected = new Map();
|
|
162
|
+
for (const selector of selectors) {
|
|
163
|
+
const matches = units.filter(unit => unit.id === selector || unit.id.startsWith(`${selector}/`));
|
|
164
|
+
if (matches.length === 0) {
|
|
165
|
+
throw new Error(`No corpus unit matches "${selector}". Available: ${units.map(u => u.id).join(', ')}.`);
|
|
166
|
+
}
|
|
167
|
+
for (const match of matches)
|
|
168
|
+
selected.set(match.id, match);
|
|
169
|
+
}
|
|
170
|
+
return [...selected.values()];
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* The XMI file that serializes a given library source.
|
|
174
|
+
*
|
|
175
|
+
* Upstream mirrors the tree exactly and swaps the extension —
|
|
176
|
+
* `sysml.library/Systems Library/Parts.sysml` becomes
|
|
177
|
+
* `sysml.library.xmi.implied/Systems Library/Parts.sysmlx`.
|
|
178
|
+
*/
|
|
179
|
+
export function xmiCounterpart(corpus, source, tree) {
|
|
180
|
+
const relPath = relative(join(corpus.root, LIBRARY_SOURCE_TREE), source);
|
|
181
|
+
if (relPath.startsWith('..'))
|
|
182
|
+
return undefined;
|
|
183
|
+
const candidate = join(corpus.root, tree, `${relPath}x`);
|
|
184
|
+
return existsSync(candidate) ? candidate : undefined;
|
|
185
|
+
}
|
|
186
|
+
/** Corpus-relative path, in upstream's own separator, for reports. */
|
|
187
|
+
export function corpusRelative(corpus, path) {
|
|
188
|
+
return relative(corpus.root, path).split(sep).join(posix.sep);
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=corpus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corpus.js","sourceRoot":"","sources":["../../src/conformance/corpus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { MEMOConfig } from '../model/config.js';
|
|
2
|
+
import type { MemoElement } from '../model/semantic.js';
|
|
3
|
+
import type { ProviderRegistry } from '../toolchain/registry.js';
|
|
4
|
+
import { type Corpus, type CorpusProvenance } from './corpus.js';
|
|
5
|
+
/**
|
|
6
|
+
* How a single difference is classified.
|
|
7
|
+
*
|
|
8
|
+
* missing-declared the source declares it, the reference has it, MEMO does
|
|
9
|
+
* not. A lowering gap — MEMO did not read the source.
|
|
10
|
+
* missing-implied only the reference's *implied* pass produced it. A
|
|
11
|
+
* derived-semantics gap: MEMO read the source but does not
|
|
12
|
+
* compute what the source entails.
|
|
13
|
+
* extra MEMO has an element neither XMI does. Something was
|
|
14
|
+
* invented, or named differently than upstream names it.
|
|
15
|
+
* differing-derived both have it; a derived value differs (today: metaclass
|
|
16
|
+
* against MEMO's construct).
|
|
17
|
+
* qualified-name the leaf name exists on both sides under different
|
|
18
|
+
* containment paths. Reported apart from `missing`/`extra`
|
|
19
|
+
* because it is one defect, not two, and it is a naming
|
|
20
|
+
* gap rather than a missing element.
|
|
21
|
+
*/
|
|
22
|
+
export type DifferenceClass = 'missing-declared' | 'missing-implied' | 'extra' | 'differing-derived' | 'qualified-name';
|
|
23
|
+
export declare const DIFFERENCE_CLASSES: readonly DifferenceClass[];
|
|
24
|
+
export type DifferenceCounts = Record<DifferenceClass, number>;
|
|
25
|
+
export declare function emptyDifferenceCounts(): DifferenceCounts;
|
|
26
|
+
export interface Difference {
|
|
27
|
+
class: DifferenceClass;
|
|
28
|
+
qualifiedName: string;
|
|
29
|
+
/** Reference metaclass, where the reference has the element. */
|
|
30
|
+
metatype?: string;
|
|
31
|
+
/** MEMO's construct, where MEMO has it. */
|
|
32
|
+
construct?: string;
|
|
33
|
+
/** Free-text only for `differing-derived` and `qualified-name`. */
|
|
34
|
+
detail?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface LibraryDiff {
|
|
37
|
+
/** Source file, corpus-relative. */
|
|
38
|
+
source: string;
|
|
39
|
+
/** The two XMI counterparts, corpus-relative; absent when upstream has none. */
|
|
40
|
+
declaredXmi?: string;
|
|
41
|
+
impliedXmi?: string;
|
|
42
|
+
/** Named elements each side computed. */
|
|
43
|
+
referenceDeclared: number;
|
|
44
|
+
referenceImplied: number;
|
|
45
|
+
memo: number;
|
|
46
|
+
/**
|
|
47
|
+
* Unnamed elements in the reference serialization.
|
|
48
|
+
*
|
|
49
|
+
* Not compared — see the module header — but reported, because "we compared
|
|
50
|
+
* 19 of 336 elements" is a materially different claim from "we compared the
|
|
51
|
+
* file", and only one of them is true.
|
|
52
|
+
*/
|
|
53
|
+
referenceAnonymous: number;
|
|
54
|
+
counts: DifferenceCounts;
|
|
55
|
+
/** Capped sample, sorted, so a baseline stays reviewable. */
|
|
56
|
+
differences: Difference[];
|
|
57
|
+
/** Set when the library could not be compared at all. */
|
|
58
|
+
failure?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface DiffXmiReport {
|
|
61
|
+
reportVersion: string;
|
|
62
|
+
memoVersion: string;
|
|
63
|
+
corpus: CorpusProvenance & {
|
|
64
|
+
root: string;
|
|
65
|
+
};
|
|
66
|
+
toolchain: {
|
|
67
|
+
lowering: string;
|
|
68
|
+
};
|
|
69
|
+
totals: {
|
|
70
|
+
libraries: number;
|
|
71
|
+
counts: DifferenceCounts;
|
|
72
|
+
};
|
|
73
|
+
libraries: LibraryDiff[];
|
|
74
|
+
}
|
|
75
|
+
export declare const DIFF_REPORT_VERSION = "1.0.0";
|
|
76
|
+
/**
|
|
77
|
+
* MEMO's qualified name for an element.
|
|
78
|
+
*
|
|
79
|
+
* MEMO's model is flat: an element carries the package it was declared in, and
|
|
80
|
+
* nesting is not part of its identity. The reference's is a containment path.
|
|
81
|
+
* Joining package and id with `::` is the closest honest translation, and where
|
|
82
|
+
* it does not line up the difference lands in `qualified-name` rather than
|
|
83
|
+
* being hidden — which is the point of having that class.
|
|
84
|
+
*/
|
|
85
|
+
export declare function memoQualifiedName(element: MemoElement): string;
|
|
86
|
+
/**
|
|
87
|
+
* Whether a reference metaclass and a MEMO construct describe the same thing.
|
|
88
|
+
*
|
|
89
|
+
* MEMO's `construct` is the SysML keyword (`part`, `action`, `requirement`);
|
|
90
|
+
* the reference's metatype is the metaclass (`PartUsage`, `PartDefinition`,
|
|
91
|
+
* `ActionUsage`). Comparing them exactly would report every element as
|
|
92
|
+
* differing, which is noise. The test is containment of the keyword in the
|
|
93
|
+
* metaclass name, case-folded — deliberately loose, because this is the first
|
|
94
|
+
* derived value compared and a strict mapping table belongs with the canonical
|
|
95
|
+
* IR (Session 3), not here.
|
|
96
|
+
*/
|
|
97
|
+
export declare function derivedValuesAgree(metatype: string, construct: string | undefined): boolean;
|
|
98
|
+
export interface DiffXmiOptions {
|
|
99
|
+
config: MEMOConfig;
|
|
100
|
+
projectDir: string;
|
|
101
|
+
corpusDir?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Library sources to compare, as corpus-relative paths or bare filenames.
|
|
104
|
+
* Empty compares every library source that has an XMI counterpart.
|
|
105
|
+
*/
|
|
106
|
+
libraries?: readonly string[];
|
|
107
|
+
registry?: ProviderRegistry;
|
|
108
|
+
memoVersion: string;
|
|
109
|
+
verify?: boolean;
|
|
110
|
+
onLibrary?: (source: string, index: number, total: number) => void;
|
|
111
|
+
}
|
|
112
|
+
/** Compare one library source against its two XMI counterparts. */
|
|
113
|
+
export declare function diffLibrary(source: string, corpus: Corpus, options: DiffXmiOptions): Promise<LibraryDiff>;
|
|
114
|
+
/** Library sources named by `--library`, or every one with an XMI counterpart. */
|
|
115
|
+
export declare function selectLibraries(corpus: Corpus, selectors: readonly string[]): string[];
|
|
116
|
+
export declare function runDiffXmi(options: DiffXmiOptions): Promise<DiffXmiReport>;
|
|
117
|
+
export declare function formatDiffXmiReport(report: DiffXmiReport): string;
|
|
118
|
+
//# sourceMappingURL=diff-xmi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-xmi.d.ts","sourceRoot":"","sources":["../../src/conformance/diff-xmi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
// ─── memo conformance diff-xmi ───────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// The differential oracle. For one normative library it asks: what does MEMO
|
|
4
|
+
// compute for this source, and how does that differ from what the reference
|
|
5
|
+
// implementation computed for the same source?
|
|
6
|
+
//
|
|
7
|
+
// The right-hand side is not a second opinion we are trusting on faith — it is
|
|
8
|
+
// `sysml.library.xmi.implied`, the Pilot's own output, published by the OMG as
|
|
9
|
+
// data at a pinned commit. Running the Pilot would give the same answer at the
|
|
10
|
+
// cost of a JVM (§1.3); reading its published answer costs nothing and is
|
|
11
|
+
// diffable in review.
|
|
12
|
+
//
|
|
13
|
+
// What is compared, and what deliberately is not. Two independent
|
|
14
|
+
// implementations agree on *which named elements exist, of what metaclass,
|
|
15
|
+
// under what qualified name*. They do not agree on UUIDs, on the ordering of
|
|
16
|
+
// unnamed memberships, or on how a documentation body is broken across lines —
|
|
17
|
+
// comparing those would produce thousands of differences that mean nothing.
|
|
18
|
+
// The comparison is therefore over named elements only, and every unnamed
|
|
19
|
+
// element the file contains is counted and reported rather than dropped
|
|
20
|
+
// silently.
|
|
21
|
+
//
|
|
22
|
+
// This is the acceptance harness for Track B B3. Today the internal grammar is
|
|
23
|
+
// a MEMO subset that does not accept `standard library package` at all, so the
|
|
24
|
+
// honest result is a large `missing-declared` count — which is the measurement,
|
|
25
|
+
// not a failure of the harness. Nothing here passes or fails on its own: the
|
|
26
|
+
// gate is a frozen baseline, and what it catches is a count that *moved*.
|
|
27
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
28
|
+
import { basename, dirname } from 'node:path';
|
|
29
|
+
import { defaultRegistry } from '../toolchain/default-registry.js';
|
|
30
|
+
import { resolveToolchain } from '../toolchain/effective.js';
|
|
31
|
+
import { runLowering } from '../toolchain/operations.js';
|
|
32
|
+
import { LIBRARY_SOURCE_TREE, LIBRARY_XMI_IMPLIED_TREE, LIBRARY_XMI_TREE, corpusRelative, loadCorpus, modelSourcesIn, provenanceOf, verifyCorpus, xmiCounterpart, } from './corpus.js';
|
|
33
|
+
import { readXmi } from './xmi.js';
|
|
34
|
+
export const DIFFERENCE_CLASSES = ['missing-declared', 'missing-implied', 'extra', 'differing-derived', 'qualified-name'];
|
|
35
|
+
export function emptyDifferenceCounts() {
|
|
36
|
+
return {
|
|
37
|
+
'missing-declared': 0,
|
|
38
|
+
'missing-implied': 0,
|
|
39
|
+
'extra': 0,
|
|
40
|
+
'differing-derived': 0,
|
|
41
|
+
'qualified-name': 0,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export const DIFF_REPORT_VERSION = '1.0.0';
|
|
45
|
+
/** Differences listed per library. Enough to act on, not a dump of 20 000. */
|
|
46
|
+
const SAMPLE_LIMIT = 25;
|
|
47
|
+
/**
|
|
48
|
+
* MEMO's qualified name for an element.
|
|
49
|
+
*
|
|
50
|
+
* MEMO's model is flat: an element carries the package it was declared in, and
|
|
51
|
+
* nesting is not part of its identity. The reference's is a containment path.
|
|
52
|
+
* Joining package and id with `::` is the closest honest translation, and where
|
|
53
|
+
* it does not line up the difference lands in `qualified-name` rather than
|
|
54
|
+
* being hidden — which is the point of having that class.
|
|
55
|
+
*/
|
|
56
|
+
export function memoQualifiedName(element) {
|
|
57
|
+
return element.package ? `${element.package}::${element.id}` : element.id;
|
|
58
|
+
}
|
|
59
|
+
/** Last segment of a `::`-joined name. */
|
|
60
|
+
function leaf(qualifiedName) {
|
|
61
|
+
const index = qualifiedName.lastIndexOf('::');
|
|
62
|
+
return index < 0 ? qualifiedName : qualifiedName.slice(index + 2);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Whether a reference metaclass and a MEMO construct describe the same thing.
|
|
66
|
+
*
|
|
67
|
+
* MEMO's `construct` is the SysML keyword (`part`, `action`, `requirement`);
|
|
68
|
+
* the reference's metatype is the metaclass (`PartUsage`, `PartDefinition`,
|
|
69
|
+
* `ActionUsage`). Comparing them exactly would report every element as
|
|
70
|
+
* differing, which is noise. The test is containment of the keyword in the
|
|
71
|
+
* metaclass name, case-folded — deliberately loose, because this is the first
|
|
72
|
+
* derived value compared and a strict mapping table belongs with the canonical
|
|
73
|
+
* IR (Session 3), not here.
|
|
74
|
+
*/
|
|
75
|
+
export function derivedValuesAgree(metatype, construct) {
|
|
76
|
+
if (!construct)
|
|
77
|
+
return true;
|
|
78
|
+
return metatype.toLowerCase().includes(construct.toLowerCase());
|
|
79
|
+
}
|
|
80
|
+
function classify(reference, declaredNames, memo) {
|
|
81
|
+
const counts = emptyDifferenceCounts();
|
|
82
|
+
const differences = [];
|
|
83
|
+
// Leaf-name index of what MEMO produced, so a containment-path mismatch is
|
|
84
|
+
// recognised as one rather than counted twice (missing here, extra there).
|
|
85
|
+
const memoByLeaf = new Map();
|
|
86
|
+
for (const element of memo.values()) {
|
|
87
|
+
const key = leaf(memoQualifiedName(element));
|
|
88
|
+
const bucket = memoByLeaf.get(key);
|
|
89
|
+
if (bucket)
|
|
90
|
+
bucket.push(element);
|
|
91
|
+
else
|
|
92
|
+
memoByLeaf.set(key, [element]);
|
|
93
|
+
}
|
|
94
|
+
const pairedByName = new Set();
|
|
95
|
+
for (const [qualifiedName, element] of reference) {
|
|
96
|
+
const mine = memo.get(qualifiedName);
|
|
97
|
+
if (mine) {
|
|
98
|
+
if (!derivedValuesAgree(element.metatype, mine.construct)) {
|
|
99
|
+
counts['differing-derived'] += 1;
|
|
100
|
+
differences.push({
|
|
101
|
+
class: 'differing-derived',
|
|
102
|
+
qualifiedName,
|
|
103
|
+
metatype: element.metatype,
|
|
104
|
+
construct: mine.construct,
|
|
105
|
+
detail: `reference metaclass ${element.metatype}, MEMO construct ${mine.construct}`,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const byLeaf = memoByLeaf.get(element.name)?.filter(candidate => !pairedByName.has(memoQualifiedName(candidate)));
|
|
111
|
+
if (byLeaf && byLeaf.length > 0) {
|
|
112
|
+
pairedByName.add(memoQualifiedName(byLeaf[0]));
|
|
113
|
+
counts['qualified-name'] += 1;
|
|
114
|
+
differences.push({
|
|
115
|
+
class: 'qualified-name',
|
|
116
|
+
qualifiedName,
|
|
117
|
+
metatype: element.metatype,
|
|
118
|
+
construct: byLeaf[0].construct,
|
|
119
|
+
detail: `MEMO names it ${memoQualifiedName(byLeaf[0])}`,
|
|
120
|
+
});
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
const kind = declaredNames.has(qualifiedName)
|
|
124
|
+
? 'missing-declared'
|
|
125
|
+
: 'missing-implied';
|
|
126
|
+
counts[kind] += 1;
|
|
127
|
+
differences.push({ class: kind, qualifiedName, metatype: element.metatype });
|
|
128
|
+
}
|
|
129
|
+
for (const element of memo.values()) {
|
|
130
|
+
const qualifiedName = memoQualifiedName(element);
|
|
131
|
+
if (reference.has(qualifiedName) || pairedByName.has(qualifiedName))
|
|
132
|
+
continue;
|
|
133
|
+
counts.extra += 1;
|
|
134
|
+
differences.push({ class: 'extra', qualifiedName, construct: element.construct });
|
|
135
|
+
}
|
|
136
|
+
// Sorted by class then name so two runs of the same corpus produce the same
|
|
137
|
+
// sample, and a baseline diff shows real movement rather than reordering.
|
|
138
|
+
differences.sort((a, b) => DIFFERENCE_CLASSES.indexOf(a.class) - DIFFERENCE_CLASSES.indexOf(b.class)
|
|
139
|
+
|| (a.qualifiedName < b.qualifiedName ? -1 : a.qualifiedName > b.qualifiedName ? 1 : 0));
|
|
140
|
+
return { counts, differences: differences.slice(0, SAMPLE_LIMIT) };
|
|
141
|
+
}
|
|
142
|
+
/** Compare one library source against its two XMI counterparts. */
|
|
143
|
+
export async function diffLibrary(source, corpus, options) {
|
|
144
|
+
const registry = options.registry ?? defaultRegistry;
|
|
145
|
+
const declaredPath = xmiCounterpart(corpus, source, LIBRARY_XMI_TREE);
|
|
146
|
+
const impliedPath = xmiCounterpart(corpus, source, LIBRARY_XMI_IMPLIED_TREE);
|
|
147
|
+
const base = {
|
|
148
|
+
source: corpusRelative(corpus, source),
|
|
149
|
+
declaredXmi: declaredPath ? corpusRelative(corpus, declaredPath) : undefined,
|
|
150
|
+
impliedXmi: impliedPath ? corpusRelative(corpus, impliedPath) : undefined,
|
|
151
|
+
referenceDeclared: 0,
|
|
152
|
+
referenceImplied: 0,
|
|
153
|
+
referenceAnonymous: 0,
|
|
154
|
+
memo: 0,
|
|
155
|
+
counts: emptyDifferenceCounts(),
|
|
156
|
+
differences: [],
|
|
157
|
+
};
|
|
158
|
+
if (!impliedPath) {
|
|
159
|
+
return { ...base, failure: 'no sysml.library.xmi.implied counterpart for this source' };
|
|
160
|
+
}
|
|
161
|
+
try {
|
|
162
|
+
const implied = readXmi(impliedPath);
|
|
163
|
+
const declaredNames = declaredPath
|
|
164
|
+
? new Set(readXmi(declaredPath).byQualifiedName.keys())
|
|
165
|
+
: new Set();
|
|
166
|
+
// One source file, lowered on its own. A library is a compilation unit
|
|
167
|
+
// here, not a project: comparing a whole directory's model against one
|
|
168
|
+
// file's XMI would charge every difference to the wrong file.
|
|
169
|
+
const result = await runLowering({
|
|
170
|
+
config: options.config,
|
|
171
|
+
projectDir: dirname(source),
|
|
172
|
+
files: [source],
|
|
173
|
+
includeDirs: [`${corpus.root}/${LIBRARY_SOURCE_TREE}`],
|
|
174
|
+
registry,
|
|
175
|
+
});
|
|
176
|
+
const memo = new Map();
|
|
177
|
+
for (const element of Object.values(result.ir.model.elements)) {
|
|
178
|
+
memo.set(memoQualifiedName(element), element);
|
|
179
|
+
}
|
|
180
|
+
return {
|
|
181
|
+
...base,
|
|
182
|
+
referenceDeclared: declaredNames.size,
|
|
183
|
+
referenceImplied: implied.byQualifiedName.size,
|
|
184
|
+
referenceAnonymous: implied.anonymousCount,
|
|
185
|
+
memo: memo.size,
|
|
186
|
+
...classify(implied.byQualifiedName, declaredNames, memo),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
return { ...base, failure: error instanceof Error ? error.message : String(error) };
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** Library sources named by `--library`, or every one with an XMI counterpart. */
|
|
194
|
+
export function selectLibraries(corpus, selectors) {
|
|
195
|
+
const all = modelSourcesIn(`${corpus.root}/${LIBRARY_SOURCE_TREE}`)
|
|
196
|
+
.filter(source => xmiCounterpart(corpus, source, LIBRARY_XMI_IMPLIED_TREE) !== undefined);
|
|
197
|
+
if (selectors.length === 0)
|
|
198
|
+
return all;
|
|
199
|
+
const selected = new Map();
|
|
200
|
+
for (const selector of selectors) {
|
|
201
|
+
const matches = all.filter(source => {
|
|
202
|
+
const relPath = corpusRelative(corpus, source);
|
|
203
|
+
return relPath === selector
|
|
204
|
+
|| relPath === `${LIBRARY_SOURCE_TREE}/${selector}`
|
|
205
|
+
|| relPath.endsWith(`/${selector}`)
|
|
206
|
+
|| basename(source) === selector;
|
|
207
|
+
});
|
|
208
|
+
if (matches.length === 0) {
|
|
209
|
+
throw new Error(`No library source matches "${selector}". `
|
|
210
|
+
+ `Pass a corpus-relative path or a bare filename, e.g. "Parts.sysml".`);
|
|
211
|
+
}
|
|
212
|
+
for (const match of matches)
|
|
213
|
+
selected.set(match, match);
|
|
214
|
+
}
|
|
215
|
+
return [...selected.values()];
|
|
216
|
+
}
|
|
217
|
+
export async function runDiffXmi(options) {
|
|
218
|
+
const corpus = loadCorpus(options.corpusDir);
|
|
219
|
+
if (options.verify !== false) {
|
|
220
|
+
const mismatches = verifyCorpus(corpus, [LIBRARY_SOURCE_TREE]);
|
|
221
|
+
if (mismatches.length > 0) {
|
|
222
|
+
throw new Error(`The vendored library sources do not match the manifest (${mismatches.length} file(s)). `
|
|
223
|
+
+ 'Run `node scripts/vendor-corpus.mjs --verify` to see which.');
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
const sources = selectLibraries(corpus, options.libraries ?? []);
|
|
227
|
+
const libraries = [];
|
|
228
|
+
for (const [index, source] of sources.entries()) {
|
|
229
|
+
options.onLibrary?.(corpusRelative(corpus, source), index, sources.length);
|
|
230
|
+
libraries.push(await diffLibrary(source, corpus, options));
|
|
231
|
+
}
|
|
232
|
+
const counts = emptyDifferenceCounts();
|
|
233
|
+
for (const library of libraries) {
|
|
234
|
+
for (const key of DIFFERENCE_CLASSES)
|
|
235
|
+
counts[key] += library.counts[key];
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
reportVersion: DIFF_REPORT_VERSION,
|
|
239
|
+
memoVersion: options.memoVersion,
|
|
240
|
+
corpus: { ...provenanceOf(corpus), root: '.' },
|
|
241
|
+
toolchain: { lowering: resolveToolchain(options.config, options.registry ?? defaultRegistry).lowering },
|
|
242
|
+
totals: { libraries: libraries.length, counts },
|
|
243
|
+
libraries,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
export function formatDiffXmiReport(report) {
|
|
247
|
+
const lines = [];
|
|
248
|
+
lines.push('');
|
|
249
|
+
lines.push(`SysML v2 Release ${report.corpus.commit.slice(0, 12)} (${report.corpus.commitDate.slice(0, 10)})`);
|
|
250
|
+
lines.push(`lowering ${report.toolchain.lowering}`);
|
|
251
|
+
lines.push('');
|
|
252
|
+
const width = Math.max(28, ...report.libraries.map(library => library.source.length));
|
|
253
|
+
lines.push(`${'library'.padEnd(width)} ${'ref'.padStart(5)} ${'memo'.padStart(5)} `
|
|
254
|
+
+ `${'miss-d'.padStart(6)} ${'miss-i'.padStart(6)} ${'extra'.padStart(5)} `
|
|
255
|
+
+ `${'deriv'.padStart(5)} ${'name'.padStart(5)}`);
|
|
256
|
+
for (const library of report.libraries) {
|
|
257
|
+
if (library.failure) {
|
|
258
|
+
lines.push(`${library.source.padEnd(width)} ! ${library.failure}`);
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
const c = library.counts;
|
|
262
|
+
lines.push(`${library.source.padEnd(width)} ${String(library.referenceImplied).padStart(5)} `
|
|
263
|
+
+ `${String(library.memo).padStart(5)} `
|
|
264
|
+
+ `${String(c['missing-declared']).padStart(6)} ${String(c['missing-implied']).padStart(6)} `
|
|
265
|
+
+ `${String(c.extra).padStart(5)} ${String(c['differing-derived']).padStart(5)} `
|
|
266
|
+
+ `${String(c['qualified-name']).padStart(5)}`);
|
|
267
|
+
}
|
|
268
|
+
const t = report.totals.counts;
|
|
269
|
+
lines.push(`${'TOTAL'.padEnd(width)} ${' '.repeat(5)} ${' '.repeat(5)} `
|
|
270
|
+
+ `${String(t['missing-declared']).padStart(6)} ${String(t['missing-implied']).padStart(6)} `
|
|
271
|
+
+ `${String(t.extra).padStart(5)} ${String(t['differing-derived']).padStart(5)} `
|
|
272
|
+
+ `${String(t['qualified-name']).padStart(5)}`);
|
|
273
|
+
lines.push('');
|
|
274
|
+
return lines.join('\n');
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=diff-xmi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-xmi.js","sourceRoot":"","sources":["../../src/conformance/diff-xmi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const SYSIDE_VERSION = "syside 0.10.2 9e2b7f0e89cc4076f432504c3e4183e9a13b2734";
|
|
2
|
+
export interface SysideRule {
|
|
3
|
+
/** Stable kebab-case code, used verbatim as MEMO's rule code. */
|
|
4
|
+
code: string;
|
|
5
|
+
description: string;
|
|
6
|
+
/** Which of Syside's two rule lists publish it. */
|
|
7
|
+
grammars: ('kerml' | 'sysml')[];
|
|
8
|
+
}
|
|
9
|
+
export declare const SYSIDE_RULES: readonly SysideRule[];
|
|
10
|
+
//# sourceMappingURL=syside-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syside-rules.d.ts","sourceRoot":"","sources":["../../../src/conformance/generated/syside-rules.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,2DAA2D,CAAC;AAEvF,MAAM,WAAW,UAAU;IACvB,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EA8mC7C,CAAC"}
|