@adobe/data 0.9.82 → 0.9.83

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 (56) hide show
  1. package/dist/ecs/archetype/archetype.d.ts +23 -0
  2. package/dist/ecs/archetype/archetype.js.map +1 -1
  3. package/dist/ecs/database/create-plugin.d.ts +2 -1
  4. package/dist/ecs/database/create-plugin.js.map +1 -1
  5. package/dist/ecs/database/database.d.ts +6 -5
  6. package/dist/ecs/database/database.js.map +1 -1
  7. package/dist/ecs/database/database.partition.test.d.ts +1 -0
  8. package/dist/ecs/database/database.partition.test.js +45 -0
  9. package/dist/ecs/database/database.partition.test.js.map +1 -0
  10. package/dist/ecs/database/database.partition.type-test.d.ts +1 -0
  11. package/dist/ecs/database/database.partition.type-test.js +41 -0
  12. package/dist/ecs/database/database.partition.type-test.js.map +1 -0
  13. package/dist/ecs/database/deep-extends-chain.type-test.d.ts +255 -255
  14. package/dist/ecs/database/index.d.ts +0 -1
  15. package/dist/ecs/database/index.js +0 -1
  16. package/dist/ecs/database/index.js.map +1 -1
  17. package/dist/ecs/database/transactional-store/transactional-store.d.ts +6 -5
  18. package/dist/ecs/store/core/core.d.ts +33 -8
  19. package/dist/ecs/store/core/create-core.d.ts +12 -2
  20. package/dist/ecs/store/core/create-core.js +141 -22
  21. package/dist/ecs/store/core/create-core.js.map +1 -1
  22. package/dist/ecs/store/core/create-core.partition.test.d.ts +1 -0
  23. package/dist/ecs/store/core/create-core.partition.test.js +229 -0
  24. package/dist/ecs/store/core/create-core.partition.test.js.map +1 -0
  25. package/dist/ecs/store/core/select-entities.js +87 -21
  26. package/dist/ecs/store/core/select-entities.js.map +1 -1
  27. package/dist/ecs/store/core/select-entities.partition.test.d.ts +1 -0
  28. package/dist/ecs/store/core/select-entities.partition.test.js +93 -0
  29. package/dist/ecs/store/core/select-entities.partition.test.js.map +1 -0
  30. package/dist/ecs/store/entity-select-options.d.ts +5 -1
  31. package/dist/ecs/store/partition.d.ts +63 -0
  32. package/dist/ecs/store/partition.js +3 -0
  33. package/dist/ecs/store/partition.js.map +1 -0
  34. package/dist/ecs/store/partition.type-test.d.ts +1 -0
  35. package/dist/ecs/store/partition.type-test.js +15 -0
  36. package/dist/ecs/store/partition.type-test.js.map +1 -0
  37. package/dist/ecs/store/public/create-store.d.ts +3 -1
  38. package/dist/ecs/store/public/create-store.js +19 -50
  39. package/dist/ecs/store/public/create-store.js.map +1 -1
  40. package/dist/ecs/store/public/create-store.partition.test.d.ts +1 -0
  41. package/dist/ecs/store/public/create-store.partition.test.js +111 -0
  42. package/dist/ecs/store/public/create-store.partition.test.js.map +1 -0
  43. package/dist/ecs/store/public/create-store.partition.type-test.d.ts +1 -0
  44. package/dist/ecs/store/public/create-store.partition.type-test.js +61 -0
  45. package/dist/ecs/store/public/create-store.partition.type-test.js.map +1 -0
  46. package/dist/ecs/store/store.d.ts +15 -10
  47. package/dist/ecs/store/store.js.map +1 -1
  48. package/dist/ecs/store/transaction-functions.d.ts +3 -3
  49. package/dist/schema/schema.d.ts +1 -0
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/package.json +1 -1
  52. package/references/data-lit/package.json +1 -1
  53. package/references/data-lit-tictactoe/package.json +1 -1
  54. package/references/data-react/package.json +1 -1
  55. package/references/data-react-hello/package.json +1 -1
  56. package/references/data-react-pixie/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partition.type-test.js","sourceRoot":"","sources":["../../../src/ecs/store/partition.type-test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAwFvD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AACxC,iCAAiC;AACjC,8DAA8D;AAC9D,MAAM,CAAC,OAAO,CAAC;AACf,+CAA+C;AAC/C,MAAM,CAAC,QAAQ,CAAC;AAKhB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AACxC,2EAA2E;AAC3E,yCAAyC;AACzC,mFAAmF;AACnF,MAAM,CAAC,OAAO,CAAC"}
