@dxos/echo-pipeline 0.3.11-main.ec7a2b3 → 0.3.11-main.ee2b64c

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 (37) hide show
  1. package/dist/lib/browser/{chunk-WDT56L4E.mjs → chunk-IOUMNVGJ.mjs} +266 -79
  2. package/dist/lib/browser/chunk-IOUMNVGJ.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +1 -3
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/browser/testing/index.mjs +5 -5
  6. package/dist/lib/browser/testing/index.mjs.map +3 -3
  7. package/dist/lib/node/{chunk-C6GFWBRK.cjs → chunk-PDU65RAS.cjs} +260 -77
  8. package/dist/lib/node/chunk-PDU65RAS.cjs.map +7 -0
  9. package/dist/lib/node/index.cjs +26 -28
  10. package/dist/lib/node/index.cjs.map +2 -2
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/testing/index.cjs +20 -20
  13. package/dist/lib/node/testing/index.cjs.map +3 -3
  14. package/dist/types/src/automerge/automerge-host.d.ts +27 -2
  15. package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
  16. package/dist/types/src/automerge/index.d.ts +1 -1
  17. package/dist/types/src/automerge/index.d.ts.map +1 -1
  18. package/dist/types/src/space/data-pipeline.d.ts.map +1 -1
  19. package/dist/types/src/space/space-manager.d.ts +2 -2
  20. package/dist/types/src/space/space-manager.d.ts.map +1 -1
  21. package/dist/types/src/space/space-protocol.d.ts.map +1 -1
  22. package/dist/types/src/space/space.d.ts +1 -1
  23. package/dist/types/src/space/space.d.ts.map +1 -1
  24. package/dist/types/src/testing/database-test-rig.d.ts.map +1 -1
  25. package/package.json +33 -33
  26. package/src/automerge/automerge-host.test.ts +353 -35
  27. package/src/automerge/automerge-host.ts +138 -21
  28. package/src/automerge/index.ts +1 -1
  29. package/src/pipeline/pipeline-stress.test.ts +9 -2
  30. package/src/space/data-pipeline.ts +4 -3
  31. package/src/space/space-manager.ts +3 -3
  32. package/src/space/space-protocol.ts +4 -0
  33. package/src/space/space.ts +8 -3
  34. package/src/testing/database-test-rig.ts +4 -1
  35. package/src/testing/test-agent-builder.ts +1 -1
  36. package/dist/lib/browser/chunk-WDT56L4E.mjs.map +0 -7
  37. package/dist/lib/node/chunk-C6GFWBRK.cjs.map +0 -7
