@adobe/data 0.4.2 → 0.4.3

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 (112) hide show
  1. package/dist/ecs/archetype/archetype.d.ts +3 -0
  2. package/dist/ecs/archetype/create-archetype.js +30 -0
  3. package/dist/ecs/archetype/create-archetype.js.map +1 -1
  4. package/dist/ecs/archetype/create-archetype.test.js +48 -0
  5. package/dist/ecs/archetype/create-archetype.test.js.map +1 -1
  6. package/dist/ecs/database/create-database.js +48 -8
  7. package/dist/ecs/database/create-database.js.map +1 -1
  8. package/dist/ecs/database/create-database.test.js +336 -22
  9. package/dist/ecs/database/create-database.test.js.map +1 -1
  10. package/dist/ecs/database/database.d.ts +2 -0
  11. package/dist/ecs/database/observe-select-entities.performance.test.js +0 -3
  12. package/dist/ecs/database/observe-select-entities.performance.test.js.map +1 -1
  13. package/dist/ecs/database/register-database-codec.d.ts +1 -0
  14. package/dist/ecs/database/register-database-codec.js +35 -0
  15. package/dist/ecs/database/register-database-codec.js.map +1 -0
  16. package/dist/ecs/database/register-database-codecs.d.ts +1 -0
  17. package/dist/ecs/database/register-database-codecs.js +35 -0
  18. package/dist/ecs/database/register-database-codecs.js.map +1 -0
  19. package/dist/ecs/database/register-store-codec.d.ts +1 -0
  20. package/dist/ecs/database/register-store-codec.js +35 -0
  21. package/dist/ecs/database/register-store-codec.js.map +1 -0
  22. package/dist/ecs/database/register-typed-buffer-codecs.d.ts +1 -0
  23. package/dist/ecs/database/register-typed-buffer-codecs.js +80 -0
  24. package/dist/ecs/database/register-typed-buffer-codecs.js.map +1 -0
  25. package/dist/ecs/database/transactional-store/apply-operations.d.ts +2 -1
  26. package/dist/ecs/database/transactional-store/apply-operations.js.map +1 -1
  27. package/dist/ecs/database/transactional-store/transactional-store.js +21 -0
  28. package/dist/ecs/database/transactional-store/transactional-store.js.map +1 -1
  29. package/dist/ecs/entity-location-table/create-entity-location-table.d.ts +0 -7
  30. package/dist/ecs/entity-location-table/create-entity-location-table.js +17 -24
  31. package/dist/ecs/entity-location-table/create-entity-location-table.js.map +1 -1
  32. package/dist/ecs/entity-location-table/entity-location-table.d.ts +2 -0
  33. package/dist/ecs/entity-location-table/register-database-codec.d.ts +1 -0
  34. package/dist/ecs/entity-location-table/register-database-codec.js +35 -0
  35. package/dist/ecs/entity-location-table/register-database-codec.js.map +1 -0
  36. package/dist/ecs/entity-location-table/register-entity-location-table-codec.d.ts +1 -0
  37. package/dist/ecs/entity-location-table/register-entity-location-table-codec.js +42 -0
  38. package/dist/ecs/entity-location-table/register-entity-location-table-codec.js.map +1 -0
  39. package/dist/ecs/entity-location-table/register-entity-location-table-codec.test.d.ts +1 -0
  40. package/dist/ecs/entity-location-table/register-entity-location-table-codec.test.js +70 -0
  41. package/dist/ecs/entity-location-table/register-entity-location-table-codec.test.js.map +1 -0
  42. package/dist/ecs/persistence-service/create-persistence-service.d.ts +6 -0
  43. package/dist/ecs/persistence-service/create-persistence-service.js +24 -0
  44. package/dist/ecs/persistence-service/create-persistence-service.js.map +1 -0
  45. package/dist/ecs/persistence-service/persistence-service.d.ts +9 -0
  46. package/dist/ecs/persistence-service/persistence-service.js +23 -0
  47. package/dist/ecs/persistence-service/persistence-service.js.map +1 -0
  48. package/dist/ecs/persistence-service/to-blob-refs.d.ts +2 -0
  49. package/dist/ecs/persistence-service/to-blob-refs.js +3 -0
  50. package/dist/ecs/persistence-service/to-blob-refs.js.map +1 -0
  51. package/dist/ecs/persistence-service/undo-redo-service.d.ts +11 -0
  52. package/dist/ecs/persistence-service/undo-redo-service.js +23 -0
  53. package/dist/ecs/persistence-service/undo-redo-service.js.map +1 -0
  54. package/dist/ecs/store/core/core.d.ts +2 -0
  55. package/dist/ecs/store/core/create-core.js +35 -1
  56. package/dist/ecs/store/core/create-core.js.map +1 -1
  57. package/dist/ecs/store/core/register-core-codec.d.ts +1 -0
  58. package/dist/ecs/store/core/register-core-codec.js +45 -0
  59. package/dist/ecs/store/core/register-core-codec.js.map +1 -0
  60. package/dist/ecs/store/core/register-core-codec.test.d.ts +1 -0
  61. package/dist/ecs/store/core/register-core-codec.test.js +136 -0
  62. package/dist/ecs/store/core/register-core-codec.test.js.map +1 -0
  63. package/dist/ecs/store/create-store.js +24 -13
  64. package/dist/ecs/store/create-store.js.map +1 -1
  65. package/dist/ecs/store/create-store.test.js +239 -0
  66. package/dist/ecs/store/create-store.test.js.map +1 -1
  67. package/dist/ecs/store/register-core-codec.d.ts +1 -0
  68. package/dist/ecs/store/register-core-codec.js +38 -0
  69. package/dist/ecs/store/register-core-codec.js.map +1 -0
  70. package/dist/ecs/store/register-store-codec.d.ts +1 -0
  71. package/dist/ecs/store/register-store-codec.js +38 -0
  72. package/dist/ecs/store/register-store-codec.js.map +1 -0
  73. package/dist/ecs/store/restore-store.d.ts +12 -0
  74. package/dist/ecs/store/restore-store.js +91 -0
  75. package/dist/ecs/store/restore-store.js.map +1 -0
  76. package/dist/ecs/store/store.d.ts +2 -0
  77. package/dist/ecs/undo-redo-service/create-undo-redo-service.js +1 -1
  78. package/dist/ecs/undo-redo-service/create-undo-redo-service.js.map +1 -1
  79. package/dist/functions/serialization/deserialize.d.ts +1 -4
  80. package/dist/functions/serialization/deserialize.js +1 -14
  81. package/dist/functions/serialization/deserialize.js.map +1 -1
  82. package/dist/functions/serialization/index.d.ts +1 -1
  83. package/dist/functions/serialization/index.js +1 -1
  84. package/dist/functions/serialization/index.js.map +1 -1
  85. package/dist/functions/serialization/register-typed-array-codecs.js +12 -2
  86. package/dist/functions/serialization/register-typed-array-codecs.js.map +1 -1
  87. package/dist/functions/serialization/serialization.test.js +1 -2
  88. package/dist/functions/serialization/serialization.test.js.map +1 -1
  89. package/dist/functions/serialization/serialize-to-blobs copy.d.ts +8 -0
  90. package/dist/functions/serialization/serialize-to-blobs copy.js +21 -0
  91. package/dist/functions/serialization/serialize-to-blobs copy.js.map +1 -0
  92. package/dist/functions/serialization/serialize-to-blobs.d.ts +8 -0
  93. package/dist/functions/serialization/serialize-to-blobs.js +21 -0
  94. package/dist/functions/serialization/serialize-to-blobs.js.map +1 -0
  95. package/dist/functions/serialization/serialize-to-blobs.test.d.ts +1 -0
  96. package/dist/functions/serialization/serialize-to-blobs.test.js +102 -0
  97. package/dist/functions/serialization/serialize-to-blobs.test.js.map +1 -0
  98. package/dist/functions/serialization/serialize-to-storage.d.ts +2 -0
  99. package/dist/functions/serialization/serialize-to-storage.js +26 -0
  100. package/dist/functions/serialization/serialize-to-storage.js.map +1 -0
  101. package/dist/functions/serialization/serialize-to-storage.test.d.ts +1 -0
  102. package/dist/functions/serialization/serialize-to-storage.test.js +160 -0
  103. package/dist/functions/serialization/serialize-to-storage.test.js.map +1 -0
  104. package/dist/functions/serialization/serialize.d.ts +4 -0
  105. package/dist/functions/serialization/serialize.js +14 -1
  106. package/dist/functions/serialization/serialize.js.map +1 -1
  107. package/dist/observe/to-async-generator.js +1 -3
  108. package/dist/observe/to-async-generator.js.map +1 -1
  109. package/dist/observe/to-async-generator.test.js +31 -19
  110. package/dist/observe/to-async-generator.test.js.map +1 -1
  111. package/dist/tsconfig.tsbuildinfo +1 -1
  112. package/package.json +1 -1
