@adobe/data 0.9.2 → 0.9.4

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 (71) hide show
  1. package/assembly/package.json +1 -0
  2. package/blob/package.json +1 -0
  3. package/cache/package.json +1 -0
  4. package/ecs/database/combine-plugins.d.ts +21 -0
  5. package/ecs/database/combine-plugins.js +47 -0
  6. package/ecs/database/combine-plugins.js.map +1 -0
  7. package/ecs/database/create-plugin.d.ts +22 -55
  8. package/ecs/database/create-plugin.js +15 -24
  9. package/ecs/database/create-plugin.js.map +1 -1
  10. package/ecs/database/create-plugin.test.js +111 -65
  11. package/ecs/database/create-plugin.test.js.map +1 -1
  12. package/ecs/database/create-plugin.type-test.d.ts +1 -0
  13. package/ecs/database/create-plugin.type-test.js +671 -0
  14. package/ecs/database/create-plugin.type-test.js.map +1 -0
  15. package/ecs/database/database-schema/create-database-schema.d.ts +3 -3
  16. package/ecs/database/database-schema/database-schema.d.ts +3 -3
  17. package/ecs/database/database.d.ts +33 -45
  18. package/ecs/database/database.js +2 -16
  19. package/ecs/database/database.js.map +1 -1
  20. package/ecs/database/database.test.js +17 -11
  21. package/ecs/database/database.test.js.map +1 -1
  22. package/ecs/database/observed/create-observed-database.test.js +5 -6
  23. package/ecs/database/observed/create-observed-database.test.js.map +1 -1
  24. package/ecs/database/public/create-database-scheduler.test.d.ts +1 -0
  25. package/ecs/database/public/create-database-scheduler.test.js +82 -0
  26. package/ecs/database/public/create-database-scheduler.test.js.map +1 -0
  27. package/ecs/database/public/create-database.d.ts +18 -5
  28. package/ecs/database/public/create-database.js +73 -39
  29. package/ecs/database/public/create-database.js.map +1 -1
  30. package/ecs/database/public/create-database.test.js +156 -159
  31. package/ecs/database/public/create-database.test.js.map +1 -1
  32. package/ecs/database/reconciling/create-reconciling-database.d.ts +2 -2
  33. package/ecs/database/reconciling/create-reconciling-database.js.map +1 -1
  34. package/ecs/database/reconciling/create-reconciling-database.test.js +4 -6
  35. package/ecs/database/reconciling/create-reconciling-database.test.js.map +1 -1
  36. package/ecs/database/reconciling/reconciling-database.d.ts +2 -2
  37. package/ecs/index.d.ts +1 -2
  38. package/ecs/index.js +1 -1
  39. package/ecs/index.js.map +1 -1
  40. package/ecs/package.json +1 -0
  41. package/ecs/plugins/scheduler/scheduler.d.ts +6 -2
  42. package/ecs/plugins/scheduler/scheduler.js +17 -3
  43. package/ecs/plugins/scheduler/scheduler.js.map +1 -1
  44. package/ecs/store/action-functions.d.ts +9 -10
  45. package/ecs/store/action-functions.js +21 -0
  46. package/ecs/store/action-functions.js.map +1 -1
  47. package/ecs/store/archetype-components.d.ts +4 -2
  48. package/ecs/store/public/create-store.d.ts +1 -2
  49. package/ecs/store/store.d.ts +5 -5
  50. package/ecs/store/transaction-functions.d.ts +21 -0
  51. package/ecs/store/transaction-functions.js +2 -0
  52. package/ecs/store/transaction-functions.js.map +1 -0
  53. package/functions/package.json +1 -0
  54. package/lit/hooks/use-drag-transaction.d.ts +1 -1
  55. package/lit/package.json +1 -0
  56. package/math/package.json +1 -0
  57. package/observe/package.json +1 -0
  58. package/old-ecs/package.json +1 -0
  59. package/package.json +109 -1
  60. package/perftest/package.json +1 -0
  61. package/samples/package.json +1 -0
  62. package/samples/todo/services/state-service/create-todo-database.d.ts +2 -2
  63. package/samples/todo/services/state-service/create-todo-store.d.ts +1 -1
  64. package/schema/package.json +1 -0
  65. package/service/package.json +1 -0
  66. package/table/package.json +1 -0
  67. package/tsconfig.tsbuildinfo +1 -1
  68. package/typed-buffer/package.json +1 -0
  69. package/types/package.json +1 -0
  70. package/types/types.d.ts +1 -0
  71. package/types/types.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"type":"module","main":"./index.js","types":"./index.d.ts","exports":{".": {"import":"./index.js","types":"./index.d.ts"}}}
