@dxos/echo-pipeline 0.8.4-main.a4bbb77 → 0.8.4-main.abd8ff62ef

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 (189) hide show
  1. package/dist/lib/{browser/chunk-XGG76KKU.mjs → neutral/chunk-VIHYDCCC.mjs} +404 -963
  2. package/dist/lib/neutral/chunk-VIHYDCCC.mjs.map +7 -0
  3. package/dist/lib/{browser/chunk-BVR7OOZK.mjs → neutral/chunk-YBC6ONBZ.mjs} +23 -27
  4. package/dist/lib/neutral/chunk-YBC6ONBZ.mjs.map +7 -0
  5. package/dist/lib/{browser → neutral}/filter/index.mjs +1 -2
  6. package/dist/lib/{browser → neutral}/index.mjs +3143 -2206
  7. package/dist/lib/neutral/index.mjs.map +7 -0
  8. package/dist/lib/neutral/meta.json +1 -0
  9. package/dist/lib/{browser → neutral}/testing/index.mjs +103 -395
  10. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  11. package/dist/types/src/automerge/automerge-host.d.ts +43 -23
  12. package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
  13. package/dist/types/src/automerge/automerge-repo.test.d.ts +1 -1
  14. package/dist/types/src/automerge/automerge-repo.test.d.ts.map +1 -1
  15. package/dist/types/src/automerge/collection-synchronizer.d.ts +5 -3
  16. package/dist/types/src/automerge/collection-synchronizer.d.ts.map +1 -1
  17. package/dist/types/src/automerge/echo-data-monitor.d.ts.map +1 -1
  18. package/dist/types/src/automerge/echo-network-adapter.d.ts +17 -11
  19. package/dist/types/src/automerge/echo-network-adapter.d.ts.map +1 -1
  20. package/dist/types/src/automerge/echo-replicator.d.ts +20 -16
  21. package/dist/types/src/automerge/echo-replicator.d.ts.map +1 -1
  22. package/dist/types/src/automerge/heads-store.d.ts +9 -2
  23. package/dist/types/src/automerge/heads-store.d.ts.map +1 -1
  24. package/dist/types/src/automerge/leveldb-storage-adapter.d.ts +4 -4
  25. package/dist/types/src/automerge/leveldb-storage-adapter.d.ts.map +1 -1
  26. package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts +8 -8
  27. package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts.map +1 -1
  28. package/dist/types/src/automerge/mesh-echo-replicator.d.ts +6 -5
  29. package/dist/types/src/automerge/mesh-echo-replicator.d.ts.map +1 -1
  30. package/dist/types/src/automerge/network-protocol.d.ts.map +1 -1
  31. package/dist/types/src/automerge/space-collection.d.ts.map +1 -1
  32. package/dist/types/src/common/feeds.d.ts.map +1 -1
  33. package/dist/types/src/common/space-id.d.ts.map +1 -1
  34. package/dist/types/src/db-host/automerge-data-source.d.ts +35 -0
  35. package/dist/types/src/db-host/automerge-data-source.d.ts.map +1 -0
  36. package/dist/types/src/db-host/automerge-data-source.test.d.ts +2 -0
  37. package/dist/types/src/db-host/automerge-data-source.test.d.ts.map +1 -0
  38. package/dist/types/src/db-host/automerge-metrics.d.ts.map +1 -1
  39. package/dist/types/src/db-host/data-service.d.ts +7 -6
  40. package/dist/types/src/db-host/data-service.d.ts.map +1 -1
  41. package/dist/types/src/db-host/database-root.d.ts.map +1 -1
  42. package/dist/types/src/db-host/documents-synchronizer.d.ts +8 -7
  43. package/dist/types/src/db-host/documents-synchronizer.d.ts.map +1 -1
  44. package/dist/types/src/db-host/echo-host.d.ts +58 -28
  45. package/dist/types/src/db-host/echo-host.d.ts.map +1 -1
  46. package/dist/types/src/db-host/index.d.ts +2 -0
  47. package/dist/types/src/db-host/index.d.ts.map +1 -1
  48. package/dist/types/src/db-host/invalidation-hint.d.ts +19 -0
  49. package/dist/types/src/db-host/invalidation-hint.d.ts.map +1 -0
  50. package/dist/types/src/db-host/local-queue-service.d.ts +19 -0
  51. package/dist/types/src/db-host/local-queue-service.d.ts.map +1 -0
  52. package/dist/types/src/db-host/query-invalidation.test.d.ts +2 -0
  53. package/dist/types/src/db-host/query-invalidation.test.d.ts.map +1 -0
  54. package/dist/types/src/db-host/query-service.d.ts +18 -10
  55. package/dist/types/src/db-host/query-service.d.ts.map +1 -1
  56. package/dist/types/src/db-host/queue-data-source.d.ts +38 -0
  57. package/dist/types/src/db-host/queue-data-source.d.ts.map +1 -0
  58. package/dist/types/src/db-host/queue-service.test.d.ts +2 -0
  59. package/dist/types/src/db-host/queue-service.test.d.ts.map +1 -0
  60. package/dist/types/src/db-host/space-state-manager.d.ts +1 -0
  61. package/dist/types/src/db-host/space-state-manager.d.ts.map +1 -1
  62. package/dist/types/src/db-host/stub.d.ts +11 -0
  63. package/dist/types/src/db-host/stub.d.ts.map +1 -0
  64. package/dist/types/src/edge/echo-edge-replicator.d.ts +7 -6
  65. package/dist/types/src/edge/echo-edge-replicator.d.ts.map +1 -1
  66. package/dist/types/src/edge/inflight-request-limiter.d.ts.map +1 -1
  67. package/dist/types/src/filter/filter-match.d.ts +2 -2
  68. package/dist/types/src/filter/filter-match.d.ts.map +1 -1
  69. package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
  70. package/dist/types/src/pipeline/message-selector.d.ts.map +1 -1
  71. package/dist/types/src/pipeline/pipeline.d.ts +2 -2
  72. package/dist/types/src/pipeline/pipeline.d.ts.map +1 -1
  73. package/dist/types/src/pipeline/timeframe-clock.d.ts.map +1 -1
  74. package/dist/types/src/query/errors.d.ts +16 -20
  75. package/dist/types/src/query/errors.d.ts.map +1 -1
  76. package/dist/types/src/query/plan.d.ts +59 -8
  77. package/dist/types/src/query/plan.d.ts.map +1 -1
  78. package/dist/types/src/query/query-executor.d.ts +62 -10
  79. package/dist/types/src/query/query-executor.d.ts.map +1 -1
  80. package/dist/types/src/query/query-planner.d.ts +10 -1
  81. package/dist/types/src/query/query-planner.d.ts.map +1 -1
  82. package/dist/types/src/space/admission-discovery-extension.d.ts.map +1 -1
  83. package/dist/types/src/space/auth.d.ts +3 -3
  84. package/dist/types/src/space/auth.d.ts.map +1 -1
  85. package/dist/types/src/space/control-pipeline.d.ts +4 -3
  86. package/dist/types/src/space/control-pipeline.d.ts.map +1 -1
  87. package/dist/types/src/space/space-manager.d.ts +7 -7
  88. package/dist/types/src/space/space-manager.d.ts.map +1 -1
  89. package/dist/types/src/space/space-protocol.d.ts +9 -8
  90. package/dist/types/src/space/space-protocol.d.ts.map +1 -1
  91. package/dist/types/src/space/space.d.ts +5 -5
  92. package/dist/types/src/space/space.d.ts.map +1 -1
  93. package/dist/types/src/testing/change-metadata.d.ts.map +1 -1
  94. package/dist/types/src/testing/index.d.ts +0 -2
  95. package/dist/types/src/testing/index.d.ts.map +1 -1
  96. package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
  97. package/dist/types/src/testing/test-feed-builder.d.ts.map +1 -1
  98. package/dist/types/src/testing/test-network-adapter.d.ts +1 -1
  99. package/dist/types/src/testing/test-network-adapter.d.ts.map +1 -1
  100. package/dist/types/src/testing/test-replicator.d.ts +13 -13
  101. package/dist/types/src/testing/test-replicator.d.ts.map +1 -1
  102. package/dist/types/src/util.d.ts.map +1 -1
  103. package/dist/types/tsconfig.tsbuildinfo +1 -1
  104. package/package.json +51 -54
  105. package/src/automerge/automerge-host.test.ts +42 -23
  106. package/src/automerge/automerge-host.ts +163 -88
  107. package/src/automerge/automerge-repo.test.ts +149 -32
  108. package/src/automerge/collection-synchronizer.test.ts +19 -13
  109. package/src/automerge/collection-synchronizer.ts +69 -28
  110. package/src/automerge/echo-network-adapter.test.ts +2 -1
  111. package/src/automerge/echo-network-adapter.ts +40 -29
  112. package/src/automerge/echo-replicator.ts +21 -16
  113. package/src/automerge/heads-store.ts +42 -3
  114. package/src/automerge/leveldb-storage-adapter.ts +4 -4
  115. package/src/automerge/mesh-echo-replicator-connection.ts +8 -8
  116. package/src/automerge/mesh-echo-replicator.ts +14 -11
  117. package/src/db-host/automerge-data-source.test.ts +299 -0
  118. package/src/db-host/automerge-data-source.ts +186 -0
  119. package/src/db-host/data-service.ts +17 -10
  120. package/src/db-host/documents-synchronizer.test.ts +143 -14
  121. package/src/db-host/documents-synchronizer.ts +54 -51
  122. package/src/db-host/echo-host.ts +321 -86
  123. package/src/db-host/index.ts +2 -0
  124. package/src/db-host/invalidation-hint.ts +50 -0
  125. package/src/db-host/local-queue-service.ts +127 -0
  126. package/src/db-host/query-invalidation.test.ts +270 -0
  127. package/src/db-host/query-service.ts +110 -112
  128. package/src/db-host/queue-data-source.ts +159 -0
  129. package/src/db-host/queue-service.test.ts +145 -0
  130. package/src/db-host/space-state-manager.ts +5 -1
  131. package/src/db-host/stub.ts +33 -0
  132. package/src/edge/echo-edge-replicator.test.ts +9 -9
  133. package/src/edge/echo-edge-replicator.ts +76 -47
  134. package/src/filter/filter-match.test.ts +41 -25
  135. package/src/filter/filter-match.ts +33 -36
  136. package/src/metadata/metadata-store.ts +8 -5
  137. package/src/pipeline/pipeline-stress.test.ts +1 -3
  138. package/src/pipeline/pipeline.test.ts +0 -1
  139. package/src/pipeline/pipeline.ts +2 -3
  140. package/src/query/errors.ts +2 -2
  141. package/src/query/plan.ts +71 -8
  142. package/src/query/query-executor.ts +1170 -197
  143. package/src/query/query-planner.test.ts +854 -86
  144. package/src/query/query-planner.ts +408 -38
  145. package/src/space/admission-discovery-extension.ts +1 -1
  146. package/src/space/auth.ts +6 -6
  147. package/src/space/control-pipeline.test.ts +2 -2
  148. package/src/space/control-pipeline.ts +7 -7
  149. package/src/space/space-manager.ts +12 -17
  150. package/src/space/space-protocol.browser.test.ts +13 -12
  151. package/src/space/space-protocol.test.ts +13 -13
  152. package/src/space/space-protocol.ts +16 -15
  153. package/src/space/space.test.ts +2 -2
  154. package/src/space/space.ts +9 -10
  155. package/src/testing/index.ts +0 -2
  156. package/src/testing/test-agent-builder.ts +0 -1
  157. package/src/testing/test-network-adapter.ts +16 -3
  158. package/src/testing/test-replicator.ts +19 -18
  159. package/src/util.ts +7 -3
  160. package/dist/lib/browser/chunk-BVR7OOZK.mjs.map +0 -7
  161. package/dist/lib/browser/chunk-CGS2ULMK.mjs +0 -11
  162. package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +0 -7
  163. package/dist/lib/browser/chunk-XGG76KKU.mjs.map +0 -7
  164. package/dist/lib/browser/index.mjs.map +0 -7
  165. package/dist/lib/browser/meta.json +0 -1
  166. package/dist/lib/browser/testing/index.mjs.map +0 -7
  167. package/dist/lib/node-esm/chunk-CHMJJ4DG.mjs +0 -2230
  168. package/dist/lib/node-esm/chunk-CHMJJ4DG.mjs.map +0 -7
  169. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  170. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  171. package/dist/lib/node-esm/chunk-L3ZEKVDR.mjs +0 -251
  172. package/dist/lib/node-esm/chunk-L3ZEKVDR.mjs.map +0 -7
  173. package/dist/lib/node-esm/filter/index.mjs +0 -13
  174. package/dist/lib/node-esm/filter/index.mjs.map +0 -7
  175. package/dist/lib/node-esm/index.mjs +0 -5560
  176. package/dist/lib/node-esm/index.mjs.map +0 -7
  177. package/dist/lib/node-esm/meta.json +0 -1
  178. package/dist/lib/node-esm/testing/index.mjs +0 -805
  179. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  180. package/dist/types/src/db-host/documents-iterator.d.ts +0 -7
  181. package/dist/types/src/db-host/documents-iterator.d.ts.map +0 -1
  182. package/dist/types/src/testing/test-data.d.ts +0 -18
  183. package/dist/types/src/testing/test-data.d.ts.map +0 -1
  184. package/dist/types/src/testing/test-schema.d.ts +0 -37
  185. package/dist/types/src/testing/test-schema.d.ts.map +0 -1
  186. package/src/db-host/documents-iterator.ts +0 -74
  187. package/src/testing/test-data.ts +0 -127
  188. package/src/testing/test-schema.ts +0 -53
  189. /package/dist/lib/{browser → neutral}/filter/index.mjs.map +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/testing/change-metadata.ts", "../../../../src/testing/test-agent-builder.ts", "../../../../src/testing/test-feed-builder.ts", "../../../../src/testing/test-network-adapter.ts", "../../../../src/testing/test-replicator.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { log } from '@dxos/log';\nimport { schema } from '@dxos/protocols/proto';\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('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 { 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 { MemoryTransportFactory, SwarmNetworkManager, createRtcTransportFactory } 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 { type Storage, StorageType, createStorage } 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 { MetadataStore } from '../metadata';\nimport { MOCK_AUTH_PROVIDER, MOCK_AUTH_VERIFIER, type Space, SpaceManager, SpaceProtocol } from '../space';\nimport { TestFeedBuilder } from './test-feed-builder';\n\nexport type NetworkManagerProvider = () => SwarmNetworkManager;\n\nexport const MemoryNetworkManagerProvider =\n (signalContext: MemorySignalManagerContext): NetworkManagerProvider =>\n () =>\n new SwarmNetworkManager({\n signalManager: new MemorySignalManager(signalContext),\n transportFactory: MemoryTransportFactory,\n });\n\nexport const WebsocketNetworkManagerProvider =\n (signalUrl: string): NetworkManagerProvider =>\n () =>\n new SwarmNetworkManager({\n signalManager: new WebsocketSignalManager([{ server: signalUrl }]),\n transportFactory: createRtcTransportFactory(),\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): TestAgent | undefined {\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 _blobStore?: BlobStore;\n get blobStore() {\n return (this._blobStore ??= new BlobStore(this.storage.createDirectory('blobs')));\n }\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): Space | undefined {\n return this._spaces.get(spaceKey);\n }\n\n private _networkManager?: SwarmNetworkManager;\n get networkManager() {\n if (this._networkManager) {\n return this._networkManager;\n }\n\n this._networkManager = this._networkManagerProvider();\n this._networkManager.setPeerInfo({ peerKey: this.deviceKey.toHex(), identityKey: this.identityKey.toHex() });\n\n return this._networkManager;\n }\n\n private _spaceManager?: SpaceManager;\n get spaceManager() {\n return (this._spaceManager ??= new SpaceManager({\n feedStore: this.feedStore,\n networkManager: this.networkManager,\n metadataStore: this.metadataStore,\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 identityKey: this.identityKey,\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 onDelegatedInvitationStatusChange: async () => {},\n onMemberRolesChanged: async () => {},\n });\n await space.setControlFeed(controlFeed);\n await 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): SpaceProtocol {\n return new SpaceProtocol({\n topic,\n swarmIdentity: {\n identityKey: this.identityKey,\n peerKey: this.deviceKey,\n credentialProvider: MOCK_AUTH_PROVIDER,\n credentialAuthenticator: MOCK_AUTH_VERIFIER,\n },\n networkManager: this.networkManager,\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(): Gossip {\n return new Gossip({\n localPeerId: this.deviceKey,\n });\n }\n\n createPresence(gossip?: Gossip): Presence {\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): Promise<void> {\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 2024 DXOS.org\n//\n\nimport { type Message, NetworkAdapter, type PeerId } from '@automerge/automerge-repo';\n\nimport { Trigger, sleep } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\n\nexport type TestConnectionStateProvider = () => 'on' | 'off';\n\nexport class TestAdapter extends NetworkAdapter {\n static createPair(\n connectionStateProvider: TestConnectionStateProvider = () => 'on',\n onMessage?: (message: Message) => void,\n ): TestAdapter[] {\n const adapter1: TestAdapter = new TestAdapter({\n send: (message: Message) => {\n onMessage?.(message);\n if (connectionStateProvider() === 'on') {\n void sleep(10).then(() => adapter2.receive(message));\n }\n },\n });\n const adapter2: TestAdapter = new TestAdapter({\n send: (message: Message) => {\n onMessage?.(message);\n if (connectionStateProvider() === 'on') {\n void sleep(10).then(() => adapter1.receive(message));\n }\n },\n });\n\n return [adapter1, adapter2];\n }\n\n public onConnect = new Trigger();\n\n constructor(private readonly _params: { send: (message: Message) => void }) {\n super();\n }\n\n override isReady(): boolean {\n return true;\n }\n\n override whenReady(): Promise<void> {\n return Promise.resolve();\n }\n\n override connect(peerId: PeerId): void {\n this.peerId = peerId;\n this.onConnect.wake();\n }\n\n peerCandidate(peerId: PeerId): void {\n invariant(peerId, 'PeerId is required');\n this.emit('peer-candidate', { peerId, peerMetadata: {} });\n }\n\n peerDisconnected(peerId: PeerId): void {\n invariant(peerId, 'PeerId is required');\n this.emit('peer-disconnected', { peerId });\n }\n\n override send(message: Message): void {\n log('send', { from: message.senderId, to: message.targetId, type: message.type });\n this._params.send(message);\n }\n\n override disconnect(): void {\n this.peerId = undefined;\n }\n\n receive(message: Message): void {\n invariant(this.peerId, 'Peer id is not set');\n this.emit('message', message);\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { sleep, synchronized } from '@dxos/async';\nimport { type Context, LifecycleState, Resource } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport type { AutomergeProtocolMessage } from '@dxos/protocols';\nimport * as TeleportAutomergeReplicator from '@dxos/teleport-extension-automerge-replicator';\n\nimport type {\n AutomergeReplicator,\n AutomergeReplicatorConnection,\n AutomergeReplicatorContext,\n ShouldAdvertiseProps,\n ShouldSyncCollectionProps,\n} from '../automerge';\n\nexport type TestReplicatorNetworkOptions = {\n latency?: number;\n};\n\nexport class TestReplicationNetwork extends Resource {\n private readonly _replicators = new Set<TestReplicator>();\n private readonly _latency?: number = undefined;\n\n constructor(options: TestReplicatorNetworkOptions = {}) {\n super();\n this._latency = options.latency;\n }\n\n protected override async _close(_ctx: Context): Promise<void> {\n for (const replicator of this._replicators) {\n for (const connection of replicator.connections) {\n void connection.writable.abort();\n void connection.readable.cancel();\n }\n }\n }\n\n async createReplicator(): Promise<TestReplicator> {\n const replicator = new TestReplicator({\n onConnect: async () => {\n invariant(this._lifecycleState === LifecycleState.OPEN);\n await this._connectReplicator(replicator);\n },\n onDisconnect: async () => {\n invariant(this._lifecycleState === LifecycleState.OPEN);\n await this._disconnectReplicator(replicator);\n },\n });\n this._replicators.add(replicator);\n return replicator;\n }\n\n @synchronized\n private async _connectReplicator(replicator: TestReplicator): Promise<void> {\n for (const otherReplicator of this._replicators.values()) {\n if (otherReplicator === replicator || !otherReplicator.connected) {\n continue;\n }\n log('create connection', { from: replicator.context!.peerId, to: otherReplicator.context!.peerId });\n const [connection1, connection2] = this._createConnectionPair(\n replicator.context!.peerId,\n otherReplicator.context!.peerId,\n );\n await replicator.context!.onConnectionOpen(connection1);\n await otherReplicator.context!.onConnectionOpen(connection2);\n }\n }\n\n private async _disconnectReplicator(replicator: TestReplicator): Promise<void> {\n for (const connection of replicator.connections) {\n await replicator.context!.onConnectionClosed(connection);\n await connection.otherSide!.owningReplicator!.removeConnection(connection.otherSide!);\n }\n }\n\n private _createConnectionPair(peer1: string, peer2: string): [TestReplicatorConnection, TestReplicatorConnection] {\n const LOG = false;\n\n const forward = new TransformStream({\n transform: async (message, controller) => {\n if (LOG) {\n log('replicate', { from: peer1, to: peer2, message });\n }\n\n if (this._latency !== undefined) {\n await sleep(this._latency);\n }\n\n controller.enqueue(message);\n },\n });\n const backwards = new TransformStream({\n transform: async (message, controller) => {\n if (LOG) {\n log('replicate', { from: peer2, to: peer1, message });\n }\n\n if (this._latency !== undefined) {\n await sleep(this._latency);\n }\n\n controller.enqueue(message);\n },\n });\n\n const connection1 = new TestReplicatorConnection(peer2, backwards.readable, forward.writable);\n const connection2 = new TestReplicatorConnection(peer1, forward.readable, backwards.writable);\n connection1.otherSide = connection2;\n connection2.otherSide = connection1;\n return [connection1, connection2];\n }\n}\n\ntype TestReplicatorProps = {\n onConnect: () => Promise<void>;\n onDisconnect: () => Promise<void>;\n};\n\nexport class TestReplicator implements AutomergeReplicator {\n constructor(private readonly _params: TestReplicatorProps) {}\n\n public connected = false;\n public context: AutomergeReplicatorContext | undefined = undefined;\n public connections = new Set<TestReplicatorConnection>();\n\n async connect(_ctx: Context, context: AutomergeReplicatorContext): Promise<void> {\n log('connect', { peerId: context.peerId });\n this.context = context;\n this.connected = true;\n await this._params.onConnect();\n }\n\n async disconnect(): Promise<void> {\n log('disconnect', { peerId: this.context!.peerId });\n this.connected = false;\n await this._params.onDisconnect();\n }\n\n async addConnection(connection: TestReplicatorConnection): Promise<void> {\n connection.owningReplicator = this;\n this.connections.add(connection);\n this.context!.onConnectionOpen(connection);\n }\n\n async removeConnection(connection: TestReplicatorConnection): Promise<void> {\n connection.owningReplicator = undefined;\n this.context!.onConnectionClosed(connection);\n this.connections.delete(connection);\n }\n}\n\nexport class TestReplicatorConnection implements AutomergeReplicatorConnection {\n public otherSide: TestReplicatorConnection | undefined = undefined;\n public owningReplicator: TestReplicator | undefined = undefined;\n\n constructor(\n public readonly peerId: string,\n public readonly readable: ReadableStream<AutomergeProtocolMessage>,\n public readonly writable: WritableStream<AutomergeProtocolMessage>,\n ) {}\n\n get bundleSyncEnabled(): boolean {\n return false;\n }\n\n async shouldAdvertise(_params: ShouldAdvertiseProps): Promise<boolean> {\n return true;\n }\n\n shouldSyncCollection(_params: ShouldSyncCollectionProps): boolean {\n return true;\n }\n}\n\nexport const testAutomergeReplicatorFactory: TeleportAutomergeReplicator.AutomergeReplicatorFactory = (params) => {\n return new TeleportAutomergeReplicator.AutomergeReplicator(\n {\n ...params[0],\n sendSyncRetryPolicy: {\n retryBackoff: 20,\n retriesBeforeBackoff: 2,\n maxRetries: 3,\n },\n },\n params[1],\n );\n};\n\nexport const brokenAutomergeReplicatorFactory: TeleportAutomergeReplicator.AutomergeReplicatorFactory = (params) => {\n params[1]!.onSyncMessage = () => {\n throw new Error();\n };\n\n return testAutomergeReplicatorFactory(params);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["log", "schema", "EchoMetadata", "metadata", "createDirectory", "echoMetadata", "version", "file", "_directory", "_writeFile", "Context", "CredentialGenerator", "PublicKey", "MemorySignalManager", "MemorySignalManagerContext", "WebsocketSignalManager", "MemoryTransportFactory", "SwarmNetworkManager", "createRtcTransportFactory", "AdmittedFeed", "StorageType", "createStorage", "Gossip", "Presence", "BlobStore", "ComplexMap", "TestBuilder", "TestFeedBuilder", "TestBuilder", "valueEncoding", "__dxlog_file", "MemoryNetworkManagerProvider", "transportFactory", "MemoryTransportFactory", "WebsocketNetworkManagerProvider", "server", "signalUrl", "_storage", "_networkManagerProvider", "type", "StorageType", "close", "agents", "getAgent", "deviceKey", "createPeer", "feedBuilder", "keyring", "agent", "TestAgent", "_agents", "_spaces", "storage", "feedStore", "_metadataStore", "_blobStore", "_feedBuilder", "identityKey", "spaces", "getSpace", "spaceKey", "_networkManager", "peerKey", "toHex", "_spaceManager", "networkManager", "metadataStore", "blobStore", "saveMetadata", "genesisKey", "controlFeed", "openFeed", "dataFeed", "sparse", "metadata", "genesisFeedKey", "controlFeedKey", "dataFeedKey", "spaceManager", "swarmIdentity", "credentialProvider", "credentialAuthenticator", "memberKey", "onAuthorizedConnection", "session", "remotePeerId", "onDelegatedInvitationStatusChange", "onMemberRolesChanged", "space", "open", "Context", "createSpaceProtocol", "topic", "onSessionAuth", "addExtension", "createGossip", "localPeerId", "createPresence", "announceInterval", "offlineTimeout", "gossip", "credentials", "generator", "createFeedAdmission", "createEpochCredential", "key", "credential", "NetworkAdapter", "Trigger", "sleep", "invariant", "log", "__dxlog_file", "TestAdapter", "createPair", "connectionStateProvider", "message", "onMessage", "then", "adapter2", "onConnect", "_params", "isReady", "whenReady", "connect", "peerId", "peerCandidate", "peerMetadata", "peerDisconnected", "send", "to", "type", "disconnect", "receive", "LifecycleState", "invariant", "log", "TeleportAutomergeReplicator", "Resource", "__dxlog_file", "_replicators", "_latency", "undefined", "replicator", "connection", "connections", "writable", "readable", "cancel", "onConnect", "_lifecycleState", "_connectReplicator", "onDisconnect", "_disconnectReplicator", "otherReplicator", "from", "context", "to", "connection1", "connection2", "_createConnectionPair", "onConnectionOpen", "onConnectionClosed", "otherSide", "removeConnection", "forward", "transform", "controller", "LOG", "peer1", "peer2", "message", "sleep", "TestReplicatorConnection", "backwards", "TestReplicator", "_params", "connected", "_ctx", "peerId", "owningReplicator", "shouldSyncCollection", "AutomergeReplicator", "params", "sendSyncRetryPolicy", "retriesBeforeBackoff", "maxRetries", "Error"]
7
+ }
@@ -1,21 +1,19 @@
1
1
  import { type Doc, type Heads } from '@automerge/automerge';
