@adobe/data 0.9.61 → 0.9.63

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 (97) 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/concurrency/concurrency-strategy.d.ts +86 -0
  6. package/dist/ecs/database/concurrency/concurrency-strategy.js +3 -0
  7. package/dist/ecs/database/concurrency/concurrency-strategy.js.map +1 -0
  8. package/dist/ecs/database/concurrency/immediate-concurrency.d.ts +22 -0
  9. package/dist/ecs/database/concurrency/immediate-concurrency.js +74 -0
  10. package/dist/ecs/database/concurrency/immediate-concurrency.js.map +1 -0
  11. package/dist/ecs/database/concurrency/index.d.ts +4 -0
  12. package/dist/ecs/database/concurrency/index.js +5 -0
  13. package/dist/ecs/database/concurrency/index.js.map +1 -0
  14. package/dist/ecs/database/concurrency/rebase-replay-concurrency.d.ts +20 -0
  15. package/dist/ecs/database/concurrency/rebase-replay-concurrency.js +34 -0
  16. package/dist/ecs/database/concurrency/rebase-replay-concurrency.js.map +1 -0
  17. package/dist/ecs/database/concurrency/roll-forward-concurrency.d.ts +33 -0
  18. package/dist/ecs/database/concurrency/roll-forward-concurrency.js +115 -0
  19. package/dist/ecs/database/concurrency/roll-forward-concurrency.js.map +1 -0
  20. package/dist/ecs/database/concurrency/roll-forward-concurrency.test.d.ts +1 -0
  21. package/dist/ecs/database/concurrency/roll-forward-concurrency.test.js +136 -0
  22. package/dist/ecs/database/concurrency/roll-forward-concurrency.test.js.map +1 -0
  23. package/dist/ecs/database/create-plugin.d.ts +1 -1
  24. package/dist/ecs/database/database.d.ts +29 -7
  25. package/dist/ecs/database/database.index.performance.test.js +5 -5
  26. package/dist/ecs/database/database.index.performance.test.js.map +1 -1
  27. package/dist/ecs/database/database.index.test.js +556 -51
  28. package/dist/ecs/database/database.index.test.js.map +1 -1
  29. package/dist/ecs/database/database.index.type-test.js +34 -10
  30. package/dist/ecs/database/database.index.type-test.js.map +1 -1
  31. package/dist/ecs/database/database.js.map +1 -1
  32. package/dist/ecs/database/database.reset.test.js +2 -1
  33. package/dist/ecs/database/database.reset.test.js.map +1 -1
  34. package/dist/ecs/database/index-registry/create-index-registry.d.ts +38 -9
  35. package/dist/ecs/database/index-registry/create-index-registry.js +67 -20
  36. package/dist/ecs/database/index-registry/create-index-registry.js.map +1 -1
  37. package/dist/ecs/database/index-registry/create-index.d.ts +10 -2
  38. package/dist/ecs/database/index-registry/create-index.js +44 -47
  39. package/dist/ecs/database/index-registry/create-index.js.map +1 -1
  40. package/dist/ecs/database/index.d.ts +1 -0
  41. package/dist/ecs/database/index.js +1 -0
  42. package/dist/ecs/database/index.js.map +1 -1
  43. package/dist/ecs/database/observe-index-entities.d.ts +26 -0
  44. package/dist/ecs/database/observe-index-entities.js +66 -0
  45. package/dist/ecs/database/observe-index-entities.js.map +1 -0
  46. package/dist/ecs/database/observed/create-observed-database.js +1 -1
  47. package/dist/ecs/database/observed/create-observed-database.js.map +1 -1
  48. package/dist/ecs/database/observed/observed-database.d.ts +1 -1
  49. package/dist/ecs/database/public/create-database.d.ts +12 -27
  50. package/dist/ecs/database/public/create-database.js +131 -37
  51. package/dist/ecs/database/public/create-database.js.map +1 -1
  52. package/dist/ecs/database/public/create-database.test.js +8 -7
  53. package/dist/ecs/database/public/create-database.test.js.map +1 -1
  54. package/dist/ecs/database/public/create-transaction-dispatcher.d.ts +4 -2
  55. package/dist/ecs/database/public/create-transaction-dispatcher.js +2 -8
  56. package/dist/ecs/database/public/create-transaction-dispatcher.js.map +1 -1
  57. package/dist/ecs/database/reconciling/create-rebase-replay-applier.d.ts +26 -0
  58. package/dist/ecs/database/reconciling/create-rebase-replay-applier.js +121 -0
  59. package/dist/ecs/database/reconciling/create-rebase-replay-applier.js.map +1 -0
  60. package/dist/ecs/database/reconciling/create-reconciling-database.d.ts +11 -0
  61. package/dist/ecs/database/reconciling/create-reconciling-database.js +28 -137
  62. package/dist/ecs/database/reconciling/create-reconciling-database.js.map +1 -1
  63. package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
  64. package/dist/ecs/database/transactional-store/transactional-store.d.ts +1 -1
  65. package/dist/ecs/entity-location-table/create-entity-location-table.js +2 -2
  66. package/dist/ecs/entity-location-table/create-entity-location-table.js.map +1 -1
  67. package/dist/ecs/entity-location-table/entity-location-table.d.ts +7 -1
  68. package/dist/ecs/store/core/core.d.ts +7 -1
  69. package/dist/ecs/store/core/create-core.js +3 -3
  70. package/dist/ecs/store/core/create-core.js.map +1 -1
  71. package/dist/ecs/store/core/select-entities.js +6 -3
  72. package/dist/ecs/store/core/select-entities.js.map +1 -1
  73. package/dist/ecs/store/index-types.d.ts +53 -17
  74. package/dist/ecs/store/public/create-store.js +32 -6
  75. package/dist/ecs/store/public/create-store.js.map +1 -1
  76. package/dist/ecs/store/public/create-store.test.js +25 -0
  77. package/dist/ecs/store/public/create-store.test.js.map +1 -1
  78. package/dist/ecs/store/store.d.ts +10 -3
  79. package/dist/ecs/store/store.js.map +1 -1
  80. package/dist/functions/compare.d.ts +13 -0
  81. package/dist/functions/compare.js +15 -0
  82. package/dist/functions/compare.js.map +1 -0
  83. package/dist/functions/compare.test.d.ts +1 -0
  84. package/dist/functions/compare.test.js +24 -0
  85. package/dist/functions/compare.test.js.map +1 -0
  86. package/dist/functions/index.d.ts +1 -0
  87. package/dist/functions/index.js +1 -0
  88. package/dist/functions/index.js.map +1 -1
  89. package/dist/test-setup.js +2 -2
  90. package/dist/test-setup.js.map +1 -1
  91. package/dist/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +3 -1
  93. package/references/data-lit/package.json +1 -1
  94. package/references/data-lit-tictactoe/package.json +1 -1
  95. package/references/data-react/package.json +1 -1
  96. package/references/data-react-hello/package.json +1 -1
  97. 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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"}