@@ -0,0 +1 @@
1
+ {"type":"module","main":"./index.js","types":"./index.d.ts","exports":{".": {"import":"./index.js","types":"./index.d.ts"}}}
@@ -0,0 +1 @@
1
+ {"type":"module","main":"./index.js","types":"./index.d.ts","exports":{".": {"import":"./index.js","types":"./index.d.ts"}}}
@@ -0,0 +1,21 @@
1
+ import { IntersectTuple, UnionTuple } from "../../types/types.js";
2
+ import type { Database } from "./database.js";
3
+ export type CombinePlugins<Plugins extends readonly Database.Plugin[]> = Database.Plugin<{} & IntersectTuple<{
4
+ [K in keyof Plugins]: Plugins[K] extends Database.Plugin<infer C, any, any, any, any, any> ? C : never;
5
+ }>, {} & IntersectTuple<{
6
+ [K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, infer R, any, any, any, any> ? R : never;
7
+ }>, {} & IntersectTuple<{
8
+ [K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, infer A, any, any, any> ? A : never;
9
+ }>, {} & IntersectTuple<{
10
+ [K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, infer TD, any, any> ? TD : never;
11
+ }>, Extract<UnionTuple<{
12
+ [K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, any, infer S, any> ? S : never;
13
+ }>, string>, {} & IntersectTuple<{
14
+ [K in keyof Plugins]: Plugins[K] extends Database.Plugin<any, any, any, any, any, infer AD> ? AD : never;
15
+ }>>;
16
+ /**
17
+ * Combines multiple plugins into a single plugin.
18
+ * All plugin properties (components, resources, archetypes, transactions, systems, actions)
19
+ * require identity (===) when the same key exists across plugins.
20
+ */
21
+ export declare function combinePlugins<const Plugins extends readonly Database.Plugin[]>(...plugins: Plugins): CombinePlugins<Plugins>;
@@ -0,0 +1,47 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ /**
23
+ * Combines multiple plugins into a single plugin.
24
+ * All plugin properties (components, resources, archetypes, transactions, systems, actions)
25
+ * require identity (===) when the same key exists across plugins.
26
+ */
27
+ export function combinePlugins(...plugins) {
28
+ const keys = ['components', 'resources', 'archetypes', 'transactions', 'systems', 'actions'];
29
+ const merge = (base, next) => Object.fromEntries(keys.map(key => {
30
+ const baseObj = base[key] ?? {};
31
+ const nextObj = next[key] ?? {};
32
+ // All keys require identity (===) check
33
+ const merged = { ...baseObj };
34
+ for (const [k, v] of Object.entries(nextObj)) {
35
+ if (k in baseObj && baseObj[k] !== v) {
36
+ throw new Error(`Plugin combine conflict: ${key}.${k} must be identical (===) across plugins`);
37
+ }
38
+ merged[k] = v;
39
+ }
40
+ return [key, merged];
41
+ }));
42
+ const emptyPlugin = { components: {}, resources: {}, archetypes: {}, transactions: {}, systems: {}, actions: {} };
43
+ // Merge all plugins together
44
+ const result = plugins.reduce(merge, emptyPlugin);
45
+ return result;
46
+ }
47
+ //# sourceMappingURL=combine-plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine-plugins.js","sourceRoot":"","sources":["../../../src/ecs/database/combine-plugins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAsDX;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAG5B,GAAG,OAAgB;IAEnB,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;IAEtG,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,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAElH,6BAA6B;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAElD,OAAO,MAAa,CAAC;AACvB,CAAC"}
@@ -1,69 +1,36 @@
1
- import type { Database } from "./database.js";
1
+ import { Database, SystemFunction } from "./database.js";
2
2
  import type { ComponentSchemas } from "../component-schemas.js";
3
3
  import type { ResourceSchemas } from "../resource-schemas.js";
4
4
  import type { ArchetypeComponents } from "../store/archetype-components.js";
5
+ import type { TransactionDeclarations, ToTransactionFunctions } from "../store/transaction-functions.js";
5
6
  import type { ActionDeclarations, ToActionFunctions } from "../store/action-functions.js";
6
7
  import type { FromSchemas } from "../../schema/index.js";
7
- import type { StringKeyof, IntersectTuple } from "../../types/types.js";
8
- import type { OptionalComponents } from "../optional-components.js";
9
- type SystemFunction = () => void | Promise<void>;
10
- type RemoveIndexSignature<T> = {
8
+ import type { StringKeyof, Simplify, NoInfer } from "../../types/types.js";
9
+ import { CombinePlugins } from "./combine-plugins.js";
10
+ type RemoveIndex<T> = Simplify<{
11
11
  [K in keyof T as string extends K ? never : number extends K ? never : symbol extends K ? never : K]: T[K];
12
- };
13
- type ExtractSystemNames<P> = P extends Database.Plugin<any, any, any, any, infer S> ? S : never;
14
- type PluginDatabase<CS extends ComponentSchemas, RS extends ResourceSchemas, A extends ArchetypeComponents<StringKeyof<CS & OptionalComponents>>, TD extends ActionDeclarations<any, any, any>, S extends string> = Database<FromSchemas<RemoveIndexSignature<CS>>, FromSchemas<RemoveIndexSignature<RS>>, RemoveIndexSignature<{
15
- readonly [K in keyof A as string extends K ? never : K]: A[K];
16
- } & ArchetypeComponents<StringKeyof<FromSchemas<RemoveIndexSignature<CS>> & OptionalComponents>>>, ToActionFunctions<TD>, S>;
17
- type MergeDependencies<D extends readonly Database.Plugin<any, any, any, any, any>[]> = {
18
- components: {} & IntersectTuple<{
19
- [K in keyof D]: D[K] extends Database.Plugin<infer C, any, any, any, any> ? (C extends undefined ? {} : C) : never;
20
- }>;
21
- resources: {} & IntersectTuple<{
22
- [K in keyof D]: D[K] extends Database.Plugin<any, infer R, any, any, any> ? (R extends undefined ? {} : R) : never;
23
- }>;
24
- archetypes: {} & IntersectTuple<{
25
- [K in keyof D]: D[K] extends Database.Plugin<any, any, infer A, any, any> ? (A extends undefined ? {} : A) : never;
26
- }>;
27
- transactions: {} & IntersectTuple<{
28
- [K in keyof D]: D[K] extends Database.Plugin<any, any, any, infer TD, any> ? (TD extends undefined ? Record<never, never> : TD) : never;
29
- }>;
30
- systemNames: Extract<{
31
- [K in keyof D]: ExtractSystemNames<D[K]>;
32
- }[number], string>;
33
- };
34
- export declare function createPlugin<const CS extends ComponentSchemas, const RS extends ResourceSchemas, const A extends ArchetypeComponents<StringKeyof<CS & OptionalComponents>>, const TD extends ActionDeclarations<any, any, any>, const SYS extends {
35
- readonly [K in string]: {
36
- readonly create: (db: PluginDatabase<CS, RS, A, TD, string>) => SystemFunction;
37
- readonly schedule?: {
38
- readonly before?: readonly Extract<keyof SYS, string>[];
39
- readonly after?: readonly Extract<keyof SYS, string>[];
40
- readonly during?: readonly Extract<keyof SYS, string>[];
41
- };
42
- };
43
- }>(descriptor: {
12
+ }>;
13
+ export declare function createPlugin<const XP extends Database.Plugin<{}, {}, {}, {}, never, {}>, const CS extends ComponentSchemas, const RS extends ResourceSchemas, const A extends ArchetypeComponents<StringKeyof<RemoveIndex<CS> & XP['components']>>, const TD extends TransactionDeclarations<FromSchemas<RemoveIndex<CS> & XP['components']>, FromSchemas<RemoveIndex<RS> & XP['resources']>, RemoveIndex<A> & XP['archetypes']>, const AD, const S extends string = never>(plugins: {
44
14
  components?: CS;
45
15
  resources?: RS;
46
16
  archetypes?: A;
47
17
  transactions?: TD;
48
- systems?: SYS;
49
- }): Required<Database.Plugin<CS, RS, A, TD, StringKeyof<SYS>>>;
50
- export declare function createPlugin<const D extends readonly any[], const CS extends ComponentSchemas, const RS extends ResourceSchemas, const A extends ArchetypeComponents<StringKeyof<CS & MergeDependencies<D>['components'] & OptionalComponents>>, const TD extends ActionDeclarations<any, any, any>, const SYS extends {
51
- readonly [K in string]: {
52
- readonly create: (db: PluginDatabase<CS & MergeDependencies<D>['components'], RS & MergeDependencies<D>['resources'], A, TD & MergeDependencies<D>['transactions'], MergeDependencies<D>['systemNames'] | string>) => SystemFunction;
53
- readonly schedule?: {
54
- readonly before?: readonly MergeDependencies<D>['systemNames'][];
55
- readonly after?: readonly MergeDependencies<D>['systemNames'][];
56
- readonly during?: readonly MergeDependencies<D>['systemNames'][];
18
+ actions?: AD & {
19
+ readonly [K: string]: (db: Database<FromSchemas<RemoveIndex<CS> & XP['components']>, FromSchemas<RemoveIndex<RS> & XP['resources']>, RemoveIndex<A> & XP['archetypes'], ToTransactionFunctions<RemoveIndex<TD> & XP['transactions']>, string, ToActionFunctions<XP['actions']>>, input?: any) => any;
20
+ };
21
+ systems?: {
22
+ readonly [K in S]: {
23
+ readonly create: (db: Database<FromSchemas<RemoveIndex<CS> & XP['components']>, FromSchemas<RemoveIndex<RS> & XP['resources']>, RemoveIndex<A> & XP['archetypes'], ToTransactionFunctions<RemoveIndex<TD> & XP['transactions']>, string, ToActionFunctions<RemoveIndex<AD> & XP['actions']>>) => SystemFunction | void;
24
+ readonly schedule?: {
25
+ readonly before?: readonly NoInfer<Exclude<S | StringKeyof<XP['systems']>, K>>[];
26
+ readonly after?: readonly NoInfer<Exclude<S | StringKeyof<XP['systems']>, K>>[];
27
+ readonly during?: readonly NoInfer<Exclude<S | StringKeyof<XP['systems']>, K>>[];
28
+ };
57
29
  };
58
30
  };
59
- }>(descriptor: {
60
- components?: CS;
61
- resources?: RS;
62
- archetypes?: A;
63
- transactions?: TD;
64
- systems?: SYS;
65
- }, dependencies: D): Database.Plugin.Intersect<[
66
- ...D,
67
- Database.Plugin<CS & MergeDependencies<D>['components'], RS, A, TD, StringKeyof<SYS>>
31
+ extends?: XP;
32
+ }): CombinePlugins<[
33
+ XP,
34
+ Database.Plugin<RemoveIndex<CS>, RemoveIndex<RS>, RemoveIndex<A>, RemoveIndex<TD>, S, AD & ActionDeclarations<FromSchemas<RemoveIndex<CS>>, FromSchemas<RemoveIndex<RS>>, RemoveIndex<A>, ToTransactionFunctions<RemoveIndex<TD>>, S>>
68
35
  ]>;
69
36
  export {};
@@ -19,29 +19,20 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.*/
22
- // Implementation
23
- export function createPlugin(descriptor, dependencies) {
24
- const requireIdentity = new Set(['components', 'resources', 'archetypes']);
25
- const merge = (base, next) => Object.fromEntries(keys.map(key => {
26
- const baseObj = base[key] ?? {};
27
- const nextObj = next[key] ?? {};
28
- if (requireIdentity.has(key)) {
29
- const merged = { ...baseObj };
30
- for (const [k, v] of Object.entries(nextObj)) {
31
- if (k in baseObj && baseObj[k] !== v) {
32
- throw new Error(`Plugin merge conflict: ${key}.${k} must be identical (===) across plugins`);
33
- }
34
- merged[k] = v;
35
- }
36
- return [key, merged];
37
- }
38
- return [key, { ...baseObj, ...nextObj }];
39
- }));
40
- // Merge dependencies first
41
- const mergedDeps = (dependencies ?? []).reduce(merge, emptyPlugin);
42
- // Merge descriptor on top of dependencies
43
- return merge(mergedDeps, descriptor);
22
+ import { combinePlugins } from "./combine-plugins.js";
23
+ export function createPlugin(plugins) {
24
+ // Normalize plugins descriptor to a plugin object
25
+ const plugin = {
26
+ components: plugins.components ?? {},
27
+ resources: plugins.resources ?? {},
28
+ archetypes: plugins.archetypes ?? {},
29
+ transactions: plugins.transactions ?? {},
30
+ systems: plugins.systems ?? {},
31
+ actions: plugins.actions ?? {},
32
+ };
33
+ if (plugins.extends) {
34
+ return combinePlugins(plugins.extends, plugin);
35
+ }
36
+ return plugin;
44
37
  }
45
- const keys = ['components', 'resources', 'archetypes', 'transactions', 'systems'];
46
- const emptyPlugin = { components: {}, resources: {}, archetypes: {}, transactions: {}, systems: {} };
47
38
  //# sourceMappingURL=create-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-plugin.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AA6HX,iBAAiB;AACjB,MAAM,UAAU,YAAY,CACxB,UAAe,EACf,YAAkB;IAElB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3E,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,IAAS,EAAE,EAAE,CACnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhC,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CACX,0BAA0B,GAAG,IAAI,CAAC,yCAAyC,CAC9E,CAAC;gBACN,CAAC;gBACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC,CAAC;IAER,2BAA2B;IAC3B,MAAM,UAAU,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAEnE,0CAA0C;IAC1C,OAAO,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACzC,CAAC;AACD,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,CAAU,CAAC;AAC3F,MAAM,WAAW,GAA2B,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC"}
1
+ {"version":3,"file":"create-plugin.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAUX,OAAO,EAAkB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAWtE,MAAM,UAAU,YAAY,CASxB,OA8BC;IAUD,kDAAkD;IAClD,MAAM,MAAM,GAAQ;QAChB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACpC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;QACxC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;KACjC,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAQ,CAAC;IAC1D,CAAC;IACD,OAAO,MAAa,CAAC;AACzB,CAAC"}
@@ -21,6 +21,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.*/
22
22
  import { describe, it, expect } from "vitest";
23
23
  import { createPlugin } from "./create-plugin.js";
24
+ import { Database } from "./database.js";
24
25
  describe("Database.Plugin.create", () => {
25
26
  describe("single descriptor (no dependencies)", () => {
26
27
  it("should create plugin with components, resources, and archetypes", () => {
@@ -99,6 +100,16 @@ describe("Database.Plugin.create", () => {
99
100
  });
100
101
  });
101
102
  it("should constrain schedule references to dependency system names", () => {
103
+ const basePlugin = createPlugin({
104
+ systems: {
105
+ update: {
106
+ create: (_db) => () => { }
107
+ },
108
+ render: {
109
+ create: (_db) => () => { }
110
+ }
111
+ }
112
+ });
102
113
  const plugin = createPlugin({
103
114
  systems: {
104
115
  renderSystem: {
@@ -109,19 +120,9 @@ describe("Database.Plugin.create", () => {
109
120
  before: ["render2"]
110
121
  }
111
122
  }
112
- }
113
- }, [
114
- createPlugin({
115
- systems: {
116
- update: {
117
- create: (_db) => () => { }
118
- },
119
- render: {
120
- create: (_db) => () => { }
121
- }
122
- }
123
- })
124
- ]);
123
+ },
124
+ extends: basePlugin
125
+ });
125
126
  expect(plugin).toBeDefined();
126
127
  expect(plugin.systems).toBeDefined();
127
128
  });
@@ -137,8 +138,9 @@ describe("Database.Plugin.create", () => {
137
138
  const extendedPlugin = createPlugin({
138
139
  components: {
139
140
  velocity: { type: "number" }
140
- }
141
- }, [basePlugin]);
141
+ },
142
+ extends: basePlugin
143
+ });
142
144
  expect("position" in extendedPlugin.components).toBe(true);
143
145
  expect("health" in extendedPlugin.components).toBe(true);
144
146
  expect("velocity" in extendedPlugin.components).toBe(true);
@@ -153,8 +155,9 @@ describe("Database.Plugin.create", () => {
153
155
  const extendedPlugin = createPlugin({
154
156
  resources: {
155
157
  delta: { default: 0 }
156
- }
157
- }, [basePlugin]);
158
+ },
159
+ extends: basePlugin
160
+ });
158
161
  expect("time" in extendedPlugin.resources).toBe(true);
159
162
  expect("config" in extendedPlugin.resources).toBe(true);
160
163
  expect("delta" in extendedPlugin.resources).toBe(true);
@@ -172,8 +175,9 @@ describe("Database.Plugin.create", () => {
172
175
  renderSystem: {
173
176
  create: (_db) => () => { }
174
177
  }
175
- }
176
- }, [basePlugin]);
178
+ },
179
+ extends: basePlugin
180
+ });
177
181
  expect("inputSystem" in extendedPlugin.systems).toBe(true);
178
182
  expect("renderSystem" in extendedPlugin.systems).toBe(true);
179
183
  });
@@ -191,8 +195,9 @@ describe("Database.Plugin.create", () => {
191
195
  expect(typeof time).toBe("number");
192
196
  }
193
197
  }
194
- }
195
- }, [basePlugin]);
198
+ },
199
+ extends: basePlugin
200
+ });
196
201
  expect(extendedPlugin).toBeDefined();
