@adobe/data 0.9.19 → 0.9.21

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 (57) hide show
  1. package/dist/ecs/archetype/archetype.d.ts +13 -1
  2. package/dist/ecs/archetype/archetype.js.map +1 -1
  3. package/dist/ecs/archetype/create-archetype.js.map +1 -1
  4. package/dist/ecs/database/create-plugin.d.ts +1 -1
  5. package/dist/ecs/database/create-plugin.type-test.js +33 -0
  6. package/dist/ecs/database/create-plugin.type-test.js.map +1 -1
  7. package/dist/ecs/database/database.d.ts +1 -0
  8. package/dist/ecs/database/database.js +2 -0
  9. package/dist/ecs/database/database.js.map +1 -1
  10. package/dist/ecs/database/index.d.ts +1 -0
  11. package/dist/ecs/database/index.js +1 -0
  12. package/dist/ecs/database/index.js.map +1 -1
  13. package/dist/ecs/database/public/index.d.ts +1 -0
  14. package/dist/ecs/database/public/index.js +1 -0
  15. package/dist/ecs/database/public/index.js.map +1 -1
  16. package/dist/ecs/database/public/observe-select-deep.d.ts +26 -0
  17. package/dist/ecs/database/public/observe-select-deep.js +110 -0
  18. package/dist/ecs/database/public/observe-select-deep.js.map +1 -0
  19. package/dist/ecs/database/public/observe-select-deep.test.d.ts +1 -0
  20. package/dist/ecs/database/public/observe-select-deep.test.js +187 -0
  21. package/dist/ecs/database/public/observe-select-deep.test.js.map +1 -0
  22. package/dist/ecs/database/public/observe-select-deep.type-test.d.ts +1 -0
  23. package/dist/ecs/database/public/observe-select-deep.type-test.js +105 -0
  24. package/dist/ecs/database/public/observe-select-deep.type-test.js.map +1 -0
  25. package/dist/math/vec2/functions.d.ts +2 -0
  26. package/dist/math/vec2/functions.js +3 -0
  27. package/dist/math/vec2/functions.js.map +1 -1
  28. package/dist/schema/dynamic/enumerate-patches.test.d.ts +10 -37
  29. package/dist/schema/dynamic/enumerate-patches.test.js +18 -45
  30. package/dist/schema/dynamic/enumerate-patches.test.js.map +1 -1
  31. package/dist/schema/dynamic/get-dynamic-schema.test.js +23 -29
  32. package/dist/schema/dynamic/get-dynamic-schema.test.js.map +1 -1
  33. package/dist/schema/index.d.ts +2 -2
  34. package/dist/schema/schema.d.ts +1 -17
  35. package/dist/schema/schema.js.map +1 -1
  36. package/dist/schema/to-type.d.ts +1 -1
  37. package/dist/schema/to-type.js.map +1 -1
  38. package/dist/service/dynamic-service/create-from-ecs.d.ts +17 -0
  39. package/dist/service/dynamic-service/create-from-ecs.js +56 -0
  40. package/dist/service/dynamic-service/create-from-ecs.js.map +1 -0
  41. package/dist/service/dynamic-service/create-from-ecs.test.d.ts +1 -0
  42. package/dist/service/dynamic-service/create-from-ecs.test.js +636 -0
  43. package/dist/service/dynamic-service/create-from-ecs.test.js.map +1 -0
  44. package/dist/service/dynamic-service/dynamic-service.d.ts +28 -0
  45. package/dist/service/dynamic-service/dynamic-service.js +2 -0
  46. package/dist/service/dynamic-service/dynamic-service.js.map +1 -0
  47. package/dist/service/dynamic-service/index.d.ts +1 -0
  48. package/dist/service/dynamic-service/index.js +3 -0
  49. package/dist/service/dynamic-service/index.js.map +1 -0
  50. package/dist/service/dynamic-service/public.d.ts +2 -0
  51. package/dist/service/dynamic-service/public.js +3 -0
  52. package/dist/service/dynamic-service/public.js.map +1 -0
  53. package/dist/service/index.d.ts +1 -0
  54. package/dist/service/index.js +1 -0
  55. package/dist/service/index.js.map +1 -1
  56. package/dist/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +1 -1
@@ -1,17 +1,29 @@
1
1
  import { RequiredComponents } from "../required-components.js";
2
2
  import { Entity } from "../entity.js";
