@primmel/primmel 1.3.2 → 1.4.1
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/dist/index.d.ts +40 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +112 -1
- package/dist/index.js.map +1 -1
- package/dist/src/check-allowlist.d.ts +56 -0
- package/dist/src/check-allowlist.d.ts.map +1 -0
- package/dist/src/check-allowlist.js +307 -0
- package/dist/src/check-allowlist.js.map +1 -0
- package/dist/src/check-rules.d.ts +17 -0
- package/dist/src/check-rules.d.ts.map +1 -0
- package/dist/src/check-rules.js +351 -0
- package/dist/src/check-rules.js.map +1 -0
- package/dist/src/check.d.ts +115 -0
- package/dist/src/check.d.ts.map +1 -0
- package/dist/src/check.js +4164 -0
- package/dist/src/check.js.map +1 -0
- package/dist/src/export/rdf-competency-questions.d.ts +11 -0
- package/dist/src/export/rdf-competency-questions.d.ts.map +1 -0
- package/dist/src/export/rdf-competency-questions.js +99 -0
- package/dist/src/export/rdf-competency-questions.js.map +1 -0
- package/dist/src/export/rdf-shapes.d.ts +3 -0
- package/dist/src/export/rdf-shapes.d.ts.map +1 -0
- package/dist/src/export/rdf-shapes.js +225 -0
- package/dist/src/export/rdf-shapes.js.map +1 -0
- package/dist/src/export/rdf-vocabulary.d.ts +125 -0
- package/dist/src/export/rdf-vocabulary.d.ts.map +1 -0
- package/dist/src/export/rdf-vocabulary.js +230 -0
- package/dist/src/export/rdf-vocabulary.js.map +1 -0
- package/dist/src/export/rdf.d.ts +92 -0
- package/dist/src/export/rdf.d.ts.map +1 -0
- package/dist/src/export/rdf.js +707 -0
- package/dist/src/export/rdf.js.map +1 -0
- package/dist/src/export/reqif.d.ts +81 -0
- package/dist/src/export/reqif.d.ts.map +1 -0
- package/dist/src/export/reqif.js +703 -0
- package/dist/src/export/reqif.js.map +1 -0
- package/dist/src/instance-resolution.d.ts +68 -0
- package/dist/src/instance-resolution.d.ts.map +1 -0
- package/dist/src/instance-resolution.js +239 -0
- package/dist/src/instance-resolution.js.map +1 -0
- package/dist/src/mapping-coverage.d.ts +220 -0
- package/dist/src/mapping-coverage.d.ts.map +1 -0
- package/dist/src/mapping-coverage.js +528 -0
- package/dist/src/mapping-coverage.js.map +1 -0
- package/dist/src/model-diff.d.ts +198 -0
- package/dist/src/model-diff.d.ts.map +1 -0
- package/dist/src/model-diff.js +914 -0
- package/dist/src/model-diff.js.map +1 -0
- package/dist/src/operational-state.d.ts +112 -0
- package/dist/src/operational-state.d.ts.map +1 -0
- package/dist/src/operational-state.js +162 -0
- package/dist/src/operational-state.js.map +1 -0
- package/dist/src/package-diff.d.ts +36 -0
- package/dist/src/package-diff.d.ts.map +1 -0
- package/dist/src/package-diff.js +104 -0
- package/dist/src/package-diff.js.map +1 -0
- package/dist/src/ser-des/config/acceptance.d.ts +10 -0
- package/dist/src/ser-des/config/acceptance.d.ts.map +1 -0
- package/dist/src/ser-des/config/acceptance.js +163 -0
- package/dist/src/ser-des/config/acceptance.js.map +1 -0
- package/dist/src/ser-des/config/activityArchetype.d.ts +5 -0
- package/dist/src/ser-des/config/activityArchetype.d.ts.map +1 -0
- package/dist/src/ser-des/config/activityArchetype.js +78 -0
- package/dist/src/ser-des/config/activityArchetype.js.map +1 -0
- package/dist/src/ser-des/config/artifact.d.ts +16 -0
- package/dist/src/ser-des/config/artifact.d.ts.map +1 -0
- package/dist/src/ser-des/config/artifact.js +392 -0
- package/dist/src/ser-des/config/artifact.js.map +1 -0
- package/dist/src/ser-des/config/calculation.d.ts.map +1 -1
- package/dist/src/ser-des/config/calculation.js +214 -12
- package/dist/src/ser-des/config/calculation.js.map +1 -1
- package/dist/src/ser-des/config/comment.d.ts +34 -0
- package/dist/src/ser-des/config/comment.d.ts.map +1 -0
- package/dist/src/ser-des/config/comment.js +121 -0
- package/dist/src/ser-des/config/comment.js.map +1 -0
- package/dist/src/ser-des/config/competenceKind.d.ts +8 -0
- package/dist/src/ser-des/config/competenceKind.d.ts.map +1 -0
- package/dist/src/ser-des/config/competenceKind.js +266 -0
- package/dist/src/ser-des/config/competenceKind.js.map +1 -0
- package/dist/src/ser-des/config/composition.d.ts +6 -0
- package/dist/src/ser-des/config/composition.d.ts.map +1 -0
- package/dist/src/ser-des/config/composition.js +165 -0
- package/dist/src/ser-des/config/composition.js.map +1 -0
- package/dist/src/ser-des/config/conformanceClass.d.ts +9 -0
- package/dist/src/ser-des/config/conformanceClass.d.ts.map +1 -0
- package/dist/src/ser-des/config/conformanceClass.js +128 -0
- package/dist/src/ser-des/config/conformanceClass.js.map +1 -0
- package/dist/src/ser-des/config/conformanceTest.d.ts +6 -0
- package/dist/src/ser-des/config/conformanceTest.d.ts.map +1 -0
- package/dist/src/ser-des/config/conformanceTest.js +929 -0
- package/dist/src/ser-des/config/conformanceTest.js.map +1 -0
- package/dist/src/ser-des/config/constraint.d.ts +5 -0
- package/dist/src/ser-des/config/constraint.d.ts.map +1 -0
- package/dist/src/ser-des/config/constraint.js +108 -0
- package/dist/src/ser-des/config/constraint.js.map +1 -0
- package/dist/src/ser-des/config/data.d.ts.map +1 -1
- package/dist/src/ser-des/config/data.js +105 -12
- package/dist/src/ser-des/config/data.js.map +1 -1
- package/dist/src/ser-des/config/design.d.ts +9 -0
- package/dist/src/ser-des/config/design.d.ts.map +1 -0
- package/dist/src/ser-des/config/design.js +847 -0
- package/dist/src/ser-des/config/design.js.map +1 -0
- package/dist/src/ser-des/config/discrepancyRecord.d.ts +5 -0
- package/dist/src/ser-des/config/discrepancyRecord.d.ts.map +1 -0
- package/dist/src/ser-des/config/discrepancyRecord.js +109 -0
- package/dist/src/ser-des/config/discrepancyRecord.js.map +1 -0
- package/dist/src/ser-des/config/dual.d.ts +9 -0
- package/dist/src/ser-des/config/dual.d.ts.map +1 -0
- package/dist/src/ser-des/config/dual.js +84 -0
- package/dist/src/ser-des/config/dual.js.map +1 -0
- package/dist/src/ser-des/config/field-parser.d.ts +92 -7
- package/dist/src/ser-des/config/field-parser.d.ts.map +1 -1
- package/dist/src/ser-des/config/field-parser.js +844 -29
- package/dist/src/ser-des/config/field-parser.js.map +1 -1
- package/dist/src/ser-des/config/form.d.ts.map +1 -1
- package/dist/src/ser-des/config/form.js +356 -134
- package/dist/src/ser-des/config/form.js.map +1 -1
- package/dist/src/ser-des/config/formulasUsed.d.ts +9 -0
- package/dist/src/ser-des/config/formulasUsed.d.ts.map +1 -0
- package/dist/src/ser-des/config/formulasUsed.js +126 -0
- package/dist/src/ser-des/config/formulasUsed.js.map +1 -0
- package/dist/src/ser-des/config/index.d.ts.map +1 -1
- package/dist/src/ser-des/config/index.js +180 -1
- package/dist/src/ser-des/config/index.js.map +1 -1
- package/dist/src/ser-des/config/instance.d.ts +22 -0
- package/dist/src/ser-des/config/instance.d.ts.map +1 -0
- package/dist/src/ser-des/config/instance.js +266 -0
- package/dist/src/ser-des/config/instance.js.map +1 -0
- package/dist/src/ser-des/config/invariant.d.ts +9 -0
- package/dist/src/ser-des/config/invariant.d.ts.map +1 -0
- package/dist/src/ser-des/config/invariant.js +143 -0
- package/dist/src/ser-des/config/invariant.js.map +1 -0
- package/dist/src/ser-des/config/mapProfile.d.ts.map +1 -1
- package/dist/src/ser-des/config/mapProfile.js +199 -14
- package/dist/src/ser-des/config/mapProfile.js.map +1 -1
- package/dist/src/ser-des/config/metadata.js +6 -6
- package/dist/src/ser-des/config/metadata.js.map +1 -1
- package/dist/src/ser-des/config/monitor.d.ts +9 -0
- package/dist/src/ser-des/config/monitor.d.ts.map +1 -0
- package/dist/src/ser-des/config/monitor.js +322 -0
- package/dist/src/ser-des/config/monitor.js.map +1 -0
- package/dist/src/ser-des/config/note.d.ts.map +1 -1
- package/dist/src/ser-des/config/note.js +16 -1
- package/dist/src/ser-des/config/note.js.map +1 -1
- package/dist/src/ser-des/config/packageManifest.d.ts +5 -0
- package/dist/src/ser-des/config/packageManifest.d.ts.map +1 -0
- package/dist/src/ser-des/config/packageManifest.js +349 -0
- package/dist/src/ser-des/config/packageManifest.js.map +1 -0
- package/dist/src/ser-des/config/passport.d.ts +9 -0
- package/dist/src/ser-des/config/passport.d.ts.map +1 -0
- package/dist/src/ser-des/config/passport.js +191 -0
- package/dist/src/ser-des/config/passport.js.map +1 -0
- package/dist/src/ser-des/config/process.d.ts +5 -3
- package/dist/src/ser-des/config/process.d.ts.map +1 -1
- package/dist/src/ser-des/config/process.js +915 -8
- package/dist/src/ser-des/config/process.js.map +1 -1
- package/dist/src/ser-des/config/quantity.d.ts +21 -0
- package/dist/src/ser-des/config/quantity.d.ts.map +1 -0
- package/dist/src/ser-des/config/quantity.js +114 -0
- package/dist/src/ser-des/config/quantity.js.map +1 -0
- package/dist/src/ser-des/config/quantityRegister.d.ts +9 -0
- package/dist/src/ser-des/config/quantityRegister.d.ts.map +1 -0
- package/dist/src/ser-des/config/quantityRegister.js +202 -0
- package/dist/src/ser-des/config/quantityRegister.js.map +1 -0
- package/dist/src/ser-des/config/reference.d.ts.map +1 -1
- package/dist/src/ser-des/config/reference.js +6 -0
- package/dist/src/ser-des/config/reference.js.map +1 -1
- package/dist/src/ser-des/config/referenceMaterial.d.ts +5 -0
- package/dist/src/ser-des/config/referenceMaterial.d.ts.map +1 -0
- package/dist/src/ser-des/config/referenceMaterial.js +296 -0
- package/dist/src/ser-des/config/referenceMaterial.js.map +1 -0
- package/dist/src/ser-des/config/requirement.d.ts +16 -0
- package/dist/src/ser-des/config/requirement.d.ts.map +1 -0
- package/dist/src/ser-des/config/requirement.js +579 -0
- package/dist/src/ser-des/config/requirement.js.map +1 -0
- package/dist/src/ser-des/config/role.d.ts.map +1 -1
- package/dist/src/ser-des/config/role.js +12 -0
- package/dist/src/ser-des/config/role.js.map +1 -1
- package/dist/src/ser-des/config/series.d.ts +9 -0
- package/dist/src/ser-des/config/series.d.ts.map +1 -0
- package/dist/src/ser-des/config/series.js +121 -0
- package/dist/src/ser-des/config/series.js.map +1 -0
- package/dist/src/ser-des/config/sourceDiscrepancy.d.ts +11 -0
- package/dist/src/ser-des/config/sourceDiscrepancy.d.ts.map +1 -0
- package/dist/src/ser-des/config/sourceDiscrepancy.js +83 -0
- package/dist/src/ser-des/config/sourceDiscrepancy.js.map +1 -0
- package/dist/src/ser-des/config/stateMachine.d.ts.map +1 -1
- package/dist/src/ser-des/config/stateMachine.js +189 -38
- package/dist/src/ser-des/config/stateMachine.js.map +1 -1
- package/dist/src/ser-des/config/subform.d.ts.map +1 -1
- package/dist/src/ser-des/config/subform.js +25 -33
- package/dist/src/ser-des/config/subform.js.map +1 -1
- package/dist/src/ser-des/config/subject.d.ts +58 -0
- package/dist/src/ser-des/config/subject.d.ts.map +1 -0
- package/dist/src/ser-des/config/subject.js +2093 -0
- package/dist/src/ser-des/config/subject.js.map +1 -0
- package/dist/src/ser-des/config/symbol.d.ts.map +1 -1
- package/dist/src/ser-des/config/symbol.js +130 -6
- package/dist/src/ser-des/config/symbol.js.map +1 -1
- package/dist/src/ser-des/config/table.d.ts.map +1 -1
- package/dist/src/ser-des/config/table.js +373 -7
- package/dist/src/ser-des/config/table.js.map +1 -1
- package/dist/src/ser-des/config/term.d.ts.map +1 -1
- package/dist/src/ser-des/config/term.js +107 -0
- package/dist/src/ser-des/config/term.js.map +1 -1
- package/dist/src/ser-des/config/testPointSet.d.ts +5 -0
- package/dist/src/ser-des/config/testPointSet.d.ts.map +1 -0
- package/dist/src/ser-des/config/testPointSet.js +199 -0
- package/dist/src/ser-des/config/testPointSet.js.map +1 -0
- package/dist/src/ser-des/config/testSequence.d.ts +9 -0
- package/dist/src/ser-des/config/testSequence.d.ts.map +1 -0
- package/dist/src/ser-des/config/testSequence.js +206 -0
- package/dist/src/ser-des/config/testSequence.js.map +1 -0
- package/dist/src/ser-des/config/text.d.ts +5 -0
- package/dist/src/ser-des/config/text.d.ts.map +1 -0
- package/dist/src/ser-des/config/text.js +106 -0
- package/dist/src/ser-des/config/text.js.map +1 -0
- package/dist/src/ser-des/config/twin.d.ts +31 -0
- package/dist/src/ser-des/config/twin.d.ts.map +1 -0
- package/dist/src/ser-des/config/twin.js +362 -0
- package/dist/src/ser-des/config/twin.js.map +1 -0
- package/dist/src/ser-des/config/verdict.d.ts +5 -0
- package/dist/src/ser-des/config/verdict.d.ts.map +1 -0
- package/dist/src/ser-des/config/verdict.js +159 -0
- package/dist/src/ser-des/config/verdict.js.map +1 -0
- package/dist/src/ser-des/config/viewProfile.d.ts.map +1 -1
- package/dist/src/ser-des/config/viewProfile.js +7 -0
- package/dist/src/ser-des/config/viewProfile.js.map +1 -1
- package/dist/src/ser-des/includes.d.ts.map +1 -1
- package/dist/src/ser-des/includes.js +5 -2
- package/dist/src/ser-des/includes.js.map +1 -1
- package/dist/src/ser-des/index.d.ts +12 -0
- package/dist/src/ser-des/index.d.ts.map +1 -1
- package/dist/src/ser-des/index.js +42 -0
- package/dist/src/ser-des/index.js.map +1 -1
- package/dist/src/ser-des/package.d.ts +53 -0
- package/dist/src/ser-des/package.d.ts.map +1 -0
- package/dist/src/ser-des/package.js +404 -0
- package/dist/src/ser-des/package.js.map +1 -0
- package/dist/src/ser-des/parse-block.d.ts.map +1 -1
- package/dist/src/ser-des/parse-block.js +7 -1
- package/dist/src/ser-des/parse-block.js.map +1 -1
- package/dist/src/ser-des/parse.d.ts.map +1 -1
- package/dist/src/ser-des/parse.js +45 -0
- package/dist/src/ser-des/parse.js.map +1 -1
- package/dist/src/ser-des/prm.d.ts +53 -0
- package/dist/src/ser-des/prm.d.ts.map +1 -0
- package/dist/src/ser-des/prm.js +257 -0
- package/dist/src/ser-des/prm.js.map +1 -0
- package/dist/src/ser-des/resolve.d.ts.map +1 -1
- package/dist/src/ser-des/resolve.js +1 -0
- package/dist/src/ser-des/resolve.js.map +1 -1
- package/dist/src/ser-des/tokenize.d.ts +11 -0
- package/dist/src/ser-des/tokenize.d.ts.map +1 -1
- package/dist/src/ser-des/tokenize.js +28 -1
- package/dist/src/ser-des/tokenize.js.map +1 -1
- package/dist/src/ser-des/types.d.ts +56 -1
- package/dist/src/ser-des/types.d.ts.map +1 -1
- package/dist/src/spelling.d.ts +35 -0
- package/dist/src/spelling.d.ts.map +1 -0
- package/dist/src/spelling.js +140 -0
- package/dist/src/spelling.js.map +1 -0
- package/dist/src/text-coverage.d.ts +164 -0
- package/dist/src/text-coverage.d.ts.map +1 -0
- package/dist/src/text-coverage.js +679 -0
- package/dist/src/text-coverage.js.map +1 -0
- package/dist/src/time.d.ts +55 -0
- package/dist/src/time.d.ts.map +1 -0
- package/dist/src/time.js +223 -0
- package/dist/src/time.js.map +1 -0
- package/dist/src/type-expr.d.ts +31 -0
- package/dist/src/type-expr.d.ts.map +1 -0
- package/dist/src/type-expr.js +110 -0
- package/dist/src/type-expr.js.map +1 -0
- package/dist/src/types/Acceptance.d.ts +31 -0
- package/dist/src/types/Acceptance.d.ts.map +1 -0
- package/dist/src/types/Acceptance.js +12 -0
- package/dist/src/types/Acceptance.js.map +1 -0
- package/dist/src/types/ActivityArchetype.d.ts +14 -0
- package/dist/src/types/ActivityArchetype.d.ts.map +1 -0
- package/dist/src/types/ActivityArchetype.js +17 -0
- package/dist/src/types/ActivityArchetype.js.map +1 -0
- package/dist/src/types/Artifact.d.ts +117 -0
- package/dist/src/types/Artifact.d.ts.map +1 -0
- package/dist/src/types/Artifact.js +35 -0
- package/dist/src/types/Artifact.js.map +1 -0
- package/dist/src/types/Calculation.d.ts +49 -0
- package/dist/src/types/Calculation.d.ts.map +1 -1
- package/dist/src/types/Comment.d.ts +23 -0
- package/dist/src/types/Comment.d.ts.map +1 -0
- package/dist/src/types/Comment.js +3 -0
- package/dist/src/types/Comment.js.map +1 -0
- package/dist/src/types/CompetenceKind.d.ts +70 -0
- package/dist/src/types/CompetenceKind.d.ts.map +1 -0
- package/dist/src/types/CompetenceKind.js +3 -0
- package/dist/src/types/CompetenceKind.js.map +1 -0
- package/dist/src/types/Composition.d.ts +80 -0
- package/dist/src/types/Composition.d.ts.map +1 -0
- package/dist/src/types/Composition.js +44 -0
- package/dist/src/types/Composition.js.map +1 -0
- package/dist/src/types/ConformanceClass.d.ts +22 -0
- package/dist/src/types/ConformanceClass.d.ts.map +1 -0
- package/dist/src/types/ConformanceClass.js +7 -0
- package/dist/src/types/ConformanceClass.js.map +1 -0
- package/dist/src/types/ConformanceTest.d.ts +206 -0
- package/dist/src/types/ConformanceTest.d.ts.map +1 -0
- package/dist/src/types/ConformanceTest.js +3 -0
- package/dist/src/types/ConformanceTest.js.map +1 -0
- package/dist/src/types/Constraint.d.ts +34 -0
- package/dist/src/types/Constraint.d.ts.map +1 -0
- package/dist/src/types/Constraint.js +3 -0
- package/dist/src/types/Constraint.js.map +1 -0
- package/dist/src/types/Design.d.ts +147 -0
- package/dist/src/types/Design.d.ts.map +1 -0
- package/dist/src/types/Design.js +10 -0
- package/dist/src/types/Design.js.map +1 -0
- package/dist/src/types/DiscrepancyRecord.d.ts +42 -0
- package/dist/src/types/DiscrepancyRecord.d.ts.map +1 -0
- package/dist/src/types/DiscrepancyRecord.js +3 -0
- package/dist/src/types/DiscrepancyRecord.js.map +1 -0
- package/dist/src/types/Form.d.ts +132 -1
- package/dist/src/types/Form.d.ts.map +1 -1
- package/dist/src/types/FormulasUsed.d.ts +95 -0
- package/dist/src/types/FormulasUsed.d.ts.map +1 -0
- package/dist/src/types/FormulasUsed.js +64 -0
- package/dist/src/types/FormulasUsed.js.map +1 -0
- package/dist/src/types/Instance.d.ts +105 -0
- package/dist/src/types/Instance.d.ts.map +1 -0
- package/dist/src/types/Instance.js +40 -0
- package/dist/src/types/Instance.js.map +1 -0
- package/dist/src/types/Invariant.d.ts +82 -0
- package/dist/src/types/Invariant.d.ts.map +1 -0
- package/dist/src/types/Invariant.js +50 -0
- package/dist/src/types/Invariant.js.map +1 -0
- package/dist/src/types/MapProfile.d.ts +36 -1
- package/dist/src/types/MapProfile.d.ts.map +1 -1
- package/dist/src/types/Monitor.d.ts +144 -0
- package/dist/src/types/Monitor.d.ts.map +1 -0
- package/dist/src/types/Monitor.js +74 -0
- package/dist/src/types/Monitor.js.map +1 -0
- package/dist/src/types/Note.d.ts +4 -1
- package/dist/src/types/Note.d.ts.map +1 -1
- package/dist/src/types/Package.d.ts +161 -0
- package/dist/src/types/Package.d.ts.map +1 -0
- package/dist/src/types/Package.js +3 -0
- package/dist/src/types/Package.js.map +1 -0
- package/dist/src/types/Passport.d.ts +125 -0
- package/dist/src/types/Passport.d.ts.map +1 -0
- package/dist/src/types/Passport.js +84 -0
- package/dist/src/types/Passport.js.map +1 -0
- package/dist/src/types/Quantity.d.ts +99 -0
- package/dist/src/types/Quantity.d.ts.map +1 -0
- package/dist/src/types/Quantity.js +24 -0
- package/dist/src/types/Quantity.js.map +1 -0
- package/dist/src/types/Reference.d.ts +2 -0
- package/dist/src/types/Reference.d.ts.map +1 -1
- package/dist/src/types/ReferenceMaterial.d.ts +53 -0
- package/dist/src/types/ReferenceMaterial.d.ts.map +1 -0
- package/dist/src/types/ReferenceMaterial.js +14 -0
- package/dist/src/types/ReferenceMaterial.js.map +1 -0
- package/dist/src/types/Requirement.d.ts +111 -0
- package/dist/src/types/Requirement.d.ts.map +1 -0
- package/dist/src/types/Requirement.js +10 -0
- package/dist/src/types/Requirement.js.map +1 -0
- package/dist/src/types/Role.d.ts +4 -0
- package/dist/src/types/Role.d.ts.map +1 -1
- package/dist/src/types/Series.d.ts +31 -0
- package/dist/src/types/Series.d.ts.map +1 -0
- package/dist/src/types/Series.js +14 -0
- package/dist/src/types/Series.js.map +1 -0
- package/dist/src/types/SourceDiscrepancy.d.ts +21 -0
- package/dist/src/types/SourceDiscrepancy.d.ts.map +1 -0
- package/dist/src/types/SourceDiscrepancy.js +13 -0
- package/dist/src/types/SourceDiscrepancy.js.map +1 -0
- package/dist/src/types/Standard.d.ts +68 -0
- package/dist/src/types/Standard.d.ts.map +1 -1
- package/dist/src/types/StateMachine.d.ts +43 -0
- package/dist/src/types/StateMachine.d.ts.map +1 -1
- package/dist/src/types/StateMachine.js +7 -0
- package/dist/src/types/StateMachine.js.map +1 -1
- package/dist/src/types/Subject.d.ts +432 -0
- package/dist/src/types/Subject.d.ts.map +1 -0
- package/dist/src/types/Subject.js +13 -0
- package/dist/src/types/Subject.js.map +1 -0
- package/dist/src/types/Symbol.d.ts +31 -1
- package/dist/src/types/Symbol.d.ts.map +1 -1
- package/dist/src/types/Table.d.ts +43 -0
- package/dist/src/types/Table.d.ts.map +1 -1
- package/dist/src/types/Term.d.ts +29 -0
- package/dist/src/types/Term.d.ts.map +1 -1
- package/dist/src/types/TestPointSet.d.ts +33 -0
- package/dist/src/types/TestPointSet.d.ts.map +1 -0
- package/dist/src/types/TestPointSet.js +11 -0
- package/dist/src/types/TestPointSet.js.map +1 -0
- package/dist/src/types/TestSequence.d.ts +105 -0
- package/dist/src/types/TestSequence.d.ts.map +1 -0
- package/dist/src/types/TestSequence.js +65 -0
- package/dist/src/types/TestSequence.js.map +1 -0
- package/dist/src/types/Text.d.ts +21 -0
- package/dist/src/types/Text.d.ts.map +1 -0
- package/dist/src/types/Text.js +38 -0
- package/dist/src/types/Text.js.map +1 -0
- package/dist/src/types/Time.d.ts +43 -0
- package/dist/src/types/Time.d.ts.map +1 -0
- package/dist/src/types/Time.js +14 -0
- package/dist/src/types/Time.js.map +1 -0
- package/dist/src/types/Twin.d.ts +155 -0
- package/dist/src/types/Twin.d.ts.map +1 -0
- package/dist/src/types/Twin.js +102 -0
- package/dist/src/types/Twin.js.map +1 -0
- package/dist/src/types/Verdict.d.ts +40 -0
- package/dist/src/types/Verdict.d.ts.map +1 -0
- package/dist/src/types/Verdict.js +14 -0
- package/dist/src/types/Verdict.js.map +1 -0
- package/dist/src/types/ViewProfile.d.ts +6 -0
- package/dist/src/types/ViewProfile.d.ts.map +1 -1
- package/dist/src/types/data.d.ts +27 -0
- package/dist/src/types/data.d.ts.map +1 -1
- package/dist/src/types/process.d.ts +231 -0
- package/dist/src/types/process.d.ts.map +1 -1
- package/dist-browser/index.mjs +6699 -661
- package/dist-cli/primmel.mjs +21462 -0
- package/package.json +61 -5
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
3
|
+
// The coverage calculus engine (TODO.roadmap/04; concept doc §5.3, §5.6;
|
|
4
|
+
// Mapping Guide slides 5–19, 46).
|
|
5
|
+
//
|
|
6
|
+
// Coverage answers, per reference-model component: how much of it is
|
|
7
|
+
// fulfilled by mapped implementations? Four levels — full / minimal /
|
|
8
|
+
// partial / no cover — computed by three propagation rules:
|
|
9
|
+
//
|
|
10
|
+
// 1. INHERITANCE (downward): a directly-mapped component is fully
|
|
11
|
+
// covered, and the mapping covers its whole subprocess tree
|
|
12
|
+
// recursively (slide 12).
|
|
13
|
+
// 2. AGGREGATION (upward): all children full ⇒ parent full; gateway
|
|
14
|
+
// children with the minimum met (at least one branch full/minimal)
|
|
15
|
+
// ⇒ parent minimal; something covered but not the minimum ⇒
|
|
16
|
+
// partial; nothing ⇒ none (slides 7–9).
|
|
17
|
+
// 3. TRANSITIVITY (process level): A ⇒ B and B ⇒ C ⊢ A ⇒ C — computed
|
|
18
|
+
// as DISCOVERY proposals (flagged, never asserted; slides 16–18).
|
|
19
|
+
// At MODEL level transitivity does NOT hold: two mappings chain
|
|
20
|
+
// only through a shared component (slide 15) — discoverTransitive
|
|
21
|
+
// therefore requires the exact same Namespace#ElementID on both
|
|
22
|
+
// hops, and repoMap reports declared links only, no closure.
|
|
23
|
+
//
|
|
24
|
+
// A fourth rule, CLOSURE — all children covered ⇒ parent covered without
|
|
25
|
+
// a direct mapping — is the standard discovery heuristic: the parent's
|
|
26
|
+
// coverage LEVEL is aggregated (asserted), but a direct mapping pair to
|
|
27
|
+
// the parent is only ever PROPOSED, flagged for confirmation (slide 46).
|
|
28
|
+
//
|
|
29
|
+
// TREE SOURCE: the process tree is built from the declared parent /
|
|
30
|
+
// children links of processes (nested `process` declarations — the v3
|
|
31
|
+
// nesting, also legal in v2), NOT from canvas layout: the canvas is a
|
|
32
|
+
// visual projection, while the children links are the requirement
|
|
33
|
+
// decomposition the calculus aggregates over. A parent whose children
|
|
34
|
+
// are exclusive branches declares `child_composition gateway` (default
|
|
35
|
+
// `all`) — the gateway semantics of rule 2.
|
|
36
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.parseTargetRef = parseTargetRef;
|
|
39
|
+
exports.mappingsFromProfile = mappingsFromProfile;
|
|
40
|
+
exports.collectMappings = collectMappings;
|
|
41
|
+
exports.buildProcessTree = buildProcessTree;
|
|
42
|
+
exports.computeCoverage = computeCoverage;
|
|
43
|
+
exports.discoverTransitive = discoverTransitive;
|
|
44
|
+
exports.repoMap = repoMap;
|
|
45
|
+
exports.applyView = applyView;
|
|
46
|
+
exports.componentIds = componentIds;
|
|
47
|
+
const prm_1 = require("./ser-des/prm");
|
|
48
|
+
/**
|
|
49
|
+
* Split a mapping target into namespace + element id. A bare id is
|
|
50
|
+
* scoped by the profile/mapSet namespace it was authored under (the v2
|
|
51
|
+
* spelling); a `Namespace#ElementID` carries its namespace explicitly.
|
|
52
|
+
*/
|
|
53
|
+
function parseTargetRef(raw, defaultNs) {
|
|
54
|
+
const hash = raw.indexOf('#');
|
|
55
|
+
if (hash >= 0) {
|
|
56
|
+
const namespace = raw.slice(0, hash);
|
|
57
|
+
const id = raw.slice(hash + 1);
|
|
58
|
+
return { namespace, id, qualified: namespace + '#' + id };
|
|
59
|
+
}
|
|
60
|
+
return { namespace: defaultNs, id: raw, qualified: defaultNs + '#' + raw };
|
|
61
|
+
}
|
|
62
|
+
/** Lift one map profile's pairs into normalized mapping records. */
|
|
63
|
+
function mappingsFromProfile(profile, sourceModel) {
|
|
64
|
+
const out = [];
|
|
65
|
+
for (const [source, pairs] of Object.entries(profile.mappings)) {
|
|
66
|
+
for (const pair of pairs) {
|
|
67
|
+
out.push({
|
|
68
|
+
source,
|
|
69
|
+
sourceModel,
|
|
70
|
+
target: parseTargetRef(pair.target, profile.namespace).qualified,
|
|
71
|
+
targetModel: profile.namespace,
|
|
72
|
+
description: pair.description,
|
|
73
|
+
justification: pair.justification,
|
|
74
|
+
assertedCoverage: pair.coverage,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Collect every mapping record a model declares — its in-model map
|
|
82
|
+
* profiles plus any standalone .prm files passed alongside.
|
|
83
|
+
*/
|
|
84
|
+
function collectMappings(standard, options = {}) {
|
|
85
|
+
const modelId = options.modelId ??
|
|
86
|
+
standard.packageManifest?.id ??
|
|
87
|
+
standard.meta?.namespace ??
|
|
88
|
+
'';
|
|
89
|
+
const profiles = [...(standard.mapProfiles ?? [])];
|
|
90
|
+
const prms = options.prm
|
|
91
|
+
? Array.isArray(options.prm)
|
|
92
|
+
? options.prm
|
|
93
|
+
: [options.prm]
|
|
94
|
+
: [];
|
|
95
|
+
for (const prm of prms) {
|
|
96
|
+
profiles.push(...(0, prm_1.prmToMapProfiles)(prm));
|
|
97
|
+
}
|
|
98
|
+
return profiles.flatMap(p => mappingsFromProfile(p, modelId));
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Build the process forest of a model from the declared parent/children
|
|
102
|
+
* links (nested process declarations). Roots are processes with no
|
|
103
|
+
* parent inside the (possibly prefix-filtered) set; dangling child links
|
|
104
|
+
* are skipped. `idPrefix` selects an alias forest — e.g. the local
|
|
105
|
+
* `StdS#…` copies an implementation model declares for its mapping
|
|
106
|
+
* targets (the Namespace#ElementID aliasing pattern); the prefix is
|
|
107
|
+
* STRIPPED from the node ids so an alias `StdS#Process5` stands in for
|
|
108
|
+
* the reference element `Process5`.
|
|
109
|
+
*/
|
|
110
|
+
function buildProcessTree(standard, options = {}) {
|
|
111
|
+
const prefix = options.idPrefix ?? '';
|
|
112
|
+
const processes = (standard.processes ?? []).filter(p => !prefix || p.id.startsWith(prefix));
|
|
113
|
+
const ids = new Set(processes.map(p => p.id));
|
|
114
|
+
const nodes = new Map();
|
|
115
|
+
for (const p of processes) {
|
|
116
|
+
nodes.set(p.id, {
|
|
117
|
+
id: p.id.slice(prefix.length),
|
|
118
|
+
composition: p.childComposition === 'gateway' ? 'gateway' : 'all',
|
|
119
|
+
children: [],
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
const roots = [];
|
|
123
|
+
for (const p of processes) {
|
|
124
|
+
const node = nodes.get(p.id);
|
|
125
|
+
if (p.parent && ids.has(p.parent)) {
|
|
126
|
+
nodes.get(p.parent).children.push(node);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
roots.push(node);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return roots;
|
|
133
|
+
}
|
|
134
|
+
function aggregateUp(composition, childLevels) {
|
|
135
|
+
if (childLevels.length === 0) {
|
|
136
|
+
return 'none';
|
|
137
|
+
}
|
|
138
|
+
if (childLevels.every(l => l === 'full')) {
|
|
139
|
+
return 'full';
|
|
140
|
+
}
|
|
141
|
+
if (composition === 'gateway') {
|
|
142
|
+
// The gateway minimum: at least one branch fulfilled — a branch
|
|
143
|
+
// counts when its own minimum is met (full or minimal cover).
|
|
144
|
+
if (childLevels.some(l => l === 'full' || l === 'minimal')) {
|
|
145
|
+
return 'minimal';
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (childLevels.some(l => l !== 'none')) {
|
|
149
|
+
return 'partial';
|
|
150
|
+
}
|
|
151
|
+
return 'none';
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Compute the coverage of one reference model by one implementation
|
|
155
|
+
* model for ONE target namespace (multi-target mappings are computed
|
|
156
|
+
* per target — mapSet namespaces stay independent, concept doc §5.6 c).
|
|
157
|
+
*
|
|
158
|
+
* `reference` is either the loaded reference Standard or a prebuilt
|
|
159
|
+
* process forest (buildProcessTree — e.g. an alias forest lifted out of
|
|
160
|
+
* the implementation model for the linter's C23).
|
|
161
|
+
*/
|
|
162
|
+
function computeCoverage(implementation, reference, mappings, targetNamespace, options = {}) {
|
|
163
|
+
const forest = Array.isArray(reference)
|
|
164
|
+
? reference
|
|
165
|
+
: buildProcessTree(reference);
|
|
166
|
+
const relevant = mappings.filter(m => m.targetModel === targetNamespace);
|
|
167
|
+
// Directly-mapped reference components → their implementation sources.
|
|
168
|
+
const direct = new Map();
|
|
169
|
+
for (const m of relevant) {
|
|
170
|
+
const id = parseTargetRef(m.target, targetNamespace).id;
|
|
171
|
+
(direct.get(id) ?? direct.set(id, []).get(id)).push(m.source);
|
|
172
|
+
}
|
|
173
|
+
const levels = new Map();
|
|
174
|
+
const inheritedFrom = new Map();
|
|
175
|
+
// Inheritance down + aggregation up in one post-order walk: a node
|
|
176
|
+
// under a mapped ancestor is full (the mapping covers the subtree);
|
|
177
|
+
// otherwise a leaf is none and a parent aggregates its children.
|
|
178
|
+
const walk = (node, mappedAncestor) => {
|
|
179
|
+
const selfMapped = direct.has(node.id);
|
|
180
|
+
const nearest = selfMapped ? node.id : mappedAncestor;
|
|
181
|
+
const childLevels = node.children.map(c => walk(c, nearest));
|
|
182
|
+
let level;
|
|
183
|
+
if (nearest !== null) {
|
|
184
|
+
level = 'full';
|
|
185
|
+
if (!selfMapped && mappedAncestor !== null) {
|
|
186
|
+
inheritedFrom.set(node.id, mappedAncestor);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else if (node.children.length === 0) {
|
|
190
|
+
level = 'none';
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
level = aggregateUp(node.composition, childLevels);
|
|
194
|
+
}
|
|
195
|
+
levels.set(node.id, level);
|
|
196
|
+
return level;
|
|
197
|
+
};
|
|
198
|
+
for (const root of forest) {
|
|
199
|
+
walk(root, null);
|
|
200
|
+
}
|
|
201
|
+
// Components in tree order (DFS pre-order).
|
|
202
|
+
const components = [];
|
|
203
|
+
const nodeIndex = new Map();
|
|
204
|
+
const visit = (node) => {
|
|
205
|
+
nodeIndex.set(node.id, node);
|
|
206
|
+
components.push({
|
|
207
|
+
id: node.id,
|
|
208
|
+
coverage: levels.get(node.id) ?? 'none',
|
|
209
|
+
directlyMapped: direct.has(node.id),
|
|
210
|
+
mappedBy: direct.get(node.id) ?? [],
|
|
211
|
+
inheritedFrom: inheritedFrom.get(node.id) ?? null,
|
|
212
|
+
});
|
|
213
|
+
node.children.forEach(visit);
|
|
214
|
+
};
|
|
215
|
+
forest.forEach(visit);
|
|
216
|
+
const summary = {
|
|
217
|
+
full: 0,
|
|
218
|
+
minimal: 0,
|
|
219
|
+
partial: 0,
|
|
220
|
+
none: 0,
|
|
221
|
+
};
|
|
222
|
+
for (const c of components) {
|
|
223
|
+
summary[c.coverage]++;
|
|
224
|
+
}
|
|
225
|
+
// Mappings whose target id is absent from the reference tree are
|
|
226
|
+
// UNRESOLVED: they surface explicitly (never silently dropped) and do
|
|
227
|
+
// not count their source as mapped — a source whose mappings into this
|
|
228
|
+
// target ALL dangle is unmapped for this report.
|
|
229
|
+
const unresolvedMappings = [];
|
|
230
|
+
const resolvedSources = new Set();
|
|
231
|
+
for (const m of relevant) {
|
|
232
|
+
const id = parseTargetRef(m.target, targetNamespace).id;
|
|
233
|
+
if (nodeIndex.has(id)) {
|
|
234
|
+
resolvedSources.add(m.source);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
unresolvedMappings.push({ source: m.source, target: m.target });
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// Implementation processes with no resolving mapping into this target.
|
|
241
|
+
// The C21 alias rows (`<ns>#…` local copies — never mapping sources)
|
|
242
|
+
// always list here; `unmappedAliases: 'exclude'` drops them (the
|
|
243
|
+
// opt-in — the default keeps the honest full picture, TODO.v2/13
|
|
244
|
+
// item 6).
|
|
245
|
+
const unmappedImplementation = (implementation.processes ?? [])
|
|
246
|
+
.map(p => p.id)
|
|
247
|
+
.filter(id => !resolvedSources.has(id))
|
|
248
|
+
.filter(id => options.unmappedAliases !== 'exclude' || !id.includes('#'));
|
|
249
|
+
// ── discovery (flagged, never asserted) ──
|
|
250
|
+
const proposals = [];
|
|
251
|
+
const proposed = new Set();
|
|
252
|
+
const propose = (p) => {
|
|
253
|
+
const key = `${p.kind}|${p.sourceModel}|${p.source}|${p.target}`;
|
|
254
|
+
if (!proposed.has(key)) {
|
|
255
|
+
proposed.add(key);
|
|
256
|
+
proposals.push(p);
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
// Inherited: A ⇒ B and C is a subprocess of B ⊢ propose A ⇒ C
|
|
260
|
+
// (slide 18) — making the inherited cover explicit is a human call.
|
|
261
|
+
for (const m of relevant) {
|
|
262
|
+
const targetId = parseTargetRef(m.target, targetNamespace).id;
|
|
263
|
+
const node = nodeIndex.get(targetId);
|
|
264
|
+
if (!node) {
|
|
265
|
+
continue;
|
|
266
|
+
}
|
|
267
|
+
const descendants = (n, acc) => {
|
|
268
|
+
for (const c of n.children) {
|
|
269
|
+
acc.push(c);
|
|
270
|
+
descendants(c, acc);
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
const desc = [];
|
|
274
|
+
descendants(node, desc);
|
|
275
|
+
for (const d of desc) {
|
|
276
|
+
if ((direct.get(d.id) ?? []).includes(m.source)) {
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
propose({
|
|
280
|
+
kind: 'inherited',
|
|
281
|
+
sourceModel: m.sourceModel,
|
|
282
|
+
source: m.source,
|
|
283
|
+
targetModel: targetNamespace,
|
|
284
|
+
target: `${targetNamespace}#${d.id}`,
|
|
285
|
+
via: [m.target],
|
|
286
|
+
rationale: `${m.source} ⇒ ${m.target} covers ${targetNamespace}#${d.id} ` +
|
|
287
|
+
'by inheritance — propose the pair explicitly for confirmation',
|
|
288
|
+
asserted: false,
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
// Closure: all children covered ⇒ the parent is covered by aggregation
|
|
293
|
+
// (asserted as a LEVEL) — but a direct pair to the parent is only
|
|
294
|
+
// proposed, flagged for confirmation (slide 46), never asserted.
|
|
295
|
+
for (const c of components) {
|
|
296
|
+
const node = nodeIndex.get(c.id);
|
|
297
|
+
if (c.directlyMapped ||
|
|
298
|
+
c.coverage !== 'full' ||
|
|
299
|
+
node.children.length === 0) {
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
const subtreeSources = new Set();
|
|
303
|
+
const collectSources = (n) => {
|
|
304
|
+
for (const s of direct.get(n.id) ?? []) {
|
|
305
|
+
subtreeSources.add(s);
|
|
306
|
+
}
|
|
307
|
+
n.children.forEach(collectSources);
|
|
308
|
+
};
|
|
309
|
+
node.children.forEach(collectSources);
|
|
310
|
+
for (const s of subtreeSources) {
|
|
311
|
+
propose({
|
|
312
|
+
kind: 'closure',
|
|
313
|
+
sourceModel: relevant.find(m => m.source === s)?.sourceModel ??
|
|
314
|
+
options.implementationId ??
|
|
315
|
+
'',
|
|
316
|
+
source: s,
|
|
317
|
+
targetModel: targetNamespace,
|
|
318
|
+
target: `${targetNamespace}#${c.id}`,
|
|
319
|
+
via: node.children.map(ch => `${targetNamespace}#${ch.id}`),
|
|
320
|
+
rationale: `all children of ${targetNamespace}#${c.id} are covered — ` +
|
|
321
|
+
'closure candidate: confirm and assert a direct mapping',
|
|
322
|
+
asserted: false,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
return {
|
|
327
|
+
implementation: options.implementationId ??
|
|
328
|
+
implementation.packageManifest?.id ??
|
|
329
|
+
implementation.meta?.namespace ??
|
|
330
|
+
'',
|
|
331
|
+
reference: options.referenceId ??
|
|
332
|
+
(Array.isArray(reference)
|
|
333
|
+
? targetNamespace
|
|
334
|
+
: (reference.packageManifest?.id ?? reference.meta?.namespace ?? '')),
|
|
335
|
+
targetNamespace,
|
|
336
|
+
components,
|
|
337
|
+
unmappedImplementation,
|
|
338
|
+
unresolvedMappings,
|
|
339
|
+
proposals,
|
|
340
|
+
summary,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Process-level transitivity across a chain of models: A ⇒ B (in
|
|
345
|
+
* model M→R1) and B ⇒ C (in model R1→R2) ⊢ propose A ⇒ C (slide 16).
|
|
346
|
+
*
|
|
347
|
+
* MODEL-LEVEL NON-TRANSITIVITY is enforced structurally (slide 15): two
|
|
348
|
+
* mappings chain ONLY when they share the exact same component — the
|
|
349
|
+
* first hop's target must equal the second hop's source in the middle
|
|
350
|
+
* model's namespace. Two mappings with no common component carry no
|
|
351
|
+
* logical information and yield NO proposal.
|
|
352
|
+
*/
|
|
353
|
+
function discoverTransitive(models) {
|
|
354
|
+
const proposals = [];
|
|
355
|
+
const proposed = new Set();
|
|
356
|
+
for (const from of models) {
|
|
357
|
+
for (const m1 of from.mappings) {
|
|
358
|
+
for (const mid of models) {
|
|
359
|
+
if (mid.modelId !== m1.targetModel) {
|
|
360
|
+
continue;
|
|
361
|
+
}
|
|
362
|
+
for (const m2 of mid.mappings) {
|
|
363
|
+
// The shared component: m1 targets exactly m2's source.
|
|
364
|
+
if (m1.target !== `${mid.modelId}#${m2.source}`) {
|
|
365
|
+
continue;
|
|
366
|
+
}
|
|
367
|
+
const key = `${m1.sourceModel}|${m1.source}|${m2.target}`;
|
|
368
|
+
if (proposed.has(key)) {
|
|
369
|
+
continue;
|
|
370
|
+
}
|
|
371
|
+
proposed.add(key);
|
|
372
|
+
proposals.push({
|
|
373
|
+
kind: 'transitive',
|
|
374
|
+
sourceModel: m1.sourceModel,
|
|
375
|
+
source: m1.source,
|
|
376
|
+
targetModel: m2.targetModel,
|
|
377
|
+
target: m2.target,
|
|
378
|
+
via: [m1.target],
|
|
379
|
+
rationale: `${m1.sourceModel}#${m1.source} ⇒ ${m1.target} and ` +
|
|
380
|
+
`${mid.modelId}#${m2.source} ⇒ ${m2.target} — transitive ` +
|
|
381
|
+
'candidate through the shared component; confirm to assert',
|
|
382
|
+
asserted: false,
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
return proposals;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* The model-level repo map: which models map to which. DECLARED links
|
|
392
|
+
* only — no transitive closure is computed at model level, because
|
|
393
|
+
* model-level transitivity does not hold in general (slide 14/15): a
|
|
394
|
+
* link aaa ⇒ bbb and a link bbb ⇒ ccc say nothing about aaa ⇒ ccc.
|
|
395
|
+
*/
|
|
396
|
+
function repoMap(models) {
|
|
397
|
+
const edges = new Map();
|
|
398
|
+
for (const model of models) {
|
|
399
|
+
for (const m of model.mappings) {
|
|
400
|
+
const key = `${model.modelId}→${m.targetModel}`;
|
|
401
|
+
const edge = edges.get(key) ?? {
|
|
402
|
+
from: model.modelId,
|
|
403
|
+
to: m.targetModel,
|
|
404
|
+
pairs: 0,
|
|
405
|
+
};
|
|
406
|
+
edge.pairs++;
|
|
407
|
+
edges.set(key, edge);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
return [...edges.values()];
|
|
411
|
+
}
|
|
412
|
+
function deepFreeze(obj) {
|
|
413
|
+
if (obj && typeof obj === 'object') {
|
|
414
|
+
for (const v of Object.values(obj)) {
|
|
415
|
+
deepFreeze(v);
|
|
416
|
+
}
|
|
417
|
+
Object.freeze(obj);
|
|
418
|
+
}
|
|
419
|
+
return obj;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Apply a view profile to a model (+ optionally its coverage report
|
|
423
|
+
* against the view's reference). Returns a FROZEN projection; the inputs
|
|
424
|
+
* are never mutated.
|
|
425
|
+
*/
|
|
426
|
+
function applyView(standard, view, coverage = null) {
|
|
427
|
+
const whitelist = new Set(view.visibleElements ?? []);
|
|
428
|
+
const filtered = whitelist.size > 0;
|
|
429
|
+
const elements = filtered
|
|
430
|
+
? [...whitelist]
|
|
431
|
+
: (standard.processes ?? []).map(p => p.id);
|
|
432
|
+
let projected = null;
|
|
433
|
+
if (coverage) {
|
|
434
|
+
// The lens selects IMPLEMENTATION elements; the coverage it shows is
|
|
435
|
+
// the coverage attributable to the visible sources (a component
|
|
436
|
+
// stays visible when a visible source maps to it — or when the view
|
|
437
|
+
// whitelists the component id itself, e.g. a reference-side alias).
|
|
438
|
+
const show = (c) => !filtered ||
|
|
439
|
+
whitelist.has(c.id) ||
|
|
440
|
+
c.mappedBy.some(s => whitelist.has(s));
|
|
441
|
+
const components = coverage.components.filter(show);
|
|
442
|
+
const summary = {
|
|
443
|
+
full: 0,
|
|
444
|
+
minimal: 0,
|
|
445
|
+
partial: 0,
|
|
446
|
+
none: 0,
|
|
447
|
+
};
|
|
448
|
+
for (const c of components) {
|
|
449
|
+
summary[c.coverage]++;
|
|
450
|
+
}
|
|
451
|
+
projected = {
|
|
452
|
+
...coverage,
|
|
453
|
+
components,
|
|
454
|
+
unmappedImplementation: coverage.unmappedImplementation.filter(id => !filtered || whitelist.has(id)),
|
|
455
|
+
proposals: coverage.proposals.filter(p => !filtered || whitelist.has(p.source)),
|
|
456
|
+
summary,
|
|
457
|
+
};
|
|
458
|
+
}
|
|
459
|
+
return deepFreeze({
|
|
460
|
+
id: view.id,
|
|
461
|
+
against: view.against ?? '',
|
|
462
|
+
elements,
|
|
463
|
+
coverage: projected,
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
// ── shared component index (linter + reports) ────────────────────────
|
|
467
|
+
/**
|
|
468
|
+
* The ids a mapping (or view) may legally name: every typed component of
|
|
469
|
+
* the model. Mappings attach at process granularity by default, but any
|
|
470
|
+
* typed component can be mapped — a registry, an approval, a provision,
|
|
471
|
+
* a conformance test (concept doc §5.2).
|
|
472
|
+
*
|
|
473
|
+
* TODO.roadmap/36 (doctrine ch. 15): a product reference model maps its
|
|
474
|
+
* conformance-relevant ASPECTS — "our E_max is your E_max; our creep
|
|
475
|
+
* characteristic answers your creep requirement" — so the subject
|
|
476
|
+
* anatomy members are mapping endpoints too: design parameters,
|
|
477
|
+
* exhibited attributes, characteristics, referenced behaviors, endpoint
|
|
478
|
+
* ids, and the block-form promise ids (an unmapped promise is a
|
|
479
|
+
* brochure claim — C82 product-unmapped-promises).
|
|
480
|
+
*/
|
|
481
|
+
function componentIds(standard) {
|
|
482
|
+
const ids = new Set();
|
|
483
|
+
const add = (items) => {
|
|
484
|
+
for (const i of items ?? []) {
|
|
485
|
+
ids.add(i.id);
|
|
486
|
+
}
|
|
487
|
+
};
|
|
488
|
+
add(standard.processes);
|
|
489
|
+
add(standard.provisions);
|
|
490
|
+
add(standard.regs);
|
|
491
|
+
add(standard.approvals);
|
|
492
|
+
add(standard.requirements);
|
|
493
|
+
add(standard.conformanceTests);
|
|
494
|
+
add(standard.forms);
|
|
495
|
+
add(standard.symbols);
|
|
496
|
+
add(standard.tables);
|
|
497
|
+
add(standard.dataclasses);
|
|
498
|
+
add(standard.terms);
|
|
499
|
+
add(standard.notes);
|
|
500
|
+
add(standard.roles);
|
|
501
|
+
add(standard.subjects);
|
|
502
|
+
add(standard.instruments);
|
|
503
|
+
add(standard.behaviors);
|
|
504
|
+
for (const s of standard.subjects ?? []) {
|
|
505
|
+
for (const k of Object.keys(s.is?.designParameters ?? {})) {
|
|
506
|
+
ids.add(k);
|
|
507
|
+
}
|
|
508
|
+
for (const k of Object.keys(s.has?.attributes ?? {})) {
|
|
509
|
+
ids.add(k);
|
|
510
|
+
}
|
|
511
|
+
for (const k of Object.keys(s.has?.characteristics ?? {})) {
|
|
512
|
+
ids.add(k);
|
|
513
|
+
}
|
|
514
|
+
for (const b of s.does?.behaviors ?? []) {
|
|
515
|
+
ids.add(b);
|
|
516
|
+
}
|
|
517
|
+
for (const e of s.is?.endpoints ?? []) {
|
|
518
|
+
ids.add(e.id);
|
|
519
|
+
}
|
|
520
|
+
for (const p of s.is?.promises ?? []) {
|
|
521
|
+
if (p.id) {
|
|
522
|
+
ids.add(p.id);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
return ids;
|
|
527
|
+
}
|
|
528
|
+
//# sourceMappingURL=mapping-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapping-coverage.js","sourceRoot":"","sources":["../../src/mapping-coverage.ts"],"names":[],"mappings":"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"}
|