@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.
- package/dist/ecs/archetype/archetype.d.ts +9 -2
- package/dist/ecs/archetype/archetype.js.map +1 -1
- package/dist/ecs/archetype/create-archetype.js +5 -2
- package/dist/ecs/archetype/create-archetype.js.map +1 -1
- package/dist/ecs/database/concurrency/concurrency-strategy.d.ts +86 -0
- package/dist/ecs/database/concurrency/concurrency-strategy.js +3 -0
- package/dist/ecs/database/concurrency/concurrency-strategy.js.map +1 -0
- package/dist/ecs/database/concurrency/immediate-concurrency.d.ts +22 -0
- package/dist/ecs/database/concurrency/immediate-concurrency.js +74 -0
- package/dist/ecs/database/concurrency/immediate-concurrency.js.map +1 -0
- package/dist/ecs/database/concurrency/index.d.ts +4 -0
- package/dist/ecs/database/concurrency/index.js +5 -0
- package/dist/ecs/database/concurrency/index.js.map +1 -0
- package/dist/ecs/database/concurrency/rebase-replay-concurrency.d.ts +20 -0
- package/dist/ecs/database/concurrency/rebase-replay-concurrency.js +34 -0
- package/dist/ecs/database/concurrency/rebase-replay-concurrency.js.map +1 -0
- package/dist/ecs/database/concurrency/roll-forward-concurrency.d.ts +33 -0
- package/dist/ecs/database/concurrency/roll-forward-concurrency.js +115 -0
- package/dist/ecs/database/concurrency/roll-forward-concurrency.js.map +1 -0
- package/dist/ecs/database/concurrency/roll-forward-concurrency.test.d.ts +1 -0
- package/dist/ecs/database/concurrency/roll-forward-concurrency.test.js +136 -0
- package/dist/ecs/database/concurrency/roll-forward-concurrency.test.js.map +1 -0
- package/dist/ecs/database/create-plugin.d.ts +1 -1
- package/dist/ecs/database/database.d.ts +29 -7
- package/dist/ecs/database/database.index.performance.test.js +5 -5
- package/dist/ecs/database/database.index.performance.test.js.map +1 -1
- package/dist/ecs/database/database.index.test.js +556 -51
- package/dist/ecs/database/database.index.test.js.map +1 -1
- package/dist/ecs/database/database.index.type-test.js +34 -10
- package/dist/ecs/database/database.index.type-test.js.map +1 -1
- package/dist/ecs/database/database.js.map +1 -1
- package/dist/ecs/database/database.reset.test.js +2 -1
- package/dist/ecs/database/database.reset.test.js.map +1 -1
- package/dist/ecs/database/index-registry/create-index-registry.d.ts +38 -9
- package/dist/ecs/database/index-registry/create-index-registry.js +67 -20
- package/dist/ecs/database/index-registry/create-index-registry.js.map +1 -1
- package/dist/ecs/database/index-registry/create-index.d.ts +10 -2
- package/dist/ecs/database/index-registry/create-index.js +44 -47
- package/dist/ecs/database/index-registry/create-index.js.map +1 -1
- package/dist/ecs/database/index.d.ts +1 -0
- package/dist/ecs/database/index.js +1 -0
- package/dist/ecs/database/index.js.map +1 -1
- package/dist/ecs/database/observe-index-entities.d.ts +26 -0
- package/dist/ecs/database/observe-index-entities.js +66 -0
- package/dist/ecs/database/observe-index-entities.js.map +1 -0
- package/dist/ecs/database/observed/create-observed-database.js +1 -1
- package/dist/ecs/database/observed/create-observed-database.js.map +1 -1
- package/dist/ecs/database/observed/observed-database.d.ts +1 -1
- package/dist/ecs/database/public/create-database.d.ts +12 -27
- package/dist/ecs/database/public/create-database.js +131 -37
- package/dist/ecs/database/public/create-database.js.map +1 -1
- package/dist/ecs/database/public/create-database.test.js +8 -7
- package/dist/ecs/database/public/create-database.test.js.map +1 -1
- package/dist/ecs/database/public/create-transaction-dispatcher.d.ts +4 -2
- package/dist/ecs/database/public/create-transaction-dispatcher.js +2 -8
- package/dist/ecs/database/public/create-transaction-dispatcher.js.map +1 -1
- package/dist/ecs/database/reconciling/create-rebase-replay-applier.d.ts +26 -0
- package/dist/ecs/database/reconciling/create-rebase-replay-applier.js +121 -0
- package/dist/ecs/database/reconciling/create-rebase-replay-applier.js.map +1 -0
- package/dist/ecs/database/reconciling/create-reconciling-database.d.ts +11 -0
- package/dist/ecs/database/reconciling/create-reconciling-database.js +28 -137
- package/dist/ecs/database/reconciling/create-reconciling-database.js.map +1 -1
- package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
- package/dist/ecs/database/transactional-store/transactional-store.d.ts +1 -1
- package/dist/ecs/entity-location-table/create-entity-location-table.js +2 -2
- package/dist/ecs/entity-location-table/create-entity-location-table.js.map +1 -1
- package/dist/ecs/entity-location-table/entity-location-table.d.ts +7 -1
- package/dist/ecs/store/core/core.d.ts +7 -1
- package/dist/ecs/store/core/create-core.js +3 -3
- package/dist/ecs/store/core/create-core.js.map +1 -1
- package/dist/ecs/store/core/select-entities.js +6 -3
- package/dist/ecs/store/core/select-entities.js.map +1 -1
- package/dist/ecs/store/index-types.d.ts +53 -17
- package/dist/ecs/store/public/create-store.js +32 -6
- package/dist/ecs/store/public/create-store.js.map +1 -1
- package/dist/ecs/store/public/create-store.test.js +25 -0
- package/dist/ecs/store/public/create-store.test.js.map +1 -1
- package/dist/ecs/store/store.d.ts +10 -3
- package/dist/ecs/store/store.js.map +1 -1
- package/dist/functions/compare.d.ts +13 -0
- package/dist/functions/compare.js +15 -0
- package/dist/functions/compare.js.map +1 -0
- package/dist/functions/compare.test.d.ts +1 -0
- package/dist/functions/compare.test.js +24 -0
- package/dist/functions/compare.test.js.map +1 -0
- package/dist/functions/index.d.ts +1 -0
- package/dist/functions/index.js +1 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/test-setup.js +2 -2
- package/dist/test-setup.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -1
- package/references/data-lit/package.json +1 -1
- package/references/data-lit-tictactoe/package.json +1 -1
- package/references/data-react/package.json +1 -1
- package/references/data-react-hello/package.json +1 -1
- package/references/data-react-pixie/package.json +1 -1
|
@@ -43,10 +43,28 @@ const formatShape = (decl) => {
|
|
|
43
43
|
const order = decl.order ? ` order=[${decl.order.by.join(",")}]` : "";
|
|
44
44
|
return `key=${keyIdent(decl.key)}${unique}${order}`;
|
|
45
45
|
};
|
|
46
|
-
export const createIndexRegistry = (read) => {
|
|
46
|
+
export const createIndexRegistry = (read, archetypeColumns) => {
|
|
47
47
|
const indexes = new Map();
|
|
48
48
|
const entries = new Map();
|
|
49
49
|
const shapeToName = new Map();
|
|
50
|
+
// archetype id -> indexes applicable to it (readColumns ⊆ components),
|
|
51
|
+
// computed lazily on first mutation to an archetype and cached. Archetypes
|
|
52
|
+
// are immutable, so an entry only goes stale when a new index registers —
|
|
53
|
+
// we clear the whole cache there. This turns per-mutation index dispatch
|
|
54
|
+
// from O(all indexes) into an O(1) lookup + O(applicable) walk.
|
|
55
|
+
const applicableCache = new Map();
|
|
56
|
+
const indexesFor = (archetype) => {
|
|
57
|
+
let list = applicableCache.get(archetype.id);
|
|
58
|
+
if (list === undefined) {
|
|
59
|
+
list = [];
|
|
60
|
+
for (const idx of indexes.values()) {
|
|
61
|
+
if (idx.readColumns.every((c) => archetype.components.has(c)))
|
|
62
|
+
list.push(idx);
|
|
63
|
+
}
|
|
64
|
+
applicableCache.set(archetype.id, list);
|
|
65
|
+
}
|
|
66
|
+
return list;
|
|
67
|
+
};
|
|
50
68
|
const register = (name, decl) => {
|
|
51
69
|
const existing = entries.get(name);
|
|
52
70
|
if (existing) {
|
|
@@ -63,16 +81,27 @@ export const createIndexRegistry = (read) => {
|
|
|
63
81
|
`(${formatShape(decl)}). Almost certainly an unintentional ` +
|
|
64
82
|
`duplicate — collapse them to a single declaration.`);
|
|
65
83
|
}
|
|
84
|
+
let scopeColumns;
|
|
85
|
+
if (decl.archetype !== undefined) {
|
|
86
|
+
scopeColumns = archetypeColumns?.(decl.archetype);
|
|
87
|
+
if (scopeColumns === undefined) {
|
|
88
|
+
throw new Error(`Index "${name}" is scoped to unknown archetype "${decl.archetype}". ` +
|
|
89
|
+
`Declare the archetype before the index that scopes to it.`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
66
92
|
const state = {
|
|
67
93
|
key: decl.key,
|
|
68
94
|
order: decl.order,
|
|
69
95
|
unique: decl.unique ?? false,
|
|
70
96
|
components: decl.components,
|
|
97
|
+
scopeColumns,
|
|
71
98
|
};
|
|
72
99
|
const idx = createIndex(state);
|
|
73
100
|
indexes.set(name, idx);
|
|
74
101
|
entries.set(name, { decl, index: idx });
|
|
75
102
|
shapeToName.set(sk, name);
|
|
103
|
+
// A new index can apply to already-seen archetypes — drop the cache.
|
|
104
|
+
applicableCache.clear();
|
|
76
105
|
return idx;
|
|
77
106
|
};
|
|
78
107
|
const reflectEntity = (entity, change) => {
|
|
@@ -101,50 +130,62 @@ export const createIndexRegistry = (read) => {
|
|
|
101
130
|
for (const idx of indexes.values())
|
|
102
131
|
idx.clear();
|
|
103
132
|
};
|
|
104
|
-
|
|
133
|
+
// Names are needed for conflict messages; resolve lazily from the map.
|
|
134
|
+
const nameOf = (index) => {
|
|
135
|
+
for (const [name, idx] of indexes)
|
|
136
|
+
if (idx === index)
|
|
137
|
+
return name;
|
|
138
|
+
return "<index>";
|
|
139
|
+
};
|
|
140
|
+
const applyInsert = (entity, archetype, values) => {
|
|
105
141
|
if (indexes.size === 0)
|
|
106
142
|
return;
|
|
107
|
-
for (const idx of
|
|
143
|
+
for (const idx of indexesFor(archetype))
|
|
108
144
|
idx.add(entity, values);
|
|
109
145
|
};
|
|
110
|
-
const applyUpdate = (entity) => {
|
|
146
|
+
const applyUpdate = (entity, from, to) => {
|
|
111
147
|
if (indexes.size === 0)
|
|
112
148
|
return;
|
|
113
149
|
const values = read(entity);
|
|
114
150
|
if (values === null) {
|
|
115
|
-
|
|
151
|
+
// Entity gone — remove from everything it could have been in.
|
|
152
|
+
for (const idx of from ? indexesFor(from) : indexes.values())
|
|
116
153
|
idx.remove(entity);
|
|
117
154
|
return;
|
|
118
155
|
}
|
|
119
|
-
|
|
156
|
+
// Update the indexes of the destination archetype; when the update
|
|
157
|
+
// changed archetype, also the source's, so the entity is dropped from
|
|
158
|
+
// indexes it no longer belongs to. Each `idx.update` re-derives the
|
|
159
|
+
// entity's buckets from `values`, so add / move / remove all fall out
|
|
160
|
+
// of the same call.
|
|
161
|
+
const toList = to ? indexesFor(to) : [];
|
|
162
|
+
for (const idx of toList)
|
|
120
163
|
idx.update(entity, values);
|
|
164
|
+
if (from && (!to || from.id !== to.id)) {
|
|
165
|
+
const seen = toList.length > 0 ? new Set(toList) : null;
|
|
166
|
+
for (const idx of indexesFor(from)) {
|
|
167
|
+
if (seen === null || !seen.has(idx))
|
|
168
|
+
idx.update(entity, values);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
121
171
|
};
|
|
122
|
-
const applyDelete = (entity) => {
|
|
172
|
+
const applyDelete = (entity, archetype) => {
|
|
123
173
|
if (indexes.size === 0)
|
|
124
174
|
return;
|
|
125
|
-
for (const idx of indexes.values())
|
|
175
|
+
for (const idx of archetype ? indexesFor(archetype) : indexes.values())
|
|
126
176
|
idx.remove(entity);
|
|
127
177
|
};
|
|
128
|
-
const checkUniqueAvailableForInsert = (values) => {
|
|
129
|
-
for (const
|
|
178
|
+
const checkUniqueAvailableForInsert = (archetype, values) => {
|
|
179
|
+
for (const idx of indexesFor(archetype)) {
|
|
130
180
|
if (!idx.unique)
|
|
131
181
|
continue;
|
|
132
182
|
const collidesWith = idx.checkUniqueAvailable(values, null);
|
|
133
183
|
if (collidesWith !== null) {
|
|
134
|
-
throw new Error(`Unique index conflict on "${
|
|
184
|
+
throw new Error(`Unique index conflict on "${nameOf(idx)}": existing entity ${collidesWith}.`);
|
|
135
185
|
}
|
|
136
186
|
}
|
|
137
187
|
};
|
|
138
188
|
const checkUniqueAvailableForUpdate = (entity, patch) => {
|
|
139
|
-
let hasUnique = false;
|
|
140
|
-
for (const idx of indexes.values()) {
|
|
141
|
-
if (idx.unique) {
|
|
142
|
-
hasUnique = true;
|
|
143
|
-
break;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
if (!hasUnique)
|
|
147
|
-
return;
|
|
148
189
|
const current = read(entity);
|
|
149
190
|
if (current === null)
|
|
150
191
|
return;
|
|
@@ -152,6 +193,12 @@ export const createIndexRegistry = (read) => {
|
|
|
152
193
|
for (const [name, idx] of indexes) {
|
|
153
194
|
if (!idx.unique)
|
|
154
195
|
continue;
|
|
196
|
+
// Applicability gate (replaces the per-entity scope check inside
|
|
197
|
+
// the index): only test indexes whose read columns the post-update
|
|
198
|
+
// entity actually has, so a scoped unique index is never checked
|
|
199
|
+
// against an entity outside its archetype.
|
|
200
|
+
if (!idx.readColumns.every((c) => effective[c] !== undefined))
|
|
201
|
+
continue;
|
|
155
202
|
const collidesWith = idx.checkUniqueAvailable(effective, entity);
|
|
156
203
|
if (collidesWith !== null) {
|
|
157
204
|
throw new Error(`Unique index conflict on "${name}": existing entity ${collidesWith} ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-index-registry.js","sourceRoot":"","sources":["../../../../src/ecs/database/index-registry/create-index-registry.ts"],"names":[],"mappings":"AAAA,uDAAuD;
|
|
1
|
+
{"version":3,"file":"create-index-registry.js","sourceRoot":"","sources":["../../../../src/ecs/database/index-registry/create-index-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import type { Entity } from "../../entity/entity.js";
|
|
|
3
3
|
* `key` declaration variants. See `Index` in `store/index-types.ts` for
|
|
4
4
|
* the type-level mirror that drives `find` / `get` argument inference.
|
|
5
5
|
*/
|
|
6
|
-
export type IndexKeyDecl = string | readonly string[] |
|
|
7
|
-
readonly [slot: string]: string | ((
|
|
6
|
+
export type IndexKeyDecl = string | readonly string[] | {
|
|
7
|
+
readonly [slot: string]: string | ((components: Record<string, unknown>) => unknown);
|
|
8
8
|
};
|
|
9
9
|
/** `order` declaration: read columns + optional comparator. */
|
|
10
10
|
export type IndexOrderDecl = {
|
|
@@ -26,6 +26,14 @@ export interface IndexState {
|
|
|
26
26
|
* string identity in `key` or `order.by`.
|
|
27
27
|
*/
|
|
28
28
|
readonly components?: readonly string[];
|
|
29
|
+
/**
|
|
30
|
+
* When the index is scoped to an archetype, the archetype's full component
|
|
31
|
+
* set. An entity is included only if it has *every* one of these columns
|
|
32
|
+
* (superset match), and seeding walks only archetypes that carry them — so
|
|
33
|
+
* the index covers that archetype (and supersets), not every entity that
|
|
34
|
+
* merely shares the key column.
|
|
35
|
+
*/
|
|
36
|
+
readonly scopeColumns?: readonly string[];
|
|
29
37
|
}
|
|
30
38
|
/**
|
|
31
39
|
* Runtime instance of a single declared index. Public methods mirror
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { compare } from "../../../functions/compare.js";
|
|
2
3
|
// ============================================================================
|
|
3
4
|
// Key serialization
|
|
4
5
|
// ============================================================================
|
|
@@ -54,20 +55,13 @@ const expandBucketKeys = (keyValue) => {
|
|
|
54
55
|
return [keyValue];
|
|
55
56
|
};
|
|
56
57
|
const normalizeKey = (keyDecl, extraComponents) => {
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
extractFromEntity: (values) => {
|
|
62
|
-
const v = values[keyDecl];
|
|
63
|
-
return v === undefined ? null : v;
|
|
64
|
-
},
|
|
65
|
-
extractFromLookup: (arg) => arg,
|
|
66
|
-
};
|
|
67
|
-
}
|
|
58
|
+
// A bare column name is sugar for the single-column tuple `[col]`: the
|
|
59
|
+
// bucket key and the lookup arg are both the named object `{ col: value }`,
|
|
60
|
+
// so there is no scalar form to special-case below.
|
|
61
|
+
const decl = typeof keyDecl === "string" ? [keyDecl] : keyDecl;
|
|
68
62
|
// String tuple
|
|
69
|
-
if (Array.isArray(
|
|
70
|
-
const cols =
|
|
63
|
+
if (Array.isArray(decl)) {
|
|
64
|
+
const cols = decl;
|
|
71
65
|
return {
|
|
72
66
|
readColumns: cols,
|
|
73
67
|
extractFromEntity: (values) => {
|
|
@@ -83,22 +77,7 @@ const normalizeKey = (keyDecl, extraComponents) => {
|
|
|
83
77
|
extractFromLookup: (arg) => arg,
|
|
84
78
|
};
|
|
85
79
|
}
|
|
86
|
-
|
|
87
|
-
if (typeof keyDecl === "function") {
|
|
88
|
-
return {
|
|
89
|
-
readColumns: extraComponents,
|
|
90
|
-
extractFromEntity: (values) => {
|
|
91
|
-
const args = extraComponents.map((c) => values[c]);
|
|
92
|
-
if (args.some((v) => v === undefined))
|
|
93
|
-
return null;
|
|
94
|
-
const out = keyDecl(...args);
|
|
95
|
-
return out === undefined ? null : out;
|
|
96
|
-
},
|
|
97
|
-
extractFromLookup: (arg) => arg,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
// Slot map
|
|
101
|
-
const slotEntries = Object.entries(keyDecl);
|
|
80
|
+
const slotEntries = Object.entries(decl);
|
|
102
81
|
// Read set: identity-string columns + extra components for functions.
|
|
103
82
|
const reads = new Set();
|
|
104
83
|
for (const [, v] of slotEntries)
|
|
@@ -109,6 +88,22 @@ const normalizeKey = (keyDecl, extraComponents) => {
|
|
|
109
88
|
return {
|
|
110
89
|
readColumns: [...reads],
|
|
111
90
|
extractFromEntity: (values) => {
|
|
91
|
+
// Computed slots receive a single named object of the index's
|
|
92
|
+
// declared `components` (not positional args), so an extractor
|
|
93
|
+
// reads `c.email` rather than relying on argument order.
|
|
94
|
+
let componentValues = null;
|
|
95
|
+
const componentObject = () => {
|
|
96
|
+
if (componentValues)
|
|
97
|
+
return componentValues;
|
|
98
|
+
const obj = {};
|
|
99
|
+
for (const c of extraComponents) {
|
|
100
|
+
const cv = values[c];
|
|
101
|
+
if (cv === undefined)
|
|
102
|
+
return null;
|
|
103
|
+
obj[c] = cv;
|
|
104
|
+
}
|
|
105
|
+
return (componentValues = obj);
|
|
106
|
+
};
|
|
112
107
|
const out = {};
|
|
113
108
|
for (const [slot, ext] of slotEntries) {
|
|
114
109
|
if (typeof ext === "string") {
|
|
@@ -118,10 +113,10 @@ const normalizeKey = (keyDecl, extraComponents) => {
|
|
|
118
113
|
out[slot] = v;
|
|
119
114
|
}
|
|
120
115
|
else {
|
|
121
|
-
const
|
|
122
|
-
if (
|
|
116
|
+
const components = componentObject();
|
|
117
|
+
if (components === null)
|
|
123
118
|
return null;
|
|
124
|
-
const v = ext(
|
|
119
|
+
const v = ext(components);
|
|
125
120
|
if (v === undefined)
|
|
126
121
|
return null;
|
|
127
122
|
out[slot] = v;
|
|
@@ -134,13 +129,9 @@ const normalizeKey = (keyDecl, extraComponents) => {
|
|
|
134
129
|
};
|
|
135
130
|
const defaultCompare = (by) => (a, b) => {
|
|
136
131
|
for (const c of by) {
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
continue;
|
|
141
|
-
if (va < vb)
|
|
142
|
-
return -1;
|
|
143
|
-
return 1;
|
|
132
|
+
const cmp = compare(a[c], b[c]);
|
|
133
|
+
if (cmp !== 0)
|
|
134
|
+
return cmp;
|
|
144
135
|
}
|
|
145
136
|
return 0;
|
|
146
137
|
};
|
|
@@ -165,16 +156,21 @@ const normalizeOrder = (order) => {
|
|
|
165
156
|
export const createIndex = (state) => {
|
|
166
157
|
const unique = state.unique ?? false;
|
|
167
158
|
const extraComponents = state.components ?? [];
|
|
159
|
+
const scopeColumns = state.scopeColumns ?? [];
|
|
168
160
|
const keyEx = normalizeKey(state.key, extraComponents);
|
|
169
161
|
const orderEx = state.order ? normalizeOrder(state.order) : null;
|
|
170
162
|
const sorted = orderEx !== null;
|
|
171
|
-
// All columns the index touches (key reads + sort reads
|
|
172
|
-
// the store to walk only relevant archetypes when
|
|
163
|
+
// All columns the index touches (key reads + sort reads + archetype-scope
|
|
164
|
+
// columns). Used by the store to walk only relevant archetypes when
|
|
165
|
+
// seeding — folding in scopeColumns restricts seeding to the scoped
|
|
166
|
+
// archetype (and supersets).
|
|
173
167
|
const readColumns = (() => {
|
|
174
168
|
const set = new Set(keyEx.readColumns);
|
|
175
169
|
if (orderEx)
|
|
176
170
|
for (const c of orderEx.readColumns)
|
|
177
171
|
set.add(c);
|
|
172
|
+
for (const c of scopeColumns)
|
|
173
|
+
set.add(c);
|
|
178
174
|
return [...set];
|
|
179
175
|
})();
|
|
180
176
|
// Bucket payload:
|
|
@@ -201,6 +197,11 @@ export const createIndex = (state) => {
|
|
|
201
197
|
// Helpers ---------------------------------------------------------------
|
|
202
198
|
/** Enumerate (serialized-key, post-fan-out-value) pairs for an entity. */
|
|
203
199
|
const bucketEntriesFor = (values) => {
|
|
200
|
+
// No per-entity scope check here: archetype scope is enforced upstream
|
|
201
|
+
// by the registry's archetype-keyed dispatch (an index is only invoked
|
|
202
|
+
// for archetypes whose components are a superset of its `readColumns`,
|
|
203
|
+
// which includes the scope columns), so any entity reaching this point
|
|
204
|
+
// is already in scope.
|
|
204
205
|
const raw = keyEx.extractFromEntity(values);
|
|
205
206
|
if (raw === null)
|
|
206
207
|
return [];
|
|
@@ -455,13 +456,9 @@ export const createIndex = (state) => {
|
|
|
455
456
|
}
|
|
456
457
|
return true;
|
|
457
458
|
};
|
|
458
|
-
|
|
459
|
+
// Every index key is object-shaped (a single column is sugar for a
|
|
460
|
+
// one-field object), so a `findRange` arg is always matched per field.
|
|
459
461
|
const matchesArg = (bucketValue, arg) => {
|
|
460
|
-
if (scalarKey) {
|
|
461
|
-
if (isOperatorObject(arg))
|
|
462
|
-
return matchesOps(bucketValue, arg);
|
|
463
|
-
return Object.is(bucketValue, arg);
|
|
464
|
-
}
|
|
465
462
|
if (arg === null || typeof arg !== "object" || Array.isArray(arg))
|
|
466
463
|
return false;
|
|
467
464
|
for (const field in arg) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-index.js","sourceRoot":"","sources":["../../../../src/ecs/database/index-registry/create-index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-index.js","sourceRoot":"","sources":["../../../../src/ecs/database/index-registry/create-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "./public/create-database.js";
|
|
2
2
|
export * from "./public/observe-select-deep.js";
|
|
3
|
+
export * from "./concurrency/index.js";
|
|
3
4
|
export * from "./reconciling/create-reconciling-database.js";
|
|
4
5
|
export * from "./reconciling/reconciling-database.js";
|
|
5
6
|
export * from "./reconciling/reconciling-entry.js";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
export * from "./public/create-database.js";
|
|
3
3
|
export * from "./public/observe-select-deep.js";
|
|
4
|
+
export * from "./concurrency/index.js";
|
|
4
5
|
export * from "./reconciling/create-reconciling-database.js";
|
|
5
6
|
export * from "./reconciling/reconciling-database.js";
|
|
6
7
|
export * from "./reconciling/reconciling-entry.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ecs/database/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ecs/database/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Observe } from "../../observe/index.js";
|
|
2
|
+
import { Entity } from "../entity/entity.js";
|
|
3
|
+
import { TransactionResult } from "./transactional-store/transactional-store.js";
|
|
4
|
+
/**
|
|
5
|
+
* Reactive counterpart to an index handle's `find`. Mirrors
|
|
6
|
+
* {@link observeSelectEntities}: the initial value is emitted synchronously on
|
|
7
|
+
* subscribe, and subsequent values are emitted on a microtask after any
|
|
8
|
+
* transaction whose changed components intersect the index's read columns —
|
|
9
|
+
* the same commit boundary every other observer in the database fires on.
|
|
10
|
+
*
|
|
11
|
+
* Why route through transactions rather than notifying inside the index's own
|
|
12
|
+
* `add` / `remove` / `update`: those run *during* a transaction body, once per
|
|
13
|
+
* mutated entity, before the transaction commits. Emitting there would fire
|
|
14
|
+
* observers mid-transaction against half-applied state and at a different
|
|
15
|
+
* cadence than `db.observe.select`. Recomputing `find(arg)` at the commit
|
|
16
|
+
* boundary instead coalesces a whole transaction into one emission and keeps
|
|
17
|
+
* index reactivity consistent with the rest of the system.
|
|
18
|
+
*
|
|
19
|
+
* Bucket precision ("don't emit when an unrelated bucket changed") falls out
|
|
20
|
+
* of comparing the freshly-recomputed entity sequence against the last emitted
|
|
21
|
+
* one: an unrelated change recomputes to an identical sequence and is
|
|
22
|
+
* suppressed, while a reorder *within* the observed bucket — the regression
|
|
23
|
+
* case the index `find` already handles but a `where`-only `observe.select`
|
|
24
|
+
* silently swallows — produces a different sequence and is emitted.
|
|
25
|
+
*/
|
|
26
|
+
export declare const observeIndexEntities: (observeTransactions: Observe<TransactionResult<any>>) => (find: (arg: unknown) => readonly Entity[], readColumns: readonly string[]) => (arg: unknown) => Observe<readonly Entity[]>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
/**
|
|
3
|
+
* Reactive counterpart to an index handle's `find`. Mirrors
|
|
4
|
+
* {@link observeSelectEntities}: the initial value is emitted synchronously on
|
|
5
|
+
* subscribe, and subsequent values are emitted on a microtask after any
|
|
6
|
+
* transaction whose changed components intersect the index's read columns —
|
|
7
|
+
* the same commit boundary every other observer in the database fires on.
|
|
8
|
+
*
|
|
9
|
+
* Why route through transactions rather than notifying inside the index's own
|
|
10
|
+
* `add` / `remove` / `update`: those run *during* a transaction body, once per
|
|
11
|
+
* mutated entity, before the transaction commits. Emitting there would fire
|
|
12
|
+
* observers mid-transaction against half-applied state and at a different
|
|
13
|
+
* cadence than `db.observe.select`. Recomputing `find(arg)` at the commit
|
|
14
|
+
* boundary instead coalesces a whole transaction into one emission and keeps
|
|
15
|
+
* index reactivity consistent with the rest of the system.
|
|
16
|
+
*
|
|
17
|
+
* Bucket precision ("don't emit when an unrelated bucket changed") falls out
|
|
18
|
+
* of comparing the freshly-recomputed entity sequence against the last emitted
|
|
19
|
+
* one: an unrelated change recomputes to an identical sequence and is
|
|
20
|
+
* suppressed, while a reorder *within* the observed bucket — the regression
|
|
21
|
+
* case the index `find` already handles but a `where`-only `observe.select`
|
|
22
|
+
* silently swallows — produces a different sequence and is emitted.
|
|
23
|
+
*/
|
|
24
|
+
export const observeIndexEntities = (observeTransactions) => (find, readColumns) => {
|
|
25
|
+
const readSet = new Set(readColumns);
|
|
26
|
+
return (arg) => (observer) => {
|
|
27
|
+
let last = find(arg);
|
|
28
|
+
let isMicrotaskQueued = false;
|
|
29
|
+
const notifyObserver = () => {
|
|
30
|
+
isMicrotaskQueued = false;
|
|
31
|
+
const next = find(arg);
|
|
32
|
+
if (sameSequence(last, next)) {
|
|
33
|
+
// The relevant transaction touched a different bucket — our
|
|
34
|
+
// result is unchanged, so suppress the emission.
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
last = next;
|
|
38
|
+
observer(next);
|
|
39
|
+
};
|
|
40
|
+
const unobserveTransactions = observeTransactions((t) => {
|
|
41
|
+
if (t.changedComponents.isDisjointFrom(readSet)) {
|
|
42
|
+
// No component this index reads (key or sort) changed, so the
|
|
43
|
+
// bucket contents and their order cannot have changed.
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (!isMicrotaskQueued) {
|
|
47
|
+
isMicrotaskQueued = true;
|
|
48
|
+
queueMicrotask(notifyObserver);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
observer(last);
|
|
52
|
+
return () => {
|
|
53
|
+
unobserveTransactions();
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
const sameSequence = (a, b) => {
|
|
58
|
+
if (a.length !== b.length)
|
|
59
|
+
return false;
|
|
60
|
+
for (let i = 0; i < a.length; i++) {
|
|
61
|
+
if (a[i] !== b[i])
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=observe-index-entities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observe-index-entities.js","sourceRoot":"","sources":["../../../src/ecs/database/observe-index-entities.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAMvD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,mBAAoD,EACtD,EAAE,CAAC,CACD,IAAyC,EACzC,WAA8B,EAChC,EAAE;IACA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,WAAW,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAY,EAA8B,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9D,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,MAAM,cAAc,GAAG,GAAG,EAAE;YACxB,iBAAiB,GAAG,KAAK,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC3B,4DAA4D;gBAC5D,iDAAiD;gBACjD,OAAO;YACX,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9C,8DAA8D;gBAC9D,uDAAuD;gBACvD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACrB,iBAAiB,GAAG,IAAI,CAAC;gBACzB,cAAc,CAAC,cAAc,CAAC,CAAC;YACnC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,OAAO,GAAG,EAAE;YACR,qBAAqB,EAAE,CAAC;QAC5B,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAoB,EAAE,CAAoB,EAAW,EAAE;IACzE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -146,7 +146,7 @@ export function createObservedDatabase(store) {
|
|
|
146
146
|
store.reset();
|
|
147
147
|
notifyAllObserversStoreReloaded();
|
|
148
148
|
},
|
|
149
|
-
toData: () => store.toData(),
|
|
149
|
+
toData: (copy = false) => store.toData(copy),
|
|
150
150
|
fromData: (data) => {
|
|
151
151
|
store.fromData(data);
|
|
152
152
|
notifyAllObserversStoreReloaded();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-observed-database.js","sourceRoot":"","sources":["../../../../src/ecs/database/observed/create-observed-database.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAQpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAC;AAMhG,MAAM,WAAW,GAAG,CAAO,GAAM,EAAE,GAAmB,EAAE,EAAE,CAAC,CAAC,KAAQ,EAAE,EAAE;IACpE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,GAAG,EAAE,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;SAAM,CAAC;QACJ,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,EAAE;QACR,GAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAKlC,KAAqB;IAErB,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,kBAAkB,CAAC;IAEjF,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAmC,CAAC;IACtE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAgC,CAAC;IACnE,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6D,CAAC;IAC7F,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA+C,CAAC;IAEpF,MAAM,eAAe,GAAG,CAAC,MAA4B,EAAE,EAAE;QACrD,0DAA0D;QAC1D,qEAAqE;QACrE,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC;YAC9C,MAAM,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC;YACjC,MAAM,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,CAAC;QAEtC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;QACX,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,oBAAoB,EAAE,CAAC;YAC1C,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QACD,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,gBAAkC,CAAC,CAAC;YAC7E,IAAI,SAAS,EAAE,CAAC;gBACZ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC/B,QAAQ,EAAE,CAAC;gBACf,CAAC;YACL,CAAC;QACL,CAAC;QACD,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC3D,IAAI,SAAS,EAAE,CAAC;gBACZ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC/B,QAAQ,EAAE,CAAC;gBACf,CAAC;YACL,CAAC;QACL,CAAC;QACD,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACrD,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC/B,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,OAAO,GAAyC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QACvE,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,eAAe,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAA+B,MAAc,EAAE,YAAkD,EAAE,EAAE,CAAC,CAAC,QAAsD,EAAE,EAAE;QACnL,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,gBAAgB,GAAG,QAAQ,CAAC;YAClC,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;gBAClB,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACtC,IAAI,QAAQ,EAAE,CAAC;wBACX,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;wBAC/B,IAAI,SAAS,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;4BAClG,MAAM,GAAG,IAAI,CAAC;wBAClB,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC;QACN,CAAC;QACD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,SAAsB,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAChG,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEzH,MAAM,2BAA2B,GAAG,CAAC,QAAgB,EAAoB,EAAE;QACvE,MAAM,WAAW,GAAI,KAAK,CAAC,gBAAwB,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;QACzE,OAAO,WAAW;YACd,CAAC,CAAC,CAAC,IAAsB,EAAE,QAAqC,EAAE,WAA6B,CAAC;YAChG,CAAC,CAAC,CAAC,IAAsB,EAAE,QAAqC,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACtC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAE,MAAc,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACnH,CAAC,CAAC,CACwC,CAAC;IAE/C,MAAM,kBAAkB,GAAkC,CAAC,MAAmD,EAAE,EAAE;QAC9G,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACR,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,OAAO,GAAyC;QAClD,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,eAAe;QAC1B,YAAY,EAAE,kBAAkB;QAChC,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,gBAAgB;QAC3B,MAAM,EAAE,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;KACxE,CAAC;IAEF,MAAM,+BAA+B,GAAG,GAAG,EAAE;QACzC,MAAM,YAAY,GAAyB;YACvC,iBAAiB,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACrD,iBAAiB,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACrD,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,YAAY,GAAiC,IAAI,CAAC;gBACtD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;oBACrC,YAAY,GAAG,UAAmC,CAAC;gBACvD,CAAC;gBACD,OAAO;oBACH,MAAM;oBACN,YAAY;iBACf,CAAC;YACN,CAAC,CAAC,CAAC;YACH,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,IAAI;SACjB,CAAC;QACF,eAAe,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAA8B;QAChD,GAAG,IAAI;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,KAAK,EAAE,GAAG,EAAE;YACR,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,+BAA+B,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"create-observed-database.js","sourceRoot":"","sources":["../../../../src/ecs/database/observed/create-observed-database.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ export interface ObservedDatabase<C extends Components, R extends ResourceCompon
|
|
|
33
33
|
userId?: number | string;
|
|
34
34
|
}) => TransactionResult<C>;
|
|
35
35
|
readonly reset: () => void;
|
|
36
|
-
readonly toData: () => unknown;
|
|
36
|
+
readonly toData: (copy?: boolean) => unknown;
|
|
37
37
|
readonly fromData: (data: unknown) => void;
|
|
38
38
|
readonly extend: <P extends Database.Plugin<any, any, any, any, any>>(plugin: P) => ObservedDatabase<C & (P extends Database.Plugin<infer XC, infer XR, infer XA, infer XTD, any> ? FromSchemas<XC> : never), R & (P extends Database.Plugin<infer XC, infer XR, infer XA, infer XTD, any> ? FromSchemas<XR> : never), A & (P extends Database.Plugin<infer XC, infer XR, infer XA, infer XTD, any> ? XA : never)>;
|
|
39
39
|
}
|