3
3
  import { Table, ReadonlyTable } from "../../table/index.js";
4
- import { Exact } from "../../types/types.js";
4
+ import { Exact, StringKeyof } from "../../types/types.js";
5
5
  export type EntityInsertValues<C> = Omit<C, "id">;
6
6
  export type ArchetypeId = number;
7
+ /**
8
+ * Component set that narrows iteration to known component keys
9
+ * while keeping .has() and set comparisons accepting any string.
10
+ */
11
+ interface ComponentSet<T extends string> extends ReadonlySet<T> {
12
+ has(value: string): boolean;
13
+ isSupersetOf(other: ReadonlySet<string>): boolean;
14
+ isSubsetOf(other: ReadonlySet<string>): boolean;
15
+ isDisjointFrom(other: ReadonlySet<string>): boolean;
16
+ }
7
17
  interface BaseArchetype {
8
18
  readonly id: ArchetypeId;
9
19
  readonly components: ReadonlySet<string>;
10
20
  }
11
21
  export interface ReadonlyArchetype<C extends RequiredComponents> extends BaseArchetype, ReadonlyTable<C> {
22
+ readonly components: ComponentSet<StringKeyof<C>>;
12
23
  toData: () => unknown;
13
24
  }
14
25
  export interface Archetype<C extends RequiredComponents = RequiredComponents> extends BaseArchetype, Table<C> {
26
+ readonly components: ComponentSet<StringKeyof<C>>;
15
27
  insert: <T extends EntityInsertValues<C>>(rowData: Exact<EntityInsertValues<C>, T>) => Entity;
16
28
  toData: () => unknown;
17
29
  fromData: (data: unknown) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"archetype.js","sourceRoot":"","sources":["../../../src/ecs/archetype/archetype.ts"],"names":[],"mappings":"AAkCA,gDAAgD;AAChD,CAAC;IAKG,2BAA2B;IAC3B,MAAM,eAAe,GAAG,CAAC,IAAmB,EAAE,EAAE;QAC5C,MAAM,SAAS,GAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB;IAC7C,CAAC,CAAC;IAEF,2CAA2C;IAC3C,MAAM,iBAAiB,GAAG,CAAC,IAAmB,EAAE,EAAE;QAC9C,MAAM,WAAW,GAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAChG,oDAAoD;QACpD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"archetype.js","sourceRoot":"","sources":["../../../src/ecs/archetype/archetype.ts"],"names":[],"mappings":"AA+CA,gDAAgD;AAChD,CAAC;IAKG,2BAA2B;IAC3B,MAAM,eAAe,GAAG,CAAC,IAAmB,EAAE,EAAE;QAC5C,MAAM,SAAS,GAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB;IAC7C,CAAC,CAAC;IAEF,2CAA2C;IAC3C,MAAM,iBAAiB,GAAG,CAAC,IAAmB,EAAE,EAAE;QAC9C,MAAM,WAAW,GAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAChG,oDAAoD;QACpD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-archetype.js","sourceRoot":"","sources":["../../../src/ecs/archetype/create-archetype.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAGvD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAO9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,UAAa,EACb,EAAU,EACV,mBAAwC,EAC+B,EAAE;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,CAAC,OAA4D,EAAU,EAAE;QAC1F,oCAAoC;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,SAAgB,EAAE,OAAO,CAAC,CAAC;QACpD,kCAAkC;QAClC,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5E,0EAA0E;QAC1E,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAa,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IAClB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAA0C,CAAC,CAAC;IAE/F,MAAM,SAAS,GAAG;QACd,EAAE;QACF,GAAG,KAAK;QACR,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;SACrC,CAAC;QACF,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC/B,0FAA0F;QAC9F,CAAC;KAC6I,CAAC;IACnJ,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"create-archetype.js","sourceRoot":"","sources":["../../../src/ecs/archetype/create-archetype.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAGvD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAO9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,UAAa,EACb,EAAU,EACV,mBAAwC,EAC+B,EAAE;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,CAAC,OAA4D,EAAU,EAAE;QAC1F,oCAAoC;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,SAAgB,EAAE,OAAO,CAAC,CAAC;QACpD,kCAAkC;QAClC,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5E,0EAA0E;QAC1E,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAa,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IAClB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG;QACd,EAAE;QACF,GAAG,KAAK;QACR,UAAU,EAAE,YAAmC;QAC/C,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;SACrC,CAAC;QACF,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC/B,0FAA0F;QAC9F,CAAC;KAC6I,CAAC;IACnJ,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA"}
@@ -64,7 +64,7 @@ export declare function createPlugin<const XP extends Database.Plugin<{}, {}, {}
64
64
  components?: CS;
65
65
  resources?: RS;
66
66
  archetypes?: A;
67
- computed?: CVF & PluginComputedFactories<FullDBForPlugin<RemoveIndex<CS>, RemoveIndex<RS>, RemoveIndex<A>, RemoveIndex<TD>, string, RemoveIndex<AD> & XP['actions'], XP, RemoveIndex<SVF>>>;
67
+ computed?: CVF & PluginComputedFactories<FullDBForPlugin<RemoveIndex<CS>, RemoveIndex<RS>, RemoveIndex<A>, {}, string, RemoveIndex<AD> & XP['actions'], XP, RemoveIndex<SVF>>>;
68
68
  transactions?: TD;
69
69
  actions?: AD & {
70
70
  readonly [K: string]: (db: Database<FromSchemas<RemoveIndex<CS> & XP['components']>, FromSchemas<RemoveIndex<RS> & XP['resources']>, RemoveIndex<A> & XP['archetypes'], ToTransactionFunctions<RemoveIndex<TD> & XP['transactions']>, S | StringKeyof<XP['systems']>, ToActionFunctions<XP['actions']>, FromServiceFactories<RemoveIndex<SVF> & XP['services']>, FromComputedFactories<RemoveIndex<CVF> & XP['computed']>>, input?: any) => any;
@@ -77,6 +77,39 @@ function validTypeInferenceTests() {
77
77
  actions: {},
78
78
  systems: {},
79
79
  });
80
+ // Test: Computed + transactions co-inference
81
+ // When both computed and transactions are defined in the same plugin,
82
+ // TypeScript must infer TD from the transactions property independently
83
+ // of the CVF contextual typing in the computed property.
84
+ const basePluginForComputed = createPlugin({
85
+ components: {
86
+ x: { type: "number" },
87
+ },
88
+ archetypes: {
89
+ X: ["x"],
90
+ },
91
+ transactions: {
92
+ setX: (store, value) => {
93
+ store.update(0, { x: value });
94
+ },
95
+ },
96
+ });
97
+ const computedWithTransactions = createPlugin({
98
+ extends: basePluginForComputed,
99
+ resources: {
100
+ panelVisible: { default: true },
101
+ },
102
+ computed: {
103
+ panelVisible: (db) => {
104
+ return Observe.fromConstant(true);
105
+ },
106
+ },
107
+ transactions: {
108
+ togglePanel: (store) => {
109
+ store.resources.panelVisible = !store.resources.panelVisible;
110
+ },
111
+ },
112
+ });
80
113
  // Test: Valid systems with transactions
81
114
  const validSystemPlugin = createPlugin({
82
115
  components: {
@@ -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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"}
@@ -117,6 +117,7 @@ export declare namespace Database {
117
117
  export type FromPlugin<P extends Database.Plugin> = P extends Database.Plugin ? Database<FromSchemas<FromPluginComponents<P>>, FromSchemas<FromPluginResources<P>>, FromPluginArchetypes<P>, ToTransactionFunctions<FromPluginTransactions<P>>, FromPluginSystems<P>, ToActionFunctions<FromPluginActions<P>>, FromServiceFactories<FromPluginServices<P>>, FromComputedFactories<FromPluginComputed<P>>> : never;
118
118
  export const create: typeof createDatabase;
119
119
  export const is: (value: unknown) => value is Database;
120
+ export const observeSelectDeep: <C extends Components, Include extends StringKeyof<C>>(db: Database<C, any, any, any, any, any, any, any>, include: readonly Include[] | ReadonlySet<Include | "id">, options?: EntitySelectOptions<C, Pick<C & RequiredComponents, Include>>) => Observe<readonly (RequiredComponents & { readonly [K in Include]: C[K]; })[]>;
120
121
  export 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> = {
121
122
  readonly components: CS;
122
123
  readonly resources: RS;
@@ -1,5 +1,6 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
2
  import { createDatabase } from "./public/create-database.js";
3
+ import { observeSelectDeep as _observeSelectDeep } from "./public/observe-select-deep.js";
3
4
  import { createPlugin } from "./create-plugin.js";
4
5
  import { combinePlugins } from "./combine-plugins.js";
5
6
  export var Database;
@@ -8,6 +9,7 @@ export var Database;
8
9
  Database.is = (value) => {
9
10
  return value !== null && typeof value === "object" && "transactions" in value && "actions" in value && "store" in value && "observe" in value && "system" in value && "extend" in value;
10
11
  };
12
+ Database.observeSelectDeep = _observeSelectDeep;
11
13
  let Plugin;
12
14
  (function (Plugin) {
13
15
  Plugin.create = createPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/ecs/database/database.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAevD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAc7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAoGtD,MAAM,KAAW,QAAQ,CA0DxB;AA1DD,WAAiB,QAAQ;IAwBV,eAAM,GAAG,cAAc,CAAC;IAExB,WAAE,GAAG,CAAC,KAAc,EAAqB,EAAE;QACtD,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC;IAC1L,CAAC,CAAA;IAsBD,IAAiB,MAAM,CAMtB;IAND,WAAiB,MAAM;QACR,aAAM,GAAG,YAAY,CAAC;QACtB,cAAO,GAAG,cAAc,CAAC;IAIxC,CAAC,EANgB,MAAM,GAAN,eAAM,KAAN,eAAM,QAMtB;AAEH,CAAC,EA1DgB,QAAQ,KAAR,QAAQ,QA0DxB"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/ecs/database/database.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAevD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAc1F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAoGtD,MAAM,KAAW,QAAQ,CA4DxB;AA5DD,WAAiB,QAAQ;IAwBV,eAAM,GAAG,cAAc,CAAC;IAExB,WAAE,GAAG,CAAC,KAAc,EAAqB,EAAE;QACtD,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC;IAC1L,CAAC,CAAA;IAEY,0BAAiB,GAAG,kBAAkB,CAAC;IAsBpD,IAAiB,MAAM,CAMtB;IAND,WAAiB,MAAM;QACR,aAAM,GAAG,YAAY,CAAC;QACtB,cAAO,GAAG,cAAc,CAAC;IAIxC,CAAC,EANgB,MAAM,GAAN,eAAM,KAAN,eAAM,QAMtB;AAEH,CAAC,EA5DgB,QAAQ,KAAR,QAAQ,QA4DxB"}
@@ -1,4 +1,5 @@
1
1
  export * from "./public/create-database.js";
2
+ export * from "./public/observe-select-deep.js";
2
3
  export * from "./reconciling/create-reconciling-database.js";
3
4
  export * from "./reconciling/reconciling-database.js";
4
5
  export * from "./reconciling/reconciling-entry.js";
@@ -1,5 +1,6 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
2
  export * from "./public/create-database.js";
3
+ export * from "./public/observe-select-deep.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 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ecs/database/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,6BAA6B,CAAC;AAC5C,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,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 +1,2 @@
1
1
  export { createDatabase as create } from "./create-database.js";
2
+ export { observeSelectDeep } from "./observe-select-deep.js";
@@ -1,3 +1,4 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
2
  export { createDatabase as create } from "./create-database.js";
3
+ export { observeSelectDeep } from "./observe-select-deep.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ecs/database/public/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,cAAc,IAAI,MAAM,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ecs/database/public/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,cAAc,IAAI,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Observe } from "../../../observe/index.js";
2
+ import { StringKeyof } from "../../../types/types.js";
3
+ import { RequiredComponents } from "../../required-components.js";
4
+ import { Components } from "../../store/components.js";
5
+ import { EntitySelectOptions } from "../../store/entity-select-options.js";
6
+ import { Database } from "../database.js";
7
+ type EntityData<C, Include extends StringKeyof<C>> = RequiredComponents & {
8
+ readonly [K in Include]: C[K];
9
+ };
10
+ /**
11
+ * Deeply observe entity data for an archetype query.
12
+ *
13
+ * Unlike `db.observe.select` (which returns entity IDs and only triggers on
14
+ * set membership changes), `observeSelectDeep` returns full typed entity data
15
+ * and re-emits whenever ANY included component value changes on any matched entity.
16
+ *
17
+ * Composes `observe.select` for set membership with per-entity observers for
18
+ * value changes. Per-entity deduplication avoids re-emissions when unrelated
19
+ * components change on a tracked entity.
20
+ *
21
+ * Equivalent parameters return the same cached `Observe` factory, and
22
+ * `Observe.withCache` shares a single underlying subscription across all
23
+ * simultaneous subscribers.
24
+ */
25
+ export declare const observeSelectDeep: <C extends Components, Include extends StringKeyof<C>>(db: Database<C, any, any, any, any, any, any, any>, include: readonly Include[] | ReadonlySet<Include | "id">, options?: EntitySelectOptions<C, Pick<C & RequiredComponents, Include>>) => Observe<readonly EntityData<C, Include>[]>;
26
+ export {};
@@ -0,0 +1,110 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { Observe } from "../../../observe/index.js";
3
+ import { equals } from "../../../equals.js";
4
+ const dbCache = new WeakMap();
5
+ const createObserveSelectDeep = (db, include, options) => {
6
+ const includeKeys = [...include];
7
+ return (notify) => {
8
+ const entityDataMap = new Map();
9
+ const entityUnobserves = new Map();
10
+ let currentEntities = [];
11
+ let isInitialized = false;
12
+ let isMicrotaskQueued = false;
13
+ const buildResult = () => currentEntities
14
+ .filter(e => entityDataMap.has(e))
15
+ .map(e => entityDataMap.get(e));
16
+ const emit = () => {
17
+ isMicrotaskQueued = false;
18
+ notify(buildResult());
19
+ };
20
+ const scheduleEmit = () => {
21
+ if (!isInitialized)
22
+ return;
23
+ if (!isMicrotaskQueued) {
24
+ isMicrotaskQueued = true;
25
+ queueMicrotask(emit);
26
+ }
27
+ };
28
+ const pickComponents = (entity, values) => {
29
+ const data = { id: entity };
30
+ for (const key of includeKeys) {
31
+ data[key] = values[key];
32
+ }
33
+ return data;
34
+ };
35
+ const observeEntity = (entity) => {
36
+ const unobserve = db.observe.entity(entity)((values) => {
37
+ if (!values)
38
+ return;
39
+ const newData = pickComponents(entity, values);
40
+ const oldData = entityDataMap.get(entity);
41
+ if (!oldData || !equals(oldData, newData)) {
42
+ entityDataMap.set(entity, newData);
43
+ scheduleEmit();
44
+ }
45
+ });
46
+ entityUnobserves.set(entity, unobserve);
47
+ };
48
+ const unobserveEntity = (entity) => {
49
+ entityUnobserves.get(entity)?.();
50
+ entityUnobserves.delete(entity);
51
+ entityDataMap.delete(entity);
52
+ };
53
+ // observe.select fires synchronously on subscribe, populating
54
+ // currentEntities and entityDataMap via per-entity observers.
55
+ const unobserveSelect = db.observe.select(include, options)((entities) => {
56
+ const newSet = new Set(entities);
57
+ const oldSet = new Set(currentEntities);
58
+ for (const entity of oldSet) {
59
+ if (!newSet.has(entity))
60
+ unobserveEntity(entity);
61
+ }
62
+ for (const entity of entities) {
63
+ if (!entityUnobserves.has(entity))
64
+ observeEntity(entity);
65
+ }
66
+ currentEntities = entities;
67
+ scheduleEmit();
68
+ });
69
+ // Synchronous initial emission (entity data already populated above)
70
+ isInitialized = true;
71
+ notify(buildResult());
72
+ return () => {
73
+ unobserveSelect();
74
+ for (const unobserve of entityUnobserves.values())
75
+ unobserve();
76
+ entityUnobserves.clear();
77
+ entityDataMap.clear();
78
+ };
79
+ };
80
+ };
81
+ /**
82
+ * Deeply observe entity data for an archetype query.
83
+ *
84
+ * Unlike `db.observe.select` (which returns entity IDs and only triggers on
85
+ * set membership changes), `observeSelectDeep` returns full typed entity data
86
+ * and re-emits whenever ANY included component value changes on any matched entity.
87
+ *
88
+ * Composes `observe.select` for set membership with per-entity observers for
89
+ * value changes. Per-entity deduplication avoids re-emissions when unrelated
90
+ * components change on a tracked entity.
91
+ *
92
+ * Equivalent parameters return the same cached `Observe` factory, and
93
+ * `Observe.withCache` shares a single underlying subscription across all
94
+ * simultaneous subscribers.
95
+ */
96
+ export const observeSelectDeep = (db, include, options) => {
97
+ let cache = dbCache.get(db);
98
+ if (!cache) {
99
+ cache = new Map();
100
+ dbCache.set(db, cache);
101
+ }
102
+ const key = JSON.stringify({ include: [...include].sort(), options });
103
+ let observe = cache.get(key);
104
+ if (!observe) {
105
+ observe = Observe.withCache(createObserveSelectDeep(db, include, options));
106
+ cache.set(key, observe);
107
+ }
108
+ return observe;
109
+ };
110
+ //# sourceMappingURL=observe-select-deep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe-select-deep.js","sourceRoot":"","sources":["../../../../src/ecs/database/public/observe-select-deep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,187 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { describe, test, vi } from "vitest";
3
+ import { assert } from "riteway/vitest";
4
+ import { Database } from "../database.js";
5
+ import { observeSelectDeep } from "./observe-select-deep.js";
6
+ /** Drain all pending microtasks before continuing. */
7
+ const flush = () => new Promise(r => setTimeout(r, 0));
8
+ const createTestDb = () => Database.create(Database.Plugin.create({
9
+ components: {
10
+ position: { type: "number" },
11
+ velocity: { type: "number" },
12
+ name: { type: "string" },
13
+ },
14
+ archetypes: {
15
+ Moving: ["position", "velocity"],
16
+ Named: ["name"],
17
+ Full: ["position", "velocity", "name"],
18
+ },
19
+ transactions: {
20
+ createMoving(store, args) {
21
+ return store.archetypes.Moving.insert(args);
22
+ },
23
+ createNamed(store, args) {
24
+ return store.archetypes.Named.insert(args);
25
+ },
26
+ createFull(store, args) {
27
+ return store.archetypes.Full.insert(args);
28
+ },
29
+ updateEntity(store, args) {
30
+ store.update(args.entity, args.values);
31
+ },
32
+ deleteEntity(store, args) {
33
+ store.delete(args.entity);
34
+ },
35
+ },
36
+ }));
37
+ describe("observeSelectDeep", () => {
38
+ test("initial emission", async () => {
39
+ const db = createTestDb();
40
+ const e1 = db.transactions.createMoving({ position: 10, velocity: 5 });
41
+ const e2 = db.transactions.createMoving({ position: 20, velocity: 15 });
42
+ const observer = vi.fn();
43
+ const unobserve = observeSelectDeep(db, ["position", "velocity"])(observer);
44
+ await assert({
45
+ given: "entities matching the query",
46
+ should: "emit entity data with included component values",
47
+ actual: observer.mock.calls[0][0],
48
+ expected: [
49
+ { id: e1, position: 10, velocity: 5 },
50
+ { id: e2, position: 20, velocity: 15 },
51
+ ],
52
+ });
53
+ await assert({
54
+ given: "initial subscription",
55
+ should: "emit exactly once",
56
+ actual: observer.mock.calls.length,
57
+ expected: 1,
58
+ });
59
+ unobserve();
60
+ });
61
+ test("re-emit on included component value change", async () => {
62
+ const db = createTestDb();
63
+ const e1 = db.transactions.createMoving({ position: 10, velocity: 5 });
64
+ const observer = vi.fn();
65
+ const unobserve = observeSelectDeep(db, ["position", "velocity"])(observer);
66
+ // Mutate an included component
67
+ db.transactions.updateEntity({ entity: e1, values: { position: 999 } });
68
+ await flush();
69
+ await assert({
70
+ given: "an included component value change",
71
+ should: "re-emit with updated data",
72
+ actual: observer.mock.calls[1][0],
73
+ expected: [{ id: e1, position: 999, velocity: 5 }],
74
+ });
75
+ await assert({
76
+ given: "one mutation after subscription",
77
+ should: "have emitted exactly twice",
78
+ actual: observer.mock.calls.length,
79
+ expected: 2,
80
+ });
81
+ unobserve();
82
+ });
83
+ test("re-emit on entity addition", async () => {
84
+ const db = createTestDb();
85
+ const e1 = db.transactions.createMoving({ position: 10, velocity: 5 });
86
+ const observer = vi.fn();
87
+ const unobserve = observeSelectDeep(db, ["position", "velocity"])(observer);
88
+ const e2 = db.transactions.createMoving({ position: 20, velocity: 15 });
89
+ await flush();
90
+ await assert({
91
+ given: "a new entity matching the query",
92
+ should: "re-emit including the new entity data",
93
+ actual: observer.mock.calls[1][0],
94
+ expected: [
95
+ { id: e1, position: 10, velocity: 5 },
96
+ { id: e2, position: 20, velocity: 15 },
97
+ ],
98
+ });
99
+ unobserve();
100
+ });
101
+ test("re-emit on entity deletion", async () => {
102
+ const db = createTestDb();
103
+ const e1 = db.transactions.createMoving({ position: 10, velocity: 5 });
104
+ const e2 = db.transactions.createMoving({ position: 20, velocity: 15 });
105
+ const observer = vi.fn();
106
+ const unobserve = observeSelectDeep(db, ["position", "velocity"])(observer);
107
+ db.transactions.deleteEntity({ entity: e1 });
108
+ await flush();
109
+ await assert({
110
+ given: "a deleted entity",
111
+ should: "re-emit without the deleted entity",
112
+ actual: observer.mock.calls[1][0],
113
+ expected: [{ id: e2, position: 20, velocity: 15 }],
114
+ });
115
+ unobserve();
116
+ });
117
+ test("no re-emit on non-included component change", async () => {
118
+ const db = createTestDb();
119
+ db.transactions.createFull({ position: 10, velocity: 5, name: "Alice" });
120
+ const observer = vi.fn();
121
+ const unobserve = observeSelectDeep(db, ["position", "velocity"])(observer);
122
+ // Mutate a NON-included component
123
+ db.transactions.createNamed({ name: "Bob" });
124
+ await flush();
125
+ await assert({
126
+ given: "a change to a non-included component only",
127
+ should: "not re-emit",
128
+ actual: observer.mock.calls.length,
129
+ expected: 1,
130
+ });
131
+ unobserve();
132
+ });
133
+ test("deduplicate when data unchanged", async () => {
134
+ const db = createTestDb();
135
+ const e1 = db.transactions.createMoving({ position: 10, velocity: 5 });
136
+ const observer = vi.fn();
137
+ const unobserve = observeSelectDeep(db, ["position", "velocity"])(observer);
138
+ // Update to the SAME value — deep equality should suppress re-emit
139
+ db.transactions.updateEntity({ entity: e1, values: { position: 10 } });
140
+ await flush();
141
+ await assert({
142
+ given: "an update that produces the same data",
143
+ should: "not re-emit",
144
+ actual: observer.mock.calls.length,
145
+ expected: 1,
146
+ });
147
+ unobserve();
148
+ });
149
+ test("same Observe factory for equivalent parameters", async () => {
150
+ const db = createTestDb();
151
+ const obs1 = observeSelectDeep(db, ["position", "velocity"]);
152
+ const obs2 = observeSelectDeep(db, ["position", "velocity"]);
153
+ await assert({
154
+ given: "two calls with equivalent include arrays",
155
+ should: "return the same Observe factory",
156
+ actual: obs1 === obs2,
157
+ expected: true,
158
+ });
159
+ });
160
+ test("late subscriber receives cached value", async () => {
161
+ const db = createTestDb();
162
+ const e1 = db.transactions.createMoving({ position: 10, velocity: 5 });
163
+ const observer1 = vi.fn();
164
+ const unobserve1 = observeSelectDeep(db, ["position", "velocity"])(observer1);
165
+ // Mutate after first subscription
166
+ db.transactions.updateEntity({ entity: e1, values: { position: 999 } });
167
+ await flush();
168
+ // Late subscriber should get the latest cached value immediately
169
+ const observer2 = vi.fn();
170
+ const unobserve2 = observeSelectDeep(db, ["position", "velocity"])(observer2);
171
+ await assert({
172
+ given: "a late subscriber after mutations",
173
+ should: "receive the current cached value synchronously",
174
+ actual: observer2.mock.calls[0][0],
175
+ expected: [{ id: e1, position: 999, velocity: 5 }],
176
+ });
177
+ await assert({
178
+ given: "a late subscriber",
179
+ should: "emit exactly once (cached value only)",
180
+ actual: observer2.mock.calls.length,
181
+ expected: 1,
182
+ });
183
+ unobserve1();
184
+ unobserve2();
185
+ });
186
+ });
187
+ //# sourceMappingURL=observe-select-deep.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observe-select-deep.test.js","sourceRoot":"","sources":["../../../../src/ecs/database/public/observe-select-deep.test.ts"],"names":[],"mappings":"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"}