@adobe/data 0.9.44 → 0.9.46

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 (40) hide show
  1. package/AGENTS.md +1 -1
  2. package/dist/ecs/database/combine-plugins.js.map +1 -1
  3. package/dist/ecs/database/create-plugin.type-test.js +5 -5
  4. package/dist/ecs/database/public/create-database.d.ts +9 -1
  5. package/dist/ecs/database/public/create-database.js +4 -1
  6. package/dist/ecs/database/public/create-database.js.map +1 -1
  7. package/dist/ecs/database/public/create-database.test.js +84 -2
  8. package/dist/ecs/database/public/create-database.test.js.map +1 -1
  9. package/dist/ecs/database/public/create-database.type-test.js +50 -236
  10. package/dist/ecs/database/public/create-database.type-test.js.map +1 -1
  11. package/dist/ecs/database/transactional-store/create-transactional-store.js +1 -2
  12. package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
  13. package/dist/ecs/entity-location-table/create-entity-location-table.d.ts +1 -1
  14. package/dist/ecs/entity-location-table/create-entity-location-table.js +2 -2
  15. package/dist/ecs/entity-location-table/create-entity-location-table.test.js +1 -1
  16. package/dist/ecs/optional-components.d.ts +1 -1
  17. package/dist/ecs/store/core/create-core.js +11 -16
  18. package/dist/ecs/store/core/create-core.js.map +1 -1
  19. package/dist/ecs/store/core/create-core.test.js +38 -38
  20. package/dist/ecs/store/core/create-core.test.js.map +1 -1
  21. package/dist/functions/serialization/serialization.test.js +6 -9
  22. package/dist/functions/serialization/serialization.test.js.map +1 -1
  23. package/dist/functions/serialization/serialize-to-json.js +2 -2
  24. package/dist/functions/serialization/serialize-to-json.js.map +1 -1
  25. package/dist/schema/dynamic/enumerate-patches.test.d.ts +4 -4
  26. package/dist/schema/dynamic/enumerate-patches.test.js +8 -11
  27. package/dist/schema/dynamic/enumerate-patches.test.js.map +1 -1
  28. package/dist/schema/dynamic/get-dynamic-schema.test.js +4 -8
  29. package/dist/schema/dynamic/get-dynamic-schema.test.js.map +1 -1
  30. package/dist/schema/schema.d.ts +1 -1
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/dist/typed-buffer/register-typed-buffer-codecs.js +3 -3
  33. package/package.json +1 -1
  34. package/references/data-lit/package.json +1 -1
  35. package/references/data-lit-tictactoe/package.json +1 -1
  36. package/references/data-lit-tictactoe/tsconfig.json +1 -0
  37. package/references/data-react/package.json +1 -1
  38. package/references/data-react-hello/package.json +1 -1
  39. package/references/data-react-pixie/package.json +1 -1
  40. package/references/data-react-pixie/tsconfig.json +1 -0
@@ -1,238 +1,52 @@
1
- // © 2026 Adobe. MIT License. See /LICENSE for details.
1
+ // Temporary type verification delete after confirming.
2
+ // Positive tests: valid usages that should compile.
3
+ // Negative tests: invalid usages that should produce type errors (marked with @ts-expect-error).
2
4
  import { Database } from "../database.js";