@@ -390,24 +390,18 @@ describe("createDatabase", () => {
390
390
  store.transactions.createPositionNameEntity(() => entityDataStream());
391
391
  // Wait for all entities to be processed
392
392
  await new Promise(resolve => setTimeout(resolve, 10));
393
- // Verify all entities were created
393
+ // Verify only the final entity was created (each yield replaces the previous)
394
394
  const entities = store.select(["position", "name"]);
395
395
  const streamEntities = entities.filter(entityId => {
396
396
  const values = store.read(entityId);
397
397
  return values?.name?.startsWith("Stream");
398
398
  });
399
- expect(streamEntities.length >= 3);
400
- // Verify each entity has correct data
401
- const entity1 = store.read(streamEntities[0]);
402
- const entity2 = store.read(streamEntities[1]);
403
- const entity3 = store.read(streamEntities[2]);
404
- expect(entity1?.position).toEqual({ x: 1, y: 1, z: 1 });
405
- expect(entity1?.name).toBe("Stream1");
406
- expect(entity2?.position).toEqual({ x: 2, y: 2, z: 2 });
407
- expect(entity2?.name).toBe("Stream2");
408
- expect(entity3?.position).toEqual({ x: 3, y: 3, z: 3 });
409
- expect(entity3?.name).toBe("Stream3");
410
- // Verify observer was notified for each entity
399
+ expect(streamEntities).toHaveLength(1); // Only the final entity remains
400
+ // Verify the final entity has the correct data (from the last yield)
401
+ const finalEntity = store.read(streamEntities[0]);
402
+ expect(finalEntity?.position).toEqual({ x: 3, y: 3, z: 3 });
403
+ expect(finalEntity?.name).toBe("Stream3");
404
+ // Verify observer was notified for each entity creation (even though they were replaced)
411
405
  expect(observer.mock.calls.length >= 3);
412
406
  unsubscribe();
413
407
  });
