@adobe/data 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/.cursorrules +28 -0
  2. package/.eslintrc.cjs +48 -0
  3. package/.github/CONTRIBUTING.md +47 -0
  4. package/CODE_OF_CONDUCT.md +79 -0
  5. package/LICENSE +21 -0
  6. package/README.md +2 -2
  7. package/asconfig.json +22 -0
  8. package/assembly/index.ts +85 -0
  9. package/assembly/tsconfig.json +17 -0
  10. package/c/build_run.sh +2 -0
  11. package/c/vector_addition +0 -0
  12. package/c/vector_addition.c +125 -0
  13. package/{cache/functions/types.js → config/license.js} +0 -2
  14. package/docs/perftest.html +28 -0
  15. package/index.html +10 -0
  16. package/package.json +50 -27
  17. package/scripts/deploy-docs.sh +41 -0
  18. package/{assembly-test/assembly.test.js → src/assembly-test/assembly.test.ts} +4 -4
  19. package/src/cache/async-cache.ts +38 -0
  20. package/{cache/blob-store.test.js → src/cache/blob-store.test.ts} +41 -7
  21. package/src/cache/blob-store.ts +278 -0
  22. package/src/cache/data-cache.test.ts +61 -0
  23. package/src/cache/data-cache.ts +183 -0
  24. package/src/cache/expiring-data-cache.test.ts +81 -0
  25. package/src/cache/expiring-data-cache.ts +61 -0
  26. package/src/cache/fallback-async-cache.ts +49 -0
  27. package/src/cache/functions/async-data-function.ts +25 -0
  28. package/src/cache/functions/functions.test.ts +84 -0
  29. package/{cache/functions/get-cached.test.js → src/cache/functions/get-cached.test.ts} +24 -7
  30. package/{cache/functions/get-cached.js → src/cache/functions/get-cached.ts} +12 -6
  31. package/{cache/functions/hashing/blob-to-hash.js → src/cache/functions/hashing/blob-to-hash.ts} +20 -18
  32. package/{cache/functions/hashing/buffer-to-hash.js → src/cache/functions/hashing/buffer-to-hash.ts} +7 -7
  33. package/src/cache/functions/hashing/hashing.test.ts +95 -0
  34. package/{cache/functions/hashing/index.js → src/cache/functions/hashing/index.ts} +1 -1
  35. package/{cache/functions/hashing/json-to-hash.js → src/cache/functions/hashing/json-to-hash.ts} +3 -3
  36. package/{cache/functions/hashing/string-to-hash.js → src/cache/functions/hashing/string-to-hash.ts} +11 -10
  37. package/{cache/functions/index.js → src/cache/functions/index.ts} +2 -4
  38. package/{cache/functions/memoize.js → src/cache/functions/memoize.ts} +22 -15
  39. package/src/cache/functions/prevent-parallel-execution.ts +50 -0
  40. package/src/cache/get-persistent-cache.ts +62 -0
  41. package/{cache/index.js → src/cache/index.ts} +9 -3
  42. package/src/cache/managed-array.ts +243 -0
  43. package/{cache/managed-async-cache.browser.test.js → src/cache/managed-async-cache.browser.test.ts} +27 -24
  44. package/src/cache/managed-async-cache.ts +78 -0
  45. package/src/cache/memory-allocator.ts +176 -0
  46. package/src/cache/memory-async-cache.ts +51 -0
  47. package/src/data.ts +38 -0
  48. package/src/ecs/README.md +21 -0
  49. package/src/ecs/archetype/archetype.ts +39 -0
  50. package/src/ecs/archetype/create-archetype.test.ts +115 -0
  51. package/src/ecs/archetype/create-archetype.ts +52 -0
  52. package/src/ecs/archetype/delete-row.test.ts +110 -0
  53. package/src/ecs/archetype/delete-row.ts +37 -0
  54. package/src/ecs/archetype/index.ts +24 -0
  55. package/src/ecs/component-schemas.ts +24 -0
  56. package/src/ecs/core-components.ts +443 -0
  57. package/src/ecs/database/create-database.test.ts +745 -0
  58. package/src/ecs/database/create-database.ts +205 -0
  59. package/src/ecs/database/database.ts +81 -0
  60. package/src/ecs/database/index.ts +24 -0
  61. package/src/ecs/database/observe-dependent-value.test.ts +198 -0
  62. package/src/ecs/database/observe-dependent-value.ts +78 -0
  63. package/src/ecs/database/transactional-store/create-transactional-store.test.ts +250 -0
  64. package/src/ecs/database/transactional-store/create-transactional-store.ts +281 -0
  65. package/{ecs/ecs/ecs-types.js → src/ecs/database/transactional-store/index.ts} +1 -2
  66. package/src/ecs/database/transactional-store/transactional-store.ts +80 -0
  67. package/src/ecs/entity-location-table/create-entity-location-table.test.ts +170 -0
  68. package/src/ecs/entity-location-table/create-entity-location-table.ts +96 -0
  69. package/src/ecs/entity-location-table/entity-location-table.ts +30 -0
  70. package/src/ecs/entity-location-table/entity-location.ts +34 -0
  71. package/src/ecs/entity-location-table/index.ts +23 -0
  72. package/src/ecs/entity.ts +26 -0
  73. package/src/ecs/index.ts +26 -0
  74. package/src/ecs/store/core/core.ts +71 -0
  75. package/src/ecs/store/core/create-core.test.ts +440 -0
  76. package/src/ecs/store/core/create-core.ts +168 -0
  77. package/{cache/async-cache.js → src/ecs/store/core/index.ts} +1 -2
  78. package/src/ecs/store/create-store.test.ts +562 -0
  79. package/src/ecs/store/create-store.ts +97 -0
  80. package/src/ecs/store/index.ts +23 -0
  81. package/{types/types.js → src/ecs/store/resource-components.ts} +2 -6
  82. package/src/ecs/store/store.ts +55 -0
  83. package/src/equals-shallow.test.ts +133 -0
  84. package/src/equals-shallow.ts +37 -0
  85. package/src/equals.test.ts +175 -0
  86. package/src/equals.ts +70 -0
  87. package/src/index.ts +27 -0
  88. package/src/internal/array-buffer-like/copy.ts +469 -0
  89. package/src/internal/array-buffer-like/grow.ts +53 -0
  90. package/{core/index.js → src/internal/array-buffer-like/index.ts} +4 -4
  91. package/src/internal/array-buffer-like/is-array-buffer.ts +445 -0
  92. package/src/internal/array-buffer-like/is-shared-array-buffer.ts +445 -0
  93. package/{core/functions/is-async-generator.js → src/internal/async-generator/is-async-generator.ts} +2 -2
  94. package/{core/schema.js → src/internal/data-view-32/create-data-view-32.ts} +8 -11
  95. package/src/internal/data-view-32/data-view-32.ts +447 -0
  96. package/{ecs/action-ecs/index.js → src/internal/data-view-32/index.ts} +2 -2
  97. package/src/internal/function/memoize-factory.ts +12 -0
  98. package/src/internal/object/index.ts +23 -0
  99. package/{cache/functions/bind-functions.js → src/internal/object/map-entries.ts} +6 -11
  100. package/src/internal/promise/is-promise.ts +28 -0
  101. package/src/internal/typed-array/get-byte-size.ts +50 -0
  102. package/src/internal/typed-array/index.ts +24 -0
  103. package/src/internal/typed-array/typed-array-constructer.ts +32 -0
  104. package/src/internal/typed-array/typed-array.ts +25 -0
  105. package/src/is-data.ts +47 -0
  106. package/src/lit/decorators/apply-decorator.ts +24 -0
  107. package/src/lit/decorators/apply-service-decorators.ts +13 -0
  108. package/src/lit/decorators/index.ts +24 -0
  109. package/src/lit/decorators/require-service.ts +19 -0
  110. package/src/lit/elements/index.ts +3 -0
  111. package/src/lit/elements/service-application.ts +26 -0
  112. package/src/lit/elements/service-context.ts +3 -0
  113. package/src/lit/elements/service-element.ts +18 -0
  114. package/src/lit/hooks/component/component.ts +10 -0
  115. package/src/lit/hooks/component/stack.ts +17 -0
  116. package/src/lit/hooks/index.ts +13 -0
  117. package/src/lit/hooks/use-connected.ts +39 -0
  118. package/src/lit/hooks/use-effect.ts +17 -0
  119. package/src/lit/hooks/use-element.ts +8 -0
  120. package/src/lit/hooks/use-memo.ts +14 -0
  121. package/src/lit/hooks/use-observable-values.ts +9 -0
  122. package/src/lit/hooks/use-observable.ts +13 -0
  123. package/src/lit/hooks/use-ref.ts +6 -0
  124. package/src/lit/hooks/use-resize-observer.ts +27 -0
  125. package/src/lit/hooks/use-state.ts +17 -0
  126. package/src/lit/hooks/use-window-event.ts +14 -0
  127. package/src/lit/hooks/with-hooks.ts +20 -0
  128. package/src/lit/index.ts +3 -0
  129. package/src/mutable-clone.ts +29 -0
  130. package/{core/data.test.js → src/normalize.test.ts} +22 -22
  131. package/src/normalize.ts +37 -0
  132. package/src/observe/create-observable-event.ts +47 -0
  133. package/src/observe/create-observable-state.ts +51 -0
  134. package/src/observe/create-persisted-state.test.ts +143 -0
  135. package/src/observe/create-persisted-state.ts +60 -0
  136. package/src/observe/create-query-state.ts +70 -0
  137. package/{observe/from-array.js → src/observe/from-array.ts} +14 -3
  138. package/{service/service.js → src/observe/from-constant.ts} +13 -4
  139. package/{observe/from-element-id.js → src/observe/from-element-id.ts} +44 -39
  140. package/src/observe/from-element-properties-and-events.ts +47 -0
  141. package/{observe/from-element-property.js → src/observe/from-element-property.ts} +33 -25
  142. package/src/observe/from-promise-with-error.ts +51 -0
  143. package/src/observe/from-promise.ts +49 -0
  144. package/src/observe/from-properties.ts +67 -0
  145. package/{observe/index.js → src/observe/index.ts} +4 -1
  146. package/src/observe/observe.test.ts +467 -0
  147. package/src/observe/to-promise.ts +40 -0
  148. package/src/observe/to-properties.ts +41 -0
  149. package/src/observe/types.ts +40 -0
  150. package/src/observe/with-async-map.ts +37 -0
  151. package/src/observe/with-batch.test.ts +141 -0
  152. package/src/observe/with-batch.ts +67 -0
  153. package/{core/data.js → src/observe/with-cache.ts} +32 -26
  154. package/src/observe/with-copy.ts +32 -0
  155. package/src/observe/with-deduplicate-data.ts +43 -0
  156. package/src/observe/with-deduplicate.ts +41 -0
  157. package/src/observe/with-default.ts +48 -0
  158. package/src/observe/with-lazy.test.ts +68 -0
  159. package/{core/functions/is-promise.js → src/observe/with-lazy.ts} +17 -5
  160. package/{observe/with-map-data.js → src/observe/with-map-data.ts} +9 -3
  161. package/src/observe/with-map.ts +36 -0
  162. package/src/observe/with-optional.ts +47 -0
  163. package/src/observe/with-unwrap.ts +54 -0
  164. package/src/old-ecs/action-ecs/action-ecs.test.ts +420 -0
  165. package/src/old-ecs/action-ecs/action-ecs.ts +274 -0
  166. package/src/old-ecs/action-ecs/action-types.ts +178 -0
  167. package/{core/functions/index.js → src/old-ecs/action-ecs/index.ts} +8 -5
  168. package/{service/sequential-action.js → src/old-ecs/action-ecs/sequential-action.ts} +19 -4
  169. package/src/old-ecs/core-ecs/core-ecs-serialization.test.ts +244 -0
  170. package/src/old-ecs/core-ecs/core-ecs-types.ts +183 -0
  171. package/src/old-ecs/core-ecs/core-ecs.test.ts +474 -0
  172. package/src/old-ecs/core-ecs/core-ecs.ts +640 -0
  173. package/src/old-ecs/core-ecs/index.ts +30 -0
  174. package/src/old-ecs/ecs/ecs-types.ts +189 -0
  175. package/src/old-ecs/ecs/ecs-where-functions.ts +95 -0
  176. package/src/old-ecs/ecs/ecs.test.ts +461 -0
  177. package/src/old-ecs/ecs/ecs.ts +279 -0
  178. package/{ecs/core-ecs/core-ecs-types.js → src/old-ecs/ecs/index.ts} +2 -2
  179. package/src/old-ecs/entity.ts +26 -0
  180. package/{ecs/index.js → src/old-ecs/index.ts} +1 -1
  181. package/{ecs/transaction-ecs/index.js → src/old-ecs/transaction-ecs/index.ts} +0 -1
  182. package/src/old-ecs/transaction-ecs/transaction-ecs.test.ts +725 -0
  183. package/src/old-ecs/transaction-ecs/transaction-ecs.ts +283 -0
  184. package/src/old-ecs/transaction-ecs/transaction-types.ts +248 -0
  185. package/src/old-ecs/transaction-ecs/transactions.ts +243 -0
  186. package/src/perftest/ecs-perf.ts +255 -0
  187. package/src/perftest/helper-functions.ts +31 -0
  188. package/src/perftest/horizon-perf.ts +132 -0
  189. package/{perftest/index.js → src/perftest/index.ts} +9 -7
  190. package/src/perftest/perf-test.ts +193 -0
  191. package/src/perftest/perf.md +90 -0
  192. package/src/perftest/vanilla-perf.ts +136 -0
  193. package/src/schema/boolean.ts +5 -0
  194. package/src/schema/dynamic/deep-merge.test.ts +100 -0
  195. package/src/schema/dynamic/deep-merge.ts +67 -0
  196. package/src/schema/dynamic/enumerate-patches.test.ts +235 -0
  197. package/src/schema/dynamic/enumerate-patches.ts +90 -0
  198. package/src/schema/dynamic/get-dynamic-schema.test.ts +129 -0
  199. package/src/schema/dynamic/get-dynamic-schema.ts +48 -0
  200. package/src/schema/dynamic/index.ts +22 -0
  201. package/src/schema/f32.ts +30 -0
  202. package/src/schema/i32.ts +31 -0
  203. package/src/schema/index.ts +32 -0
  204. package/{cache/functions/omit.js → src/schema/nullable.ts} +10 -7
  205. package/src/schema/schema.ts +229 -0
  206. package/src/schema/time.ts +5 -0
  207. package/src/schema/true.ts +26 -0
  208. package/src/schema/tuple.ts +5 -0
  209. package/src/schema/u32.ts +31 -0
  210. package/src/schema/validation/is-valid.test.ts +43 -0
  211. package/{core/functions/array-equals.js → src/schema/validation/is-valid.ts} +8 -10
  212. package/src/schema/validation/validate.test.ts +120 -0
  213. package/src/schema/validation/validate.ts +41 -0
  214. package/{core/functions/with-validation.test.js → src/schema/validation/with-validation.test.ts} +28 -12
  215. package/{core/functions/with-validation.js → src/schema/validation/with-validation.ts} +14 -10
  216. package/src/schema.test.ts +55 -0
  217. package/src/service/add-observable-actions.ts +207 -0
  218. package/{service/index.js → src/service/index.ts} +4 -4
  219. package/src/service/is-service.ts +7 -0
  220. package/src/service/progressive-result.ts +141 -0
  221. package/src/service/service.ts +27 -0
  222. package/src/table/add-row.ts +42 -0
  223. package/src/table/create-table.ts +36 -0
  224. package/src/table/delete-row.ts +42 -0
  225. package/src/table/ensure-capacity.ts +37 -0
  226. package/src/table/get-row-data.ts +31 -0
  227. package/src/table/index.ts +29 -0
  228. package/src/table/row-index.ts +26 -0
  229. package/src/table/table.ts +32 -0
  230. package/src/table/update-row.ts +35 -0
  231. package/src/tsconfig.json +6 -0
  232. package/src/typed-buffer/copy-to-gpu-buffer.ts +23 -0
  233. package/{cache/expiring-data-cache.js → src/typed-buffer/create-array-buffer.ts} +31 -25
  234. package/src/typed-buffer/create-number-buffer.ts +90 -0
  235. package/src/typed-buffer/create-struct-buffer.ts +93 -0
  236. package/src/typed-buffer/create-typed-buffer.ts +49 -0
  237. package/src/typed-buffer/index.ts +26 -0
  238. package/src/typed-buffer/structs/assert-struct.ts +37 -0
  239. package/src/typed-buffer/structs/create-read-struct.test.ts +202 -0
  240. package/src/typed-buffer/structs/create-read-struct.ts +77 -0
  241. package/src/typed-buffer/structs/create-write-struct.ts +73 -0
  242. package/src/typed-buffer/structs/get-field-offset.ts +36 -0
  243. package/src/typed-buffer/structs/get-struct-layout.test.ts +146 -0
  244. package/src/typed-buffer/structs/get-struct-layout.ts +222 -0
  245. package/src/typed-buffer/structs/index.ts +22 -0
  246. package/src/typed-buffer/structs/read-struct.ts +25 -0
  247. package/src/typed-buffer/structs/struct-layout.ts +465 -0
  248. package/src/typed-buffer/structs/write-struct.test.ts +195 -0
  249. package/src/typed-buffer/structs/write-struct.ts +25 -0
  250. package/src/typed-buffer/typed-buffer.test.ts +253 -0
  251. package/src/typed-buffer/typed-buffer.ts +41 -0
  252. package/src/types/assert.ts +22 -0
  253. package/src/types/equal.ts +24 -0
  254. package/{types/index.js → src/types/index.ts} +3 -1
  255. package/src/types/types.ts +166 -0
  256. package/tsconfig-base.json +25 -0
  257. package/tsconfig.json +8 -0
  258. package/typedoc.json +22 -0
  259. package/vite.config.js +16 -0
  260. package/assembly/index.d.ts +0 -30
  261. package/assembly/index.js +0 -18
  262. package/assembly/index.wasm +0 -0
  263. package/assembly/index.wasm.map +0 -1
  264. package/assembly-test/assembly.test.d.ts +0 -1
  265. package/assembly-test/assembly.test.js.map +0 -1
  266. package/cache/async-cache.d.ts +0 -15
  267. package/cache/async-cache.js.map +0 -1
  268. package/cache/blob-store.d.ts +0 -94
  269. package/cache/blob-store.js +0 -191
  270. package/cache/blob-store.js.map +0 -1
  271. package/cache/blob-store.test.d.ts +0 -1
  272. package/cache/blob-store.test.js.map +0 -1
  273. package/cache/data-cache.d.ts +0 -38
  274. package/cache/data-cache.js +0 -96
  275. package/cache/data-cache.js.map +0 -1
  276. package/cache/data-cache.test.d.ts +0 -1
  277. package/cache/data-cache.test.js +0 -50
  278. package/cache/data-cache.test.js.map +0 -1
  279. package/cache/expiring-data-cache.d.ts +0 -6
  280. package/cache/expiring-data-cache.js.map +0 -1
  281. package/cache/expiring-data-cache.test.d.ts +0 -1
  282. package/cache/expiring-data-cache.test.js +0 -62
  283. package/cache/expiring-data-cache.test.js.map +0 -1
  284. package/cache/fallback-async-cache.d.ts +0 -7
  285. package/cache/fallback-async-cache.js +0 -22
  286. package/cache/fallback-async-cache.js.map +0 -1
  287. package/cache/functions/bind-functions.d.ts +0 -6
  288. package/cache/functions/bind-functions.js.map +0 -1
  289. package/cache/functions/functions.test.d.ts +0 -1
  290. package/cache/functions/functions.test.js +0 -79
  291. package/cache/functions/functions.test.js.map +0 -1
  292. package/cache/functions/get-cached.d.ts +0 -11
  293. package/cache/functions/get-cached.js.map +0 -1
  294. package/cache/functions/get-cached.test.d.ts +0 -1
  295. package/cache/functions/get-cached.test.js.map +0 -1
  296. package/cache/functions/hashing/blob-to-hash.d.ts +0 -4
  297. package/cache/functions/hashing/blob-to-hash.js.map +0 -1
  298. package/cache/functions/hashing/buffer-to-hash.d.ts +0 -4
  299. package/cache/functions/hashing/buffer-to-hash.js.map +0 -1
  300. package/cache/functions/hashing/hashing.test.d.ts +0 -1
  301. package/cache/functions/hashing/hashing.test.js +0 -95
  302. package/cache/functions/hashing/hashing.test.js.map +0 -1
  303. package/cache/functions/hashing/index.d.ts +0 -4
  304. package/cache/functions/hashing/index.js.map +0 -1
  305. package/cache/functions/hashing/json-to-hash.d.ts +0 -4
  306. package/cache/functions/hashing/json-to-hash.js.map +0 -1
  307. package/cache/functions/hashing/string-to-hash.d.ts +0 -4
  308. package/cache/functions/hashing/string-to-hash.js.map +0 -1
  309. package/cache/functions/index.d.ts +0 -5
  310. package/cache/functions/index.js.map +0 -1
  311. package/cache/functions/memoize.d.ts +0 -12
  312. package/cache/functions/memoize.js.map +0 -1
  313. package/cache/functions/omit.d.ts +0 -1
  314. package/cache/functions/omit.js.map +0 -1
  315. package/cache/functions/prevent-parallel-execution.d.ts +0 -7
  316. package/cache/functions/prevent-parallel-execution.js +0 -25
  317. package/cache/functions/prevent-parallel-execution.js.map +0 -1
  318. package/cache/functions/types.d.ts +0 -1
  319. package/cache/functions/types.js.map +0 -1
  320. package/cache/get-persistent-cache.d.ts +0 -12
  321. package/cache/get-persistent-cache.js +0 -23
  322. package/cache/get-persistent-cache.js.map +0 -1
  323. package/cache/index.d.ts +0 -3
  324. package/cache/index.js.map +0 -1
  325. package/cache/managed-array.d.ts +0 -23
  326. package/cache/managed-array.js +0 -160
  327. package/cache/managed-array.js.map +0 -1
  328. package/cache/managed-async-cache.browser.test.d.ts +0 -1
  329. package/cache/managed-async-cache.browser.test.js.map +0 -1
  330. package/cache/managed-async-cache.d.ts +0 -4
  331. package/cache/managed-async-cache.js +0 -45
  332. package/cache/managed-async-cache.js.map +0 -1
  333. package/cache/memory-allocator.d.ts +0 -23
  334. package/cache/memory-allocator.js +0 -94
  335. package/cache/memory-allocator.js.map +0 -1
  336. package/cache/memory-async-cache.d.ts +0 -6
  337. package/cache/memory-async-cache.js +0 -23
  338. package/cache/memory-async-cache.js.map +0 -1
  339. package/core/data.d.ts +0 -22
  340. package/core/data.js.map +0 -1
  341. package/core/data.test.d.ts +0 -1
  342. package/core/data.test.js.map +0 -1
  343. package/core/functions/array-equals.d.ts +0 -1
  344. package/core/functions/array-equals.js.map +0 -1
  345. package/core/functions/deep-merge.d.ts +0 -31
  346. package/core/functions/deep-merge.js +0 -51
  347. package/core/functions/deep-merge.js.map +0 -1
  348. package/core/functions/deep-merge.test.d.ts +0 -1
  349. package/core/functions/deep-merge.test.js +0 -94
  350. package/core/functions/deep-merge.test.js.map +0 -1
  351. package/core/functions/index.d.ts +0 -4
  352. package/core/functions/index.js.map +0 -1
  353. package/core/functions/is-async-generator.d.ts +0 -1
  354. package/core/functions/is-async-generator.js.map +0 -1
  355. package/core/functions/is-promise.d.ts +0 -1
  356. package/core/functions/is-promise.js.map +0 -1
  357. package/core/functions/with-validation.d.ts +0 -5
  358. package/core/functions/with-validation.js.map +0 -1
  359. package/core/functions/with-validation.test.d.ts +0 -1
  360. package/core/functions/with-validation.test.js.map +0 -1
  361. package/core/index.d.ts +0 -3
  362. package/core/index.js.map +0 -1
  363. package/core/schema.d.ts +0 -86
  364. package/core/schema.js.map +0 -1
  365. package/core/schema.test.d.ts +0 -1
  366. package/core/schema.test.js +0 -16
  367. package/core/schema.test.js.map +0 -1
  368. package/ecs/action-ecs/action-ecs.d.ts +0 -19
  369. package/ecs/action-ecs/action-ecs.js +0 -203
  370. package/ecs/action-ecs/action-ecs.js.map +0 -1
  371. package/ecs/action-ecs/action-ecs.test.d.ts +0 -1
  372. package/ecs/action-ecs/action-ecs.test.js +0 -362
  373. package/ecs/action-ecs/action-ecs.test.js.map +0 -1
  374. package/ecs/action-ecs/action-types.d.ts +0 -106
  375. package/ecs/action-ecs/action-types.js +0 -19
  376. package/ecs/action-ecs/action-types.js.map +0 -1
  377. package/ecs/action-ecs/index.d.ts +0 -2
  378. package/ecs/action-ecs/index.js.map +0 -1
  379. package/ecs/core-ecs/core-ecs-serialization.test.d.ts +0 -1
  380. package/ecs/core-ecs/core-ecs-serialization.test.js +0 -230
  381. package/ecs/core-ecs/core-ecs-serialization.test.js.map +0 -1
  382. package/ecs/core-ecs/core-ecs-types.d.ts +0 -141
  383. package/ecs/core-ecs/core-ecs-types.js.map +0 -1
  384. package/ecs/core-ecs/core-ecs.d.ts +0 -7
  385. package/ecs/core-ecs/core-ecs.js +0 -492
  386. package/ecs/core-ecs/core-ecs.js.map +0 -1
  387. package/ecs/core-ecs/core-ecs.test.d.ts +0 -1
  388. package/ecs/core-ecs/core-ecs.test.js +0 -404
  389. package/ecs/core-ecs/core-ecs.test.js.map +0 -1
  390. package/ecs/core-ecs/index.d.ts +0 -1
  391. package/ecs/core-ecs/index.js +0 -2
  392. package/ecs/core-ecs/index.js.map +0 -1
  393. package/ecs/ecs/ecs-types.d.ts +0 -132
  394. package/ecs/ecs/ecs-types.js.map +0 -1
  395. package/ecs/ecs/ecs-where-functions.d.ts +0 -6
  396. package/ecs/ecs/ecs-where-functions.js +0 -91
  397. package/ecs/ecs/ecs-where-functions.js.map +0 -1
  398. package/ecs/ecs/ecs.d.ts +0 -13
  399. package/ecs/ecs/ecs.js +0 -177
  400. package/ecs/ecs/ecs.js.map +0 -1
  401. package/ecs/ecs/ecs.test.d.ts +0 -1
  402. package/ecs/ecs/ecs.test.js +0 -399
  403. package/ecs/ecs/ecs.test.js.map +0 -1
  404. package/ecs/ecs/index.d.ts +0 -3
  405. package/ecs/ecs/index.js +0 -3
  406. package/ecs/ecs/index.js.map +0 -1
  407. package/ecs/index.d.ts +0 -4
  408. package/ecs/index.js.map +0 -1
  409. package/ecs/transaction-ecs/index.d.ts +0 -2
  410. package/ecs/transaction-ecs/index.js.map +0 -1
  411. package/ecs/transaction-ecs/transaction-ecs.d.ts +0 -11
  412. package/ecs/transaction-ecs/transaction-ecs.js +0 -184
  413. package/ecs/transaction-ecs/transaction-ecs.js.map +0 -1
  414. package/ecs/transaction-ecs/transaction-ecs.test.d.ts +0 -1
  415. package/ecs/transaction-ecs/transaction-ecs.test.js +0 -599
  416. package/ecs/transaction-ecs/transaction-ecs.test.js.map +0 -1
  417. package/ecs/transaction-ecs/transaction-types.d.ts +0 -135
  418. package/ecs/transaction-ecs/transaction-types.js +0 -2
  419. package/ecs/transaction-ecs/transaction-types.js.map +0 -1
  420. package/ecs/transaction-ecs/transactions.d.ts +0 -5
  421. package/ecs/transaction-ecs/transactions.js +0 -158
  422. package/ecs/transaction-ecs/transactions.js.map +0 -1
  423. package/index.d.ts +0 -1
  424. package/index.js +0 -23
  425. package/index.js.map +0 -1
  426. package/observe/create-observable-event.d.ts +0 -10
  427. package/observe/create-observable-event.js +0 -22
  428. package/observe/create-observable-event.js.map +0 -1
  429. package/observe/create-observable-state.d.ts +0 -7
  430. package/observe/create-observable-state.js +0 -27
  431. package/observe/create-observable-state.js.map +0 -1
  432. package/observe/create-persisted-state.d.ts +0 -11
  433. package/observe/create-persisted-state.js +0 -31
  434. package/observe/create-persisted-state.js.map +0 -1
  435. package/observe/create-persisted-state.test.d.ts +0 -1
  436. package/observe/create-persisted-state.test.js +0 -124
  437. package/observe/create-persisted-state.test.js.map +0 -1
  438. package/observe/from-array.d.ts +0 -5
  439. package/observe/from-array.js.map +0 -1
  440. package/observe/from-constant.d.ts +0 -5
  441. package/observe/from-constant.js +0 -12
  442. package/observe/from-constant.js.map +0 -1
  443. package/observe/from-element-id.d.ts +0 -7
  444. package/observe/from-element-id.js.map +0 -1
  445. package/observe/from-element-properties-and-events.d.ts +0 -2
  446. package/observe/from-element-properties-and-events.js +0 -18
  447. package/observe/from-element-properties-and-events.js.map +0 -1
  448. package/observe/from-element-property.d.ts +0 -11
  449. package/observe/from-element-property.js.map +0 -1
  450. package/observe/from-promise-with-error.d.ts +0 -7
  451. package/observe/from-promise-with-error.js +0 -27
  452. package/observe/from-promise-with-error.js.map +0 -1
  453. package/observe/from-promise.d.ts +0 -6
  454. package/observe/from-promise.js +0 -22
  455. package/observe/from-promise.js.map +0 -1
  456. package/observe/from-properties.d.ts +0 -10
  457. package/observe/from-properties.js +0 -33
  458. package/observe/from-properties.js.map +0 -1
  459. package/observe/index.d.ts +0 -27
  460. package/observe/index.js.map +0 -1
  461. package/observe/observe.test.d.ts +0 -7
  462. package/observe/observe.test.js +0 -417
  463. package/observe/observe.test.js.map +0 -1
  464. package/observe/to-promise.d.ts +0 -8
  465. package/observe/to-promise.js +0 -18
  466. package/observe/to-promise.js.map +0 -1
  467. package/observe/to-properties.d.ts +0 -11
  468. package/observe/to-properties.js +0 -9
  469. package/observe/to-properties.js.map +0 -1
  470. package/observe/types.d.ts +0 -17
  471. package/observe/types.js +0 -2
  472. package/observe/types.js.map +0 -1
  473. package/observe/with-async-map.d.ts +0 -6
  474. package/observe/with-async-map.js +0 -12
  475. package/observe/with-async-map.js.map +0 -1
  476. package/observe/with-cache.d.ts +0 -6
  477. package/observe/with-cache.js +0 -33
  478. package/observe/with-cache.js.map +0 -1
  479. package/observe/with-copy.d.ts +0 -5
  480. package/observe/with-copy.js +0 -10
  481. package/observe/with-copy.js.map +0 -1
  482. package/observe/with-deduplicate-data.d.ts +0 -7
  483. package/observe/with-deduplicate-data.js +0 -18
  484. package/observe/with-deduplicate-data.js.map +0 -1
  485. package/observe/with-deduplicate.d.ts +0 -6
  486. package/observe/with-deduplicate.js +0 -19
  487. package/observe/with-deduplicate.js.map +0 -1
  488. package/observe/with-default.d.ts +0 -6
  489. package/observe/with-default.js +0 -21
  490. package/observe/with-default.js.map +0 -1
  491. package/observe/with-map-data.d.ts +0 -7
  492. package/observe/with-map-data.js.map +0 -1
  493. package/observe/with-map.d.ts +0 -5
  494. package/observe/with-map.js +0 -11
  495. package/observe/with-map.js.map +0 -1
  496. package/observe/with-optional.d.ts +0 -5
  497. package/observe/with-optional.js +0 -20
  498. package/observe/with-optional.js.map +0 -1
  499. package/observe/with-unwrap.d.ts +0 -5
  500. package/observe/with-unwrap.js +0 -26
  501. package/observe/with-unwrap.js.map +0 -1
  502. package/perftest/ecs-perf.d.ts +0 -49
  503. package/perftest/ecs-perf.js +0 -230
  504. package/perftest/ecs-perf.js.map +0 -1
  505. package/perftest/helper-functions.d.ts +0 -1
  506. package/perftest/helper-functions.js +0 -31
  507. package/perftest/helper-functions.js.map +0 -1
  508. package/perftest/horizon-perf.d.ts +0 -22
  509. package/perftest/horizon-perf.js +0 -126
  510. package/perftest/horizon-perf.js.map +0 -1
  511. package/perftest/index.d.ts +0 -1
  512. package/perftest/index.js.map +0 -1
  513. package/perftest/perf-test.d.ts +0 -18
  514. package/perftest/perf-test.js +0 -124
  515. package/perftest/perf-test.js.map +0 -1
  516. package/perftest/vanilla-perf.d.ts +0 -38
  517. package/perftest/vanilla-perf.js +0 -128
  518. package/perftest/vanilla-perf.js.map +0 -1
  519. package/schemas/index.d.ts +0 -1
  520. package/schemas/index.js +0 -23
  521. package/schemas/index.js.map +0 -1
  522. package/schemas/schemas.d.ts +0 -45
  523. package/schemas/schemas.js +0 -39
  524. package/schemas/schemas.js.map +0 -1
  525. package/service/add-observable-actions.d.ts +0 -29
  526. package/service/add-observable-actions.js +0 -108
  527. package/service/add-observable-actions.js.map +0 -1
  528. package/service/index.d.ts +0 -4
  529. package/service/index.js.map +0 -1
  530. package/service/progressive-result.d.ts +0 -96
  531. package/service/progressive-result.js +0 -99
  532. package/service/progressive-result.js.map +0 -1
  533. package/service/sequential-action.d.ts +0 -18
  534. package/service/sequential-action.js.map +0 -1
  535. package/service/service.d.ts +0 -4
  536. package/service/service.js.map +0 -1
  537. package/tsconfig.tsbuildinfo +0 -1
  538. package/types/index.d.ts +0 -1
  539. package/types/index.js.map +0 -1
  540. package/types/types.d.ts +0 -61
  541. package/types/types.js.map +0 -1
