@ifc-lite/ids-authoring 0.0.0-stage → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +469 -2
  3. package/dist/bsdd/cache.d.ts +37 -0
  4. package/dist/bsdd/cache.d.ts.map +1 -0
  5. package/dist/bsdd/cache.js +116 -0
  6. package/dist/bsdd/cache.js.map +1 -0
  7. package/dist/bsdd/contract.d.ts +31 -0
  8. package/dist/bsdd/contract.d.ts.map +1 -0
  9. package/dist/bsdd/contract.js +185 -0
  10. package/dist/bsdd/contract.js.map +1 -0
  11. package/dist/bsdd/dictionary.d.ts +42 -0
  12. package/dist/bsdd/dictionary.d.ts.map +1 -0
  13. package/dist/bsdd/dictionary.js +115 -0
  14. package/dist/bsdd/dictionary.js.map +1 -0
  15. package/dist/bsdd/generator.d.ts +82 -0
  16. package/dist/bsdd/generator.d.ts.map +1 -0
  17. package/dist/bsdd/generator.js +155 -0
  18. package/dist/bsdd/generator.js.map +1 -0
  19. package/dist/bsdd/http-source.d.ts +15 -0
  20. package/dist/bsdd/http-source.d.ts.map +1 -0
  21. package/dist/bsdd/http-source.js +196 -0
  22. package/dist/bsdd/http-source.js.map +1 -0
  23. package/dist/bsdd/idb-store.d.ts +16 -0
  24. package/dist/bsdd/idb-store.d.ts.map +1 -0
  25. package/dist/bsdd/idb-store.js +58 -0
  26. package/dist/bsdd/idb-store.js.map +1 -0
  27. package/dist/bsdd/insert.d.ts +55 -0
  28. package/dist/bsdd/insert.d.ts.map +1 -0
  29. package/dist/bsdd/insert.js +105 -0
  30. package/dist/bsdd/insert.js.map +1 -0
  31. package/dist/bsdd/mapping.d.ts +62 -0
  32. package/dist/bsdd/mapping.d.ts.map +1 -0
  33. package/dist/bsdd/mapping.js +163 -0
  34. package/dist/bsdd/mapping.js.map +1 -0
  35. package/dist/bsdd/picker.d.ts +91 -0
  36. package/dist/bsdd/picker.d.ts.map +1 -0
  37. package/dist/bsdd/picker.js +151 -0
  38. package/dist/bsdd/picker.js.map +1 -0
  39. package/dist/bsdd/types.d.ts +162 -0
  40. package/dist/bsdd/types.d.ts.map +1 -0
  41. package/dist/bsdd/types.js +26 -0
  42. package/dist/bsdd/types.js.map +1 -0
  43. package/dist/bsdd/uri-health.d.ts +65 -0
  44. package/dist/bsdd/uri-health.d.ts.map +1 -0
  45. package/dist/bsdd/uri-health.js +110 -0
  46. package/dist/bsdd/uri-health.js.map +1 -0
  47. package/dist/canonical-json.d.ts +7 -0
  48. package/dist/canonical-json.d.ts.map +1 -0
  49. package/dist/canonical-json.js +20 -0
  50. package/dist/canonical-json.js.map +1 -0
  51. package/dist/comments/view.d.ts +37 -0
  52. package/dist/comments/view.d.ts.map +1 -0
  53. package/dist/comments/view.js +61 -0
  54. package/dist/comments/view.js.map +1 -0
  55. package/dist/compound/expand.d.ts +5 -0
  56. package/dist/compound/expand.d.ts.map +1 -0
  57. package/dist/compound/expand.js +135 -0
  58. package/dist/compound/expand.js.map +1 -0
  59. package/dist/compound/from-bsdd.d.ts +9 -0
  60. package/dist/compound/from-bsdd.d.ts.map +1 -0
  61. package/dist/compound/from-bsdd.js +166 -0
  62. package/dist/compound/from-bsdd.js.map +1 -0
  63. package/dist/diff/align.d.ts +42 -0
  64. package/dist/diff/align.d.ts.map +1 -0
  65. package/dist/diff/align.js +78 -0
  66. package/dist/diff/align.js.map +1 -0
  67. package/dist/diff/changelog-text.d.ts +39 -0
  68. package/dist/diff/changelog-text.d.ts.map +1 -0
  69. package/dist/diff/changelog-text.js +120 -0
  70. package/dist/diff/changelog-text.js.map +1 -0
  71. package/dist/diff/changelog.d.ts +28 -0
  72. package/dist/diff/changelog.d.ts.map +1 -0
  73. package/dist/diff/changelog.js +173 -0
  74. package/dist/diff/changelog.js.map +1 -0
  75. package/dist/diff/compare.d.ts +25 -0
  76. package/dist/diff/compare.d.ts.map +1 -0
  77. package/dist/diff/compare.js +150 -0
  78. package/dist/diff/compare.js.map +1 -0
  79. package/dist/diff/diff.d.ts +13 -0
  80. package/dist/diff/diff.d.ts.map +1 -0
  81. package/dist/diff/diff.js +140 -0
  82. package/dist/diff/diff.js.map +1 -0
  83. package/dist/diff/index.d.ts +5 -0
  84. package/dist/diff/index.d.ts.map +1 -0
  85. package/dist/diff/index.js +7 -0
  86. package/dist/diff/index.js.map +1 -0
  87. package/dist/diff/patch.d.ts +10 -0
  88. package/dist/diff/patch.d.ts.map +1 -0
  89. package/dist/diff/patch.js +177 -0
  90. package/dist/diff/patch.js.map +1 -0
  91. package/dist/diff/types.d.ts +201 -0
  92. package/dist/diff/types.d.ts.map +1 -0
  93. package/dist/diff/types.js +5 -0
  94. package/dist/diff/types.js.map +1 -0
  95. package/dist/document/fields.d.ts +33 -0
  96. package/dist/document/fields.d.ts.map +1 -0
  97. package/dist/document/fields.js +117 -0
  98. package/dist/document/fields.js.map +1 -0
  99. package/dist/document/from-ids.d.ts +32 -0
  100. package/dist/document/from-ids.d.ts.map +1 -0
  101. package/dist/document/from-ids.js +47 -0
  102. package/dist/document/from-ids.js.map +1 -0
  103. package/dist/document/node-index.d.ts +32 -0
  104. package/dist/document/node-index.d.ts.map +1 -0
  105. package/dist/document/node-index.js +127 -0
  106. package/dist/document/node-index.js.map +1 -0
  107. package/dist/document/types.d.ts +170 -0
  108. package/dist/document/types.d.ts.map +1 -0
  109. package/dist/document/types.js +19 -0
  110. package/dist/document/types.js.map +1 -0
  111. package/dist/gate/bsdd.d.ts +12 -0
  112. package/dist/gate/bsdd.d.ts.map +1 -0
  113. package/dist/gate/bsdd.js +17 -0
  114. package/dist/gate/bsdd.js.map +1 -0
  115. package/dist/gate/check.d.ts +6 -0
  116. package/dist/gate/check.d.ts.map +1 -0
  117. package/dist/gate/check.js +125 -0
  118. package/dist/gate/check.js.map +1 -0
  119. package/dist/gate/context.d.ts +51 -0
  120. package/dist/gate/context.d.ts.map +1 -0
  121. package/dist/gate/context.js +74 -0
  122. package/dist/gate/context.js.map +1 -0
  123. package/dist/gate/grounding-pset.d.ts +5 -0
  124. package/dist/gate/grounding-pset.d.ts.map +1 -0
  125. package/dist/gate/grounding-pset.js +179 -0
  126. package/dist/gate/grounding-pset.js.map +1 -0
  127. package/dist/gate/grounding.d.ts +48 -0
  128. package/dist/gate/grounding.d.ts.map +1 -0
  129. package/dist/gate/grounding.js +146 -0
  130. package/dist/gate/grounding.js.map +1 -0
  131. package/dist/gate/rank.d.ts +28 -0
  132. package/dist/gate/rank.d.ts.map +1 -0
  133. package/dist/gate/rank.js +68 -0
  134. package/dist/gate/rank.js.map +1 -0
  135. package/dist/gate/structural.d.ts +43 -0
  136. package/dist/gate/structural.d.ts.map +1 -0
  137. package/dist/gate/structural.js +175 -0
  138. package/dist/gate/structural.js.map +1 -0
  139. package/dist/gate/types.d.ts +45 -0
  140. package/dist/gate/types.d.ts.map +1 -0
  141. package/dist/gate/types.js +5 -0
  142. package/dist/gate/types.js.map +1 -0
  143. package/dist/gate/values.d.ts +19 -0
  144. package/dist/gate/values.d.ts.map +1 -0
  145. package/dist/gate/values.js +124 -0
  146. package/dist/gate/values.js.map +1 -0
  147. package/dist/headless/apply-gated.d.ts +32 -0
  148. package/dist/headless/apply-gated.d.ts.map +1 -0
  149. package/dist/headless/apply-gated.js +26 -0
  150. package/dist/headless/apply-gated.js.map +1 -0
  151. package/dist/headless/diff.d.ts +41 -0
  152. package/dist/headless/diff.d.ts.map +1 -0
  153. package/dist/headless/diff.js +116 -0
  154. package/dist/headless/diff.js.map +1 -0
  155. package/dist/headless/node-path.d.ts +10 -0
  156. package/dist/headless/node-path.d.ts.map +1 -0
  157. package/dist/headless/node-path.js +24 -0
  158. package/dist/headless/node-path.js.map +1 -0
  159. package/dist/headless/read.d.ts +26 -0
  160. package/dist/headless/read.d.ts.map +1 -0
  161. package/dist/headless/read.js +78 -0
  162. package/dist/headless/read.js.map +1 -0
  163. package/dist/headless/schema-lookup.d.ts +52 -0
  164. package/dist/headless/schema-lookup.d.ts.map +1 -0
  165. package/dist/headless/schema-lookup.js +77 -0
  166. package/dist/headless/schema-lookup.js.map +1 -0
  167. package/dist/headless/write.d.ts +46 -0
  168. package/dist/headless/write.d.ts.map +1 -0
  169. package/dist/headless/write.js +103 -0
  170. package/dist/headless/write.js.map +1 -0
  171. package/dist/history/history.d.ts +90 -0
  172. package/dist/history/history.d.ts.map +1 -0
  173. package/dist/history/history.js +86 -0
  174. package/dist/history/history.js.map +1 -0
  175. package/dist/history/persistence.d.ts +33 -0
  176. package/dist/history/persistence.d.ts.map +1 -0
  177. package/dist/history/persistence.js +71 -0
  178. package/dist/history/persistence.js.map +1 -0
  179. package/dist/index.d.ts +55 -0
  180. package/dist/index.d.ts.map +1 -0
  181. package/dist/index.js +75 -0
  182. package/dist/index.js.map +1 -0
  183. package/dist/lint/context.d.ts +15 -0
  184. package/dist/lint/context.d.ts.map +1 -0
  185. package/dist/lint/context.js +24 -0
  186. package/dist/lint/context.js.map +1 -0
  187. package/dist/lint/docs.d.ts +18 -0
  188. package/dist/lint/docs.d.ts.map +1 -0
  189. package/dist/lint/docs.js +117 -0
  190. package/dist/lint/docs.js.map +1 -0
  191. package/dist/lint/engine.d.ts +21 -0
  192. package/dist/lint/engine.d.ts.map +1 -0
  193. package/dist/lint/engine.js +123 -0
  194. package/dist/lint/engine.js.map +1 -0
  195. package/dist/lint/fix.d.ts +27 -0
  196. package/dist/lint/fix.d.ts.map +1 -0
  197. package/dist/lint/fix.js +22 -0
  198. package/dist/lint/fix.js.map +1 -0
  199. package/dist/lint/precision.d.ts +51 -0
  200. package/dist/lint/precision.d.ts.map +1 -0
  201. package/dist/lint/precision.js +64 -0
  202. package/dist/lint/precision.js.map +1 -0
  203. package/dist/lint/rules/bsdd.d.ts +5 -0
  204. package/dist/lint/rules/bsdd.d.ts.map +1 -0
  205. package/dist/lint/rules/bsdd.js +123 -0
  206. package/dist/lint/rules/bsdd.js.map +1 -0
  207. package/dist/lint/rules/card.d.ts +10 -0
  208. package/dist/lint/rules/card.d.ts.map +1 -0
  209. package/dist/lint/rules/card.js +140 -0
  210. package/dist/lint/rules/card.js.map +1 -0
  211. package/dist/lint/rules/doc-ver-part.d.ts +7 -0
  212. package/dist/lint/rules/doc-ver-part.d.ts.map +1 -0
  213. package/dist/lint/rules/doc-ver-part.js +155 -0
  214. package/dist/lint/rules/doc-ver-part.js.map +1 -0
  215. package/dist/lint/rules/entity.d.ts +12 -0
  216. package/dist/lint/rules/entity.d.ts.map +1 -0
  217. package/dist/lint/rules/entity.js +215 -0
  218. package/dist/lint/rules/entity.js.map +1 -0
  219. package/dist/lint/rules/index.d.ts +4 -0
  220. package/dist/lint/rules/index.d.ts.map +1 -0
  221. package/dist/lint/rules/index.js +63 -0
  222. package/dist/lint/rules/index.js.map +1 -0
  223. package/dist/lint/rules/pdt-att.d.ts +7 -0
  224. package/dist/lint/rules/pdt-att.d.ts.map +1 -0
  225. package/dist/lint/rules/pdt-att.js +209 -0
  226. package/dist/lint/rules/pdt-att.js.map +1 -0
  227. package/dist/lint/rules/pset.d.ts +12 -0
  228. package/dist/lint/rules/pset.d.ts.map +1 -0
  229. package/dist/lint/rules/pset.js +263 -0
  230. package/dist/lint/rules/pset.js.map +1 -0
  231. package/dist/lint/rules/regex.d.ts +6 -0
  232. package/dist/lint/rules/regex.d.ts.map +1 -0
  233. package/dist/lint/rules/regex.js +184 -0
  234. package/dist/lint/rules/regex.js.map +1 -0
  235. package/dist/lint/rules/spec-doc.d.ts +5 -0
  236. package/dist/lint/rules/spec-doc.d.ts.map +1 -0
  237. package/dist/lint/rules/spec-doc.js +132 -0
  238. package/dist/lint/rules/spec-doc.js.map +1 -0
  239. package/dist/lint/rules/spec.d.ts +24 -0
  240. package/dist/lint/rules/spec.d.ts.map +1 -0
  241. package/dist/lint/rules/spec.js +162 -0
  242. package/dist/lint/rules/spec.js.map +1 -0
  243. package/dist/lint/rules/units.d.ts +4 -0
  244. package/dist/lint/rules/units.d.ts.map +1 -0
  245. package/dist/lint/rules/units.js +101 -0
  246. package/dist/lint/rules/units.js.map +1 -0
  247. package/dist/lint/rules/util.d.ts +37 -0
  248. package/dist/lint/rules/util.d.ts.map +1 -0
  249. package/dist/lint/rules/util.js +117 -0
  250. package/dist/lint/rules/util.js.map +1 -0
  251. package/dist/lint/rules/value-sites.d.ts +28 -0
  252. package/dist/lint/rules/value-sites.d.ts.map +1 -0
  253. package/dist/lint/rules/value-sites.js +81 -0
  254. package/dist/lint/rules/value-sites.js.map +1 -0
  255. package/dist/lint/rules/values.d.ts +22 -0
  256. package/dist/lint/rules/values.d.ts.map +1 -0
  257. package/dist/lint/rules/values.js +237 -0
  258. package/dist/lint/rules/values.js.map +1 -0
  259. package/dist/lint/rules/xsd-regex.d.ts +34 -0
  260. package/dist/lint/rules/xsd-regex.d.ts.map +1 -0
  261. package/dist/lint/rules/xsd-regex.js +149 -0
  262. package/dist/lint/rules/xsd-regex.js.map +1 -0
  263. package/dist/lint/solver/sample.d.ts +3 -0
  264. package/dist/lint/solver/sample.d.ts.map +1 -0
  265. package/dist/lint/solver/sample.js +134 -0
  266. package/dist/lint/solver/sample.js.map +1 -0
  267. package/dist/lint/solver/solver.d.ts +39 -0
  268. package/dist/lint/solver/solver.d.ts.map +1 -0
  269. package/dist/lint/solver/solver.js +126 -0
  270. package/dist/lint/solver/solver.js.map +1 -0
  271. package/dist/lint/suppress.d.ts +12 -0
  272. package/dist/lint/suppress.d.ts.map +1 -0
  273. package/dist/lint/suppress.js +56 -0
  274. package/dist/lint/suppress.js.map +1 -0
  275. package/dist/lint/types.d.ts +162 -0
  276. package/dist/lint/types.d.ts.map +1 -0
  277. package/dist/lint/types.js +5 -0
  278. package/dist/lint/types.js.map +1 -0
  279. package/dist/lint/walk.d.ts +20 -0
  280. package/dist/lint/walk.d.ts.map +1 -0
  281. package/dist/lint/walk.js +47 -0
  282. package/dist/lint/walk.js.map +1 -0
  283. package/dist/match/cascade.d.ts +53 -0
  284. package/dist/match/cascade.d.ts.map +1 -0
  285. package/dist/match/cascade.js +135 -0
  286. package/dist/match/cascade.js.map +1 -0
  287. package/dist/match/reidentify.d.ts +46 -0
  288. package/dist/match/reidentify.d.ts.map +1 -0
  289. package/dist/match/reidentify.js +67 -0
  290. package/dist/match/reidentify.js.map +1 -0
  291. package/dist/merge/comments.d.ts +13 -0
  292. package/dist/merge/comments.d.ts.map +1 -0
  293. package/dist/merge/comments.js +61 -0
  294. package/dist/merge/comments.js.map +1 -0
  295. package/dist/merge/index.d.ts +4 -0
  296. package/dist/merge/index.d.ts.map +1 -0
  297. package/dist/merge/index.js +6 -0
  298. package/dist/merge/index.js.map +1 -0
  299. package/dist/merge/keys.d.ts +22 -0
  300. package/dist/merge/keys.d.ts.map +1 -0
  301. package/dist/merge/keys.js +54 -0
  302. package/dist/merge/keys.js.map +1 -0
  303. package/dist/merge/merge.d.ts +8 -0
  304. package/dist/merge/merge.d.ts.map +1 -0
  305. package/dist/merge/merge.js +206 -0
  306. package/dist/merge/merge.js.map +1 -0
  307. package/dist/merge/order.d.ts +11 -0
  308. package/dist/merge/order.d.ts.map +1 -0
  309. package/dist/merge/order.js +117 -0
  310. package/dist/merge/order.js.map +1 -0
  311. package/dist/merge/sidecar.d.ts +12 -0
  312. package/dist/merge/sidecar.d.ts.map +1 -0
  313. package/dist/merge/sidecar.js +64 -0
  314. package/dist/merge/sidecar.js.map +1 -0
  315. package/dist/merge/types.d.ts +50 -0
  316. package/dist/merge/types.d.ts.map +1 -0
  317. package/dist/merge/types.js +5 -0
  318. package/dist/merge/types.js.map +1 -0
  319. package/dist/merge/view.d.ts +28 -0
  320. package/dist/merge/view.d.ts.map +1 -0
  321. package/dist/merge/view.js +35 -0
  322. package/dist/merge/view.js.map +1 -0
  323. package/dist/ops/draft.d.ts +33 -0
  324. package/dist/ops/draft.d.ts.map +1 -0
  325. package/dist/ops/draft.js +253 -0
  326. package/dist/ops/draft.js.map +1 -0
  327. package/dist/ops/json-schema-lite.d.ts +41 -0
  328. package/dist/ops/json-schema-lite.d.ts.map +1 -0
  329. package/dist/ops/json-schema-lite.js +119 -0
  330. package/dist/ops/json-schema-lite.js.map +1 -0
  331. package/dist/ops/schema-values.d.ts +5 -0
  332. package/dist/ops/schema-values.d.ts.map +1 -0
  333. package/dist/ops/schema-values.js +233 -0
  334. package/dist/ops/schema-values.js.map +1 -0
  335. package/dist/ops/schema.d.ts +27 -0
  336. package/dist/ops/schema.d.ts.map +1 -0
  337. package/dist/ops/schema.js +258 -0
  338. package/dist/ops/schema.js.map +1 -0
  339. package/dist/ops/sidecar-ops.d.ts +85 -0
  340. package/dist/ops/sidecar-ops.d.ts.map +1 -0
  341. package/dist/ops/sidecar-ops.js +5 -0
  342. package/dist/ops/sidecar-ops.js.map +1 -0
  343. package/dist/ops/types.d.ts +400 -0
  344. package/dist/ops/types.d.ts.map +1 -0
  345. package/dist/ops/types.js +5 -0
  346. package/dist/ops/types.js.map +1 -0
  347. package/dist/ops/units.d.ts +4 -0
  348. package/dist/ops/units.d.ts.map +1 -0
  349. package/dist/ops/units.js +75 -0
  350. package/dist/ops/units.js.map +1 -0
  351. package/dist/reducer/apply.d.ts +33 -0
  352. package/dist/reducer/apply.d.ts.map +1 -0
  353. package/dist/reducer/apply.js +123 -0
  354. package/dist/reducer/apply.js.map +1 -0
  355. package/dist/reducer/comment-ops.d.ts +18 -0
  356. package/dist/reducer/comment-ops.d.ts.map +1 -0
  357. package/dist/reducer/comment-ops.js +104 -0
  358. package/dist/reducer/comment-ops.js.map +1 -0
  359. package/dist/reducer/edit.d.ts +38 -0
  360. package/dist/reducer/edit.d.ts.map +1 -0
  361. package/dist/reducer/edit.js +126 -0
  362. package/dist/reducer/edit.js.map +1 -0
  363. package/dist/reducer/facet-ops.d.ts +20 -0
  364. package/dist/reducer/facet-ops.d.ts.map +1 -0
  365. package/dist/reducer/facet-ops.js +184 -0
  366. package/dist/reducer/facet-ops.js.map +1 -0
  367. package/dist/reducer/meta-ops.d.ts +20 -0
  368. package/dist/reducer/meta-ops.d.ts.map +1 -0
  369. package/dist/reducer/meta-ops.js +52 -0
  370. package/dist/reducer/meta-ops.js.map +1 -0
  371. package/dist/reducer/spec-ops.d.ts +29 -0
  372. package/dist/reducer/spec-ops.d.ts.map +1 -0
  373. package/dist/reducer/spec-ops.js +181 -0
  374. package/dist/reducer/spec-ops.js.map +1 -0
  375. package/dist/reducer/test-ops.d.ts +15 -0
  376. package/dist/reducer/test-ops.d.ts.map +1 -0
  377. package/dist/reducer/test-ops.js +90 -0
  378. package/dist/reducer/test-ops.js.map +1 -0
  379. package/dist/reducer/value-ops.d.ts +26 -0
  380. package/dist/reducer/value-ops.d.ts.map +1 -0
  381. package/dist/reducer/value-ops.js +173 -0
  382. package/dist/reducer/value-ops.js.map +1 -0
  383. package/dist/render/describe.d.ts +20 -0
  384. package/dist/render/describe.d.ts.map +1 -0
  385. package/dist/render/describe.js +47 -0
  386. package/dist/render/describe.js.map +1 -0
  387. package/dist/revision/index.d.ts +4 -0
  388. package/dist/revision/index.d.ts.map +1 -0
  389. package/dist/revision/index.js +7 -0
  390. package/dist/revision/index.js.map +1 -0
  391. package/dist/revision/revision.d.ts +79 -0
  392. package/dist/revision/revision.d.ts.map +1 -0
  393. package/dist/revision/revision.js +120 -0
  394. package/dist/revision/revision.js.map +1 -0
  395. package/dist/revision/sha256.d.ts +3 -0
  396. package/dist/revision/sha256.d.ts.map +1 -0
  397. package/dist/revision/sha256.js +69 -0
  398. package/dist/revision/sha256.js.map +1 -0
  399. package/dist/revision/verify.d.ts +21 -0
  400. package/dist/revision/verify.d.ts.map +1 -0
  401. package/dist/revision/verify.js +51 -0
  402. package/dist/revision/verify.js.map +1 -0
  403. package/dist/revision/view.d.ts +36 -0
  404. package/dist/revision/view.d.ts.map +1 -0
  405. package/dist/revision/view.js +32 -0
  406. package/dist/revision/view.js.map +1 -0
  407. package/dist/sidecar/idsz.d.ts +14 -0
  408. package/dist/sidecar/idsz.d.ts.map +1 -0
  409. package/dist/sidecar/idsz.js +58 -0
  410. package/dist/sidecar/idsz.js.map +1 -0
  411. package/dist/sidecar/sidecar-schema.d.ts +4 -0
  412. package/dist/sidecar/sidecar-schema.d.ts.map +1 -0
  413. package/dist/sidecar/sidecar-schema.js +69 -0
  414. package/dist/sidecar/sidecar-schema.js.map +1 -0
  415. package/dist/sidecar/sidecar.d.ts +102 -0
  416. package/dist/sidecar/sidecar.d.ts.map +1 -0
  417. package/dist/sidecar/sidecar.js +160 -0
  418. package/dist/sidecar/sidecar.js.map +1 -0
  419. package/dist/testing/index.d.ts +6 -0
  420. package/dist/testing/index.d.ts.map +1 -0
  421. package/dist/testing/index.js +8 -0
  422. package/dist/testing/index.js.map +1 -0
  423. package/dist/testing/junit.d.ts +10 -0
  424. package/dist/testing/junit.d.ts.map +1 -0
  425. package/dist/testing/junit.js +51 -0
  426. package/dist/testing/junit.js.map +1 -0
  427. package/dist/testing/outcome.d.ts +10 -0
  428. package/dist/testing/outcome.d.ts.map +1 -0
  429. package/dist/testing/outcome.js +22 -0
  430. package/dist/testing/outcome.js.map +1 -0
  431. package/dist/testing/runner.d.ts +72 -0
  432. package/dist/testing/runner.d.ts.map +1 -0
  433. package/dist/testing/runner.js +60 -0
  434. package/dist/testing/runner.js.map +1 -0
  435. package/dist/testing/types.d.ts +60 -0
  436. package/dist/testing/types.d.ts.map +1 -0
  437. package/dist/testing/types.js +5 -0
  438. package/dist/testing/types.js.map +1 -0
  439. package/dist/testing/view.d.ts +31 -0
  440. package/dist/testing/view.d.ts.map +1 -0
  441. package/dist/testing/view.js +30 -0
  442. package/dist/testing/view.js.map +1 -0
  443. package/dist/uuid.d.ts +39 -0
  444. package/dist/uuid.d.ts.map +1 -0
  445. package/dist/uuid.js +84 -0
  446. package/dist/uuid.js.map +1 -0
  447. package/package.json +56 -3
