@primmel/primmel 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/dist/index.d.ts +40 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +112 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/check-allowlist.d.ts +56 -0
  6. package/dist/src/check-allowlist.d.ts.map +1 -0
  7. package/dist/src/check-allowlist.js +307 -0
  8. package/dist/src/check-allowlist.js.map +1 -0
  9. package/dist/src/check-rules.d.ts +17 -0
  10. package/dist/src/check-rules.d.ts.map +1 -0
  11. package/dist/src/check-rules.js +351 -0
  12. package/dist/src/check-rules.js.map +1 -0
  13. package/dist/src/check.d.ts +115 -0
  14. package/dist/src/check.d.ts.map +1 -0
  15. package/dist/src/check.js +4164 -0
  16. package/dist/src/check.js.map +1 -0
  17. package/dist/src/export/rdf-competency-questions.d.ts +11 -0
  18. package/dist/src/export/rdf-competency-questions.d.ts.map +1 -0
  19. package/dist/src/export/rdf-competency-questions.js +99 -0
  20. package/dist/src/export/rdf-competency-questions.js.map +1 -0
  21. package/dist/src/export/rdf-shapes.d.ts +3 -0
  22. package/dist/src/export/rdf-shapes.d.ts.map +1 -0
  23. package/dist/src/export/rdf-shapes.js +225 -0
  24. package/dist/src/export/rdf-shapes.js.map +1 -0
  25. package/dist/src/export/rdf-vocabulary.d.ts +125 -0
  26. package/dist/src/export/rdf-vocabulary.d.ts.map +1 -0
  27. package/dist/src/export/rdf-vocabulary.js +230 -0
  28. package/dist/src/export/rdf-vocabulary.js.map +1 -0
  29. package/dist/src/export/rdf.d.ts +92 -0
  30. package/dist/src/export/rdf.d.ts.map +1 -0
  31. package/dist/src/export/rdf.js +707 -0
  32. package/dist/src/export/rdf.js.map +1 -0
  33. package/dist/src/export/reqif.d.ts +81 -0
  34. package/dist/src/export/reqif.d.ts.map +1 -0
  35. package/dist/src/export/reqif.js +703 -0
  36. package/dist/src/export/reqif.js.map +1 -0
  37. package/dist/src/instance-resolution.d.ts +68 -0
  38. package/dist/src/instance-resolution.d.ts.map +1 -0
  39. package/dist/src/instance-resolution.js +239 -0
  40. package/dist/src/instance-resolution.js.map +1 -0
  41. package/dist/src/mapping-coverage.d.ts +220 -0
  42. package/dist/src/mapping-coverage.d.ts.map +1 -0
  43. package/dist/src/mapping-coverage.js +528 -0
  44. package/dist/src/mapping-coverage.js.map +1 -0
  45. package/dist/src/model-diff.d.ts +198 -0
  46. package/dist/src/model-diff.d.ts.map +1 -0
  47. package/dist/src/model-diff.js +914 -0
  48. package/dist/src/model-diff.js.map +1 -0
  49. package/dist/src/operational-state.d.ts +112 -0
  50. package/dist/src/operational-state.d.ts.map +1 -0
  51. package/dist/src/operational-state.js +162 -0
  52. package/dist/src/operational-state.js.map +1 -0
  53. package/dist/src/package-diff.d.ts +36 -0
  54. package/dist/src/package-diff.d.ts.map +1 -0
  55. package/dist/src/package-diff.js +104 -0
  56. package/dist/src/package-diff.js.map +1 -0
  57. package/dist/src/ser-des/config/acceptance.d.ts +10 -0
  58. package/dist/src/ser-des/config/acceptance.d.ts.map +1 -0
  59. package/dist/src/ser-des/config/acceptance.js +163 -0
  60. package/dist/src/ser-des/config/acceptance.js.map +1 -0
  61. package/dist/src/ser-des/config/activityArchetype.d.ts +5 -0
  62. package/dist/src/ser-des/config/activityArchetype.d.ts.map +1 -0
  63. package/dist/src/ser-des/config/activityArchetype.js +78 -0
  64. package/dist/src/ser-des/config/activityArchetype.js.map +1 -0
  65. package/dist/src/ser-des/config/artifact.d.ts +16 -0
  66. package/dist/src/ser-des/config/artifact.d.ts.map +1 -0
  67. package/dist/src/ser-des/config/artifact.js +392 -0
  68. package/dist/src/ser-des/config/artifact.js.map +1 -0
  69. package/dist/src/ser-des/config/calculation.d.ts.map +1 -1
  70. package/dist/src/ser-des/config/calculation.js +214 -12
  71. package/dist/src/ser-des/config/calculation.js.map +1 -1
  72. package/dist/src/ser-des/config/comment.d.ts +34 -0
  73. package/dist/src/ser-des/config/comment.d.ts.map +1 -0
  74. package/dist/src/ser-des/config/comment.js +121 -0
  75. package/dist/src/ser-des/config/comment.js.map +1 -0
  76. package/dist/src/ser-des/config/competenceKind.d.ts +8 -0
  77. package/dist/src/ser-des/config/competenceKind.d.ts.map +1 -0
  78. package/dist/src/ser-des/config/competenceKind.js +266 -0
  79. package/dist/src/ser-des/config/competenceKind.js.map +1 -0
  80. package/dist/src/ser-des/config/composition.d.ts +6 -0
  81. package/dist/src/ser-des/config/composition.d.ts.map +1 -0
  82. package/dist/src/ser-des/config/composition.js +165 -0
  83. package/dist/src/ser-des/config/composition.js.map +1 -0
  84. package/dist/src/ser-des/config/conformanceClass.d.ts +9 -0
  85. package/dist/src/ser-des/config/conformanceClass.d.ts.map +1 -0
  86. package/dist/src/ser-des/config/conformanceClass.js +128 -0
  87. package/dist/src/ser-des/config/conformanceClass.js.map +1 -0
  88. package/dist/src/ser-des/config/conformanceTest.d.ts +6 -0
  89. package/dist/src/ser-des/config/conformanceTest.d.ts.map +1 -0
  90. package/dist/src/ser-des/config/conformanceTest.js +929 -0
  91. package/dist/src/ser-des/config/conformanceTest.js.map +1 -0
  92. package/dist/src/ser-des/config/constraint.d.ts +5 -0
  93. package/dist/src/ser-des/config/constraint.d.ts.map +1 -0
  94. package/dist/src/ser-des/config/constraint.js +108 -0
  95. package/dist/src/ser-des/config/constraint.js.map +1 -0
  96. package/dist/src/ser-des/config/data.d.ts.map +1 -1
  97. package/dist/src/ser-des/config/data.js +105 -12
  98. package/dist/src/ser-des/config/data.js.map +1 -1
  99. package/dist/src/ser-des/config/design.d.ts +9 -0
  100. package/dist/src/ser-des/config/design.d.ts.map +1 -0
  101. package/dist/src/ser-des/config/design.js +847 -0
  102. package/dist/src/ser-des/config/design.js.map +1 -0
  103. package/dist/src/ser-des/config/discrepancyRecord.d.ts +5 -0
  104. package/dist/src/ser-des/config/discrepancyRecord.d.ts.map +1 -0
  105. package/dist/src/ser-des/config/discrepancyRecord.js +109 -0
  106. package/dist/src/ser-des/config/discrepancyRecord.js.map +1 -0
  107. package/dist/src/ser-des/config/dual.d.ts +9 -0
  108. package/dist/src/ser-des/config/dual.d.ts.map +1 -0
  109. package/dist/src/ser-des/config/dual.js +84 -0
  110. package/dist/src/ser-des/config/dual.js.map +1 -0
  111. package/dist/src/ser-des/config/field-parser.d.ts +92 -7
  112. package/dist/src/ser-des/config/field-parser.d.ts.map +1 -1
  113. package/dist/src/ser-des/config/field-parser.js +832 -29
  114. package/dist/src/ser-des/config/field-parser.js.map +1 -1
  115. package/dist/src/ser-des/config/form.d.ts.map +1 -1
  116. package/dist/src/ser-des/config/form.js +355 -134
  117. package/dist/src/ser-des/config/form.js.map +1 -1
  118. package/dist/src/ser-des/config/formulasUsed.d.ts +9 -0
  119. package/dist/src/ser-des/config/formulasUsed.d.ts.map +1 -0
  120. package/dist/src/ser-des/config/formulasUsed.js +126 -0
  121. package/dist/src/ser-des/config/formulasUsed.js.map +1 -0
  122. package/dist/src/ser-des/config/index.d.ts.map +1 -1
  123. package/dist/src/ser-des/config/index.js +180 -1
  124. package/dist/src/ser-des/config/index.js.map +1 -1
  125. package/dist/src/ser-des/config/instance.d.ts +22 -0
  126. package/dist/src/ser-des/config/instance.d.ts.map +1 -0
  127. package/dist/src/ser-des/config/instance.js +266 -0
  128. package/dist/src/ser-des/config/instance.js.map +1 -0
  129. package/dist/src/ser-des/config/invariant.d.ts +9 -0
  130. package/dist/src/ser-des/config/invariant.d.ts.map +1 -0
  131. package/dist/src/ser-des/config/invariant.js +143 -0
  132. package/dist/src/ser-des/config/invariant.js.map +1 -0
  133. package/dist/src/ser-des/config/mapProfile.d.ts.map +1 -1
  134. package/dist/src/ser-des/config/mapProfile.js +199 -14
  135. package/dist/src/ser-des/config/mapProfile.js.map +1 -1
  136. package/dist/src/ser-des/config/metadata.js +6 -6
  137. package/dist/src/ser-des/config/metadata.js.map +1 -1
  138. package/dist/src/ser-des/config/monitor.d.ts +9 -0
  139. package/dist/src/ser-des/config/monitor.d.ts.map +1 -0
  140. package/dist/src/ser-des/config/monitor.js +322 -0
  141. package/dist/src/ser-des/config/monitor.js.map +1 -0
  142. package/dist/src/ser-des/config/note.d.ts.map +1 -1
  143. package/dist/src/ser-des/config/note.js +16 -1
  144. package/dist/src/ser-des/config/note.js.map +1 -1
  145. package/dist/src/ser-des/config/packageManifest.d.ts +5 -0
  146. package/dist/src/ser-des/config/packageManifest.d.ts.map +1 -0
  147. package/dist/src/ser-des/config/packageManifest.js +349 -0
  148. package/dist/src/ser-des/config/packageManifest.js.map +1 -0
  149. package/dist/src/ser-des/config/passport.d.ts +9 -0
  150. package/dist/src/ser-des/config/passport.d.ts.map +1 -0
  151. package/dist/src/ser-des/config/passport.js +191 -0
  152. package/dist/src/ser-des/config/passport.js.map +1 -0
  153. package/dist/src/ser-des/config/process.d.ts +5 -3
  154. package/dist/src/ser-des/config/process.d.ts.map +1 -1
  155. package/dist/src/ser-des/config/process.js +915 -8
  156. package/dist/src/ser-des/config/process.js.map +1 -1
  157. package/dist/src/ser-des/config/quantity.d.ts +21 -0
  158. package/dist/src/ser-des/config/quantity.d.ts.map +1 -0
  159. package/dist/src/ser-des/config/quantity.js +114 -0
  160. package/dist/src/ser-des/config/quantity.js.map +1 -0
  161. package/dist/src/ser-des/config/quantityRegister.d.ts +9 -0
  162. package/dist/src/ser-des/config/quantityRegister.d.ts.map +1 -0
  163. package/dist/src/ser-des/config/quantityRegister.js +202 -0
  164. package/dist/src/ser-des/config/quantityRegister.js.map +1 -0
  165. package/dist/src/ser-des/config/reference.d.ts.map +1 -1
  166. package/dist/src/ser-des/config/reference.js +6 -0
  167. package/dist/src/ser-des/config/reference.js.map +1 -1
  168. package/dist/src/ser-des/config/referenceMaterial.d.ts +5 -0
  169. package/dist/src/ser-des/config/referenceMaterial.d.ts.map +1 -0
  170. package/dist/src/ser-des/config/referenceMaterial.js +296 -0
  171. package/dist/src/ser-des/config/referenceMaterial.js.map +1 -0
  172. package/dist/src/ser-des/config/requirement.d.ts +16 -0
  173. package/dist/src/ser-des/config/requirement.d.ts.map +1 -0
  174. package/dist/src/ser-des/config/requirement.js +579 -0
  175. package/dist/src/ser-des/config/requirement.js.map +1 -0
  176. package/dist/src/ser-des/config/role.d.ts.map +1 -1
  177. package/dist/src/ser-des/config/role.js +12 -0
  178. package/dist/src/ser-des/config/role.js.map +1 -1
  179. package/dist/src/ser-des/config/series.d.ts +9 -0
  180. package/dist/src/ser-des/config/series.d.ts.map +1 -0
  181. package/dist/src/ser-des/config/series.js +121 -0
  182. package/dist/src/ser-des/config/series.js.map +1 -0
  183. package/dist/src/ser-des/config/sourceDiscrepancy.d.ts +11 -0
  184. package/dist/src/ser-des/config/sourceDiscrepancy.d.ts.map +1 -0
  185. package/dist/src/ser-des/config/sourceDiscrepancy.js +83 -0
  186. package/dist/src/ser-des/config/sourceDiscrepancy.js.map +1 -0
  187. package/dist/src/ser-des/config/stateMachine.d.ts.map +1 -1
  188. package/dist/src/ser-des/config/stateMachine.js +189 -38
  189. package/dist/src/ser-des/config/stateMachine.js.map +1 -1
  190. package/dist/src/ser-des/config/subform.d.ts.map +1 -1
  191. package/dist/src/ser-des/config/subform.js +25 -33
  192. package/dist/src/ser-des/config/subform.js.map +1 -1
  193. package/dist/src/ser-des/config/subject.d.ts +58 -0
  194. package/dist/src/ser-des/config/subject.d.ts.map +1 -0
  195. package/dist/src/ser-des/config/subject.js +2093 -0
  196. package/dist/src/ser-des/config/subject.js.map +1 -0
  197. package/dist/src/ser-des/config/symbol.d.ts.map +1 -1
  198. package/dist/src/ser-des/config/symbol.js +130 -6
  199. package/dist/src/ser-des/config/symbol.js.map +1 -1
  200. package/dist/src/ser-des/config/table.d.ts.map +1 -1
  201. package/dist/src/ser-des/config/table.js +373 -7
  202. package/dist/src/ser-des/config/table.js.map +1 -1
  203. package/dist/src/ser-des/config/term.d.ts.map +1 -1
  204. package/dist/src/ser-des/config/term.js +107 -0
  205. package/dist/src/ser-des/config/term.js.map +1 -1
  206. package/dist/src/ser-des/config/testPointSet.d.ts +5 -0
  207. package/dist/src/ser-des/config/testPointSet.d.ts.map +1 -0
  208. package/dist/src/ser-des/config/testPointSet.js +199 -0
  209. package/dist/src/ser-des/config/testPointSet.js.map +1 -0
  210. package/dist/src/ser-des/config/testSequence.d.ts +9 -0
  211. package/dist/src/ser-des/config/testSequence.d.ts.map +1 -0
  212. package/dist/src/ser-des/config/testSequence.js +206 -0
  213. package/dist/src/ser-des/config/testSequence.js.map +1 -0
  214. package/dist/src/ser-des/config/text.d.ts +5 -0
  215. package/dist/src/ser-des/config/text.d.ts.map +1 -0
  216. package/dist/src/ser-des/config/text.js +106 -0
  217. package/dist/src/ser-des/config/text.js.map +1 -0
  218. package/dist/src/ser-des/config/twin.d.ts +31 -0
  219. package/dist/src/ser-des/config/twin.d.ts.map +1 -0
  220. package/dist/src/ser-des/config/twin.js +362 -0
  221. package/dist/src/ser-des/config/twin.js.map +1 -0
  222. package/dist/src/ser-des/config/verdict.d.ts +5 -0
  223. package/dist/src/ser-des/config/verdict.d.ts.map +1 -0
  224. package/dist/src/ser-des/config/verdict.js +159 -0
  225. package/dist/src/ser-des/config/verdict.js.map +1 -0
  226. package/dist/src/ser-des/config/viewProfile.d.ts.map +1 -1
  227. package/dist/src/ser-des/config/viewProfile.js +7 -0
  228. package/dist/src/ser-des/config/viewProfile.js.map +1 -1
  229. package/dist/src/ser-des/includes.d.ts.map +1 -1
  230. package/dist/src/ser-des/includes.js +5 -2
  231. package/dist/src/ser-des/includes.js.map +1 -1
  232. package/dist/src/ser-des/index.d.ts +12 -0
  233. package/dist/src/ser-des/index.d.ts.map +1 -1
  234. package/dist/src/ser-des/index.js +42 -0
  235. package/dist/src/ser-des/index.js.map +1 -1
  236. package/dist/src/ser-des/package.d.ts +53 -0
  237. package/dist/src/ser-des/package.d.ts.map +1 -0
  238. package/dist/src/ser-des/package.js +404 -0
  239. package/dist/src/ser-des/package.js.map +1 -0
  240. package/dist/src/ser-des/parse-block.d.ts.map +1 -1
  241. package/dist/src/ser-des/parse-block.js +7 -1
  242. package/dist/src/ser-des/parse-block.js.map +1 -1
  243. package/dist/src/ser-des/parse.d.ts.map +1 -1
  244. package/dist/src/ser-des/parse.js +45 -0
  245. package/dist/src/ser-des/parse.js.map +1 -1
  246. package/dist/src/ser-des/prm.d.ts +53 -0
  247. package/dist/src/ser-des/prm.d.ts.map +1 -0
  248. package/dist/src/ser-des/prm.js +257 -0
  249. package/dist/src/ser-des/prm.js.map +1 -0
  250. package/dist/src/ser-des/resolve.d.ts.map +1 -1
  251. package/dist/src/ser-des/resolve.js +1 -0
  252. package/dist/src/ser-des/resolve.js.map +1 -1
  253. package/dist/src/ser-des/tokenize.d.ts +11 -0
  254. package/dist/src/ser-des/tokenize.d.ts.map +1 -1
  255. package/dist/src/ser-des/tokenize.js +28 -1
  256. package/dist/src/ser-des/tokenize.js.map +1 -1
  257. package/dist/src/ser-des/types.d.ts +56 -1
  258. package/dist/src/ser-des/types.d.ts.map +1 -1
  259. package/dist/src/spelling.d.ts +35 -0
  260. package/dist/src/spelling.d.ts.map +1 -0
  261. package/dist/src/spelling.js +140 -0
  262. package/dist/src/spelling.js.map +1 -0
  263. package/dist/src/text-coverage.d.ts +164 -0
  264. package/dist/src/text-coverage.d.ts.map +1 -0
  265. package/dist/src/text-coverage.js +679 -0
  266. package/dist/src/text-coverage.js.map +1 -0
  267. package/dist/src/time.d.ts +55 -0
  268. package/dist/src/time.d.ts.map +1 -0
  269. package/dist/src/time.js +223 -0
  270. package/dist/src/time.js.map +1 -0
  271. package/dist/src/type-expr.d.ts +31 -0
  272. package/dist/src/type-expr.d.ts.map +1 -0
  273. package/dist/src/type-expr.js +110 -0
  274. package/dist/src/type-expr.js.map +1 -0
  275. package/dist/src/types/Acceptance.d.ts +31 -0
  276. package/dist/src/types/Acceptance.d.ts.map +1 -0
  277. package/dist/src/types/Acceptance.js +12 -0
  278. package/dist/src/types/Acceptance.js.map +1 -0
  279. package/dist/src/types/ActivityArchetype.d.ts +14 -0
  280. package/dist/src/types/ActivityArchetype.d.ts.map +1 -0
  281. package/dist/src/types/ActivityArchetype.js +17 -0
  282. package/dist/src/types/ActivityArchetype.js.map +1 -0
  283. package/dist/src/types/Artifact.d.ts +117 -0
  284. package/dist/src/types/Artifact.d.ts.map +1 -0
  285. package/dist/src/types/Artifact.js +35 -0
  286. package/dist/src/types/Artifact.js.map +1 -0
  287. package/dist/src/types/Calculation.d.ts +49 -0
  288. package/dist/src/types/Calculation.d.ts.map +1 -1
  289. package/dist/src/types/Comment.d.ts +23 -0
  290. package/dist/src/types/Comment.d.ts.map +1 -0
  291. package/dist/src/types/Comment.js +3 -0
  292. package/dist/src/types/Comment.js.map +1 -0
  293. package/dist/src/types/CompetenceKind.d.ts +70 -0
  294. package/dist/src/types/CompetenceKind.d.ts.map +1 -0
  295. package/dist/src/types/CompetenceKind.js +3 -0
  296. package/dist/src/types/CompetenceKind.js.map +1 -0
  297. package/dist/src/types/Composition.d.ts +80 -0
  298. package/dist/src/types/Composition.d.ts.map +1 -0
  299. package/dist/src/types/Composition.js +44 -0
  300. package/dist/src/types/Composition.js.map +1 -0
  301. package/dist/src/types/ConformanceClass.d.ts +22 -0
  302. package/dist/src/types/ConformanceClass.d.ts.map +1 -0
  303. package/dist/src/types/ConformanceClass.js +7 -0
  304. package/dist/src/types/ConformanceClass.js.map +1 -0
  305. package/dist/src/types/ConformanceTest.d.ts +206 -0
  306. package/dist/src/types/ConformanceTest.d.ts.map +1 -0
  307. package/dist/src/types/ConformanceTest.js +3 -0
  308. package/dist/src/types/ConformanceTest.js.map +1 -0
  309. package/dist/src/types/Constraint.d.ts +34 -0
  310. package/dist/src/types/Constraint.d.ts.map +1 -0
  311. package/dist/src/types/Constraint.js +3 -0
  312. package/dist/src/types/Constraint.js.map +1 -0
  313. package/dist/src/types/Design.d.ts +147 -0
  314. package/dist/src/types/Design.d.ts.map +1 -0
  315. package/dist/src/types/Design.js +10 -0
  316. package/dist/src/types/Design.js.map +1 -0
  317. package/dist/src/types/DiscrepancyRecord.d.ts +42 -0
  318. package/dist/src/types/DiscrepancyRecord.d.ts.map +1 -0
  319. package/dist/src/types/DiscrepancyRecord.js +3 -0
  320. package/dist/src/types/DiscrepancyRecord.js.map +1 -0
  321. package/dist/src/types/Form.d.ts +127 -1
  322. package/dist/src/types/Form.d.ts.map +1 -1
  323. package/dist/src/types/FormulasUsed.d.ts +95 -0
  324. package/dist/src/types/FormulasUsed.d.ts.map +1 -0
  325. package/dist/src/types/FormulasUsed.js +64 -0
  326. package/dist/src/types/FormulasUsed.js.map +1 -0
  327. package/dist/src/types/Instance.d.ts +105 -0
  328. package/dist/src/types/Instance.d.ts.map +1 -0
  329. package/dist/src/types/Instance.js +40 -0
  330. package/dist/src/types/Instance.js.map +1 -0
  331. package/dist/src/types/Invariant.d.ts +82 -0
  332. package/dist/src/types/Invariant.d.ts.map +1 -0
  333. package/dist/src/types/Invariant.js +50 -0
  334. package/dist/src/types/Invariant.js.map +1 -0
  335. package/dist/src/types/MapProfile.d.ts +36 -1
  336. package/dist/src/types/MapProfile.d.ts.map +1 -1
  337. package/dist/src/types/Monitor.d.ts +144 -0
  338. package/dist/src/types/Monitor.d.ts.map +1 -0
  339. package/dist/src/types/Monitor.js +74 -0
  340. package/dist/src/types/Monitor.js.map +1 -0
  341. package/dist/src/types/Note.d.ts +4 -1
  342. package/dist/src/types/Note.d.ts.map +1 -1
  343. package/dist/src/types/Package.d.ts +161 -0
  344. package/dist/src/types/Package.d.ts.map +1 -0
  345. package/dist/src/types/Package.js +3 -0
  346. package/dist/src/types/Package.js.map +1 -0
  347. package/dist/src/types/Passport.d.ts +125 -0
  348. package/dist/src/types/Passport.d.ts.map +1 -0
  349. package/dist/src/types/Passport.js +84 -0
  350. package/dist/src/types/Passport.js.map +1 -0
  351. package/dist/src/types/Quantity.d.ts +99 -0
  352. package/dist/src/types/Quantity.d.ts.map +1 -0
  353. package/dist/src/types/Quantity.js +24 -0
  354. package/dist/src/types/Quantity.js.map +1 -0
  355. package/dist/src/types/Reference.d.ts +2 -0
  356. package/dist/src/types/Reference.d.ts.map +1 -1
  357. package/dist/src/types/ReferenceMaterial.d.ts +53 -0
  358. package/dist/src/types/ReferenceMaterial.d.ts.map +1 -0
  359. package/dist/src/types/ReferenceMaterial.js +14 -0
  360. package/dist/src/types/ReferenceMaterial.js.map +1 -0
  361. package/dist/src/types/Requirement.d.ts +111 -0
  362. package/dist/src/types/Requirement.d.ts.map +1 -0
  363. package/dist/src/types/Requirement.js +10 -0
  364. package/dist/src/types/Requirement.js.map +1 -0
  365. package/dist/src/types/Role.d.ts +4 -0
  366. package/dist/src/types/Role.d.ts.map +1 -1
  367. package/dist/src/types/Series.d.ts +31 -0
  368. package/dist/src/types/Series.d.ts.map +1 -0
  369. package/dist/src/types/Series.js +14 -0
  370. package/dist/src/types/Series.js.map +1 -0
  371. package/dist/src/types/SourceDiscrepancy.d.ts +21 -0
  372. package/dist/src/types/SourceDiscrepancy.d.ts.map +1 -0
  373. package/dist/src/types/SourceDiscrepancy.js +13 -0
  374. package/dist/src/types/SourceDiscrepancy.js.map +1 -0
  375. package/dist/src/types/Standard.d.ts +68 -0
  376. package/dist/src/types/Standard.d.ts.map +1 -1
  377. package/dist/src/types/StateMachine.d.ts +43 -0
  378. package/dist/src/types/StateMachine.d.ts.map +1 -1
  379. package/dist/src/types/StateMachine.js +7 -0
  380. package/dist/src/types/StateMachine.js.map +1 -1
  381. package/dist/src/types/Subject.d.ts +432 -0
  382. package/dist/src/types/Subject.d.ts.map +1 -0
  383. package/dist/src/types/Subject.js +13 -0
  384. package/dist/src/types/Subject.js.map +1 -0
  385. package/dist/src/types/Symbol.d.ts +31 -1
  386. package/dist/src/types/Symbol.d.ts.map +1 -1
  387. package/dist/src/types/Table.d.ts +43 -0
  388. package/dist/src/types/Table.d.ts.map +1 -1
  389. package/dist/src/types/Term.d.ts +29 -0
  390. package/dist/src/types/Term.d.ts.map +1 -1
  391. package/dist/src/types/TestPointSet.d.ts +33 -0
  392. package/dist/src/types/TestPointSet.d.ts.map +1 -0
  393. package/dist/src/types/TestPointSet.js +11 -0
  394. package/dist/src/types/TestPointSet.js.map +1 -0
  395. package/dist/src/types/TestSequence.d.ts +105 -0
  396. package/dist/src/types/TestSequence.d.ts.map +1 -0
  397. package/dist/src/types/TestSequence.js +65 -0
  398. package/dist/src/types/TestSequence.js.map +1 -0
  399. package/dist/src/types/Text.d.ts +21 -0
  400. package/dist/src/types/Text.d.ts.map +1 -0
  401. package/dist/src/types/Text.js +38 -0
  402. package/dist/src/types/Text.js.map +1 -0
  403. package/dist/src/types/Time.d.ts +43 -0
  404. package/dist/src/types/Time.d.ts.map +1 -0
  405. package/dist/src/types/Time.js +14 -0
  406. package/dist/src/types/Time.js.map +1 -0
  407. package/dist/src/types/Twin.d.ts +155 -0
  408. package/dist/src/types/Twin.d.ts.map +1 -0
  409. package/dist/src/types/Twin.js +102 -0
  410. package/dist/src/types/Twin.js.map +1 -0
  411. package/dist/src/types/Verdict.d.ts +40 -0
  412. package/dist/src/types/Verdict.d.ts.map +1 -0
  413. package/dist/src/types/Verdict.js +14 -0
  414. package/dist/src/types/Verdict.js.map +1 -0
  415. package/dist/src/types/ViewProfile.d.ts +6 -0
  416. package/dist/src/types/ViewProfile.d.ts.map +1 -1
  417. package/dist/src/types/data.d.ts +27 -0
  418. package/dist/src/types/data.d.ts.map +1 -1
  419. package/dist/src/types/process.d.ts +231 -0
  420. package/dist/src/types/process.d.ts.map +1 -1
  421. package/dist-browser/index.mjs +6695 -662
  422. package/dist-cli/primmel.mjs +21453 -0
  423. package/package.json +61 -5