@@ -533,20 +527,18 @@ describe("createDatabase", () => {
533
527
  store.transactions.createPositionNameEntity(() => conditionalStream());
534
528
  // Wait for processing
535
529
  await new Promise(resolve => setTimeout(resolve, 20));
536
- // Verify only even-numbered entities were created
530
+ // Verify only the final entity was created (each yield replaces the previous)
537
531
  const entities = store.select(["position", "name"]);
538
532
  const evenEntities = entities.filter(entityId => {
539
533
  const values = store.read(entityId);
540
534
  return values?.name?.startsWith("Even");
541
535
  });
542
- expect(evenEntities).toHaveLength(3); // Even 0, 2, 4
543
- // Verify correct data for each entity
544
- const even0 = store.read(evenEntities.find(e => store.read(e)?.name === "Even0"));
545
- const even2 = store.read(evenEntities.find(e => store.read(e)?.name === "Even2"));
546
- const even4 = store.read(evenEntities.find(e => store.read(e)?.name === "Even4"));
547
- expect(even0?.position).toEqual({ x: 0, y: 0, z: 0 });
548
- expect(even2?.position).toEqual({ x: 2, y: 4, z: 6 });
549
- expect(even4?.position).toEqual({ x: 4, y: 8, z: 12 });
536
+ expect(evenEntities).toHaveLength(1); // Only the final entity remains (Even4)
537
+ // Verify the final entity has the correct data (from the last yield)
538
+ const finalEntity = store.read(evenEntities[0]);
539
+ expect(finalEntity?.position).toEqual({ x: 4, y: 8, z: 12 });
540
+ expect(finalEntity?.name).toBe("Even4");
541
+ // Verify observer was notified for each entity creation (even though they were replaced)
550
542
  expect(observer).toHaveBeenCalledTimes(3);
551
543
  unsubscribe();
552
544
  });
