@adobe/data 0.8.5 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (906) hide show
  1. package/dist/blob/download-handle.d.ts +4 -0
  2. package/dist/blob/download-handle.js +2 -0
  3. package/dist/blob/download-handle.js.map +1 -0
  4. package/dist/blob/upload-handle.d.ts +4 -0
  5. package/dist/blob/upload-handle.js +2 -0
  6. package/dist/blob/upload-handle.js.map +1 -0
  7. package/dist/ecs/database/calculate-system-order.d.ts +18 -0
  8. package/dist/ecs/database/calculate-system-order.js +113 -0
  9. package/dist/ecs/database/calculate-system-order.js.map +1 -0
  10. package/dist/ecs/database/calculate-system-order.test.d.ts +1 -0
  11. package/dist/ecs/database/calculate-system-order.test.js +168 -0
  12. package/dist/ecs/database/calculate-system-order.test.js.map +1 -0
  13. package/dist/ecs/database/create-database.d.ts +6 -6
  14. package/dist/ecs/database/create-database.js +38 -10
  15. package/dist/ecs/database/create-database.js.map +1 -1
  16. package/dist/ecs/database/create-database.test.js +55 -11
  17. package/dist/ecs/database/create-database.test.js.map +1 -1
  18. package/dist/ecs/database/create-plugin.d.ts +67 -0
  19. package/dist/ecs/database/create-plugin.js +47 -0
  20. package/dist/ecs/database/create-plugin.js.map +1 -0
  21. package/dist/ecs/database/create-plugin.test.d.ts +1 -0
  22. package/dist/ecs/database/create-plugin.test.js +435 -0
  23. package/dist/ecs/database/create-plugin.test.js.map +1 -0
  24. package/dist/ecs/database/database-schema/create-database-schema.d.ts +3 -3
  25. package/dist/ecs/database/database-schema/create-database-schema.js +7 -3
  26. package/dist/ecs/database/database-schema/create-database-schema.js.map +1 -1
  27. package/dist/ecs/database/database-schema/database-schema.d.ts +4 -3
  28. package/dist/ecs/database/database.d.ts +60 -18
  29. package/dist/ecs/database/database.js +47 -1
  30. package/dist/ecs/database/database.js.map +1 -1
  31. package/dist/ecs/database/database.test.d.ts +1 -0
  32. package/dist/ecs/database/database.test.js +200 -0
  33. package/dist/ecs/database/database.test.js.map +1 -0
  34. package/dist/ecs/database/index.d.ts +1 -1
  35. package/dist/ecs/database/index.js +1 -1
  36. package/dist/ecs/database/index.js.map +1 -1
  37. package/dist/ecs/database/observe-dependent-value.test.js +8 -16
  38. package/dist/ecs/database/observe-dependent-value.test.js.map +1 -1
  39. package/dist/ecs/database/observe-select-entities.performance.test.js +21 -17
  40. package/dist/ecs/database/observe-select-entities.performance.test.js.map +1 -1
  41. package/dist/ecs/database/observe-select-entities.test.js +24 -20
  42. package/dist/ecs/database/observe-select-entities.test.js.map +1 -1
  43. package/dist/ecs/database/observed/create-observed-database.js +6 -1
  44. package/dist/ecs/database/observed/create-observed-database.js.map +1 -1
  45. package/dist/ecs/database/observed/create-observed-database.test.js +119 -59
  46. package/dist/ecs/database/observed/create-observed-database.test.js.map +1 -1
  47. package/dist/ecs/database/observed/observed-database.d.ts +3 -0
  48. package/dist/ecs/database/public/create-database-from-schema.test.d.ts +1 -0
  49. package/dist/ecs/database/public/create-database-from-schema.test.js +153 -0
  50. package/dist/ecs/database/public/create-database-from-schema.test.js.map +1 -0
  51. package/dist/ecs/database/public/create-database.d.ts +22 -0
  52. package/dist/ecs/database/public/create-database.js +336 -0
  53. package/dist/ecs/database/public/create-database.js.map +1 -0
  54. package/dist/ecs/database/public/create-database.test.d.ts +1 -0
  55. package/dist/ecs/database/public/create-database.test.js +993 -0
  56. package/dist/ecs/database/public/create-database.test.js.map +1 -0
  57. package/dist/ecs/database/public/index.d.ts +1 -0
  58. package/dist/ecs/database/public/index.js +22 -0
  59. package/dist/ecs/database/public/index.js.map +1 -0
  60. package/dist/ecs/database/reconciling/create-reconciling-database.d.ts +2 -9
  61. package/dist/ecs/database/reconciling/create-reconciling-database.js +87 -118
  62. package/dist/ecs/database/reconciling/create-reconciling-database.js.map +1 -1
  63. package/dist/ecs/database/reconciling/create-reconciling-database.test.js +94 -167
  64. package/dist/ecs/database/reconciling/create-reconciling-database.test.js.map +1 -1
  65. package/dist/ecs/database/reconciling/reconciling-database.d.ts +5 -2
  66. package/dist/ecs/database/reconciling/reconciling-entry.d.ts +0 -11
  67. package/dist/ecs/database/reconciling/reconciling-entry.js +0 -34
  68. package/dist/ecs/database/reconciling/reconciling-entry.js.map +1 -1
  69. package/dist/ecs/database/transactional-store/coalesce-actions.d.ts +16 -0
  70. package/dist/ecs/database/transactional-store/coalesce-actions.js +140 -0
  71. package/dist/ecs/database/transactional-store/coalesce-actions.js.map +1 -0
  72. package/dist/ecs/database/transactional-store/coalesce-actions.test.d.ts +1 -0
  73. package/dist/ecs/database/transactional-store/coalesce-actions.test.js +433 -0
  74. package/dist/ecs/database/transactional-store/coalesce-actions.test.js.map +1 -0
  75. package/dist/ecs/database/transactional-store/create-transactional-store.js +18 -2
  76. package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
  77. package/dist/ecs/database/transactional-store/create-transactional-store.test.js +98 -22
  78. package/dist/ecs/database/transactional-store/create-transactional-store.test.js.map +1 -1
  79. package/dist/ecs/database/transactional-store/entity-id-preservation.test.d.ts +1 -0
  80. package/dist/ecs/database/transactional-store/entity-id-preservation.test.js +106 -0
  81. package/dist/ecs/database/transactional-store/entity-id-preservation.test.js.map +1 -0
  82. package/dist/ecs/database/transactional-store/transactional-store.d.ts +2 -0
  83. package/dist/ecs/database/type-inference-example.d.ts +1 -0
  84. package/dist/ecs/database/type-inference-example.js +2 -0
  85. package/dist/ecs/database/type-inference-example.js.map +1 -0
  86. package/dist/ecs/entity/entity.d.ts +8 -0
  87. package/dist/ecs/entity/entity.js +3 -0
  88. package/dist/ecs/entity/entity.js.map +1 -0
  89. package/dist/ecs/entity/u32.d.ts +8 -0
  90. package/dist/ecs/entity/u32.js +24 -0
  91. package/dist/ecs/entity/u32.js.map +1 -0
  92. package/dist/ecs/plugins/index.d.ts +1 -0
  93. package/dist/ecs/plugins/index.js +23 -0
  94. package/dist/ecs/plugins/index.js.map +1 -0
  95. package/dist/ecs/plugins/scheduler/index.d.ts +1 -0
  96. package/dist/ecs/plugins/scheduler/index.js +23 -0
  97. package/dist/ecs/plugins/scheduler/index.js.map +1 -0
  98. package/dist/ecs/plugins/scheduler/scheduler.d.ts +8 -0
  99. package/dist/ecs/plugins/scheduler/scheduler.js +52 -0
  100. package/dist/ecs/plugins/scheduler/scheduler.js.map +1 -0
  101. package/dist/ecs/store/action-functions.d.ts +21 -0
  102. package/dist/ecs/store/action-functions.js +2 -0
  103. package/dist/ecs/store/action-functions.js.map +1 -0
  104. package/dist/ecs/store/constants/functions.d.ts +14 -0
  105. package/dist/ecs/store/constants/functions.js +31 -0
  106. package/dist/ecs/store/constants/functions.js.map +1 -0
  107. package/dist/ecs/store/constants/index.d.ts +2 -0
  108. package/dist/ecs/store/constants/index.js +24 -0
  109. package/dist/ecs/store/constants/index.js.map +1 -0
  110. package/dist/ecs/store/constants/types.d.ts +18 -0
  111. package/dist/ecs/store/constants/types.js +23 -0
  112. package/dist/ecs/store/constants/types.js.map +1 -0
  113. package/dist/ecs/store/create-store-schema-test.js +70 -8
  114. package/dist/ecs/store/create-store-schema-test.js.map +1 -1
  115. package/dist/ecs/store/create-store.d.ts +1 -1
  116. package/dist/ecs/store/create-store.js +74 -24
  117. package/dist/ecs/store/create-store.js.map +1 -1
  118. package/dist/ecs/store/create-store.test.js +171 -171
  119. package/dist/ecs/store/create-store.test.js.map +1 -1
  120. package/dist/ecs/store/index.d.ts +0 -1
  121. package/dist/ecs/store/index.js +0 -1
  122. package/dist/ecs/store/index.js.map +1 -1
  123. package/dist/ecs/store/public/create-from-schema.d.ts +6 -0
  124. package/dist/ecs/store/public/create-from-schema.js +26 -0
  125. package/dist/ecs/store/public/create-from-schema.js.map +1 -0
  126. package/dist/ecs/store/public/create-store.d.ts +8 -0
  127. package/dist/ecs/store/public/create-store.js +127 -0
  128. package/dist/ecs/store/public/create-store.js.map +1 -0
  129. package/dist/ecs/store/public/create-store.test.d.ts +1 -0
  130. package/dist/ecs/store/public/create-store.test.js +730 -0
  131. package/dist/ecs/store/public/create-store.test.js.map +1 -0
  132. package/dist/ecs/store/public/index.d.ts +3 -0
  133. package/dist/ecs/store/public/index.js +25 -0
  134. package/dist/ecs/store/public/index.js.map +1 -0
  135. package/dist/ecs/store/public/readonly.d.ts +19 -0
  136. package/dist/ecs/store/public/readonly.js +2 -0
  137. package/dist/ecs/store/public/readonly.js.map +1 -0
  138. package/dist/ecs/store/public/schema/create-from-schema.d.ts +6 -0
  139. package/dist/ecs/store/public/schema/create-from-schema.js +26 -0
  140. package/dist/ecs/store/public/schema/create-from-schema.js.map +1 -0
  141. package/dist/ecs/store/public/schema/create.d.ts +10 -0
  142. package/dist/ecs/store/public/schema/create.js +25 -0
  143. package/dist/ecs/store/public/schema/create.js.map +1 -0
  144. package/dist/ecs/store/public/schema/createFromSchema.d.ts +6 -0
  145. package/dist/ecs/store/public/schema/createFromSchema.js +5 -0
  146. package/dist/ecs/store/public/schema/createFromSchema.js.map +1 -0
  147. package/dist/ecs/store/public/schema/public.d.ts +1 -0
  148. package/dist/ecs/store/public/schema/public.js +23 -0
  149. package/dist/ecs/store/public/schema/public.js.map +1 -0
  150. package/dist/ecs/store/public/schema/schema.d.ts +11 -0
  151. package/dist/ecs/store/public/schema/schema.js +23 -0
  152. package/dist/ecs/store/public/schema/schema.js.map +1 -0
  153. package/dist/ecs/store/public/types.d.ts +11 -0
  154. package/dist/ecs/store/public/types.js +23 -0
  155. package/dist/ecs/store/public/types.js.map +1 -0
  156. package/dist/ecs/store/store-schema/create-store-schema-test.d.ts +1 -0
  157. package/dist/ecs/store/store-schema/create-store-schema-test.js +33 -0
  158. package/dist/ecs/store/store-schema/create-store-schema-test.js.map +1 -0
  159. package/dist/ecs/store/store-schema/create-store-schema.d.ts +1 -0
  160. package/dist/ecs/store/store-schema/create-store-schema.js +45 -0
  161. package/dist/ecs/store/store-schema/create-store-schema.js.map +1 -0
  162. package/dist/ecs/store/store-schema/index.d.ts +1 -0
  163. package/dist/ecs/store/store-schema/index.js +21 -0
  164. package/dist/ecs/store/store-schema/index.js.map +1 -0
  165. package/dist/ecs/store/store-schema/store-schema.d.ts +1 -0
  166. package/dist/ecs/store/store-schema/store-schema.js +57 -0
  167. package/dist/ecs/store/store-schema/store-schema.js.map +1 -0
  168. package/dist/ecs/store/store.d.ts +48 -13
  169. package/dist/ecs/store/store.js +37 -8
  170. package/dist/ecs/store/store.js.map +1 -1
  171. package/dist/ecs/store/store.test.d.ts +1 -0
  172. package/dist/ecs/store/store.test.js +211 -0
  173. package/dist/ecs/store/store.test.js.map +1 -0
  174. package/dist/ecs/undo-redo-service/create-undo-redo-service.js +1 -1
  175. package/dist/ecs/undo-redo-service/create-undo-redo-service.js.map +1 -1
  176. package/dist/ecs/undo-redo-service/create-undo-redo-service.test.js +10 -6
  177. package/dist/ecs/undo-redo-service/create-undo-redo-service.test.js.map +1 -1
  178. package/dist/ecs/world/create-world.d.ts +7 -0
  179. package/dist/ecs/world/create-world.js +113 -0
  180. package/dist/ecs/world/create-world.js.map +1 -0
  181. package/dist/ecs/world/create-world.test.d.ts +1 -0
  182. package/dist/ecs/world/create-world.test.js +499 -0
  183. package/dist/ecs/world/create-world.test.js.map +1 -0
  184. package/dist/ecs/world/index.d.ts +5 -0
  185. package/dist/ecs/world/index.js +27 -0
  186. package/dist/ecs/world/index.js.map +1 -0
  187. package/dist/ecs/world/system-phase.d.ts +5 -0
  188. package/dist/ecs/world/system-phase.js +14 -0
  189. package/dist/ecs/world/system-phase.js.map +1 -0
  190. package/dist/ecs/world/system.d.ts +25 -0
  191. package/dist/ecs/world/system.js +2 -0
  192. package/dist/ecs/world/system.js.map +1 -0
  193. package/dist/ecs/world/world-schema/create-world-schema-test.d.ts +1 -0
  194. package/dist/ecs/world/world-schema/create-world-schema-test.js +55 -0
  195. package/dist/ecs/world/world-schema/create-world-schema-test.js.map +1 -0
  196. package/dist/ecs/world/world-schema/create-world-schema.d.ts +19 -0
  197. package/dist/ecs/world/world-schema/create-world-schema.js +33 -0
  198. package/dist/ecs/world/world-schema/create-world-schema.js.map +1 -0
  199. package/dist/ecs/world/world-schema/index.d.ts +2 -0
  200. package/dist/ecs/world/world-schema/index.js +24 -0
  201. package/dist/ecs/world/world-schema/index.js.map +1 -0
  202. package/dist/ecs/world/world-schema/world-schema.d.ts +18 -0
  203. package/dist/ecs/world/world-schema/world-schema.js +23 -0
  204. package/dist/ecs/world/world-schema/world-schema.js.map +1 -0
  205. package/dist/ecs/world/world.d.ts +11 -0
  206. package/dist/ecs/world/world.js +2 -0
  207. package/dist/ecs/world/world.js.map +1 -0
  208. package/dist/graphics/camera/camera.d.ts +62 -0
  209. package/dist/graphics/camera/camera.js +17 -0
  210. package/dist/graphics/camera/camera.js.map +1 -0
  211. package/dist/graphics/camera/index.d.ts +4 -0
  212. package/dist/graphics/camera/index.js +5 -0
  213. package/dist/graphics/camera/index.js.map +1 -0
  214. package/dist/graphics/camera/screen-to-world-ray.d.ts +12 -0
  215. package/dist/graphics/camera/screen-to-world-ray.js +49 -0
  216. package/dist/graphics/camera/screen-to-world-ray.js.map +1 -0
  217. package/dist/graphics/camera/screen-to-world-ray.test.d.ts +1 -0
  218. package/dist/graphics/camera/screen-to-world-ray.test.js +171 -0
  219. package/dist/graphics/camera/screen-to-world-ray.test.js.map +1 -0
  220. package/dist/graphics/camera/to-view-projection.d.ts +3 -0
  221. package/dist/graphics/camera/to-view-projection.js +8 -0
  222. package/dist/graphics/camera/to-view-projection.js.map +1 -0
  223. package/dist/graphics/camera/world-to-screen.d.ts +12 -0
  224. package/dist/graphics/camera/world-to-screen.js +38 -0
  225. package/dist/graphics/camera/world-to-screen.js.map +1 -0
  226. package/dist/graphics/camera/world-to-screen.test.d.ts +1 -0
  227. package/dist/graphics/camera/world-to-screen.test.js +124 -0
  228. package/dist/graphics/camera/world-to-screen.test.js.map +1 -0
  229. package/dist/graphics/create-struct-gpu-buffer.d.ts +7 -0
  230. package/dist/graphics/create-struct-gpu-buffer.js +17 -0
  231. package/dist/graphics/create-struct-gpu-buffer.js.map +1 -0
  232. package/dist/graphics/extract-wgsl-bindings.d.ts +5 -0
  233. package/dist/graphics/extract-wgsl-bindings.js +10 -0
  234. package/dist/graphics/extract-wgsl-bindings.js.map +1 -0
  235. package/dist/graphics/frame.d.ts +1 -0
  236. package/dist/graphics/frame.js +15 -0
  237. package/dist/graphics/frame.js.map +1 -0
  238. package/dist/graphics/get-web-gpu-device-and-context.d.ts +1 -0
  239. package/dist/graphics/get-web-gpu-device-and-context.js +24 -0
  240. package/dist/graphics/get-web-gpu-device-and-context.js.map +1 -0
  241. package/dist/graphics/graphics-context.d.ts +1 -0
  242. package/dist/graphics/graphics-context.js +7 -0
  243. package/dist/graphics/graphics-context.js.map +1 -0
  244. package/dist/graphics/index.d.ts +5 -0
  245. package/dist/graphics/index.js +5 -0
  246. package/dist/graphics/index.js.map +1 -0
  247. package/dist/graphics/to-gpu-buffer.d.ts +2 -0
  248. package/dist/graphics/to-gpu-buffer.js +14 -0
  249. package/dist/graphics/to-gpu-buffer.js.map +1 -0
  250. package/dist/internal/array-buffer-like/grow.d.ts +1 -0
  251. package/dist/internal/array-buffer-like/grow.js +9 -0
  252. package/dist/internal/array-buffer-like/grow.js.map +1 -0
  253. package/dist/lit/hooks/use-drag-transaction.d.ts +1 -1
  254. package/dist/math/aabb/aabb.d.ts +3 -52
  255. package/dist/math/aabb/aabb.js +2 -97
  256. package/dist/math/aabb/aabb.js.map +1 -1
  257. package/dist/math/aabb/constants/functions.d.ts +15 -0
  258. package/dist/math/aabb/constants/functions.js +76 -0
  259. package/dist/math/aabb/constants/functions.js.map +1 -0
  260. package/dist/math/aabb/constants/index.d.ts +3 -0
  261. package/dist/math/aabb/constants/index.js +25 -0
  262. package/dist/math/aabb/constants/index.js.map +1 -0
  263. package/dist/math/aabb/constants/layout.d.ts +1 -0
  264. package/dist/math/aabb/constants/layout.js +25 -0
  265. package/dist/math/aabb/constants/layout.js.map +1 -0
  266. package/dist/math/aabb/constants/schema.d.ts +33 -0
  267. package/dist/math/aabb/constants/schema.js +37 -0
  268. package/dist/math/aabb/constants/schema.js.map +1 -0
  269. package/dist/math/aabb/functions.d.ts +1 -0
  270. package/dist/math/aabb/functions.js +23 -0
  271. package/dist/math/aabb/functions.js.map +1 -0
  272. package/dist/math/aabb/lineIntersection.d.ts +10 -0
  273. package/dist/math/aabb/lineIntersection.js +42 -0
  274. package/dist/math/aabb/lineIntersection.js.map +1 -0
  275. package/dist/math/aabb-face/aabb-face.d.ts +3 -53
  276. package/dist/math/aabb-face/aabb-face.js +1 -135
  277. package/dist/math/aabb-face/aabb-face.js.map +1 -1
  278. package/dist/math/aabb-face/aabb-face.test.js +1 -1
  279. package/dist/math/aabb-face/aabb-face.test.js.map +1 -1
  280. package/dist/math/aabb-face/constants/functions.d.ts +47 -0
  281. package/dist/math/aabb-face/constants/functions.js +148 -0
  282. package/dist/math/aabb-face/constants/functions.js.map +1 -0
  283. package/dist/math/aabb-face/constants/index.d.ts +2 -0
  284. package/dist/math/aabb-face/constants/index.js +24 -0
  285. package/dist/math/aabb-face/constants/index.js.map +1 -0
  286. package/dist/math/aabb-face/constants/schema.d.ts +5 -0
  287. package/dist/math/aabb-face/constants/schema.js +27 -0
  288. package/dist/math/aabb-face/constants/schema.js.map +1 -0
  289. package/dist/math/aabb-face/face.d.ts +51 -0
  290. package/dist/math/aabb-face/face.js +110 -0
  291. package/dist/math/aabb-face/face.js.map +1 -0
  292. package/dist/math/aabb-face/face.test.d.ts +1 -0
  293. package/dist/math/aabb-face/face.test.js +94 -0
  294. package/dist/math/aabb-face/face.test.js.map +1 -0
  295. package/dist/math/aabb-face/functions.d.ts +47 -0
  296. package/dist/math/aabb-face/functions.js +148 -0
  297. package/dist/math/aabb-face/functions.js.map +1 -0
  298. package/dist/math/aabb-face/index.d.ts +4 -0
  299. package/dist/math/aabb-face/index.js +23 -0
  300. package/dist/math/aabb-face/index.js.map +1 -0
  301. package/dist/math/aabb-face/public.d.ts +2 -0
  302. package/dist/math/aabb-face/public.js +24 -0
  303. package/dist/math/aabb-face/public.js.map +1 -0
  304. package/dist/math/aabb-face/schema.d.ts +5 -0
  305. package/dist/math/aabb-face/schema.js +27 -0
  306. package/dist/math/aabb-face/schema.js.map +1 -0
  307. package/dist/math/box/box.d.ts +50 -0
  308. package/dist/math/box/box.js +23 -0
  309. package/dist/math/box/box.js.map +1 -0
  310. package/dist/math/f32/constants/index.d.ts +1 -0
  311. package/dist/math/f32/constants/index.js +23 -0
  312. package/dist/math/f32/constants/index.js.map +1 -0
  313. package/dist/math/f32/constants/schema.d.ts +5 -0
  314. package/dist/math/f32/constants/schema.js +24 -0
  315. package/dist/math/f32/constants/schema.js.map +1 -0
  316. package/dist/math/f32/f32.d.ts +3 -8
  317. package/dist/math/f32/f32.js +1 -6
  318. package/dist/math/f32/f32.js.map +1 -1
  319. package/dist/math/face/face.d.ts +51 -0
  320. package/dist/math/face/face.js +110 -0
  321. package/dist/math/face/face.js.map +1 -0
  322. package/dist/math/face/face.test.d.ts +1 -0
  323. package/dist/math/face/face.test.js +94 -0
  324. package/dist/math/face/face.test.js.map +1 -0
  325. package/dist/math/i32/constants/index.d.ts +1 -0
  326. package/dist/math/i32/constants/index.js +23 -0
  327. package/dist/math/i32/constants/index.js.map +1 -0
  328. package/dist/math/i32/constants/schema.d.ts +6 -0
  329. package/dist/math/i32/constants/schema.js +24 -0
  330. package/dist/math/i32/constants/schema.js.map +1 -0
  331. package/dist/math/i32/i32.d.ts +3 -9
  332. package/dist/math/i32/i32.js +1 -6
  333. package/dist/math/i32/i32.js.map +1 -1
  334. package/dist/math/line2/constants/functions.d.ts +5 -0
  335. package/dist/math/line2/constants/functions.js +61 -0
  336. package/dist/math/line2/constants/functions.js.map +1 -0
  337. package/dist/math/line2/constants/index.d.ts +3 -0
  338. package/dist/math/line2/constants/index.js +25 -0
  339. package/dist/math/line2/constants/index.js.map +1 -0
  340. package/dist/math/line2/constants/layout.d.ts +1 -0
  341. package/dist/math/line2/constants/layout.js +25 -0
  342. package/dist/math/line2/constants/layout.js.map +1 -0
  343. package/dist/math/line2/constants/schema.d.ts +33 -0
  344. package/dist/math/line2/constants/schema.js +37 -0
  345. package/dist/math/line2/constants/schema.js.map +1 -0
  346. package/dist/math/line2/line2.d.ts +3 -41
  347. package/dist/math/line2/line2.js +1 -60
  348. package/dist/math/line2/line2.js.map +1 -1
  349. package/dist/math/line3/constants/functions.d.ts +17 -0
  350. package/dist/math/line3/constants/functions.js +70 -0
  351. package/dist/math/line3/constants/functions.js.map +1 -0
  352. package/dist/math/line3/constants/index.d.ts +3 -0
  353. package/dist/math/line3/constants/index.js +25 -0
  354. package/dist/math/line3/constants/index.js.map +1 -0
  355. package/dist/math/line3/constants/layout.d.ts +1 -0
  356. package/dist/math/line3/constants/layout.js +25 -0
  357. package/dist/math/line3/constants/layout.js.map +1 -0
  358. package/dist/math/line3/constants/schema.d.ts +33 -0
  359. package/dist/math/line3/constants/schema.js +37 -0
  360. package/dist/math/line3/constants/schema.js.map +1 -0
  361. package/dist/math/line3/line3.d.ts +3 -53
  362. package/dist/math/line3/line3.js +1 -68
  363. package/dist/math/line3/line3.js.map +1 -1
  364. package/dist/math/mat4x4/constants/functions.d.ts +23 -0
  365. package/dist/math/mat4x4/constants/functions.js +236 -0
  366. package/dist/math/mat4x4/constants/functions.js.map +1 -0
  367. package/dist/math/mat4x4/constants/index.d.ts +3 -0
  368. package/dist/math/mat4x4/constants/index.js +25 -0
  369. package/dist/math/mat4x4/constants/index.js.map +1 -0
  370. package/dist/math/mat4x4/constants/layout.d.ts +1 -0
  371. package/dist/math/mat4x4/constants/layout.js +25 -0
  372. package/dist/math/mat4x4/constants/layout.js.map +1 -0
  373. package/dist/math/mat4x4/constants/schema.d.ts +11 -0
  374. package/dist/math/mat4x4/constants/schema.js +30 -0
  375. package/dist/math/mat4x4/constants/schema.js.map +1 -0
  376. package/dist/math/mat4x4/mat4x4.d.ts +3 -36
  377. package/dist/math/mat4x4/mat4x4.js +1 -228
  378. package/dist/math/mat4x4/mat4x4.js.map +1 -1
  379. package/dist/math/picking/face.d.ts +1 -0
  380. package/dist/math/picking/face.js +2 -0
  381. package/dist/math/picking/face.js.map +1 -0
  382. package/dist/math/picking/get-closest-entity-to-line.d.ts +4 -0
  383. package/dist/math/picking/get-closest-entity-to-line.js +30 -0
  384. package/dist/math/picking/get-closest-entity-to-line.js.map +1 -0
  385. package/dist/math/picking/get-closest-entity-to-point.d.ts +4 -0
  386. package/dist/math/picking/get-closest-entity-to-point.js +27 -0
  387. package/dist/math/picking/get-closest-entity-to-point.js.map +1 -0
  388. package/dist/math/picking/get-intersecting-entities.d.ts +12 -0
  389. package/dist/math/picking/get-intersecting-entities.js +15 -0
  390. package/dist/math/picking/get-intersecting-entities.js.map +1 -0
  391. package/dist/math/picking/getClosestEntityToLine.d.ts +4 -0
  392. package/dist/math/picking/getClosestEntityToLine.js +29 -0
  393. package/dist/math/picking/getClosestEntityToLine.js.map +1 -0
  394. package/dist/math/picking/getClosestEntityToPoint.d.ts +4 -0
  395. package/dist/math/picking/getClosestEntityToPoint.js +27 -0
  396. package/dist/math/picking/getClosestEntityToPoint.js.map +1 -0
  397. package/dist/math/picking/getIntersectingEntities.d.ts +12 -0
  398. package/dist/math/picking/getIntersectingEntities.js +15 -0
  399. package/dist/math/picking/getIntersectingEntities.js.map +1 -0
  400. package/dist/math/picking/index.d.ts +5 -0
  401. package/dist/math/picking/index.js +27 -0
  402. package/dist/math/picking/index.js.map +1 -0
  403. package/dist/math/picking/pick-from-tables.d.ts +19 -0
  404. package/dist/math/picking/pick-from-tables.js +63 -0
  405. package/dist/math/picking/pick-from-tables.js.map +1 -0
  406. package/dist/math/picking/pick-result.d.ts +12 -0
  407. package/dist/math/picking/pick-result.js +23 -0
  408. package/dist/math/picking/pick-result.js.map +1 -0
  409. package/dist/math/plane/constants/functions.d.ts +16 -0
  410. package/dist/math/plane/constants/functions.js +54 -0
  411. package/dist/math/plane/constants/functions.js.map +1 -0
  412. package/dist/math/plane/constants/index.d.ts +3 -0
  413. package/dist/math/plane/constants/index.js +25 -0
  414. package/dist/math/plane/constants/index.js.map +1 -0
  415. package/dist/math/plane/constants/layout.d.ts +1 -0
  416. package/dist/math/plane/constants/layout.js +25 -0
  417. package/dist/math/plane/constants/layout.js.map +1 -0
  418. package/dist/math/plane/constants/schema.d.ts +24 -0
  419. package/dist/{schema/type.js → math/plane/constants/schema.js} +7 -7
  420. package/dist/math/plane/constants/schema.js.map +1 -0
  421. package/dist/math/plane/plane.d.ts +3 -42
  422. package/dist/math/plane/plane.js +1 -49
  423. package/dist/math/plane/plane.js.map +1 -1
  424. package/dist/math/quat/constants/index.d.ts +3 -0
  425. package/dist/math/quat/constants/index.js +25 -0
  426. package/dist/math/quat/constants/index.js.map +1 -0
  427. package/dist/math/quat/constants/layout.d.ts +1 -0
  428. package/dist/math/quat/constants/layout.js +25 -0
  429. package/dist/math/quat/constants/layout.js.map +1 -0
  430. package/dist/math/quat/constants/schema.d.ts +11 -0
  431. package/dist/math/quat/constants/schema.js +30 -0
  432. package/dist/math/quat/constants/schema.js.map +1 -0
  433. package/dist/math/quat/quat.d.ts +3 -56
  434. package/dist/math/quat/quat.js +1 -250
  435. package/dist/math/quat/quat.js.map +1 -1
  436. package/dist/math/transform/debug-inverse.d.ts +1 -0
  437. package/dist/math/transform/debug-inverse.js +28 -0
  438. package/dist/math/transform/debug-inverse.js.map +1 -0
  439. package/dist/math/transform/debug-quat.d.ts +1 -0
  440. package/dist/math/transform/debug-quat.js +23 -0
  441. package/dist/math/transform/debug-quat.js.map +1 -0
  442. package/dist/math/transform/debug-test.d.ts +1 -0
  443. package/dist/math/transform/debug-test.js +34 -0
  444. package/dist/math/transform/debug-test.js.map +1 -0
  445. package/dist/math/transform/transform.d.ts +58 -0
  446. package/dist/math/transform/transform.js +101 -0
  447. package/dist/math/transform/transform.js.map +1 -0
  448. package/dist/math/transform/transform.test.d.ts +1 -0
  449. package/dist/math/transform/transform.test.js +309 -0
  450. package/dist/math/transform/transform.test.js.map +1 -0
  451. package/dist/math/u32/constants/index.d.ts +1 -0
  452. package/dist/math/u32/constants/index.js +23 -0
  453. package/dist/math/u32/constants/index.js.map +1 -0
  454. package/dist/math/u32/constants/schema.d.ts +6 -0
  455. package/dist/math/u32/constants/schema.js +24 -0
  456. package/dist/math/u32/constants/schema.js.map +1 -0
  457. package/dist/math/u32/u32.d.ts +3 -9
  458. package/dist/math/u32/u32.js +1 -6
  459. package/dist/math/u32/u32.js.map +1 -1
  460. package/dist/math/vec2/constants/functions.d.ts +48 -0
  461. package/dist/math/vec2/constants/functions.js +104 -0
  462. package/dist/math/vec2/constants/functions.js.map +1 -0
  463. package/dist/math/vec2/constants/index.d.ts +3 -0
  464. package/dist/math/vec2/constants/index.js +25 -0
  465. package/dist/math/vec2/constants/index.js.map +1 -0
  466. package/dist/math/vec2/constants/layout.d.ts +1 -0
  467. package/dist/math/vec2/constants/layout.js +25 -0
  468. package/dist/math/vec2/constants/layout.js.map +1 -0
  469. package/dist/math/vec2/constants/schema.d.ts +11 -0
  470. package/dist/math/vec2/constants/schema.js +30 -0
  471. package/dist/math/vec2/constants/schema.js.map +1 -0
  472. package/dist/math/vec2/functions/abs.d.ts +2 -0
  473. package/dist/math/vec2/functions/abs.js +23 -0
  474. package/dist/math/vec2/functions/abs.js.map +1 -0
  475. package/dist/math/vec2/functions/acos.d.ts +2 -0
  476. package/dist/math/vec2/functions/acos.js +23 -0
  477. package/dist/math/vec2/functions/acos.js.map +1 -0
  478. package/dist/math/vec2/functions/acosh.d.ts +2 -0
  479. package/dist/math/vec2/functions/acosh.js +23 -0
  480. package/dist/math/vec2/functions/acosh.js.map +1 -0
  481. package/dist/math/vec2/functions/add.d.ts +2 -0
  482. package/dist/math/vec2/functions/add.js +23 -0
  483. package/dist/math/vec2/functions/add.js.map +1 -0
  484. package/dist/math/vec2/functions/asin.d.ts +2 -0
  485. package/dist/math/vec2/functions/asin.js +23 -0
  486. package/dist/math/vec2/functions/asin.js.map +1 -0
  487. package/dist/math/vec2/functions/asinh.d.ts +2 -0
  488. package/dist/math/vec2/functions/asinh.js +23 -0
  489. package/dist/math/vec2/functions/asinh.js.map +1 -0
  490. package/dist/math/vec2/functions/atan.d.ts +2 -0
  491. package/dist/math/vec2/functions/atan.js +23 -0
  492. package/dist/math/vec2/functions/atan.js.map +1 -0
  493. package/dist/math/vec2/functions/atanh.d.ts +2 -0
  494. package/dist/math/vec2/functions/atanh.js +23 -0
  495. package/dist/math/vec2/functions/atanh.js.map +1 -0
  496. package/dist/math/vec2/functions/ceil.d.ts +2 -0
  497. package/dist/math/vec2/functions/ceil.js +23 -0
  498. package/dist/math/vec2/functions/ceil.js.map +1 -0
  499. package/dist/math/vec2/functions/clamp.d.ts +2 -0
  500. package/dist/math/vec2/functions/clamp.js +25 -0
  501. package/dist/math/vec2/functions/clamp.js.map +1 -0
  502. package/dist/math/vec2/functions/cos.d.ts +2 -0
  503. package/dist/math/vec2/functions/cos.js +23 -0
  504. package/dist/math/vec2/functions/cos.js.map +1 -0
  505. package/dist/math/vec2/functions/cosh.d.ts +2 -0
  506. package/dist/math/vec2/functions/cosh.js +23 -0
  507. package/dist/math/vec2/functions/cosh.js.map +1 -0
  508. package/dist/math/vec2/functions/distance.d.ts +2 -0
  509. package/dist/math/vec2/functions/distance.js +25 -0
  510. package/dist/math/vec2/functions/distance.js.map +1 -0
  511. package/dist/math/vec2/functions/dot.d.ts +2 -0
  512. package/dist/math/vec2/functions/dot.js +23 -0
  513. package/dist/math/vec2/functions/dot.js.map +1 -0
  514. package/dist/math/vec2/functions/exp-2.d.ts +2 -0
  515. package/dist/math/vec2/functions/exp-2.js +23 -0
  516. package/dist/math/vec2/functions/exp-2.js.map +1 -0
  517. package/dist/math/vec2/functions/exp.d.ts +2 -0
  518. package/dist/math/vec2/functions/exp.js +23 -0
  519. package/dist/math/vec2/functions/exp.js.map +1 -0
  520. package/dist/math/vec2/functions/face-forward.d.ts +2 -0
  521. package/dist/math/vec2/functions/face-forward.js +25 -0
  522. package/dist/math/vec2/functions/face-forward.js.map +1 -0
  523. package/dist/math/vec2/functions/floor.d.ts +2 -0
  524. package/dist/math/vec2/functions/floor.js +23 -0
  525. package/dist/math/vec2/functions/floor.js.map +1 -0
  526. package/dist/math/vec2/functions/fract.d.ts +2 -0
  527. package/dist/math/vec2/functions/fract.js +23 -0
  528. package/dist/math/vec2/functions/fract.js.map +1 -0
  529. package/dist/math/vec2/functions/functions.d.ts +48 -0
  530. package/dist/math/vec2/functions/functions.js +104 -0
  531. package/dist/math/vec2/functions/functions.js.map +1 -0
  532. package/dist/math/vec2/functions/index.d.ts +3 -0
  533. package/dist/math/vec2/functions/index.js +25 -0
  534. package/dist/math/vec2/functions/index.js.map +1 -0
  535. package/dist/math/vec2/functions/layout.d.ts +1 -0
  536. package/dist/math/vec2/functions/layout.js +25 -0
  537. package/dist/math/vec2/functions/layout.js.map +1 -0
  538. package/dist/math/vec2/functions/length.d.ts +2 -0
  539. package/dist/math/vec2/functions/length.js +23 -0
  540. package/dist/math/vec2/functions/length.js.map +1 -0
  541. package/dist/math/vec2/functions/log-2.d.ts +2 -0
  542. package/dist/math/vec2/functions/log-2.js +23 -0
  543. package/dist/math/vec2/functions/log-2.js.map +1 -0
  544. package/dist/math/vec2/functions/log.d.ts +2 -0
  545. package/dist/math/vec2/functions/log.js +23 -0
  546. package/dist/math/vec2/functions/log.js.map +1 -0
  547. package/dist/math/vec2/functions/max.d.ts +2 -0
  548. package/dist/math/vec2/functions/max.js +23 -0
  549. package/dist/math/vec2/functions/max.js.map +1 -0
  550. package/dist/math/vec2/functions/min.d.ts +2 -0
  551. package/dist/math/vec2/functions/min.js +23 -0
  552. package/dist/math/vec2/functions/min.js.map +1 -0
  553. package/dist/math/vec2/functions/mix.d.ts +2 -0
  554. package/dist/math/vec2/functions/mix.js +26 -0
  555. package/dist/math/vec2/functions/mix.js.map +1 -0
  556. package/dist/math/vec2/functions/mod.d.ts +2 -0
  557. package/dist/math/vec2/functions/mod.js +26 -0
  558. package/dist/math/vec2/functions/mod.js.map +1 -0
  559. package/dist/math/vec2/functions/modf.d.ts +5 -0
  560. package/dist/math/vec2/functions/modf.js +26 -0
  561. package/dist/math/vec2/functions/modf.js.map +1 -0
  562. package/dist/math/vec2/functions/negate.d.ts +2 -0
  563. package/dist/math/vec2/functions/negate.js +23 -0
  564. package/dist/math/vec2/functions/negate.js.map +1 -0
  565. package/dist/math/vec2/functions/normalize.d.ts +2 -0
  566. package/dist/math/vec2/functions/normalize.js +28 -0
  567. package/dist/math/vec2/functions/normalize.js.map +1 -0
  568. package/dist/math/vec2/functions/pow.d.ts +2 -0
  569. package/dist/math/vec2/functions/pow.js +26 -0
  570. package/dist/math/vec2/functions/pow.js.map +1 -0
  571. package/dist/math/vec2/functions/reflect.d.ts +2 -0
  572. package/dist/math/vec2/functions/reflect.js +29 -0
  573. package/dist/math/vec2/functions/reflect.js.map +1 -0
  574. package/dist/math/vec2/functions/refract.d.ts +2 -0
  575. package/dist/math/vec2/functions/refract.js +34 -0
  576. package/dist/math/vec2/functions/refract.js.map +1 -0
  577. package/dist/math/vec2/functions/round.d.ts +2 -0
  578. package/dist/math/vec2/functions/round.js +23 -0
  579. package/dist/math/vec2/functions/round.js.map +1 -0
  580. package/dist/math/vec2/functions/scale.d.ts +2 -0
  581. package/dist/math/vec2/functions/scale.js +23 -0
  582. package/dist/math/vec2/functions/scale.js.map +1 -0
  583. package/dist/math/vec2/functions/schema.d.ts +11 -0
  584. package/dist/math/vec2/functions/schema.js +30 -0
  585. package/dist/math/vec2/functions/schema.js.map +1 -0
  586. package/dist/math/vec2/functions/sign.d.ts +2 -0
  587. package/dist/math/vec2/functions/sign.js +23 -0
  588. package/dist/math/vec2/functions/sign.js.map +1 -0
  589. package/dist/math/vec2/functions/sin.d.ts +2 -0
  590. package/dist/math/vec2/functions/sin.js +23 -0
  591. package/dist/math/vec2/functions/sin.js.map +1 -0
  592. package/dist/math/vec2/functions/sinh.d.ts +2 -0
  593. package/dist/math/vec2/functions/sinh.js +23 -0
  594. package/dist/math/vec2/functions/sinh.js.map +1 -0
  595. package/dist/math/vec2/functions/smooth-step.d.ts +2 -0
  596. package/dist/math/vec2/functions/smooth-step.js +27 -0
  597. package/dist/math/vec2/functions/smooth-step.js.map +1 -0
  598. package/dist/math/vec2/functions/sqrt.d.ts +2 -0
  599. package/dist/math/vec2/functions/sqrt.js +23 -0
  600. package/dist/math/vec2/functions/sqrt.js.map +1 -0
  601. package/dist/math/vec2/functions/step.d.ts +2 -0
  602. package/dist/math/vec2/functions/step.js +26 -0
  603. package/dist/math/vec2/functions/step.js.map +1 -0
  604. package/dist/math/vec2/functions/subtract.d.ts +2 -0
  605. package/dist/math/vec2/functions/subtract.js +23 -0
  606. package/dist/math/vec2/functions/subtract.js.map +1 -0
  607. package/dist/math/vec2/functions/tan.d.ts +2 -0
  608. package/dist/math/vec2/functions/tan.js +23 -0
  609. package/dist/math/vec2/functions/tan.js.map +1 -0
  610. package/dist/math/vec2/functions/tanh.d.ts +2 -0
  611. package/dist/math/vec2/functions/tanh.js +23 -0
  612. package/dist/math/vec2/functions/tanh.js.map +1 -0
  613. package/dist/math/vec2/functions/trunc.d.ts +2 -0
  614. package/dist/math/vec2/functions/trunc.js +23 -0
  615. package/dist/math/vec2/functions/trunc.js.map +1 -0
  616. package/dist/math/vec2/vec2.d.ts +3 -62
  617. package/dist/math/vec2/vec2.js +1 -96
  618. package/dist/math/vec2/vec2.js.map +1 -1
  619. package/dist/math/vec3/constants/functions.d.ts +59 -0
  620. package/dist/math/vec3/constants/functions.js +159 -0
  621. package/dist/math/vec3/constants/functions.js.map +1 -0
  622. package/dist/math/vec3/constants/index.d.ts +3 -0
  623. package/dist/math/vec3/constants/index.js +25 -0
  624. package/dist/math/vec3/constants/index.js.map +1 -0
  625. package/dist/math/vec3/constants/layout.d.ts +1 -0
  626. package/dist/math/vec3/constants/layout.js +25 -0
  627. package/dist/math/vec3/constants/layout.js.map +1 -0
  628. package/dist/math/vec3/constants/schema.d.ts +11 -0
  629. package/dist/math/vec3/constants/schema.js +30 -0
  630. package/dist/math/vec3/constants/schema.js.map +1 -0
  631. package/dist/math/vec3/functions/abs.d.ts +2 -0
  632. package/dist/math/vec3/functions/abs.js +23 -0
  633. package/dist/math/vec3/functions/abs.js.map +1 -0
  634. package/dist/math/vec3/functions/acos.d.ts +2 -0
  635. package/dist/math/vec3/functions/acos.js +23 -0
  636. package/dist/math/vec3/functions/acos.js.map +1 -0
  637. package/dist/math/vec3/functions/acosh.d.ts +2 -0
  638. package/dist/math/vec3/functions/acosh.js +23 -0
  639. package/dist/math/vec3/functions/acosh.js.map +1 -0
  640. package/dist/math/vec3/functions/add.d.ts +2 -0
  641. package/dist/math/vec3/functions/add.js +27 -0
  642. package/dist/math/vec3/functions/add.js.map +1 -0
  643. package/dist/math/vec3/functions/asin.d.ts +2 -0
  644. package/dist/math/vec3/functions/asin.js +23 -0
  645. package/dist/math/vec3/functions/asin.js.map +1 -0
  646. package/dist/math/vec3/functions/asinh.d.ts +2 -0
  647. package/dist/math/vec3/functions/asinh.js +23 -0
  648. package/dist/math/vec3/functions/asinh.js.map +1 -0
  649. package/dist/math/vec3/functions/atan.d.ts +2 -0
  650. package/dist/math/vec3/functions/atan.js +23 -0
  651. package/dist/math/vec3/functions/atan.js.map +1 -0
  652. package/dist/math/vec3/functions/atanh.d.ts +2 -0
  653. package/dist/math/vec3/functions/atanh.js +23 -0
  654. package/dist/math/vec3/functions/atanh.js.map +1 -0
  655. package/dist/math/vec3/functions/ceil.d.ts +2 -0
  656. package/dist/math/vec3/functions/ceil.js +23 -0
  657. package/dist/math/vec3/functions/ceil.js.map +1 -0
  658. package/dist/math/vec3/functions/clamp.d.ts +2 -0
  659. package/dist/math/vec3/functions/clamp.js +25 -0
  660. package/dist/math/vec3/functions/clamp.js.map +1 -0
  661. package/dist/math/vec3/functions/cos.d.ts +2 -0
  662. package/dist/math/vec3/functions/cos.js +23 -0
  663. package/dist/math/vec3/functions/cos.js.map +1 -0
  664. package/dist/math/vec3/functions/cosh.d.ts +2 -0
  665. package/dist/math/vec3/functions/cosh.js +23 -0
  666. package/dist/math/vec3/functions/cosh.js.map +1 -0
  667. package/dist/math/vec3/functions/cross.d.ts +2 -0
  668. package/dist/math/vec3/functions/cross.js +27 -0
  669. package/dist/math/vec3/functions/cross.js.map +1 -0
  670. package/dist/math/vec3/functions/distance-squared.d.ts +2 -0
  671. package/dist/math/vec3/functions/distance-squared.js +28 -0
  672. package/dist/math/vec3/functions/distance-squared.js.map +1 -0
  673. package/dist/math/vec3/functions/distance.d.ts +2 -0
  674. package/dist/math/vec3/functions/distance.js +25 -0
  675. package/dist/math/vec3/functions/distance.js.map +1 -0
  676. package/dist/math/vec3/functions/dot.d.ts +2 -0
  677. package/dist/math/vec3/functions/dot.js +23 -0
  678. package/dist/math/vec3/functions/dot.js.map +1 -0
  679. package/dist/math/vec3/functions/equals.d.ts +2 -0
  680. package/dist/math/vec3/functions/equals.js +23 -0
  681. package/dist/math/vec3/functions/equals.js.map +1 -0
  682. package/dist/math/vec3/functions/exp-2.d.ts +2 -0
  683. package/dist/math/vec3/functions/exp-2.js +23 -0
  684. package/dist/math/vec3/functions/exp-2.js.map +1 -0
  685. package/dist/math/vec3/functions/exp.d.ts +2 -0
  686. package/dist/math/vec3/functions/exp.js +23 -0
  687. package/dist/math/vec3/functions/exp.js.map +1 -0
  688. package/dist/math/vec3/functions/face-forward.d.ts +2 -0
  689. package/dist/math/vec3/functions/face-forward.js +25 -0
  690. package/dist/math/vec3/functions/face-forward.js.map +1 -0
  691. package/dist/math/vec3/functions/floor.d.ts +2 -0
  692. package/dist/math/vec3/functions/floor.js +23 -0
  693. package/dist/math/vec3/functions/floor.js.map +1 -0
  694. package/dist/math/vec3/functions/fract.d.ts +2 -0
  695. package/dist/math/vec3/functions/fract.js +27 -0
  696. package/dist/math/vec3/functions/fract.js.map +1 -0
  697. package/dist/math/vec3/functions/index.d.ts +54 -0
  698. package/dist/math/vec3/functions/index.js +76 -0
  699. package/dist/math/vec3/functions/index.js.map +1 -0
  700. package/dist/math/vec3/functions/layout.d.ts +1 -0
  701. package/dist/math/vec3/functions/layout.js +25 -0
  702. package/dist/math/vec3/functions/layout.js.map +1 -0
  703. package/dist/math/vec3/functions/length-squared.d.ts +2 -0
  704. package/dist/math/vec3/functions/length-squared.js +23 -0
  705. package/dist/math/vec3/functions/length-squared.js.map +1 -0
  706. package/dist/math/vec3/functions/length.d.ts +2 -0
  707. package/dist/math/vec3/functions/length.js +23 -0
  708. package/dist/math/vec3/functions/length.js.map +1 -0
  709. package/dist/math/vec3/functions/log-2.d.ts +2 -0
  710. package/dist/math/vec3/functions/log-2.js +23 -0
  711. package/dist/math/vec3/functions/log-2.js.map +1 -0
  712. package/dist/math/vec3/functions/log.d.ts +2 -0
  713. package/dist/math/vec3/functions/log.js +23 -0
  714. package/dist/math/vec3/functions/log.js.map +1 -0
  715. package/dist/math/vec3/functions/max.d.ts +2 -0
  716. package/dist/math/vec3/functions/max.js +27 -0
  717. package/dist/math/vec3/functions/max.js.map +1 -0
  718. package/dist/math/vec3/functions/min.d.ts +2 -0
  719. package/dist/math/vec3/functions/min.js +27 -0
  720. package/dist/math/vec3/functions/min.js.map +1 -0
  721. package/dist/math/vec3/functions/mix.d.ts +2 -0
  722. package/dist/math/vec3/functions/mix.js +27 -0
  723. package/dist/math/vec3/functions/mix.js.map +1 -0
  724. package/dist/math/vec3/functions/mod.d.ts +2 -0
  725. package/dist/math/vec3/functions/mod.js +27 -0
  726. package/dist/math/vec3/functions/mod.js.map +1 -0
  727. package/dist/math/vec3/functions/modf.d.ts +5 -0
  728. package/dist/math/vec3/functions/modf.js +26 -0
  729. package/dist/math/vec3/functions/modf.js.map +1 -0
  730. package/dist/math/vec3/functions/multiply.d.ts +5 -0
  731. package/dist/math/vec3/functions/multiply.js +30 -0
  732. package/dist/math/vec3/functions/multiply.js.map +1 -0
  733. package/dist/math/vec3/functions/negate.d.ts +2 -0
  734. package/dist/math/vec3/functions/negate.js +23 -0
  735. package/dist/math/vec3/functions/negate.js.map +1 -0
  736. package/dist/math/vec3/functions/normalize.d.ts +2 -0
  737. package/dist/math/vec3/functions/normalize.js +28 -0
  738. package/dist/math/vec3/functions/normalize.js.map +1 -0
  739. package/dist/math/vec3/functions/one.d.ts +2 -0
  740. package/dist/math/vec3/functions/one.js +23 -0
  741. package/dist/math/vec3/functions/one.js.map +1 -0
  742. package/dist/math/vec3/functions/pow.d.ts +2 -0
  743. package/dist/math/vec3/functions/pow.js +27 -0
  744. package/dist/math/vec3/functions/pow.js.map +1 -0
  745. package/dist/math/vec3/functions/random.d.ts +2 -0
  746. package/dist/math/vec3/functions/random.js +25 -0
  747. package/dist/math/vec3/functions/random.js.map +1 -0
  748. package/dist/math/vec3/functions/reflect.d.ts +2 -0
  749. package/dist/math/vec3/functions/reflect.js +29 -0
  750. package/dist/math/vec3/functions/reflect.js.map +1 -0
  751. package/dist/math/vec3/functions/refract.d.ts +2 -0
  752. package/dist/math/vec3/functions/refract.js +34 -0
  753. package/dist/math/vec3/functions/refract.js.map +1 -0
  754. package/dist/math/vec3/functions/round.d.ts +2 -0
  755. package/dist/math/vec3/functions/round.js +23 -0
  756. package/dist/math/vec3/functions/round.js.map +1 -0
  757. package/dist/math/vec3/functions/scale.d.ts +2 -0
  758. package/dist/math/vec3/functions/scale.js +23 -0
  759. package/dist/math/vec3/functions/scale.js.map +1 -0
  760. package/dist/math/vec3/functions/schema.d.ts +11 -0
  761. package/dist/math/vec3/functions/schema.js +30 -0
  762. package/dist/math/vec3/functions/schema.js.map +1 -0
  763. package/dist/math/vec3/functions/sign.d.ts +2 -0
  764. package/dist/math/vec3/functions/sign.js +23 -0
  765. package/dist/math/vec3/functions/sign.js.map +1 -0
  766. package/dist/math/vec3/functions/sin.d.ts +2 -0
  767. package/dist/math/vec3/functions/sin.js +23 -0
  768. package/dist/math/vec3/functions/sin.js.map +1 -0
  769. package/dist/math/vec3/functions/sinh.d.ts +2 -0
  770. package/dist/math/vec3/functions/sinh.js +23 -0
  771. package/dist/math/vec3/functions/sinh.js.map +1 -0
  772. package/dist/math/vec3/functions/smooth-step.d.ts +2 -0
  773. package/dist/math/vec3/functions/smooth-step.js +32 -0
  774. package/dist/math/vec3/functions/smooth-step.js.map +1 -0
  775. package/dist/math/vec3/functions/sqrt.d.ts +2 -0
  776. package/dist/math/vec3/functions/sqrt.js +23 -0
  777. package/dist/math/vec3/functions/sqrt.js.map +1 -0
  778. package/dist/math/vec3/functions/step.d.ts +2 -0
  779. package/dist/math/vec3/functions/step.js +27 -0
  780. package/dist/math/vec3/functions/step.js.map +1 -0
  781. package/dist/math/vec3/functions/subtract.d.ts +2 -0
  782. package/dist/math/vec3/functions/subtract.js +27 -0
  783. package/dist/math/vec3/functions/subtract.js.map +1 -0
  784. package/dist/math/vec3/functions/tan.d.ts +2 -0
  785. package/dist/math/vec3/functions/tan.js +23 -0
  786. package/dist/math/vec3/functions/tan.js.map +1 -0
  787. package/dist/math/vec3/functions/tanh.d.ts +2 -0
  788. package/dist/math/vec3/functions/tanh.js +23 -0
  789. package/dist/math/vec3/functions/tanh.js.map +1 -0
  790. package/dist/math/vec3/functions/trunc.d.ts +2 -0
  791. package/dist/math/vec3/functions/trunc.js +23 -0
  792. package/dist/math/vec3/functions/trunc.js.map +1 -0
  793. package/dist/math/vec3/functions/zero.d.ts +2 -0
  794. package/dist/math/vec3/functions/zero.js +23 -0
  795. package/dist/math/vec3/functions/zero.js.map +1 -0
  796. package/dist/math/vec3/vec3.d.ts +3 -73
  797. package/dist/math/vec3/vec3.js +1 -151
  798. package/dist/math/vec3/vec3.js.map +1 -1
  799. package/dist/math/vec4/constants/functions.d.ts +49 -0
  800. package/dist/math/vec4/constants/functions.js +150 -0
  801. package/dist/math/vec4/constants/functions.js.map +1 -0
  802. package/dist/math/vec4/constants/index.d.ts +3 -0
  803. package/dist/math/vec4/constants/index.js +25 -0
  804. package/dist/math/vec4/constants/index.js.map +1 -0
  805. package/dist/math/vec4/constants/layout.d.ts +1 -0
  806. package/dist/math/vec4/constants/layout.js +25 -0
  807. package/dist/math/vec4/constants/layout.js.map +1 -0
  808. package/dist/math/vec4/constants/schema.d.ts +11 -0
  809. package/dist/math/vec4/constants/schema.js +30 -0
  810. package/dist/math/vec4/constants/schema.js.map +1 -0
  811. package/dist/math/vec4/functions/abs.d.ts +2 -0
  812. package/dist/math/vec4/functions/abs.js +23 -0
  813. package/dist/math/vec4/functions/abs.js.map +1 -0
  814. package/dist/math/vec4/functions/ceil.d.ts +2 -0
  815. package/dist/math/vec4/functions/ceil.js +23 -0
  816. package/dist/math/vec4/functions/ceil.js.map +1 -0
  817. package/dist/math/vec4/functions/clamp.d.ts +2 -0
  818. package/dist/math/vec4/functions/clamp.js +25 -0
  819. package/dist/math/vec4/functions/clamp.js.map +1 -0
  820. package/dist/math/vec4/functions/floor.d.ts +2 -0
  821. package/dist/math/vec4/functions/floor.js +23 -0
  822. package/dist/math/vec4/functions/floor.js.map +1 -0
  823. package/dist/math/vec4/functions/layout.d.ts +1 -0
  824. package/dist/math/vec4/functions/layout.js +25 -0
  825. package/dist/math/vec4/functions/layout.js.map +1 -0
  826. package/dist/math/vec4/functions/max.d.ts +2 -0
  827. package/dist/math/vec4/functions/max.js +28 -0
  828. package/dist/math/vec4/functions/max.js.map +1 -0
  829. package/dist/math/vec4/functions/min.d.ts +2 -0
  830. package/dist/math/vec4/functions/min.js +28 -0
  831. package/dist/math/vec4/functions/min.js.map +1 -0
  832. package/dist/math/vec4/functions/round.d.ts +2 -0
  833. package/dist/math/vec4/functions/round.js +23 -0
  834. package/dist/math/vec4/functions/round.js.map +1 -0
  835. package/dist/math/vec4/functions/schema.d.ts +11 -0
  836. package/dist/math/vec4/functions/schema.js +30 -0
  837. package/dist/math/vec4/functions/schema.js.map +1 -0
  838. package/dist/math/vec4/functions/trunc.d.ts +2 -0
  839. package/dist/math/vec4/functions/trunc.js +23 -0
  840. package/dist/math/vec4/functions/trunc.js.map +1 -0
  841. package/dist/math/vec4/vec4.d.ts +3 -63
  842. package/dist/math/vec4/vec4.js +1 -142
  843. package/dist/math/vec4/vec4.js.map +1 -1
  844. package/dist/observe/create-observable-event.d.ts +1 -1
  845. package/dist/observe/create-observable-event.js +1 -1
  846. package/dist/observe/create-observable-event.js.map +1 -1
  847. package/dist/observe/create-observable-state.d.ts +1 -1
  848. package/dist/observe/create-observable-state.js +1 -1
  849. package/dist/observe/create-observable-state.js.map +1 -1
  850. package/dist/old-ecs/ecs/ecs.test.js +0 -1
  851. package/dist/old-ecs/ecs/ecs.test.js.map +1 -1
  852. package/dist/old-ecs/privacy/helper-functions.d.ts +43 -0
  853. package/dist/old-ecs/privacy/helper-functions.js +76 -0
  854. package/dist/old-ecs/privacy/helper-functions.js.map +1 -0
  855. package/dist/old-ecs/privacy/helper-functions.test.d.ts +1 -0
  856. package/dist/old-ecs/privacy/helper-functions.test.js +173 -0
  857. package/dist/old-ecs/privacy/helper-functions.test.js.map +1 -0
  858. package/dist/samples/todo/services/main-service/todo-main-service.d.ts +1 -1
  859. package/dist/samples/todo/services/state-service/create-todo-database.d.ts +5 -4
  860. package/dist/samples/todo/services/state-service/create-todo-database.js +3 -3
  861. package/dist/samples/todo/services/state-service/create-todo-database.js.map +1 -1
  862. package/dist/samples/todo/services/state-service/create-todo-store.d.ts +3 -2
  863. package/dist/samples/todo/services/state-service/create-todo-store.js +15 -17
  864. package/dist/samples/todo/services/state-service/create-todo-store.js.map +1 -1
  865. package/dist/samples/todo/services/state-service/transactions/toggle-complete.js +1 -1
  866. package/dist/samples/todo/services/state-service/transactions/toggle-complete.js.map +1 -1
  867. package/dist/schema/f32.d.ts +1 -1
  868. package/dist/schema/f32.js +1 -1
  869. package/dist/schema/f32.js.map +1 -1
  870. package/dist/schema/i32.d.ts +1 -1
  871. package/dist/schema/i32.js +1 -1
  872. package/dist/schema/i32.js.map +1 -1
  873. package/dist/schema/schema/index.d.ts +2 -0
  874. package/dist/schema/schema/index.js +23 -0
  875. package/dist/schema/schema/index.js.map +1 -0
  876. package/dist/schema/schema/nullable.d.ts +6 -0
  877. package/dist/schema/schema/nullable.js +6 -0
  878. package/dist/schema/schema/nullable.js.map +1 -0
  879. package/dist/schema/schema/public.d.ts +3 -0
  880. package/dist/schema/schema/public.js +25 -0
  881. package/dist/schema/schema/public.js.map +1 -0
  882. package/dist/schema/schema/to-vertex-buffer-layout.d.ts +56 -0
  883. package/dist/schema/schema/to-vertex-buffer-layout.js +143 -0
  884. package/dist/schema/schema/to-vertex-buffer-layout.js.map +1 -0
  885. package/dist/schema/{schema copy.d.ts → schema/types.d.ts} +7 -4
  886. package/dist/schema/{schema copy.js → schema/types.js} +1 -1
  887. package/dist/schema/schema/types.js.map +1 -0
  888. package/dist/schema/u32.d.ts +1 -1
  889. package/dist/schema/u32.js +1 -1
  890. package/dist/schema/u32.js.map +1 -1
  891. package/dist/table/constants/functions.d.ts +3 -0
  892. package/dist/table/constants/functions.js +34 -0
  893. package/dist/table/constants/functions.js.map +1 -0
  894. package/dist/table/constants/index.d.ts +1 -0
  895. package/dist/table/constants/index.js +23 -0
  896. package/dist/table/constants/index.js.map +1 -0
  897. package/dist/tsconfig.tsbuildinfo +1 -1
  898. package/dist/types/types.d.ts +2 -0
  899. package/dist/types/types.js.map +1 -1
  900. package/package.json +1 -1
  901. package/dist/schema/FromSchemas.d.ts +0 -4
  902. package/dist/schema/FromSchemas.js +0 -2
  903. package/dist/schema/FromSchemas.js.map +0 -1
  904. package/dist/schema/schema copy.js.map +0 -1
  905. package/dist/schema/type.d.ts +0 -76
  906. package/dist/schema/type.js.map +0 -1