197
202
  });
198
203
  it("should allow multiple dependencies", () => {
@@ -205,9 +210,11 @@ describe("Database.Plugin.create", () => {
205
210
  const plugin3 = createPlugin({
206
211
  components: { c: { type: "boolean" } }
207
212
  });
213
+ const combinedBase = Database.Plugin.combine(plugin1, plugin2, plugin3);
208
214
  const merged = createPlugin({
209
- components: { d: { type: "number" } }
210
- }, [plugin1, plugin2, plugin3]);
215
+ components: { d: { type: "number" } },
216
+ extends: combinedBase
217
+ });
211
218
  expect("a" in merged.components).toBe(true);
212
219
  expect("b" in merged.components).toBe(true);
213
220
  expect("c" in merged.components).toBe(true);
@@ -215,24 +222,6 @@ describe("Database.Plugin.create", () => {
215
222
  });
216
223
  });
217
224
  describe("schedule validation", () => {
218
- it("should allow valid system references in schedule", () => {
219
- expect(() => {
220
- createPlugin({
221
- systems: {
222
- system1: {
223
- create: (_db) => () => { }
224
- },
225
- system2: {
226
- create: (_db) => () => { },
227
- schedule: {
228
- // @ts-expect-error - system1 does not exist
229
- after: ["system1"]
230
- }
231
- }
232
- }
233
- });
234
- }).not.toThrow();
235
- });
236
225
  it("should allow referencing dependency systems in schedule", () => {
237
226
  const basePlugin = createPlugin({
238
227
  systems: {
@@ -250,8 +239,9 @@ describe("Database.Plugin.create", () => {
250
239
  after: ["inputSystem"] // Reference from dependency!
251
240
  }
252
241
  }
253
- }
254
- }, [basePlugin]);
242
+ },
243
+ extends: basePlugin
244
+ });
255
245
  }).not.toThrow();
