@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
@@ -0,0 +1,847 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────
3
+ // Test-design block parser + dumper (conformance_test `design { … }`).
4
+ //
5
+ // Maps data/schemas/cc.yaml $defs/testDesign (TODO.refactor/09):
6
+ //
7
+ // design {
8
+ // counts {
9
+ // count field_automatic {
10
+ // min 500
11
+ // clause "4.4"
12
+ // override { condition statistical_analysis by evaluator note "..." }
13
+ // }
14
+ // }
15
+ // severities {
16
+ // severity "1 dry heat (operating)" {
17
+ // criterion I/MPE
18
+ // footnotes { a b }
19
+ // env climatic_environment_class { level 2 }
20
+ // env mechanical_environment_class null
21
+ // env electromagnetic_environment_class {
22
+ // amplitude 10
23
+ // unit "V/m"
24
+ // variable field_strength
25
+ // columns {
26
+ // ac { amplitude 10 unit "V/m" }
27
+ // dc null
28
+ // vehicle_dc { amplitude 10 unit "V" note "..." }
29
+ // }
30
+ // }
31
+ // }
32
+ // }
33
+ // test_points { ref r144-cgm-points }
34
+ // schedule {
35
+ // duration P7D
36
+ // cadence PT24H
37
+ // phases { phase soak { condition "..." window PT2H } }
38
+ // constraints { "apply D_max and hold" }
39
+ // }
40
+ // specimens {
41
+ // count 1
42
+ // max_additional 2
43
+ // selection "ocl{...}"
44
+ // continuity same_eut
45
+ // rules { unit-continuity }
46
+ // }
47
+ // }
48
+ // ─────────────────────────────────────────────────────────────────────
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.parseDesign = parseDesign;
51
+ exports.dumpDesign = dumpDesign;
52
+ const tokenize_1 = require("../tokenize");
53
+ const tokenize_2 = require("../tokenize");
54
+ const field_parser_1 = require("./field-parser");
55
+ function readQuotedList(block) {
56
+ return (0, tokenize_1.default)((0, tokenize_2.stripWrapping)(block))
57
+ .map(tokenize_2.stripWrapping)
58
+ .filter(s => s.length > 0);
59
+ }
60
+ function parseSeverityCell(block) {
61
+ const cell = {
62
+ level: null,
63
+ code: '',
64
+ amplitude: null,
65
+ unit: '',
66
+ note: '',
67
+ variable: '',
68
+ };
69
+ const t = (0, tokenize_1.default)(block);
70
+ let i = 0;
71
+ while (i < t.length) {
72
+ const cmd = t[i++];
73
+ if (i >= t.length) {
74
+ break;
75
+ }
76
+ if (cmd === 'level') {
77
+ cell.level = Number((0, tokenize_2.stripWrapping)(t[i++]));
78
+ }
79
+ else if (cmd === 'code') {
80
+ cell.code = (0, tokenize_2.stripWrapping)(t[i++]);
81
+ }
82
+ else if (cmd === 'amplitude') {
83
+ cell.amplitude = Number((0, tokenize_2.stripWrapping)(t[i++]));
84
+ }
85
+ else if (cmd === 'unit') {
86
+ cell.unit = (0, tokenize_2.stripWrapping)(t[i++]);
87
+ }
88
+ else if (cmd === 'note') {
89
+ cell.note = (0, tokenize_2.stripWrapping)(t[i++]);
90
+ }
91
+ else if (cmd === 'variable') {
92
+ cell.variable = (0, tokenize_2.stripWrapping)(t[i++]);
93
+ }
94
+ else {
95
+ (0, tokenize_2.unwrapBlock)(t[i++]);
96
+ }
97
+ }
98
+ return cell;
99
+ }
100
+ function parseSeverityValue(block) {
101
+ const value = {
102
+ level: null,
103
+ code: '',
104
+ amplitude: null,
105
+ unit: '',
106
+ note: '',
107
+ variable: '',
108
+ columns: null,
109
+ };
110
+ const t = (0, tokenize_1.default)(block);
111
+ let i = 0;
112
+ while (i < t.length) {
113
+ const cmd = t[i++];
114
+ if (i >= t.length) {
115
+ break;
116
+ }
117
+ if (cmd === 'level') {
118
+ value.level = Number((0, tokenize_2.stripWrapping)(t[i++]));
119
+ }
120
+ else if (cmd === 'code') {
121
+ value.code = (0, tokenize_2.stripWrapping)(t[i++]);
122
+ }
123
+ else if (cmd === 'amplitude') {
124
+ value.amplitude = Number((0, tokenize_2.stripWrapping)(t[i++]));
125
+ }
126
+ else if (cmd === 'unit') {
127
+ value.unit = (0, tokenize_2.stripWrapping)(t[i++]);
128
+ }
129
+ else if (cmd === 'note') {
130
+ value.note = (0, tokenize_2.stripWrapping)(t[i++]);
131
+ }
132
+ else if (cmd === 'variable') {
133
+ value.variable = (0, tokenize_2.stripWrapping)(t[i++]);
134
+ }
135
+ else if (cmd === 'columns') {
136
+ const ct = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
137
+ const columns = {
138
+ ac: null,
139
+ dc: null,
140
+ vehicleDc: null,
141
+ };
142
+ let j = 0;
143
+ while (j < ct.length) {
144
+ const col = (0, field_parser_1.stripColon)(ct[j++]);
145
+ if (j >= ct.length) {
146
+ break;
147
+ }
148
+ const tok = ct[j++];
149
+ const cell = tok.startsWith('{')
150
+ ? parseSeverityCell((0, tokenize_2.unwrapBlock)(tok))
151
+ : null;
152
+ if (col === 'ac') {
153
+ columns.ac = cell;
154
+ }
155
+ else if (col === 'dc') {
156
+ columns.dc = cell;
157
+ }
158
+ else if (col === 'vehicle_dc') {
159
+ columns.vehicleDc = cell;
160
+ }
161
+ }
162
+ value.columns = columns;
163
+ }
164
+ else {
165
+ (0, tokenize_2.unwrapBlock)(t[i++]);
166
+ }
167
+ }
168
+ return value;
169
+ }
170
+ function parseCounts(block) {
171
+ const out = [];
172
+ const t = (0, tokenize_1.default)(block);
173
+ let i = 0;
174
+ while (i < t.length) {
175
+ const cmd = t[i++];
176
+ if (cmd !== 'count') {
177
+ if (i < t.length) {
178
+ (0, tokenize_2.unwrapBlock)(t[i - 1]);
179
+ }
180
+ continue;
181
+ }
182
+ const count = {
183
+ context: (0, tokenize_2.stripWrapping)(t[i++]),
184
+ minCount: 0,
185
+ clause: '',
186
+ note: '',
187
+ override: null,
188
+ };
189
+ if (i < t.length && t[i].startsWith('{')) {
190
+ const ct = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
191
+ let j = 0;
192
+ while (j < ct.length) {
193
+ const cc = ct[j++];
194
+ if (j >= ct.length) {
195
+ break;
196
+ }
197
+ if (cc === 'min') {
198
+ count.minCount = Number((0, tokenize_2.stripWrapping)(ct[j++]));
199
+ }
200
+ else if (cc === 'clause') {
201
+ count.clause = (0, tokenize_2.stripWrapping)(ct[j++]);
202
+ }
203
+ else if (cc === 'note') {
204
+ count.note = (0, tokenize_2.stripWrapping)(ct[j++]);
205
+ }
206
+ else if (cc === 'override') {
207
+ const ot = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(ct[j++]));
208
+ const override = { condition: '', by: '', note: '' };
209
+ let k = 0;
210
+ while (k < ot.length) {
211
+ const oc = ot[k++];
212
+ if (k >= ot.length) {
213
+ break;
214
+ }
215
+ if (oc === 'condition') {
216
+ override.condition = (0, tokenize_2.stripWrapping)(ot[k++]);
217
+ }
218
+ else if (oc === 'by') {
219
+ override.by = (0, tokenize_2.stripWrapping)(ot[k++]);
220
+ }
221
+ else if (oc === 'note') {
222
+ override.note = (0, tokenize_2.stripWrapping)(ot[k++]);
223
+ }
224
+ else {
225
+ (0, tokenize_2.unwrapBlock)(ot[k++]);
226
+ }
227
+ }
228
+ count.override = override;
229
+ }
230
+ else {
231
+ (0, tokenize_2.unwrapBlock)(ct[j++]);
232
+ }
233
+ }
234
+ }
235
+ out.push(count);
236
+ }
237
+ return out;
238
+ }
239
+ function parseSeverities(block) {
240
+ const out = [];
241
+ const t = (0, tokenize_1.default)(block);
242
+ let i = 0;
243
+ while (i < t.length) {
244
+ const cmd = t[i++];
245
+ if (cmd !== 'severity') {
246
+ if (i < t.length) {
247
+ (0, tokenize_2.unwrapBlock)(t[i - 1]);
248
+ }
249
+ continue;
250
+ }
251
+ const severity = {
252
+ row: (0, tokenize_2.stripWrapping)(t[i++]),
253
+ envClassValues: {},
254
+ criterion: '',
255
+ footnotes: [],
256
+ };
257
+ if (i < t.length && t[i].startsWith('{')) {
258
+ const st = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
259
+ let j = 0;
260
+ while (j < st.length) {
261
+ const sc = st[j++];
262
+ if (j >= st.length) {
263
+ break;
264
+ }
265
+ if (sc === 'criterion') {
266
+ severity.criterion = (0, tokenize_2.stripWrapping)(st[j++]);
267
+ }
268
+ else if (sc === 'footnotes') {
269
+ severity.footnotes = readQuotedList(st[j++]);
270
+ }
271
+ else if (sc === 'env') {
272
+ const classId = (0, tokenize_2.stripWrapping)(st[j++]);
273
+ const tok = st[j++] ?? '';
274
+ severity.envClassValues[classId] = tok.startsWith('{')
275
+ ? parseSeverityValue((0, tokenize_2.unwrapBlock)(tok))
276
+ : null;
277
+ }
278
+ else {
279
+ (0, tokenize_2.unwrapBlock)(st[j++]);
280
+ }
281
+ }
282
+ }
283
+ out.push(severity);
284
+ }
285
+ return out;
286
+ }
287
+ function parseSchedule(block) {
288
+ const schedule = {
289
+ duration: '',
290
+ cadence: '',
291
+ phases: [],
292
+ constraints: [],
293
+ };
294
+ const t = (0, tokenize_1.default)(block);
295
+ let i = 0;
296
+ while (i < t.length) {
297
+ const cmd = t[i++];
298
+ if (i >= t.length) {
299
+ break;
300
+ }
301
+ if (cmd === 'duration') {
302
+ schedule.duration = (0, tokenize_2.stripWrapping)(t[i++]);
303
+ }
304
+ else if (cmd === 'cadence') {
305
+ schedule.cadence = (0, tokenize_2.stripWrapping)(t[i++]);
306
+ }
307
+ else if (cmd === 'phases') {
308
+ const pt = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
309
+ let j = 0;
310
+ while (j < pt.length) {
311
+ const pc = pt[j++];
312
+ if (pc !== 'phase') {
313
+ if (j < pt.length) {
314
+ (0, tokenize_2.unwrapBlock)(pt[j - 1]);
315
+ }
316
+ continue;
317
+ }
318
+ const phase = {
319
+ id: (0, tokenize_2.stripWrapping)(pt[j++]),
320
+ condition: '',
321
+ window: '',
322
+ };
323
+ if (j < pt.length && pt[j].startsWith('{')) {
324
+ const ht = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(pt[j++]));
325
+ let k = 0;
326
+ while (k < ht.length) {
327
+ const hc = ht[k++];
328
+ if (k >= ht.length) {
329
+ break;
330
+ }
331
+ if (hc === 'condition') {
332
+ phase.condition = (0, tokenize_2.stripWrapping)(ht[k++]);
333
+ }
334
+ else if (hc === 'window') {
335
+ phase.window = (0, tokenize_2.stripWrapping)(ht[k++]);
336
+ }
337
+ else {
338
+ (0, tokenize_2.unwrapBlock)(ht[k++]);
339
+ }
340
+ }
341
+ }
342
+ schedule.phases.push(phase);
343
+ }
344
+ }
345
+ else if (cmd === 'constraints') {
346
+ schedule.constraints = readQuotedList(t[i++]);
347
+ }
348
+ else {
349
+ (0, tokenize_2.unwrapBlock)(t[i++]);
350
+ }
351
+ }
352
+ return schedule;
353
+ }
354
+ function parseSpecimens(block) {
355
+ const specimens = {
356
+ count: null,
357
+ maxAdditional: null,
358
+ selection: '',
359
+ selectionRef: '',
360
+ continuity: '',
361
+ rules: [],
362
+ };
363
+ const t = (0, tokenize_1.default)(block);
364
+ let i = 0;
365
+ while (i < t.length) {
366
+ const cmd = t[i++];
367
+ if (i >= t.length) {
368
+ break;
369
+ }
370
+ if (cmd === 'count') {
371
+ specimens.count = Number((0, tokenize_2.stripWrapping)(t[i++]));
372
+ }
373
+ else if (cmd === 'max_additional') {
374
+ specimens.maxAdditional = Number((0, tokenize_2.stripWrapping)(t[i++]));
375
+ }
376
+ else if (cmd === 'selection') {
377
+ const tok = t[i++];
378
+ if (tok.startsWith('{')) {
379
+ // selection { ref <rule-id> } — sample-selection rule reference.
380
+ const st = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(tok));
381
+ let j = 0;
382
+ while (j < st.length) {
383
+ const sc = st[j++];
384
+ if (j >= st.length) {
385
+ break;
386
+ }
387
+ if (sc === 'ref') {
388
+ specimens.selectionRef = (0, tokenize_2.stripWrapping)(st[j++]);
389
+ }
390
+ else {
391
+ (0, tokenize_2.unwrapBlock)(st[j++]);
392
+ }
393
+ }
394
+ }
395
+ else {
396
+ specimens.selection = (0, tokenize_2.stripWrapping)(tok);
397
+ }
398
+ }
399
+ else if (cmd === 'continuity') {
400
+ specimens.continuity = (0, tokenize_2.stripWrapping)(t[i++]);
401
+ }
402
+ else if (cmd === 'rules') {
403
+ specimens.rules = readQuotedList(t[i++]);
404
+ }
405
+ else {
406
+ (0, tokenize_2.unwrapBlock)(t[i++]);
407
+ }
408
+ }
409
+ return specimens;
410
+ }
411
+ /** Parse the content of a `design { … }` block. */
412
+ function parseDesign(block) {
413
+ const design = {
414
+ counts: [],
415
+ severities: [],
416
+ testPointsRef: '',
417
+ schedule: null,
418
+ specimens: null,
419
+ field: null,
420
+ simulation: null,
421
+ software: null,
422
+ };
423
+ const t = (0, tokenize_1.default)(block);
424
+ let i = 0;
425
+ while (i < t.length) {
426
+ const cmd = t[i++];
427
+ if (i >= t.length) {
428
+ break;
429
+ }
430
+ if (cmd === 'counts') {
431
+ design.counts = parseCounts((0, tokenize_2.unwrapBlock)(t[i++]));
432
+ }
433
+ else if (cmd === 'severities') {
434
+ design.severities = parseSeverities((0, tokenize_2.unwrapBlock)(t[i++]));
435
+ }
436
+ else if (cmd === 'test_points') {
437
+ const pt = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
438
+ let j = 0;
439
+ while (j < pt.length) {
440
+ const pc = pt[j++];
441
+ if (j >= pt.length) {
442
+ break;
443
+ }
444
+ if (pc === 'ref') {
445
+ design.testPointsRef = (0, tokenize_2.stripWrapping)(pt[j++]);
446
+ }
447
+ else {
448
+ (0, tokenize_2.unwrapBlock)(pt[j++]);
449
+ }
450
+ }
451
+ }
452
+ else if (cmd === 'schedule') {
453
+ design.schedule = parseSchedule((0, tokenize_2.unwrapBlock)(t[i++]));
454
+ }
455
+ else if (cmd === 'specimens') {
456
+ design.specimens = parseSpecimens((0, tokenize_2.unwrapBlock)(t[i++]));
457
+ }
458
+ else if (cmd === 'field') {
459
+ design.field = parseField((0, tokenize_2.unwrapBlock)(t[i++]));
460
+ }
461
+ else if (cmd === 'simulation') {
462
+ design.simulation = parseSimulation((0, tokenize_2.unwrapBlock)(t[i++]));
463
+ }
464
+ else if (cmd === 'software') {
465
+ design.software = parseSoftware((0, tokenize_2.unwrapBlock)(t[i++]));
466
+ }
467
+ else {
468
+ (0, tokenize_2.unwrapBlock)(t[i++]);
469
+ }
470
+ }
471
+ return design;
472
+ }
473
+ /** kind: field — site_selection / traffic_conditions / reference_meter. */
474
+ function parseField(block) {
475
+ const field = {
476
+ siteSelection: '',
477
+ trafficConditions: '',
478
+ referenceMeter: null,
479
+ };
480
+ const t = (0, tokenize_1.default)(block);
481
+ let i = 0;
482
+ while (i < t.length) {
483
+ const cmd = t[i++];
484
+ if (i >= t.length) {
485
+ break;
486
+ }
487
+ if (cmd === 'site_selection') {
488
+ field.siteSelection = (0, tokenize_2.stripWrapping)(t[i++]);
489
+ }
490
+ else if (cmd === 'traffic_conditions') {
491
+ field.trafficConditions = (0, tokenize_2.stripWrapping)(t[i++]);
492
+ }
493
+ else if (cmd === 'reference_meter') {
494
+ const rm = { description: '', uncertaintyBudget: '' };
495
+ const rt = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
496
+ let j = 0;
497
+ while (j < rt.length) {
498
+ const rc = rt[j++];
499
+ if (j >= rt.length) {
500
+ break;
501
+ }
502
+ if (rc === 'description') {
503
+ rm.description = (0, tokenize_2.stripWrapping)(rt[j++]);
504
+ }
505
+ else if (rc === 'uncertainty_budget') {
506
+ rm.uncertaintyBudget = (0, tokenize_2.stripWrapping)(rt[j++]);
507
+ }
508
+ else {
509
+ (0, tokenize_2.unwrapBlock)(rt[j++]);
510
+ }
511
+ }
512
+ field.referenceMeter = rm;
513
+ }
514
+ else {
515
+ (0, tokenize_2.unwrapBlock)(t[i++]);
516
+ }
517
+ }
518
+ return field;
519
+ }
520
+ /** kind: simulation — simulator_kind / signal / uncertainty_budget / validation. */
521
+ function parseSimulation(block) {
522
+ const sim = {
523
+ simulatorKind: '',
524
+ signal: '',
525
+ uncertaintyBudget: '',
526
+ validation: '',
527
+ };
528
+ const t = (0, tokenize_1.default)(block);
529
+ let i = 0;
530
+ while (i < t.length) {
531
+ const cmd = t[i++];
532
+ if (i >= t.length) {
533
+ break;
534
+ }
535
+ if (cmd === 'simulator_kind') {
536
+ sim.simulatorKind = (0, tokenize_2.stripWrapping)(t[i++]);
537
+ }
538
+ else if (cmd === 'signal') {
539
+ sim.signal = (0, tokenize_2.stripWrapping)(t[i++]);
540
+ }
541
+ else if (cmd === 'uncertainty_budget') {
542
+ sim.uncertaintyBudget = (0, tokenize_2.stripWrapping)(t[i++]);
543
+ }
544
+ else if (cmd === 'validation') {
545
+ sim.validation = (0, tokenize_2.stripWrapping)(t[i++]);
546
+ }
547
+ else {
548
+ (0, tokenize_2.unwrapBlock)(t[i++]);
549
+ }
550
+ }
551
+ return sim;
552
+ }
553
+ /** kind: software-examination — level + the D 31 item matrix. */
554
+ function parseSoftware(block) {
555
+ const software = { level: '', items: [] };
556
+ const t = (0, tokenize_1.default)(block);
557
+ let i = 0;
558
+ while (i < t.length) {
559
+ const cmd = t[i++];
560
+ if (i >= t.length) {
561
+ break;
562
+ }
563
+ if (cmd === 'level') {
564
+ software.level = (0, tokenize_2.stripWrapping)(t[i++]);
565
+ }
566
+ else if (cmd === 'items') {
567
+ const it = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
568
+ let j = 0;
569
+ while (j < it.length) {
570
+ const ic = it[j++];
571
+ if (ic !== 'item') {
572
+ if (j < it.length) {
573
+ (0, tokenize_2.unwrapBlock)(it[j - 1]);
574
+ }
575
+ continue;
576
+ }
577
+ const item = {
578
+ item: Number((0, tokenize_2.stripWrapping)(it[j++])),
579
+ name: '',
580
+ d31: '',
581
+ obligation: '',
582
+ methods: [],
583
+ clause: '',
584
+ };
585
+ if (j < it.length && it[j].startsWith('{')) {
586
+ const bt = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(it[j++]));
587
+ let k = 0;
588
+ while (k < bt.length) {
589
+ const bc = bt[k++];
590
+ if (k >= bt.length) {
591
+ break;
592
+ }
593
+ if (bc === 'name') {
594
+ item.name = (0, tokenize_2.stripWrapping)(bt[k++]);
595
+ }
596
+ else if (bc === 'd31') {
597
+ item.d31 = (0, tokenize_2.stripWrapping)(bt[k++]);
598
+ }
599
+ else if (bc === 'obligation') {
600
+ item.obligation = (0, tokenize_2.stripWrapping)(bt[k++]);
601
+ }
602
+ else if (bc === 'methods') {
603
+ item.methods = readQuotedList(bt[k++]);
604
+ }
605
+ else if (bc === 'clause') {
606
+ item.clause = (0, tokenize_2.stripWrapping)(bt[k++]);
607
+ }
608
+ else {
609
+ (0, tokenize_2.unwrapBlock)(bt[k++]);
610
+ }
611
+ }
612
+ }
613
+ software.items.push(item);
614
+ }
615
+ }
616
+ else {
617
+ (0, tokenize_2.unwrapBlock)(t[i++]);
618
+ }
619
+ }
620
+ return software;
621
+ }
622
+ function dumpCell(cell) {
623
+ let out = '';
624
+ if (cell.level !== null) {
625
+ out += 'level ' + cell.level + ' ';
626
+ }
627
+ if (cell.code) {
628
+ out += 'code "' + (0, tokenize_2.escapeString)(cell.code) + '" ';
629
+ }
630
+ if (cell.amplitude !== null) {
631
+ out += 'amplitude ' + cell.amplitude + ' ';
632
+ }
633
+ if (cell.unit) {
634
+ out += 'unit "' + (0, tokenize_2.escapeString)(cell.unit) + '" ';
635
+ }
636
+ if (cell.note) {
637
+ out += 'note "' + (0, tokenize_2.escapeString)(cell.note) + '" ';
638
+ }
639
+ if (cell.variable) {
640
+ out += 'variable ' + cell.variable + ' ';
641
+ }
642
+ return out;
643
+ }
644
+ function dumpSeverityValue(value) {
645
+ let out = dumpCell(value);
646
+ if (value.columns) {
647
+ out += 'columns { ';
648
+ out += value.columns.ac
649
+ ? 'ac { ' + dumpCell(value.columns.ac) + '} '
650
+ : 'ac null ';
651
+ out += value.columns.dc
652
+ ? 'dc { ' + dumpCell(value.columns.dc) + '} '
653
+ : 'dc null ';
654
+ out += value.columns.vehicleDc
655
+ ? 'vehicle_dc { ' + dumpCell(value.columns.vehicleDc) + '} '
656
+ : 'vehicle_dc null ';
657
+ out += '} ';
658
+ }
659
+ return out;
660
+ }
661
+ /**
662
+ * Dump a test design as a multi-line `design { … }` block (with
663
+ * trailing newline) at the given indent.
664
+ */
665
+ function dumpDesign(design, indent) {
666
+ let out = indent + 'design {\n';
667
+ if (design.counts.length > 0) {
668
+ out += indent + ' counts {\n';
669
+ for (const c of design.counts) {
670
+ let line = indent + ' count ' + c.context + ' { min ' + c.minCount + ' ';
671
+ if (c.clause) {
672
+ line += 'clause "' + (0, tokenize_2.escapeString)(c.clause) + '" ';
673
+ }
674
+ if (c.note) {
675
+ line += 'note "' + (0, tokenize_2.escapeString)(c.note) + '" ';
676
+ }
677
+ if (c.override) {
678
+ line += 'override { condition ' + c.override.condition;
679
+ line += ' by ' + c.override.by;
680
+ if (c.override.note) {
681
+ line += ' note "' + (0, tokenize_2.escapeString)(c.override.note) + '"';
682
+ }
683
+ line += ' } ';
684
+ }
685
+ out += line + '}\n';
686
+ }
687
+ out += indent + ' }\n';
688
+ }
689
+ if (design.severities.length > 0) {
690
+ out += indent + ' severities {\n';
691
+ for (const s of design.severities) {
692
+ let line = indent + ' severity "' + (0, tokenize_2.escapeString)(s.row) + '" { ';
693
+ if (s.criterion) {
694
+ line += 'criterion ' + s.criterion + ' ';
695
+ }
696
+ if (s.footnotes.length > 0) {
697
+ line += 'footnotes { ' + s.footnotes.join(' ') + ' } ';
698
+ }
699
+ for (const [classId, value] of Object.entries(s.envClassValues)) {
700
+ line +=
701
+ 'env ' +
702
+ classId +
703
+ ' ' +
704
+ (value ? '{ ' + dumpSeverityValue(value) + '}' : 'null') +
705
+ ' ';
706
+ }
707
+ out += line + '}\n';
708
+ }
709
+ out += indent + ' }\n';
710
+ }
711
+ if (design.testPointsRef) {
712
+ out += indent + ' test_points { ref ' + design.testPointsRef + ' }\n';
713
+ }
714
+ if (design.schedule) {
715
+ const s = design.schedule;
716
+ let line = indent + ' schedule { ';
717
+ if (s.duration) {
718
+ line += 'duration ' + s.duration + ' ';
719
+ }
720
+ if (s.cadence) {
721
+ line += 'cadence ' + s.cadence + ' ';
722
+ }
723
+ if (s.phases.length > 0) {
724
+ line += 'phases { ';
725
+ for (const p of s.phases) {
726
+ line += 'phase ' + p.id + ' { ';
727
+ if (p.condition) {
728
+ line += 'condition "' + (0, tokenize_2.escapeString)(p.condition) + '" ';
729
+ }
730
+ if (p.window) {
731
+ line += 'window ' + p.window + ' ';
732
+ }
733
+ line += '} ';
734
+ }
735
+ line += '} ';
736
+ }
737
+ if (s.constraints.length > 0) {
738
+ line +=
739
+ 'constraints { ' +
740
+ s.constraints.map(c => '"' + (0, tokenize_2.escapeString)(c) + '"').join(' ') +
741
+ ' } ';
742
+ }
743
+ out += line + '}\n';
744
+ }
745
+ if (design.specimens) {
746
+ const s = design.specimens;
747
+ let line = indent + ' specimens { ';
748
+ if (s.count !== null) {
749
+ line += 'count ' + s.count + ' ';
750
+ }
751
+ if (s.maxAdditional !== null) {
752
+ line += 'max_additional ' + s.maxAdditional + ' ';
753
+ }
754
+ if (s.selectionRef) {
755
+ line += 'selection { ref ' + s.selectionRef + ' } ';
756
+ }
757
+ else if (s.selection) {
758
+ line += 'selection "' + (0, tokenize_2.escapeString)(s.selection) + '" ';
759
+ }
760
+ if (s.continuity) {
761
+ line += 'continuity ' + s.continuity + ' ';
762
+ }
763
+ if (s.rules.length > 0) {
764
+ line += 'rules { ' + s.rules.join(' ') + ' } ';
765
+ }
766
+ out += line + '}\n';
767
+ }
768
+ if (design.field) {
769
+ const f = design.field;
770
+ out += indent + ' field {\n';
771
+ if (f.siteSelection) {
772
+ out +=
773
+ indent + ' site_selection "' + (0, tokenize_2.escapeString)(f.siteSelection) + '"\n';
774
+ }
775
+ if (f.trafficConditions) {
776
+ out +=
777
+ indent +
778
+ ' traffic_conditions "' +
779
+ (0, tokenize_2.escapeString)(f.trafficConditions) +
780
+ '"\n';
781
+ }
782
+ if (f.referenceMeter) {
783
+ let line = indent + ' reference_meter { ';
784
+ if (f.referenceMeter.description) {
785
+ line +=
786
+ 'description "' + (0, tokenize_2.escapeString)(f.referenceMeter.description) + '" ';
787
+ }
788
+ if (f.referenceMeter.uncertaintyBudget) {
789
+ line +=
790
+ 'uncertainty_budget ' + f.referenceMeter.uncertaintyBudget + ' ';
791
+ }
792
+ out += line + '}\n';
793
+ }
794
+ out += indent + ' }\n';
795
+ }
796
+ if (design.simulation) {
797
+ const s = design.simulation;
798
+ out += indent + ' simulation {\n';
799
+ if (s.simulatorKind) {
800
+ out += indent + ' simulator_kind ' + s.simulatorKind + '\n';
801
+ }
802
+ if (s.signal) {
803
+ out += indent + ' signal "' + (0, tokenize_2.escapeString)(s.signal) + '"\n';
804
+ }
805
+ if (s.uncertaintyBudget) {
806
+ out += indent + ' uncertainty_budget ' + s.uncertaintyBudget + '\n';
807
+ }
808
+ if (s.validation) {
809
+ out += indent + ' validation "' + (0, tokenize_2.escapeString)(s.validation) + '"\n';
810
+ }
811
+ out += indent + ' }\n';
812
+ }
813
+ if (design.software) {
814
+ const s = design.software;
815
+ out += indent + ' software {\n';
816
+ if (s.level) {
817
+ out += indent + ' level ' + s.level + '\n';
818
+ }
819
+ if (s.items.length > 0) {
820
+ out += indent + ' items {\n';
821
+ for (const it of s.items) {
822
+ let line = indent + ' item ' + it.item + ' { ';
823
+ if (it.name) {
824
+ line += 'name "' + (0, tokenize_2.escapeString)(it.name) + '" ';
825
+ }
826
+ if (it.d31) {
827
+ line += 'd31 "' + (0, tokenize_2.escapeString)(it.d31) + '" ';
828
+ }
829
+ if (it.obligation) {
830
+ line += 'obligation ' + it.obligation + ' ';
831
+ }
832
+ if (it.methods.length > 0) {
833
+ line += 'methods { ' + it.methods.join(' ') + ' } ';
834
+ }
835
+ if (it.clause) {
836
+ line += 'clause "' + (0, tokenize_2.escapeString)(it.clause) + '" ';
837
+ }
838
+ out += line + '}\n';
839
+ }
840
+ out += indent + ' }\n';
841
+ }
842
+ out += indent + ' }\n';
843
+ }
844
+ out += indent + '}\n';
845
+ return out;
846
+ }
847
+ //# sourceMappingURL=design.js.map