@adobe/data 0.2.5 → 0.2.6

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 (464) hide show
  1. package/dist/ecs/database/create-database.d.ts +3 -1
  2. package/dist/ecs/database/create-database.js +2 -2
  3. package/dist/ecs/database/create-database.js.map +1 -1
  4. package/dist/ecs/database/create-database.test.js +17 -17
  5. package/dist/ecs/database/create-database.test.js.map +1 -1
  6. package/dist/ecs/database/database-schema/create-database-from-schema.d.ts +12 -0
  7. package/dist/ecs/database/database-schema/create-database-from-schema.js +8 -0
  8. package/dist/ecs/database/database-schema/create-database-from-schema.js.map +1 -0
  9. package/dist/ecs/database/database-schema/create-database-schema-test.js +25 -0
  10. package/dist/ecs/database/database-schema/create-database-schema-test.js.map +1 -0
  11. package/dist/ecs/database/database-schema/create-database-schema.d.ts +11 -5
  12. package/dist/ecs/database/database-schema/create-database-schema.js +2 -2
  13. package/dist/ecs/database/database-schema/create-database-schema.js.map +1 -1
  14. package/dist/ecs/database/database-schema/database-schema.d.ts +7 -4
  15. package/dist/ecs/database/database-schema/index.d.ts +1 -2
  16. package/dist/ecs/database/database-schema/index.js +1 -1
  17. package/dist/ecs/database/database-schema/index.js.map +1 -1
  18. package/dist/ecs/database/database.d.ts +4 -3
  19. package/dist/ecs/database/observe-dependent-value.d.ts +1 -1
  20. package/dist/ecs/database/observe-dependent-value.js +1 -1
  21. package/dist/ecs/database/observe-dependent-value.js.map +1 -1
  22. package/dist/ecs/database/transactional-store/create-transactional-store.d.ts +3 -1
  23. package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
  24. package/dist/ecs/database/transactional-store/transactional-store.d.ts +5 -3
  25. package/dist/ecs/store/archetype-components.d.ts +1 -0
  26. package/dist/ecs/{core-ecs/core-ecs-types.js → store/archetype-components.js} +1 -1
  27. package/dist/ecs/store/archetype-components.js.map +1 -0
  28. package/dist/ecs/store/create-store.d.ts +4 -4
  29. package/dist/ecs/store/create-store.js +6 -1
  30. package/dist/ecs/store/create-store.js.map +1 -1
  31. package/dist/ecs/store/create-store.test.js +17 -7
  32. package/dist/ecs/store/create-store.test.js.map +1 -1
  33. package/dist/ecs/store/index.d.ts +1 -0
  34. package/dist/ecs/store/index.js +1 -0
  35. package/dist/ecs/store/index.js.map +1 -1
  36. package/dist/ecs/store/store.d.ts +14 -2
  37. package/dist/internal/typed-array/get-byte-size.d.ts +1 -1
  38. package/dist/schema/schema.d.ts +1 -1
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +1 -1
  41. package/dist/README.md +0 -310
  42. package/dist/_/data.d.ts +0 -11
  43. package/dist/_/data.js +0 -23
  44. package/dist/_/data.js.map +0 -1
  45. package/dist/_/equals.d.ts +0 -11
  46. package/dist/_/equals.js +0 -73
  47. package/dist/_/equals.js.map +0 -1
  48. package/dist/_/equals.test.js +0 -150
  49. package/dist/_/equals.test.js.map +0 -1
  50. package/dist/_/index.d.ts +0 -4
  51. package/dist/_/index.js +0 -24
  52. package/dist/_/index.js.map +0 -1
  53. package/dist/_/is-data.d.ts +0 -11
  54. package/dist/_/is-data.js +0 -2
  55. package/dist/_/is-data.js.map +0 -1
  56. package/dist/_/normalize.d.ts +0 -1
  57. package/dist/_/normalize.js +0 -34
  58. package/dist/_/normalize.js.map +0 -1
  59. package/dist/_/normalize.test.d.ts +0 -1
  60. package/dist/_/normalize.test.js +0 -48
  61. package/dist/_/normalize.test.js.map +0 -1
  62. package/dist/_/schema.test.d.ts +0 -1
  63. package/dist/_/schema.test.js +0 -16
  64. package/dist/_/schema.test.js.map +0 -1
  65. package/dist/blob-store/blob-store.d.ts +0 -94
  66. package/dist/blob-store/blob-store.js +0 -194
  67. package/dist/blob-store/blob-store.js.map +0 -1
  68. package/dist/blob-store/blob-store.test.d.ts +0 -1
  69. package/dist/blob-store/blob-store.test.js +0 -142
  70. package/dist/blob-store/blob-store.test.js.map +0 -1
  71. package/dist/cache/functions/bind-functions.d.ts +0 -6
  72. package/dist/cache/functions/bind-functions.js +0 -33
  73. package/dist/cache/functions/bind-functions.js.map +0 -1
  74. package/dist/cache/functions/omit.d.ts +0 -1
  75. package/dist/cache/functions/omit.js +0 -29
  76. package/dist/cache/functions/omit.js.map +0 -1
  77. package/dist/cache/functions/types.d.ts +0 -1
  78. package/dist/cache/functions/types.js +0 -23
  79. package/dist/cache/functions/types.js.map +0 -1
  80. package/dist/core/IsData.d.ts +0 -6
  81. package/dist/core/IsData.js +0 -2
  82. package/dist/core/IsData.js.map +0 -1
  83. package/dist/core/data.d.ts +0 -11
  84. package/dist/core/data.js +0 -23
  85. package/dist/core/data.js.map +0 -1
  86. package/dist/core/data.test.d.ts +0 -1
  87. package/dist/core/data.test.js +0 -48
  88. package/dist/core/data.test.js.map +0 -1
  89. package/dist/core/equals.d.ts +0 -11
  90. package/dist/core/equals.js +0 -73
  91. package/dist/core/equals.js.map +0 -1
  92. package/dist/core/equals.test.d.ts +0 -1
  93. package/dist/core/equals.test.js +0 -150
  94. package/dist/core/equals.test.js.map +0 -1
  95. package/dist/core/functions/array-equals-shallow.d.ts +0 -1
  96. package/dist/core/functions/array-equals-shallow.js +0 -34
  97. package/dist/core/functions/array-equals-shallow.js.map +0 -1
  98. package/dist/core/functions/deep-assign.d.ts +0 -11
  99. package/dist/core/functions/deep-assign.js +0 -61
  100. package/dist/core/functions/deep-assign.js.map +0 -1
  101. package/dist/core/functions/deep-assign.test.d.ts +0 -1
  102. package/dist/core/functions/deep-assign.test.js +0 -180
  103. package/dist/core/functions/deep-assign.test.js.map +0 -1
  104. package/dist/core/functions/deep-merge.d.ts +0 -32
  105. package/dist/core/functions/deep-merge.js +0 -54
  106. package/dist/core/functions/deep-merge.js.map +0 -1
  107. package/dist/core/functions/deep-merge.test.d.ts +0 -1
  108. package/dist/core/functions/deep-merge.test.js +0 -94
  109. package/dist/core/functions/deep-merge.test.js.map +0 -1
  110. package/dist/core/functions/index.d.ts +0 -1
  111. package/dist/core/functions/index.js +0 -23
  112. package/dist/core/functions/index.js.map +0 -1
  113. package/dist/core/functions/is-async-generator.d.ts +0 -1
  114. package/dist/core/functions/is-async-generator.js +0 -25
  115. package/dist/core/functions/is-async-generator.js.map +0 -1
  116. package/dist/core/functions/is-promise.d.ts +0 -1
  117. package/dist/core/functions/is-promise.js +0 -26
  118. package/dist/core/functions/is-promise.js.map +0 -1
  119. package/dist/core/functions/memoize-factory.d.ts +0 -1
  120. package/dist/core/functions/memoize-factory.js +0 -12
  121. package/dist/core/functions/memoize-factory.js.map +0 -1
  122. package/dist/core/index.d.ts +0 -4
  123. package/dist/core/index.js +0 -24
  124. package/dist/core/index.js.map +0 -1
  125. package/dist/core/is-data.d.ts +0 -11
  126. package/dist/core/is-data.js +0 -2
  127. package/dist/core/is-data.js.map +0 -1
  128. package/dist/core/normalize.d.ts +0 -1
  129. package/dist/core/normalize.js +0 -34
  130. package/dist/core/normalize.js.map +0 -1
  131. package/dist/core/normalize.test.d.ts +0 -1
  132. package/dist/core/normalize.test.js +0 -48
  133. package/dist/core/normalize.test.js.map +0 -1
  134. package/dist/core/schema.test.d.ts +0 -1
  135. package/dist/core/schema.test.js +0 -16
  136. package/dist/core/schema.test.js.map +0 -1
  137. package/dist/ecs/action-ecs/action-ecs.d.ts +0 -19
  138. package/dist/ecs/action-ecs/action-ecs.js +0 -203
  139. package/dist/ecs/action-ecs/action-ecs.js.map +0 -1
  140. package/dist/ecs/action-ecs/action-ecs.test.d.ts +0 -1
  141. package/dist/ecs/action-ecs/action-ecs.test.js +0 -363
  142. package/dist/ecs/action-ecs/action-ecs.test.js.map +0 -1
  143. package/dist/ecs/action-ecs/action-types.d.ts +0 -106
  144. package/dist/ecs/action-ecs/action-types.js +0 -19
  145. package/dist/ecs/action-ecs/action-types.js.map +0 -1
  146. package/dist/ecs/action-ecs/index.d.ts +0 -3
  147. package/dist/ecs/action-ecs/index.js +0 -24
  148. package/dist/ecs/action-ecs/index.js.map +0 -1
  149. package/dist/ecs/action-ecs/sequential-action.d.ts +0 -18
  150. package/dist/ecs/action-ecs/sequential-action.js +0 -45
  151. package/dist/ecs/action-ecs/sequential-action.js.map +0 -1
  152. package/dist/ecs/core-ecs/core-ecs-serialization.test.d.ts +0 -1
  153. package/dist/ecs/core-ecs/core-ecs-serialization.test.js +0 -231
  154. package/dist/ecs/core-ecs/core-ecs-serialization.test.js.map +0 -1
  155. package/dist/ecs/core-ecs/core-ecs-types.d.ts +0 -142
  156. package/dist/ecs/core-ecs/core-ecs-types.js.map +0 -1
  157. package/dist/ecs/core-ecs/core-ecs.d.ts +0 -7
  158. package/dist/ecs/core-ecs/core-ecs.js +0 -492
  159. package/dist/ecs/core-ecs/core-ecs.js.map +0 -1
  160. package/dist/ecs/core-ecs/core-ecs.test.d.ts +0 -1
  161. package/dist/ecs/core-ecs/core-ecs.test.js +0 -426
  162. package/dist/ecs/core-ecs/core-ecs.test.js.map +0 -1
  163. package/dist/ecs/core-ecs/index.d.ts +0 -1
  164. package/dist/ecs/core-ecs/index.js +0 -2
  165. package/dist/ecs/core-ecs/index.js.map +0 -1
  166. package/dist/ecs/database/database-schema/create-database-from-schemas.d.ts +0 -15
  167. package/dist/ecs/database/database-schema/create-database-from-schemas.js +0 -33
  168. package/dist/ecs/database/database-schema/create-database-from-schemas.js.map +0 -1
  169. package/dist/ecs/ecs/ecs-types.d.ts +0 -133
  170. package/dist/ecs/ecs/ecs-types.js +0 -23
  171. package/dist/ecs/ecs/ecs-types.js.map +0 -1
  172. package/dist/ecs/ecs/ecs-where-functions.d.ts +0 -6
  173. package/dist/ecs/ecs/ecs-where-functions.js +0 -91
  174. package/dist/ecs/ecs/ecs-where-functions.js.map +0 -1
  175. package/dist/ecs/ecs/ecs.d.ts +0 -13
  176. package/dist/ecs/ecs/ecs.js +0 -177
  177. package/dist/ecs/ecs/ecs.js.map +0 -1
  178. package/dist/ecs/ecs/ecs.test.d.ts +0 -1
  179. package/dist/ecs/ecs/ecs.test.js +0 -399
  180. package/dist/ecs/ecs/ecs.test.js.map +0 -1
  181. package/dist/ecs/ecs/index.d.ts +0 -2
  182. package/dist/ecs/ecs/index.js +0 -24
  183. package/dist/ecs/ecs/index.js.map +0 -1
  184. package/dist/ecs/store/resource-components copy.d.ts +0 -1
  185. package/dist/ecs/store/resource-components copy.js +0 -23
  186. package/dist/ecs/store/resource-components copy.js.map +0 -1
  187. package/dist/ecs/systems/index.d.ts +0 -2
  188. package/dist/ecs/systems/index.js +0 -2
  189. package/dist/ecs/systems/index.js.map +0 -1
  190. package/dist/ecs/systems/system-phase.d.ts +0 -5
  191. package/dist/ecs/systems/system-phase.js +0 -16
  192. package/dist/ecs/systems/system-phase.js.map +0 -1
  193. package/dist/ecs/systems/system.d.ts +0 -7
  194. package/dist/ecs/systems/system.js +0 -2
  195. package/dist/ecs/systems/system.js.map +0 -1
  196. package/dist/ecs/transaction-ecs/index.d.ts +0 -2
  197. package/dist/ecs/transaction-ecs/index.js +0 -24
  198. package/dist/ecs/transaction-ecs/index.js.map +0 -1
  199. package/dist/ecs/transaction-ecs/transaction-ecs.d.ts +0 -11
  200. package/dist/ecs/transaction-ecs/transaction-ecs.js +0 -184
  201. package/dist/ecs/transaction-ecs/transaction-ecs.js.map +0 -1
  202. package/dist/ecs/transaction-ecs/transaction-ecs.test.d.ts +0 -1
  203. package/dist/ecs/transaction-ecs/transaction-ecs.test.js +0 -599
  204. package/dist/ecs/transaction-ecs/transaction-ecs.test.js.map +0 -1
  205. package/dist/ecs/transaction-ecs/transaction-types.d.ts +0 -136
  206. package/dist/ecs/transaction-ecs/transaction-types.js +0 -2
  207. package/dist/ecs/transaction-ecs/transaction-types.js.map +0 -1
  208. package/dist/ecs/transaction-ecs/transactions.d.ts +0 -5
  209. package/dist/ecs/transaction-ecs/transactions.js +0 -158
  210. package/dist/ecs/transaction-ecs/transactions.js.map +0 -1
  211. package/dist/equalsShallow.d.ts +0 -1
  212. package/dist/equalsShallow.js +0 -37
  213. package/dist/equalsShallow.js.map +0 -1
  214. package/dist/equalsShallow.test.d.ts +0 -1
  215. package/dist/equalsShallow.test.js +0 -113
  216. package/dist/equalsShallow.test.js.map +0 -1
  217. package/dist/internal/object/mutable-clone.d.ts +0 -5
  218. package/dist/internal/object/mutable-clone.js +0 -4
  219. package/dist/internal/object/mutable-clone.js.map +0 -1
  220. package/dist/old-ecs/ecs/ecs-where-cache.test.d.ts +0 -1
  221. package/dist/old-ecs/ecs/ecs-where-cache.test.js +0 -164
  222. package/dist/old-ecs/ecs/ecs-where-cache.test.js.map +0 -1
  223. package/dist/package.json +0 -129
  224. package/dist/schema/FromSchema.d.ts +0 -25
  225. package/dist/schema/FromSchema.js +0 -2
  226. package/dist/schema/FromSchema.js.map +0 -1
  227. package/dist/service/isService.d.ts +0 -2
  228. package/dist/service/isService.js +0 -5
  229. package/dist/service/isService.js.map +0 -1
  230. package/dist/service/sequential-action.d.ts +0 -18
  231. package/dist/service/sequential-action.js +0 -45
  232. package/dist/service/sequential-action.js.map +0 -1
  233. package/dist/table/copy-to-gpu-buffer.d.ts +0 -2
  234. package/dist/table/copy-to-gpu-buffer.js +0 -16
  235. package/dist/table/copy-to-gpu-buffer.js.map +0 -1
  236. package/dist/table/create-composite-table.d.ts +0 -5
  237. package/dist/table/create-composite-table.js +0 -20
  238. package/dist/table/create-composite-table.js.map +0 -1
  239. package/dist/typed-buffer/create-composite-buffer.d.ts +0 -2
  240. package/dist/typed-buffer/create-composite-buffer.js +0 -85
  241. package/dist/typed-buffer/create-composite-buffer.js.map +0 -1
  242. package/dist/typed-buffer/create-composite-buffer.test.d.ts +0 -1
  243. package/dist/typed-buffer/create-composite-buffer.test.js +0 -291
  244. package/dist/typed-buffer/create-composite-buffer.test.js.map +0 -1
  245. package/dist/typed-buffer/create-mapped-buffer.d.ts +0 -6
  246. package/dist/typed-buffer/create-mapped-buffer.js +0 -32
  247. package/dist/typed-buffer/create-mapped-buffer.js.map +0 -1
  248. package/dist/typed-buffer/create-mapped-buffer.test.d.ts +0 -1
  249. package/dist/typed-buffer/create-mapped-buffer.test.js +0 -202
  250. package/dist/typed-buffer/create-mapped-buffer.test.js.map +0 -1
  251. package/dist/types/array/equalsShallow.d.ts +0 -1
  252. package/dist/types/array/equalsShallow.js +0 -37
  253. package/dist/types/array/equalsShallow.js.map +0 -1
  254. package/dist/types/array/equalsShallow.test.d.ts +0 -1
  255. package/dist/types/array/equalsShallow.test.js +0 -113
  256. package/dist/types/array/equalsShallow.test.js.map +0 -1
  257. package/dist/types/array/index.d.ts +0 -1
  258. package/dist/types/array/index.js +0 -2
  259. package/dist/types/array/index.js.map +0 -1
  260. package/dist/types/array-buffer-like/copy.d.ts +0 -1
  261. package/dist/types/array-buffer-like/copy.js +0 -469
  262. package/dist/types/array-buffer-like/copy.js.map +0 -1
  263. package/dist/types/array-buffer-like/grow.d.ts +0 -1
  264. package/dist/types/array-buffer-like/grow.js +0 -53
  265. package/dist/types/array-buffer-like/grow.js.map +0 -1
  266. package/dist/types/array-buffer-like/index.d.ts +0 -4
  267. package/dist/types/array-buffer-like/index.js +0 -26
  268. package/dist/types/array-buffer-like/index.js.map +0 -1
  269. package/dist/types/array-buffer-like/is-array-buffer.d.ts +0 -1
  270. package/dist/types/array-buffer-like/is-array-buffer.js +0 -445
  271. package/dist/types/array-buffer-like/is-array-buffer.js.map +0 -1
  272. package/dist/types/array-buffer-like/is-shared-array-buffer.d.ts +0 -1
  273. package/dist/types/array-buffer-like/is-shared-array-buffer.js +0 -445
  274. package/dist/types/array-buffer-like/is-shared-array-buffer.js.map +0 -1
  275. package/dist/types/data-view-32/create-data-view-32.d.ts +0 -2
  276. package/dist/types/data-view-32/create-data-view-32.js +0 -8
  277. package/dist/types/data-view-32/create-data-view-32.js.map +0 -1
  278. package/dist/types/data-view-32/data-view-32.d.ts +0 -5
  279. package/dist/types/data-view-32/data-view-32.js +0 -23
  280. package/dist/types/data-view-32/data-view-32.js.map +0 -1
  281. package/dist/types/data-view-32/index.d.ts +0 -2
  282. package/dist/types/data-view-32/index.js +0 -24
  283. package/dist/types/data-view-32/index.js.map +0 -1
  284. package/dist/types/object/index.d.ts +0 -2
  285. package/dist/types/object/index.js +0 -24
  286. package/dist/types/object/index.js.map +0 -1
  287. package/dist/types/object/map-entries.d.ts +0 -5
  288. package/dist/types/object/map-entries.js +0 -29
  289. package/dist/types/object/map-entries.js.map +0 -1
  290. package/dist/types/object/mutable-clone.d.ts +0 -5
  291. package/dist/types/object/mutable-clone.js +0 -4
  292. package/dist/types/object/mutable-clone.js.map +0 -1
  293. package/dist/types/remove-readonly.d.ts +0 -3
  294. package/dist/types/remove-readonly.js +0 -2
  295. package/dist/types/remove-readonly.js.map +0 -1
  296. package/dist/types/table/add-row.d.ts +0 -8
  297. package/dist/types/table/add-row.js +0 -40
  298. package/dist/types/table/add-row.js.map +0 -1
  299. package/dist/types/table/create-table.d.ts +0 -3
  300. package/dist/types/table/create-table.js +0 -33
  301. package/dist/types/table/create-table.js.map +0 -1
  302. package/dist/types/table/delete-row.d.ts +0 -9
  303. package/dist/types/table/delete-row.js +0 -18
  304. package/dist/types/table/delete-row.js.map +0 -1
  305. package/dist/types/table/ensure-capacity.d.ts +0 -2
  306. package/dist/types/table/ensure-capacity.js +0 -15
  307. package/dist/types/table/ensure-capacity.js.map +0 -1
  308. package/dist/types/table/get-row-data.d.ts +0 -3
  309. package/dist/types/table/get-row-data.js +0 -8
  310. package/dist/types/table/get-row-data.js.map +0 -1
  311. package/dist/types/table/index.d.ts +0 -8
  312. package/dist/types/table/index.js +0 -30
  313. package/dist/types/table/index.js.map +0 -1
  314. package/dist/types/table/row-index.d.ts +0 -8
  315. package/dist/types/table/row-index.js +0 -3
  316. package/dist/types/table/row-index.js.map +0 -1
  317. package/dist/types/table/table.d.ts +0 -13
  318. package/dist/types/table/table.js +0 -2
  319. package/dist/types/table/table.js.map +0 -1
  320. package/dist/types/table/update-row.d.ts +0 -8
  321. package/dist/types/table/update-row.js +0 -12
  322. package/dist/types/table/update-row.js.map +0 -1
  323. package/dist/types/typed-array/copy-to-gpu-buffer.d.ts +0 -2
  324. package/dist/types/typed-array/copy-to-gpu-buffer.js +0 -16
  325. package/dist/types/typed-array/copy-to-gpu-buffer.js.map +0 -1
  326. package/dist/types/typed-array/get-byte-size.d.ts +0 -2
  327. package/dist/types/typed-array/get-byte-size.js +0 -28
  328. package/dist/types/typed-array/get-byte-size.js.map +0 -1
  329. package/dist/types/typed-array/index.d.ts +0 -4
  330. package/dist/types/typed-array/index.js +0 -26
  331. package/dist/types/typed-array/index.js.map +0 -1
  332. package/dist/types/typed-array/typed-array-constructer.d.ts +0 -7
  333. package/dist/types/typed-array/typed-array-constructer.js +0 -2
  334. package/dist/types/typed-array/typed-array-constructer.js.map +0 -1
  335. package/dist/types/typed-array/typed-array.d.ts +0 -1
  336. package/dist/types/typed-array/typed-array.js +0 -23
  337. package/dist/types/typed-array/typed-array.js.map +0 -1
  338. package/dist/types/typed-buffer/copy-to-gpu-buffer.d.ts +0 -2
  339. package/dist/types/typed-buffer/copy-to-gpu-buffer.js +0 -16
  340. package/dist/types/typed-buffer/copy-to-gpu-buffer.js.map +0 -1
  341. package/dist/types/typed-buffer/create-array-buffer.d.ts +0 -4
  342. package/dist/types/typed-buffer/create-array-buffer.js +0 -29
  343. package/dist/types/typed-buffer/create-array-buffer.js.map +0 -1
  344. package/dist/types/typed-buffer/create-number-buffer.d.ts +0 -8
  345. package/dist/types/typed-buffer/create-number-buffer.js +0 -75
  346. package/dist/types/typed-buffer/create-number-buffer.js.map +0 -1
  347. package/dist/types/typed-buffer/create-struct-buffer.d.ts +0 -10
  348. package/dist/types/typed-buffer/create-struct-buffer.js +0 -78
  349. package/dist/types/typed-buffer/create-struct-buffer.js.map +0 -1
  350. package/dist/types/typed-buffer/create-typed-buffer.d.ts +0 -7
  351. package/dist/types/typed-buffer/create-typed-buffer.js +0 -17
  352. package/dist/types/typed-buffer/create-typed-buffer.js.map +0 -1
  353. package/dist/types/typed-buffer/index.d.ts +0 -6
  354. package/dist/types/typed-buffer/index.js +0 -28
  355. package/dist/types/typed-buffer/index.js.map +0 -1
  356. package/dist/types/typed-buffer/structs/assert-struct.d.ts +0 -8
  357. package/dist/types/typed-buffer/structs/assert-struct.js +0 -15
  358. package/dist/types/typed-buffer/structs/assert-struct.js.map +0 -1
  359. package/dist/types/typed-buffer/structs/create-read-struct.d.ts +0 -3
  360. package/dist/types/typed-buffer/structs/create-read-struct.js +0 -62
  361. package/dist/types/typed-buffer/structs/create-read-struct.js.map +0 -1
  362. package/dist/types/typed-buffer/structs/create-read-struct.test.d.ts +0 -1
  363. package/dist/types/typed-buffer/structs/create-read-struct.test.js +0 -189
  364. package/dist/types/typed-buffer/structs/create-read-struct.test.js.map +0 -1
  365. package/dist/types/typed-buffer/structs/create-write-struct.d.ts +0 -3
  366. package/dist/types/typed-buffer/structs/create-write-struct.js +0 -58
  367. package/dist/types/typed-buffer/structs/create-write-struct.js.map +0 -1
  368. package/dist/types/typed-buffer/structs/get-field-offset.d.ts +0 -2
  369. package/dist/types/typed-buffer/structs/get-field-offset.js +0 -14
  370. package/dist/types/typed-buffer/structs/get-field-offset.js.map +0 -1
  371. package/dist/types/typed-buffer/structs/get-struct-layout.d.ts +0 -5
  372. package/dist/types/typed-buffer/structs/get-struct-layout.js +0 -198
  373. package/dist/types/typed-buffer/structs/get-struct-layout.js.map +0 -1
  374. package/dist/types/typed-buffer/structs/get-struct-layout.test.d.ts +0 -1
  375. package/dist/types/typed-buffer/structs/get-struct-layout.test.js +0 -133
  376. package/dist/types/typed-buffer/structs/get-struct-layout.test.js.map +0 -1
  377. package/dist/types/typed-buffer/structs/index.d.ts +0 -1
  378. package/dist/types/typed-buffer/structs/index.js +0 -23
  379. package/dist/types/typed-buffer/structs/index.js.map +0 -1
  380. package/dist/types/typed-buffer/structs/read-struct.d.ts +0 -2
  381. package/dist/types/typed-buffer/structs/read-struct.js +0 -2
  382. package/dist/types/typed-buffer/structs/read-struct.js.map +0 -1
  383. package/dist/types/typed-buffer/structs/struct-layout.d.ts +0 -21
  384. package/dist/types/typed-buffer/structs/struct-layout.js +0 -23
  385. package/dist/types/typed-buffer/structs/struct-layout.js.map +0 -1
  386. package/dist/types/typed-buffer/structs/write-struct.d.ts +0 -2
  387. package/dist/types/typed-buffer/structs/write-struct.js +0 -2
  388. package/dist/types/typed-buffer/structs/write-struct.js.map +0 -1
  389. package/dist/types/typed-buffer/structs/write-struct.test.d.ts +0 -1
  390. package/dist/types/typed-buffer/structs/write-struct.test.js +0 -181
  391. package/dist/types/typed-buffer/structs/write-struct.test.js.map +0 -1
  392. package/dist/types/typed-buffer/typed-buffer.d.ts +0 -16
  393. package/dist/types/typed-buffer/typed-buffer.js +0 -2
  394. package/dist/types/typed-buffer/typed-buffer.js.map +0 -1
  395. package/dist/types/typed-buffer/typed-buffer.test.d.ts +0 -1
  396. package/dist/types/typed-buffer/typed-buffer.test.js +0 -223
  397. package/dist/types/typed-buffer/typed-buffer.test.js.map +0 -1
  398. package/dist/ui/decorators/apply-decorator.d.ts +0 -1
  399. package/dist/ui/decorators/apply-decorator.js +0 -18
  400. package/dist/ui/decorators/apply-decorator.js.map +0 -1
  401. package/dist/ui/decorators/apply-service-decorators.d.ts +0 -1
  402. package/dist/ui/decorators/apply-service-decorators.js +0 -12
  403. package/dist/ui/decorators/apply-service-decorators.js.map +0 -1
  404. package/dist/ui/decorators/require-service.d.ts +0 -1
  405. package/dist/ui/decorators/require-service.js +0 -13
  406. package/dist/ui/decorators/require-service.js.map +0 -1
  407. package/dist/ui/elements/index.d.ts +0 -3
  408. package/dist/ui/elements/index.js +0 -4
  409. package/dist/ui/elements/index.js.map +0 -1
  410. package/dist/ui/elements/service-application.d.ts +0 -8
  411. package/dist/ui/elements/service-application.js +0 -27
  412. package/dist/ui/elements/service-application.js.map +0 -1
  413. package/dist/ui/elements/service-context.d.ts +0 -1
  414. package/dist/ui/elements/service-context.js +0 -3
  415. package/dist/ui/elements/service-context.js.map +0 -1
  416. package/dist/ui/elements/service-element.d.ts +0 -6
  417. package/dist/ui/elements/service-element.js +0 -22
  418. package/dist/ui/elements/service-element.js.map +0 -1
  419. package/dist/ui/hooks/component/component.d.ts +0 -9
  420. package/dist/ui/hooks/component/component.js +0 -2
  421. package/dist/ui/hooks/component/component.js.map +0 -1
  422. package/dist/ui/hooks/component/stack.d.ts +0 -6
  423. package/dist/ui/hooks/component/stack.js +0 -15
  424. package/dist/ui/hooks/component/stack.js.map +0 -1
  425. package/dist/ui/hooks/index.d.ts +0 -7
  426. package/dist/ui/hooks/index.js +0 -9
  427. package/dist/ui/hooks/index.js.map +0 -1
  428. package/dist/ui/hooks/use-connected.d.ts +0 -2
  429. package/dist/ui/hooks/use-connected.js +0 -31
  430. package/dist/ui/hooks/use-connected.js.map +0 -1
  431. package/dist/ui/hooks/use-effect.d.ts +0 -3
  432. package/dist/ui/hooks/use-effect.js +0 -13
  433. package/dist/ui/hooks/use-effect.js.map +0 -1
  434. package/dist/ui/hooks/use-element.d.ts +0 -4
  435. package/dist/ui/hooks/use-element.js +0 -8
  436. package/dist/ui/hooks/use-element.js.map +0 -1
  437. package/dist/ui/hooks/use-memo.d.ts +0 -1
  438. package/dist/ui/hooks/use-memo.js +0 -12
  439. package/dist/ui/hooks/use-memo.js.map +0 -1
  440. package/dist/ui/hooks/use-observable-values.d.ts +0 -5
  441. package/dist/ui/hooks/use-observable-values.js +0 -8
  442. package/dist/ui/hooks/use-observable-values.js.map +0 -1
  443. package/dist/ui/hooks/use-observable.d.ts +0 -2
  444. package/dist/ui/hooks/use-observable.js +0 -12
  445. package/dist/ui/hooks/use-observable.js.map +0 -1
  446. package/dist/ui/hooks/use-ref.d.ts +0 -3
  447. package/dist/ui/hooks/use-ref.js +0 -6
  448. package/dist/ui/hooks/use-ref.js.map +0 -1
  449. package/dist/ui/hooks/use-resize-observer.d.ts +0 -10
  450. package/dist/ui/hooks/use-resize-observer.js +0 -20
  451. package/dist/ui/hooks/use-resize-observer.js.map +0 -1
  452. package/dist/ui/hooks/use-state.d.ts +0 -2
  453. package/dist/ui/hooks/use-state.js +0 -14
  454. package/dist/ui/hooks/use-state.js.map +0 -1
  455. package/dist/ui/hooks/use-window-event.d.ts +0 -1
  456. package/dist/ui/hooks/use-window-event.js +0 -10
  457. package/dist/ui/hooks/use-window-event.js.map +0 -1
  458. package/dist/ui/hooks/with-hooks.d.ts +0 -2
  459. package/dist/ui/hooks/with-hooks.js +0 -15
  460. package/dist/ui/hooks/with-hooks.js.map +0 -1
  461. package/dist/ui/index.d.ts +0 -1
  462. package/dist/ui/index.js +0 -2
  463. package/dist/ui/index.js.map +0 -1
  464. /package/dist/{_/equals.test.d.ts → ecs/database/database-schema/create-database-schema-test.d.ts} +0 -0
