@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
@@ -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
- const applyInsert = (entity, values) => {
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 indexes.values())
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
- for (const idx of indexes.values())
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
- for (const idx of indexes.values())
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 [name, idx] of indexes) {
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 "${name}": existing entity ${collidesWith}.`);
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":"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"}
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[] | ((...args: any[]) => unknown) | {
7
- readonly [slot: string]: string | ((...args: any[]) => unknown);
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
- // Bare column name
58
- if (typeof keyDecl === "string") {
59
- return {
60
- readColumns: [keyDecl],
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(keyDecl)) {
70
- const cols = keyDecl;
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
- // Function
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 args = extraComponents.map((c) => values[c]);
122
- if (args.some((v) => v === undefined))
116
+ const components = componentObject();
117
+ if (components === null)
123
118
  return null;
124
- const v = ext(...args);
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 va = a[c];
138
- const vb = b[c];
139
- if (va === vb)
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). Used by
172
- // the store to walk only relevant archetypes when seeding.
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
- const scalarKey = typeof state.key === "string" || typeof state.key === "function";
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":"AAAA,uDAAuD;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AA8CxD,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,YAAY,GAAG,CAAC,KAAc,EAAU,EAAE;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC;YAAE,GAAG,IAAI,GAAG,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,CAAE,KAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,GAAG,IAAI,GAAG,CAAC;IACX,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,CAAC,QAAiB,EAAa,EAAE;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1E,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAmC,CAAC,CAAC;QACpE,IAAI,GAAG,GAA8B,CAAC,EAAE,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,GAA8B,EAAE,CAAC;YAC3C,KAAK,MAAM,OAAO,IAAI,GAAG,EAAE,CAAC;gBACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;YACD,GAAG,GAAG,IAAI,CAAC;QACf,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IACD,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtB,CAAC,CAAC;AAoBF,MAAM,YAAY,GAAG,CACjB,OAAqB,EACrB,eAAkC,EACtB,EAAE;IACd,uEAAuE;IACvE,4EAA4E;IAC5E,oDAAoD;IACpD,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/D,eAAe;IACf,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAyB,CAAC;QACvC,OAAO;YACH,WAAW,EAAE,IAAI;YACjB,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC1B,MAAM,GAAG,GAA4B,EAAE,CAAC;gBACxC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACnB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,KAAK,SAAS;wBAAE,OAAO,IAAI,CAAC;oBACjC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,OAAO,GAAG,CAAC;YACf,CAAC;YACD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG;SAClC,CAAC;IACN,CAAC;IAGD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAA8C,CAAC,CAAC;IACnF,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,WAAW;QAAE,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,KAAK,MAAM,CAAC,IAAI,eAAe;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO;QACH,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;QACvB,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1B,8DAA8D;YAC9D,+DAA+D;YAC/D,yDAAyD;YACzD,IAAI,eAAe,GAAmC,IAAI,CAAC;YAC3D,MAAM,eAAe,GAAG,GAAmC,EAAE;gBACzD,IAAI,eAAe;oBAAE,OAAO,eAAe,CAAC;gBAC5C,MAAM,GAAG,GAA4B,EAAE,CAAC;gBACxC,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;oBAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACrB,IAAI,EAAE,KAAK,SAAS;wBAAE,OAAO,IAAI,CAAC;oBAClC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;gBACD,OAAO,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;YACnC,CAAC,CAAC;YACF,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;gBACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBACtB,IAAI,CAAC,KAAK,SAAS;wBAAE,OAAO,IAAI,CAAC;oBACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACJ,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;oBACrC,IAAI,UAAU,KAAK,IAAI;wBAAE,OAAO,IAAI,CAAC;oBACrC,MAAM,CAAC,GAAI,GAAqB,CAAC,UAAU,CAAC,CAAC;oBAC7C,IAAI,CAAC,KAAK,SAAS;wBAAE,OAAO,IAAI,CAAC;oBACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;YACL,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC;QACD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG;KAClC,CAAC;AACN,CAAC,CAAC;AAcF,MAAM,cAAc,GAAG,CACnB,EAAqB,EAC+C,EAAE,CACtE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACL,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAQ,EAAE,CAAC,CAAC,CAAC,CAAQ,CAAC,CAAC;QAC9C,IAAI,GAAG,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAEN,MAAM,cAAc,GAAG,CAAC,KAAqB,EAAkB,EAAE;IAC7D,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,GAAG,GAAG,OAAO,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO;QACH,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACjB,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;gBACjC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,EAAE,GAAG;KACf,CAAC;AACN,CAAC,CAAC;AA2CF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAgB,EAAE;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;IACrC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IAEhC,0EAA0E;IAC1E,oEAAoE;IACpE,oEAAoE;IACpE,6BAA6B;IAC7B,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;QACtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,OAAO;YAAE,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,WAAW;gBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,YAAY;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC,EAAE,CAAC;IAEL,kBAAkB;IAClB,qEAAqE;IACrE,gCAAgC;IAChC,mEAAmE;IACnE,oEAAoE;IACpE,qEAAqE;IACrE,qEAAqE;IACrE,mBAAmB;IACnB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgC,CAAC;IACxD,yEAAyE;IACzE,oEAAoE;IACpE,kEAAkE;IAClE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAmB,CAAC;IACpD,iEAAiE;IACjE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,yBAAyB;IACzB,MAAM,SAAS,GAAyC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAE,SAAmB,CAAC;IAClG,gEAAgE;IAChE,kEAAkE;IAClE,yEAAyE;IACzE,MAAM,WAAW,GAA0B,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAE,SAAmB,CAAC;IAErF,0EAA0E;IAE1E,0EAA0E;IAC1E,MAAM,gBAAgB,GAAG,CACrB,MAAyC,EACR,EAAE;QACnC,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,uBAAuB;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,GAAG,GAAsC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAEF,sDAAsD;IACtD,MAAM,aAAa,GAAG,CAAC,MAAyC,EAAY,EAAE,CAC1E,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,CAAC,GAAY,EAAU,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvF,mEAAmE;IACnE,MAAM,eAAe,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CACrD,OAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;IAE3D;;;;OAIG;IACH,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,GAAgB,EAAY,EAAE;QAClE,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;YACxC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YACrB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC9C,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1B,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,GAAW,EAAE,KAAc,EAAQ,EAAE;QAC3E,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CACX,gCAAgC,GAAG,IAAI;oBACvC,mBAAmB,QAAQ,gBAAgB,MAAM,EAAE,CACtD,CAAC;YACN,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACzB,OAAO;QACX,CAAC;QACD,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAA4B,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChB,IAAI,MAAM;YAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,GAAW,EAAQ,EAAE;QAC3D,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpB,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO;QACX,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAA4B,CAAC;QACxD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnB,IAAI,MAAM;YAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpB,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACL,CAAC,CAAC;IAEF,0EAA0E;IAE1E,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,MAAyC,EAAQ,EAAE;QAC5E,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,IAAI,MAAM,EAAE,CAAC;YACT,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACX,gCAAgC,GAAG,IAAI;wBACvC,mBAAmB,QAAQ,gBAAgB,MAAM,EAAE,CACtD,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,OAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO;YAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,OAAO;YAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3E,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,MAAc,EAAQ,EAAE;QACpC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,MAAM;YAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,MAAyC,EAAQ,EAAE;QAC/E,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElC,qDAAqD;QACrD,IAAI,MAAM,EAAE,CAAC;YACT,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACvB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,SAAS;gBAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACX,gCAAgC,CAAC,IAAI;wBACrC,mBAAmB,QAAQ,gBAAgB,MAAM,EAAE,CACtD,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QAED,+DAA+D;QAC/D,+DAA+D;QAC/D,kDAAkD;QAClD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;YACnD,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,MAAM,OAAO,GAAG,OAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACjD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO;YAC9E,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM;gBAAE,KAAK,MAAM,CAAC,IAAI,QAAQ;oBAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO;QACX,CAAC;QAED,iEAAiE;QACjE,sEAAsE;QACtE,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;iBAClD,CAAC;gBACF,MAAM,IAAI,GAAG,OAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACvC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAC9C,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;YAChD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAS,EAAE;QACrB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACzB,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACT,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,WAAW,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,GAAY,EAAqB,EAAE;QAC7C,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACpC,IAAI,MAAM;YAAE,OAAO,CAAC,MAAgB,CAAC,CAAC;QACtC,8DAA8D;QAC9D,+DAA+D;QAC/D,iEAAiE;QACjE,8DAA8D;QAC9D,2BAA2B;QAC3B,OAAO,iBAAiB,CAAC,CAAC,EAAE,MAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/D,CAAC,CAAC;IAEF,yEAAyE;IACzE,yDAAyD;IACzD,wEAAwE;IACxE,uEAAuE;IACvE,oEAAoE;IACpE,0CAA0C;IAC1C,EAAE;IACF,qEAAqE;IACrE,wEAAwE;IACxE,qEAAqE;IACrE,gEAAgE;IAChE,MAAM,gBAAgB,GAAG,CAAC,CAAU,EAAW,EAAE;QAC7C,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjF,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,GAA4B,EAAW,EAAE;QACzE,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,KAAY,CAAC;YACvB,MAAM,CAAC,GAAG,MAAa,CAAC;YACxB,QAAQ,EAAE,EAAE,CAAC;gBACT,KAAK,IAAI;oBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAAC,MAAM;gBACrD,KAAK,IAAI;oBAAE,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAAC,MAAM;gBACpD,KAAK,GAAG;oBAAG,IAAI,CAAC,CAAC,CAAC,GAAI,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAAC,MAAM;gBAC9C,KAAK,IAAI;oBAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAAC,MAAM;gBAC9C,KAAK,GAAG;oBAAG,IAAI,CAAC,CAAC,CAAC,GAAI,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAAC,MAAM;gBAC9C,KAAK,IAAI;oBAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAAC,MAAM;YAClD,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,mEAAmE;IACnE,uEAAuE;IACvE,MAAM,UAAU,GAAG,CAAC,WAAoB,EAAE,GAAY,EAAW,EAAE;QAC/D,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChF,KAAK,MAAM,KAAK,IAAI,GAA8B,EAAE,CAAC;YACjD,MAAM,SAAS,GAAI,GAA+B,CAAC,KAAK,CAAC,CAAC;YAC1D,MAAM,UAAU,GAAI,WAAuC,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAoC,CAAC;oBAAE,OAAO,KAAK,CAAC;YACpF,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC3C,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAAY,EAAqB,EAAE;QAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,KAAK,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,OAAO,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC5C,IAAI,MAAM,EAAE,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,aAAuB,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YAC9D,4DAA4D;YAC5D,2DAA2D;YAC3D,yDAAyD;YACzD,MAAM,GAAG,GAAG,aAA4B,CAAC;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC3D,KAAK,MAAM,CAAC,IAAI,OAAO;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,GAAY,EAAiB,EAAE;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,MAAiB,CAAC;IAC5D,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CACzB,MAAyC,EACzC,aAA4B,EACf,EAAE;QACf,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAS;YACrC,IAAI,aAAa,KAAK,IAAI,IAAI,QAAQ,KAAK,aAAa;gBAAE,SAAS;YACnE,OAAO,QAAkB,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACH,MAAM;QACN,WAAW;QACX,MAAM;QACN,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG;QACH,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI,IAAI,KAAK,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,IAAI;QACJ,SAAS;QACT,GAAG,EAAE,GAA0B;QAC/B,oBAAoB;KACvB,CAAC;AACN,CAAC,CAAC"}
@@ -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":"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"}
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
  }