@pascal-app/core 0.9.1 → 1.0.0-beta.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 (378) hide show
  1. package/README.md +17 -10
  2. package/dist/events/bus.d.ts +49 -2
  3. package/dist/events/bus.d.ts.map +1 -1
  4. package/dist/hooks/scene-registry/item-clip-registry.d.ts +18 -0
  5. package/dist/hooks/scene-registry/item-clip-registry.d.ts.map +1 -0
  6. package/dist/hooks/scene-registry/item-clip-registry.js +10 -0
  7. package/dist/hooks/scene-registry/scene-registry.d.ts +8 -1
  8. package/dist/hooks/scene-registry/scene-registry.d.ts.map +1 -1
  9. package/dist/hooks/scene-registry/scene-registry.js +27 -1
  10. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts +17 -1
  11. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
  12. package/dist/hooks/spatial-grid/floor-placed-elevation.js +61 -8
  13. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +135 -28
  14. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  15. package/dist/hooks/spatial-grid/spatial-grid-manager.js +427 -271
  16. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +46 -1
  17. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  18. package/dist/hooks/spatial-grid/spatial-grid-sync.js +208 -9
  19. package/dist/hooks/spatial-grid/support-host-id.d.ts +3 -0
  20. package/dist/hooks/spatial-grid/support-host-id.d.ts.map +1 -0
  21. package/dist/hooks/spatial-grid/support-host-id.js +2 -0
  22. package/dist/hooks/spatial-grid/support-host-patch.d.ts +51 -0
  23. package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -0
  24. package/dist/hooks/spatial-grid/support-host-patch.js +164 -0
  25. package/dist/index.d.ts +33 -11
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +32 -10
  28. package/dist/lib/level-name.d.ts +4 -0
  29. package/dist/lib/level-name.d.ts.map +1 -0
  30. package/dist/lib/level-name.js +10 -0
  31. package/dist/lib/measurement-geometry.d.ts +23 -0
  32. package/dist/lib/measurement-geometry.d.ts.map +1 -0
  33. package/dist/lib/measurement-geometry.js +249 -0
  34. package/dist/lib/polygon-geometry.d.ts +0 -1
  35. package/dist/lib/polygon-geometry.d.ts.map +1 -1
  36. package/dist/lib/polygon-geometry.js +0 -18
  37. package/dist/lib/selection-proxy.d.ts +4 -0
  38. package/dist/lib/selection-proxy.d.ts.map +1 -0
  39. package/dist/lib/selection-proxy.js +12 -0
  40. package/dist/lib/slab-polygon.d.ts +31 -2
  41. package/dist/lib/slab-polygon.d.ts.map +1 -1
  42. package/dist/lib/slab-polygon.js +557 -31
  43. package/dist/lib/slots.d.ts +14 -0
  44. package/dist/lib/slots.d.ts.map +1 -0
  45. package/dist/lib/slots.js +26 -0
  46. package/dist/lib/space-detection.d.ts +40 -6
  47. package/dist/lib/space-detection.d.ts.map +1 -1
  48. package/dist/lib/space-detection.js +574 -192
  49. package/dist/lib/terrain-brush.d.ts +163 -0
  50. package/dist/lib/terrain-brush.d.ts.map +1 -0
  51. package/dist/lib/terrain-brush.js +359 -0
  52. package/dist/lib/terrain-codec.d.ts +51 -0
  53. package/dist/lib/terrain-codec.d.ts.map +1 -0
  54. package/dist/lib/terrain-codec.js +167 -0
  55. package/dist/lib/terrain-field.d.ts +150 -0
  56. package/dist/lib/terrain-field.d.ts.map +1 -0
  57. package/dist/lib/terrain-field.js +248 -0
  58. package/dist/lib/terrain-raycast.d.ts +44 -0
  59. package/dist/lib/terrain-raycast.d.ts.map +1 -0
  60. package/dist/lib/terrain-raycast.js +188 -0
  61. package/dist/lib/terrain-source.d.ts +60 -0
  62. package/dist/lib/terrain-source.d.ts.map +1 -0
  63. package/dist/lib/terrain-source.js +90 -0
  64. package/dist/lib/terrain-support.d.ts +60 -0
  65. package/dist/lib/terrain-support.d.ts.map +1 -0
  66. package/dist/lib/terrain-support.js +150 -0
  67. package/dist/lib/wall-distance.d.ts +60 -0
  68. package/dist/lib/wall-distance.d.ts.map +1 -0
  69. package/dist/lib/wall-distance.js +85 -0
  70. package/dist/lib/zone-quantities.d.ts +21 -0
  71. package/dist/lib/zone-quantities.d.ts.map +1 -0
  72. package/dist/lib/zone-quantities.js +428 -0
  73. package/dist/material-library.d.ts +28 -1
  74. package/dist/material-library.d.ts.map +1 -1
  75. package/dist/material-library.js +2233 -441
  76. package/dist/registry/handles.d.ts +91 -3
  77. package/dist/registry/handles.d.ts.map +1 -1
  78. package/dist/registry/index.d.ts +3 -3
  79. package/dist/registry/index.d.ts.map +1 -1
  80. package/dist/registry/index.js +1 -1
  81. package/dist/registry/registry.d.ts +46 -3
  82. package/dist/registry/registry.d.ts.map +1 -1
  83. package/dist/registry/registry.js +82 -1
  84. package/dist/registry/subtree.d.ts.map +1 -1
  85. package/dist/registry/subtree.js +8 -1
  86. package/dist/registry/types.d.ts +781 -39
  87. package/dist/registry/types.d.ts.map +1 -1
  88. package/dist/schema/index.d.ts +27 -8
  89. package/dist/schema/index.d.ts.map +1 -1
  90. package/dist/schema/index.js +23 -6
  91. package/dist/schema/material.d.ts +3 -2
  92. package/dist/schema/material.d.ts.map +1 -1
  93. package/dist/schema/material.js +7 -5
  94. package/dist/schema/nodes/box-vent.d.ts +2 -2
  95. package/dist/schema/nodes/cabinet.d.ts +536 -0
  96. package/dist/schema/nodes/cabinet.d.ts.map +1 -0
  97. package/dist/schema/nodes/cabinet.js +139 -0
  98. package/dist/schema/nodes/ceiling.d.ts +4 -3
  99. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  100. package/dist/schema/nodes/ceiling.js +11 -1
  101. package/dist/schema/nodes/chimney.d.ts +4 -4
  102. package/dist/schema/nodes/column.d.ts +4 -2
  103. package/dist/schema/nodes/column.d.ts.map +1 -1
  104. package/dist/schema/nodes/column.js +5 -0
  105. package/dist/schema/nodes/construction-dimension.d.ts +195 -0
  106. package/dist/schema/nodes/construction-dimension.d.ts.map +1 -0
  107. package/dist/schema/nodes/construction-dimension.js +151 -0
  108. package/dist/schema/nodes/cupola.d.ts +2 -2
  109. package/dist/schema/nodes/door.d.ts +42 -5
  110. package/dist/schema/nodes/door.d.ts.map +1 -1
  111. package/dist/schema/nodes/door.js +32 -0
  112. package/dist/schema/nodes/dormer.d.ts +8 -8
  113. package/dist/schema/nodes/dormer.js +1 -1
  114. package/dist/schema/nodes/downspout.d.ts +2 -2
  115. package/dist/schema/nodes/duct-fitting.d.ts +91 -0
  116. package/dist/schema/nodes/duct-fitting.d.ts.map +1 -0
  117. package/dist/schema/nodes/duct-fitting.js +92 -0
  118. package/dist/schema/nodes/duct-segment.d.ts +61 -0
  119. package/dist/schema/nodes/duct-segment.d.ts.map +1 -0
  120. package/dist/schema/nodes/duct-segment.js +73 -0
  121. package/dist/schema/nodes/duct-terminal.d.ts +58 -0
  122. package/dist/schema/nodes/duct-terminal.d.ts.map +1 -0
  123. package/dist/schema/nodes/duct-terminal.js +53 -0
  124. package/dist/schema/nodes/elevator.d.ts +3 -2
  125. package/dist/schema/nodes/elevator.d.ts.map +1 -1
  126. package/dist/schema/nodes/elevator.js +3 -0
  127. package/dist/schema/nodes/eyebrow-vent.d.ts +2 -2
  128. package/dist/schema/nodes/fence.d.ts +20 -2
  129. package/dist/schema/nodes/fence.d.ts.map +1 -1
  130. package/dist/schema/nodes/fence.js +33 -2
  131. package/dist/schema/nodes/gutter.d.ts +2 -2
  132. package/dist/schema/nodes/hvac-equipment.d.ts +64 -0
  133. package/dist/schema/nodes/hvac-equipment.d.ts.map +1 -0
  134. package/dist/schema/nodes/hvac-equipment.js +57 -0
  135. package/dist/schema/nodes/item.d.ts +9 -0
  136. package/dist/schema/nodes/item.d.ts.map +1 -1
  137. package/dist/schema/nodes/item.js +24 -0
  138. package/dist/schema/nodes/level.d.ts +2 -1
  139. package/dist/schema/nodes/level.d.ts.map +1 -1
  140. package/dist/schema/nodes/level.js +12 -31
  141. package/dist/schema/nodes/lineset.d.ts +42 -0
  142. package/dist/schema/nodes/lineset.d.ts.map +1 -0
  143. package/dist/schema/nodes/lineset.js +38 -0
  144. package/dist/schema/nodes/liquid-line.d.ts +34 -0
  145. package/dist/schema/nodes/liquid-line.d.ts.map +1 -0
  146. package/dist/schema/nodes/liquid-line.js +24 -0
  147. package/dist/schema/nodes/measurement.d.ts +306 -0
  148. package/dist/schema/nodes/measurement.d.ts.map +1 -0
  149. package/dist/schema/nodes/measurement.js +87 -0
  150. package/dist/schema/nodes/pipe-fitting.d.ts +56 -0
  151. package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -0
  152. package/dist/schema/nodes/pipe-fitting.js +45 -0
  153. package/dist/schema/nodes/pipe-segment.d.ts +48 -0
  154. package/dist/schema/nodes/pipe-segment.d.ts.map +1 -0
  155. package/dist/schema/nodes/pipe-segment.js +36 -0
  156. package/dist/schema/nodes/pipe-trap.d.ts +43 -0
  157. package/dist/schema/nodes/pipe-trap.d.ts.map +1 -0
  158. package/dist/schema/nodes/pipe-trap.js +36 -0
  159. package/dist/schema/nodes/ridge-vent.d.ts +18 -3
  160. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  161. package/dist/schema/nodes/ridge-vent.js +221 -3
  162. package/dist/schema/nodes/roof-segment-shape.d.ts +90 -0
  163. package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -0
  164. package/dist/schema/nodes/roof-segment-shape.js +318 -0
  165. package/dist/schema/nodes/roof-segment-walls.d.ts +101 -0
  166. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -0
  167. package/dist/schema/nodes/roof-segment-walls.js +330 -0
  168. package/dist/schema/nodes/roof-segment.d.ts +84 -8
  169. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  170. package/dist/schema/nodes/roof-segment.js +290 -5
  171. package/dist/schema/nodes/roof.d.ts +8 -8
  172. package/dist/schema/nodes/shelf.d.ts +4 -2
  173. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  174. package/dist/schema/nodes/shelf.js +8 -0
  175. package/dist/schema/nodes/site.d.ts +9 -0
  176. package/dist/schema/nodes/site.d.ts.map +1 -1
  177. package/dist/schema/nodes/site.js +8 -6
  178. package/dist/schema/nodes/skylight.d.ts +10 -10
  179. package/dist/schema/nodes/slab.d.ts +8 -2
  180. package/dist/schema/nodes/slab.d.ts.map +1 -1
  181. package/dist/schema/nodes/slab.js +18 -2
  182. package/dist/schema/nodes/solar-panel.d.ts +4 -4
  183. package/dist/schema/nodes/spawn.d.ts +1 -0
  184. package/dist/schema/nodes/spawn.d.ts.map +1 -1
  185. package/dist/schema/nodes/spawn.js +2 -0
  186. package/dist/schema/nodes/stair-segment.d.ts +4 -4
  187. package/dist/schema/nodes/stair.d.ts +16 -13
  188. package/dist/schema/nodes/stair.d.ts.map +1 -1
  189. package/dist/schema/nodes/stair.js +11 -1
  190. package/dist/schema/nodes/structural-grid.d.ts +27 -0
  191. package/dist/schema/nodes/structural-grid.d.ts.map +1 -0
  192. package/dist/schema/nodes/structural-grid.js +17 -0
  193. package/dist/schema/nodes/turbine-vent.d.ts +2 -2
  194. package/dist/schema/nodes/wall.d.ts +248 -6
  195. package/dist/schema/nodes/wall.d.ts.map +1 -1
  196. package/dist/schema/nodes/wall.js +266 -0
  197. package/dist/schema/nodes/window.d.ts +40 -3
  198. package/dist/schema/nodes/window.d.ts.map +1 -1
  199. package/dist/schema/nodes/window.js +30 -0
  200. package/dist/schema/nodes/zone.d.ts +22 -0
  201. package/dist/schema/nodes/zone.d.ts.map +1 -1
  202. package/dist/schema/nodes/zone.js +21 -0
  203. package/dist/schema/scene-material.d.ts +41 -0
  204. package/dist/schema/scene-material.d.ts.map +1 -0
  205. package/dist/schema/scene-material.js +9 -0
  206. package/dist/schema/terrain.d.ts +28 -0
  207. package/dist/schema/terrain.d.ts.map +1 -0
  208. package/dist/schema/terrain.js +30 -0
  209. package/dist/schema/types.d.ts +1300 -97
  210. package/dist/schema/types.d.ts.map +1 -1
  211. package/dist/schema/types.js +27 -0
  212. package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts +80 -0
  213. package/dist/services/__fixtures__/wall-plane-top-boundary-repro.d.ts.map +1 -0
  214. package/dist/services/__fixtures__/wall-plane-top-boundary-repro.js +89 -0
  215. package/dist/services/alignment-anchors.d.ts.map +1 -1
  216. package/dist/services/alignment-anchors.js +30 -1
  217. package/dist/services/alignment.d.ts +5 -0
  218. package/dist/services/alignment.d.ts.map +1 -1
  219. package/dist/services/alignment.js +2 -0
  220. package/dist/services/hosting.d.ts +8 -0
  221. package/dist/services/hosting.d.ts.map +1 -1
  222. package/dist/services/hosting.js +13 -4
  223. package/dist/services/index.d.ts +9 -2
  224. package/dist/services/index.d.ts.map +1 -1
  225. package/dist/services/index.js +9 -2
  226. package/dist/services/level-height.d.ts +27 -0
  227. package/dist/services/level-height.d.ts.map +1 -0
  228. package/dist/services/level-height.js +94 -0
  229. package/dist/services/opening-guides.d.ts +141 -0
  230. package/dist/services/opening-guides.d.ts.map +1 -0
  231. package/dist/services/opening-guides.js +267 -0
  232. package/dist/services/port-connectivity.d.ts +115 -0
  233. package/dist/services/port-connectivity.d.ts.map +1 -0
  234. package/dist/services/port-connectivity.js +300 -0
  235. package/dist/services/riser-diagram.d.ts +40 -0
  236. package/dist/services/riser-diagram.d.ts.map +1 -0
  237. package/dist/services/riser-diagram.js +110 -0
  238. package/dist/services/snap.d.ts +9 -1
  239. package/dist/services/snap.d.ts.map +1 -1
  240. package/dist/services/snap.js +21 -1
  241. package/dist/services/storey.d.ts +103 -0
  242. package/dist/services/storey.d.ts.map +1 -0
  243. package/dist/services/storey.js +296 -0
  244. package/dist/services/system-graph.d.ts +30 -0
  245. package/dist/services/system-graph.d.ts.map +1 -0
  246. package/dist/services/system-graph.js +164 -0
  247. package/dist/services/validate-dwv.d.ts +32 -0
  248. package/dist/services/validate-dwv.d.ts.map +1 -0
  249. package/dist/services/validate-dwv.js +118 -0
  250. package/dist/store/actions/node-actions.d.ts.map +1 -1
  251. package/dist/store/actions/node-actions.js +141 -4
  252. package/dist/store/history-control.d.ts +31 -0
  253. package/dist/store/history-control.d.ts.map +1 -1
  254. package/dist/store/history-control.js +130 -0
  255. package/dist/store/use-live-terrain.d.ts +65 -0
  256. package/dist/store/use-live-terrain.d.ts.map +1 -0
  257. package/dist/store/use-live-terrain.js +31 -0
  258. package/dist/store/use-live-transforms.d.ts +8 -0
  259. package/dist/store/use-live-transforms.d.ts.map +1 -1
  260. package/dist/store/use-scene.d.ts +47 -3
  261. package/dist/store/use-scene.d.ts.map +1 -1
  262. package/dist/store/use-scene.js +992 -55
  263. package/dist/systems/elevator/elevator-opening-system.d.ts +1 -0
  264. package/dist/systems/elevator/elevator-opening-system.d.ts.map +1 -1
  265. package/dist/systems/elevator/elevator-opening-system.js +27 -21
  266. package/dist/systems/elevator/elevator-service.d.ts +0 -2
  267. package/dist/systems/elevator/elevator-service.d.ts.map +1 -1
  268. package/dist/systems/elevator/elevator-service.js +2 -24
  269. package/dist/systems/fence/fence-centerline.d.ts +12 -0
  270. package/dist/systems/fence/fence-centerline.d.ts.map +1 -0
  271. package/dist/systems/fence/fence-centerline.js +37 -0
  272. package/dist/systems/fence/fence-spline.d.ts +39 -0
  273. package/dist/systems/fence/fence-spline.d.ts.map +1 -0
  274. package/dist/systems/fence/fence-spline.js +196 -0
  275. package/dist/systems/slab/slab-placement.d.ts +11 -0
  276. package/dist/systems/slab/slab-placement.d.ts.map +1 -0
  277. package/dist/systems/slab/slab-placement.js +14 -0
  278. package/dist/systems/slab/slab-support.d.ts +137 -0
  279. package/dist/systems/slab/slab-support.d.ts.map +1 -0
  280. package/dist/systems/slab/slab-support.js +557 -0
  281. package/dist/systems/stair/stair-footprint.d.ts.map +1 -1
  282. package/dist/systems/stair/stair-footprint.js +21 -11
  283. package/dist/systems/stair/stair-opening-preview.d.ts +1300 -505
  284. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  285. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -1
  286. package/dist/systems/stair/stair-opening-sync.js +19 -33
  287. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  288. package/dist/systems/stair/stair-opening-system.js +32 -4
  289. package/dist/systems/stair/stair-rise.d.ts +22 -0
  290. package/dist/systems/stair/stair-rise.d.ts.map +1 -0
  291. package/dist/systems/stair/stair-rise.js +79 -0
  292. package/dist/systems/wall/wall-curve.d.ts +10 -0
  293. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  294. package/dist/systems/wall/wall-curve.js +1 -1
  295. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  296. package/dist/systems/wall/wall-mitering.js +44 -8
  297. package/dist/systems/wall/wall-top.d.ts +40 -0
  298. package/dist/systems/wall/wall-top.d.ts.map +1 -0
  299. package/dist/systems/wall/wall-top.js +46 -0
  300. package/dist/utils/clone-scene-graph.d.ts +1 -0
  301. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  302. package/dist/utils/clone-scene-graph.js +56 -5
  303. package/dist/utils/heal-scene-graph.d.ts +18 -0
  304. package/dist/utils/heal-scene-graph.d.ts.map +1 -0
  305. package/dist/utils/heal-scene-graph.js +106 -0
  306. package/dist/validation/validate-build-json.d.ts +3 -0
  307. package/dist/validation/validate-build-json.d.ts.map +1 -1
  308. package/dist/validation/validate-build-json.js +90 -5
  309. package/package.json +4 -4
  310. package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts +0 -2
  311. package/dist/hooks/spatial-grid/floor-placed-elevation.test.d.ts.map +0 -1
  312. package/dist/hooks/spatial-grid/floor-placed-elevation.test.js +0 -273
  313. package/dist/lib/space-detection-pause.test.d.ts +0 -2
  314. package/dist/lib/space-detection-pause.test.d.ts.map +0 -1
  315. package/dist/lib/space-detection-pause.test.js +0 -42
  316. package/dist/lib/space-detection.test.d.ts +0 -2
  317. package/dist/lib/space-detection.test.d.ts.map +0 -1
  318. package/dist/lib/space-detection.test.js +0 -77
  319. package/dist/registry/registry.test.d.ts +0 -2
  320. package/dist/registry/registry.test.d.ts.map +0 -1
  321. package/dist/registry/registry.test.js +0 -183
  322. package/dist/registry/relations-resolver.test.d.ts +0 -2
  323. package/dist/registry/relations-resolver.test.d.ts.map +0 -1
  324. package/dist/registry/relations-resolver.test.js +0 -183
  325. package/dist/registry/scene-api.test.d.ts +0 -2
  326. package/dist/registry/scene-api.test.d.ts.map +0 -1
  327. package/dist/registry/scene-api.test.js +0 -183
  328. package/dist/registry/subtree.test.d.ts +0 -2
  329. package/dist/registry/subtree.test.d.ts.map +0 -1
  330. package/dist/registry/subtree.test.js +0 -133
  331. package/dist/schema/asset-url.test.d.ts +0 -2
  332. package/dist/schema/asset-url.test.d.ts.map +0 -1
  333. package/dist/schema/asset-url.test.js +0 -134
  334. package/dist/services/alignment-anchors.test.d.ts +0 -2
  335. package/dist/services/alignment-anchors.test.d.ts.map +0 -1
  336. package/dist/services/alignment-anchors.test.js +0 -383
  337. package/dist/services/alignment.test.d.ts +0 -2
  338. package/dist/services/alignment.test.d.ts.map +0 -1
  339. package/dist/services/alignment.test.js +0 -92
  340. package/dist/services/drag-session.test.d.ts +0 -2
  341. package/dist/services/drag-session.test.d.ts.map +0 -1
  342. package/dist/services/drag-session.test.js +0 -219
  343. package/dist/services/hosting.test.d.ts +0 -2
  344. package/dist/services/hosting.test.d.ts.map +0 -1
  345. package/dist/services/hosting.test.js +0 -199
  346. package/dist/services/movement.test.d.ts +0 -2
  347. package/dist/services/movement.test.d.ts.map +0 -1
  348. package/dist/services/movement.test.js +0 -133
  349. package/dist/services/single-undo-dance.test.d.ts +0 -2
  350. package/dist/services/single-undo-dance.test.d.ts.map +0 -1
  351. package/dist/services/single-undo-dance.test.js +0 -210
  352. package/dist/services/snap.test.d.ts +0 -2
  353. package/dist/services/snap.test.d.ts.map +0 -1
  354. package/dist/services/snap.test.js +0 -95
  355. package/dist/store/actions/node-mutation-sanitize.test.d.ts +0 -2
  356. package/dist/store/actions/node-mutation-sanitize.test.d.ts.map +0 -1
  357. package/dist/store/actions/node-mutation-sanitize.test.js +0 -147
  358. package/dist/store/actions/reparent.test.d.ts +0 -2
  359. package/dist/store/actions/reparent.test.d.ts.map +0 -1
  360. package/dist/store/actions/reparent.test.js +0 -212
  361. package/dist/store/use-scene-elevator-migration.test.d.ts +0 -2
  362. package/dist/store/use-scene-elevator-migration.test.d.ts.map +0 -1
  363. package/dist/store/use-scene-elevator-migration.test.js +0 -109
  364. package/dist/systems/elevator/elevator-opening-sync.test.d.ts +0 -2
  365. package/dist/systems/elevator/elevator-opening-sync.test.d.ts.map +0 -1
  366. package/dist/systems/elevator/elevator-opening-sync.test.js +0 -146
  367. package/dist/systems/elevator/elevator-runtime.test.d.ts +0 -2
  368. package/dist/systems/elevator/elevator-runtime.test.d.ts.map +0 -1
  369. package/dist/systems/elevator/elevator-runtime.test.js +0 -64
  370. package/dist/systems/stair/stair-opening-preview.test.d.ts +0 -2
  371. package/dist/systems/stair/stair-opening-preview.test.d.ts.map +0 -1
  372. package/dist/systems/stair/stair-opening-preview.test.js +0 -80
  373. package/dist/systems/stair/stair-opening-sync.test.d.ts +0 -2
  374. package/dist/systems/stair/stair-opening-sync.test.d.ts.map +0 -1
  375. package/dist/systems/stair/stair-opening-sync.test.js +0 -446
  376. package/dist/utils/clone-scene-graph.test.d.ts +0 -2
  377. package/dist/utils/clone-scene-graph.test.d.ts.map +0 -1
  378. package/dist/utils/clone-scene-graph.test.js +0 -59