@@ -0,0 +1,730 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ import { describe, it, expect } from "vitest";
23
+ import { createStore } from "./create-store.js";
24
+ import { createCoreTestSuite, positionSchema, healthSchema, nameSchema } from "../core/create-core.test.js";
25
+ import { F32 } from "../../../math/f32/index.js";
26
+ import { Time } from "../../../schema/index.js";
27
+ describe("createStore", () => {
28
+ // Test that store passes all core functionality tests
29
+ createCoreTestSuite("Store core functionality", (componentSchemas) => createStore({ components: componentSchemas, resources: {}, archetypes: {} }));
30
+ // Select function tests
31
+ describe("Select functionality", () => {
32
+ const velocitySchema = {
33
+ type: "object",
34
+ properties: {
35
+ x: F32.schema,
36
+ y: F32.schema,
37
+ z: F32.schema,
38
+ }
39
+ };
40
+ it("should select entities from single archetype", () => {
41
+ const store = createStore({ components: {
42
+ position: positionSchema,
43
+ health: healthSchema,
44
+ name: nameSchema,
45
+ }, resources: {}, archetypes: {} });
46
+ // Create entities in a single archetype
47
+ const archetype = store.ensureArchetype(["id", "position", "health"]);
48
+ const entity1 = archetype.insert({
49
+ position: { x: 1, y: 2, z: 3 },
50
+ health: { current: 100, max: 100 }
51
+ });
52
+ const entity2 = archetype.insert({
53
+ position: { x: 4, y: 5, z: 6 },
54
+ health: { current: 50, max: 100 }
55
+ });
56
+ // Select entities with position and health
57
+ const entities = store.select(["position", "health"]);
58
+ expect(entities).toHaveLength(2);
59
+ expect(entities).toContain(entity1);
60
+ expect(entities).toContain(entity2);
61
+ });
62
+ it("should select entities spanning multiple archetypes", () => {
63
+ const store = createStore({ components: {
64
+ position: positionSchema,
65
+ health: healthSchema,
66
+ name: nameSchema,
67
+ velocity: velocitySchema,
68
+ }, resources: {}, archetypes: {} });
69
+ // Create entities in different archetypes
70
+ const positionOnlyArchetype = store.ensureArchetype(["id", "position"]);
71
+ const entity1 = positionOnlyArchetype.insert({
72
+ position: { x: 1, y: 2, z: 3 }
73
+ });
74
+ const entity2 = positionOnlyArchetype.insert({
75
+ position: { x: 4, y: 5, z: 6 }
76
+ });
77
+ const healthOnlyArchetype = store.ensureArchetype(["id", "health"]);
78
+ const entity3 = healthOnlyArchetype.insert({
79
+ health: { current: 100, max: 100 }
80
+ });
81
+ const positionHealthArchetype = store.ensureArchetype(["id", "position", "health"]);
82
+ const entity4 = positionHealthArchetype.insert({
83
+ position: { x: 0, y: 0, z: 0 },
84
+ health: { current: 50, max: 100 }
85
+ });
86
+ const velocityArchetype = store.ensureArchetype(["id", "velocity"]);
87
+ const entity5 = velocityArchetype.insert({
88
+ velocity: { x: 1, y: 0, z: 0 }
89
+ });
90
+ // Select all entities with position component (should span 2 archetypes)
91
+ const positionEntities = store.select(["position"]);
92
+ expect(positionEntities).toHaveLength(3);
93
+ expect(positionEntities).toContain(entity1);
94
+ expect(positionEntities).toContain(entity2);
95
+ expect(positionEntities).toContain(entity4);
96
+ expect(positionEntities).not.toContain(entity3);
97
+ expect(positionEntities).not.toContain(entity5);
98
+ // Select all entities with health component (should span 2 archetypes)
99
+ const healthEntities = store.select(["health"]);
100
+ expect(healthEntities).toHaveLength(2);
101
+ expect(healthEntities).toContain(entity3);
102
+ expect(healthEntities).toContain(entity4);
103
+ expect(healthEntities).not.toContain(entity1);
104
+ expect(healthEntities).not.toContain(entity2);
105
+ expect(healthEntities).not.toContain(entity5);
106
+ // Select entities with both position and health (should be only 1 archetype)
107
+ const bothEntities = store.select(["position", "health"]);
108
+ expect(bothEntities).toHaveLength(1);
109
+ expect(bothEntities).toContain(entity4);
110
+ expect(bothEntities).not.toContain(entity1);
111
+ expect(bothEntities).not.toContain(entity2);
112
+ expect(bothEntities).not.toContain(entity3);
113
+ expect(bothEntities).not.toContain(entity5);
114
+ });
115
+ it("should select entities with exclude option", () => {
116
+ const store = createStore({ components: {
117
+ position: positionSchema,
118
+ health: healthSchema,
119
+ name: nameSchema,
120
+ }, resources: {}, archetypes: {} });
121
+ // Create entities in different archetypes
122
+ const positionOnlyArchetype = store.ensureArchetype(["id", "position"]);
123
+ const entity1 = positionOnlyArchetype.insert({
124
+ position: { x: 1, y: 2, z: 3 }
125
+ });
126
+ const positionHealthArchetype = store.ensureArchetype(["id", "position", "health"]);
127
+ const entity2 = positionHealthArchetype.insert({
128
+ position: { x: 0, y: 0, z: 0 },
129
+ health: { current: 50, max: 100 }
130
+ });
131
+ // Select entities with position but exclude health
132
+ const positionOnlyEntities = store.select(["position"], { exclude: ["health"] });
133
+ expect(positionOnlyEntities).toHaveLength(1);
134
+ expect(positionOnlyEntities).toContain(entity1);
135
+ expect(positionOnlyEntities).not.toContain(entity2);
136
+ });
137
+ it("should return empty array when no entities match", () => {
138
+ const store = createStore({ components: {
139
+ position: positionSchema,
140
+ health: healthSchema,
141
+ }, resources: {}, archetypes: {} });
142
+ // Create entity with only position
143
+ const archetype = store.ensureArchetype(["id", "position"]);
144
+ archetype.insert({ position: { x: 1, y: 2, z: 3 } });
145
+ // Select entities with health (should be empty)
146
+ const entities = store.select(["health"]);
147
+ expect(entities).toHaveLength(0);
148
+ });
149
+ it("should handle complex multi-archetype scenarios", () => {
150
+ const store = createStore({ components: {
151
+ position: positionSchema,
152
+ health: healthSchema,
153
+ name: nameSchema,
154
+ velocity: velocitySchema,
155
+ }, resources: {}, archetypes: {} });
156
+ // Create entities across many different archetypes
157
+ const archetype1 = store.ensureArchetype(["id", "position"]);
158
+ const entity1 = archetype1.insert({ position: { x: 1, y: 2, z: 3 } });
159
+ const entity2 = archetype1.insert({ position: { x: 4, y: 5, z: 6 } });
160
+ const archetype2 = store.ensureArchetype(["id", "health"]);
161
+ const entity3 = archetype2.insert({ health: { current: 100, max: 100 } });
162
+ const archetype3 = store.ensureArchetype(["id", "position", "health"]);
163
+ const entity4 = archetype3.insert({
164
+ position: { x: 0, y: 0, z: 0 },
165
+ health: { current: 50, max: 100 }
166
+ });
167
+ const entity5 = archetype3.insert({
168
+ position: { x: 10, y: 20, z: 30 },
169
+ health: { current: 75, max: 100 }
170
+ });
171
+ const archetype4 = store.ensureArchetype(["id", "name"]);
172
+ const entity6 = archetype4.insert({ name: "Player1" });
173
+ const archetype5 = store.ensureArchetype(["id", "position", "name"]);
174
+ const entity7 = archetype5.insert({
175
+ position: { x: 100, y: 200, z: 300 },
176
+ name: "Player2"
177
+ });
178
+ const archetype6 = store.ensureArchetype(["id", "position", "health", "name"]);
179
+ const entity8 = archetype6.insert({
180
+ position: { x: 500, y: 600, z: 700 },
181
+ health: { current: 25, max: 100 },
182
+ name: "Player3"
183
+ });
184
+ // Test various selection scenarios
185
+ const positionEntities = store.select(["position"]);
186
+ expect(positionEntities).toHaveLength(6);
187
+ expect(positionEntities).toContain(entity1);
188
+ expect(positionEntities).toContain(entity2);
189
+ expect(positionEntities).toContain(entity4);
190
+ expect(positionEntities).toContain(entity5);
191
+ expect(positionEntities).toContain(entity7);
192
+ expect(positionEntities).toContain(entity8);
193
+ const nameEntities = store.select(["name"]);
194
+ expect(nameEntities).toHaveLength(3);
195
+ expect(nameEntities).toContain(entity6);
196
+ expect(nameEntities).toContain(entity7);
197
+ expect(nameEntities).toContain(entity8);
198
+ const positionNameEntities = store.select(["position", "name"]);
199
+ expect(positionNameEntities).toHaveLength(2);
200
+ expect(positionNameEntities).toContain(entity7);
201
+ expect(positionNameEntities).toContain(entity8);
202
+ const allThreeEntities = store.select(["position", "health", "name"]);
203
+ expect(allThreeEntities).toHaveLength(1);
204
+ expect(allThreeEntities).toContain(entity8);
205
+ // Test exclusion
206
+ const positionWithoutHealth = store.select(["position"], { exclude: ["health"] });
207
+ expect(positionWithoutHealth).toHaveLength(3);
208
+ expect(positionWithoutHealth).toContain(entity1);
209
+ expect(positionWithoutHealth).toContain(entity2);
210
+ expect(positionWithoutHealth).toContain(entity7);
211
+ expect(positionWithoutHealth).not.toContain(entity4);
212
+ expect(positionWithoutHealth).not.toContain(entity5);
213
+ expect(positionWithoutHealth).not.toContain(entity8);
214
+ });
215
+ it("should maintain entity order across archetypes", () => {
216
+ const store = createStore({ components: {
217
+ position: positionSchema,
218
+ health: healthSchema,
219
+ }, resources: {}, archetypes: {} });
220
+ // Create entities in different archetypes
221
+ const archetype1 = store.ensureArchetype(["id", "position"]);
222
+ const entity1 = archetype1.insert({ position: { x: 1, y: 2, z: 3 } });
223
+ const entity2 = archetype1.insert({ position: { x: 4, y: 5, z: 6 } });
224
+ const archetype2 = store.ensureArchetype(["id", "health"]);
225
+ const entity3 = archetype2.insert({ health: { current: 100, max: 100 } });
226
+ const archetype3 = store.ensureArchetype(["id", "position", "health"]);
227
+ const entity4 = archetype3.insert({
228
+ position: { x: 0, y: 0, z: 0 },
229
+ health: { current: 50, max: 100 }
230
+ });
231
+ // Select all entities with position
232
+ const entities = store.select(["position"]);
233
+ expect(entities).toHaveLength(3);
234
+ // Verify all expected entities are present (order may vary)
235
+ expect(entities).toContain(entity1);
236
+ expect(entities).toContain(entity2);
237
+ expect(entities).toContain(entity4);
238
+ expect(entities).not.toContain(entity3);
239
+ });
240
+ it("should handle empty store", () => {
241
+ const store = createStore({ components: {
242
+ position: positionSchema,
243
+ health: healthSchema,
244
+ }, resources: {}, archetypes: {} });
245
+ const entities = store.select(["position"]);
246
+ expect(entities).toHaveLength(0);
247
+ });
248
+ it("should work with resources as components", () => {
249
+ const store = createStore({ components: {
250
+ position: positionSchema,
251
+ health: healthSchema,
252
+ }, resources: {
253
+ time: { default: { delta: 0.016, elapsed: 0 } }
254
+ }, archetypes: {} });
255
+ // Create some entities
256
+ const archetype = store.ensureArchetype(["id", "position"]);
257
+ const entity = archetype.insert({ position: { x: 1, y: 2, z: 3 } });
258
+ // Select entities with time component (should include the resource entity)
259
+ const timeEntities = store.select(["time"]);
260
+ expect(timeEntities).toHaveLength(1);
261
+ // The resource entity should be included in time queries
262
+ const timeArchetypes = store.queryArchetypes(["time"]);
263
+ expect(timeArchetypes).toHaveLength(1);
264
+ });
265
+ });
266
+ // Store-specific resource tests
267
+ describe("Resource functionality", () => {
268
+ const timeSchema = {
269
+ type: "object",
270
+ properties: {
271
+ delta: F32.schema,
272
+ elapsed: F32.schema,
273
+ }
274
+ };
275
+ it("should create store with resources", () => {
276
+ const store = createStore({ components: { position: positionSchema }, resources: {
277
+ time: { default: { delta: 0.016, elapsed: 0 } },
278
+ config: { default: { debug: false, volume: 1.0 } }
279
+ }, archetypes: {} });
280
+ expect(store).toBeDefined();
281
+ expect(store.resources).toBeDefined();
282
+ expect(store.resources.time).toBeDefined();
283
+ expect(store.resources.config).toBeDefined();
284
+ });
285
+ it("should initialize resources with default values", () => {
286
+ const defaultTime = { delta: 0.016, elapsed: 0 };
287
+ const defaultConfig = { debug: false, volume: 1.0 };
288
+ const store = createStore({ components: { position: positionSchema }, resources: {
289
+ time: { default: defaultTime },
290
+ config: { default: defaultConfig }
291
+ }, archetypes: {} });
292
+ expect(store.resources.time).toEqual(defaultTime);
293
+ expect(store.resources.config).toEqual(defaultConfig);
294
+ });
295
+ it("should allow reading resource values", () => {
296
+ const store = createStore({ components: { position: positionSchema }, resources: {
297
+ time: { default: { delta: 0.016, elapsed: 0 } },
298
+ config: { default: { debug: false, volume: 1.0 } }
299
+ }, archetypes: {} });
300
+ expect(store.resources.time.delta).toBe(0.016);
301
+ expect(store.resources.time.elapsed).toBe(0);
302
+ expect(store.resources.config.debug).toBe(false);
303
+ expect(store.resources.config.volume).toBe(1.0);
304
+ });
305
+ it("should allow updating resource values", () => {
306
+ const store = createStore({ components: { position: positionSchema }, resources: {
307
+ time: { default: { delta: 0.016, elapsed: 0 } },
308
+ config: { default: { debug: false, volume: 1.0 } }
309
+ }, archetypes: {} });
310
+ // Update time
311
+ store.resources.time = { delta: 0.033, elapsed: 1.5 };
312
+ expect(store.resources.time.delta).toBe(0.033);
313
+ expect(store.resources.time.elapsed).toBe(1.5);
314
+ // Update config
315
+ store.resources.config = { debug: true, volume: 0.5 };
316
+ expect(store.resources.config.debug).toBe(true);
317
+ expect(store.resources.config.volume).toBe(0.5);
318
+ });
319
+ it("should maintain resource values across updates", () => {
320
+ const store = createStore({ components: { position: positionSchema }, resources: {
321
+ time: { default: { delta: 0.016, elapsed: 0 } },
322
+ config: { default: { debug: false, volume: 1.0 } }
323
+ }, archetypes: {} });
324
+ // Update multiple times
325
+ store.resources.time = { delta: 0.033, elapsed: 1.5 };
326
+ store.resources.time = { delta: 0.025, elapsed: 2.0 };
327
+ store.resources.config = { debug: true, volume: 0.5 };
328
+ // Verify final values
329
+ expect(store.resources.time).toEqual({ delta: 0.025, elapsed: 2.0 });
330
+ expect(store.resources.config).toEqual({ debug: true, volume: 0.5 });
331
+ });
332
+ it("should handle nested resource updates", () => {
333
+ const store = createStore({ components: { position: positionSchema }, resources: {
334
+ time: { default: { delta: 0.016, elapsed: 0 } }
335
+ }, archetypes: {} });
336
+ // Update individual properties
337
+ const newTime = { delta: 0.033, elapsed: 1.5 };
338
+ store.resources.time = newTime;
339
+ expect(store.resources.time.delta).toBe(newTime.delta);
340
+ expect(store.resources.time.elapsed).toBe(newTime.elapsed);
341
+ });
342
+ it("should work with empty resource object", () => {
343
+ const store = createStore({ components: { position: positionSchema }, resources: {}, archetypes: {} });
344
+ expect(store.resources).toBeDefined();
345
+ expect(Object.keys(store.resources)).toHaveLength(0);
346
+ });
347
+ it("should handle multiple resources independently", () => {
348
+ const store = createStore({ components: { position: positionSchema }, resources: {
349
+ time: { default: { delta: 0.016, elapsed: 0 } },
350
+ config: { default: { debug: false, volume: 1.0 } },
351
+ score: { default: 0 }
352
+ }, archetypes: {} });
353
+ // Update each resource independently
354
+ store.resources.time = { delta: 0.033, elapsed: 1.5 };
355
+ store.resources.config = { debug: true, volume: 0.5 };
356
+ store.resources.score = 100;
357
+ // Verify all resources maintain their values
358
+ expect(store.resources.time).toEqual({ delta: 0.033, elapsed: 1.5 });
359
+ expect(store.resources.config).toEqual({ debug: true, volume: 0.5 });
360
+ expect(store.resources.score).toBe(100);
361
+ });
362
+ it("should allow querying resources as components", () => {
363
+ const store = createStore({ components: {
364
+ position: positionSchema,
365
+ time: timeSchema
366
+ }, resources: {
367
+ time: { default: { delta: 0.016, elapsed: 0 } }
368
+ }, archetypes: {} });
369
+ // Resources should be queryable as components
370
+ const timeArchetypes = store.queryArchetypes(["time"]);
371
+ expect(timeArchetypes).toHaveLength(1);
372
+ expect(timeArchetypes[0].components.has("time")).toBe(true);
373
+ });
374
+ it("should maintain resource singleton behavior", () => {
375
+ const store = createStore({ components: {
376
+ position: positionSchema,
377
+ time: timeSchema
378
+ }, resources: {
379
+ time: { default: { delta: 0.016, elapsed: 0 } }
380
+ }, archetypes: {} });
381
+ // Resources should be queryable as components
382
+ const timeArchetypes = store.queryArchetypes(["time"]);
383
+ expect(timeArchetypes).toHaveLength(1);
384
+ // Resources should maintain their values
385
+ expect(store.resources.time).toEqual({ delta: 0.016, elapsed: 0 });
386
+ // Update and verify
387
+ store.resources.time = { delta: 0.033, elapsed: 1.5 };
388
+ expect(store.resources.time).toEqual({ delta: 0.033, elapsed: 1.5 });
389
+ });
390
+ it("should handle primitive resource values", () => {
391
+ const store = createStore({ components: { position: positionSchema }, resources: {
392
+ score: { default: 0 },
393
+ name: { default: "Player1" },
394
+ active: { default: true }
395
+ }, archetypes: {} });
396
+ expect(store.resources.score).toBe(0);
397
+ expect(store.resources.name).toBe("Player1");
398
+ expect(store.resources.active).toBe(true);
399
+ // Update primitive values
400
+ store.resources.score = 100;
401
+ store.resources.name = "Player2";
402
+ store.resources.active = false;
403
+ expect(store.resources.score).toBe(100);
404
+ expect(store.resources.name).toBe("Player2");
405
+ expect(store.resources.active).toBe(false);
406
+ });
407
+ it("should handle complex resource objects", () => {
408
+ const complexResource = {
409
+ nested: {
410
+ deep: {
411
+ value: 42,
412
+ array: [1, 2, 3],
413
+ flag: true
414
+ }
415
+ },
416
+ count: 0
417
+ };
418
+ const store = createStore({ components: { position: positionSchema }, resources: { complex: { default: complexResource } }, archetypes: {} });
419
+ expect(store.resources.complex).toEqual(complexResource);
420
+ // Update complex resource
421
+ const updatedComplex = {
422
+ nested: {
423
+ deep: {
424
+ value: 100,
425
+ array: [4, 5, 6],
426
+ flag: false
427
+ }
428
+ },
429
+ count: 10
430
+ };
431
+ store.resources.complex = updatedComplex;
432
+ expect(store.resources.complex).toEqual(updatedComplex);
433
+ });
434
+ it("should handle array resource schemas", () => {
435
+ const store = createStore({ components: { position: positionSchema }, resources: {
436
+ tags: {
437
+ type: "array",
438
+ items: { type: "string" },
439
+ default: ["player", "active"]
440
+ }
441
+ }, archetypes: {} });
442
+ expect(store.resources.tags).toEqual(["player", "active"]);
443
+ // Update array resource
444
+ store.resources.tags = ["enemy", "boss", "elite"];
445
+ expect(store.resources.tags).toEqual(["enemy", "boss", "elite"]);
446
+ });
447
+ });
448
+ describe("Archetype functionality", () => {
449
+ it("should create store with archetypes", () => {
450
+ const store = createStore({ components: {
451
+ name: { type: "string" },
452
+ health: { type: "number" },
453
+ enabled: { type: "boolean" },
454
+ }, resources: {}, archetypes: {
455
+ Player: ["name", "health"],
456
+ } });
457
+ const entity = store.archetypes.Player.insert({
458
+ name: "test",
459
+ health: 100,
460
+ });
461
+ expect(store.archetypes.Player.columns.name.get(entity)).toEqual("test");
462
+ expect(store.archetypes.Player.columns.health.get(entity)).toEqual(100);
463
+ });
464
+ });
465
+ // TimeSchema round-trip test
466
+ describe("TimeSchema functionality", () => {
467
+ it("should store and retrieve Date.now() value correctly", () => {
468
+ const store = createStore({ components: {
469
+ timestamp: Time.schema,
470
+ }, resources: {}, archetypes: {} });
471
+ // Create entity with current timestamp
472
+ const now = Date.now();
473
+ const archetype = store.ensureArchetype(["id", "timestamp"]);
474
+ const entity = archetype.insert({ timestamp: now });
475
+ // Query for the entity
476
+ const entities = store.select(["timestamp"]);
477
+ expect(entities).toHaveLength(1);
478
+ expect(entities[0]).toBe(entity);
479
+ // Read the stored value and verify it matches original
480
+ const storedData = store.read(entity);
481
+ expect(storedData).not.toBeNull();
482
+ expect(storedData.timestamp).toBe(now);
483
+ });
484
+ });
485
+ // Serialization/Deserialization tests
486
+ describe("toData/fromData functionality", () => {
487
+ it("should serialize and deserialize store with resources correctly", () => {
488
+ const store = createStore({ components: {
489
+ position: positionSchema,
490
+ health: healthSchema,
491
+ }, resources: {
492
+ time: { default: { delta: 0.016, elapsed: 0 } },
493
+ config: { default: { debug: false, volume: 1.0 } }
494
+ }, archetypes: {} });
495
+ // Add some entities
496
+ const archetype = store.ensureArchetype(["id", "position", "health"]);
497
+ const entity1 = archetype.insert({
498
+ position: { x: 1, y: 2, z: 3 },
499
+ health: { current: 100, max: 100 }
500
+ });
501
+ const entity2 = archetype.insert({
502
+ position: { x: 4, y: 5, z: 6 },
503
+ health: { current: 50, max: 100 }
504
+ });
505
+ // Update resources
506
+ store.resources.time = { delta: 0.033, elapsed: 1.5 };
507
+ store.resources.config = { debug: true, volume: 0.5 };
508
+ // Serialize the store
509
+ const serializedData = store.toData();
510
+ // Create a new store with the same schemas and restore
511
+ const newStore = createStore({ components: {
512
+ position: positionSchema,
513
+ health: healthSchema,
514
+ }, resources: {
515
+ time: { default: { delta: 0.016, elapsed: 0 } },
516
+ config: { default: { debug: false, volume: 1.0 } }
517
+ }, archetypes: {} });
518
+ newStore.fromData(serializedData);
519
+ // Verify entities are restored
520
+ const restoredEntities = newStore.select(["position", "health"]);
521
+ expect(restoredEntities).toHaveLength(2);
522
+ // Verify entity data is correct
523
+ const restoredData1 = newStore.read(restoredEntities[0]);
524
+ const restoredData2 = newStore.read(restoredEntities[1]);
525
+ expect(restoredData1).toEqual({
526
+ id: restoredEntities[0],
527
+ position: { x: 1, y: 2, z: 3 },
528
+ health: { current: 100, max: 100 }
529
+ });
530
+ expect(restoredData2).toEqual({
531
+ id: restoredEntities[1],
532
+ position: { x: 4, y: 5, z: 6 },
533
+ health: { current: 50, max: 100 }
534
+ });
535
+ // Verify resources are restored
536
+ expect(newStore.resources.time).toEqual({ delta: 0.033, elapsed: 1.5 });
537
+ expect(newStore.resources.config).toEqual({ debug: true, volume: 0.5 });
538
+ });
539
+ it("should create new resources when restoring to store with additional resources", () => {
540
+ // Create original store with only one resource
541
+ const originalStore = createStore({ components: {
542
+ position: positionSchema,
543
+ }, resources: {
544
+ time: { default: { delta: 0.016, elapsed: 0 } }
545
+ }, archetypes: {} });
546
+ // Add some entities and update resource
547
+ const archetype = originalStore.ensureArchetype(["id", "position"]);
548
+ archetype.insert({ position: { x: 1, y: 2, z: 3 } });
549
+ originalStore.resources.time = { delta: 0.033, elapsed: 1.5 };
550
+ // Serialize the store
551
+ const serializedData = originalStore.toData();
552
+ // Create new store with additional resources
553
+ // Note: This is a limitation - when restoring to a store with different archetype structure,
554
+ // entity locations may not be preserved correctly due to archetype ID shifts.
555
+ // In practice, stores should be restored to compatible configurations.
556
+ const newStore = createStore({ components: {
557
+ position: positionSchema,
558
+ }, resources: {
559
+ time: { default: { delta: 0.016, elapsed: 0 } },
560
+ config: { default: { debug: false, volume: 1.0 } },
561
+ score: { default: 0 }
562
+ }, archetypes: {} });
563
+ // Restore from serialized data
564
+ newStore.fromData(serializedData);
565
+ // Verify original resource is restored
566
+ expect(newStore.resources.time).toEqual({ delta: 0.033, elapsed: 1.5 });
567
+ // Verify new resources are created with default values
568
+ expect(newStore.resources.config).toEqual({ debug: false, volume: 1.0 });
569
+ expect(newStore.resources.score).toBe(0);
570
+ // Verify new resources are writable
571
+ newStore.resources.config = { debug: true, volume: 0.5 };
572
+ newStore.resources.score = 100;
573
+ expect(newStore.resources.config).toEqual({ debug: true, volume: 0.5 });
574
+ expect(newStore.resources.score).toBe(100);
575
+ // Note: Due to archetype ID shifts when adding new resources,
576
+ // the original entity may not be preserved correctly.
577
+ // This is a limitation of the current serialization approach.
578
+ // In practice, stores should be restored to compatible configurations.
579
+ });
580
+ it("should handle restoring to store with fewer resources", () => {
581
+ // Create original store with multiple resources
582
+ const originalStore = createStore({ components: {
583
+ position: positionSchema,
584
+ }, resources: {
585
+ time: { default: { delta: 0.016, elapsed: 0 } },
586
+ config: { default: { debug: false, volume: 1.0 } },
587
+ score: { default: 0 }
588
+ }, archetypes: {} });
589
+ // Add entities and update resources
590
+ const archetype = originalStore.ensureArchetype(["id", "position"]);
591
+ const entity = archetype.insert({ position: { x: 1, y: 2, z: 3 } });
592
+ originalStore.resources.time = { delta: 0.033, elapsed: 1.5 };
593
+ originalStore.resources.config = { debug: true, volume: 0.5 };
594
+ originalStore.resources.score = 100;
595
+ // Serialize the store
596
+ const serializedData = originalStore.toData();
597
+ // Create new store with only one resource
598
+ const newStore = createStore({ components: {
599
+ position: positionSchema,
600
+ }, resources: {
601
+ time: { default: { delta: 0.016, elapsed: 0 } }
602
+ }, archetypes: {} });
603
+ // Restore from serialized data
604
+ newStore.fromData(serializedData);
605
+ // Verify the remaining resource is restored
606
+ expect(newStore.resources.time).toEqual({ delta: 0.033, elapsed: 1.5 });
607
+ // Verify only the time resource exists
608
+ expect(newStore.resources).toHaveProperty('time');
609
+ expect(newStore.resources).not.toHaveProperty('config');
610
+ expect(newStore.resources).not.toHaveProperty('score');
611
+ // Verify entity is still there
612
+ const restoredEntities = newStore.select(["position"]);
613
+ expect(restoredEntities).toHaveLength(1);
614
+ const restoredData = newStore.read(restoredEntities[0]);
615
+ expect(restoredData).toEqual({
616
+ id: restoredEntities[0],
617
+ position: { x: 1, y: 2, z: 3 }
618
+ });
619
+ });
620
+ it("should preserve resource getter/setter functionality after restoration", () => {
621
+ const store = createStore({ components: {
622
+ position: positionSchema,
623
+ }, resources: {
624
+ time: { default: { delta: 0.016, elapsed: 0 } }
625
+ }, archetypes: {} });
626
+ // Update resource
627
+ store.resources.time = { delta: 0.033, elapsed: 1.5 };
628
+ // Serialize and deserialize
629
+ const serializedData = store.toData();
630
+ const newStore = createStore({ components: {
631
+ position: positionSchema,
632
+ }, resources: {
633
+ time: { default: { delta: 0.016, elapsed: 0 } }
634
+ }, archetypes: {} });
635
+ newStore.fromData(serializedData);
636
+ // Verify resource is restored
637
+ expect(newStore.resources.time).toEqual({ delta: 0.033, elapsed: 1.5 });
638
+ // Verify getter/setter still works
639
+ newStore.resources.time = { delta: 0.025, elapsed: 2.0 };
640
+ expect(newStore.resources.time).toEqual({ delta: 0.025, elapsed: 2.0 });
641
+ // Verify the underlying archetype is updated
642
+ const timeArchetypes = newStore.queryArchetypes(["time"]);
643
+ expect(timeArchetypes).toHaveLength(1);
644
+ expect(timeArchetypes[0].rowCount).toBe(1);
645
+ expect(timeArchetypes[0].columns.time.get(0)).toEqual({ delta: 0.025, elapsed: 2.0 });
646
+ });
647
+ it("should handle complex resource objects during serialization", () => {
648
+ const complexResource = {
649
+ nested: {
650
+ deep: {
651
+ value: 42,
652
+ array: [1, 2, 3],
653
+ flag: true
654
+ }
655
+ },
656
+ count: 0
657
+ };
658
+ const store = createStore({ components: {
659
+ position: positionSchema,
660
+ }, resources: {
661
+ complex: { default: complexResource }
662
+ }, archetypes: {} });
663
+ // Update complex resource
664
+ const updatedComplex = {
665
+ nested: {
666
+ deep: {
667
+ value: 100,
668
+ array: [4, 5, 6],
669
+ flag: false
670
+ }
671
+ },
672
+ count: 10
673
+ };
674
+ store.resources.complex = updatedComplex;
675
+ // Add some entities
676
+ const archetype = store.ensureArchetype(["id", "position"]);
677
+ archetype.insert({ position: { x: 1, y: 2, z: 3 } });
678
+ // Serialize and deserialize
679
+ const serializedData = store.toData();
680
+ const newStore = createStore({ components: {
681
+ position: positionSchema,
682
+ }, resources: {
683
+ complex: { default: complexResource }
684
+ }, archetypes: {} });
685
+ newStore.fromData(serializedData);
686
+ // Verify complex resource is restored correctly
687
+ expect(newStore.resources.complex).toEqual(updatedComplex);
688
+ // Verify it's still writable
689
+ const newComplex = { ...updatedComplex, count: 20 };
690
+ newStore.resources.complex = newComplex;
691
+ expect(newStore.resources.complex).toEqual(newComplex);
692
+ });
693
+ it("should handle empty resource schemas during restoration", () => {
694
+ // Create store with resources
695
+ const store = createStore({ components: {
696
+ position: positionSchema,
697
+ }, resources: {
698
+ time: { default: { delta: 0.016, elapsed: 0 } }
699
+ }, archetypes: {} });
700
+ // Add entities and update resource
701
+ const archetype = store.ensureArchetype(["id", "position"]);
702
+ archetype.insert({ position: { x: 1, y: 2, z: 3 } });
703
+ store.resources.time = { delta: 0.033, elapsed: 1.5 };
704
+ // Serialize
705
+ const serializedData = store.toData();
706
+ // Create new store with no resources
707
+ const newStore = createStore({ components: {
708
+ position: positionSchema,
709
+ }, resources: {}, archetypes: {} });
710
+ // Restore - should not crash and should preserve entities
711
+ newStore.fromData(serializedData);
712
+ // Verify entities are preserved
713
+ const restoredEntities = newStore.select(["position"]);
714
+ expect(restoredEntities).toHaveLength(1);
715
+ const restoredData = newStore.read(restoredEntities[0]);
716
+ expect(restoredData).toEqual({
717
+ id: restoredEntities[0],
718
+ position: { x: 1, y: 2, z: 3 }
719
+ });
720
+ // Verify no resources exist
721
+ expect(Object.keys(newStore.resources)).toHaveLength(0);
722
+ });
723
+ });
724
+ it("should return the same instance when extended", () => {
725
+ const store = createStore({ components: { position: positionSchema }, resources: {}, archetypes: {} });
726
+ const extended = store.extend({ components: {}, resources: {}, archetypes: {} });
727
+ expect(extended).toBe(store);
728
+ });
729
+ });
730
+ //# sourceMappingURL=create-store.test.js.map