@adobe/data 0.9.66 → 0.9.68
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/database/archetype-row.type-test.d.ts +1 -0
- package/dist/ecs/database/archetype-row.type-test.js +31 -0
- package/dist/ecs/database/archetype-row.type-test.js.map +1 -0
- package/dist/ecs/database/combine-plugins.d.ts +8 -7
- package/dist/ecs/database/combine-plugins.js.map +1 -1
- package/dist/ecs/database/combine-plugins.type-test.d.ts +1 -0
- package/dist/ecs/database/combine-plugins.type-test.js +37 -0
- package/dist/ecs/database/combine-plugins.type-test.js.map +1 -0
- package/dist/ecs/database/create-plugin.d.ts +1 -1
- package/dist/ecs/database/create-plugin.js.map +1 -1
- package/dist/ecs/database/create-plugin.type-test.js +85 -0
- package/dist/ecs/database/create-plugin.type-test.js.map +1 -1
- package/dist/ecs/database/database.d.ts +17 -1
- package/dist/ecs/database/database.index.test.js +67 -0
- package/dist/ecs/database/database.index.test.js.map +1 -1
- package/dist/ecs/database/database.js.map +1 -1
- package/dist/ecs/database/deep-extends-chain.type-test.d.ts +77 -60
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { createPlugin } from "./create-plugin.js";
|
|
3
|
+
/**
|
|
4
|
+
* Type-only tests for naming archetype rows without a cast.
|
|
5
|
+
*
|
|
6
|
+
* The regression these guard against: a consumer who exposes
|
|
7
|
+
* `db.archetypes.Track` under a hand-authored service interface used to need
|
|
8
|
+
* `as unknown as` at every boundary. The fix is to *derive* the service type
|
|
9
|
+
* from the plugin and *name* rows with `Database.Archetype.RowOf` rather than
|
|
10
|
+
* re-spelling their columns. These are compile-time checks only.
|
|
11
|
+
*/
|
|
12
|
+
const trackPlugin = createPlugin({
|
|
13
|
+
components: {
|
|
14
|
+
trackKind: { type: "string" },
|
|
15
|
+
editingMode: { type: "string" },
|
|
16
|
+
muted: { type: "boolean" },
|
|
17
|
+
},
|
|
18
|
+
archetypes: {
|
|
19
|
+
Track: ["trackKind", "editingMode", "muted"],
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
// 1. `db.archetypes` assigns to the derived service's archetype map with NO cast.
|
|
23
|
+
const archetypes = db.archetypes;
|
|
24
|
+
void archetypes;
|
|
25
|
+
// 3. A named row round-trips: `ReadonlyArchetype<RowOf<...>>` accepts the handle
|
|
26
|
+
// with no cast, because it is structurally the same archetype.
|
|
27
|
+
const track = db.archetypes.Track;
|
|
28
|
+
void track;
|
|
29
|
+
const observed = db.observe.entity(someEntity, db.archetypes.Track);
|
|
30
|
+
void observed;
|
|
31
|
+
//# sourceMappingURL=archetype-row.type-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archetype-row.type-test.js","sourceRoot":"","sources":["../../../src/ecs/database/archetype-row.type-test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlD;;;;;;;;GAQG;AAEH,MAAM,WAAW,GAAG,YAAY,CAAC;IAC7B,UAAU,EAAE;QACR,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC7B;IACD,UAAU,EAAE;QACR,KAAK,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC;KAC/C;CACJ,CAAC,CAAC;AAOH,kFAAkF;AAClF,MAAM,UAAU,GAA8B,EAAE,CAAC,UAAU,CAAC;AAC5D,KAAK,UAAU,CAAC;AAWhB,iFAAiF;AACjF,kEAAkE;AAClE,MAAM,KAAK,GAAgC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;AAC/D,KAAK,KAAK,CAAC;AAMX,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAGpE,KAAK,QAAQ,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StringKeyof, UnionToIntersection } from "../../types/types.js";
|
|
2
2
|
import type { Database } from "./database.js";
|
|
3
|
-
type IntersectAll<T extends readonly unknown[]> =
|
|
4
|
-
|
|
3
|
+
type IntersectAll<T extends readonly unknown[]> = [
|
|
4
|
+
T[number]
|
|
5
|
+
] extends [never] ? unknown : UnionToIntersection<T[number]>;
|
|
5
6
|
export type CombinePlugins<Plugins extends readonly Database.Plugin[]> = Database.Plugin<{} & IntersectAll<{
|
|
6
7
|
[K in keyof Plugins]: Plugins[K]['components'];
|
|
7
8
|
}>, {} & IntersectAll<{
|
|
@@ -10,9 +11,9 @@ export type CombinePlugins<Plugins extends readonly Database.Plugin[]> = Databas
|
|
|
10
11
|
[K in keyof Plugins]: Plugins[K]['archetypes'];
|
|
11
12
|
}>, {} & IntersectAll<{
|
|
12
13
|
[K in keyof Plugins]: Plugins[K]['transactions'];
|
|
13
|
-
}>, Extract<
|
|
14
|
+
}>, Extract<{
|
|
14
15
|
[K in keyof Plugins]: StringKeyof<Plugins[K]['systems']>;
|
|
15
|
-
}
|
|
16
|
+
}[number], string>, {} & IntersectAll<{
|
|
16
17
|
[K in keyof Plugins]: Plugins[K]['actions'];
|
|
17
18
|
}>, {} & IntersectAll<{
|
|
18
19
|
[K in keyof Plugins]: Plugins[K]['services'];
|
|
@@ -37,9 +38,9 @@ export declare function combinePlugins<const Plugins extends readonly Database.P
|
|
|
37
38
|
[K in keyof Plugins]: Plugins[K]['archetypes'];
|
|
38
39
|
}>, {} & IntersectAll<{
|
|
39
40
|
[K in keyof Plugins]: Plugins[K]['transactions'];
|
|
40
|
-
}>, Extract<
|
|
41
|
+
}>, Extract<{
|
|
41
42
|
[K in keyof Plugins]: StringKeyof<Plugins[K]['systems']>;
|
|
42
|
-
}
|
|
43
|
+
}[number], string>, {} & IntersectAll<{
|
|
43
44
|
[K in keyof Plugins]: Plugins[K]['actions'];
|
|
44
45
|
}>, {} & IntersectAll<{
|
|
45
46
|
[K in keyof Plugins]: Plugins[K]['services'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combine-plugins.js","sourceRoot":"","sources":["../../../src/ecs/database/combine-plugins.ts"],"names":[],"mappings":"AAAA,uDAAuD;
|
|
1
|
+
{"version":3,"file":"combine-plugins.js","sourceRoot":"","sources":["../../../src/ecs/database/combine-plugins.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAoCvD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAE5B,GAAG,OAAgB;IAWnB,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;IAEzI,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,IAAS,EAAE,EAAE,CACrC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhC,wCAAwC;QACxC,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CACb,4BAA4B,GAAG,IAAI,CAAC,yCAAyC,CAC9E,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,WAAW,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAE3J,6BAA6B;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAElD,OAAO,MAAiC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { createPlugin } from "./create-plugin.js";
|
|
3
|
+
import { Database } from "./database.js";
|
|
4
|
+
/**
|
|
5
|
+
* Type-only test: `Database.Plugin.combine` resolves correctly over a wide
|
|
6
|
+
* single call.
|
|
7
|
+
*
|
|
8
|
+
* `IntersectAll` was reformulated from linear recursion (`Simplify<H & ...>`)
|
|
9
|
+
* to `UnionToIntersection` over the element union, so instantiation depth is
|
|
10
|
+
* now constant regardless of plugin count and the per-level `Simplify`
|
|
11
|
+
* re-materialization is gone (a ~29% instantiation drop on a 24-plugin combine
|
|
12
|
+
* measured locally). This guards that a wide single combine still produces the
|
|
13
|
+
* correct merged plugin type — the buckets from the first and last plugins are
|
|
14
|
+
* both present, and the result builds into a usable database.
|
|
15
|
+
*/
|
|
16
|
+
const p00 = createPlugin({ components: { c00: { type: "number" } }, archetypes: { A00: ["c00"] } });
|
|
17
|
+
const p01 = createPlugin({ components: { c01: { type: "number" } }, archetypes: { A01: ["c01"] } });
|
|
18
|
+
const p02 = createPlugin({ components: { c02: { type: "number" } }, archetypes: { A02: ["c02"] } });
|
|
19
|
+
const p03 = createPlugin({ components: { c03: { type: "number" } }, archetypes: { A03: ["c03"] } });
|
|
20
|
+
const p04 = createPlugin({ components: { c04: { type: "number" } }, archetypes: { A04: ["c04"] } });
|
|
21
|
+
const p05 = createPlugin({ components: { c05: { type: "number" } }, archetypes: { A05: ["c05"] } });
|
|
22
|
+
const p06 = createPlugin({ components: { c06: { type: "number" } }, archetypes: { A06: ["c06"] } });
|
|
23
|
+
const p07 = createPlugin({ components: { c07: { type: "number" } }, archetypes: { A07: ["c07"] } });
|
|
24
|
+
const p08 = createPlugin({ components: { c08: { type: "number" } }, archetypes: { A08: ["c08"] } });
|
|
25
|
+
const p09 = createPlugin({ components: { c09: { type: "number" } }, archetypes: { A09: ["c09"] } });
|
|
26
|
+
const p10 = createPlugin({ components: { c10: { type: "number" } }, archetypes: { A10: ["c10"] } });
|
|
27
|
+
const p11 = createPlugin({ components: { c11: { type: "number" } }, archetypes: { A11: ["c11"] } });
|
|
28
|
+
const p12 = createPlugin({ components: { c12: { type: "number" } }, archetypes: { A12: ["c12"] } });
|
|
29
|
+
const p13 = createPlugin({ components: { c13: { type: "number" } }, archetypes: { A13: ["c13"] } });
|
|
30
|
+
const p14 = createPlugin({ components: { c14: { type: "number" } }, archetypes: { A14: ["c14"] } });
|
|
31
|
+
const p15 = createPlugin({ components: { c15: { type: "number" } }, archetypes: { A15: ["c15"] } });
|
|
32
|
+
const wide = Database.Plugin.combine(p00, p01, p02, p03, p04, p05, p06, p07, p08, p09, p10, p11, p12, p13, p14, p15);
|
|
33
|
+
// And it is still a usable database: building it and reading the merged
|
|
34
|
+
// archetype map type-checks.
|
|
35
|
+
const wideDb = Database.create(wide);
|
|
36
|
+
void wideDb;
|
|
37
|
+
//# sourceMappingURL=combine-plugins.type-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combine-plugins.type-test.js","sourceRoot":"","sources":["../../../src/ecs/database/combine-plugins.type-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,7 @@ type CreatePluginResult<XP extends Database.Plugin, CS, RS, A, TD, S extends str
|
|
|
64
64
|
*
|
|
65
65
|
* @throws Error if properties are not in the correct order
|
|
66
66
|
*/
|
|
67
|
-
type FullDBForPlugin<CS, RS, A, TD, S extends string, AD, XP extends Database.Plugin, SVF extends ServiceFactories<Database.FromPlugin<XP>>, IX = {}> = Database<FromSchemas<CS & XP['components']>, FromSchemas<RS & XP['resources']>, A & XP['archetypes'], ToTransactionFunctions<TD & XP['transactions']>, S | StringKeyof<XP['systems']>, ToActionFunctions<AD & XP['actions']>, FromServiceFactories<RemoveIndex<SVF> & XP['services']>,
|
|
67
|
+
type FullDBForPlugin<CS, RS, A, TD, S extends string, AD, XP extends Database.Plugin, SVF extends ServiceFactories<Database.FromPlugin<XP>>, IX = {}> = Database<FromSchemas<CS & XP['components']>, FromSchemas<RS & XP['resources']>, A & XP['archetypes'], ToTransactionFunctions<TD & XP['transactions']>, S | StringKeyof<XP['systems']>, ToActionFunctions<AD & XP['actions']>, FromServiceFactories<RemoveIndex<SVF> & XP['services']>, FromComputedFactories<XP['computed']>, IX & XP['indexes']>;
|
|
68
68
|
/**
|
|
69
69
|
* Ambient plugin context used for *parameter typing only*: the union of the
|
|
70
70
|
* `extends` base (XP) and the `imports` dependencies (IP).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-plugin.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAUvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA0CtD,SAAS,qBAAqB,CAAC,OAAgC;IAC3D,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/J,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC;IAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,6CAA6C,GAAG,4BAA4B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5H,CAAC;QACD,uDAAuD;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,iBAAiB,GAAG,aAAa,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CACX,qCAAqC,GAAG,uBAAuB,OAAO,KAAK;oBAC3E,mBAAmB,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrF,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"create-plugin.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,6 +114,28 @@ function validTypeInferenceTests() {
|
|
|
114
114
|
},
|
|
115
115
|
},
|
|
116
116
|
});
|
|
117
|
+
// Test: a derived plugin's computed factory can read a BASE plugin's
|
|
118
|
+
// already-resolved computed (composition across `extends`). This is the
|
|
119
|
+
// payoff of FullDBForPlugin surfacing FromComputedFactories<XP['computed']>
|
|
120
|
+
// rather than `unknown` in the computed-factory db.
|
|
121
|
+
const baseComputedPlugin = createPlugin({
|
|
122
|
+
resources: {
|
|
123
|
+
n: { default: 10 },
|
|
124
|
+
},
|
|
125
|
+
computed: {
|
|
126
|
+
doubled: (db) => Observe.withMap(db.observe.resources.n, (v) => v * 2),
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
const derivedComputedPlugin = createPlugin({
|
|
130
|
+
extends: baseComputedPlugin,
|
|
131
|
+
computed: {
|
|
132
|
+
quadrupled: (db) => {
|
|
133
|
+
// Valid - the base plugin's computed is fully typed here.
|
|
134
|
+
const base = db.computed.doubled;
|
|
135
|
+
return Observe.withMap(base, (v) => v * 2);
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
});
|
|
117
139
|
// Test: Computed + transactions co-inference
|
|
118
140
|
// When both computed and transactions are defined in the same plugin,
|
|
119
141
|
// TypeScript must infer TD from the transactions property independently
|
|
@@ -270,6 +292,53 @@ function validTypeInferenceTests() {
|
|
|
270
292
|
});
|
|
271
293
|
}
|
|
272
294
|
// ============================================================================
|
|
295
|
+
// Standalone computed factories aggregated in a create call
|
|
296
|
+
// ============================================================================
|
|
297
|
+
//
|
|
298
|
+
// A common app pattern: computed factories are authored as standalone
|
|
299
|
+
// functions in their own files, then aggregated into one `computed: {}` block
|
|
300
|
+
// in a single createPlugin call. Each standalone factory must annotate its
|
|
301
|
+
// `db` parameter with a NAMED, exported type (it lives in a different module
|
|
302
|
+
// from the plugin).
|
|
303
|
+
//
|
|
304
|
+
// Before the FullDBForPlugin fix the factory db's `computed` slot was
|
|
305
|
+
// `unknown`, so the annotation had to strip it:
|
|
306
|
+
// type CoreStateDatabase = Omit<Database.Plugin.ToDatabase<typeof core>, 'computed'>;
|
|
307
|
+
// Now the factory sees the base plugin's already-resolved computeds, so the
|
|
308
|
+
// plain exported `Database.Plugin.ToDatabase<typeof core>` is the correct,
|
|
309
|
+
// cast-free annotation — AND it lets a standalone factory compose on a base
|
|
310
|
+
// computed. This test proves the round trip type-checks cleanly: no `as`, no
|
|
311
|
+
// `Omit`, no `@ts-expect-error`.
|
|
312
|
+
function standaloneComputedFactoryAggregation() {
|
|
313
|
+
// The base "state" plugin owns the resources and one base computed.
|
|
314
|
+
const coreStatePlugin = createPlugin({
|
|
315
|
+
resources: {
|
|
316
|
+
count: { default: 0 },
|
|
317
|
+
},
|
|
318
|
+
computed: {
|
|
319
|
+
count: (db) => db.observe.resources.count,
|
|
320
|
+
},
|
|
321
|
+
});
|
|
322
|
+
// Standalone factory (own file): reads a base resource.
|
|
323
|
+
const doubled = (db) => Observe.withMap(db.observe.resources.count, (v) => v * 2);
|
|
324
|
+
// Standalone factory (own file): composes on the base plugin's computed.
|
|
325
|
+
// This is the case the fix unlocks — `db.computed.count` is fully typed.
|
|
326
|
+
const isPositive = (db) => Observe.withMap(db.computed.count, (v) => v > 0);
|
|
327
|
+
// Standalone factory (own file): a parameterized computed that also reads
|
|
328
|
+
// a base computed.
|
|
329
|
+
const atLeast = (db) => (min) => Observe.withMap(db.computed.count, (v) => v >= min);
|
|
330
|
+
// Aggregate the independently-authored factories into the derived plugin's
|
|
331
|
+
// computed block — clean assignment, no cast.
|
|
332
|
+
const derived = createPlugin({
|
|
333
|
+
extends: coreStatePlugin,
|
|
334
|
+
computed: {
|
|
335
|
+
doubled,
|
|
336
|
+
isPositive,
|
|
337
|
+
atLeast,
|
|
338
|
+
},
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
// ============================================================================
|
|
273
342
|
// INVALID TYPE INFERENCE TESTS
|
|
274
343
|
// ============================================================================
|
|
275
344
|
/**
|
|
@@ -458,6 +527,22 @@ function invalidComputedReturnsObject() {
|
|
|
458
527
|
systems: {},
|
|
459
528
|
});
|
|
460
529
|
}
|
|
530
|
+
// Test: Invalid sibling computed access — an in-progress computed in the SAME
|
|
531
|
+
// plugin is not visible to a sibling factory (would be circular). Only a
|
|
532
|
+
// base plugin's already-resolved computeds are surfaced.
|
|
533
|
+
function invalidSiblingComputedAccess() {
|
|
534
|
+
createPlugin({
|
|
535
|
+
resources: { n: { default: 1 } },
|
|
536
|
+
computed: {
|
|
537
|
+
first: (db) => Observe.fromConstant(db.resources.n),
|
|
538
|
+
second: (db) => {
|
|
539
|
+
// @ts-expect-error - sibling computed 'first' is in-progress, not visible
|
|
540
|
+
const _f = db.computed.first;
|
|
541
|
+
return Observe.fromConstant(0);
|
|
542
|
+
},
|
|
543
|
+
},
|
|
544
|
+
});
|
|
545
|
+
}
|
|
461
546
|
// Test: Invalid transaction call in action
|
|
462
547
|
function invalidTransactionCallInAction() {
|
|
463
548
|
createPlugin({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-plugin.type-test.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.type-test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-plugin.type-test.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.type-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Archetype, ArchetypeId, ReadonlyArchetype } from "../archetype/index.js";
|
|
1
|
+
import { Archetype, ArchetypeId, FromArchetype, ReadonlyArchetype } from "../archetype/index.js";
|
|
2
2
|
import { ResourceComponents } from "../store/resource-components.js";
|
|
3
3
|
import { ReadonlyStore, Store } from "../store/index.js";
|
|
4
4
|
import { Entity } from "../entity/entity.js";
|
|
@@ -216,6 +216,22 @@ export declare namespace Database {
|
|
|
216
216
|
namespace Index {
|
|
217
217
|
type Handle<C extends Components, I extends StoreIndex<C, any, any, any>> = StoreIndex.Handle<C, I>;
|
|
218
218
|
}
|
|
219
|
+
namespace Archetype {
|
|
220
|
+
/**
|
|
221
|
+
* The row (component) type of the archetype named `K` on a store /
|
|
222
|
+
* database / service type `S`. Lets callers *name* an archetype row
|
|
223
|
+
* without re-spelling its columns — derive instead of re-declare.
|
|
224
|
+
*
|
|
225
|
+
* ```ts
|
|
226
|
+
* type MainService = Database.Plugin.ToDatabase<typeof mainPlugin>;
|
|
227
|
+
* type Track = Database.Archetype.RowOf<MainService, "Track">;
|
|
228
|
+
* const t: ReadonlyArchetype<Track> = db.archetypes.Track; // no cast
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
type RowOf<S extends {
|
|
232
|
+
readonly archetypes: Record<string, unknown>;
|
|
233
|
+
}, K extends StringKeyof<S["archetypes"]>> = FromArchetype<S["archetypes"][K]>;
|
|
234
|
+
}
|
|
219
235
|
type Plugin<CS extends ComponentSchemas = any, RS extends ResourceSchemas = any, A extends ArchetypeComponents<StringKeyof<CS>> = any, TD extends TransactionDeclarations<FromSchemas<CS>, FromSchemas<RS>, any> = any, S extends string = any, AD extends ActionDeclarations<FromSchemas<CS>, FromSchemas<RS>, A, ToTransactionFunctions<TD>, S> = any, SVF extends ServiceFactories = any, CVF extends ComputedFactories = any, IX extends IndexDeclarations<FromSchemas<CS>> = any> = {
|
|
220
236
|
readonly components: CS;
|
|
221
237
|
readonly resources: RS;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
import { describe, it, expect } from "vitest";
|
|
3
3
|
import { Database } from "./database.js";
|
|
4
|
+
import { Entity } from "../entity/entity.js";
|
|
5
|
+
import { FractionalIndex } from "../../schema/fractional-index/fractional-index.js";
|
|
4
6
|
// ============================================================================
|
|
5
7
|
// Catalogue pattern coverage — each describe corresponds to one of the 12
|
|
6
8
|
// patterns in `packages/data/src/ecs/README.md`. The tests assert runtime
|
|
@@ -1264,4 +1266,69 @@ describe("registry maintenance", () => {
|
|
|
1264
1266
|
expect([...ext.indexes.byName.find({ name: "alice" })].sort()).toEqual([e1, e2].sort());
|
|
1265
1267
|
});
|
|
1266
1268
|
});
|
|
1269
|
+
describe("complex sort index — orderedChildOf (nested parent + fractional-index order)", () => {
|
|
1270
|
+
// orderedChildOf bundles the parent entity reference and the fractional-index
|
|
1271
|
+
// sort key in a single object component. The index uses a computed slot map
|
|
1272
|
+
// to extract the group key and a custom compare that drills into the nested
|
|
1273
|
+
// object for the order field — matching the README pattern:
|
|
1274
|
+
// key: (f) => f.parent, order: { by: ["foo"], compare: (a, b) => a.foo.order < b.foo.order ? -1 : 1 }
|
|
1275
|
+
const plugin = () => Database.Plugin.create({
|
|
1276
|
+
components: {
|
|
1277
|
+
orderedChildOf: {
|
|
1278
|
+
type: "object",
|
|
1279
|
+
properties: {
|
|
1280
|
+
parent: Entity.schema,
|
|
1281
|
+
order: FractionalIndex.schema,
|
|
1282
|
+
},
|
|
1283
|
+
required: ["parent", "order"],
|
|
1284
|
+
},
|
|
1285
|
+
},
|
|
1286
|
+
archetypes: { Child: ["orderedChildOf"] },
|
|
1287
|
+
indexes: {
|
|
1288
|
+
orderedChildrenOf: {
|
|
1289
|
+
key: { parent: (c) => c.orderedChildOf.parent },
|
|
1290
|
+
components: ["orderedChildOf"],
|
|
1291
|
+
order: {
|
|
1292
|
+
by: ["orderedChildOf"],
|
|
1293
|
+
compare: (a, b) => a.orderedChildOf.order < b.orderedChildOf.order ? -1 : 1,
|
|
1294
|
+
},
|
|
1295
|
+
},
|
|
1296
|
+
},
|
|
1297
|
+
transactions: {
|
|
1298
|
+
add: (t, args) => t.archetypes.Child.insert({ orderedChildOf: args }),
|
|
1299
|
+
reorder: (t, args) => t.update(args.entity, { orderedChildOf: { parent: args.parent, order: args.order } }),
|
|
1300
|
+
delete: (t, e) => t.delete(e),
|
|
1301
|
+
},
|
|
1302
|
+
});
|
|
1303
|
+
it("returns children sorted by fractional index within the same parent", () => {
|
|
1304
|
+
const db = Database.create(plugin());
|
|
1305
|
+
const c = db.transactions.add({ parent: 1, order: "a2" });
|
|
1306
|
+
const a = db.transactions.add({ parent: 1, order: "a0" });
|
|
1307
|
+
const b = db.transactions.add({ parent: 1, order: "a1" });
|
|
1308
|
+
expect(db.indexes.orderedChildrenOf.find({ parent: 1 })).toEqual([a, b, c]);
|
|
1309
|
+
});
|
|
1310
|
+
it("children of different parents are in independent buckets", () => {
|
|
1311
|
+
const db = Database.create(plugin());
|
|
1312
|
+
const child1 = db.transactions.add({ parent: 1, order: "a0" });
|
|
1313
|
+
const child2 = db.transactions.add({ parent: 2, order: "a0" });
|
|
1314
|
+
expect(db.indexes.orderedChildrenOf.find({ parent: 1 })).toEqual([child1]);
|
|
1315
|
+
expect(db.indexes.orderedChildrenOf.find({ parent: 2 })).toEqual([child2]);
|
|
1316
|
+
});
|
|
1317
|
+
it("reordering an entity repositions it in the sorted result", () => {
|
|
1318
|
+
const db = Database.create(plugin());
|
|
1319
|
+
const a = db.transactions.add({ parent: 1, order: "a0" });
|
|
1320
|
+
const b = db.transactions.add({ parent: 1, order: "a1" });
|
|
1321
|
+
const c = db.transactions.add({ parent: 1, order: "a2" });
|
|
1322
|
+
db.transactions.reorder({ entity: a, parent: 1, order: "a3" });
|
|
1323
|
+
expect(db.indexes.orderedChildrenOf.find({ parent: 1 })).toEqual([b, c, a]);
|
|
1324
|
+
});
|
|
1325
|
+
it("delete removes the entity from its sorted bucket", () => {
|
|
1326
|
+
const db = Database.create(plugin());
|
|
1327
|
+
const a = db.transactions.add({ parent: 1, order: "a0" });
|
|
1328
|
+
const b = db.transactions.add({ parent: 1, order: "a1" });
|
|
1329
|
+
const c = db.transactions.add({ parent: 1, order: "a2" });
|
|
1330
|
+
db.transactions.delete(b);
|
|
1331
|
+
expect(db.indexes.orderedChildrenOf.find({ parent: 1 })).toEqual([a, c]);
|
|
1332
|
+
});
|
|
1333
|
+
});
|
|
1267
1334
|
//# sourceMappingURL=database.index.test.js.map
|