@adobe/data 0.5.4 → 0.5.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 (346) hide show
  1. package/dist/ecs/database/create-database.d.ts +2 -2
  2. package/dist/ecs/database/database-schema/create-database-schema-test.d.ts +1 -0
  3. package/dist/ecs/database/database-schema/create-database-schema-test.js +42 -0
  4. package/dist/ecs/database/database-schema/create-database-schema-test.js.map +1 -0
  5. package/dist/ecs/database/database-schema/create-database-schema.d.ts +14 -0
  6. package/dist/ecs/database/database-schema/create-database-schema.js +32 -0
  7. package/dist/ecs/database/database-schema/create-database-schema.js.map +1 -0
  8. package/dist/ecs/database/database-schema/database-schema.d.ts +13 -0
  9. package/dist/{services/is-service.js → ecs/database/database-schema/database-schema.js} +2 -4
  10. package/dist/ecs/database/database-schema/database-schema.js.map +1 -0
  11. package/dist/ecs/database/database-schema/index.d.ts +2 -0
  12. package/dist/{services → ecs/database/database-schema}/index.js +2 -3
  13. package/dist/ecs/database/database-schema/index.js.map +1 -0
  14. package/dist/ecs/database/database.d.ts +3 -1
  15. package/dist/ecs/database/index.d.ts +1 -0
  16. package/dist/ecs/database/index.js +1 -0
  17. package/dist/ecs/database/index.js.map +1 -1
  18. package/dist/ecs/index.d.ts +2 -1
  19. package/dist/ecs/index.js +2 -1
  20. package/dist/ecs/index.js.map +1 -1
  21. package/dist/ecs/store/archetype-components.d.ts +3 -1
  22. package/dist/ecs/store/core/core.d.ts +1 -8
  23. package/dist/ecs/store/core/create-core.js +9 -4
  24. package/dist/ecs/store/core/create-core.js.map +1 -1
  25. package/dist/ecs/store/core/create-core.test.js +0 -109
  26. package/dist/ecs/store/core/create-core.test.js.map +1 -1
  27. package/dist/ecs/store/create-store.js +21 -0
  28. package/dist/ecs/store/create-store.js.map +1 -1
  29. package/dist/ecs/store/store-schema/create-store-schema-test.js +4 -7
  30. package/dist/ecs/store/store-schema/create-store-schema-test.js.map +1 -1
  31. package/dist/ecs/store/store-schema/create-store-schema.d.ts +2 -0
  32. package/dist/ecs/store/store-schema/create-store-schema.js +5 -0
  33. package/dist/ecs/store/store-schema/create-store-schema.js.map +1 -1
  34. package/dist/ecs/store/store-schema/index.d.ts +1 -1
  35. package/dist/ecs/store/store-schema/index.js +1 -1
  36. package/dist/ecs/store/store-schema/index.js.map +1 -1
  37. package/dist/ecs/store/store-schema/store-schema.d.ts +1 -1
  38. package/dist/ecs/world/create-world.d.ts +7 -0
  39. package/dist/ecs/world/create-world.js +108 -0
  40. package/dist/ecs/world/create-world.js.map +1 -0
  41. package/dist/ecs/world/create-world.test.d.ts +1 -0
  42. package/dist/ecs/world/create-world.test.js +499 -0
  43. package/dist/ecs/world/create-world.test.js.map +1 -0
  44. package/dist/ecs/world/index.d.ts +4 -0
  45. package/dist/ecs/world/index.js +26 -0
  46. package/dist/ecs/world/index.js.map +1 -0
  47. package/dist/ecs/world/system.d.ts +20 -0
  48. package/dist/ecs/world/system.js +2 -0
  49. package/dist/ecs/world/system.js.map +1 -0
  50. package/dist/ecs/world/world-schema/create-world-schema-test.d.ts +1 -0
  51. package/dist/ecs/world/world-schema/create-world-schema-test.js +55 -0
  52. package/dist/ecs/world/world-schema/create-world-schema-test.js.map +1 -0
  53. package/dist/ecs/world/world-schema/create-world-schema.d.ts +19 -0
  54. package/dist/ecs/world/world-schema/create-world-schema.js +33 -0
  55. package/dist/ecs/world/world-schema/create-world-schema.js.map +1 -0
  56. package/dist/ecs/world/world-schema/index.d.ts +2 -0
  57. package/dist/ecs/world/world-schema/index.js +24 -0
  58. package/dist/ecs/world/world-schema/index.js.map +1 -0
  59. package/dist/ecs/world/world-schema/world-schema.d.ts +18 -0
  60. package/dist/ecs/world/world-schema/world-schema.js +23 -0
  61. package/dist/ecs/world/world-schema/world-schema.js.map +1 -0
  62. package/dist/ecs/world/world.d.ts +9 -0
  63. package/dist/ecs/world/world.js +2 -0
  64. package/dist/ecs/world/world.js.map +1 -0
  65. package/dist/functions/serialization/serialization.test.js +78 -0
  66. package/dist/functions/serialization/serialization.test.js.map +1 -1
  67. package/dist/graphics/camera/camera.d.ts +62 -0
  68. package/dist/graphics/camera/camera.js +17 -0
  69. package/dist/graphics/camera/camera.js.map +1 -0
  70. package/dist/graphics/camera/index.d.ts +4 -0
  71. package/dist/graphics/camera/index.js +5 -0
  72. package/dist/graphics/camera/index.js.map +1 -0
  73. package/dist/graphics/camera/screen-to-world-ray.d.ts +12 -0
  74. package/dist/graphics/camera/screen-to-world-ray.js +49 -0
  75. package/dist/graphics/camera/screen-to-world-ray.js.map +1 -0
  76. package/dist/graphics/camera/screen-to-world-ray.test.d.ts +1 -0
  77. package/dist/graphics/camera/screen-to-world-ray.test.js +171 -0
  78. package/dist/graphics/camera/screen-to-world-ray.test.js.map +1 -0
  79. package/dist/graphics/camera/to-view-projection.d.ts +3 -0
  80. package/dist/graphics/camera/to-view-projection.js +8 -0
  81. package/dist/graphics/camera/to-view-projection.js.map +1 -0
  82. package/dist/graphics/camera/world-to-screen.d.ts +12 -0
  83. package/dist/graphics/camera/world-to-screen.js +38 -0
  84. package/dist/graphics/camera/world-to-screen.js.map +1 -0
  85. package/dist/graphics/camera/world-to-screen.test.d.ts +1 -0
  86. package/dist/graphics/camera/world-to-screen.test.js +124 -0
  87. package/dist/graphics/camera/world-to-screen.test.js.map +1 -0
  88. package/dist/graphics/create-struct-gpu-buffer.d.ts +7 -0
  89. package/dist/graphics/create-struct-gpu-buffer.js +17 -0
  90. package/dist/graphics/create-struct-gpu-buffer.js.map +1 -0
  91. package/dist/graphics/extract-wgsl-bindings.d.ts +5 -0
  92. package/dist/graphics/extract-wgsl-bindings.js +10 -0
  93. package/dist/graphics/extract-wgsl-bindings.js.map +1 -0
  94. package/dist/graphics/frame.d.ts +22 -0
  95. package/dist/graphics/frame.js +12 -0
  96. package/dist/graphics/frame.js.map +1 -0
  97. package/dist/graphics/get-web-gpu-device-and-context.d.ts +2 -0
  98. package/dist/graphics/get-web-gpu-device-and-context.js +21 -0
  99. package/dist/graphics/get-web-gpu-device-and-context.js.map +1 -0
  100. package/dist/graphics/graphics-context.d.ts +5 -0
  101. package/dist/graphics/graphics-context.js +2 -0
  102. package/dist/graphics/graphics-context.js.map +1 -0
  103. package/dist/graphics/index.d.ts +5 -0
  104. package/dist/graphics/index.js +5 -0
  105. package/dist/graphics/index.js.map +1 -0
  106. package/dist/graphics/to-gpu-buffer.d.ts +2 -0
  107. package/dist/graphics/to-gpu-buffer.js +14 -0
  108. package/dist/graphics/to-gpu-buffer.js.map +1 -0
  109. package/dist/internal/array/index.d.ts +1 -0
  110. package/dist/internal/array/index.js +23 -0
  111. package/dist/internal/array/index.js.map +1 -0
  112. package/dist/internal/array/topological-sort.d.ts +26 -0
  113. package/dist/internal/array/topological-sort.js +79 -0
  114. package/dist/internal/array/topological-sort.js.map +1 -0
  115. package/dist/internal/array/topological-sort.test.d.ts +1 -0
  116. package/dist/internal/array/topological-sort.test.js +100 -0
  117. package/dist/internal/array/topological-sort.test.js.map +1 -0
  118. package/dist/internal/function/debounce.d.ts +70 -0
  119. package/dist/internal/function/debounce.js +155 -0
  120. package/dist/internal/function/debounce.js.map +1 -0
  121. package/dist/internal/function/debounce.test.d.ts +1 -0
  122. package/dist/internal/function/debounce.test.js +306 -0
  123. package/dist/internal/function/debounce.test.js.map +1 -0
  124. package/dist/lit/elements/application-element.js.map +1 -1
  125. package/dist/lit/elements/application-host.d.ts +16 -0
  126. package/dist/lit/elements/application-host.js +59 -0
  127. package/dist/lit/elements/application-host.js.map +1 -0
  128. package/dist/lit/elements/index.d.ts +2 -0
  129. package/dist/lit/elements/index.js +2 -0
  130. package/dist/lit/elements/index.js.map +1 -1
  131. package/dist/lit/hooks/index.d.ts +3 -0
  132. package/dist/lit/hooks/index.js +3 -0
  133. package/dist/lit/hooks/index.js.map +1 -1
  134. package/dist/lit/hooks/use-drag-observe.d.ts +1 -1
  135. package/dist/lit/hooks/use-drag-observe.js +1 -1
  136. package/dist/lit/hooks/use-drag-observe.js.map +1 -1
  137. package/dist/lit/hooks/use-drag-transaction.d.ts +2 -3
  138. package/dist/lit/hooks/use-drag-transaction.js +3 -3
  139. package/dist/lit/hooks/use-drag-transaction.js.map +1 -1
  140. package/dist/math/aabb/aabb.d.ts +48 -0
  141. package/dist/math/aabb/aabb.js +86 -0
  142. package/dist/math/aabb/aabb.js.map +1 -0
  143. package/dist/math/aabb/line-intersection.test.d.ts +1 -0
  144. package/dist/math/aabb/line-intersection.test.js +210 -0
  145. package/dist/math/aabb/line-intersection.test.js.map +1 -0
  146. package/dist/math/constants.d.ts +4 -0
  147. package/dist/math/constants.js +26 -0
  148. package/dist/math/constants.js.map +1 -0
  149. package/dist/math/index.d.ts +18 -0
  150. package/dist/math/index.js +40 -0
  151. package/dist/math/index.js.map +1 -0
  152. package/dist/math/line2/intersects.test.d.ts +1 -0
  153. package/dist/math/line2/intersects.test.js +104 -0
  154. package/dist/math/line2/intersects.test.js.map +1 -0
  155. package/dist/math/line2/line2.d.ts +42 -0
  156. package/dist/math/line2/line2.js +78 -0
  157. package/dist/math/line2/line2.js.map +1 -0
  158. package/dist/math/line3/closest-point-on-line.test.d.ts +1 -0
  159. package/dist/math/line3/closest-point-on-line.test.js +107 -0
  160. package/dist/math/line3/closest-point-on-line.test.js.map +1 -0
  161. package/dist/math/line3/interpolate.test.d.ts +1 -0
  162. package/dist/math/line3/interpolate.test.js +66 -0
  163. package/dist/math/line3/interpolate.test.js.map +1 -0
  164. package/dist/math/line3/line3.d.ts +49 -0
  165. package/dist/math/line3/line3.js +77 -0
  166. package/dist/math/line3/line3.js.map +1 -0
  167. package/dist/math/line3/sub-line.test.d.ts +1 -0
  168. package/dist/math/line3/sub-line.test.js +70 -0
  169. package/dist/math/line3/sub-line.test.js.map +1 -0
  170. package/dist/math/mat4x4/mat4x4.d.ts +37 -0
  171. package/dist/math/mat4x4/mat4x4.js +246 -0
  172. package/dist/math/mat4x4/mat4x4.js.map +1 -0
  173. package/dist/math/picking/index.d.ts +1 -0
  174. package/dist/math/picking/index.js +23 -0
  175. package/dist/math/picking/index.js.map +1 -0
  176. package/dist/math/picking/pick-from-tables.d.ts +18 -0
  177. package/dist/math/picking/pick-from-tables.js +154 -0
  178. package/dist/math/picking/pick-from-tables.js.map +1 -0
  179. package/dist/math/picking/pick-result.d.ts +7 -0
  180. package/dist/{services/service.js → math/picking/pick-result.js} +1 -1
  181. package/dist/math/picking/pick-result.js.map +1 -0
  182. package/dist/math/quat/quat.d.ts +42 -0
  183. package/dist/math/quat/quat.js +220 -0
  184. package/dist/math/quat/quat.js.map +1 -0
  185. package/dist/math/vec2/vec2.d.ts +63 -0
  186. package/dist/math/vec2/vec2.js +114 -0
  187. package/dist/math/vec2/vec2.js.map +1 -0
  188. package/dist/math/vec3/vec3.d.ts +65 -0
  189. package/dist/math/vec3/vec3.js +154 -0
  190. package/dist/math/vec3/vec3.js.map +1 -0
  191. package/dist/math/vec4/vec4.d.ts +63 -0
  192. package/dist/math/vec4/vec4.js +154 -0
  193. package/dist/math/vec4/vec4.js.map +1 -0
  194. package/dist/observe/to-async-generator.js +4 -0
  195. package/dist/observe/to-async-generator.js.map +1 -1
  196. package/dist/observe/with-filter.d.ts +1 -1
  197. package/dist/observe/with-filter.js.map +1 -1
  198. package/dist/samples/index.d.ts +13 -0
  199. package/dist/samples/index.js +27 -0
  200. package/dist/samples/index.js.map +1 -0
  201. package/dist/samples/todo/elements/todo-list/todo-list-presentation.d.ts +25 -0
  202. package/dist/samples/todo/elements/todo-list/todo-list-presentation.js +12 -0
  203. package/dist/samples/todo/elements/todo-list/todo-list-presentation.js.map +1 -0
  204. package/dist/samples/todo/elements/todo-list/todo-list.css.d.ts +18 -0
  205. package/dist/samples/todo/elements/todo-list/todo-list.css.js +27 -0
  206. package/dist/samples/todo/elements/todo-list/todo-list.css.js.map +1 -0
  207. package/dist/samples/todo/elements/todo-list/todo-list.d.ts +12 -0
  208. package/dist/samples/todo/elements/todo-list/todo-list.js +60 -0
  209. package/dist/samples/todo/elements/todo-list/todo-list.js.map +1 -0
  210. package/dist/samples/todo/elements/todo-row/index.d.ts +18 -0
  211. package/dist/samples/todo/elements/todo-row/index.js +19 -0
  212. package/dist/samples/todo/elements/todo-row/index.js.map +1 -0
  213. package/dist/samples/todo/elements/todo-row/todo-row-presentation.d.ts +18 -0
  214. package/dist/samples/todo/elements/todo-row/todo-row-presentation.js +66 -0
  215. package/dist/samples/todo/elements/todo-row/todo-row-presentation.js.map +1 -0
  216. package/dist/samples/todo/elements/todo-row/todo-row.css.d.ts +1 -0
  217. package/dist/samples/todo/elements/todo-row/todo-row.css.js +65 -0
  218. package/dist/samples/todo/elements/todo-row/todo-row.css.js.map +1 -0
  219. package/dist/samples/todo/elements/todo-row/todo-row.d.ts +14 -0
  220. package/dist/samples/todo/elements/todo-row/todo-row.js +60 -0
  221. package/dist/samples/todo/elements/todo-row/todo-row.js.map +1 -0
  222. package/dist/samples/todo/elements/todo-toolbar/index.d.ts +18 -0
  223. package/dist/samples/todo/elements/todo-toolbar/index.js +19 -0
  224. package/dist/samples/todo/elements/todo-toolbar/index.js.map +1 -0
  225. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar-presentation.d.ts +22 -0
  226. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar-presentation.js +57 -0
  227. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar-presentation.js.map +1 -0
  228. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.css.d.ts +1 -0
  229. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.css.js +50 -0
  230. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.css.js.map +1 -0
  231. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.d.ts +11 -0
  232. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.js +77 -0
  233. package/dist/samples/todo/elements/todo-toolbar/todo-toolbar.js.map +1 -0
  234. package/dist/samples/todo/elements/todo-undo-redo/index.d.ts +18 -0
  235. package/dist/samples/todo/elements/todo-undo-redo/index.js +19 -0
  236. package/dist/samples/todo/elements/todo-undo-redo/index.js.map +1 -0
  237. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo-presentation.d.ts +17 -0
  238. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo-presentation.js +45 -0
  239. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo-presentation.js.map +1 -0
  240. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo.css.d.ts +1 -0
  241. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo.css.js +28 -0
  242. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo.css.js.map +1 -0
  243. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo.d.ts +11 -0
  244. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo.js +52 -0
  245. package/dist/samples/todo/elements/todo-undo-redo/todo-undo-redo.js.map +1 -0
  246. package/dist/samples/todo/services/dependent-state-service/create-dependent-state-service.d.ts +6 -0
  247. package/dist/samples/todo/services/dependent-state-service/create-dependent-state-service.js +21 -0
  248. package/dist/samples/todo/services/dependent-state-service/create-dependent-state-service.js.map +1 -0
  249. package/dist/samples/todo/services/dependent-state-service/dependent-state/all-todos.d.ts +19 -0
  250. package/dist/samples/todo/services/dependent-state-service/dependent-state/all-todos.js +2 -0
  251. package/dist/samples/todo/services/dependent-state-service/dependent-state/all-todos.js.map +1 -0
  252. package/dist/samples/todo/services/dependent-state-service/dependent-state/complete-todos.d.ts +19 -0
  253. package/dist/samples/todo/services/dependent-state-service/dependent-state/complete-todos.js +2 -0
  254. package/dist/samples/todo/services/dependent-state-service/dependent-state/complete-todos.js.map +1 -0
  255. package/dist/samples/todo/services/dependent-state-service/dependent-state/incomplete-todos.d.ts +19 -0
  256. package/dist/samples/todo/services/dependent-state-service/dependent-state/incomplete-todos.js +2 -0
  257. package/dist/samples/todo/services/dependent-state-service/dependent-state/incomplete-todos.js.map +1 -0
  258. package/dist/samples/todo/services/dependent-state-service/dependent-state/index.d.ts +20 -0
  259. package/dist/samples/todo/services/dependent-state-service/dependent-state/index.js +21 -0
  260. package/dist/samples/todo/services/dependent-state-service/dependent-state/index.js.map +1 -0
  261. package/dist/samples/todo/services/dependent-state-service/dependent-state-service.d.ts +19 -0
  262. package/dist/samples/todo/services/dependent-state-service/dependent-state-service.js +2 -0
  263. package/dist/samples/todo/services/dependent-state-service/dependent-state-service.js.map +1 -0
  264. package/dist/samples/todo/services/main-service/create-main-service.d.ts +25 -0
  265. package/dist/samples/todo/services/main-service/create-main-service.js +39 -0
  266. package/dist/samples/todo/services/main-service/create-main-service.js.map +1 -0
  267. package/dist/samples/todo/services/main-service/todo-main-service.d.ts +35 -0
  268. package/dist/samples/todo/services/main-service/todo-main-service.js +2 -0
  269. package/dist/samples/todo/services/main-service/todo-main-service.js.map +1 -0
  270. package/dist/samples/todo/services/state-service/create-todo-database.d.ts +13 -0
  271. package/dist/samples/todo/services/state-service/create-todo-database.js +26 -0
  272. package/dist/samples/todo/services/state-service/create-todo-database.js.map +1 -0
  273. package/dist/samples/todo/services/state-service/create-todo-store.d.ts +13 -0
  274. package/dist/samples/todo/services/state-service/create-todo-store.js +41 -0
  275. package/dist/samples/todo/services/state-service/create-todo-store.js.map +1 -0
  276. package/dist/samples/todo/services/state-service/todo-state-service.d.ts +22 -0
  277. package/dist/samples/todo/services/state-service/todo-state-service.js +2 -0
  278. package/dist/samples/todo/services/state-service/todo-state-service.js.map +1 -0
  279. package/dist/samples/todo/services/state-service/transactions/create-bulk-todos.d.ts +2 -0
  280. package/dist/samples/todo/services/state-service/transactions/create-bulk-todos.js +26 -0
  281. package/dist/samples/todo/services/state-service/transactions/create-bulk-todos.js.map +1 -0
  282. package/dist/samples/todo/services/state-service/transactions/create-todo.d.ts +22 -0
  283. package/dist/samples/todo/services/state-service/transactions/create-todo.js +13 -0
  284. package/dist/samples/todo/services/state-service/transactions/create-todo.js.map +1 -0
  285. package/dist/samples/todo/services/state-service/transactions/create-todo.test.d.ts +1 -0
  286. package/dist/samples/todo/services/state-service/transactions/create-todo.test.js +32 -0
  287. package/dist/samples/todo/services/state-service/transactions/create-todo.test.js.map +1 -0
  288. package/dist/samples/todo/services/state-service/transactions/delete-all-todos.d.ts +19 -0
  289. package/dist/samples/todo/services/state-service/transactions/delete-all-todos.js +16 -0
  290. package/dist/samples/todo/services/state-service/transactions/delete-all-todos.js.map +1 -0
  291. package/dist/samples/todo/services/state-service/transactions/delete-todo.d.ts +3 -0
  292. package/dist/samples/todo/services/state-service/transactions/delete-todo.js +24 -0
  293. package/dist/samples/todo/services/state-service/transactions/delete-todo.js.map +1 -0
  294. package/dist/samples/todo/services/state-service/transactions/delete-todo.test.d.ts +1 -0
  295. package/dist/samples/todo/services/state-service/transactions/delete-todo.test.js +40 -0
  296. package/dist/samples/todo/services/state-service/transactions/delete-todo.test.js.map +1 -0
  297. package/dist/samples/todo/services/state-service/transactions/drag-todo.d.ts +7 -0
  298. package/dist/samples/todo/services/state-service/transactions/drag-todo.js +33 -0
  299. package/dist/samples/todo/services/state-service/transactions/drag-todo.js.map +1 -0
  300. package/dist/samples/todo/services/state-service/transactions/index.d.ts +23 -0
  301. package/dist/samples/todo/services/state-service/transactions/index.js +25 -0
  302. package/dist/samples/todo/services/state-service/transactions/index.js.map +1 -0
  303. package/dist/samples/todo/services/state-service/transactions/reorder-todos.d.ts +23 -0
  304. package/dist/samples/todo/services/state-service/transactions/reorder-todos.js +11 -0
  305. package/dist/samples/todo/services/state-service/transactions/reorder-todos.js.map +1 -0
  306. package/dist/samples/todo/services/state-service/transactions/toggle-complete.d.ts +20 -0
  307. package/dist/samples/todo/services/state-service/transactions/toggle-complete.js +11 -0
  308. package/dist/samples/todo/services/state-service/transactions/toggle-complete.js.map +1 -0
  309. package/dist/samples/todo/services/state-service/transactions/toggle-complete.test.d.ts +1 -0
  310. package/dist/samples/todo/services/state-service/transactions/toggle-complete.test.js +81 -0
  311. package/dist/samples/todo/services/state-service/transactions/toggle-complete.test.js.map +1 -0
  312. package/dist/samples/todo/todo-element.d.ts +21 -0
  313. package/dist/samples/todo/todo-element.js +4 -0
  314. package/dist/samples/todo/todo-element.js.map +1 -0
  315. package/dist/samples/todo/todo-host.d.ts +8 -0
  316. package/dist/samples/todo/todo-host.js +55 -0
  317. package/dist/samples/todo/todo-host.js.map +1 -0
  318. package/dist/samples/todo/todo-main-element.d.ts +27 -0
  319. package/dist/samples/todo/todo-main-element.js +63 -0
  320. package/dist/samples/todo/todo-main-element.js.map +1 -0
  321. package/dist/samples/todo/todo-sample.d.ts +3 -0
  322. package/dist/samples/todo/todo-sample.js +39 -0
  323. package/dist/samples/todo/todo-sample.js.map +1 -0
  324. package/dist/schema/schema.d.ts +11 -6
  325. package/dist/schema/schema.js.map +1 -1
  326. package/dist/tsconfig.tsbuildinfo +1 -1
  327. package/dist/typed-buffer/register-typed-buffer-codecs.js +39 -22
  328. package/dist/typed-buffer/register-typed-buffer-codecs.js.map +1 -1
  329. package/dist/typed-buffer/structs/get-struct-layout.js +3 -0
  330. package/dist/typed-buffer/structs/get-struct-layout.js.map +1 -1
  331. package/package.json +20 -3
  332. package/dist/service/to-frontend-service.d.ts +0 -12
  333. package/dist/service/to-frontend-service.js +0 -5
  334. package/dist/service/to-frontend-service.js.map +0 -1
  335. package/dist/services/add-observable-actions.d.ts +0 -29
  336. package/dist/services/add-observable-actions.js +0 -108
  337. package/dist/services/add-observable-actions.js.map +0 -1
  338. package/dist/services/index.d.ts +0 -4
  339. package/dist/services/index.js.map +0 -1
  340. package/dist/services/is-service.d.ts +0 -2
  341. package/dist/services/is-service.js.map +0 -1
  342. package/dist/services/progressive-result.d.ts +0 -96
  343. package/dist/services/progressive-result.js +0 -99
  344. package/dist/services/progressive-result.js.map +0 -1
  345. package/dist/services/service.d.ts +0 -4
  346. package/dist/services/service.js.map +0 -1