2
- import { type AnyDocumentId, type DocHandle, type DocumentId, type PeerId, Repo } from '@automerge/automerge-repo';
2
+ import { type AnyDocumentId, type DocHandle, type DocumentId, type PeerId } from '@automerge/automerge-repo';
3
3
  import { Event } from '@dxos/async';
4
4
  import { Context, Resource } from '@dxos/context';
5
5
  import { type CollectionId } from '@dxos/echo-protocol';
6
- import { type IndexMetadataStore } from '@dxos/indexing';
7
6
  import { PublicKey } from '@dxos/keys';
8
7
  import { type LevelDB } from '@dxos/kv-store';
9
8
  import { type SpaceSyncState } from '@dxos/protocols/proto/dxos/echo/service';
10
9
  import { type DocHeadsList, type FlushRequest } from '@dxos/protocols/proto/dxos/echo/service';
11
10
  import { type CollectionState } from './collection-synchronizer';
12
11
  import { type EchoDataMonitor } from './echo-data-monitor';
13
- import { type EchoReplicator } from './echo-replicator';
12
+ import { type AutomergeReplicator } from './echo-replicator';
14
13
  export type PeerIdProvider = () => string | undefined;
15
14
  export type RootDocumentSpaceKeyProvider = (documentId: string) => PublicKey | undefined;