256
246
  });
257
247
  it("should validate across multiple dependencies", () => {
@@ -278,8 +268,9 @@ describe("Database.Plugin.create", () => {
278
268
  after: ["system1", "system2"] // Both from dependencies
279
269
  }
280
270
  }
281
- }
282
- }, [plugin1, plugin2]);
271
+ },
272
+ extends: Database.Plugin.combine(plugin1, plugin2)
273
+ });
283
274
  }).not.toThrow();
284
275
  });
285
276
  it("should constrain schedule references to dependency system names", () => {
@@ -303,8 +294,9 @@ describe("Database.Plugin.create", () => {
303
294
  after: ["inputSystem", "physicsSystem"]
304
295
  }
305
296
  }
306
- }
307
- }, [basePlugin]);
297
+ },
298
+ extends: basePlugin
299
+ });
308
300
  expect(validPlugin).toBeDefined();
309
301
  expect(validPlugin.systems).toHaveProperty("renderSystem");
310
302
  });
@@ -346,8 +338,9 @@ describe("Database.Plugin.create", () => {
346
338
  const invalid = db.resources.nonExistent;
347
339
  }
348
340
  }
349
- }
350
- }, [basePlugin]);
341
+ },
342
+ extends: basePlugin
343
+ });
351
344
  expect(extendedPlugin).toBeDefined();