@@ -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,89 @@ 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;
24
71
  measurementMethod: string;
25
72
  calculationId: string | null;
26
73
  calculationBindings: CalculationBinding[];
27
74
  derivation: string;
28
75
  evaluation: EvaluationRule | null;
29
- values: string[];
76
+ /** Allowed values; entries may carry a display label ({ value, label }). */
77
+ values: Array<string | {
78
+ value: string;
79
+ label: string;
80
+ }>;
81
+ /** Labels for boolean fields. */
82
+ trueLabel: string;
83
+ falseLabel: string;
84
+ /** Inline enum values (when the field defines its own axis).
85
+ * Entries may carry a display label ({ value, label }). */
86
+ enumValues: Array<string | {
87
+ value: string;
88
+ label: string;
89
+ }>;
30
90
  defaultValue: string;
31
91
  hasDefault: boolean;
32
92
  referenceIds: string[];
93
+ /** Role-grouped source reference URNs. */
94
+ fieldReferences: RoleReference[];
95
+ /** Free-text source clause citation (e.g. "R 144-1, 4.5.2"). */
96
+ specificationReference: string;
97
+ /** Classification applicability filter (dimension → allowed values). */
98
+ applicability: ApplicabilityEntry[];
99
+ sourceDiscrepancy: SourceDiscrepancy | null;
33
100
  fields: FormField[];