16
- export type AutomergeHostParams = {
15
+ export type AutomergeHostProps = {
17
16
  db: LevelDB;
18
- indexMetadataStore: IndexMetadataStore;
19
17
  dataMonitor?: EchoDataMonitor;
20
18
  /**
21
19
  * Used for creating stable ids. A random key is generated on open, if no value is provided.
@@ -25,22 +23,27 @@ export type AutomergeHostParams = {
25
23
  };
26
24
  export type LoadDocOptions = {
27
25
  timeout?: number;
26
+ /**
27
+ * If true, the document will be fetched from the network if it is not found in the local storage.
28
+ * Setting this to false does not guarantee that the document will not be fetched from the network.
29
+ */
30
+ fetchFromNetwork?: boolean;
28
31
  };
29
32
  export type CreateDocOptions = {
30
33
  /**
31
34
  * Import the document together with its history.
32
35
  */
33
36
  preserveHistory?: boolean;
37
+ documentId?: DocumentId;
34
38
  };
35
39
  export declare const FIND_PARAMS: {
36
- allowableStates: ("requesting" | "ready")[];
40
+ allowableStates: ("ready" | "requesting")[];
37
41
  };
38
42
  /**
39
43
  * Abstracts over the AutomergeRepo.
40
44
  */
41
45
  export declare class AutomergeHost extends Resource {
42
46
  private readonly _db;
43
- private readonly _indexMetadataStore;
44
47
  private readonly _echoNetworkAdapter;
45
48
  private readonly _collectionSynchronizer;
46
49
  private _repo;
@@ -63,43 +66,60 @@ export declare class AutomergeHost extends Resource {
63
66
  readonly documentsSaved: Event<void>;
64
67
  private readonly _headsUpdates;
65
68
  private _onHeadsChangedTask?;
66
- constructor({ db, indexMetadataStore, dataMonitor, peerIdProvider, getSpaceKeyByRootDocumentId, }: AutomergeHostParams);
67
- protected _open(): Promise<void>;
68
- protected _close(): Promise<void>;
69
69
  /**
70
- * @deprecated To be abstracted away.
70
+ * Documents created in this session.
71
+ */
72
+ private _createdDocuments;
73
+ /**
74
+ * Documents that need to be synced based on the result of collection-sync.
71
75
  */
72
- get repo(): Repo;
76
+ private _documentsToSync;
77
+ /**
78
+ * Documents that are not avaiale locally that should be requested.
79
+ */
80
+ private _documentsToRequest;
81
+ /**
82
+ * Documents requested by remote peers.
83
+ */
84
+ private _documentsRequested;
85
+ private _sharePolicyChangedTask?;
86
+ constructor({ db, dataMonitor, peerIdProvider, getSpaceKeyByRootDocumentId }: AutomergeHostProps);
87
+ protected _open(ctx: Context): Promise<void>;
88
+ protected _close(ctx: Context): Promise<void>;
73
89
  get peerId(): PeerId;
74
90
  get loadedDocsCount(): number;
75
- addReplicator(replicator: EchoReplicator): Promise<void>;
76
- removeReplicator(replicator: EchoReplicator): Promise<void>;
91
+ get handles(): Readonly<Record<DocumentId, DocHandle<any>>>;
92
+ addReplicator(ctx: Context, replicator: AutomergeReplicator): Promise<void>;
93
+ removeReplicator(replicator: AutomergeReplicator): Promise<void>;
77
94
  /**
78
95
  * Loads the document handle from the repo and waits for it to be ready.
79
96
  */
80
97
  loadDoc<T>(ctx: Context, documentId: AnyDocumentId, opts?: LoadDocOptions): Promise<DocHandle<T>>;
81
- exportDoc(ctx: Context, id: AnyDocumentId): Promise<Uint8Array>;
98
+ exportDoc(id: AnyDocumentId): Promise<Uint8Array>;
82
99
  /**
83
100
  * Create new persisted document.
84
101
  */
85
- createDoc<T>(initialValue?: T | Doc<T> | Uint8Array, opts?: CreateDocOptions): DocHandle<T>;
86
- waitUntilHeadsReplicated(heads: DocHeadsList): Promise<void>;
102
+ createDoc<T>(initialValue?: T | Doc<T> | Uint8Array, opts?: CreateDocOptions): Promise<DocHandle<T>>;
103
+ waitUntilHeadsReplicated(ctx: Context, heads: DocHeadsList): Promise<void>;
87
104
  reIndexHeads(documentIds: DocumentId[]): Promise<void>;
88
- private _sharePolicy;
105
+ private readonly _shareConfig;
89
106
  private _beforeSave;
90
107
  private _shouldSyncCollection;
91
- /**
92
- * Called by AutomergeStorageAdapter after levelDB batch commit.
93
- */
94
108
  private _afterSave;
95
- private _automergePeers;
96
109
  private _isDocumentInRemoteCollection;
97
110
  private _getContainingSpaceForDocument;
98
111
  /**
99
112
  * Flush documents to disk.
100
113
  */
101
- flush({ documentIds }?: FlushRequest): Promise<void>;
114
+ flush(ctx: Context, { documentIds }?: FlushRequest): Promise<void>;
102
115
  getHeads(documentIds: DocumentId[]): Promise<(Heads | undefined)[]>;
116
+ /**
117
+ * Iterate over all document heads stored on disk.
118
+ */
119
+ listDocumentHeads(): AsyncGenerator<{
120
+ documentId: DocumentId;
121
+ heads: Heads;
122
+ }>;
103
123
  getLocalCollectionState(collectionId: string): CollectionState | undefined;
104
124
  getRemoteCollectionStates(collectionId: string): ReadonlyMap<PeerId, CollectionState>;
105
125
  refreshCollection(collectionId: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"automerge-host.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-host.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,KAAK,EAMX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEd,KAAK,UAAU,EAIf,KAAK,MAAM,EACX,IAAI,EAIL,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAgB,KAAK,EAAgB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,OAAO,EAAkB,QAAQ,EAAqB,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAI/F,OAAO,EAAE,KAAK,eAAe,EAA+C,MAAM,2BAA2B,CAAC;AAC9G,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,KAAK,cAAc,EAA2C,MAAM,mBAAmB,CAAC;AAIjG,MAAM,MAAM,cAAc,GAAG,MAAM,MAAM,GAAG,SAAS,CAAC;AAEtD,MAAM,MAAM,4BAA4B,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;AAEzF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,2BAA2B,CAAC,EAAE,4BAA4B,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,WAAW;;CAEvB,CAAC;AAeF;;GAEG;AACH,qBACa,aAAc,SAAQ,QAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IAEzD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAIrC;IAEH,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAEzC,OAAO,CAAC,SAAS,CAAuC;IACxD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAEjC;IAGF,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAA+B;IAE7E,SAAgB,sBAAsB;sBAA6B,YAAY;OAAM;IAErF;;OAEG;IACH,SAAgB,cAAc,cAAe;IAE7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgC;IAC9D,OAAO,CAAC,mBAAmB,CAAC,CAA2B;gBAE3C,EACV,EAAE,EACF,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,2BAA2B,GAC5B,EAAE,mBAAmB;cAwBG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAoEtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhD;;OAEG;IACH,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAEK,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjE;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAuBjG,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAQrE;;OAEG;IACH,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC;IAsBrF,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B5D,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAsB9C,YAAY;YAiBZ,WAAW;IAsBzB,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;YACW,UAAU;IAwBxB,OAAO,CAAC,eAAe;YAIT,6BAA6B;YAW7B,8BAA8B;IAwB5C;;OAEG;IAEG,KAAK,CAAC,EAAE,WAAW,EAAE,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxD,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;IA2BzE,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI1E,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAIrF,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIvC,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA8B3E;;OAEG;IACG,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB1F,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,+BAA+B;YAKzB,qBAAqB;YA4DrB,cAAc;YA0Bd,WAAW;YA0BX,cAAc;YAmCd,WAAW;IAazB,OAAO,CAAC,eAAe;CA0BxB"}
1
+ {"version":3,"file":"automerge-host.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-host.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export {};
1
+ export declare const createTmpPath: () => string;
2
2
  //# sourceMappingURL=automerge-repo.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"automerge-repo.test.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-repo.test.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"automerge-repo.test.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-repo.test.ts"],"names":[],"mappings":"AAu9BA,eAAO,MAAM,aAAa,QAAO,MAEhC,CAAC"}
@@ -1,7 +1,8 @@
1
+ import { type Heads } from '@automerge/automerge';
1
2
  import type { DocumentId, PeerId } from '@automerge/automerge-repo';
2
3
  import { Event } from '@dxos/async';
3
4
  import { type Context, Resource } from '@dxos/context';
4
- export type CollectionSynchronizerParams = {
5
+ export type CollectionSynchronizerProps = {
5
6
  sendCollectionState: (collectionId: string, peerId: PeerId, state: CollectionState) => void;
6
7
  queryCollectionState: (collectionId: string, peerId: PeerId) => void;
7
8
  shouldSyncCollection: (collectionId: string, peerId: PeerId) => boolean;
@@ -24,7 +25,7 @@ export declare class CollectionSynchronizer extends Resource {
24
25
  peerId: PeerId;
25
26
  newDocsAppeared: boolean;
26
27
  }>;
27
- constructor(params: CollectionSynchronizerParams);
28
+ constructor(params: CollectionSynchronizerProps);
28
29
  protected _open(ctx: Context): Promise<void>;
29
30
  getRegisteredCollectionIds(): string[];
30
31
  getLocalCollectionState(collectionId: string): CollectionState | undefined;
@@ -48,6 +49,7 @@ export declare class CollectionSynchronizer extends Resource {
48
49
  * Callback when a peer sends the state of a collection.
49
50
  */
50
51
  onRemoteStateReceived(collectionId: string, peerId: PeerId, state: CollectionState): void;
52
+ private _diffCollectionState;
51
53
  private _getOrCreatePerCollectionState;
52
54
  private _refreshInterestedPeers;
53
55
  }
@@ -55,7 +57,7 @@ export type CollectionState = {
55
57
  /**
56
58
  * DocumentId -> Heads.
57
59
  */
58
- documents: Record<string, string[]>;
60
+ documents: Record<DocumentId, Heads>;
59
61
  };
60
62
  export type CollectionStateDiff = {
61
63
  missingOnRemote: DocumentId[];
@@ -1 +1 @@
1
- {"version":3,"file":"collection-synchronizer.d.ts","sourceRoot":"","sources":["../../../../src/automerge/collection-synchronizer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAmD,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,KAAK,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASvD,MAAM,MAAM,4BAA4B,GAAG;IACzC,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5F,oBAAoB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,oBAAoB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CACzE,CAAC;AAEF;;GAEG;AACH,qBACa,sBAAuB,SAAQ,QAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsD;IAC3F,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuD;IAC7F,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuD;IAE7F;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAyC;IAC9E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IAExD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IAErD,SAAgB,kBAAkB;sBAA6B,MAAM;gBAAU,MAAM;yBAAmB,OAAO;OAAM;gBAEzG,MAAM,EAAE,4BAA4B;cAOvB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3D,0BAA0B,IAAI,MAAM,EAAE;IAItC,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI1E,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAc3E,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAMrD,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAIrF,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAmB7C;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA0BtC;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQxC;;OAEG;IACH,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQpE;;OAEG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAyBzF,OAAO,CAAC,8BAA8B;IAStC,OAAO,CAAC,uBAAuB;CAShC;AASD,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,cAAc,EAAE,UAAU,EAAE,CAAC;IAC7B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,eAAe,EAAE,QAAQ,eAAe,KAAG,mBAqBrF,CAAC"}
1
+ {"version":3,"file":"collection-synchronizer.d.ts","sourceRoot":"","sources":["../../../../src/automerge/collection-synchronizer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIpE,OAAO,EAAE,KAAK,EAAmD,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,KAAK,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASvD,MAAM,MAAM,2BAA2B,GAAG;IACxC,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5F,oBAAoB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,oBAAoB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CACzE,CAAC;AAEF;;GAEG;AACH,qBACa,sBAAuB,SAAQ,QAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqD;IAC1F,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsD;IAC5F,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsD;IAE5F;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAyC;IAC9E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IAExD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IAErD,SAAgB,kBAAkB;sBAA6B,MAAM;gBAAU,MAAM;yBAAmB,OAAO;OAAM;IAErH,YAAY,MAAM,EAAE,2BAA2B,EAK9C;IAED,UAAyB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1D;IAED,0BAA0B,IAAI,MAAM,EAAE,CAErC;IAED,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEzE;IAED,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAgB1E;IAED,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAIpD;IAED,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAEpF;IAED,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAiB5C;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA4BrC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQvC;IAED;;OAEG;IACH,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAMnE;IAED;;OAEG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAMxF;IAED,OAAO,CAAC,oBAAoB;IAyC5B,OAAO,CAAC,8BAA8B;IAStC,OAAO,CAAC,uBAAuB;CAShC;AASD,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,cAAc,EAAE,UAAU,EAAE,CAAC;IAC7B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAAW,eAAe,UAAU,eAAe,KAAG,mBAwBrF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"echo-data-monitor.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-data-monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"echo-data-monitor.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-data-monitor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { type DocumentId, type Heads, type Message, NetworkAdapter, type PeerId, type PeerMetadata } from '@automerge/automerge-repo';
2
+ import { Event } from '@dxos/async';
3
+ import { type Context } from '@dxos/context';
2
4
  import { type PublicKey } from '@dxos/keys';
3
- import { type EchoReplicator, type RemoteDocumentExistenceCheckParams, type ShouldAdvertiseParams, type ShouldSyncCollectionParams } from './echo-replicator';
5
+ import { type AutomergeReplicator, type RemoteDocumentExistenceCheckProps, type ShouldAdvertiseProps, type ShouldSyncCollectionProps } from './echo-replicator';
4
6
  export interface NetworkDataMonitor {
5
7
  recordPeerConnected(peerId: string): void;
6
8
  recordPeerDisconnected(peerId: string): void;
@@ -8,15 +10,15 @@ export interface NetworkDataMonitor {
8
10
  recordMessageReceived(message: Message): void;
9
11
  recordMessageSendingFailed(message: Message): void;
10
12
  }
11
- export type EchoNetworkAdapterParams = {
13
+ export type EchoNetworkAdapterProps = {
12
14
  getContainingSpaceForDocument: (documentId: string) => Promise<PublicKey | null>;
13
- isDocumentInRemoteCollection: (params: RemoteDocumentExistenceCheckParams) => Promise<boolean>;
15
+ isDocumentInRemoteCollection: (params: RemoteDocumentExistenceCheckProps) => Promise<boolean>;
14
16
  onCollectionStateQueried: (collectionId: string, peerId: PeerId) => void;
15
17
  onCollectionStateReceived: (collectionId: string, peerId: PeerId, state: unknown) => void;
16
18
  monitor?: NetworkDataMonitor;
17
19
  };
18
20
  /**
19
- * Manages a set of {@link EchoReplicator} instances.
21
+ * Manages a set of {@link AutomergeReplicator} instances.
20
22
  */
21
23
  export declare class EchoNetworkAdapter extends NetworkAdapter {
22
24
  private readonly _params;
@@ -28,7 +30,11 @@ export declare class EchoNetworkAdapter extends NetworkAdapter {
28
30
  private _lifecycleState;
29
31
  private readonly _connected;
30
32
  private readonly _ready;
31
- constructor(_params: EchoNetworkAdapterParams);
33
+ readonly documentRequested: Event<{
34
+ documentId: DocumentId;
35
+ peerId: PeerId;
36
+ }>;
37
+ constructor(_params: EchoNetworkAdapterProps);
32
38
  isReady(): boolean;
33
39
  whenReady(): Promise<void>;
34
40
  connect(peerId: PeerId, peerMetadata?: PeerMetadata | undefined): void;
@@ -38,20 +44,20 @@ export declare class EchoNetworkAdapter extends NetworkAdapter {
38
44
  close(): Promise<this | undefined>;
39
45
  whenConnected(): Promise<void>;
40
46
  onConnectionAuthScopeChanged(peer: PeerId): void;
41
- addReplicator(replicator: EchoReplicator): Promise<void>;
42
- removeReplicator(replicator: EchoReplicator): Promise<void>;
43
- shouldAdvertise(peerId: PeerId, params: ShouldAdvertiseParams): Promise<boolean>;
44
- shouldSyncCollection(peerId: PeerId, params: ShouldSyncCollectionParams): boolean;
47
+ addReplicator(ctx: Context, replicator: AutomergeReplicator): Promise<void>;
48
+ removeReplicator(replicator: AutomergeReplicator): Promise<void>;
49
+ shouldAdvertise(peerId: PeerId, params: ShouldAdvertiseProps): Promise<boolean>;
50
+ shouldSyncCollection(peerId: PeerId, params: ShouldSyncCollectionProps): boolean;
45
51
  queryCollectionState(collectionId: string, targetId: PeerId): void;
46
52
  sendCollectionState(collectionId: string, targetId: PeerId, state: unknown): void;
47
53
  getPeersInterestedInCollection(collectionId: string): PeerId[];
48
54
  bundleSyncEnabledForPeer(peerId: PeerId): boolean;
49
- pushBundle(peerId: PeerId, bundle: {
55
+ pushBundle(ctx: Context, peerId: PeerId, bundle: {
50
56
  documentId: DocumentId;
51
57
  data: Uint8Array;
52
58
  heads: Heads;
53
59
  }[]): Promise<void>;
54
- pullBundle(peerId: PeerId, docHeads: Record<DocumentId, Heads>): Promise<Record<DocumentId, Uint8Array<ArrayBufferLike>>>;
60
+ pullBundle(ctx: Context, peerId: PeerId, docHeads: Record<DocumentId, Heads>): Promise<Record<DocumentId, Uint8Array<ArrayBufferLike>>>;
55
61
  private _send;
56
62
  private _onConnectionOpen;
57
63
  private _onMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"echo-network-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-network-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"echo-network-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-network-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
1
  import { type Heads } from '@automerge/automerge';
2
2
  import { type DocumentId } from '@automerge/automerge-repo';
3
+ import { type Context } from '@dxos/context';
3
4
  import { type PublicKey, type SpaceId } from '@dxos/keys';
4
5
  import { type AutomergeProtocolMessage } from '@dxos/protocols';
5
- export interface EchoReplicator {
6
+ export interface AutomergeReplicator {
6
7
  /**
7
8
  * Called on when replicator is added to EchoHost.
8
9
  */
9
- connect(context: EchoReplicatorContext): Promise<void>;
10
+ connect(ctx: Context, context: AutomergeReplicatorContext): Promise<void>;
10
11
  /**
11
12
  * Called on when replicator is removed from EchoHost.
12
13
  */
13
14
  disconnect(): Promise<void>;
14
15
  }
15
- export interface EchoReplicatorContext {
16
+ export interface AutomergeReplicatorContext {
16
17
  /**
17
18
  * Our own peer id.
18
19
  */
@@ -22,12 +23,15 @@ export interface EchoReplicatorContext {
22
23
  */
23
24
  getContainingSpaceForDocument(documentId: string): Promise<PublicKey | null>;
24
25
  getContainingSpaceIdForDocument(documentId: string): Promise<SpaceId | null>;
25
- isDocumentInRemoteCollection(params: RemoteDocumentExistenceCheckParams): Promise<boolean>;
26
- onConnectionOpen(connection: ReplicatorConnection): void;
27
- onConnectionClosed(connection: ReplicatorConnection): void;
28
- onConnectionAuthScopeChanged(connection: ReplicatorConnection): void;
26
+ /**
27
+ * Returns false if collection sync hasn't happened yet.
28
+ */
29
+ isDocumentInRemoteCollection(params: RemoteDocumentExistenceCheckProps): Promise<boolean>;
30
+ onConnectionOpen(connection: AutomergeReplicatorConnection): void;
31
+ onConnectionClosed(connection: AutomergeReplicatorConnection): void;
32
+ onConnectionAuthScopeChanged(connection: AutomergeReplicatorConnection): void;
29
33
  }
30
- export interface ReplicatorConnection {
34
+ export interface AutomergeReplicatorConnection {
31
35
  /**
32
36
  * Remote peer id.
33
37
  */
@@ -44,20 +48,20 @@ export interface ReplicatorConnection {
44
48
  * @returns true if the document should be advertised to this peer.
45
49
  * The remote peer can still request the document by its id bypassing this check.
46
50
  */
47
- shouldAdvertise(params: ShouldAdvertiseParams): Promise<boolean>;
51
+ shouldAdvertise(params: ShouldAdvertiseProps): Promise<boolean>;
48
52
  /**
49
53
  * @returns true if the collection should be synced to this peer.
50
54
  */
51
- shouldSyncCollection(params: ShouldSyncCollectionParams): boolean;
55
+ shouldSyncCollection(params: ShouldSyncCollectionProps): boolean;
52
56
  /**
53
- * Batch syncing considered enabled if ReplicatorConnection implements `pushBatch` and `pullBatch` methods.
57
+ * Batch syncing considered enabled if AutomergeReplicatorConnection implements `pushBatch` and `pullBatch` methods.
54
58
  * @returns true if the batch syncing is enabled.
55
59
  */
56
60
  get bundleSyncEnabled(): boolean;
57
61
  /**
58
62
  * Pushes the batch of documents to the remote peer.
59
63
  */
60
- pushBundle?(bundle: {
64
+ pushBundle?(ctx: Context, bundle: {
61
65
  documentId: DocumentId;
62
66
  data: Uint8Array;
63
67
  heads: Heads;
@@ -65,15 +69,15 @@ export interface ReplicatorConnection {
65
69
  /**
66
70
  * Pulls the batch of documents from the remote peer.
67
71
  */
68
- pullBundle?(docHeads: Record<DocumentId, Heads>): Promise<Record<DocumentId, Uint8Array>>;
72
+ pullBundle?(ctx: Context, docHeads: Record<DocumentId, Heads>): Promise<Record<DocumentId, Uint8Array>>;
69
73
  }
70
- export type ShouldAdvertiseParams = {
74
+ export type ShouldAdvertiseProps = {
71
75
  documentId: string;
72
76
  };
73
- export type ShouldSyncCollectionParams = {
77
+ export type ShouldSyncCollectionProps = {
74
78
  collectionId: string;
75
79
  };
76
- export type RemoteDocumentExistenceCheckParams = {
80
+ export type RemoteDocumentExistenceCheckProps = {
77
81
  peerId: string;
78
82
  documentId: string;
79
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-replicator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAGhE,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC7E,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC7E,4BAA4B,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3F,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACzD,kBAAkB,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3D,4BAA4B,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAEnD;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAEnD;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC;IAElE;;;OAGG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAAC;IAEjC;;OAEG;IACH,UAAU,CAAC,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjG;;OAEG;IAEH,UAAU,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;CAC3F;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-replicator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAGhE,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC7E,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE7E;;OAEG;IACH,4BAA4B,CAAC,MAAM,EAAE,iCAAiC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1F,gBAAgB,CAAC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;IAClE,kBAAkB,CAAC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACpE,4BAA4B,CAAC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC/E;AAED,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAEnD;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAEnD;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC;IAEjE;;;OAGG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAAC;IAEjC;;OAEG;IACH,UAAU,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/G;;OAEG;IAEH,UAAU,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;CACzG;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -1,13 +1,20 @@
1
1
  import type { Heads } from '@automerge/automerge';
2
2
  import type { DocumentId } from '@automerge/automerge-repo';
3
3
  import type { BatchLevel, SublevelDB } from '@dxos/kv-store';
4
- export type HeadsStoreParams = {
4
+ export type HeadsStoreProps = {
5
5
  db: SublevelDB;
6
6
  };
7
7
  export declare class HeadsStore {
8
8
  private readonly _db;
9
- constructor({ db }: HeadsStoreParams);
9
+ constructor({ db }: HeadsStoreProps);
10
10
  setHeads(documentId: DocumentId, heads: Heads, batch: BatchLevel): void;
11
11
  getHeads(documentIds: DocumentId[]): Promise<Array<Heads | undefined>>;
12
+ /**
13
+ * Iterate over all document IDs and their heads.
14
+ */
15
+ iterateAll(): AsyncGenerator<{
16
+ documentId: DocumentId;
17
+ heads: Heads;
18
+ }>;
12
19
  }
13
20
  //# sourceMappingURL=heads-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"heads-store.d.ts","sourceRoot":"","sources":["../../../../src/automerge/heads-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,UAAU,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,EAAE,EAAE,EAAE,EAAE,gBAAgB;IAIpC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IASjE,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;CAM7E"}
1
+ {"version":3,"file":"heads-store.d.ts","sourceRoot":"","sources":["../../../../src/automerge/heads-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA4B7D,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,UAAU,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IAEjC,YAAY,EAAE,EAAE,EAAE,EAAE,eAAe,EAElC;IAED,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAMtE;IAGK,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAK3E;IAED;;OAEG;IACI,UAAU,IAAI,cAAc,CAAC;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAO5E;CACF"}
@@ -9,22 +9,22 @@ export interface StorageAdapterDataMonitor {
9
9
  recordLoadDuration(durationMs: number): void;
10
10
  recordStoreDuration(durationMs: number): void;
11
11
  }
12
- export type LevelDBStorageAdapterParams = {
12
+ export type LevelDBStorageAdapterProps = {
13
13
  db: SublevelDB;
14
14
  callbacks?: StorageCallbacks;
15
15
  monitor?: StorageAdapterDataMonitor;
16
16
  };
17
- export type BeforeSaveParams = {
17
+ export type BeforeSaveProps = {
18
18
  path: StorageKey;
19
19
  batch: BatchLevel;
20
20
  };
21
21
  export interface StorageCallbacks {
22
- beforeSave(params: BeforeSaveParams): MaybePromise<void>;
22
+ beforeSave(params: BeforeSaveProps): MaybePromise<void>;
23
23
  afterSave(path: StorageKey): MaybePromise<void>;
24
24
  }
25
25
  export declare class LevelDBStorageAdapter extends Resource implements StorageAdapterInterface {
26
26
  private readonly _params;
27
- constructor(_params: LevelDBStorageAdapterParams);
27
+ constructor(_params: LevelDBStorageAdapterProps);
28
28
  load(keyArray: StorageKey): Promise<Uint8Array | undefined>;
29
29
  save(keyArray: StorageKey, binary: Uint8Array): Promise<void>;
30
30
  remove(keyArray: StorageKey): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"leveldb-storage-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/leveldb-storage-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,uBAAuB,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACzD,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,qBAAa,qBAAsB,SAAQ,QAAS,YAAW,uBAAuB;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,2BAA2B;IAI3D,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAmB3D,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7D,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3C,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAqBlD,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAexD;AAaD,eAAO,MAAM,eAAe;;;CAG3B,CAAC"}
1
+ {"version":3,"file":"leveldb-storage-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/leveldb-storage-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,uBAAuB,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACxD,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,qBAAa,qBAAsB,SAAQ,QAAS,YAAW,uBAAuB;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,0BAA0B,EAE/D;IAEK,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAiBhE;IAEK,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBlE;IAEK,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhD;IAEK,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAmBvD;IAEK,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CActD;CACF;AAaD,eAAO,MAAM,eAAe;IAC1B,WAAW;IACX,aAAa;CACd,CAAC"}
@@ -2,16 +2,16 @@ import { Resource } from '@dxos/context';
2
2
  import { type PublicKey } from '@dxos/keys';
3
3
  import type { AutomergeProtocolMessage } from '@dxos/protocols';
4
4
  import { AutomergeReplicator, type AutomergeReplicatorFactory } from '@dxos/teleport-extension-automerge-replicator';
5
- import type { ReplicatorConnection, ShouldAdvertiseParams, ShouldSyncCollectionParams } from './echo-replicator';
6
- export type MeshReplicatorConnectionParams = {
5
+ import type { AutomergeReplicatorConnection, ShouldAdvertiseProps, ShouldSyncCollectionProps } from './echo-replicator';
6
+ export type MeshReplicatorConnectionProps = {
7
7
  ownPeerId: string;
8
8
  onRemoteConnected: () => void;
9
9
  onRemoteDisconnected: () => void;
10
- shouldAdvertise: (params: ShouldAdvertiseParams) => Promise<boolean>;
11
- shouldSyncCollection: (params: ShouldSyncCollectionParams) => boolean;
10
+ shouldAdvertise: (params: ShouldAdvertiseProps) => Promise<boolean>;
11
+ shouldSyncCollection: (params: ShouldSyncCollectionProps) => boolean;
12
12
  replicatorFactory?: AutomergeReplicatorFactory;
13
13
  };
14
- export declare class MeshReplicatorConnection extends Resource implements ReplicatorConnection {
14
+ export declare class MeshReplicatorConnection extends Resource implements AutomergeReplicatorConnection {
15
15
  private readonly _params;
16
16
  readable: ReadableStream<AutomergeProtocolMessage>;
17
17
  writable: WritableStream<AutomergeProtocolMessage>;
@@ -19,13 +19,13 @@ export declare class MeshReplicatorConnection extends Resource implements Replic
19
19
  readonly replicatorExtension: AutomergeReplicator;
20
20
  private _remotePeerId;
21
21
  private _isEnabled;
22
- constructor(_params: MeshReplicatorConnectionParams);
22
+ constructor(_params: MeshReplicatorConnectionProps);
23
23
  private _disconnectIfEnabled;
24
24
  get peerId(): string;
25
25
  get isEnabled(): boolean;
26
26
  get bundleSyncEnabled(): boolean;
27
- shouldAdvertise(params: ShouldAdvertiseParams): Promise<boolean>;
28
- shouldSyncCollection(params: ShouldSyncCollectionParams): boolean;
27
+ shouldAdvertise(params: ShouldAdvertiseProps): Promise<boolean>;
28
+ shouldSyncCollection(params: ShouldSyncCollectionProps): boolean;
29
29
  /**
30
30
  * Start exchanging messages with the remote peer.
31
31
  * Call after the remote peer has connected.