@memoarchitect/tools 0.4.4
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/LICENSE +21 -0
- package/README.md +171 -0
- package/package.json +86 -0
- package/packages/tools/lib/__tests__/archetype-parsing.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/archetype-parsing.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/archetype-parsing.test.js +42 -0
- package/packages/tools/lib/__tests__/archetype-parsing.test.js.map +1 -0
- package/packages/tools/lib/__tests__/architecture-discovery.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/architecture-discovery.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/architecture-discovery.test.js +82 -0
- package/packages/tools/lib/__tests__/architecture-discovery.test.js.map +1 -0
- package/packages/tools/lib/__tests__/behavior.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/behavior.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/behavior.test.js +766 -0
- package/packages/tools/lib/__tests__/behavior.test.js.map +1 -0
- package/packages/tools/lib/__tests__/builder.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/builder.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/builder.test.js +728 -0
- package/packages/tools/lib/__tests__/builder.test.js.map +1 -0
- package/packages/tools/lib/__tests__/config-loader.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/config-loader.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/config-loader.test.js +196 -0
- package/packages/tools/lib/__tests__/config-loader.test.js.map +1 -0
- package/packages/tools/lib/__tests__/conformance.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/conformance.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/conformance.test.js +467 -0
- package/packages/tools/lib/__tests__/conformance.test.js.map +1 -0
- package/packages/tools/lib/__tests__/constraint-eval.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/constraint-eval.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/constraint-eval.test.js +195 -0
- package/packages/tools/lib/__tests__/constraint-eval.test.js.map +1 -0
- package/packages/tools/lib/__tests__/constraint-grammar.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/constraint-grammar.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/constraint-grammar.test.js +163 -0
- package/packages/tools/lib/__tests__/constraint-grammar.test.js.map +1 -0
- package/packages/tools/lib/__tests__/constraint-loader.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/constraint-loader.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/constraint-loader.test.js +150 -0
- package/packages/tools/lib/__tests__/constraint-loader.test.js.map +1 -0
- package/packages/tools/lib/__tests__/csv-io.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/csv-io.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/csv-io.test.js +317 -0
- package/packages/tools/lib/__tests__/csv-io.test.js.map +1 -0
- package/packages/tools/lib/__tests__/dhf-doc-store.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/dhf-doc-store.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/dhf-doc-store.test.js +94 -0
- package/packages/tools/lib/__tests__/dhf-doc-store.test.js.map +1 -0
- package/packages/tools/lib/__tests__/dhf-template-resolver.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/dhf-template-resolver.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/dhf-template-resolver.test.js +39 -0
- package/packages/tools/lib/__tests__/dhf-template-resolver.test.js.map +1 -0
- package/packages/tools/lib/__tests__/dhf.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/dhf.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/dhf.test.js +393 -0
- package/packages/tools/lib/__tests__/dhf.test.js.map +1 -0
- package/packages/tools/lib/__tests__/dimension-filter.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/dimension-filter.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/dimension-filter.test.js +85 -0
- package/packages/tools/lib/__tests__/dimension-filter.test.js.map +1 -0
- package/packages/tools/lib/__tests__/dsm.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/dsm.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/dsm.test.js +112 -0
- package/packages/tools/lib/__tests__/dsm.test.js.map +1 -0
- package/packages/tools/lib/__tests__/e2e-workflow.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/e2e-workflow.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/e2e-workflow.test.js +707 -0
- package/packages/tools/lib/__tests__/e2e-workflow.test.js.map +1 -0
- package/packages/tools/lib/__tests__/file-watcher.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/file-watcher.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/file-watcher.test.js +31 -0
- package/packages/tools/lib/__tests__/file-watcher.test.js.map +1 -0
- package/packages/tools/lib/__tests__/impact.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/impact.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/impact.test.js +82 -0
- package/packages/tools/lib/__tests__/impact.test.js.map +1 -0
- package/packages/tools/lib/__tests__/importer.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/importer.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/importer.test.js +336 -0
- package/packages/tools/lib/__tests__/importer.test.js.map +1 -0
- package/packages/tools/lib/__tests__/kind-registry.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/kind-registry.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/kind-registry.test.js +132 -0
- package/packages/tools/lib/__tests__/kind-registry.test.js.map +1 -0
- package/packages/tools/lib/__tests__/llm.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/llm.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/llm.test.js +275 -0
- package/packages/tools/lib/__tests__/llm.test.js.map +1 -0
- package/packages/tools/lib/__tests__/manifest-resolver.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/manifest-resolver.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/manifest-resolver.test.js +97 -0
- package/packages/tools/lib/__tests__/manifest-resolver.test.js.map +1 -0
- package/packages/tools/lib/__tests__/markdown-to-ir.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/markdown-to-ir.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/markdown-to-ir.test.js +74 -0
- package/packages/tools/lib/__tests__/markdown-to-ir.test.js.map +1 -0
- package/packages/tools/lib/__tests__/methodology-scope.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/methodology-scope.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/methodology-scope.test.js +59 -0
- package/packages/tools/lib/__tests__/methodology-scope.test.js.map +1 -0
- package/packages/tools/lib/__tests__/parser.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/parser.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/parser.test.js +938 -0
- package/packages/tools/lib/__tests__/parser.test.js.map +1 -0
- package/packages/tools/lib/__tests__/plugin.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/plugin.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/plugin.test.js +308 -0
- package/packages/tools/lib/__tests__/plugin.test.js.map +1 -0
- package/packages/tools/lib/__tests__/relationship-registry.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/relationship-registry.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/relationship-registry.test.js +96 -0
- package/packages/tools/lib/__tests__/relationship-registry.test.js.map +1 -0
- package/packages/tools/lib/__tests__/rule-registry.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/rule-registry.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/rule-registry.test.js +53 -0
- package/packages/tools/lib/__tests__/rule-registry.test.js.map +1 -0
- package/packages/tools/lib/__tests__/toolchain.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/toolchain.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/toolchain.test.js +94 -0
- package/packages/tools/lib/__tests__/toolchain.test.js.map +1 -0
- package/packages/tools/lib/__tests__/view-deriver-samples.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/view-deriver-samples.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/view-deriver-samples.test.js +39 -0
- package/packages/tools/lib/__tests__/view-deriver-samples.test.js.map +1 -0
- package/packages/tools/lib/__tests__/view-kinds.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/view-kinds.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/view-kinds.test.js +263 -0
- package/packages/tools/lib/__tests__/view-kinds.test.js.map +1 -0
- package/packages/tools/lib/__tests__/view-layout-store.test.d.ts +2 -0
- package/packages/tools/lib/__tests__/view-layout-store.test.d.ts.map +1 -0
- package/packages/tools/lib/__tests__/view-layout-store.test.js +61 -0
- package/packages/tools/lib/__tests__/view-layout-store.test.js.map +1 -0
- package/packages/tools/lib/analysis/dsm.d.ts +47 -0
- package/packages/tools/lib/analysis/dsm.d.ts.map +1 -0
- package/packages/tools/lib/analysis/dsm.js +172 -0
- package/packages/tools/lib/analysis/dsm.js.map +1 -0
- package/packages/tools/lib/analysis/impact.d.ts +35 -0
- package/packages/tools/lib/analysis/impact.d.ts.map +1 -0
- package/packages/tools/lib/analysis/impact.js +97 -0
- package/packages/tools/lib/analysis/impact.js.map +1 -0
- package/packages/tools/lib/bin/memo.d.ts +3 -0
- package/packages/tools/lib/bin/memo.d.ts.map +1 -0
- package/packages/tools/lib/bin/memo.js +461 -0
- package/packages/tools/lib/bin/memo.js.map +1 -0
- package/packages/tools/lib/browser/index.d.ts +13 -0
- package/packages/tools/lib/browser/index.d.ts.map +1 -0
- package/packages/tools/lib/browser/index.js +11 -0
- package/packages/tools/lib/browser/index.js.map +1 -0
- package/packages/tools/lib/commands/archetype-loader.d.ts +15 -0
- package/packages/tools/lib/commands/archetype-loader.d.ts.map +1 -0
- package/packages/tools/lib/commands/archetype-loader.js +31 -0
- package/packages/tools/lib/commands/archetype-loader.js.map +1 -0
- package/packages/tools/lib/commands/ask.d.ts +6 -0
- package/packages/tools/lib/commands/ask.d.ts.map +1 -0
- package/packages/tools/lib/commands/ask.js +79 -0
- package/packages/tools/lib/commands/ask.js.map +1 -0
- package/packages/tools/lib/commands/check.d.ts +6 -0
- package/packages/tools/lib/commands/check.d.ts.map +1 -0
- package/packages/tools/lib/commands/check.js +214 -0
- package/packages/tools/lib/commands/check.js.map +1 -0
- package/packages/tools/lib/commands/create-package.d.ts +12 -0
- package/packages/tools/lib/commands/create-package.d.ts.map +1 -0
- package/packages/tools/lib/commands/create-package.js +293 -0
- package/packages/tools/lib/commands/create-package.js.map +1 -0
- package/packages/tools/lib/commands/dev.d.ts +6 -0
- package/packages/tools/lib/commands/dev.d.ts.map +1 -0
- package/packages/tools/lib/commands/dev.js +316 -0
- package/packages/tools/lib/commands/dev.js.map +1 -0
- package/packages/tools/lib/commands/dhf-draft.d.ts +8 -0
- package/packages/tools/lib/commands/dhf-draft.d.ts.map +1 -0
- package/packages/tools/lib/commands/dhf-draft.js +115 -0
- package/packages/tools/lib/commands/dhf-draft.js.map +1 -0
- package/packages/tools/lib/commands/dhf-init.d.ts +4 -0
- package/packages/tools/lib/commands/dhf-init.d.ts.map +1 -0
- package/packages/tools/lib/commands/dhf-init.js +270 -0
- package/packages/tools/lib/commands/dhf-init.js.map +1 -0
- package/packages/tools/lib/commands/dhf-preview.d.ts +4 -0
- package/packages/tools/lib/commands/dhf-preview.d.ts.map +1 -0
- package/packages/tools/lib/commands/dhf-preview.js +285 -0
- package/packages/tools/lib/commands/dhf-preview.js.map +1 -0
- package/packages/tools/lib/commands/dhf.d.ts +27 -0
- package/packages/tools/lib/commands/dhf.d.ts.map +1 -0
- package/packages/tools/lib/commands/dhf.js +334 -0
- package/packages/tools/lib/commands/dhf.js.map +1 -0
- package/packages/tools/lib/commands/export.d.ts +9 -0
- package/packages/tools/lib/commands/export.d.ts.map +1 -0
- package/packages/tools/lib/commands/export.js +136 -0
- package/packages/tools/lib/commands/export.js.map +1 -0
- package/packages/tools/lib/commands/generate.d.ts +6 -0
- package/packages/tools/lib/commands/generate.d.ts.map +1 -0
- package/packages/tools/lib/commands/generate.js +80 -0
- package/packages/tools/lib/commands/generate.js.map +1 -0
- package/packages/tools/lib/commands/import-ea.d.ts +32 -0
- package/packages/tools/lib/commands/import-ea.d.ts.map +1 -0
- package/packages/tools/lib/commands/import-ea.js +156 -0
- package/packages/tools/lib/commands/import-ea.js.map +1 -0
- package/packages/tools/lib/commands/import-owl.d.ts +19 -0
- package/packages/tools/lib/commands/import-owl.d.ts.map +1 -0
- package/packages/tools/lib/commands/import-owl.js +103 -0
- package/packages/tools/lib/commands/import-owl.js.map +1 -0
- package/packages/tools/lib/commands/import-sysand.d.ts +11 -0
- package/packages/tools/lib/commands/import-sysand.d.ts.map +1 -0
- package/packages/tools/lib/commands/import-sysand.js +87 -0
- package/packages/tools/lib/commands/import-sysand.js.map +1 -0
- package/packages/tools/lib/commands/import.d.ts +30 -0
- package/packages/tools/lib/commands/import.d.ts.map +1 -0
- package/packages/tools/lib/commands/import.js +250 -0
- package/packages/tools/lib/commands/import.js.map +1 -0
- package/packages/tools/lib/commands/init-wizard.d.ts +10 -0
- package/packages/tools/lib/commands/init-wizard.d.ts.map +1 -0
- package/packages/tools/lib/commands/init-wizard.js +69 -0
- package/packages/tools/lib/commands/init-wizard.js.map +1 -0
- package/packages/tools/lib/commands/init.d.ts +30 -0
- package/packages/tools/lib/commands/init.d.ts.map +1 -0
- package/packages/tools/lib/commands/init.js +238 -0
- package/packages/tools/lib/commands/init.js.map +1 -0
- package/packages/tools/lib/commands/install.d.ts +8 -0
- package/packages/tools/lib/commands/install.d.ts.map +1 -0
- package/packages/tools/lib/commands/install.js +238 -0
- package/packages/tools/lib/commands/install.js.map +1 -0
- package/packages/tools/lib/commands/lock.d.ts +2 -0
- package/packages/tools/lib/commands/lock.d.ts.map +1 -0
- package/packages/tools/lib/commands/lock.js +29 -0
- package/packages/tools/lib/commands/lock.js.map +1 -0
- package/packages/tools/lib/commands/ontology.d.ts +14 -0
- package/packages/tools/lib/commands/ontology.d.ts.map +1 -0
- package/packages/tools/lib/commands/ontology.js +464 -0
- package/packages/tools/lib/commands/ontology.js.map +1 -0
- package/packages/tools/lib/commands/pack.d.ts +4 -0
- package/packages/tools/lib/commands/pack.d.ts.map +1 -0
- package/packages/tools/lib/commands/pack.js +89 -0
- package/packages/tools/lib/commands/pack.js.map +1 -0
- package/packages/tools/lib/commands/plugin.d.ts +10 -0
- package/packages/tools/lib/commands/plugin.d.ts.map +1 -0
- package/packages/tools/lib/commands/plugin.js +195 -0
- package/packages/tools/lib/commands/plugin.js.map +1 -0
- package/packages/tools/lib/commands/req.d.ts +10 -0
- package/packages/tools/lib/commands/req.d.ts.map +1 -0
- package/packages/tools/lib/commands/req.js +64 -0
- package/packages/tools/lib/commands/req.js.map +1 -0
- package/packages/tools/lib/commands/roundtrip.d.ts +6 -0
- package/packages/tools/lib/commands/roundtrip.d.ts.map +1 -0
- package/packages/tools/lib/commands/roundtrip.js +162 -0
- package/packages/tools/lib/commands/roundtrip.js.map +1 -0
- package/packages/tools/lib/commands/rules.d.ts +15 -0
- package/packages/tools/lib/commands/rules.d.ts.map +1 -0
- package/packages/tools/lib/commands/rules.js +282 -0
- package/packages/tools/lib/commands/rules.js.map +1 -0
- package/packages/tools/lib/commands/sysand-publish.d.ts +6 -0
- package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -0
- package/packages/tools/lib/commands/sysand-publish.js +231 -0
- package/packages/tools/lib/commands/sysand-publish.js.map +1 -0
- package/packages/tools/lib/commands/validate.d.ts +6 -0
- package/packages/tools/lib/commands/validate.d.ts.map +1 -0
- package/packages/tools/lib/commands/validate.js +269 -0
- package/packages/tools/lib/commands/validate.js.map +1 -0
- package/packages/tools/lib/completeness/tracker.d.ts +11 -0
- package/packages/tools/lib/completeness/tracker.d.ts.map +1 -0
- package/packages/tools/lib/completeness/tracker.js +86 -0
- package/packages/tools/lib/completeness/tracker.js.map +1 -0
- package/packages/tools/lib/dhf/dhf-config-v2.d.ts +102 -0
- package/packages/tools/lib/dhf/dhf-config-v2.d.ts.map +1 -0
- package/packages/tools/lib/dhf/dhf-config-v2.js +82 -0
- package/packages/tools/lib/dhf/dhf-config-v2.js.map +1 -0
- package/packages/tools/lib/dhf/dhf-config.d.ts +53 -0
- package/packages/tools/lib/dhf/dhf-config.d.ts.map +1 -0
- package/packages/tools/lib/dhf/dhf-config.js +44 -0
- package/packages/tools/lib/dhf/dhf-config.js.map +1 -0
- package/packages/tools/lib/dhf/directive-parser.d.ts +31 -0
- package/packages/tools/lib/dhf/directive-parser.d.ts.map +1 -0
- package/packages/tools/lib/dhf/directive-parser.js +83 -0
- package/packages/tools/lib/dhf/directive-parser.js.map +1 -0
- package/packages/tools/lib/dhf/document-compiler.d.ts +68 -0
- package/packages/tools/lib/dhf/document-compiler.d.ts.map +1 -0
- package/packages/tools/lib/dhf/document-compiler.js +209 -0
- package/packages/tools/lib/dhf/document-compiler.js.map +1 -0
- package/packages/tools/lib/dhf/document-ir.d.ts +170 -0
- package/packages/tools/lib/dhf/document-ir.d.ts.map +1 -0
- package/packages/tools/lib/dhf/document-ir.js +47 -0
- package/packages/tools/lib/dhf/document-ir.js.map +1 -0
- package/packages/tools/lib/dhf/document-registry.d.ts +45 -0
- package/packages/tools/lib/dhf/document-registry.d.ts.map +1 -0
- package/packages/tools/lib/dhf/document-registry.js +342 -0
- package/packages/tools/lib/dhf/document-registry.js.map +1 -0
- package/packages/tools/lib/dhf/export-plugin.d.ts +24 -0
- package/packages/tools/lib/dhf/export-plugin.d.ts.map +1 -0
- package/packages/tools/lib/dhf/export-plugin.js +24 -0
- package/packages/tools/lib/dhf/export-plugin.js.map +1 -0
- package/packages/tools/lib/dhf/exporters/docx-exporter.d.ts +15 -0
- package/packages/tools/lib/dhf/exporters/docx-exporter.d.ts.map +1 -0
- package/packages/tools/lib/dhf/exporters/docx-exporter.js +159 -0
- package/packages/tools/lib/dhf/exporters/docx-exporter.js.map +1 -0
- package/packages/tools/lib/dhf/exporters/html-exporter.d.ts +9 -0
- package/packages/tools/lib/dhf/exporters/html-exporter.d.ts.map +1 -0
- package/packages/tools/lib/dhf/exporters/html-exporter.js +248 -0
- package/packages/tools/lib/dhf/exporters/html-exporter.js.map +1 -0
- package/packages/tools/lib/dhf/exporters/markdown-exporter.d.ts +9 -0
- package/packages/tools/lib/dhf/exporters/markdown-exporter.d.ts.map +1 -0
- package/packages/tools/lib/dhf/exporters/markdown-exporter.js +147 -0
- package/packages/tools/lib/dhf/exporters/markdown-exporter.js.map +1 -0
- package/packages/tools/lib/dhf/index.d.ts +15 -0
- package/packages/tools/lib/dhf/index.d.ts.map +1 -0
- package/packages/tools/lib/dhf/index.js +21 -0
- package/packages/tools/lib/dhf/index.js.map +1 -0
- package/packages/tools/lib/dhf/markdown-to-ir.d.ts +19 -0
- package/packages/tools/lib/dhf/markdown-to-ir.d.ts.map +1 -0
- package/packages/tools/lib/dhf/markdown-to-ir.js +193 -0
- package/packages/tools/lib/dhf/markdown-to-ir.js.map +1 -0
- package/packages/tools/lib/dhf/query-engine.d.ts +61 -0
- package/packages/tools/lib/dhf/query-engine.d.ts.map +1 -0
- package/packages/tools/lib/dhf/query-engine.js +109 -0
- package/packages/tools/lib/dhf/query-engine.js.map +1 -0
- package/packages/tools/lib/dhf/query-executor.d.ts +33 -0
- package/packages/tools/lib/dhf/query-executor.d.ts.map +1 -0
- package/packages/tools/lib/dhf/query-executor.js +222 -0
- package/packages/tools/lib/dhf/query-executor.js.map +1 -0
- package/packages/tools/lib/dhf/script-runner.d.ts +4 -0
- package/packages/tools/lib/dhf/script-runner.d.ts.map +1 -0
- package/packages/tools/lib/dhf/script-runner.js +62 -0
- package/packages/tools/lib/dhf/script-runner.js.map +1 -0
- package/packages/tools/lib/dhf/snapshot.d.ts +60 -0
- package/packages/tools/lib/dhf/snapshot.d.ts.map +1 -0
- package/packages/tools/lib/dhf/snapshot.js +185 -0
- package/packages/tools/lib/dhf/snapshot.js.map +1 -0
- package/packages/tools/lib/dhf/template-engine.d.ts +18 -0
- package/packages/tools/lib/dhf/template-engine.d.ts.map +1 -0
- package/packages/tools/lib/dhf/template-engine.js +339 -0
- package/packages/tools/lib/dhf/template-engine.js.map +1 -0
- package/packages/tools/lib/dhf/template-resolver.d.ts +42 -0
- package/packages/tools/lib/dhf/template-resolver.d.ts.map +1 -0
- package/packages/tools/lib/dhf/template-resolver.js +196 -0
- package/packages/tools/lib/dhf/template-resolver.js.map +1 -0
- package/packages/tools/lib/import/column-mapper.d.ts +35 -0
- package/packages/tools/lib/import/column-mapper.d.ts.map +1 -0
- package/packages/tools/lib/import/column-mapper.js +171 -0
- package/packages/tools/lib/import/column-mapper.js.map +1 -0
- package/packages/tools/lib/import/import-diff.d.ts +49 -0
- package/packages/tools/lib/import/import-diff.d.ts.map +1 -0
- package/packages/tools/lib/import/import-diff.js +102 -0
- package/packages/tools/lib/import/import-diff.js.map +1 -0
- package/packages/tools/lib/import/recipes.d.ts +43 -0
- package/packages/tools/lib/import/recipes.d.ts.map +1 -0
- package/packages/tools/lib/import/recipes.js +133 -0
- package/packages/tools/lib/import/recipes.js.map +1 -0
- package/packages/tools/lib/importer/cameo-importer.d.ts +103 -0
- package/packages/tools/lib/importer/cameo-importer.d.ts.map +1 -0
- package/packages/tools/lib/importer/cameo-importer.js +384 -0
- package/packages/tools/lib/importer/cameo-importer.js.map +1 -0
- package/packages/tools/lib/importer/ea-importer.d.ts +115 -0
- package/packages/tools/lib/importer/ea-importer.d.ts.map +1 -0
- package/packages/tools/lib/importer/ea-importer.js +325 -0
- package/packages/tools/lib/importer/ea-importer.js.map +1 -0
- package/packages/tools/lib/importer/index.d.ts +5 -0
- package/packages/tools/lib/importer/index.d.ts.map +1 -0
- package/packages/tools/lib/importer/index.js +15 -0
- package/packages/tools/lib/importer/index.js.map +1 -0
- package/packages/tools/lib/importer/owl-importer.d.ts +91 -0
- package/packages/tools/lib/importer/owl-importer.d.ts.map +1 -0
- package/packages/tools/lib/importer/owl-importer.js +429 -0
- package/packages/tools/lib/importer/owl-importer.js.map +1 -0
- package/packages/tools/lib/importer/sysand-importer.d.ts +78 -0
- package/packages/tools/lib/importer/sysand-importer.d.ts.map +1 -0
- package/packages/tools/lib/importer/sysand-importer.js +188 -0
- package/packages/tools/lib/importer/sysand-importer.js.map +1 -0
- package/packages/tools/lib/index.d.ts +44 -0
- package/packages/tools/lib/index.d.ts.map +1 -0
- package/packages/tools/lib/index.js +56 -0
- package/packages/tools/lib/index.js.map +1 -0
- package/packages/tools/lib/language/generated/ast.d.ts +629 -0
- package/packages/tools/lib/language/generated/ast.d.ts.map +1 -0
- package/packages/tools/lib/language/generated/ast.js +961 -0
- package/packages/tools/lib/language/generated/ast.js.map +1 -0
- package/packages/tools/lib/language/generated/grammar.d.ts +7 -0
- package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -0
- package/packages/tools/lib/language/generated/grammar.js +5676 -0
- package/packages/tools/lib/language/generated/grammar.js.map +1 -0
- package/packages/tools/lib/language/generated/module.d.ts +14 -0
- package/packages/tools/lib/language/generated/module.d.ts.map +1 -0
- package/packages/tools/lib/language/generated/module.js +21 -0
- package/packages/tools/lib/language/generated/module.js.map +1 -0
- package/packages/tools/lib/language/memo-sysml-module.d.ts +24 -0
- package/packages/tools/lib/language/memo-sysml-module.d.ts.map +1 -0
- package/packages/tools/lib/language/memo-sysml-module.js +20 -0
- package/packages/tools/lib/language/memo-sysml-module.js.map +1 -0
- package/packages/tools/lib/llm/ask-engine.d.ts +17 -0
- package/packages/tools/lib/llm/ask-engine.d.ts.map +1 -0
- package/packages/tools/lib/llm/ask-engine.js +43 -0
- package/packages/tools/lib/llm/ask-engine.js.map +1 -0
- package/packages/tools/lib/llm/draft-engine.d.ts +32 -0
- package/packages/tools/lib/llm/draft-engine.d.ts.map +1 -0
- package/packages/tools/lib/llm/draft-engine.js +270 -0
- package/packages/tools/lib/llm/draft-engine.js.map +1 -0
- package/packages/tools/lib/llm/generate-engine.d.ts +21 -0
- package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -0
- package/packages/tools/lib/llm/generate-engine.js +83 -0
- package/packages/tools/lib/llm/generate-engine.js.map +1 -0
- package/packages/tools/lib/llm/index.d.ts +6 -0
- package/packages/tools/lib/llm/index.d.ts.map +1 -0
- package/packages/tools/lib/llm/index.js +11 -0
- package/packages/tools/lib/llm/index.js.map +1 -0
- package/packages/tools/lib/llm/llm-provider.d.ts +40 -0
- package/packages/tools/lib/llm/llm-provider.d.ts.map +1 -0
- package/packages/tools/lib/llm/llm-provider.js +121 -0
- package/packages/tools/lib/llm/llm-provider.js.map +1 -0
- package/packages/tools/lib/llm/model-context.d.ts +28 -0
- package/packages/tools/lib/llm/model-context.d.ts.map +1 -0
- package/packages/tools/lib/llm/model-context.js +162 -0
- package/packages/tools/lib/llm/model-context.js.map +1 -0
- package/packages/tools/lib/lock.d.ts +43 -0
- package/packages/tools/lib/lock.d.ts.map +1 -0
- package/packages/tools/lib/lock.js +225 -0
- package/packages/tools/lib/lock.js.map +1 -0
- package/packages/tools/lib/model/builder.d.ts +22 -0
- package/packages/tools/lib/model/builder.d.ts.map +1 -0
- package/packages/tools/lib/model/builder.js +708 -0
- package/packages/tools/lib/model/builder.js.map +1 -0
- package/packages/tools/lib/model/config-loader.d.ts +34 -0
- package/packages/tools/lib/model/config-loader.d.ts.map +1 -0
- package/packages/tools/lib/model/config-loader.js +257 -0
- package/packages/tools/lib/model/config-loader.js.map +1 -0
- package/packages/tools/lib/model/config.d.ts +220 -0
- package/packages/tools/lib/model/config.d.ts.map +1 -0
- package/packages/tools/lib/model/config.js +14 -0
- package/packages/tools/lib/model/config.js.map +1 -0
- package/packages/tools/lib/model/content-store.d.ts +8 -0
- package/packages/tools/lib/model/content-store.d.ts.map +1 -0
- package/packages/tools/lib/model/content-store.js +59 -0
- package/packages/tools/lib/model/content-store.js.map +1 -0
- package/packages/tools/lib/model/dimension-filter.d.ts +33 -0
- package/packages/tools/lib/model/dimension-filter.d.ts.map +1 -0
- package/packages/tools/lib/model/dimension-filter.js +57 -0
- package/packages/tools/lib/model/dimension-filter.js.map +1 -0
- package/packages/tools/lib/model/kind-registry.d.ts +72 -0
- package/packages/tools/lib/model/kind-registry.d.ts.map +1 -0
- package/packages/tools/lib/model/kind-registry.js +178 -0
- package/packages/tools/lib/model/kind-registry.js.map +1 -0
- package/packages/tools/lib/model/layer-resolver.d.ts +25 -0
- package/packages/tools/lib/model/layer-resolver.d.ts.map +1 -0
- package/packages/tools/lib/model/layer-resolver.js +82 -0
- package/packages/tools/lib/model/layer-resolver.js.map +1 -0
- package/packages/tools/lib/model/manifest.d.ts +23 -0
- package/packages/tools/lib/model/manifest.d.ts.map +1 -0
- package/packages/tools/lib/model/manifest.js +117 -0
- package/packages/tools/lib/model/manifest.js.map +1 -0
- package/packages/tools/lib/model/methodology-loader.d.ts +56 -0
- package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -0
- package/packages/tools/lib/model/methodology-loader.js +203 -0
- package/packages/tools/lib/model/methodology-loader.js.map +1 -0
- package/packages/tools/lib/model/ontology-loader.d.ts +113 -0
- package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -0
- package/packages/tools/lib/model/ontology-loader.js +901 -0
- package/packages/tools/lib/model/ontology-loader.js.map +1 -0
- package/packages/tools/lib/model/package-registry.d.ts +62 -0
- package/packages/tools/lib/model/package-registry.d.ts.map +1 -0
- package/packages/tools/lib/model/package-registry.js +164 -0
- package/packages/tools/lib/model/package-registry.js.map +1 -0
- package/packages/tools/lib/model/parser-utils.d.ts +23 -0
- package/packages/tools/lib/model/parser-utils.d.ts.map +1 -0
- package/packages/tools/lib/model/parser-utils.js +63 -0
- package/packages/tools/lib/model/parser-utils.js.map +1 -0
- package/packages/tools/lib/model/paths.d.ts +18 -0
- package/packages/tools/lib/model/paths.d.ts.map +1 -0
- package/packages/tools/lib/model/paths.js +26 -0
- package/packages/tools/lib/model/paths.js.map +1 -0
- package/packages/tools/lib/model/relationship-registry.d.ts +64 -0
- package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -0
- package/packages/tools/lib/model/relationship-registry.js +141 -0
- package/packages/tools/lib/model/relationship-registry.js.map +1 -0
- package/packages/tools/lib/model/semantic.d.ts +175 -0
- package/packages/tools/lib/model/semantic.d.ts.map +1 -0
- package/packages/tools/lib/model/semantic.js +61 -0
- package/packages/tools/lib/model/semantic.js.map +1 -0
- package/packages/tools/lib/model/short-id.d.ts +32 -0
- package/packages/tools/lib/model/short-id.d.ts.map +1 -0
- package/packages/tools/lib/model/short-id.js +136 -0
- package/packages/tools/lib/model/short-id.js.map +1 -0
- package/packages/tools/lib/model/toolchain.d.ts +12 -0
- package/packages/tools/lib/model/toolchain.d.ts.map +1 -0
- package/packages/tools/lib/model/toolchain.js +92 -0
- package/packages/tools/lib/model/toolchain.js.map +1 -0
- package/packages/tools/lib/model/view-deriver.d.ts +22 -0
- package/packages/tools/lib/model/view-deriver.d.ts.map +1 -0
- package/packages/tools/lib/model/view-deriver.js +160 -0
- package/packages/tools/lib/model/view-deriver.js.map +1 -0
- package/packages/tools/lib/model/view-kinds.d.ts +29 -0
- package/packages/tools/lib/model/view-kinds.d.ts.map +1 -0
- package/packages/tools/lib/model/view-kinds.js +80 -0
- package/packages/tools/lib/model/view-kinds.js.map +1 -0
- package/packages/tools/lib/ontology/owl-exporter.d.ts +43 -0
- package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -0
- package/packages/tools/lib/ontology/owl-exporter.js +70 -0
- package/packages/tools/lib/ontology/owl-exporter.js.map +1 -0
- package/packages/tools/lib/operations/index.d.ts +8 -0
- package/packages/tools/lib/operations/index.d.ts.map +1 -0
- package/packages/tools/lib/operations/index.js +8 -0
- package/packages/tools/lib/operations/index.js.map +1 -0
- package/packages/tools/lib/operations/project-snapshot.d.ts +17 -0
- package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -0
- package/packages/tools/lib/operations/project-snapshot.js +103 -0
- package/packages/tools/lib/operations/project-snapshot.js.map +1 -0
- package/packages/tools/lib/plugin/index.d.ts +5 -0
- package/packages/tools/lib/plugin/index.d.ts.map +1 -0
- package/packages/tools/lib/plugin/index.js +10 -0
- package/packages/tools/lib/plugin/index.js.map +1 -0
- package/packages/tools/lib/plugin/plugin-loader.d.ts +26 -0
- package/packages/tools/lib/plugin/plugin-loader.d.ts.map +1 -0
- package/packages/tools/lib/plugin/plugin-loader.js +216 -0
- package/packages/tools/lib/plugin/plugin-loader.js.map +1 -0
- package/packages/tools/lib/plugin/plugin-registry.d.ts +49 -0
- package/packages/tools/lib/plugin/plugin-registry.d.ts.map +1 -0
- package/packages/tools/lib/plugin/plugin-registry.js +121 -0
- package/packages/tools/lib/plugin/plugin-registry.js.map +1 -0
- package/packages/tools/lib/plugin/plugin-scaffold.d.ts +17 -0
- package/packages/tools/lib/plugin/plugin-scaffold.d.ts.map +1 -0
- package/packages/tools/lib/plugin/plugin-scaffold.js +223 -0
- package/packages/tools/lib/plugin/plugin-scaffold.js.map +1 -0
- package/packages/tools/lib/plugin/plugin-types.d.ts +115 -0
- package/packages/tools/lib/plugin/plugin-types.d.ts.map +1 -0
- package/packages/tools/lib/plugin/plugin-types.js +11 -0
- package/packages/tools/lib/plugin/plugin-types.js.map +1 -0
- package/packages/tools/lib/protocol/messages.d.ts +470 -0
- package/packages/tools/lib/protocol/messages.d.ts.map +1 -0
- package/packages/tools/lib/protocol/messages.js +6 -0
- package/packages/tools/lib/protocol/messages.js.map +1 -0
- package/packages/tools/lib/serializer/csv-io.d.ts +113 -0
- package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -0
- package/packages/tools/lib/serializer/csv-io.js +394 -0
- package/packages/tools/lib/serializer/csv-io.js.map +1 -0
- package/packages/tools/lib/serializer/sysml-generator.d.ts +32 -0
- package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -0
- package/packages/tools/lib/serializer/sysml-generator.js +120 -0
- package/packages/tools/lib/serializer/sysml-generator.js.map +1 -0
- package/packages/tools/lib/server/config-resolver.d.ts +14 -0
- package/packages/tools/lib/server/config-resolver.d.ts.map +1 -0
- package/packages/tools/lib/server/config-resolver.js +54 -0
- package/packages/tools/lib/server/config-resolver.js.map +1 -0
- package/packages/tools/lib/server/dev-server.d.ts +17 -0
- package/packages/tools/lib/server/dev-server.d.ts.map +1 -0
- package/packages/tools/lib/server/dev-server.js +939 -0
- package/packages/tools/lib/server/dev-server.js.map +1 -0
- package/packages/tools/lib/server/dhf-doc-store.d.ts +11 -0
- package/packages/tools/lib/server/dhf-doc-store.d.ts.map +1 -0
- package/packages/tools/lib/server/dhf-doc-store.js +181 -0
- package/packages/tools/lib/server/dhf-doc-store.js.map +1 -0
- package/packages/tools/lib/server/file-watcher.d.ts +20 -0
- package/packages/tools/lib/server/file-watcher.d.ts.map +1 -0
- package/packages/tools/lib/server/file-watcher.js +140 -0
- package/packages/tools/lib/server/file-watcher.js.map +1 -0
- package/packages/tools/lib/server/persistor.d.ts +25 -0
- package/packages/tools/lib/server/persistor.d.ts.map +1 -0
- package/packages/tools/lib/server/persistor.js +100 -0
- package/packages/tools/lib/server/persistor.js.map +1 -0
- package/packages/tools/lib/server/view-layout-store.d.ts +8 -0
- package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -0
- package/packages/tools/lib/server/view-layout-store.js +73 -0
- package/packages/tools/lib/server/view-layout-store.js.map +1 -0
- package/packages/tools/lib/types/index.d.ts +4 -0
- package/packages/tools/lib/types/index.d.ts.map +1 -0
- package/packages/tools/lib/types/index.js +6 -0
- package/packages/tools/lib/types/index.js.map +1 -0
- package/packages/tools/lib/validator/behavior-validator.d.ts +12 -0
- package/packages/tools/lib/validator/behavior-validator.d.ts.map +1 -0
- package/packages/tools/lib/validator/behavior-validator.js +124 -0
- package/packages/tools/lib/validator/behavior-validator.js.map +1 -0
- package/packages/tools/lib/validator/constraint-eval.d.ts +90 -0
- package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -0
- package/packages/tools/lib/validator/constraint-eval.js +478 -0
- package/packages/tools/lib/validator/constraint-eval.js.map +1 -0
- package/packages/tools/lib/validator/constraint-loader.d.ts +10 -0
- package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -0
- package/packages/tools/lib/validator/constraint-loader.js +113 -0
- package/packages/tools/lib/validator/constraint-loader.js.map +1 -0
- package/packages/tools/lib/validator/rule-engine.d.ts +13 -0
- package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -0
- package/packages/tools/lib/validator/rule-engine.js +38 -0
- package/packages/tools/lib/validator/rule-engine.js.map +1 -0
- package/packages/tools/lib/validator/rule-registry.d.ts +61 -0
- package/packages/tools/lib/validator/rule-registry.d.ts.map +1 -0
- package/packages/tools/lib/validator/rule-registry.js +142 -0
- package/packages/tools/lib/validator/rule-registry.js.map +1 -0
- package/packages/tools/lib/validator/types.d.ts +59 -0
- package/packages/tools/lib/validator/types.d.ts.map +1 -0
- package/packages/tools/lib/validator/types.js +3 -0
- package/packages/tools/lib/validator/types.js.map +1 -0
- package/packages/tools/lib/validator/view-validator.d.ts +11 -0
- package/packages/tools/lib/validator/view-validator.d.ts.map +1 -0
- package/packages/tools/lib/validator/view-validator.js +48 -0
- package/packages/tools/lib/validator/view-validator.js.map +1 -0
- package/packages/tools/src/grammar/memo-sysml.langium +450 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../src/validator/rule-engine.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D;;;;;;;GAOG;AACH,wBAAgB,aAAa,CACzB,KAAK,EAAE,SAAS,EAChB,iBAAiB,GAAE,kBAAkB,EAAO,GAC7C,gBAAgB,CAkBlB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// ─── Constraint Validation ─────────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Evaluates native SysML v2 / KerML constraints against the built model.
|
|
4
|
+
// Rules are authored as `constraint def` / `requirement def` bodies in the
|
|
5
|
+
// ontology (compiled by collectNativeConstraints) and evaluated by the KerML
|
|
6
|
+
// expression evaluator (constraint-eval.ts). Structural behavior checks run
|
|
7
|
+
// alongside. The proprietary ClosureRule path was removed in Epic EE-4.
|
|
8
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
9
|
+
import { evaluateConstraintNode } from './constraint-eval.js';
|
|
10
|
+
import { validateBehavior } from './behavior-validator.js';
|
|
11
|
+
import { validateViews } from './view-validator.js';
|
|
12
|
+
/**
|
|
13
|
+
* Full model validation: native constraints + structural checks.
|
|
14
|
+
* Preferred entry point — combines all validation passes.
|
|
15
|
+
*
|
|
16
|
+
* @param nativeConstraints constraints compiled from ontology `constraint def` bodies
|
|
17
|
+
* (see collectNativeConstraints). Evaluated as native KerML
|
|
18
|
+
* expressions over each constraint's subject kind.
|
|
19
|
+
*/
|
|
20
|
+
export function validateModel(model, nativeConstraints = []) {
|
|
21
|
+
const behaviorViolations = validateBehavior(model);
|
|
22
|
+
const viewViolations = validateViews(model);
|
|
23
|
+
const nativeViolations = [];
|
|
24
|
+
let nativePassed = 0;
|
|
25
|
+
for (const constraint of nativeConstraints) {
|
|
26
|
+
const violations = evaluateConstraintNode(constraint, constraint.ast, model);
|
|
27
|
+
if (violations.length === 0)
|
|
28
|
+
nativePassed++;
|
|
29
|
+
nativeViolations.push(...violations);
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
violations: [...behaviorViolations, ...viewViolations, ...nativeViolations],
|
|
33
|
+
rulesEvaluated: 5 + nativeConstraints.length,
|
|
34
|
+
rulesPassed: nativePassed,
|
|
35
|
+
timestamp: Date.now(),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=rule-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-engine.js","sourceRoot":"","sources":["../../src/validator/rule-engine.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,wEAAwE;AACxE,gFAAgF;AAKhF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CACzB,KAAgB,EAChB,oBAA0C,EAAE;IAE5C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,gBAAgB,GAAgB,EAAE,CAAC;IACzC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,sBAAsB,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,YAAY,EAAE,CAAC;QAC5C,gBAAgB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACH,UAAU,EAAE,CAAC,GAAG,kBAAkB,EAAE,GAAG,cAAc,EAAE,GAAG,gBAAgB,CAAC;QAC3E,cAAc,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM;QAC5C,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACxB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { ParsedDocument } from '../model/parser-utils.js';
|
|
2
|
+
/** A consistency rule extracted from SysML ontology */
|
|
3
|
+
export interface RuleRegistryEntry {
|
|
4
|
+
/** Rule ID from SysML attribute */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Human-readable name */
|
|
7
|
+
name: string;
|
|
8
|
+
/** Description */
|
|
9
|
+
description: string;
|
|
10
|
+
/** Entity kind this rule applies to */
|
|
11
|
+
appliesTo: string;
|
|
12
|
+
/** Predicate kind (requireRelationship, requireAttribute, etc.) */
|
|
13
|
+
predicate: string;
|
|
14
|
+
/** Rule strength (optional, recommended, required, forbidden) */
|
|
15
|
+
strength: string;
|
|
16
|
+
/** Severity (error, warning, info) */
|
|
17
|
+
severity: string;
|
|
18
|
+
/** Rationale text */
|
|
19
|
+
rationaleText: string;
|
|
20
|
+
/** Rule category (closure, coverage, lifecycle, crossLayer, quantitative) */
|
|
21
|
+
category: string;
|
|
22
|
+
/** All raw attributes from the SysML instance */
|
|
23
|
+
attributes: Record<string, string>;
|
|
24
|
+
/** Source file path */
|
|
25
|
+
file: string;
|
|
26
|
+
/** Supertype chain (e.g. RelationshipConsistencyRule, ConsistencyRule) */
|
|
27
|
+
superType?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Registry that discovers ConsistencyRule instances from SysML AST.
|
|
31
|
+
* Walks part usages whose type specializes ConsistencyRule.
|
|
32
|
+
*/
|
|
33
|
+
export declare class RuleRegistry {
|
|
34
|
+
private readonly rules;
|
|
35
|
+
/** Known ConsistencyRule type hierarchy */
|
|
36
|
+
private static readonly RULE_TYPES;
|
|
37
|
+
/** Number of registered rules */
|
|
38
|
+
get size(): number;
|
|
39
|
+
/** Get a rule by ID */
|
|
40
|
+
getRule(id: string): RuleRegistryEntry | undefined;
|
|
41
|
+
/** Get all rules */
|
|
42
|
+
entries(): RuleRegistryEntry[];
|
|
43
|
+
/** Get rules filtered by category */
|
|
44
|
+
byCategory(category: string): RuleRegistryEntry[];
|
|
45
|
+
/** Get rules filtered by standard (for coverage rules) */
|
|
46
|
+
byStandard(standard: string): RuleRegistryEntry[];
|
|
47
|
+
/** Check if a rule is registered */
|
|
48
|
+
has(id: string): boolean;
|
|
49
|
+
/** Register a rule manually (for testing) */
|
|
50
|
+
register(entry: RuleRegistryEntry): void;
|
|
51
|
+
/**
|
|
52
|
+
* Populate registry from parsed SysML documents.
|
|
53
|
+
* Looks for part usages whose type is a known ConsistencyRule subtype.
|
|
54
|
+
*/
|
|
55
|
+
populateFromDocuments(docs: ParsedDocument[]): void;
|
|
56
|
+
private walkPackage;
|
|
57
|
+
private tryExtractRule;
|
|
58
|
+
private extractAttributes;
|
|
59
|
+
private extractValue;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=rule-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-registry.d.ts","sourceRoot":"","sources":["../../src/validator/rule-registry.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAC9B,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAS/B;IAEH,iCAAiC;IACjC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,uBAAuB;IACvB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIlD,oBAAoB;IACpB,OAAO,IAAI,iBAAiB,EAAE;IAI9B,qCAAqC;IACrC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAIjD,0DAA0D;IAC1D,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAIjD,oCAAoC;IACpC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAIxC;;;OAGG;IACH,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI;IAanD,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,YAAY;CAoBvB"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// ─── Rule Registry ───────────────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Discovery index for ConsistencyRule instances in parsed SysML documents.
|
|
4
|
+
// Surfaces rule metadata (id, category, severity, standard) for the `memo rules`
|
|
5
|
+
// catalog and coverage reporting. Rule EVALUATION is handled by the native
|
|
6
|
+
// constraint evaluator (constraint-eval.ts); the proprietary ClosureRule
|
|
7
|
+
// conversion was removed in Epic EE-4.
|
|
8
|
+
//
|
|
9
|
+
// Usage:
|
|
10
|
+
// const registry = new RuleRegistry();
|
|
11
|
+
// registry.populateFromDocuments(parsedDocs);
|
|
12
|
+
// const rules = registry.entries();
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Registry that discovers ConsistencyRule instances from SysML AST.
|
|
16
|
+
* Walks part usages whose type specializes ConsistencyRule.
|
|
17
|
+
*/
|
|
18
|
+
export class RuleRegistry {
|
|
19
|
+
rules = new Map();
|
|
20
|
+
/** Known ConsistencyRule type hierarchy */
|
|
21
|
+
static RULE_TYPES = new Set([
|
|
22
|
+
'ConsistencyRule',
|
|
23
|
+
'RelationshipConsistencyRule',
|
|
24
|
+
'AttributeConsistencyRule',
|
|
25
|
+
'ConditionalConsistencyRule',
|
|
26
|
+
'CoverageConsistencyRule',
|
|
27
|
+
// Methodology-level types that extend ConsistencyRule
|
|
28
|
+
'ElementUsageRule',
|
|
29
|
+
'RelationUsageRule',
|
|
30
|
+
]);
|
|
31
|
+
/** Number of registered rules */
|
|
32
|
+
get size() {
|
|
33
|
+
return this.rules.size;
|
|
34
|
+
}
|
|
35
|
+
/** Get a rule by ID */
|
|
36
|
+
getRule(id) {
|
|
37
|
+
return this.rules.get(id);
|
|
38
|
+
}
|
|
39
|
+
/** Get all rules */
|
|
40
|
+
entries() {
|
|
41
|
+
return Array.from(this.rules.values());
|
|
42
|
+
}
|
|
43
|
+
/** Get rules filtered by category */
|
|
44
|
+
byCategory(category) {
|
|
45
|
+
return this.entries().filter(r => r.category === category);
|
|
46
|
+
}
|
|
47
|
+
/** Get rules filtered by standard (for coverage rules) */
|
|
48
|
+
byStandard(standard) {
|
|
49
|
+
return this.entries().filter(r => r.attributes['standard'] === standard);
|
|
50
|
+
}
|
|
51
|
+
/** Check if a rule is registered */
|
|
52
|
+
has(id) {
|
|
53
|
+
return this.rules.has(id);
|
|
54
|
+
}
|
|
55
|
+
/** Register a rule manually (for testing) */
|
|
56
|
+
register(entry) {
|
|
57
|
+
this.rules.set(entry.id, entry);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Populate registry from parsed SysML documents.
|
|
61
|
+
* Looks for part usages whose type is a known ConsistencyRule subtype.
|
|
62
|
+
*/
|
|
63
|
+
populateFromDocuments(docs) {
|
|
64
|
+
for (const doc of docs) {
|
|
65
|
+
const model = doc.document.parseResult?.value;
|
|
66
|
+
if (!model)
|
|
67
|
+
continue;
|
|
68
|
+
for (const member of model.members ?? []) {
|
|
69
|
+
if (member.$type === 'PackageDeclaration') {
|
|
70
|
+
this.walkPackage(member, doc.filePath);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
walkPackage(pkg, filePath) {
|
|
76
|
+
for (const member of pkg.members ?? []) {
|
|
77
|
+
if (member.$type === 'PackageDeclaration') {
|
|
78
|
+
this.walkPackage(member, filePath);
|
|
79
|
+
}
|
|
80
|
+
else if (member.$type === 'PartUsage') {
|
|
81
|
+
this.tryExtractRule(member, filePath);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
tryExtractRule(usage, filePath) {
|
|
86
|
+
const typeName = usage.type;
|
|
87
|
+
if (!typeName || !RuleRegistry.RULE_TYPES.has(typeName))
|
|
88
|
+
return;
|
|
89
|
+
const attrs = this.extractAttributes(usage.body);
|
|
90
|
+
const id = attrs['id'];
|
|
91
|
+
if (!id)
|
|
92
|
+
return; // Rules must have an ID
|
|
93
|
+
const entry = {
|
|
94
|
+
id,
|
|
95
|
+
name: attrs['name'] ?? usage.name ?? id,
|
|
96
|
+
description: attrs['description'] ?? '',
|
|
97
|
+
appliesTo: attrs['appliesTo'] ?? '',
|
|
98
|
+
predicate: attrs['predicate'] ?? '',
|
|
99
|
+
strength: attrs['strength'] ?? 'recommended',
|
|
100
|
+
severity: attrs['severity'] ?? 'warning',
|
|
101
|
+
rationaleText: attrs['rationaleText'] ?? '',
|
|
102
|
+
category: attrs['category'] ?? 'closure',
|
|
103
|
+
attributes: attrs,
|
|
104
|
+
file: filePath,
|
|
105
|
+
superType: typeName,
|
|
106
|
+
};
|
|
107
|
+
this.rules.set(id, entry);
|
|
108
|
+
}
|
|
109
|
+
extractAttributes(body) {
|
|
110
|
+
if (!body)
|
|
111
|
+
return {};
|
|
112
|
+
const attrs = {};
|
|
113
|
+
for (const member of body) {
|
|
114
|
+
if (member.$type === 'AttributeMember' && member.value) {
|
|
115
|
+
attrs[member.name] = this.extractValue(member.value);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return attrs;
|
|
119
|
+
}
|
|
120
|
+
extractValue(value) {
|
|
121
|
+
if (!value)
|
|
122
|
+
return '';
|
|
123
|
+
switch (value.$type) {
|
|
124
|
+
case 'StringValue':
|
|
125
|
+
return value.value?.replace(/^"|"$/g, '') ?? '';
|
|
126
|
+
case 'IntValue':
|
|
127
|
+
case 'RealValue':
|
|
128
|
+
return String(value.value);
|
|
129
|
+
case 'BooleanValue':
|
|
130
|
+
return value.value;
|
|
131
|
+
case 'EnumValue': {
|
|
132
|
+
// Strip enum type prefix: "RuleStrengthKind::required" → "required"
|
|
133
|
+
const ref = value.enumRef ?? '';
|
|
134
|
+
const colonIdx = ref.lastIndexOf('::');
|
|
135
|
+
return colonIdx >= 0 ? ref.slice(colonIdx + 2) : ref;
|
|
136
|
+
}
|
|
137
|
+
default:
|
|
138
|
+
return String(value);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=rule-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-registry.js","sourceRoot":"","sources":["../../src/validator/rule-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/** A single rule violation */
|
|
2
|
+
export interface Violation {
|
|
3
|
+
/** Closure rule id, e.g. "CR-MED-001" */
|
|
4
|
+
ruleId: string;
|
|
5
|
+
/** Rule description */
|
|
6
|
+
description: string;
|
|
7
|
+
/** Severity */
|
|
8
|
+
severity: 'error' | 'warning' | 'info';
|
|
9
|
+
/** Element id that violates the rule */
|
|
10
|
+
elementId: string;
|
|
11
|
+
/** Element kind */
|
|
12
|
+
elementKind: string;
|
|
13
|
+
/** Element name */
|
|
14
|
+
elementName: string;
|
|
15
|
+
/** CoSMA layer */
|
|
16
|
+
layer: string;
|
|
17
|
+
}
|
|
18
|
+
/** Validation result for the entire model */
|
|
19
|
+
export interface ValidationResult {
|
|
20
|
+
/** All violations found */
|
|
21
|
+
violations: Violation[];
|
|
22
|
+
/** Total rules evaluated */
|
|
23
|
+
rulesEvaluated: number;
|
|
24
|
+
/** Rules that passed (no violations) */
|
|
25
|
+
rulesPassed: number;
|
|
26
|
+
/** Timestamp */
|
|
27
|
+
timestamp: number;
|
|
28
|
+
}
|
|
29
|
+
/** Per-layer completeness percentage */
|
|
30
|
+
export interface LayerCompleteness {
|
|
31
|
+
/** Layer id */
|
|
32
|
+
layerId: string;
|
|
33
|
+
/** Layer label */
|
|
34
|
+
layerLabel: string;
|
|
35
|
+
/** Layer color */
|
|
36
|
+
layerColor: string;
|
|
37
|
+
/** Number of elements in this layer */
|
|
38
|
+
totalElements: number;
|
|
39
|
+
/** Number of elements with no violations */
|
|
40
|
+
completeElements: number;
|
|
41
|
+
/** Completeness percentage (0-100) */
|
|
42
|
+
percentage: number;
|
|
43
|
+
}
|
|
44
|
+
/** Per-element completeness status */
|
|
45
|
+
export type ElementStatus = 'complete' | 'warning' | 'error';
|
|
46
|
+
/** Overall completeness report */
|
|
47
|
+
export interface CompletenessReport {
|
|
48
|
+
/** Per-layer completeness */
|
|
49
|
+
layers: LayerCompleteness[];
|
|
50
|
+
/** Overall completeness percentage */
|
|
51
|
+
overall: number;
|
|
52
|
+
/** Total elements */
|
|
53
|
+
totalElements: number;
|
|
54
|
+
/** Complete elements (no violations) */
|
|
55
|
+
completeElements: number;
|
|
56
|
+
/** Per-element status: complete (no violations), warning (warnings only), error (has errors) */
|
|
57
|
+
elementStatus: Record<string, ElementStatus>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validator/types.ts"],"names":[],"mappings":"AAEA,8BAA8B;AAC9B,MAAM,WAAW,SAAS;IACtB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC7B,2BAA2B;IAC3B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,iBAAiB;IAC9B,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7D,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IAC/B,6BAA6B;IAC7B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAChD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/validator/types.ts"],"names":[],"mappings":"AAAA,iFAAiF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MemoModel } from '../model/semantic.js';
|
|
2
|
+
import type { Violation } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Run view-specific structural validation.
|
|
5
|
+
*
|
|
6
|
+
* Checks:
|
|
7
|
+
* 1. VW-001 — diagramType key has no view-kind mapping
|
|
8
|
+
* 2. VW-002 — declared viewKind on a diagram view is not a spec view kind
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateViews(model: MemoModel): Violation[];
|
|
11
|
+
//# sourceMappingURL=view-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-validator.d.ts","sourceRoot":"","sources":["../../src/validator/view-validator.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,CAkC3D"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// ─── View Validator ──────────────────────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Structural checks for view elements (Epic KK-1). Every diagram view must
|
|
4
|
+
// resolve to exactly one of the eight SysML v2 spec view kinds — an unmapped
|
|
5
|
+
// legacy `diagramType` key or an off-taxonomy `viewKind` declaration cannot,
|
|
6
|
+
// so both are flagged as warnings.
|
|
7
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
8
|
+
import { DIAGRAM_TYPE_TO_VIEW_KIND, VIEW_KINDS, normalizeViewKind } from '../model/view-kinds.js';
|
|
9
|
+
/**
|
|
10
|
+
* Run view-specific structural validation.
|
|
11
|
+
*
|
|
12
|
+
* Checks:
|
|
13
|
+
* 1. VW-001 — diagramType key has no view-kind mapping
|
|
14
|
+
* 2. VW-002 — declared viewKind on a diagram view is not a spec view kind
|
|
15
|
+
*/
|
|
16
|
+
export function validateViews(model) {
|
|
17
|
+
const violations = [];
|
|
18
|
+
for (const el of model.elements.values()) {
|
|
19
|
+
const diagramType = el.attributes['diagramType'];
|
|
20
|
+
if (!diagramType)
|
|
21
|
+
continue;
|
|
22
|
+
if (!DIAGRAM_TYPE_TO_VIEW_KIND[diagramType]) {
|
|
23
|
+
violations.push({
|
|
24
|
+
ruleId: 'VW-001',
|
|
25
|
+
description: `View "${el.name}" has unmapped diagramType "${diagramType}" — it does not resolve to a SysML v2 view kind`,
|
|
26
|
+
severity: 'warning',
|
|
27
|
+
elementId: el.id,
|
|
28
|
+
elementKind: el.kind,
|
|
29
|
+
elementName: el.name,
|
|
30
|
+
layer: el.layer,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const declared = el.attributes['viewKind'];
|
|
34
|
+
if (declared && !normalizeViewKind(declared)) {
|
|
35
|
+
violations.push({
|
|
36
|
+
ruleId: 'VW-002',
|
|
37
|
+
description: `View "${el.name}" declares viewKind "${declared}" which is not one of the SysML v2 view kinds (${VIEW_KINDS.join(', ')})`,
|
|
38
|
+
severity: 'warning',
|
|
39
|
+
elementId: el.id,
|
|
40
|
+
elementKind: el.kind,
|
|
41
|
+
elementName: el.name,
|
|
42
|
+
layer: el.layer,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return violations;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=view-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-validator.js","sourceRoot":"","sources":["../../src/validator/view-validator.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,mCAAmC;AACnC,gFAAgF;AAIhF,OAAO,EAAE,yBAAyB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAElG;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB;IAC1C,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,UAAU,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,SAAS,EAAE,CAAC,IAAI,+BAA+B,WAAW,iDAAiD;gBACxH,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,EAAE,CAAC,EAAE;gBAChB,WAAW,EAAE,EAAE,CAAC,IAAI;gBACpB,WAAW,EAAE,EAAE,CAAC,IAAI;gBACpB,KAAK,EAAE,EAAE,CAAC,KAAK;aAClB,CAAC,CAAC;QACP,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,SAAS,EAAE,CAAC,IAAI,wBAAwB,QAAQ,kDAAkD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACvI,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,EAAE,CAAC,EAAE;gBAChB,WAAW,EAAE,EAAE,CAAC,IAAI;gBACpB,WAAW,EAAE,EAAE,CAAC,IAAI;gBACpB,KAAK,EAAE,EAAE,CAAC,KAAK;aAClB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC"}
|