@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
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dumpForm = exports.parseForm = void 0;
4
4
  const tokenize_1 = require("../tokenize");
5
+ const tokenize_2 = require("../tokenize");
5
6
  const field_parser_1 = require("./field-parser");
6
7
  const parseForm = function (id, data) {
7
8
  const result = {
@@ -11,6 +12,14 @@ const parseForm = function (id, data) {
11
12
  dataClassId: '',
12
13
  headerFormId: '',
13
14
  conformanceProcessId: '',
15
+ section: '',
16
+ requirements: [],
17
+ formNotes: [],
18
+ scope: '',
19
+ formReferences: [],
20
+ calculationContext: null,
21
+ formInstances: [],
22
+ formConstraints: [],
14
23
  applicability: [],
15
24
  fields: [],
16
25
  passFail: null,
@@ -18,47 +27,100 @@ const parseForm = function (id, data) {
18
27
  ref: [],
19
28
  };
20
29
  if (data !== '') {
21
- const t = (0, tokenize_1.tokenizePackage)(data);
30
+ const t = (0, tokenize_2.tokenizePackage)(data);
22
31
  let i = 0;
23
32
  while (i < t.length) {
24
33
  const command = t[i++];
25
34
  if (i < t.length) {
26
35
  if (command === 'name') {
27
- result.name = (0, tokenize_1.unwrapBlock)(t[i++]);
36
+ result.name = (0, tokenize_2.stripWrapping)(t[i++]);
28
37
  }
29
38
  else if (command === 'description') {
30
- result.description = (0, tokenize_1.unwrapBlock)(t[i++]);
39
+ result.description = (0, tokenize_2.stripWrapping)(t[i++]);
31
40
  }
32
41
  else if (command === 'data_class') {
33
- result.dataClassId = (0, tokenize_1.stripWrapping)(t[i++]);
42
+ result.dataClassId = (0, tokenize_2.stripWrapping)(t[i++]);
34
43
  }
35
44
  else if (command === 'header') {
36
- result.headerFormId = (0, tokenize_1.stripWrapping)(t[i++]);
45
+ result.headerFormId = (0, tokenize_2.stripWrapping)(t[i++]);
46
+ }
47
+ else if (command === 'section') {
48
+ result.section = (0, tokenize_2.stripWrapping)(t[i++]);
49
+ }
50
+ else if (command === 'requirements') {
51
+ result.requirements = (0, tokenize_2.tokenizePackage)(t[i++]).map(tokenize_2.stripWrapping);
52
+ }
53
+ else if (command === 'note') {
54
+ result.formNotes.push((0, tokenize_2.stripWrapping)(t[i++]));
55
+ }
56
+ else if (command === 'scope') {
57
+ result.scope = (0, tokenize_2.stripWrapping)(t[i++]);
58
+ }
59
+ else if (command === 'report_rows') {
60
+ // report_rows { field examination_items item_key item }
61
+ const rb = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
62
+ const rr = {
63
+ field: '',
64
+ itemKey: '',
65
+ };
66
+ for (let k = 0; k + 1 < rb.length; k += 2) {
67
+ if (rb[k] === 'field') {
68
+ rr.field = (0, tokenize_2.stripWrapping)(rb[k + 1]);
69
+ }
70
+ else if (rb[k] === 'item_key') {
71
+ rr.itemKey = (0, tokenize_2.stripWrapping)(rb[k + 1]);
72
+ }
73
+ }
74
+ result.reportRows = rr;
75
+ }
76
+ else if (command === 'references') {
77
+ result.formReferences = (0, field_parser_1.parseRoleReferences)((0, tokenize_2.unwrapBlock)(t[i++]));
78
+ }
79
+ else if (command === 'calculation_context') {
80
+ result.calculationContext = parseCalculationContext((0, tokenize_2.unwrapBlock)(t[i++]));
81
+ }
82
+ else if (command === 'instances') {
83
+ result.formInstances = parseFormInstances((0, tokenize_2.unwrapBlock)(t[i++]));
84
+ }
85
+ else if (command === 'constraints') {
86
+ result.formConstraints = parseFormConstraints((0, tokenize_2.unwrapBlock)(t[i++]));
37
87
  }
38
88
  else if (command === 'conformance_process') {
39
- result.conformanceProcessId = (0, tokenize_1.stripWrapping)(t[i++]);
89
+ const tok = t[i++];
90
+ if (tok.startsWith('{')) {
91
+ // conformance_process { id1 id2 } — multi-test form
92
+ result.conformanceProcessIds = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(tok)).map(tokenize_2.stripWrapping);
93
+ result.conformanceProcessId = result.conformanceProcessIds[0] ?? '';
94
+ }
95
+ else {
96
+ result.conformanceProcessId = (0, tokenize_2.stripWrapping)(tok);
97
+ }
40
98
  }
41
99
  else if (command === 'applicability') {
42
- result.applicability = parseApplicability((0, tokenize_1.unwrapBlock)(t[i++]));
100
+ result.applicability = (0, field_parser_1.parseApplicability)((0, tokenize_2.unwrapBlock)(t[i++]));
43
101
  }
44
102
  else if (command === 'field') {
45
- const fieldName = t[i++];
46
- if (i < t.length) {
47
- const fieldBlock = (0, tokenize_1.unwrapBlock)(t[i++]);
48
- result.fields.push((0, field_parser_1.parseFormField)(fieldName, fieldBlock));
103
+ // field <name> [: <type>] { … } — typed heads included (W1a repair)
104
+ const head = (0, field_parser_1.readFieldHead)(t, i);
105
+ if (head) {
106
+ result.fields.push((0, field_parser_1.parseFormField)(head.name, head.block, head.type || undefined));
107
+ i = head.next;
108
+ }
109
+ else {
110
+ i++; // not a field head — skip the token, keep scanning
49
111
  }
50
112
  }
51
113
  else if (command === 'subform_ref') {
52
114
  // subform_ref SubformID { parameters { ... } applicability { ... } }
53
115
  const subformId = t[i++];
54
- const refBlock = i < t.length ? (0, tokenize_1.unwrapBlock)(t[i++]) : '';
116
+ const refBlock = i < t.length ? (0, tokenize_2.unwrapBlock)(t[i++]) : '';
55
117
  result.fields.push(makeSubformRefField(subformId, refBlock));
56
118
  }
57
119
  else if (command === 'pass_fail') {
58
- result.passFail = parsePassFail((0, tokenize_1.unwrapBlock)(t[i++]));
120
+ result.passFail = parsePassFail((0, tokenize_2.unwrapBlock)(t[i++]));
59
121
  }
60
122
  else if (command === 'reference') {
61
- result.referenceIds = (0, tokenize_1.tokenizePackage)(t[i++]);
123
+ result.referenceIds = (0, tokenize_2.tokenizePackage)(t[i++]).map(tokenize_2.stripWrapping);
62
124
  }
63
125
  else {
64
126
  i++; // forward-compatible: skip unknown keyword value
@@ -75,70 +137,184 @@ const parseForm = function (id, data) {
75
137
  };
76
138
  };
77
139
  exports.parseForm = parseForm;
78
- function parseApplicability(block) {
79
- const entries = [];
80
- const t = (0, tokenize_1.tokenizePackage)(block);
140
+ function parseCalculationContext(block) {
141
+ const ctx = {
142
+ header: '',
143
+ dimensions: false,
144
+ tables: [],
145
+ };
146
+ const t = (0, tokenize_1.default)(block);
81
147
  let i = 0;
82
148
  while (i < t.length) {
83
- const dimension = t[i++];
149
+ const cmd = t[i++];
84
150
  if (i >= t.length) {
85
151
  break;
86
152
  }
87
- if (t[i] === ':') {
88
- i++;
153
+ if (cmd === 'header') {
154
+ ctx.header = (0, tokenize_2.stripWrapping)(t[i++]);
89
155
  }
90
- if (i < t.length) {
91
- const valueBlock = (0, tokenize_1.unwrapBlock)(t[i++]);
92
- // valueBlock is `[A, B]` or `{ A: 5, B: 5 }`
93
- const trimmed = valueBlock.trim();
94
- if (trimmed.startsWith('[')) {
95
- const inner = trimmed.slice(1, -1);
96
- const values = inner.split(/[,\s]+/).filter(s => s.length > 0);
97
- entries.push({ dimension, values, mapping: null });
156
+ else if (cmd === 'dimensions') {
157
+ ctx.dimensions = (0, tokenize_2.stripWrapping)(t[i++]) === 'true';
158
+ }
159
+ else if (cmd === 'tables') {
160
+ ctx.tables = (0, tokenize_1.default)((0, tokenize_2.stripWrapping)(t[i++]))
161
+ .map(tokenize_2.stripWrapping)
162
+ .filter(s => s.length > 0);
163
+ }
164
+ else {
165
+ (0, tokenize_2.unwrapBlock)(t[i++]);
166
+ }
167
+ }
168
+ return ctx;
169
+ }
170
+ function parseFormInstances(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 !== 'instance') {
177
+ if (i < t.length) {
178
+ (0, tokenize_2.unwrapBlock)(t[i - 1]);
98
179
  }
99
- else if (trimmed.startsWith('{')) {
100
- // Mapping form
101
- const inner = trimmed.slice(1, -1);
102
- const mapping = {};
103
- for (const pair of inner
104
- .split(/[,\n]+/)
105
- .map(s => s.trim())
106
- .filter(s => s)) {
107
- const m = pair.match(/^(\w+)\s*:\s*(.+)$/);
108
- if (m) {
109
- mapping[m[1]] = m[2].trim();
110
- }
180
+ continue;
181
+ }
182
+ const inst = { id: (0, tokenize_2.stripWrapping)(t[i++]), name: '' };
183
+ if (i < t.length && t[i].startsWith('{')) {
184
+ const it = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
185
+ let j = 0;
186
+ while (j < it.length) {
187
+ const ic = it[j++];
188
+ if (j >= it.length) {
189
+ break;
190
+ }
191
+ if (ic === 'name') {
192
+ inst.name = (0, tokenize_2.stripWrapping)(it[j++]);
193
+ }
194
+ else {
195
+ (0, tokenize_2.unwrapBlock)(it[j++]);
111
196
  }
112
- entries.push({ dimension, values: [], mapping });
113
197
  }
114
- else {
115
- // Single value
116
- entries.push({ dimension, values: [trimmed], mapping: null });
198
+ }
199
+ out.push(inst);
200
+ }
201
+ return out;
202
+ }
203
+ function parseFormConstraints(block) {
204
+ const out = [];
205
+ const t = (0, tokenize_1.default)(block);
206
+ let i = 0;
207
+ while (i < t.length) {
208
+ const cmd = t[i++];
209
+ if (cmd !== 'constraint') {
210
+ if (i < t.length) {
211
+ (0, tokenize_2.unwrapBlock)(t[i - 1]);
117
212
  }
213
+ continue;
118
214
  }
215
+ const c = {
216
+ id: (0, tokenize_2.stripWrapping)(t[i++]),
217
+ rule: '',
218
+ onViolation: '',
219
+ notes: '',
220
+ source: null,
221
+ };
222
+ if (i < t.length && t[i].startsWith('{')) {
223
+ const ct = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
224
+ let j = 0;
225
+ while (j < ct.length) {
226
+ const cc = ct[j++];
227
+ if (j >= ct.length) {
228
+ break;
229
+ }
230
+ if (cc === 'rule') {
231
+ c.rule = (0, tokenize_2.stripWrapping)(ct[j++]);
232
+ }
233
+ else if (cc === 'on_violation') {
234
+ c.onViolation = (0, tokenize_2.stripWrapping)(ct[j++]);
235
+ }
236
+ else if (cc === 'notes') {
237
+ c.notes = (0, tokenize_2.stripWrapping)(ct[j++]);
238
+ }
239
+ else if (cc === 'source') {
240
+ c.source = (0, field_parser_1.readSource)((0, tokenize_2.unwrapBlock)(ct[j++]));
241
+ }
242
+ else {
243
+ (0, tokenize_2.unwrapBlock)(ct[j++]);
244
+ }
245
+ }
246
+ }
247
+ out.push(c);
119
248
  }
120
- return entries;
249
+ return out;
121
250
  }
122
251
  function parsePassFail(block) {
123
- const pf = { criteria: '', passIf: '' };
124
- const t = (0, tokenize_1.tokenizePackage)(block);
252
+ const pf = { criteria: '', passIf: '', derivations: [] };
253
+ const t = (0, tokenize_1.default)(block);
125
254
  let i = 0;
126
255
  while (i < t.length) {
127
256
  const cmd = t[i++];
128
257
  if (i < t.length) {
129
258
  if (cmd === 'criteria') {
130
- pf.criteria = (0, tokenize_1.unwrapBlock)(t[i++]);
259
+ pf.criteria = (0, tokenize_2.stripWrapping)(t[i++]);
131
260
  }
132
261
  else if (cmd === 'pass_if') {
133
- pf.passIf = (0, tokenize_1.unwrapBlock)(t[i++]);
262
+ pf.passIf = (0, tokenize_2.stripWrapping)(t[i++]);
263
+ }
264
+ else if (cmd === 'derivation') {
265
+ pf.derivations = parsePassFailDerivations((0, tokenize_2.unwrapBlock)(t[i++]));
134
266
  }
135
267
  else {
136
- (0, tokenize_1.unwrapBlock)(t[i++]);
268
+ (0, tokenize_2.unwrapBlock)(t[i++]);
137
269
  }
138
270
  }
139
271
  }
140
272
  return pf;
141
273
  }
274
+ function parsePassFailDerivations(block) {
275
+ const out = [];
276
+ const t = (0, tokenize_1.default)(block);
277
+ let i = 0;
278
+ while (i < t.length) {
279
+ const cmd = t[i++];
280
+ if (cmd !== 'value') {
281
+ if (i < t.length) {
282
+ (0, tokenize_2.unwrapBlock)(t[i - 1]);
283
+ }
284
+ continue;
285
+ }
286
+ const d = {
287
+ name: (0, tokenize_2.stripWrapping)(t[i++]),
288
+ calculation: '',
289
+ forEach: '',
290
+ unit: '',
291
+ };
292
+ if (i < t.length && t[i].startsWith('{')) {
293
+ const dt = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
294
+ let j = 0;
295
+ while (j < dt.length) {
296
+ const dc = dt[j++];
297
+ if (j >= dt.length) {
298
+ break;
299
+ }
300
+ if (dc === 'calculation') {
301
+ d.calculation = (0, tokenize_2.stripWrapping)(dt[j++]);
302
+ }
303
+ else if (dc === 'for_each') {
304
+ d.forEach = (0, tokenize_2.stripWrapping)(dt[j++]);
305
+ }
306
+ else if (dc === 'unit') {
307
+ d.unit = (0, tokenize_2.stripWrapping)(dt[j++]);
308
+ }
309
+ else {
310
+ (0, tokenize_2.unwrapBlock)(dt[j++]);
311
+ }
312
+ }
313
+ }
314
+ out.push(d);
315
+ }
316
+ return out;
317
+ }
142
318
  function makeSubformRefField(subformId, block) {
143
319
  const field = {
144
320
  name: '', // caller wraps this in a named field
@@ -146,6 +322,12 @@ function makeSubformRefField(subformId, block) {
146
322
  label: '',
147
323
  definition: '',
148
324
  unit: '',
325
+ symbol: '',
326
+ verdict: '',
327
+ targets: [],
328
+ dimension: '',
329
+ enumRef: '',
330
+ pattern: '',
149
331
  required: false,
150
332
  measurementMethod: '',
151
333
  calculationId: null,
@@ -153,59 +335,27 @@ function makeSubformRefField(subformId, block) {
153
335
  derivation: '',
154
336
  evaluation: null,
155
337
  values: [],
338
+ trueLabel: '',
339
+ falseLabel: '',
340
+ enumValues: [],
156
341
  defaultValue: '',
157
342
  hasDefault: false,
158
343
  referenceIds: [],
344
+ fieldReferences: [],
345
+ specificationReference: '',
346
+ applicability: [],
347
+ sourceDiscrepancy: null,
159
348
  fields: [],
160
349
  itemsType: '',
161
- subformRef: parseSubformRef(subformId, block),
350
+ subformRef: (0, field_parser_1.parseSubformRef)(subformId, block),
162
351
  };
163
352
  return field;
164
353
  }
165
- function parseSubformRef(subformId, block) {
166
- const ref = {
167
- subformId,
168
- parameters: {},
169
- applicability: [],
170
- };
171
- if (block && block.trim()) {
172
- const t = (0, tokenize_1.tokenizePackage)(block);
173
- let i = 0;
174
- while (i < t.length) {
175
- const cmd = t[i++];
176
- if (i < t.length) {
177
- if (cmd === 'parameters') {
178
- const pblock = (0, tokenize_1.unwrapBlock)(t[i++]);
179
- const pt = (0, tokenize_1.tokenizePackage)(pblock);
180
- let j = 0;
181
- while (j < pt.length) {
182
- const key = pt[j++];
183
- if (j < pt.length) {
184
- if (pt[j] === ':') {
185
- j++;
186
- }
187
- if (j < pt.length) {
188
- ref.parameters[key] = (0, tokenize_1.unwrapBlock)(pt[j++]);
189
- }
190
- }
191
- }
192
- }
193
- else if (cmd === 'applicability') {
194
- ref.applicability = parseApplicability((0, tokenize_1.unwrapBlock)(t[i++]));
195
- }
196
- else {
197
- (0, tokenize_1.unwrapBlock)(t[i++]);
198
- }
199
- }
200
- }
201
- }
202
- return ref;
203
- }
204
354
  const dumpForm = function (f) {
205
355
  let out = 'form ' + f.id + ' {\n';
206
- out += ' name "' + (0, tokenize_1.escapeString)(f.name) + '"\n';
356
+ out += ' name "' + (0, tokenize_2.escapeString)(f.name) + '"\n';
207
357
  if (f.description) {
208
- out += ' description "' + (0, tokenize_1.escapeString)(f.description) + '"\n';
358
+ out += ' description "' + (0, tokenize_2.escapeString)(f.description) + '"\n';
209
359
  }
210
360
  if (f.dataClassId) {
211
361
  out += ' data_class ' + f.dataClassId + '\n';
@@ -213,63 +363,134 @@ const dumpForm = function (f) {
213
363
  if (f.headerFormId) {
214
364
  out += ' header ' + f.headerFormId + '\n';
215
365
  }
216
- if (f.conformanceProcessId) {
217
- out += ' conformance_process ' + f.conformanceProcessId + '\n';
366
+ if (f.section) {
367
+ out += ' section "' + (0, tokenize_2.escapeString)(f.section) + '"\n';
218
368
  }
219
- if (f.applicability.length > 0) {
220
- out += ' applicability {\n';
221
- for (const a of f.applicability) {
222
- if (a.mapping) {
223
- out += ' ' + a.dimension + ': { ';
224
- for (const [k, v] of Object.entries(a.mapping)) {
225
- out += k + ': ' + v + ' ';
226
- }
227
- out += '}\n';
228
- }
229
- else {
230
- out += ' ' + a.dimension + ': [' + a.values.join(', ') + ']\n';
231
- }
369
+ if (f.requirements.length > 0) {
370
+ out += ' requirements { ' + f.requirements.join(' ') + ' }\n';
371
+ }
372
+ for (const note of f.formNotes) {
373
+ out += ' note "' + (0, tokenize_2.escapeString)(note) + '"\n';
374
+ }
375
+ if (f.scope) {
376
+ out += ' scope ' + f.scope + '\n';
377
+ }
378
+ if (f.reportRows && (f.reportRows.field || f.reportRows.itemKey)) {
379
+ out +=
380
+ ' report_rows { field ' +
381
+ f.reportRows.field +
382
+ ' item_key ' +
383
+ f.reportRows.itemKey +
384
+ ' }\n';
385
+ }
386
+ if (f.formReferences.length > 0) {
387
+ out += ' references { ' + (0, field_parser_1.dumpRoleReferences)(f.formReferences) + ' }\n';
388
+ }
389
+ if (f.calculationContext) {
390
+ const cc = f.calculationContext;
391
+ let line = ' calculation_context { ';
392
+ if (cc.header) {
393
+ line += 'header ' + cc.header + ' ';
394
+ }
395
+ if (cc.dimensions) {
396
+ line += 'dimensions true ';
397
+ }
398
+ if (cc.tables.length > 0) {
399
+ line += 'tables { ' + cc.tables.join(' ') + ' } ';
400
+ }
401
+ out += line + '}\n';
402
+ }
403
+ if (f.formInstances.length > 0) {
404
+ out += ' instances {\n';
405
+ for (const inst of f.formInstances) {
406
+ out +=
407
+ ' instance ' +
408
+ inst.id +
409
+ ' { name "' +
410
+ (0, tokenize_2.escapeString)(inst.name) +
411
+ '" }\n';
232
412
  }
233
413
  out += ' }\n';
234
414
  }
235
- for (const field of f.fields) {
236
- if (field.subformRef) {
237
- const sr = field.subformRef;
238
- out += ' subform_ref ' + sr.subformId + ' { ';
239
- const pkeys = Object.keys(sr.parameters);
240
- if (pkeys.length > 0) {
241
- out += 'parameters { ';
242
- for (const k of pkeys) {
243
- out += k + ': ' + sr.parameters[k] + ' ';
244
- }
245
- out += '} ';
415
+ if (f.formConstraints.length > 0) {
416
+ out += ' constraints {\n';
417
+ for (const c of f.formConstraints) {
418
+ out += ' constraint ' + c.id + ' { ';
419
+ if (c.rule) {
420
+ out += 'rule "' + (0, tokenize_2.escapeString)(c.rule) + '" ';
246
421
  }
247
- out += '}\n';
248
- }
249
- else {
250
- out += ' field ' + field.name + ' { ';
251
- if (field.label) {
252
- out += 'label "' + (0, tokenize_1.escapeString)(field.label) + '" ';
422
+ if (c.onViolation) {
423
+ out += 'on_violation ' + c.onViolation + ' ';
253
424
  }
254
- if (field.unit) {
255
- out += 'unit "' + (0, tokenize_1.escapeString)(field.unit) + '" ';
425
+ if (c.notes) {
426
+ out += 'notes "' + (0, tokenize_2.escapeString)(c.notes) + '" ';
256
427
  }
257
- if (field.required) {
258
- out += 'required true ';
428
+ if (c.source && (c.source.doc || c.source.clause)) {
429
+ out +=
430
+ 'source { doc "' +
431
+ (0, tokenize_2.escapeString)(c.source.doc) +
432
+ '" clause "' +
433
+ (0, tokenize_2.escapeString)(c.source.clause) +
434
+ '"' +
435
+ (c.source.fragment
436
+ ? ' fragment "' + (0, tokenize_2.escapeString)(c.source.fragment) + '"'
437
+ : '') +
438
+ ' } ';
259
439
  }
260
440
  out += '}\n';
261
441
  }
442
+ out += ' }\n';
262
443
  }
263
- if (f.passFail) {
444
+ if (f.conformanceProcessIds && f.conformanceProcessIds.length > 1) {
445
+ out +=
446
+ ' conformance_process { ' + f.conformanceProcessIds.join(' ') + ' }\n';
447
+ }
448
+ else if (f.conformanceProcessId) {
449
+ out += ' conformance_process ' + f.conformanceProcessId + '\n';
450
+ }
451
+ if (f.applicability.length > 0) {
264
452
  out +=
265
- ' pass_fail { criteria "' +
266
- (0, tokenize_1.escapeString)(f.passFail.criteria) +
267
- '" pass_if "' +
268
- (0, tokenize_1.escapeString)(f.passFail.passIf) +
269
- '" }\n';
453
+ ' applicability {\n ' +
454
+ (0, field_parser_1.dumpApplicabilityEntries)(f.applicability).trim() +
455
+ '\n }\n';
456
+ }
457
+ for (const field of f.fields) {
458
+ out += (0, field_parser_1.dumpFormField)(field, ' ');
459
+ }
460
+ if (f.passFail) {
461
+ out += dumpPassFail(f.passFail);
270
462
  }
271
463
  out += '}\n';
272
464
  return out;
273
465
  };
274
466
  exports.dumpForm = dumpForm;
467
+ function dumpPassFail(pf) {
468
+ if (pf.derivations.length === 0) {
469
+ return (' pass_fail { criteria "' +
470
+ (0, tokenize_2.escapeString)(pf.criteria) +
471
+ '" pass_if "' +
472
+ (0, tokenize_2.escapeString)(pf.passIf) +
473
+ '" }\n');
474
+ }
475
+ let out = ' pass_fail {\n';
476
+ out += ' criteria "' + (0, tokenize_2.escapeString)(pf.criteria) + '"\n';
477
+ out += ' pass_if "' + (0, tokenize_2.escapeString)(pf.passIf) + '"\n';
478
+ out += ' derivation {\n';
479
+ for (const d of pf.derivations) {
480
+ let line = ' value ' + d.name + ' { ';
481
+ if (d.calculation) {
482
+ line += 'calculation "' + (0, tokenize_2.escapeString)(d.calculation) + '" ';
483
+ }
484
+ if (d.forEach) {
485
+ line += 'for_each ' + d.forEach + ' ';
486
+ }
487
+ if (d.unit) {
488
+ line += 'unit "' + (0, tokenize_2.escapeString)(d.unit) + '" ';
489
+ }
490
+ out += line + '}\n';
491
+ }
492
+ out += ' }\n';
493
+ out += ' }\n';
494
+ return out;
495
+ }
275
496
  //# sourceMappingURL=form.js.map