@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
package/dist/src/types/Form.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import Resolvable from './Resolvable';
|
|
2
2
|
import Reference from './Reference';
|
|
3
|
+
import type { SeriesDecl } from './Series';
|
|
4
|
+
import type SourceDiscrepancy from './SourceDiscrepancy';
|
|
5
|
+
import type { SourceRef } from './Subject';
|
|
3
6
|
export interface ApplicabilityEntry {
|
|
4
7
|
dimension: string;
|
|
5
8
|
values: string[];
|
|
6
9
|
mapping: Record<string, string | number> | null;
|
|
10
|
+
/**
|
|
11
|
+
* Declared-condition match mode for set-cardinality dimensions
|
|
12
|
+
* (rc.yaml $defs/applicability): 'any' (default — existential),
|
|
13
|
+
* 'all' (universal — every selected value must be listed), or
|
|
14
|
+
* 'exact' (mutual coverage — the selection covers the listed values
|
|
15
|
+
* and nothing else; set equality without implies).
|
|
16
|
+
*/
|
|
17
|
+
match: 'any' | 'all' | 'exact' | null;
|
|
7
18
|
}
|
|
8
19
|
export interface CalculationBinding {
|
|
9
20
|
inputName: string;
|
|
@@ -13,25 +24,94 @@ export interface EvaluationRule {
|
|
|
13
24
|
rule: string;
|
|
14
25
|
condition: string;
|
|
15
26
|
referenceId: string | null;
|
|
27
|
+
/** Canonical verdict reference (verdict registry id). */
|
|
28
|
+
verdict?: string;
|
|
29
|
+
/** Comparison applied between the derived value and the limit. */
|
|
30
|
+
op?: string;
|
|
31
|
+
/** Limit predicate, ocl{...}. */
|
|
32
|
+
limit?: string;
|
|
33
|
+
/** Free-text source clause citation (e.g. "R 60-1, 5.7.2.6"). */
|
|
34
|
+
specificationReference?: string;
|
|
35
|
+
sourceDiscrepancy?: SourceDiscrepancy | null;
|
|
36
|
+
}
|
|
37
|
+
/** Role-grouped source reference (e.g. role requirement → clause URNs). */
|
|
38
|
+
export interface RoleReference {
|
|
39
|
+
urn: string;
|
|
40
|
+
role: string;
|
|
16
41
|
}
|
|
17
42
|
export interface FormField {
|
|
18
43
|
name: string;
|
|
19
44
|
type: string;
|
|
45
|
+
/** True when the field head explicitly declared its type (`: string` included). */
|
|
46
|
+
typeDeclared?: boolean;
|
|
20
47
|
label: string;
|
|
21
48
|
definition: string;
|
|
49
|
+
/** Free-text description (distinct from the formal definition). */
|
|
50
|
+
description?: string;
|
|
22
51
|
unit: string;
|
|
52
|
+
/** Binding path into the subject chain (v2 G5), e.g. model.parameters.e_max */
|
|
53
|
+
bind?: string;
|
|
54
|
+
/** Symbol id this field captures. */
|
|
55
|
+
symbol: string;
|
|
56
|
+
/** Canonical verdict id this field is judged by. */
|
|
57
|
+
verdict: string;
|
|
58
|
+
/** Requirement ids this field provides evidence for. */
|
|
59
|
+
targets: string[];
|
|
60
|
+
/** Classification dimension this field captures a value of. */
|
|
61
|
+
dimension: string;
|
|
62
|
+
/** Enum id when the field's values come from a declared enum. */
|
|
63
|
+
enumRef: string;
|
|
64
|
+
/** Regex validation pattern. */
|
|
65
|
+
pattern: string;
|
|
66
|
+
/** Field scope (e.g. administrative). */
|
|
67
|
+
scope?: string;
|
|
68
|
+
/** Example values shown as entry guidance. */
|
|
69
|
+
examples?: string;
|
|
23
70
|
required: boolean;
|
|
71
|
+
/** Conditional requiredness (v3): an OCL boolean over the binding
|
|
72
|
+
* context — the field is required exactly when the expression holds
|
|
73
|
+
* (R 60-3, 4.9.1's "cable length — mandatory for strain gauge load
|
|
74
|
+
* cells with 4-wire connection" is the type case). Empty when absent. */
|
|
75
|
+
requiredWhen: string;
|
|
24
76
|
measurementMethod: string;
|
|
25
77
|
calculationId: string | null;
|
|
26
78
|
calculationBindings: CalculationBinding[];
|
|
27
79
|
derivation: string;
|
|
28
80
|
evaluation: EvaluationRule | null;
|
|
29
|
-
values
|
|
81
|
+
/** Allowed values; entries may carry a display label ({ value, label }). */
|
|
82
|
+
values: Array<string | {
|
|
83
|
+
value: string;
|
|
84
|
+
label: string;
|
|
85
|
+
}>;
|
|
86
|
+
/** Labels for boolean fields. */
|
|
87
|
+
trueLabel: string;
|
|
88
|
+
falseLabel: string;
|
|
89
|
+
/** Inline enum values (when the field defines its own axis).
|
|
90
|
+
* Entries may carry a display label ({ value, label }). */
|
|
91
|
+
enumValues: Array<string | {
|
|
92
|
+
value: string;
|
|
93
|
+
label: string;
|
|
94
|
+
}>;
|
|
30
95
|
defaultValue: string;
|
|
31
96
|
hasDefault: boolean;
|
|
32
97
|
referenceIds: string[];
|
|
98
|
+
/** Role-grouped source reference URNs. */
|
|
99
|
+
fieldReferences: RoleReference[];
|
|
100
|
+
/** Free-text source clause citation (e.g. "R 144-1, 4.5.2"). */
|
|
101
|
+
specificationReference: string;
|
|
102
|
+
/** Classification applicability filter (dimension → allowed values). */
|
|
103
|
+
applicability: ApplicabilityEntry[];
|
|
104
|
+
sourceDiscrepancy: SourceDiscrepancy | null;
|
|
33
105
|
fields: FormField[];
|
|
34
106
|
itemsType: string;
|
|
107
|
+
/** Unit of the array element type (items { <type> unit "…" }). */
|
|
108
|
+
itemsUnit?: string;
|
|
109
|
+
/** Series shape (axes + cell) when this datalist field holds a series. */
|
|
110
|
+
series?: SeriesDecl | null;
|
|
111
|
+
/** Array cardinality bounds (optional; parsed from min_items/max_items).
|
|
112
|
+
* A non-numeric bound (e.g. the template "${{ n_runs }}") is kept verbatim. */
|
|
113
|
+
minItems?: number | string | null;
|
|
114
|
+
maxItems?: number | string | null;
|
|
35
115
|
subformRef: SubformRef | null;
|
|
36
116
|
}
|
|
37
117
|
export interface SubformRef {
|
|
@@ -39,9 +119,37 @@ export interface SubformRef {
|
|
|
39
119
|
parameters: Record<string, string>;
|
|
40
120
|
applicability: ApplicabilityEntry[];
|
|
41
121
|
}
|
|
122
|
+
/** One derived value rule inside a pass_fail block. */
|
|
123
|
+
export interface PassFailDerivation {
|
|
124
|
+
name: string;
|
|
125
|
+
calculation: string;
|
|
126
|
+
forEach: string;
|
|
127
|
+
unit: string;
|
|
128
|
+
}
|
|
42
129
|
export interface PassFail {
|
|
43
130
|
criteria: string;
|
|
44
131
|
passIf: string;
|
|
132
|
+
/** Derived-value rules feeding the pass_if expression. */
|
|
133
|
+
derivations: PassFailDerivation[];
|
|
134
|
+
}
|
|
135
|
+
/** Form calculation context (shared header + dimensions + tables). */
|
|
136
|
+
export interface FormCalculationContext {
|
|
137
|
+
header: string;
|
|
138
|
+
dimensions: boolean;
|
|
139
|
+
tables: string[];
|
|
140
|
+
}
|
|
141
|
+
/** A named form instance (e.g. "on the load cell"). */
|
|
142
|
+
export interface FormInstance {
|
|
143
|
+
id: string;
|
|
144
|
+
name: string;
|
|
145
|
+
}
|
|
146
|
+
/** A machine-checked form-level constraint. */
|
|
147
|
+
export interface FormConstraint {
|
|
148
|
+
id: string;
|
|
149
|
+
rule: string;
|
|
150
|
+
onViolation: string;
|
|
151
|
+
notes: string;
|
|
152
|
+
source: SourceRef | null;
|
|
45
153
|
}
|
|
46
154
|
/**
|
|
47
155
|
* A form is a declarative data-capture schema. Form fields can invoke
|
|
@@ -56,6 +164,29 @@ interface Form {
|
|
|
56
164
|
dataClassId: string;
|
|
57
165
|
headerFormId: string;
|
|
58
166
|
conformanceProcessId: string;
|
|
167
|
+
/** Multiple conformance processes (forms covering several tests). */
|
|
168
|
+
conformanceProcessIds?: string[];
|
|
169
|
+
/** Grouping section (report structure). */
|
|
170
|
+
section: string;
|
|
171
|
+
/** Requirement ids this form provides evidence for. */
|
|
172
|
+
requirements: string[];
|
|
173
|
+
/** Free-text editorial notes (repeatable). */
|
|
174
|
+
formNotes: string[];
|
|
175
|
+
/** Form scope (e.g. administrative). */
|
|
176
|
+
scope: string;
|
|
177
|
+
/** Report-table row vocabulary (report-table forms). */
|
|
178
|
+
reportRows?: {
|
|
179
|
+
field: string;
|
|
180
|
+
itemKey: string;
|
|
181
|
+
};
|
|
182
|
+
/** Role-grouped source reference URNs. */
|
|
183
|
+
formReferences: RoleReference[];
|
|
184
|
+
/** Calculation context for evaluated fields. */
|
|
185
|
+
calculationContext: FormCalculationContext | null;
|
|
186
|
+
/** Named form instances. */
|
|
187
|
+
formInstances: FormInstance[];
|
|
188
|
+
/** Machine-checked form-level constraints. */
|
|
189
|
+
formConstraints: FormConstraint[];
|
|
59
190
|
applicability: ApplicabilityEntry[];
|
|
60
191
|
fields: FormField[];
|
|
61
192
|
passFail: PassFail | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../src/types/Form.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../src/types/Form.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `formulas_used` construct (smart gap-close E11,
|
|
3
|
+
* analysis/architecture-gaps-2026-07.md; the smart contract
|
|
4
|
+
* data/schemas/formulas-used.yaml + data/r60/specification/
|
|
5
|
+
* formulas-used.yaml): the per-test evaluation-formula trace of a
|
|
6
|
+
* Recommendation — the first-class replacement for the hand-authored
|
|
7
|
+
* supplemental YAML the R 60 MDLO trace rides today:
|
|
8
|
+
*
|
|
9
|
+
* formulas_used /conf/metrological-tests/measurement-error-repeatability-mdlo {
|
|
10
|
+
* name "MDLO evaluation formulas"
|
|
11
|
+
* description "The evaluation-level quantities of R 60-3, 2.1 the MDLO test derives from the indication output: …"
|
|
12
|
+
* formulas { conversion_factor_f e_l e_r c_m }
|
|
13
|
+
* source { doc "urn:oiml:pub:r:60-3:2021" clause "2.1" }
|
|
14
|
+
* }
|
|
15
|
+
*
|
|
16
|
+
* The design (DECIDED — the 9.5-era file header contemplated a facet):
|
|
17
|
+
* a top-level registry block keyed by the conformance-test reference,
|
|
18
|
+
* NOT a facet on conformance_test — the YAML projection stays trivially
|
|
19
|
+
* byte-identical, the conformance_test grammar is untouched (OCP), and
|
|
20
|
+
* the shape mirrors the invariant/test_sequence pattern exactly. The
|
|
21
|
+
* block symbol IS the test reference — a bare reference-shaped id, the
|
|
22
|
+
* `text /req/….statement` construct's idiom (the ref alphabet `/`,
|
|
23
|
+
* letters, `-` is bare-token-safe; a quoted spelling round-trips as its
|
|
24
|
+
* own id, so authors pick one spelling).
|
|
25
|
+
*
|
|
26
|
+
* The facets (the smart side's formulas-used.yaml contract — the
|
|
27
|
+
* projection the kernel model feeds):
|
|
28
|
+
* - name — the short trace name, MANDATORY (C94).
|
|
29
|
+
* - description — what the listed formulas compute, with the clause
|
|
30
|
+
* evidence, MANDATORY (C94). The default spelling's value is
|
|
31
|
+
* authored inline; alternates ride the ISO 24229
|
|
32
|
+
* `text <test-ref>.description { spell <code> "…" }` blocks
|
|
33
|
+
* (TODO.roadmap/25 — the same machinery every prose field uses).
|
|
34
|
+
* - formulas — the registry formula ids the test's evaluation
|
|
35
|
+
* invokes, MANDATORY non-empty (C94): the registries' QUANTITY
|
|
36
|
+
* names (calculation output names — conversion_factor_f, e_l, e_r,
|
|
37
|
+
* c_m; the same ids the test declares as its variables).
|
|
38
|
+
* Well-formedness is the snake_case identifier shape (C94);
|
|
39
|
+
* RESOLUTION (does e_l exist in the calculations ∪ formulas
|
|
40
|
+
* registries) is the smart-side linker rule R41's crosswalk —
|
|
41
|
+
* the kernel checks syntax/shape only, exactly like E9's C90/C91
|
|
42
|
+
* vs R38 and E10's C92/C93 vs R39 split.
|
|
43
|
+
* - source — clause-URN provenance, the platform's content doctrine:
|
|
44
|
+
* repeated `source { doc "urn:…" clause "…" }` blocks collecting
|
|
45
|
+
* into sourceRefs (the requirement family's idiom). The trace is
|
|
46
|
+
* keyed by test, so entry uniqueness is the parse-time
|
|
47
|
+
* duplicate-id rule's — the collection key IS the test ref.
|
|
48
|
+
*
|
|
49
|
+
* Linter rules (check.ts, family base):
|
|
50
|
+
* C94 formulas-used-shape.
|
|
51
|
+
*/
|
|
52
|
+
import type { SourceRef } from './Subject';
|
|
53
|
+
/**
|
|
54
|
+
* The formula-identifier shape (C94): the snake_case identifier the
|
|
55
|
+
* calculations registry uses for output names (conversion_factor_f,
|
|
56
|
+
* e_l, e_r, c_m) — lowercase, digits and underscores after a leading
|
|
57
|
+
* letter. Shape only; an identifier that parses here may still dangle
|
|
58
|
+
* (resolution is the smart-side linker rule R41's job, never the
|
|
59
|
+
* kernel's).
|
|
60
|
+
*/
|
|
61
|
+
export declare const FORMULA_ID_SHAPE: RegExp;
|
|
62
|
+
/**
|
|
63
|
+
* formulas_used <test-ref> — one per-test evaluation-formula trace
|
|
64
|
+
* (smart gap-close E11). Top-level construct, a sibling collection of
|
|
65
|
+
* `testSequences`: declared once per conformance test, composed through
|
|
66
|
+
* `uses` like every doctrine collection (MERGE_FIELDS).
|
|
67
|
+
*/
|
|
68
|
+
export interface FormulasUsed {
|
|
69
|
+
/**
|
|
70
|
+
* The conformance test whose evaluation invokes the formulas — the
|
|
71
|
+
* absolute test reference (e.g.
|
|
72
|
+
* /conf/metrological-tests/measurement-error-repeatability-mdlo).
|
|
73
|
+
* The block symbol itself; the trace is keyed by it (uniqueness is
|
|
74
|
+
* the parse-time duplicate-id rule's). Test-ref RESOLUTION (does the
|
|
75
|
+
* ref name a declared conformance test) is the smart-side linker R41.
|
|
76
|
+
*/
|
|
77
|
+
id: string;
|
|
78
|
+
/** The short trace name ('' = undeclared — C94). */
|
|
79
|
+
name: string;
|
|
80
|
+
/**
|
|
81
|
+
* What the listed formulas compute, with the clause evidence ('' =
|
|
82
|
+
* undeclared — C94). The package-default spelling's value inline;
|
|
83
|
+
* alternates ride the ISO 24229 `text <id>.description` blocks.
|
|
84
|
+
*/
|
|
85
|
+
description: string;
|
|
86
|
+
/**
|
|
87
|
+
* The registry formula ids the test's evaluation invokes, in declared
|
|
88
|
+
* order ([] = undeclared — C94). Well-formedness is FORMULA_ID_SHAPE
|
|
89
|
+
* (C94); resolution is the smart-side linker R41's.
|
|
90
|
+
*/
|
|
91
|
+
formulas: string[];
|
|
92
|
+
/** Clause-URN provenance (the requirement family's repeated source blocks). */
|
|
93
|
+
sourceRefs: SourceRef[];
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=FormulasUsed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormulasUsed.d.ts","sourceRoot":"","sources":["../../../src/types/FormulasUsed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAAsB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,+EAA+E;IAC/E,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The `formulas_used` construct (smart gap-close E11,
|
|
4
|
+
* analysis/architecture-gaps-2026-07.md; the smart contract
|
|
5
|
+
* data/schemas/formulas-used.yaml + data/r60/specification/
|
|
6
|
+
* formulas-used.yaml): the per-test evaluation-formula trace of a
|
|
7
|
+
* Recommendation — the first-class replacement for the hand-authored
|
|
8
|
+
* supplemental YAML the R 60 MDLO trace rides today:
|
|
9
|
+
*
|
|
10
|
+
* formulas_used /conf/metrological-tests/measurement-error-repeatability-mdlo {
|
|
11
|
+
* name "MDLO evaluation formulas"
|
|
12
|
+
* description "The evaluation-level quantities of R 60-3, 2.1 the MDLO test derives from the indication output: …"
|
|
13
|
+
* formulas { conversion_factor_f e_l e_r c_m }
|
|
14
|
+
* source { doc "urn:oiml:pub:r:60-3:2021" clause "2.1" }
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* The design (DECIDED — the 9.5-era file header contemplated a facet):
|
|
18
|
+
* a top-level registry block keyed by the conformance-test reference,
|
|
19
|
+
* NOT a facet on conformance_test — the YAML projection stays trivially
|
|
20
|
+
* byte-identical, the conformance_test grammar is untouched (OCP), and
|
|
21
|
+
* the shape mirrors the invariant/test_sequence pattern exactly. The
|
|
22
|
+
* block symbol IS the test reference — a bare reference-shaped id, the
|
|
23
|
+
* `text /req/….statement` construct's idiom (the ref alphabet `/`,
|
|
24
|
+
* letters, `-` is bare-token-safe; a quoted spelling round-trips as its
|
|
25
|
+
* own id, so authors pick one spelling).
|
|
26
|
+
*
|
|
27
|
+
* The facets (the smart side's formulas-used.yaml contract — the
|
|
28
|
+
* projection the kernel model feeds):
|
|
29
|
+
* - name — the short trace name, MANDATORY (C94).
|
|
30
|
+
* - description — what the listed formulas compute, with the clause
|
|
31
|
+
* evidence, MANDATORY (C94). The default spelling's value is
|
|
32
|
+
* authored inline; alternates ride the ISO 24229
|
|
33
|
+
* `text <test-ref>.description { spell <code> "…" }` blocks
|
|
34
|
+
* (TODO.roadmap/25 — the same machinery every prose field uses).
|
|
35
|
+
* - formulas — the registry formula ids the test's evaluation
|
|
36
|
+
* invokes, MANDATORY non-empty (C94): the registries' QUANTITY
|
|
37
|
+
* names (calculation output names — conversion_factor_f, e_l, e_r,
|
|
38
|
+
* c_m; the same ids the test declares as its variables).
|
|
39
|
+
* Well-formedness is the snake_case identifier shape (C94);
|
|
40
|
+
* RESOLUTION (does e_l exist in the calculations ∪ formulas
|
|
41
|
+
* registries) is the smart-side linker rule R41's crosswalk —
|
|
42
|
+
* the kernel checks syntax/shape only, exactly like E9's C90/C91
|
|
43
|
+
* vs R38 and E10's C92/C93 vs R39 split.
|
|
44
|
+
* - source — clause-URN provenance, the platform's content doctrine:
|
|
45
|
+
* repeated `source { doc "urn:…" clause "…" }` blocks collecting
|
|
46
|
+
* into sourceRefs (the requirement family's idiom). The trace is
|
|
47
|
+
* keyed by test, so entry uniqueness is the parse-time
|
|
48
|
+
* duplicate-id rule's — the collection key IS the test ref.
|
|
49
|
+
*
|
|
50
|
+
* Linter rules (check.ts, family base):
|
|
51
|
+
* C94 formulas-used-shape.
|
|
52
|
+
*/
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.FORMULA_ID_SHAPE = void 0;
|
|
55
|
+
/**
|
|
56
|
+
* The formula-identifier shape (C94): the snake_case identifier the
|
|
57
|
+
* calculations registry uses for output names (conversion_factor_f,
|
|
58
|
+
* e_l, e_r, c_m) — lowercase, digits and underscores after a leading
|
|
59
|
+
* letter. Shape only; an identifier that parses here may still dangle
|
|
60
|
+
* (resolution is the smart-side linker rule R41's job, never the
|
|
61
|
+
* kernel's).
|
|
62
|
+
*/
|
|
63
|
+
exports.FORMULA_ID_SHAPE = /^[a-z][a-z0-9_]*$/;
|
|
64
|
+
//# sourceMappingURL=FormulasUsed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormulasUsed.js","sourceRoot":"","sources":["../../../src/types/FormulasUsed.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;;;AAIH;;;;;;;GAOG;AACU,QAAA,gBAAgB,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instantiation (Primmel v3, TODO.roadmap/03): the `instance` construct —
|
|
3
|
+
* the instance plane of the definition/instance duality (doctrine ch. 3).
|
|
4
|
+
*
|
|
5
|
+
* A subject DEFINITION (subject/instrument constructs) says what kinds of
|
|
6
|
+
* things exist; an `instance` says THIS one exists — the canonical case is
|
|
7
|
+
* a Sample instance of a Model subject. Instances of the subject chain
|
|
8
|
+
* (family → group → model → sample) link upward (`model`/`group`/`family`
|
|
9
|
+
* carry the next enclosing instance id), and attribute values resolve by
|
|
10
|
+
* delegation along that chain (INV-10: upward resolution, lower override,
|
|
11
|
+
* never copied down — see src/instance-resolution.ts).
|
|
12
|
+
*
|
|
13
|
+
* Scope discipline: every attribute_definition declares the chain level at
|
|
14
|
+
* which its value is stated (`scope` family | group | model | sample).
|
|
15
|
+
* Instance values are checked against it by the linter (C17 instance-scope):
|
|
16
|
+
* a value may be stated at its declared scope or LOWER (a visible override),
|
|
17
|
+
* never higher; sample-scope (test-dependent) values live ONLY in
|
|
18
|
+
* has.testContext of a sample-level instance and are never inherited.
|
|
19
|
+
* Classification (dimension) values live in has.dimensions on the
|
|
20
|
+
* family/group/model levels — samples carry no classification.
|
|
21
|
+
*
|
|
22
|
+
* INV-8: every instance is version-pinned to its definitions via
|
|
23
|
+
* `definitionVersions` (definition id → version string); the linter (C18)
|
|
24
|
+
* rejects unpinned instances.
|
|
25
|
+
*
|
|
26
|
+
* Grammar sketch:
|
|
27
|
+
* instance smp-hbk-hlci-001 of LoadCellSample {
|
|
28
|
+
* level sample
|
|
29
|
+
* model mod-hbk-hlci-2-2t-c3
|
|
30
|
+
* definition_versions { LoadCellSample : "2021" attributes : "1.0.0" }
|
|
31
|
+
* has {
|
|
32
|
+
* attributes { serial_note : "calibration sticker present" }
|
|
33
|
+
* dimensions { } // samples: none
|
|
34
|
+
* test_context { d_min : 0 kg d_max : 2.2 t v : 0.037 kg n : 6000 }
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
*/
|
|
38
|
+
import type { QuantityValue } from './Quantity';
|
|
39
|
+
/** The four subject-chain levels, from outermost to innermost. */
|
|
40
|
+
export type ChainLevel = 'family' | 'group' | 'model' | 'sample';
|
|
41
|
+
/**
|
|
42
|
+
* One exhibited attribute value on an instance — the QuantityValue shape
|
|
43
|
+
* (TODO.roadmap/06): `value` + optional `unit`, `quantityKind`,
|
|
44
|
+
* `uncertainty` (measured side), `tolerance` (specified side). INV-1: a
|
|
45
|
+
* value for a declared physical quantity is never a bare number — it
|
|
46
|
+
* carries a unit (linter C32). `value` holds a number when the source
|
|
47
|
+
* token was an unquoted numeric literal, otherwise the string as written
|
|
48
|
+
* (quote a numeric string to keep it a string, e.g.
|
|
49
|
+
* software_identification : "2.1").
|
|
50
|
+
*
|
|
51
|
+
* Growth note: `{value, unit?}` (task 03) widened to the full
|
|
52
|
+
* QuantityValue contract (task 06) — the two new facets are optional, so
|
|
53
|
+
* existing values type-check unchanged.
|
|
54
|
+
*/
|
|
55
|
+
export type InstanceValue = QuantityValue;
|
|
56
|
+
/** has { … } — the instance's own exhibited values (never merged downward). */
|
|
57
|
+
export interface InstanceHas {
|
|
58
|
+
/**
|
|
59
|
+
* Own attribute values (the parameters plane): attribute id → value.
|
|
60
|
+
* Holds values stated at this instance's level — including deliberate
|
|
61
|
+
* lower-level overrides of values declared at a wider scope.
|
|
62
|
+
*
|
|
63
|
+
* NOTE (sample-level override gap): the language permits a
|
|
64
|
+
* non-sample-scope attribute in a SAMPLE's has.attributes (the
|
|
65
|
+
* lower-override law), but the current app plane has no sample
|
|
66
|
+
* `parameters` field (only `test_context`) — recs SHOULD NOT author
|
|
67
|
+
* such values until the app plane grows one (tracked by TODO.roadmap
|
|
68
|
+
* task 29); a future strict mode may make this an error.
|
|
69
|
+
*/
|
|
70
|
+
attributes: Record<string, InstanceValue>;
|
|
71
|
+
/** Classification membership: dimension id → value id (not on samples). */
|
|
72
|
+
dimensions: Record<string, string>;
|
|
73
|
+
/**
|
|
74
|
+
* Sample-scope (test-dependent) attribute values — the plane tests write
|
|
75
|
+
* into. Legal only on sample-level instances; never inherited (values
|
|
76
|
+
* here are never consulted when resolving from another instance).
|
|
77
|
+
*/
|
|
78
|
+
testContext: Record<string, InstanceValue>;
|
|
79
|
+
}
|
|
80
|
+
/** instance <id> — one instance of a subject definition. */
|
|
81
|
+
export interface Instance {
|
|
82
|
+
id: string;
|
|
83
|
+
/**
|
|
84
|
+
* The definition this is an instance of — a subject (v3) or instrument
|
|
85
|
+
* (v2) id. Resolution is checked by the linter (C20 instance-of-resolves).
|
|
86
|
+
*/
|
|
87
|
+
of: string;
|
|
88
|
+
/**
|
|
89
|
+
* The instance's subject-chain level (family | group | model | sample),
|
|
90
|
+
* raw as written — the linter (C17) validates the enum and the scope
|
|
91
|
+
* discipline of every value against it.
|
|
92
|
+
*/
|
|
93
|
+
level: string;
|
|
94
|
+
/** Upward chain links (instance ids): sample → model. */
|
|
95
|
+
model: string;
|
|
96
|
+
/** Upward chain links: model → group (optional level). */
|
|
97
|
+
group: string;
|
|
98
|
+
/** Upward chain links: model|group → family. */
|
|
99
|
+
family: string;
|
|
100
|
+
/** INV-8 pins: definition id → version string (linter C18 requires ≥1). */
|
|
101
|
+
definitionVersions: Record<string, string>;
|
|
102
|
+
has: InstanceHas;
|
|
103
|
+
referenceIds: string[];
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=Instance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Instance.d.ts","sourceRoot":"","sources":["../../../src/types/Instance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,kEAAkE;AAClE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjE;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAE1C,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC5C;AAED,4DAA4D;AAC5D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,GAAG,EAAE,WAAW,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Instantiation (Primmel v3, TODO.roadmap/03): the `instance` construct —
|
|
4
|
+
* the instance plane of the definition/instance duality (doctrine ch. 3).
|
|
5
|
+
*
|
|
6
|
+
* A subject DEFINITION (subject/instrument constructs) says what kinds of
|
|
7
|
+
* things exist; an `instance` says THIS one exists — the canonical case is
|
|
8
|
+
* a Sample instance of a Model subject. Instances of the subject chain
|
|
9
|
+
* (family → group → model → sample) link upward (`model`/`group`/`family`
|
|
10
|
+
* carry the next enclosing instance id), and attribute values resolve by
|
|
11
|
+
* delegation along that chain (INV-10: upward resolution, lower override,
|
|
12
|
+
* never copied down — see src/instance-resolution.ts).
|
|
13
|
+
*
|
|
14
|
+
* Scope discipline: every attribute_definition declares the chain level at
|
|
15
|
+
* which its value is stated (`scope` family | group | model | sample).
|
|
16
|
+
* Instance values are checked against it by the linter (C17 instance-scope):
|
|
17
|
+
* a value may be stated at its declared scope or LOWER (a visible override),
|
|
18
|
+
* never higher; sample-scope (test-dependent) values live ONLY in
|
|
19
|
+
* has.testContext of a sample-level instance and are never inherited.
|
|
20
|
+
* Classification (dimension) values live in has.dimensions on the
|
|
21
|
+
* family/group/model levels — samples carry no classification.
|
|
22
|
+
*
|
|
23
|
+
* INV-8: every instance is version-pinned to its definitions via
|
|
24
|
+
* `definitionVersions` (definition id → version string); the linter (C18)
|
|
25
|
+
* rejects unpinned instances.
|
|
26
|
+
*
|
|
27
|
+
* Grammar sketch:
|
|
28
|
+
* instance smp-hbk-hlci-001 of LoadCellSample {
|
|
29
|
+
* level sample
|
|
30
|
+
* model mod-hbk-hlci-2-2t-c3
|
|
31
|
+
* definition_versions { LoadCellSample : "2021" attributes : "1.0.0" }
|
|
32
|
+
* has {
|
|
33
|
+
* attributes { serial_note : "calibration sticker present" }
|
|
34
|
+
* dimensions { } // samples: none
|
|
35
|
+
* test_context { d_min : 0 kg d_max : 2.2 t v : 0.037 kg n : 6000 }
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
*/
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
//# sourceMappingURL=Instance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Instance.js","sourceRoot":"","sources":["../../../src/types/Instance.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `invariant` construct (smart gap-close E9,
|
|
3
|
+
* analysis/architecture-gaps-2026-07.md; the smart doctrine
|
|
4
|
+
* docs/oiml-core/09-invariants.md): a named architecture invariant of
|
|
5
|
+
* the platform — a rule the model, its linker, and its gates must
|
|
6
|
+
* never break:
|
|
7
|
+
*
|
|
8
|
+
* invariant INV-1 {
|
|
9
|
+
* name "No bare numbers"
|
|
10
|
+
* statement "every physical quantity is a QuantityValue (value + unit [+ uncertainty])."
|
|
11
|
+
* severity error
|
|
12
|
+
* applies_to { QuantityValue }
|
|
13
|
+
* source "docs/oiml-core/09-invariants.md#9.2"
|
|
14
|
+
* enforcement { kernel:C32 kernel:C33 linker:quantity-coherence gate:schema-quantity-value }
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* invariant INV-99 {
|
|
18
|
+
* name "…"
|
|
19
|
+
* statement "…"
|
|
20
|
+
* severity notice
|
|
21
|
+
* enforcement aspirational
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* Today these ride the generic `note` family with pipe-delimited
|
|
25
|
+
* structure inside the message string; the construct makes them
|
|
26
|
+
* first-class. The facets (the smart side's invariants.yaml contract —
|
|
27
|
+
* the projection the kernel model feeds):
|
|
28
|
+
* - name — the short rule name, MANDATORY (C90).
|
|
29
|
+
* - statement — the rule's prose, MANDATORY (C90). The default
|
|
30
|
+
* spelling's value is authored inline; alternates ride the ISO
|
|
31
|
+
* 24229 `text INV-1.statement { spell <code> "…" }` blocks
|
|
32
|
+
* (TODO.roadmap/25 — the same machinery every prose field uses).
|
|
33
|
+
* - severity — free vocabulary, MANDATORY non-empty (C90). The smart
|
|
34
|
+
* side owns the severity semantics; the kernel judges presence
|
|
35
|
+
* only, never the vocabulary.
|
|
36
|
+
* - applies_to — the construct/entity names the invariant constrains,
|
|
37
|
+
* OPTIONAL (empty/absent allowed).
|
|
38
|
+
* - source — provenance (doc path + anchor), OPTIONAL.
|
|
39
|
+
* - enforcement — EITHER a non-empty claim list OR the literal marker
|
|
40
|
+
* `aspirational`; never empty, never both (C90). A claim's grammar
|
|
41
|
+
* is `kernel:C<n>` | `linker:<kebab-name>` | `gate:<kebab-name>`
|
|
42
|
+
* (C91 — syntax only; claim TARGET resolution is the smart-side
|
|
43
|
+
* linker rule R38's crosswalk, never the kernel's).
|
|
44
|
+
*
|
|
45
|
+
* Linter rules (check.ts, family base):
|
|
46
|
+
* C90 invariant-shape, C91 invariant-enforcement-grammar.
|
|
47
|
+
*/
|
|
48
|
+
/**
|
|
49
|
+
* How an invariant is enforced: a non-empty claim list XOR the literal
|
|
50
|
+
* `aspirational` marker (declared, not yet machine-enforced). C90 owns
|
|
51
|
+
* the XOR; C91 owns the claim grammar.
|
|
52
|
+
*/
|
|
53
|
+
export interface InvariantEnforcement {
|
|
54
|
+
/** true = the bare `enforcement aspirational` marker. */
|
|
55
|
+
aspirational: boolean;
|
|
56
|
+
/** The enforcement claims — empty when aspirational (C90 judges both). */
|
|
57
|
+
claims: string[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* invariant <id> — a named architecture invariant (smart gap-close E9).
|
|
61
|
+
* Top-level construct, a sibling collection of `notes` (the generic
|
|
62
|
+
* family it replaces): declared once per invariant, composed through
|
|
63
|
+
* `uses` like every doctrine collection (MERGE_FIELDS).
|
|
64
|
+
*/
|
|
65
|
+
export interface Invariant {
|
|
66
|
+
id: string;
|
|
67
|
+
/** The short rule name ('' = undeclared — C90). */
|
|
68
|
+
name: string;
|
|
69
|
+
/** The rule's prose in the package's default spelling ('' = undeclared
|
|
70
|
+
* — C90; alternates ride `text <id>.statement` blocks). */
|
|
71
|
+
statement: string;
|
|
72
|
+
/** The severity token — free vocabulary, the smart side owns the
|
|
73
|
+
* semantics ('' = undeclared — C90). */
|
|
74
|
+
severity: string;
|
|
75
|
+
/** The construct/entity names the invariant constrains (empty allowed). */
|
|
76
|
+
appliesTo: string[];
|
|
77
|
+
/** Provenance: doc path + anchor ('' = absent). */
|
|
78
|
+
source: string;
|
|
79
|
+
/** The enforcement claims XOR the aspirational marker (C90/C91). */
|
|
80
|
+
enforcement: InvariantEnforcement;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=Invariant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Invariant.d.ts","sourceRoot":"","sources":["../../../src/types/Invariant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,YAAY,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb;gEAC4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB;6CACyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,WAAW,EAAE,oBAAoB,CAAC;CACnC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The `invariant` construct (smart gap-close E9,
|
|
4
|
+
* analysis/architecture-gaps-2026-07.md; the smart doctrine
|
|
5
|
+
* docs/oiml-core/09-invariants.md): a named architecture invariant of
|
|
6
|
+
* the platform — a rule the model, its linker, and its gates must
|
|
7
|
+
* never break:
|
|
8
|
+
*
|
|
9
|
+
* invariant INV-1 {
|
|
10
|
+
* name "No bare numbers"
|
|
11
|
+
* statement "every physical quantity is a QuantityValue (value + unit [+ uncertainty])."
|
|
12
|
+
* severity error
|
|
13
|
+
* applies_to { QuantityValue }
|
|
14
|
+
* source "docs/oiml-core/09-invariants.md#9.2"
|
|
15
|
+
* enforcement { kernel:C32 kernel:C33 linker:quantity-coherence gate:schema-quantity-value }
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* invariant INV-99 {
|
|
19
|
+
* name "…"
|
|
20
|
+
* statement "…"
|
|
21
|
+
* severity notice
|
|
22
|
+
* enforcement aspirational
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* Today these ride the generic `note` family with pipe-delimited
|
|
26
|
+
* structure inside the message string; the construct makes them
|
|
27
|
+
* first-class. The facets (the smart side's invariants.yaml contract —
|
|
28
|
+
* the projection the kernel model feeds):
|
|
29
|
+
* - name — the short rule name, MANDATORY (C90).
|
|
30
|
+
* - statement — the rule's prose, MANDATORY (C90). The default
|
|
31
|
+
* spelling's value is authored inline; alternates ride the ISO
|
|
32
|
+
* 24229 `text INV-1.statement { spell <code> "…" }` blocks
|
|
33
|
+
* (TODO.roadmap/25 — the same machinery every prose field uses).
|
|
34
|
+
* - severity — free vocabulary, MANDATORY non-empty (C90). The smart
|
|
35
|
+
* side owns the severity semantics; the kernel judges presence
|
|
36
|
+
* only, never the vocabulary.
|
|
37
|
+
* - applies_to — the construct/entity names the invariant constrains,
|
|
38
|
+
* OPTIONAL (empty/absent allowed).
|
|
39
|
+
* - source — provenance (doc path + anchor), OPTIONAL.
|
|
40
|
+
* - enforcement — EITHER a non-empty claim list OR the literal marker
|
|
41
|
+
* `aspirational`; never empty, never both (C90). A claim's grammar
|
|
42
|
+
* is `kernel:C<n>` | `linker:<kebab-name>` | `gate:<kebab-name>`
|
|
43
|
+
* (C91 — syntax only; claim TARGET resolution is the smart-side
|
|
44
|
+
* linker rule R38's crosswalk, never the kernel's).
|
|
45
|
+
*
|
|
46
|
+
* Linter rules (check.ts, family base):
|
|
47
|
+
* C90 invariant-shape, C91 invariant-enforcement-grammar.
|
|
48
|
+
*/
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
//# sourceMappingURL=Invariant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Invariant.js","sourceRoot":"","sources":["../../../src/types/Invariant.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG"}
|