@adobe/data 0.9.60 → 0.9.62

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 (222) hide show
  1. package/dist/ecs/archetype/archetype.d.ts +9 -2
  2. package/dist/ecs/archetype/archetype.js.map +1 -1
  3. package/dist/ecs/archetype/create-archetype.js +5 -2
  4. package/dist/ecs/archetype/create-archetype.js.map +1 -1
  5. package/dist/ecs/database/combine-plugins.d.ts +5 -1
  6. package/dist/ecs/database/combine-plugins.js +3 -3
  7. package/dist/ecs/database/combine-plugins.js.map +1 -1
  8. package/dist/ecs/database/concurrency/concurrency-strategy.d.ts +86 -0
  9. package/dist/ecs/database/concurrency/concurrency-strategy.js +3 -0
  10. package/dist/ecs/database/concurrency/concurrency-strategy.js.map +1 -0
  11. package/dist/ecs/database/concurrency/immediate-concurrency.d.ts +22 -0
  12. package/dist/ecs/database/concurrency/immediate-concurrency.js +74 -0
  13. package/dist/ecs/database/concurrency/immediate-concurrency.js.map +1 -0
  14. package/dist/ecs/database/concurrency/index.d.ts +4 -0
  15. package/dist/ecs/database/concurrency/index.js +5 -0
  16. package/dist/ecs/database/concurrency/index.js.map +1 -0
  17. package/dist/ecs/database/concurrency/rebase-replay-concurrency.d.ts +20 -0
  18. package/dist/ecs/database/concurrency/rebase-replay-concurrency.js +34 -0
  19. package/dist/ecs/database/concurrency/rebase-replay-concurrency.js.map +1 -0
  20. package/dist/ecs/database/concurrency/roll-forward-concurrency.d.ts +33 -0
  21. package/dist/ecs/database/concurrency/roll-forward-concurrency.js +115 -0
  22. package/dist/ecs/database/concurrency/roll-forward-concurrency.js.map +1 -0
  23. package/dist/ecs/database/concurrency/roll-forward-concurrency.test.d.ts +1 -0
  24. package/dist/ecs/database/concurrency/roll-forward-concurrency.test.js +136 -0
  25. package/dist/ecs/database/concurrency/roll-forward-concurrency.test.js.map +1 -0
  26. package/dist/ecs/database/create-plugin.d.ts +17 -14
  27. package/dist/ecs/database/create-plugin.js +2 -1
  28. package/dist/ecs/database/create-plugin.js.map +1 -1
  29. package/dist/ecs/database/database.d.ts +61 -11
  30. package/dist/ecs/database/database.index.performance.test.d.ts +1 -0
  31. package/dist/ecs/database/database.index.performance.test.js +417 -0
  32. package/dist/ecs/database/database.index.performance.test.js.map +1 -0
  33. package/dist/ecs/database/database.index.test.d.ts +1 -0
  34. package/dist/ecs/database/database.index.test.js +1142 -0
  35. package/dist/ecs/database/database.index.test.js.map +1 -0
  36. package/dist/ecs/database/database.index.type-test.d.ts +1 -0
  37. package/dist/ecs/database/database.index.type-test.js +275 -0
  38. package/dist/ecs/database/database.index.type-test.js.map +1 -0
  39. package/dist/ecs/database/database.js.map +1 -1
  40. package/dist/ecs/database/database.reset.test.js +2 -1
  41. package/dist/ecs/database/database.reset.test.js.map +1 -1
  42. package/dist/ecs/database/deep-extends-chain.type-test.d.ts +256 -256
  43. package/dist/ecs/database/index-api-proof.type-test.d.ts +1 -0
  44. package/dist/ecs/database/index-api-proof.type-test.js +88 -0
  45. package/dist/ecs/database/index-api-proof.type-test.js.map +1 -0
  46. package/dist/ecs/database/index-registry/create-index-registry.d.ts +53 -0
  47. package/dist/ecs/database/index-registry/create-index-registry.js +174 -0
  48. package/dist/ecs/database/index-registry/create-index-registry.js.map +1 -0
  49. package/dist/ecs/database/index-registry/create-index.d.ts +60 -0
  50. package/dist/ecs/database/index-registry/create-index.js +539 -0
  51. package/dist/ecs/database/index-registry/create-index.js.map +1 -0
  52. package/dist/ecs/database/index-registry/index.d.ts +4 -0
  53. package/dist/ecs/database/index-registry/index.js +4 -0
  54. package/dist/ecs/database/index-registry/index.js.map +1 -0
  55. package/dist/ecs/database/index.d.ts +1 -0
  56. package/dist/ecs/database/index.js +1 -0
  57. package/dist/ecs/database/index.js.map +1 -1
  58. package/dist/ecs/database/observe-index-entities.d.ts +26 -0
  59. package/dist/ecs/database/observe-index-entities.js +66 -0
  60. package/dist/ecs/database/observe-index-entities.js.map +1 -0
  61. package/dist/ecs/database/observed/create-observed-database.js +1 -1
  62. package/dist/ecs/database/observed/create-observed-database.js.map +1 -1
  63. package/dist/ecs/database/observed/observed-database.d.ts +1 -1
  64. package/dist/ecs/database/public/create-database.d.ts +12 -27
  65. package/dist/ecs/database/public/create-database.js +252 -10
  66. package/dist/ecs/database/public/create-database.js.map +1 -1
  67. package/dist/ecs/database/public/create-database.test.js +8 -7
  68. package/dist/ecs/database/public/create-database.test.js.map +1 -1
  69. package/dist/ecs/database/public/create-transaction-dispatcher.d.ts +4 -2
  70. package/dist/ecs/database/public/create-transaction-dispatcher.js +2 -8
  71. package/dist/ecs/database/public/create-transaction-dispatcher.js.map +1 -1
  72. package/dist/ecs/database/reconciling/create-rebase-replay-applier.d.ts +26 -0
  73. package/dist/ecs/database/reconciling/create-rebase-replay-applier.js +121 -0
  74. package/dist/ecs/database/reconciling/create-rebase-replay-applier.js.map +1 -0
  75. package/dist/ecs/database/reconciling/create-reconciling-database.d.ts +11 -0
  76. package/dist/ecs/database/reconciling/create-reconciling-database.js +28 -137
  77. package/dist/ecs/database/reconciling/create-reconciling-database.js.map +1 -1
  78. package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
  79. package/dist/ecs/database/transactional-store/transactional-store.d.ts +4 -3
  80. package/dist/ecs/entity-location-table/create-entity-location-table.js +2 -2
  81. package/dist/ecs/entity-location-table/create-entity-location-table.js.map +1 -1
  82. package/dist/ecs/entity-location-table/entity-location-table.d.ts +7 -1
  83. package/dist/ecs/plugins/scheduler/scheduler.d.ts +1 -0
  84. package/dist/ecs/store/core/core.d.ts +7 -1
  85. package/dist/ecs/store/core/create-core.js +3 -3
  86. package/dist/ecs/store/core/create-core.js.map +1 -1
  87. package/dist/ecs/store/index-types.d.ts +142 -0
  88. package/dist/ecs/store/index-types.js +3 -0
  89. package/dist/ecs/store/index-types.js.map +1 -0
  90. package/dist/ecs/store/public/create-store.js +206 -4
  91. package/dist/ecs/store/public/create-store.js.map +1 -1
  92. package/dist/ecs/store/public/create-store.test.js +25 -0
  93. package/dist/ecs/store/public/create-store.test.js.map +1 -1
  94. package/dist/ecs/store/store.d.ts +38 -14
  95. package/dist/ecs/store/store.js +5 -4
  96. package/dist/ecs/store/store.js.map +1 -1
  97. package/dist/ecs/store/transaction-functions.d.ts +4 -3
  98. package/dist/schema/fractional-index/between-n.d.ts +2 -0
  99. package/dist/schema/fractional-index/between-n.js +34 -0
  100. package/dist/schema/fractional-index/between-n.js.map +1 -0
  101. package/dist/schema/fractional-index/between-n.test.d.ts +1 -0
  102. package/dist/schema/fractional-index/between-n.test.js +36 -0
  103. package/dist/schema/fractional-index/between-n.test.js.map +1 -0
  104. package/dist/schema/fractional-index/between.d.ts +2 -0
  105. package/dist/schema/fractional-index/between.js +3 -0
  106. package/dist/schema/fractional-index/between.js.map +1 -0
  107. package/dist/schema/fractional-index/between.test.d.ts +1 -0
  108. package/dist/schema/fractional-index/between.test.js +68 -0
  109. package/dist/schema/fractional-index/between.test.js.map +1 -0
  110. package/dist/schema/fractional-index/decrement-integer.d.ts +1 -0
  111. package/dist/schema/fractional-index/decrement-integer.js +32 -0
  112. package/dist/schema/fractional-index/decrement-integer.js.map +1 -0
  113. package/dist/schema/fractional-index/decrement-integer.test.d.ts +1 -0
  114. package/dist/schema/fractional-index/decrement-integer.test.js +31 -0
  115. package/dist/schema/fractional-index/decrement-integer.test.js.map +1 -0
  116. package/dist/schema/fractional-index/digits.d.ts +1 -0
  117. package/dist/schema/fractional-index/digits.js +3 -0
  118. package/dist/schema/fractional-index/digits.js.map +1 -0
  119. package/dist/schema/fractional-index/fractional-index.d.ts +4 -0
  120. package/dist/schema/fractional-index/fractional-index.js +2 -0
  121. package/dist/schema/fractional-index/fractional-index.js.map +1 -0
  122. package/dist/schema/fractional-index/increment-integer.d.ts +1 -0
  123. package/dist/schema/fractional-index/increment-integer.js +32 -0
  124. package/dist/schema/fractional-index/increment-integer.js.map +1 -0
  125. package/dist/schema/fractional-index/increment-integer.test.d.ts +1 -0
  126. package/dist/schema/fractional-index/increment-integer.test.js +34 -0
  127. package/dist/schema/fractional-index/increment-integer.test.js.map +1 -0
  128. package/dist/schema/fractional-index/initial.d.ts +2 -0
  129. package/dist/schema/fractional-index/initial.js +2 -0
  130. package/dist/schema/fractional-index/initial.js.map +1 -0
  131. package/dist/schema/fractional-index/integer-length.d.ts +1 -0
  132. package/dist/schema/fractional-index/integer-length.js +9 -0
  133. package/dist/schema/fractional-index/integer-length.js.map +1 -0
  134. package/dist/schema/fractional-index/integer-part.d.ts +1 -0
  135. package/dist/schema/fractional-index/integer-part.js +9 -0
  136. package/dist/schema/fractional-index/integer-part.js.map +1 -0
  137. package/dist/schema/fractional-index/key-between.d.ts +2 -0
  138. package/dist/schema/fractional-index/key-between.js +39 -0
  139. package/dist/schema/fractional-index/key-between.js.map +1 -0
  140. package/dist/schema/fractional-index/midpoint.d.ts +1 -0
  141. package/dist/schema/fractional-index/midpoint.js +23 -0
  142. package/dist/schema/fractional-index/midpoint.js.map +1 -0
  143. package/dist/schema/fractional-index/midpoint.test.d.ts +1 -0
  144. package/dist/schema/fractional-index/midpoint.test.js +83 -0
  145. package/dist/schema/fractional-index/midpoint.test.js.map +1 -0
  146. package/dist/schema/fractional-index/public.d.ts +4 -0
  147. package/dist/schema/fractional-index/public.js +6 -0
  148. package/dist/schema/fractional-index/public.js.map +1 -0
  149. package/dist/schema/fractional-index/schema.d.ts +4 -0
  150. package/dist/schema/fractional-index/schema.js +5 -0
  151. package/dist/schema/fractional-index/schema.js.map +1 -0
  152. package/dist/schema/fractional-index/smallest-integer.d.ts +1 -0
  153. package/dist/schema/fractional-index/smallest-integer.js +3 -0
  154. package/dist/schema/fractional-index/smallest-integer.js.map +1 -0
  155. package/dist/schema/fractional-index/validate-integer.d.ts +1 -0
  156. package/dist/schema/fractional-index/validate-integer.js +7 -0
  157. package/dist/schema/fractional-index/validate-integer.js.map +1 -0
  158. package/dist/schema/fractional-index/validate-order-key.d.ts +1 -0
  159. package/dist/schema/fractional-index/validate-order-key.js +11 -0
  160. package/dist/schema/fractional-index/validate-order-key.js.map +1 -0
  161. package/dist/schema/guid/create.d.ts +2 -0
  162. package/dist/schema/guid/create.js +10 -0
  163. package/dist/schema/guid/create.js.map +1 -0
  164. package/dist/schema/guid/create.test.d.ts +1 -0
  165. package/dist/schema/guid/create.test.js +39 -0
  166. package/dist/schema/guid/create.test.js.map +1 -0
  167. package/dist/schema/guid/equals.d.ts +2 -0
  168. package/dist/schema/guid/equals.js +3 -0
  169. package/dist/schema/guid/equals.js.map +1 -0
  170. package/dist/schema/guid/equals.test.d.ts +1 -0
  171. package/dist/schema/guid/equals.test.js +30 -0
  172. package/dist/schema/guid/equals.test.js.map +1 -0
  173. package/dist/schema/guid/from-uuid.d.ts +2 -0
  174. package/dist/schema/guid/from-uuid.js +15 -0
  175. package/dist/schema/guid/from-uuid.js.map +1 -0
  176. package/dist/schema/guid/from-uuid.test.d.ts +1 -0
  177. package/dist/schema/guid/from-uuid.test.js +39 -0
  178. package/dist/schema/guid/from-uuid.test.js.map +1 -0
  179. package/dist/schema/guid/guid.performance.test.d.ts +1 -0
  180. package/dist/schema/guid/guid.performance.test.js +297 -0
  181. package/dist/schema/guid/guid.performance.test.js.map +1 -0
  182. package/dist/schema/guid/index.d.ts +4 -0
  183. package/dist/schema/guid/index.js +3 -0
  184. package/dist/schema/guid/index.js.map +1 -0
  185. package/dist/schema/guid/layout.d.ts +1 -0
  186. package/dist/schema/guid/layout.js +5 -0
  187. package/dist/schema/guid/layout.js.map +1 -0
  188. package/dist/schema/guid/nil.d.ts +2 -0
  189. package/dist/schema/guid/nil.js +3 -0
  190. package/dist/schema/guid/nil.js.map +1 -0
  191. package/dist/schema/guid/public.d.ts +8 -0
  192. package/dist/schema/guid/public.js +10 -0
  193. package/dist/schema/guid/public.js.map +1 -0
  194. package/dist/schema/guid/schema.d.ts +12 -0
  195. package/dist/schema/guid/schema.js +10 -0
  196. package/dist/schema/guid/schema.js.map +1 -0
  197. package/dist/schema/guid/schema.test.d.ts +1 -0
  198. package/dist/schema/guid/schema.test.js +35 -0
  199. package/dist/schema/guid/schema.test.js.map +1 -0
  200. package/dist/schema/guid/to-unserializable-key.d.ts +2 -0
  201. package/dist/schema/guid/to-unserializable-key.js +10 -0
  202. package/dist/schema/guid/to-unserializable-key.js.map +1 -0
  203. package/dist/schema/guid/to-uuid.d.ts +2 -0
  204. package/dist/schema/guid/to-uuid.js +15 -0
  205. package/dist/schema/guid/to-uuid.js.map +1 -0
  206. package/dist/schema/guid/to-uuid.test.d.ts +1 -0
  207. package/dist/schema/guid/to-uuid.test.js +31 -0
  208. package/dist/schema/guid/to-uuid.test.js.map +1 -0
  209. package/dist/schema/index.d.ts +2 -0
  210. package/dist/schema/index.js +2 -0
  211. package/dist/schema/index.js.map +1 -1
  212. package/dist/table/select-rows.d.ts +7 -4
  213. package/dist/table/select-rows.js.map +1 -1
  214. package/dist/test-setup.js +2 -2
  215. package/dist/test-setup.js.map +1 -1
  216. package/dist/tsconfig.tsbuildinfo +1 -1
  217. package/package.json +3 -1
  218. package/references/data-lit/package.json +1 -1
  219. package/references/data-lit-tictactoe/package.json +1 -1
  220. package/references/data-react/package.json +1 -1
  221. package/references/data-react-hello/package.json +1 -1
  222. package/references/data-react-pixie/package.json +1 -1
