@adobe/data 0.2.1 → 0.2.3

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 (1137) hide show
  1. package/dist/README.md +310 -0
  2. package/dist/assembly/index.d.ts +30 -0
  3. package/dist/assembly/index.js +18 -0
  4. package/dist/assembly/index.wasm +0 -0
  5. package/dist/assembly/index.wasm.map +1 -0
  6. package/dist/assembly-test/assembly.test.d.ts +1 -0
  7. package/dist/assembly-test/assembly.test.js +29 -0
  8. package/dist/assembly-test/assembly.test.js.map +1 -0
  9. package/dist/cache/async-cache.d.ts +15 -0
  10. package/dist/cache/async-cache.js +23 -0
  11. package/dist/cache/async-cache.js.map +1 -0
  12. package/dist/cache/blob-store.d.ts +94 -0
  13. package/dist/cache/blob-store.js +194 -0
  14. package/dist/cache/blob-store.js.map +1 -0
  15. package/dist/cache/blob-store.test.d.ts +1 -0
  16. package/dist/cache/blob-store.test.js +142 -0
  17. package/dist/cache/blob-store.test.js.map +1 -0
  18. package/dist/cache/data-cache.d.ts +38 -0
  19. package/dist/cache/data-cache.js +96 -0
  20. package/dist/cache/data-cache.js.map +1 -0
  21. package/dist/cache/data-cache.test.d.ts +1 -0
  22. package/dist/cache/data-cache.test.js +50 -0
  23. package/dist/cache/data-cache.test.js.map +1 -0
  24. package/dist/cache/expiring-data-cache.d.ts +6 -0
  25. package/dist/cache/expiring-data-cache.js +49 -0
  26. package/dist/cache/expiring-data-cache.js.map +1 -0
  27. package/dist/cache/expiring-data-cache.test.d.ts +1 -0
  28. package/dist/cache/expiring-data-cache.test.js +62 -0
  29. package/dist/cache/expiring-data-cache.test.js.map +1 -0
  30. package/dist/cache/fallback-async-cache.d.ts +7 -0
  31. package/dist/cache/fallback-async-cache.js +22 -0
  32. package/dist/cache/fallback-async-cache.js.map +1 -0
  33. package/dist/cache/functions/async-data-function.d.ts +1 -0
  34. package/dist/cache/functions/async-data-function.js +23 -0
  35. package/dist/cache/functions/async-data-function.js.map +1 -0
  36. package/dist/cache/functions/bind-functions.d.ts +6 -0
  37. package/dist/cache/functions/bind-functions.js +33 -0
  38. package/dist/cache/functions/bind-functions.js.map +1 -0
  39. package/dist/cache/functions/functions.test.d.ts +1 -0
  40. package/dist/cache/functions/functions.test.js +79 -0
  41. package/dist/cache/functions/functions.test.js.map +1 -0
  42. package/dist/cache/functions/get-cached.d.ts +11 -0
  43. package/dist/cache/functions/get-cached.js +49 -0
  44. package/dist/cache/functions/get-cached.js.map +1 -0
  45. package/dist/cache/functions/get-cached.test.d.ts +1 -0
  46. package/dist/cache/functions/get-cached.test.js +96 -0
  47. package/dist/cache/functions/get-cached.test.js.map +1 -0
  48. package/dist/cache/functions/hashing/blob-to-hash.d.ts +4 -0
  49. package/dist/cache/functions/hashing/blob-to-hash.js +44 -0
  50. package/dist/cache/functions/hashing/blob-to-hash.js.map +1 -0
  51. package/dist/cache/functions/hashing/buffer-to-hash.d.ts +4 -0
  52. package/dist/cache/functions/hashing/buffer-to-hash.js +33 -0
  53. package/dist/cache/functions/hashing/buffer-to-hash.js.map +1 -0
  54. package/dist/cache/functions/hashing/hashing.test.d.ts +1 -0
  55. package/dist/cache/functions/hashing/hashing.test.js +95 -0
  56. package/dist/cache/functions/hashing/hashing.test.js.map +1 -0
  57. package/dist/cache/functions/hashing/index.d.ts +4 -0
  58. package/dist/cache/functions/hashing/index.js +26 -0
  59. package/dist/cache/functions/hashing/index.js.map +1 -0
  60. package/dist/cache/functions/hashing/json-to-hash.d.ts +4 -0
  61. package/dist/cache/functions/hashing/json-to-hash.js +29 -0
  62. package/dist/cache/functions/hashing/json-to-hash.js.map +1 -0
  63. package/dist/cache/functions/hashing/string-to-hash.d.ts +4 -0
  64. package/dist/cache/functions/hashing/string-to-hash.js +37 -0
  65. package/dist/cache/functions/hashing/string-to-hash.js.map +1 -0
  66. package/dist/cache/functions/index.d.ts +5 -0
  67. package/dist/cache/functions/index.js +27 -0
  68. package/dist/cache/functions/index.js.map +1 -0
  69. package/dist/cache/functions/memoize.d.ts +12 -0
  70. package/dist/cache/functions/memoize.js +48 -0
  71. package/dist/cache/functions/memoize.js.map +1 -0
  72. package/dist/cache/functions/omit.d.ts +1 -0
  73. package/dist/cache/functions/omit.js +29 -0
  74. package/dist/cache/functions/omit.js.map +1 -0
  75. package/dist/cache/functions/prevent-parallel-execution.d.ts +7 -0
  76. package/dist/cache/functions/prevent-parallel-execution.js +25 -0
  77. package/dist/cache/functions/prevent-parallel-execution.js.map +1 -0
  78. package/dist/cache/functions/types.d.ts +1 -0
  79. package/dist/cache/functions/types.js +23 -0
  80. package/dist/cache/functions/types.js.map +1 -0
  81. package/dist/cache/get-persistent-cache.d.ts +12 -0
  82. package/dist/cache/get-persistent-cache.js +23 -0
  83. package/dist/cache/get-persistent-cache.js.map +1 -0
  84. package/dist/cache/index.d.ts +3 -0
  85. package/dist/cache/index.js +25 -0
  86. package/dist/cache/index.js.map +1 -0
  87. package/dist/cache/managed-array.d.ts +23 -0
  88. package/dist/cache/managed-array.js +160 -0
  89. package/dist/cache/managed-array.js.map +1 -0
  90. package/dist/cache/managed-async-cache.browser.test.d.ts +1 -0
  91. package/dist/cache/managed-async-cache.browser.test.js +50 -0
  92. package/dist/cache/managed-async-cache.browser.test.js.map +1 -0
  93. package/dist/cache/managed-async-cache.d.ts +4 -0
  94. package/dist/cache/managed-async-cache.js +45 -0
  95. package/dist/cache/managed-async-cache.js.map +1 -0
  96. package/dist/cache/memory-allocator.d.ts +23 -0
  97. package/dist/cache/memory-allocator.js +94 -0
  98. package/dist/cache/memory-allocator.js.map +1 -0
  99. package/dist/cache/memory-async-cache.d.ts +6 -0
  100. package/dist/cache/memory-async-cache.js +23 -0
  101. package/dist/cache/memory-async-cache.js.map +1 -0
  102. package/dist/core/data.d.ts +22 -0
  103. package/dist/core/data.js +52 -0
  104. package/dist/core/data.js.map +1 -0
  105. package/dist/core/data.test.d.ts +1 -0
  106. package/dist/core/data.test.js +48 -0
  107. package/dist/core/data.test.js.map +1 -0
  108. package/dist/core/functions/array-equals.d.ts +1 -0
  109. package/dist/core/functions/array-equals.js +34 -0
  110. package/dist/core/functions/array-equals.js.map +1 -0
  111. package/dist/core/functions/deep-merge.d.ts +32 -0
  112. package/dist/core/functions/deep-merge.js +54 -0
  113. package/dist/core/functions/deep-merge.js.map +1 -0
  114. package/dist/core/functions/deep-merge.test.d.ts +1 -0
  115. package/dist/core/functions/deep-merge.test.js +94 -0
  116. package/dist/core/functions/deep-merge.test.js.map +1 -0
  117. package/dist/core/functions/index.d.ts +3 -0
  118. package/dist/core/functions/index.js +25 -0
  119. package/dist/core/functions/index.js.map +1 -0
  120. package/dist/core/functions/is-async-generator.d.ts +1 -0
  121. package/dist/core/functions/is-async-generator.js +25 -0
  122. package/dist/core/functions/is-async-generator.js.map +1 -0
  123. package/dist/core/functions/is-promise.d.ts +1 -0
  124. package/dist/core/functions/is-promise.js +26 -0
  125. package/dist/core/functions/is-promise.js.map +1 -0
  126. package/dist/core/functions/with-validation.d.ts +5 -0
  127. package/dist/core/functions/with-validation.js +38 -0
  128. package/dist/core/functions/with-validation.js.map +1 -0
  129. package/dist/core/functions/with-validation.test.d.ts +1 -0
  130. package/dist/core/functions/with-validation.test.js +96 -0
  131. package/dist/core/functions/with-validation.test.js.map +1 -0
  132. package/dist/core/index.d.ts +3 -0
  133. package/dist/core/index.js +25 -0
  134. package/dist/core/index.js.map +1 -0
  135. package/dist/core/schema/dynamic/dynamic-schema.d.ts +27 -0
  136. package/dist/core/schema/dynamic/dynamic-schema.js +2 -0
  137. package/dist/core/schema/dynamic/dynamic-schema.js.map +1 -0
  138. package/dist/core/schema/dynamic/enumerate-patches.d.ts +9 -0
  139. package/dist/core/schema/dynamic/enumerate-patches.js +50 -0
  140. package/dist/core/schema/dynamic/enumerate-patches.js.map +1 -0
  141. package/dist/core/schema/dynamic/enumerate-patches.test.d.ts +134 -0
  142. package/dist/core/schema/dynamic/enumerate-patches.test.js +209 -0
  143. package/dist/core/schema/dynamic/enumerate-patches.test.js.map +1 -0
  144. package/dist/core/schema/dynamic/get-dynamic-schema.d.ts +5 -0
  145. package/dist/core/schema/dynamic/get-dynamic-schema.js +26 -0
  146. package/dist/core/schema/dynamic/get-dynamic-schema.js.map +1 -0
  147. package/dist/core/schema/dynamic/get-dynamic-schema.test.d.ts +1 -0
  148. package/dist/core/schema/dynamic/get-dynamic-schema.test.js +94 -0
  149. package/dist/core/schema/dynamic/get-dynamic-schema.test.js.map +1 -0
  150. package/dist/core/schema/dynamic/index.d.ts +1 -0
  151. package/dist/core/schema/dynamic/index.js +2 -0
  152. package/dist/core/schema/dynamic/index.js.map +1 -0
  153. package/dist/core/schema/dynamic/schema-path-value-path.d.ts +5 -0
  154. package/dist/core/schema/dynamic/schema-path-value-path.js +12 -0
  155. package/dist/core/schema/dynamic/schema-path-value-path.js.map +1 -0
  156. package/dist/core/schema/dynamic-schema.d.ts +27 -0
  157. package/dist/core/schema/dynamic-schema.js +2 -0
  158. package/dist/core/schema/dynamic-schema.js.map +1 -0
  159. package/dist/core/schema/index.d.ts +4 -0
  160. package/dist/core/schema/index.js +26 -0
  161. package/dist/core/schema/index.js.map +1 -0
  162. package/dist/core/schema/schema.d.ts +122 -0
  163. package/dist/core/schema/schema.js +34 -0
  164. package/dist/core/schema/schema.js.map +1 -0
  165. package/dist/core/schema/schemas.d.ts +45 -0
  166. package/dist/core/schema/schemas.js +39 -0
  167. package/dist/core/schema/schemas.js.map +1 -0
  168. package/dist/core/schema/ui-schema.d.ts +25 -0
  169. package/dist/core/schema/ui-schema.js +2 -0
  170. package/dist/core/schema/ui-schema.js.map +1 -0
  171. package/dist/core/schema/validation/is-valid.d.ts +2 -0
  172. package/dist/core/schema/validation/is-valid.js +14 -0
  173. package/dist/core/schema/validation/is-valid.js.map +1 -0
  174. package/dist/core/schema/validation/is-valid.test.d.ts +1 -0
  175. package/dist/core/schema/validation/is-valid.test.js +40 -0
  176. package/dist/core/schema/validation/is-valid.test.js.map +1 -0
  177. package/dist/core/schema/validation/validate.d.ts +2 -0
  178. package/dist/core/schema/validation/validate.js +38 -0
  179. package/dist/core/schema/validation/validate.js.map +1 -0
  180. package/dist/core/schema/validation/validate.test.d.ts +1 -0
  181. package/dist/core/schema/validation/validate.test.js +106 -0
  182. package/dist/core/schema/validation/validate.test.js.map +1 -0
  183. package/dist/core/schema/validation/with-validation.d.ts +5 -0
  184. package/dist/core/schema/validation/with-validation.js +16 -0
  185. package/dist/core/schema/validation/with-validation.js.map +1 -0
  186. package/dist/core/schema/validation/with-validation.test.d.ts +1 -0
  187. package/dist/core/schema/validation/with-validation.test.js +96 -0
  188. package/dist/core/schema/validation/with-validation.test.js.map +1 -0
  189. package/dist/core/schema.d.ts +86 -0
  190. package/dist/core/schema.js +33 -0
  191. package/dist/core/schema.js.map +1 -0
  192. package/dist/core/schema.test.d.ts +1 -0
  193. package/dist/core/schema.test.js +16 -0
  194. package/dist/core/schema.test.js.map +1 -0
  195. package/dist/core/schemas.d.ts +45 -0
  196. package/dist/core/schemas.js +39 -0
  197. package/dist/core/schemas.js.map +1 -0
  198. package/dist/data.d.ts +11 -0
  199. package/dist/data.js +23 -0
  200. package/dist/data.js.map +1 -0
  201. package/dist/ecs/action-ecs/action-ecs.d.ts +19 -0
  202. package/dist/ecs/action-ecs/action-ecs.js +203 -0
  203. package/dist/ecs/action-ecs/action-ecs.js.map +1 -0
  204. package/dist/ecs/action-ecs/action-ecs.test.d.ts +1 -0
  205. package/dist/ecs/action-ecs/action-ecs.test.js +362 -0
  206. package/dist/ecs/action-ecs/action-ecs.test.js.map +1 -0
  207. package/dist/ecs/action-ecs/action-types.d.ts +106 -0
  208. package/dist/ecs/action-ecs/action-types.js +19 -0
  209. package/dist/ecs/action-ecs/action-types.js.map +1 -0
  210. package/dist/ecs/action-ecs/index.d.ts +2 -0
  211. package/dist/ecs/action-ecs/index.js +23 -0
  212. package/dist/ecs/action-ecs/index.js.map +1 -0
  213. package/dist/ecs/archetype/archetype.d.ts +15 -0
  214. package/dist/ecs/archetype/archetype.js +2 -0
  215. package/dist/ecs/archetype/archetype.js.map +1 -0
  216. package/dist/ecs/archetype/create-archetype.d.ts +8 -0
  217. package/dist/ecs/archetype/create-archetype.js +21 -0
  218. package/dist/ecs/archetype/create-archetype.js.map +1 -0
  219. package/dist/ecs/archetype/create-archetype.test.d.ts +1 -0
  220. package/dist/ecs/archetype/create-archetype.test.js +101 -0
  221. package/dist/ecs/archetype/create-archetype.test.js.map +1 -0
  222. package/dist/ecs/archetype/delete-row.d.ts +8 -0
  223. package/dist/ecs/archetype/delete-row.js +34 -0
  224. package/dist/ecs/archetype/delete-row.js.map +1 -0
  225. package/dist/ecs/archetype/delete-row.test.d.ts +1 -0
  226. package/dist/ecs/archetype/delete-row.test.js +83 -0
  227. package/dist/ecs/archetype/delete-row.test.js.map +1 -0
  228. package/dist/ecs/archetype/index.d.ts +3 -0
  229. package/dist/ecs/archetype/index.js +25 -0
  230. package/dist/ecs/archetype/index.js.map +1 -0
  231. package/dist/ecs/component-schemas.d.ts +4 -0
  232. package/dist/ecs/component-schemas.js +2 -0
  233. package/dist/ecs/component-schemas.js.map +1 -0
  234. package/dist/ecs/core-components.d.ts +3 -0
  235. package/dist/ecs/core-components.js +23 -0
  236. package/dist/ecs/core-components.js.map +1 -0
  237. package/dist/ecs/core-ecs/core-ecs-serialization.test.d.ts +1 -0
  238. package/dist/ecs/core-ecs/core-ecs-serialization.test.js +230 -0
  239. package/dist/ecs/core-ecs/core-ecs-serialization.test.js.map +1 -0
  240. package/dist/ecs/core-ecs/core-ecs-types.d.ts +141 -0
  241. package/dist/ecs/core-ecs/core-ecs-types.js +23 -0
  242. package/dist/ecs/core-ecs/core-ecs-types.js.map +1 -0
  243. package/dist/ecs/core-ecs/core-ecs.d.ts +7 -0
  244. package/dist/ecs/core-ecs/core-ecs.js +492 -0
  245. package/dist/ecs/core-ecs/core-ecs.js.map +1 -0
  246. package/dist/ecs/core-ecs/core-ecs.test.d.ts +1 -0
  247. package/dist/ecs/core-ecs/core-ecs.test.js +425 -0
  248. package/dist/ecs/core-ecs/core-ecs.test.js.map +1 -0
  249. package/dist/ecs/core-ecs/index.d.ts +1 -0
  250. package/dist/ecs/core-ecs/index.js +2 -0
  251. package/dist/ecs/core-ecs/index.js.map +1 -0
  252. package/dist/ecs/database/create-database.d.ts +5 -0
  253. package/dist/ecs/database/create-database.js +145 -0
  254. package/dist/ecs/database/create-database.js.map +1 -0
  255. package/dist/ecs/database/create-database.test.d.ts +1 -0
  256. package/dist/ecs/database/create-database.test.js +578 -0
  257. package/dist/ecs/database/create-database.test.js.map +1 -0
  258. package/dist/ecs/database/database.d.ts +37 -0
  259. package/dist/ecs/database/database.js +2 -0
  260. package/dist/ecs/database/database.js.map +1 -0
  261. package/dist/ecs/database/index.d.ts +3 -0
  262. package/dist/ecs/database/index.js +25 -0
  263. package/dist/ecs/database/index.js.map +1 -0
  264. package/dist/ecs/database/observe-dependent-value.d.ts +7 -0
  265. package/dist/ecs/database/observe-dependent-value.js +61 -0
  266. package/dist/ecs/database/observe-dependent-value.js.map +1 -0
  267. package/dist/ecs/database/observe-dependent-value.test.d.ts +1 -0
  268. package/dist/ecs/database/observe-dependent-value.test.js +153 -0
  269. package/dist/ecs/database/observe-dependent-value.test.js.map +1 -0
  270. package/dist/ecs/database/transactional-store/create-transactional-store.d.ts +5 -0
  271. package/dist/ecs/database/transactional-store/create-transactional-store.js +209 -0
  272. package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -0
  273. package/dist/ecs/database/transactional-store/create-transactional-store.test.d.ts +1 -0
  274. package/dist/ecs/database/transactional-store/create-transactional-store.test.js +186 -0
  275. package/dist/ecs/database/transactional-store/create-transactional-store.test.js.map +1 -0
  276. package/dist/ecs/database/transactional-store/index.d.ts +1 -0
  277. package/dist/ecs/database/transactional-store/index.js +23 -0
  278. package/dist/ecs/database/transactional-store/index.js.map +1 -0
  279. package/dist/ecs/database/transactional-store/transactional-store.d.ts +44 -0
  280. package/dist/ecs/database/transactional-store/transactional-store.js +2 -0
  281. package/dist/ecs/database/transactional-store/transactional-store.js.map +1 -0
  282. package/dist/ecs/ecs/ecs-types.d.ts +132 -0
  283. package/dist/ecs/ecs/ecs-types.js +23 -0
  284. package/dist/ecs/ecs/ecs-types.js.map +1 -0
  285. package/dist/ecs/ecs/ecs-where-functions.d.ts +6 -0
  286. package/dist/ecs/ecs/ecs-where-functions.js +91 -0
  287. package/dist/ecs/ecs/ecs-where-functions.js.map +1 -0
  288. package/dist/ecs/ecs/ecs.d.ts +13 -0
  289. package/dist/ecs/ecs/ecs.js +177 -0
  290. package/dist/ecs/ecs/ecs.js.map +1 -0
  291. package/dist/ecs/ecs/ecs.test.d.ts +1 -0
  292. package/dist/ecs/ecs/ecs.test.js +399 -0
  293. package/dist/ecs/ecs/ecs.test.js.map +1 -0
  294. package/dist/ecs/ecs/index.d.ts +3 -0
  295. package/dist/ecs/ecs/index.js +3 -0
  296. package/dist/ecs/ecs/index.js.map +1 -0
  297. package/dist/ecs/entity-location-table/create-entity-location-table.d.ts +2 -0
  298. package/dist/ecs/entity-location-table/create-entity-location-table.js +84 -0
  299. package/dist/ecs/entity-location-table/create-entity-location-table.js.map +1 -0
  300. package/dist/ecs/entity-location-table/create-entity-location-table.test.d.ts +1 -0
  301. package/dist/ecs/entity-location-table/create-entity-location-table.test.js +138 -0
  302. package/dist/ecs/entity-location-table/create-entity-location-table.test.js.map +1 -0
  303. package/dist/ecs/entity-location-table/entity-location-table.d.ts +8 -0
  304. package/dist/ecs/entity-location-table/entity-location-table.js +2 -0
  305. package/dist/ecs/entity-location-table/entity-location-table.js.map +1 -0
  306. package/dist/ecs/entity-location-table/entity-location.d.ts +20 -0
  307. package/dist/ecs/entity-location-table/entity-location.js +10 -0
  308. package/dist/ecs/entity-location-table/entity-location.js.map +1 -0
  309. package/dist/ecs/entity-location-table/index.d.ts +2 -0
  310. package/dist/ecs/entity-location-table/index.js +24 -0
  311. package/dist/ecs/entity-location-table/index.js.map +1 -0
  312. package/dist/ecs/entity.d.ts +8 -0
  313. package/dist/ecs/entity.js +3 -0
  314. package/dist/ecs/entity.js.map +1 -0
  315. package/dist/ecs/index.d.ts +3 -0
  316. package/dist/ecs/index.js +25 -0
  317. package/dist/ecs/index.js.map +1 -0
  318. package/dist/ecs/store/core/core.d.ts +37 -0
  319. package/dist/ecs/store/core/core.js +2 -0
  320. package/dist/ecs/store/core/core.js.map +1 -0
  321. package/dist/ecs/store/core/create-core.d.ts +8 -0
  322. package/dist/ecs/store/core/create-core.js +114 -0
  323. package/dist/ecs/store/core/create-core.js.map +1 -0
  324. package/dist/ecs/store/core/create-core.test.d.ts +41 -0
  325. package/dist/ecs/store/core/create-core.test.js +355 -0
  326. package/dist/ecs/store/core/create-core.test.js.map +1 -0
  327. package/dist/ecs/store/core/index.d.ts +1 -0
  328. package/dist/ecs/store/core/index.js +23 -0
  329. package/dist/ecs/store/core/index.js.map +1 -0
  330. package/dist/ecs/store/create-store.d.ts +12 -0
  331. package/dist/ecs/store/create-store.js +50 -0
  332. package/dist/ecs/store/create-store.js.map +1 -0
  333. package/dist/ecs/store/create-store.test.d.ts +1 -0
  334. package/dist/ecs/store/create-store.test.js +442 -0
  335. package/dist/ecs/store/create-store.test.js.map +1 -0
  336. package/dist/ecs/store/index.d.ts +2 -0
  337. package/dist/ecs/store/index.js +24 -0
  338. package/dist/ecs/store/index.js.map +1 -0
  339. package/dist/ecs/store/resource-components.d.ts +1 -0
  340. package/dist/ecs/store/resource-components.js +23 -0
  341. package/dist/ecs/store/resource-components.js.map +1 -0
  342. package/dist/ecs/store/store.d.ts +23 -0
  343. package/dist/ecs/store/store.js +2 -0
  344. package/dist/ecs/store/store.js.map +1 -0
  345. package/dist/ecs/transaction-ecs/index.d.ts +2 -0
  346. package/dist/ecs/transaction-ecs/index.js +24 -0
  347. package/dist/ecs/transaction-ecs/index.js.map +1 -0
  348. package/dist/ecs/transaction-ecs/transaction-ecs.d.ts +11 -0
  349. package/dist/ecs/transaction-ecs/transaction-ecs.js +184 -0
  350. package/dist/ecs/transaction-ecs/transaction-ecs.js.map +1 -0
  351. package/dist/ecs/transaction-ecs/transaction-ecs.test.d.ts +1 -0
  352. package/dist/ecs/transaction-ecs/transaction-ecs.test.js +599 -0
  353. package/dist/ecs/transaction-ecs/transaction-ecs.test.js.map +1 -0
  354. package/dist/ecs/transaction-ecs/transaction-types.d.ts +135 -0
  355. package/dist/ecs/transaction-ecs/transaction-types.js +2 -0
  356. package/dist/ecs/transaction-ecs/transaction-types.js.map +1 -0
  357. package/dist/ecs/transaction-ecs/transactions.d.ts +5 -0
  358. package/dist/ecs/transaction-ecs/transactions.js +158 -0
  359. package/dist/ecs/transaction-ecs/transactions.js.map +1 -0
  360. package/dist/equals-shallow.d.ts +1 -0
  361. package/dist/equals-shallow.js +37 -0
  362. package/dist/equals-shallow.js.map +1 -0
  363. package/dist/equals-shallow.test.d.ts +1 -0
  364. package/dist/equals-shallow.test.js +113 -0
  365. package/dist/equals-shallow.test.js.map +1 -0
  366. package/dist/equals.d.ts +11 -0
  367. package/dist/equals.js +73 -0
  368. package/dist/equals.js.map +1 -0
  369. package/dist/equals.test.d.ts +1 -0
  370. package/dist/equals.test.js +150 -0
  371. package/dist/equals.test.js.map +1 -0
  372. package/dist/index.d.ts +5 -0
  373. package/dist/index.js +25 -0
  374. package/dist/index.js.map +1 -0
  375. package/dist/internal/array-buffer-like/copy.d.ts +1 -0
  376. package/dist/internal/array-buffer-like/copy.js +469 -0
  377. package/dist/internal/array-buffer-like/copy.js.map +1 -0
  378. package/dist/internal/array-buffer-like/grow.d.ts +1 -0
  379. package/dist/internal/array-buffer-like/grow.js +53 -0
  380. package/dist/internal/array-buffer-like/grow.js.map +1 -0
  381. package/dist/internal/array-buffer-like/index.d.ts +4 -0
  382. package/dist/internal/array-buffer-like/index.js +26 -0
  383. package/dist/internal/array-buffer-like/index.js.map +1 -0
  384. package/dist/internal/array-buffer-like/is-array-buffer.d.ts +1 -0
  385. package/dist/internal/array-buffer-like/is-array-buffer.js +445 -0
  386. package/dist/internal/array-buffer-like/is-array-buffer.js.map +1 -0
  387. package/dist/internal/array-buffer-like/is-shared-array-buffer.d.ts +1 -0
  388. package/dist/internal/array-buffer-like/is-shared-array-buffer.js +445 -0
  389. package/dist/internal/array-buffer-like/is-shared-array-buffer.js.map +1 -0
  390. package/dist/internal/async-generator/is-async-generator.d.ts +1 -0
  391. package/dist/internal/async-generator/is-async-generator.js +25 -0
  392. package/dist/internal/async-generator/is-async-generator.js.map +1 -0
  393. package/dist/internal/data-view-32/create-data-view-32.d.ts +2 -0
  394. package/dist/internal/data-view-32/create-data-view-32.js +8 -0
  395. package/dist/internal/data-view-32/create-data-view-32.js.map +1 -0
  396. package/dist/internal/data-view-32/data-view-32.d.ts +5 -0
  397. package/dist/internal/data-view-32/data-view-32.js +23 -0
  398. package/dist/internal/data-view-32/data-view-32.js.map +1 -0
  399. package/dist/internal/data-view-32/index.d.ts +2 -0
  400. package/dist/internal/data-view-32/index.js +24 -0
  401. package/dist/internal/data-view-32/index.js.map +1 -0
  402. package/dist/internal/function/memoize-factory.d.ts +1 -0
  403. package/dist/internal/function/memoize-factory.js +12 -0
  404. package/dist/internal/function/memoize-factory.js.map +1 -0
  405. package/dist/internal/object/index.d.ts +1 -0
  406. package/dist/internal/object/index.js +23 -0
  407. package/dist/internal/object/index.js.map +1 -0
  408. package/dist/internal/object/map-entries.d.ts +5 -0
  409. package/dist/internal/object/map-entries.js +29 -0
  410. package/dist/internal/object/map-entries.js.map +1 -0
  411. package/dist/internal/promise/is-promise.d.ts +1 -0
  412. package/dist/internal/promise/is-promise.js +26 -0
  413. package/dist/internal/promise/is-promise.js.map +1 -0
  414. package/dist/internal/typed-array/get-byte-size.d.ts +2 -0
  415. package/dist/internal/typed-array/get-byte-size.js +28 -0
  416. package/dist/internal/typed-array/get-byte-size.js.map +1 -0
  417. package/dist/internal/typed-array/index.d.ts +3 -0
  418. package/dist/internal/typed-array/index.js +25 -0
  419. package/dist/internal/typed-array/index.js.map +1 -0
  420. package/dist/internal/typed-array/typed-array-constructer.d.ts +7 -0
  421. package/dist/internal/typed-array/typed-array-constructer.js +2 -0
  422. package/dist/internal/typed-array/typed-array-constructer.js.map +1 -0
  423. package/dist/internal/typed-array/typed-array.d.ts +1 -0
  424. package/dist/internal/typed-array/typed-array.js +23 -0
  425. package/dist/internal/typed-array/typed-array.js.map +1 -0
  426. package/dist/is-data.d.ts +11 -0
  427. package/dist/is-data.js +2 -0
  428. package/dist/is-data.js.map +1 -0
  429. package/dist/lit/decorators/apply-decorator.d.ts +1 -0
  430. package/dist/lit/decorators/apply-decorator.js +18 -0
  431. package/dist/lit/decorators/apply-decorator.js.map +1 -0
  432. package/dist/lit/decorators/apply-service-decorators.d.ts +1 -0
  433. package/dist/lit/decorators/apply-service-decorators.js +12 -0
  434. package/dist/lit/decorators/apply-service-decorators.js.map +1 -0
  435. package/dist/lit/decorators/index.d.ts +3 -0
  436. package/dist/lit/decorators/index.js +25 -0
  437. package/dist/lit/decorators/index.js.map +1 -0
  438. package/dist/lit/decorators/require-service.d.ts +1 -0
  439. package/dist/lit/decorators/require-service.js +13 -0
  440. package/dist/lit/decorators/require-service.js.map +1 -0
  441. package/dist/lit/elements/index.js +4 -0
  442. package/dist/lit/elements/index.js.map +1 -0
  443. package/dist/lit/elements/service-application.d.ts +8 -0
  444. package/dist/lit/elements/service-application.js +27 -0
  445. package/dist/lit/elements/service-application.js.map +1 -0
  446. package/dist/lit/elements/service-context.d.ts +1 -0
  447. package/dist/lit/elements/service-context.js +3 -0
  448. package/dist/lit/elements/service-context.js.map +1 -0
  449. package/dist/lit/elements/service-element.d.ts +6 -0
  450. package/dist/lit/elements/service-element.js +22 -0
  451. package/dist/lit/elements/service-element.js.map +1 -0
  452. package/dist/lit/hooks/component/component.d.ts +9 -0
  453. package/dist/lit/hooks/component/component.js +2 -0
  454. package/dist/lit/hooks/component/component.js.map +1 -0
  455. package/dist/lit/hooks/component/stack.d.ts +6 -0
  456. package/dist/lit/hooks/component/stack.js +15 -0
  457. package/dist/lit/hooks/component/stack.js.map +1 -0
  458. package/dist/lit/hooks/index.js +14 -0
  459. package/dist/lit/hooks/index.js.map +1 -0
  460. package/dist/lit/hooks/use-connected.d.ts +2 -0
  461. package/dist/lit/hooks/use-connected.js +31 -0
  462. package/dist/lit/hooks/use-connected.js.map +1 -0
  463. package/dist/lit/hooks/use-effect.d.ts +3 -0
  464. package/dist/lit/hooks/use-effect.js +13 -0
  465. package/dist/lit/hooks/use-effect.js.map +1 -0
  466. package/dist/lit/hooks/use-element.d.ts +4 -0
  467. package/dist/lit/hooks/use-element.js +8 -0
  468. package/dist/lit/hooks/use-element.js.map +1 -0
  469. package/dist/lit/hooks/use-memo.d.ts +1 -0
  470. package/dist/lit/hooks/use-memo.js +12 -0
  471. package/dist/lit/hooks/use-memo.js.map +1 -0
  472. package/dist/lit/hooks/use-observable-values.d.ts +5 -0
  473. package/dist/lit/hooks/use-observable-values.js +8 -0
  474. package/dist/lit/hooks/use-observable-values.js.map +1 -0
  475. package/dist/lit/hooks/use-observable.d.ts +2 -0
  476. package/dist/lit/hooks/use-observable.js +12 -0
  477. package/dist/lit/hooks/use-observable.js.map +1 -0
  478. package/dist/lit/hooks/use-ref.d.ts +3 -0
  479. package/dist/lit/hooks/use-ref.js +6 -0
  480. package/dist/lit/hooks/use-ref.js.map +1 -0
  481. package/dist/lit/hooks/use-resize-observer.d.ts +10 -0
  482. package/dist/lit/hooks/use-resize-observer.js +20 -0
  483. package/dist/lit/hooks/use-resize-observer.js.map +1 -0
  484. package/dist/lit/hooks/use-state.d.ts +2 -0
  485. package/dist/lit/hooks/use-state.js +14 -0
  486. package/dist/lit/hooks/use-state.js.map +1 -0
  487. package/dist/lit/hooks/use-window-event.d.ts +1 -0
  488. package/dist/lit/hooks/use-window-event.js +10 -0
  489. package/dist/lit/hooks/use-window-event.js.map +1 -0
  490. package/dist/lit/hooks/with-hooks.d.ts +2 -0
  491. package/dist/lit/hooks/with-hooks.js +15 -0
  492. package/dist/lit/hooks/with-hooks.js.map +1 -0
  493. package/dist/lit/index.js +4 -0
  494. package/dist/lit/index.js.map +1 -0
  495. package/dist/mutable-clone.d.ts +5 -0
  496. package/dist/mutable-clone.js +4 -0
  497. package/dist/mutable-clone.js.map +1 -0
  498. package/dist/normalize.d.ts +1 -0
  499. package/dist/normalize.js +34 -0
  500. package/dist/normalize.js.map +1 -0
  501. package/dist/normalize.test.d.ts +1 -0
  502. package/dist/normalize.test.js +48 -0
  503. package/dist/normalize.test.js.map +1 -0
  504. package/dist/observe/create-observable-event.d.ts +10 -0
  505. package/dist/observe/create-observable-event.js +22 -0
  506. package/dist/observe/create-observable-event.js.map +1 -0
  507. package/dist/observe/create-observable-state.d.ts +7 -0
  508. package/dist/observe/create-observable-state.js +27 -0
  509. package/dist/observe/create-observable-state.js.map +1 -0
  510. package/dist/observe/create-persisted-state.d.ts +11 -0
  511. package/dist/observe/create-persisted-state.js +31 -0
  512. package/dist/observe/create-persisted-state.js.map +1 -0
  513. package/dist/observe/create-persisted-state.test.d.ts +1 -0
  514. package/dist/observe/create-persisted-state.test.js +124 -0
  515. package/dist/observe/create-persisted-state.test.js.map +1 -0
  516. package/dist/observe/create-query-state.d.ts +16 -0
  517. package/dist/observe/create-query-state.js +49 -0
  518. package/dist/observe/create-query-state.js.map +1 -0
  519. package/dist/observe/from-array.d.ts +5 -0
  520. package/dist/observe/from-array.js +30 -0
  521. package/dist/observe/from-array.js.map +1 -0
  522. package/dist/observe/from-constant.d.ts +5 -0
  523. package/dist/observe/from-constant.js +12 -0
  524. package/dist/observe/from-constant.js.map +1 -0
  525. package/dist/observe/from-element-id.d.ts +7 -0
  526. package/dist/observe/from-element-id.js +70 -0
  527. package/dist/observe/from-element-id.js.map +1 -0
  528. package/dist/observe/from-element-properties-and-events.d.ts +2 -0
  529. package/dist/observe/from-element-properties-and-events.js +18 -0
  530. package/dist/observe/from-element-properties-and-events.js.map +1 -0
  531. package/dist/observe/from-element-property.d.ts +11 -0
  532. package/dist/observe/from-element-property.js +60 -0
  533. package/dist/observe/from-element-property.js.map +1 -0
  534. package/dist/observe/from-promise-with-error.d.ts +7 -0
  535. package/dist/observe/from-promise-with-error.js +27 -0
  536. package/dist/observe/from-promise-with-error.js.map +1 -0
  537. package/dist/observe/from-promise.d.ts +6 -0
  538. package/dist/observe/from-promise.js +22 -0
  539. package/dist/observe/from-promise.js.map +1 -0
  540. package/dist/observe/from-properties.d.ts +10 -0
  541. package/dist/observe/from-properties.js +33 -0
  542. package/dist/observe/from-properties.js.map +1 -0
  543. package/dist/observe/index.d.ts +30 -0
  544. package/dist/observe/index.js +52 -0
  545. package/dist/observe/index.js.map +1 -0
  546. package/dist/observe/observe.test.d.ts +7 -0
  547. package/dist/observe/observe.test.js +417 -0
  548. package/dist/observe/observe.test.js.map +1 -0
  549. package/dist/observe/to-promise.d.ts +8 -0
  550. package/dist/observe/to-promise.js +18 -0
  551. package/dist/observe/to-promise.js.map +1 -0
  552. package/dist/observe/to-properties.d.ts +11 -0
  553. package/dist/observe/to-properties.js +9 -0
  554. package/dist/observe/to-properties.js.map +1 -0
  555. package/dist/observe/types.d.ts +17 -0
  556. package/dist/observe/types.js +2 -0
  557. package/dist/observe/types.js.map +1 -0
  558. package/dist/observe/with-async-map.d.ts +6 -0
  559. package/dist/observe/with-async-map.js +12 -0
  560. package/dist/observe/with-async-map.js.map +1 -0
  561. package/dist/observe/with-batch.d.ts +7 -0
  562. package/dist/observe/with-batch.js +43 -0
  563. package/dist/observe/with-batch.js.map +1 -0
  564. package/dist/observe/with-batch.test.d.ts +1 -0
  565. package/dist/observe/with-batch.test.js +111 -0
  566. package/dist/observe/with-batch.test.js.map +1 -0
  567. package/dist/observe/with-cache.d.ts +6 -0
  568. package/dist/observe/with-cache.js +33 -0
  569. package/dist/observe/with-cache.js.map +1 -0
  570. package/dist/observe/with-copy.d.ts +5 -0
  571. package/dist/observe/with-copy.js +10 -0
  572. package/dist/observe/with-copy.js.map +1 -0
  573. package/dist/observe/with-deduplicate-data.d.ts +7 -0
  574. package/dist/observe/with-deduplicate-data.js +18 -0
  575. package/dist/observe/with-deduplicate-data.js.map +1 -0
  576. package/dist/observe/with-deduplicate.d.ts +6 -0
  577. package/dist/observe/with-deduplicate.js +19 -0
  578. package/dist/observe/with-deduplicate.js.map +1 -0
  579. package/dist/observe/with-default.d.ts +6 -0
  580. package/dist/observe/with-default.js +21 -0
  581. package/dist/observe/with-default.js.map +1 -0
  582. package/dist/observe/with-lazy.d.ts +7 -0
  583. package/dist/observe/with-lazy.js +15 -0
  584. package/dist/observe/with-lazy.js.map +1 -0
  585. package/dist/observe/with-lazy.test.d.ts +1 -0
  586. package/dist/observe/with-lazy.test.js +59 -0
  587. package/dist/observe/with-lazy.test.js.map +1 -0
  588. package/dist/observe/with-map-data.d.ts +7 -0
  589. package/dist/observe/with-map-data.js +32 -0
  590. package/dist/observe/with-map-data.js.map +1 -0
  591. package/dist/observe/with-map.d.ts +5 -0
  592. package/dist/observe/with-map.js +11 -0
  593. package/dist/observe/with-map.js.map +1 -0
  594. package/dist/observe/with-optional.d.ts +5 -0
  595. package/dist/observe/with-optional.js +20 -0
  596. package/dist/observe/with-optional.js.map +1 -0
  597. package/dist/observe/with-unwrap.d.ts +5 -0
  598. package/dist/observe/with-unwrap.js +26 -0
  599. package/dist/observe/with-unwrap.js.map +1 -0
  600. package/dist/old-ecs/action-ecs/action-ecs.d.ts +19 -0
  601. package/dist/old-ecs/action-ecs/action-ecs.js +203 -0
  602. package/dist/old-ecs/action-ecs/action-ecs.js.map +1 -0
  603. package/dist/old-ecs/action-ecs/action-ecs.test.d.ts +1 -0
  604. package/dist/old-ecs/action-ecs/action-ecs.test.js +363 -0
  605. package/dist/old-ecs/action-ecs/action-ecs.test.js.map +1 -0
  606. package/dist/old-ecs/action-ecs/action-types.d.ts +106 -0
  607. package/dist/old-ecs/action-ecs/action-types.js +19 -0
  608. package/dist/old-ecs/action-ecs/action-types.js.map +1 -0
  609. package/dist/old-ecs/action-ecs/index.d.ts +3 -0
  610. package/dist/old-ecs/action-ecs/index.js +24 -0
  611. package/dist/old-ecs/action-ecs/index.js.map +1 -0
  612. package/dist/old-ecs/action-ecs/sequential-action.d.ts +18 -0
  613. package/dist/old-ecs/action-ecs/sequential-action.js +45 -0
  614. package/dist/old-ecs/action-ecs/sequential-action.js.map +1 -0
  615. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.d.ts +1 -0
  616. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js +231 -0
  617. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js.map +1 -0
  618. package/dist/old-ecs/core-ecs/core-ecs-types.d.ts +142 -0
  619. package/dist/old-ecs/core-ecs/core-ecs-types.js +23 -0
  620. package/dist/old-ecs/core-ecs/core-ecs-types.js.map +1 -0
  621. package/dist/old-ecs/core-ecs/core-ecs.d.ts +7 -0
  622. package/dist/old-ecs/core-ecs/core-ecs.js +492 -0
  623. package/dist/old-ecs/core-ecs/core-ecs.js.map +1 -0
  624. package/dist/old-ecs/core-ecs/core-ecs.test.d.ts +1 -0
  625. package/dist/old-ecs/core-ecs/core-ecs.test.js +426 -0
  626. package/dist/old-ecs/core-ecs/core-ecs.test.js.map +1 -0
  627. package/dist/old-ecs/core-ecs/index.d.ts +1 -0
  628. package/dist/old-ecs/core-ecs/index.js +2 -0
  629. package/dist/old-ecs/core-ecs/index.js.map +1 -0
  630. package/dist/old-ecs/ecs/ecs-types.d.ts +133 -0
  631. package/dist/old-ecs/ecs/ecs-types.js +23 -0
  632. package/dist/old-ecs/ecs/ecs-types.js.map +1 -0
  633. package/dist/old-ecs/ecs/ecs-where-functions.d.ts +6 -0
  634. package/dist/old-ecs/ecs/ecs-where-functions.js +91 -0
  635. package/dist/old-ecs/ecs/ecs-where-functions.js.map +1 -0
  636. package/dist/old-ecs/ecs/ecs.d.ts +13 -0
  637. package/dist/old-ecs/ecs/ecs.js +177 -0
  638. package/dist/old-ecs/ecs/ecs.js.map +1 -0
  639. package/dist/old-ecs/ecs/ecs.test.d.ts +1 -0
  640. package/dist/old-ecs/ecs/ecs.test.js +399 -0
  641. package/dist/old-ecs/ecs/ecs.test.js.map +1 -0
  642. package/dist/old-ecs/ecs/index.d.ts +2 -0
  643. package/dist/old-ecs/ecs/index.js +24 -0
  644. package/dist/old-ecs/ecs/index.js.map +1 -0
  645. package/dist/old-ecs/entity.d.ts +8 -0
  646. package/dist/old-ecs/entity.js +3 -0
  647. package/dist/old-ecs/entity.js.map +1 -0
  648. package/dist/old-ecs/index.d.ts +4 -0
  649. package/dist/old-ecs/index.js +26 -0
  650. package/dist/old-ecs/index.js.map +1 -0
  651. package/dist/old-ecs/transaction-ecs/index.d.ts +2 -0
  652. package/dist/old-ecs/transaction-ecs/index.js +24 -0
  653. package/dist/old-ecs/transaction-ecs/index.js.map +1 -0
  654. package/dist/old-ecs/transaction-ecs/transaction-ecs.d.ts +11 -0
  655. package/dist/old-ecs/transaction-ecs/transaction-ecs.js +184 -0
  656. package/dist/old-ecs/transaction-ecs/transaction-ecs.js.map +1 -0
  657. package/dist/old-ecs/transaction-ecs/transaction-ecs.test.d.ts +1 -0
  658. package/dist/old-ecs/transaction-ecs/transaction-ecs.test.js +599 -0
  659. package/dist/old-ecs/transaction-ecs/transaction-ecs.test.js.map +1 -0
  660. package/dist/old-ecs/transaction-ecs/transaction-types.d.ts +136 -0
  661. package/dist/old-ecs/transaction-ecs/transaction-types.js +2 -0
  662. package/dist/old-ecs/transaction-ecs/transaction-types.js.map +1 -0
  663. package/dist/old-ecs/transaction-ecs/transactions.d.ts +5 -0
  664. package/dist/old-ecs/transaction-ecs/transactions.js +158 -0
  665. package/dist/old-ecs/transaction-ecs/transactions.js.map +1 -0
  666. package/dist/package.json +129 -0
  667. package/dist/perftest/ecs-perf.d.ts +49 -0
  668. package/dist/perftest/ecs-perf.js +230 -0
  669. package/dist/perftest/ecs-perf.js.map +1 -0
  670. package/dist/perftest/helper-functions.d.ts +1 -0
  671. package/dist/perftest/helper-functions.js +31 -0
  672. package/dist/perftest/helper-functions.js.map +1 -0
  673. package/dist/perftest/horizon-perf.d.ts +22 -0
  674. package/dist/perftest/horizon-perf.js +126 -0
  675. package/dist/perftest/horizon-perf.js.map +1 -0
  676. package/dist/perftest/index.d.ts +1 -0
  677. package/dist/perftest/index.js +35 -0
  678. package/dist/perftest/index.js.map +1 -0
  679. package/dist/perftest/perf-test.d.ts +18 -0
  680. package/dist/perftest/perf-test.js +124 -0
  681. package/dist/perftest/perf-test.js.map +1 -0
  682. package/dist/perftest/vanilla-perf.d.ts +38 -0
  683. package/dist/perftest/vanilla-perf.js +128 -0
  684. package/dist/perftest/vanilla-perf.js.map +1 -0
  685. package/dist/schema/boolean.d.ts +3 -0
  686. package/dist/schema/boolean.js +4 -0
  687. package/dist/schema/boolean.js.map +1 -0
  688. package/dist/schema/dynamic/deep-merge.d.ts +23 -0
  689. package/dist/schema/dynamic/deep-merge.js +45 -0
  690. package/dist/schema/dynamic/deep-merge.js.map +1 -0
  691. package/dist/schema/dynamic/deep-merge.test.d.ts +1 -0
  692. package/dist/schema/dynamic/deep-merge.test.js +94 -0
  693. package/dist/schema/dynamic/deep-merge.test.js.map +1 -0
  694. package/dist/schema/dynamic/enumerate-patches.d.ts +9 -0
  695. package/dist/schema/dynamic/enumerate-patches.js +50 -0
  696. package/dist/schema/dynamic/enumerate-patches.js.map +1 -0
  697. package/dist/schema/dynamic/enumerate-patches.test.d.ts +134 -0
  698. package/dist/schema/dynamic/enumerate-patches.test.js +230 -0
  699. package/dist/schema/dynamic/enumerate-patches.test.js.map +1 -0
  700. package/dist/schema/dynamic/get-dynamic-schema.d.ts +5 -0
  701. package/dist/schema/dynamic/get-dynamic-schema.js +47 -0
  702. package/dist/schema/dynamic/get-dynamic-schema.js.map +1 -0
  703. package/dist/schema/dynamic/get-dynamic-schema.test.d.ts +1 -0
  704. package/dist/schema/dynamic/get-dynamic-schema.test.js +115 -0
  705. package/dist/schema/dynamic/get-dynamic-schema.test.js.map +1 -0
  706. package/dist/schema/dynamic/index.d.ts +1 -0
  707. package/dist/schema/dynamic/index.js +23 -0
  708. package/dist/schema/dynamic/index.js.map +1 -0
  709. package/dist/schema/f32.d.ts +6 -0
  710. package/dist/schema/f32.js +6 -0
  711. package/dist/schema/f32.js.map +1 -0
  712. package/dist/schema/i32.d.ts +7 -0
  713. package/dist/schema/i32.js +7 -0
  714. package/dist/schema/i32.js.map +1 -0
  715. package/dist/schema/index.d.ts +10 -0
  716. package/dist/schema/index.js +30 -0
  717. package/dist/schema/index.js.map +1 -0
  718. package/dist/schema/nullable.d.ts +6 -0
  719. package/dist/schema/nullable.js +6 -0
  720. package/dist/schema/nullable.js.map +1 -0
  721. package/dist/schema/schema.d.ts +122 -0
  722. package/dist/schema/schema.js +33 -0
  723. package/dist/schema/schema.js.map +1 -0
  724. package/dist/schema/time.d.ts +7 -0
  725. package/dist/schema/time.js +3 -0
  726. package/dist/schema/time.js.map +1 -0
  727. package/dist/schema/true.d.ts +6 -0
  728. package/dist/schema/true.js +2 -0
  729. package/dist/schema/true.js.map +1 -0
  730. package/dist/schema/tuple.d.ts +7 -0
  731. package/dist/schema/tuple.js +4 -0
  732. package/dist/schema/tuple.js.map +1 -0
  733. package/dist/schema/u32.d.ts +7 -0
  734. package/dist/schema/u32.js +7 -0
  735. package/dist/schema/u32.js.map +1 -0
  736. package/dist/schema/validation/is-valid.d.ts +2 -0
  737. package/dist/schema/validation/is-valid.js +11 -0
  738. package/dist/schema/validation/is-valid.js.map +1 -0
  739. package/dist/schema/validation/is-valid.test.d.ts +1 -0
  740. package/dist/schema/validation/is-valid.test.js +40 -0
  741. package/dist/schema/validation/is-valid.test.js.map +1 -0
  742. package/dist/schema/validation/validate.d.ts +2 -0
  743. package/dist/schema/validation/validate.js +38 -0
  744. package/dist/schema/validation/validate.js.map +1 -0
  745. package/dist/schema/validation/validate.test.d.ts +1 -0
  746. package/dist/schema/validation/validate.test.js +106 -0
  747. package/dist/schema/validation/validate.test.js.map +1 -0
  748. package/dist/schema/validation/with-validation.d.ts +5 -0
  749. package/dist/schema/validation/with-validation.js +16 -0
  750. package/dist/schema/validation/with-validation.js.map +1 -0
  751. package/dist/schema/validation/with-validation.test.d.ts +1 -0
  752. package/dist/schema/validation/with-validation.test.js +96 -0
  753. package/dist/schema/validation/with-validation.test.js.map +1 -0
  754. package/dist/schema.test.d.ts +1 -0
  755. package/dist/schema.test.js +16 -0
  756. package/dist/schema.test.js.map +1 -0
  757. package/dist/schemas/index.d.ts +1 -0
  758. package/dist/schemas/index.js +23 -0
  759. package/dist/schemas/index.js.map +1 -0
  760. package/dist/schemas/schemas.d.ts +45 -0
  761. package/dist/schemas/schemas.js +39 -0
  762. package/dist/schemas/schemas.js.map +1 -0
  763. package/dist/service/add-observable-actions.d.ts +29 -0
  764. package/dist/service/add-observable-actions.js +108 -0
  765. package/dist/service/add-observable-actions.js.map +1 -0
  766. package/dist/service/index.d.ts +4 -0
  767. package/dist/service/index.js +25 -0
  768. package/dist/service/index.js.map +1 -0
  769. package/dist/service/is-service.d.ts +2 -0
  770. package/dist/service/is-service.js +5 -0
  771. package/dist/service/is-service.js.map +1 -0
  772. package/dist/service/progressive-result.d.ts +96 -0
  773. package/dist/service/progressive-result.js +99 -0
  774. package/dist/service/progressive-result.js.map +1 -0
  775. package/dist/service/sequential-action.d.ts +18 -0
  776. package/dist/service/sequential-action.js +45 -0
  777. package/dist/service/sequential-action.js.map +1 -0
  778. package/dist/service/service.d.ts +4 -0
  779. package/dist/service/service.js +23 -0
  780. package/dist/service/service.js.map +1 -0
  781. package/dist/table/add-row.d.ts +8 -0
  782. package/dist/table/add-row.js +40 -0
  783. package/dist/table/add-row.js.map +1 -0
  784. package/dist/table/create-table.d.ts +3 -0
  785. package/dist/table/create-table.js +33 -0
  786. package/dist/table/create-table.js.map +1 -0
  787. package/dist/table/delete-row.d.ts +9 -0
  788. package/dist/table/delete-row.js +18 -0
  789. package/dist/table/delete-row.js.map +1 -0
  790. package/dist/table/ensure-capacity.d.ts +2 -0
  791. package/dist/table/ensure-capacity.js +15 -0
  792. package/dist/table/ensure-capacity.js.map +1 -0
  793. package/dist/table/get-row-data.d.ts +3 -0
  794. package/dist/table/get-row-data.js +8 -0
  795. package/dist/table/get-row-data.js.map +1 -0
  796. package/dist/table/index.d.ts +8 -0
  797. package/dist/table/index.js +30 -0
  798. package/dist/table/index.js.map +1 -0
  799. package/dist/table/row-index.d.ts +8 -0
  800. package/dist/table/row-index.js +3 -0
  801. package/dist/table/row-index.js.map +1 -0
  802. package/dist/table/table.d.ts +13 -0
  803. package/dist/table/table.js +2 -0
  804. package/dist/table/table.js.map +1 -0
  805. package/dist/table/update-row.d.ts +8 -0
  806. package/dist/table/update-row.js +12 -0
  807. package/dist/table/update-row.js.map +1 -0
  808. package/dist/tsconfig.tsbuildinfo +1 -0
  809. package/dist/typed-buffer/copy-to-gpu-buffer.d.ts +2 -0
  810. package/dist/typed-buffer/copy-to-gpu-buffer.js +16 -0
  811. package/dist/typed-buffer/copy-to-gpu-buffer.js.map +1 -0
  812. package/dist/typed-buffer/create-array-buffer.d.ts +4 -0
  813. package/dist/typed-buffer/create-array-buffer.js +29 -0
  814. package/dist/typed-buffer/create-array-buffer.js.map +1 -0
  815. package/dist/typed-buffer/create-number-buffer.d.ts +8 -0
  816. package/dist/typed-buffer/create-number-buffer.js +75 -0
  817. package/dist/typed-buffer/create-number-buffer.js.map +1 -0
  818. package/dist/typed-buffer/create-struct-buffer.d.ts +10 -0
  819. package/dist/typed-buffer/create-struct-buffer.js +78 -0
  820. package/dist/typed-buffer/create-struct-buffer.js.map +1 -0
  821. package/dist/typed-buffer/create-typed-buffer.d.ts +7 -0
  822. package/dist/typed-buffer/create-typed-buffer.js +17 -0
  823. package/dist/typed-buffer/create-typed-buffer.js.map +1 -0
  824. package/dist/typed-buffer/index.d.ts +5 -0
  825. package/dist/typed-buffer/index.js +27 -0
  826. package/dist/typed-buffer/index.js.map +1 -0
  827. package/dist/typed-buffer/structs/assert-struct.d.ts +8 -0
  828. package/dist/typed-buffer/structs/assert-struct.js +15 -0
  829. package/dist/typed-buffer/structs/assert-struct.js.map +1 -0
  830. package/dist/typed-buffer/structs/create-read-struct.d.ts +3 -0
  831. package/dist/typed-buffer/structs/create-read-struct.js +62 -0
  832. package/dist/typed-buffer/structs/create-read-struct.js.map +1 -0
  833. package/dist/typed-buffer/structs/create-read-struct.test.d.ts +1 -0
  834. package/dist/typed-buffer/structs/create-read-struct.test.js +189 -0
  835. package/dist/typed-buffer/structs/create-read-struct.test.js.map +1 -0
  836. package/dist/typed-buffer/structs/create-write-struct.d.ts +3 -0
  837. package/dist/typed-buffer/structs/create-write-struct.js +58 -0
  838. package/dist/typed-buffer/structs/create-write-struct.js.map +1 -0
  839. package/dist/typed-buffer/structs/get-field-offset.d.ts +2 -0
  840. package/dist/typed-buffer/structs/get-field-offset.js +14 -0
  841. package/dist/typed-buffer/structs/get-field-offset.js.map +1 -0
  842. package/dist/typed-buffer/structs/get-struct-layout.d.ts +5 -0
  843. package/dist/typed-buffer/structs/get-struct-layout.js +198 -0
  844. package/dist/typed-buffer/structs/get-struct-layout.js.map +1 -0
  845. package/dist/typed-buffer/structs/get-struct-layout.test.d.ts +1 -0
  846. package/dist/typed-buffer/structs/get-struct-layout.test.js +133 -0
  847. package/dist/typed-buffer/structs/get-struct-layout.test.js.map +1 -0
  848. package/dist/typed-buffer/structs/index.d.ts +1 -0
  849. package/dist/typed-buffer/structs/index.js +23 -0
  850. package/dist/typed-buffer/structs/index.js.map +1 -0
  851. package/dist/typed-buffer/structs/read-struct.d.ts +2 -0
  852. package/dist/typed-buffer/structs/read-struct.js +2 -0
  853. package/dist/typed-buffer/structs/read-struct.js.map +1 -0
  854. package/dist/typed-buffer/structs/struct-layout.d.ts +21 -0
  855. package/dist/typed-buffer/structs/struct-layout.js +23 -0
  856. package/dist/typed-buffer/structs/struct-layout.js.map +1 -0
  857. package/dist/typed-buffer/structs/write-struct.d.ts +2 -0
  858. package/dist/typed-buffer/structs/write-struct.js +2 -0
  859. package/dist/typed-buffer/structs/write-struct.js.map +1 -0
  860. package/dist/typed-buffer/structs/write-struct.test.d.ts +1 -0
  861. package/dist/typed-buffer/structs/write-struct.test.js +181 -0
  862. package/dist/typed-buffer/structs/write-struct.test.js.map +1 -0
  863. package/dist/typed-buffer/typed-buffer.d.ts +16 -0
  864. package/dist/typed-buffer/typed-buffer.js +2 -0
  865. package/dist/typed-buffer/typed-buffer.js.map +1 -0
  866. package/dist/typed-buffer/typed-buffer.test.d.ts +1 -0
  867. package/dist/typed-buffer/typed-buffer.test.js +223 -0
  868. package/dist/typed-buffer/typed-buffer.test.js.map +1 -0
  869. package/dist/types/assert.d.ts +1 -0
  870. package/dist/types/assert.js +2 -0
  871. package/dist/types/assert.js.map +1 -0
  872. package/dist/types/equal.d.ts +1 -0
  873. package/dist/types/equal.js +2 -0
  874. package/dist/types/equal.js.map +1 -0
  875. package/dist/types/index.d.ts +3 -0
  876. package/dist/types/index.js +25 -0
  877. package/dist/types/index.js.map +1 -0
  878. package/dist/types/types.d.ts +51 -0
  879. package/dist/types/types.js +27 -0
  880. package/dist/types/types.js.map +1 -0
  881. package/package.json +43 -1
  882. package/.cursorrules +0 -28
  883. package/.eslintrc.cjs +0 -48
  884. package/.github/CONTRIBUTING.md +0 -47
  885. package/CODE_OF_CONDUCT.md +0 -79
  886. package/asconfig.json +0 -22
  887. package/assembly/index.ts +0 -85
  888. package/assembly/tsconfig.json +0 -17
  889. package/c/build_run.sh +0 -2
  890. package/c/vector_addition +0 -0
  891. package/c/vector_addition.c +0 -125
  892. package/config/license.js +0 -21
  893. package/docs/perftest.html +0 -28
  894. package/index.html +0 -10
  895. package/scripts/deploy-docs.sh +0 -41
  896. package/src/assembly-test/assembly.test.ts +0 -29
  897. package/src/cache/async-cache.ts +0 -38
  898. package/src/cache/blob-store.test.ts +0 -176
  899. package/src/cache/blob-store.ts +0 -278
  900. package/src/cache/data-cache.test.ts +0 -61
  901. package/src/cache/data-cache.ts +0 -183
  902. package/src/cache/expiring-data-cache.test.ts +0 -81
  903. package/src/cache/expiring-data-cache.ts +0 -61
  904. package/src/cache/fallback-async-cache.ts +0 -49
  905. package/src/cache/functions/async-data-function.ts +0 -25
  906. package/src/cache/functions/functions.test.ts +0 -84
  907. package/src/cache/functions/get-cached.test.ts +0 -113
  908. package/src/cache/functions/get-cached.ts +0 -55
  909. package/src/cache/functions/hashing/blob-to-hash.ts +0 -46
  910. package/src/cache/functions/hashing/buffer-to-hash.ts +0 -33
  911. package/src/cache/functions/hashing/hashing.test.ts +0 -95
  912. package/src/cache/functions/hashing/index.ts +0 -26
  913. package/src/cache/functions/hashing/json-to-hash.ts +0 -29
  914. package/src/cache/functions/hashing/string-to-hash.ts +0 -38
  915. package/src/cache/functions/index.ts +0 -27
  916. package/src/cache/functions/memoize.ts +0 -55
  917. package/src/cache/functions/prevent-parallel-execution.ts +0 -50
  918. package/src/cache/get-persistent-cache.ts +0 -62
  919. package/src/cache/index.ts +0 -31
  920. package/src/cache/managed-array.ts +0 -243
  921. package/src/cache/managed-async-cache.browser.test.ts +0 -53
  922. package/src/cache/managed-async-cache.ts +0 -78
  923. package/src/cache/memory-allocator.ts +0 -176
  924. package/src/cache/memory-async-cache.ts +0 -51
  925. package/src/data.ts +0 -38
  926. package/src/ecs/README.md +0 -21
  927. package/src/ecs/archetype/archetype.ts +0 -39
  928. package/src/ecs/archetype/create-archetype.test.ts +0 -115
  929. package/src/ecs/archetype/create-archetype.ts +0 -52
  930. package/src/ecs/archetype/delete-row.test.ts +0 -110
  931. package/src/ecs/archetype/delete-row.ts +0 -37
  932. package/src/ecs/archetype/index.ts +0 -24
  933. package/src/ecs/component-schemas.ts +0 -24
  934. package/src/ecs/core-components.ts +0 -443
  935. package/src/ecs/database/create-database.test.ts +0 -745
  936. package/src/ecs/database/create-database.ts +0 -205
  937. package/src/ecs/database/database.ts +0 -81
  938. package/src/ecs/database/index.ts +0 -24
  939. package/src/ecs/database/observe-dependent-value.test.ts +0 -198
  940. package/src/ecs/database/observe-dependent-value.ts +0 -78
  941. package/src/ecs/database/transactional-store/create-transactional-store.test.ts +0 -250
  942. package/src/ecs/database/transactional-store/create-transactional-store.ts +0 -281
  943. package/src/ecs/database/transactional-store/index.ts +0 -22
  944. package/src/ecs/database/transactional-store/transactional-store.ts +0 -80
  945. package/src/ecs/entity-location-table/create-entity-location-table.test.ts +0 -170
  946. package/src/ecs/entity-location-table/create-entity-location-table.ts +0 -96
  947. package/src/ecs/entity-location-table/entity-location-table.ts +0 -30
  948. package/src/ecs/entity-location-table/entity-location.ts +0 -34
  949. package/src/ecs/entity-location-table/index.ts +0 -23
  950. package/src/ecs/entity.ts +0 -26
  951. package/src/ecs/index.ts +0 -26
  952. package/src/ecs/store/core/core.ts +0 -71
  953. package/src/ecs/store/core/create-core.test.ts +0 -440
  954. package/src/ecs/store/core/create-core.ts +0 -168
  955. package/src/ecs/store/core/index.ts +0 -22
  956. package/src/ecs/store/create-store.test.ts +0 -562
  957. package/src/ecs/store/create-store.ts +0 -97
  958. package/src/ecs/store/index.ts +0 -23
  959. package/src/ecs/store/resource-components.ts +0 -23
  960. package/src/ecs/store/store.ts +0 -55
  961. package/src/equals-shallow.test.ts +0 -133
  962. package/src/equals-shallow.ts +0 -37
  963. package/src/equals.test.ts +0 -175
  964. package/src/equals.ts +0 -70
  965. package/src/index.ts +0 -27
  966. package/src/internal/array-buffer-like/copy.ts +0 -469
  967. package/src/internal/array-buffer-like/grow.ts +0 -53
  968. package/src/internal/array-buffer-like/index.ts +0 -25
  969. package/src/internal/array-buffer-like/is-array-buffer.ts +0 -445
  970. package/src/internal/array-buffer-like/is-shared-array-buffer.ts +0 -445
  971. package/src/internal/async-generator/is-async-generator.ts +0 -25
  972. package/src/internal/data-view-32/create-data-view-32.ts +0 -30
  973. package/src/internal/data-view-32/data-view-32.ts +0 -447
  974. package/src/internal/data-view-32/index.ts +0 -23
  975. package/src/internal/function/memoize-factory.ts +0 -12
  976. package/src/internal/object/index.ts +0 -23
  977. package/src/internal/object/map-entries.ts +0 -28
  978. package/src/internal/promise/is-promise.ts +0 -28
  979. package/src/internal/typed-array/get-byte-size.ts +0 -50
  980. package/src/internal/typed-array/index.ts +0 -24
  981. package/src/internal/typed-array/typed-array-constructer.ts +0 -32
  982. package/src/internal/typed-array/typed-array.ts +0 -25
  983. package/src/is-data.ts +0 -47
  984. package/src/lit/decorators/apply-decorator.ts +0 -24
  985. package/src/lit/decorators/apply-service-decorators.ts +0 -13
  986. package/src/lit/decorators/index.ts +0 -24
  987. package/src/lit/decorators/require-service.ts +0 -19
  988. package/src/lit/elements/service-application.ts +0 -26
  989. package/src/lit/elements/service-context.ts +0 -3
  990. package/src/lit/elements/service-element.ts +0 -18
  991. package/src/lit/hooks/component/component.ts +0 -10
  992. package/src/lit/hooks/component/stack.ts +0 -17
  993. package/src/lit/hooks/use-connected.ts +0 -39
  994. package/src/lit/hooks/use-effect.ts +0 -17
  995. package/src/lit/hooks/use-element.ts +0 -8
  996. package/src/lit/hooks/use-memo.ts +0 -14
  997. package/src/lit/hooks/use-observable-values.ts +0 -9
  998. package/src/lit/hooks/use-observable.ts +0 -13
  999. package/src/lit/hooks/use-ref.ts +0 -6
  1000. package/src/lit/hooks/use-resize-observer.ts +0 -27
  1001. package/src/lit/hooks/use-state.ts +0 -17
  1002. package/src/lit/hooks/use-window-event.ts +0 -14
  1003. package/src/lit/hooks/with-hooks.ts +0 -20
  1004. package/src/mutable-clone.ts +0 -29
  1005. package/src/normalize.test.ts +0 -48
  1006. package/src/normalize.ts +0 -37
  1007. package/src/observe/create-observable-event.ts +0 -47
  1008. package/src/observe/create-observable-state.ts +0 -51
  1009. package/src/observe/create-persisted-state.test.ts +0 -143
  1010. package/src/observe/create-persisted-state.ts +0 -60
  1011. package/src/observe/create-query-state.ts +0 -70
  1012. package/src/observe/from-array.ts +0 -41
  1013. package/src/observe/from-constant.ts +0 -35
  1014. package/src/observe/from-element-id.ts +0 -75
  1015. package/src/observe/from-element-properties-and-events.ts +0 -47
  1016. package/src/observe/from-element-property.ts +0 -68
  1017. package/src/observe/from-promise-with-error.ts +0 -51
  1018. package/src/observe/from-promise.ts +0 -49
  1019. package/src/observe/from-properties.ts +0 -67
  1020. package/src/observe/index.ts +0 -52
  1021. package/src/observe/observe.test.ts +0 -467
  1022. package/src/observe/to-promise.ts +0 -40
  1023. package/src/observe/to-properties.ts +0 -41
  1024. package/src/observe/types.ts +0 -40
  1025. package/src/observe/with-async-map.ts +0 -37
  1026. package/src/observe/with-batch.test.ts +0 -141
  1027. package/src/observe/with-batch.ts +0 -67
  1028. package/src/observe/with-cache.ts +0 -58
  1029. package/src/observe/with-copy.ts +0 -32
  1030. package/src/observe/with-deduplicate-data.ts +0 -43
  1031. package/src/observe/with-deduplicate.ts +0 -41
  1032. package/src/observe/with-default.ts +0 -48
  1033. package/src/observe/with-lazy.test.ts +0 -68
  1034. package/src/observe/with-lazy.ts +0 -38
  1035. package/src/observe/with-map-data.ts +0 -38
  1036. package/src/observe/with-map.ts +0 -36
  1037. package/src/observe/with-optional.ts +0 -47
  1038. package/src/observe/with-unwrap.ts +0 -54
  1039. package/src/old-ecs/action-ecs/action-ecs.test.ts +0 -420
  1040. package/src/old-ecs/action-ecs/action-ecs.ts +0 -274
  1041. package/src/old-ecs/action-ecs/action-types.ts +0 -178
  1042. package/src/old-ecs/action-ecs/index.ts +0 -29
  1043. package/src/old-ecs/action-ecs/sequential-action.ts +0 -60
  1044. package/src/old-ecs/core-ecs/core-ecs-serialization.test.ts +0 -244
  1045. package/src/old-ecs/core-ecs/core-ecs-types.ts +0 -183
  1046. package/src/old-ecs/core-ecs/core-ecs.test.ts +0 -474
  1047. package/src/old-ecs/core-ecs/core-ecs.ts +0 -640
  1048. package/src/old-ecs/core-ecs/index.ts +0 -30
  1049. package/src/old-ecs/ecs/ecs-types.ts +0 -189
  1050. package/src/old-ecs/ecs/ecs-where-functions.ts +0 -95
  1051. package/src/old-ecs/ecs/ecs.test.ts +0 -461
  1052. package/src/old-ecs/ecs/ecs.ts +0 -279
  1053. package/src/old-ecs/ecs/index.ts +0 -23
  1054. package/src/old-ecs/entity.ts +0 -26
  1055. package/src/old-ecs/index.ts +0 -26
  1056. package/src/old-ecs/transaction-ecs/index.ts +0 -23
  1057. package/src/old-ecs/transaction-ecs/transaction-ecs.test.ts +0 -725
  1058. package/src/old-ecs/transaction-ecs/transaction-ecs.ts +0 -283
  1059. package/src/old-ecs/transaction-ecs/transaction-types.ts +0 -248
  1060. package/src/old-ecs/transaction-ecs/transactions.ts +0 -243
  1061. package/src/perftest/ecs-perf.ts +0 -255
  1062. package/src/perftest/helper-functions.ts +0 -31
  1063. package/src/perftest/horizon-perf.ts +0 -132
  1064. package/src/perftest/index.ts +0 -37
  1065. package/src/perftest/perf-test.ts +0 -193
  1066. package/src/perftest/perf.md +0 -90
  1067. package/src/perftest/vanilla-perf.ts +0 -136
  1068. package/src/schema/boolean.ts +0 -5
  1069. package/src/schema/dynamic/deep-merge.test.ts +0 -100
  1070. package/src/schema/dynamic/deep-merge.ts +0 -67
  1071. package/src/schema/dynamic/enumerate-patches.test.ts +0 -235
  1072. package/src/schema/dynamic/enumerate-patches.ts +0 -90
  1073. package/src/schema/dynamic/get-dynamic-schema.test.ts +0 -129
  1074. package/src/schema/dynamic/get-dynamic-schema.ts +0 -48
  1075. package/src/schema/dynamic/index.ts +0 -22
  1076. package/src/schema/f32.ts +0 -30
  1077. package/src/schema/i32.ts +0 -31
  1078. package/src/schema/index.ts +0 -32
  1079. package/src/schema/nullable.ts +0 -32
  1080. package/src/schema/schema.ts +0 -229
  1081. package/src/schema/time.ts +0 -5
  1082. package/src/schema/true.ts +0 -26
  1083. package/src/schema/tuple.ts +0 -5
  1084. package/src/schema/u32.ts +0 -31
  1085. package/src/schema/validation/is-valid.test.ts +0 -43
  1086. package/src/schema/validation/is-valid.ts +0 -32
  1087. package/src/schema/validation/validate.test.ts +0 -120
  1088. package/src/schema/validation/validate.ts +0 -41
  1089. package/src/schema/validation/with-validation.test.ts +0 -112
  1090. package/src/schema/validation/with-validation.ts +0 -42
  1091. package/src/schema.test.ts +0 -55
  1092. package/src/service/add-observable-actions.ts +0 -207
  1093. package/src/service/index.ts +0 -26
  1094. package/src/service/is-service.ts +0 -7
  1095. package/src/service/progressive-result.ts +0 -141
  1096. package/src/service/service.ts +0 -27
  1097. package/src/table/add-row.ts +0 -42
  1098. package/src/table/create-table.ts +0 -36
  1099. package/src/table/delete-row.ts +0 -42
  1100. package/src/table/ensure-capacity.ts +0 -37
  1101. package/src/table/get-row-data.ts +0 -31
  1102. package/src/table/index.ts +0 -29
  1103. package/src/table/row-index.ts +0 -26
  1104. package/src/table/table.ts +0 -32
  1105. package/src/table/update-row.ts +0 -35
  1106. package/src/tsconfig.json +0 -6
  1107. package/src/typed-buffer/copy-to-gpu-buffer.ts +0 -23
  1108. package/src/typed-buffer/create-array-buffer.ts +0 -55
  1109. package/src/typed-buffer/create-number-buffer.ts +0 -90
  1110. package/src/typed-buffer/create-struct-buffer.ts +0 -93
  1111. package/src/typed-buffer/create-typed-buffer.ts +0 -49
  1112. package/src/typed-buffer/index.ts +0 -26
  1113. package/src/typed-buffer/structs/assert-struct.ts +0 -37
  1114. package/src/typed-buffer/structs/create-read-struct.test.ts +0 -202
  1115. package/src/typed-buffer/structs/create-read-struct.ts +0 -77
  1116. package/src/typed-buffer/structs/create-write-struct.ts +0 -73
  1117. package/src/typed-buffer/structs/get-field-offset.ts +0 -36
  1118. package/src/typed-buffer/structs/get-struct-layout.test.ts +0 -146
  1119. package/src/typed-buffer/structs/get-struct-layout.ts +0 -222
  1120. package/src/typed-buffer/structs/index.ts +0 -22
  1121. package/src/typed-buffer/structs/read-struct.ts +0 -25
  1122. package/src/typed-buffer/structs/struct-layout.ts +0 -465
  1123. package/src/typed-buffer/structs/write-struct.test.ts +0 -195
  1124. package/src/typed-buffer/structs/write-struct.ts +0 -25
  1125. package/src/typed-buffer/typed-buffer.test.ts +0 -253
  1126. package/src/typed-buffer/typed-buffer.ts +0 -41
  1127. package/src/types/assert.ts +0 -22
  1128. package/src/types/equal.ts +0 -24
  1129. package/src/types/index.ts +0 -25
  1130. package/src/types/types.ts +0 -166
  1131. package/tsconfig-base.json +0 -25
  1132. package/tsconfig.json +0 -8
  1133. package/typedoc.json +0 -22
  1134. package/vite.config.js +0 -16
  1135. /package/{src/lit/elements/index.ts → dist/lit/elements/index.d.ts} +0 -0
  1136. /package/{src/lit/hooks/index.ts → dist/lit/hooks/index.d.ts} +0 -0
  1137. /package/{src/lit/index.ts → dist/lit/index.d.ts} +0 -0