@@ -63,6 +63,6 @@ export interface TransactionResult<C = unknown> {
63
63
  readonly redo: TransactionWriteOperation<C>[];
64
64
  readonly undo: TransactionWriteOperation<C>[];
65
65
  readonly changedEntities: Map<Entity, EntityUpdateValues<C> | null>;
66
- readonly changedComponents: Set<keyof C | string>;
66
+ readonly changedComponents: Set<string>;
67
67
  readonly changedArchetypes: Set<ArchetypeId>;
68
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
  }
@@ -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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"}
@@ -1,5 +1,6 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
2
  import { selectRows } from "../../../table/select-rows.js";
3
+ import { compare } from "../../../functions/compare.js";
3
4
  export const selectEntities = (core, include, options) => {
4
5
  const archetypes = core.queryArchetypes(include, options);
5
6
  let length = 0;
@@ -45,10 +46,12 @@ export const selectEntities = (core, include, options) => {
45
46
  // now that we have the entity values with the order values, we can sort the entity values
46
47
  entityValues.sort((a, b) => {
47
48
  for (const order in options.order) {
48
- if (a[order] !== b[order]) {
49
- const comparison = a[order] - b[order];
49
+ // `compare` (code-point for strings, numeric for numbers) — not
50
+ // `a - b`, which is NaN for string order keys, and never locale.
51
+ const cmp = compare(a[order], b[order]);
52
+ if (cmp !== 0) {
50
53
  const ascending = options.order[order];
51
- return ascending ? comparison : -comparison;
54
+ return ascending ? cmp : -cmp;
52
55
  }
53
56
  }
54
57
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"select-entities.js","sourceRoot":"","sources":["../../../../src/ecs/store/core/select-entities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select-entities.js","sourceRoot":"","sources":["../../../../src/ecs/store/core/select-entities.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import { StringKeyof } from "../../types/types.js";
2
2
  import type { Entity } from "../entity/entity.js";
3
+ import type { Observe } from "../../observe/index.js";
3
4
  import { Components } from "./components.js";
4
5
  /**
5
6
  * If `T` is an array type, the element type; otherwise `T` unchanged.
6
7
  *
7
8
  * Multi-value indexes auto-fan-out array values into per-element bucket
8
- * entries at insert time. The lookup methods therefore take the element
9
- * type, not the array — a query like `find("joe")` against a
9
+ * entries at insert time. The lookup field therefore takes the element
10
+ * type, not the array — a query like `find({ assigned: "joe" })` against a
10
11
  * `Task { assigned: string[] }` is exactly what users want, and an array
11
12
  * as a single opaque key is virtually never useful (order-dependent, not
12
13
  * a natural query shape).
@@ -15,24 +16,35 @@ type ElementOf<T> = T extends readonly (infer E)[] ? E : T;
15
16
  /**
16
17
  * Per-slot extractor in a compound `key` declaration. Either:
17
18
  * - a `StringKeyof<C>` — read the value of that column directly, or
18
- * - a function — derive the slot's value from the index's read components.
19
+ * - a function — derive the slot's value from a single **named object** of the
20
+ * component values, read by name (e.g. `(c) => c.email!.toLowerCase()`), not
21
+ * from positional arguments.
22
+ *
23
+ * The argument is typed `Partial<C>`: at runtime only the index's declared
24
+ * `components` are populated, and the type marks every field optional rather
25
+ * than unsafely implying all of `C` is present — so the extractor acknowledges
26
+ * possible absence (use `!` / `?.` on the components you declared).
19
27
  */
20
- export type IndexKeySlot<C extends Components> = StringKeyof<C> | ((...args: any[]) => unknown);
28
+ export type IndexKeySlot<C extends Components> = StringKeyof<C> | ((components: Partial<C>) => unknown);
21
29
  /**
22
- * The four shapes a `key` declaration can take. Drives the `find` / `get`
23
- * argument type via {@link FindArg}.
30
+ * The three shapes a `key` declaration can take. Every shape resolves to a
31
+ * **named object** lookup argument via {@link FindArg} — there is no scalar
32
+ * form, so `find` / `get` / `observe` are uniform across all indexes.
24
33
  *
25
- * - `string` — read this one column. `find` takes a scalar.
34
+ * - `string` — read this one column. Sugar for the single-element tuple
35
+ * `[col]`; `find` takes `{ col: value }` (not a bare scalar).
26
36
  * - `readonly string[]` — read each of these columns. `find` takes
27
37
  * `{ col1: ..., col2: ... }` keyed by the column names themselves.
28
- * - `(...args) => Value` — derive the bucket key from the components.
29
- * `find` takes whatever the function returns (or its element type
30
- * when the return is an array — multi-value fan-out).
31
38
  * - slot map — name each part of a compound key; values are either
32
- * column-name strings (identity) or extractor functions. `find`
33
- * takes an object keyed by the slot names.
39
+ * column-name strings (identity) or extractor functions. `find` takes an
40
+ * object keyed by the slot names. A computed key is a single-slot map,
41
+ * e.g. `{ emailLower: (email) => email.toLowerCase() }`, so the derived
42
+ * value is still addressed by name.
43
+ *
44
+ * (There is intentionally no bare `(...args) => Value` form: a computed value
45
+ * needs a name to appear in the lookup object, so wrap it in a slot map.)
34
46
  */
35
- export type IndexKey<C extends Components> = StringKeyof<C> | readonly StringKeyof<C>[] | ((...args: any[]) => unknown) | {
47
+ export type IndexKey<C extends Components> = StringKeyof<C> | readonly StringKeyof<C>[] | {
36
48
  readonly [slot: string]: IndexKeySlot<C>;
37
49
  };
38
50
  /**
@@ -77,10 +89,16 @@ export type Index<C extends Components = any, K extends IndexKey<C> = IndexKey<C
77
89
  * type if the return is an array).
78
90
  */
79
91
  type SlotFindType<C extends Components, V> = V extends StringKeyof<C> ? ElementOf<C[V]> : V extends (...args: any[]) => infer R ? ElementOf<R> : never;
80
- /** Argument type of `find` / `get` derived from the `key` shape. */
81
- type FindArg<C extends Components, K> = K extends StringKeyof<C> ? ElementOf<C[K]> : K extends readonly StringKeyof<C>[] ? {
92
+ /**
93
+ * Argument type of `find` / `get` / `observe`, derived from the `key` shape.
94
+ * Always a named object: a single-column key yields `{ col: value }`, a tuple
95
+ * yields one field per column, and a slot map yields one field per slot.
96
+ */
97
+ type FindArg<C extends Components, K> = K extends StringKeyof<C> ? {
98
+ readonly [P in K]: ElementOf<C[P]>;
99
+ } : K extends readonly StringKeyof<C>[] ? {
82
100
  readonly [P in K[number]]: ElementOf<C[P]>;
83
- } : K extends (...args: any[]) => infer R ? ElementOf<R> : K extends Record<string, IndexKeySlot<C>> ? {
101
+ } : K extends Record<string, IndexKeySlot<C>> ? {
84
102
  readonly [Slot in keyof K]: SlotFindType<C, K[Slot]>;
85
103
  } : never;
86
104
  /** Comparison-operator filter on a scalar bucket-key value. */
@@ -105,6 +123,15 @@ export declare namespace Index {
105
123
  type Handle<C extends Components, I extends Index<C, any, any, any>> = I extends Index<C, infer K, any, infer U> ? {
106
124
  find(arg: FindArg<C, K>): readonly Entity[];
107
125
  findRange(arg: RangeArg<FindArg<C, K>>): readonly Entity[];
126
+ /**
127
+ * Reactive view of `find(arg)`. Emits the current sorted
128
+ * bucket synchronously on subscribe, then again — on a
129
+ * microtask after a committed transaction — whenever the
130
+ * observed bucket's membership *or order* changes. Unlike
131
+ * pairing `observe.select` with `find`, a sort-key-only
132
+ * reorder is never silently swallowed.
133
+ */
134
+ observe(arg: FindArg<C, K>): Observe<readonly Entity[]>;
108
135
  } & (U extends true ? {
109
136
  get(arg: FindArg<C, K>): Entity | null;
110
137
  } : {}) : never;
@@ -121,12 +148,21 @@ export declare namespace Index {
121
148
  * silently passes the constraint. Inlining `key: IndexKey<C>` here makes
122
149
  * the typo a type error at the plugin descriptor.
123
150
  */
124
- export type IndexDeclarations<C extends Components = any> = {
151
+ export type IndexDeclarations<C extends Components = any, A = any> = {
125
152
  readonly [name: string]: {
126
153
  readonly key: IndexKey<C>;
127
154
  readonly order?: IndexOrder<C>;
128
155
  readonly unique?: boolean;
129
156
  readonly components?: readonly StringKeyof<C>[];
157
+ /**
158
+ * Scope the index to a single archetype (by declared name). Only
159
+ * entities that are that archetype (a superset of its components) are
160
+ * indexed — entities in other archetypes that merely share the key
161
+ * column are excluded. `A` is the schema's archetype map, so the name
162
+ * is checked against the declared archetypes; when unthreaded it
163
+ * widens to `string`.
164
+ */
165
+ readonly archetype?: StringKeyof<A>;
130
166
  };
131
167
  };
132
168
  export {};
@@ -39,7 +39,10 @@ export function createStore(schema) {
39
39
  // Strip `id` — it is never a useful index key.
40
40
  const { id: _id, ...rest } = values;
41
41
  return rest;
42
- });
42
+ },
43
+ // Resolve an `archetype`-scoped index to that archetype's declared
44
+ // component set (archetypes are registered before indexes in `extend`).
45
+ (archetypeName) => archetypeComponentNames[archetypeName]);
43
46
  /**
44
47
  * Populate an index from the archetypes whose component set is a
45
48
  * superset of the index's `components`. Only those archetypes can
@@ -97,6 +100,11 @@ export function createStore(schema) {
97
100
  else {
98
101
  routableColumns = null;
99
102
  }
103
+ // Sort columns the auto-router can serve an *ascending* `order` clause
104
+ // from. Only a sorted index using the default comparator qualifies: a
105
+ // custom `compare` encodes an ordering the planner can't match against
106
+ // a plain `{ col: ascending }` select clause, so it opts out (null).
107
+ const routableOrder = idx.order && !idx.order.compare ? idx.order.by : null;
100
108
  const handle = {
101
109
  find: idx.find,
102
110
  findRange: idx.findRange,
@@ -107,6 +115,17 @@ export function createStore(schema) {
107
115
  // calls `handle.find` (so user-installed spies on the handle
108
116
  // intercept the routed call).
109
117
  routableColumns,
118
+ // Internal planner-only field. The ascending sort columns this
119
+ // index can serve, or null when it can't (unsorted, or custom
120
+ // comparator). The auto-router reads this to route an ordered
121
+ // `select` / `observe.select` through the (already-sorted) index.
122
+ routableOrder,
123
+ // Internal field consumed by the Database layer to build the
124
+ // reactive `handle.observe`: the columns (key + sort) whose change
125
+ // can alter this bucket's contents or order. The handle's public
126
+ // `observe` is attached at the Database layer because it must fire
127
+ // on the transaction-commit boundary, which only exists there.
128
+ readColumns: idx.readColumns,
110
129
  };
111
130
  if (idx.unique)
112
131
  handle.get = idx.get;
@@ -164,9 +183,11 @@ export function createStore(schema) {
164
183
  return cached;
165
184
  const rawInsert = archetype.insert.bind(archetype);
166
185
  const wrappedInsert = (values) => {
167
- indexRegistry.checkUniqueAvailableForInsert(values);
186
+ // `archetype` is the raw core archetype — its id + component set
187
+ // let the registry dispatch to only the applicable indexes.
188
+ indexRegistry.checkUniqueAvailableForInsert(archetype, values);
168
189
  const entity = rawInsert(values);
169
- indexRegistry.applyInsert(entity, values);
190
+ indexRegistry.applyInsert(entity, archetype, values);
170
191
  return entity;
171
192
  };
172
193
  const wrapped = new Proxy(archetype, {
@@ -197,12 +218,17 @@ export function createStore(schema) {
197
218
  });
198
219
  const updateEntity = (entity, values) => {
199
220
  indexRegistry.checkUniqueAvailableForUpdate(entity, values);
221
+ // `update` can move the entity to a different archetype (when it
222
+ // adds/removes components), so capture both ends for dispatch.
223
+ const from = core.locate(entity)?.archetype ?? null;
200
224
  core.update(entity, values);
201
- indexRegistry.applyUpdate(entity);
225
+ const to = core.locate(entity)?.archetype ?? null;
226
+ indexRegistry.applyUpdate(entity, from, to);
202
227
  };
203
228
  const deleteEntity = (entity) => {
229
+ const archetype = core.locate(entity)?.archetype ?? null;
204
230
  core.delete(entity);
205
- indexRegistry.applyDelete(entity);
231
+ indexRegistry.applyDelete(entity, archetype);
206
232
  };
207
233
  const extend = (schema) => {
208
234
  const { components: schemaComponents = {}, resources: schemaResources = {}, archetypes: schemaArchetypes = {}, indexes: schemaIndexes = {}, } = schema;
@@ -287,7 +313,7 @@ export function createStore(schema) {
287
313
  seedIndexFromArchetypes(idx);
288
314
  }
289
315
  },
290
- toData: () => core.toData(),
316
+ toData: (copy = false) => core.toData(copy),
291
317
  fromData: (data) => {
292
318
  core.fromData(data);
293
319
  for (const [name, resourceSchema] of Object.entries(resourceSchemas)) {