@@ -1,155 +1,46 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
- import { applyOperations } from "../transactional-store/apply-operations.js";
3
- import { ReconcilingEntryOps } from "./reconciling-entry.js";
4
2
  import { createObservedDatabase } from "../observed/create-observed-database.js";
3
+ import { createRebaseReplayApplier } from "./create-rebase-replay-applier.js";
4
+ /**
5
+ * Creates a database that wraps `store` with the rebase-replay reconciliation
6
+ * protocol on top of an observed database.
7
+ *
8
+ * Prefer {@link createRebaseReplayConcurrency} when building a new database
9
+ * via {@link createDatabase} — it plugs into the concurrency-strategy seam
10
+ * and composes cleanly with the rest of the database construction path.
11
+ *
12
+ * This function is kept for direct use (e.g. tests, lower-level tooling)
13
+ * where the full `Database` surface is not needed.
14
+ */
5
15
  export function createReconcilingDatabase(store, transactionDeclarations) {
6
16
  const transactionDeclarationsRef = {
7
17
  ...transactionDeclarations,
8
18
  };
9
19
  const observedDatabase = createObservedDatabase(store);
10
- const { execute, observe, resources, toData: observedToData, fromData: observedFromData, ...storeMethods } = observedDatabase;
11
- const reconcilingEntries = [];
12
- const rollbackEntryResult = (entry) => {
13
- if (entry.result) {
14
- execute(t => applyOperations(t, entry.result.undo), { transient: true, userId: undefined });
15
- entry.result = undefined;
16
- }
17
- };
18
- const rollbackAllTransients = () => {
19
- for (let i = reconcilingEntries.length - 1; i >= 0; i--) {
20
- rollbackEntryResult(reconcilingEntries[i]);
21
- }
22
- };
23
- /**
24
- * Splice a transient entry out of the queue by compound (userId, id) key.
25
- * IMPORTANT: must only be called when all transients are already rolled back
26
- * (i.e. after rollbackAllTransients()). Calling it while entries are still
27
- * applied would undo a non-top entry mid-stack, corrupting the freelist.
28
- */
29
- const spliceTransientEntry = (id, userId) => {
30
- const index = reconcilingEntries.findIndex(entry => entry.id === id && entry.userId === userId);
31
- if (index === -1) {
32
- return false;
33
- }
34
- reconcilingEntries.splice(index, 1);
35
- return true;
36
- };
37
- const executeEntry = (entry) => {
38
- const result = execute(t => entry.transaction(t, entry.args), { transient: true, userId: entry.userId });
39
- // Only store result if it actually made changes (not a no-op).
40
- // A no-op transaction has empty redo/undo operations.
41
- const isNoOp = result.redo.length === 0 && result.undo.length === 0;
42
- entry.result = isNoOp ? undefined : result;
43
- return result;
44
- };
45
- const replayAllTransients = () => {
46
- let lastResult;
47
- for (const entry of reconcilingEntries) {
48
- lastResult = executeEntry(entry);
49
- }
50
- return lastResult;
51
- };
52
- const applyEnvelope = (envelope) => {
53
- const transaction = transactionDeclarationsRef[envelope.name];
54
- if (!transaction) {
55
- throw new Error(`Unknown transaction: ${envelope.name}`);
56
- }
57
- const { id, userId, time, args } = envelope;
58
- const transactionFn = transaction;
59
- // Handle cancellation: remove any transient entry for this (userId, id).
60
- if (time === 0) {
61
- const index = reconcilingEntries.findIndex(entry => entry.id === id && entry.userId === userId);
62
- if (index === -1) {
63
- return undefined;
64
- }
65
- rollbackAllTransients();
66
- reconcilingEntries.splice(index, 1);
67
- replayAllTransients();
68
- return undefined;
69
- }
70
- // Handle transient application (negative time).
71
- if (time < 0) {
72
- // Roll everything back before touching the queue so each undo is
73
- // applied in reverse stack order (avoids mid-stack partial undos
74
- // that would corrupt the freelist).
75
- rollbackAllTransients();
76
- spliceTransientEntry(id, userId);
77
- // Create and insert the new transient entry.
78
- const entry = {
79
- id,
80
- userId,
81
- name: envelope.name,
82
- transaction: transactionFn,
83
- args,
84
- time,
85
- result: undefined,
86
- };
87
- const insertIndex = ReconcilingEntryOps.findInsertIndex(reconcilingEntries, entry);
88
- reconcilingEntries.splice(insertIndex, 0, entry);
89
- // Rebuild transient state from scratch to respect time ordering.
90
- const result = replayAllTransients();
91
- // If the new entry produced no store changes (no-op), remove it
92
- // from the queue immediately. It will never receive a server
93
- // promotion and would otherwise sit in the queue uselessly.
94
- if (entry.result === undefined) {
95
- const idx = reconcilingEntries.indexOf(entry);
96
- if (idx !== -1)
97
- reconcilingEntries.splice(idx, 1);
98
- }
99
- return result;
100
- }
101
- // Handle committed application (positive time): rebase the entire
102
- // transient queue around it so deterministic id allocation matches
103
- // every other peer's view.
104
- // 1. Roll back all transients in reverse stack order (avoids
105
- // mid-stack partial undos that corrupt the freelist).
106
- // 2. Splice out the matching transient (already rolled back).
107
- // 3. Apply the committed envelope once (non-transient).
108
- // 4. Replay the surviving transients on top.
109
- // This guarantees the freelist / nextIndex snapshot at step 3 is
110
- // identical on every peer, regardless of what local transients were
111
- // pending when the broadcast arrived.
112
- rollbackAllTransients();
113
- spliceTransientEntry(id, userId);
114
- const result = execute(t => transactionFn(t, args), { transient: false, userId });
115
- replayAllTransients();
116
- return result;
117
- };
118
- const cancelEntry = (id, userId) => {
119
- const index = reconcilingEntries.findIndex(entry => entry.id === id && entry.userId === userId);
120
- if (index === -1) {
121
- return;
122
- }
123
- rollbackAllTransients();
124
- reconcilingEntries.splice(index, 1);
125
- replayAllTransients();
126
- };
127
- const resetReconciling = () => {
128
- reconcilingEntries.length = 0;
129
- observedDatabase.reset();
130
- };
20
+ const getTransaction = (name) => transactionDeclarationsRef[name];
21
+ const applier = createRebaseReplayApplier(observedDatabase.execute, getTransaction);
131
22
  const reconcilingDatabase = {
132
- ...storeMethods,
133
- resources,
134
- execute,
135
- observe,
136
- reset: resetReconciling,
23
+ ...observedDatabase,
24
+ reset: () => {
25
+ applier.onReset();
26
+ observedDatabase.reset();
27
+ },
137
28
  toData: () => {
138
- rollbackAllTransients();
139
- const data = observedToData();
140
- replayAllTransients();
29
+ // Detach the snapshot from live buffers: replayAllTransients below
30
+ // mutates them and would otherwise corrupt the returned snapshot.
31
+ applier.rollbackAllTransients();
32
+ const data = observedDatabase.toData(true);
33
+ applier.replayAllTransients();
141
34
  return data;
142
35
  },
143
36
  fromData: (data) => {
144
- observedFromData(data);
145
- replayAllTransients();
37
+ observedDatabase.fromData(data);
38
+ applier.replayAllTransients();
146
39
  },
147
- apply: applyEnvelope,
148
- cancel: cancelEntry,
40
+ apply: applier.apply,
41
+ cancel: applier.cancel,
149
42
  extend: (plugin) => {
150
- // Extend the underlying observed database (which extends transactionalStore -> store)
151
43
  observedDatabase.extend(plugin);
152
- // Extend our transaction declarations
153
44
  if (plugin.transactions) {
154
45
  Object.assign(transactionDeclarationsRef, plugin.transactions);
155
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-reconciling-database.js","sourceRoot":"","sources":["../../../../src/ecs/database/reconciling/create-reconciling-database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-reconciling-database.js","sourceRoot":"","sources":["../../../../src/ecs/database/reconciling/create-reconciling-database.ts"],"names":[],"mappings":"AAAA,uDAAuD;AASvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAI9E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CAMrC,KAAqB,EACrB,uBAA2B;IAE3B,MAAM,0BAA0B,GAAqC;QACjE,GAAG,uBAAuB;KAC7B,CAAC;IAEF,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE,CACnC,0BAAuG,CAAC,IAAI,CAAC,CAAC;IAEnH,MAAM,OAAO,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAEpF,MAAM,mBAAmB,GAAqC;QAC1D,GAAG,gBAAgB;QACnB,KAAK,EAAE,GAAG,EAAE;YACR,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACT,mEAAmE;YACnE,kEAAkE;YAClE,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE;YACxB,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAClC,CAAC;QACD,KAAK,EAAE,OAAO,CAAC,KAAkD;QACjE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,CAAC,MAAW,EAAE,EAAE;YACpB,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,mBAA0B,CAAC;QACtC,CAAC;KACJ,CAAC;IAEF,OAAO,mBAAmB,CAAC;AAC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-transactional-store.js","sourceRoot":"","sources":["../../../../src/ecs/database/transactional-store/create-transactional-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-transactional-store.js","sourceRoot":"","sources":["../../../../src/ecs/database/transactional-store/create-transactional-store.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { StringKeyof } from "../../../types/types.js";
8
8
  import { ArchetypeComponents } from "../../store/archetype-components.js";
9
9
  import { FromSchemas } from "../../../schema/from-schemas.js";
10
10
  import { Undoable } from "../undoable.js";
11
+ import { IndexDeclarations } from "../../store/index-types.js";
11
12
  /**
12
13
  * The first argument passed to every transaction function. Extends the full
13
14
  * store read/write surface with `userId` — the identifier of the peer or user
@@ -17,10 +18,10 @@ import { Undoable } from "../undoable.js";
17
18
  *
18
19
  * `userId` is `undefined` in local-only (no-sync) databases.
19
20
  */
20
- export type TransactionContext<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>> = Store<C, R, A> & {
21
+ export type TransactionContext<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>, IX extends IndexDeclarations<C> = {}> = Store<C, R, A, IX> & {
21
22
  readonly userId: number | string | undefined;
22
23
  };
23
- export interface TransactionalStore<C extends Components = never, R extends ResourceComponents = never, A extends ArchetypeComponents<StringKeyof<C>> = never> extends ReadonlyStore<C, R, A> {
24
+ export interface TransactionalStore<C extends Components = never, R extends ResourceComponents = never, A extends ArchetypeComponents<StringKeyof<C>> = never, IX extends IndexDeclarations<C> = {}> extends ReadonlyStore<C, R, A, IX> {
24
25
  /**
25
26
  * Execute a transaction on the store.
26
27
  * The transactionFunction must NOT directly mutate archetype rows as those changes would not be captured.
@@ -62,6 +63,6 @@ export interface TransactionResult<C = unknown> {
62
63
  readonly redo: TransactionWriteOperation<C>[];
63
64
  readonly undo: TransactionWriteOperation<C>[];
64
65
  readonly changedEntities: Map<Entity, EntityUpdateValues<C> | null>;
65
- readonly changedComponents: Set<keyof C | string>;
66
+ readonly changedComponents: Set<string>;
66
67
  readonly changedArchetypes: Set<ArchetypeId>;
67
68
  }
@@ -83,8 +83,8 @@ const createPositiveEntityLocationTable = (initialCapacity = 16) => {
83
83
  freeListHead = -1;
84
84
  nextIndex = 0;
85
85
  },
86
- toData: () => ({
87
- entities,
86
+ toData: (copy = false) => ({
87
+ entities: copy ? entities.slice() : entities,
88
88
  freeListHead,
89
89
  nextIndex,
90
90
  capacity,
@@ -1 +1 @@
1
- {"version":3,"file":"create-entity-location-table.js","sourceRoot":"","sources":["../../../src/ecs/entity-location-table/create-entity-location-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-entity-location-table.js","sourceRoot":"","sources":["../../../src/ecs/entity-location-table/create-entity-location-table.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,12 @@ export interface EntityLocationTable {
7
7
  locate: (entity: Entity) => EntityLocation | null;
8
8
  /** Wipe all entity records. O(1). Next allocate starts from entity 0 again. */
9
9
  reset: () => void;
10
- toData: () => unknown;
10
+ /**
11
+ * Serialize the table. When `copy` is true the backing `entities` buffer is
12
+ * detached (sliced) so the snapshot survives later mutation of the live
13
+ * table; otherwise the snapshot references the live buffer (faster, but only
14
+ * valid until the next mutation).
15
+ */
16
+ toData: (copy?: boolean) => unknown;
11
17
  fromData: (data: unknown) => void;
12
18
  }
@@ -12,4 +12,5 @@ export declare const scheduler: {
12
12
  readonly actions: {};
13
13
  readonly services: {};
14
14
  readonly computed: {};
15
+ readonly indexes: {};
15
16
  };
@@ -30,7 +30,13 @@ export interface ReadonlyCore<C extends Components = never> {
30
30
  read<T extends RequiredComponents>(entity: Entity, minArchetype: ReadonlyArchetype<T> | Archetype<T>): Readonly<T> & EntityReadValues<C> | null;
31
31
  read(entity: Entity): EntityReadValues<C> | null;
32
32
  get<K extends StringKeyof<C>>(entity: Entity, component: K): C[K] | undefined;
33
- toData(): unknown;
33
+ /**
34
+ * Serialize the core. When `copy` is true the snapshot is detached from the
35
+ * live store (column and entity buffers are copied) so it survives later
36
+ * mutation; otherwise it references live buffers — faster, but only valid
37
+ * until the next mutation. See {@link Store.toData} bug notes.
38
+ */
39
+ toData(copy?: boolean): unknown;
34
40
  }
35
41
  /**
36
42
  * This is the main interface for the low level ECS Core.
@@ -171,10 +171,10 @@ export function createCore(newComponentSchemas) {
171
171
  update: updateEntity,
172
172
  compact,
173
173
  reset: resetCore,
174
- toData: () => ({
174
+ toData: (copy = false) => ({
175
175
  componentSchemas,
176
- entityLocationTableData: persistentLocationTable.toData(),
177
- archetypesData: archetypes.map(archetype => archetype.toData())
176
+ entityLocationTableData: persistentLocationTable.toData(copy),
177
+ archetypesData: archetypes.map(archetype => archetype.toData(copy))
178
178
  }),
179
179
  fromData: (data) => {
180
180
  Object.assign(componentSchemas, data.componentSchemas);
@@ -1 +1 @@
1
- {"version":3,"file":"create-core.js","sourceRoot":"","sources":["../../../../src/ecs/store/core/create-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-core.js","sourceRoot":"","sources":["../../../../src/ecs/store/core/create-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ import { StringKeyof } from "../../types/types.js";
2
+ import type { Entity } from "../entity/entity.js";
3
+ import type { Observe } from "../../observe/index.js";
4
+ import { Components } from "./components.js";
5
+ /**
6
+ * If `T` is an array type, the element type; otherwise `T` unchanged.
7
+ *
8
+ * Multi-value indexes auto-fan-out array values into per-element bucket
9
+ * entries at insert time. The lookup methods therefore take the element
10
+ * type, not the array — a query like `find("joe")` against a
11
+ * `Task { assigned: string[] }` is exactly what users want, and an array
12
+ * as a single opaque key is virtually never useful (order-dependent, not
13
+ * a natural query shape).
14
+ */
15
+ type ElementOf<T> = T extends readonly (infer E)[] ? E : T;
16
+ /**
17
+ * Per-slot extractor in a compound `key` declaration. Either:
18
+ * - a `StringKeyof<C>` — read the value of that column directly, or
19
+ * - a function — derive the slot's value from the index's read components.
20
+ */
21
+ export type IndexKeySlot<C extends Components> = StringKeyof<C> | ((...args: any[]) => unknown);
22
+ /**
23
+ * The four shapes a `key` declaration can take. Drives the `find` / `get`
24
+ * argument type via {@link FindArg}.
25
+ *
26
+ * - `string` — read this one column. `find` takes a scalar.
27
+ * - `readonly string[]` — read each of these columns. `find` takes
28
+ * `{ col1: ..., col2: ... }` keyed by the column names themselves.
29
+ * - `(...args) => Value` — derive the bucket key from the components.
30
+ * `find` takes whatever the function returns (or its element type
31
+ * when the return is an array — multi-value fan-out).
32
+ * - slot map — name each part of a compound key; values are either
33
+ * column-name strings (identity) or extractor functions. `find`
34
+ * takes an object keyed by the slot names.
35
+ */
36
+ export type IndexKey<C extends Components> = StringKeyof<C> | readonly StringKeyof<C>[] | ((...args: any[]) => unknown) | {
37
+ readonly [slot: string]: IndexKeySlot<C>;
38
+ };
39
+ /**
40
+ * Within-bucket ordering. `by` declares the columns to read into the
41
+ * per-entity sort cache; `compare` (optional) is the comparator over
42
+ * `Pick<C, by[number]>`. When `compare` is omitted, the default is
43
+ * ascending across `by` from left to right with positional tie-break
44
+ * (`JS <` / `>` per column).
45
+ *
46
+ * `compare` is method shorthand for the same `IX & XIX` variance reason
47
+ * that `compute` was previously: `Store.extend`'s result intersects index
48
+ * declarations, which would otherwise trip `strictFunctionTypes` over
49
+ * contravariant parameter positions.
50
+ */
51
+ export type IndexOrder<C extends Components, By extends readonly StringKeyof<C>[] = readonly StringKeyof<C>[]> = {
52
+ readonly by: By;
53
+ compare?(a: Pick<C, By[number]>, b: Pick<C, By[number]>): number;
54
+ };
55
+ /**
56
+ * Type-level declaration of an index.
57
+ *
58
+ * - `key` is the only required field. Its shape drives the bucket layout
59
+ * and the lookup argument type of `find` / `get` / `findRange`.
60
+ * - `order` (optional) maintains sorted iteration within each bucket.
61
+ * - `unique` (optional) — when true, at most one entity may hold each
62
+ * bucket key; `get(arg)` is exposed and returns `Entity | null`.
63
+ * - `components` (optional) — names the columns extractor functions
64
+ * read. Only needed when at least one function reads a column not
65
+ * implied by a string-identity key entry.
66
+ *
67
+ * See `packages/data/src/ecs/README.md` for the full pattern catalogue.
68
+ */
69
+ export type Index<C extends Components = any, K extends IndexKey<C> = IndexKey<C>, O extends IndexOrder<C, any> | undefined = IndexOrder<C, any> | undefined, U extends boolean = boolean> = {
70
+ readonly key: K;
71
+ readonly order?: O;
72
+ readonly unique?: U;
73
+ readonly components?: readonly StringKeyof<C>[];
74
+ };
75
+ /**
76
+ * Resolve a slot's contributed `find` field type. Strings are identity
77
+ * reads on the named column; functions yield their return type (element
78
+ * type if the return is an array).
79
+ */
80
+ type SlotFindType<C extends Components, V> = V extends StringKeyof<C> ? ElementOf<C[V]> : V extends (...args: any[]) => infer R ? ElementOf<R> : never;
81
+ /** Argument type of `find` / `get` derived from the `key` shape. */
82
+ type FindArg<C extends Components, K> = K extends StringKeyof<C> ? ElementOf<C[K]> : K extends readonly StringKeyof<C>[] ? {
83
+ readonly [P in K[number]]: ElementOf<C[P]>;
84
+ } : K extends (...args: any[]) => infer R ? ElementOf<R> : K extends Record<string, IndexKeySlot<C>> ? {
85
+ readonly [Slot in keyof K]: SlotFindType<C, K[Slot]>;
86
+ } : never;
87
+ /** Comparison-operator filter on a scalar bucket-key value. */
88
+ type OperatorFilter<T> = {
89
+ readonly "=="?: T;
90
+ readonly "!="?: T;
91
+ readonly "<"?: T;
92
+ readonly "<="?: T;
93
+ readonly ">"?: T;
94
+ readonly ">="?: T;
95
+ };
96
+ /**
97
+ * `findRange` argument: each field of the find argument may be either an
98
+ * equality value or a `<,<=,>,>=,==,!=` operator filter. For scalar keys
99
+ * the entire argument may itself be an operator filter.
100
+ */
101
+ type RangeArg<T> = T extends object ? {
102
+ readonly [P in keyof T]?: T[P] | OperatorFilter<T[P]>;
103
+ } : T | OperatorFilter<T>;
104
+ export declare namespace Index {
105
+ /** Public lookup handle exposed on `db.indexes.<name>` and `t.indexes.<name>`. */
106
+ type Handle<C extends Components, I extends Index<C, any, any, any>> = I extends Index<C, infer K, any, infer U> ? {
107
+ find(arg: FindArg<C, K>): readonly Entity[];
108
+ findRange(arg: RangeArg<FindArg<C, K>>): readonly Entity[];
109
+ /**
110
+ * Reactive view of `find(arg)`. Emits the current sorted
111
+ * bucket synchronously on subscribe, then again — on a
112
+ * microtask after a committed transaction — whenever the
113
+ * observed bucket's membership *or order* changes. Unlike
114
+ * pairing `observe.select` with `find`, a sort-key-only
115
+ * reorder is never silently swallowed.
116
+ */
117
+ observe(arg: FindArg<C, K>): Observe<readonly Entity[]>;
118
+ } & (U extends true ? {
119
+ get(arg: FindArg<C, K>): Entity | null;
120
+ } : {}) : never;
121
+ }
122
+ /**
123
+ * Plugin-level / store-level map of indexes. Keys are user-chosen index
124
+ * names; values are `Index` declarations whose `key` references real
125
+ * columns of `C`.
126
+ *
127
+ * The structural shape is inlined (rather than `Index<C, any, any, any>`) so
128
+ * that the per-entry `key`/`order` fields are actually constrained at the
129
+ * declaration site. With `Index<C, any, any, any>` the wildcard `any`
130
+ * generics widen `key` past `IndexKey<C>`, so a typo like `{ key: "bogus" }`
131
+ * silently passes the constraint. Inlining `key: IndexKey<C>` here makes
132
+ * the typo a type error at the plugin descriptor.
133
+ */
134
+ export type IndexDeclarations<C extends Components = any> = {
135
+ readonly [name: string]: {
136
+ readonly key: IndexKey<C>;
137
+ readonly order?: IndexOrder<C>;
138
+ readonly unique?: boolean;
139
+ readonly components?: readonly StringKeyof<C>[];
140
+ };
141
+ };
142
+ export {};
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export {};
3
+ //# sourceMappingURL=index-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-types.js","sourceRoot":"","sources":["../../../src/ecs/store/index-types.ts"],"names":[],"mappings":"AAAA,uDAAuD"}