@dxos/echo-pipeline 0.4.10-main.c32f430 → 0.4.10-main.ccba876

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 (60) hide show
  1. package/dist/lib/browser/{chunk-RTEEJ723.mjs → chunk-SYE4EK33.mjs} +30 -35
  2. package/dist/lib/browser/chunk-SYE4EK33.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +279 -159
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +8 -2
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node/{chunk-7VZVCCNF.cjs → chunk-WCTX6RNS.cjs} +35 -40
  9. package/dist/lib/node/chunk-WCTX6RNS.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +285 -168
  11. package/dist/lib/node/index.cjs.map +4 -4
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/testing/index.cjs +18 -13
  14. package/dist/lib/node/testing/index.cjs.map +4 -4
  15. package/dist/types/src/automerge/automerge-doc-loader.d.ts +2 -0
  16. package/dist/types/src/automerge/automerge-doc-loader.d.ts.map +1 -1
  17. package/dist/types/src/automerge/automerge-host.d.ts +20 -10
  18. package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
  19. package/dist/types/src/automerge/index.d.ts +1 -0
  20. package/dist/types/src/automerge/index.d.ts.map +1 -1
  21. package/dist/types/src/automerge/level.test.d.ts +2 -0
  22. package/dist/types/src/automerge/level.test.d.ts.map +1 -0
  23. package/dist/types/src/automerge/leveldb-storage-adapter.d.ts +27 -0
  24. package/dist/types/src/automerge/leveldb-storage-adapter.d.ts.map +1 -0
  25. package/dist/types/src/automerge/migrations.d.ts +7 -0
  26. package/dist/types/src/automerge/migrations.d.ts.map +1 -0
  27. package/dist/types/src/automerge/reference.d.ts +15 -0
  28. package/dist/types/src/automerge/reference.d.ts.map +1 -0
  29. package/dist/types/src/automerge/storage-adapter.test.d.ts +2 -0
  30. package/dist/types/src/automerge/storage-adapter.test.d.ts.map +1 -0
  31. package/dist/types/src/automerge/types.d.ts +7 -2
  32. package/dist/types/src/automerge/types.d.ts.map +1 -1
  33. package/dist/types/src/metadata/metadata-store.d.ts +2 -1
  34. package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
  35. package/dist/types/src/space/space.d.ts +4 -8
  36. package/dist/types/src/space/space.d.ts.map +1 -1
  37. package/dist/types/src/testing/index.d.ts +1 -0
  38. package/dist/types/src/testing/index.d.ts.map +1 -1
  39. package/dist/types/src/testing/level.d.ts +3 -0
  40. package/dist/types/src/testing/level.d.ts.map +1 -0
  41. package/dist/types/src/testing/test-agent-builder.d.ts +2 -2
  42. package/package.json +33 -30
  43. package/src/automerge/automerge-doc-loader.ts +6 -0
  44. package/src/automerge/automerge-host.test.ts +19 -5
  45. package/src/automerge/automerge-host.ts +52 -33
  46. package/src/automerge/index.ts +1 -0
  47. package/src/automerge/level.test.ts +43 -0
  48. package/src/automerge/leveldb-storage-adapter.ts +105 -0
  49. package/src/automerge/migrations.ts +41 -0
  50. package/src/automerge/reference.ts +31 -0
  51. package/src/automerge/storage-adapter.test.ts +90 -0
  52. package/src/automerge/types.ts +7 -5
  53. package/src/db-host/data-service.ts +1 -1
  54. package/src/metadata/metadata-store.ts +17 -8
  55. package/src/space/space.test.ts +7 -7
  56. package/src/space/space.ts +6 -21
  57. package/src/testing/index.ts +1 -0
  58. package/src/testing/level.ts +11 -0
  59. package/dist/lib/browser/chunk-RTEEJ723.mjs.map +0 -7
  60. package/dist/lib/node/chunk-7VZVCCNF.cjs.map +0 -7
@@ -23,10 +23,11 @@ __export(testing_exports, {
23
23
  TestAgentBuilder: () => TestAgentBuilder,
24
24
  TestFeedBuilder: () => TestFeedBuilder,
25
25
  WebsocketNetworkManagerProvider: () => WebsocketNetworkManagerProvider,
26
- changeStorageVersionInMetadata: () => changeStorageVersionInMetadata
26
+ changeStorageVersionInMetadata: () => changeStorageVersionInMetadata,
27
+ createTestLevel: () => createTestLevel
27
28
  });