@@ -577,6 +569,104 @@ describe("createDatabase", () => {
577
569
  expect(result.changedComponents.has("name")).toBe(true);
578
570
  unsubscribe();
579
571
  });
572
+ it("should handle undoable property correctly in async generator transactions", async () => {
573
+ const store = createTestObservableStore();
574
+ const transactionObserver = vi.fn();
575
+ const unsubscribe = store.observe.transactions(transactionObserver);
576
+ // Create an async generator that sets undoable property in intermediate transactions
577
+ async function* undoableStream() {
578
+ yield { position: { x: 1, y: 1, z: 1 }, name: "Step1" };
579
+ yield { position: { x: 2, y: 2, z: 2 }, name: "Step2" };
580
+ yield { position: { x: 3, y: 3, z: 3 }, name: "Step3" };
581
+ }
582
+ // Create a custom database with undoable transaction
583
+ const baseStore = createStore({ position: positionSchema, name: nameSchema }, { time: { default: { delta: 0.016, elapsed: 0 } } }, {
584
+ PositionName: ["position", "name"],
585
+ });
586
+ const customStore = createDatabase(baseStore, {
587
+ createWithUndoable(t, args) {
588
+ // Set undoable property for this transaction
589
+ t.undoable = { coalesce: { operation: "create", name: args.name } };
590
+ return t.archetypes.PositionName.insert(args);
591
+ }
592
+ });
593
+ // Set up observer on the custom store
594
+ const customTransactionObserver = vi.fn();
595
+ const customUnsubscribe = customStore.observe.transactions(customTransactionObserver);
596
+ // Execute transaction with async generator wrapped in function
597
+ customStore.transactions.createWithUndoable(() => undoableStream());
598
+ // Wait for all entities to be processed
599
+ await new Promise(resolve => setTimeout(resolve, 10));
600
+ // Verify transaction observer was called multiple times (for each transient + final)
601
+ expect(customTransactionObserver).toHaveBeenCalledTimes(4); // 3 transient + 1 final
602
+ // Check the transient transactions - they should have the undoable property
603
+ const transientTransactionCall1 = customTransactionObserver.mock.calls[0]; // First transient
604
+ const transientTransactionCall2 = customTransactionObserver.mock.calls[1]; // Second transient
605
+ const transientTransactionCall3 = customTransactionObserver.mock.calls[2]; // Third transient
606
+ expect(transientTransactionCall1[0].transient).toBe(true);
607
+ expect(transientTransactionCall1[0].undoable).toEqual({ coalesce: { operation: "create", name: "Step1" } });
608
+ expect(transientTransactionCall2[0].transient).toBe(true);
609
+ expect(transientTransactionCall2[0].undoable).toEqual({ coalesce: { operation: "create", name: "Step2" } });
610
+ expect(transientTransactionCall3[0].transient).toBe(true);
611
+ expect(transientTransactionCall3[0].undoable).toEqual({ coalesce: { operation: "create", name: "Step3" } });
612
+ // Check that the final non-transient transaction has the undoable property from the last transient transaction
613
+ const finalTransactionCall = customTransactionObserver.mock.calls[3]; // Last call should be final transaction
614
+ const finalTransactionResult = finalTransactionCall[0];
615
+ expect(finalTransactionResult.transient).toBe(false);
616
+ // The undoable property should be preserved from the last transient transaction
617
+ expect(finalTransactionResult.undoable).toEqual({ coalesce: { operation: "create", name: "Step3" } });
618
+ // POTENTIAL ISSUE: Transient transactions with undoable properties might cause problems
619
+ // in undo-redo systems that expect only non-transient transactions to be undoable.
620
+ // This test documents the current behavior for future consideration.
621
+ unsubscribe();
622
+ customUnsubscribe();
623
+ });
624
+ it("should demonstrate potential issue with undo-redo system and transient transactions", async () => {
625
+ // This test demonstrates a potential issue where transient transactions with undoable properties
626
+ // might be incorrectly handled by undo-redo systems that expect only non-transient transactions
627
+ // to be undoable.
628
+ const baseStore = createStore({ position: positionSchema, name: nameSchema }, { time: { default: { delta: 0.016, elapsed: 0 } } }, {
629
+ PositionName: ["position", "name"],
630
+ });
631
+ const customStore = createDatabase(baseStore, {
632
+ createWithUndoable(t, args) {
633
+ // Set undoable property for this transaction
634
+ t.undoable = { coalesce: { operation: "create", name: args.name } };
635
+ return t.archetypes.PositionName.insert(args);
636
+ }
637
+ });
638
+ const transactionObserver = vi.fn();
639
+ const unsubscribe = customStore.observe.transactions(transactionObserver);
640
+ // Create an async generator that yields multiple values
641
+ async function* undoableStream() {
642
+ yield { position: { x: 1, y: 1, z: 1 }, name: "Step1" };
643
+ yield { position: { x: 2, y: 2, z: 2 }, name: "Step2" };
644
+ yield { position: { x: 3, y: 3, z: 3 }, name: "Step3" };
645
+ }
646
+ // Execute transaction with async generator
647
+ customStore.transactions.createWithUndoable(() => undoableStream());
648
+ // Wait for processing
649
+ await new Promise(resolve => setTimeout(resolve, 10));
650
+ // Collect all transaction results
651
+ const allTransactions = transactionObserver.mock.calls.map(call => call[0]);
652
+ // Verify we have the expected number of transactions
653
+ expect(allTransactions).toHaveLength(4); // 3 transient + 1 final
654
+ // Check that transient transactions have undoable properties
655
+ const transientTransactions = allTransactions.filter(t => t.transient);
656
+ expect(transientTransactions).toHaveLength(3);
657
+ // POTENTIAL ISSUE: Transient transactions with undoable properties
658
+ // This could cause problems in undo-redo systems that:
659
+ // 1. Expect only non-transient transactions to be undoable
660
+ // 2. Might try to undo transient transactions incorrectly
661
+ // 3. Could have issues with coalescing logic that doesn't account for transient transactions
662
+ // The current implementation preserves the undoable property from the last transient transaction
663
+ // in the final non-transient transaction, which might be the intended behavior.
664
+ // However, this could lead to unexpected behavior in undo-redo systems.
665
+ const finalTransaction = allTransactions.find(t => !t.transient);
666
+ expect(finalTransaction).toBeDefined();
667
+ expect(finalTransaction.undoable).toEqual({ coalesce: { operation: "create", name: "Step3" } });
668
+ unsubscribe();
669
+ });
580
670
  });