@@ -1,273 +0,0 @@
1
- import { beforeEach, describe, expect, test } from 'bun:test';
2
- import { z } from 'zod';
3
- import { nodeRegistry, registerNode } from '../../registry';
4
- import { getFloorPlacedElevation, getFloorStackedPosition } from './floor-placed-elevation';
5
- import { spatialGridManager } from './spatial-grid-manager';
6
- const LEVEL_ID = 'level_test';
7
- function makeDefinition(kind, capabilities = {}) {
8
- return {
9
- kind,
10
- schemaVersion: 1,
11
- schema: z.object({ type: z.literal(kind) }),
12
- category: 'utility',
13
- defaults: () => ({}),
14
- capabilities,
15
- };
16
- }
17
- function makeLevel() {
18
- return {
19
- id: LEVEL_ID,
20
- type: 'level',
21
- object: 'node',
22
- parentId: null,
23
- visible: true,
24
- metadata: {},
25
- children: [],
26
- level: 0,
27
- };
28
- }
29
- function makeFloorNode(overrides = {}) {
30
- return {
31
- id: 'item_test',
32
- type: 'item',
33
- object: 'node',
34
- parentId: LEVEL_ID,
35
- visible: true,
36
- metadata: {},
37
- children: [],
38
- position: [0, 0, 0],
39
- rotation: [0, 0, 0],
40
- scale: [1, 1, 1],
41
- asset: {
42
- id: 'asset_test',
43
- category: 'test',
44
- name: 'Test',
45
- thumbnail: '',
46
- src: 'asset:test',
47
- dimensions: [1, 1, 1],
48
- source: 'library',
49
- },
50
- ...overrides,
51
- };
52
- }
53
- function addSlab(polygon, elevation, id = `slab_${elevation}`) {
54
- const slab = {
55
- id,
56
- type: 'slab',
57
- object: 'node',
58
- parentId: LEVEL_ID,
59
- visible: true,
60
- metadata: {},
61
- children: [],
62
- polygon,
63
- holes: [],
64
- holeMetadata: [],
65
- elevation,
66
- autoFromWalls: false,
67
- };
68
- spatialGridManager.handleNodeCreated(slab, LEVEL_ID);
69
- }
70
- function nodesFor(...nodes) {
71
- return Object.fromEntries(nodes.map((node) => [node.id, node]));
72
- }
73
- describe('floor-placed elevation resolver', () => {
74
- beforeEach(() => {
75
- nodeRegistry._reset();
76
- spatialGridManager.clear();
77
- });
78
- test('returns 0 without a floorPlaced capability', () => {
79
- registerNode(makeDefinition('item'));
80
- addSlab([
81
- [-1, -1],
82
- [1, -1],
83
- [1, 1],
84
- [-1, 1],
85
- ], 0.4);
86
- const level = makeLevel();
87
- const node = makeFloorNode();
88
- expect(getFloorPlacedElevation({
89
- node,
90
- nodes: nodesFor(level, node),
91
- position: [0, 0, 0],
92
- rotation: [0, 0, 0],
93
- })).toBe(0);
94
- });
95
- test('returns 0 when applies returns false', () => {
96
- registerNode(makeDefinition('item', {
97
- floorPlaced: {
98
- footprint: () => ({ dimensions: [1, 1, 1], rotation: [0, 0, 0] }),
99
- applies: () => false,
100
- },
101
- }));
102
- addSlab([
103
- [-1, -1],
104
- [1, -1],
105
- [1, 1],
106
- [-1, 1],
107
- ], 0.4);
108
- const level = makeLevel();
109
- const node = makeFloorNode();
110
- expect(getFloorPlacedElevation({
111
- node,
112
- nodes: nodesFor(level, node),
113
- position: [0, 0, 0],
114
- rotation: [0, 0, 0],
115
- })).toBe(0);
116
- });
117
- test('clamps non-finite slab elevation to 0', () => {
118
- registerNode(makeDefinition('item', {
119
- floorPlaced: {
120
- footprint: () => ({ dimensions: [1, 1, 1], rotation: [0, 0, 0] }),
121
- },
122
- }));
123
- const original = spatialGridManager.getSlabElevationForItem;
124
- spatialGridManager.getSlabElevationForItem = (() => Number.NaN);
125
- try {
126
- const level = makeLevel();
127
- const node = makeFloorNode();
128
- expect(getFloorPlacedElevation({
129
- node,
130
- nodes: nodesFor(level, node),
131
- position: [0, 0, 0],
132
- rotation: [0, 0, 0],
133
- })).toBe(0);
134
- }
135
- finally {
136
- spatialGridManager.getSlabElevationForItem = original;
137
- }
138
- });
139
- test('returns 0 for a non-level direct parent', () => {
140
- registerNode(makeDefinition('item', {
141
- floorPlaced: {
142
- footprint: () => ({ dimensions: [1, 1, 1], rotation: [0, 0, 0] }),
143
- },
144
- }));
145
- addSlab([
146
- [-1, -1],
147
- [1, -1],
148
- [1, 1],
149
- [-1, 1],
150
- ], 0.4);
151
- const level = makeLevel();
152
- const shelf = {
153
- id: 'shelf_test',
154
- type: 'shelf',
155
- parentId: LEVEL_ID,
156
- };
157
- const node = makeFloorNode({ parentId: shelf.id });
158
- expect(getFloorPlacedElevation({
159
- node,
160
- nodes: nodesFor(level, shelf, node),
161
- position: [0, 0, 0],
162
- rotation: [0, 0, 0],
163
- })).toBe(0);
164
- });
165
- test('returns 0 when the declared parent is missing', () => {
166
- registerNode(makeDefinition('item', {
167
- floorPlaced: {
168
- footprint: () => ({ dimensions: [1, 1, 1], rotation: [0, 0, 0] }),
169
- },
170
- }));
171
- addSlab([
172
- [-1, -1],
173
- [1, -1],
174
- [1, 1],
175
- [-1, 1],
176
- ], 0.4);
177
- const node = makeFloorNode({ parentId: 'missing_level' });
178
- expect(getFloorPlacedElevation({
179
- node,
180
- nodes: nodesFor(node),
181
- position: [0, 0, 0],
182
- rotation: [0, 0, 0],
183
- levelId: LEVEL_ID,
184
- })).toBe(0);
185
- });
186
- test('uses the pending rotated footprint', () => {
187
- registerNode(makeDefinition('item', {
188
- floorPlaced: {
189
- footprint: (node) => ({
190
- dimensions: [4, 1, 1],
191
- rotation: node.rotation,
192
- }),
193
- },
194
- }));
195
- addSlab([
196
- [-0.2, 1.2],
197
- [0.2, 1.2],
198
- [0.2, 1.8],
199
- [-0.2, 1.8],
200
- ], 0.45);
201
- const level = makeLevel();
202
- const node = makeFloorNode();
203
- expect(getFloorPlacedElevation({
204
- node,
205
- nodes: nodesFor(level, node),
206
- position: [0, 0, 0],
207
- rotation: [0, Math.PI / 2, 0],
208
- })).toBeCloseTo(0.45);
209
- });
210
- test('returns slab overlap elevation and stacks Y onto canonical position', () => {
211
- registerNode(makeDefinition('item', {
212
- floorPlaced: {
213
- footprint: (node) => ({
214
- dimensions: [1, 1, 1],
215
- rotation: node.rotation,
216
- }),
217
- },
218
- }));
219
- addSlab([
220
- [-1, -1],
221
- [1, -1],
222
- [1, 1],
223
- [-1, 1],
224
- ], 0.35);
225
- const level = makeLevel();
226
- const node = makeFloorNode();
227
- expect(getFloorPlacedElevation({
228
- node,
229
- nodes: nodesFor(level, node),
230
- position: [0, 0.1, 0],
231
- rotation: [0, 0, 0],
232
- })).toBeCloseTo(0.35);
233
- const stacked = getFloorStackedPosition({
234
- node,
235
- nodes: nodesFor(level, node),
236
- position: [0, 0.1, 0],
237
- rotation: [0, 0, 0],
238
- });
239
- expect(stacked[0]).toBe(0);
240
- expect(stacked[1]).toBeCloseTo(0.45);
241
- expect(stacked[2]).toBe(0);
242
- });
243
- test('takes the max elevation across composite footprints', () => {
244
- registerNode(makeDefinition('item', {
245
- floorPlaced: {
246
- footprints: () => [
247
- { position: [0, 0, 0], dimensions: [1, 1, 1], rotation: [0, 0, 0] },
248
- { position: [3, 0, 0], dimensions: [1, 1, 1], rotation: [0, 0, 0] },
249
- ],
250
- },
251
- }));
252
- addSlab([
253
- [-1, -1],
254
- [1, -1],
255
- [1, 1],
256
- [-1, 1],
257
- ], 0.2, 'slab_low');
258
- addSlab([
259
- [2.5, -0.5],
260
- [3.5, -0.5],
261
- [3.5, 0.5],
262
- [2.5, 0.5],
263
- ], 0.8, 'slab_high');
264
- const level = makeLevel();
265
- const node = makeFloorNode();
266
- expect(getFloorPlacedElevation({
267
- node,
268
- nodes: nodesFor(level, node),
269
- position: [0, 0, 0],
270
- rotation: [0, 0, 0],
271
- })).toBeCloseTo(0.8);
272
- });
273
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=space-detection-pause.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"space-detection-pause.test.d.ts","sourceRoot":"","sources":["../../src/lib/space-detection-pause.test.ts"],"names":[],"mappings":""}
@@ -1,42 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
2
- import { isSpaceDetectionPaused, pauseSpaceDetection, resumeSpaceDetection, } from './space-detection';
3
- // The pause flag is module-level (matching the existing pauseSceneHistory
4
- // refcount in store/history-control.ts). Reset it before/after each test so
5
- // leftover depth from one case can't bleed into another.
6
- function drain() {
7
- for (let i = 0; i < 64 && isSpaceDetectionPaused(); i += 1) {
8
- resumeSpaceDetection();
9
- }
10
- }
11
- beforeEach(drain);
12
- afterEach(drain);
13
- describe('space-detection pause primitive', () => {
14
- test('defaults to not paused', () => {
15
- expect(isSpaceDetectionPaused()).toBe(false);
16
- });
17
- test('pauseSpaceDetection flips the flag, resumeSpaceDetection clears it', () => {
18
- pauseSpaceDetection();
19
- expect(isSpaceDetectionPaused()).toBe(true);
20
- resumeSpaceDetection();
21
- expect(isSpaceDetectionPaused()).toBe(false);
22
- });
23
- test('refcount — pause depth survives mismatched resumes from a second source', () => {
24
- pauseSpaceDetection();
25
- pauseSpaceDetection();
26
- expect(isSpaceDetectionPaused()).toBe(true);
27
- resumeSpaceDetection();
28
- expect(isSpaceDetectionPaused()).toBe(true);
29
- resumeSpaceDetection();
30
- expect(isSpaceDetectionPaused()).toBe(false);
31
- });
32
- test('resume is a no-op when not currently paused', () => {
33
- expect(isSpaceDetectionPaused()).toBe(false);
34
- resumeSpaceDetection();
35
- resumeSpaceDetection();
36
- expect(isSpaceDetectionPaused()).toBe(false);
37
- pauseSpaceDetection();
38
- expect(isSpaceDetectionPaused()).toBe(true);
39
- resumeSpaceDetection();
40
- expect(isSpaceDetectionPaused()).toBe(false);
41
- });
42
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=space-detection.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"space-detection.test.d.ts","sourceRoot":"","sources":["../../src/lib/space-detection.test.ts"],"names":[],"mappings":""}
@@ -1,77 +0,0 @@
1
- import { describe, expect, test } from 'bun:test';
2
- import { CeilingNode, SlabNode, WallNode } from '../schema';
3
- import { planAutoCeilingsForLevel } from './space-detection';
4
- const square = [
5
- [0, 0],
6
- [4, 0],
7
- [4, 3],
8
- [0, 3],
9
- ];
10
- function roomPolygon() {
11
- return square.map(([x, y]) => ({ x, y }));
12
- }
13
- function squareWalls(height = 2.5) {
14
- return [
15
- WallNode.parse({ start: [0, 0], end: [4, 0], height }),
16
- WallNode.parse({ start: [4, 0], end: [4, 3], height }),
17
- WallNode.parse({ start: [4, 3], end: [0, 3], height }),
18
- WallNode.parse({ start: [0, 3], end: [0, 0], height }),
19
- ];
20
- }
21
- function slab(elevation) {
22
- return SlabNode.parse({
23
- polygon: square,
24
- elevation,
25
- autoFromWalls: true,
26
- });
27
- }
28
- describe('planAutoCeilingsForLevel', () => {
29
- test('creates auto ceilings at the top of the room walls', () => {
30
- const created = planAutoCeilingsForLevel([roomPolygon()], [], {
31
- walls: squareWalls(),
32
- slabs: [slab(0.05)],
33
- }).create[0];
34
- expect(created?.height).toBeCloseTo(2.55);
35
- });
36
- test('updates existing auto ceiling height when the slab elevation changes', () => {
37
- const ceiling = CeilingNode.parse({
38
- polygon: square,
39
- height: 2.55,
40
- autoFromWalls: true,
41
- });
42
- const plan = planAutoCeilingsForLevel([roomPolygon()], [ceiling], {
43
- walls: squareWalls(),
44
- slabs: [slab(0.4)],
45
- });
46
- expect(plan.update).toHaveLength(1);
47
- expect(plan.update[0]?.id).toBe(ceiling.id);
48
- expect(plan.update[0]?.data.polygon).toBeUndefined();
49
- expect(plan.update[0]?.data.height).toBeCloseTo(2.9);
50
- });
51
- test('updates existing auto ceiling height when wall height changes', () => {
52
- const ceiling = CeilingNode.parse({
53
- polygon: square,
54
- height: 2.55,
55
- autoFromWalls: true,
56
- });
57
- const plan = planAutoCeilingsForLevel([roomPolygon()], [ceiling], {
58
- walls: squareWalls(3),
59
- slabs: [slab(0.05)],
60
- });
61
- expect(plan.update).toHaveLength(1);
62
- expect(plan.update[0]?.data.height).toBeCloseTo(3.05);
63
- });
64
- test('does not replace a manual ceiling with an auto ceiling', () => {
65
- const manualCeiling = CeilingNode.parse({
66
- polygon: square,
67
- height: 2.5,
68
- autoFromWalls: false,
69
- });
70
- const plan = planAutoCeilingsForLevel([roomPolygon()], [manualCeiling], {
71
- walls: squareWalls(),
72
- slabs: [slab(0.4)],
73
- });
74
- expect(plan.create).toHaveLength(0);
75
- expect(plan.update).toHaveLength(0);
76
- });
77
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=registry.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../src/registry/registry.test.ts"],"names":[],"mappings":""}
@@ -1,183 +0,0 @@
1
- import { beforeEach, describe, expect, test } from 'bun:test';
2
- import { z } from 'zod';
3
- import { getHostRefFields, isDrawnViaTool, isDrawnViaToolKind, isPresettable, isPresettableKind, loadPlugin, nodeRegistry, registerNode, } from './registry';
4
- // Re-registering a kind warns + replaces in dev (HMR) but throws in
5
- // production — see `registry._register`. `bun test` runs with
6
- // NODE_ENV=test (dev path), so the throw-path tests pin NODE_ENV to
7
- // 'production' for the duration of the call.
8
- async function inProduction(fn) {
9
- const prev = process.env.NODE_ENV;
10
- process.env.NODE_ENV = 'production';
11
- try {
12
- return await fn();
13
- }
14
- finally {
15
- process.env.NODE_ENV = prev;
16
- }
17
- }
18
- function makeDefinition(kind, overrides = {}) {
19
- return {
20
- kind,
21
- schemaVersion: 1,
22
- schema: z.object({ type: z.literal(kind) }),
23
- category: 'utility',
24
- defaults: () => ({}),
25
- capabilities: {},
26
- renderer: { kind: 'parametric', module: async () => ({ default: () => null }) },
27
- ...overrides,
28
- };
29
- }
30
- describe('nodeRegistry', () => {
31
- beforeEach(() => {
32
- nodeRegistry._reset();
33
- });
34
- test('starts empty', () => {
35
- expect(nodeRegistry.size).toBe(0);
36
- expect(nodeRegistry.has('anything')).toBe(false);
37
- expect(nodeRegistry.get('anything')).toBeUndefined();
38
- });
39
- test('registerNode adds a definition', () => {
40
- const def = makeDefinition('column');
41
- registerNode(def);
42
- expect(nodeRegistry.size).toBe(1);
43
- expect(nodeRegistry.has('column')).toBe(true);
44
- expect(nodeRegistry.get('column')).toBe(def);
45
- });
46
- test('registerNode throws on duplicate kind in production', async () => {
47
- await inProduction(() => {
48
- registerNode(makeDefinition('column'));
49
- expect(() => registerNode(makeDefinition('column'))).toThrow(/duplicate node kind/);
50
- });
51
- });
52
- test('registerNode replaces on duplicate kind in dev (HMR)', () => {
53
- const first = makeDefinition('column');
54
- const second = makeDefinition('column');
55
- registerNode(first);
56
- registerNode(second);
57
- expect(nodeRegistry.size).toBe(1);
58
- expect(nodeRegistry.get('column')).toBe(second);
59
- });
60
- test('registerNode rejects empty kind', () => {
61
- expect(() => registerNode(makeDefinition(''))).toThrow(/non-empty string/);
62
- });
63
- test('registerNode rejects invalid schemaVersion', () => {
64
- expect(() => registerNode(makeDefinition('bad', { schemaVersion: 0 }))).toThrow(/schemaVersion/);
65
- expect(() => registerNode(makeDefinition('bad', { schemaVersion: -1 }))).toThrow(/schemaVersion/);
66
- });
67
- test('entries() iterates registered definitions', () => {
68
- registerNode(makeDefinition('a'));
69
- registerNode(makeDefinition('b'));
70
- const kinds = Array.from(nodeRegistry.entries(), ([k]) => k);
71
- expect(kinds).toEqual(['a', 'b']);
72
- });
73
- test('schemas() returns all registered schemas', () => {
74
- const a = makeDefinition('a');
75
- const b = makeDefinition('b');
76
- registerNode(a);
77
- registerNode(b);
78
- expect(nodeRegistry.schemas()).toEqual([a.schema, b.schema]);
79
- });
80
- });
81
- describe('isPresettable', () => {
82
- beforeEach(() => {
83
- nodeRegistry._reset();
84
- });
85
- test('explicit true wins', () => {
86
- const def = makeDefinition('explicit-true', { capabilities: { presettable: true } });
87
- expect(isPresettable(def)).toBe(true);
88
- });
89
- test('explicit false wins even with parametrics', () => {
90
- const def = makeDefinition('explicit-false', {
91
- capabilities: { presettable: false },
92
- parametrics: { groups: [] },
93
- });
94
- expect(isPresettable(def)).toBe(false);
95
- });
96
- test('defaults to true when parametrics exists', () => {
97
- const def = makeDefinition('param', { parametrics: { groups: [] } });
98
- expect(isPresettable(def)).toBe(true);
99
- });
100
- test('defaults to false without parametrics', () => {
101
- const def = makeDefinition('no-param');
102
- expect(isPresettable(def)).toBe(false);
103
- });
104
- test('isPresettableKind looks up the registry', () => {
105
- registerNode(makeDefinition('shelfy', { parametrics: { groups: [] } }));
106
- expect(isPresettableKind('shelfy')).toBe(true);
107
- expect(isPresettableKind('unknown')).toBe(false);
108
- });
109
- });
110
- describe('getHostRefFields', () => {
111
- test('returns the declared hostRefFields verbatim', () => {
112
- const def = makeDefinition('door', { capabilities: { hostRefFields: ['wallId'] } });
113
- expect(getHostRefFields(def)).toEqual(['wallId']);
114
- });
115
- test('defaults to an empty array when none declared', () => {
116
- const def = makeDefinition('shelf');
117
- expect(getHostRefFields(def)).toEqual([]);
118
- });
119
- });
120
- describe('isDrawnViaTool', () => {
121
- beforeEach(() => {
122
- nodeRegistry._reset();
123
- });
124
- test('true when capability set', () => {
125
- const def = makeDefinition('fence', { capabilities: { drawTool: true } });
126
- expect(isDrawnViaTool(def)).toBe(true);
127
- });
128
- test('false when unset or not exactly true', () => {
129
- expect(isDrawnViaTool(makeDefinition('column'))).toBe(false);
130
- expect(isDrawnViaTool(makeDefinition('off', { capabilities: { drawTool: false } }))).toBe(false);
131
- });
132
- test('isDrawnViaToolKind looks up the registry', () => {
133
- registerNode(makeDefinition('fence', { capabilities: { drawTool: true } }));
134
- expect(isDrawnViaToolKind('fence')).toBe(true);
135
- expect(isDrawnViaToolKind('unknown')).toBe(false);
136
- });
137
- });
138
- describe('loadPlugin', () => {
139
- beforeEach(() => {
140
- nodeRegistry._reset();
141
- });
142
- test('registers all nodes from a plugin', async () => {
143
- const plugin = {
144
- id: 'test:plugin',
145
- apiVersion: 1,
146
- nodes: [makeDefinition('a'), makeDefinition('b')],
147
- };
148
- await loadPlugin(plugin);
149
- expect(nodeRegistry.size).toBe(2);
150
- expect(nodeRegistry.has('a')).toBe(true);
151
- expect(nodeRegistry.has('b')).toBe(true);
152
- });
153
- test('handles plugin with no nodes', async () => {
154
- await loadPlugin({ id: 'empty', apiVersion: 1 });
155
- expect(nodeRegistry.size).toBe(0);
156
- });
157
- test('handles plugin with empty nodes array', async () => {
158
- await loadPlugin({ id: 'empty', apiVersion: 1, nodes: [] });
159
- expect(nodeRegistry.size).toBe(0);
160
- });
161
- test('throws on apiVersion mismatch', async () => {
162
- const plugin = {
163
- id: 'old-plugin',
164
- apiVersion: 99,
165
- nodes: [],
166
- };
167
- await expect(loadPlugin(plugin)).rejects.toThrow(/apiVersion/);
168
- });
169
- test('propagates duplicate-kind error from a single plugin in production', async () => {
170
- const plugin = {
171
- id: 'broken',
172
- apiVersion: 1,
173
- nodes: [makeDefinition('dup'), makeDefinition('dup')],
174
- };
175
- await inProduction(() => expect(loadPlugin(plugin)).rejects.toThrow(/duplicate node kind/));
176
- });
177
- test('propagates duplicate-kind error across plugins in production', async () => {
178
- await inProduction(async () => {
179
- await loadPlugin({ id: 'a', apiVersion: 1, nodes: [makeDefinition('shared')] });
180
- await expect(loadPlugin({ id: 'b', apiVersion: 1, nodes: [makeDefinition('shared')] })).rejects.toThrow(/duplicate node kind/);
181
- });
182
- });
183
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=relations-resolver.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relations-resolver.test.d.ts","sourceRoot":"","sources":["../../src/registry/relations-resolver.test.ts"],"names":[],"mappings":""}