@adobe/data 0.8.6 → 0.9.0

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 (93) hide show
  1. package/dist/ecs/database/calculate-system-order.d.ts +18 -0
  2. package/dist/ecs/database/calculate-system-order.js +113 -0
  3. package/dist/ecs/database/calculate-system-order.js.map +1 -0
  4. package/dist/ecs/database/calculate-system-order.test.d.ts +1 -0
  5. package/dist/ecs/database/calculate-system-order.test.js +168 -0
  6. package/dist/ecs/database/calculate-system-order.test.js.map +1 -0
  7. package/dist/ecs/database/create-plugin.d.ts +67 -0
  8. package/dist/ecs/database/create-plugin.js +47 -0
  9. package/dist/ecs/database/create-plugin.js.map +1 -0
  10. package/dist/ecs/database/create-plugin.test.d.ts +1 -0
  11. package/dist/ecs/database/create-plugin.test.js +435 -0
  12. package/dist/ecs/database/create-plugin.test.js.map +1 -0
  13. package/dist/ecs/database/database-schema/create-database-schema.d.ts +3 -3
  14. package/dist/ecs/database/database-schema/database-schema.d.ts +4 -3
  15. package/dist/ecs/database/database.d.ts +56 -18
  16. package/dist/ecs/database/database.js +42 -0
  17. package/dist/ecs/database/database.js.map +1 -1
  18. package/dist/ecs/database/database.test.d.ts +1 -0
  19. package/dist/ecs/database/database.test.js +200 -0
  20. package/dist/ecs/database/database.test.js.map +1 -0
  21. package/dist/ecs/database/observe-select-entities.test.js +3 -3
  22. package/dist/ecs/database/observe-select-entities.test.js.map +1 -1
  23. package/dist/ecs/database/observed/create-observed-database.js +6 -1
  24. package/dist/ecs/database/observed/create-observed-database.js.map +1 -1
  25. package/dist/ecs/database/observed/create-observed-database.test.js +105 -49
  26. package/dist/ecs/database/observed/create-observed-database.test.js.map +1 -1
  27. package/dist/ecs/database/observed/observed-database.d.ts +3 -0
  28. package/dist/ecs/database/public/create-database-from-schema.test.d.ts +1 -0
  29. package/dist/ecs/database/public/create-database-from-schema.test.js +153 -0
  30. package/dist/ecs/database/public/create-database-from-schema.test.js.map +1 -0
  31. package/dist/ecs/database/public/create-database.d.ts +17 -2
  32. package/dist/ecs/database/public/create-database.js +283 -79
  33. package/dist/ecs/database/public/create-database.js.map +1 -1
  34. package/dist/ecs/database/public/create-database.test.js +178 -47
  35. package/dist/ecs/database/public/create-database.test.js.map +1 -1
  36. package/dist/ecs/database/reconciling/create-reconciling-database.d.ts +2 -2
  37. package/dist/ecs/database/reconciling/create-reconciling-database.js +7 -2
  38. package/dist/ecs/database/reconciling/create-reconciling-database.js.map +1 -1
  39. package/dist/ecs/database/reconciling/create-reconciling-database.test.js +18 -9
  40. package/dist/ecs/database/reconciling/create-reconciling-database.test.js.map +1 -1
  41. package/dist/ecs/database/reconciling/reconciling-database.d.ts +5 -3
  42. package/dist/ecs/database/transactional-store/coalesce-actions.d.ts +16 -0
  43. package/dist/ecs/database/transactional-store/coalesce-actions.js +140 -0
  44. package/dist/ecs/database/transactional-store/coalesce-actions.js.map +1 -0
  45. package/dist/ecs/database/transactional-store/coalesce-actions.test.d.ts +1 -0
  46. package/dist/ecs/database/transactional-store/coalesce-actions.test.js +433 -0
  47. package/dist/ecs/database/transactional-store/coalesce-actions.test.js.map +1 -0
  48. package/dist/ecs/database/transactional-store/create-transactional-store.js +18 -2
  49. package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
  50. package/dist/ecs/database/transactional-store/create-transactional-store.test.js +13 -3
  51. package/dist/ecs/database/transactional-store/create-transactional-store.test.js.map +1 -1
  52. package/dist/ecs/database/transactional-store/transactional-store.d.ts +2 -0
  53. package/dist/ecs/database/type-inference-example.d.ts +1 -0
  54. package/dist/ecs/database/type-inference-example.js +2 -0
  55. package/dist/ecs/database/type-inference-example.js.map +1 -0
  56. package/dist/ecs/plugins/index.d.ts +1 -0
  57. package/dist/ecs/plugins/index.js +23 -0
  58. package/dist/ecs/plugins/index.js.map +1 -0
  59. package/dist/ecs/plugins/scheduler/index.d.ts +1 -0
  60. package/dist/ecs/plugins/scheduler/index.js +23 -0
  61. package/dist/ecs/plugins/scheduler/index.js.map +1 -0
  62. package/dist/ecs/plugins/scheduler/scheduler.d.ts +8 -0
  63. package/dist/ecs/plugins/scheduler/scheduler.js +52 -0
  64. package/dist/ecs/plugins/scheduler/scheduler.js.map +1 -0
  65. package/dist/ecs/store/action-functions.d.ts +21 -0
  66. package/dist/ecs/store/action-functions.js +2 -0
  67. package/dist/ecs/store/action-functions.js.map +1 -0
  68. package/dist/ecs/store/create-store-schema-test.js +70 -8
  69. package/dist/ecs/store/create-store-schema-test.js.map +1 -1
  70. package/dist/ecs/store/public/create-store.js +9 -8
  71. package/dist/ecs/store/public/create-store.js.map +1 -1
  72. package/dist/ecs/store/public/create-store.test.js +5 -0
  73. package/dist/ecs/store/public/create-store.test.js.map +1 -1
  74. package/dist/ecs/store/store.d.ts +46 -13
  75. package/dist/ecs/store/store.js +35 -2
  76. package/dist/ecs/store/store.js.map +1 -1
  77. package/dist/ecs/store/store.test.d.ts +1 -0
  78. package/dist/ecs/store/store.test.js +211 -0
  79. package/dist/ecs/store/store.test.js.map +1 -0
  80. package/dist/ecs/undo-redo-service/create-undo-redo-service.js +1 -1
  81. package/dist/ecs/undo-redo-service/create-undo-redo-service.js.map +1 -1
  82. package/dist/lit/hooks/use-drag-transaction.d.ts +1 -1
  83. package/dist/samples/todo/services/main-service/todo-main-service.d.ts +1 -1
  84. package/dist/samples/todo/services/state-service/create-todo-database.d.ts +3 -3
  85. package/dist/samples/todo/services/state-service/create-todo-database.js +2 -2
  86. package/dist/samples/todo/services/state-service/create-todo-database.js.map +1 -1
  87. package/dist/samples/todo/services/state-service/create-todo-store.d.ts +1 -1
  88. package/dist/samples/todo/services/state-service/transactions/toggle-complete.js +1 -1
  89. package/dist/samples/todo/services/state-service/transactions/toggle-complete.js.map +1 -1
  90. package/dist/tsconfig.tsbuildinfo +1 -1
  91. package/dist/types/types.d.ts +2 -0
  92. package/dist/types/types.js.map +1 -1
  93. package/package.json +1 -1