581
671
  describe("entity observation with minArchetype filtering", () => {
582
672
  it("should observe entity when it matches minArchetype exactly", () => {
@@ -800,4 +890,228 @@ describe("createDatabase", () => {
800
890
  });
801
891
  });
802
892
  });
893
+ describe("toData/fromData functionality", () => {
894
+ it("should serialize and deserialize database state correctly", () => {
895
+ const store = createTestObservableStore();
896
+ // Create some entities and update resources
897
+ const entity1 = store.transactions.createPositionEntity({
898
+ position: { x: 1, y: 2, z: 3 }
899
+ });
900
+ const entity2 = store.transactions.createFullEntity({
901
+ position: { x: 4, y: 5, z: 6 },
902
+ health: { current: 100, max: 100 },
903
+ name: "TestEntity"
904
+ });
905
+ store.transactions.updateTime({ delta: 0.033, elapsed: 1.5 });
906
+ // Serialize the database
907
+ const serializedData = store.toData();
908
+ // Create a new database and restore from serialized data
909
+ const newStore = createTestObservableStore();
910
+ newStore.fromData(serializedData);
911
+ // Verify entities are restored
912
+ const restoredEntities = newStore.select(["position"]);
913
+ expect(restoredEntities).toHaveLength(2);
914
+ // Verify entity data is correct
915
+ const restoredData1 = newStore.read(restoredEntities[0]);
916
+ const restoredData2 = newStore.read(restoredEntities[1]);
917
+ expect(restoredData1).toEqual({
918
+ id: restoredEntities[0],
919
+ position: { x: 1, y: 2, z: 3 }
920
+ });
921
+ expect(restoredData2).toEqual({
922
+ id: restoredEntities[1],
923
+ position: { x: 4, y: 5, z: 6 },
924
+ health: { current: 100, max: 100 },
925
+ name: "TestEntity"
926
+ });
927
+ // Verify resources are restored
928
+ expect(newStore.resources.time).toEqual({ delta: 0.033, elapsed: 1.5 });
929
+ });
930
+ it("should notify all observers when database is restored from serialized data", () => {
931
+ const store = createTestObservableStore();
932
+ // Create initial state
933
+ const entity = store.transactions.createPositionEntity({
934
+ position: { x: 1, y: 2, z: 3 }
935
+ });
936
+ store.transactions.updateTime({ delta: 0.016, elapsed: 0 });
937
+ // Set up observers
938
+ const positionObserver = vi.fn();
939
+ const timeObserver = vi.fn();
940
+ const entityObserver = vi.fn();
941
+ const transactionObserver = vi.fn();
942
+ const unsubscribePosition = store.observe.components.position(positionObserver);
943
+ const unsubscribeTime = store.observe.resources.time(timeObserver);
944
+ const unsubscribeEntity = store.observe.entity(entity)(entityObserver);
945
+ const unsubscribeTransaction = store.observe.transactions(transactionObserver);
946
+ // Clear initial notifications
947
+ positionObserver.mockClear();
948
+ timeObserver.mockClear();
949
+ entityObserver.mockClear();
950
+ transactionObserver.mockClear();
951
+ // Serialize the database
952
+ const serializedData = store.toData();
953
+ // Create a new database with different state
954
+ const newStore = createTestObservableStore();
955
+ const newEntity = newStore.transactions.createFullEntity({
956
+ position: { x: 10, y: 20, z: 30 },
957
+ health: { current: 50, max: 100 },
958
+ name: "NewEntity"
959
+ });
960
+ newStore.transactions.updateTime({ delta: 0.025, elapsed: 2.0 });
961
+ // Set up observers on the new store
962
+ const newPositionObserver = vi.fn();
963
+ const newTimeObserver = vi.fn();
964
+ const newEntityObserver = vi.fn();
965
+ const newTransactionObserver = vi.fn();
966
+ const newUnsubscribePosition = newStore.observe.components.position(newPositionObserver);
967
+ const newUnsubscribeTime = newStore.observe.resources.time(newTimeObserver);
968
+ const newUnsubscribeEntity = newStore.observe.entity(newEntity)(newEntityObserver);
969
+ const newUnsubscribeTransaction = newStore.observe.transactions(newTransactionObserver);
970
+ // Clear initial notifications
971
+ newPositionObserver.mockClear();
972
+ newTimeObserver.mockClear();
973
+ newEntityObserver.mockClear();
974
+ newTransactionObserver.mockClear();
975
+ // Restore from serialized data
976
+ newStore.fromData(serializedData);
977
+ // All observers should be notified because the entire state changed
978
+ expect(newPositionObserver).toHaveBeenCalledTimes(1);
979
+ expect(newTimeObserver).toHaveBeenCalledTimes(1);
980
+ expect(newEntityObserver).toHaveBeenCalledTimes(1);
981
+ expect(newTransactionObserver).toHaveBeenCalledTimes(1);
982
+ // Verify the transaction observer received the correct notification
983
+ const transactionResult = newTransactionObserver.mock.calls[0][0];
984
+ expect(transactionResult.changedComponents.has("position")).toBe(true);
985
+ expect(transactionResult.transient).toBe(false);
986
+ // Verify the entity observer received the correct data
987
+ const entityData = newEntityObserver.mock.calls[0][0];
988
+ expect(entityData).toEqual({
989
+ id: newEntity,
990
+ position: { x: 1, y: 2, z: 3 }
991
+ });
992
+ // Verify the time observer received the correct data
993
+ const timeData = newTimeObserver.mock.calls[0][0];
994
+ expect(timeData).toEqual({ delta: 0.016, elapsed: 0 });
995
+ // Clean up
996
+ unsubscribePosition();
997
+ unsubscribeTime();
998
+ unsubscribeEntity();
999
+ unsubscribeTransaction();
1000
+ newUnsubscribePosition();
1001
+ newUnsubscribeTime();
1002
+ newUnsubscribeEntity();
1003
+ newUnsubscribeTransaction();
1004
+ });
1005
+ it("should notify observers even when no entities exist in restored data", () => {
1006
+ const store = createTestObservableStore();
1007
+ // Set up observers on empty store
1008
+ const positionObserver = vi.fn();
1009
+ const timeObserver = vi.fn();
1010
+ const transactionObserver = vi.fn();
1011
+ const unsubscribePosition = store.observe.components.position(positionObserver);
1012
+ const unsubscribeTime = store.observe.resources.time(timeObserver);
1013
+ const unsubscribeTransaction = store.observe.transactions(transactionObserver);
1014
+ // Clear initial notifications
1015
+ positionObserver.mockClear();
1016
+ timeObserver.mockClear();
1017
+ transactionObserver.mockClear();
1018
+ // Serialize empty database
1019
+ const serializedData = store.toData();
1020
+ // Create a new database with some data
1021
+ const newStore = createTestObservableStore();
1022
+ newStore.transactions.createPositionEntity({
1023
+ position: { x: 1, y: 2, z: 3 }
1024
+ });
1025
+ newStore.transactions.updateTime({ delta: 0.033, elapsed: 1.5 });
1026
+ // Set up observers on the new store
1027
+ const newPositionObserver = vi.fn();
1028
+ const newTimeObserver = vi.fn();
1029
+ const newTransactionObserver = vi.fn();
1030
+ const newUnsubscribePosition = newStore.observe.components.position(newPositionObserver);
1031
+ const newUnsubscribeTime = newStore.observe.resources.time(newTimeObserver);
1032
+ const newUnsubscribeTransaction = newStore.observe.transactions(newTransactionObserver);
1033
+ // Clear initial notifications
1034
+ newPositionObserver.mockClear();
1035
+ newTimeObserver.mockClear();
1036
+ newTransactionObserver.mockClear();
1037
+ // Restore from empty serialized data
1038
+ newStore.fromData(serializedData);
1039
+ // All observers should still be notified
1040
+ expect(newPositionObserver).toHaveBeenCalledTimes(1);
1041
+ expect(newTimeObserver).toHaveBeenCalledTimes(1);
1042
+ expect(newTransactionObserver).toHaveBeenCalledTimes(1);
1043
+ // Verify the store is now empty
1044
+ const entities = newStore.select(["position"]);
1045
+ expect(entities).toHaveLength(0);
1046
+ expect(newStore.resources.time).toEqual({ delta: 0.016, elapsed: 0 });
1047
+ // Clean up
1048
+ unsubscribePosition();
1049
+ unsubscribeTime();
1050
+ unsubscribeTransaction();
1051
+ newUnsubscribePosition();
1052
+ newUnsubscribeTime();
1053
+ newUnsubscribeTransaction();
1054
+ });
1055
+ it("should handle entity observers correctly during restoration", () => {
1056
+ const store = createTestObservableStore();
1057
+ // Create entity and set up observer
1058
+ const entity = store.transactions.createPositionEntity({
1059
+ position: { x: 1, y: 2, z: 3 }
1060
+ });
1061
+ const entityObserver = vi.fn();
1062
+ const unsubscribe = store.observe.entity(entity)(entityObserver);
1063
+ // Clear initial notification
1064
+ entityObserver.mockClear();
1065
+ // Serialize the database
1066
+ const serializedData = store.toData();
1067
+ // Create a new database
1068
+ const newStore = createTestObservableStore();
1069
+ // Set up observer on the new store for a different entity
1070
+ const newEntity = newStore.transactions.createFullEntity({
1071
+ position: { x: 10, y: 20, z: 30 },
1072
+ health: { current: 100, max: 100 },
1073
+ name: "NewEntity"
1074
+ });
1075
+ const newEntityObserver = vi.fn();
1076
+ const newUnsubscribe = newStore.observe.entity(newEntity)(newEntityObserver);
1077
+ // Clear initial notification
1078
+ newEntityObserver.mockClear();
1079
+ // Restore from serialized data
1080
+ newStore.fromData(serializedData);
1081
+ // The entity observer should be notified with the restored entity data
1082
+ expect(newEntityObserver).toHaveBeenCalledTimes(1);
1083
+ const restoredEntityData = newEntityObserver.mock.calls[0][0];
1084
+ expect(restoredEntityData).toEqual({
1085
+ id: newEntity,
1086
+ position: { x: 1, y: 2, z: 3 }
1087
+ });
1088
+ // Clean up
1089
+ unsubscribe();
1090
+ newUnsubscribe();
1091
+ });
1092
+ it("should preserve transaction functionality after restoration", () => {
1093
+ const store = createTestObservableStore();
1094
+ // Create initial state
1095
+ store.transactions.updateTime({ delta: 0.016, elapsed: 0 });
1096
+ // Serialize the database
1097
+ const serializedData = store.toData();
1098
+ // Create a new database and restore
1099
+ const newStore = createTestObservableStore();
1100
+ newStore.fromData(serializedData);
1101
+ // Verify transactions still work
1102
+ const entity = newStore.transactions.createPositionEntity({
1103
+ position: { x: 1, y: 2, z: 3 }
1104
+ });
1105
+ expect(entity).toBeDefined();
1106
+ expect(typeof entity).toBe("number");
1107
+ const entityData = newStore.read(entity);
1108
+ expect(entityData).toEqual({
1109
+ id: entity,
1110
+ position: { x: 1, y: 2, z: 3 }
1111
+ });
1112
+ // Verify resource transactions work
1113
+ newStore.transactions.updateTime({ delta: 0.033, elapsed: 1.5 });
1114
+ expect(newStore.resources.time).toEqual({ delta: 0.033, elapsed: 1.5 });
1115
+ });
1116
+ });
803
1117
  //# sourceMappingURL=create-database.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-database.test.js","sourceRoot":"","sources":["../../../src/ecs/database/create-database.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-database.test.js","sourceRoot":"","sources":["../../../src/ecs/database/create-database.test.ts"],"names":[],"mappings":"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"}