@@ -0,0 +1,26 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { createTodoStore } from './create-todo-store.js';
19
+ import { createDatabase } from '@adobe/data/ecs';
20
+ import * as transactions from './transactions/index.js';
21
+ export const createTodoDatabase = () => {
22
+ const store = createTodoStore();
23
+ const database = createDatabase(store, transactions);
24
+ return database;
25
+ };
26
+ //# sourceMappingURL=create-todo-database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-todo-database.js","sourceRoot":"","sources":["../../../../../src/samples/todo/services/state-service/create-todo-database.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;4EAgB4E;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const todoStoreSchemaVersion = 1;
2
+ export declare const createTodoStore: () => import("@adobe/data/ecs").Store<{
3
+ name: string;
4
+ todo: true;
5
+ order: number;
6
+ complete: boolean;
7
+ dragPosition: number | null;
8
+ }, {
9
+ displayCompleted: boolean;
10
+ }, {
11
+ Todo: ("name" | "todo" | "order" | "complete" | "dragPosition")[];
12
+ }>;
13
+ export type TodoStore = ReturnType<typeof createTodoStore>;
@@ -0,0 +1,41 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { createStore } from '@adobe/data/ecs';
19
+ import { F32Schema, Nullable, TrueSchema } from '@adobe/data/schema';
20
+ // Increment this value if you change the schema in a non-backwards compatible way
21
+ export const todoStoreSchemaVersion = 1;
22
+ export const createTodoStore = () => {
23
+ return createStore(
24
+ // components
25
+ {
26
+ todo: TrueSchema, // a tag that indicates an entity is a todo item.
27
+ complete: { type: 'boolean' },
28
+ name: { type: 'string' },
29
+ order: F32Schema,
30
+ dragPosition: Nullable(F32Schema), // null = not being dragged
31
+ },
32
+ // resources
33
+ {
34
+ displayCompleted: { type: 'boolean', default: false },
35
+ },
36
+ // archetypes
37
+ {
38
+ Todo: ['todo', 'complete', 'name', 'order', 'dragPosition'],
39
+ });
40
+ };
41
+ //# sourceMappingURL=create-todo-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-todo-store.js","sourceRoot":"","sources":["../../../../../src/samples/todo/services/state-service/create-todo-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;4EAgB4E;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErE,kFAAkF;AAClF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,OAAO,WAAW;IAChB,cAAc;IACd;QACE,IAAI,EAAE,UAAU,EAAE,iDAAiD;QACnE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,2BAA2B;KAC/D;IACD,aAAa;IACb;QACE,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;KACtD;IACD,cAAc;IACd;QACE,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC;KAC5D,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { type TodoDatabase } from './create-todo-database.js';
19
+ import { FromArchetype } from '@adobe/data/ecs';
20
+ export type TodoStateService = TodoDatabase;
21
+ export type Todo = FromArchetype<TodoDatabase['archetypes']['Todo']>;
22
+ export type DragTodoFunction = TodoStateService['transactions']['dragTodo'];
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=todo-state-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-state-service.js","sourceRoot":"","sources":["../../../../../src/samples/todo/services/state-service/todo-state-service.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { type TodoStore } from '../create-todo-store.js';
2
+ export declare const createBulkTodos: (t: TodoStore, count: number) => void;
@@ -0,0 +1,26 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { createTodo } from './create-todo.js';
19
+ export const createBulkTodos = (t, count) => {
20
+ t.undoable = { coalesce: false };
21
+ const currentCount = t.archetypes.Todo.rowCount;
22
+ for (let i = 0; i < count; i++) {
23
+ createTodo(t, { name: `Todo ${currentCount + i}`, complete: false });
24
+ }
25
+ };
26
+ //# sourceMappingURL=create-bulk-todos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-bulk-todos.js","sourceRoot":"","sources":["../../../../../../src/samples/todo/services/state-service/transactions/create-bulk-todos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;4EAgB4E;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAY,EAAE,KAAa,EAAE,EAAE;IAC7D,CAAC,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACjC,MAAM,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,UAAU,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,YAAY,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { type TodoStore } from '../create-todo-store.js';
19
+ export declare const createTodo: (t: TodoStore, props: {
20
+ name: string;
21
+ complete?: boolean;
22
+ }) => number;
@@ -0,0 +1,13 @@
1
+ export const createTodo = (t, props) => {
2
+ t.undoable = { coalesce: false };
3
+ const order = t.archetypes.Todo.rowCount;
4
+ // TODO: Figure out why the order seems to be zero on each added row.
5
+ return t.archetypes.Todo.insert({
6
+ ...props,
7
+ complete: props.complete ?? false,
8
+ todo: true,
9
+ order,
10
+ dragPosition: null,
11
+ });
12
+ };
13
+ //# sourceMappingURL=create-todo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-todo.js","sourceRoot":"","sources":["../../../../../../src/samples/todo/services/state-service/transactions/create-todo.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAY,EAAE,KAA2C,EAAE,EAAE;IACtF,CAAC,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzC,qEAAqE;IACrE,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9B,GAAG,KAAK;QACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;QACjC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { createTodo } from './create-todo.js';
19
+ import { describe, expect, it } from 'vitest';
20
+ import { createTodoStore } from '../create-todo-store.js';
21
+ describe('createTodo', () => {
22
+ describe('when creating a new todo', () => {
23
+ it('should return the created todo entity id and create the todo', () => {
24
+ const t = createTodoStore();
25
+ const todoId = createTodo(t, { name: 'Buy groceries' });
26
+ expect(todoId).toBeGreaterThanOrEqual(0);
27
+ const values = t.read(todoId);
28
+ expect(values).toEqual({ id: todoId, name: 'Buy groceries', dragPosition: null, complete: false, todo: true, order: 0 });
29
+ });
30
+ });
31
+ });
32
+ //# sourceMappingURL=create-todo.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-todo.test.js","sourceRoot":"","sources":["../../../../../../src/samples/todo/services/state-service/transactions/create-todo.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;4EAgB4E;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,CAAC,GAAG,eAAe,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3H,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { type TodoStore } from '../create-todo-store.js';
19
+ export declare const deleteAllTodos: (t: TodoStore) => void;
@@ -0,0 +1,16 @@
1
+ export const deleteAllTodos = (t) => {
2
+ t.undoable = { coalesce: false };
3
+ // query for all specific archetypes which satisfy the general todo archetype
4
+ for (const archetype of t.queryArchetypes(t.archetypes.Todo.components)) {
5
+ // traverse each row in reverse order
6
+ // it's slightly more efficient to delete in this order
7
+ // since we don't need to swap the final row to fill in the hole on delete.
8
+ for (let row = archetype.rowCount - 1; row >= 0; row--) {
9
+ // get the id for this row from the id column
10
+ const entityId = archetype.columns.id.get(row);
11
+ // delete the entity
12
+ t.delete(entityId);
13
+ }
14
+ }
15
+ };
16
+ //# sourceMappingURL=delete-all-todos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-all-todos.js","sourceRoot":"","sources":["../../../../../../src/samples/todo/services/state-service/transactions/delete-all-todos.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAY,EAAE,EAAE;IAC7C,CAAC,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACjC,6EAA6E;IAC7E,KAAK,MAAM,SAAS,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxE,qCAAqC;QACrC,uDAAuD;QACvD,2EAA2E;QAC3E,KAAK,IAAI,GAAG,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;YACvD,6CAA6C;YAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/C,oBAAoB;YACpB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Entity } from '@adobe/data/ecs';
2
+ import { type TodoStore } from '../create-todo-store.js';
3
+ export declare const deleteTodo: (t: TodoStore, id: Entity) => void;
@@ -0,0 +1,24 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { reorderTodos } from './reorder-todos.js';
19
+ export const deleteTodo = (t, id) => {
20
+ t.undoable = { coalesce: false };
21
+ t.delete(id);
22
+ reorderTodos(t);
23
+ };
24
+ //# sourceMappingURL=delete-todo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-todo.js","sourceRoot":"","sources":["../../../../../../src/samples/todo/services/state-service/transactions/delete-todo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;4EAgB4E;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAY,EAAE,EAAU,EAAE,EAAE;IACrD,CAAC,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACb,YAAY,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { createTodo } from './create-todo.js';
19
+ import { deleteTodo } from './delete-todo.js';
20
+ import { describe, expect, it } from 'vitest';
21
+ import { createTodoStore } from '../create-todo-store.js';
22
+ describe('deleteTodo', () => {
23
+ describe('when deleting a todo', () => {
24
+ it('should remove it from the archetype', () => {
25
+ const t = createTodoStore();
26
+ const todoA = createTodo(t, { name: 'A' });
27
+ const todoB = createTodo(t, { name: 'B' });
28
+ const todoC = createTodo(t, { name: 'C' });
29
+ deleteTodo(t, todoA);
30
+ const values = t.read(todoA);
31
+ expect(values).toBeNull();
32
+ const valuesB = t.read(todoB);
33
+ expect(valuesB).toBeDefined();
34
+ const valuesC = t.read(todoC);
35
+ expect(valuesC).toBeDefined();
36
+ expect(t.archetypes.Todo.rowCount).toBe(2);
37
+ });
38
+ });
39
+ });
40
+ //# sourceMappingURL=delete-todo.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-todo.test.js","sourceRoot":"","sources":["../../../../../../src/samples/todo/services/state-service/transactions/delete-todo.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;4EAgB4E;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,GAAG,eAAe,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACrB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Entity } from '@adobe/data/ecs';
2
+ import { type TodoStore } from '../create-todo-store.js';
3
+ export declare const dragTodo: (t: TodoStore, props: {
4
+ todo: Entity;
5
+ dragPosition: number;
6
+ finalIndex?: number;
7
+ }) => void;
@@ -0,0 +1,33 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { reorderTodos } from './reorder-todos.js';
19
+ export const dragTodo = (t, props) => {
20
+ t.undoable = { coalesce: false };
21
+ const { todo, dragPosition, finalIndex } = props;
22
+ const completed = finalIndex !== undefined;
23
+ if (!completed) {
24
+ t.update(todo, { dragPosition });
25
+ }
26
+ else {
27
+ // insert it with an order value 0.5 less than the final index
28
+ t.update(todo, { dragPosition: null, order: finalIndex - 0.5 });
29
+ // then we call reorderTodos which will reorder everything to integer order values
30
+ reorderTodos(t); // this is an example of calling another transaction from a transaction
31
+ }
32
+ };
33
+ //# sourceMappingURL=drag-todo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drag-todo.js","sourceRoot":"","sources":["../../../../../../src/samples/todo/services/state-service/transactions/drag-todo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;4EAgB4E;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAY,EAAE,KAAkE,EAAE,EAAE;IAC3G,CAAC,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACjC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACjD,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS,CAAC;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,8DAA8D;QAC9D,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC;QAChE,kFAAkF;QAClF,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,uEAAuE;IAC1F,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ export * from './create-todo.js';
19
+ export * from './delete-todo.js';
20
+ export * from './toggle-complete.js';
21
+ export * from './create-bulk-todos.js';
22
+ export * from './drag-todo.js';
23
+ export { applyOperations } from '@adobe/data/ecs';
@@ -0,0 +1,25 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ export * from './create-todo.js';
19
+ export * from './delete-todo.js';
20
+ export * from './toggle-complete.js';
21
+ export * from './create-bulk-todos.js';
22
+ export * from './drag-todo.js';
23
+ // This is used by the undo-redo actions, the implementation is in the data package.
24
+ export { applyOperations } from '@adobe/data/ecs';
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/samples/todo/services/state-service/transactions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;4EAgB4E;AAC5E,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,oFAAoF;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { TodoStore } from '../create-todo-store.js';
19
+ /**
20
+ * Ensures each todo has an monotonically increasing integer order value.
21
+ * You might call this after inserting a todo with a floating point order value for insertion.
22
+ */
23
+ export declare const reorderTodos: (t: TodoStore) => void;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Ensures each todo has an monotonically increasing integer order value.
3
+ * You might call this after inserting a todo with a floating point order value for insertion.
4
+ */
5
+ export const reorderTodos = (t) => {
6
+ const todos = t.select(t.archetypes.Todo.components, { order: { order: true } });
7
+ for (let i = 0; i < todos.length; i++) {
8
+ t.update(todos[i], { order: i });
9
+ }
10
+ };
11
+ //# sourceMappingURL=reorder-todos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reorder-todos.js","sourceRoot":"","sources":["../../../../../../src/samples/todo/services/state-service/transactions/reorder-todos.ts"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAY,EAAE,EAAE;IAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { type Entity } from '@adobe/data/ecs';
19
+ import { type TodoStore } from '../create-todo-store.js';
20
+ export declare const toggleComplete: (t: TodoStore, id: Entity) => void;
@@ -0,0 +1,11 @@
1
+ export const toggleComplete = (t, id) => {
2
+ t.undoable = { coalesce: false };
3
+ const todo = t.read(id);
4
+ // transactions must never throw errors.
5
+ // if state is invalid they must no op.
6
+ // this is important for resolving concurrency conflicts.
7
+ if (todo) {
8
+ t.update(id, { complete: !todo.complete });
9
+ }
10
+ };
11
+ //# sourceMappingURL=toggle-complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-complete.js","sourceRoot":"","sources":["../../../../../../src/samples/todo/services/state-service/transactions/toggle-complete.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAY,EAAE,EAAU,EAAE,EAAE;IACzD,CAAC,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,wCAAwC;IACxC,uCAAuC;IACvC,yDAAyD;IACzD,IAAI,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,81 @@
1
+ /*************************************************************************
2
+ *
3
+ * ADOBE CONFIDENTIAL
4
+ * ___________________
5
+ *
6
+ * Copyright 2025 Adobe
7
+ * All Rights Reserved.
8
+ *
9
+ * NOTICE: All information contained herein is, and remains
10
+ * the property of Adobe and its suppliers, if any. The intellectual
11
+ * and technical concepts contained herein are proprietary to Adobe
12
+ * and its suppliers and are protected by all applicable intellectual
13
+ * property laws, including trade secret and copyright laws.
14
+ * Dissemination of this information or reproduction of this material
15
+ * is strictly forbidden unless prior written permission is obtained
16
+ * from Adobe.
17
+ **************************************************************************/
18
+ import { createTodo } from './create-todo.js';
19
+ import { toggleComplete } from './toggle-complete.js';
20
+ import { describe, expect, it } from 'vitest';
21
+ import { createTodoStore } from '../create-todo-store.js';
22
+ describe('toggleComplete', () => {
23
+ describe('when toggling a complete todo', () => {
24
+ it('should mark it as incomplete', () => {
25
+ const t = createTodoStore();
26
+ const todoId = createTodo(t, { name: 'Test todo' });
27
+ // First mark as complete
28
+ t.update(todoId, { complete: true });
29
+ expect(t.read(todoId)?.complete).toBe(true);
30
+ // Then toggle it
31
+ toggleComplete(t, todoId);
32
+ expect(t.read(todoId)?.complete).toBe(false);
33
+ });
34
+ });
35
+ describe('when toggling an incomplete todo', () => {
36
+ it('should mark it as complete', () => {
37
+ const t = createTodoStore();
38
+ const todoId = createTodo(t, { name: 'Test todo' });
39
+ expect(t.read(todoId)?.complete).toBe(false);
40
+ toggleComplete(t, todoId);
41
+ expect(t.read(todoId)?.complete).toBe(true);
42
+ });
43
+ });
44
+ describe('when toggling multiple times', () => {
45
+ it('should alternate between complete and incomplete', () => {
46
+ const t = createTodoStore();
47
+ const todoId = createTodo(t, { name: 'Test todo' });
48
+ expect(t.read(todoId)?.complete).toBe(false);
49
+ // First toggle
50
+ toggleComplete(t, todoId);
51
+ expect(t.read(todoId)?.complete).toBe(true);
52
+ // Second toggle
53
+ toggleComplete(t, todoId);
54
+ expect(t.read(todoId)?.complete).toBe(false);
55
+ // Third toggle
56
+ toggleComplete(t, todoId);
57
+ expect(t.read(todoId)?.complete).toBe(true);
58
+ });
59
+ });
60
+ describe('when toggling a non-existent todo', () => {
61
+ it('should not throw an error and should no-op', () => {
62
+ const t = createTodoStore();
63
+ const nonExistentId = 999;
64
+ expect(t.read(nonExistentId)).toBeNull();
65
+ // Should not throw
66
+ expect(() => toggleComplete(t, nonExistentId)).not.toThrow();
67
+ // Should still be null
68
+ expect(t.read(nonExistentId)).toBeNull();
69
+ });
70
+ });
71
+ describe('when toggling with invalid entity id', () => {
72
+ it('should not throw an error and should no-op', () => {
73
+ const t = createTodoStore();
74
+ const invalidId = -1;
75
+ // Should not throw
76
+ toggleComplete(t, invalidId);
77
+ expect(() => toggleComplete(t, invalidId)).not.toThrow();
78
+ });
79
+ });
80
+ });
81
+ //# sourceMappingURL=toggle-complete.test.js.map