3
- /**
4
- * Type-only tests for Database.create type inference from plugins.
5
- *
6
- * These tests verify that:
7
- * 1. Database.create can infer Database types from simple plugins
8
- * 2. Database.create can infer Database types from plugins with extends (Combine2)
9
- * 3. Database.create can infer Database types from deeply nested plugins (Combine2<Combine2<...>>)
10
- *
11
- * These tests verify that Database.create correctly infers types from plugins, including
12
- * complex nested plugin declarations created by the `extends` clause (which uses Combine2).
13
- *
14
- * The tests verify type correctness using Assert<Equal<...>> to catch type-breaking changes early.
15
- *
16
- * Note: These are compile-time type checks only - they don't need to execute.
17
- * These tests would fail with the old type system that couldn't handle Combine2 nested types.
18
- */
19
- // ============================================================================
20
- // SIMPLE PLUGIN TESTS (no extends)
21
- // ============================================================================
22
- function testSimplePluginInference() {
23
- const plugin = Database.Plugin.create({
24
- components: {
25
- position: { type: "number" },
26
- },
27
- resources: {
28
- time: { default: 0 },
29
- },
30
- archetypes: {
31
- Position: ["position"],
32
- },
33
- transactions: {
34
- createPosition: (store, args) => {
35
- return store.archetypes.Position.insert(args);
36
- },
37
- },
38
- });
39
- const db = Database.create(plugin);
40
- }
41
- // ============================================================================
42
- // SINGLE EXTENDS TESTS (one level of Combine2)
43
- // ============================================================================
44
- function testSingleExtendsInference() {
45
- const basePlugin = Database.Plugin.create({
46
- components: {
47
- position: { type: "number" },
48
- },
49
- resources: {
50
- time: { default: 0 },
51
- },
52
- archetypes: {
53
- Position: ["position"],
54
- },
55
- transactions: {
56
- createPosition: (store, args) => {
57
- return store.archetypes.Position.insert(args);
58
- },
59
- },
60
- });
61
- const extendedPlugin = Database.Plugin.create({
62
- extends: basePlugin,
63
- components: {
64
- velocity: { type: "number" },
65
- },
66
- resources: {
67
- deltaTime: { default: 0.016 },
68
- },
69
- archetypes: {
70
- Moving: ["position", "velocity"],
71
- },
72
- transactions: {
73
- createMoving: (store, args) => {
74
- return store.archetypes.Moving.insert(args);
75
- },
76
- },
77
- });
78
- const db = Database.create(extendedPlugin);
79
- }
80
- // ============================================================================
81
- // DEEP NESTING TESTS (multiple levels of Combine2)
82
- // ============================================================================
83
- function testDeepNestingInference() {
84
- const level1 = Database.Plugin.create({
85
- components: {
86
- a: { type: "number" },
87
- },
88
- resources: {
89
- r1: { default: 0 },
90
- },
91
- transactions: {
92
- t1: (store) => { },
93
- },
94
- });
95
- const level2 = Database.Plugin.create({
96
- extends: level1,
97
- components: {
98
- b: { type: "string" },
99
- },
100
- resources: {
101
- r2: { default: "" },
102
- },
103
- transactions: {
104
- t2: (store, arg) => { },
105
- },
106
- });
107
- const level3 = Database.Plugin.create({
108
- extends: level2,
109
- components: {
110
- c: { type: "boolean" },
111
- },
112
- resources: {
113
- r3: { default: false },
114
- },
115
- transactions: {
116
- t3: (store, args) => 12,
117
- },
118
- });
119
- const db = Database.create(level3);
120
- }
121
- // ============================================================================
122
- // SYSTEMS AND ACTIONS TESTS
123
- // ============================================================================
124
- function testSystemsAndActionsInference() {
125
- const basePlugin = Database.Plugin.create({
126
- extends: undefined,
127
- components: {},
128
- resources: {},
129
- archetypes: {},
130
- transactions: {},
131
- actions: {
132
- baseAction: (db) => { },
133
- baseActionWithInput: (db, input) => { },
134
- },
135
- systems: {
136
- input: {
137
- create: (db) => () => { },
138
- },
139
- },
140
- });
141
- const extendedPlugin = Database.Plugin.create({
142
- extends: basePlugin,
143
- components: {},
144
- resources: {},
145
- archetypes: {},
146
- transactions: {},
147
- actions: {
148
- extendedAction: (db) => { },
149
- extendedActionWithInput: (db, input) => { },
150
- },
151
- systems: {
152
- render: {
153
- create: (db) => () => { },
154
- schedule: { after: ["input"] },
155
- },
156
- },
157
- });
158
- const db = Database.create(extendedPlugin);
159
- }
160
- // ============================================================================
161
- // EXTENDED DB ASSIGNABLE TO BASE DB (computed type)
162
- // ============================================================================
163
- /**
164
- * Verifies that db from an extended plugin's system create callback can be passed
165
- * to a function expecting the base database type. This catches the "computed:
166
- * unknown" bug where system create's db lacked the 8th Database parameter.
167
- * We use Pick to test only resources and computed (the structural assignment).
168
- */
169
- function testExtendedDbAssignableToBaseDb() {
170
- const basePlugin = Database.Plugin.create({
171
- components: { pos: { type: "number" } },
172
- resources: { scale: { default: 1 } },
173
- archetypes: { Entity: ["pos"] },
174
- transactions: {},
175
- actions: {},
176
- systems: {},
177
- });
178
- const extendedPlugin = Database.Plugin.create({
179
- extends: basePlugin,
180
- components: { vel: { type: "number" } },
181
- resources: {},
182
- archetypes: { Moving: ["pos", "vel"] },
183
- transactions: {},
184
- actions: {},
185
- systems: {
186
- update: {
187
- create: (db) => {
188
- fnExpectingBaseResourcesAndComputed(db);
189
- return () => { };
190
- },
191
- },
192
- },
193
- });
194
- function fnExpectingBaseResourcesAndComputed(db) {
195
- return db.resources.scale;
196
- }
197
- }
198
- // ============================================================================
199
- // EXTENDED DB ASSIGNABLE TO BASE DB (system.functions)
200
- // ============================================================================
201
- /**
202
- * Verifies that db from an extended plugin's system create callback has
203
- * system.functions with specific keys (not { [x: string]: ... }). This catches
204
- * the "S = string" bug where system create's db had an index signature.
205
- * We test resources + system.functions.input (avoids system.order variance).
206
- */
207
- function testExtendedDbAssignableToBaseDbWithSystems() {
208
- const basePlugin = Database.Plugin.create({
209
- components: { pos: { type: "number" } },
210
- resources: { scale: { default: 1 } },
211
- archetypes: { Entity: ["pos"] },
212
- transactions: {},
213
- actions: {},
214
- systems: {
215
- input: { create: (db) => () => { } },
216
- },
217
- });
218
- const extendedPlugin = Database.Plugin.create({
219
- extends: basePlugin,
220
- components: { vel: { type: "number" } },
221
- resources: {},
222
- archetypes: { Moving: ["pos", "vel"] },
223
- transactions: {},
224
- actions: {},
225
- systems: {
226
- update: {
227
- create: (db) => {
228
- fnExpectingBaseResourcesAndInputSystem(db);
229
- return () => { };
230
- },
231
- },
232
- },
233
- });
234
- function fnExpectingBaseResourcesAndInputSystem(db) {
235
- return db.resources.scale + (db.system.functions.input ? 1 : 0);
236
- }
237
- }
5
+ const pluginWithServices = Database.Plugin.create({
6
+ services: {
7
+ auth: (_db) => ({ token: 'abc', isAuthenticated: true }),
8
+ config: (_db) => ({ apiUrl: 'https://example.com', debug: false }),
9
+ },
10
+ });
11
+ // --- Positive: no options ---
12
+ const db1 = Database.create(pluginWithServices);
13
+ db1.services.auth.token;
14
+ db1.services.config.apiUrl;
15
+ // --- Positive: empty options ---
16
+ const db2 = Database.create(pluginWithServices, {});
17
+ // --- Positive: override one service with correct type ---
18
+ const db3 = Database.create(pluginWithServices, {
19
+ services: { auth: { token: 'override', isAuthenticated: false } },
20
+ });
21
+ db3.services.auth.token;
22
+ // --- Positive: override both services ---
23
+ const db4 = Database.create(pluginWithServices, {
24
+ services: {
25
+ auth: { token: 'x', isAuthenticated: true },
26
+ config: { apiUrl: 'https://other.com', debug: true },
27
+ },
28
+ });
29
+ // --- Positive: no-arg call still works ---
30
+ const db5 = Database.create();
31
+ // --- Negative: wrong value type for an overridden service ---
32
+ const db6 = Database.create(pluginWithServices, {
33
+ services: {
34
+ // @ts-expect-error — token should be string, not number
35
+ auth: { token: 123, isAuthenticated: false },
36
+ },
37
+ });
38
+ // --- Negative: unknown service key ---
39
+ const db7 = Database.create(pluginWithServices, {
40
+ services: {
41
+ // @ts-expect-error 'nonexistent' is not a declared service
42
+ nonexistent: { foo: 'bar' },
43
+ },
44
+ });
45
+ // --- Negative: missing required property in override ---
46
+ const db8 = Database.create(pluginWithServices, {
47
+ services: {
48
+ // @ts-expect-error — missing isAuthenticated
49
+ auth: { token: 'x' },
50
+ },
51
+ });
238
52
  //# sourceMappingURL=create-database.type-test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-database.type-test.js","sourceRoot":"","sources":["../../../../src/ecs/database/public/create-database.type-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-database.type-test.js","sourceRoot":"","sources":["../../../../src/ecs/database/public/create-database.type-test.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,oDAAoD;AACpD,iGAAiG;AAEjG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9C,QAAQ,EAAE;QACN,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACxD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KACrE;CACJ,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAsB,CAAC;AACzC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAuB,CAAC;AAE5C,kCAAkC;AAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAEpD,2DAA2D;AAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE;IAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE;CACpE,CAAC,CAAC;AACH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAsB,CAAC;AAEzC,2CAA2C;AAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE;IAC5C,QAAQ,EAAE;QACN,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE;QAC3C,MAAM,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE;KACvD;CACJ,CAAC,CAAC;AAEH,4CAA4C;AAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;AAE9B,+DAA+D;AAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE;IAC5C,QAAQ,EAAE;QACN,wDAAwD;QACxD,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE;KAC/C;CACJ,CAAC,CAAC;AAEH,wCAAwC;AACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE;IAC5C,QAAQ,EAAE;QACN,6DAA6D;QAC7D,WAAW,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;KAC9B;CACJ,CAAC,CAAC;AAEH,0DAA0D;AAC1D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE;IAC5C,QAAQ,EAAE;QACN,6CAA6C;QAC7C,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;KACvB;CACJ,CAAC,CAAC"}
