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

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,85 @@
1
+ /**
2
+ * Sidecar-only ops for lint suppressions (P-04), comment threads
3
+ * (IDS-108) and test suites (IDS-110). Re-exported from `types.ts`;
4
+ * they never touch the IDS XML.
5
+ */
6
+ import type { CommentThread, Suppression } from '../document/types.js';
7
+ import type { TestCase, TestExpectation } from '../testing/types.js';
8
+ import type { Uuid } from '../uuid.js';
9
+ import type { Op } from './types.js';
10
+ /**
11
+ * Silence a lint rule on a node and everything below it
12
+ * (`meta.suppressions[nodeId]`). `suppression.rule` is a full code
13
+ * (`IDSL-SPEC-008`) or a wildcard (`IDSL-SPEC-*`); the reason is required.
14
+ * A suppression of the same rule on the same node is replaced in place.
15
+ */
16
+ export type MetaSuppressOp = Op<'meta.suppress', {
17
+ nodeId: Uuid;
18
+ suppression: Suppression;
19
+ index?: number;
20
+ }>;
21
+ /**
22
+ * Remove the suppression of `rule` from `nodeId`. `keepEmpty` is a
23
+ * fidelity flag used by inverses: it keeps an empty list on the node
24
+ * instead of dropping the key, so undo restores the sidecar exactly.
25
+ */
26
+ export type MetaUnsuppressOp = Op<'meta.unsuppress', {
27
+ nodeId: Uuid;
28
+ rule: string;
29
+ keepEmpty?: boolean;
30
+ }>;
31
+ /** One comment of a thread (sidecar only). */
32
+ export interface CommentDraft {
33
+ author: string;
34
+ /** ISO timestamp. */
35
+ at: string;
36
+ text: string;
37
+ }
38
+ /** Open a thread on a live node. */
39
+ export type MetaCommentAddOp = Op<'meta.comment.add', CommentDraft & {
40
+ nodeId: Uuid;
41
+ threadId: Uuid;
42
+ }>;
43
+ /** Append a comment to a thread. */
44
+ export type MetaCommentReplyOp = Op<'meta.comment.reply', CommentDraft & {
45
+ threadId: Uuid;
46
+ }>;
47
+ /** Remove the last comment of a thread that has more than one (inverse of reply). */
48
+ export type MetaCommentRemoveReplyOp = Op<'meta.comment.removeReply', {
49
+ threadId: Uuid;
50
+ }>;
51
+ export type MetaCommentResolveOp = Op<'meta.comment.resolve', {
52
+ threadId: Uuid;
53
+ resolved: boolean;
54
+ }>;
55
+ export type MetaCommentRemoveThreadOp = Op<'meta.comment.removeThread', {
56
+ threadId: Uuid;
57
+ }>;
58
+ /** Add a test case to a specification's suite. */
59
+ export type MetaTestAddOp = Op<'meta.test.add', {
60
+ specId: Uuid;
61
+ testCase: TestCase;
62
+ index?: number;
63
+ }>;
64
+ export type MetaTestRemoveOp = Op<'meta.test.remove', {
65
+ testId: Uuid;
66
+ }>;
67
+ /** Put a test case back (inverse of remove; the specification may be gone, suites outlive it). */
68
+ export type MetaTestRestoreOp = Op<'meta.test.restore', {
69
+ specId: Uuid;
70
+ index: number;
71
+ testCase: TestCase;
72
+ }>;
73
+ /** Change what a test case expects; `expectFailureOn: null` clears it. */
74
+ export type MetaTestSetExpectationOp = Op<'meta.test.setExpectation', {
75
+ testId: Uuid;
76
+ expect: TestExpectation;
77
+ expectFailureOn: Uuid[] | null;
78
+ }>;
79
+ /** Put a thread back (inverse of removeThread; the node may be gone, threads outlive nodes). */
80
+ export type MetaCommentRestoreThreadOp = Op<'meta.comment.restoreThread', {
81
+ nodeId: Uuid;
82
+ index: number;
83
+ thread: CommentThread;
84
+ }>;
85
+ //# sourceMappingURL=sidecar-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidecar-ops.d.ts","sourceRoot":"","sources":["../../src/ops/sidecar-ops.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC,eAAe,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC7G;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC,iBAAiB,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAE1G,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC,kBAAkB,EAAE,YAAY,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AACvG,oCAAoC;AACpC,MAAM,MAAM,kBAAkB,GAAG,EAAE,CAAC,oBAAoB,EAAE,YAAY,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AAC7F,qFAAqF;AACrF,MAAM,MAAM,wBAAwB,GAAG,EAAE,CAAC,0BAA0B,EAAE;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AAC1F,MAAM,MAAM,oBAAoB,GAAG,EAAE,CAAC,sBAAsB,EAAE;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACrG,MAAM,MAAM,yBAAyB,GAAG,EAAE,CAAC,2BAA2B,EAAE;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AAC5F,kDAAkD;AAClD,MAAM,MAAM,aAAa,GAAG,EAAE,CAAC,eAAe,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACtG,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC,kBAAkB,EAAE;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AACxE,kGAAkG;AAClG,MAAM,MAAM,iBAAiB,GAAG,EAAE,CAAC,mBAAmB,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAC7G,0EAA0E;AAC1E,MAAM,MAAM,wBAAwB,GAAG,EAAE,CACvC,0BAA0B,EAC1B;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAC;IAAC,eAAe,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;CAAE,CAC1E,CAAC;AACF,gGAAgG;AAChG,MAAM,MAAM,0BAA0B,GAAG,EAAE,CAAC,4BAA4B,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC"}
@@ -0,0 +1,5 @@
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
+ export {};
5
+ //# sourceMappingURL=sidecar-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidecar-ops.js","sourceRoot":"","sources":["../../src/ops/sidecar-ops.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
@@ -0,0 +1,400 @@
1
+ /**
2
+ * Operation vocabulary v1 (02-document-model-and-ops.md §3).
3
+ *
4
+ * All ops are plain JSON. The runtime contract (JSON Schema + validator) is
5
+ * in `./schema*.ts`; `op-kinds.test.ts` keeps the two in lockstep.
6
+ *
7
+ * Besides the vocabulary in the architecture doc, v1 has four FIDELITY ops
8
+ * (`spec.restore`, `spec.patch`, `facet.restore`, `facet.patch`). They are
9
+ * what the reducer emits as exact inverses: they carry raw IDS content and
10
+ * node ids, so undo restores imported diagnostics fields (`ifcVersionRaw`,
11
+ * `cardinalityRaw`, `rawRelation`, absent `minOccurs`, …) bit for bit. They
12
+ * pass through the gate like any other op.
13
+ */
14
+ import type { IDSConstraint, IDSFacet, IDSSpecification, IFCVersion, PartOfRelation, RequirementOptionality } from '@ifc-lite/ids';
15
+ import type { FacetFieldName } from '../document/fields.js';
16
+ import type { CustomPsetDecl, FacetNodes, Section, SpecNodes, UserDefinedTypeDecl } from '../document/types.js';
17
+ import type { Uuid } from '../uuid.js';
18
+ import type { MetaSuppressOp, MetaUnsuppressOp, MetaCommentAddOp, MetaCommentReplyOp, MetaCommentRemoveReplyOp, MetaCommentResolveOp, MetaCommentRemoveThreadOp, MetaCommentRestoreThreadOp, MetaTestAddOp, MetaTestRemoveOp, MetaTestRestoreOp, MetaTestSetExpectationOp } from './sidecar-ops.js';
19
+ export type * from './sidecar-ops.js';
20
+ export declare const OPS_VERSION = 1;
21
+ export interface Op<K extends string, P> {
22
+ kind: K;
23
+ opId: Uuid;
24
+ payload: P;
25
+ }
26
+ export type Scalar = string | number | boolean;
27
+ /** XSD base types a draft may name explicitly. */
28
+ export type XsdBase = 'xs:string' | 'xs:boolean' | 'xs:integer' | 'xs:double' | 'xs:decimal' | 'xs:float' | 'xs:date' | 'xs:dateTime' | 'xs:time' | 'xs:duration' | 'xs:anyURI';
29
+ /** The AI- and UI-friendly authoring form of a value (§3.4). */
30
+ export type ConstraintDraft = {
31
+ kind: 'any';
32
+ } | {
33
+ kind: 'equals';
34
+ value: Scalar;
35
+ } | {
36
+ kind: 'oneOf';
37
+ values: Scalar[];
38
+ base?: XsdBase;
39
+ } | {
40
+ kind: 'pattern';
41
+ pattern: string;
42
+ base?: XsdBase;
43
+ } | {
44
+ kind: 'range';
45
+ min?: number;
46
+ minInclusive?: boolean;
47
+ max?: number;
48
+ maxInclusive?: boolean;
49
+ /** Converted to SI (`mm` → m, `kN` → N, `degC` → K, …). */
50
+ unit?: string;
51
+ base?: XsdBase;
52
+ } | {
53
+ kind: 'length';
54
+ exact?: number;
55
+ min?: number;
56
+ max?: number;
57
+ } | {
58
+ kind: 'digits';
59
+ total?: number;
60
+ fraction?: number;
61
+ } | {
62
+ kind: 'all';
63
+ of: ConstraintDraft[];
64
+ };
65
+ /** A verbatim `IDSConstraint` (imports, inverses, paste). */
66
+ export interface RawConstraint {
67
+ kind: 'raw';
68
+ constraint: IDSConstraint;
69
+ }
70
+ export type ValueInput = ConstraintDraft | RawConstraint;
71
+ export type FacetDraft = {
72
+ type: 'entity';
73
+ name: ValueInput;
74
+ predefinedType?: ValueInput;
75
+ } | {
76
+ type: 'attribute';
77
+ name: ValueInput;
78
+ value?: ValueInput;
79
+ } | {
80
+ type: 'property';
81
+ propertySet: ValueInput;
82
+ baseName: ValueInput;
83
+ dataType?: ValueInput;
84
+ value?: ValueInput;
85
+ uri?: string;
86
+ } | {
87
+ type: 'classification';
88
+ system?: ValueInput;
89
+ value?: ValueInput;
90
+ uri?: string;
91
+ } | {
92
+ type: 'material';
93
+ value?: ValueInput;
94
+ uri?: string;
95
+ } | {
96
+ type: 'partOf';
97
+ relation: PartOfRelation;
98
+ entity?: {
99
+ name: ValueInput;
100
+ predefinedType?: ValueInput;
101
+ };
102
+ };
103
+ export type ConstraintIds = Partial<Record<FacetFieldName, Uuid>>;
104
+ export type InfoField = 'title' | 'copyright' | 'version' | 'description' | 'author' | 'date' | 'purpose' | 'milestone';
105
+ export type SpecCardinality = 'required' | 'optional' | 'prohibited';
106
+ export type SpecTextField = 'name' | 'description' | 'instructions' | 'identifier';
107
+ /** Scalar specification fields a `spec.patch` may set; `null` removes. */
108
+ export interface SpecPatch {
109
+ name?: string;
110
+ description?: string | null;
111
+ instructions?: string | null;
112
+ identifier?: string | null;
113
+ ifcVersions?: IFCVersion[];
114
+ ifcVersionRaw?: string | null;
115
+ minOccurs?: number | null;
116
+ maxOccurs?: number | 'unbounded' | null;
117
+ applicabilityCardinality?: string | null;
118
+ }
119
+ export type DocSetInfoOp = Op<'doc.setInfo', {
120
+ field: InfoField;
121
+ value: string | null;
122
+ }>;
123
+ export type SpecAddOp = Op<'spec.add', {
124
+ specId: Uuid;
125
+ index?: number;
126
+ name: string;
127
+ ifcVersions: IFCVersion[];
128
+ description?: string;
129
+ instructions?: string;
130
+ identifier?: string;
131
+ cardinality?: SpecCardinality;
132
+ }>;
133
+ export type SpecRemoveOp = Op<'spec.remove', {
134
+ specId: Uuid;
135
+ }>;
136
+ export type SpecDuplicateOp = Op<'spec.duplicate', {
137
+ specId: Uuid;
138
+ newSpecId: Uuid;
139
+ nameSuffix?: string;
140
+ }>;
141
+ export type SpecMoveOp = Op<'spec.move', {
142
+ specId: Uuid;
143
+ toIndex: number;
144
+ }>;
145
+ export type SpecSetOp = Op<'spec.set', {
146
+ specId: Uuid;
147
+ field: SpecTextField;
148
+ value: string | null;
149
+ }>;
150
+ export type SpecSetCardinalityOp = Op<'spec.setCardinality', {
151
+ specId: Uuid;
152
+ cardinality: SpecCardinality;
153
+ }>;
154
+ export type SpecSetIfcVersionsOp = Op<'spec.setIfcVersions', {
155
+ specId: Uuid;
156
+ versions: IFCVersion[];
157
+ }>;
158
+ export type SpecRestoreOp = Op<'spec.restore', {
159
+ index: number;
160
+ spec: IDSSpecification;
161
+ nodes: SpecNodes;
162
+ }>;
163
+ export type SpecPatchOp = Op<'spec.patch', {
164
+ specId: Uuid;
165
+ set: SpecPatch;
166
+ }>;
167
+ /** Requirement-only fields a `facet.patch` may set; `null` removes. */
168
+ export interface FacetPatch {
169
+ optionality?: RequirementOptionality;
170
+ cardinalityRaw?: string | null;
171
+ description?: string | null;
172
+ instructions?: string | null;
173
+ relation?: PartOfRelation;
174
+ rawRelation?: string | null;
175
+ /** `@uri` of a property, classification or material requirement. */
176
+ uri?: string | null;
177
+ }
178
+ /** Requirement fields carried by `facet.restore` (absent for applicability). */
179
+ export interface RequirementSnapshot {
180
+ optionality: RequirementOptionality;
181
+ cardinalityRaw?: string;
182
+ description?: string;
183
+ instructions?: string;
184
+ }
185
+ export type FacetAddOp = Op<'facet.add', {
186
+ specId: Uuid;
187
+ section: Section;
188
+ facetId: Uuid;
189
+ index?: number;
190
+ facet: FacetDraft;
191
+ optionality?: RequirementOptionality;
192
+ description?: string;
193
+ instructions?: string;
194
+ constraintIds?: ConstraintIds;
195
+ }>;
196
+ export type FacetRemoveOp = Op<'facet.remove', {
197
+ facetId: Uuid;
198
+ }>;
199
+ export type FacetMoveOp = Op<'facet.move', {
200
+ facetId: Uuid;
201
+ toSpecId?: Uuid;
202
+ toSection?: Section;
203
+ toIndex: number;
204
+ }>;
205
+ export type FacetReplaceOp = Op<'facet.replace', {
206
+ facetId: Uuid;
207
+ facet: FacetDraft;
208
+ constraintIds?: ConstraintIds;
209
+ }>;
210
+ export type FacetSetFieldOp = Op<'facet.setField', {
211
+ facetId: Uuid;
212
+ field: FacetFieldName;
213
+ value: ValueInput | null;
214
+ constraintId?: Uuid;
215
+ }>;
216
+ export type FacetSetRelationOp = Op<'facet.setRelation', {
217
+ facetId: Uuid;
218
+ relation: PartOfRelation;
219
+ }>;
220
+ /** Set (or with `null` remove) the `@uri` of a property, classification or material requirement. */
221
+ export type FacetSetUriOp = Op<'facet.setUri', {
222
+ facetId: Uuid;
223
+ uri: string | null;
224
+ }>;
225
+ export type FacetRestoreOp = Op<'facet.restore', {
226
+ specId: Uuid;
227
+ section: Section;
228
+ index: number;
229
+ facet: IDSFacet;
230
+ requirement?: RequirementSnapshot;
231
+ nodes: FacetNodes;
232
+ }>;
233
+ export type FacetPatchOp = Op<'facet.patch', {
234
+ facetId: Uuid;
235
+ set: FacetPatch;
236
+ }>;
237
+ export type RequirementSetOptionalityOp = Op<'requirement.setOptionality', {
238
+ facetId: Uuid;
239
+ optionality: RequirementOptionality;
240
+ }>;
241
+ export type RequirementSetOp = Op<'requirement.set', {
242
+ facetId: Uuid;
243
+ field: 'description' | 'instructions';
244
+ value: string | null;
245
+ }>;
246
+ export type ValueSetOp = Op<'value.set', {
247
+ facetId: Uuid;
248
+ field: FacetFieldName;
249
+ value: ValueInput;
250
+ constraintId?: Uuid;
251
+ }>;
252
+ export type ValueAddEnumOp = Op<'value.addEnumValue', {
253
+ facetId: Uuid;
254
+ field: FacetFieldName;
255
+ value: Scalar;
256
+ constraintId?: Uuid;
257
+ }>;
258
+ export type ValueRemoveEnumOp = Op<'value.removeEnumValue', {
259
+ facetId: Uuid;
260
+ field: FacetFieldName;
261
+ value: Scalar;
262
+ }>;
263
+ export type MetaDeclarePsetOp = Op<'meta.custom.declarePset', {
264
+ decl: CustomPsetDecl;
265
+ index?: number;
266
+ }>;
267
+ export type MetaRemovePsetOp = Op<'meta.custom.removePset', {
268
+ name: string;
269
+ }>;
270
+ export type MetaDeclareUserDefinedTypeOp = Op<'meta.custom.declareUserDefinedType', UserDefinedTypeDecl & {
271
+ index?: number;
272
+ }>;
273
+ export type MetaRemoveUserDefinedTypeOp = Op<'meta.custom.removeUserDefinedType', UserDefinedTypeDecl>;
274
+ export type BulkRenamePropertyOp = Op<'bulk.renameProperty', {
275
+ fromPset: string;
276
+ fromName: string;
277
+ toPset: string;
278
+ toName: string;
279
+ scope?: Uuid[];
280
+ }>;
281
+ export type BulkRetargetEntityOp = Op<'bulk.retargetEntity', {
282
+ from: string;
283
+ to: string;
284
+ scope?: Uuid[];
285
+ }>;
286
+ /** An op inside a template: no `opId`; strings may hold `{{param}}` / `{{id:local}}`. */
287
+ export interface TemplateOp {
288
+ kind: PrimitiveOp['kind'];
289
+ payload: Record<string, unknown>;
290
+ }
291
+ export interface OpTemplate {
292
+ id: string;
293
+ title?: string;
294
+ params: {
295
+ name: string;
296
+ description?: string;
297
+ default?: string;
298
+ }[];
299
+ ops: TemplateOp[];
300
+ }
301
+ export type BulkApplyTemplateOp = Op<'bulk.applyTemplate', {
302
+ template: OpTemplate;
303
+ params: Record<string, string>;
304
+ }>;
305
+ /** An IFC entity a bSDD class relates to, split from bSDD's `IfcWallSOLIDWALL` form. */
306
+ export interface BsddEntityRef {
307
+ entity: string;
308
+ predefinedType?: string;
309
+ }
310
+ /** What the property mapping table (`bsdd/mapping.ts`) needs of a bSDD class property. */
311
+ export interface BsddPropertySnapshot {
312
+ code: string;
313
+ name?: string;
314
+ uri?: string;
315
+ propertySet?: string;
316
+ dataType?: string;
317
+ propertyValueKind?: string;
318
+ dimension?: string;
319
+ units?: string[];
320
+ allowedValues?: {
321
+ code: string;
322
+ value?: string;
323
+ }[];
324
+ minInclusive?: number;
325
+ maxInclusive?: number;
326
+ minExclusive?: number;
327
+ maxExclusive?: number;
328
+ pattern?: string;
329
+ isRequired?: boolean;
330
+ /** EXPRESS data type of the standard property of that name in that standard set, when there is one. */
331
+ standardDataType?: string;
332
+ }
333
+ /**
334
+ * The part of a bSDD class an insert needs, carried in the op so the reducer
335
+ * stays pure and the op log replays offline (like `bulk.applyTemplate`
336
+ * carries its template). Built by `snapshotBsddClass`.
337
+ */
338
+ export interface BsddClassSnapshot {
339
+ uri: string;
340
+ code: string;
341
+ name: string;
342
+ dictionaryUri: string;
343
+ /** The dictionary name as bSDD publishes it: the classification `system`. */
344
+ dictionaryName: string;
345
+ relatedIfcEntities?: BsddEntityRef[];
346
+ /** The class's properties (with inherited ones when the caller resolved the hierarchy). */
347
+ properties?: BsddPropertySnapshot[];
348
+ }
349
+ export interface BsddNewSpec {
350
+ specId: Uuid;
351
+ name: string;
352
+ ifcVersions: IFCVersion[];
353
+ index?: number;
354
+ description?: string;
355
+ identifier?: string;
356
+ cardinality?: SpecCardinality;
357
+ }
358
+ /**
359
+ * Insert one or more classes of ONE dictionary into a specification (an
360
+ * existing one, or a new one the op creates). Several classes give one
361
+ * classification facet with an enumeration of their codes.
362
+ */
363
+ export type BulkFromBsddClassOp = Op<'bulk.fromBsddClass', {
364
+ classes: BsddClassSnapshot[];
365
+ target: {
366
+ specId: Uuid;
367
+ } | {
368
+ newSpec: BsddNewSpec;
369
+ };
370
+ /** Add a classification facet (`system` = dictionary name, `value` = class code; `uri` in requirements for one class). */
371
+ classification?: {
372
+ section: Section;
373
+ uri?: boolean;
374
+ };
375
+ /** Add an entity facet from the related IFC entities (all of them, or the `entities` chosen). */
376
+ entity?: {
377
+ section: Section;
378
+ entities?: string[];
379
+ };
380
+ /** Add property requirements through the mapping table. */
381
+ properties?: BsddPropertySelection;
382
+ }>;
383
+ export interface BsddPropertySelection {
384
+ /** Property codes (or URIs) to add; each must be defined on every class of the op. */
385
+ select: string[];
386
+ /** `fromClass` (default): required when bSDD marks the property required, else optional. */
387
+ optionality?: 'fromClass' | 'required' | 'optional';
388
+ /** Property set for properties bSDD publishes without one (declared as a custom set). */
389
+ fallbackPropertySet?: string;
390
+ /** Write the property URI on the requirement (default true). */
391
+ uri?: boolean;
392
+ }
393
+ export type PrimitiveOp = DocSetInfoOp | SpecAddOp | SpecRemoveOp | SpecDuplicateOp | SpecMoveOp | SpecSetOp | SpecSetCardinalityOp | SpecSetIfcVersionsOp | SpecRestoreOp | SpecPatchOp | FacetAddOp | FacetRemoveOp | FacetMoveOp | FacetReplaceOp | FacetSetFieldOp | FacetSetRelationOp | FacetSetUriOp | FacetRestoreOp | FacetPatchOp | RequirementSetOptionalityOp | RequirementSetOp | ValueSetOp | ValueAddEnumOp | ValueRemoveEnumOp | MetaDeclarePsetOp | MetaRemovePsetOp | MetaDeclareUserDefinedTypeOp | MetaRemoveUserDefinedTypeOp | MetaCommentAddOp | MetaCommentReplyOp | MetaCommentRemoveReplyOp | MetaCommentResolveOp | MetaCommentRemoveThreadOp | MetaCommentRestoreThreadOp | MetaTestAddOp | MetaTestRemoveOp | MetaTestRestoreOp | MetaTestSetExpectationOp | MetaSuppressOp | MetaUnsuppressOp;
394
+ export type CompoundOp = BulkRenamePropertyOp | BulkRetargetEntityOp | BulkApplyTemplateOp | BulkFromBsddClassOp;
395
+ export type StudioOp = PrimitiveOp | CompoundOp;
396
+ export type OpKind = StudioOp['kind'];
397
+ export type OpOfKind<K extends OpKind> = Extract<StudioOp, {
398
+ kind: K;
399
+ }>;
400
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ops/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
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
+ export const OPS_VERSION = 1;
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ops/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA+B/D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function isKnownUnit(unit: string): boolean;
2
+ /** Convert `value` in `unit` to SI. Throws on an unknown unit. */
3
+ export declare function toSI(value: number, unit: string): number;
4
+ //# sourceMappingURL=units.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/ops/units.ts"],"names":[],"mappings":"AA8EA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,kEAAkE;AAClE,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMxD"}
@@ -0,0 +1,75 @@
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
+ const UNITS = {
5
+ // length → m
6
+ mm: { scale: 1e-3 },
7
+ cm: { scale: 1e-2 },
8
+ dm: { scale: 1e-1 },
9
+ m: { scale: 1 },
10
+ km: { scale: 1e3 },
11
+ in: { scale: 0.0254 },
12
+ ft: { scale: 0.3048 },
13
+ // area → m²
14
+ mm2: { scale: 1e-6 },
15
+ cm2: { scale: 1e-4 },
16
+ m2: { scale: 1 },
17
+ ft2: { scale: 0.09290304 },
18
+ // volume → m³
19
+ mm3: { scale: 1e-9 },
20
+ cm3: { scale: 1e-6 },
21
+ l: { scale: 1e-3 },
22
+ m3: { scale: 1 },
23
+ // mass → kg
24
+ g: { scale: 1e-3 },
25
+ kg: { scale: 1 },
26
+ t: { scale: 1e3 },
27
+ // time → s
28
+ s: { scale: 1 },
29
+ min: { scale: 60 },
30
+ h: { scale: 3600 },
31
+ // force → N, pressure → Pa
32
+ n: { scale: 1 },
33
+ kn: { scale: 1e3 },
34
+ pa: { scale: 1 },
35
+ kpa: { scale: 1e3 },
36
+ mpa: { scale: 1e6 },
37
+ // plane angle → rad
38
+ rad: { scale: 1 },
39
+ deg: { scale: Math.PI / 180 },
40
+ // thermodynamic temperature → K
41
+ k: { scale: 1 },
42
+ degc: { scale: 1, offset: 273.15 },
43
+ degf: { scale: 5 / 9, offset: 273.15 - (32 * 5) / 9 },
44
+ };
45
+ const ALIASES = {
46
+ 'mm²': 'mm2',
47
+ 'cm²': 'cm2',
48
+ 'm²': 'm2',
49
+ 'ft²': 'ft2',
50
+ 'mm³': 'mm3',
51
+ 'cm³': 'cm3',
52
+ 'm³': 'm3',
53
+ '°': 'deg',
54
+ '°c': 'degc',
55
+ '°f': 'degf',
56
+ liter: 'l',
57
+ litre: 'l',
58
+ };
59
+ function lookupUnit(unit) {
60
+ const key = unit.trim().toLowerCase();
61
+ return UNITS[ALIASES[key] ?? key];
62
+ }
63
+ export function isKnownUnit(unit) {
64
+ return lookupUnit(unit) !== undefined;
65
+ }
66
+ /** Convert `value` in `unit` to SI. Throws on an unknown unit. */
67
+ export function toSI(value, unit) {
68
+ const def = lookupUnit(unit);
69
+ if (!def)
70
+ throw new Error(`unknown unit "${unit}"`);
71
+ const si = value * def.scale + (def.offset ?? 0);
72
+ // Strip binary noise from decimal scales (2400 mm → 2.4, not 2.4000000000000004).
73
+ return Number(si.toPrecision(15));
74
+ }
75
+ //# sourceMappingURL=units.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/ops/units.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The reducer (§4): `apply(doc, ops) → { doc, inverses, touched, expanded }`.
3
+ *
4
+ * Pure and synchronous, with structural sharing. Compound ops are expanded
5
+ * against the document state at their position (`expandCompound`) and the
6
+ * expansion is applied as primitives, so every applied op has an exact
7
+ * inverse captured at apply time. `inverses` is already in undo order:
8
+ * applying it to the result yields a document deep-equal to the input.
9
+ *
10
+ * The reducer trusts its input to have passed the gate; an op the gate
11
+ * would refuse throws `OpApplyError` (with the gate's code) and nothing
12
+ * is applied.
13
+ */
14
+ import type { StudioDocument } from '../document/types.js';
15
+ import type { PrimitiveOp, StudioOp } from '../ops/types.js';
16
+ import type { Uuid } from '../uuid.js';
17
+ import { OpApplyError } from './edit.js';
18
+ import { type StepResult } from './spec-ops.js';
19
+ export interface ApplyResult {
20
+ doc: StudioDocument;
21
+ /** Undo ops, in the order to apply them. */
22
+ inverses: PrimitiveOp[];
23
+ /** Node ids created, changed, moved or removed. */
24
+ touched: Set<Uuid>;
25
+ /** The primitive ops actually applied (compound ops expanded). */
26
+ expanded: PrimitiveOp[];
27
+ }
28
+ /** Apply one primitive op. */
29
+ export declare function applyPrimitive(doc: StudioDocument, op: PrimitiveOp): StepResult;
30
+ /** Apply `ops` in order. Throws `OpApplyError` without partial effects. */
31
+ export declare function apply(doc: StudioDocument, ops: readonly StudioOp[]): ApplyResult;
32
+ export { OpApplyError };
33
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/reducer/apply.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AASvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAWzC,OAAO,EASL,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAWvB,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,cAAc,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,mDAAmD;IACnD,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,kEAAkE;IAClE,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,GAAG,UAAU,CAmF/E;AAMD,2EAA2E;AAC3E,wBAAgB,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,QAAQ,EAAE,GAAG,WAAW,CAkBhF;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}