352
345
  });
353
346
  });
@@ -362,9 +355,10 @@ describe("Database.Plugin.create", () => {
362
355
  createPlugin({
363
356
  components: {
364
357
  health: { type: "string" } // Different definition
365
- }
366
- }, [plugin1]);
367
- }).toThrow('Plugin merge conflict: components.health must be identical (===) across plugins');
358
+ },
359
+ extends: plugin1
360
+ });
361
+ }).toThrow('Plugin combine conflict: components.health must be identical (===) across plugins');
368
362
  });
369
363
  it("should throw error when merging different resource definitions", () => {
370
364
  const plugin1 = createPlugin({
@@ -376,9 +370,10 @@ describe("Database.Plugin.create", () => {
376
370
  createPlugin({
377
371
  resources: {
378
372
  score: { default: 100 } // Different definition
379
- }
380
- }, [plugin1]);
381
- }).toThrow('Plugin merge conflict: resources.score must be identical (===) across plugins');
373
+ },
374
+ extends: plugin1
375
+ });
376
+ }).toThrow('Plugin combine conflict: resources.score must be identical (===) across plugins');
382
377
  });
383
378
  it("should throw error when merging different archetype definitions", () => {
384
379
  const plugin1 = createPlugin({
@@ -394,9 +389,10 @@ describe("Database.Plugin.create", () => {
394
389
  createPlugin({
395
390
  archetypes: {
396
391
  Entity: ["position", "velocity"] // Different definition
397
- }
398
- }, [plugin1]);
399
- }).toThrow('Plugin merge conflict: archetypes.Entity must be identical (===) across plugins');
392
+ },
393
+ extends: plugin1
394
+ });
395
+ }).toThrow('Plugin combine conflict: archetypes.Entity must be identical (===) across plugins');
400
396
  });