@@ -1 +1 @@
1
- {"inputs":{"packages/core/echo/echo-pipeline/src/common/codec.ts":{"bytes":1650,"imports":[{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/common/feeds.ts":{"bytes":2138,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/common/index.ts":{"bytes":553,"imports":[{"path":"packages/core/echo/echo-pipeline/src/common/codec.ts","kind":"import-statement","original":"./codec"},{"path":"packages/core/echo/echo-pipeline/src/common/feeds.ts","kind":"import-statement","original":"./feeds"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/data-service-host.ts":{"bytes":25506,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/service","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/database-host.ts":{"bytes":5700,"imports":[{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/db-host/data-service-host.ts","kind":"import-statement","original":"./data-service-host"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/snapshot-manager.ts":{"bytes":6328,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/blob","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/snapshot-store.ts":{"bytes":6063,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/data-service.ts":{"bytes":10554,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/index.ts":{"bytes":920,"imports":[{"path":"packages/core/echo/echo-pipeline/src/db-host/data-service-host.ts","kind":"import-statement","original":"./data-service-host"},{"path":"packages/core/echo/echo-pipeline/src/db-host/database-host.ts","kind":"import-statement","original":"./database-host"},{"path":"packages/core/echo/echo-pipeline/src/db-host/snapshot-manager.ts","kind":"import-statement","original":"./snapshot-manager"},{"path":"packages/core/echo/echo-pipeline/src/db-host/snapshot-store.ts","kind":"import-statement","original":"./snapshot-store"},{"path":"packages/core/echo/echo-pipeline/src/db-host/data-service.ts","kind":"import-statement","original":"./data-service"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/metadata/metadata-store.ts":{"bytes":33309,"imports":[{"path":"crc-32","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/metadata/index.ts":{"bytes":499,"imports":[{"path":"packages/core/echo/echo-pipeline/src/metadata/metadata-store.ts","kind":"import-statement","original":"./metadata-store"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/pipeline/message-selector.ts":{"bytes":3785,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/pipeline/timeframe-clock.ts":{"bytes":9610,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/pipeline/pipeline.ts":{"bytes":46618,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/feed-store","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/pipeline/message-selector.ts","kind":"import-statement","original":"./message-selector"},{"path":"packages/core/echo/echo-pipeline/src/pipeline/timeframe-clock.ts","kind":"import-statement","original":"./timeframe-clock"},{"path":"packages/core/echo/echo-pipeline/src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/pipeline/index.ts":{"bytes":675,"imports":[{"path":"packages/core/echo/echo-pipeline/src/pipeline/pipeline.ts","kind":"import-statement","original":"./pipeline"},{"path":"packages/core/echo/echo-pipeline/src/pipeline/timeframe-clock.ts","kind":"import-statement","original":"./timeframe-clock"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/auth.ts":{"bytes":10475,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/control-pipeline.ts":{"bytes":27877,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/pipeline/index.ts","kind":"import-statement","original":"../pipeline"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/data-pipeline.ts":{"bytes":51723,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"../db-host"},{"path":"packages/core/echo/echo-pipeline/src/pipeline/index.ts","kind":"import-statement","original":"../pipeline"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/space.ts":{"bytes":27247,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/space/control-pipeline.ts","kind":"import-statement","original":"./control-pipeline"},{"path":"packages/core/echo/echo-pipeline/src/space/data-pipeline.ts","kind":"import-statement","original":"./data-pipeline"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/space-protocol.ts":{"bytes":26297,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-object-sync","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-replicator","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/space/auth.ts","kind":"import-statement","original":"./auth"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/space-manager.ts":{"bytes":13337,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/space/space.ts","kind":"import-statement","original":"./space"},{"path":"packages/core/echo/echo-pipeline/src/space/space-protocol.ts","kind":"import-statement","original":"./space-protocol"},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"../db-host"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/index.ts":{"bytes":859,"imports":[{"path":"packages/core/echo/echo-pipeline/src/space/auth.ts","kind":"import-statement","original":"./auth"},{"path":"packages/core/echo/echo-pipeline/src/space/space.ts","kind":"import-statement","original":"./space"},{"path":"packages/core/echo/echo-pipeline/src/space/space-manager.ts","kind":"import-statement","original":"./space-manager"},{"path":"packages/core/echo/echo-pipeline/src/space/space-protocol.ts","kind":"import-statement","original":"./space-protocol"},{"path":"packages/core/echo/echo-pipeline/src/space/data-pipeline.ts","kind":"import-statement","original":"./data-pipeline"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/automerge/automerge-host.ts":{"bytes":32401,"imports":[{"path":"@dxos/automerge/automerge-repo","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge-repo-storage-indexeddb","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-automerge-replicator","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/automerge/index.ts":{"bytes":500,"imports":[{"path":"packages/core/echo/echo-pipeline/src/automerge/automerge-host.ts","kind":"import-statement","original":"./automerge-host"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/index.ts":{"bytes":903,"imports":[{"path":"packages/core/echo/echo-pipeline/src/common/index.ts","kind":"import-statement","original":"./common"},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"./db-host"},{"path":"packages/core/echo/echo-pipeline/src/metadata/index.ts","kind":"import-statement","original":"./metadata"},{"path":"packages/core/echo/echo-pipeline/src/pipeline/index.ts","kind":"import-statement","original":"./pipeline"},{"path":"packages/core/echo/echo-pipeline/src/space/index.ts","kind":"import-statement","original":"./space"},{"path":"packages/core/echo/echo-pipeline/src/automerge/index.ts","kind":"import-statement","original":"./automerge"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/change-metadata.ts":{"bytes":3594,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/metadata/index.ts","kind":"import-statement","original":"../metadata"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/test-feed-builder.ts":{"bytes":1474,"imports":[{"path":"@dxos/feed-store/testing","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts":{"bytes":29146,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/messaging","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-gossip","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-object-sync","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/testing/test-feed-builder.ts","kind":"import-statement","original":"./test-feed-builder"},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"../db-host"},{"path":"packages/core/echo/echo-pipeline/src/metadata/index.ts","kind":"import-statement","original":"../metadata"},{"path":"packages/core/echo/echo-pipeline/src/space/index.ts","kind":"import-statement","original":"../space"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/util.ts":{"bytes":9897,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/feed-store/testing","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/automerge/index.ts","kind":"import-statement","original":"../automerge"},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"../db-host"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/database-test-rig.ts":{"bytes":30647,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/text-model","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"../db-host"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/index.ts":{"bytes":915,"imports":[{"path":"packages/core/echo/echo-pipeline/src/testing/change-metadata.ts","kind":"import-statement","original":"./change-metadata"},{"path":"packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts","kind":"import-statement","original":"./test-agent-builder"},{"path":"packages/core/echo/echo-pipeline/src/testing/test-feed-builder.ts","kind":"import-statement","original":"./test-feed-builder"},{"path":"packages/core/echo/echo-pipeline/src/testing/util.ts","kind":"import-statement","original":"./util"},{"path":"packages/core/echo/echo-pipeline/src/testing/database-test-rig.ts","kind":"import-statement","original":"./database-test-rig"}],"format":"esm"}},"outputs":{"packages/core/echo/echo-pipeline/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/core/echo/echo-pipeline/dist/lib/node/index.cjs":{"imports":[{"path":"packages/core/echo/echo-pipeline/dist/lib/node/chunk-C6GFWBRK.cjs","kind":"import-statement"}],"exports":["AuthExtension","AuthStatus","AutomergeHost","AutomergeStorageAdapter","DataPipeline","DataServiceHost","DataServiceImpl","DataServiceSubscriptions","DatabaseHost","MOCK_AUTH_PROVIDER","MOCK_AUTH_VERIFIER","MetadataStore","Pipeline","SnapshotManager","SnapshotStore","Space","SpaceManager","SpaceProtocol","SpaceProtocolSession","TimeframeClock","codec","createMappedFeedWriter","mapFeedIndexesToTimeframe","mapTimeframeToFeedIndexes","startAfter","valueEncoding"],"entryPoint":"packages/core/echo/echo-pipeline/src/index.ts","inputs":{"packages/core/echo/echo-pipeline/src/index.ts":{"bytesInOutput":0}},"bytes":1065},"packages/core/echo/echo-pipeline/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":37684},"packages/core/echo/echo-pipeline/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/core/echo/echo-pipeline/dist/lib/node/chunk-C6GFWBRK.cjs","kind":"import-statement"},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/messaging","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-gossip","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-object-sync","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/feed-store/testing","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/feed-store/testing","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/text-model","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["DatabaseTestBuilder","DatabaseTestPeer","MemoryNetworkManagerProvider","TestAgent","TestAgentBuilder","TestFeedBuilder","WebsocketNetworkManagerProvider","changeStorageVersionInMetadata","createMemoryDatabase","createRemoteDatabaseFromDataServiceHost","testLocalDatabase"],"entryPoint":"packages/core/echo/echo-pipeline/src/testing/index.ts","inputs":{"packages/core/echo/echo-pipeline/src/testing/change-metadata.ts":{"bytesInOutput":843},"packages/core/echo/echo-pipeline/src/testing/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts":{"bytesInOutput":6533},"packages/core/echo/echo-pipeline/src/testing/test-feed-builder.ts":{"bytesInOutput":171},"packages/core/echo/echo-pipeline/src/testing/util.ts":{"bytesInOutput":2325},"packages/core/echo/echo-pipeline/src/testing/database-test-rig.ts":{"bytesInOutput":7638}},"bytes":18495},"packages/core/echo/echo-pipeline/dist/lib/node/chunk-C6GFWBRK.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":162019},"packages/core/echo/echo-pipeline/dist/lib/node/chunk-C6GFWBRK.cjs":{"imports":[{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/service","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/blob","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"crc-32","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/feed-store","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-object-sync","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-replicator","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge-repo","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge-repo-storage-indexeddb","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-automerge-replicator","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["AuthExtension","AuthStatus","AutomergeHost","AutomergeStorageAdapter","DataPipeline","DataServiceHost","DataServiceImpl","DataServiceSubscriptions","DatabaseHost","MOCK_AUTH_PROVIDER","MOCK_AUTH_VERIFIER","MetadataStore","Pipeline","SnapshotManager","SnapshotStore","Space","SpaceManager","SpaceProtocol","SpaceProtocolSession","TimeframeClock","codec","createMappedFeedWriter","mapFeedIndexesToTimeframe","mapTimeframeToFeedIndexes","startAfter","valueEncoding"],"inputs":{"packages/core/echo/echo-pipeline/src/common/codec.ts":{"bytesInOutput":211},"packages/core/echo/echo-pipeline/src/common/feeds.ts":{"bytesInOutput":548},"packages/core/echo/echo-pipeline/src/common/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/db-host/data-service-host.ts":{"bytesInOutput":6395},"packages/core/echo/echo-pipeline/src/db-host/database-host.ts":{"bytesInOutput":871},"packages/core/echo/echo-pipeline/src/db-host/snapshot-manager.ts":{"bytesInOutput":1298},"packages/core/echo/echo-pipeline/src/db-host/snapshot-store.ts":{"bytesInOutput":1292},"packages/core/echo/echo-pipeline/src/db-host/data-service.ts":{"bytesInOutput":2942},"packages/core/echo/echo-pipeline/src/db-host/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/metadata/metadata-store.ts":{"bytesInOutput":9455},"packages/core/echo/echo-pipeline/src/metadata/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/pipeline/timeframe-clock.ts":{"bytesInOutput":2919},"packages/core/echo/echo-pipeline/src/pipeline/pipeline.ts":{"bytesInOutput":12601},"packages/core/echo/echo-pipeline/src/pipeline/message-selector.ts":{"bytesInOutput":769},"packages/core/echo/echo-pipeline/src/pipeline/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/space/auth.ts":{"bytesInOutput":3001},"packages/core/echo/echo-pipeline/src/space/data-pipeline.ts":{"bytesInOutput":13888},"packages/core/echo/echo-pipeline/src/space/space.ts":{"bytesInOutput":7410},"packages/core/echo/echo-pipeline/src/space/control-pipeline.ts":{"bytesInOutput":8084},"packages/core/echo/echo-pipeline/src/space/space-protocol.ts":{"bytesInOutput":6692},"packages/core/echo/echo-pipeline/src/space/space-manager.ts":{"bytesInOutput":3442},"packages/core/echo/echo-pipeline/src/space/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/automerge/automerge-host.ts":{"bytesInOutput":7568},"packages/core/echo/echo-pipeline/src/automerge/index.ts":{"bytesInOutput":0}},"bytes":91209}}}
1
+ {"inputs":{"packages/core/echo/echo-pipeline/src/common/codec.ts":{"bytes":1650,"imports":[{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/common/feeds.ts":{"bytes":2138,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/common/index.ts":{"bytes":553,"imports":[{"path":"packages/core/echo/echo-pipeline/src/common/codec.ts","kind":"import-statement","original":"./codec"},{"path":"packages/core/echo/echo-pipeline/src/common/feeds.ts","kind":"import-statement","original":"./feeds"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/data-service-host.ts":{"bytes":25586,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/service","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/database-host.ts":{"bytes":5732,"imports":[{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/db-host/data-service-host.ts","kind":"import-statement","original":"./data-service-host"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/snapshot-manager.ts":{"bytes":6376,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/blob","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/snapshot-store.ts":{"bytes":6075,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/data-service.ts":{"bytes":10586,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/db-host/index.ts":{"bytes":920,"imports":[{"path":"packages/core/echo/echo-pipeline/src/db-host/data-service-host.ts","kind":"import-statement","original":"./data-service-host"},{"path":"packages/core/echo/echo-pipeline/src/db-host/database-host.ts","kind":"import-statement","original":"./database-host"},{"path":"packages/core/echo/echo-pipeline/src/db-host/snapshot-manager.ts","kind":"import-statement","original":"./snapshot-manager"},{"path":"packages/core/echo/echo-pipeline/src/db-host/snapshot-store.ts","kind":"import-statement","original":"./snapshot-store"},{"path":"packages/core/echo/echo-pipeline/src/db-host/data-service.ts","kind":"import-statement","original":"./data-service"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/metadata/metadata-store.ts":{"bytes":33309,"imports":[{"path":"crc-32","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/metadata/index.ts":{"bytes":499,"imports":[{"path":"packages/core/echo/echo-pipeline/src/metadata/metadata-store.ts","kind":"import-statement","original":"./metadata-store"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/pipeline/message-selector.ts":{"bytes":3785,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/pipeline/timeframe-clock.ts":{"bytes":9606,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/pipeline/pipeline.ts":{"bytes":46626,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/feed-store","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/pipeline/message-selector.ts","kind":"import-statement","original":"./message-selector"},{"path":"packages/core/echo/echo-pipeline/src/pipeline/timeframe-clock.ts","kind":"import-statement","original":"./timeframe-clock"},{"path":"packages/core/echo/echo-pipeline/src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/pipeline/index.ts":{"bytes":675,"imports":[{"path":"packages/core/echo/echo-pipeline/src/pipeline/pipeline.ts","kind":"import-statement","original":"./pipeline"},{"path":"packages/core/echo/echo-pipeline/src/pipeline/timeframe-clock.ts","kind":"import-statement","original":"./timeframe-clock"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/auth.ts":{"bytes":10491,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/control-pipeline.ts":{"bytes":27854,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/pipeline/index.ts","kind":"import-statement","original":"../pipeline"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/data-pipeline.ts":{"bytes":51752,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"../db-host"},{"path":"packages/core/echo/echo-pipeline/src/pipeline/index.ts","kind":"import-statement","original":"../pipeline"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/space.ts":{"bytes":27662,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/space/control-pipeline.ts","kind":"import-statement","original":"./control-pipeline"},{"path":"packages/core/echo/echo-pipeline/src/space/data-pipeline.ts","kind":"import-statement","original":"./data-pipeline"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/space-protocol.ts":{"bytes":26463,"imports":[{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-object-sync","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-replicator","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/space/auth.ts","kind":"import-statement","original":"./auth"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/space-manager.ts":{"bytes":13339,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/space/space.ts","kind":"import-statement","original":"./space"},{"path":"packages/core/echo/echo-pipeline/src/space/space-protocol.ts","kind":"import-statement","original":"./space-protocol"},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"../db-host"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/space/index.ts":{"bytes":859,"imports":[{"path":"packages/core/echo/echo-pipeline/src/space/auth.ts","kind":"import-statement","original":"./auth"},{"path":"packages/core/echo/echo-pipeline/src/space/space.ts","kind":"import-statement","original":"./space"},{"path":"packages/core/echo/echo-pipeline/src/space/space-manager.ts","kind":"import-statement","original":"./space-manager"},{"path":"packages/core/echo/echo-pipeline/src/space/space-protocol.ts","kind":"import-statement","original":"./space-protocol"},{"path":"packages/core/echo/echo-pipeline/src/space/data-pipeline.ts","kind":"import-statement","original":"./data-pipeline"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/automerge/automerge-host.ts":{"bytes":49237,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge-repo","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge-repo-storage-indexeddb","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-automerge-replicator","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/echo/echo-pipeline/src/automerge/index.ts":{"bytes":572,"imports":[{"path":"packages/core/echo/echo-pipeline/src/automerge/automerge-host.ts","kind":"import-statement","original":"./automerge-host"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/index.ts":{"bytes":903,"imports":[{"path":"packages/core/echo/echo-pipeline/src/common/index.ts","kind":"import-statement","original":"./common"},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"./db-host"},{"path":"packages/core/echo/echo-pipeline/src/metadata/index.ts","kind":"import-statement","original":"./metadata"},{"path":"packages/core/echo/echo-pipeline/src/pipeline/index.ts","kind":"import-statement","original":"./pipeline"},{"path":"packages/core/echo/echo-pipeline/src/space/index.ts","kind":"import-statement","original":"./space"},{"path":"packages/core/echo/echo-pipeline/src/automerge/index.ts","kind":"import-statement","original":"./automerge"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/change-metadata.ts":{"bytes":3594,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/metadata/index.ts","kind":"import-statement","original":"../metadata"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/test-feed-builder.ts":{"bytes":1474,"imports":[{"path":"@dxos/feed-store/testing","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts":{"bytes":29221,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/messaging","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-gossip","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-object-sync","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/testing/test-feed-builder.ts","kind":"import-statement","original":"./test-feed-builder"},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"../db-host"},{"path":"packages/core/echo/echo-pipeline/src/metadata/index.ts","kind":"import-statement","original":"../metadata"},{"path":"packages/core/echo/echo-pipeline/src/space/index.ts","kind":"import-statement","original":"../space"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/util.ts":{"bytes":9897,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/feed-store/testing","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/automerge/index.ts","kind":"import-statement","original":"../automerge"},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"../db-host"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/database-test-rig.ts":{"bytes":30699,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/text-model","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-pipeline/src/db-host/index.ts","kind":"import-statement","original":"../db-host"}],"format":"esm"},"packages/core/echo/echo-pipeline/src/testing/index.ts":{"bytes":915,"imports":[{"path":"packages/core/echo/echo-pipeline/src/testing/change-metadata.ts","kind":"import-statement","original":"./change-metadata"},{"path":"packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts","kind":"import-statement","original":"./test-agent-builder"},{"path":"packages/core/echo/echo-pipeline/src/testing/test-feed-builder.ts","kind":"import-statement","original":"./test-feed-builder"},{"path":"packages/core/echo/echo-pipeline/src/testing/util.ts","kind":"import-statement","original":"./util"},{"path":"packages/core/echo/echo-pipeline/src/testing/database-test-rig.ts","kind":"import-statement","original":"./database-test-rig"}],"format":"esm"}},"outputs":{"packages/core/echo/echo-pipeline/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/core/echo/echo-pipeline/dist/lib/node/index.cjs":{"imports":[{"path":"packages/core/echo/echo-pipeline/dist/lib/node/chunk-PDU65RAS.cjs","kind":"import-statement"}],"exports":["AuthExtension","AuthStatus","AutomergeHost","DataPipeline","DataServiceHost","DataServiceImpl","DataServiceSubscriptions","DatabaseHost","MOCK_AUTH_PROVIDER","MOCK_AUTH_VERIFIER","MetadataStore","Pipeline","SnapshotManager","SnapshotStore","Space","SpaceManager","SpaceProtocol","SpaceProtocolSession","TimeframeClock","codec","createMappedFeedWriter","mapFeedIndexesToTimeframe","mapTimeframeToFeedIndexes","startAfter","valueEncoding"],"entryPoint":"packages/core/echo/echo-pipeline/src/index.ts","inputs":{"packages/core/echo/echo-pipeline/src/index.ts":{"bytesInOutput":0}},"bytes":1011},"packages/core/echo/echo-pipeline/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":37734},"packages/core/echo/echo-pipeline/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/core/echo/echo-pipeline/dist/lib/node/chunk-PDU65RAS.cjs","kind":"import-statement"},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/messaging","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-gossip","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-object-sync","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/feed-store/testing","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/feed-store/testing","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/document-model","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/model-factory","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/text-model","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["DatabaseTestBuilder","DatabaseTestPeer","MemoryNetworkManagerProvider","TestAgent","TestAgentBuilder","TestFeedBuilder","WebsocketNetworkManagerProvider","changeStorageVersionInMetadata","createMemoryDatabase","createRemoteDatabaseFromDataServiceHost","testLocalDatabase"],"entryPoint":"packages/core/echo/echo-pipeline/src/testing/index.ts","inputs":{"packages/core/echo/echo-pipeline/src/testing/change-metadata.ts":{"bytesInOutput":843},"packages/core/echo/echo-pipeline/src/testing/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts":{"bytesInOutput":6536},"packages/core/echo/echo-pipeline/src/testing/test-feed-builder.ts":{"bytesInOutput":171},"packages/core/echo/echo-pipeline/src/testing/util.ts":{"bytesInOutput":2325},"packages/core/echo/echo-pipeline/src/testing/database-test-rig.ts":{"bytesInOutput":7638}},"bytes":18498},"packages/core/echo/echo-pipeline/dist/lib/node/chunk-PDU65RAS.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":169743},"packages/core/echo/echo-pipeline/dist/lib/node/chunk-PDU65RAS.cjs":{"imports":[{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/service","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/blob","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"crc-32","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/feed-store","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/credentials","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/halo/credentials","kind":"import-statement","external":true},{"path":"@dxos/timeframe","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/teleport","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-object-sync","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-replicator","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge-repo","kind":"import-statement","external":true},{"path":"@dxos/automerge/automerge-repo-storage-indexeddb","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/teleport-extension-automerge-replicator","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["AuthExtension","AuthStatus","AutomergeHost","DataPipeline","DataServiceHost","DataServiceImpl","DataServiceSubscriptions","DatabaseHost","MOCK_AUTH_PROVIDER","MOCK_AUTH_VERIFIER","MetadataStore","Pipeline","SnapshotManager","SnapshotStore","Space","SpaceManager","SpaceProtocol","SpaceProtocolSession","TimeframeClock","codec","createMappedFeedWriter","mapFeedIndexesToTimeframe","mapTimeframeToFeedIndexes","startAfter","valueEncoding"],"inputs":{"packages/core/echo/echo-pipeline/src/common/codec.ts":{"bytesInOutput":211},"packages/core/echo/echo-pipeline/src/common/feeds.ts":{"bytesInOutput":548},"packages/core/echo/echo-pipeline/src/common/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/db-host/data-service-host.ts":{"bytesInOutput":6395},"packages/core/echo/echo-pipeline/src/db-host/database-host.ts":{"bytesInOutput":871},"packages/core/echo/echo-pipeline/src/db-host/snapshot-manager.ts":{"bytesInOutput":1298},"packages/core/echo/echo-pipeline/src/db-host/snapshot-store.ts":{"bytesInOutput":1292},"packages/core/echo/echo-pipeline/src/db-host/data-service.ts":{"bytesInOutput":2942},"packages/core/echo/echo-pipeline/src/db-host/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/metadata/metadata-store.ts":{"bytesInOutput":9455},"packages/core/echo/echo-pipeline/src/metadata/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/pipeline/timeframe-clock.ts":{"bytesInOutput":2919},"packages/core/echo/echo-pipeline/src/pipeline/pipeline.ts":{"bytesInOutput":12601},"packages/core/echo/echo-pipeline/src/pipeline/message-selector.ts":{"bytesInOutput":769},"packages/core/echo/echo-pipeline/src/pipeline/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/space/auth.ts":{"bytesInOutput":3001},"packages/core/echo/echo-pipeline/src/space/data-pipeline.ts":{"bytesInOutput":13887},"packages/core/echo/echo-pipeline/src/space/space.ts":{"bytesInOutput":7639},"packages/core/echo/echo-pipeline/src/space/control-pipeline.ts":{"bytesInOutput":8067},"packages/core/echo/echo-pipeline/src/space/space-protocol.ts":{"bytesInOutput":6885},"packages/core/echo/echo-pipeline/src/space/space-manager.ts":{"bytesInOutput":3434},"packages/core/echo/echo-pipeline/src/space/index.ts":{"bytesInOutput":0},"packages/core/echo/echo-pipeline/src/automerge/automerge-host.ts":{"bytesInOutput":12813},"packages/core/echo/echo-pipeline/src/automerge/index.ts":{"bytesInOutput":0}},"bytes":96823}}}
@@ -31,7 +31,7 @@ __export(testing_exports, {
31
31
  testLocalDatabase: () => testLocalDatabase
32
32
  });
33
33
  module.exports = __toCommonJS(testing_exports);
34
- var import_chunk_C6GFWBRK = require("../chunk-C6GFWBRK.cjs");
34
+ var import_chunk_PDU65RAS = require("../chunk-PDU65RAS.cjs");
35
35
  var import_log = require("@dxos/log");
36
36
  var import_protocols = require("@dxos/protocols");
37
37
  var import_context = require("@dxos/context");
@@ -74,7 +74,7 @@ var changeStorageVersionInMetadata = async (storage, version) => {
74
74
  S: void 0,
75
75
  C: (f, a) => f(...a)
76
76
  });
77
- const metadata = new import_chunk_C6GFWBRK.MetadataStore(storage.createDirectory("metadata"));
77
+ const metadata = new import_chunk_PDU65RAS.MetadataStore(storage.createDirectory("metadata"));
78
78
  await metadata.load();
79
79
  const echoMetadata = metadata.metadata;
80
80
  echoMetadata.version = version;
@@ -85,7 +85,7 @@ var changeStorageVersionInMetadata = async (storage, version) => {
85
85
  var TestFeedBuilder = class extends import_testing.TestBuilder {
86
86
  constructor() {
87
87
  super({
88
- valueEncoding: import_chunk_C6GFWBRK.valueEncoding
88
+ valueEncoding: import_chunk_PDU65RAS.valueEncoding
89
89
  });
90
90
  }
91
91
  };
@@ -129,10 +129,10 @@ var TestAgentBuilder = class {
129
129
  };
130
130
  var TestAgent = class {
131
131
  get metadataStore() {
132
- return this._metadataStore ??= new import_chunk_C6GFWBRK.MetadataStore(this.storage.createDirectory("metadata"));
132
+ return this._metadataStore ??= new import_chunk_PDU65RAS.MetadataStore(this.storage.createDirectory("metadata"));
133
133
  }
134
134
  get snapshotStore() {
135
- return this._snapshotStore ??= new import_chunk_C6GFWBRK.SnapshotStore(this.storage.createDirectory("snapshots"));
135
+ return this._snapshotStore ??= new import_chunk_PDU65RAS.SnapshotStore(this.storage.createDirectory("snapshots"));
136
136
  }
137
137
  get blobStore() {
138
138
  return this._blobStore ??= new import_teleport_extension_object_sync.BlobStore(this.storage.createDirectory("blobs"));
@@ -160,7 +160,7 @@ var TestAgent = class {
160
160
  return this._spaces.get(spaceKey);
161
161
  }
162
162
  get spaceManager() {
163
- return this._spaceManager ??= new import_chunk_C6GFWBRK.SpaceManager({
163
+ return this._spaceManager ??= new import_chunk_PDU65RAS.SpaceManager({
164
164
  feedStore: this.feedStore,
165
165
  networkManager: this._networkManagerProvider(),
166
166
  modelFactory: this.modelFactory,
@@ -198,11 +198,11 @@ var TestAgent = class {
198
198
  metadata,
199
199
  swarmIdentity: {
200
200
  peerKey: this.deviceKey,
201
- credentialProvider: import_chunk_C6GFWBRK.MOCK_AUTH_PROVIDER,
202
- credentialAuthenticator: import_chunk_C6GFWBRK.MOCK_AUTH_VERIFIER
201
+ credentialProvider: import_chunk_PDU65RAS.MOCK_AUTH_PROVIDER,
202
+ credentialAuthenticator: import_chunk_PDU65RAS.MOCK_AUTH_VERIFIER
203
203
  },
204
204
  memberKey: identityKey,
205
- onNetworkConnection: (session) => {
205
+ onAuthorizedConnection: (session) => {
206
206
  session.addExtension("dxos.mesh.teleport.gossip", this.createGossip().createExtension({
207
207
  remotePeerId: session.remotePeerId
208
208
  }));
@@ -215,12 +215,12 @@ var TestAgent = class {
215
215
  return space;
216
216
  }
217
217
  createSpaceProtocol(topic, gossip) {
218
- return new import_chunk_C6GFWBRK.SpaceProtocol({
218
+ return new import_chunk_PDU65RAS.SpaceProtocol({
219
219
  topic,
220
220
  swarmIdentity: {
221
221
  peerKey: this.deviceKey,
222
- credentialProvider: import_chunk_C6GFWBRK.MOCK_AUTH_PROVIDER,
223
- credentialAuthenticator: import_chunk_C6GFWBRK.MOCK_AUTH_VERIFIER
222
+ credentialProvider: import_chunk_PDU65RAS.MOCK_AUTH_PROVIDER,
223
+ credentialAuthenticator: import_chunk_PDU65RAS.MOCK_AUTH_VERIFIER
224
224
  },
225
225
  networkManager: this._networkManagerProvider(),
226
226
  blobStore: this.blobStore,
@@ -262,7 +262,7 @@ var TestAgent = class {
262
262
  };
263
263
  var createMemoryDatabase = async (modelFactory) => {
264
264
  const feed = new import_testing2.MockFeedWriter();
265
- const backend = new import_chunk_C6GFWBRK.DatabaseHost(feed, async () => {
265
+ const backend = new import_chunk_PDU65RAS.DatabaseHost(feed, async () => {
266
266
  });
267
267
  feed.written.on(([data, meta]) => backend.echoProcessor({
268
268
  batch: data.batch,
@@ -285,11 +285,11 @@ var createMemoryDatabase = async (modelFactory) => {
285
285
  };
286
286
  };
287
287
  var createRemoteDatabaseFromDataServiceHost = async (modelFactory, dataServiceHost) => {
288
- const dataServiceSubscriptions = new import_chunk_C6GFWBRK.DataServiceSubscriptions();
289
- const automergeHost = new import_chunk_C6GFWBRK.AutomergeHost((0, import_random_access_storage2.createStorage)({
288
+ const dataServiceSubscriptions = new import_chunk_PDU65RAS.DataServiceSubscriptions();
289
+ const automergeHost = new import_chunk_PDU65RAS.AutomergeHost((0, import_random_access_storage2.createStorage)({
290
290
  type: import_random_access_storage2.StorageType.RAM
291
291
  }).createDirectory());
292
- const dataService = new import_chunk_C6GFWBRK.DataServiceImpl(dataServiceSubscriptions, automergeHost);
292
+ const dataService = new import_chunk_PDU65RAS.DataServiceImpl(dataServiceSubscriptions, automergeHost);
293
293
  const spaceKey = import_keys2.PublicKey.random();
294
294
  await dataServiceSubscriptions.registerSpace(spaceKey, dataServiceHost);
295
295
  const itemManager = new import_echo_db.ItemManager(modelFactory);
@@ -348,7 +348,7 @@ var DatabaseTestPeer = class {
348
348
  }
349
349
  async open() {
350
350
  this.hostItems = new import_echo_db2.ItemManager(this.modelFactory);
351
- this.host = new import_chunk_C6GFWBRK.DatabaseHost({
351
+ this.host = new import_chunk_PDU65RAS.DatabaseHost({
352
352
  write: async (message, { afterWrite }) => {
353
353
  const seq = this.feedMessages.push({
354
354
  timeframe: this.timeframe,
@@ -513,7 +513,7 @@ var DatabaseTestPeer = class {
513
513
  }
514
514
  (0, import_invariant.invariant)(item.modelMeta, void 0, {
515
515
  F: __dxlog_file2,
516
- L: 262,
516
+ L: 265,
517
517
  S: this,
518
518
  A: [
519
519
  "item.modelMeta",
@@ -523,7 +523,7 @@ var DatabaseTestPeer = class {
523
523
  const ModelConstructor = this.modelFactory.getModel(item.modelMeta.type)?.constructor;
524
524
  (0, import_invariant.invariant)(ModelConstructor, void 0, {
525
525
  F: __dxlog_file2,
526
- L: 264,
526
+ L: 267,
527
527
  S: this,
528
528
  A: [
529
529
  "ModelConstructor",
@@ -533,7 +533,7 @@ var DatabaseTestPeer = class {
533
533
  const model = new ModelConstructor(item.modelMeta, item.id, () => item.state, async (mutation) => {
534
534
  (0, import_invariant.invariant)(item.modelMeta, void 0, {
535
535
  F: __dxlog_file2,
536
- L: 271,
536
+ L: 274,
537
537
  S: this,
538
538
  A: [
539
539
  "item.modelMeta",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/testing/change-metadata.ts", "../../../../src/testing/test-agent-builder.ts", "../../../../src/testing/test-feed-builder.ts", "../../../../src/testing/util.ts", "../../../../src/testing/database-test-rig.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { log } from '@dxos/log';\nimport { schema } from '@dxos/protocols';\nimport type { Storage } from '@dxos/random-access-storage';\n\nimport { MetadataStore } from '../metadata';\n\nconst EchoMetadata = schema.getCodecForType('dxos.echo.metadata.EchoMetadata');\n\n/**\n * This function will change the storage version in the metadata.\n * This will break your storage and make it unusable.\n * Use this only for testing purposes.\n */\nexport const changeStorageVersionInMetadata = async (storage: Storage, version: number) => {\n log.info('Changing storage version in metadata. USE ONLY FOR TESTING.');\n const metadata = new MetadataStore(storage.createDirectory('metadata'));\n await metadata.load();\n const echoMetadata = metadata.metadata;\n echoMetadata.version = version;\n const file = metadata._directory.getOrCreateFile('EchoMetadata');\n await metadata._writeFile(file, EchoMetadata, echoMetadata);\n await metadata._directory.flush();\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Context } from '@dxos/context';\nimport { CredentialGenerator } from '@dxos/credentials';\nimport { DocumentModel } from '@dxos/document-model';\nimport { type FeedStore } from '@dxos/feed-store';\nimport { type Keyring } from '@dxos/keyring';\nimport { PublicKey } from '@dxos/keys';\nimport { MemorySignalManager, MemorySignalManagerContext, WebsocketSignalManager } from '@dxos/messaging';\nimport { ModelFactory } from '@dxos/model-factory';\nimport { createSimplePeerTransportFactory, MemoryTransportFactory, NetworkManager } from '@dxos/network-manager';\nimport type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { type SpaceMetadata } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { AdmittedFeed } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { createStorage, type Storage, StorageType } from '@dxos/random-access-storage';\nimport { Gossip, Presence } from '@dxos/teleport-extension-gossip';\nimport { BlobStore } from '@dxos/teleport-extension-object-sync';\nimport { ComplexMap } from '@dxos/util';\n\nimport { TestFeedBuilder } from './test-feed-builder';\nimport { SnapshotStore } from '../db-host';\nimport { MetadataStore } from '../metadata';\nimport { MOCK_AUTH_PROVIDER, MOCK_AUTH_VERIFIER, type Space, SpaceManager, SpaceProtocol } from '../space';\n\nexport type NetworkManagerProvider = () => NetworkManager;\n\nexport const MemoryNetworkManagerProvider =\n (signalContext: MemorySignalManagerContext): NetworkManagerProvider =>\n () =>\n new NetworkManager({\n signalManager: new MemorySignalManager(signalContext),\n transportFactory: MemoryTransportFactory,\n });\n\nexport const WebsocketNetworkManagerProvider =\n (signalUrl: string): NetworkManagerProvider =>\n () =>\n new NetworkManager({\n signalManager: new WebsocketSignalManager([{ server: signalUrl }]),\n transportFactory: createSimplePeerTransportFactory(),\n });\n\nexport type TestAgentBuilderOptions = {\n storage?: Storage;\n networkManagerProvider?: NetworkManagerProvider;\n};\n\n/**\n * Factory for test agents.\n */\nexport class TestAgentBuilder {\n private readonly _agents = new ComplexMap<PublicKey, TestAgent>(PublicKey.hash);\n private readonly _storage: Storage;\n private readonly _networkManagerProvider: NetworkManagerProvider;\n\n constructor({ storage, networkManagerProvider }: TestAgentBuilderOptions = {}) {\n this._storage = storage ?? createStorage({ type: StorageType.RAM });\n this._networkManagerProvider =\n networkManagerProvider ?? MemoryNetworkManagerProvider(new MemorySignalManagerContext());\n }\n\n async close() {\n return Promise.all(this.agents.map((agent) => agent.close()));\n }\n\n get agents() {\n return Array.from(this._agents.values());\n }\n\n getAgent(deviceKey: PublicKey) {\n return this._agents.get(deviceKey);\n }\n\n async createPeer(): Promise<TestAgent> {\n // prettier-ignore\n const feedBuilder = new TestFeedBuilder()\n .setStorage(this._storage, `agent-${this._agents.size}`);\n\n const identityKey = await feedBuilder.keyring.createKey();\n const deviceKey = await feedBuilder.keyring.createKey();\n\n const agent = new TestAgent(this._networkManagerProvider, feedBuilder, identityKey, deviceKey);\n this._agents.set(deviceKey, agent);\n return agent;\n }\n}\n\n/**\n * Test agent that enables the creation and replication of multiple spaces.\n */\nexport class TestAgent {\n private readonly _spaces = new ComplexMap<PublicKey, Space>(PublicKey.hash);\n\n public readonly storage: Storage;\n public readonly keyring: Keyring;\n public readonly feedStore: FeedStore<FeedMessage>;\n\n private _metadataStore?: MetadataStore;\n get metadataStore() {\n return (this._metadataStore ??= new MetadataStore(this.storage.createDirectory('metadata')));\n }\n\n private _snapshotStore?: SnapshotStore;\n get snapshotStore() {\n return (this._snapshotStore ??= new SnapshotStore(this.storage.createDirectory('snapshots')));\n }\n\n private _blobStore?: BlobStore;\n get blobStore() {\n return (this._blobStore ??= new BlobStore(this.storage.createDirectory('blobs')));\n }\n\n public modelFactory = new ModelFactory().registerModel(DocumentModel);\n\n constructor(\n private readonly _networkManagerProvider: NetworkManagerProvider,\n private readonly _feedBuilder: TestFeedBuilder,\n public readonly identityKey: PublicKey,\n public readonly deviceKey: PublicKey,\n ) {\n this.storage = this._feedBuilder.storage;\n this.keyring = this._feedBuilder.keyring;\n this.feedStore = this._feedBuilder.createFeedStore();\n }\n\n async close() {\n return Promise.all([...this.spaces.map((space) => space.close())]);\n }\n\n get spaces() {\n return Array.from(this._spaces.values());\n }\n\n getSpace(spaceKey: PublicKey) {\n return this._spaces.get(spaceKey);\n }\n\n private _spaceManager?: SpaceManager;\n get spaceManager() {\n return (this._spaceManager ??= new SpaceManager({\n feedStore: this.feedStore,\n networkManager: this._networkManagerProvider(),\n modelFactory: this.modelFactory,\n metadataStore: this.metadataStore,\n snapshotStore: this.snapshotStore,\n blobStore: this.blobStore,\n }));\n }\n\n async createSpace(\n identityKey: PublicKey = this.identityKey,\n spaceKey?: PublicKey,\n genesisKey?: PublicKey,\n dataKey?: PublicKey,\n saveMetadata = false,\n ): Promise<Space> {\n if (!spaceKey) {\n saveMetadata = true;\n spaceKey = await this.keyring.createKey();\n }\n if (!genesisKey) {\n genesisKey = await this.keyring.createKey();\n }\n\n const controlFeed = await this.feedStore.openFeed(genesisKey, { writable: true });\n const dataFeed = await this.feedStore.openFeed(dataKey ?? (await this.keyring.createKey()), {\n writable: true,\n sparse: true,\n });\n\n const metadata: SpaceMetadata = {\n key: spaceKey,\n genesisFeedKey: genesisKey,\n controlFeedKey: controlFeed.key,\n dataFeedKey: dataFeed.key,\n };\n if (saveMetadata) {\n await this.metadataStore.addSpace(metadata);\n }\n\n await this.spaceManager.open();\n const space = await this.spaceManager.constructSpace({\n metadata,\n swarmIdentity: {\n peerKey: this.deviceKey,\n credentialProvider: MOCK_AUTH_PROVIDER,\n credentialAuthenticator: MOCK_AUTH_VERIFIER,\n },\n memberKey: identityKey,\n onNetworkConnection: (session) => {\n session.addExtension(\n 'dxos.mesh.teleport.gossip',\n this.createGossip().createExtension({ remotePeerId: session.remotePeerId }),\n );\n },\n });\n space.setControlFeed(controlFeed);\n space.setDataFeed(dataFeed);\n\n await space.open(new Context());\n\n this._spaces.set(spaceKey, space);\n return space;\n }\n\n createSpaceProtocol(topic: PublicKey, gossip?: Gossip) {\n return new SpaceProtocol({\n topic,\n swarmIdentity: {\n peerKey: this.deviceKey,\n credentialProvider: MOCK_AUTH_PROVIDER,\n credentialAuthenticator: MOCK_AUTH_VERIFIER,\n },\n networkManager: this._networkManagerProvider(),\n blobStore: this.blobStore,\n onSessionAuth: (session) => {\n session.addExtension(\n 'dxos.mesh.teleport.gossip',\n (gossip ?? this.createGossip()).createExtension({ remotePeerId: session.remotePeerId }),\n );\n },\n });\n }\n\n createGossip() {\n return new Gossip({\n localPeerId: this.deviceKey,\n });\n }\n\n createPresence(gossip?: Gossip) {\n return new Presence({\n announceInterval: 30,\n offlineTimeout: 200,\n identityKey: this.identityKey,\n gossip: gossip ?? this.createGossip(),\n });\n }\n\n async spaceGenesis(space: Space) {\n const generator = new CredentialGenerator(this.keyring, this.identityKey, this.deviceKey);\n const credentials = [\n ...(await generator.createSpaceGenesis(space.key, space.controlFeedKey!)),\n await generator.createFeedAdmission(space.key, space.dataFeedKey!, AdmittedFeed.Designation.DATA),\n await generator.createEpochCredential(space.key),\n ];\n\n for (const credential of credentials) {\n await space.controlPipeline.writer.write({\n credential: { credential },\n });\n }\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { TestBuilder } from '@dxos/feed-store/testing';\nimport type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\n\nimport { valueEncoding } from '../common';\n\n/**\n * Builder with default encoder and generator.\n */\nexport class TestFeedBuilder extends TestBuilder<FeedMessage> {\n constructor() {\n super({\n valueEncoding,\n });\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { asyncTimeout } from '@dxos/async';\nimport { DocumentModel } from '@dxos/document-model';\nimport { DatabaseProxy, ItemManager } from '@dxos/echo-db';\nimport { MockFeedWriter } from '@dxos/feed-store/testing';\nimport { PublicKey } from '@dxos/keys';\nimport { ModelFactory } from '@dxos/model-factory';\nimport { type DataMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { StorageType, createStorage } from '@dxos/random-access-storage';\nimport { Timeframe } from '@dxos/timeframe';\n\nimport { AutomergeHost } from '../automerge';\nimport { DatabaseHost, type DataServiceHost, DataServiceImpl, DataServiceSubscriptions } from '../db-host';\nimport { type DataPipeline } from '../space';\n\nexport const createMemoryDatabase = async (modelFactory: ModelFactory) => {\n const feed = new MockFeedWriter<DataMessage>();\n const backend = new DatabaseHost(feed, async () => {\n // No-op.\n });\n\n feed.written.on(([data, meta]) =>\n backend.echoProcessor({\n batch: data.batch,\n meta: {\n ...meta,\n memberKey: PublicKey.random(),\n timeframe: new Timeframe([[meta.feedKey, meta.seq]]),\n },\n }),\n );\n\n const itemManager = new ItemManager(modelFactory);\n await backend.open(itemManager, new ModelFactory().registerModel(DocumentModel));\n return {\n backend,\n itemManager,\n };\n};\n\nexport const createRemoteDatabaseFromDataServiceHost = async (\n modelFactory: ModelFactory,\n dataServiceHost: DataServiceHost,\n) => {\n const dataServiceSubscriptions = new DataServiceSubscriptions();\n const automergeHost = new AutomergeHost(createStorage({ type: StorageType.RAM }).createDirectory());\n const dataService = new DataServiceImpl(dataServiceSubscriptions, automergeHost);\n\n const spaceKey = PublicKey.random();\n await dataServiceSubscriptions.registerSpace(spaceKey, dataServiceHost);\n\n const itemManager = new ItemManager(modelFactory);\n const backend = new DatabaseProxy({ service: dataService, itemManager, spaceKey });\n await backend.open(new ModelFactory().registerModel(DocumentModel));\n return {\n itemManager,\n backend,\n };\n};\n\nexport const testLocalDatabase = async (create: DataPipeline, check: DataPipeline = create) => {\n const objectId = PublicKey.random().toHex();\n await create.databaseHost!.getWriteStream()?.write({\n batch: {\n objects: [\n {\n objectId,\n genesis: {\n modelType: DocumentModel.meta.type,\n },\n },\n ],\n },\n });\n\n await asyncTimeout(\n check.databaseHost!._itemDemuxer.mutation.waitForCondition(() => check.itemManager.entities.has(objectId)),\n 2000,\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Event, Trigger } from '@dxos/async';\nimport { DocumentModel } from '@dxos/document-model';\nimport { DatabaseProxy, ItemManager, createModelMutation, encodeModelMutation } from '@dxos/echo-db';\nimport { type WriteOptions, type WriteReceipt } from '@dxos/feed-store';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { ModelFactory } from '@dxos/model-factory';\nimport { type FeedMessageBlock, schema } from '@dxos/protocols';\nimport { type FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { type EchoSnapshot, type SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';\nimport { type Epoch } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { TextModel } from '@dxos/text-model';\nimport { Timeframe } from '@dxos/timeframe';\nimport { ComplexMap, isNotNullOrUndefined } from '@dxos/util';\n\nimport { DatabaseHost } from '../db-host';\n\nconst SPACE_KEY = PublicKey.random();\n\nexport class DatabaseTestBuilder {\n public readonly peers = new ComplexMap<PublicKey, DatabaseTestPeer>(PublicKey.hash);\n\n async createPeer(spaceKey = SPACE_KEY): Promise<DatabaseTestPeer> {\n const peer = new DatabaseTestPeer(this, spaceKey);\n this.peers.set(peer.key, peer);\n await peer.open();\n return peer;\n }\n}\n\ntype WriteRequest = {\n receipt: WriteReceipt;\n options: WriteOptions;\n trigger: Trigger;\n};\n\nexport class DatabaseTestPeer {\n public readonly modelFactory = new ModelFactory().registerModel(DocumentModel).registerModel(TextModel);\n\n public items!: ItemManager;\n public proxy!: DatabaseProxy;\n\n public host!: DatabaseHost;\n public hostItems!: ItemManager;\n\n //\n // Test state.\n //\n\n public readonly key = PublicKey.random();\n\n public feedMessages: FeedMessage[] = [];\n\n public readonly snapshots = new Map<string, SpaceSnapshot>();\n private currentEpoch?: Epoch;\n\n /**\n * Sequence number of the last mutation confirmed to be written to the feed store.\n */\n public confirmed = -1;\n\n /**\n * Current position of the peer's pipeline.\n */\n public timeframe = new Timeframe();\n\n public snapshot: SpaceSnapshot | undefined;\n\n private readonly _onConfirm = new Event();\n\n private readonly _writes = new Set<WriteRequest>();\n\n constructor(public readonly rig: DatabaseTestBuilder, public readonly spaceKey: PublicKey) {}\n\n async open() {\n this.hostItems = new ItemManager(this.modelFactory);\n this.host = new DatabaseHost(\n {\n write: async (message, { afterWrite }: WriteOptions) => {\n const seq =\n this.feedMessages.push({\n timeframe: this.timeframe,\n payload: {\n data: message,\n },\n }) - 1;\n\n const request: WriteRequest = {\n receipt: {\n seq,\n feedKey: this.key,\n },\n options: { afterWrite },\n trigger: new Trigger(),\n };\n this._writes.add(request);\n await request.trigger.wait();\n return request.receipt;\n },\n },\n async () => {\n // No-op.\n },\n );\n\n await this.host.open(this.hostItems, this.modelFactory);\n if (this.snapshot) {\n this.host._itemDemuxer.restoreFromSnapshot(this.snapshot.database);\n }\n\n this.items = new ItemManager(this.modelFactory);\n this.proxy = new DatabaseProxy({\n service: this.host.createDataServiceHost({ deferEvents: false }),\n itemManager: this.items,\n spaceKey: this.spaceKey,\n });\n await this.proxy.open(this.modelFactory);\n }\n\n /**\n * Confirm mutations written to the local feed.\n * @param seq Sequence number of the mutation to confirm. If not specified, all mutations will be confirmed.\n */\n async confirm(seq?: number) {\n this.confirmed = seq ?? this.feedMessages.length - 1;\n this._onConfirm.emit();\n\n for (const request of [...this._writes]) {\n if (this.confirmed >= request.receipt.seq) {\n this._writes.delete(request);\n await request.options.afterWrite?.(request.receipt);\n request.trigger.wake();\n }\n }\n\n this._processMessages(Timeframe.merge(this.timeframe, new Timeframe([[this.key, this.confirmed]])));\n }\n\n /**\n * Replicate the database to the specified timeframe.\n * @param to Timeframe to replicate to. If not specified, the database will be replicated to the latest timeframe (based on all other peers).\n */\n replicate(to?: Timeframe) {\n const toTimeframe = Timeframe.merge(\n to ?? new Timeframe(Array.from(this.rig.peers.values()).map((peer) => [peer.key, peer.confirmed])),\n this.timeframe,\n );\n toTimeframe.set(this.key, this.confirmed);\n\n this._processMessages(toTimeframe);\n }\n\n /**\n * Reload data from the feed. Wipes unconfirmed mutations.\n */\n async reload() {\n await this.open();\n const timeframe = this.timeframe;\n this.timeframe = this.snapshot?.timeframe ?? new Timeframe();\n this._processMessages(timeframe);\n }\n\n /**\n * Create snapshot and use it for the next reload.\n */\n makeSnapshot(): SpaceSnapshot {\n this.snapshot = {\n spaceKey: SPACE_KEY.asUint8Array(),\n database: this.host.createSnapshot(),\n timeframe: this.timeframe,\n };\n return this.snapshot;\n }\n\n createEpoch(mockSnapshot?: EchoSnapshot) {\n const snapshot = this.makeSnapshot();\n // Substitute snapshot with the mock one for test purposes (e.g. to test with empty snapshot).\n mockSnapshot && (snapshot.database = mockSnapshot);\n const snapshotCid = PublicKey.from(\n schema.getCodecForType('dxos.echo.snapshot.SpaceSnapshot').encode(snapshot),\n ).toHex();\n this.snapshots.set(snapshotCid, snapshot);\n\n const epoch: Epoch = {\n previousId: PublicKey.random(),\n timeframe: this.timeframe,\n number: this.currentEpoch ? this.currentEpoch.number + 1 : 0,\n snapshotCid,\n };\n\n this.currentEpoch = epoch;\n\n this.host._itemDemuxer.restoreFromSnapshot(snapshot.database);\n }\n\n /**\n * Gets all candidate messages according to the current timeframe.\n * Does not take into account the current snapshot, timeframe dependencies, or the confirmed, or replicated state.\n */\n private _getHeads(): FeedMessageBlock[] {\n return Array.from(this.rig.peers.values())\n .map((peer): FeedMessageBlock => {\n const seq = this.timeframe.get(peer.key) ?? -1;\n const message = peer.feedMessages[seq + 1];\n return (\n message && {\n feedKey: peer.key,\n seq: seq + 1,\n data: message,\n }\n );\n })\n .filter(isNotNullOrUndefined);\n }\n\n private _processMessages(to: Timeframe) {\n let run = true;\n while (run) {\n run = false;\n\n const heads = this._getHeads();\n for (const candidate of heads) {\n const toSeq = to.get(candidate.feedKey) ?? -1;\n if (toSeq < candidate.seq) {\n continue;\n }\n\n const snapshotSeq = this.snapshot?.timeframe?.get(candidate.feedKey) ?? -1;\n if (candidate.seq <= snapshotSeq) {\n continue;\n }\n\n if (!Timeframe.dependencies(candidate.data.timeframe, this.timeframe).isEmpty()) {\n continue;\n }\n\n run = true;\n this.host.echoProcessor({\n batch: candidate.data.payload.data!.batch,\n meta: {\n feedKey: candidate.feedKey,\n seq: candidate.seq,\n memberKey: candidate.feedKey,\n timeframe: candidate.data.timeframe,\n },\n });\n this.timeframe = Timeframe.merge(this.timeframe, new Timeframe([[candidate.feedKey, candidate.seq]]));\n }\n }\n }\n\n getModel(id: string): DocumentModel | TextModel | undefined {\n const item = this.items.getItem(id);\n if (!item) {\n return;\n }\n\n invariant(item.modelMeta);\n const ModelConstructor = this.modelFactory.getModel(item.modelMeta.type)?.constructor;\n invariant(ModelConstructor);\n\n const model = new ModelConstructor(\n item.modelMeta,\n item.id,\n () => item.state,\n async (mutation) => {\n invariant(item.modelMeta);\n this.proxy.mutate(createModelMutation(id, encodeModelMutation(item.modelMeta, mutation)));\n return {\n feedKey: PublicKey.from('00'),\n seq: 0,\n waitToBeProcessed: () => Promise.resolve(),\n };\n },\n );\n model.initialize();\n\n return model;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["import_credentials", "import_document_model", "import_testing", "import_keys", "import_model_factory", "import_random_access_storage", "import_async", "import_echo_db", "import_protocols", "import_timeframe", "import_util", "EchoMetadata", "schema", "getCodecForType", "changeStorageVersionInMetadata", "storage", "version", "log", "info", "metadata", "MetadataStore", "createDirectory", "load", "echoMetadata", "file", "_directory", "getOrCreateFile", "_writeFile", "flush", "TestFeedBuilder", "TestBuilder", "constructor", "valueEncoding", "MemoryNetworkManagerProvider", "signalContext", "NetworkManager", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "WebsocketNetworkManagerProvider", "signalUrl", "WebsocketSignalManager", "server", "createSimplePeerTransportFactory", "TestAgentBuilder", "networkManagerProvider", "_agents", "ComplexMap", "PublicKey", "hash", "_storage", "createStorage", "type", "StorageType", "RAM", "_networkManagerProvider", "MemorySignalManagerContext", "close", "Promise", "all", "agents", "map", "agent", "Array", "from", "values", "getAgent", "deviceKey", "get", "createPeer", "feedBuilder", "setStorage", "size", "identityKey", "keyring", "createKey", "TestAgent", "set", "metadataStore", "_metadataStore", "snapshotStore", "_snapshotStore", "SnapshotStore", "blobStore", "_blobStore", "BlobStore", "_feedBuilder", "_spaces", "modelFactory", "ModelFactory", "registerModel", "DocumentModel", "feedStore", "createFeedStore", "spaces", "space", "getSpace", "spaceKey", "spaceManager", "_spaceManager", "SpaceManager", "networkManager", "createSpace", "genesisKey", "dataKey", "saveMetadata", "controlFeed", "openFeed", "writable", "dataFeed", "sparse", "key", "genesisFeedKey", "controlFeedKey", "dataFeedKey", "addSpace", "open", "constructSpace", "swarmIdentity", "peerKey", "credentialProvider", "MOCK_AUTH_PROVIDER", "credentialAuthenticator", "MOCK_AUTH_VERIFIER", "memberKey", "onNetworkConnection", "session", "addExtension", "createGossip", "createExtension", "remotePeerId", "setControlFeed", "setDataFeed", "Context", "createSpaceProtocol", "topic", "gossip", "SpaceProtocol", "onSessionAuth", "Gossip", "localPeerId", "createPresence", "Presence", "announceInterval", "offlineTimeout", "spaceGenesis", "generator", "CredentialGenerator", "credentials", "createSpaceGenesis", "createFeedAdmission", "AdmittedFeed", "Designation", "DATA", "createEpochCredential", "credential", "controlPipeline", "writer", "write", "createMemoryDatabase", "feed", "MockFeedWriter", "backend", "DatabaseHost", "written", "on", "data", "meta", "echoProcessor", "batch", "random", "timeframe", "Timeframe", "feedKey", "seq", "itemManager", "ItemManager", "createRemoteDatabaseFromDataServiceHost", "dataServiceHost", "dataServiceSubscriptions", "DataServiceSubscriptions", "automergeHost", "AutomergeHost", "dataService", "DataServiceImpl", "registerSpace", "DatabaseProxy", "service", "testLocalDatabase", "create", "check", "objectId", "toHex", "databaseHost", "getWriteStream", "objects", "genesis", "modelType", "asyncTimeout", "_itemDemuxer", "mutation", "waitForCondition", "entities", "has", "SPACE_KEY", "DatabaseTestBuilder", "peers", "peer", "DatabaseTestPeer", "rig", "TextModel", "feedMessages", "snapshots", "Map", "confirmed", "_onConfirm", "Event", "_writes", "Set", "hostItems", "host", "message", "afterWrite", "push", "payload", "request", "receipt", "options", "trigger", "Trigger", "add", "wait", "snapshot", "restoreFromSnapshot", "database", "items", "proxy", "createDataServiceHost", "deferEvents", "confirm", "length", "emit", "delete", "wake", "_processMessages", "merge", "replicate", "to", "toTimeframe", "reload", "makeSnapshot", "asUint8Array", "createSnapshot", "createEpoch", "mockSnapshot", "snapshotCid", "encode", "epoch", "previousId", "number", "currentEpoch", "_getHeads", "filter", "isNotNullOrUndefined", "run", "heads", "candidate", "toSeq", "snapshotSeq", "dependencies", "isEmpty", "getModel", "id", "item", "getItem", "invariant", "modelMeta", "ModelConstructor", "model", "state", "mutate", "createModelMutation", "encodeModelMutation", "waitToBeProcessed", "resolve", "initialize"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { log } from '@dxos/log';\nimport { schema } from '@dxos/protocols';\nimport type { Storage } from '@dxos/random-access-storage';\n\nimport { MetadataStore } from '../metadata';\n\nconst EchoMetadata = schema.getCodecForType('dxos.echo.metadata.EchoMetadata');\n\n/**\n * This function will change the storage version in the metadata.\n * This will break your storage and make it unusable.\n * Use this only for testing purposes.\n */\nexport const changeStorageVersionInMetadata = async (storage: Storage, version: number) => {\n log.info('Changing storage version in metadata. USE ONLY FOR TESTING.');\n const metadata = new MetadataStore(storage.createDirectory('metadata'));\n await metadata.load();\n const echoMetadata = metadata.metadata;\n echoMetadata.version = version;\n const file = metadata._directory.getOrCreateFile('EchoMetadata');\n await metadata._writeFile(file, EchoMetadata, echoMetadata);\n await metadata._directory.flush();\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Context } from '@dxos/context';\nimport { CredentialGenerator } from '@dxos/credentials';\nimport { DocumentModel } from '@dxos/document-model';\nimport { type FeedStore } from '@dxos/feed-store';\nimport { type Keyring } from '@dxos/keyring';\nimport { PublicKey } from '@dxos/keys';\nimport { MemorySignalManager, MemorySignalManagerContext, WebsocketSignalManager } from '@dxos/messaging';\nimport { ModelFactory } from '@dxos/model-factory';\nimport { createSimplePeerTransportFactory, MemoryTransportFactory, NetworkManager } from '@dxos/network-manager';\nimport type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { type SpaceMetadata } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { AdmittedFeed } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { createStorage, type Storage, StorageType } from '@dxos/random-access-storage';\nimport { Gossip, Presence } from '@dxos/teleport-extension-gossip';\nimport { BlobStore } from '@dxos/teleport-extension-object-sync';\nimport { ComplexMap } from '@dxos/util';\n\nimport { TestFeedBuilder } from './test-feed-builder';\nimport { SnapshotStore } from '../db-host';\nimport { MetadataStore } from '../metadata';\nimport { MOCK_AUTH_PROVIDER, MOCK_AUTH_VERIFIER, type Space, SpaceManager, SpaceProtocol } from '../space';\n\nexport type NetworkManagerProvider = () => NetworkManager;\n\nexport const MemoryNetworkManagerProvider =\n (signalContext: MemorySignalManagerContext): NetworkManagerProvider =>\n () =>\n new NetworkManager({\n signalManager: new MemorySignalManager(signalContext),\n transportFactory: MemoryTransportFactory,\n });\n\nexport const WebsocketNetworkManagerProvider =\n (signalUrl: string): NetworkManagerProvider =>\n () =>\n new NetworkManager({\n signalManager: new WebsocketSignalManager([{ server: signalUrl }]),\n transportFactory: createSimplePeerTransportFactory(),\n });\n\nexport type TestAgentBuilderOptions = {\n storage?: Storage;\n networkManagerProvider?: NetworkManagerProvider;\n};\n\n/**\n * Factory for test agents.\n */\nexport class TestAgentBuilder {\n private readonly _agents = new ComplexMap<PublicKey, TestAgent>(PublicKey.hash);\n private readonly _storage: Storage;\n private readonly _networkManagerProvider: NetworkManagerProvider;\n\n constructor({ storage, networkManagerProvider }: TestAgentBuilderOptions = {}) {\n this._storage = storage ?? createStorage({ type: StorageType.RAM });\n this._networkManagerProvider =\n networkManagerProvider ?? MemoryNetworkManagerProvider(new MemorySignalManagerContext());\n }\n\n async close() {\n return Promise.all(this.agents.map((agent) => agent.close()));\n }\n\n get agents() {\n return Array.from(this._agents.values());\n }\n\n getAgent(deviceKey: PublicKey) {\n return this._agents.get(deviceKey);\n }\n\n async createPeer(): Promise<TestAgent> {\n // prettier-ignore\n const feedBuilder = new TestFeedBuilder()\n .setStorage(this._storage, `agent-${this._agents.size}`);\n\n const identityKey = await feedBuilder.keyring.createKey();\n const deviceKey = await feedBuilder.keyring.createKey();\n\n const agent = new TestAgent(this._networkManagerProvider, feedBuilder, identityKey, deviceKey);\n this._agents.set(deviceKey, agent);\n return agent;\n }\n}\n\n/**\n * Test agent that enables the creation and replication of multiple spaces.\n */\nexport class TestAgent {\n private readonly _spaces = new ComplexMap<PublicKey, Space>(PublicKey.hash);\n\n public readonly storage: Storage;\n public readonly keyring: Keyring;\n public readonly feedStore: FeedStore<FeedMessage>;\n\n private _metadataStore?: MetadataStore;\n get metadataStore() {\n return (this._metadataStore ??= new MetadataStore(this.storage.createDirectory('metadata')));\n }\n\n private _snapshotStore?: SnapshotStore;\n get snapshotStore() {\n return (this._snapshotStore ??= new SnapshotStore(this.storage.createDirectory('snapshots')));\n }\n\n private _blobStore?: BlobStore;\n get blobStore() {\n return (this._blobStore ??= new BlobStore(this.storage.createDirectory('blobs')));\n }\n\n public modelFactory = new ModelFactory().registerModel(DocumentModel);\n\n constructor(\n private readonly _networkManagerProvider: NetworkManagerProvider,\n private readonly _feedBuilder: TestFeedBuilder,\n public readonly identityKey: PublicKey,\n public readonly deviceKey: PublicKey,\n ) {\n this.storage = this._feedBuilder.storage;\n this.keyring = this._feedBuilder.keyring;\n this.feedStore = this._feedBuilder.createFeedStore();\n }\n\n async close() {\n return Promise.all([...this.spaces.map((space) => space.close())]);\n }\n\n get spaces() {\n return Array.from(this._spaces.values());\n }\n\n getSpace(spaceKey: PublicKey) {\n return this._spaces.get(spaceKey);\n }\n\n private _spaceManager?: SpaceManager;\n get spaceManager() {\n return (this._spaceManager ??= new SpaceManager({\n feedStore: this.feedStore,\n networkManager: this._networkManagerProvider(),\n modelFactory: this.modelFactory,\n metadataStore: this.metadataStore,\n snapshotStore: this.snapshotStore,\n blobStore: this.blobStore,\n }));\n }\n\n async createSpace(\n identityKey: PublicKey = this.identityKey,\n spaceKey?: PublicKey,\n genesisKey?: PublicKey,\n dataKey?: PublicKey,\n saveMetadata = false,\n ): Promise<Space> {\n if (!spaceKey) {\n saveMetadata = true;\n spaceKey = await this.keyring.createKey();\n }\n if (!genesisKey) {\n genesisKey = await this.keyring.createKey();\n }\n\n const controlFeed = await this.feedStore.openFeed(genesisKey, { writable: true });\n const dataFeed = await this.feedStore.openFeed(dataKey ?? (await this.keyring.createKey()), {\n writable: true,\n sparse: true,\n });\n\n const metadata: SpaceMetadata = {\n key: spaceKey,\n genesisFeedKey: genesisKey,\n controlFeedKey: controlFeed.key,\n dataFeedKey: dataFeed.key,\n };\n if (saveMetadata) {\n await this.metadataStore.addSpace(metadata);\n }\n\n await this.spaceManager.open();\n const space = await this.spaceManager.constructSpace({\n metadata,\n swarmIdentity: {\n peerKey: this.deviceKey,\n credentialProvider: MOCK_AUTH_PROVIDER,\n credentialAuthenticator: MOCK_AUTH_VERIFIER,\n },\n memberKey: identityKey,\n onAuthorizedConnection: (session) => {\n session.addExtension(\n 'dxos.mesh.teleport.gossip',\n this.createGossip().createExtension({ remotePeerId: session.remotePeerId }),\n );\n },\n });\n space.setControlFeed(controlFeed);\n space.setDataFeed(dataFeed);\n\n await space.open(new Context());\n\n this._spaces.set(spaceKey, space);\n return space;\n }\n\n createSpaceProtocol(topic: PublicKey, gossip?: Gossip) {\n return new SpaceProtocol({\n topic,\n swarmIdentity: {\n peerKey: this.deviceKey,\n credentialProvider: MOCK_AUTH_PROVIDER,\n credentialAuthenticator: MOCK_AUTH_VERIFIER,\n },\n networkManager: this._networkManagerProvider(),\n blobStore: this.blobStore,\n onSessionAuth: (session) => {\n session.addExtension(\n 'dxos.mesh.teleport.gossip',\n (gossip ?? this.createGossip()).createExtension({ remotePeerId: session.remotePeerId }),\n );\n },\n });\n }\n\n createGossip() {\n return new Gossip({\n localPeerId: this.deviceKey,\n });\n }\n\n createPresence(gossip?: Gossip) {\n return new Presence({\n announceInterval: 30,\n offlineTimeout: 200,\n identityKey: this.identityKey,\n gossip: gossip ?? this.createGossip(),\n });\n }\n\n async spaceGenesis(space: Space) {\n const generator = new CredentialGenerator(this.keyring, this.identityKey, this.deviceKey);\n const credentials = [\n ...(await generator.createSpaceGenesis(space.key, space.controlFeedKey!)),\n await generator.createFeedAdmission(space.key, space.dataFeedKey!, AdmittedFeed.Designation.DATA),\n await generator.createEpochCredential(space.key),\n ];\n\n for (const credential of credentials) {\n await space.controlPipeline.writer.write({\n credential: { credential },\n });\n }\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { TestBuilder } from '@dxos/feed-store/testing';\nimport type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\n\nimport { valueEncoding } from '../common';\n\n/**\n * Builder with default encoder and generator.\n */\nexport class TestFeedBuilder extends TestBuilder<FeedMessage> {\n constructor() {\n super({\n valueEncoding,\n });\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { asyncTimeout } from '@dxos/async';\nimport { DocumentModel } from '@dxos/document-model';\nimport { DatabaseProxy, ItemManager } from '@dxos/echo-db';\nimport { MockFeedWriter } from '@dxos/feed-store/testing';\nimport { PublicKey } from '@dxos/keys';\nimport { ModelFactory } from '@dxos/model-factory';\nimport { type DataMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { StorageType, createStorage } from '@dxos/random-access-storage';\nimport { Timeframe } from '@dxos/timeframe';\n\nimport { AutomergeHost } from '../automerge';\nimport { DatabaseHost, type DataServiceHost, DataServiceImpl, DataServiceSubscriptions } from '../db-host';\nimport { type DataPipeline } from '../space';\n\nexport const createMemoryDatabase = async (modelFactory: ModelFactory) => {\n const feed = new MockFeedWriter<DataMessage>();\n const backend = new DatabaseHost(feed, async () => {\n // No-op.\n });\n\n feed.written.on(([data, meta]) =>\n backend.echoProcessor({\n batch: data.batch,\n meta: {\n ...meta,\n memberKey: PublicKey.random(),\n timeframe: new Timeframe([[meta.feedKey, meta.seq]]),\n },\n }),\n );\n\n const itemManager = new ItemManager(modelFactory);\n await backend.open(itemManager, new ModelFactory().registerModel(DocumentModel));\n return {\n backend,\n itemManager,\n };\n};\n\nexport const createRemoteDatabaseFromDataServiceHost = async (\n modelFactory: ModelFactory,\n dataServiceHost: DataServiceHost,\n) => {\n const dataServiceSubscriptions = new DataServiceSubscriptions();\n const automergeHost = new AutomergeHost(createStorage({ type: StorageType.RAM }).createDirectory());\n const dataService = new DataServiceImpl(dataServiceSubscriptions, automergeHost);\n\n const spaceKey = PublicKey.random();\n await dataServiceSubscriptions.registerSpace(spaceKey, dataServiceHost);\n\n const itemManager = new ItemManager(modelFactory);\n const backend = new DatabaseProxy({ service: dataService, itemManager, spaceKey });\n await backend.open(new ModelFactory().registerModel(DocumentModel));\n return {\n itemManager,\n backend,\n };\n};\n\nexport const testLocalDatabase = async (create: DataPipeline, check: DataPipeline = create) => {\n const objectId = PublicKey.random().toHex();\n await create.databaseHost!.getWriteStream()?.write({\n batch: {\n objects: [\n {\n objectId,\n genesis: {\n modelType: DocumentModel.meta.type,\n },\n },\n ],\n },\n });\n\n await asyncTimeout(\n check.databaseHost!._itemDemuxer.mutation.waitForCondition(() => check.itemManager.entities.has(objectId)),\n 2000,\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Event, Trigger } from '@dxos/async';\nimport { DocumentModel } from '@dxos/document-model';\nimport { DatabaseProxy, ItemManager, createModelMutation, encodeModelMutation } from '@dxos/echo-db';\nimport { type WriteOptions, type WriteReceipt } from '@dxos/feed-store';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { ModelFactory } from '@dxos/model-factory';\nimport { type FeedMessageBlock, schema } from '@dxos/protocols';\nimport { type FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { type EchoSnapshot, type SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';\nimport { type Epoch } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { TextModel } from '@dxos/text-model';\nimport { Timeframe } from '@dxos/timeframe';\nimport { ComplexMap, isNotNullOrUndefined } from '@dxos/util';\n\nimport { DatabaseHost } from '../db-host';\n\nconst SPACE_KEY = PublicKey.random();\n\nexport class DatabaseTestBuilder {\n public readonly peers = new ComplexMap<PublicKey, DatabaseTestPeer>(PublicKey.hash);\n\n async createPeer(spaceKey = SPACE_KEY): Promise<DatabaseTestPeer> {\n const peer = new DatabaseTestPeer(this, spaceKey);\n this.peers.set(peer.key, peer);\n await peer.open();\n return peer;\n }\n}\n\ntype WriteRequest = {\n receipt: WriteReceipt;\n options: WriteOptions;\n trigger: Trigger;\n};\n\nexport class DatabaseTestPeer {\n public readonly modelFactory = new ModelFactory().registerModel(DocumentModel).registerModel(TextModel);\n\n public items!: ItemManager;\n public proxy!: DatabaseProxy;\n\n public host!: DatabaseHost;\n public hostItems!: ItemManager;\n\n //\n // Test state.\n //\n\n public readonly key = PublicKey.random();\n\n public feedMessages: FeedMessage[] = [];\n\n public readonly snapshots = new Map<string, SpaceSnapshot>();\n private currentEpoch?: Epoch;\n\n /**\n * Sequence number of the last mutation confirmed to be written to the feed store.\n */\n public confirmed = -1;\n\n /**\n * Current position of the peer's pipeline.\n */\n public timeframe = new Timeframe();\n\n public snapshot: SpaceSnapshot | undefined;\n\n private readonly _onConfirm = new Event();\n\n private readonly _writes = new Set<WriteRequest>();\n\n constructor(\n public readonly rig: DatabaseTestBuilder,\n public readonly spaceKey: PublicKey,\n ) {}\n\n async open() {\n this.hostItems = new ItemManager(this.modelFactory);\n this.host = new DatabaseHost(\n {\n write: async (message, { afterWrite }: WriteOptions) => {\n const seq =\n this.feedMessages.push({\n timeframe: this.timeframe,\n payload: {\n data: message,\n },\n }) - 1;\n\n const request: WriteRequest = {\n receipt: {\n seq,\n feedKey: this.key,\n },\n options: { afterWrite },\n trigger: new Trigger(),\n };\n this._writes.add(request);\n await request.trigger.wait();\n return request.receipt;\n },\n },\n async () => {\n // No-op.\n },\n );\n\n await this.host.open(this.hostItems, this.modelFactory);\n if (this.snapshot) {\n this.host._itemDemuxer.restoreFromSnapshot(this.snapshot.database);\n }\n\n this.items = new ItemManager(this.modelFactory);\n this.proxy = new DatabaseProxy({\n service: this.host.createDataServiceHost({ deferEvents: false }),\n itemManager: this.items,\n spaceKey: this.spaceKey,\n });\n await this.proxy.open(this.modelFactory);\n }\n\n /**\n * Confirm mutations written to the local feed.\n * @param seq Sequence number of the mutation to confirm. If not specified, all mutations will be confirmed.\n */\n async confirm(seq?: number) {\n this.confirmed = seq ?? this.feedMessages.length - 1;\n this._onConfirm.emit();\n\n for (const request of [...this._writes]) {\n if (this.confirmed >= request.receipt.seq) {\n this._writes.delete(request);\n await request.options.afterWrite?.(request.receipt);\n request.trigger.wake();\n }\n }\n\n this._processMessages(Timeframe.merge(this.timeframe, new Timeframe([[this.key, this.confirmed]])));\n }\n\n /**\n * Replicate the database to the specified timeframe.\n * @param to Timeframe to replicate to. If not specified, the database will be replicated to the latest timeframe (based on all other peers).\n */\n replicate(to?: Timeframe) {\n const toTimeframe = Timeframe.merge(\n to ?? new Timeframe(Array.from(this.rig.peers.values()).map((peer) => [peer.key, peer.confirmed])),\n this.timeframe,\n );\n toTimeframe.set(this.key, this.confirmed);\n\n this._processMessages(toTimeframe);\n }\n\n /**\n * Reload data from the feed. Wipes unconfirmed mutations.\n */\n async reload() {\n await this.open();\n const timeframe = this.timeframe;\n this.timeframe = this.snapshot?.timeframe ?? new Timeframe();\n this._processMessages(timeframe);\n }\n\n /**\n * Create snapshot and use it for the next reload.\n */\n makeSnapshot(): SpaceSnapshot {\n this.snapshot = {\n spaceKey: SPACE_KEY.asUint8Array(),\n database: this.host.createSnapshot(),\n timeframe: this.timeframe,\n };\n return this.snapshot;\n }\n\n createEpoch(mockSnapshot?: EchoSnapshot) {\n const snapshot = this.makeSnapshot();\n // Substitute snapshot with the mock one for test purposes (e.g. to test with empty snapshot).\n mockSnapshot && (snapshot.database = mockSnapshot);\n const snapshotCid = PublicKey.from(\n schema.getCodecForType('dxos.echo.snapshot.SpaceSnapshot').encode(snapshot),\n ).toHex();\n this.snapshots.set(snapshotCid, snapshot);\n\n const epoch: Epoch = {\n previousId: PublicKey.random(),\n timeframe: this.timeframe,\n number: this.currentEpoch ? this.currentEpoch.number + 1 : 0,\n snapshotCid,\n };\n\n this.currentEpoch = epoch;\n\n this.host._itemDemuxer.restoreFromSnapshot(snapshot.database);\n }\n\n /**\n * Gets all candidate messages according to the current timeframe.\n * Does not take into account the current snapshot, timeframe dependencies, or the confirmed, or replicated state.\n */\n private _getHeads(): FeedMessageBlock[] {\n return Array.from(this.rig.peers.values())\n .map((peer): FeedMessageBlock => {\n const seq = this.timeframe.get(peer.key) ?? -1;\n const message = peer.feedMessages[seq + 1];\n return (\n message && {\n feedKey: peer.key,\n seq: seq + 1,\n data: message,\n }\n );\n })\n .filter(isNotNullOrUndefined);\n }\n\n private _processMessages(to: Timeframe) {\n let run = true;\n while (run) {\n run = false;\n\n const heads = this._getHeads();\n for (const candidate of heads) {\n const toSeq = to.get(candidate.feedKey) ?? -1;\n if (toSeq < candidate.seq) {\n continue;\n }\n\n const snapshotSeq = this.snapshot?.timeframe?.get(candidate.feedKey) ?? -1;\n if (candidate.seq <= snapshotSeq) {\n continue;\n }\n\n if (!Timeframe.dependencies(candidate.data.timeframe, this.timeframe).isEmpty()) {\n continue;\n }\n\n run = true;\n this.host.echoProcessor({\n batch: candidate.data.payload.data!.batch,\n meta: {\n feedKey: candidate.feedKey,\n seq: candidate.seq,\n memberKey: candidate.feedKey,\n timeframe: candidate.data.timeframe,\n },\n });\n this.timeframe = Timeframe.merge(this.timeframe, new Timeframe([[candidate.feedKey, candidate.seq]]));\n }\n }\n }\n\n getModel(id: string): DocumentModel | TextModel | undefined {\n const item = this.items.getItem(id);\n if (!item) {\n return;\n }\n\n invariant(item.modelMeta);\n const ModelConstructor = this.modelFactory.getModel(item.modelMeta.type)?.constructor;\n invariant(ModelConstructor);\n\n const model = new ModelConstructor(\n item.modelMeta,\n item.id,\n () => item.state,\n async (mutation) => {\n invariant(item.modelMeta);\n this.proxy.mutate(createModelMutation(id, encodeModelMutation(item.modelMeta, mutation)));\n return {\n feedKey: PublicKey.from('00'),\n seq: 0,\n waitToBeProcessed: () => Promise.resolve(),\n };\n },\n );\n model.initialize();\n\n return model;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_credentials", "import_document_model", "import_testing", "import_keys", "import_model_factory", "import_random_access_storage", "import_async", "import_echo_db", "import_protocols", "import_timeframe", "import_util", "EchoMetadata", "schema", "getCodecForType", "changeStorageVersionInMetadata", "storage", "version", "log", "info", "metadata", "MetadataStore", "createDirectory", "load", "echoMetadata", "file", "_directory", "getOrCreateFile", "_writeFile", "flush", "TestFeedBuilder", "TestBuilder", "constructor", "valueEncoding", "MemoryNetworkManagerProvider", "signalContext", "NetworkManager", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "WebsocketNetworkManagerProvider", "signalUrl", "WebsocketSignalManager", "server", "createSimplePeerTransportFactory", "TestAgentBuilder", "networkManagerProvider", "_agents", "ComplexMap", "PublicKey", "hash", "_storage", "createStorage", "type", "StorageType", "RAM", "_networkManagerProvider", "MemorySignalManagerContext", "close", "Promise", "all", "agents", "map", "agent", "Array", "from", "values", "getAgent", "deviceKey", "get", "createPeer", "feedBuilder", "setStorage", "size", "identityKey", "keyring", "createKey", "TestAgent", "set", "metadataStore", "_metadataStore", "snapshotStore", "_snapshotStore", "SnapshotStore", "blobStore", "_blobStore", "BlobStore", "_feedBuilder", "_spaces", "modelFactory", "ModelFactory", "registerModel", "DocumentModel", "feedStore", "createFeedStore", "spaces", "space", "getSpace", "spaceKey", "spaceManager", "_spaceManager", "SpaceManager", "networkManager", "createSpace", "genesisKey", "dataKey", "saveMetadata", "controlFeed", "openFeed", "writable", "dataFeed", "sparse", "key", "genesisFeedKey", "controlFeedKey", "dataFeedKey", "addSpace", "open", "constructSpace", "swarmIdentity", "peerKey", "credentialProvider", "MOCK_AUTH_PROVIDER", "credentialAuthenticator", "MOCK_AUTH_VERIFIER", "memberKey", "onAuthorizedConnection", "session", "addExtension", "createGossip", "createExtension", "remotePeerId", "setControlFeed", "setDataFeed", "Context", "createSpaceProtocol", "topic", "gossip", "SpaceProtocol", "onSessionAuth", "Gossip", "localPeerId", "createPresence", "Presence", "announceInterval", "offlineTimeout", "spaceGenesis", "generator", "CredentialGenerator", "credentials", "createSpaceGenesis", "createFeedAdmission", "AdmittedFeed", "Designation", "DATA", "createEpochCredential", "credential", "controlPipeline", "writer", "write", "createMemoryDatabase", "feed", "MockFeedWriter", "backend", "DatabaseHost", "written", "on", "data", "meta", "echoProcessor", "batch", "random", "timeframe", "Timeframe", "feedKey", "seq", "itemManager", "ItemManager", "createRemoteDatabaseFromDataServiceHost", "dataServiceHost", "dataServiceSubscriptions", "DataServiceSubscriptions", "automergeHost", "AutomergeHost", "dataService", "DataServiceImpl", "registerSpace", "DatabaseProxy", "service", "testLocalDatabase", "create", "check", "objectId", "toHex", "databaseHost", "getWriteStream", "objects", "genesis", "modelType", "asyncTimeout", "_itemDemuxer", "mutation", "waitForCondition", "entities", "has", "SPACE_KEY", "DatabaseTestBuilder", "peers", "peer", "DatabaseTestPeer", "rig", "TextModel", "feedMessages", "snapshots", "Map", "confirmed", "_onConfirm", "Event", "_writes", "Set", "hostItems", "host", "message", "afterWrite", "push", "payload", "request", "receipt", "options", "trigger", "Trigger", "add", "wait", "snapshot", "restoreFromSnapshot", "database", "items", "proxy", "createDataServiceHost", "deferEvents", "confirm", "length", "emit", "delete", "wake", "_processMessages", "merge", "replicate", "to", "toTimeframe", "reload", "makeSnapshot", "asUint8Array", "createSnapshot", "createEpoch", "mockSnapshot", "snapshotCid", "encode", "epoch", "previousId", "number", "currentEpoch", "_getHeads", "filter", "isNotNullOrUndefined", "run", "heads", "candidate", "toSeq", "snapshotSeq", "dependencies", "isEmpty", "getModel", "id", "item", "getItem", "invariant", "modelMeta", "ModelConstructor", "model", "state", "mutate", "createModelMutation", "encodeModelMutation", "waitToBeProcessed", "resolve", "initialize"]
7
7
  }