@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.
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 +844 -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 +356 -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 +132 -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 +6699 -661
  422. package/dist-cli/primmel.mjs +21462 -0
  423. package/package.json +61 -5
@@ -0,0 +1,929 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dumpConformanceTest = exports.parseConformanceTest = void 0;
4
+ exports.parseTestSubject = parseTestSubject;
5
+ const tokenize_1 = require("../tokenize");
6
+ const tokenize_2 = require("../tokenize");
7
+ const field_parser_1 = require("./field-parser");
8
+ const series_1 = require("./series");
9
+ const sourceDiscrepancy_1 = require("./sourceDiscrepancy");
10
+ const acceptance_1 = require("./acceptance");
11
+ const design_1 = require("./design");
12
+ const competenceKind_1 = require("./competenceKind");
13
+ const parse_block_1 = require("../parse-block");
14
+ function readStringList(block) {
15
+ return (0, tokenize_1.default)((0, tokenize_2.stripWrapping)(block))
16
+ .map(field_parser_1.stripColon)
17
+ .map(tokenize_2.stripWrapping)
18
+ .filter(x => x.length > 0);
19
+ }
20
+ /** Numeric-looking values parse as numbers, everything else stays a string. */
21
+ function numOrString(s) {
22
+ if (s.trim() !== '' && !isNaN(Number(s))) {
23
+ return Number(s);
24
+ }
25
+ return s;
26
+ }
27
+ function parseTestVariables(block) {
28
+ const out = [];
29
+ const t = (0, tokenize_1.default)(block);
30
+ let i = 0;
31
+ while (i < t.length) {
32
+ const cmd = t[i++];
33
+ if (cmd !== 'variable') {
34
+ if (i < t.length) {
35
+ (0, tokenize_2.unwrapBlock)(t[i - 1]);
36
+ }
37
+ continue;
38
+ }
39
+ const name = (0, tokenize_2.stripWrapping)(t[i++]);
40
+ const v = {
41
+ name,
42
+ type: '',
43
+ unit: '',
44
+ source: '',
45
+ derivation: '',
46
+ description: '',
47
+ itemType: '',
48
+ series: null,
49
+ provenance: null,
50
+ };
51
+ if (i < t.length && t[i].startsWith('{')) {
52
+ const vb = (0, tokenize_2.unwrapBlock)(t[i++]);
53
+ const vt = (0, tokenize_1.default)(vb);
54
+ let j = 0;
55
+ while (j < vt.length) {
56
+ const vc = vt[j++];
57
+ if (j >= vt.length) {
58
+ break;
59
+ }
60
+ if (vc === 'type') {
61
+ v.type = (0, tokenize_2.stripWrapping)(vt[j++]);
62
+ }
63
+ else if (vc === 'unit') {
64
+ v.unit = (0, tokenize_2.stripWrapping)(vt[j++]);
65
+ }
66
+ else if (vc === 'source') {
67
+ v.source = (0, tokenize_2.stripWrapping)(vt[j++]);
68
+ }
69
+ else if (vc === 'derivation') {
70
+ v.derivation = (0, tokenize_2.stripWrapping)(vt[j++]);
71
+ }
72
+ else if (vc === 'description') {
73
+ v.description = (0, tokenize_2.stripWrapping)(vt[j++]);
74
+ }
75
+ else if (vc === 'item_type') {
76
+ v.itemType = (0, tokenize_2.stripWrapping)(vt[j++]);
77
+ }
78
+ else if (vc === 'series') {
79
+ v.series = (0, series_1.parseSeriesDecl)((0, tokenize_2.unwrapBlock)(vt[j++]));
80
+ }
81
+ else if (vc === 'provenance') {
82
+ // Probe-channel provenance (TCD-2): provenance { channel … ref …
83
+ // observed_at … limitation "…" } — the three-source physical
84
+ // channel vocabulary is C99's to police, not the parser's.
85
+ const pb = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(vt[j++]));
86
+ const p = { channel: '', ref: '', observedAt: '', limitation: '' };
87
+ for (let k = 0; k + 1 < pb.length; k += 2) {
88
+ if (pb[k] === 'channel') {
89
+ p.channel = (0, tokenize_2.stripWrapping)(pb[k + 1]);
90
+ }
91
+ else if (pb[k] === 'ref') {
92
+ p.ref = (0, tokenize_2.stripWrapping)(pb[k + 1]);
93
+ }
94
+ else if (pb[k] === 'observed_at') {
95
+ p.observedAt = (0, tokenize_2.stripWrapping)(pb[k + 1]);
96
+ }
97
+ else if (pb[k] === 'limitation') {
98
+ p.limitation = (0, tokenize_2.stripWrapping)(pb[k + 1]);
99
+ }
100
+ }
101
+ v.provenance = p;
102
+ }
103
+ else {
104
+ (0, tokenize_2.unwrapBlock)(vt[j++]);
105
+ }
106
+ }
107
+ }
108
+ out.push(v);
109
+ }
110
+ return out;
111
+ }
112
+ function parsePreconditions(block) {
113
+ const out = [];
114
+ const t = (0, tokenize_1.default)(block);
115
+ let i = 0;
116
+ while (i < t.length) {
117
+ const cmd = t[i++];
118
+ if (cmd !== 'precondition') {
119
+ if (i < t.length) {
120
+ (0, tokenize_2.unwrapBlock)(t[i - 1]);
121
+ }
122
+ continue;
123
+ }
124
+ const pid = (0, tokenize_2.stripWrapping)(t[i++]);
125
+ const p = {
126
+ id: pid,
127
+ check: '',
128
+ description: '',
129
+ onViolation: 'invalid',
130
+ };
131
+ if (i < t.length && t[i].startsWith('{')) {
132
+ const pb = (0, tokenize_2.unwrapBlock)(t[i++]);
133
+ const pt = (0, tokenize_1.default)(pb);
134
+ let j = 0;
135
+ while (j < pt.length) {
136
+ const pc = pt[j++];
137
+ if (j >= pt.length) {
138
+ break;
139
+ }
140
+ if (pc === 'check') {
141
+ p.check = (0, tokenize_2.stripWrapping)(pt[j++]);
142
+ }
143
+ else if (pc === 'description') {
144
+ p.description = (0, tokenize_2.stripWrapping)(pt[j++]);
145
+ }
146
+ else if (pc === 'on_violation') {
147
+ p.onViolation = (0, tokenize_2.stripWrapping)(pt[j++]);
148
+ }
149
+ else if (pc === 'on_unresolvable') {
150
+ p.onUnresolvable = (0, tokenize_2.stripWrapping)(pt[j++]);
151
+ }
152
+ else {
153
+ (0, tokenize_2.unwrapBlock)(pt[j++]);
154
+ }
155
+ }
156
+ }
157
+ out.push(p);
158
+ }
159
+ return out;
160
+ }
161
+ function parseObservables(block) {
162
+ const out = [];
163
+ const t = (0, tokenize_1.default)(block);
164
+ let i = 0;
165
+ while (i < t.length) {
166
+ const cmd = t[i++];
167
+ if (cmd !== 'observable') {
168
+ if (i < t.length) {
169
+ (0, tokenize_2.unwrapBlock)(t[i - 1]);
170
+ }
171
+ continue;
172
+ }
173
+ const name = (0, tokenize_2.stripWrapping)(t[i++]);
174
+ const o = { name, quantityKind: '', unit: '', as: '' };
175
+ if (i < t.length && t[i].startsWith('{')) {
176
+ const ob = (0, tokenize_2.unwrapBlock)(t[i++]);
177
+ const ot = (0, tokenize_1.default)(ob);
178
+ let j = 0;
179
+ while (j < ot.length) {
180
+ const oc = ot[j++];
181
+ if (j >= ot.length) {
182
+ break;
183
+ }
184
+ if (oc === 'quantity_kind' || oc === 'quantityKind') {
185
+ o.quantityKind = (0, tokenize_2.stripWrapping)(ot[j++]);
186
+ }
187
+ else if (oc === 'unit') {
188
+ o.unit = (0, tokenize_2.stripWrapping)(ot[j++]);
189
+ }
190
+ else if (oc === 'as') {
191
+ o.as = (0, tokenize_2.stripWrapping)(ot[j++]);
192
+ }
193
+ else {
194
+ (0, tokenize_2.unwrapBlock)(ot[j++]);
195
+ }
196
+ }
197
+ }
198
+ out.push(o);
199
+ }
200
+ return out;
201
+ }
202
+ function parseAcceptanceCriteria(block, result) {
203
+ const t = (0, tokenize_1.default)(block);
204
+ let i = 0;
205
+ while (i < t.length) {
206
+ const cmd = t[i++];
207
+ if (cmd === 'type') {
208
+ result.acceptanceCriteriaType = (0, tokenize_2.stripWrapping)(t[i++]);
209
+ continue;
210
+ }
211
+ if (cmd === 'description') {
212
+ result.acceptanceCriteriaDescription = (0, tokenize_2.stripWrapping)(t[i++]);
213
+ continue;
214
+ }
215
+ if (cmd === 'pass_if') {
216
+ result.acceptancePassIf = (0, tokenize_2.stripWrapping)(t[i++]);
217
+ continue;
218
+ }
219
+ if (cmd !== 'criterion' && cmd !== 'item') {
220
+ if (i < t.length) {
221
+ (0, tokenize_2.unwrapBlock)(t[i - 1]);
222
+ }
223
+ continue;
224
+ }
225
+ // The criterion name is optional — documentary criteria (description +
226
+ // reference only) arrive as `criterion { ... }` or `criterion "" { ... }`.
227
+ let item = '';
228
+ if (i < t.length && !t[i].startsWith('{')) {
229
+ item = (0, tokenize_2.stripWrapping)(t[i++]);
230
+ }
231
+ const c = {
232
+ item,
233
+ passIf: '',
234
+ requirementId: '',
235
+ criterion: '',
236
+ optional: false,
237
+ description: '',
238
+ reference: '',
239
+ sourceDiscrepancy: null,
240
+ };
241
+ if (i < t.length && t[i].startsWith('{')) {
242
+ const cb = (0, tokenize_2.unwrapBlock)(t[i++]);
243
+ const ct = (0, tokenize_1.default)(cb);
244
+ let j = 0;
245
+ while (j < ct.length) {
246
+ const cc = ct[j++];
247
+ if (j >= ct.length) {
248
+ break;
249
+ }
250
+ if (cc === 'pass_if') {
251
+ c.passIf = (0, tokenize_2.stripWrapping)(ct[j++]);
252
+ }
253
+ else if (cc === 'requirement' || cc === 'target') {
254
+ // `target /req/x` is the cc.yaml alias of `requirement /req/x`.
255
+ c.requirementId = (0, tokenize_2.stripWrapping)(ct[j++]);
256
+ }
257
+ else if (cc === 'criterion') {
258
+ c.criterion = (0, tokenize_2.stripWrapping)(ct[j++]);
259
+ }
260
+ else if (cc === 'optional') {
261
+ c.optional = (0, tokenize_2.stripWrapping)(ct[j++]) === 'true';
262
+ }
263
+ else if (cc === 'description') {
264
+ c.description = (0, tokenize_2.stripWrapping)(ct[j++]);
265
+ }
266
+ else if (cc === 'reference') {
267
+ c.reference = (0, tokenize_2.stripWrapping)(ct[j++]);
268
+ }
269
+ else if (cc === 'accepts') {
270
+ const ab = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(ct[j++]));
271
+ const accepts = { verdict: '', op: '', limit: '' };
272
+ for (let k = 0; k + 1 < ab.length; k += 2) {
273
+ if (ab[k] === 'verdict') {
274
+ accepts.verdict = (0, tokenize_2.stripWrapping)(ab[k + 1]);
275
+ }
276
+ else if (ab[k] === 'op') {
277
+ accepts.op = (0, tokenize_2.stripWrapping)(ab[k + 1]);
278
+ }
279
+ else if (ab[k] === 'limit') {
280
+ accepts.limit = (0, tokenize_2.stripWrapping)(ab[k + 1]);
281
+ }
282
+ }
283
+ c.accepts = accepts;
284
+ }
285
+ else if (cc === 'source_discrepancy') {
286
+ c.sourceDiscrepancy = (0, sourceDiscrepancy_1.parseSourceDiscrepancy)((0, tokenize_2.unwrapBlock)(ct[j++]));
287
+ }
288
+ else {
289
+ (0, tokenize_2.unwrapBlock)(ct[j++]);
290
+ }
291
+ }
292
+ }
293
+ result.acceptanceCriteria.push(c);
294
+ }
295
+ }
296
+ function parseDerivedValues(block) {
297
+ const out = [];
298
+ const t = (0, tokenize_1.default)(block);
299
+ let i = 0;
300
+ while (i < t.length) {
301
+ const cmd = t[i++];
302
+ if (cmd !== 'value') {
303
+ if (i < t.length) {
304
+ (0, tokenize_2.unwrapBlock)(t[i - 1]);
305
+ }
306
+ continue;
307
+ }
308
+ const name = (0, tokenize_2.stripWrapping)(t[i++]);
309
+ let expression = '';
310
+ if (i < t.length && t[i].startsWith('{')) {
311
+ const vb = (0, tokenize_2.unwrapBlock)(t[i++]);
312
+ const vt = (0, tokenize_1.default)(vb);
313
+ let j = 0;
314
+ while (j < vt.length) {
315
+ const vc = vt[j++];
316
+ if (j >= vt.length) {
317
+ break;
318
+ }
319
+ if (vc === 'expression') {
320
+ expression = (0, tokenize_2.stripWrapping)(vt[j++]);
321
+ }
322
+ else {
323
+ (0, tokenize_2.unwrapBlock)(vt[j++]);
324
+ }
325
+ }
326
+ }
327
+ out.push({ name, expression });
328
+ }
329
+ return out;
330
+ }
331
+ function parseTestSubject(block) {
332
+ const out = {};
333
+ const t = (0, tokenize_1.default)(block);
334
+ let i = 0;
335
+ while (i < t.length) {
336
+ const key = (0, field_parser_1.stripColon)(t[i++]);
337
+ if (i >= t.length) {
338
+ break;
339
+ }
340
+ if (t[i] === ':') {
341
+ i++;
342
+ }
343
+ if (i < t.length) {
344
+ out[key] = (0, tokenize_2.stripWrapping)(t[i++]);
345
+ }
346
+ }
347
+ return out;
348
+ }
349
+ function parseInstances(block) {
350
+ const out = { by: '', values: {} };
351
+ const t = (0, tokenize_1.default)(block);
352
+ let i = 0;
353
+ while (i < t.length) {
354
+ const cmd = t[i++];
355
+ if (i >= t.length) {
356
+ break;
357
+ }
358
+ if (cmd === 'by') {
359
+ out.by = (0, tokenize_2.stripWrapping)(t[i++]);
360
+ }
361
+ else if (cmd === 'values') {
362
+ const vt = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
363
+ let j = 0;
364
+ while (j < vt.length) {
365
+ const key = (0, field_parser_1.stripColon)(vt[j++]);
366
+ if (j >= vt.length) {
367
+ break;
368
+ }
369
+ if (vt[j] === ':') {
370
+ j++;
371
+ }
372
+ if (j < vt.length && vt[j].startsWith('{')) {
373
+ const pt = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(vt[j++]));
374
+ const params = {};
375
+ let k = 0;
376
+ while (k < pt.length) {
377
+ const pkey = (0, field_parser_1.stripColon)(pt[k++]);
378
+ if (k >= pt.length) {
379
+ break;
380
+ }
381
+ if (pt[k] === ':') {
382
+ k++;
383
+ }
384
+ if (k < pt.length) {
385
+ params[pkey] = numOrString((0, tokenize_2.stripWrapping)(pt[k++]));
386
+ }
387
+ }
388
+ out.values[key] = params;
389
+ }
390
+ }
391
+ }
392
+ else {
393
+ (0, tokenize_2.unwrapBlock)(t[i++]);
394
+ }
395
+ }
396
+ return out;
397
+ }
398
+ const parseConformanceTest = function (id, data) {
399
+ const result = {
400
+ id,
401
+ name: '',
402
+ type: '',
403
+ guidance: '',
404
+ reference: '',
405
+ targets: [],
406
+ bindsTo: [],
407
+ applicability: [],
408
+ procedure: [],
409
+ measurements: [],
410
+ kind: '',
411
+ obligation: '',
412
+ obligationNote: '',
413
+ testSubject: {},
414
+ variables: [],
415
+ observables: [],
416
+ conditionsToEnforce: [],
417
+ preconditions: [],
418
+ referenceMaterials: [],
419
+ requiredCompetence: [],
420
+ acceptanceCriteria: [],
421
+ acceptanceCriteriaType: '',
422
+ acceptanceCriteriaDescription: '',
423
+ acceptancePassIf: '',
424
+ design: null,
425
+ acceptance: null,
426
+ dependencies: [],
427
+ instances: null,
428
+ inheritsFrom: '',
429
+ resultForms: [],
430
+ derivedValues: [],
431
+ sourceDiscrepancy: null,
432
+ };
433
+ (0, parse_block_1.forEachEntry)(data, (keyword, value) => {
434
+ if (keyword === 'name') {
435
+ result.name = (0, parse_block_1.unwrapped)(value);
436
+ }
437
+ else if (keyword === 'purpose') {
438
+ result.purpose = (0, parse_block_1.unwrapped)(value);
439
+ }
440
+ else if (keyword === 'method') {
441
+ result.method = (0, parse_block_1.unwrapped)(value);
442
+ }
443
+ else if (keyword === 'method_ref') {
444
+ result.methodRef = (0, tokenize_2.stripWrapping)(value());
445
+ }
446
+ else if (keyword === 'guidance') {
447
+ result.guidance = (0, parse_block_1.unwrapped)(value);
448
+ }
449
+ else if (keyword === 'type') {
450
+ result.type = value();
451
+ }
452
+ else if (keyword === 'reference') {
453
+ const refValue = value();
454
+ if (refValue.startsWith('{')) {
455
+ const inner = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(refValue));
456
+ if (inner.includes('doc') || inner.includes('clause')) {
457
+ // Structured block: reference { doc "urn:…" clause "2.5" } (v2).
458
+ // The optional third field `fragment` is the sentence sub-address
459
+ // (TODO.roadmap/26) — the dumper emits it, so the parser must
460
+ // keep it (codec symmetry, TODO.refactor/16).
461
+ const src = {
462
+ doc: '',
463
+ clause: '',
464
+ };
465
+ for (let k = 0; k + 1 < inner.length; k += 2) {
466
+ if (inner[k] === 'doc') {
467
+ src.doc = (0, tokenize_2.stripWrapping)(inner[k + 1]);
468
+ }
469
+ else if (inner[k] === 'clause') {
470
+ src.clause = (0, tokenize_2.stripWrapping)(inner[k + 1]);
471
+ }
472
+ else if (inner[k] === 'fragment') {
473
+ src.fragment = (0, tokenize_2.stripWrapping)(inner[k + 1]);
474
+ }
475
+ }
476
+ if (!result.sourceRef) {
477
+ result.sourceRef = src;
478
+ }
479
+ (result.sourceRefs ??= []).push(src);
480
+ if (!result.reference) {
481
+ result.reference = src.doc;
482
+ }
483
+ }
484
+ else {
485
+ // Legacy block: reference { R60doc#2.10.1 } — scalar inside braces.
486
+ // Clear sourceRefs as well as sourceRef: a mixed construct
487
+ // (structured blocks then a legacy scalar) must not dump
488
+ // structured blocks its scalar fields deny.
489
+ result.sourceRef = null;
490
+ result.sourceRefs = undefined;
491
+ result.reference = (0, tokenize_2.unwrapBlock)(refValue).trim();
492
+ }
493
+ }
494
+ else {
495
+ result.sourceRef = null;
496
+ result.sourceRefs = undefined;
497
+ result.reference = refValue;
498
+ }
499
+ }
500
+ else if (keyword === 'targets') {
501
+ result.targets = (0, tokenize_2.tokenizePackage)(value());
502
+ }
503
+ else if (keyword === 'binds_to') {
504
+ result.bindsTo = (0, tokenize_2.tokenizePackage)(value());
505
+ }
506
+ else if (keyword === 'applicability') {
507
+ result.applicability = (0, field_parser_1.parseApplicability)((0, tokenize_2.unwrapBlock)(value()));
508
+ }
509
+ else if (keyword === 'procedure') {
510
+ const block = value();
511
+ const tokens = (0, tokenize_2.tokenizePackage)(block);
512
+ let i = 0;
513
+ while (i < tokens.length) {
514
+ const order = parseInt(tokens[i], 10);
515
+ if (!isNaN(order) && i + 1 < tokens.length) {
516
+ const action = (0, parse_block_1.unwrapped)(() => tokens[i + 1]);
517
+ const step = {
518
+ order,
519
+ action,
520
+ outputs: [],
521
+ };
522
+ i += 2;
523
+ if (tokens[i] === 'inputs' && i + 1 < tokens.length) {
524
+ step.inputs = readStringList(tokens[i + 1]);
525
+ i += 2;
526
+ }
527
+ if (tokens[i] === 'outputs' && i + 1 < tokens.length) {
528
+ step.outputs = readStringList(tokens[i + 1]);
529
+ i += 2;
530
+ }
531
+ result.procedure.push(step);
532
+ }
533
+ else {
534
+ i++;
535
+ }
536
+ }
537
+ }
538
+ else if (keyword === 'procedure_steps') {
539
+ result.procedureSteps = readStringList(value());
540
+ }
541
+ else if (keyword === 'kind') {
542
+ result.kind = (0, tokenize_2.stripWrapping)(value());
543
+ }
544
+ else if (keyword === 'obligation') {
545
+ result.obligation = (0, tokenize_2.stripWrapping)(value());
546
+ }
547
+ else if (keyword === 'obligation_note') {
548
+ result.obligationNote = (0, parse_block_1.unwrapped)(value);
549
+ }
550
+ else if (keyword === 'test_subject') {
551
+ result.testSubject = parseTestSubject((0, tokenize_2.unwrapBlock)(value()));
552
+ }
553
+ else if (keyword === 'variables') {
554
+ result.variables = parseTestVariables((0, tokenize_2.unwrapBlock)(value()));
555
+ }
556
+ else if (keyword === 'observables') {
557
+ result.observables = parseObservables((0, tokenize_2.unwrapBlock)(value()));
558
+ }
559
+ else if (keyword === 'conditions_to_enforce' ||
560
+ keyword === 'conditionsToEnforce') {
561
+ result.conditionsToEnforce = readStringList(value());
562
+ }
563
+ else if (keyword === 'preconditions') {
564
+ result.preconditions = parsePreconditions((0, tokenize_2.unwrapBlock)(value()));
565
+ }
566
+ else if (keyword === 'reference_materials') {
567
+ result.referenceMaterials = readStringList(value());
568
+ }
569
+ else if (keyword === 'required_competence') {
570
+ result.requiredCompetence = (0, competenceKind_1.parseRequiredCompetence)((0, tokenize_2.unwrapBlock)(value()));
571
+ }
572
+ else if (keyword === 'acceptance_criteria') {
573
+ parseAcceptanceCriteria((0, tokenize_2.unwrapBlock)(value()), result);
574
+ }
575
+ else if (keyword === 'design') {
576
+ result.design = (0, design_1.parseDesign)((0, tokenize_2.unwrapBlock)(value()));
577
+ }
578
+ else if (keyword === 'acceptance') {
579
+ result.acceptance = (0, acceptance_1.parseAcceptance)((0, tokenize_2.unwrapBlock)(value()));
580
+ }
581
+ else if (keyword === 'dependencies') {
582
+ result.dependencies = readStringList(value());
583
+ }
584
+ else if (keyword === 'instances') {
585
+ result.instances = parseInstances((0, tokenize_2.unwrapBlock)(value()));
586
+ }
587
+ else if (keyword === 'inherits_from') {
588
+ result.inheritsFrom = (0, tokenize_2.stripWrapping)(value());
589
+ }
590
+ else if (keyword === 'result_forms') {
591
+ result.resultForms = readStringList(value());
592
+ }
593
+ else if (keyword === 'produces_artifacts') {
594
+ result.producesArtifacts = readStringList(value());
595
+ }
596
+ else if (keyword === 'report_rows') {
597
+ result.reportRows = readStringList(value());
598
+ }
599
+ else if (keyword === 'derived_values') {
600
+ result.derivedValues = parseDerivedValues((0, tokenize_2.unwrapBlock)(value()));
601
+ }
602
+ else if (keyword === 'validate_measurement') {
603
+ const block = value();
604
+ const tokens = (0, tokenize_2.tokenizePackage)(block);
605
+ for (const t of tokens) {
606
+ if (t.startsWith('"')) {
607
+ result.measurements.push((0, tokenize_2.unwrapBlock)(t));
608
+ }
609
+ }
610
+ }
611
+ else if (keyword === 'source_discrepancy') {
612
+ result.sourceDiscrepancy = (0, sourceDiscrepancy_1.parseSourceDiscrepancy)((0, tokenize_2.unwrapBlock)(value()));
613
+ }
614
+ else {
615
+ return false;
616
+ }
617
+ return true;
618
+ }, { construct: 'conformance_test', id });
619
+ return ctx => {
620
+ ctx.conformanceTests[id] = result;
621
+ return ctx;
622
+ };
623
+ };
624
+ exports.parseConformanceTest = parseConformanceTest;
625
+ const dumpConformanceTest = function (ct) {
626
+ let out = 'conformance_test ' + ct.id + ' {\n';
627
+ if (ct.name) {
628
+ out += ' name "' + (0, tokenize_2.escapeString)(ct.name) + '"\n';
629
+ }
630
+ if (ct.type) {
631
+ out += ' type ' + ct.type + '\n';
632
+ }
633
+ if (ct.purpose) {
634
+ out += ' purpose "' + (0, tokenize_2.escapeString)(ct.purpose) + '"\n';
635
+ }
636
+ if (ct.method) {
637
+ out += ' method "' + (0, tokenize_2.escapeString)(ct.method) + '"\n';
638
+ }
639
+ if (ct.methodRef) {
640
+ out += ' method_ref ' + ct.methodRef + '\n';
641
+ }
642
+ if (ct.guidance) {
643
+ out += ' guidance "' + (0, tokenize_2.escapeString)(ct.guidance) + '"\n';
644
+ }
645
+ if (ct.sourceRefs && ct.sourceRefs.length > 0) {
646
+ for (const src of ct.sourceRefs) {
647
+ out +=
648
+ ' reference { doc "' +
649
+ (0, tokenize_2.escapeString)(src.doc) +
650
+ '" clause "' +
651
+ (0, tokenize_2.escapeString)(src.clause) +
652
+ '"' +
653
+ (src.fragment ? ' fragment "' + (0, tokenize_2.escapeString)(src.fragment) + '"' : '') +
654
+ ' }\n';
655
+ }
656
+ }
657
+ else if (ct.sourceRef && ct.sourceRef.doc) {
658
+ out +=
659
+ ' reference { doc "' +
660
+ (0, tokenize_2.escapeString)(ct.sourceRef.doc) +
661
+ '" clause "' +
662
+ (0, tokenize_2.escapeString)(ct.sourceRef.clause) +
663
+ '"' +
664
+ (ct.sourceRef.fragment
665
+ ? ' fragment "' + (0, tokenize_2.escapeString)(ct.sourceRef.fragment) + '"'
666
+ : '') +
667
+ ' }\n';
668
+ }
669
+ else if (ct.reference) {
670
+ out += ' reference ' + ct.reference + '\n';
671
+ }
672
+ if (ct.targets.length > 0) {
673
+ out += ' targets {\n';
674
+ for (const t of ct.targets) {
675
+ out += ' ' + t + '\n';
676
+ }
677
+ out += ' }\n';
678
+ }
679
+ if (ct.bindsTo && ct.bindsTo.length > 0) {
680
+ out += ' binds_to {\n';
681
+ for (const b of ct.bindsTo) {
682
+ out += ' ' + b + '\n';
683
+ }
684
+ out += ' }\n';
685
+ }
686
+ if (ct.applicability.length > 0) {
687
+ out +=
688
+ ' applicability {\n ' +
689
+ (0, field_parser_1.dumpApplicabilityEntries)(ct.applicability).trim() +
690
+ '\n }\n';
691
+ }
692
+ if (ct.procedure.length > 0) {
693
+ out += ' procedure {\n';
694
+ for (const step of ct.procedure) {
695
+ let line = ' ' + step.order + ' "' + (0, tokenize_2.escapeString)(step.action) + '"';
696
+ if (step.inputs && step.inputs.length > 0) {
697
+ line += ' inputs { ' + step.inputs.join(' ') + ' }';
698
+ }
699
+ if (step.outputs.length > 0) {
700
+ line += ' outputs { ' + step.outputs.join(' ') + ' }';
701
+ }
702
+ out += line + '\n';
703
+ }
704
+ out += ' }\n';
705
+ }
706
+ if (ct.procedureSteps && ct.procedureSteps.length > 0) {
707
+ out += ' procedure_steps { ' + ct.procedureSteps.join(' ') + ' }\n';
708
+ }
709
+ if (ct.measurements.length > 0) {
710
+ out += ' validate_measurement {\n';
711
+ for (const m of ct.measurements) {
712
+ out += ' "' + (0, tokenize_2.escapeString)(m) + '"\n';
713
+ }
714
+ out += ' }\n';
715
+ }
716
+ if (ct.kind) {
717
+ out += ' kind ' + ct.kind + '\n';
718
+ }
719
+ if (ct.obligation) {
720
+ out += ' obligation ' + ct.obligation + '\n';
721
+ }
722
+ if (ct.obligationNote) {
723
+ out += ' obligation_note "' + (0, tokenize_2.escapeString)(ct.obligationNote) + '"\n';
724
+ }
725
+ if (Object.keys(ct.testSubject).length > 0) {
726
+ out += ' test_subject {\n';
727
+ for (const [k, v] of Object.entries(ct.testSubject)) {
728
+ out += ' ' + k + ': "' + (0, tokenize_2.escapeString)(v) + '"\n';
729
+ }
730
+ out += ' }\n';
731
+ }
732
+ if (ct.variables.length > 0) {
733
+ out += ' variables {\n';
734
+ for (const v of ct.variables) {
735
+ let line = ' variable ' + v.name + ' { ';
736
+ if (v.type) {
737
+ line += 'type ' + v.type + ' ';
738
+ }
739
+ if (v.unit) {
740
+ line += 'unit "' + (0, tokenize_2.escapeString)(v.unit) + '" ';
741
+ }
742
+ if (v.source) {
743
+ line += 'source ' + v.source + ' ';
744
+ }
745
+ if (v.derivation) {
746
+ line += 'derivation "' + (0, tokenize_2.escapeString)(v.derivation) + '" ';
747
+ }
748
+ if (v.description) {
749
+ line += 'description "' + (0, tokenize_2.escapeString)(v.description) + '" ';
750
+ }
751
+ if (v.itemType) {
752
+ line += 'item_type "' + (0, tokenize_2.escapeString)(v.itemType) + '" ';
753
+ }
754
+ if (v.series) {
755
+ line += (0, series_1.dumpSeriesDecl)(v.series) + ' ';
756
+ }
757
+ if (v.provenance) {
758
+ let pv = 'provenance { ';
759
+ if (v.provenance.channel) {
760
+ pv += 'channel ' + v.provenance.channel + ' ';
761
+ }
762
+ if (v.provenance.ref) {
763
+ pv += 'ref "' + (0, tokenize_2.escapeString)(v.provenance.ref) + '" ';
764
+ }
765
+ if (v.provenance.observedAt) {
766
+ pv += 'observed_at ' + v.provenance.observedAt + ' ';
767
+ }
768
+ if (v.provenance.limitation) {
769
+ pv += 'limitation "' + (0, tokenize_2.escapeString)(v.provenance.limitation) + '" ';
770
+ }
771
+ line += pv + '} ';
772
+ }
773
+ out += line + '}\n';
774
+ }
775
+ out += ' }\n';
776
+ }
777
+ if (ct.observables.length > 0) {
778
+ out += ' observables {\n';
779
+ for (const o of ct.observables) {
780
+ let line = ' observable ' + o.name + ' { ';
781
+ if (o.quantityKind) {
782
+ line += 'quantity_kind ' + o.quantityKind + ' ';
783
+ }
784
+ if (o.unit) {
785
+ line += 'unit "' + (0, tokenize_2.escapeString)(o.unit) + '" ';
786
+ }
787
+ if (o.as) {
788
+ line += 'as "' + (0, tokenize_2.escapeString)(o.as) + '" ';
789
+ }
790
+ out += line + '}\n';
791
+ }
792
+ out += ' }\n';
793
+ }
794
+ if (ct.conditionsToEnforce.length > 0) {
795
+ out +=
796
+ ' conditions_to_enforce { ' + ct.conditionsToEnforce.join(' ') + ' }\n';
797
+ }
798
+ if (ct.preconditions.length > 0) {
799
+ out += ' preconditions {\n';
800
+ for (const p of ct.preconditions) {
801
+ let line = ' precondition ' + p.id + ' { ';
802
+ if (p.check) {
803
+ line += 'check "' + (0, tokenize_2.escapeString)(p.check) + '" ';
804
+ }
805
+ if (p.description) {
806
+ line += 'description "' + (0, tokenize_2.escapeString)(p.description) + '" ';
807
+ }
808
+ line += 'on_violation ' + p.onViolation + ' ';
809
+ if (p.onUnresolvable) {
810
+ line += 'on_unresolvable ' + p.onUnresolvable + ' ';
811
+ }
812
+ out += line + '}\n';
813
+ }
814
+ out += ' }\n';
815
+ }
816
+ if (ct.referenceMaterials.length > 0) {
817
+ out +=
818
+ ' reference_materials { ' + ct.referenceMaterials.join(' ') + ' }\n';
819
+ }
820
+ if (ct.requiredCompetence.length > 0) {
821
+ out += (0, competenceKind_1.dumpRequiredCompetence)(ct.requiredCompetence);
822
+ }
823
+ if (ct.acceptanceCriteria.length > 0 ||
824
+ ct.acceptanceCriteriaType ||
825
+ ct.acceptancePassIf) {
826
+ out += ' acceptance_criteria {\n';
827
+ if (ct.acceptanceCriteriaType) {
828
+ out += ' type ' + ct.acceptanceCriteriaType + '\n';
829
+ }
830
+ if (ct.acceptanceCriteriaDescription) {
831
+ out +=
832
+ ' description "' +
833
+ (0, tokenize_2.escapeString)(ct.acceptanceCriteriaDescription) +
834
+ '"\n';
835
+ }
836
+ if (ct.acceptancePassIf) {
837
+ out += ' pass_if "' + (0, tokenize_2.escapeString)(ct.acceptancePassIf) + '"\n';
838
+ }
839
+ for (const c of ct.acceptanceCriteria) {
840
+ // Documentary criteria carry no name — emit `criterion "" { ... }`
841
+ // so the re-parse doesn't swallow the block as the name.
842
+ let line = ' criterion ' + (c.item || '""') + ' { ';
843
+ if (c.passIf) {
844
+ line += 'pass_if "' + (0, tokenize_2.escapeString)(c.passIf) + '" ';
845
+ }
846
+ if (c.requirementId) {
847
+ line += 'requirement ' + c.requirementId + ' ';
848
+ }
849
+ if (c.criterion) {
850
+ line += 'criterion ' + c.criterion + ' ';
851
+ }
852
+ if (c.optional) {
853
+ line += 'optional true ';
854
+ }
855
+ if (c.description) {
856
+ line += 'description "' + (0, tokenize_2.escapeString)(c.description) + '" ';
857
+ }
858
+ if (c.reference) {
859
+ line += 'reference "' + (0, tokenize_2.escapeString)(c.reference) + '" ';
860
+ }
861
+ if (c.accepts) {
862
+ line +=
863
+ 'accepts { verdict ' +
864
+ c.accepts.verdict +
865
+ ' op ' +
866
+ c.accepts.op +
867
+ ' limit "' +
868
+ (0, tokenize_2.escapeString)(c.accepts.limit) +
869
+ '" } ';
870
+ }
871
+ if (c.sourceDiscrepancy) {
872
+ line += (0, sourceDiscrepancy_1.dumpSourceDiscrepancy)(c.sourceDiscrepancy, '') + ' ';
873
+ }
874
+ out += line + '}\n';
875
+ }
876
+ out += ' }\n';
877
+ }
878
+ if (ct.design) {
879
+ out += (0, design_1.dumpDesign)(ct.design, ' ');
880
+ }
881
+ if (ct.acceptance) {
882
+ out += (0, acceptance_1.dumpAcceptance)(ct.acceptance, ' ') + '\n';
883
+ }
884
+ if (ct.dependencies.length > 0) {
885
+ out += ' dependencies { ' + ct.dependencies.join(' ') + ' }\n';
886
+ }
887
+ if (ct.instances) {
888
+ let line = ' instances { by ' + ct.instances.by + ' values { ';
889
+ for (const [key, params] of Object.entries(ct.instances.values)) {
890
+ line += key + ' { ';
891
+ for (const [pk, pv] of Object.entries(params)) {
892
+ line += pk + ': ' + pv + ' ';
893
+ }
894
+ line += '} ';
895
+ }
896
+ out += line + '} }\n';
897
+ }
898
+ if (ct.inheritsFrom) {
899
+ out += ' inherits_from ' + ct.inheritsFrom + '\n';
900
+ }
901
+ if (ct.resultForms.length > 0) {
902
+ out += ' result_forms { ' + ct.resultForms.join(' ') + ' }\n';
903
+ }
904
+ if (ct.producesArtifacts && ct.producesArtifacts.length > 0) {
905
+ out += ' produces_artifacts { ' + ct.producesArtifacts.join(' ') + ' }\n';
906
+ }
907
+ if (ct.reportRows && ct.reportRows.length > 0) {
908
+ out += ' report_rows { ' + ct.reportRows.join(' ') + ' }\n';
909
+ }
910
+ if (ct.derivedValues.length > 0) {
911
+ out += ' derived_values {\n';
912
+ for (const d of ct.derivedValues) {
913
+ out +=
914
+ ' value ' +
915
+ d.name +
916
+ ' { expression "' +
917
+ (0, tokenize_2.escapeString)(d.expression) +
918
+ '" }\n';
919
+ }
920
+ out += ' }\n';
921
+ }
922
+ if (ct.sourceDiscrepancy) {
923
+ out += (0, sourceDiscrepancy_1.dumpSourceDiscrepancy)(ct.sourceDiscrepancy, ' ') + '\n';
924
+ }
925
+ out += '}\n';
926
+ return out;
927
+ };
928
+ exports.dumpConformanceTest = dumpConformanceTest;
929
+ //# sourceMappingURL=conformanceTest.js.map