@@ -1,48 +0,0 @@
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 { normalize } from "./normalize.js";
23
- import { describe, expect, it } from "vitest";
24
- describe("Data.normalize", () => {
25
- it("should sort object keys alphabetically", () => {
26
- expect(normalize({ b: 1, a: 2, c: null })).toEqual({
27
- a: 2,
28
- b: 1,
29
- c: null,
30
- });
31
- expect(normalize([{ A: [], b: 1, a: 2 }])).toEqual([{ a: 2, A: [], b: 1 }]);
32
- expect(normalize([[{ b: 1, a: 2 }]])).toEqual([[{ a: 2, b: 1 }]]);
33
- expect(normalize({ z: [[{ b: 1, a: 2 }]], q: 10 })).toEqual({
34
- q: 10,
35
- z: [[{ a: 2, b: 1 }]],
36
- });
37
- });
38
- it("should remove undefined values", () => {
39
- expect(normalize({ b: 1, a: 2, value: undefined })).toEqual({
40
- a: 2,
41
- b: 1,
42
- });
43
- expect(normalize([{ b: 1, a: 2, value: undefined }])).toEqual([
44
- { a: 2, b: 1 },
45
- ]);
46
- });
47
- });
48
- //# sourceMappingURL=normalize.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize.test.js","sourceRoot":"","sources":["../../src/core/normalize.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACjD,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,IAAI;SACR,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1D,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1D,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,16 +0,0 @@
1
- import { describe, it } from "vitest";
2
- describe("Schema", () => {
3
- it("should provide compile time and runtime type validation", () => {
4
- const mySchema = {
5
- type: "object",
6
- required: ["name", "aspect"],
7
- properties: {
8
- name: { type: "string" },
9
- age: { type: "integer", minimum: 0 },
10
- aspect: { enum: ["landscape", "portrait"] },
11
- },
12
- additionalProperties: false,
13
- };
14
- });
15
- });
16
- //# sourceMappingURL=schema.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.test.js","sourceRoot":"","sources":["../../src/core/schema.test.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEtC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC5B,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;gBACpC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE;aAC5C;YACD,oBAAoB,EAAE,KAAK;SACF,CAAC;IAiB9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,19 +0,0 @@
1
- import { ECSArchetypes, ECSComponents, ECSResources } from "../ecs/ecs-types.js";
2
- import { TransactionECS } from "../transaction-ecs/transaction-types.js";
3
- import { ActionECS, ECSActionFunctions } from "./action-types.js";
4
- export declare function createActionECS<C extends ECSComponents, A extends ECSArchetypes, R extends ECSResources, F extends ECSActionFunctions = {}>(options?: {
5
- ecs?: TransactionECS<C, A, R>;
6
- /**
7
- * A unique user identifier for the current user.
8
- */
9
- user?: string;
10
- /**
11
- * A function which returns a unique, increasing time in UTC milliseconds.
12
- * The function cannot return the same value twice but must increment if needed.
13
- */
14
- getUniqueTimeMs?: () => number;
15
- /**
16
- * Maximum time in milliseconds to wait for applied actions to be reordered.
17
- */
18
- maxSynchronizeDurationMs?: number;
19
- }): ActionECS<C, A, R, F>;
@@ -1,203 +0,0 @@
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 { isAsyncGenerator } from "../../internal/async-generator/is-async-generator.js";
23
- import { createObservableEvent } from "../../observe/create-observable-event.js";
24
- import { createTransactionECS } from "../transaction-ecs/transaction-ecs.js";
25
- import { compareActionOrder, isSameAction, } from "./action-types.js";
26
- let lastTime = 0;
27
- function uniqueTime() {
28
- const currentTime = Date.now();
29
- lastTime = Math.max(currentTime, lastTime + 1);
30
- return lastTime;
31
- }
32
- export function createActionECS(options = {}) {
33
- const { ecs = createTransactionECS(), getUniqueTimeMs = uniqueTime, user = "", maxSynchronizeDurationMs = 5000, } = options;
34
- const { createTransaction, observe, withComponents, withArchetypes, withResources, ...rest } = ecs;
35
- const transactionFunctions = {};
36
- const actions = {};
37
- const actionSequences = {};
38
- // these are only stored in memory.
39
- const applied = [];
40
- const getInsertIndex = (action) => {
41
- for (let i = applied.length - 1; i >= 0; i--) {
42
- if (isSameAction(action, applied[i].action)) {
43
- return i;
44
- }
45
- const sort = compareActionOrder(action, applied[i].action);
46
- if (sort >= 0) {
47
- return i + 1;
48
- }
49
- }
50
- return 0;
51
- };
52
- const [observeActions, notifyActions] = createObservableEvent();
53
- const apply = (newAction) => {
54
- const index = getInsertIndex(newAction);
55
- const actionAtIndex = applied[index]?.action;
56
- const isSame = actionAtIndex && isSameAction(newAction, actionAtIndex);
57
- const mainTransaction = ecs.createTransaction({ undoable: false, createdBy: newAction.createdBy, createdTime: newAction.createdTime });
58
- for (let i = applied.length - 1; i >= index && i < applied.length; i--) {
59
- mainTransaction.batch(applied[i].commit.undoOperations);
60
- }
61
- applied.splice(index, isSame ? 1 : 0, { action: newAction, commit: undefined });
62
- for (let i = index; i < applied.length; i++) {
63
- const oldAction = applied[i];
64
- if (!oldAction) {
65
- console.error(`Missing applied action. Shouldn't happen. Notify codeowner!`, { index, i, newAction, applied });
66
- continue;
67
- }
68
- const { action: reapplyAction } = oldAction;
69
- if (reapplyAction.type !== "cancel") {
70
- const childTransaction = mainTransaction.createTransaction();
71
- transactionFunctions[reapplyAction.name](childTransaction, ...reapplyAction.args);
72
- oldAction.commit = childTransaction.commit();
73
- }
74
- }
75
- mainTransaction.commit();
76
- // notify action observers
77
- notifyActions(newAction);
78
- pruneOldActions(newAction.createdTime);
79
- };
80
- const pruneOldActions = (currentTime) => {
81
- const canPrune = (action) => action.type !== "transient" &&
82
- action.createdTime < currentTime - maxSynchronizeDurationMs;
83
- // remove any actions which are no longer needed because they are older than the maxSynchronizeDurationMs
84
- while (applied.length > 0 && canPrune(applied[0].action)) {
85
- applied.shift();
86
- }
87
- };
88
- /**
89
- * Implements async execution of actions.
90
- * If the argProvider is an async generator, then the action is executed as a sequence.
91
- * If the argProvider is a promise, then the action is executed directly once awaited.
92
- */
93
- const execute = async (action, argProvider) => {
94
- const argsGeneratorOrPromise = await argProvider();
95
- if (isAsyncGenerator(argsGeneratorOrPromise)) {
96
- let sequence;
97
- try {
98
- for await (const args of argsGeneratorOrPromise) {
99
- sequence = sequence?.update(...args) ?? actionSequences[action](...args);
100
- }
101
- sequence?.commit();
102
- }
103
- catch (e) {
104
- // cancel the sequence
105
- sequence?.cancel();
106
- // rethrow the error
107
- throw e;
108
- }
109
- }
110
- else {
111
- // args is still a promise so we must await it.
112
- const args = await argsGeneratorOrPromise;
113
- actions[action](...args);
114
- }
115
- };
116
- const getTransientActionCount = () => {
117
- return applied.reduce((acc, a) => acc + (a.action.type === "transient" ? 1 : 0), 0);
118
- };
119
- const actionECS = {
120
- ...rest,
121
- apply,
122
- getTransientActionCount,
123
- actions,
124
- actionSequences,
125
- withComponents: (newComponents) => {
126
- withComponents(newComponents);
127
- return actionECS;
128
- },
129
- withArchetypes: (newArchetypes) => {
130
- withArchetypes(newArchetypes);
131
- return actionECS;
132
- },
133
- withResources: (newResources) => {
134
- withResources(newResources);
135
- return actionECS;
136
- },
137
- withActions: (newTransactionFunctions) => {
138
- for (const name in newTransactionFunctions) {
139
- const action = newTransactionFunctions[name];
140
- if (transactionFunctions[name]) {
141
- throw new Error(`Action already exists: ${name}`);
142
- }
143
- transactionFunctions[name] = action;
144
- actions[name] = (...args) => {
145
- const firstArg = args[0];
146
- // handle new async execution pattern.
147
- if (typeof firstArg === "function") {
148
- return execute(name, firstArg);
149
- }
150
- const createdTime = getUniqueTimeMs();
151
- apply({ type: "commit", createdTime, createdBy: user, name, args });
152
- };
153
- actionSequences[name] = (...originalArgs) => {
154
- const createdTime = getUniqueTimeMs();
155
- if (typeof originalArgs[0] === "function") {
156
- throw new Error("Cannot use a function as argument to a sequence. For async execution you want to use ecs.actions instead of ecs.actionSequences.");
157
- }
158
- let args = originalArgs;
159
- const sequence = {
160
- update: (...updateArgs) => {
161
- args = updateArgs;
162
- apply({
163
- type: "transient",
164
- createdTime,
165
- createdBy: user,
166
- name,
167
- args,
168
- });
169
- return sequence;
170
- },
171
- commit: () => {
172
- apply({
173
- type: "commit",
174
- createdTime,
175
- createdBy: user,
176
- name,
177
- args,
178
- });
179
- },
180
- cancel: () => {
181
- apply({
182
- type: "cancel",
183
- createdTime,
184
- createdBy: user,
185
- name,
186
- args,
187
- });
188
- },
189
- };
190
- sequence.update(...originalArgs);
191
- return sequence;
192
- };
193
- }
194
- return actionECS;
195
- },
196
- observe: {
197
- ...observe,
198
- actions: observeActions,
199
- },
200
- };
201
- return actionECS;
202
- }
203
- //# sourceMappingURL=action-ecs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action-ecs.js","sourceRoot":"","sources":["../../../src/ecs/action-ecs/action-ecs.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,363 +0,0 @@
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, expect, test } from "vitest";
23
- import { createActionECS } from "./action-ecs.js";
24
- import { F32Schema } from "../../schema/f32.js";
25
- import { Tuple } from "../../schema/tuple.js";
26
- const user = "test";
27
- const createECSWithMassAndSize = () => {
28
- return createActionECS({ user })
29
- .withComponents({
30
- mass: { type: "number", minimum: 0 },
31
- size: { enum: ["small", "medium", "large"] },
32
- checkCreatedTime: { type: "integer" },
33
- checkCreatedBy: { type: "string" },
34
- })
35
- .withArchetypes({
36
- physical: ["id", "mass", "size"],
37
- sized: ["id", "size"],
38
- check: ["id", "checkCreatedTime", "checkCreatedBy"],
39
- })
40
- .withResources({
41
- gravity: 9.8,
42
- })
43
- .withActions({
44
- createPhysical(t, mass, size) {
45
- t.createEntity(t.ecs.archetypes.physical, { mass, size });
46
- },
47
- deletePhysical(t, entity) {
48
- t.deleteEntity(entity);
49
- },
50
- setMass(t, entity, mass) {
51
- t.setComponentValue(entity, "mass", mass);
52
- },
53
- setSize(t, entity, size) {
54
- t.setComponentValue(entity, "size", size);
55
- },
56
- setGravity(t, gravity) {
57
- t.resources.gravity = gravity;
58
- },
59
- })
60
- .withActions({
61
- // higher order actions based on the previous actions
62
- setMassAndSize(t, entity, mass, size) {
63
- this.setMass(t, entity, mass);
64
- this.setSize(t, entity, size);
65
- },
66
- checkTransactionOptions(t) {
67
- t.createEntity(t.ecs.archetypes.check, {
68
- checkCreatedTime: t.options.createdTime,
69
- checkCreatedBy: t.options.createdBy,
70
- });
71
- }
72
- });
73
- };
74
- let FIRST_ENTITY;
75
- {
76
- const ecs = createECSWithMassAndSize();
77
- ecs.actions.createPhysical(1, "small");
78
- FIRST_ENTITY = ecs.selectEntities(ecs.archetypes.physical)[0];
79
- }
80
- describe("ActionECS", () => {
81
- test("can call an action to create an entity", () => {
82
- const ecs = createECSWithMassAndSize();
83
- ecs.actions.createPhysical(1, "small");
84
- expect(ecs.selectEntityValues(ecs.archetypes.physical)).toEqual([
85
- { id: FIRST_ENTITY, mass: 1, size: "small" },
86
- ]);
87
- });
88
- test("calling an action includes createdTime and createdBy on options", () => {
89
- const ecs = createECSWithMassAndSize();
90
- ecs.actions.checkTransactionOptions();
91
- const check = ecs.selectEntityValues(ecs.archetypes.check)[0];
92
- expect(check).toEqual({
93
- id: FIRST_ENTITY,
94
- checkCreatedTime: expect.any(Number),
95
- checkCreatedBy: user,
96
- });
97
- });
98
- test("calling an apply action includes createdTime and createdBy on options", () => {
99
- const ecs = createECSWithMassAndSize();
100
- // now we check that the time is exactly what we expect
101
- const time = Date.now();
102
- ecs.apply({ type: "commit", createdTime: time, createdBy: user, name: "checkTransactionOptions", args: [] });
103
- const check = ecs.selectEntityValues(ecs.archetypes.check)[0];
104
- expect(check).toEqual({
105
- id: FIRST_ENTITY,
106
- checkCreatedTime: time,
107
- checkCreatedBy: user,
108
- });
109
- });
110
- test("can call an action twice to create two entities", () => {
111
- const ecs = createECSWithMassAndSize();
112
- ecs.actions.createPhysical(1, "small");
113
- ecs.actions.createPhysical(5, "large");
114
- expect(ecs.selectEntityValues(ecs.archetypes.physical)).toEqual([
115
- { id: FIRST_ENTITY, mass: 1, size: "small" },
116
- { id: FIRST_ENTITY + 1, mass: 5, size: "large" },
117
- ]);
118
- });
119
- test("can use higher order actions", () => {
120
- const ecs = createECSWithMassAndSize();
121
- ecs.actions.createPhysical(1, "small");
122
- ecs.actions.setMassAndSize(FIRST_ENTITY, 10, "medium");
123
- expect(ecs.selectEntityValues(ecs.archetypes.physical)).toEqual([
124
- { id: FIRST_ENTITY, mass: 10, size: "medium" },
125
- ]);
126
- });
127
- test("can call sequential actions and commit", () => {
128
- const ecs = createECSWithMassAndSize();
129
- ecs.actionSequences.setGravity(10).update(11).update(12).commit();
130
- expect(ecs.resources.gravity).toBe(12);
131
- });
132
- test("can call sequential actions and cancel", () => {
133
- const ecs = createECSWithMassAndSize();
134
- ecs.actionSequences.setGravity(10).update(11).update(12).cancel();
135
- expect(ecs.resources.gravity).toBe(9.8);
136
- });
137
- test("can execute sequential actions and commit", async () => {
138
- const ecs = createECSWithMassAndSize();
139
- expect(ecs.getTransientActionCount()).toBe(0);
140
- await ecs.actions.setGravity(async function* () {
141
- expect(ecs.getTransientActionCount()).toBe(0);
142
- yield [10];
143
- expect(ecs.resources.gravity).toBe(10); // in flight
144
- expect(ecs.getTransientActionCount()).toBe(1);
145
- yield [11];
146
- expect(ecs.resources.gravity).toBe(11); // in flight
147
- expect(ecs.getTransientActionCount()).toBe(1);
148
- yield [12];
149
- expect(ecs.resources.gravity).toBe(12); // in flight
150
- expect(ecs.getTransientActionCount()).toBe(1);
151
- });
152
- expect(ecs.getTransientActionCount()).toBe(0);
153
- expect(ecs.resources.gravity).toBe(12);
154
- });
155
- test("can execute sequential actions and throw an error which cancels", async () => {
156
- const ecs = createECSWithMassAndSize();
157
- let cleanup = false;
158
- try {
159
- await ecs.actions.setGravity(async function* () {
160
- try {
161
- yield [10];
162
- yield [11];
163
- yield [12];
164
- throw new Error("test");
165
- }
166
- finally {
167
- cleanup = true;
168
- }
169
- });
170
- }
171
- catch (error) {
172
- expect(cleanup).toBe(true);
173
- expect(error).toBeInstanceOf(Error);
174
- expect(error.message).toBe("test");
175
- }
176
- expect(ecs.resources.gravity).toBe(9.8);
177
- });
178
- test("can execute promise action and commit", async () => {
179
- const ecs = createECSWithMassAndSize();
180
- await ecs.actions.setGravity(async () => {
181
- return [10];
182
- });
183
- expect(ecs.resources.gravity).toBe(10);
184
- });
185
- test("can use apply directly", () => {
186
- const ecs = createECSWithMassAndSize();
187
- const time = Date.now();
188
- ecs.apply({
189
- type: "commit",
190
- createdTime: time,
191
- createdBy: user,
192
- name: "createPhysical",
193
- args: [1, "small"],
194
- });
195
- expect(ecs.selectEntityValues(ecs.archetypes.physical)).toEqual([
196
- { id: FIRST_ENTITY, mass: 1, size: "small" },
197
- ]);
198
- });
199
- test("can resolve out of order apply calls", () => {
200
- const ecs = createECSWithMassAndSize();
201
- const time = Date.now();
202
- // this later one is applied first
203
- ecs.apply({
204
- type: "commit",
205
- createdTime: time + 1,
206
- createdBy: user,
207
- name: "createPhysical",
208
- args: [5, "large"],
209
- });
210
- // this earlier one is applied second
211
- ecs.apply({
212
- type: "commit",
213
- createdTime: time,
214
- createdBy: user,
215
- name: "createPhysical",
216
- args: [1, "small"],
217
- });
218
- // the entities are sorted and reapplied by updatedTime
219
- expect(ecs.selectEntityValues(ecs.archetypes.physical)).toEqual([
220
- { id: FIRST_ENTITY, mass: 1, size: "small" },
221
- { id: FIRST_ENTITY + 1, mass: 5, size: "large" },
222
- ]);
223
- });
224
- test("with subsequent updates, created order is still retained", () => {
225
- // we *could* change order later to use an updatedTime for final ordering
226
- // but would still have to roll back apply calls based on last ordering
227
- const ecs = createECSWithMassAndSize();
228
- const time = Date.now();
229
- ecs.apply({
230
- type: "transient",
231
- createdTime: time,
232
- createdBy: user,
233
- name: "createPhysical",
234
- args: [1, "small"],
235
- });
236
- ecs.apply({
237
- type: "commit",
238
- createdTime: time + 1,
239
- createdBy: user,
240
- name: "createPhysical",
241
- args: [2, "medium"],
242
- });
243
- ecs.apply({
244
- type: "transient",
245
- createdTime: time,
246
- createdBy: user,
247
- name: "createPhysical",
248
- args: [5, "large"],
249
- });
250
- ecs.apply({
251
- type: "transient",
252
- createdTime: time,
253
- createdBy: user,
254
- name: "createPhysical",
255
- args: [10, "large"],
256
- });
257
- expect(ecs.selectEntityValues(ecs.archetypes.physical)).toEqual([
258
- { id: FIRST_ENTITY, mass: 10, size: "large" },
259
- { id: FIRST_ENTITY + 1, mass: 2, size: "medium" },
260
- ]);
261
- });
262
- test("can observe actions", () => {
263
- const ecs = createECSWithMassAndSize();
264
- const actions = [];
265
- ecs.observe.actions((action) => actions.push(action));
266
- ecs.actions.createPhysical(1, "small");
267
- ecs.actions.createPhysical(5, "large");
268
- expect(actions).toEqual([
269
- {
270
- type: "commit",
271
- createdTime: expect.any(Number),
272
- createdBy: user,
273
- name: "createPhysical",
274
- args: [1, "small"],
275
- },
276
- {
277
- type: "commit",
278
- createdTime: expect.any(Number),
279
- createdBy: user,
280
- name: "createPhysical",
281
- args: [5, "large"],
282
- },
283
- ]);
284
- });
285
- });
286
- // sample ECS creation
287
- const Vector3Schema = Tuple(F32Schema, 3);
288
- const Vector4Schema = Tuple(F32Schema, 4);
289
- // create an action ecs
290
- const ecs = createActionECS()
291
- // define components with schemas
292
- .withComponents({
293
- position: Vector3Schema,
294
- velocity: Vector3Schema,
295
- color: Vector4Schema,
296
- size: { type: "number" },
297
- health: { type: "number" },
298
- player: { const: true },
299
- })
300
- // define archetypes with component names
301
- .withArchetypes({
302
- particle: ["position", "velocity", "color", "size"],
303
- player: ["position", "health", "player"],
304
- })
305
- // define resources with initial values
306
- .withResources({
307
- gravity: 9.8,
308
- })
309
- // define actions with transactional functions
310
- .withActions({
311
- createParticle(t, props) {
312
- t.createEntity(t.ecs.archetypes.particle, props);
313
- },
314
- deleteParticle(t, entity) {
315
- t.deleteEntity(entity);
316
- },
317
- createPlayer(t, position) {
318
- t.createEntity(t.ecs.archetypes.player, { position, health: 100, player: true });
319
- },
320
- movePlayer(t, entity, position) {
321
- t.setComponentValue(entity, "position", position);
322
- },
323
- setGravity(t, gravity) {
324
- t.resources.gravity = gravity;
325
- },
326
- });
327
- // call some actions to modify the ECS
328
- ecs.actions.createParticle({ position: [0, 0, 0], velocity: [0, 0, 0], color: [1, 0, 0, 0], size: 1 });
329
- ecs.actions.createParticle({ position: [1, 1, 1], velocity: [1, 1, 1], color: [1, 1, 1, 1], size: 2 });
330
- ecs.actions.createPlayer([10, 20, 0]);
331
- // read out the player entity
332
- const playerEntity = ecs.selectEntities(ecs.archetypes.player)[0];
333
- ecs.actions.movePlayer(playerEntity, [10, 20, 0]);
334
- // read some values from the ECS
335
- const particles = ecs.selectEntities(ecs.archetypes.particle);
336
- // observe changes to the ECS
337
- ecs.observe.archetypeEntities(ecs.archetypes.player)((playerEntities) => {
338
- for (const playerEntity of playerEntities) {
339
- const player = ecs.getEntityValues(playerEntity);
340
- // console.log("Player entity changed", player);
341
- }
342
- });
343
- {
344
- // some type checks.
345
- const ecs = createActionECS()
346
- .withComponents({
347
- position: { type: "string" },
348
- })
349
- .withComponents({
350
- size: { type: "number" },
351
- })
352
- .withResources({
353
- gravity: 9.8,
354
- })
355
- .withResources({
356
- time: 0,
357
- })
358
- .withArchetypes({
359
- position_size: ["id", "position", "size"],
360
- position: ["id", "position"],
361
- });
362
- }
363
- //# sourceMappingURL=action-ecs.test.js.map