@@ -47,7 +47,6 @@ export function createTransactionalStore(store) {
47
47
  const updateEntity = (entity, values) => {
48
48
  const oldValues = store.read(entity);
49
49
  if (!oldValues) {
50
- debugger;
51
50
  throw new Error(`Entity not found: ${entity}`);
52
51
  }
53
52
  const replacedValues = {};
@@ -190,7 +189,7 @@ export function createTransactionalStore(store) {
190
189
  }
191
190
  // Sync resources after extension (store may have new resource schemas)
192
191
  for (const name of Object.keys(store.resources)) {
193
- if (!resources.hasOwnProperty(name)) {
192
+ if (!Object.hasOwn(resources, name)) {
194
193
  const resourceId = name;
195
194
  const archetype = store.ensureArchetype(["id", resourceId]);
196
195
  const entityId = archetype.columns.id.get(0);
@@ -1 +1 @@
1
- {"version":3,"file":"create-transactional-store.js","sourceRoot":"","sources":["../../../../src/ecs/database/transactional-store/create-transactional-store.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,gEAAgE;AAChE,MAAM,MAAM,GAAY,cAAc,CAAC;AAUvC,MAAM,UAAU,wBAAwB,CAKpC,KAAqB;IAGrB,2DAA2D;IAC3D,IAAI,4BAA4B,GAAmC,EAAE,CAAC;IACtE,IAAI,cAAc,GAAmC,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG;QACZ,QAAQ,EAAE,IAAI,GAAG,EAAwC;QACzD,UAAU,EAAE,IAAI,GAAG,EAAW;QAC9B,UAAU,EAAE,IAAI,GAAG,EAAe;KACrC,CAAC;IAEF,8CAA8C;IAC9C,MAAM,aAAa,GAAG,CAAC,SAAyB,EAAE,EAAE;QAChD,MAAM,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;QACzB,OAAO;YACH,GAAG,SAAS;YACZ,IAAI,QAAQ;gBACR,OAAO,SAAS,CAAC,QAAQ,CAAC;YAC9B,CAAC;YACD,MAAM,EAAE,CAAkC,MAAS,EAAE,EAAE;gBACnD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAe,CAAC,CAAC;gBACjD,cAAc,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,MAAM;iBACjB,CAAC,CAAC;gBACH,4BAA4B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACrC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;oBACvB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAY,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,MAAM,CAAC;YAClB,CAAC;SACJ,CAAC;IACN,CAAC,CAAC;IAEF,qDAAqD;IACrD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEtD,MAAM,mBAAmB,GAAG,CAAC,SAAc,EAAE,EAAE;QAC3C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YACvC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,oCAAoC;IACpC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,MAA6B,EAAE,EAAE;QACnE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,QAAQ,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,cAAc,GAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YACxB,IAAI,QAAQ,GAAI,MAAc,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACtB,QAAQ,GAAG,SAAS,CAAC;YACzB,CAAC;YACD,IAAI,QAAQ,GAAI,SAAiB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACzB,QAAQ,GAAG,MAAM,CAAC;gBACtB,CAAC;gBACD,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAChC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAe,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,4BAA4B;QAC5B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAa,CAAC,CAAC;QAEpC,0CAA0C;QAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,0CAA0C;QAC1C,mCAAmC,CAAC,4BAA4B,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IACtH,CAAC,CAAC;IAEF,oCAAoC;IACpC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEnC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE,GAAG,SAAgB,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACnC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAc,CAAC,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAChD,4BAA4B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,EAA8B,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAe,CAAC;QACnC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,UAAU,CAAqB,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE;YACnC,GAAG,EAAE,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAE,CAAC,GAAG;YAChE,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACd,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAS,CAAC,CAAC;YAC9D,CAAC;YACD,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;IAGD,iCAAiC;IACjC,qCAAqC;IACrC,MAAM,uBAAuB,GAAG,EAAS,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QAClC,uBAAuB,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,gBAAgB,GAAG;QACrB,GAAG,KAAK;QACR,UAAU,EAAE,uBAAuB;QACnC,SAAS;QACT,eAAe,EAAE,CAAC,cAAc,EAAE,EAAE;YAChC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YACxD,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,YAAY;QACpB,+BAA+B;QAC/B,QAAQ,EAAE,SAAS;KACS,CAAC;IAEjC,+BAA+B;IAC/B,MAAM,OAAO,GAAG,CACZ,mBAA+D,EAC/D,OAEC,EACmB,EAAE;QACtB,gBAAgB,CAAC,QAAQ,GAAG,SAAS,CAAC;QACtC,0BAA0B;QAC1B,4BAA4B,GAAG,EAAE,CAAC;QAClC,cAAc,GAAG,EAAE,CAAC;QACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,CAAC;YACD,0BAA0B;YAC1B,MAAM,KAAK,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YAEpD,mDAAmD;YACnD,MAAM,aAAa,GAAG,uBAAuB,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;YACnE,MAAM,aAAa,GAAG,uBAAuB,CAAC,CAAC,GAAG,4BAA4B,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAE3F,gCAAgC;YAChC,MAAM,MAAM,GAAyB;gBACjC,KAAK,EAAE,KAAK,IAAI,SAAS;gBACzB,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,KAAK;gBACtC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,IAAI,IAAI;gBAC3C,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,aAAa;gBACnB,eAAe,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1C,iBAAiB,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC9C,iBAAiB,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;aACjD,CAAC;YAEF,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,2DAA2D;YAC3D,oBAAoB,CAAC,KAAK,EAAE,4BAA4B,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,6BAA6B;YAC7B,4BAA4B,GAAG,EAAE,CAAC;YAClC,cAAc,GAAG,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC3B,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;IACL,CAAC,CAAC;IAEF,2CAA2C;IAC3C,MAAM,kBAAkB,GAAG;QACvB,GAAG,KAAK;QACR,OAAO;QACP,gBAAgB;QAChB,sFAAsF;QACtF,MAAM,EAAE,CAAC,MAAW,EAAE,EAAE;YACpB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrB,0CAA0C;YAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC,CAAC,IAAI,IAAI,uBAAuB,CAAC,EAAE,CAAC;oBACrC,uBAAuB,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChF,CAAC;YACL,CAAC;YACD,uEAAuE;YACvE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,MAAM,UAAU,GAAG,IAAe,CAAC;oBACnC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,UAAU,CAAqB,CAAC,CAAC;oBAChF,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC7C,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE;wBACnC,GAAG,EAAE,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAE,CAAC,GAAG;wBAChE,GAAG,EAAE,CAAC,QAAa,EAAE,EAAE;4BACnB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAS,CAAC,CAAC;wBAC9D,CAAC;wBACD,UAAU,EAAE,IAAI;qBACnB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YACD,OAAO,kBAAyB,CAAC;QACrC,CAAC;KACsC,CAAC;IAE5C,OAAO,kBAAyB,CAAC;AACrC,CAAC;AAED,mEAAmE;AACnE,SAAS,mCAAmC,CACxC,4BAA4D,EAC5D,cAA8C,EAC9C,MAAc,EACd,MAA6B,EAC7B,cAAqC;IAErC,MAAM,iBAAiB,GACnB,4BAA4B,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1E,IACI,iBAAiB,EAAE,IAAI,KAAK,QAAQ;QACpC,iBAAiB,CAAC,MAAM,KAAK,MAAM,EACrC,CAAC;QACC,yCAAyC;QACzC,MAAM,iBAAiB,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,iBAAiB,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,iBAAiB,CAAC,MAAM,GAAG,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;YACtE,iBAAiB,CAAC,MAAM,GAAG;gBACvB,GAAG,cAAc;gBACjB,GAAG,iBAAiB,CAAC,MAAM;aAC9B,CAAC;QACN,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,4BAA4B;QAC5B,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,4BAA4B,CAAC,IAAI,CAAC;YAC9B,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,MAAM,EAAE,cAAc;SACzB,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,yDAAyD;AACzD,SAAS,oBAAoB,CACzB,KAAqB,EACrB,UAA0C;IAE1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAqB,CAAC;gBACpF,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBACxD,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,MAAa,CAAC,CAAC;gBAC1C,MAAM;YACV,CAAC;YACD,KAAK,QAAQ;gBACT,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM;YACV,KAAK,QAAQ;gBACT,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC/B,MAAM;QACd,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"create-transactional-store.js","sourceRoot":"","sources":["../../../../src/ecs/database/transactional-store/create-transactional-store.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { EntityLocationTable } from "./entity-location-table.js";
2
- export declare const createEntityLocationTable: (initialCapacity?: number, transient?: boolean) => EntityLocationTable;
2
+ export declare const createEntityLocationTable: (initialCapacity?: number, ephemeral?: boolean) => EntityLocationTable;
@@ -1,8 +1,8 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
2
  import { resize } from "../../internal/array-buffer-like/resize.js";
3
3
  import { createSharedArrayBuffer } from "../../internal/shared-array-buffer/create-shared-array-buffer.js";
4
- export const createEntityLocationTable = (initialCapacity = 16, transient = false) => {
5
- return transient ? createNegativeEntityLocationTable(initialCapacity) : createPositiveEntityLocationTable(initialCapacity);
4
+ export const createEntityLocationTable = (initialCapacity = 16, ephemeral = false) => {
5
+ return ephemeral ? createNegativeEntityLocationTable(initialCapacity) : createPositiveEntityLocationTable(initialCapacity);
6
6
  };
7
7
  const createNegativeEntityLocationTable = (initialCapacity = 16) => {
8
8
  const table = createEntityLocationTable(initialCapacity);
@@ -119,7 +119,7 @@ describe('createEntityLocationTable', () => {
119
119
  expect(() => table.locate(-1)).toThrow("locate entity must be >= 0");
120
120
  });
121
121
  });
122
- describe('createTransientEntityLocationTable', () => {
122
+ describe('createEphemeralEntityLocationTable', () => {
123
123
  it('should create entities with increasing ids starting from -1', () => {
124
124
  const table = createEntityLocationTable(16, true);
125
125
  const entity0 = table.create({ archetype: 1, row: 10 });
@@ -1,3 +1,3 @@
1
1
  export type OptionalComponents = {
2
- transient: true;
2
+ ephemeral: true;
3
3
  };
@@ -7,16 +7,12 @@ import { True } from "../../../schema/true/index.js";
7
7
  export function createCore(newComponentSchemas) {
8
8
  const componentSchemas = {
9
9
  id: Entity.schema,
10
- transient: True.schema,
10
+ ephemeral: True.schema,
11
11
  ...newComponentSchemas
12
12
  };
13
- // entity location table for entities that are not transient
14
- // values >= 0
15
13
  const persistentLocationTable = createEntityLocationTable(16, false);
16
- // entity location table for entities that are transient
17
- // values < 0
18
- const transientLocationTable = createEntityLocationTable(16, true);
19
- const getLocationTable = (entity) => entity < 0 ? transientLocationTable : persistentLocationTable;
14
+ const ephemeralLocationTable = createEntityLocationTable(16, true);
15
+ const getLocationTable = (entity) => entity < 0 ? ephemeralLocationTable : persistentLocationTable;
20
16
  const archetypes = [];
21
17
  const queryArchetypes = (include, options) => {
22
18
  const includeArray = Array.from(include);
@@ -42,25 +38,25 @@ export function createCore(newComponentSchemas) {
42
38
  const id = archetypes.length;
43
39
  const archetypeComponentSchemas = {};
44
40
  let hasId = false;
45
- let transient = false;
41
+ let ephemeral = false;
46
42
  for (const comp of componentNames) {
47
43
  if (comp === "id") {
48
44
  hasId = true;
49
45
  }
50
- if (comp === "transient") {
51
- transient = true;
46
+ if (comp === "ephemeral") {
47
+ ephemeral = true;
52
48
  }
53
49
  archetypeComponentSchemas[comp] = componentSchemas[comp];
54
50
  }
55
51
  if (!hasId) {
56
52
  throw new Error("id is required");
57
53
  }
58
- const archetype = ARCHETYPE.createArchetype(archetypeComponentSchemas, id, transient ? transientLocationTable : persistentLocationTable);
54
+ const archetype = ARCHETYPE.createArchetype(archetypeComponentSchemas, id, ephemeral ? ephemeralLocationTable : persistentLocationTable);
59
55
  archetypes.push(archetype);
60
56
  return archetype;
61
57
  };
62
58
  const locateInternal = (entity) => {
63
- return (entity < 0 ? transientLocationTable : persistentLocationTable).locate(entity);
59
+ return (entity < 0 ? ephemeralLocationTable : persistentLocationTable).locate(entity);
64
60
  };
65
61
  const readEntity = (entity, minArchetype) => {
66
62
  const location = locateInternal(entity);
@@ -88,11 +84,10 @@ export function createCore(newComponentSchemas) {
88
84
  const updateEntity = (entity, components) => {
89
85
  const currentLocation = locateInternal(entity);
90
86
  if (currentLocation === null) {
91
- debugger;
92
- throw `Entity not found ${entity}`;
87
+ throw new Error(`Entity not found ${entity}`);
93
88
  }
94
- if ("transient" in components) {
95
- throw new Error("Cannot update transient component");
89
+ if ("ephemeral" in components) {
90
+ throw new Error("Cannot update ephemeral component");
96
91
  }
97
92
  const currentArchetype = archetypes[currentLocation.archetype];
98
93
  let newArchetype = currentArchetype;
@@ -1 +1 @@
1
- {"version":3,"file":"create-core.js","sourceRoot":"","sources":["../../../../src/ecs/store/core/create-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-core.js","sourceRoot":"","sources":["../../../../src/ecs/store/core/create-core.ts"],"names":[],"mappings":"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"}
@@ -354,36 +354,36 @@ export function createCoreTestSuite(name, factory) {
354
354
  expect(core.locate(entities[i])).toBeNull();
355
355
  }
356
356
  });
357
- it("should create transient entities with negative ids", () => {
357
+ it("should create ephemeral entities with negative ids", () => {
358
358
  const core = factory({
359
359
  position: positionSchema,
360
360
  health: healthSchema,
361
361
  });
362
- const transientPositionTable = core.ensureArchetype(["id", "position", "transient"]);
363
- const writeId = transientPositionTable.insert({ position: { x: 1, y: 2, z: 3 }, transient: true });
362
+ const ephemeralPositionTable = core.ensureArchetype(["id", "position", "ephemeral"]);
363
+ const writeId = ephemeralPositionTable.insert({ position: { x: 1, y: 2, z: 3 }, ephemeral: true });
364
364
  expect(writeId).toBe(-1);
365
- const readId = transientPositionTable.columns.id.get(0);
365
+ const readId = ephemeralPositionTable.columns.id.get(0);
366
366
  expect(readId).toBe(writeId);
367
367
  const locate = core.locate(writeId);
368
- expect(locate?.archetype).toBe(transientPositionTable);
368
+ expect(locate?.archetype).toBe(ephemeralPositionTable);
369
369
  const readComponent = core.get(writeId, "position");
370
370
  expect(readComponent).toEqual({ x: 1, y: 2, z: 3 });
371
371
  });
372
- it("should throw when trying to update transient component", () => {
372
+ it("should throw when trying to update ephemeral component", () => {
373
373
  const core = factory({
374
374
  position: positionSchema,
375
375
  health: healthSchema,
376
376
  });
377
- const transientPositionTable = core.ensureArchetype(["id", "position", "transient"]);
378
- const writeId = transientPositionTable.insert({ position: { x: 1, y: 2, z: 3 }, transient: true });
377
+ const ephemeralPositionTable = core.ensureArchetype(["id", "position", "ephemeral"]);
378
+ const writeId = ephemeralPositionTable.insert({ position: { x: 1, y: 2, z: 3 }, ephemeral: true });
379
379
  expect(() => {
380
- core.update(writeId, { transient: false });
380
+ core.update(writeId, { ephemeral: false });
381
381
  }).toThrow();
382
382
  expect(() => {
383
- core.update(writeId, { transient: true });
383
+ core.update(writeId, { ephemeral: true });
384
384
  }).toThrow();
385
385
  expect(() => {
386
- core.update(writeId, { transient: undefined });
386
+ core.update(writeId, { ephemeral: undefined });
387
387
  }).toThrow();
388
388
  });
389
389
  describe("core read with minArchetype", () => {
@@ -598,49 +598,49 @@ export function createCoreTestSuite(name, factory) {
598
598
  expect(archetype.rowCapacity).toBe(rowCountBefore);
599
599
  });
600
600
  });
601
- it("should delete transient entities correctly", () => {
601
+ it("should delete ephemeral entities correctly", () => {
602
602
  const core = factory({
603
603
  position: positionSchema,
604
604
  });
605
- const transientArchetype = core.ensureArchetype(["id", "position", "transient"]);
606
- const transientEntity = transientArchetype.insert({
605
+ const ephemeralArchetype = core.ensureArchetype(["id", "position", "ephemeral"]);
606
+ const ephemeralEntity = ephemeralArchetype.insert({
607
607
  position: { x: 1, y: 2, z: 3 },
608
- transient: true
609
- });
610
- // Verify transient entity exists and has negative id
611
- expect(transientEntity).toBeLessThan(0);
612
- expect(core.locate(transientEntity)).not.toBeNull();
613
- expect(core.read(transientEntity)).not.toBeNull();
614
- // Delete transient entity
615
- core.delete(transientEntity);
616
- // Verify transient entity is deleted
617
- expect(core.locate(transientEntity)).toBeNull();
618
- expect(core.read(transientEntity)).toBeNull();
608
+ ephemeral: true
609
+ });
610
+ // Verify ephemeral entity exists and has negative id
611
+ expect(ephemeralEntity).toBeLessThan(0);
612
+ expect(core.locate(ephemeralEntity)).not.toBeNull();
613
+ expect(core.read(ephemeralEntity)).not.toBeNull();
614
+ // Delete ephemeral entity
615
+ core.delete(ephemeralEntity);
616
+ // Verify ephemeral entity is deleted
617
+ expect(core.locate(ephemeralEntity)).toBeNull();
618
+ expect(core.read(ephemeralEntity)).toBeNull();
619
619
  });
620
- it("should update transient entities across archetypes correctly", () => {
620
+ it("should update ephemeral entities across archetypes correctly", () => {
621
621
  const core = factory({
622
622
  position: positionSchema,
623
623
  health: healthSchema,
624
624
  });
625
- // Create a transient entity with just position
626
- const transientArchetype1 = core.ensureArchetype(["id", "position", "transient"]);
627
- const transientEntity = transientArchetype1.insert({
625
+ // Create an ephemeral entity with just position
626
+ const ephemeralArchetype1 = core.ensureArchetype(["id", "position", "ephemeral"]);
627
+ const ephemeralEntity = ephemeralArchetype1.insert({
628
628
  position: { x: 1, y: 2, z: 3 },
629
- transient: true
629
+ ephemeral: true
630
630
  });
631
- // Verify transient entity exists and has negative id
632
- expect(transientEntity).toBeLessThan(0);
633
- expect(core.locate(transientEntity)).not.toBeNull();
631
+ // Verify ephemeral entity exists and has negative id
632
+ expect(ephemeralEntity).toBeLessThan(0);
633
+ expect(core.locate(ephemeralEntity)).not.toBeNull();
634
634
  // Add health component to trigger archetype change
635
- core.update(transientEntity, { health: { current: 100, max: 100 } });
635
+ core.update(ephemeralEntity, { health: { current: 100, max: 100 } });
636
636
  // Verify entity moved to new archetype and data is correct
637
- const location = core.locate(transientEntity);
637
+ const location = core.locate(ephemeralEntity);
638
638
  expect(location).not.toBeNull();
639
- expect(location?.archetype).not.toBe(transientArchetype1);
640
- const data = core.read(transientEntity);
639
+ expect(location?.archetype).not.toBe(ephemeralArchetype1);
640
+ const data = core.read(ephemeralEntity);
641
641
  expect(data?.position).toEqual({ x: 1, y: 2, z: 3 });
642
642
  expect(data?.health).toEqual({ current: 100, max: 100 });
643
- expect(data?.transient).toBe(true);
643
+ expect(data?.ephemeral).toBe(true);
644
644
  });
645
645
  });
646
646
  }