@@ -39,4 +39,6 @@ export interface Database<C extends Components = never, R extends ResourceCompon
39
39
  archetype(id: ArchetypeId): Observe<void>;
40
40
  select<Include extends StringKeyof<C>, T extends Include>(include: readonly Include[] | ReadonlySet<string>, options?: EntitySelectOptions<C, Pick<C & CoreComponents, T>>): Observe<readonly Entity[]>;
41
41
  };
42
+ toData(): unknown;
43
+ fromData(data: unknown): void;
42
44
  }
@@ -127,13 +127,10 @@ describe("observeSelectEntities Performance Tests", () => {
127
127
  });
128
128
  updateTimes.push(updateTime);
129
129
  }
130
- console.log("Update execution times (ms):", updateTimes);
131
130
  const sizeRatio1 = sizes[1] / sizes[0];
132
131
  const sizeRatio2 = sizes[2] / sizes[1];
133
132
  const timeRatio1 = updateTimes[1] / updateTimes[0];
134
133
  const timeRatio2 = updateTimes[2] / updateTimes[1];
135
- console.log(`Size ratio 1: ${sizeRatio1}, Time ratio 1: ${timeRatio1}`);
136
- console.log(`Size ratio 2: ${sizeRatio2}, Time ratio 2: ${timeRatio2}`);
137
134
  if (updateTimes.every(time => time === 0)) {
138
135
  console.log("All update times are 0ms; performance is excellent and O(1) as expected.");
139
136
  return;