401
397
  it("should allow same component with identical reference", () => {
402
398
  const sharedComponent = { type: "number" };
@@ -409,11 +405,43 @@ describe("Database.Plugin.create", () => {
409
405
  createPlugin({
410
406
  components: {
411
407
  health: sharedComponent // Same reference - OK
412
- }
413
- }, [plugin1]);
408
+ },
409
+ extends: plugin1
410
+ });
414
411
  }).not.toThrow();
415
412
  });
416
- it("should allow overwriting systems", () => {
413
+ it("should throw error when merging different transaction definitions", () => {
414
+ const plugin1 = createPlugin({
415
+ transactions: {
416
+ updateEntity: (store) => { }
417
+ }
418
+ });
419
+ expect(() => {
420
+ createPlugin({
421
+ transactions: {
422
+ updateEntity: (store) => { } // Different function reference - error
423
+ },
424
+ extends: plugin1
425
+ });
426
+ }).toThrow('Plugin combine conflict: transactions.updateEntity must be identical (===) across plugins');
427
+ });
428
+ it("should allow same transaction with identical reference", () => {
429
+ const sharedTransaction = (store) => { };
430
+ const plugin1 = createPlugin({
431
+ transactions: {
432
+ updateEntity: sharedTransaction
433
+ }
434
+ });
435
+ expect(() => {
436
+ createPlugin({
437
+ transactions: {
438
+ updateEntity: sharedTransaction // Same reference - OK
439
+ },
440
+ extends: plugin1
441
+ });
442
+ }).not.toThrow();
443
+ });
444
+ it("should throw error when merging different system definitions", () => {
417
445
  const plugin1 = createPlugin({
418
446
  systems: {
419
447
  update: {
@@ -421,15 +449,33 @@ describe("Database.Plugin.create", () => {
421
449
  }
422
450
  }
423
451
  });
424
- // Should not throw - systems can be overwritten
425
452
  expect(() => {
426
453
  createPlugin({
427
454
  systems: {
428
455
  update: {
429
- create: () => () => { } // Different function - OK
456
+ create: () => () => { } // Different function - error
430
457
  }
431
- }
432
- }, [plugin1]);
458
+ },
459
+ extends: plugin1
460
+ });
461
+ }).toThrow('Plugin combine conflict: systems.update must be identical (===) across plugins');
462
+ });
463
+ it("should allow same system with identical reference", () => {
464
+ const sharedSystem = {
465
+ create: () => () => { }
466
+ };
467
+ const plugin1 = createPlugin({
468
+ systems: {
469
+ update: sharedSystem
470
+ }
471
+ });
472
+ expect(() => {
473
+ createPlugin({
474
+ systems: {
475
+ update: sharedSystem // Same reference - OK
476
+ },
477
+ extends: plugin1
478
+ });
433
479
  }).not.toThrow();
434
480
  });
435
481
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create-plugin.test.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-plugin.test.js","sourceRoot":"","sources":["../../../src/ecs/database/create-plugin.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};