@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
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
// ─── Element index ────────────────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// `qualified name → element`, plus the lookups that let an authored reference
|
|
4
|
+
// find its way to one.
|
|
5
|
+
//
|
|
6
|
+
// **An element's id is its qualified name**, built the way SysML builds one:
|
|
7
|
+
// the owner chain, joined with `::`, rooted at the declaring package.
|
|
8
|
+
//
|
|
9
|
+
// memo_examples_ros_mobile_robot::nodeSafetyMonitor::scanSubscriber
|
|
10
|
+
//
|
|
11
|
+
// It used to be the short name alone, which is not a key the language promises
|
|
12
|
+
// to be unique — a name is scoped to its owner. Two parts each owning a port
|
|
13
|
+
// called `scanSubscriber` is ordinary, correct SysML, and it made two elements
|
|
14
|
+
// compete for one map entry: the last one built won, the other was gone, and
|
|
15
|
+
// nothing was said. Measured 2026-09-19 in `ros-mobile-robot`, where
|
|
16
|
+
// `nodeNavigation` and `nodeSafetyMonitor` each declare `in port
|
|
17
|
+
// scanSubscriber`; the flow to the safety monitor's port degraded to an edge on
|
|
18
|
+
// the node, because `resolveEndpoint` checked the owner, found the wrong one,
|
|
19
|
+
// and gave up one segment short.
|
|
20
|
+
//
|
|
21
|
+
// The authored short name is kept on `shortName`, because it is what the source
|
|
22
|
+
// says and what a reader should see. `id` is for identity; `shortName` is for
|
|
23
|
+
// display; `name` remains the human label from `attribute redefines name`.
|
|
24
|
+
//
|
|
25
|
+
// Two elements can still collide — two packages that each declare `clinician`
|
|
26
|
+
// at top level produce two different ids, but a reference to a bare
|
|
27
|
+
// `clinician` cannot say which. That is reported rather than guessed; see
|
|
28
|
+
// `lookup`.
|
|
29
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
30
|
+
/** The `ParseError.code` every ambiguous bare reference carries. */
|
|
31
|
+
export const AMBIGUOUS_ELEMENT_REFERENCE = 'ambiguous-element-reference';
|
|
32
|
+
/** The `ParseError.code` a duplicate qualified name carries. */
|
|
33
|
+
export const ELEMENT_NAME_COLLISION = 'element-name-collision';
|
|
34
|
+
/** The `ParseError.code` two named relationships sharing a qualified name carry. */
|
|
35
|
+
export const RELATIONSHIP_NAME_COLLISION = 'relationship-name-collision';
|
|
36
|
+
/** The separator SysML uses between the segments of a qualified name. */
|
|
37
|
+
export const QUALIFIER = '::';
|
|
38
|
+
/**
|
|
39
|
+
* The qualified name of a declaration.
|
|
40
|
+
*
|
|
41
|
+
* `ownerId` is the owning element's own qualified id, so the chain builds
|
|
42
|
+
* itself one hop at a time and a port three levels down reads as the path you
|
|
43
|
+
* would type in the source.
|
|
44
|
+
*/
|
|
45
|
+
export function qualifiedId(shortName, packageName, ownerId) {
|
|
46
|
+
if (ownerId)
|
|
47
|
+
return `${ownerId}${QUALIFIER}${shortName}`;
|
|
48
|
+
if (packageName)
|
|
49
|
+
return `${packageName}${QUALIFIER}${shortName}`;
|
|
50
|
+
return shortName;
|
|
51
|
+
}
|
|
52
|
+
export function shortNameOf(id) {
|
|
53
|
+
if (id === undefined)
|
|
54
|
+
return undefined;
|
|
55
|
+
const at = id.lastIndexOf(QUALIFIER);
|
|
56
|
+
return at === -1 ? id : id.slice(at + QUALIFIER.length);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The 1-based declaration line of a Langium AST node.
|
|
60
|
+
*
|
|
61
|
+
* Typed loosely on purpose: the builder passes a mix of generated AST nodes and
|
|
62
|
+
* the structural `UsageNode` shape it declares for itself, and neither is worth
|
|
63
|
+
* a cast at nine call sites.
|
|
64
|
+
*/
|
|
65
|
+
export function declarationLine(node) {
|
|
66
|
+
const cst = node?.$cstNode;
|
|
67
|
+
const line = cst?.range?.start?.line;
|
|
68
|
+
return typeof line === 'number' ? line + 1 : undefined;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* `qualified name → element`, with the lookups an authored reference needs.
|
|
72
|
+
*
|
|
73
|
+
* Extends `Map` so that every function already typed `Map<string, MemoElement>`
|
|
74
|
+
* keeps working: `get` is exact and means "this qualified id". Everything that
|
|
75
|
+
* starts from something a person wrote goes through `lookup` or `resolvePath`.
|
|
76
|
+
*/
|
|
77
|
+
export class ElementIndex extends Map {
|
|
78
|
+
/** Every pair that competed for one qualified name. */
|
|
79
|
+
collisions = [];
|
|
80
|
+
/** Bare references that more than one element answered to. */
|
|
81
|
+
ambiguities = [];
|
|
82
|
+
/** Every pair of named relationships that competed for one qualified name. */
|
|
83
|
+
relationshipCollisions = [];
|
|
84
|
+
/** Short name → the qualified ids declaring it, in declaration order. */
|
|
85
|
+
byShortName = new Map();
|
|
86
|
+
/** Declaration lines of the elements that landed, for collision reports. */
|
|
87
|
+
lines = new Map();
|
|
88
|
+
/**
|
|
89
|
+
* Named relationships by qualified id — the identity half of §9.1's
|
|
90
|
+
* "single canonical identity for a named flow/interface that can also
|
|
91
|
+
* serve as a relationship target".
|
|
92
|
+
*
|
|
93
|
+
* A read-only facade, deliberately: the entries here ARE the objects in
|
|
94
|
+
* `MemoModel.relationships`, not copies of them, so a named flow has one
|
|
95
|
+
* record and not a record plus a proxy. Nothing may be added here that is
|
|
96
|
+
* not also pushed onto the relationship list, and nothing here is an
|
|
97
|
+
* element — a flow is an edge, and putting a fabricated `MemoElement` in
|
|
98
|
+
* the elements map would make every census, view and filter count it as
|
|
99
|
+
* one more part.
|
|
100
|
+
*/
|
|
101
|
+
relationships = new Map();
|
|
102
|
+
/** Short name → the qualified relationship ids declaring it. */
|
|
103
|
+
relationshipsByShortName = new Map();
|
|
104
|
+
/** Declaration lines of the named relationships, for collision reports. */
|
|
105
|
+
relationshipLines = new Map();
|
|
106
|
+
/**
|
|
107
|
+
* Add an element under its own qualified `id`. Returns whether it landed —
|
|
108
|
+
* false means one was already there and this one was dropped, either as a
|
|
109
|
+
* duplicate arrival or as a recorded collision.
|
|
110
|
+
*/
|
|
111
|
+
define(element, node) {
|
|
112
|
+
const existing = this.get(element.id);
|
|
113
|
+
const line = declarationLine(node);
|
|
114
|
+
if (!existing) {
|
|
115
|
+
super.set(element.id, element);
|
|
116
|
+
if (line !== undefined)
|
|
117
|
+
this.lines.set(element.id, line);
|
|
118
|
+
const short = element.shortName || shortNameOf(element.id);
|
|
119
|
+
const ids = this.byShortName.get(short) ?? [];
|
|
120
|
+
ids.push(element.id);
|
|
121
|
+
this.byShortName.set(short, ids);
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
if (isSameDeclaration(existing, element))
|
|
125
|
+
return false;
|
|
126
|
+
// Same qualified name, same owner, two declarations. SysML forbids it
|
|
127
|
+
// and compilers reject it; MEMO says so too rather than dropping one.
|
|
128
|
+
this.collisions.push({
|
|
129
|
+
id: element.id,
|
|
130
|
+
kept: existing,
|
|
131
|
+
dropped: element,
|
|
132
|
+
keptLine: this.lines.get(element.id),
|
|
133
|
+
droppedLine: line,
|
|
134
|
+
});
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
/** The qualified ids that declare this short name. */
|
|
138
|
+
idsNamed(shortName) {
|
|
139
|
+
return this.byShortName.get(shortName) ?? [];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Find the element an authored reference names, from where it was written.
|
|
143
|
+
*
|
|
144
|
+
* The context is what makes a short name meaningful, and it is the same
|
|
145
|
+
* order SysML resolves in: the owner's own members, then the enclosing
|
|
146
|
+
* package, then anything visible. Two view packages that each declare
|
|
147
|
+
* `clinician` are two elements, and inside either package the bare word
|
|
148
|
+
* means that package's one — which is why the context is not optional in
|
|
149
|
+
* practice even though the parameter is.
|
|
150
|
+
*
|
|
151
|
+
* 1. the full qualified id;
|
|
152
|
+
* 2. a member of `ownerId` — `scanSubscriber` inside `nodeSafetyMonitor`;
|
|
153
|
+
* 3. a member of `packageName`, walking OUT through enclosing packages;
|
|
154
|
+
* 4. a TRAILING part of some qualified id, when exactly one ends that way
|
|
155
|
+
* — `nodeLidar::scanPublisher` written from another package;
|
|
156
|
+
* 5. a bare short name, when exactly one element in the model carries it.
|
|
157
|
+
*
|
|
158
|
+
* A reference that survives all five with more than one candidate is
|
|
159
|
+
* recorded in `ambiguities` and resolves to nothing. Picking one would be
|
|
160
|
+
* picking by declaration order, which is the bug this index exists to stop.
|
|
161
|
+
*/
|
|
162
|
+
lookup(reference, context) {
|
|
163
|
+
return this.resolveIn(reference, context, this, this.byShortName);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* The five resolution steps above, over whichever identity map is asked.
|
|
167
|
+
*
|
|
168
|
+
* Elements and named relationships are separate maps — a flow is not an
|
|
169
|
+
* element — but a reference to either is written the same way and must
|
|
170
|
+
* resolve by the same rules, so the rules live here once. Ambiguity is
|
|
171
|
+
* recorded into the one shared list, because a reference that cannot
|
|
172
|
+
* decide is one diagnostic however it was declared.
|
|
173
|
+
*/
|
|
174
|
+
resolveIn(reference, context, byId, byShortName) {
|
|
175
|
+
const exact = byId.get(reference);
|
|
176
|
+
if (exact)
|
|
177
|
+
return exact;
|
|
178
|
+
if (context?.ownerId) {
|
|
179
|
+
const owned = byId.get(`${context.ownerId}${QUALIFIER}${reference}`);
|
|
180
|
+
if (owned)
|
|
181
|
+
return owned;
|
|
182
|
+
}
|
|
183
|
+
// Out through the enclosing packages: a reference written in
|
|
184
|
+
// `A::B::C` sees `A::B::C::x`, then `A::B::x`, then `A::x`.
|
|
185
|
+
let scope = context?.packageName;
|
|
186
|
+
while (scope) {
|
|
187
|
+
const inScope = byId.get(`${scope}${QUALIFIER}${reference}`);
|
|
188
|
+
if (inScope)
|
|
189
|
+
return inScope;
|
|
190
|
+
const at = scope.lastIndexOf(QUALIFIER);
|
|
191
|
+
scope = at === -1 ? undefined : scope.slice(0, at);
|
|
192
|
+
}
|
|
193
|
+
const suffix = `${QUALIFIER}${reference}`;
|
|
194
|
+
const bySuffix = [...byId.keys()].filter(id => id.endsWith(suffix));
|
|
195
|
+
if (bySuffix.length === 1)
|
|
196
|
+
return byId.get(bySuffix[0]);
|
|
197
|
+
if (bySuffix.length > 1) {
|
|
198
|
+
this.recordAmbiguity(reference, bySuffix, context);
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
const named = byShortName.get(reference) ?? [];
|
|
202
|
+
if (named.length === 1)
|
|
203
|
+
return byId.get(named[0]);
|
|
204
|
+
if (named.length > 1)
|
|
205
|
+
this.recordAmbiguity(reference, named, context);
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Record a named relationship under its own qualified `id`, so a later
|
|
210
|
+
* `allocate`, `satisfy`, `verify` or trace can name it.
|
|
211
|
+
*
|
|
212
|
+
* Returns whether it landed. False means another declaration already holds
|
|
213
|
+
* that qualified name, which is recorded in `relationshipCollisions` — the
|
|
214
|
+
* relationship itself still reaches the model as an edge, because the two
|
|
215
|
+
* facts are separate: the edge is real, the name is contested.
|
|
216
|
+
*/
|
|
217
|
+
defineRelationship(relationship, node) {
|
|
218
|
+
const existing = this.relationships.get(relationship.id);
|
|
219
|
+
const line = declarationLine(node);
|
|
220
|
+
if (existing) {
|
|
221
|
+
if (existing === relationship)
|
|
222
|
+
return false;
|
|
223
|
+
this.relationshipCollisions.push({
|
|
224
|
+
id: relationship.id,
|
|
225
|
+
kept: existing,
|
|
226
|
+
dropped: relationship,
|
|
227
|
+
keptLine: this.relationshipLines.get(relationship.id),
|
|
228
|
+
droppedLine: line,
|
|
229
|
+
});
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
232
|
+
this.relationships.set(relationship.id, relationship);
|
|
233
|
+
if (line !== undefined)
|
|
234
|
+
this.relationshipLines.set(relationship.id, line);
|
|
235
|
+
const short = relationship.shortName || shortNameOf(relationship.id);
|
|
236
|
+
const ids = this.relationshipsByShortName.get(short) ?? [];
|
|
237
|
+
ids.push(relationship.id);
|
|
238
|
+
this.relationshipsByShortName.set(short, ids);
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
/** The named relationship an authored reference names, by the same rules as `lookup`. */
|
|
242
|
+
lookupRelationship(reference, context) {
|
|
243
|
+
return this.resolveIn(reference, context, this.relationships, this.relationshipsByShortName);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Whether this id addresses anything in the model — an element or a named
|
|
247
|
+
* relationship. What an edge endpoint has to satisfy, now that a flow can
|
|
248
|
+
* be one.
|
|
249
|
+
*/
|
|
250
|
+
hasEntity(id) {
|
|
251
|
+
return this.has(id) || this.relationships.has(id);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Resolve a dotted feature path — `nodeSafetyMonitor.scanSubscriber.payload`
|
|
255
|
+
* — as far as it names elements.
|
|
256
|
+
*
|
|
257
|
+
* The first segment is looked up; each further segment is an owned member
|
|
258
|
+
* of what came before, which is an exact `owner::name` probe rather than a
|
|
259
|
+
* global search that then checks the owner. That check is what used to stop
|
|
260
|
+
* one segment short when the global search returned the wrong node's port.
|
|
261
|
+
*
|
|
262
|
+
* Returns the deepest element reached and whatever is left over — a port's
|
|
263
|
+
* `payload`, an action's parameter — which the caller keeps as the edge's
|
|
264
|
+
* end name.
|
|
265
|
+
*/
|
|
266
|
+
resolvePath(reference, context) {
|
|
267
|
+
const segments = reference.split('.');
|
|
268
|
+
const before = this.ambiguities.length;
|
|
269
|
+
const head = this.lookup(segments[0], context);
|
|
270
|
+
// Whether THIS lookup is what could not decide. A caller that falls
|
|
271
|
+
// back to the bare reference when nothing resolved must not do so
|
|
272
|
+
// here: several elements answer to it, and an edge to the name would
|
|
273
|
+
// be an edge to whichever of them a reader assumed.
|
|
274
|
+
const ambiguous = this.ambiguities.length > before
|
|
275
|
+
|| this.ambiguities.some(a => a.reference === segments[0]);
|
|
276
|
+
if (!head)
|
|
277
|
+
return { id: segments[0], end: segments.slice(1).join('.'), ambiguous };
|
|
278
|
+
let element = head;
|
|
279
|
+
let i = 1;
|
|
280
|
+
while (i < segments.length) {
|
|
281
|
+
const child = this.get(`${element.id}${QUALIFIER}${segments[i]}`);
|
|
282
|
+
if (!child)
|
|
283
|
+
break;
|
|
284
|
+
element = child;
|
|
285
|
+
i++;
|
|
286
|
+
}
|
|
287
|
+
return { element, id: element.id, end: segments.slice(i).join('.'), ambiguous };
|
|
288
|
+
}
|
|
289
|
+
recordAmbiguity(reference, candidates, context) {
|
|
290
|
+
const from = context?.file;
|
|
291
|
+
if (this.ambiguities.some(a => a.reference === reference && a.file === from))
|
|
292
|
+
return;
|
|
293
|
+
this.ambiguities.push({ reference, candidates, file: from });
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* An index built from elements that already have their ids — a model received
|
|
298
|
+
* over the wire, a hand-built test fixture, a conversion from another tool.
|
|
299
|
+
*/
|
|
300
|
+
export function toElementIndex(elements) {
|
|
301
|
+
const index = new ElementIndex();
|
|
302
|
+
const values = elements instanceof Map ? elements.values() : elements;
|
|
303
|
+
for (const element of values)
|
|
304
|
+
index.define(element);
|
|
305
|
+
return index;
|
|
306
|
+
}
|
|
307
|
+
/** Whether two entries are one declaration arriving twice. */
|
|
308
|
+
function isSameDeclaration(a, b) {
|
|
309
|
+
return a.file === b.file && a.construct === b.construct;
|
|
310
|
+
}
|
|
311
|
+
/** Where an element sits, for a reader who has to go and look at both. */
|
|
312
|
+
export function describeLocation(element, line) {
|
|
313
|
+
const at = line !== undefined ? `${element.file}:${line}` : element.file;
|
|
314
|
+
return `${at} (${element.construct} ${element.kind})`;
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=element-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-index.js","sourceRoot":"","sources":["../../src/model/element-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { IdentityRegistry } from './identity-registry.js';
|
|
2
|
+
export interface IdChange {
|
|
3
|
+
/** The registry key, or `file:line` for an authored id. */
|
|
4
|
+
where: string;
|
|
5
|
+
from: string;
|
|
6
|
+
to: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RegistryRebase {
|
|
9
|
+
registry: IdentityRegistry;
|
|
10
|
+
changes: IdChange[];
|
|
11
|
+
}
|
|
12
|
+
/** Renumber the branch's new short ids that collide with the target's. */
|
|
13
|
+
export declare function rebaseRegistry(target: IdentityRegistry, branch: IdentityRegistry): RegistryRebase;
|
|
14
|
+
/** `providedId = "X"` literals in a source text: the id, and where its quoted text starts and ends. */
|
|
15
|
+
export declare function providedIdLiterals(text: string): {
|
|
16
|
+
id: string;
|
|
17
|
+
start: number;
|
|
18
|
+
end: number;
|
|
19
|
+
line: number;
|
|
20
|
+
}[];
|
|
21
|
+
export interface ProvidedIdRebase {
|
|
22
|
+
/** New text of each file that changes, keyed by project-relative path. */
|
|
23
|
+
files: Map<string, string>;
|
|
24
|
+
changes: IdChange[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Renumber authored ids that two branches both wrote. `targetTexts` and `branchTexts` are the project's
|
|
28
|
+
* `.sysml` files at each side. A literal is a collision when the working tree holds it more often than
|
|
29
|
+
* the target does (summed over files); the surplus occurrences, taken from the files that have more of it
|
|
30
|
+
* than the target's copy of that file, are the branch's.
|
|
31
|
+
*/
|
|
32
|
+
export declare function rebaseProvidedIds(targetTexts: ReadonlyMap<string, string>, branchTexts: ReadonlyMap<string, string>,
|
|
33
|
+
/** Per file, the 1-based lines the branch added or changed against the target. */
|
|
34
|
+
added?: ReadonlyMap<string, ReadonlySet<number>>): ProvidedIdRebase;
|
|
35
|
+
//# sourceMappingURL=id-rebase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-rebase.d.ts","sourceRoot":"","sources":["../../src/model/id-rebase.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,QAAQ;IACrB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,GAAG,cAAc,CA0CjG;AAED,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAQ3G;AAED,MAAM,WAAW,gBAAgB;IAC7B,0EAA0E;IAC1E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,OAAO,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC7B,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;AAClF,kFAAkF;AAClF,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,GACjD,gBAAgB,CAiElB"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
// ─── Ids that two branches both handed out ───────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// A short id is the next free number in its prefix family. Two branches that each add an element
|
|
4
|
+
// take the same next number (`REQ-124` on both), and both entries survive a merge of
|
|
5
|
+
// `memo.identity.yaml` because they are different keys. The model then has two elements with one id.
|
|
6
|
+
//
|
|
7
|
+
// This plans the repair, measured against the branch the work is going to land on:
|
|
8
|
+
//
|
|
9
|
+
// * the target's ids are kept: an element the target already has keeps its id, whatever the
|
|
10
|
+
// branch's file says;
|
|
11
|
+
// * an element the target does not have, whose number is at or below the target's high-water mark
|
|
12
|
+
// in its family (a number the target already handed out, or retired), gets the next free
|
|
13
|
+
// number above it;
|
|
14
|
+
// * a number above the mark is left alone. It collides with nothing in the target, and renumbering
|
|
15
|
+
// it would repoint a reference for no reason.
|
|
16
|
+
//
|
|
17
|
+
// * two new elements that took the same number above the mark (two sibling branches merged into
|
|
18
|
+
// this one) are told apart by key order: the first keeps the number, the others are renumbered.
|
|
19
|
+
//
|
|
20
|
+
// The same is done for ids an author wrote in a `providedId` literal, which are text in a source
|
|
21
|
+
// file: a literal that appears more often than at the target. Which occurrences are the branch's own
|
|
22
|
+
// comes from the lines the branch added or changed when the caller has them (`added`, from a diff
|
|
23
|
+
// against the target); without that, the last occurrences in a file are taken to be the branch's.
|
|
24
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
25
|
+
import { parseShortId } from './short-id.js';
|
|
26
|
+
/** Renumber the branch's new short ids that collide with the target's. */
|
|
27
|
+
export function rebaseRegistry(target, branch) {
|
|
28
|
+
const highWater = new Map();
|
|
29
|
+
const take = (shortId) => {
|
|
30
|
+
const parsed = shortId ? parseShortId(shortId) : null;
|
|
31
|
+
if (parsed)
|
|
32
|
+
highWater.set(parsed.prefix, Math.max(highWater.get(parsed.prefix) ?? 0, parsed.seq));
|
|
33
|
+
};
|
|
34
|
+
for (const entry of Object.values(target))
|
|
35
|
+
take(entry.shortId);
|
|
36
|
+
const targetHigh = new Map(highWater);
|
|
37
|
+
for (const [key, entry] of Object.entries(branch))
|
|
38
|
+
if (key in target)
|
|
39
|
+
take(entry.shortId);
|
|
40
|
+
const registry = {};
|
|
41
|
+
const changes = [];
|
|
42
|
+
const fresh = Object.keys(branch).filter(key => !(key in target)).sort((a, b) => {
|
|
43
|
+
const pa = parseShortId(branch[a].shortId ?? '');
|
|
44
|
+
const pb = parseShortId(branch[b].shortId ?? '');
|
|
45
|
+
return (pa?.seq ?? 0) - (pb?.seq ?? 0) || a.localeCompare(b);
|
|
46
|
+
});
|
|
47
|
+
for (const [key, entry] of Object.entries(branch))
|
|
48
|
+
if (key in target)
|
|
49
|
+
registry[key] = target[key] ?? entry;
|
|
50
|
+
// Keep the branch's own ids that do not collide, so the new numbers stay clear of them.
|
|
51
|
+
// Two new elements with one number above the target's mark are two sibling branches' work merged
|
|
52
|
+
// into this one: nothing in the target says which came first, so the first in key order keeps it.
|
|
53
|
+
const colliding = new Set();
|
|
54
|
+
const kept = new Set();
|
|
55
|
+
for (const key of fresh) {
|
|
56
|
+
const shortId = branch[key].shortId;
|
|
57
|
+
const parsed = shortId ? parseShortId(shortId) : null;
|
|
58
|
+
if (parsed && (parsed.seq <= (targetHigh.get(parsed.prefix) ?? 0) || kept.has(shortId)))
|
|
59
|
+
colliding.add(key);
|
|
60
|
+
else {
|
|
61
|
+
take(shortId);
|
|
62
|
+
if (shortId)
|
|
63
|
+
kept.add(shortId);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
for (const key of fresh) {
|
|
67
|
+
const entry = branch[key];
|
|
68
|
+
const parsed = entry.shortId ? parseShortId(entry.shortId) : null;
|
|
69
|
+
if (!colliding.has(key) || !parsed) {
|
|
70
|
+
registry[key] = entry;
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const next = (highWater.get(parsed.prefix) ?? 0) + 1;
|
|
74
|
+
highWater.set(parsed.prefix, next);
|
|
75
|
+
const to = `${parsed.prefix}-${next}`;
|
|
76
|
+
registry[key] = { ...entry, shortId: to };
|
|
77
|
+
changes.push({ where: key, from: entry.shortId, to });
|
|
78
|
+
}
|
|
79
|
+
return { registry, changes };
|
|
80
|
+
}
|
|
81
|
+
/** `providedId = "X"` literals in a source text: the id, and where its quoted text starts and ends. */
|
|
82
|
+
export function providedIdLiterals(text) {
|
|
83
|
+
const out = [];
|
|
84
|
+
const pattern = /providedId\s*=\s*"([^"\\]+)"/g;
|
|
85
|
+
for (let match = pattern.exec(text); match; match = pattern.exec(text)) {
|
|
86
|
+
const start = match.index + match[0].indexOf('"') + 1;
|
|
87
|
+
out.push({ id: match[1], start, end: start + match[1].length, line: text.slice(0, start).split('\n').length });
|
|
88
|
+
}
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Renumber authored ids that two branches both wrote. `targetTexts` and `branchTexts` are the project's
|
|
93
|
+
* `.sysml` files at each side. A literal is a collision when the working tree holds it more often than
|
|
94
|
+
* the target does (summed over files); the surplus occurrences, taken from the files that have more of it
|
|
95
|
+
* than the target's copy of that file, are the branch's.
|
|
96
|
+
*/
|
|
97
|
+
export function rebaseProvidedIds(targetTexts, branchTexts,
|
|
98
|
+
/** Per file, the 1-based lines the branch added or changed against the target. */
|
|
99
|
+
added) {
|
|
100
|
+
const count = (texts) => {
|
|
101
|
+
const total = new Map();
|
|
102
|
+
const perFile = new Map();
|
|
103
|
+
for (const [file, text] of texts) {
|
|
104
|
+
const here = new Map();
|
|
105
|
+
for (const { id } of providedIdLiterals(text)) {
|
|
106
|
+
here.set(id, (here.get(id) ?? 0) + 1);
|
|
107
|
+
total.set(id, (total.get(id) ?? 0) + 1);
|
|
108
|
+
}
|
|
109
|
+
perFile.set(file, here);
|
|
110
|
+
}
|
|
111
|
+
return { total, perFile };
|
|
112
|
+
};
|
|
113
|
+
const target = count(targetTexts);
|
|
114
|
+
const branch = count(branchTexts);
|
|
115
|
+
const used = new Set(branch.total.keys());
|
|
116
|
+
const highWater = new Map();
|
|
117
|
+
for (const id of new Set([...target.total.keys(), ...branch.total.keys()])) {
|
|
118
|
+
const parsed = parseShortId(id);
|
|
119
|
+
if (parsed)
|
|
120
|
+
highWater.set(parsed.prefix, Math.max(highWater.get(parsed.prefix) ?? 0, parsed.seq));
|
|
121
|
+
}
|
|
122
|
+
const files = new Map();
|
|
123
|
+
const changes = [];
|
|
124
|
+
for (const [id, total] of branch.total) {
|
|
125
|
+
const wasThere = target.total.get(id) ?? 0;
|
|
126
|
+
const parsed = parseShortId(id);
|
|
127
|
+
if (!parsed || total <= 1)
|
|
128
|
+
continue;
|
|
129
|
+
// With the diff, the branch's occurrences are the ones on lines it added. One the target never
|
|
130
|
+
// had may stay once (the first), since it clashes only with a sibling's copy of it.
|
|
131
|
+
const ownOf = (file, text) => providedIdLiterals(text)
|
|
132
|
+
.filter(literal => literal.id === id && added?.get(file)?.has(literal.line));
|
|
133
|
+
let spare = wasThere === 0 ? 1 : 0;
|
|
134
|
+
for (const [file, text] of branchTexts) {
|
|
135
|
+
const hereNow = branch.perFile.get(file)?.get(id) ?? 0;
|
|
136
|
+
const hadHere = target.perFile.get(file)?.get(id) ?? 0;
|
|
137
|
+
let surplus;
|
|
138
|
+
if (added) {
|
|
139
|
+
const own = ownOf(file, text);
|
|
140
|
+
const skip = Math.min(spare, own.length);
|
|
141
|
+
spare -= skip;
|
|
142
|
+
surplus = own.slice(skip);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
// More copies than the target had: the extra ones are new, and clash.
|
|
146
|
+
if (wasThere === 0 || total <= wasThere || hereNow <= hadHere)
|
|
147
|
+
continue;
|
|
148
|
+
// The surplus occurrences in this file are the last ones: the target's copies come first in
|
|
149
|
+
// the file the branch only added to.
|
|
150
|
+
surplus = providedIdLiterals(text).filter(literal => literal.id === id).slice(hadHere);
|
|
151
|
+
}
|
|
152
|
+
if (surplus.length === 0)
|
|
153
|
+
continue;
|
|
154
|
+
let edited = files.get(file) ?? text;
|
|
155
|
+
for (const literal of surplus.reverse()) {
|
|
156
|
+
const next = (highWater.get(parsed.prefix) ?? 0) + 1;
|
|
157
|
+
highWater.set(parsed.prefix, next);
|
|
158
|
+
const to = `${parsed.prefix}-${next}`;
|
|
159
|
+
used.add(to);
|
|
160
|
+
edited = edited.slice(0, literal.start) + to + edited.slice(literal.end);
|
|
161
|
+
changes.push({ where: `${file}:${literal.line}`, from: id, to });
|
|
162
|
+
}
|
|
163
|
+
files.set(file, edited);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
followMentions(files, changes, targetTexts);
|
|
167
|
+
return { files, changes };
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* A file the target does not have, in which a literal was renumbered, is about the element that literal
|
|
171
|
+
* declares: the target's element of the old number lives in some other file. A mention of the old
|
|
172
|
+
* number in that file follows the renumber. Anywhere else the target kept the old number and a mention
|
|
173
|
+
* may be of either element, so it is left for its author (the command lists it).
|
|
174
|
+
*/
|
|
175
|
+
function followMentions(files, changes, targetTexts) {
|
|
176
|
+
for (const [file, text] of [...files]) {
|
|
177
|
+
if (targetTexts.has(file))
|
|
178
|
+
continue;
|
|
179
|
+
const renamed = new Map();
|
|
180
|
+
for (const change of changes)
|
|
181
|
+
if (change.where.startsWith(`${file}:`)) {
|
|
182
|
+
renamed.set(change.from, (renamed.get(change.from) ?? new Set()).add(change.to));
|
|
183
|
+
}
|
|
184
|
+
let edited = text;
|
|
185
|
+
for (const [from, targets] of renamed) {
|
|
186
|
+
if (targets.size !== 1)
|
|
187
|
+
continue; // two different new numbers for one old one: which is meant is not known
|
|
188
|
+
const to = [...targets][0];
|
|
189
|
+
const pattern = new RegExp(`(?<![\\w-])${from.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}(?![\\w-])`, 'g');
|
|
190
|
+
for (const match of [...edited.matchAll(pattern)].reverse()) {
|
|
191
|
+
const line = edited.slice(0, match.index).split('\n').length;
|
|
192
|
+
edited = edited.slice(0, match.index) + to + edited.slice(match.index + from.length);
|
|
193
|
+
changes.push({ where: `${file}:${line}`, from, to });
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
files.set(file, edited);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=id-rebase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-rebase.js","sourceRoot":"","sources":["../../src/model/id-rebase.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,36 @@ export interface ElementIdentity {
|
|
|
6
6
|
}
|
|
7
7
|
/** `package::name` → identity. */
|
|
8
8
|
export type IdentityRegistry = Record<string, ElementIdentity>;
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* The registry key for an element: its qualified id, which already carries the
|
|
11
|
+
* declaring package as its first segment.
|
|
12
|
+
*
|
|
13
|
+
* It used to be `package` and the element's id joined, because an id was then a
|
|
14
|
+
* bare short name. Joining them now would produce `Pump::Pump::motor`. For a
|
|
15
|
+
* TOP-LEVEL element the two spellings are character-for-character identical —
|
|
16
|
+
* `Pump::pump1` either way — which is why no existing entry moves. A NESTED
|
|
17
|
+
* element's key gains the owner chain it always should have had, and
|
|
18
|
+
* `priorIdentityFor` below adopts the old entry so no shortId or uuid is
|
|
19
|
+
* re-minted by this change.
|
|
20
|
+
*/
|
|
10
21
|
export declare function identityKey(element: {
|
|
11
22
|
id: string;
|
|
12
23
|
package?: string;
|
|
13
24
|
}): string;
|
|
25
|
+
/**
|
|
26
|
+
* The identity an element already had, under this key or the one it used
|
|
27
|
+
* before qualified ids.
|
|
28
|
+
*
|
|
29
|
+
* A nested element was keyed `package::shortName` when a short name was an id;
|
|
30
|
+
* it is keyed `package::owner::shortName` now. Both are looked up, newest
|
|
31
|
+
* first, so a project's `memo.identity.yaml` survives the change without being
|
|
32
|
+
* rewritten and without a port silently acquiring a new `RMR-…`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function priorIdentityFor(registry: IdentityRegistry, element: {
|
|
35
|
+
id: string;
|
|
36
|
+
package?: string;
|
|
37
|
+
shortName?: string;
|
|
38
|
+
}): ElementIdentity | undefined;
|
|
14
39
|
/**
|
|
15
40
|
* Read the registry. A missing file is an empty registry, not an error: the
|
|
16
41
|
* first build of a project legitimately has no prior identities.
|
|
@@ -32,8 +57,14 @@ export declare function parseIdentityRegistry(content: string): IdentityRegistry
|
|
|
32
57
|
* The prior `shortId` assignments for one prefix family, as
|
|
33
58
|
* `assignSequentialShortIds` expects them: element id → shortId.
|
|
34
59
|
*
|
|
35
|
-
* Keys are
|
|
36
|
-
*
|
|
60
|
+
* Keys are the registry's own — an element's qualified id, which is what an
|
|
61
|
+
* element id now is. They used to be stripped to the last segment, because an
|
|
62
|
+
* id was then a bare short name and the two forms had to be bridged; stripping
|
|
63
|
+
* them now would make every key ambiguous again, which is the thing qualified
|
|
64
|
+
* ids exist to stop.
|
|
65
|
+
*
|
|
66
|
+
* An entry whose element is gone is kept: it matches nothing, and raising the
|
|
67
|
+
* high-water mark is exactly what retires its number.
|
|
37
68
|
*/
|
|
38
69
|
export declare function priorShortIds(registry: IdentityRegistry): Map<string, string>;
|
|
39
70
|
//# sourceMappingURL=identity-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-registry.d.ts","sourceRoot":"","sources":["../../src/model/identity-registry.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE/D
|
|
1
|
+
{"version":3,"file":"identity-registry.d.ts","sourceRoot":"","sources":["../../src/model/identity-registry.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9D,eAAe,GAAG,SAAS,CAK7B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAI1E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,GAAE,gBAAqB,GAC7B,IAAI,CAGN;AAED,wEAAwE;AACxE,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAe5E;AAED,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAmBvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7E"}
|