@@ -0,0 +1,141 @@
1
+ import { Data, FromSchema, Schema } from "../../core/index.js";
2
+ import { DeepReadonly, Simplify } from "../../types/types.js";
3
+ import { NativeArray } from "../../cache/managed-array.js";
4
+ /**
5
+ * An Entity represents a single object within the ECS.
6
+ * It is a unique positive integer identifier that can be used to access the components of the entity.
7
+ */
8
+ export type Entity = number;
9
+ /**
10
+ * Represents all of an entities values for the given ECS components.
11
+ * This will always contain an id property which is the entity id.
12
+ * All other components are optional.
13
+ */
14
+ export type EntityValues<C> = {
15
+ id: number;
16
+ } & {
17
+ [K in keyof C]?: C[K] | undefined;
18
+ };
19
+ /**
20
+ * Represents the values you can use when creating an entity.
21
+ * You cannot provide an id as this is always generated by the ECS.
22
+ */
23
+ export type EntityCreateValues<A> = Omit<A, "id">;
24
+ /**
25
+ * Represents the values you can use when updating an entity.
26
+ * Providing a value of undefined for a component will delete it.
27
+ */
28
+ export type EntityUpdateValues<C> = Omit<{
29
+ [K in keyof C]?: C[K] | undefined;
30
+ }, "id">;
31
+ /**
32
+ * The JSON data type that is used to serialize and deserialize ECS data.
33
+ */
34
+ export type ECSJSON = {
35
+ ecs: true;
36
+ version: number;
37
+ components: Record<string, Schema>;
38
+ entities: readonly number[];
39
+ tables: {
40
+ rows: number;
41
+ columns: Record<string, Data>;
42
+ }[];
43
+ };
44
+ export type CoreComponents = {
45
+ id: number;
46
+ };
47
+ export type CoreResources = {
48
+ [K: string]: Data;
49
+ };
50
+ export interface CoreECS<C extends CoreComponents = CoreComponents, R extends CoreResources = {}> extends CoreECSRead<C, R>, CoreECSWrite<C, R> {
51
+ /**
52
+ * Creates new components within this ecs and returns the same ecs with the new expanded type information.
53
+ */
54
+ withComponents<S extends {
55
+ readonly [K: string]: DeepReadonly<Schema>;
56
+ }, T = {
57
+ -readonly [K in keyof S]: FromSchema<S[K]>;
58
+ }>(components: S): CoreECS<Simplify<C & T>, R>;
59
+ withResources<T extends {
60
+ readonly [K: string]: Data;
61
+ }>(resources: T): CoreECS<C, Simplify<R & T>>;
62
+ }
63
+ export interface CoreECSRead<C extends CoreComponents = CoreComponents, R extends CoreResources = {}> {
64
+ components: {
65
+ readonly [K in keyof C]: Schema;
66
+ };
67
+ resources: R;
68
+ /**
69
+ * Returns the component value for the given entity.
70
+ * @param component the component to read.
71
+ * @param id if not provided, uses the component own entity id as with resources.
72
+ */
73
+ getComponentValue<Name extends keyof C>(id: Entity, component: Name): C[Name] | undefined;
74
+ getArchetype<Components extends (keyof C)[]>(...components: Components): CoreArchetype<{
75
+ [K in Components[number]]: C[K];
76
+ }>;
77
+ getEntityValues(id: Entity): EntityValues<C> | undefined;
78
+ getEntityArchetype(id: Entity): CoreArchetype;
79
+ countEntities<T extends CoreComponents>(archetype: CoreArchetype<T>): number;
80
+ selectEntities<T extends CoreComponents>(archetype: CoreArchetype<T>): Entity[];
81
+ toJSON(): ECSJSON;
82
+ }
83
+ export interface CoreECSWrite<C extends CoreComponents = CoreComponents, R extends CoreResources = {}> {
84
+ createEntity(): Entity;
85
+ createEntity<T extends CoreComponents>(archetype: CoreArchetype<T>, values: Omit<T, "id">): Entity;
86
+ createBatch<T extends CoreComponents>(archetype: CoreArchetype<T>, count: number): Table<T>;
87
+ /**
88
+ * Sets the value of a component for the given entity.
89
+ * @param component the component to write.
90
+ * @param value the value of the component or undefined to delete the component.
91
+ * @param id if not provided, uses the components own entity id as with resources.
92
+ */
93
+ setComponentValue<Name extends keyof C>(id: Entity, component: Name, value: C[Name] | undefined): void;
94
+ /**
95
+ * Gets the tables for the given archetype in read or write mode.
96
+ * @param exact if true, only returns the single table that exactly matches the archetype.
97
+ */
98
+ getTables<T extends CoreComponents>(archetype: CoreArchetype<T>, options: {
99
+ mode: "read" | "write";
100
+ exact?: boolean;
101
+ }): Table<C>[];
102
+ updateEntity(id: Entity, values: EntityUpdateValues<C>): void;
103
+ deleteEntity(id: Entity): void;
104
+ }
105
+ export interface CoreArchetype<C = {
106
+ [K: string]: unknown;
107
+ }> {
108
+ readonly components: (keyof C)[];
109
+ }
110
+ /**
111
+ * A Table represents a collection of entities with the same exact archetype.
112
+ */
113
+ export interface Table<C = {
114
+ [K: string]: unknown;
115
+ }> {
116
+ readonly rows: number;
117
+ readonly columns: {
118
+ [K in keyof C]: Column<C[K]>;
119
+ };
120
+ }
121
+ /**
122
+ * A column represents an array of values for a single component.
123
+ * Each row in the column corresponds to a single entity within the containing Table.
124
+ * The ECS stores data as a structure of arrays.
125
+ */
126
+ export interface Column<T> {
127
+ get(row: number): T;
128
+ set(row: number, value: T): void;
129
+ /**
130
+ * Allows unsafe direct access to the underlying native array if present.
131
+ * Not present for constant columns.
132
+ * For numeric tuples, the array will be of the form [a0, a1, a2, b0, b1, b2, ...]
133
+ */
134
+ native?: NativeArray<T extends number[] ? number : T>;
135
+ /**
136
+ * Is every value in this column the same?
137
+ */
138
+ constant: boolean;
139
+ toJSON(length: number): Data;
140
+ fromJSON(data: Data, length: number): void;
141
+ }
@@ -0,0 +1,23 @@
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
+ export {};
23
+ //# sourceMappingURL=core-ecs-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-ecs-types.js","sourceRoot":"","sources":["../../../src/ecs/core-ecs/core-ecs-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW"}
@@ -0,0 +1,7 @@
1
+ import { MemoryAllocator } from "../../cache/memory-allocator.js";
2
+ import { CoreECS, CoreComponents, ECSJSON, CoreResources } from "./core-ecs-types.js";
3
+ export declare const DELETE: unknown;
4
+ export declare function createCoreECS<C extends CoreComponents, R extends CoreResources>(options?: {
5
+ data?: ECSJSON;
6
+ allocator?: MemoryAllocator;
7
+ }): CoreECS<CoreComponents, {}>;
@@ -0,0 +1,492 @@
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 { equals, normalize, } from "../../core/index.js";
23
+ import { createManagedArray, } from "../../cache/managed-array.js";
24
+ import { createSimpleMemoryAllocator, } from "../../cache/memory-allocator.js";
25
+ import { Uint32Schema } from "../../core/schema/schemas.js";
26
+ // This is a sentinel value used to indicate a component should be deleted.
27
+ export const DELETE = "_@_DELETE_@_";
28
+ export function createCoreECS(options = {}) {
29
+ const ELEMENTS_PER_RECORD = 2;
30
+ const DELETED_ARCHETYPE = 0xff;
31
+ const componentSchemas = {
32
+ id: Uint32Schema,
33
+ };
34
+ const getSchema = (name) => {
35
+ const schema = componentSchemas[name];
36
+ if (!schema) {
37
+ throw new Error(`Component "${String(name)}" not found`);
38
+ }
39
+ return schema;
40
+ };
41
+ const resources = {};
42
+ let recordCount = 0;
43
+ let recordCapacity = 1024;
44
+ let firstDeletedId = 0;
45
+ let records = new Uint32Array(recordCapacity * ELEMENTS_PER_RECORD);
46
+ const { allocator = createSimpleMemoryAllocator() } = options;
47
+ // What if we remove internal components?
48
+ // id, name, component, schema?
49
+ // We DO need id as a component since it gets it's own column.
50
+ // But do we need to track components internally?
51
+ // [x] This is safely derived as needed.
52
+ const archetypeLookup = {};
53
+ // [ ] the order of these is relevant for serialization currently.
54
+ const archetables = [];
55
+ // [x] This is created as archetypes are requested.
56
+ const componentsToArchetypes = new Map();
57
+ /**
58
+ * Returns the component with the least number of archetypes containing it.
59
+ */
60
+ const getMostExclusiveComponent = (components) => {
61
+ if (components.length === 0) {
62
+ throw new Error("Cannot call with zero components");
63
+ }
64
+ let mostExclusive = components[0];
65
+ let size = Number.POSITIVE_INFINITY;
66
+ for (const component of components) {
67
+ const archetypes = getComponentsToArchetypes(component);
68
+ if (archetypes.size < size) {
69
+ size = archetypes.size;
70
+ mostExclusive = component;
71
+ }
72
+ }
73
+ return mostExclusive;
74
+ };
75
+ const getAdjacentArchetype = (archetable, component, addOrRemove) => {
76
+ let newTable = archetable[addOrRemove].get(component);
77
+ if (!newTable) {
78
+ const add = addOrRemove === "addComponent";
79
+ const newComponents = (add
80
+ ? [...archetable.components, component].sort()
81
+ : archetable.components.filter((c) => c !== component));
82
+ newTable = getArchetype(...newComponents);
83
+ // add the edge lookup to the new table
84
+ archetable[addOrRemove].set(component, newTable);
85
+ newTable[addOrRemove === "addComponent" ? "removeComponent" : "addComponent"].set(component, archetable);
86
+ }
87
+ return newTable;
88
+ };
89
+ const getComponentValue = (id, component) => {
90
+ const index = id * ELEMENTS_PER_RECORD;
91
+ const archetable = archetables[records[index + 0]];
92
+ const row = records[index + 1];
93
+ const array = archetable.columns[component];
94
+ if (array === undefined) {
95
+ return undefined;
96
+ }
97
+ return array.get(row);
98
+ };
99
+ const setComponentValue = (id, component, value) => {
100
+ if (value === undefined) {
101
+ value = DELETE;
102
+ }
103
+ const index = id * ELEMENTS_PER_RECORD;
104
+ const archetable = archetables[records[index + 0]];
105
+ const currentRow = records[index + 1];
106
+ const array = archetable.columns[component];
107
+ if (value !== DELETE) {
108
+ if (array === undefined) {
109
+ // add component
110
+ const newTable = getAdjacentArchetype(archetable, component, "addComponent");
111
+ const newRow = newTable.createRow();
112
+ // manually move values over
113
+ for (const name of archetable.components) {
114
+ const targetColumn = archetable.columns[name];
115
+ if (targetColumn !== undefined) {
116
+ newTable.columns[name].set(newRow, targetColumn.get(currentRow));
117
+ }
118
+ }
119
+ // set the new component value
120
+ newTable.columns[component].set(newRow, value);
121
+ archetable.deleteRow(currentRow);
122
+ records[index + 0] = newTable.id;
123
+ records[index + 1] = newRow;
124
+ }
125
+ else {
126
+ // updating value
127
+ array.set(currentRow, value);
128
+ }
129
+ }
130
+ else if (array !== undefined) {
131
+ // remove component
132
+ const newTable = getAdjacentArchetype(archetable, component, "removeComponent");
133
+ const newRow = newTable.createRow();
134
+ // manually move values over, except for the removed one
135
+ for (const name of archetable.components) {
136
+ if (name !== component) {
137
+ newTable.columns[name].set(newRow, archetable.columns[name].get(currentRow));
138
+ }
139
+ }
140
+ archetable.deleteRow(currentRow);
141
+ records[index + 0] = newTable.id;
142
+ records[index + 1] = newRow;
143
+ }
144
+ };
145
+ const getArchetype = (...components) => {
146
+ components.sort();
147
+ const ids = new Set(components);
148
+ if (!ids.has("id")) {
149
+ ids.add("id");
150
+ components.unshift("id");
151
+ }
152
+ const key = components.join(",");
153
+ let archetype = archetypeLookup[key];
154
+ if (!archetype) {
155
+ const columns = Object.fromEntries(components.map((name) => [
156
+ name,
157
+ createManagedArray(getSchema(name), allocator),
158
+ ]));
159
+ const id = archetables.length;
160
+ archetype =
161
+ archetables[id] =
162
+ archetypeLookup[key] =
163
+ {
164
+ components,
165
+ id,
166
+ rows: 0,
167
+ columns,
168
+ addComponent: new Map(),
169
+ removeComponent: new Map(),
170
+ readRow: (row) => {
171
+ const values = {};
172
+ for (const name of components) {
173
+ values[name] = columns[name].get(row);
174
+ }
175
+ return values;
176
+ },
177
+ createRow: (values) => {
178
+ const newRow = archetype.rows++;
179
+ for (const name of components) {
180
+ const column = columns[name];
181
+ column.ensureCapacity(archetype.rows);
182
+ if (values) {
183
+ const value = values[name];
184
+ if (value === undefined) {
185
+ throw new Error(`Missing value for column "${String(name)}"`);
186
+ }
187
+ column.set(newRow, value);
188
+ }
189
+ }
190
+ return newRow;
191
+ },
192
+ deleteRow: (row) => {
193
+ archetype.rows--;
194
+ // the main ecs records row pointer is updated to the new row
195
+ if (archetype.rows > 0) {
196
+ const movedRowId = columns.id.native[archetype.rows];
197
+ const movedRowIndex = movedRowId * ELEMENTS_PER_RECORD;
198
+ records[movedRowIndex + 1] = row;
199
+ }
200
+ // then we remove each columns row, moving the last to replace it.
201
+ for (const name of components) {
202
+ const column = columns[name];
203
+ if (column !== undefined) {
204
+ if (archetype.rows > 0) {
205
+ // the last row (at size) is moved to replace the deleted row
206
+ column.move(archetype.rows, row);
207
+ }
208
+ }
209
+ }
210
+ },
211
+ };
212
+ for (const name of components) {
213
+ getComponentsToArchetypes(name).add(archetype);
214
+ }
215
+ }
216
+ return archetype;
217
+ };
218
+ const getEntityArchetype = (id) => {
219
+ return archetables[records[id * ELEMENTS_PER_RECORD]];
220
+ };
221
+ const getComponentsToArchetypes = (name) => {
222
+ let set = componentsToArchetypes.get(name);
223
+ if (!set) {
224
+ componentsToArchetypes.set(name, (set = new Set()));
225
+ }
226
+ return set;
227
+ };
228
+ const withComponents = (components) => {
229
+ Object.entries(components).forEach(([name, newSchema]) => {
230
+ const oldSchema = componentSchemas[name];
231
+ // it's OK for a component to be defined more than once
232
+ // so long as the schema is the same.
233
+ if (oldSchema && !equals(normalize(oldSchema), normalize(newSchema))) {
234
+ console.warn(`Component "${name}" schema changed from ${JSON.stringify(oldSchema)} to ${JSON.stringify(newSchema)}`);
235
+ }
236
+ componentSchemas[name] = newSchema;
237
+ });
238
+ return ecs;
239
+ };
240
+ const withResources = (newResources) => {
241
+ Object.entries(newResources).forEach(([name, value]) => {
242
+ // register the resource as a component.
243
+ withComponents({ [name]: {} });
244
+ const archetype = getArchetype("id", name);
245
+ // resource row *may* already exist if loaded from disk.
246
+ const entityId = archetype.rows
247
+ ? archetype.columns.id.get(archetype.rows)
248
+ : createEntity(archetype, { [name]: value });
249
+ const column = archetype.columns[name];
250
+ Object.defineProperty(resources, name, {
251
+ get: () => column.get(0),
252
+ set: (newValue) => {
253
+ updateEntity(entityId, { [name]: newValue });
254
+ },
255
+ });
256
+ });
257
+ return ecs;
258
+ };
259
+ function getTables(archetype, options) {
260
+ if (!archetype) {
261
+ return archetables.filter((a) => a.rows > 0);
262
+ }
263
+ if (options?.exact) {
264
+ return [archetype];
265
+ }
266
+ const components = archetype.components;
267
+ const tables = [];
268
+ const baseSet = getComponentsToArchetypes(getMostExclusiveComponent(components));
269
+ for (const archetable of baseSet) {
270
+ if (archetable.rows === 0) {
271
+ continue;
272
+ }
273
+ let hasAll = true;
274
+ for (const component of components) {
275
+ if (!archetable.columns[component]) {
276
+ hasAll = false;
277
+ break;
278
+ }
279
+ }
280
+ if (hasAll) {
281
+ tables.push(archetable);
282
+ }
283
+ }
284
+ return tables;
285
+ }
286
+ const countEntities = (archetype) => {
287
+ let count = 0;
288
+ for (const table of getTables(archetype, { mode: "read" })) {
289
+ count += table.rows;
290
+ }
291
+ return count;
292
+ };
293
+ const selectEntities = (archetype) => {
294
+ const tables = getTables(archetype, { mode: "read" });
295
+ const entities = [];
296
+ let offset = 0;
297
+ for (const table of tables) {
298
+ // this native array will probably be longer than the actual size.
299
+ const size = table.rows;
300
+ const nativeArray = table.columns.id.native;
301
+ // copy from 0 .. size to entities
302
+ for (let i = 0; i < size; i++) {
303
+ entities[offset++] = nativeArray[i];
304
+ }
305
+ }
306
+ return entities;
307
+ };
308
+ const getEntityValues = (id) => {
309
+ const index = id * ELEMENTS_PER_RECORD;
310
+ const archetypeId = records[index + 0];
311
+ if (archetypeId === undefined || archetypeId === DELETED_ARCHETYPE) {
312
+ return undefined;
313
+ }
314
+ const archetable = archetables[records[index + 0]];
315
+ const row = records[index + 1];
316
+ const values = {};
317
+ for (const name of archetable.components) {
318
+ values[name] = archetable.columns[name].get(row);
319
+ }
320
+ return values;
321
+ };
322
+ const updateEntity = (id, values) => {
323
+ for (const name in values) {
324
+ if (name === "id") {
325
+ throw new Error("Cannot update id");
326
+ }
327
+ let value = values[name];
328
+ if (value === undefined) {
329
+ value = DELETE;
330
+ }
331
+ setComponentValue(id, name, value);
332
+ }
333
+ };
334
+ function ensureRecordCapacity(capacity) {
335
+ if (recordCapacity < capacity) {
336
+ recordCapacity = Math.max(capacity, recordCapacity * 2);
337
+ const newRecords = new Uint32Array(recordCapacity * ELEMENTS_PER_RECORD);
338
+ newRecords.set(records);
339
+ records = newRecords;
340
+ }
341
+ }
342
+ const createEntity = (_archetype, values) => {
343
+ const archetype = _archetype ?? emptyArchetype;
344
+ let id;
345
+ if (firstDeletedId > 0 && recordCount > 0) {
346
+ id = firstDeletedId;
347
+ const index = id * ELEMENTS_PER_RECORD;
348
+ // point to the next deleted id
349
+ firstDeletedId = records[index + 1];
350
+ }
351
+ else {
352
+ // create new entity record
353
+ ensureRecordCapacity(recordCount + 1);
354
+ id = recordCount++;
355
+ }
356
+ // now put it directly into the archetype.
357
+ values = (values ? { ...values, id } : { id });
358
+ const row = archetype.createRow(values);
359
+ // now add the records entry
360
+ const index = id * ELEMENTS_PER_RECORD;
361
+ records[index + 0] = archetype.id;
362
+ records[index + 1] = row;
363
+ return id;
364
+ };
365
+ const createBatch = (archetype, count) => {
366
+ const table = getTables(archetype, { mode: "write", exact: true })[0];
367
+ ensureRecordCapacity(recordCount + count);
368
+ for (const name in table.columns) {
369
+ const column = table.columns[name];
370
+ column.ensureCapacity(table.rows + count);
371
+ }
372
+ const ids = table.columns.id.native;
373
+ // we are only going to rapidly create main record entries *and* the archetype id values.
374
+ let created = 0;
375
+ // first recycle any deleted ids
376
+ while (created < count && firstDeletedId > 0 && recordCount > 0) {
377
+ const id = firstDeletedId;
378
+ const index = id * ELEMENTS_PER_RECORD;
379
+ // point to the next deleted id
380
+ firstDeletedId = records[index + 1];
381
+ const row = table.rows + created++;
382
+ records[index + 0] = table.id;
383
+ records[index + 1] = row;
384
+ ids[row] = id;
385
+ }
386
+ recordCount += created;
387
+ // then quickly create the rest
388
+ for (; created < count; created++) {
389
+ const id = recordCount++;
390
+ const row = table.rows + created;
391
+ records[id * ELEMENTS_PER_RECORD + 0] = table.id;
392
+ records[id * ELEMENTS_PER_RECORD + 1] = row;
393
+ ids[row] = id;
394
+ }
395
+ table.rows += count;
396
+ return table;
397
+ };
398
+ const deleteEntity = (id) => {
399
+ const index = id * ELEMENTS_PER_RECORD;
400
+ const archetype = archetables[records[index + 0]];
401
+ const row = records[index + 1];
402
+ archetype.deleteRow(row);
403
+ const nextDeletedId = firstDeletedId;
404
+ firstDeletedId = id;
405
+ records[index + 0] = DELETED_ARCHETYPE;
406
+ records[index + 1] = nextDeletedId;
407
+ };
408
+ // this first archetype in the table must be the empty entity archetype which contains only the id.
409
+ const emptyArchetype = getArchetype("id");
410
+ // 1 = initial
411
+ // 2 = simplified format
412
+ // 3 = Numbers default to Float64Array instead of Float32Array
413
+ // 4 = bug fix for createRow not ensuring capacity
414
+ const SERIALIZATION_VERSION = 4;
415
+ const toJSON = () => {
416
+ return {
417
+ ecs: true,
418
+ version: SERIALIZATION_VERSION,
419
+ components: componentSchemas,
420
+ entities: [...records.slice(0, recordCount * 2)],
421
+ tables: archetables.map((table, index) => {
422
+ if (index !== table.id) {
423
+ throw new Error(`Table id mismatch: ${index} !== ${table.id}`);
424
+ }
425
+ const { rows, columns } = table;
426
+ return {
427
+ rows,
428
+ columns: Object.fromEntries(Object.entries(columns).map(([name, column]) => {
429
+ const value = column.toJSON(rows, name !== "id");
430
+ return [name, value];
431
+ })),
432
+ };
433
+ }),
434
+ };
435
+ };
436
+ const fromJSON = (json) => {
437
+ const { ecs, version, entities, tables } = json;
438
+ if (!ecs) {
439
+ throw new Error("Not an ECS");
440
+ }
441
+ if (version !== SERIALIZATION_VERSION) {
442
+ return false;
443
+ }
444
+ recordCount = entities.length / 2;
445
+ ensureRecordCapacity(recordCount);
446
+ records.set(entities);
447
+ Object.assign(componentSchemas, json.components);
448
+ for (let i = 0; i < tables.length; i++) {
449
+ const persistedTable = tables[i];
450
+ const { rows, columns } = persistedTable;
451
+ const components = Object.keys(columns);
452
+ const archetype = getArchetype(...components);
453
+ const [archetable] = getTables(archetype, {
454
+ mode: "write",
455
+ exact: true,
456
+ });
457
+ if (archetable.id !== i) {
458
+ throw new Error("Expected archetable to have the same id as the persisted table index");
459
+ }
460
+ archetable.rows = rows;
461
+ for (const [name, columnData] of Object.entries(columns)) {
462
+ const column = archetable.columns[name];
463
+ column.fromJSON(columnData, rows);
464
+ }
465
+ }
466
+ return true;
467
+ };
468
+ const ecs = {
469
+ components: componentSchemas,
470
+ resources,
471
+ getComponentValue,
472
+ setComponentValue,
473
+ countEntities,
474
+ selectEntities,
475
+ getTables,
476
+ getArchetype: getArchetype,
477
+ getEntityArchetype,
478
+ withComponents,
479
+ withResources,
480
+ getEntityValues,
481
+ createBatch,
482
+ createEntity,
483
+ updateEntity,
484
+ deleteEntity,
485
+ toJSON,
486
+ };
487
+ if (options.data) {
488
+ fromJSON(options.data);
489
+ }
490
+ return ecs;
491
+ }
492
+ //# sourceMappingURL=core-ecs.js.map