@memoarchitect/tools 0.13.0 → 0.15.0
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 +40 -26
- package/corpus/README.md +20 -36
- package/package.json +9 -10
- package/packages/tools/lib/analysis/impact.d.ts +30 -0
- package/packages/tools/lib/analysis/impact.d.ts.map +1 -1
- package/packages/tools/lib/analysis/impact.js +47 -74
- package/packages/tools/lib/analysis/impact.js.map +1 -1
- package/packages/tools/lib/analysis/interfaces-between.d.ts +36 -0
- package/packages/tools/lib/analysis/interfaces-between.d.ts.map +1 -0
- package/packages/tools/lib/analysis/interfaces-between.js +66 -0
- package/packages/tools/lib/analysis/interfaces-between.js.map +1 -0
- package/packages/tools/lib/analysis/suspect-links.d.ts +45 -0
- package/packages/tools/lib/analysis/suspect-links.d.ts.map +1 -0
- package/packages/tools/lib/analysis/suspect-links.js +66 -0
- package/packages/tools/lib/analysis/suspect-links.js.map +1 -0
- package/packages/tools/lib/analysis-starters.d.ts +2 -0
- package/packages/tools/lib/analysis-starters.d.ts.map +1 -1
- package/packages/tools/lib/analysis-starters.js +73 -68
- package/packages/tools/lib/analysis-starters.js.map +1 -1
- package/packages/tools/lib/authoring/outline-identity.d.ts +34 -0
- package/packages/tools/lib/authoring/outline-identity.d.ts.map +1 -0
- package/packages/tools/lib/authoring/outline-identity.js +95 -0
- package/packages/tools/lib/authoring/outline-identity.js.map +1 -0
- package/packages/tools/lib/authoring/outline-source.d.ts +57 -0
- package/packages/tools/lib/authoring/outline-source.d.ts.map +1 -0
- package/packages/tools/lib/authoring/outline-source.js +203 -0
- package/packages/tools/lib/authoring/outline-source.js.map +1 -0
- package/packages/tools/lib/authoring/source-outline.d.ts +82 -0
- package/packages/tools/lib/authoring/source-outline.d.ts.map +1 -0
- package/packages/tools/lib/authoring/source-outline.js +267 -0
- package/packages/tools/lib/authoring/source-outline.js.map +1 -0
- package/packages/tools/lib/bin/memo.js +181 -632
- package/packages/tools/lib/bin/memo.js.map +1 -1
- package/packages/tools/lib/browser/index.d.ts +12 -0
- package/packages/tools/lib/browser/index.d.ts.map +1 -1
- package/packages/tools/lib/browser/index.js +8 -0
- package/packages/tools/lib/browser/index.js.map +1 -1
- package/packages/tools/lib/cli/project-commands.d.ts +3 -0
- package/packages/tools/lib/cli/project-commands.d.ts.map +1 -0
- package/packages/tools/lib/cli/project-commands.js +577 -0
- package/packages/tools/lib/cli/project-commands.js.map +1 -0
- package/packages/tools/lib/commands/ask.d.ts.map +1 -1
- package/packages/tools/lib/commands/ask.js +10 -18
- package/packages/tools/lib/commands/ask.js.map +1 -1
- package/packages/tools/lib/commands/compile.d.ts +18 -0
- package/packages/tools/lib/commands/compile.d.ts.map +1 -0
- package/packages/tools/lib/commands/compile.js +122 -0
- package/packages/tools/lib/commands/compile.js.map +1 -0
- package/packages/tools/lib/commands/convert.js +2 -2
- package/packages/tools/lib/commands/convert.js.map +1 -1
- package/packages/tools/lib/commands/create-package.js +4 -4
- package/packages/tools/lib/commands/create-package.js.map +1 -1
- package/packages/tools/lib/commands/dev.d.ts +20 -2
- package/packages/tools/lib/commands/dev.d.ts.map +1 -1
- package/packages/tools/lib/commands/dev.js +386 -97
- package/packages/tools/lib/commands/dev.js.map +1 -1
- package/packages/tools/lib/commands/dhf-draft.d.ts.map +1 -1
- package/packages/tools/lib/commands/dhf-draft.js +7 -16
- package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
- package/packages/tools/lib/commands/dhf-init.js +3 -3
- package/packages/tools/lib/commands/dhf-init.js.map +1 -1
- package/packages/tools/lib/commands/dhf-lint.d.ts.map +1 -1
- package/packages/tools/lib/commands/dhf-lint.js +4 -3
- package/packages/tools/lib/commands/dhf-lint.js.map +1 -1
- package/packages/tools/lib/commands/dhf-preview.d.ts.map +1 -1
- package/packages/tools/lib/commands/dhf-preview.js +5 -26
- package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
- package/packages/tools/lib/commands/dhf.d.ts +4 -0
- package/packages/tools/lib/commands/dhf.d.ts.map +1 -1
- package/packages/tools/lib/commands/dhf.js +77 -31
- package/packages/tools/lib/commands/dhf.js.map +1 -1
- package/packages/tools/lib/commands/element.d.ts.map +1 -1
- package/packages/tools/lib/commands/element.js +44 -6
- package/packages/tools/lib/commands/element.js.map +1 -1
- package/packages/tools/lib/commands/export.d.ts +1 -1
- package/packages/tools/lib/commands/export.d.ts.map +1 -1
- package/packages/tools/lib/commands/export.js +25 -18
- 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 -30
- package/packages/tools/lib/commands/generate.js.map +1 -1
- package/packages/tools/lib/commands/ids-rebase.d.ts +15 -0
- package/packages/tools/lib/commands/ids-rebase.d.ts.map +1 -0
- package/packages/tools/lib/commands/ids-rebase.js +133 -0
- package/packages/tools/lib/commands/ids-rebase.js.map +1 -0
- package/packages/tools/lib/commands/import-ea.d.ts +3 -3
- package/packages/tools/lib/commands/import-ea.d.ts.map +1 -1
- package/packages/tools/lib/commands/import-ea.js +12 -9
- package/packages/tools/lib/commands/import-ea.js.map +1 -1
- package/packages/tools/lib/commands/import-owl.d.ts +1 -1
- package/packages/tools/lib/commands/import-owl.js +2 -2
- package/packages/tools/lib/commands/import-owl.js.map +1 -1
- package/packages/tools/lib/commands/import-sysand.d.ts +1 -1
- package/packages/tools/lib/commands/import-sysand.d.ts.map +1 -1
- package/packages/tools/lib/commands/import-sysand.js +15 -6
- package/packages/tools/lib/commands/import-sysand.js.map +1 -1
- package/packages/tools/lib/commands/import.d.ts +13 -0
- package/packages/tools/lib/commands/import.d.ts.map +1 -1
- package/packages/tools/lib/commands/import.js +89 -29
- package/packages/tools/lib/commands/import.js.map +1 -1
- package/packages/tools/lib/commands/init.d.ts +0 -8
- package/packages/tools/lib/commands/init.d.ts.map +1 -1
- package/packages/tools/lib/commands/init.js +56 -51
- package/packages/tools/lib/commands/init.js.map +1 -1
- package/packages/tools/lib/commands/inspect.d.ts.map +1 -1
- package/packages/tools/lib/commands/inspect.js +22 -15
- package/packages/tools/lib/commands/inspect.js.map +1 -1
- package/packages/tools/lib/commands/install.d.ts.map +1 -1
- package/packages/tools/lib/commands/install.js +9 -6
- package/packages/tools/lib/commands/install.js.map +1 -1
- package/packages/tools/lib/commands/interfaces.d.ts +8 -0
- package/packages/tools/lib/commands/interfaces.d.ts.map +1 -0
- package/packages/tools/lib/commands/interfaces.js +71 -0
- package/packages/tools/lib/commands/interfaces.js.map +1 -0
- package/packages/tools/lib/commands/lock.d.ts.map +1 -1
- package/packages/tools/lib/commands/lock.js +13 -6
- package/packages/tools/lib/commands/lock.js.map +1 -1
- package/packages/tools/lib/commands/mcp.js +7 -7
- package/packages/tools/lib/commands/mcp.js.map +1 -1
- package/packages/tools/lib/commands/migrate-layout.d.ts +5 -0
- package/packages/tools/lib/commands/migrate-layout.d.ts.map +1 -0
- package/packages/tools/lib/commands/migrate-layout.js +90 -0
- package/packages/tools/lib/commands/migrate-layout.js.map +1 -0
- package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
- package/packages/tools/lib/commands/ontology.js +26 -22
- package/packages/tools/lib/commands/ontology.js.map +1 -1
- package/packages/tools/lib/commands/pack.d.ts.map +1 -1
- package/packages/tools/lib/commands/pack.js +14 -9
- package/packages/tools/lib/commands/pack.js.map +1 -1
- package/packages/tools/lib/commands/pinned-target.d.ts +12 -0
- package/packages/tools/lib/commands/pinned-target.d.ts.map +1 -0
- package/packages/tools/lib/commands/pinned-target.js +74 -0
- package/packages/tools/lib/commands/pinned-target.js.map +1 -0
- package/packages/tools/lib/commands/plugin.d.ts.map +1 -1
- package/packages/tools/lib/commands/plugin.js +13 -22
- package/packages/tools/lib/commands/plugin.js.map +1 -1
- package/packages/tools/lib/commands/prune.d.ts +5 -0
- package/packages/tools/lib/commands/prune.d.ts.map +1 -0
- package/packages/tools/lib/commands/prune.js +27 -0
- package/packages/tools/lib/commands/prune.js.map +1 -0
- package/packages/tools/lib/commands/retired.d.ts +10 -0
- package/packages/tools/lib/commands/retired.d.ts.map +1 -0
- package/packages/tools/lib/commands/retired.js +35 -0
- package/packages/tools/lib/commands/retired.js.map +1 -0
- package/packages/tools/lib/commands/rules.d.ts +49 -5
- package/packages/tools/lib/commands/rules.d.ts.map +1 -1
- package/packages/tools/lib/commands/rules.js +340 -172
- package/packages/tools/lib/commands/rules.js.map +1 -1
- package/packages/tools/lib/commands/ship-library.d.ts +4 -0
- package/packages/tools/lib/commands/ship-library.d.ts.map +1 -0
- package/packages/tools/lib/commands/ship-library.js +45 -0
- package/packages/tools/lib/commands/ship-library.js.map +1 -0
- package/packages/tools/lib/commands/standards.d.ts +2 -2
- package/packages/tools/lib/commands/standards.d.ts.map +1 -1
- package/packages/tools/lib/commands/standards.js +78 -33
- package/packages/tools/lib/commands/standards.js.map +1 -1
- package/packages/tools/lib/commands/sysand-publish.d.ts +16 -1
- package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
- package/packages/tools/lib/commands/sysand-publish.js +75 -193
- package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
- package/packages/tools/lib/commands/toolchain.d.ts +5 -0
- package/packages/tools/lib/commands/toolchain.d.ts.map +1 -1
- package/packages/tools/lib/commands/toolchain.js +50 -1
- package/packages/tools/lib/commands/toolchain.js.map +1 -1
- package/packages/tools/lib/commands/validate-client.d.ts +11 -0
- package/packages/tools/lib/commands/validate-client.d.ts.map +1 -0
- package/packages/tools/lib/commands/validate-client.js +54 -0
- package/packages/tools/lib/commands/validate-client.js.map +1 -0
- package/packages/tools/lib/commands/validate.d.ts +33 -2
- package/packages/tools/lib/commands/validate.d.ts.map +1 -1
- package/packages/tools/lib/commands/validate.js +432 -186
- package/packages/tools/lib/commands/validate.js.map +1 -1
- package/packages/tools/lib/dhf/device-dhf.d.ts +57 -0
- package/packages/tools/lib/dhf/device-dhf.d.ts.map +1 -0
- package/packages/tools/lib/dhf/device-dhf.js +152 -0
- package/packages/tools/lib/dhf/device-dhf.js.map +1 -0
- package/packages/tools/lib/dhf/dhf-config-v2.d.ts +1 -1
- package/packages/tools/lib/dhf/dhf-config-v2.d.ts.map +1 -1
- package/packages/tools/lib/dhf/query-engine.d.ts +9 -2
- package/packages/tools/lib/dhf/query-engine.d.ts.map +1 -1
- package/packages/tools/lib/dhf/query-engine.js +29 -25
- package/packages/tools/lib/dhf/query-engine.js.map +1 -1
- package/packages/tools/lib/dhf/query-executor.d.ts +1 -1
- package/packages/tools/lib/dhf/query-executor.js +1 -1
- package/packages/tools/lib/dhf/query-executor.js.map +1 -1
- package/packages/tools/lib/dhf/standards-block.js +1 -1
- package/packages/tools/lib/dhf/standards-block.js.map +1 -1
- package/packages/tools/lib/dhf/standards-library.d.ts.map +1 -1
- package/packages/tools/lib/dhf/standards-library.js +16 -9
- package/packages/tools/lib/dhf/standards-library.js.map +1 -1
- package/packages/tools/lib/dhf/standards-report.d.ts +11 -3
- package/packages/tools/lib/dhf/standards-report.d.ts.map +1 -1
- package/packages/tools/lib/dhf/standards-report.js +43 -13
- package/packages/tools/lib/dhf/standards-report.js.map +1 -1
- package/packages/tools/lib/dhf/template-engine.d.ts +2 -0
- package/packages/tools/lib/dhf/template-engine.d.ts.map +1 -1
- package/packages/tools/lib/dhf/template-engine.js +5 -5
- package/packages/tools/lib/dhf/template-engine.js.map +1 -1
- package/packages/tools/lib/import/import-diff.d.ts +31 -1
- package/packages/tools/lib/import/import-diff.d.ts.map +1 -1
- package/packages/tools/lib/import/import-diff.js +91 -19
- package/packages/tools/lib/import/import-diff.js.map +1 -1
- package/packages/tools/lib/import/import-sources.d.ts +21 -0
- package/packages/tools/lib/import/import-sources.d.ts.map +1 -0
- package/packages/tools/lib/import/import-sources.js +36 -0
- package/packages/tools/lib/import/import-sources.js.map +1 -0
- package/packages/tools/lib/import/reqif.d.ts +23 -0
- package/packages/tools/lib/import/reqif.d.ts.map +1 -0
- package/packages/tools/lib/import/reqif.js +151 -0
- package/packages/tools/lib/import/reqif.js.map +1 -0
- package/packages/tools/lib/import/source-import.d.ts +128 -0
- package/packages/tools/lib/import/source-import.d.ts.map +1 -0
- package/packages/tools/lib/import/source-import.js +305 -0
- package/packages/tools/lib/import/source-import.js.map +1 -0
- package/packages/tools/lib/importer/cameo-importer.d.ts.map +1 -1
- package/packages/tools/lib/importer/cameo-importer.js +4 -1
- 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 -1
- package/packages/tools/lib/importer/ea-importer.js.map +1 -1
- package/packages/tools/lib/importer/sysand-importer.d.ts +2 -1
- package/packages/tools/lib/importer/sysand-importer.d.ts.map +1 -1
- package/packages/tools/lib/importer/sysand-importer.js +27 -10
- package/packages/tools/lib/importer/sysand-importer.js.map +1 -1
- package/packages/tools/lib/index.d.ts +20 -6
- package/packages/tools/lib/index.d.ts.map +1 -1
- package/packages/tools/lib/index.js +22 -8
- package/packages/tools/lib/index.js.map +1 -1
- package/packages/tools/lib/llm/draft-engine.js +1 -1
- package/packages/tools/lib/llm/draft-engine.js.map +1 -1
- package/packages/tools/lib/llm/model-context.js +1 -1
- package/packages/tools/lib/llm/model-context.js.map +1 -1
- package/packages/tools/lib/lock.d.ts +37 -2
- package/packages/tools/lib/lock.d.ts.map +1 -1
- package/packages/tools/lib/lock.js +93 -8
- package/packages/tools/lib/lock.js.map +1 -1
- package/packages/tools/lib/mcp/index.js +1 -1
- package/packages/tools/lib/mcp/index.js.map +1 -1
- package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
- package/packages/tools/lib/mcp/model-loader.js +6 -18
- package/packages/tools/lib/mcp/model-loader.js.map +1 -1
- package/packages/tools/lib/mcp/server.js +2 -2
- package/packages/tools/lib/mcp/server.js.map +1 -1
- package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
- package/packages/tools/lib/mcp/tools.js +5 -4
- package/packages/tools/lib/mcp/tools.js.map +1 -1
- package/packages/tools/lib/methodology/guide-service.d.ts +28 -0
- package/packages/tools/lib/methodology/guide-service.d.ts.map +1 -0
- package/packages/tools/lib/methodology/guide-service.js +32 -0
- package/packages/tools/lib/methodology/guide-service.js.map +1 -0
- package/packages/tools/lib/methodology/guide.d.ts +56 -0
- package/packages/tools/lib/methodology/guide.d.ts.map +1 -0
- package/packages/tools/lib/methodology/guide.js +80 -0
- package/packages/tools/lib/methodology/guide.js.map +1 -0
- package/packages/tools/lib/model/census-projects.d.ts +26 -0
- package/packages/tools/lib/model/census-projects.d.ts.map +1 -0
- package/packages/tools/lib/model/census-projects.js +53 -0
- package/packages/tools/lib/model/census-projects.js.map +1 -0
- package/packages/tools/lib/model/census.d.ts +103 -0
- package/packages/tools/lib/model/census.d.ts.map +1 -0
- package/packages/tools/lib/model/census.js +229 -0
- package/packages/tools/lib/model/census.js.map +1 -0
- package/packages/tools/lib/model/complete-model.d.ts +52 -0
- package/packages/tools/lib/model/complete-model.d.ts.map +1 -0
- package/packages/tools/lib/model/complete-model.js +287 -0
- package/packages/tools/lib/model/complete-model.js.map +1 -0
- package/packages/tools/lib/model/config-loader.d.ts +8 -3
- package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/config-loader.js +37 -6
- package/packages/tools/lib/model/config-loader.js.map +1 -1
- package/packages/tools/lib/model/config.d.ts +21 -7
- package/packages/tools/lib/model/config.d.ts.map +1 -1
- package/packages/tools/lib/model/effective-scope.d.ts +55 -28
- package/packages/tools/lib/model/effective-scope.d.ts.map +1 -1
- package/packages/tools/lib/model/effective-scope.js +96 -35
- package/packages/tools/lib/model/effective-scope.js.map +1 -1
- package/packages/tools/lib/model/element-index.d.ts +207 -0
- package/packages/tools/lib/model/element-index.d.ts.map +1 -0
- package/packages/tools/lib/model/element-index.js +316 -0
- package/packages/tools/lib/model/element-index.js.map +1 -0
- package/packages/tools/lib/model/id-rebase.d.ts +35 -0
- package/packages/tools/lib/model/id-rebase.d.ts.map +1 -0
- package/packages/tools/lib/model/id-rebase.js +199 -0
- package/packages/tools/lib/model/id-rebase.js.map +1 -0
- package/packages/tools/lib/model/identity-registry.d.ts +34 -3
- package/packages/tools/lib/model/identity-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/identity-registry.js +40 -7
- package/packages/tools/lib/model/identity-registry.js.map +1 -1
- package/packages/tools/lib/model/impact.d.ts +75 -0
- package/packages/tools/lib/model/impact.d.ts.map +1 -0
- package/packages/tools/lib/model/impact.js +167 -0
- package/packages/tools/lib/model/impact.js.map +1 -0
- package/packages/tools/lib/model/ir-identity.d.ts +3 -51
- package/packages/tools/lib/model/ir-identity.d.ts.map +1 -1
- package/packages/tools/lib/model/ir-identity.js +14 -121
- package/packages/tools/lib/model/ir-identity.js.map +1 -1
- package/packages/tools/lib/model/kind-registry.d.ts +66 -22
- package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/kind-registry.js +104 -145
- package/packages/tools/lib/model/kind-registry.js.map +1 -1
- package/packages/tools/lib/model/manifest.d.ts +2 -2
- package/packages/tools/lib/model/manifest.d.ts.map +1 -1
- package/packages/tools/lib/model/manifest.js +5 -4
- package/packages/tools/lib/model/manifest.js.map +1 -1
- package/packages/tools/lib/model/methodology-loader.d.ts +11 -2
- package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/methodology-loader.js +24 -130
- package/packages/tools/lib/model/methodology-loader.js.map +1 -1
- package/packages/tools/lib/model/methodology-resolver.d.ts +71 -6
- package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -1
- package/packages/tools/lib/model/methodology-resolver.js +210 -24
- package/packages/tools/lib/model/methodology-resolver.js.map +1 -1
- package/packages/tools/lib/model/model-diff.d.ts +73 -0
- package/packages/tools/lib/model/model-diff.d.ts.map +1 -0
- package/packages/tools/lib/model/model-diff.js +91 -0
- package/packages/tools/lib/model/model-diff.js.map +1 -0
- package/packages/tools/lib/model/narrow-model.d.ts +9 -0
- package/packages/tools/lib/model/narrow-model.d.ts.map +1 -0
- package/packages/tools/lib/model/narrow-model.js +54 -0
- package/packages/tools/lib/model/narrow-model.js.map +1 -0
- package/packages/tools/lib/model/native-project.d.ts +92 -11
- package/packages/tools/lib/model/native-project.d.ts.map +1 -1
- package/packages/tools/lib/model/native-project.js +163 -267
- package/packages/tools/lib/model/native-project.js.map +1 -1
- package/packages/tools/lib/model/ontology-loader.d.ts +10 -61
- package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
- package/packages/tools/lib/model/ontology-loader.js +11 -512
- package/packages/tools/lib/model/ontology-loader.js.map +1 -1
- package/packages/tools/lib/model/package-manifest.d.ts +8 -2
- package/packages/tools/lib/model/package-manifest.d.ts.map +1 -1
- package/packages/tools/lib/model/package-manifest.js +14 -2
- package/packages/tools/lib/model/package-manifest.js.map +1 -1
- package/packages/tools/lib/model/pinned.d.ts +216 -0
- package/packages/tools/lib/model/pinned.d.ts.map +1 -0
- package/packages/tools/lib/model/pinned.js +481 -0
- package/packages/tools/lib/model/pinned.js.map +1 -0
- package/packages/tools/lib/model/project-conversion.d.ts +3 -2
- package/packages/tools/lib/model/project-conversion.d.ts.map +1 -1
- package/packages/tools/lib/model/project-conversion.js +55 -10
- package/packages/tools/lib/model/project-conversion.js.map +1 -1
- package/packages/tools/lib/model/project-settings.d.ts +10 -0
- package/packages/tools/lib/model/project-settings.d.ts.map +1 -0
- package/packages/tools/lib/model/project-settings.js +48 -0
- package/packages/tools/lib/model/project-settings.js.map +1 -0
- package/packages/tools/lib/model/relation-selection.d.ts +25 -0
- package/packages/tools/lib/model/relation-selection.d.ts.map +1 -0
- package/packages/tools/lib/model/relation-selection.js +65 -0
- package/packages/tools/lib/model/relation-selection.js.map +1 -0
- package/packages/tools/lib/model/relationship-legality.d.ts +6 -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 +21 -8
- package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/relationship-registry.js +77 -129
- package/packages/tools/lib/model/relationship-registry.js.map +1 -1
- package/packages/tools/lib/model/relationship-subjects.d.ts +28 -0
- package/packages/tools/lib/model/relationship-subjects.d.ts.map +1 -0
- package/packages/tools/lib/model/relationship-subjects.js +126 -0
- package/packages/tools/lib/model/relationship-subjects.js.map +1 -0
- package/packages/tools/lib/model/release-target.d.ts +12 -0
- package/packages/tools/lib/model/release-target.d.ts.map +1 -0
- package/packages/tools/lib/model/release-target.js +35 -0
- package/packages/tools/lib/model/release-target.js.map +1 -0
- package/packages/tools/lib/model/selector-vocabulary.d.ts +47 -0
- package/packages/tools/lib/model/selector-vocabulary.d.ts.map +1 -0
- package/packages/tools/lib/model/selector-vocabulary.js +181 -0
- package/packages/tools/lib/model/selector-vocabulary.js.map +1 -0
- package/packages/tools/lib/model/semantic.d.ts +99 -7
- package/packages/tools/lib/model/semantic.d.ts.map +1 -1
- package/packages/tools/lib/model/semantic.js +13 -1
- package/packages/tools/lib/model/semantic.js.map +1 -1
- package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -1
- package/packages/tools/lib/model/settings-boundary.js +9 -8
- package/packages/tools/lib/model/settings-boundary.js.map +1 -1
- package/packages/tools/lib/model/short-id.d.ts.map +1 -1
- package/packages/tools/lib/model/short-id.js +4 -0
- package/packages/tools/lib/model/short-id.js.map +1 -1
- package/packages/tools/lib/model/source-graph.d.ts +9 -7
- package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
- package/packages/tools/lib/model/source-graph.js +19 -24
- package/packages/tools/lib/model/source-graph.js.map +1 -1
- package/packages/tools/lib/model/source-provenance.d.ts +5 -1
- package/packages/tools/lib/model/source-provenance.d.ts.map +1 -1
- package/packages/tools/lib/model/source-provenance.js.map +1 -1
- package/packages/tools/lib/model/sysml-files.js +1 -1
- package/packages/tools/lib/model/sysml-ir.d.ts +2 -5
- package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -1
- package/packages/tools/lib/model/sysml-ir.js +1 -100
- package/packages/tools/lib/model/sysml-ir.js.map +1 -1
- package/packages/tools/lib/model/toolchain-merge.d.ts +4 -0
- package/packages/tools/lib/model/toolchain-merge.d.ts.map +1 -0
- package/packages/tools/lib/model/toolchain-merge.js +34 -0
- package/packages/tools/lib/model/toolchain-merge.js.map +1 -0
- package/packages/tools/lib/model/user-settings.d.ts +13 -0
- package/packages/tools/lib/model/user-settings.d.ts.map +1 -0
- package/packages/tools/lib/model/user-settings.js +83 -0
- package/packages/tools/lib/model/user-settings.js.map +1 -0
- package/packages/tools/lib/model/variability.d.ts +56 -0
- package/packages/tools/lib/model/variability.d.ts.map +1 -0
- package/packages/tools/lib/model/variability.js +116 -0
- package/packages/tools/lib/model/variability.js.map +1 -0
- package/packages/tools/lib/model/version-range.d.ts +2 -0
- package/packages/tools/lib/model/version-range.d.ts.map +1 -0
- package/packages/tools/lib/model/version-range.js +37 -0
- package/packages/tools/lib/model/version-range.js.map +1 -0
- package/packages/tools/lib/model/view-deriver.d.ts +16 -0
- package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
- package/packages/tools/lib/model/view-deriver.js +129 -30
- package/packages/tools/lib/model/view-deriver.js.map +1 -1
- package/packages/tools/lib/model/view-layout-block.d.ts +81 -0
- package/packages/tools/lib/model/view-layout-block.d.ts.map +1 -0
- package/packages/tools/lib/model/view-layout-block.js +525 -0
- package/packages/tools/lib/model/view-layout-block.js.map +1 -0
- package/packages/tools/lib/model/view-layout-migration.d.ts +54 -0
- package/packages/tools/lib/model/view-layout-migration.d.ts.map +1 -0
- package/packages/tools/lib/model/view-layout-migration.js +156 -0
- package/packages/tools/lib/model/view-layout-migration.js.map +1 -0
- package/packages/tools/lib/model/workspace-membership.d.ts +99 -0
- package/packages/tools/lib/model/workspace-membership.d.ts.map +1 -0
- package/packages/tools/lib/model/workspace-membership.js +281 -0
- package/packages/tools/lib/model/workspace-membership.js.map +1 -0
- package/packages/tools/lib/ontology/owl-exporter.d.ts +1 -1
- package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
- package/packages/tools/lib/ontology/owl-exporter.js +1 -1
- package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
- package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -1
- package/packages/tools/lib/operations/ai-authoring.js +7 -5
- package/packages/tools/lib/operations/ai-authoring.js.map +1 -1
- package/packages/tools/lib/operations/authoring.d.ts +10 -4
- package/packages/tools/lib/operations/authoring.d.ts.map +1 -1
- package/packages/tools/lib/operations/authoring.js +27 -11
- package/packages/tools/lib/operations/authoring.js.map +1 -1
- 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 +1 -0
- package/packages/tools/lib/operations/index.js.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.js +7 -13
- package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
- package/packages/tools/lib/plugin/plugin-scaffold.js +2 -2
- package/packages/tools/lib/plugin/plugin-scaffold.js.map +1 -1
- package/packages/tools/lib/protocol/messages.d.ts +375 -7
- package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
- package/packages/tools/lib/serializer/csv-io.d.ts +37 -29
- package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
- package/packages/tools/lib/serializer/csv-io.js +64 -31
- package/packages/tools/lib/serializer/csv-io.js.map +1 -1
- package/packages/tools/lib/serializer/sysml-generator.d.ts +15 -2
- package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
- package/packages/tools/lib/serializer/sysml-generator.js +45 -17
- package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
- package/packages/tools/lib/server/conflict-policy.js +1 -1
- package/packages/tools/lib/server/conflict-policy.js.map +1 -1
- package/packages/tools/lib/server/dashboard-store.d.ts +1 -7
- package/packages/tools/lib/server/dashboard-store.d.ts.map +1 -1
- package/packages/tools/lib/server/dashboard-store.js +3 -14
- package/packages/tools/lib/server/dashboard-store.js.map +1 -1
- package/packages/tools/lib/server/dev-server.d.ts +48 -1
- package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
- package/packages/tools/lib/server/dev-server.js +529 -80
- package/packages/tools/lib/server/dev-server.js.map +1 -1
- package/packages/tools/lib/server/dev-validate.d.ts +30 -0
- package/packages/tools/lib/server/dev-validate.d.ts.map +1 -0
- package/packages/tools/lib/server/dev-validate.js +82 -0
- package/packages/tools/lib/server/dev-validate.js.map +1 -0
- package/packages/tools/lib/server/element-writer.d.ts +4 -1
- package/packages/tools/lib/server/element-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/element-writer.js +56 -35
- package/packages/tools/lib/server/element-writer.js.map +1 -1
- package/packages/tools/lib/server/mutation-domain.d.ts +10 -0
- package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -1
- package/packages/tools/lib/server/mutation-domain.js +45 -8
- package/packages/tools/lib/server/mutation-domain.js.map +1 -1
- package/packages/tools/lib/server/package-source.d.ts +13 -3
- package/packages/tools/lib/server/package-source.d.ts.map +1 -1
- package/packages/tools/lib/server/package-source.js +31 -39
- package/packages/tools/lib/server/package-source.js.map +1 -1
- package/packages/tools/lib/server/package-writer.d.ts +19 -6
- package/packages/tools/lib/server/package-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/package-writer.js +90 -39
- package/packages/tools/lib/server/package-writer.js.map +1 -1
- package/packages/tools/lib/server/persistor.d.ts +33 -7
- package/packages/tools/lib/server/persistor.d.ts.map +1 -1
- package/packages/tools/lib/server/persistor.js +63 -48
- package/packages/tools/lib/server/persistor.js.map +1 -1
- package/packages/tools/lib/server/project-gitignore.d.ts +9 -0
- package/packages/tools/lib/server/project-gitignore.d.ts.map +1 -0
- package/packages/tools/lib/server/project-gitignore.js +27 -0
- package/packages/tools/lib/server/project-gitignore.js.map +1 -0
- package/packages/tools/lib/server/relationship-writer.d.ts +31 -2
- package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/relationship-writer.js +255 -95
- package/packages/tools/lib/server/relationship-writer.js.map +1 -1
- package/packages/tools/lib/server/release-writer.d.ts +46 -0
- package/packages/tools/lib/server/release-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/release-writer.js +133 -0
- package/packages/tools/lib/server/release-writer.js.map +1 -0
- package/packages/tools/lib/server/rule-policy-writer.d.ts +17 -4
- package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/rule-policy-writer.js +92 -7
- package/packages/tools/lib/server/rule-policy-writer.js.map +1 -1
- package/packages/tools/lib/server/rule-service.d.ts +50 -0
- package/packages/tools/lib/server/rule-service.d.ts.map +1 -0
- package/packages/tools/lib/server/rule-service.js +89 -0
- package/packages/tools/lib/server/rule-service.js.map +1 -0
- package/packages/tools/lib/server/rule-writer.d.ts +87 -0
- package/packages/tools/lib/server/rule-writer.d.ts.map +1 -0
- package/packages/tools/lib/server/rule-writer.js +165 -0
- package/packages/tools/lib/server/rule-writer.js.map +1 -0
- package/packages/tools/lib/server/suspect-review.d.ts +11 -0
- package/packages/tools/lib/server/suspect-review.d.ts.map +1 -0
- package/packages/tools/lib/server/suspect-review.js +28 -0
- package/packages/tools/lib/server/suspect-review.js.map +1 -0
- package/packages/tools/lib/server/sysml-notation.d.ts +1 -1
- package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -1
- package/packages/tools/lib/server/sysml-notation.js +5 -0
- package/packages/tools/lib/server/sysml-notation.js.map +1 -1
- package/packages/tools/lib/server/user-preferences.d.ts +8 -0
- package/packages/tools/lib/server/user-preferences.d.ts.map +1 -0
- package/packages/tools/lib/server/user-preferences.js +47 -0
- package/packages/tools/lib/server/user-preferences.js.map +1 -0
- package/packages/tools/lib/server/version-servers.d.ts +60 -0
- package/packages/tools/lib/server/version-servers.d.ts.map +1 -0
- package/packages/tools/lib/server/version-servers.js +106 -0
- package/packages/tools/lib/server/version-servers.js.map +1 -0
- package/packages/tools/lib/server/view-layout-store.d.ts +28 -13
- package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
- package/packages/tools/lib/server/view-layout-store.js +106 -106
- package/packages/tools/lib/server/view-layout-store.js.map +1 -1
- package/packages/tools/lib/server/view-writer.d.ts +22 -2
- package/packages/tools/lib/server/view-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/view-writer.js +99 -44
- package/packages/tools/lib/server/view-writer.js.map +1 -1
- package/packages/tools/lib/server/write-guard.d.ts +7 -0
- package/packages/tools/lib/server/write-guard.d.ts.map +1 -0
- package/packages/tools/lib/server/write-guard.js +77 -0
- package/packages/tools/lib/server/write-guard.js.map +1 -0
- package/packages/tools/lib/stage2/api-model.d.ts +160 -0
- package/packages/tools/lib/stage2/api-model.d.ts.map +1 -0
- package/packages/tools/lib/stage2/api-model.js +341 -0
- package/packages/tools/lib/stage2/api-model.js.map +1 -0
- package/packages/tools/lib/stage2/build-from-api.d.ts +47 -0
- package/packages/tools/lib/stage2/build-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/build-from-api.js +1462 -0
- package/packages/tools/lib/stage2/build-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/guide-from-api.d.ts +38 -0
- package/packages/tools/lib/stage2/guide-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/guide-from-api.js +97 -0
- package/packages/tools/lib/stage2/guide-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/handoff-files.d.ts +13 -0
- package/packages/tools/lib/stage2/handoff-files.d.ts.map +1 -0
- package/packages/tools/lib/stage2/handoff-files.js +32 -0
- package/packages/tools/lib/stage2/handoff-files.js.map +1 -0
- package/packages/tools/lib/stage2/methodology-from-api.d.ts +10 -0
- package/packages/tools/lib/stage2/methodology-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/methodology-from-api.js +109 -0
- package/packages/tools/lib/stage2/methodology-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/package-metadata-from-api.d.ts +15 -0
- package/packages/tools/lib/stage2/package-metadata-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/package-metadata-from-api.js +238 -0
- package/packages/tools/lib/stage2/package-metadata-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/project-from-api.d.ts +60 -0
- package/packages/tools/lib/stage2/project-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/project-from-api.js +328 -0
- package/packages/tools/lib/stage2/project-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/registries-from-api.d.ts +68 -0
- package/packages/tools/lib/stage2/registries-from-api.d.ts.map +1 -0
- package/packages/tools/lib/stage2/registries-from-api.js +313 -0
- package/packages/tools/lib/stage2/registries-from-api.js.map +1 -0
- package/packages/tools/lib/stage2/stage2-from-handoff.d.ts +26 -0
- package/packages/tools/lib/stage2/stage2-from-handoff.d.ts.map +1 -0
- package/packages/tools/lib/stage2/stage2-from-handoff.js +34 -0
- package/packages/tools/lib/stage2/stage2-from-handoff.js.map +1 -0
- package/packages/tools/lib/stage2/sysml-names.d.ts +9 -0
- package/packages/tools/lib/stage2/sysml-names.d.ts.map +1 -0
- package/packages/tools/lib/stage2/sysml-names.js +39 -0
- package/packages/tools/lib/stage2/sysml-names.js.map +1 -0
- package/packages/tools/lib/toolchain/default-registry.d.ts +2 -2
- package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/default-registry.js +9 -5
- package/packages/tools/lib/toolchain/default-registry.js.map +1 -1
- package/packages/tools/lib/toolchain/diagnostic.d.ts +2 -2
- package/packages/tools/lib/toolchain/diagnostic.js +1 -1
- package/packages/tools/lib/toolchain/diagnostic.js.map +1 -1
- package/packages/tools/lib/toolchain/effective.d.ts +25 -17
- package/packages/tools/lib/toolchain/effective.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/effective.js +45 -40
- package/packages/tools/lib/toolchain/effective.js.map +1 -1
- package/packages/tools/lib/toolchain/exceptions.d.ts +27 -0
- package/packages/tools/lib/toolchain/exceptions.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/exceptions.js +77 -0
- package/packages/tools/lib/toolchain/exceptions.js.map +1 -0
- package/packages/tools/lib/toolchain/index.d.ts +2 -2
- package/packages/tools/lib/toolchain/index.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/index.js +2 -2
- package/packages/tools/lib/toolchain/index.js.map +1 -1
- package/packages/tools/lib/toolchain/operations.d.ts +45 -10
- package/packages/tools/lib/toolchain/operations.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/operations.js +107 -8
- package/packages/tools/lib/toolchain/operations.js.map +1 -1
- package/packages/tools/lib/toolchain/ownership.d.ts +13 -0
- package/packages/tools/lib/toolchain/ownership.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/ownership.js +57 -0
- package/packages/tools/lib/toolchain/ownership.js.map +1 -0
- package/packages/tools/lib/toolchain/process.d.ts +2 -2
- package/packages/tools/lib/toolchain/process.js +2 -2
- package/packages/tools/lib/toolchain/project-config.d.ts +4 -0
- package/packages/tools/lib/toolchain/project-config.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/project-config.js +13 -0
- package/packages/tools/lib/toolchain/project-config.js.map +1 -0
- package/packages/tools/lib/toolchain/project-model.d.ts +75 -0
- package/packages/tools/lib/toolchain/project-model.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/project-model.js +92 -0
- package/packages/tools/lib/toolchain/project-model.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal-package.d.ts +6 -0
- package/packages/tools/lib/toolchain/providers/internal-package.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/internal-package.js +47 -0
- package/packages/tools/lib/toolchain/providers/internal-package.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-check.d.ts +20 -0
- package/packages/tools/lib/toolchain/providers/opensysml-check.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-check.js +95 -0
- package/packages/tools/lib/toolchain/providers/opensysml-check.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-compact.d.ts +17 -0
- package/packages/tools/lib/toolchain/providers/opensysml-compact.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-compact.js +69 -0
- package/packages/tools/lib/toolchain/providers/opensysml-compact.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-lowering.d.ts +50 -0
- package/packages/tools/lib/toolchain/providers/opensysml-lowering.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-lowering.js +646 -0
- package/packages/tools/lib/toolchain/providers/opensysml-lowering.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-names.d.ts +16 -0
- package/packages/tools/lib/toolchain/providers/opensysml-names.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml-names.js +37 -0
- package/packages/tools/lib/toolchain/providers/opensysml-names.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml.d.ts +88 -0
- package/packages/tools/lib/toolchain/providers/opensysml.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/opensysml.js +178 -0
- package/packages/tools/lib/toolchain/providers/opensysml.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/recommended.d.ts +2 -0
- package/packages/tools/lib/toolchain/providers/recommended.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/recommended.js +13 -0
- package/packages/tools/lib/toolchain/providers/recommended.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand-project.d.ts +60 -0
- package/packages/tools/lib/toolchain/providers/sysand-project.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand-project.js +160 -0
- package/packages/tools/lib/toolchain/providers/sysand-project.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/providers/sysand.js +26 -2
- package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -1
- package/packages/tools/lib/toolchain/providers/syside-lowering.d.ts +29 -0
- package/packages/tools/lib/toolchain/providers/syside-lowering.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside-lowering.js +497 -0
- package/packages/tools/lib/toolchain/providers/syside-lowering.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside-python.d.ts +9 -0
- package/packages/tools/lib/toolchain/providers/syside-python.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside-python.js +69 -0
- package/packages/tools/lib/toolchain/providers/syside-python.js.map +1 -0
- package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/providers/syside.js +2 -0
- package/packages/tools/lib/toolchain/providers/syside.js.map +1 -1
- package/packages/tools/lib/toolchain/registry.d.ts +118 -21
- package/packages/tools/lib/toolchain/registry.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/registry.js +18 -24
- package/packages/tools/lib/toolchain/registry.js.map +1 -1
- package/packages/tools/lib/toolchain/schema.d.ts +6 -5
- package/packages/tools/lib/toolchain/schema.d.ts.map +1 -1
- package/packages/tools/lib/toolchain/schema.js +8 -13
- package/packages/tools/lib/toolchain/schema.js.map +1 -1
- package/packages/tools/lib/toolchain/shipped-library.d.ts +28 -0
- package/packages/tools/lib/toolchain/shipped-library.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/shipped-library.js +120 -0
- package/packages/tools/lib/toolchain/shipped-library.js.map +1 -0
- package/packages/tools/lib/toolchain/source-fingerprint.d.ts +2 -0
- package/packages/tools/lib/toolchain/source-fingerprint.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/source-fingerprint.js +30 -0
- package/packages/tools/lib/toolchain/source-fingerprint.js.map +1 -0
- package/packages/tools/lib/toolchain/user-settings-status.d.ts +51 -0
- package/packages/tools/lib/toolchain/user-settings-status.d.ts.map +1 -0
- package/packages/tools/lib/toolchain/user-settings-status.js +104 -0
- package/packages/tools/lib/toolchain/user-settings-status.js.map +1 -0
- package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
- package/packages/tools/lib/validator/architecture-validator.js +2 -1
- package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
- package/packages/tools/lib/validator/behavior-validator.js +1 -1
- package/packages/tools/lib/validator/behavior-validator.js.map +1 -1
- package/packages/tools/lib/validator/builtin-rules.js +1 -1
- package/packages/tools/lib/validator/builtin-rules.js.map +1 -1
- package/packages/tools/lib/validator/constraint-eval.d.ts +30 -4
- package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
- package/packages/tools/lib/validator/constraint-eval.js +101 -59
- package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
- package/packages/tools/lib/validator/constraint-loader-api.d.ts +22 -0
- package/packages/tools/lib/validator/constraint-loader-api.d.ts.map +1 -0
- package/packages/tools/lib/validator/constraint-loader-api.js +160 -0
- package/packages/tools/lib/validator/constraint-loader-api.js.map +1 -0
- package/packages/tools/lib/validator/constraint-loader.d.ts +22 -18
- package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
- package/packages/tools/lib/validator/constraint-loader.js +33 -141
- package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
- package/packages/tools/lib/validator/rule-clauses.d.ts +51 -0
- package/packages/tools/lib/validator/rule-clauses.d.ts.map +1 -0
- package/packages/tools/lib/validator/rule-clauses.js +87 -0
- package/packages/tools/lib/validator/rule-clauses.js.map +1 -0
- package/packages/tools/lib/validator/rule-engine.d.ts +9 -1
- package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
- package/packages/tools/lib/validator/rule-engine.js +50 -6
- package/packages/tools/lib/validator/rule-engine.js.map +1 -1
- package/packages/tools/lib/validator/rule-registry.d.ts +4 -8
- package/packages/tools/lib/validator/rule-registry.d.ts.map +1 -1
- package/packages/tools/lib/validator/rule-registry.js +42 -79
- package/packages/tools/lib/validator/rule-registry.js.map +1 -1
- package/packages/tools/lib/validator/rule-tailoring.d.ts +62 -0
- package/packages/tools/lib/validator/rule-tailoring.d.ts.map +1 -0
- package/packages/tools/lib/validator/rule-tailoring.js +85 -0
- package/packages/tools/lib/validator/rule-tailoring.js.map +1 -0
- package/packages/tools/lib/validator/types.d.ts +12 -1
- package/packages/tools/lib/validator/types.d.ts.map +1 -1
- package/packages/tools/lib/validator/workspace-boundary-validator.d.ts +9 -0
- package/packages/tools/lib/validator/workspace-boundary-validator.d.ts.map +1 -0
- package/packages/tools/lib/validator/workspace-boundary-validator.js +28 -0
- package/packages/tools/lib/validator/workspace-boundary-validator.js.map +1 -0
- package/packages/tools/python/memo_model.py +243 -0
- package/packages/tools/python/memo_stage1_syside.py +389 -0
- package/packages/tools/lib/commands/check.d.ts +0 -6
- package/packages/tools/lib/commands/check.d.ts.map +0 -1
- package/packages/tools/lib/commands/check.js +0 -191
- package/packages/tools/lib/commands/check.js.map +0 -1
- package/packages/tools/lib/commands/conformance.d.ts +0 -36
- package/packages/tools/lib/commands/conformance.d.ts.map +0 -1
- package/packages/tools/lib/commands/conformance.js +0 -212
- package/packages/tools/lib/commands/conformance.js.map +0 -1
- package/packages/tools/lib/commands/roundtrip.d.ts +0 -6
- package/packages/tools/lib/commands/roundtrip.d.ts.map +0 -1
- package/packages/tools/lib/commands/roundtrip.js +0 -145
- package/packages/tools/lib/commands/roundtrip.js.map +0 -1
- package/packages/tools/lib/conformance/baseline.d.ts +0 -26
- package/packages/tools/lib/conformance/baseline.d.ts.map +0 -1
- package/packages/tools/lib/conformance/baseline.js +0 -170
- package/packages/tools/lib/conformance/baseline.js.map +0 -1
- package/packages/tools/lib/conformance/bnf.d.ts +0 -84
- package/packages/tools/lib/conformance/bnf.d.ts.map +0 -1
- package/packages/tools/lib/conformance/bnf.js +0 -166
- package/packages/tools/lib/conformance/bnf.js.map +0 -1
- package/packages/tools/lib/conformance/corpus.d.ts +0 -125
- package/packages/tools/lib/conformance/corpus.d.ts.map +0 -1
- package/packages/tools/lib/conformance/corpus.js +0 -190
- package/packages/tools/lib/conformance/corpus.js.map +0 -1
- package/packages/tools/lib/conformance/diff-xmi.d.ts +0 -118
- package/packages/tools/lib/conformance/diff-xmi.d.ts.map +0 -1
- package/packages/tools/lib/conformance/diff-xmi.js +0 -276
- package/packages/tools/lib/conformance/diff-xmi.js.map +0 -1
- package/packages/tools/lib/conformance/generated/syside-rules.d.ts +0 -10
- package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +0 -1
- package/packages/tools/lib/conformance/generated/syside-rules.js +0 -1142
- package/packages/tools/lib/conformance/generated/syside-rules.js.map +0 -1
- package/packages/tools/lib/conformance/index.d.ts +0 -7
- package/packages/tools/lib/conformance/index.d.ts.map +0 -1
- package/packages/tools/lib/conformance/index.js +0 -19
- package/packages/tools/lib/conformance/index.js.map +0 -1
- package/packages/tools/lib/conformance/run.d.ts +0 -117
- package/packages/tools/lib/conformance/run.d.ts.map +0 -1
- package/packages/tools/lib/conformance/run.js +0 -0
- package/packages/tools/lib/conformance/run.js.map +0 -1
- package/packages/tools/lib/conformance/xmi.d.ts +0 -45
- package/packages/tools/lib/conformance/xmi.d.ts.map +0 -1
- package/packages/tools/lib/conformance/xmi.js +0 -148
- package/packages/tools/lib/conformance/xmi.js.map +0 -1
- package/packages/tools/lib/language/generated/ast.d.ts +0 -3565
- package/packages/tools/lib/language/generated/ast.d.ts.map +0 -1
- package/packages/tools/lib/language/generated/ast.js +0 -2975
- package/packages/tools/lib/language/generated/ast.js.map +0 -1
- package/packages/tools/lib/language/generated/grammar.d.ts +0 -7
- package/packages/tools/lib/language/generated/grammar.d.ts.map +0 -1
- package/packages/tools/lib/language/generated/grammar.js +0 -10643
- package/packages/tools/lib/language/generated/grammar.js.map +0 -1
- package/packages/tools/lib/language/generated/module.d.ts +0 -14
- package/packages/tools/lib/language/generated/module.d.ts.map +0 -1
- package/packages/tools/lib/language/generated/module.js +0 -21
- package/packages/tools/lib/language/generated/module.js.map +0 -1
- package/packages/tools/lib/language/memo-sysml-module.d.ts +0 -24
- package/packages/tools/lib/language/memo-sysml-module.d.ts.map +0 -1
- package/packages/tools/lib/language/memo-sysml-module.js +0 -20
- package/packages/tools/lib/language/memo-sysml-module.js.map +0 -1
- package/packages/tools/lib/model/builder.d.ts +0 -27
- package/packages/tools/lib/model/builder.d.ts.map +0 -1
- package/packages/tools/lib/model/builder.js +0 -2103
- package/packages/tools/lib/model/builder.js.map +0 -1
- package/packages/tools/lib/model/package-registry.d.ts +0 -62
- package/packages/tools/lib/model/package-registry.d.ts.map +0 -1
- package/packages/tools/lib/model/package-registry.js +0 -175
- package/packages/tools/lib/model/package-registry.js.map +0 -1
- package/packages/tools/lib/model/parser-utils.d.ts +0 -65
- package/packages/tools/lib/model/parser-utils.d.ts.map +0 -1
- package/packages/tools/lib/model/parser-utils.js +0 -201
- package/packages/tools/lib/model/parser-utils.js.map +0 -1
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +0 -3
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +0 -1
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +0 -97
- package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +0 -1
- package/packages/tools/lib/sysmlc/index.d.ts +0 -2
- package/packages/tools/lib/sysmlc/index.d.ts.map +0 -1
- package/packages/tools/lib/sysmlc/index.js +0 -7
- package/packages/tools/lib/sysmlc/index.js.map +0 -1
- package/packages/tools/lib/sysmlc/server.d.ts +0 -29
- package/packages/tools/lib/sysmlc/server.d.ts.map +0 -1
- package/packages/tools/lib/sysmlc/server.js +0 -168
- package/packages/tools/lib/sysmlc/server.js.map +0 -1
- package/packages/tools/lib/toolchain/lowering.d.ts +0 -63
- package/packages/tools/lib/toolchain/lowering.d.ts.map +0 -1
- package/packages/tools/lib/toolchain/lowering.js +0 -100
- package/packages/tools/lib/toolchain/lowering.js.map +0 -1
- package/packages/tools/lib/toolchain/providers/internal.d.ts +0 -33
- package/packages/tools/lib/toolchain/providers/internal.d.ts.map +0 -1
- package/packages/tools/lib/toolchain/providers/internal.js +0 -286
- package/packages/tools/lib/toolchain/providers/internal.js.map +0 -1
- package/packages/tools/lib/toolchain/sysmlc-client.d.ts +0 -77
- package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +0 -1
- package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
- package/packages/tools/lib/toolchain/sysmlc-client.js.map +0 -1
- package/packages/tools/lib/validator/sysml-constraints.d.ts +0 -64
- package/packages/tools/lib/validator/sysml-constraints.d.ts.map +0 -1
- package/packages/tools/lib/validator/sysml-constraints.js +0 -251
- package/packages/tools/lib/validator/sysml-constraints.js.map +0 -1
- package/packages/tools/src/grammar/memo-sysml.langium +0 -1056
package/README.md
CHANGED
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
|
-
<code>memo-tools 0.
|
|
12
|
+
<code>memo-tools 0.15.0</code> · MIT · SysML v2 · ISO 14971 · IEC 62304 · ISO/IEC/IEEE 42010
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
|
+
> **0.15.0 is an experimental release.** It adds support for the OpenSysML compiler alongside SysIDE; the OpenSysML path is new and has had less use. The next version will be more stable. Pin an exact version.
|
|
16
|
+
|
|
15
17
|
<p align="center">
|
|
16
18
|
<a href="https://memoarchitect.com/memo-tools.html">Product website</a> ·
|
|
17
19
|
<a href="https://memoarchitect.com/memo-tools/">Documentation</a> ·
|
|
@@ -63,45 +65,46 @@ user's SysML v2 editor rather than a MEMO-specific VS Code extension.
|
|
|
63
65
|
|
|
64
66
|
```bash
|
|
65
67
|
# Create and inspect a project
|
|
66
|
-
memo init --list
|
|
67
|
-
memo init my-device
|
|
68
|
-
memo init
|
|
69
|
-
memo
|
|
70
|
-
memo ontology show
|
|
68
|
+
memo-architect init --list
|
|
69
|
+
memo-architect init my-device
|
|
70
|
+
memo-architect init gpca --example gpca
|
|
71
|
+
memo-architect ontology show
|
|
71
72
|
|
|
72
73
|
# Upgrade a pre-native project safely (reports only unless --write is supplied)
|
|
73
|
-
memo convert . --diff
|
|
74
|
-
memo convert . --write
|
|
74
|
+
memo-architect convert . --diff
|
|
75
|
+
memo-architect convert . --write
|
|
75
76
|
|
|
76
77
|
# Validate locally or in CI
|
|
77
78
|
memo validate .
|
|
78
79
|
memo validate . --format junit --output validation.xml
|
|
79
80
|
|
|
80
81
|
# Exchange and publish model data
|
|
81
|
-
memo export json --output model.json
|
|
82
|
-
memo export dot --output model.dot
|
|
83
|
-
memo import csv elements.csv
|
|
84
|
-
memo ontology export owl --output ontology.ttl
|
|
82
|
+
memo-architect export json --output model.json
|
|
83
|
+
memo-architect export dot --output model.dot
|
|
84
|
+
memo-architect import csv elements.csv
|
|
85
|
+
memo-architect ontology export owl --output ontology.ttl
|
|
85
86
|
memo pack --output model.kpar
|
|
86
|
-
memo
|
|
87
|
+
memo publish
|
|
87
88
|
|
|
88
89
|
# Generate assurance artifacts
|
|
89
|
-
memo dhf status
|
|
90
|
-
memo export dhf --format docx --output dhf-output
|
|
91
|
-
memo
|
|
90
|
+
memo-architect dhf status
|
|
91
|
+
memo-architect export dhf --format docx --output dhf-output
|
|
92
|
+
memo validate --standards
|
|
92
93
|
```
|
|
93
94
|
|
|
94
95
|
Run `memo --help` or `memo <command> --help` for the complete command surface.
|
|
95
96
|
|
|
96
|
-
`memo convert` moves legacy project content beneath `model/catalog/`, rewrites
|
|
97
|
+
`memo-architect convert` moves legacy project content beneath `model/catalog/`, rewrites
|
|
97
98
|
the corresponding packages/imports/artifact URIs, and creates the native project
|
|
98
99
|
binding entrypoint where needed. It plans before touching the filesystem, refuses
|
|
99
100
|
collisions, and is idempotent. Review its default dry-run output (or `--diff`)
|
|
100
101
|
before using `--write`; then run `memo validate` and your external SysML gate.
|
|
102
|
+
The full walkthrough, with what it changes and what it leaves to you, is
|
|
103
|
+
[Convert an Old Project](docs/tasks/convert.md).
|
|
101
104
|
|
|
102
105
|
### Jupyter analysis samples
|
|
103
106
|
|
|
104
|
-
Every `memo init` project includes `analysis/Samples/` with seven portable
|
|
107
|
+
Every `memo-architect init` project includes `analysis/Samples/` with seven portable
|
|
105
108
|
Syside notebooks. They cover model overview and quality, architecture hotspots,
|
|
106
109
|
change-impact exploration, semantic charts, an ownership graph, and an HTML/CSV
|
|
107
110
|
inventory table. The notebooks discover either `model/` or `src/` automatically,
|
|
@@ -134,14 +137,26 @@ pnpm run docs:build
|
|
|
134
137
|
|
|
135
138
|
Each toolchain role is filled by one provider: the **validator** answers "is
|
|
136
139
|
this valid SysML/KerML?", **lowering** answers "what can MEMO ingest from this
|
|
137
|
-
revision?", and the **packager** builds the archive.
|
|
138
|
-
|
|
140
|
+
revision?", and the **packager** builds the archive. MEMO chooses none of
|
|
141
|
+
them. A project names the compiler it uses, and `memo-architect init` writes
|
|
142
|
+
`compiler: opensysml` into a new one:
|
|
143
|
+
|
|
144
|
+
```yaml
|
|
145
|
+
toolchain:
|
|
146
|
+
compiler: opensysml # syside or opensysml
|
|
147
|
+
packager: internal # internal or sysand; only `memo pack` needs it
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Anyone who wants another overrides it for themselves, without editing the project:
|
|
151
|
+
`memo-architect config set compiler syside` (or Architect's Compiler control) writes their own settings file. MEMO finds the
|
|
152
|
+
compiler's tools in the usual places, so nothing else needs saying.
|
|
153
|
+
`compiler` names the validator and lowering together; a role can also be set on
|
|
154
|
+
its own:
|
|
139
155
|
|
|
140
156
|
```yaml
|
|
141
157
|
toolchain:
|
|
142
158
|
validator: syside
|
|
143
|
-
lowering:
|
|
144
|
-
packager: sysand
|
|
159
|
+
lowering: opensysml
|
|
145
160
|
syside:
|
|
146
161
|
executable: ~/.local/bin/syside
|
|
147
162
|
configFile: ./syside.toml
|
|
@@ -164,13 +179,12 @@ Every leaf under `toolchain` also has a generated flag, so a project can be run
|
|
|
164
179
|
against a different toolchain without editing its settings:
|
|
165
180
|
|
|
166
181
|
```bash
|
|
167
|
-
memo
|
|
168
|
-
memo
|
|
182
|
+
memo compile --probe # which provider, which binary, which version
|
|
183
|
+
memo compile --effective # settings + flags, fully resolved
|
|
169
184
|
memo validate --toolchain.validator syside
|
|
170
185
|
```
|
|
171
186
|
|
|
172
|
-
`
|
|
173
|
-
`docs/reference/configuration.md`.
|
|
187
|
+
See `docs/reference/configuration.md` for `toolchain.compiler`.
|
|
174
188
|
|
|
175
189
|
### Core library usage
|
|
176
190
|
|
package/corpus/README.md
CHANGED
|
@@ -1,37 +1,35 @@
|
|
|
1
|
-
#
|
|
1
|
+
# SysML v2 Release corpus
|
|
2
2
|
|
|
3
3
|
Vendored artifacts from [`Systems-Modeling/SysML-v2-Release`](https://github.com/Systems-Modeling/SysML-v2-Release),
|
|
4
|
-
pinned to one commit and checksummed file by file.
|
|
5
|
-
|
|
4
|
+
pinned to one commit and checksummed file by file. They are the reference the
|
|
5
|
+
project cites: the normative textual grammar (`bnf/*.kebnf`), the standard
|
|
6
|
+
library, and the OMG's own example models. Nothing in the toolchain reads them
|
|
7
|
+
at run time.
|
|
6
8
|
|
|
7
9
|
Upstream paths are preserved verbatim, so every entry in
|
|
8
10
|
`sysml-v2-release/manifest.json` can be checked against the Release repository
|
|
9
11
|
by path and commit without consulting any script here.
|
|
10
12
|
|
|
11
|
-
## What is here
|
|
13
|
+
## What is here
|
|
12
14
|
|
|
13
|
-
| Tree |
|
|
15
|
+
| Tree | What it is |
|
|
14
16
|
| --- | --- |
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `sysml.library
|
|
17
|
+
| `bnf/*.kebnf` | The normative textual grammar, cited by file and line |
|
|
18
|
+
| `bnf/SysML-graphical-bnf.kgbnf` | The graphical grammar |
|
|
19
|
+
| `sysml.library/` | The normative libraries in textual form |
|
|
20
|
+
| `sysml.library.xmi/` | The libraries' declared semantics, before implication |
|
|
21
|
+
| `sysml.library.xmi.implied/` | The reference implementation's computed output, published as data |
|
|
18
22
|
| `sysml.library.kpar/` | The libraries as published KPARs |
|
|
19
|
-
| `
|
|
20
|
-
| `bnf/SysML-graphical-bnf.kgbnf` | Graphical grammar — notation conformance target |
|
|
21
|
-
| `sysml/src/`, `kerml/src/` | Regression corpus — the Release example models |
|
|
23
|
+
| `sysml/src/`, `kerml/src/` | The Release's example and training models |
|
|
22
24
|
|
|
23
25
|
`manifest.json` records the pinned commit, its date, the library versions read
|
|
24
26
|
off the KPAR filenames, a SHA-256 per file, and one roll-up digest over all of
|
|
25
|
-
them.
|
|
26
|
-
|
|
27
|
+
them. It is not published: `files` in `package.json` is an allowlist and does
|
|
28
|
+
not list it.
|
|
27
29
|
|
|
28
|
-
`
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
baseline in the same diff.
|
|
32
|
-
|
|
33
|
-
Neither directory is published: `files` in `package.json` is an allowlist and
|
|
34
|
-
lists neither.
|
|
30
|
+
`memo conformance`, which graded MEMO's own SysML compiler against this corpus,
|
|
31
|
+
was retired with that compiler; the selected compiler is the authority on
|
|
32
|
+
validity.
|
|
35
33
|
|
|
36
34
|
## Commands
|
|
37
35
|
|
|
@@ -42,22 +40,8 @@ node scripts/vendor-corpus.mjs
|
|
|
42
40
|
# verify the working tree against the manifest, no network
|
|
43
41
|
node scripts/vendor-corpus.mjs --verify
|
|
44
42
|
|
|
45
|
-
#
|
|
46
|
-
node scripts/check-conformance.mjs
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Moving the pin
|
|
50
|
-
|
|
51
|
-
Changing the commit changes what conformance means, so it is a deliberate act
|
|
52
|
-
with a reviewable diff:
|
|
53
|
-
|
|
54
|
-
```bash
|
|
43
|
+
# move the pin: a deliberate act with a reviewable diff
|
|
55
44
|
node scripts/vendor-corpus.mjs --commit <sha>
|
|
56
|
-
pnpm build
|
|
57
|
-
node packages/tools/lib/bin/memo.js conformance run --update-baseline
|
|
58
|
-
node packages/tools/lib/bin/memo.js conformance diff-xmi --update-baseline
|
|
59
45
|
```
|
|
60
46
|
|
|
61
|
-
|
|
62
|
-
reproduces the new pin. A baseline taken against a different pin is refused
|
|
63
|
-
rather than compared — a corpus bump must never read as a regression.
|
|
47
|
+
`vendored-corpus.test.ts` runs the verification in the suite.
|
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memoarchitect/tools",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MEMO tools
|
|
3
|
+
"version": "0.15.0",
|
|
4
|
+
"description": "MEMO tools — SysML v2 parser, semantic model, validation, project operations, and CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./packages/tools/lib/index.js",
|
|
7
7
|
"types": "./packages/tools/lib/index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
|
-
"memo": "packages/tools/lib/bin/memo.js"
|
|
10
|
-
"memo-sysmlc": "packages/tools/lib/sysmlc/bin/memo-sysmlc.js"
|
|
9
|
+
"memo": "packages/tools/lib/bin/memo.js"
|
|
11
10
|
},
|
|
12
11
|
"memo": {
|
|
13
12
|
"contentPackage": "@memoarchitect/ontology"
|
|
@@ -28,7 +27,7 @@
|
|
|
28
27
|
"./package.json": "./package.json"
|
|
29
28
|
},
|
|
30
29
|
"scripts": {
|
|
31
|
-
"build": "pnpm generate:ir && cd packages/tools &&
|
|
30
|
+
"build": "pnpm generate:ir && cd packages/tools && tsc",
|
|
32
31
|
"generate:ir": "node scripts/generate-sysml-ir.mjs",
|
|
33
32
|
"prepack": "pnpm clean && pnpm build",
|
|
34
33
|
"dev": "tsc -p packages/tools/tsconfig.json --watch",
|
|
@@ -37,7 +36,7 @@
|
|
|
37
36
|
"type-check": "tsc -p packages/tools/tsconfig.json --noEmit",
|
|
38
37
|
"clean": "rm -rf packages/tools/lib packages/tools/src/language/generated",
|
|
39
38
|
"memo": "node packages/tools/lib/bin/memo.js",
|
|
40
|
-
"example:validate": "node scripts/validate-
|
|
39
|
+
"example:validate": "node scripts/validate-example.mjs",
|
|
41
40
|
"docs:serve": "python3 -m mkdocs serve",
|
|
42
41
|
"docs:build": "python3 -m mkdocs build --strict",
|
|
43
42
|
"version:sync": "node scripts/sync-version.mjs",
|
|
@@ -47,20 +46,20 @@
|
|
|
47
46
|
"check:boundary": "node scripts/check-config-boundary.mjs",
|
|
48
47
|
"check:budgets": "node scripts/runtime-budgets.mjs",
|
|
49
48
|
"check:baselines": "node scripts/verify-baseline.mjs",
|
|
49
|
+
"census:capture": "node scripts/capture-census.mjs",
|
|
50
50
|
"check:corpus": "node scripts/convert-corpus.mjs",
|
|
51
|
-
"check:conformance": "node scripts/check-conformance.mjs",
|
|
52
51
|
"check:metamodel": "node scripts/generate-sysml-ir.mjs --check",
|
|
53
52
|
"corpus:vendor": "node scripts/vendor-corpus.mjs",
|
|
54
53
|
"corpus:verify": "node scripts/vendor-corpus.mjs --verify",
|
|
55
54
|
"check:transport": "node scripts/measure-transport-latency.mjs"
|
|
56
55
|
},
|
|
57
56
|
"dependencies": {
|
|
58
|
-
"@memoarchitect/ontology": "0.
|
|
57
|
+
"@memoarchitect/ontology": "0.15.0",
|
|
58
|
+
"@openmbee/opensysml": "0.10.0",
|
|
59
59
|
"chalk": "^5.3.0",
|
|
60
60
|
"chokidar": "^4.0.0",
|
|
61
61
|
"commander": "^12.1.0",
|
|
62
62
|
"glob": "^13.0.6",
|
|
63
|
-
"langium": "~4.3.1",
|
|
64
63
|
"open": "^10.1.0",
|
|
65
64
|
"ora": "^8.1.0",
|
|
66
65
|
"uuid": "^11.1.1",
|
|
@@ -74,13 +73,13 @@
|
|
|
74
73
|
"@types/node": "^22.0.0",
|
|
75
74
|
"@types/ws": "^8.5.0",
|
|
76
75
|
"@vitest/coverage-v8": "^2.1.0",
|
|
77
|
-
"langium-cli": "~4.3.0",
|
|
78
76
|
"typescript": "~5.5.0",
|
|
79
77
|
"vite": "^6.0.0",
|
|
80
78
|
"vitest": "^2.1.0"
|
|
81
79
|
},
|
|
82
80
|
"files": [
|
|
83
81
|
"packages/tools/lib/",
|
|
82
|
+
"packages/tools/python/",
|
|
84
83
|
"!packages/tools/lib/__tests__/",
|
|
85
84
|
"!packages/tools/lib/**/*.test.*",
|
|
86
85
|
"packages/tools/src/grammar/",
|
|
@@ -24,6 +24,36 @@ export interface ImpactResult {
|
|
|
24
24
|
edges: ImpactEdge[];
|
|
25
25
|
}
|
|
26
26
|
export type ImpactDirection = 'downstream' | 'upstream' | 'both';
|
|
27
|
+
/** The part of a model the traversal reads: elements by id, and the links between them. */
|
|
28
|
+
export interface ImpactGraph {
|
|
29
|
+
element(id: string): {
|
|
30
|
+
name: string;
|
|
31
|
+
kind: string;
|
|
32
|
+
layer: string;
|
|
33
|
+
} | undefined;
|
|
34
|
+
links: Iterable<{
|
|
35
|
+
id: string;
|
|
36
|
+
type: string;
|
|
37
|
+
sourceId: string;
|
|
38
|
+
targetId: string;
|
|
39
|
+
}>;
|
|
40
|
+
}
|
|
41
|
+
export interface TraverseOptions {
|
|
42
|
+
direction?: ImpactDirection;
|
|
43
|
+
maxDepth?: number;
|
|
44
|
+
/** Relation types never followed (`composes`: containment is not a dependency). */
|
|
45
|
+
skipTypes?: ReadonlySet<string>;
|
|
46
|
+
/** Elements reached and listed, but not expanded: the traversal does not pass through them. */
|
|
47
|
+
stopAt?: ReadonlySet<string>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* BFS from one or several roots over a graph. The roots are not in the result's nodes. One traversal
|
|
51
|
+
* serves an element's neighbourhood (`computeImpact`) and the reach of a whole change (`model/impact.ts`).
|
|
52
|
+
*/
|
|
53
|
+
export declare function traverseImpact(graph: ImpactGraph, roots: readonly string[], options?: TraverseOptions): {
|
|
54
|
+
nodes: ImpactNode[];
|
|
55
|
+
edges: ImpactEdge[];
|
|
56
|
+
};
|
|
27
57
|
/**
|
|
28
58
|
* Compute impact analysis via BFS from a root element.
|
|
29
59
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../../src/analysis/impact.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,SAAS,EAAE,YAAY,GAAG,UAAU,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,aAAa,CACzB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,eAAwB,EACnC,QAAQ,GAAE,MAAW,GACtB,YAAY,
|
|
1
|
+
{"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../../src/analysis/impact.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,SAAS,EAAE,YAAY,GAAG,UAAU,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;AAEjE,2FAA2F;AAC3F,MAAM,WAAW,WAAW;IACxB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC/E,KAAK,EAAE,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,eAAe;IAC5B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,+FAA+F;IAC/F,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC1B,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,eAAoB,GAC5E;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,CAuC9C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CACzB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,eAAwB,EACnC,QAAQ,GAAE,MAAW,GACtB,YAAY,CAOd"}
|
|
@@ -4,94 +4,67 @@
|
|
|
4
4
|
// Supports downstream (follow outgoing), upstream (follow incoming), or both.
|
|
5
5
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* - `downstream`: follows outgoing relationships (what does this element affect?)
|
|
10
|
-
* - `upstream`: follows incoming relationships (what depends on this element?)
|
|
11
|
-
* - `both`: follows both directions
|
|
7
|
+
* BFS from one or several roots over a graph. The roots are not in the result's nodes. One traversal
|
|
8
|
+
* serves an element's neighbourhood (`computeImpact`) and the reach of a whole change (`model/impact.ts`).
|
|
12
9
|
*/
|
|
13
|
-
export function
|
|
14
|
-
const
|
|
15
|
-
if (!root) {
|
|
16
|
-
return { rootId: elementId, rootName: '(unknown)', rootKind: '', nodes: [], edges: [] };
|
|
17
|
-
}
|
|
18
|
-
// Build adjacency indexes from relationships
|
|
10
|
+
export function traverseImpact(graph, roots, options = {}) {
|
|
11
|
+
const { direction = 'both', maxDepth = 10, skipTypes, stopAt } = options;
|
|
19
12
|
const outgoing = new Map();
|
|
20
13
|
const incoming = new Map();
|
|
21
|
-
for (const rel of
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
outgoing.get(rel.sourceId).push(rel);
|
|
25
|
-
|
|
26
|
-
incoming.set(rel.targetId, []);
|
|
27
|
-
incoming.get(rel.targetId).push(rel);
|
|
14
|
+
for (const rel of graph.links) {
|
|
15
|
+
if (skipTypes?.has(rel.type))
|
|
16
|
+
continue;
|
|
17
|
+
(outgoing.get(rel.sourceId) ?? outgoing.set(rel.sourceId, []).get(rel.sourceId)).push(rel);
|
|
18
|
+
(incoming.get(rel.targetId) ?? incoming.set(rel.targetId, []).get(rel.targetId)).push(rel);
|
|
28
19
|
}
|
|
29
|
-
const visited = new Set();
|
|
30
|
-
visited.add(elementId);
|
|
20
|
+
const visited = new Set(roots);
|
|
31
21
|
const nodes = [];
|
|
32
22
|
const edges = [];
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
23
|
+
const queue = roots.map(id => [id, 0]);
|
|
24
|
+
const reach = (id, from, rel, depth, way) => {
|
|
25
|
+
if (visited.has(id))
|
|
26
|
+
return;
|
|
27
|
+
visited.add(id);
|
|
28
|
+
const element = graph.element(id);
|
|
29
|
+
if (!element)
|
|
30
|
+
return;
|
|
31
|
+
nodes.push({ elementId: id, name: element.name, kind: element.kind, layer: element.layer, depth, viaRelType: rel.type, direction: way });
|
|
32
|
+
if (!stopAt?.has(id))
|
|
33
|
+
queue.push([id, depth]);
|
|
34
|
+
};
|
|
35
|
+
for (let next = 0; next < queue.length; next++) {
|
|
36
|
+
const [currentId, depth] = queue[next];
|
|
37
37
|
if (depth >= maxDepth)
|
|
38
38
|
continue;
|
|
39
|
-
const nextDepth = depth + 1;
|
|
40
|
-
// Downstream: follow outgoing relationships
|
|
41
39
|
if (direction === 'downstream' || direction === 'both') {
|
|
42
|
-
for (const rel of outgoing.get(currentId)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (!visited.has(targetId)) {
|
|
46
|
-
visited.add(targetId);
|
|
47
|
-
const target = model.elements[targetId];
|
|
48
|
-
if (target) {
|
|
49
|
-
nodes.push({
|
|
50
|
-
elementId: targetId,
|
|
51
|
-
name: target.name,
|
|
52
|
-
kind: target.kind,
|
|
53
|
-
layer: target.layer,
|
|
54
|
-
depth: nextDepth,
|
|
55
|
-
viaRelType: rel.type,
|
|
56
|
-
direction: 'downstream',
|
|
57
|
-
});
|
|
58
|
-
queue.push([targetId, nextDepth]);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
40
|
+
for (const rel of outgoing.get(currentId) ?? []) {
|
|
41
|
+
edges.push({ fromId: currentId, toId: rel.targetId, relType: rel.type, relId: rel.id });
|
|
42
|
+
reach(rel.targetId, currentId, rel, depth + 1, 'downstream');
|
|
61
43
|
}
|
|
62
44
|
}
|
|
63
|
-
// Upstream: follow incoming relationships
|
|
64
45
|
if (direction === 'upstream' || direction === 'both') {
|
|
65
|
-
for (const rel of incoming.get(currentId)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (!visited.has(sourceId)) {
|
|
69
|
-
visited.add(sourceId);
|
|
70
|
-
const source = model.elements[sourceId];
|
|
71
|
-
if (source) {
|
|
72
|
-
nodes.push({
|
|
73
|
-
elementId: sourceId,
|
|
74
|
-
name: source.name,
|
|
75
|
-
kind: source.kind,
|
|
76
|
-
layer: source.layer,
|
|
77
|
-
depth: nextDepth,
|
|
78
|
-
viaRelType: rel.type,
|
|
79
|
-
direction: 'upstream',
|
|
80
|
-
});
|
|
81
|
-
queue.push([sourceId, nextDepth]);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
46
|
+
for (const rel of incoming.get(currentId) ?? []) {
|
|
47
|
+
edges.push({ fromId: rel.sourceId, toId: currentId, relType: rel.type, relId: rel.id });
|
|
48
|
+
reach(rel.sourceId, currentId, rel, depth + 1, 'upstream');
|
|
84
49
|
}
|
|
85
50
|
}
|
|
86
51
|
}
|
|
87
|
-
|
|
88
|
-
nodes
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
52
|
+
nodes.sort((x, y) => x.depth - y.depth || x.name.localeCompare(y.name));
|
|
53
|
+
return { nodes, edges };
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Compute impact analysis via BFS from a root element.
|
|
57
|
+
*
|
|
58
|
+
* - `downstream`: follows outgoing relationships (what does this element affect?)
|
|
59
|
+
* - `upstream`: follows incoming relationships (what depends on this element?)
|
|
60
|
+
* - `both`: follows both directions
|
|
61
|
+
*/
|
|
62
|
+
export function computeImpact(model, elementId, direction = 'both', maxDepth = 10) {
|
|
63
|
+
const root = model.elements[elementId];
|
|
64
|
+
if (!root) {
|
|
65
|
+
return { rootId: elementId, rootName: '(unknown)', rootKind: '', nodes: [], edges: [] };
|
|
66
|
+
}
|
|
67
|
+
const { nodes, edges } = traverseImpact({ element: id => model.elements[id], links: model.relationships }, [elementId], { direction, maxDepth });
|
|
68
|
+
return { rootId: elementId, rootName: root.name, rootKind: root.kind, nodes, edges };
|
|
96
69
|
}
|
|
97
70
|
//# sourceMappingURL=impact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/analysis/impact.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,gEAAgE;AAChE,8EAA8E;AAC9E,gFAAgF;
|
|
1
|
+
{"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/analysis/impact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { MemoModelDTO } from '../model/semantic.js';
|
|
2
|
+
export interface InterfaceEnd {
|
|
3
|
+
/** The port, or the element the interface is drawn to when it names no port. */
|
|
4
|
+
portId: string;
|
|
5
|
+
/** The element whose boundary the port is on (the one that was asked about). */
|
|
6
|
+
ownerId: string;
|
|
7
|
+
}
|
|
8
|
+
export interface InterfaceBetween {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
/** The ontology kind the interface was declared as, if it was typed. */
|
|
12
|
+
kind?: string;
|
|
13
|
+
attributes: Record<string, string>;
|
|
14
|
+
/** Ends in declaration order; `from` is the interface's source end. */
|
|
15
|
+
from: InterfaceEnd;
|
|
16
|
+
to: InterfaceEnd;
|
|
17
|
+
/** True when the interface runs from the second element to the first. */
|
|
18
|
+
reversed: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface InterfacesBetweenOptions {
|
|
21
|
+
/** Keep only interfaces of this kind or a specialization of it. */
|
|
22
|
+
kind?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Whether `kind` matches `ancestor`, by the ontology's specialization chain.
|
|
25
|
+
* Required with `kind`; without it only an exact kind name matches.
|
|
26
|
+
*/
|
|
27
|
+
kindConforms?: (kind: string, ancestor: string) => boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Count an interface on a port of something NESTED inside either element.
|
|
30
|
+
* Defaults to true: a node that owns an inner part which owns the port is
|
|
31
|
+
* still the node the interface leaves.
|
|
32
|
+
*/
|
|
33
|
+
includeNested?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare function interfacesBetween(model: MemoModelDTO, a: string, b: string, options?: InterfacesBetweenOptions): InterfaceBetween[];
|
|
36
|
+
//# sourceMappingURL=interfaces-between.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces-between.d.ts","sourceRoot":"","sources":["../../src/analysis/interfaces-between.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,YAAY;IACzB,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,uEAAuE;IACvE,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACrC,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3D;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAeD,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,GAAE,wBAA6B,GACvC,gBAAgB,EAAE,CAiCpB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// ─── Interfaces between two elements ────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Every interface in the model joins two PORTS, and a port belongs to an
|
|
4
|
+
// element. "What interfaces are there between node A and node B" is therefore
|
|
5
|
+
// a question about the ports' owners, and answering it by hand means chasing
|
|
6
|
+
// each port to the part that declares it. This does that once, for any two
|
|
7
|
+
// elements of any kind, on any layer: two ROS nodes, a controller and a
|
|
8
|
+
// driver board, two software components.
|
|
9
|
+
//
|
|
10
|
+
// Nothing here knows what a ROS node, a topic or a port type is. An interface
|
|
11
|
+
// is a relationship whose `type` is `interface`; the ontology kind it was
|
|
12
|
+
// declared as (`RosTopicInterface`, `PhysicalInterface`, ...) arrives as the
|
|
13
|
+
// relationship's `kind`, and a caller that wants "every ROS interface" or
|
|
14
|
+
// "every physical interface" passes the supertype and the ontology's own
|
|
15
|
+
// specialization chain decides what matches.
|
|
16
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
17
|
+
/** The owner chain of an element id, nearest first, ending at the element itself. */
|
|
18
|
+
function ancestry(model, id) {
|
|
19
|
+
const chain = [];
|
|
20
|
+
const seen = new Set();
|
|
21
|
+
let current = id;
|
|
22
|
+
while (current && !seen.has(current)) {
|
|
23
|
+
seen.add(current);
|
|
24
|
+
chain.push(current);
|
|
25
|
+
current = model.elements[current]?.owner;
|
|
26
|
+
}
|
|
27
|
+
return chain;
|
|
28
|
+
}
|
|
29
|
+
export function interfacesBetween(model, a, b, options = {}) {
|
|
30
|
+
const includeNested = options.includeNested ?? true;
|
|
31
|
+
const matchesKind = (relationship) => {
|
|
32
|
+
if (!options.kind)
|
|
33
|
+
return true;
|
|
34
|
+
if (!relationship.kind)
|
|
35
|
+
return false;
|
|
36
|
+
return relationship.kind === options.kind
|
|
37
|
+
|| (options.kindConforms?.(relationship.kind, options.kind) ?? false);
|
|
38
|
+
};
|
|
39
|
+
/** Which of the two asked-about elements an end belongs to, if either. */
|
|
40
|
+
const ownerOf = (endId) => {
|
|
41
|
+
const chain = includeNested ? ancestry(model, endId) : [endId, model.elements[endId]?.owner ?? ''];
|
|
42
|
+
return chain.find(id => id === a || id === b);
|
|
43
|
+
};
|
|
44
|
+
const found = [];
|
|
45
|
+
for (const relationship of model.relationships) {
|
|
46
|
+
if (relationship.type !== 'interface' || !matchesKind(relationship))
|
|
47
|
+
continue;
|
|
48
|
+
const fromPort = relationship.sourcePortId ?? relationship.sourceId;
|
|
49
|
+
const toPort = relationship.targetPortId ?? relationship.targetId;
|
|
50
|
+
const fromOwner = ownerOf(fromPort);
|
|
51
|
+
const toOwner = ownerOf(toPort);
|
|
52
|
+
if (!fromOwner || !toOwner || fromOwner === toOwner)
|
|
53
|
+
continue;
|
|
54
|
+
found.push({
|
|
55
|
+
id: relationship.id,
|
|
56
|
+
name: relationship.shortName ?? relationship.id,
|
|
57
|
+
kind: relationship.kind,
|
|
58
|
+
attributes: relationship.attributes ?? {},
|
|
59
|
+
from: { portId: fromPort, ownerId: fromOwner },
|
|
60
|
+
to: { portId: toPort, ownerId: toOwner },
|
|
61
|
+
reversed: fromOwner === b,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return found.sort((x, y) => x.id.localeCompare(y.id));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=interfaces-between.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces-between.js","sourceRoot":"","sources":["../../src/analysis/interfaces-between.ts"],"names":[],"mappings":"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"}
|