@@ -41,7 +41,7 @@ const createObservedFixture = () => {
41
41
  });
42
42
  const observed = createObservedDatabase(store);
43
43
  const run = (handler, options) => observed.execute(handler, options);
44
- const transactions = {
44
+ const actions = {
45
45
  createPositionEntity: (args) => {
46
46
  const result = run(db => db.archetypes.Position.insert(args));
47
47
  return result.value;
@@ -78,23 +78,23 @@ const createObservedFixture = () => {
78
78
  return result.value;
79
79
  },
80
80
  };
81
- return { observed, transactions };
81
+ return { observed, transactions: actions };
82
82
  };
83
83
  describe("createObservedDatabase", () => {
84
84
  it("should notify component observers when components change", () => {
85
- const { observed, transactions } = createObservedFixture();
85
+ const { observed, transactions: actions } = createObservedFixture();
86
86
  const positionObserver = vi.fn();
87
87
  const nameObserver = vi.fn();
88
88
  const unsubscribePosition = observed.observe.components.position(positionObserver);
89
89
  const unsubscribeName = observed.observe.components.name(nameObserver);
90
- const entity = transactions.createFullEntity({
90
+ const entity = actions.createFullEntity({
91
91
  position: { x: 1, y: 2, z: 3 },
92
92
  name: "Test",
93
93
  health: { current: 100, max: 100 },
94
94
  });
95
95
  expect(positionObserver).toHaveBeenCalledTimes(1);
96
96
  expect(nameObserver).toHaveBeenCalledTimes(1);
97
- transactions.updateEntity({
97
+ actions.updateEntity({
98
98
  entity,
99
99
  values: { position: { x: 4, y: 5, z: 6 } },
100
100
  });
@@ -102,7 +102,7 @@ describe("createObservedDatabase", () => {
102
102
  expect(nameObserver).toHaveBeenCalledTimes(1);
103
103
  unsubscribePosition();
104
104
  unsubscribeName();
105
- transactions.updateEntity({
105
+ actions.updateEntity({
106
106
  entity,
107
107
  values: { position: { x: 7, y: 8, z: 9 }, name: "Updated" },
108
108
  });
@@ -110,8 +110,8 @@ describe("createObservedDatabase", () => {
110
110
  expect(nameObserver).toHaveBeenCalledTimes(1);
111
111
  });
112
112
  it("should notify entity observers with correct values", () => {
113
- const { observed, transactions } = createObservedFixture();
114
- const entity = transactions.createFullEntity({
113
+ const { observed, transactions: actions } = createObservedFixture();
114
+ const entity = actions.createFullEntity({
115
115
  position: { x: 1, y: 2, z: 3 },
116
116
  name: "Test",
117
117
  health: { current: 100, max: 100 },
@@ -123,7 +123,7 @@ describe("createObservedDatabase", () => {
123
123
  name: "Test",
124
124
  health: { current: 100, max: 100 },
125
125
  }));
126
- transactions.updateEntity({
126
+ actions.updateEntity({
127
127
  entity,
128
128
  values: { name: "Updated", health: { current: 50, max: 100 } },
129
129
  });
@@ -132,15 +132,15 @@ describe("createObservedDatabase", () => {
132
132
  name: "Updated",
133
133
  health: { current: 50, max: 100 },
134
134
  }));
135
- transactions.deleteEntity({ entity });
135
+ actions.deleteEntity({ entity });
136
136
  expect(observer).toHaveBeenCalledWith(null);
137
137
  unsubscribe();
138
138
  });
139
139
  it("should notify transaction observers with full transaction results", () => {
140
- const { observed, transactions } = createObservedFixture();
140
+ const { observed, transactions: actions } = createObservedFixture();
141
141
  const transactionObserver = vi.fn();
142
142
  const unsubscribe = observed.observe.transactions(transactionObserver);
143
- transactions.createFullEntity({
143
+ actions.createFullEntity({
144
144
  position: { x: 1, y: 2, z: 3 },
145
145
  name: "Test",
146
146
  health: { current: 100, max: 100 },
@@ -153,8 +153,8 @@ describe("createObservedDatabase", () => {
153
153
  unsubscribe();
154
154
  });
155
155
  it("should notify archetype observers when entities change archetypes", () => {
156
- const { observed, transactions } = createObservedFixture();
157
- const entity = transactions.createPositionEntity({
156
+ const { observed, transactions: actions } = createObservedFixture();
157
+ const entity = actions.createPositionEntity({
158
158
  position: { x: 1, y: 2, z: 3 },
159
159
  });
160
160
  const archetype = observed.locate(entity)?.archetype;
@@ -162,7 +162,7 @@ describe("createObservedDatabase", () => {
162
162
  const archetypeObserver = vi.fn();
163
163
  const unsubscribe = observed.observe.archetype(archetype.id)(archetypeObserver);
164
164
  expect(archetypeObserver).toHaveBeenCalledTimes(0);
165
- transactions.updateEntity({
165
+ actions.updateEntity({
166
166
  entity,
167
167
  values: { name: "Test" },
168
168
  });
@@ -170,30 +170,30 @@ describe("createObservedDatabase", () => {
170
170
  unsubscribe();
171
171
  });
172
172
  it("should notify resource observers with immediate and update notifications", () => {
173
- const { observed, transactions } = createObservedFixture();
173
+ const { observed, transactions: actions } = createObservedFixture();
174
174
  const timeObserver = vi.fn();
175
175
  const unsubscribe = observed.observe.resources.time(timeObserver);
176
176
  expect(timeObserver).toHaveBeenCalledWith({ delta: 0.016, elapsed: 0 });
177
- transactions.updateTime({ delta: 0.032, elapsed: 1 });
177
+ actions.updateTime({ delta: 0.032, elapsed: 1 });
178
178
  expect(timeObserver).toHaveBeenCalledWith({ delta: 0.032, elapsed: 1 });
179
179
  unsubscribe();
180
180
  });
181
181
  it("should support multiple observers for the same target", () => {
182
- const { observed, transactions } = createObservedFixture();
182
+ const { observed, transactions: actions } = createObservedFixture();
183
183
  const observer1 = vi.fn();
184
184
  const observer2 = vi.fn();
185
185
  const observer3 = vi.fn();
186
186
  const unsubscribe1 = observed.observe.components.position(observer1);
187
187
  const unsubscribe2 = observed.observe.components.position(observer2);
188
188
  const unsubscribe3 = observed.observe.components.position(observer3);
189
- const entity = transactions.createPositionEntity({
189
+ const entity = actions.createPositionEntity({
190
190
  position: { x: 1, y: 2, z: 3 },
191
191
  });
192
192
  expect(observer1).toHaveBeenCalledTimes(1);
193
193
  expect(observer2).toHaveBeenCalledTimes(1);
194
194
  expect(observer3).toHaveBeenCalledTimes(1);
195
195
  unsubscribe2();
196
- transactions.updateEntity({
196
+ actions.updateEntity({
197
197
  entity,
198
198
  values: { position: { x: 4, y: 5, z: 6 } },
199
199
  });
@@ -204,15 +204,15 @@ describe("createObservedDatabase", () => {
204
204
  unsubscribe3();
205
205
  });
206
206
  it("should handle observer cleanup correctly", () => {
207
- const { observed, transactions } = createObservedFixture();
207
+ const { observed, transactions: actions } = createObservedFixture();
208
208
  const observer = vi.fn();
209
209
  const unsubscribe = observed.observe.components.position(observer);
210
- const entity = transactions.createPositionEntity({
210
+ const entity = actions.createPositionEntity({
211
211
  position: { x: 1, y: 2, z: 3 },
212
212
  });
213
213
  expect(observer).toHaveBeenCalledTimes(1);
214
214
  unsubscribe();
215
- transactions.updateEntity({
215
+ actions.updateEntity({
216
216
  entity,
217
217
  values: { position: { x: 4, y: 5, z: 6 } },
218
218
  });
@@ -226,7 +226,7 @@ describe("createObservedDatabase", () => {
226
226
  unsubscribe();
227
227
  });
228
228
  it("should handle complex transaction scenarios with multiple observers", () => {
229
- const { observed, transactions } = createObservedFixture();
229
+ const { observed, transactions: actions } = createObservedFixture();
230
230
  const positionObserver = vi.fn();
231
231
  const healthObserver = vi.fn();
232
232
  const transactionObserver = vi.fn();
@@ -234,7 +234,7 @@ describe("createObservedDatabase", () => {
234
234
  const unsubscribePosition = observed.observe.components.position(positionObserver);
235
235
  const unsubscribeHealth = observed.observe.components.health(healthObserver);
236
236
  const unsubscribeTransaction = observed.observe.transactions(transactionObserver);
237
- const entity = transactions.createPositionHealthEntity({
237
+ const entity = actions.createPositionHealthEntity({
238
238
  position: { x: 1, y: 2, z: 3 },
239
239
  health: { current: 100, max: 100 },
240
240
  });
@@ -243,7 +243,7 @@ describe("createObservedDatabase", () => {
243
243
  expect(healthObserver).toHaveBeenCalledTimes(1);
244
244
  expect(transactionObserver).toHaveBeenCalledTimes(1);
245
245
  expect(entityObserver).toHaveBeenCalledTimes(1);
246
- transactions.updateEntity({
246
+ actions.updateEntity({
247
247
  entity,
248
248
  values: {
249
249
  position: { x: 4, y: 5, z: 6 },
@@ -264,14 +264,14 @@ describe("createObservedDatabase", () => {
264
264
  unsubscribeEntity();
265
265
  });
266
266
  it("should handle rapid successive changes efficiently", () => {
267
- const { observed, transactions } = createObservedFixture();
267
+ const { observed, transactions: actions } = createObservedFixture();
268
268
  const observer = vi.fn();
269
269
  const unsubscribe = observed.observe.components.position(observer);
270
- const entity = transactions.createPositionEntity({
270
+ const entity = actions.createPositionEntity({
271
271
  position: { x: 1, y: 2, z: 3 },
272
272
  });
273
273
  for (let i = 0; i < 5; i++) {
274
- transactions.updateEntity({
274
+ actions.updateEntity({
275
275
  entity,
276
276
  values: { position: { x: i, y: i, z: i } },
277
277
  });
@@ -281,8 +281,8 @@ describe("createObservedDatabase", () => {
281
281
  });
282
282
  describe("entity observation with minArchetype filtering", () => {
283
283
  it("should observe entity when it matches minArchetype exactly", () => {
284
- const { observed, transactions } = createObservedFixture();
285
- const entity = transactions.createPositionEntity({
284
+ const { observed, transactions: actions } = createObservedFixture();
285
+ const entity = actions.createPositionEntity({
286
286
  position: { x: 1, y: 2, z: 3 },
287
287
  });
288
288
  const observer = vi.fn();
@@ -294,8 +294,8 @@ describe("createObservedDatabase", () => {
294
294
  unsubscribe();
295
295
  });
296
296
  it("should observe entity when it has more components than minArchetype", () => {
297
- const { observed, transactions } = createObservedFixture();
298
- const entity = transactions.createPositionHealthEntity({
297
+ const { observed, transactions: actions } = createObservedFixture();
298
+ const entity = actions.createPositionHealthEntity({
299
299
  position: { x: 1, y: 2, z: 3 },
300
300
  health: { current: 100, max: 100 },
301
301
  });
@@ -308,8 +308,8 @@ describe("createObservedDatabase", () => {
308
308
  unsubscribe();
309
309
  });
310
310
  it("should return null when entity has fewer components than minArchetype", () => {
311
- const { observed, transactions } = createObservedFixture();
312
- const entity = transactions.createPositionEntity({
311
+ const { observed, transactions: actions } = createObservedFixture();
312
+ const entity = actions.createPositionEntity({
313
313
  position: { x: 1, y: 2, z: 3 },
314
314
  });
315
315
  const observer = vi.fn();
@@ -318,8 +318,8 @@ describe("createObservedDatabase", () => {
318
318
  unsubscribe();
319
319
  });
320
320
  it("should return null when entity has different components than minArchetype", () => {
321
- const { observed, transactions } = createObservedFixture();
322
- const entity = transactions.createPositionNameEntity({
321
+ const { observed, transactions: actions } = createObservedFixture();
322
+ const entity = actions.createPositionNameEntity({
323
323
  position: { x: 1, y: 2, z: 3 },
324
324
  name: "Test",
325
325
  });
@@ -329,14 +329,14 @@ describe("createObservedDatabase", () => {
329
329
  unsubscribe();
330
330
  });
331
331
  it("should update observation when entity gains required components", () => {
332
- const { observed, transactions } = createObservedFixture();
333
- const entity = transactions.createPositionEntity({
332
+ const { observed, transactions: actions } = createObservedFixture();
333
+ const entity = actions.createPositionEntity({
334
334
  position: { x: 1, y: 2, z: 3 },
335
335
  });
336
336
  const observer = vi.fn();
337
337
  const unsubscribe = observed.observe.entity(entity, observed.archetypes.PositionHealth)(observer);
338
338
  expect(observer).toHaveBeenCalledWith(null);
339
- transactions.updateEntity({
339
+ actions.updateEntity({
340
340
  entity,
341
341
  values: { health: { current: 100, max: 100 } },
342
342
  });
@@ -348,8 +348,8 @@ describe("createObservedDatabase", () => {
348
348
  unsubscribe();
349
349
  });
350
350
  it("should update observation when entity loses required components", () => {
351
- const { observed, transactions } = createObservedFixture();
352
- const entity = transactions.createPositionHealthEntity({
351
+ const { observed, transactions: actions } = createObservedFixture();
352
+ const entity = actions.createPositionHealthEntity({
353
353
  position: { x: 1, y: 2, z: 3 },
354
354
  health: { current: 100, max: 100 },
355
355
  });
@@ -360,7 +360,7 @@ describe("createObservedDatabase", () => {
360
360
  position: { x: 1, y: 2, z: 3 },
361
361
  health: { current: 100, max: 100 },
362
362
  }));
363
- transactions.updateEntity({
363
+ actions.updateEntity({
364
364
  entity,
365
365
  values: { health: undefined },
366
366
  });
@@ -368,8 +368,8 @@ describe("createObservedDatabase", () => {
368
368
  unsubscribe();
369
369
  });
370
370
  it("should handle entity deletion correctly with minArchetype", () => {
371
- const { observed, transactions } = createObservedFixture();
372
- const entity = transactions.createPositionHealthEntity({
371
+ const { observed, transactions: actions } = createObservedFixture();
372
+ const entity = actions.createPositionHealthEntity({
373
373
  position: { x: 1, y: 2, z: 3 },
374
374
  health: { current: 100, max: 100 },
375
375
  });
@@ -379,7 +379,7 @@ describe("createObservedDatabase", () => {
379
379
  id: entity,
380
380
  position: { x: 1, y: 2, z: 3 },
381
381
  }));
382
- transactions.deleteEntity({ entity });
382
+ actions.deleteEntity({ entity });
383
383
  expect(observer).toHaveBeenCalledWith(null);
384
384
  unsubscribe();
385
385
  });
@@ -398,8 +398,8 @@ describe("createObservedDatabase", () => {
398
398
  unsubscribe();
399
399
  });
400
400
  it("should maintain separate observations for different minArchetypes", () => {
401
- const { observed, transactions } = createObservedFixture();
402
- const entity = transactions.createPositionHealthEntity({
401
+ const { observed, transactions: actions } = createObservedFixture();
402
+ const entity = actions.createPositionHealthEntity({
403
403
  position: { x: 1, y: 2, z: 3 },
404
404
  health: { current: 100, max: 100 },
405
405
  });
@@ -422,7 +422,7 @@ describe("createObservedDatabase", () => {
422
422
  position: { x: 1, y: 2, z: 3 },
423
423
  health: { current: 100, max: 100 },
424
424
  }));
425
- transactions.updateEntity({
425
+ actions.updateEntity({
426
426
  entity,
427
427
  values: { health: undefined },
428
428
  });
@@ -557,5 +557,61 @@ describe("createObservedDatabase", () => {
557
557
  unsubscribe();
558
558
  newUnsubscribe();
559
559
  });
560
+ it("should extend with new components, resources, and archetypes", () => {
561
+ const { observed, transactions: actions } = createObservedFixture();
562
+ const velocitySchema = {
563
+ type: "object",
564
+ properties: {
565
+ vx: { type: "number" },
566
+ vy: { type: "number" },
567
+ vz: { type: "number" },
568
+ },
569
+ required: ["vx", "vy", "vz"],
570
+ additionalProperties: false,
571
+ };
572
+ // Create an entity and observe position before extending
573
+ const entity = actions.createPositionEntity({
574
+ position: { x: 1, y: 2, z: 3 },
575
+ });
576
+ const positionObserver = vi.fn();
577
+ const unsubscribePosition = observed.observe.components.position(positionObserver);
578
+ positionObserver.mockClear();
579
+ const extended = observed.extend({
580
+ components: { velocity: velocitySchema },
581
+ resources: {},
582
+ archetypes: {
583
+ MovingEntity: ["position", "velocity"],
584
+ },
585
+ transactions: {},
586
+ });
587
+ expect(extended).toBe(observed);
588
+ // Verify that extending triggers reload notification for observed components
589
+ expect(positionObserver).toHaveBeenCalledTimes(1);
590
+ // Verify that new components can be added to entities
591
+ actions.updateEntity({
592
+ entity,
593
+ values: { velocity: { vx: 0.1, vy: 0.2, vz: 0.3 } },
594
+ });
595
+ // Verify that new components can be read back
596
+ const entityData = observed.read(entity);
597
+ expect(entityData).toEqual({
598
+ id: entity,
599
+ position: { x: 1, y: 2, z: 3 },
600
+ velocity: { vx: 0.1, vy: 0.2, vz: 0.3 },
601
+ });
602
+ // Verify that new archetypes are available
603
+ const movingEntity = observed.archetypes.MovingEntity.insert({
604
+ position: { x: 10, y: 20, z: 30 },
605
+ velocity: { vx: 1, vy: 2, vz: 3 },
606
+ });
607
+ expect(movingEntity).toBeDefined();
608
+ const movingEntityData = observed.read(movingEntity);
609
+ expect(movingEntityData).toEqual({
610
+ id: movingEntity,
611
+ position: { x: 10, y: 20, z: 30 },
612
+ velocity: { vx: 1, vy: 2, vz: 3 },
613
+ });
614
+ unsubscribePosition();
615
+ });
560
616
  });
561
617
  //# sourceMappingURL=create-observed-database.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-observed-database.test.js","sourceRoot":"","sources":["../../../../src/ecs/database/observed/create-observed-database.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-observed-database.test.js","sourceRoot":"","sources":["../../../../src/ecs/database/observed/create-observed-database.test.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ import { TransactionResult } from "../transactional-store/index.js";
9
9
  import { RequiredComponents } from "../../required-components.js";
10
10
  import { Entity } from "../../entity.js";
11
11
  import { EntityReadValues } from "../../store/core/index.js";
12
+ import { Database } from "../database.js";
13
+ import { FromSchemas } from "../../../schema/from-schemas.js";
12
14
  export interface ObservedDatabase<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>> extends ReadonlyStore<C, R, A> {
13
15
  readonly resources: {
14
16
  readonly [K in StringKeyof<R>]: R[K];
@@ -33,4 +35,5 @@ export interface ObservedDatabase<C extends Components, R extends ResourceCompon
33
35
  }) => TransactionResult<C>;
34
36
  readonly toData: () => unknown;
35
37
  readonly fromData: (data: unknown) => void;
38
+ readonly extend: <P extends Database.Plugin<any, any, any, any, any>>(plugin: P) => ObservedDatabase<C & (P extends Database.Plugin<infer XC, infer XR, infer XA, infer XTD, any> ? FromSchemas<XC> : never), R & (P extends Database.Plugin<infer XC, infer XR, infer XA, infer XTD, any> ? FromSchemas<XR> : never), A & (P extends Database.Plugin<infer XC, infer XR, infer XA, infer XTD, any> ? XA : never)>;
36
39
  }