@@ -4,4 +4,6 @@ import { Store } from "../store.js";
4
4
  import { FromSchemas } from "../../../schema/from-schemas.js";
5
5
  import { ResourceSchemas } from "../../resource-schemas.js";
6
6
  import { ArchetypeComponents } from "../archetype-components.js";
7
- export declare function createStore<CS extends ComponentSchemas = {}, RS extends ResourceSchemas = {}, A extends ArchetypeComponents<StringKeyof<CS>> = {}>(schema?: Store.Schema<CS, RS, A>): Store<FromSchemas<CS>, FromSchemas<RS>, A>;
7
+ import { PartitionKeysOf } from "../partition.js";
8
+ import { IndexDeclarations } from "../index-types.js";
9
+ export declare function createStore<CS extends ComponentSchemas = {}, RS extends ResourceSchemas = {}, A extends ArchetypeComponents<StringKeyof<CS>> = {}, IX extends IndexDeclarations<FromSchemas<CS>, A> = {}>(schema?: Store.Schema<CS, RS, A, IX>): Store<FromSchemas<CS>, FromSchemas<RS>, A, IX, PartitionKeysOf<CS>>;
@@ -21,7 +21,7 @@ export function createStore(schema) {
21
21
  const resourceSchemas = {};
22
22
  const archetypeComponentNames = {};
23
23
  const componentAndResourceSchemas = {};
24
- const core = createCore(componentAndResourceSchemas);
24
+ const core = createCore(componentAndResourceSchemas, (archetype) => decorateArchetypeForIndexes(archetype));
25
25
  // Index registry. Owned at the Store layer because index state is
26
26
  // *derived* from store data, and every mutation that needs to keep
27
27
  // indexes in sync flows through Store methods (insert / update /
@@ -165,57 +165,25 @@ export function createStore(schema) {
165
165
  return selectEntities(core, include, options);
166
166
  };
167
167
  const archetypes = {};
168
- /**
169
- * Wraps a raw Core archetype so `insert` maintains index state. Pre-checks
170
- * unique constraints *before* the column mutation so a collision throws
171
- * without partially mutating the store. Other archetype methods are
172
- * passed through unchanged via the Proxy.
173
- *
174
- * Cached by raw archetype identity so repeated lookups
175
- * (`store.archetypes.X`, `store.ensureArchetype([...])`) all return the
176
- * same wrapper reference — code that uses `===` to compare archetypes
177
- * keeps working.
178
- */
179
- const archetypeWrapCache = new WeakMap();
180
- const wrapArchetypeForIndexes = (archetype) => {
181
- const cached = archetypeWrapCache.get(archetype);
182
- if (cached)
183
- return cached;
168
+ // Decorate an archetype's `insert` in place with index maintenance. The core
169
+ // calls this (via `onArchetypeCreated`) the moment any archetype is created
170
+ // direct or a lazily-created partition value-child so every write path
171
+ // (direct insert, router routing, migration target) shares one maintained
172
+ // insert. No Proxy and no forwarding wrapper: the archetype you hold *is* the
173
+ // index-maintaining one, and `===` identity is preserved for free.
174
+ const decorateArchetypeForIndexes = (archetype) => {
184
175
  const rawInsert = archetype.insert.bind(archetype);
185
- const wrappedInsert = (values) => {
186
- // `archetype` is the raw core archetype its id + component set
187
- // let the registry dispatch to only the applicable indexes.
176
+ archetype.insert = (values) => {
177
+ // Pre-check unique constraints before the column mutation so a
178
+ // collision throws without partially mutating the store. The
179
+ // archetype's id + component set let the registry dispatch to only
180
+ // the applicable indexes.
188
181
  indexRegistry.checkUniqueAvailableForInsert(archetype, values);
189
182
  const entity = rawInsert(values);
190
183
  indexRegistry.applyInsert(entity, archetype, values);
191
184
  return entity;
192
185
  };
193
- const wrapped = new Proxy(archetype, {
194
- get(target, prop, receiver) {
195
- if (prop === "insert")
196
- return wrappedInsert;
197
- return Reflect.get(target, prop, receiver);
198
- },
199
- });
200
- archetypeWrapCache.set(archetype, wrapped);
201
- return wrapped;
202
186
  };
203
- const ensureArchetype = ((componentNames) => {
204
- return wrapArchetypeForIndexes(core.ensureArchetype(componentNames));
205
- });
206
- // `queryArchetypes` and `locate` also surface archetypes — wrap them
207
- // so `===` comparisons against `store.archetypes.X` continue to hold.
208
- // Cached wrappers guarantee identity stability per raw archetype.
209
- const queryArchetypes = ((include, options) => {
210
- const raw = core.queryArchetypes(include, options);
211
- return raw.map((a) => wrapArchetypeForIndexes(a));
212
- });
213
- const locate = ((entity) => {
214
- const loc = core.locate(entity);
215
- if (loc === null)
216
- return null;
217
- return { archetype: wrapArchetypeForIndexes(loc.archetype), row: loc.row };
218
- });
219
187
  const updateEntity = (entity, values) => {
220
188
  indexRegistry.checkUniqueAvailableForUpdate(entity, values);
221
189
  // `update` can move the entity to a different archetype (when it
@@ -269,8 +237,9 @@ export function createStore(schema) {
269
237
  continue;
270
238
  }
271
239
  archetypeComponentNames[name] = newComponents;
272
- const archetype = core.ensureArchetype(["id", ...newComponents]);
273
- archetypes[name] = wrapArchetypeForIndexes(archetype);
240
+ // Insert is already index-maintaining (decorated at creation), and a
241
+ // partitioned archetype resolves to a Router — both surfaced directly.
242
+ archetypes[name] = core.ensureArchetype(["id", ...newComponents]);
274
243
  }
275
244
  // indexes: registry enforces (===)-or-throw on same name and
276
245
  // structural duplicate detection across names. A new RuntimeIndex
@@ -288,10 +257,10 @@ export function createStore(schema) {
288
257
  return store;
289
258
  };
290
259
  const store = {
260
+ // `ensureArchetype` / `queryArchetypes` / `locate` come straight from
261
+ // `core`: inserts are decorated at creation, so no Store-layer wrapping
262
+ // is needed and `===` identity holds (the raw archetype is the handle).
291
263
  ...core,
292
- ensureArchetype,
293
- queryArchetypes,
294
- locate,
295
264
  update: updateEntity,
296
265
  delete: deleteEntity,
297
266
  resources,
@@ -1 +1 @@
1
- {"version":3,"file":"create-store.js","sourceRoot":"","sources":["../../../../src/ecs/store/public/create-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-store.js","sourceRoot":"","sources":["../../../../src/ecs/store/public/create-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { describe, it, expect } from "vitest";
3
+ import { createStore } from "./create-store.js";
4
+ import { constBufferType } from "../../../typed-buffer/create-const-buffer.js";
5
+ // `cell` partitions; `name` is uniquely indexed. `as const` preserves the
6
+ // `partition: true` literal (so the store is typed with the discrimination) and
7
+ // the index declaration (so `store.indexes.byName` is typed).
8
+ const schema = {
9
+ components: {
10
+ cell: { type: "integer", partition: true },
11
+ name: { type: "string" },
12
+ },
13
+ resources: {},
14
+ archetypes: { Spatial: ["cell", "name"] },
15
+ indexes: { byName: { key: "name", unique: true } },
16
+ };
17
+ const makeStore = () => createStore(schema);
18
+ describe("Store partition integration", () => {
19
+ it("dynamically extends with a partition component AFTER creation; N values → N archetypes, each with a const column", () => {
20
+ // Start with an empty store, then extend — exercises live (post-construction)
21
+ // partition detection, not the schema passed at creation.
22
+ const store = createStore().extend(schema);
23
+ // The dynamically-added partitioned archetype is a Router (no dense view).
24
+ const spatial = store.archetypes.Spatial;
25
+ expect("columns" in spatial).toBe(false);
26
+ // Insert N entities with N distinct partition values.
27
+ const N = 5;
28
+ const entities = Array.from({ length: N }, (_, i) => spatial.insert({ cell: i, name: `e${i}` }));
29
+ // Query the archetypes — exactly N, one per distinct value.
30
+ const archetypes = store.queryArchetypes(["cell", "name"]);
31
+ expect(archetypes.length).toBe(N);
32
+ // Every distinct value lives in its own archetype, and each still carries
33
+ // a named `cell` column that is a const typed buffer (zero per-row bytes).
34
+ const valuesSeen = new Set();
35
+ for (const arch of archetypes) {
36
+ expect(arch.rowCount).toBe(1);
37
+ const cellColumn = arch.columns.cell;
38
+ expect(cellColumn.type).toBe(constBufferType);
39
+ expect(cellColumn.typedArrayElementSizeInBytes).toBe(0);
40
+ valuesSeen.add(cellColumn.get(0));
41
+ }
42
+ expect([...valuesSeen].sort((a, b) => a - b)).toEqual([0, 1, 2, 3, 4]);
43
+ // The index (also added dynamically) resolves each routed entity.
44
+ for (let i = 0; i < N; i++) {
45
+ expect(store.indexes.byName.get({ name: `e${i}` })).toBe(entities[i]);
46
+ }
47
+ });
48
+ it("store.archetypes.<PartitionedName> is a Proxy-free Router that routes inserts", () => {
49
+ const store = makeStore();
50
+ const spatial = store.archetypes.Spatial;
51
+ expect(typeof spatial.insert).toBe("function");
52
+ expect("columns" in spatial).toBe(false); // a family has no dense view
53
+ const a = spatial.insert({ cell: 1, name: "a" });
54
+ const b = spatial.insert({ cell: 2, name: "b" });
55
+ expect(store.locate(a).archetype).not.toBe(store.locate(b).archetype);
56
+ expect(store.get(a, "cell")).toBe(1);
57
+ expect(store.get(b, "cell")).toBe(2);
58
+ });
59
+ it("maintains indexes on routed inserts (find across value-children)", () => {
60
+ const store = makeStore();
61
+ const spatial = store.archetypes.Spatial;
62
+ const a = spatial.insert({ cell: 1, name: "alice" });
63
+ const b = spatial.insert({ cell: 2, name: "bob" });
64
+ expect(store.indexes.byName.get({ name: "alice" })).toBe(a);
65
+ expect(store.indexes.byName.get({ name: "bob" })).toBe(b);
66
+ });
67
+ it("enforces a unique index across different value-children, atomically", () => {
68
+ const store = makeStore();
69
+ const spatial = store.archetypes.Spatial;
70
+ const first = spatial.insert({ cell: 1, name: "dup" });
71
+ // Same name, different cell → different archetype, still a unique conflict.
72
+ expect(() => spatial.insert({ cell: 2, name: "dup" })).toThrow(/[Uu]nique/);
73
+ // The original row is intact (atomic — no partial mutation).
74
+ expect(store.indexes.byName.get({ name: "dup" })).toBe(first);
75
+ });
76
+ it("queryArchetypes `where` filters value-children at the store layer", () => {
77
+ const store = makeStore();
78
+ const spatial = store.archetypes.Spatial;
79
+ spatial.insert({ cell: 1, name: "a" });
80
+ spatial.insert({ cell: 2, name: "b" });
81
+ spatial.insert({ cell: 2, name: "c" });
82
+ const cell2 = store.queryArchetypes(["cell", "name"], { where: { cell: 2 } });
83
+ expect(cell2.length).toBe(1);
84
+ expect(cell2[0].rowCount).toBe(2);
85
+ });
86
+ it("store.ensureArchetype routes (no value) and resolves concrete (with value)", () => {
87
+ const store = makeStore();
88
+ const router = store.ensureArchetype(["id", "cell", "name"]);
89
+ expect("columns" in router).toBe(false);
90
+ router.insert({ cell: 5, name: "x" });
91
+ const concrete = store.ensureArchetype(["id", "cell", "name"], { cell: 5 });
92
+ expect(concrete.columns).toBeDefined();
93
+ expect(concrete.rowCount).toBe(1);
94
+ });
95
+ it("index find works when inserting via the concrete-child path too", () => {
96
+ const store = makeStore();
97
+ const concrete = store.ensureArchetype(["id", "cell", "name"], { cell: 9 });
98
+ const e = concrete.insert({ cell: 9, name: "zed" });
99
+ expect(store.indexes.byName.get({ name: "zed" })).toBe(e);
100
+ });
101
+ it("index updates when a partition-value change migrates an entity", () => {
102
+ const store = makeStore();
103
+ const spatial = store.archetypes.Spatial;
104
+ const e = spatial.insert({ cell: 1, name: "mover" });
105
+ store.update(e, { cell: 2 });
106
+ // Entity moved value-children; the name index still resolves it.
107
+ expect(store.get(e, "cell")).toBe(2);
108
+ expect(store.indexes.byName.get({ name: "mover" })).toBe(e);
109
+ });
110
+ });
111
+ //# sourceMappingURL=create-store.partition.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-store.partition.test.js","sourceRoot":"","sources":["../../../../src/ecs/store/public/create-store.partition.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ //
3
+ // Compile-time (red/green) verification of the partition public surface on
4
+ // `Store` — discrimination of `store.archetypes.<Name>` and `ensureArchetype`,
5
+ // and the partition-keyed `queryArchetypes` where. Bodies live in never-called
6
+ // functions so the file type-checks without executing.
7
+ import { createStore } from "./create-store.js";
8
+ // store.archetypes.<Name> — discriminated per declared name
9
+ function _archetypesMap() {
10
+ // A partitioned named archetype is a Router — write via insert, no dense view.
11
+ store.archetypes.Spatial.insert({ cell: 1, position: 2 });
12
+ // @ts-expect-error - Spatial is a partition family (Router), not a concrete Archetype
13
+ store.archetypes.Spatial.columns;
14
+ // @ts-expect-error - a Router has no rowCount
15
+ store.archetypes.Spatial.rowCount;
16
+ // A non-partitioned named archetype is a concrete Archetype.
17
+ store.archetypes.Mob.columns;
18
+ store.archetypes.Mob.rowCount;
19
+ store.archetypes.Mob.insert({ position: 1, health: 100 });
20
+ }
21
+ // store.ensureArchetype(keys, values?) — discriminated
22
+ function _ensureArchetype() {
23
+ // Partition key present, no value → Router (insert only).
24
+ const router = store.ensureArchetype(["id", "cell", "position"]);
25
+ router.insert({ cell: 1, position: 2 });
26
+ // @ts-expect-error - a partition family (Router) has no columns
27
+ router.columns;
28
+ // Partition value supplied → concrete Archetype (dense access).
29
+ const concrete = store.ensureArchetype(["id", "cell", "position"], { cell: 7 });
30
+ concrete.columns;
31
+ concrete.rowCount;
32
+ // No partition component in the set → concrete Archetype.
33
+ const plain = store.ensureArchetype(["id", "position"]);
34
+ plain.columns;
35
+ // @ts-expect-error - partition value must match the component's type (cell is number)
36
+ store.ensureArchetype(["id", "cell", "position"], { cell: "nope" });
37
+ }
38
+ // queryArchetypes where — keyed to partition components only
39
+ function _queryWhere() {
40
+ store.queryArchetypes(["cell", "position"], { where: { cell: 7 } });
41
+ // @ts-expect-error - `position` is not a partition component; not archetype-decidable
42
+ store.queryArchetypes(["cell", "position"], { where: { position: 1 } });
43
+ // @ts-expect-error - partition where value must match the component type (cell is number)
44
+ store.queryArchetypes(["cell"], { where: { cell: "x" } });
45
+ }
46
+ // createStore return threads PK (inference, not just Store.FromSchema)
47
+ function _inferenceCheck() {
48
+ const s = createStore({
49
+ components: {
50
+ cell: { type: "integer", partition: true },
51
+ position: { type: "number" },
52
+ },
53
+ resources: {},
54
+ archetypes: { Spatial: ["cell", "position"] },
55
+ });
56
+ s.archetypes.Spatial.insert({ cell: 1, position: 2 });
57
+ // @ts-expect-error - inferred Spatial is a Router (partition family), no columns
58
+ s.archetypes.Spatial.columns;
59
+ return s;
60
+ }
61
+ //# sourceMappingURL=create-store.partition.type-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-store.partition.type-test.js","sourceRoot":"","sources":["../../../../src/ecs/store/public/create-store.partition.type-test.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { IntersectTuple, Simplify, StringKeyof } from "../../types/types.js";
6
6
  import { Components } from "./components.js";
7
7
  import { ArchetypeComponents } from "./archetype-components.js";
8
8
  import { Archetype, ReadonlyArchetype } from "../archetype/archetype.js";
9
+ import { HasPartitionKey, PartitionKeysOf, ArchetypeOrRouter } from "./partition.js";
9
10
  import { EntitySelectOptions } from "./entity-select-options.js";
10
11
  import { Undoable } from "../database/undoable.js";
11
12
  import { FromSchemas } from "../../schema/from-schemas.js";
@@ -25,14 +26,16 @@ interface BaseStore<C extends object = never> {
25
26
  */
26
27
  toData(copy?: boolean): unknown;
27
28
  }
28
- export interface ReadonlyStore<C extends Components = never, R extends ResourceComponents = never, A extends ArchetypeComponents<StringKeyof<C>> = never, IX extends IndexDeclarations<C> = {}> extends BaseStore<C>, ReadonlyCore<C> {
29
+ export interface ReadonlyStore<C extends Components = never, R extends ResourceComponents = never, A extends ArchetypeComponents<StringKeyof<C>> = never, IX extends IndexDeclarations<C> = {}, PK extends string = never> extends BaseStore<C>, ReadonlyCore<C, PK> {
29
30
  readonly resources: {
30
31
  readonly [K in StringKeyof<R>]: R[K];
31
32
  };
32
33
  readonly archetypes: {
33
- readonly [K in StringKeyof<A>]: ReadonlyArchetype<RequiredComponents & {
34
- [P in A[K][number]]: (C & RequiredComponents & OptionalComponents)[P];
35
- }>;
34
+ readonly [K in StringKeyof<A>]: ArchetypeOrRouter<HasPartitionKey<A[K][number], PK>, RequiredComponents & {
35
+ [Col in A[K][number]]: (C & RequiredComponents & OptionalComponents)[Col];
36
+ }, ReadonlyArchetype<RequiredComponents & {
37
+ [Col in A[K][number]]: (C & RequiredComponents & OptionalComponents)[Col];
38
+ }>>;
36
39
  };
37
40
  readonly indexes: {
38
41
  readonly [K in keyof IX]: Index.Handle<C, IX[K]>;
@@ -42,7 +45,7 @@ export type ToReadonlyStore<T extends Store> = T extends Store<infer C, infer R>
42
45
  /**
43
46
  * Store is the main interface for storing components, entities and resources.
44
47
  */
45
- export interface Store<C extends Components = {}, R extends ResourceComponents = {}, A extends ArchetypeComponents<StringKeyof<C>> = {}, IX extends IndexDeclarations<C> = {}> extends BaseStore<C>, Core<C> {
48
+ export interface Store<C extends Components = {}, R extends ResourceComponents = {}, A extends ArchetypeComponents<StringKeyof<C>> = {}, IX extends IndexDeclarations<C> = {}, PK extends string = never> extends BaseStore<C>, Core<C, PK> {
46
49
  /**
47
50
  * This is used when a store is used to represent a transaction.
48
51
  * For most stores, this is ignored if it is set.
@@ -52,9 +55,11 @@ export interface Store<C extends Components = {}, R extends ResourceComponents =
52
55
  -readonly [K in StringKeyof<R>]: R[K];
53
56
  };
54
57
  readonly archetypes: {
55
- -readonly [K in StringKeyof<A>]: Archetype<RequiredComponents & {
56
- [P in A[K][number]]: (C & RequiredComponents & OptionalComponents)[P];
57
- }>;
58
+ -readonly [K in StringKeyof<A>]: ArchetypeOrRouter<HasPartitionKey<A[K][number], PK>, RequiredComponents & {
59
+ [Col in A[K][number]]: (C & RequiredComponents & OptionalComponents)[Col];
60
+ }, Archetype<RequiredComponents & {
61
+ [Col in A[K][number]]: (C & RequiredComponents & OptionalComponents)[Col];
62
+ }>>;
58
63
  };
59
64
  /**
60
65
  * Index handles keyed by user-chosen name. Returned handles are the
@@ -68,7 +73,7 @@ export interface Store<C extends Components = {}, R extends ResourceComponents =
68
73
  /** Wipe all entities and reset resources to plugin defaults. O(num_archetypes + num_resources). */
69
74
  reset(): void;
70
75
  fromData(data: unknown): void;
71
- extend<S extends Store.Schema>(schema: S): S extends Store.Schema<infer XC, infer XR, infer XA, infer XIX> ? Store<C & XC, R & XR, A & XA, IX & XIX> : never;
76
+ extend<S extends Store.Schema>(schema: S): S extends Store.Schema<infer XC, infer XR, infer XA, infer XIX> ? Store<C & FromSchemas<XC>, R & FromSchemas<XR>, A & XA, IX & XIX, PK | PartitionKeysOf<XC>> : never;
72
77
  }
73
78
  export declare namespace Store {
74
79
  type Components<S extends Store> = S extends Store<infer C, infer R, infer A> ? C : never;
@@ -82,7 +87,7 @@ export declare namespace Store {
82
87
  readonly archetypes: A;
83
88
  readonly indexes?: IX;
84
89
  };
85
- type FromSchema<T> = T extends Store.Schema<infer CS, infer RS, infer A, infer IX> ? Store<FromSchemas<CS>, FromSchemas<RS>, A, IX> : never;
90
+ type FromSchema<T> = T extends Store.Schema<infer CS, infer RS, infer A, infer IX> ? Store<FromSchemas<CS>, FromSchemas<RS>, A, IX, PartitionKeysOf<CS>> : never;
86
91
  namespace Schema {
87
92
  type Intersect<T extends readonly Schema<any, any, any, any>[]> = Store.Schema<{} & IntersectTuple<{
88
93
  [K in keyof T]: T[K] extends Schema<infer C, any, any, any> ? C : never;
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ecs/store/store.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAgEvD,2DAA2D;AAC3D,MAAM,KAAW,KAAK,CAsHrB;AAtHD,WAAiB,KAAK;IAuBlB,IAAiB,MAAM,CA4FtB;IA5FD,WAAiB,MAAM;QAsCnB;;;;;;;;;;;;;;;;;;;;;;;;;WAyBG;QACH,SAAgB,MAAM,CAOlB,MAKE,EACF,YAAgB;YAEhB,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;YAClF,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC7C,OAAO;oBACH,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;oBACrD,SAAS,EAAE,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;oBAClD,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;oBACrD,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;iBAC/C,CAAA;YACL,CAAC,EACG,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAS,CACxD,CAAC;QACN,CAAC;QA1Be,aAAM,SA0BrB,CAAA;IAEL,CAAC,EA5FgB,MAAM,GAAN,YAAM,KAAN,YAAM,QA4FtB;IAEY,YAAM,GAAG,WAAW,CAAC;AACtC,CAAC,EAtHgB,KAAK,KAAL,KAAK,QAsHrB;AAiCD,wEAAwE;AACxE,2EAA2E;AAC3E,MAAM,cAAc,GAAG;IACnB,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAC3E,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;CAC3E,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ecs/store/store.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AA0EvD,2DAA2D;AAC3D,MAAM,KAAW,KAAK,CAsHrB;AAtHD,WAAiB,KAAK;IAuBlB,IAAiB,MAAM,CA4FtB;IA5FD,WAAiB,MAAM;QAsCnB;;;;;;;;;;;;;;;;;;;;;;;;;WAyBG;QACH,SAAgB,MAAM,CAOlB,MAKE,EACF,YAAgB;YAEhB,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;YAClF,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC7C,OAAO;oBACH,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;oBACrD,SAAS,EAAE,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;oBAClD,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;oBACrD,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;iBAC/C,CAAA;YACL,CAAC,EACG,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAS,CACxD,CAAC;QACN,CAAC;QA1Be,aAAM,SA0BrB,CAAA;IAEL,CAAC,EA5FgB,MAAM,GAAN,YAAM,KAAN,YAAM,QA4FtB;IAEY,YAAM,GAAG,WAAW,CAAC;AACtC,CAAC,EAtHgB,KAAK,KAAL,KAAK,QAsHrB;AAiCD,wEAAwE;AACxE,2EAA2E;AAC3E,MAAM,cAAc,GAAG;IACnB,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAC3E,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;CAC3E,CAAC"}
@@ -5,10 +5,10 @@ import { ArchetypeComponents } from "./archetype-components.js";
5
5
  import { StringKeyof } from "../../types/types.js";
6
6
  import { IndexDeclarations } from "./index-types.js";
7
7
  import type { TransactionContext } from "../database/transactional-store/transactional-store.js";
8
- export type TransactionDeclaration<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>, IX extends IndexDeclarations<C> = {}, Input extends any | void = any> = (t: TransactionContext<C, R, A, IX>, input: Input) => void | Entity;
8
+ export type TransactionDeclaration<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>, IX extends IndexDeclarations<C> = {}, PK extends string = never, Input extends any | void = any> = (t: TransactionContext<C, R, A, IX, PK>, input: Input) => void | Entity;
9
9
  export type AsyncArgsProvider<T> = () => Promise<T> | AsyncGenerator<T>;
10
- export type TransactionDeclarations<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>, IX extends IndexDeclarations<C> = {}> = {
11
- readonly [Q: string]: TransactionDeclaration<C, R, A, IX>;
10
+ export type TransactionDeclarations<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>, IX extends IndexDeclarations<C> = {}, PK extends string = never> = {
11
+ readonly [Q: string]: TransactionDeclaration<C, R, A, IX, PK>;
12
12
  };
13
13
  /**
14
14
  * Converts from TransactionDeclarations to TransactionFunctions by removing
@@ -28,6 +28,7 @@ export interface Schema {
28
28
  description?: string;
29
29
  conditionals?: readonly Conditional[];
30
30
  nonPersistent?: boolean;
31
+ partition?: boolean;
31
32
  mutable?: boolean;
32
33
  default?: any;
33
34
  precision?: 1 | 2;