28
29
  module.exports = __toCommonJS(testing_exports);
29
- var import_chunk_7VZVCCNF = require("../chunk-7VZVCCNF.cjs");
30
+ var import_chunk_WCTX6RNS = require("../chunk-WCTX6RNS.cjs");
30
31
  var import_log = require("@dxos/log");
31
32
  var import_protocols = require("@dxos/protocols");
32
33
  var import_context = require("@dxos/context");
@@ -40,6 +41,8 @@ var import_teleport_extension_gossip = require("@dxos/teleport-extension-gossip"
40
41
  var import_teleport_extension_object_sync = require("@dxos/teleport-extension-object-sync");
41
42
  var import_util = require("@dxos/util");
42
43
  var import_testing = require("@dxos/feed-store/testing");
44
+ var import_level = require("level");
45
+ var import_keys2 = require("@dxos/keys");
43
46
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/change-metadata.ts";
44
47
  var EchoMetadata = import_protocols.schema.getCodecForType("dxos.echo.metadata.EchoMetadata");
45
48
  var changeStorageVersionInMetadata = async (storage, version) => {
@@ -49,7 +52,7 @@ var changeStorageVersionInMetadata = async (storage, version) => {
49
52
  S: void 0,
50
53
  C: (f, a) => f(...a)
51
54
  });
52
- const metadata = new import_chunk_7VZVCCNF.MetadataStore(storage.createDirectory("metadata"));
55
+ const metadata = new import_chunk_WCTX6RNS.MetadataStore(storage.createDirectory("metadata"));
53
56
  await metadata.load();
54
57
  const echoMetadata = metadata.metadata;
55
58
  echoMetadata.version = version;
@@ -60,7 +63,7 @@ var changeStorageVersionInMetadata = async (storage, version) => {
60
63
  var TestFeedBuilder = class extends import_testing.TestBuilder {
61
64
  constructor() {
62
65
  super({
63
- valueEncoding: import_chunk_7VZVCCNF.valueEncoding
66
+ valueEncoding: import_chunk_WCTX6RNS.valueEncoding
64
67
  });
65
68
  }
66
69
  };
@@ -104,10 +107,10 @@ var TestAgentBuilder = class {
104
107
  };
105
108
  var TestAgent = class {
106
109
  get metadataStore() {
107
- return this._metadataStore ??= new import_chunk_7VZVCCNF.MetadataStore(this.storage.createDirectory("metadata"));
110
+ return this._metadataStore ??= new import_chunk_WCTX6RNS.MetadataStore(this.storage.createDirectory("metadata"));
108
111
  }
109
112
  get snapshotStore() {
110
- return this._snapshotStore ??= new import_chunk_7VZVCCNF.SnapshotStore(this.storage.createDirectory("snapshots"));
113
+ return this._snapshotStore ??= new import_chunk_WCTX6RNS.SnapshotStore(this.storage.createDirectory("snapshots"));
111
114
  }
112
115
  get blobStore() {
113
116
  return this._blobStore ??= new import_teleport_extension_object_sync.BlobStore(this.storage.createDirectory("blobs"));
@@ -134,7 +137,7 @@ var TestAgent = class {
134
137
  return this._spaces.get(spaceKey);
135
138
  }
136
139
  get spaceManager() {
137
- return this._spaceManager ??= new import_chunk_7VZVCCNF.SpaceManager({
140
+ return this._spaceManager ??= new import_chunk_WCTX6RNS.SpaceManager({
138
141
  feedStore: this.feedStore,
139
142
  networkManager: this._networkManagerProvider(),
140
143
  metadataStore: this.metadataStore,
@@ -171,8 +174,8 @@ var TestAgent = class {
171
174
  metadata,
172
175
  swarmIdentity: {
173
176
  peerKey: this.deviceKey,
174
- credentialProvider: import_chunk_7VZVCCNF.MOCK_AUTH_PROVIDER,
175
- credentialAuthenticator: import_chunk_7VZVCCNF.MOCK_AUTH_VERIFIER
177
+ credentialProvider: import_chunk_WCTX6RNS.MOCK_AUTH_PROVIDER,
178
+ credentialAuthenticator: import_chunk_WCTX6RNS.MOCK_AUTH_VERIFIER
176
179
  },
177
180
  memberKey: identityKey,
178
181
  onAuthorizedConnection: (session) => {
@@ -188,12 +191,12 @@ var TestAgent = class {
188
191
  return space;
189
192
  }
190
193
  createSpaceProtocol(topic, gossip) {
191
- return new import_chunk_7VZVCCNF.SpaceProtocol({
194
+ return new import_chunk_WCTX6RNS.SpaceProtocol({
192
195
  topic,
193
196
  swarmIdentity: {
194
197
  peerKey: this.deviceKey,
195
- credentialProvider: import_chunk_7VZVCCNF.MOCK_AUTH_PROVIDER,
196
- credentialAuthenticator: import_chunk_7VZVCCNF.MOCK_AUTH_VERIFIER
198
+ credentialProvider: import_chunk_WCTX6RNS.MOCK_AUTH_PROVIDER,
199
+ credentialAuthenticator: import_chunk_WCTX6RNS.MOCK_AUTH_VERIFIER
197
200
  },
198
201
  networkManager: this._networkManagerProvider(),
199
202
  blobStore: this.blobStore,
@@ -233,6 +236,7 @@ var TestAgent = class {
233
236
  }
234
237
  }
235
238
  };
239
+ var createTestLevel = () => new import_level.Level(`/tmp/dxos-${import_keys2.PublicKey.random().toHex()}`);
236
240
  // Annotate the CommonJS export names for ESM import in node:
237
241
  0 && (module.exports = {
238
242
  MemoryNetworkManagerProvider,
@@ -240,6 +244,7 @@ var TestAgent = class {
240
244
  TestAgentBuilder,
241
245
  TestFeedBuilder,
242
246
  WebsocketNetworkManagerProvider,
243
- changeStorageVersionInMetadata
247
+ changeStorageVersionInMetadata,
248
+ createTestLevel
244
249
  });
245
250
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/testing/change-metadata.ts", "../../../../src/testing/test-agent-builder.ts", "../../../../src/testing/test-feed-builder.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 { 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, NetworkManager, createSimplePeerTransportFactory } 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 { StorageType, createStorage, type Storage } 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, SpaceManager, SpaceProtocol, type Space } 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 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 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 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) {\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"],
5
- "mappings": "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",
6
- "names": ["import_credentials", "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", "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"]
3
+ "sources": ["../../../../src/testing/change-metadata.ts", "../../../../src/testing/test-agent-builder.ts", "../../../../src/testing/test-feed-builder.ts", "../../../../src/testing/level.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 { 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, NetworkManager, createSimplePeerTransportFactory } 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 { StorageType, createStorage, type Storage } 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, SpaceManager, SpaceProtocol, type Space } 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 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 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 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) {\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 2024 DXOS.org\n//\n\nimport { Level } from 'level';\n\nimport { PublicKey } from '@dxos/keys';\n\nimport { type MyLevel } from '../automerge/types';\n\nexport const createTestLevel = (): MyLevel => new Level<string, string>(`/tmp/dxos-${PublicKey.random().toHex()}`);\n"],
5
+ "mappings": "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",
6
+ "names": ["import_credentials", "import_keys", "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", "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", "createTestLevel", "Level", "random", "toHex"]
7
7
  }
@@ -6,6 +6,7 @@ import { type SpaceState, type SpaceDoc } from './types';
6
6
  type SpaceDocumentLinks = SpaceDoc['links'];
7
7
  export interface AutomergeDocumentLoader {
8
8
  onObjectDocumentLoaded: Event<ObjectDocumentLoaded>;
9
+ getAllHandles(): DocHandle<SpaceDoc>[];
9
10
  loadSpaceRootDocHandle(ctx: Context, spaceState: SpaceState): Promise<void>;
10
11
  loadObjectDocument(objectId: string): void;
11
12
  getSpaceRootDocHandle(): DocHandle<SpaceDoc>;
@@ -35,6 +36,7 @@ export declare class AutomergeDocumentLoaderImpl implements AutomergeDocumentLoa
35
36
  private readonly _objectsPendingDocumentLoad;
36
37
  readonly onObjectDocumentLoaded: Event<ObjectDocumentLoaded>;
37
38
  constructor(_spaceKey: PublicKey, _repo: Repo);
39
+ getAllHandles(): DocHandle<SpaceDoc>[];
38
40
  loadSpaceRootDocHandle(ctx: Context, spaceState: SpaceState): Promise<void>;
39
41
  loadObjectDocument(objectId: string): void;
40
42
  onObjectLinksUpdated(links: SpaceDocumentLinks): void;
@@ -1 +1 @@
1
- {"version":3,"file":"automerge-doc-loader.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-doc-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAmB,KAAK,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAC/G,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEzD,KAAK,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAE5C,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAEpD,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,qBAAqB,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7C,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/D,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtD,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7E;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,2BAA4B,YAAW,uBAAuB;IAevE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAfxB,OAAO,CAAC,mBAAmB,CAAoC;IAC/D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA0C;IACjF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAqB;IAEjE,SAAgB,sBAAsB,8BAAqC;gBAGxD,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,IAAI;IAGjB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjF,kBAAkB,CAAC,QAAQ,EAAE,MAAM;IAgBnC,oBAAoB,CAAC,KAAK,EAAE,kBAAkB;IAW9C,qBAAqB,IAAI,SAAS,CAAC,QAAQ,CAAC;IAK5C,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;IAY9D,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM;IAIrE,qBAAqB,IAAI,MAAM,EAAE;IAOxC,OAAO,CAAC,kBAAkB;YAyBZ,cAAc;IAyB5B,OAAO,CAAC,oCAAoC;IAS5C,OAAO,CAAC,cAAc;YAOR,2BAA2B;CA2B1C;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE;QACf,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC;KAChC,CAAC;CACH"}
1
+ {"version":3,"file":"automerge-doc-loader.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-doc-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAmB,KAAK,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAC/G,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEzD,KAAK,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAE5C,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAEpD,aAAa,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;IAEvC,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,qBAAqB,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7C,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/D,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtD,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7E;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,2BAA4B,YAAW,uBAAuB;IAevE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAfxB,OAAO,CAAC,mBAAmB,CAAoC;IAC/D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA0C;IACjF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAqB;IAEjE,SAAgB,sBAAsB,8BAAqC;gBAGxD,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,IAAI;IAG9B,aAAa,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;IAIzB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjF,kBAAkB,CAAC,QAAQ,EAAE,MAAM;IAgBnC,oBAAoB,CAAC,KAAK,EAAE,kBAAkB;IAW9C,qBAAqB,IAAI,SAAS,CAAC,QAAQ,CAAC;IAK5C,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;IAY9D,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM;IAIrE,qBAAqB,IAAI,MAAM,EAAE;IAOxC,OAAO,CAAC,kBAAkB;YAyBZ,cAAc;IAyB5B,OAAO,CAAC,oCAAoC;IAS5C,OAAO,CAAC,cAAc;YAOR,2BAA2B;CA2B1C;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE;QACf,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC;KAChC,CAAC;CACH"}
@@ -1,39 +1,49 @@
1
1
  import { Repo, type DocumentId } from '@dxos/automerge/automerge-repo';
2
2
  import { type Stream } from '@dxos/codec-protobuf';
3
3
  import { PublicKey } from '@dxos/keys';
4
- import { type HostInfo, type SyncRepoRequest, type SyncRepoResponse } from '@dxos/protocols/proto/dxos/echo/service';
4
+ import { type FlushRequest, type HostInfo, type SyncRepoRequest, type SyncRepoResponse } from '@dxos/protocols/proto/dxos/echo/service';
5
5
  import { type Directory } from '@dxos/random-access-storage';
6
6
  import { type AutomergeReplicator } from '@dxos/teleport-extension-automerge-replicator';
7
+ import { type MaybePromise } from '@dxos/util';
8
+ import { type MySublevel } from './types';
7
9
  export type { DocumentId };
8
10
  export interface MetadataMethods {
9
11
  markDirty(idToLastHash: Map<string, string>): Promise<void>;
10
12
  }
11
13
  export type AutomergeHostParams = {
12
- directory: Directory;
14
+ db: MaybePromise<MySublevel>;
15
+ /**
16
+ * For migration purposes.
17
+ */
18
+ directory?: Directory;
13
19
  metadata?: MetadataMethods;
14
20
  };
15
21
  export declare class AutomergeHost {
16
22
  private readonly _ctx;
17
- private readonly _repo;
18
- private readonly _meshNetwork;
19
- private readonly _clientNetwork;
20
- private readonly _storage;
21
- private readonly _peerId;
23
+ private readonly _directory?;
24
+ private readonly _db;
25
+ private readonly _metadata?;
26
+ private _repo;
27
+ private _meshNetwork;
28
+ private _clientNetwork;
29
+ private _storage;
30
+ private _peerId;
22
31
  /**
23
32
  * spaceKey -> deviceKey[]
24
33
  */
25
34
  private readonly _authorizedDevices;
26
35
  private readonly _updatingMetadata;
27
- private readonly _metadata?;
28
36
  _requestedDocs: Set<string>;
29
- constructor({ directory, metadata }: AutomergeHostParams);
37
+ constructor({ directory, db, metadata }: AutomergeHostParams);
38
+ open(): Promise<void>;
39
+ close(): Promise<void>;
30
40
  get repo(): Repo;
31
41
  private _beforeSave;
32
42
  private _onDocument;
33
43
  private _onUpdate;
34
44
  private _automergeDocs;
35
45
  private _automergePeers;
36
- close(): Promise<void>;
46
+ flush({ documentIds }: FlushRequest): Promise<void>;
37
47
  syncRepo(request: SyncRepoRequest): Stream<SyncRepoResponse>;
38
48
  sendSyncMessage(request: SyncRepoRequest): Promise<void>;
39
49
  getHostInfo(): Promise<HostInfo>;
@@ -1 +1 @@
1
- {"version":3,"file":"automerge-host.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-host.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,IAAI,EAEJ,KAAK,UAAU,EAIhB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACrH,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AASzF,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,qBACa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IAGnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoE;IAEvG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoC;IACtE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAkB;IAEtC,cAAc,cAAqB;gBAE9B,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,mBAAmB;IAkFxD,IAAI,IAAI,IAAI,IAAI,CAEf;YAEa,WAAW;IAOzB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,eAAe;IAIjB,KAAK;IAUX,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAI5D,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAQtC,eAAe,IAAI,mBAAmB;IAItC,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;CAI1D;AAoBD,eAAO,MAAM,kBAAkB,QAAS,GAAG,KAAG,MAAM,GAAG,IAQtD,CAAC"}
1
+ {"version":3,"file":"automerge-host.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-host.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,IAAI,EAEJ,KAAK,UAAU,EAKhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAEzF,OAAO,EAA0B,KAAK,YAAY,EAAyB,MAAM,YAAY,CAAC;AAM9F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,qBACa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAY;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAkB;IAE7C,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAoD;IAGpE,OAAO,CAAC,OAAO,CAAU;IAEzB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoE;IAEvG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoC;IAE/D,cAAc,cAAqB;gBAE9B,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,mBAAmB;IAMtD,IAAI;IA+EJ,KAAK;IAMX,IAAI,IAAI,IAAI,IAAI,CAEf;YAEa,WAAW;IAOzB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,eAAe;IAQjB,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAI5D,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAQtC,eAAe,IAAI,mBAAmB;IAItC,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;CAI1D;AAoBD,eAAO,MAAM,kBAAkB,QAAS,GAAG,KAAG,MAAM,GAAG,IAQtD,CAAC"}
@@ -4,4 +4,5 @@ export * from './automerge-doc-loader';
4
4
  export * from './local-host-network-adapter';
5
5
  export * from './mesh-network-adapter';
6
6
  export * from './types';
7
+ export * from './reference';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/automerge/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/automerge/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=level.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level.test.d.ts","sourceRoot":"","sources":["../../../../src/automerge/level.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { type StorageAdapterInterface, type Chunk, type StorageKey } from '@dxos/automerge/automerge-repo';
2
+ import { type MaybePromise } from '@dxos/util';
3
+ import { type MySublevel } from './types';
4
+ export type LevelDBStorageAdapterParams = {
5
+ db: MySublevel;
6
+ callbacks?: StorageCallbacks;
7
+ };
8
+ export type StorageCallbacks = {
9
+ beforeSave?: (path: StorageKey) => MaybePromise<void>;
10
+ afterSave?: (path: StorageKey) => MaybePromise<void>;
11
+ };
12
+ export declare class LevelDBStorageAdapter implements StorageAdapterInterface {
13
+ private readonly _params;
14
+ private _state;
15
+ constructor(_params: LevelDBStorageAdapterParams);
16
+ load(keyArray: StorageKey): Promise<Uint8Array | undefined>;
17
+ save(keyArray: StorageKey, binary: Uint8Array): Promise<void>;
18
+ remove(keyArray: StorageKey): Promise<void>;
19
+ loadRange(keyPrefix: StorageKey): Promise<Chunk[]>;
20
+ removeRange(keyPrefix: StorageKey): Promise<void>;
21
+ close(): void;
22
+ }
23
+ export declare const encodingOptions: {
24
+ keyEncoding: import("level-transcoder").IExternalEncoding<StorageKey, Uint8Array, StorageKey>;
25
+ valueEncoding: string;
26
+ };
27
+ //# sourceMappingURL=leveldb-storage-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leveldb-storage-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/leveldb-storage-adapter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC3G,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACtD,CAAC;AAEF,qBAAa,qBAAsB,YAAW,uBAAuB;IAEvD,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,OAAO,CAAC,MAAM,CAAiC;gBAClB,OAAO,EAAE,2BAA2B;IAE3D,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAS3D,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7D,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3C,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAkBlD,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvD,KAAK;CAGN;AAYD,eAAO,MAAM,eAAe;;;CAG3B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type Directory } from '@dxos/random-access-storage';
2
+ import { type MySublevel } from './types';
3
+ export declare const levelMigration: ({ db, directory }: {
4
+ db: MySublevel;
5
+ directory: Directory;
6
+ }) => Promise<void>;
7
+ //# sourceMappingURL=migrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../src/automerge/migrations.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAI1E,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,cAAc;;eAA0D,SAAS;mBA2B7F,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Reference } from '@dxos/echo-db';
2
+ export declare const REFERENCE_TYPE_TAG = "dxos.echo.model.document.Reference";
3
+ /**
4
+ * Reference as it is stored in Automerge document.
5
+ */
6
+ export type EncodedReferenceObject = {
7
+ '@type': typeof REFERENCE_TYPE_TAG;
8
+ itemId: string | null;
9
+ protocol: string | null;
10
+ host: string | null;
11
+ };
12
+ export declare const encodeReference: (reference: Reference) => EncodedReferenceObject;
13
+ export declare const decodeReference: (value: any) => Reference;
14
+ export declare const isEncodedReferenceObject: (value: any) => value is EncodedReferenceObject;
15
+ //# sourceMappingURL=reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../../src/automerge/reference.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,eAAO,MAAM,kBAAkB,uCAAuC,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,OAAO,kBAAkB,CAAC;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,sBAMrD,CAAC;AAEH,eAAO,MAAM,eAAe,UAAW,GAAG,cACyC,CAAC;AAEpF,eAAO,MAAM,wBAAwB,UAAW,GAAG,oCACmC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=storage-adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-adapter.test.d.ts","sourceRoot":"","sources":["../../../../src/automerge/storage-adapter.test.ts"],"names":[],"mappings":""}
@@ -1,4 +1,7 @@
1
- import { type Reference } from '@dxos/echo-db';
1
+ /// <reference types="node" />
2
+ import { type AbstractSublevel } from 'abstract-level';
3
+ import { type Level } from 'level';
4
+ import { type EncodedReferenceObject } from './reference';
2
5
  export type SpaceState = {
3
6
  rootUrl?: string;
4
7
  };
@@ -62,6 +65,8 @@ export type ObjectSystem = {
62
65
  /**
63
66
  * Object reference ('protobuf' protocol) type.
64
67
  */
65
- type?: Reference;
68
+ type?: EncodedReferenceObject;
66
69
  };
70
+ export type MyLevel = Level<string, string>;
71
+ export type MySublevel = AbstractSublevel<any, string | Buffer | Uint8Array, string, string>;
67
72
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/automerge/types.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,MAAM,UAAU,GAAG;IAEvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;KAChC,CAAC;IACF;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,IAAI,EAAE,UAAU,EAAE,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/automerge/types.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG;IAEvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;KAChC,CAAC;IACF;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,IAAI,EAAE,UAAU,EAAE,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,sBAAsB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Event } from '@dxos/async';
2
2
  import { PublicKey } from '@dxos/keys';
3
- import { type Invitation, SpaceState } from '@dxos/protocols/proto/dxos/client/services';
3
+ import { Invitation, SpaceState } from '@dxos/protocols/proto/dxos/client/services';
4
4
  import { type ControlPipelineSnapshot, EchoMetadata, type SpaceMetadata, type IdentityRecord, type SpaceCache } from '@dxos/protocols/proto/dxos/echo/metadata';
5
5
  import { type Directory } from '@dxos/random-access-storage';
6
6
  import { type Timeframe } from '@dxos/timeframe';
@@ -53,5 +53,6 @@ export declare class MetadataStore {
53
53
  getSpaceControlPipelineSnapshot(spaceKey: PublicKey): ControlPipelineSnapshot | undefined;
54
54
  setSpaceControlPipelineSnapshot(spaceKey: PublicKey, snapshot: ControlPipelineSnapshot): Promise<void>;
55
55
  }
56
+ export declare const hasInvitationExpired: (invitation: Invitation) => boolean;
56
57
  export {};
57
58
  //# sourceMappingURL=metadata-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-store.d.ts","sourceRoot":"","sources":["../../../../src/metadata/metadata-store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAsC,MAAM,aAAa,CAAC;AAIxE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EACL,KAAK,uBAAuB,EAC5B,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EAEhB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,SAAS,CAAC;CACxB;AAWD,QAAA,MAAM,YAAY,yDAA4D,CAAC;AAG/E,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,mBAAmB,CAAiE;IAE5F,OAAO,CAAC,aAAa,CAAC,CAAmB;IAEzC,SAAgB,MAAM,sBAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;gBAO3C,SAAS,EAAE,SAAS;IAIhC,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,aAAa,EAAE,CAE5B;YAEa,SAAS;IA+CjB,KAAK;IASX;;OAEG;IAEG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAqDb,KAAK;YAcL,uBAAuB;YAavB,uBAAuB;IAM/B,KAAK;IAIX,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,aAAa;IAW7C,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,iBAAiB,IAAI,cAAc,GAAG,SAAS;IAIzC,iBAAiB,CAAC,MAAM,EAAE,cAAc;IAQ9C,cAAc,IAAI,UAAU,EAAE;IAIxB,aAAa,CAAC,UAAU,EAAE,UAAU;IAUpC,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAMrC,QAAQ,CAAC,MAAM,EAAE,aAAa;IAW9B,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAKrE,8BAA8B,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAMxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;IAK/C,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;IAQ1F,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;IAM1D,+BAA+B,CAAC,QAAQ,EAAE,SAAS,GAAG,uBAAuB,GAAG,SAAS;IAInF,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB;CAK7F"}
1
+ {"version":3,"file":"metadata-store.d.ts","sourceRoot":"","sources":["../../../../src/metadata/metadata-store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAsC,MAAM,aAAa,CAAC;AAIxE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EACL,KAAK,uBAAuB,EAC5B,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EAEhB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,SAAS,CAAC;CACxB;AAWD,QAAA,MAAM,YAAY,yDAA4D,CAAC;AAG/E,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,mBAAmB,CAAiE;IAE5F,OAAO,CAAC,aAAa,CAAC,CAAmB;IAEzC,SAAgB,MAAM,sBAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;gBAO3C,SAAS,EAAE,SAAS;IAIhC,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,aAAa,EAAE,CAE5B;YAEa,SAAS;IA+CjB,KAAK;IASX;;OAEG;IAEG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAgDb,KAAK;YAcL,uBAAuB;YAavB,uBAAuB;IAM/B,KAAK;IAIX,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,aAAa;IAW7C,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,iBAAiB,IAAI,cAAc,GAAG,SAAS;IAIzC,iBAAiB,CAAC,MAAM,EAAE,cAAc;IAQ9C,cAAc,IAAI,UAAU,EAAE;IAIxB,aAAa,CAAC,UAAU,EAAE,UAAU;IAUpC,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAMrC,QAAQ,CAAC,MAAM,EAAE,aAAa;IAW9B,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAKrE,8BAA8B,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAMxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;IAK/C,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;IAQ1F,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;IAM1D,+BAA+B,CAAC,QAAQ,EAAE,SAAS,GAAG,uBAAuB,GAAG,SAAS;IAInF,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB;CAK7F;AAID,eAAO,MAAM,oBAAoB,eAAgB,UAAU,KAAG,OAO7D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Event } from '@dxos/async';
2
- import { type Context } from '@dxos/context';
2
+ import { Resource, type Context } from '@dxos/context';
3
3
  import { type FeedInfo } from '@dxos/credentials';
4
4
  import { type FeedOptions, type FeedWrapper } from '@dxos/feed-store';
5
5
  import { type PublicKey } from '@dxos/keys';
@@ -28,7 +28,7 @@ export type CreatePipelineParams = {
28
28
  /**
29
29
  * Spaces are globally addressable databases with access control.
30
30
  */
31
- export declare class Space {
31
+ export declare class Space extends Resource {
32
32
  private readonly _addFeedMutex;
33
33
  readonly onCredentialProcessed: Callback<AsyncCallback<Credential>>;
34
34
  readonly stateUpdate: Event<void>;
@@ -38,7 +38,6 @@ export declare class Space {
38
38
  private readonly _feedProvider;
39
39
  private readonly _controlPipeline;
40
40
  private readonly _snapshotManager;
41
- private _isOpen;
42
41
  private _controlFeed?;
43
42
  private _dataFeed?;
44
43
  constructor(params: SpaceParams);
@@ -59,11 +58,8 @@ export declare class Space {
59
58
  * Use for diagnostics.
60
59
  */
61
60
  getControlFeeds(): FeedInfo[];
62
- /**
63
- * Use for diagnostics.
64
- */
65
- open(ctx: Context): Promise<void>;
66
- close(): Promise<void>;
61
+ protected _open(ctx: Context): Promise<void>;
62
+ protected _close(): Promise<void>;
67
63
  }
68
64
  export {};
69
65
  //# sourceMappingURL=space.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../../src/space/space.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAmC,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AAElG,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IAGrB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,SAAS,CAAC;CAElB,CAAC;AAEF;;GAEG;AAEH,qBAEa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,SAAgB,qBAAqB,sCAA6C;IAClF,SAAgB,WAAW,cAAe;IAC1C,SACgB,QAAQ,EAAE,aAAa,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAEnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAEnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAC,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAC,CAA2B;gBAEjC,MAAM,EAAE,WAAW;IAqC/B,IAEI,GAAG,cAEN;IAED,IAAI,MAAM,YAET;IAED,IAAI,cAAc,IAAI,SAAS,CAE9B;IAED,IAAI,cAAc,0BAEjB;IAED,IAAI,WAAW,0BAEd;IAED,IAAI,UAAU,2CAEb;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,gBAAgB,CAEtC;IAED,IAAI,eAAe,IAAI,eAAe,CAErC;IAEK,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC;IAO7C,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC;IAMhD;;OAEG;IACH,eAAe,IAAI,QAAQ,EAAE;IAI7B;;OAEG;IAMG,IAAI,CAAC,GAAG,EAAE,OAAO;IAejB,KAAK;CAaZ"}
1
+ {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../../src/space/space.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAmC,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAkB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AAElG,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IAGrB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,SAAS,CAAC;CAElB,CAAC;AAEF;;GAEG;AAEH,qBAEa,KAAM,SAAQ,QAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,SAAgB,qBAAqB,sCAA6C;IAClF,SAAgB,WAAW,cAAe;IAC1C,SACgB,QAAQ,EAAE,aAAa,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAEnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAEnD,OAAO,CAAC,YAAY,CAAC,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAC,CAA2B;gBAEjC,MAAM,EAAE,WAAW;IAsC/B,IAEI,GAAG,cAEN;IAED,IAAI,MAAM,YAET;IAED,IAAI,cAAc,IAAI,SAAS,CAE9B;IAED,IAAI,cAAc,0BAEjB;IAED,IAAI,WAAW,0BAEd;IAED,IAAI,UAAU,2CAEb;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,gBAAgB,CAEtC;IAED,IAAI,eAAe,IAAI,eAAe,CAErC;IAEK,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC;IAO7C,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC;IAMhD;;OAEG;IACH,eAAe,IAAI,QAAQ,EAAE;cAKJ,KAAK,CAAC,GAAG,EAAE,OAAO;cAWlB,MAAM;CAShC"}
@@ -1,4 +1,5 @@
1
1
  export * from './change-metadata';
2
2
  export * from './test-agent-builder';
3
3
  export * from './test-feed-builder';
4
+ export * from './level';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type MyLevel } from '../automerge/types';
2
+ export declare const createTestLevel: () => MyLevel;
3
+ //# sourceMappingURL=level.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level.d.ts","sourceRoot":"","sources":["../../../../src/testing/level.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,eAAO,MAAM,eAAe,QAAO,OAA+E,CAAC"}
@@ -26,7 +26,7 @@ export declare class TestAgentBuilder {
26
26
  private readonly _storage;
27
27
  private readonly _networkManagerProvider;
28
28
  constructor({ storage, networkManagerProvider }?: TestAgentBuilderOptions);
29
- close(): Promise<void[][]>;
29
+ close(): Promise<Space[][]>;
30
30
  get agents(): TestAgent[];
31
31
  getAgent(deviceKey: PublicKey): TestAgent | undefined;
32
32
  createPeer(): Promise<TestAgent>;
@@ -50,7 +50,7 @@ export declare class TestAgent {
50
50
  private _blobStore?;
51
51
  get blobStore(): BlobStore;
52
52
  constructor(_networkManagerProvider: NetworkManagerProvider, _feedBuilder: TestFeedBuilder, identityKey: PublicKey, deviceKey: PublicKey);
53
- close(): Promise<void[]>;
53
+ close(): Promise<Space[]>;
54
54
  get spaces(): Space[];
55
55
  getSpace(spaceKey: PublicKey): Space | undefined;
56
56
  private _spaceManager?;