34
101
  itemsType: string;
102
+ /** Unit of the array element type (items { <type> unit "…" }). */
103
+ itemsUnit?: string;
104
+ /** Series shape (axes + cell) when this datalist field holds a series. */
105
+ series?: SeriesDecl | null;
106
+ /** Array cardinality bounds (optional; parsed from min_items/max_items).
107
+ * A non-numeric bound (e.g. the template "${{ n_runs }}") is kept verbatim. */
108
+ minItems?: number | string | null;
109
+ maxItems?: number | string | null;
35
110
  subformRef: SubformRef | null;
36
111
  }
37
112
  export interface SubformRef {
@@ -39,9 +114,37 @@ export interface SubformRef {
39
114
  parameters: Record<string, string>;
40
115
  applicability: ApplicabilityEntry[];
41
116
  }
117
+ /** One derived value rule inside a pass_fail block. */
118
+ export interface PassFailDerivation {
119
+ name: string;
120
+ calculation: string;
121
+ forEach: string;
122
+ unit: string;
123
+ }
42
124
  export interface PassFail {
43
125
  criteria: string;
44
126
  passIf: string;
127
+ /** Derived-value rules feeding the pass_if expression. */
128
+ derivations: PassFailDerivation[];
129
+ }
130
+ /** Form calculation context (shared header + dimensions + tables). */
131
+ export interface FormCalculationContext {
132
+ header: string;
133
+ dimensions: boolean;
134
+ tables: string[];
135
+ }
136
+ /** A named form instance (e.g. "on the load cell"). */
137
+ export interface FormInstance {
138
+ id: string;
139
+ name: string;
140
+ }
141
+ /** A machine-checked form-level constraint. */
142
+ export interface FormConstraint {
143
+ id: string;
144
+ rule: string;
145
+ onViolation: string;
146
+ notes: string;
147
+ source: SourceRef | null;
45
148
  }
46
149
  /**
47
150
  * A form is a declarative data-capture schema. Form fields can invoke
@@ -56,6 +159,29 @@ interface Form {
56
159
  dataClassId: string;
57
160
  headerFormId: string;
58
161
  conformanceProcessId: string;
162
+ /** Multiple conformance processes (forms covering several tests). */
163
+ conformanceProcessIds?: string[];
164
+ /** Grouping section (report structure). */
165
+ section: string;
166
+ /** Requirement ids this form provides evidence for. */
167
+ requirements: string[];
168
+ /** Free-text editorial notes (repeatable). */
169
+ formNotes: string[];
170
+ /** Form scope (e.g. administrative). */
171
+ scope: string;
172
+ /** Report-table row vocabulary (report-table forms). */
173
+ reportRows?: {
174
+ field: string;
175
+ itemKey: string;
176
+ };
177
+ /** Role-grouped source reference URNs. */
178
+ formReferences: RoleReference[];
179
+ /** Calculation context for evaluated fields. */
180
+ calculationContext: FormCalculationContext | null;
181
+ /** Named form instances. */
182
+ formInstances: FormInstance[];
183
+ /** Machine-checked form-level constraints. */
184
+ formConstraints: FormConstraint[];
59
185
  applicability: ApplicabilityEntry[];
60
186
  fields: FormField[];
61
187
  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;AAEpC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAElB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,EAAE,kBAAkB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,UAAU,IAAI;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,GAAG,EAAE,SAAS,EAAE,CAAC;CAClB;AAED,eAAe,IAAI,CAAC;AAEpB,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,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"}