@@ -1,23 +0,0 @@
1
- import { MemoryAllocator } from "./memory-allocator.js";
2
- import { FromSchema, Schema } from "../core/schema.js";
3
- import { Data } from "../core/index.js";
4
- export interface NativeArray<T> {
5
- readonly length: number;
6
- [n: number]: T;
7
- }
8
- /**
9
- * Represents an abstraction over Arrays, numeric TypedArrays and
10
- * TypedArrays which contain tightly packed linear memory structures.
11
- */
12
- export interface ManagedArray<T> {
13
- get(index: number): T;
14
- set(index: number, value: T): void;
15
- readonly native?: NativeArray<T>;
16
- readonly constant: boolean;
17
- ensureCapacity(capacity: number): void;
18
- slice(from: number, length: number): Array<T>;
19
- move(from: number, to: number): void;
20
- toJSON(length: number, allowEncoding?: boolean): Data;
21
- fromJSON(data: Data, length: number): void;
22
- }
23
- export declare function createManagedArray<S extends Schema>(s: S, allocator: MemoryAllocator): ManagedArray<FromSchema<S>>;
@@ -1,160 +0,0 @@
1
- function createManagedConstantArray(value) {
2
- return {
3
- constant: true,
4
- get(_index) {
5
- return value;
6
- },
7
- set(_index, _value) { },
8
- move(_from, _to) { },
9
- slice(_from, _length) {
10
- return [value];
11
- },
12
- ensureCapacity(_capacity) { },
13
- toJSON(_length) {
14
- return value;
15
- },
16
- fromJSON(data) {
17
- if (data !== value) {
18
- throw new Error(`Cannot set constant array to ${data}`);
19
- }
20
- },
21
- };
22
- }
23
- function createManagedBasicArray() {
24
- const array = [];
25
- return {
26
- constant: false,
27
- native: array,
28
- get: (index) => array[index],
29
- set: (index, value) => (array[index] = value),
30
- move: (from, to) => (array[to] = array[from]),
31
- ensureCapacity: (_capacity) => { },
32
- slice: (from, length) => array.slice(from, from + length),
33
- toJSON(length) {
34
- return array.slice(0, length);
35
- },
36
- fromJSON(data) {
37
- if (!Array.isArray(data)) {
38
- throw new Error(`Cannot set array to ${data}`);
39
- }
40
- array.length = 0;
41
- array.push(...data);
42
- },
43
- };
44
- }
45
- function binaryEncode(subarray) {
46
- return btoa(String.fromCharCode(...new Uint8Array(subarray.buffer, subarray.byteOffset, subarray.byteLength)));
47
- }
48
- function binaryDecode(data, length, ctor) {
49
- const binaryString = atob(data);
50
- const byteArray = new Uint8Array(binaryString.length);
51
- for (let i = 0; i < binaryString.length; i++) {
52
- byteArray[i] = binaryString.charCodeAt(i);
53
- }
54
- return new ctor(byteArray.buffer, byteArray.byteOffset, length);
55
- }
56
- function createManagedTypedArray(ctor, allocator) {
57
- let capacity = 16;
58
- let array = allocator.allocate(ctor, capacity);
59
- // when the main wasm memory is resized, we need to refresh the array.
60
- allocator.needsRefresh(() => {
61
- array = allocator.refresh(array);
62
- });
63
- const grow = (newCapacity) => {
64
- if (newCapacity && newCapacity > capacity) {
65
- array = allocator.refresh(array);
66
- const oldArray = array;
67
- const growthFactor = 2;
68
- capacity = Math.max(newCapacity, capacity * growthFactor);
69
- const newArray = allocator.allocate(ctor, capacity);
70
- newArray.set(array);
71
- array = newArray;
72
- allocator.release(oldArray);
73
- }
74
- };
75
- const result = {
76
- constant: false,
77
- get native() {
78
- return array;
79
- },
80
- get(index) {
81
- return array[index];
82
- },
83
- set(index, value) {
84
- // if (index >= capacity) {
85
- // grow();
86
- // }
87
- array[index] = value;
88
- },
89
- move(from, to) {
90
- array[to] = array[from];
91
- },
92
- slice(start, end) {
93
- return [...array.subarray(start, end)];
94
- },
95
- ensureCapacity(newCapacity) {
96
- grow(newCapacity);
97
- },
98
- toJSON(length, allowEncoding = true) {
99
- const subarray = array.subarray(0, length);
100
- if (!allowEncoding) {
101
- return Array.from(subarray);
102
- }
103
- const jsonString = JSON.stringify(Array.from(subarray));
104
- const binaryString = binaryEncode(subarray);
105
- return binaryString.length < jsonString.length
106
- ? binaryString
107
- : Array.from(subarray);
108
- },
109
- fromJSON(data, length) {
110
- if (typeof data === "string") {
111
- const decodedArray = binaryDecode(data, length, ctor);
112
- if (decodedArray.length > capacity) {
113
- grow(decodedArray.length);
114
- }
115
- array.set(decodedArray);
116
- }
117
- else {
118
- if (!Array.isArray(data)) {
119
- throw new Error(`Cannot set array to ${data}`);
120
- }
121
- if (data.length > capacity) {
122
- grow(data.length);
123
- }
124
- array.set(data);
125
- }
126
- },
127
- };
128
- return result;
129
- }
130
- export function createManagedArray(s, allocator) {
131
- if (s.const !== undefined) {
132
- return createManagedConstantArray(s.const);
133
- }
134
- if (s.type === "number") {
135
- if (s.precision === 1) {
136
- return createManagedTypedArray(Float32Array, allocator);
137
- }
138
- // default to double precision float
139
- return createManagedTypedArray(Float64Array, allocator);
140
- }
141
- if (s.type === "integer" &&
142
- s.minimum !== undefined) {
143
- if (s.minimum >= 0) {
144
- if (s.maximum) {
145
- // unsigned integers
146
- if (s.maximum <= 0xff) {
147
- return createManagedTypedArray(Uint8Array, allocator);
148
- }
149
- if (s.maximum <= 0xffff) {
150
- return createManagedTypedArray(Uint16Array, allocator);
151
- }
152
- if (s.maximum <= 0xffffffff) {
153
- return createManagedTypedArray(Uint32Array, allocator);
154
- }
155
- }
156
- }
157
- }
158
- return createManagedBasicArray();
159
- }
160
- //# sourceMappingURL=managed-array.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"managed-array.js","sourceRoot":"","sources":["../../src/cache/managed-array.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"managed-async-cache.browser.test.js","sourceRoot":"","sources":["../../src/cache/managed-async-cache.browser.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,OAAO,GAAG,CAAC,CAAC;QAClB,MAAM,cAAc,GAAG,OAAO,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,uBAAuB,CAAC,sBAAsB,EAAE,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,GAAG,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,yCAAyC;QACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,qBAAqB,EAAE,CAAC;QACrD,2CAA2C;QAC3C,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,4CAA4C;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,YAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,oCAAoC;QACpC,MAAM,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { AsyncCache, AsyncCacheWithKeys } from "./async-cache.js";
2
- export declare function createManagedAsyncCache(cache: AsyncCacheWithKeys<Request, Response>, optimumEntries: number): AsyncCache<Request, Response> & {
3
- getKeyCountForTesting(): Promise<number>;
4
- };
@@ -1,45 +0,0 @@
1
- const CREATED_HEADER = "ManagedAsyncCache.Created";
2
- export function createManagedAsyncCache(cache, optimumEntries) {
3
- const maximumEntries = optimumEntries * 2;
4
- let putCount = 0;
5
- const maybeManageCacheOnPut = async () => {
6
- if (putCount++ % optimumEntries === 0) {
7
- let keys = [...(await cache.keys())];
8
- if (keys.length >= maximumEntries) {
9
- // sort by created. ISO date strings are comparable by date
10
- keys = keys.sort((a, b) => {
11
- const aheader = a.headers.get(CREATED_HEADER);
12
- const bheader = b.headers.get(CREATED_HEADER);
13
- if (!aheader || !bheader) {
14
- return 0;
15
- }
16
- return aheader.localeCompare(bheader);
17
- });
18
- while (keys.length > optimumEntries) {
19
- const key = keys.shift();
20
- if (key) {
21
- await cache.delete(key);
22
- }
23
- }
24
- }
25
- }
26
- };
27
- return {
28
- async put(key, value) {
29
- // add a created header as metadata to the request
30
- key.headers.set(CREATED_HEADER, new Date().toISOString());
31
- await cache.put(key, value);
32
- await maybeManageCacheOnPut();
33
- },
34
- async match(key) {
35
- return cache.match(key);
36
- },
37
- async delete(key) {
38
- await cache.delete(key);
39
- },
40
- async getKeyCountForTesting() {
41
- return (await cache.keys()).length;
42
- },
43
- };
44
- }
45
- //# sourceMappingURL=managed-async-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"managed-async-cache.js","sourceRoot":"","sources":["../../src/cache/managed-async-cache.ts"],"names":[],"mappings":"AAuBA,MAAM,cAAc,GAAG,2BAA2B,CAAC;AAEnD,MAAM,UAAU,uBAAuB,CACrC,KAA4C,EAC5C,cAAsB;IAItB,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE;QACvC,IAAI,QAAQ,EAAE,GAAG,cAAc,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;gBAClC,2DAA2D;gBAC3D,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC9C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;wBACzB,OAAO,CAAC,CAAC;oBACX,CAAC;oBACD,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;oBACpC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBACzB,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,GAAY,EAAE,KAAe;YACrC,kDAAkD;YAClD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,MAAM,qBAAqB,EAAE,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,GAAY;YACtB,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,GAAY;YACvB,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,qBAAqB;YACzB,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,23 +0,0 @@
1
- import { TypedArrayConstructor } from "../types/types.js";
2
- import { Observe } from "../observe/types.js";
3
- export interface MemoryAllocator {
4
- /**
5
- * An observable event source that notifies when the memory needs to be refreshed.
6
- */
7
- needsRefresh: Observe<void>;
8
- /**
9
- * Allocate a new typed array of the specified size.
10
- */
11
- allocate<T extends TypedArrayConstructor>(typedArray: T, sizeInElements: number): InstanceType<T>;
12
- /**
13
- * Refresh the given typed array to ensure that it is not detached.
14
- * If it is detached a new typed array is created and returned.
15
- */
16
- refresh<T extends TypedArrayConstructor>(typedArray: InstanceType<T>): InstanceType<T>;
17
- /**
18
- * Release the memory associated with the given buffer.
19
- */
20
- release(buffer: ArrayBuffer): void;
21
- }
22
- export declare function createSimpleMemoryAllocator(): MemoryAllocator;
23
- export declare function createWasmMemoryAllocator(memory: WebAssembly.Memory): MemoryAllocator;
@@ -1,94 +0,0 @@
1
- import { createObservableEvent } from "../observe/create-observable-event.js";
2
- export function createSimpleMemoryAllocator() {
3
- return {
4
- needsRefresh: () => () => { },
5
- allocate(typedArray, sizeInElements) {
6
- const sizeInBytes = sizeInElements * typedArray.BYTES_PER_ELEMENT;
7
- return new typedArray(new ArrayBuffer(sizeInBytes), 0, sizeInElements);
8
- },
9
- refresh(typedArray) {
10
- return typedArray;
11
- },
12
- release(_buffer) {
13
- return;
14
- },
15
- };
16
- }
17
- const PAGE_SIZE = 64 * 1024; // 64 KB
18
- export function createWasmMemoryAllocator(memory) {
19
- const freeList = [{ offset: 0, size: memory.buffer.byteLength }];
20
- const [needsRefresh, notifyNeedsRefresh] = createObservableEvent();
21
- const mergeFreeBlocks = () => {
22
- // Sort the free list by offset
23
- freeList.sort((a, b) => a.offset - b.offset);
24
- let i = 0;
25
- while (i < freeList.length - 1) {
26
- const current = freeList[i];
27
- const next = freeList[i + 1];
28
- // Check if current block is adjacent to the next
29
- if (current.offset + current.size === next.offset) {
30
- // Merge the blocks
31
- current.size += next.size;
32
- // Remove the next block
33
- freeList.splice(i + 1, 1);
34
- }
35
- else {
36
- i++;
37
- }
38
- }
39
- };
40
- const growMemory = (sizeInBytes) => {
41
- const currentSize = memory.buffer.byteLength;
42
- const neededPages = Math.ceil(sizeInBytes / PAGE_SIZE); // Each WebAssembly page is 65536 bytes
43
- memory.grow(neededPages);
44
- freeList.push({
45
- offset: currentSize,
46
- size: memory.buffer.byteLength - currentSize,
47
- });
48
- mergeFreeBlocks();
49
- notifyNeedsRefresh();
50
- return freeList.length - 1;
51
- };
52
- const allocate = (typedArray, sizeInElements) => {
53
- const ALIGNMENT = 16;
54
- const sizeInBytes = Math.ceil((sizeInElements * typedArray.BYTES_PER_ELEMENT) / ALIGNMENT) *
55
- ALIGNMENT;
56
- let index = freeList.findIndex((block) => block.size >= sizeInBytes);
57
- if (index === -1) {
58
- index = growMemory(sizeInBytes);
59
- }
60
- const block = freeList[index];
61
- freeList.splice(index, 1); // Remove the block from the free list
62
- const remainingSize = block.size - sizeInBytes;
63
- if (remainingSize > 0) {
64
- freeList.push({
65
- offset: block.offset + sizeInBytes,
66
- size: remainingSize,
67
- });
68
- }
69
- return new typedArray(memory.buffer, block.offset, sizeInElements);
70
- };
71
- const refresh = (array) => {
72
- if (memory.buffer.byteLength !== array.byteLength) {
73
- return new array.constructor(memory.buffer, array.byteOffset, array.length);
74
- }
75
- return array;
76
- };
77
- const release = (memory) => {
78
- if (memory.byteOffset !== undefined) {
79
- const newFreeBlock = {
80
- offset: memory.byteOffset,
81
- size: memory.byteLength,
82
- };
83
- freeList.push(newFreeBlock);
84
- mergeFreeBlocks();
85
- }
86
- };
87
- return {
88
- needsRefresh,
89
- allocate,
90
- refresh,
91
- release,
92
- };
93
- }
94
- //# sourceMappingURL=memory-allocator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-allocator.js","sourceRoot":"","sources":["../../src/cache/memory-allocator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { AsyncCacheWithKeys } from "./async-cache.js";
2
- /**
3
- * This should never be used directly as it will never free cache entries making it leak memory.
4
- * It should only ever be used as a base cache inside of a ManagedAsyncCache.
5
- */
6
- export declare function createMemoryAsyncCache(): AsyncCacheWithKeys<Request, Response>;
@@ -1,23 +0,0 @@
1
- /**
2
- * This should never be used directly as it will never free cache entries making it leak memory.
3
- * It should only ever be used as a base cache inside of a ManagedAsyncCache.
4
- */
5
- export function createMemoryAsyncCache() {
6
- const cache = new Map();
7
- return {
8
- put(key, value) {
9
- cache.set(key.url, [key, value.clone()]);
10
- return Promise.resolve();
11
- },
12
- match(key) {
13
- return Promise.resolve(cache.get(key.url)?.[1]?.clone());
14
- },
15
- async delete(key) {
16
- await Promise.resolve(cache.delete(key.url));
17
- },
18
- keys() {
19
- return Promise.resolve([...cache.values()].map((value) => value[0]));
20
- },
21
- };
22
- }
23
- //# sourceMappingURL=memory-async-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-async-cache.js","sourceRoot":"","sources":["../../src/cache/memory-async-cache.ts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IAIpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;IACrD,OAAO;QACL,GAAG,CAAC,GAAY,EAAE,KAAe;YAC/B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,KAAK,CAAC,GAAY;YAChB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,GAAY;YACvB,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI;YACF,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;KACF,CAAC;AACJ,CAAC"}
package/core/data.d.ts DELETED
@@ -1,22 +0,0 @@
1
- /**
2
- * Data is readonly JSON.
3
- * This type forms the foundation for all of our internal state models and interfaces to external APIs.
4
- * It is easy to serialize/deserialize/compare/hash/cache and validate (with JSON-Schema).
5
- * These traits make it an ideal foundation for building a robust state engine which cannot enter into invalid states.
6
- * It also allows us to strongly define contracts between our application and external services.
7
- * Validation of input arguments and output results allows strict enforcement of agreed upon contracts.
8
- */
9
- export type Data = string | number | boolean | null | undefined | ReadonlyArray<Data> | {
10
- readonly [K in string]?: Data;
11
- };
12
- /**
13
- * Compares two Data objects for deep equality.
14
- * Ordering of keys matters.
15
- * If order is not important then use normalize first.
16
- */
17
- export declare function equals(a?: unknown, b?: unknown): boolean;
18
- /**
19
- * Returns a new normalized object of the same type by
20
- * recursively sorting any contained objects keys alphabetically.
21
- */
22
- export declare function normalize<D>(d: D): D;
package/core/data.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/core/data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAmBX;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,CAAW,EAAE,CAAW;IAC7C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAI,CAAI;IAC/B,uFAAuF;IACvF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE;QACpE,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACtC,kCAAkC;YAClC,4CAA4C;YAC5C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3B,CACF,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../src/core/data.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,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 declare function arrayEquals(a: unknown[], b: unknown[]): boolean;
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-equals.js","sourceRoot":"","sources":["../../../src/core/functions/array-equals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,MAAM,UAAU,WAAW,CAAC,CAAY,EAAE,CAAY;IACpD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,31 +0,0 @@
1
- import { type Data } from '../data.js';
2
- /**
3
- * Uses datacache to store results so we can avoid expensive recomputations of the same input.
4
- * This function also uses preventParallelExecution to prevent multiple executions of the same function at the same time with the same arguments.
5
- * @param fn The function to memoize by storing results in the DataCache.
6
- * @param version The version of this function. If the function changes this must also change
7
- * to avoid returning stale results from an older version of the function.
8
- * @param name The name of this function which should be application unique to avoid hash collisions.
9
- * @returns A function with the same signature but memoized results.
10
- */
11
- /**
12
- * Recursively merges 2 pieces of `Data`, returns new `Data`.
13
- * Inputs are not mutated.
14
- *
15
- * @param {Data} a First piece of `Data`.
16
- * @param {Data} b The second piece of `Data`.
17
- * @returns {Object} Returns new `Data`.
18
- * @example
19
- *
20
- * const one = {
21
- * 'a': [{ 'b': 2 }, { 'd': 4 }]
22
- * };
23
- *
24
- * const other = {
25
- * 'a': [{ 'c': 3 }, { 'e': 5 }]
26
- * };
27
- *
28
- * deepMerge(one, other);
29
- * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
30
- */
31
- export declare const deepMerge: <A extends Data, B extends Data>(a: A, b: B) => A & B;
@@ -1,51 +0,0 @@
1
- /**
2
- * Uses datacache to store results so we can avoid expensive recomputations of the same input.
3
- * This function also uses preventParallelExecution to prevent multiple executions of the same function at the same time with the same arguments.
4
- * @param fn The function to memoize by storing results in the DataCache.
5
- * @param version The version of this function. If the function changes this must also change
6
- * to avoid returning stale results from an older version of the function.
7
- * @param name The name of this function which should be application unique to avoid hash collisions.
8
- * @returns A function with the same signature but memoized results.
9
- */
10
- /**
11
- * Recursively merges 2 pieces of `Data`, returns new `Data`.
12
- * Inputs are not mutated.
13
- *
14
- * @param {Data} a First piece of `Data`.
15
- * @param {Data} b The second piece of `Data`.
16
- * @returns {Object} Returns new `Data`.
17
- * @example
18
- *
19
- * const one = {
20
- * 'a': [{ 'b': 2 }, { 'd': 4 }]
21
- * };
22
- *
23
- * const other = {
24
- * 'a': [{ 'c': 3 }, { 'e': 5 }]
25
- * };
26
- *
27
- * deepMerge(one, other);
28
- * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
29
- */
30
- export const deepMerge = (a, b) => {
31
- // Handle null/undefined cases
32
- if (a == null)
33
- return b;
34
- // Handle primitive values
35
- if (typeof a !== 'object' || typeof b !== 'object')
36
- return b;
37
- // Handle arrays
38
- if (Array.isArray(a) && Array.isArray(b)) {
39
- return [...a, ...b];
40
- }
41
- // Handle objects
42
- const result = { ...a };
43
- for (const key in b) {
44
- if (Object.prototype.hasOwnProperty.call(b, key)) {
45
- const value = b[key];
46
- result[key] = deepMerge(a[key], value);
47
- }
48
- }
49
- return result;
50
- };
51
- //# sourceMappingURL=deep-merge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deep-merge.js","sourceRoot":"","sources":["../../../src/core/functions/deep-merge.ts"],"names":[],"mappings":"AAuBA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAiC,CAAI,EAAE,CAAI,EAAS,EAAE;IAC3E,8BAA8B;IAC9B,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,CAAU,CAAC;IAEjC,0BAA0B;IAC1B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAU,CAAC;IAEtE,gBAAgB;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAqB,CAAC;IAC1C,CAAC;IAED,iBAAiB;IACjB,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAA0B,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,KAAK,GAAI,CAA0B,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAE,CAA0B,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,MAAe,CAAC;AACzB,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,94 +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 { deepMerge } from './deep-merge.js';
23
- import { assert } from 'riteway/vitest';
24
- import { describe, test } from 'vitest';
25
- describe('deepMerge', () => {
26
- test('should merge two objects', () => {
27
- const a = { a: 1, b: 2 };
28
- const b = { c: 3, d: 4 };
29
- assert({
30
- given: 'two objects without overlapping keys',
31
- should: 'merge them',
32
- actual: deepMerge(a, b),
33
- expected: { a: 1, b: 2, c: 3, d: 4 },
34
- });
35
- });
36
- test('should merge two objects with overlapping keys', () => {
37
- const a = { a: 1, b: 2 };
38
- const b = { b: 3, c: 4 };
39
- assert({
40
- given: 'two objects with overlapping keys',
41
- should: 'merge them',
42
- actual: deepMerge(a, b),
43
- expected: { a: 1, b: 3, c: 4 },
44
- });
45
- });
46
- test('should merge two objects with overlapping keys and arrays', () => {
47
- const a = { a: 1, b: [1, 2] };
48
- const b = { b: [3, 4], c: 4 };
49
- assert({
50
- given: 'two objects with overlapping keys and arrays',
51
- should: 'merge them',
52
- actual: deepMerge(a, b),
53
- expected: { a: 1, b: [1, 2, 3, 4], c: 4 },
54
- });
55
- });
56
- test('should merge two nested objects with overlapping keys', () => {
57
- const a = { a: 1, b: { c: 2, d: 3 } };
58
- const b = { b: { d: 4, e: 5 }, c: 6 };
59
- assert({
60
- given: 'two nested objects with overlapping keys',
61
- should: 'merge them',
62
- actual: deepMerge(a, b),
63
- expected: { a: 1, b: { c: 2, d: 4, e: 5 }, c: 6 },
64
- });
65
- });
66
- test('should merge two objects with null values', () => {
67
- const a = { a: null, b: 2 };
68
- const b = { b: null, c: 4 };
69
- assert({
70
- given: 'two objects with null values',
71
- should: 'merge them',
72
- actual: deepMerge(a, b),
73
- expected: { a: null, b: null, c: 4 },
74
- });
75
- });
76
- test('should merge two objects with undefined values', () => {
77
- const a = { a: undefined, b: 2 };
78
- const b = { b: undefined, c: 4 };
79
- assert({
80
- given: 'two objects with undefined values',
81
- should: 'merge them',
82
- actual: deepMerge(a, b),
83
- expected: { a: undefined, b: undefined, c: 4 },
84
- });
85
- });
86
- test('should not mutate the original objects', () => {
87
- const a = { a: 1, b: 2 };
88
- const b = { b: 3, c: 4 };
89
- deepMerge(a, b);
90
- assert({ given: 'the original objects', should: 'not be mutated', actual: a, expected: { a: 1, b: 2 } });
91
- assert({ given: 'the original objects', should: 'not be mutated', actual: b, expected: { b: 3, c: 4 } });
92
- });
93
- });
94
- //# sourceMappingURL=deep-merge.test.js.map