@@ -0,0 +1,233 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * JSON Schema `$defs` for values and raw IDS content (constraints, facets,
6
+ * specifications, node snapshots). The op schemas in `./schema.ts`
7
+ * reference these. Hand-kept in sync with `./types.ts` and
8
+ * `@ifc-lite/ids`' types; `schema.test.ts` round-trips every corpus
9
+ * document through them.
10
+ */
11
+ import { ALL_FACET_FIELDS } from '../document/fields.js';
12
+ /** Object schema with `additionalProperties: false`. */
13
+ export function obj(properties, required = []) {
14
+ return { type: 'object', properties, required, additionalProperties: false };
15
+ }
16
+ const ref = (name) => ({ $ref: `#/$defs/${name}` });
17
+ const str = { type: 'string' };
18
+ const num = { type: 'number' };
19
+ const int0 = { type: 'integer', minimum: 0 };
20
+ const bool = { type: 'boolean' };
21
+ const uri = { type: 'string', minLength: 1 };
22
+ const DRAFTS = {
23
+ DraftAny: obj({ kind: { const: 'any' } }, ['kind']),
24
+ DraftEquals: obj({ kind: { const: 'equals' }, value: ref('Scalar') }, ['kind', 'value']),
25
+ DraftOneOf: obj({ kind: { const: 'oneOf' }, values: { type: 'array', items: ref('Scalar'), minItems: 1 }, base: ref('XsdBase') }, ['kind', 'values']),
26
+ DraftPattern: obj({ kind: { const: 'pattern' }, pattern: { type: 'string', minLength: 1 }, base: ref('XsdBase') }, [
27
+ 'kind',
28
+ 'pattern',
29
+ ]),
30
+ DraftRange: obj({
31
+ kind: { const: 'range' },
32
+ min: num,
33
+ minInclusive: bool,
34
+ max: num,
35
+ maxInclusive: bool,
36
+ unit: str,
37
+ base: ref('XsdBase'),
38
+ }, ['kind']),
39
+ DraftLength: obj({ kind: { const: 'length' }, exact: int0, min: int0, max: int0 }, ['kind']),
40
+ DraftDigits: obj({ kind: { const: 'digits' }, total: { type: 'integer', minimum: 1 }, fraction: int0 }, ['kind']),
41
+ DraftAll: obj({ kind: { const: 'all' }, of: { type: 'array', items: ref('ConstraintDraft'), minItems: 1 } }, [
42
+ 'kind',
43
+ 'of',
44
+ ]),
45
+ RawConstraint: obj({ kind: { const: 'raw' }, constraint: ref('IDSConstraint') }, ['kind', 'constraint']),
46
+ };
47
+ const DRAFT_NAMES = Object.keys(DRAFTS).filter((n) => n !== 'RawConstraint');
48
+ const conjunct = { type: 'array', items: ref('IDSConstraint') };
49
+ const IDS_CONTENT = {
50
+ IDSSimpleValue: obj({ type: { const: 'simpleValue' }, value: str }, ['type', 'value']),
51
+ IDSPattern: obj({ type: { const: 'pattern' }, pattern: str, base: str, and: conjunct }, ['type', 'pattern']),
52
+ IDSEnumeration: obj({ type: { const: 'enumeration' }, values: { type: 'array', items: str }, base: str, and: conjunct }, [
53
+ 'type',
54
+ 'values',
55
+ ]),
56
+ IDSBounds: obj({
57
+ type: { const: 'bounds' },
58
+ minInclusive: num,
59
+ maxInclusive: num,
60
+ minExclusive: num,
61
+ maxExclusive: num,
62
+ length: num,
63
+ minLength: num,
64
+ maxLength: num,
65
+ totalDigits: num,
66
+ fractionDigits: num,
67
+ base: str,
68
+ and: conjunct,
69
+ unparseableFacets: { type: 'array', items: obj({ facet: str, rawValue: str }, ['facet', 'rawValue']) },
70
+ }, ['type']),
71
+ IDSConstraint: { oneOf: [ref('IDSSimpleValue'), ref('IDSPattern'), ref('IDSEnumeration'), ref('IDSBounds')] },
72
+ IDSEntityFacet: obj({ type: { const: 'entity' }, name: ref('IDSConstraint'), predefinedType: ref('IDSConstraint') }, [
73
+ 'type',
74
+ 'name',
75
+ ]),
76
+ IDSAttributeFacet: obj({ type: { const: 'attribute' }, name: ref('IDSConstraint'), value: ref('IDSConstraint') }, [
77
+ 'type',
78
+ 'name',
79
+ ]),
80
+ IDSPropertyFacet: obj({
81
+ type: { const: 'property' },
82
+ propertySet: ref('IDSConstraint'),
83
+ baseName: ref('IDSConstraint'),
84
+ dataType: ref('IDSConstraint'),
85
+ value: ref('IDSConstraint'),
86
+ uri,
87
+ }, ['type', 'propertySet', 'baseName']),
88
+ IDSClassificationFacet: obj({ type: { const: 'classification' }, system: ref('IDSConstraint'), value: ref('IDSConstraint'), uri }, ['type']),
89
+ IDSMaterialFacet: obj({ type: { const: 'material' }, value: ref('IDSConstraint'), uri }, ['type']),
90
+ IDSPartOfFacet: obj({ type: { const: 'partOf' }, relation: ref('PartOfRelation'), rawRelation: str, entity: ref('IDSEntityFacet') }, ['type', 'relation']),
91
+ IDSFacet: {
92
+ oneOf: [
93
+ ref('IDSEntityFacet'),
94
+ ref('IDSAttributeFacet'),
95
+ ref('IDSPropertyFacet'),
96
+ ref('IDSClassificationFacet'),
97
+ ref('IDSMaterialFacet'),
98
+ ref('IDSPartOfFacet'),
99
+ ],
100
+ },
101
+ IDSRequirement: obj({
102
+ id: str,
103
+ facet: ref('IDSFacet'),
104
+ optionality: ref('Optionality'),
105
+ cardinalityRaw: str,
106
+ description: str,
107
+ instructions: str,
108
+ }, ['id', 'facet', 'optionality']),
109
+ IDSSpecification: obj({
110
+ id: str,
111
+ name: str,
112
+ description: str,
113
+ instructions: str,
114
+ ifcVersions: { type: 'array', items: ref('IfcVersion') },
115
+ ifcVersionRaw: str,
116
+ identifier: str,
117
+ applicability: obj({ facets: { type: 'array', items: ref('IDSFacet') }, cardinality: str }, ['facets']),
118
+ requirements: { type: 'array', items: ref('IDSRequirement') },
119
+ minOccurs: num,
120
+ maxOccurs: { anyOf: [num, { const: 'unbounded' }] },
121
+ }, ['id', 'name', 'ifcVersions', 'applicability', 'requirements']),
122
+ FacetNodes: obj({
123
+ id: ref('Uuid'),
124
+ constraints: obj(Object.fromEntries(ALL_FACET_FIELDS.map((f) => [f, ref('Uuid')]))),
125
+ }, ['id', 'constraints']),
126
+ SpecNodes: obj({
127
+ id: ref('Uuid'),
128
+ applicability: { type: 'array', items: ref('FacetNodes') },
129
+ requirements: { type: 'array', items: ref('FacetNodes') },
130
+ }, ['id', 'applicability', 'requirements']),
131
+ };
132
+ const vi = ref('ValueInput');
133
+ const FACET_DRAFTS = {
134
+ EntityDraft: obj({ type: { const: 'entity' }, name: vi, predefinedType: vi }, ['type', 'name']),
135
+ AttributeDraft: obj({ type: { const: 'attribute' }, name: vi, value: vi }, ['type', 'name']),
136
+ PropertyDraft: obj({ type: { const: 'property' }, propertySet: vi, baseName: vi, dataType: vi, value: vi, uri }, ['type', 'propertySet', 'baseName']),
137
+ ClassificationDraft: obj({ type: { const: 'classification' }, system: vi, value: vi, uri }, ['type']),
138
+ MaterialDraft: obj({ type: { const: 'material' }, value: vi, uri }, ['type']),
139
+ PartOfDraft: obj({
140
+ type: { const: 'partOf' },
141
+ relation: ref('PartOfRelation'),
142
+ entity: obj({ name: vi, predefinedType: vi }, ['name']),
143
+ }, ['type', 'relation']),
144
+ };
145
+ export const VALUE_DEFS = {
146
+ Uuid: { type: 'string', pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' },
147
+ Scalar: { type: ['string', 'number', 'boolean'] },
148
+ XsdBase: {
149
+ enum: [
150
+ 'xs:string',
151
+ 'xs:boolean',
152
+ 'xs:integer',
153
+ 'xs:double',
154
+ 'xs:decimal',
155
+ 'xs:float',
156
+ 'xs:date',
157
+ 'xs:dateTime',
158
+ 'xs:time',
159
+ 'xs:duration',
160
+ 'xs:anyURI',
161
+ ],
162
+ },
163
+ IfcVersion: { enum: ['IFC2X3', 'IFC4', 'IFC4X3_ADD2', 'IFC4X3'] },
164
+ PartOfRelation: {
165
+ enum: [
166
+ 'IfcRelAggregates',
167
+ 'IfcRelAssignsToGroup',
168
+ 'IfcRelContainedInSpatialStructure',
169
+ 'IfcRelNests',
170
+ 'IfcRelVoidsElement',
171
+ 'IfcRelFillsElement',
172
+ 'IfcRelVoidsElement IfcRelFillsElement',
173
+ ],
174
+ },
175
+ Optionality: { enum: ['required', 'optional', 'prohibited'] },
176
+ Section: { enum: ['applicability', 'requirements'] },
177
+ FacetField: { enum: [...ALL_FACET_FIELDS] },
178
+ ...DRAFTS,
179
+ ConstraintDraft: { oneOf: DRAFT_NAMES.map(ref) },
180
+ ValueInput: { oneOf: [...DRAFT_NAMES.map(ref), ref('RawConstraint')] },
181
+ ...FACET_DRAFTS,
182
+ FacetDraft: { oneOf: Object.keys(FACET_DRAFTS).map(ref) },
183
+ ...IDS_CONTENT,
184
+ CommentThread: obj({
185
+ id: { $ref: '#/$defs/Uuid' },
186
+ resolved: { type: 'boolean' },
187
+ comments: {
188
+ type: 'array',
189
+ minItems: 1,
190
+ items: obj({ author: { type: 'string', minLength: 1 }, at: { type: 'string', minLength: 1 }, text: { type: 'string', minLength: 1 } }, [
191
+ 'author',
192
+ 'at',
193
+ 'text',
194
+ ]),
195
+ },
196
+ }, ['id', 'resolved', 'comments']),
197
+ TestExpectation: { enum: ['pass', 'fail', 'notApplicable'] },
198
+ TestCase: obj({
199
+ id: { $ref: '#/$defs/Uuid' },
200
+ name: { type: 'string', minLength: 1 },
201
+ fixture: {
202
+ oneOf: [
203
+ obj({
204
+ kind: { const: 'synthetic' },
205
+ recipe: obj({
206
+ generator: { const: 'ids-testgen/1' },
207
+ ifcVersion: { $ref: '#/$defs/IfcVersion' },
208
+ variant: {
209
+ oneOf: [
210
+ obj({ kind: { const: 'pass' } }, ['kind']),
211
+ obj({ kind: { const: 'fail' }, requirementId: { $ref: '#/$defs/Uuid' } }, ['kind', 'requirementId']),
212
+ obj({ kind: { const: 'notApplicable' } }, ['kind']),
213
+ ],
214
+ },
215
+ }, ['generator', 'ifcVersion', 'variant']),
216
+ }, ['kind', 'recipe']),
217
+ obj({ kind: { const: 'snapshot' }, ifcRef: { type: 'string', minLength: 1 }, entityRefs: { type: 'array', items: { type: 'string' } } }, [
218
+ 'kind',
219
+ 'ifcRef',
220
+ 'entityRefs',
221
+ ]),
222
+ obj({ kind: { const: 'file' }, path: { type: 'string', minLength: 1 } }, ['kind', 'path']),
223
+ ],
224
+ },
225
+ expect: { $ref: '#/$defs/TestExpectation' },
226
+ expectFailureOn: { type: 'array', items: { $ref: '#/$defs/Uuid' } },
227
+ }, ['id', 'name', 'fixture', 'expect']),
228
+ CustomPsetDecl: obj({
229
+ name: { type: 'string', minLength: 1 },
230
+ properties: { type: 'array', items: obj({ name: { type: 'string', minLength: 1 }, dataType: str }, ['name']) },
231
+ }, ['name']),
232
+ };
233
+ //# sourceMappingURL=schema-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-values.js","sourceRoot":"","sources":["../../src/ops/schema-values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The op contract as JSON Schema — the single source the runtime validator
3
+ * (`validateOp`) interprets and `getOpJsonSchema()` hands to AI tools, MCP
4
+ * and other non-TypeScript callers (§8: the agent's contract cannot drift
5
+ * from the reducer because both read this object).
6
+ */
7
+ import { type SchemaError } from './json-schema-lite.js';
8
+ import { type OpKind, type StudioOp } from './types.js';
9
+ /** Every op kind of vocabulary v1, in schema order. */
10
+ export declare const OP_KINDS: OpKind[];
11
+ /**
12
+ * The JSON Schema (2020-12) of one op of vocabulary v1. Self-contained
13
+ * (`$defs` included); safe to embed in an AI tool definition.
14
+ */
15
+ export declare function getOpJsonSchema(): Record<string, unknown>;
16
+ export type OpValidation = {
17
+ ok: true;
18
+ op: StudioOp;
19
+ } | {
20
+ ok: false;
21
+ errors: SchemaError[];
22
+ };
23
+ /** Runtime check of an untrusted value against the op schema. */
24
+ export declare function validateOp(value: unknown): OpValidation;
25
+ /** Validate an arbitrary named `$def` (used for template expansion). */
26
+ export declare function validateAgainstDef(value: unknown, def: string): SchemaError[];
27
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/ops/schema.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAe,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAqNrE,uDAAuD;AACvD,eAAO,MAAM,QAAQ,EAA4B,MAAM,EAAE,CAAC;AAiF1D;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzD;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAE7F,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAGvD;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAE7E"}
@@ -0,0 +1,258 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * The op contract as JSON Schema — the single source the runtime validator
6
+ * (`validateOp`) interprets and `getOpJsonSchema()` hands to AI tools, MCP
7
+ * and other non-TypeScript callers (§8: the agent's contract cannot drift
8
+ * from the reducer because both read this object).
9
+ */
10
+ import { validateJson } from './json-schema-lite.js';
11
+ import { obj, VALUE_DEFS } from './schema-values.js';
12
+ import { OPS_VERSION } from './types.js';
13
+ const ref = (name) => ({ $ref: `#/$defs/${name}` });
14
+ const str = { type: 'string' };
15
+ const nonEmpty = { type: 'string', minLength: 1 };
16
+ const nullableStr = { type: ['string', 'null'] };
17
+ const index = { type: 'integer', minimum: 0 };
18
+ const uuid = ref('Uuid');
19
+ const versions = { type: 'array', items: ref('IfcVersion'), minItems: 1 };
20
+ const scope = { type: 'array', items: uuid };
21
+ const PAYLOADS = {
22
+ 'doc.setInfo': obj({
23
+ field: { enum: ['title', 'copyright', 'version', 'description', 'author', 'date', 'purpose', 'milestone'] },
24
+ value: nullableStr,
25
+ }, ['field', 'value']),
26
+ 'spec.add': obj({
27
+ specId: uuid,
28
+ index,
29
+ name: str,
30
+ ifcVersions: versions,
31
+ description: str,
32
+ instructions: str,
33
+ identifier: str,
34
+ cardinality: ref('Optionality'),
35
+ }, ['specId', 'name', 'ifcVersions']),
36
+ 'spec.remove': obj({ specId: uuid }, ['specId']),
37
+ 'spec.duplicate': obj({ specId: uuid, newSpecId: uuid, nameSuffix: str }, ['specId', 'newSpecId']),
38
+ 'spec.move': obj({ specId: uuid, toIndex: index }, ['specId', 'toIndex']),
39
+ 'spec.set': obj({ specId: uuid, field: { enum: ['name', 'description', 'instructions', 'identifier'] }, value: nullableStr }, ['specId', 'field', 'value']),
40
+ 'spec.setCardinality': obj({ specId: uuid, cardinality: ref('Optionality') }, ['specId', 'cardinality']),
41
+ 'spec.setIfcVersions': obj({ specId: uuid, versions }, ['specId', 'versions']),
42
+ 'spec.restore': obj({ index, spec: ref('IDSSpecification'), nodes: ref('SpecNodes') }, ['index', 'spec', 'nodes']),
43
+ 'spec.patch': obj({
44
+ specId: uuid,
45
+ set: obj({
46
+ name: str,
47
+ description: nullableStr,
48
+ instructions: nullableStr,
49
+ identifier: nullableStr,
50
+ ifcVersions: { type: 'array', items: ref('IfcVersion') },
51
+ ifcVersionRaw: nullableStr,
52
+ minOccurs: { type: ['number', 'null'] },
53
+ maxOccurs: { anyOf: [{ type: ['number', 'null'] }, { const: 'unbounded' }] },
54
+ applicabilityCardinality: nullableStr,
55
+ }),
56
+ }, ['specId', 'set']),
57
+ 'facet.add': obj({
58
+ specId: uuid,
59
+ section: ref('Section'),
60
+ facetId: uuid,
61
+ index,
62
+ facet: ref('FacetDraft'),
63
+ optionality: ref('Optionality'),
64
+ description: str,
65
+ instructions: str,
66
+ constraintIds: ref('ConstraintIds'),
67
+ }, ['specId', 'section', 'facetId', 'facet']),
68
+ 'facet.remove': obj({ facetId: uuid }, ['facetId']),
69
+ 'facet.move': obj({ facetId: uuid, toSpecId: uuid, toSection: ref('Section'), toIndex: index }, [
70
+ 'facetId',
71
+ 'toIndex',
72
+ ]),
73
+ 'facet.replace': obj({ facetId: uuid, facet: ref('FacetDraft'), constraintIds: ref('ConstraintIds') }, [
74
+ 'facetId',
75
+ 'facet',
76
+ ]),
77
+ 'facet.setField': obj({ facetId: uuid, field: ref('FacetField'), value: { anyOf: [ref('ValueInput'), { type: 'null' }] }, constraintId: uuid }, ['facetId', 'field', 'value']),
78
+ 'facet.setRelation': obj({ facetId: uuid, relation: ref('PartOfRelation') }, ['facetId', 'relation']),
79
+ 'facet.setUri': obj({ facetId: uuid, uri: { type: ['string', 'null'], minLength: 1 } }, ['facetId', 'uri']),
80
+ 'facet.restore': obj({
81
+ specId: uuid,
82
+ section: ref('Section'),
83
+ index,
84
+ facet: ref('IDSFacet'),
85
+ requirement: obj({ optionality: ref('Optionality'), cardinalityRaw: str, description: str, instructions: str }, ['optionality']),
86
+ nodes: ref('FacetNodes'),
87
+ }, ['specId', 'section', 'index', 'facet', 'nodes']),
88
+ 'facet.patch': obj({
89
+ facetId: uuid,
90
+ set: obj({
91
+ optionality: ref('Optionality'),
92
+ cardinalityRaw: nullableStr,
93
+ description: nullableStr,
94
+ instructions: nullableStr,
95
+ relation: ref('PartOfRelation'),
96
+ rawRelation: nullableStr,
97
+ uri: nullableStr,
98
+ }),
99
+ }, ['facetId', 'set']),
100
+ 'requirement.setOptionality': obj({ facetId: uuid, optionality: ref('Optionality') }, ['facetId', 'optionality']),
101
+ 'requirement.set': obj({ facetId: uuid, field: { enum: ['description', 'instructions'] }, value: nullableStr }, ['facetId', 'field', 'value']),
102
+ 'value.set': obj({ facetId: uuid, field: ref('FacetField'), value: ref('ValueInput'), constraintId: uuid }, [
103
+ 'facetId',
104
+ 'field',
105
+ 'value',
106
+ ]),
107
+ 'value.addEnumValue': obj({ facetId: uuid, field: ref('FacetField'), value: ref('Scalar'), constraintId: uuid }, [
108
+ 'facetId',
109
+ 'field',
110
+ 'value',
111
+ ]),
112
+ 'value.removeEnumValue': obj({ facetId: uuid, field: ref('FacetField'), value: ref('Scalar') }, [
113
+ 'facetId',
114
+ 'field',
115
+ 'value',
116
+ ]),
117
+ 'meta.custom.declarePset': obj({ decl: ref('CustomPsetDecl'), index }, ['decl']),
118
+ 'meta.custom.removePset': obj({ name: nonEmpty }, ['name']),
119
+ 'meta.custom.declareUserDefinedType': obj({ entity: nonEmpty, value: nonEmpty, index }, ['entity', 'value']),
120
+ 'meta.custom.removeUserDefinedType': obj({ entity: nonEmpty, value: nonEmpty }, ['entity', 'value']),
121
+ 'meta.comment.add': obj({ nodeId: uuid, threadId: uuid, author: nonEmpty, at: nonEmpty, text: nonEmpty }, [
122
+ 'nodeId',
123
+ 'threadId',
124
+ 'author',
125
+ 'at',
126
+ 'text',
127
+ ]),
128
+ 'meta.comment.reply': obj({ threadId: uuid, author: nonEmpty, at: nonEmpty, text: nonEmpty }, ['threadId', 'author', 'at', 'text']),
129
+ 'meta.comment.removeReply': obj({ threadId: uuid }, ['threadId']),
130
+ 'meta.comment.resolve': obj({ threadId: uuid, resolved: { type: 'boolean' } }, ['threadId', 'resolved']),
131
+ 'meta.comment.removeThread': obj({ threadId: uuid }, ['threadId']),
132
+ 'meta.comment.restoreThread': obj({ nodeId: uuid, index, thread: ref('CommentThread') }, ['nodeId', 'index', 'thread']),
133
+ 'meta.test.add': obj({ specId: uuid, testCase: ref('TestCase'), index }, ['specId', 'testCase']),
134
+ 'meta.test.remove': obj({ testId: uuid }, ['testId']),
135
+ 'meta.test.restore': obj({ specId: uuid, index, testCase: ref('TestCase') }, ['specId', 'index', 'testCase']),
136
+ 'meta.test.setExpectation': obj({ testId: uuid, expect: ref('TestExpectation'), expectFailureOn: { anyOf: [{ type: 'array', items: uuid }, { type: 'null' }] } }, ['testId', 'expect', 'expectFailureOn']),
137
+ 'meta.suppress': obj({
138
+ nodeId: uuid,
139
+ // Rule format and a non-blank reason are gate checks (GATE-SUP-001/002),
140
+ // so an inverse can restore an imported suppression exactly.
141
+ suppression: obj({ rule: str, reason: str, by: str, at: str }, ['rule', 'reason', 'at']),
142
+ index,
143
+ }, ['nodeId', 'suppression']),
144
+ 'meta.unsuppress': obj({ nodeId: uuid, rule: str, keepEmpty: { type: 'boolean' } }, ['nodeId', 'rule']),
145
+ 'bulk.renameProperty': obj({ fromPset: nonEmpty, fromName: nonEmpty, toPset: nonEmpty, toName: nonEmpty, scope }, ['fromPset', 'fromName', 'toPset', 'toName']),
146
+ 'bulk.retargetEntity': obj({ from: nonEmpty, to: nonEmpty, scope }, ['from', 'to']),
147
+ 'bulk.applyTemplate': obj({ template: ref('OpTemplate'), params: { type: 'object', additionalProperties: str } }, ['template', 'params']),
148
+ 'bulk.fromBsddClass': obj({
149
+ classes: { type: 'array', items: ref('BsddClassSnapshot'), minItems: 1 },
150
+ target: {
151
+ oneOf: [
152
+ obj({ specId: uuid }, ['specId']),
153
+ obj({
154
+ newSpec: obj({ specId: uuid, name: nonEmpty, ifcVersions: versions, index, description: str, identifier: str, cardinality: ref('Optionality') }, ['specId', 'name', 'ifcVersions']),
155
+ }, ['newSpec']),
156
+ ],
157
+ },
158
+ classification: obj({ section: ref('Section'), uri: { type: 'boolean' } }, ['section']),
159
+ entity: obj({ section: ref('Section'), entities: { type: 'array', items: nonEmpty, minItems: 1 } }, ['section']),
160
+ properties: obj({
161
+ select: { type: 'array', items: nonEmpty, minItems: 1 },
162
+ optionality: { enum: ['fromClass', 'required', 'optional'] },
163
+ fallbackPropertySet: nonEmpty,
164
+ uri: { type: 'boolean' },
165
+ }, ['select']),
166
+ }, ['classes', 'target']),
167
+ };
168
+ /** Every op kind of vocabulary v1, in schema order. */
169
+ export const OP_KINDS = Object.keys(PAYLOADS);
170
+ const COMPOUND = new Set(['bulk.renameProperty', 'bulk.retargetEntity', 'bulk.applyTemplate', 'bulk.fromBsddClass']);
171
+ function opDefName(kind) {
172
+ return `Op_${kind.replace(/\./g, '_')}`;
173
+ }
174
+ function buildDefs() {
175
+ const defs = { ...VALUE_DEFS };
176
+ defs.ConstraintIds = VALUE_DEFS.FacetNodes.properties?.constraints ?? {};
177
+ for (const kind of OP_KINDS) {
178
+ defs[opDefName(kind)] = obj({ kind: { const: kind }, opId: uuid, payload: PAYLOADS[kind] }, [
179
+ 'kind',
180
+ 'opId',
181
+ 'payload',
182
+ ]);
183
+ }
184
+ defs.TemplateOp = {
185
+ type: 'object',
186
+ properties: {
187
+ kind: { enum: OP_KINDS.filter((k) => !COMPOUND.has(k)) },
188
+ payload: { type: 'object' },
189
+ },
190
+ required: ['kind', 'payload'],
191
+ additionalProperties: false,
192
+ };
193
+ defs.OpTemplate = obj({
194
+ id: nonEmpty,
195
+ title: str,
196
+ params: {
197
+ type: 'array',
198
+ items: obj({ name: { type: 'string', pattern: '^[A-Za-z_][A-Za-z0-9_]*$' }, description: str, default: str }, [
199
+ 'name',
200
+ ]),
201
+ },
202
+ ops: { type: 'array', items: ref('TemplateOp'), minItems: 1 },
203
+ }, ['id', 'params', 'ops']);
204
+ defs.BsddClassSnapshot = obj({
205
+ uri: nonEmpty,
206
+ code: nonEmpty,
207
+ name: str,
208
+ dictionaryUri: nonEmpty,
209
+ dictionaryName: nonEmpty,
210
+ relatedIfcEntities: { type: 'array', items: obj({ entity: nonEmpty, predefinedType: nonEmpty }, ['entity']) },
211
+ properties: { type: 'array', items: ref('BsddPropertySnapshot') },
212
+ }, ['uri', 'code', 'name', 'dictionaryUri', 'dictionaryName']);
213
+ const num = { type: 'number' };
214
+ defs.BsddPropertySnapshot = obj({
215
+ code: nonEmpty,
216
+ name: str,
217
+ uri: nonEmpty,
218
+ propertySet: nonEmpty,
219
+ dataType: nonEmpty,
220
+ propertyValueKind: nonEmpty,
221
+ dimension: nonEmpty,
222
+ units: { type: 'array', items: nonEmpty },
223
+ allowedValues: { type: 'array', items: obj({ code: nonEmpty, value: str }, ['code']) },
224
+ minInclusive: num,
225
+ maxInclusive: num,
226
+ minExclusive: num,
227
+ maxExclusive: num,
228
+ pattern: nonEmpty,
229
+ isRequired: { type: 'boolean' },
230
+ standardDataType: nonEmpty,
231
+ }, ['code']);
232
+ defs.StudioOp = { oneOf: OP_KINDS.map((k) => ref(opDefName(k))) };
233
+ return defs;
234
+ }
235
+ const DEFS = buildDefs();
236
+ /**
237
+ * The JSON Schema (2020-12) of one op of vocabulary v1. Self-contained
238
+ * (`$defs` included); safe to embed in an AI tool definition.
239
+ */
240
+ export function getOpJsonSchema() {
241
+ return {
242
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
243
+ $id: `https://ifclite.dev/schemas/ids-authoring/ops-v${OPS_VERSION}.json`,
244
+ title: `IDS Studio operation (opsVersion ${OPS_VERSION})`,
245
+ ...structuredClone(DEFS.StudioOp),
246
+ $defs: structuredClone(DEFS),
247
+ };
248
+ }
249
+ /** Runtime check of an untrusted value against the op schema. */
250
+ export function validateOp(value) {
251
+ const errors = validateJson(value, DEFS.StudioOp, DEFS);
252
+ return errors.length === 0 ? { ok: true, op: value } : { ok: false, errors };
253
+ }
254
+ /** Validate an arbitrary named `$def` (used for template expansion). */
255
+ export function validateAgainstDef(value, def) {
256
+ return validateJson(value, ref(def), DEFS);
257
+ }
258
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/ops/schema.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAqC,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAA8B,MAAM,YAAY,CAAC;AAErE,MAAM,GAAG,GAAG,CAAC,IAAY,EAAc,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;AACxE,MAAM,GAAG,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC3C,MAAM,QAAQ,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AAC9D,MAAM,WAAW,GAAe,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AAC7D,MAAM,KAAK,GAAe,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC1D,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AACzB,MAAM,QAAQ,GAAe,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACtF,MAAM,KAAK,GAAe,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAEzD,MAAM,QAAQ,GAA+B;IAC3C,aAAa,EAAE,GAAG,CAChB;QACE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE;QAC3G,KAAK,EAAE,WAAW;KACnB,EACD,CAAC,OAAO,EAAE,OAAO,CAAC,CACnB;IACD,UAAU,EAAE,GAAG,CACb;QACE,MAAM,EAAE,IAAI;QACZ,KAAK;QACL,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,GAAG;QAChB,YAAY,EAAE,GAAG;QACjB,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC;KAChC,EACD,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAClC;IACD,aAAa,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IAChD,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClG,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzE,UAAU,EAAE,GAAG,CACb,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAC5G,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAC7B;IACD,qBAAqB,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxG,qBAAqB,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9E,cAAc,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClH,YAAY,EAAE,GAAG,CACf;QACE,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,GAAG,CAAC;YACP,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,WAAW;YACvB,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE;YACxD,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YACvC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE;YAC5E,wBAAwB,EAAE,WAAW;SACtC,CAAC;KACH,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,CAClB;IACD,WAAW,EAAE,GAAG,CACd;QACE,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;QACvB,OAAO,EAAE,IAAI;QACb,KAAK;QACL,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC;QACxB,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC;QAC/B,WAAW,EAAE,GAAG;QAChB,YAAY,EAAE,GAAG;QACjB,aAAa,EAAE,GAAG,CAAC,eAAe,CAAC;KACpC,EACD,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAC1C;IACD,cAAc,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IACnD,YAAY,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC9F,SAAS;QACT,SAAS;KACV,CAAC;IACF,eAAe,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE;QACrG,SAAS;QACT,OAAO;KACR,CAAC;IACF,gBAAgB,EAAE,GAAG,CACnB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EACxH,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9B;IACD,mBAAmB,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrG,cAAc,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3G,eAAe,EAAE,GAAG,CAClB;QACE,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;QACvB,KAAK;QACL,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC;QACtB,WAAW,EAAE,GAAG,CACd,EAAE,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,EAC7F,CAAC,aAAa,CAAC,CAChB;QACD,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC;KACzB,EACD,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CACjD;IACD,aAAa,EAAE,GAAG,CAChB;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG,CAAC;YACP,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC;YAC/B,cAAc,EAAE,WAAW;YAC3B,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,WAAW;YACzB,QAAQ,EAAE,GAAG,CAAC,gBAAgB,CAAC;YAC/B,WAAW,EAAE,WAAW;YACxB,GAAG,EAAE,WAAW;SACjB,CAAC;KACH,EACD,CAAC,SAAS,EAAE,KAAK,CAAC,CACnB;IACD,4BAA4B,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACjH,iBAAiB,EAAE,GAAG,CACpB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EACvF,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9B;IACD,WAAW,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;QAC1G,SAAS;QACT,OAAO;QACP,OAAO;KACR,CAAC;IACF,oBAAoB,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;QAC/G,SAAS;QACT,OAAO;QACP,OAAO;KACR,CAAC;IACF,uBAAuB,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE;QAC9F,SAAS;QACT,OAAO;QACP,OAAO;KACR,CAAC;IACF,yBAAyB,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAChF,wBAAwB,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3D,oCAAoC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5G,mCAAmC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpG,kBAAkB,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACxG,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,MAAM;KACP,CAAC;IACF,oBAAoB,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnI,0BAA0B,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IACjE,sBAAsB,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACxG,2BAA2B,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IAClE,4BAA4B,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvH,eAAe,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChG,kBAAkB,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACrD,mBAAmB,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC7G,0BAA0B,EAAE,GAAG,CAC7B,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAChI,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CACxC;IACD,eAAe,EAAE,GAAG,CAClB;QACE,MAAM,EAAE,IAAI;QACZ,yEAAyE;QACzE,6DAA6D;QAC7D,WAAW,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxF,KAAK;KACN,EACD,CAAC,QAAQ,EAAE,aAAa,CAAC,CAC1B;IACD,iBAAiB,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvG,qBAAqB,EAAE,GAAG,CACxB,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EACrF,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAC7C;IACD,qBAAqB,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnF,oBAAoB,EAAE,GAAG,CACvB,EAAE,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,EAAE,EAAE,EACtF,CAAC,UAAU,EAAE,QAAQ,CAAC,CACvB;IACD,oBAAoB,EAAE,GAAG,CACvB;QACE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;QACxE,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACjC,GAAG,CACD;oBACE,OAAO,EAAE,GAAG,CACV,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,EAClI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAClC;iBACF,EACD,CAAC,SAAS,CAAC,CACZ;aACF;SACF;QACD,cAAc,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QACvF,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QAChH,UAAU,EAAE,GAAG,CACb;YACE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE;YACvD,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;YAC5D,mBAAmB,EAAE,QAAQ;YAC7B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACzB,EACD,CAAC,QAAQ,CAAC,CACX;KACF,EACD,CAAC,SAAS,EAAE,QAAQ,CAAC,CACtB;CACF,CAAC;AAEF,uDAAuD;AACvD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAa,CAAC;AAE1D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAE7H,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,IAAI,GAA+B,EAAE,GAAG,UAAU,EAAE,CAAC;IAC3D,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC;IACzE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE;YAC1F,MAAM;YACN,MAAM;YACN,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,UAAU,GAAG;QAChB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YACxD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC5B;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;QAC7B,oBAAoB,EAAE,KAAK;KAC5B,CAAC;IACF,IAAI,CAAC,UAAU,GAAG,GAAG,CACnB;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,GAAG;QACV,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;gBAC5G,MAAM;aACP,CAAC;SACH;QACD,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;KAC9D,EACD,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CACxB,CAAC;IACF,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAC1B;QACE,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,GAAG;QACT,aAAa,EAAE,QAAQ;QACvB,cAAc,EAAE,QAAQ;QACxB,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC7G,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,sBAAsB,CAAC,EAAE;KAClE,EACD,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAC3D,CAAC;IACF,MAAM,GAAG,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAC7B;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,QAAQ;QACb,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,QAAQ;QAClB,iBAAiB,EAAE,QAAQ;QAC3B,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;QACzC,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;QACtF,YAAY,EAAE,GAAG;QACjB,YAAY,EAAE,GAAG;QACjB,YAAY,EAAE,GAAG;QACjB,YAAY,EAAE,GAAG;QACjB,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC/B,gBAAgB,EAAE,QAAQ;KAC3B,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IACF,IAAI,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;AAEzB;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,OAAO,EAAE,8CAA8C;QACvD,GAAG,EAAE,kDAAkD,WAAW,OAAO;QACzE,KAAK,EAAE,oCAAoC,WAAW,GAAG;QACzD,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC;KAC7B,CAAC;AACJ,CAAC;AAID,iEAAiE;AACjE,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3F,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAE,GAAW;IAC5D,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}