@dxos/echo-pipeline 0.4.10-main.0302e13 → 0.4.10-main.05dbd64
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.
- package/dist/lib/browser/{chunk-RTEEJ723.mjs → chunk-KMWJLYEQ.mjs} +77 -57
- package/dist/lib/browser/chunk-KMWJLYEQ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +368 -246
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +10 -2
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node/{chunk-7VZVCCNF.cjs → chunk-YZA42CKA.cjs} +82 -62
- package/dist/lib/node/chunk-YZA42CKA.cjs.map +7 -0
- package/dist/lib/node/index.cjs +391 -270
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +20 -13
- package/dist/lib/node/testing/index.cjs.map +4 -4
- package/dist/types/src/automerge/automerge-doc-loader.d.ts +2 -0
- package/dist/types/src/automerge/automerge-doc-loader.d.ts.map +1 -1
- package/dist/types/src/automerge/automerge-host.d.ts +21 -18
- package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
- package/dist/types/src/automerge/automerge-repo.test.d.ts +2 -0
- package/dist/types/src/automerge/automerge-repo.test.d.ts.map +1 -0
- package/dist/types/src/automerge/index.d.ts +2 -0
- package/dist/types/src/automerge/index.d.ts.map +1 -1
- package/dist/types/src/automerge/level.test.d.ts +2 -0
- package/dist/types/src/automerge/level.test.d.ts.map +1 -0
- package/dist/types/src/automerge/leveldb-storage-adapter.d.ts +30 -0
- package/dist/types/src/automerge/leveldb-storage-adapter.d.ts.map +1 -0
- package/dist/types/src/automerge/local-host-network-adapter.d.ts +8 -1
- package/dist/types/src/automerge/local-host-network-adapter.d.ts.map +1 -1
- package/dist/types/src/automerge/migrations.d.ts +7 -0
- package/dist/types/src/automerge/migrations.d.ts.map +1 -0
- package/dist/types/src/automerge/reference.d.ts +15 -0
- package/dist/types/src/automerge/reference.d.ts.map +1 -0
- package/dist/types/src/automerge/storage-adapter.test.d.ts +2 -0
- package/dist/types/src/automerge/storage-adapter.test.d.ts.map +1 -0
- package/dist/types/src/automerge/types.d.ts +8 -2
- package/dist/types/src/automerge/types.d.ts.map +1 -1
- package/dist/types/src/metadata/metadata-store.d.ts +2 -1
- package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
- package/dist/types/src/space/control-pipeline.d.ts +3 -1
- package/dist/types/src/space/control-pipeline.d.ts.map +1 -1
- package/dist/types/src/space/space-manager.d.ts +3 -1
- package/dist/types/src/space/space-manager.d.ts.map +1 -1
- package/dist/types/src/space/space.d.ts +6 -9
- package/dist/types/src/space/space.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/level.d.ts +3 -0
- package/dist/types/src/testing/level.d.ts.map +1 -0
- package/dist/types/src/testing/test-agent-builder.d.ts +2 -2
- package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
- package/package.json +33 -30
- package/src/automerge/automerge-doc-loader.ts +9 -0
- package/src/automerge/automerge-host.test.ts +22 -8
- package/src/automerge/automerge-host.ts +66 -118
- package/src/automerge/automerge-repo.test.ts +29 -0
- package/src/automerge/index.ts +2 -0
- package/src/automerge/level.test.ts +82 -0
- package/src/automerge/leveldb-storage-adapter.ts +117 -0
- package/src/automerge/local-host-network-adapter.ts +19 -13
- package/src/automerge/migrations.ts +41 -0
- package/src/automerge/reference.ts +31 -0
- package/src/automerge/storage-adapter.test.ts +90 -0
- package/src/automerge/types.ts +8 -5
- package/src/db-host/data-service.ts +1 -1
- package/src/metadata/metadata-store.ts +17 -8
- package/src/space/control-pipeline.ts +11 -1
- package/src/space/space-manager.ts +4 -0
- package/src/space/space.test.ts +7 -7
- package/src/space/space.ts +17 -22
- package/src/testing/index.ts +1 -0
- package/src/testing/level.ts +11 -0
- package/src/testing/test-agent-builder.ts +1 -0
- package/dist/lib/browser/chunk-RTEEJ723.mjs.map +0 -7
- package/dist/lib/node/chunk-7VZVCCNF.cjs.map +0 -7
|
@@ -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": ["log", "schema", "EchoMetadata", "schema", "getCodecForType", "changeStorageVersionInMetadata", "storage", "version", "log", "info", "metadata", "MetadataStore", "createDirectory", "load", "echoMetadata", "file", "_directory", "getOrCreateFile", "_writeFile", "flush", "Context", "CredentialGenerator", "PublicKey", "MemorySignalManager", "MemorySignalManagerContext", "WebsocketSignalManager", "MemoryTransportFactory", "NetworkManager", "createSimplePeerTransportFactory", "AdmittedFeed", "StorageType", "createStorage", "Gossip", "Presence", "BlobStore", "ComplexMap", "TestBuilder", "TestFeedBuilder", "TestBuilder", "constructor", "valueEncoding", "MemoryNetworkManagerProvider", "signalContext", "NetworkManager", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "WebsocketNetworkManagerProvider", "signalUrl", "WebsocketSignalManager", "server", "createSimplePeerTransportFactory", "TestAgentBuilder", "constructor", "storage", "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", "TestFeedBuilder", "setStorage", "size", "identityKey", "keyring", "createKey", "TestAgent", "set", "metadataStore", "_metadataStore", "MetadataStore", "createDirectory", "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", "metadata", "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 onDelegatedInvitationStatusChange: 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) {\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 LevelDB } from '../automerge/types';\n\nexport const createTestLevel = (): LevelDB => new Level<string, string>(`/tmp/dxos-${PublicKey.random().toHex()}`);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["log", "schema", "EchoMetadata", "schema", "getCodecForType", "changeStorageVersionInMetadata", "storage", "version", "log", "info", "metadata", "MetadataStore", "createDirectory", "load", "echoMetadata", "file", "_directory", "getOrCreateFile", "_writeFile", "flush", "Context", "CredentialGenerator", "PublicKey", "MemorySignalManager", "MemorySignalManagerContext", "WebsocketSignalManager", "MemoryTransportFactory", "NetworkManager", "createSimplePeerTransportFactory", "AdmittedFeed", "StorageType", "createStorage", "Gossip", "Presence", "BlobStore", "ComplexMap", "TestBuilder", "TestFeedBuilder", "TestBuilder", "constructor", "valueEncoding", "MemoryNetworkManagerProvider", "signalContext", "NetworkManager", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "WebsocketNetworkManagerProvider", "signalUrl", "WebsocketSignalManager", "server", "createSimplePeerTransportFactory", "TestAgentBuilder", "constructor", "storage", "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", "TestFeedBuilder", "setStorage", "size", "identityKey", "keyring", "createKey", "TestAgent", "set", "metadataStore", "_metadataStore", "MetadataStore", "createDirectory", "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", "metadata", "key", "genesisFeedKey", "controlFeedKey", "dataFeedKey", "addSpace", "open", "constructSpace", "swarmIdentity", "peerKey", "credentialProvider", "MOCK_AUTH_PROVIDER", "credentialAuthenticator", "MOCK_AUTH_VERIFIER", "memberKey", "onAuthorizedConnection", "session", "addExtension", "createGossip", "createExtension", "remotePeerId", "onDelegatedInvitationStatusChange", "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", "Level", "PublicKey", "createTestLevel", "Level", "PublicKey", "random", "toHex"]
|
|
7
7
|
}
|
|
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_YZA42CKA_exports = {};
|
|
30
|
+
__export(chunk_YZA42CKA_exports, {
|
|
31
31
|
AuthExtension: () => AuthExtension,
|
|
32
32
|
AuthStatus: () => AuthStatus,
|
|
33
33
|
DataServiceImpl: () => DataServiceImpl,
|
|
@@ -44,12 +44,13 @@ __export(chunk_7VZVCCNF_exports, {
|
|
|
44
44
|
TimeframeClock: () => TimeframeClock,
|
|
45
45
|
codec: () => codec,
|
|
46
46
|
createMappedFeedWriter: () => createMappedFeedWriter,
|
|
47
|
+
hasInvitationExpired: () => hasInvitationExpired,
|
|
47
48
|
mapFeedIndexesToTimeframe: () => mapFeedIndexesToTimeframe,
|
|
48
49
|
mapTimeframeToFeedIndexes: () => mapTimeframeToFeedIndexes,
|
|
49
50
|
startAfter: () => startAfter,
|
|
50
51
|
valueEncoding: () => valueEncoding
|
|
51
52
|
});
|
|
52
|
-
module.exports = __toCommonJS(
|
|
53
|
+
module.exports = __toCommonJS(chunk_YZA42CKA_exports);
|
|
53
54
|
var import_hypercore = require("@dxos/hypercore");
|
|
54
55
|
var import_protocols = require("@dxos/protocols");
|
|
55
56
|
var import_invariant = require("@dxos/invariant");
|
|
@@ -91,13 +92,14 @@ var import_log5 = require("@dxos/log");
|
|
|
91
92
|
var import_protocols5 = require("@dxos/protocols");
|
|
92
93
|
var import_teleport = require("@dxos/teleport");
|
|
93
94
|
var import_async5 = require("@dxos/async");
|
|
95
|
+
var import_context5 = require("@dxos/context");
|
|
94
96
|
var import_invariant6 = require("@dxos/invariant");
|
|
95
97
|
var import_log6 = require("@dxos/log");
|
|
96
98
|
var import_credentials = require("@dxos/protocols/proto/dxos/halo/credentials");
|
|
97
99
|
var import_tracing = require("@dxos/tracing");
|
|
98
100
|
var import_util3 = require("@dxos/util");
|
|
99
101
|
var import_async6 = require("@dxos/async");
|
|
100
|
-
var
|
|
102
|
+
var import_context6 = require("@dxos/context");
|
|
101
103
|
var import_credentials2 = require("@dxos/credentials");
|
|
102
104
|
var import_keys4 = require("@dxos/keys");
|
|
103
105
|
var import_log7 = require("@dxos/log");
|
|
@@ -228,6 +230,7 @@ var DataServiceImpl = class {
|
|
|
228
230
|
throw new Error("Deprecated.");
|
|
229
231
|
}
|
|
230
232
|
async flush(request) {
|
|
233
|
+
await this._automergeHost.flush(request);
|
|
231
234
|
}
|
|
232
235
|
// Automerge specific.
|
|
233
236
|
async getHostInfo(request) {
|
|
@@ -390,8 +393,8 @@ var MetadataStore = class {
|
|
|
390
393
|
}
|
|
391
394
|
});
|
|
392
395
|
(0, import_async.scheduleTaskInterval)(this._invitationCleanupCtx, async () => {
|
|
393
|
-
for (const invitation of this.
|
|
394
|
-
if (invitation
|
|
396
|
+
for (const invitation of this._metadata.invitations ?? []) {
|
|
397
|
+
if (hasInvitationExpired(invitation) || isLegacyInvitationFormat(invitation)) {
|
|
395
398
|
await this.removeInvitation(invitation.invitationId);
|
|
396
399
|
}
|
|
397
400
|
}
|
|
@@ -420,7 +423,7 @@ var MetadataStore = class {
|
|
|
420
423
|
err
|
|
421
424
|
}, {
|
|
422
425
|
F: __dxlog_file2,
|
|
423
|
-
L:
|
|
426
|
+
L: 210,
|
|
424
427
|
S: this,
|
|
425
428
|
C: (f, a) => f(...a)
|
|
426
429
|
});
|
|
@@ -441,7 +444,7 @@ var MetadataStore = class {
|
|
|
441
444
|
const space = this.spaces.find((space2) => space2.key === spaceKey);
|
|
442
445
|
(0, import_invariant2.invariant)(space, "Space not found", {
|
|
443
446
|
F: __dxlog_file2,
|
|
444
|
-
L:
|
|
447
|
+
L: 232,
|
|
445
448
|
S: this,
|
|
446
449
|
A: [
|
|
447
450
|
"space",
|
|
@@ -465,7 +468,7 @@ var MetadataStore = class {
|
|
|
465
468
|
async clear() {
|
|
466
469
|
(0, import_log.log)("clearing all metadata", void 0, {
|
|
467
470
|
F: __dxlog_file2,
|
|
468
|
-
L:
|
|
471
|
+
L: 251,
|
|
469
472
|
S: this,
|
|
470
473
|
C: (f, a) => f(...a)
|
|
471
474
|
});
|
|
@@ -478,7 +481,7 @@ var MetadataStore = class {
|
|
|
478
481
|
async setIdentityRecord(record) {
|
|
479
482
|
(0, import_invariant2.invariant)(!this._metadata.identity, "Cannot overwrite existing identity in metadata", {
|
|
480
483
|
F: __dxlog_file2,
|
|
481
|
-
L:
|
|
484
|
+
L: 261,
|
|
482
485
|
S: this,
|
|
483
486
|
A: [
|
|
484
487
|
"!this._metadata.identity",
|
|
@@ -508,7 +511,7 @@ var MetadataStore = class {
|
|
|
508
511
|
async addSpace(record) {
|
|
509
512
|
(0, import_invariant2.invariant)(!(this._metadata.spaces ?? []).find((space) => space.key === record.key), "Cannot overwrite existing space in metadata", {
|
|
510
513
|
F: __dxlog_file2,
|
|
511
|
-
L:
|
|
514
|
+
L: 289,
|
|
512
515
|
S: this,
|
|
513
516
|
A: [
|
|
514
517
|
"!(this._metadata.spaces ?? []).find((space) => space.key === record.key)",
|
|
@@ -563,6 +566,12 @@ _ts_decorate([
|
|
|
563
566
|
import_async.synchronized
|
|
564
567
|
], MetadataStore.prototype, "_saveSpaceLargeMetadata", null);
|
|
565
568
|
var fromBytesInt32 = (buf) => buf.readInt32LE(0);
|
|
569
|
+
var hasInvitationExpired = (invitation) => {
|
|
570
|
+
return Boolean(invitation.created && invitation.lifetime && invitation.lifetime !== 0 && invitation.created.getTime() + invitation.lifetime * 1e3 < Date.now());
|
|
571
|
+
};
|
|
572
|
+
var isLegacyInvitationFormat = (invitation) => {
|
|
573
|
+
return invitation.type === import_services.Invitation.Type.MULTIUSE;
|
|
574
|
+
};
|
|
566
575
|
function _ts_decorate2(decorators, target, key, desc) {
|
|
567
576
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
568
577
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
@@ -1204,7 +1213,7 @@ var CONTROL_PIPELINE_SNAPSHOT_DELAY = 1e4;
|
|
|
1204
1213
|
var USE_SNAPSHOTS = true;
|
|
1205
1214
|
var ControlPipeline = class {
|
|
1206
1215
|
constructor({ spaceKey, genesisFeed, feedProvider, metadataStore }) {
|
|
1207
|
-
this._ctx = new
|
|
1216
|
+
this._ctx = new import_context6.Context();
|
|
1208
1217
|
this._lastTimeframeSaveTime = Date.now();
|
|
1209
1218
|
this.onFeedAdmitted = new import_util4.Callback();
|
|
1210
1219
|
this._usage = new import_tracing2.TimeUsageCounter();
|
|
@@ -1223,7 +1232,7 @@ var ControlPipeline = class {
|
|
|
1223
1232
|
key: info.key
|
|
1224
1233
|
}, {
|
|
1225
1234
|
F: __dxlog_file7,
|
|
1226
|
-
L:
|
|
1235
|
+
L: 82,
|
|
1227
1236
|
S: this,
|
|
1228
1237
|
C: (f, a) => f(...a)
|
|
1229
1238
|
});
|
|
@@ -1237,7 +1246,7 @@ var ControlPipeline = class {
|
|
|
1237
1246
|
} catch (err) {
|
|
1238
1247
|
import_log7.log.catch(err, void 0, {
|
|
1239
1248
|
F: __dxlog_file7,
|
|
1240
|
-
L:
|
|
1249
|
+
L: 93,
|
|
1241
1250
|
S: this,
|
|
1242
1251
|
C: (f, a) => f(...a)
|
|
1243
1252
|
});
|
|
@@ -1248,6 +1257,8 @@ var ControlPipeline = class {
|
|
|
1248
1257
|
});
|
|
1249
1258
|
this.onMemberAdmitted = this._spaceStateMachine.onMemberAdmitted;
|
|
1250
1259
|
this.onCredentialProcessed = this._spaceStateMachine.onCredentialProcessed;
|
|
1260
|
+
this.onDelegatedInvitation = this._spaceStateMachine.onDelegatedInvitation;
|
|
1261
|
+
this.onDelegatedInvitationRemoved = this._spaceStateMachine.onDelegatedInvitationRemoved;
|
|
1251
1262
|
}
|
|
1252
1263
|
get spaceState() {
|
|
1253
1264
|
return this._spaceStateMachine;
|
|
@@ -1267,7 +1278,7 @@ var ControlPipeline = class {
|
|
|
1267
1278
|
tf: snapshot?.timeframe
|
|
1268
1279
|
}, {
|
|
1269
1280
|
F: __dxlog_file7,
|
|
1270
|
-
L:
|
|
1281
|
+
L: 123,
|
|
1271
1282
|
S: this,
|
|
1272
1283
|
C: (f, a) => f(...a)
|
|
1273
1284
|
});
|
|
@@ -1276,17 +1287,17 @@ var ControlPipeline = class {
|
|
|
1276
1287
|
}
|
|
1277
1288
|
(0, import_log7.log)("starting...", void 0, {
|
|
1278
1289
|
F: __dxlog_file7,
|
|
1279
|
-
L:
|
|
1290
|
+
L: 128,
|
|
1280
1291
|
S: this,
|
|
1281
1292
|
C: (f, a) => f(...a)
|
|
1282
1293
|
});
|
|
1283
1294
|
setTimeout(async () => {
|
|
1284
|
-
void this._consumePipeline(new
|
|
1295
|
+
void this._consumePipeline(new import_context6.Context());
|
|
1285
1296
|
});
|
|
1286
1297
|
await this._pipeline.start();
|
|
1287
1298
|
(0, import_log7.log)("started", void 0, {
|
|
1288
1299
|
F: __dxlog_file7,
|
|
1289
|
-
L:
|
|
1300
|
+
L: 134,
|
|
1290
1301
|
S: this,
|
|
1291
1302
|
C: (f, a) => f(...a)
|
|
1292
1303
|
});
|
|
@@ -1303,7 +1314,7 @@ var ControlPipeline = class {
|
|
|
1303
1314
|
message
|
|
1304
1315
|
}, {
|
|
1305
1316
|
F: __dxlog_file7,
|
|
1306
|
-
L:
|
|
1317
|
+
L: 147,
|
|
1307
1318
|
S: this,
|
|
1308
1319
|
C: (f, a) => f(...a)
|
|
1309
1320
|
});
|
|
@@ -1325,7 +1336,7 @@ var ControlPipeline = class {
|
|
|
1325
1336
|
snapshot
|
|
1326
1337
|
}, {
|
|
1327
1338
|
F: __dxlog_file7,
|
|
1328
|
-
L:
|
|
1339
|
+
L: 163,
|
|
1329
1340
|
S: this,
|
|
1330
1341
|
C: (f, a) => f(...a)
|
|
1331
1342
|
});
|
|
@@ -1340,7 +1351,7 @@ var ControlPipeline = class {
|
|
|
1340
1351
|
} catch (err) {
|
|
1341
1352
|
import_log7.log.catch(err, void 0, {
|
|
1342
1353
|
F: __dxlog_file7,
|
|
1343
|
-
L:
|
|
1354
|
+
L: 176,
|
|
1344
1355
|
S: this,
|
|
1345
1356
|
C: (f, a) => f(...a)
|
|
1346
1357
|
});
|
|
@@ -1354,7 +1365,7 @@ var ControlPipeline = class {
|
|
|
1354
1365
|
seq: msg.seq
|
|
1355
1366
|
}, {
|
|
1356
1367
|
F: __dxlog_file7,
|
|
1357
|
-
L:
|
|
1368
|
+
L: 186,
|
|
1358
1369
|
S: this,
|
|
1359
1370
|
C: (f, a) => f(...a)
|
|
1360
1371
|
});
|
|
@@ -1369,7 +1380,7 @@ var ControlPipeline = class {
|
|
|
1369
1380
|
msg
|
|
1370
1381
|
}, {
|
|
1371
1382
|
F: __dxlog_file7,
|
|
1372
|
-
L:
|
|
1383
|
+
L: 195,
|
|
1373
1384
|
S: this,
|
|
1374
1385
|
C: (f, a) => f(...a)
|
|
1375
1386
|
});
|
|
@@ -1388,7 +1399,7 @@ var ControlPipeline = class {
|
|
|
1388
1399
|
async stop() {
|
|
1389
1400
|
(0, import_log7.log)("stopping...", void 0, {
|
|
1390
1401
|
F: __dxlog_file7,
|
|
1391
|
-
L:
|
|
1402
|
+
L: 215,
|
|
1392
1403
|
S: this,
|
|
1393
1404
|
C: (f, a) => f(...a)
|
|
1394
1405
|
});
|
|
@@ -1397,7 +1408,7 @@ var ControlPipeline = class {
|
|
|
1397
1408
|
await this._saveTargetTimeframe(this._pipeline.state.timeframe);
|
|
1398
1409
|
(0, import_log7.log)("stopped", void 0, {
|
|
1399
1410
|
F: __dxlog_file7,
|
|
1400
|
-
L:
|
|
1411
|
+
L: 219,
|
|
1401
1412
|
S: this,
|
|
1402
1413
|
C: (f, a) => f(...a)
|
|
1403
1414
|
});
|
|
@@ -1410,7 +1421,7 @@ var ControlPipeline = class {
|
|
|
1410
1421
|
} catch (err) {
|
|
1411
1422
|
(0, import_log7.log)(err, void 0, {
|
|
1412
1423
|
F: __dxlog_file7,
|
|
1413
|
-
L:
|
|
1424
|
+
L: 228,
|
|
1414
1425
|
S: this,
|
|
1415
1426
|
C: (f, a) => f(...a)
|
|
1416
1427
|
});
|
|
@@ -1449,15 +1460,15 @@ function _ts_decorate5(decorators, target, key, desc) {
|
|
|
1449
1460
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1450
1461
|
}
|
|
1451
1462
|
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/space/space.ts";
|
|
1452
|
-
var Space = class {
|
|
1463
|
+
var Space = class extends import_context5.Resource {
|
|
1453
1464
|
constructor(params) {
|
|
1465
|
+
super();
|
|
1454
1466
|
this._addFeedMutex = new import_async5.Mutex();
|
|
1455
1467
|
this.onCredentialProcessed = new import_util3.Callback();
|
|
1456
1468
|
this.stateUpdate = new import_async5.Event();
|
|
1457
|
-
this._isOpen = false;
|
|
1458
1469
|
(0, import_invariant6.invariant)(params.spaceKey && params.feedProvider, void 0, {
|
|
1459
1470
|
F: __dxlog_file8,
|
|
1460
|
-
L:
|
|
1471
|
+
L: 74,
|
|
1461
1472
|
S: this,
|
|
1462
1473
|
A: [
|
|
1463
1474
|
"params.spaceKey && params.feedProvider",
|
|
@@ -1490,12 +1501,34 @@ var Space = class {
|
|
|
1490
1501
|
credential
|
|
1491
1502
|
}, {
|
|
1492
1503
|
F: __dxlog_file8,
|
|
1493
|
-
L:
|
|
1504
|
+
L: 101,
|
|
1494
1505
|
S: this,
|
|
1495
1506
|
C: (f, a) => f(...a)
|
|
1496
1507
|
});
|
|
1497
1508
|
this.stateUpdate.emit();
|
|
1498
1509
|
});
|
|
1510
|
+
this._controlPipeline.onDelegatedInvitation.set(async (invitation) => {
|
|
1511
|
+
(0, import_log6.log)("onDelegatedInvitation", {
|
|
1512
|
+
invitation
|
|
1513
|
+
}, {
|
|
1514
|
+
F: __dxlog_file8,
|
|
1515
|
+
L: 105,
|
|
1516
|
+
S: this,
|
|
1517
|
+
C: (f, a) => f(...a)
|
|
1518
|
+
});
|
|
1519
|
+
await params.onDelegatedInvitationStatusChange(invitation, true);
|
|
1520
|
+
});
|
|
1521
|
+
this._controlPipeline.onDelegatedInvitationRemoved.set(async (invitation) => {
|
|
1522
|
+
(0, import_log6.log)("onDelegatedInvitationRemoved", {
|
|
1523
|
+
invitation
|
|
1524
|
+
}, {
|
|
1525
|
+
F: __dxlog_file8,
|
|
1526
|
+
L: 109,
|
|
1527
|
+
S: this,
|
|
1528
|
+
C: (f, a) => f(...a)
|
|
1529
|
+
});
|
|
1530
|
+
await params.onDelegatedInvitationStatusChange(invitation, false);
|
|
1531
|
+
});
|
|
1499
1532
|
this.protocol = params.protocol;
|
|
1500
1533
|
this.protocol.addFeed(params.genesisFeed);
|
|
1501
1534
|
}
|
|
@@ -1503,7 +1536,7 @@ var Space = class {
|
|
|
1503
1536
|
return this._key;
|
|
1504
1537
|
}
|
|
1505
1538
|
get isOpen() {
|
|
1506
|
-
return this.
|
|
1539
|
+
return this._lifecycleState === import_context5.LifecycleState.OPEN;
|
|
1507
1540
|
}
|
|
1508
1541
|
get genesisFeedKey() {
|
|
1509
1542
|
return this._genesisFeedKey;
|
|
@@ -1529,7 +1562,7 @@ var Space = class {
|
|
|
1529
1562
|
async setControlFeed(feed) {
|
|
1530
1563
|
(0, import_invariant6.invariant)(!this._controlFeed, "Control feed already set.", {
|
|
1531
1564
|
F: __dxlog_file8,
|
|
1532
|
-
L:
|
|
1565
|
+
L: 156,
|
|
1533
1566
|
S: this,
|
|
1534
1567
|
A: [
|
|
1535
1568
|
"!this._controlFeed",
|
|
@@ -1543,7 +1576,7 @@ var Space = class {
|
|
|
1543
1576
|
async setDataFeed(feed) {
|
|
1544
1577
|
(0, import_invariant6.invariant)(!this._dataFeed, "Data feed already set.", {
|
|
1545
1578
|
F: __dxlog_file8,
|
|
1546
|
-
L:
|
|
1579
|
+
L: 163,
|
|
1547
1580
|
S: this,
|
|
1548
1581
|
A: [
|
|
1549
1582
|
"!this._dataFeed",
|
|
@@ -1559,50 +1592,36 @@ var Space = class {
|
|
|
1559
1592
|
getControlFeeds() {
|
|
1560
1593
|
return Array.from(this._controlPipeline.spaceState.feeds.values());
|
|
1561
1594
|
}
|
|
1562
|
-
|
|
1563
|
-
* Use for diagnostics.
|
|
1564
|
-
*/
|
|
1565
|
-
// getDataFeeds(): FeedInfo[] {
|
|
1566
|
-
// return this._dataPipeline?.getFeeds();
|
|
1567
|
-
// }
|
|
1568
|
-
async open(ctx) {
|
|
1595
|
+
async _open(ctx) {
|
|
1569
1596
|
(0, import_log6.log)("opening...", void 0, {
|
|
1570
1597
|
F: __dxlog_file8,
|
|
1571
|
-
L:
|
|
1598
|
+
L: 177,
|
|
1572
1599
|
S: this,
|
|
1573
1600
|
C: (f, a) => f(...a)
|
|
1574
1601
|
});
|
|
1575
|
-
if (this._isOpen) {
|
|
1576
|
-
return;
|
|
1577
|
-
}
|
|
1578
1602
|
await this._controlPipeline.start();
|
|
1579
1603
|
await this.protocol.start();
|
|
1580
|
-
this._isOpen = true;
|
|
1581
1604
|
(0, import_log6.log)("opened", void 0, {
|
|
1582
1605
|
F: __dxlog_file8,
|
|
1583
|
-
L:
|
|
1606
|
+
L: 183,
|
|
1584
1607
|
S: this,
|
|
1585
1608
|
C: (f, a) => f(...a)
|
|
1586
1609
|
});
|
|
1587
1610
|
}
|
|
1588
|
-
async
|
|
1611
|
+
async _close() {
|
|
1589
1612
|
(0, import_log6.log)("closing...", {
|
|
1590
1613
|
key: this._key
|
|
1591
1614
|
}, {
|
|
1592
1615
|
F: __dxlog_file8,
|
|
1593
|
-
L:
|
|
1616
|
+
L: 188,
|
|
1594
1617
|
S: this,
|
|
1595
1618
|
C: (f, a) => f(...a)
|
|
1596
1619
|
});
|
|
1597
|
-
if (!this._isOpen) {
|
|
1598
|
-
return;
|
|
1599
|
-
}
|
|
1600
1620
|
await this.protocol.stop();
|
|
1601
1621
|
await this._controlPipeline.stop();
|
|
1602
|
-
this._isOpen = false;
|
|
1603
1622
|
(0, import_log6.log)("closed", void 0, {
|
|
1604
1623
|
F: __dxlog_file8,
|
|
1605
|
-
L:
|
|
1624
|
+
L: 194,
|
|
1606
1625
|
S: this,
|
|
1607
1626
|
C: (f, a) => f(...a)
|
|
1608
1627
|
});
|
|
@@ -1619,12 +1638,11 @@ _ts_decorate5([
|
|
|
1619
1638
|
import_tracing.trace.info()
|
|
1620
1639
|
], Space.prototype, "key", null);
|
|
1621
1640
|
_ts_decorate5([
|
|
1622
|
-
import_async5.synchronized,
|
|
1623
1641
|
import_tracing.trace.span()
|
|
1624
|
-
], Space.prototype, "
|
|
1642
|
+
], Space.prototype, "_open", null);
|
|
1625
1643
|
_ts_decorate5([
|
|
1626
1644
|
import_async5.synchronized
|
|
1627
|
-
], Space.prototype, "
|
|
1645
|
+
], Space.prototype, "_close", null);
|
|
1628
1646
|
Space = _ts_decorate5([
|
|
1629
1647
|
(0, import_async5.trackLeaks)("open", "close"),
|
|
1630
1648
|
import_tracing.trace.resource()
|
|
@@ -1864,12 +1882,12 @@ var SpaceManager = class {
|
|
|
1864
1882
|
...this._spaces.values()
|
|
1865
1883
|
].map((space) => space.close()));
|
|
1866
1884
|
}
|
|
1867
|
-
async constructSpace({ metadata, swarmIdentity, onAuthorizedConnection, onAuthFailure, memberKey }) {
|
|
1885
|
+
async constructSpace({ metadata, swarmIdentity, onAuthorizedConnection, onAuthFailure, onDelegatedInvitationStatusChange, memberKey }) {
|
|
1868
1886
|
import_log9.log.trace("dxos.echo.space-manager.construct-space", import_protocols6.trace.begin({
|
|
1869
1887
|
id: this._instanceId
|
|
1870
1888
|
}), {
|
|
1871
1889
|
F: __dxlog_file10,
|
|
1872
|
-
L:
|
|
1890
|
+
L: 92,
|
|
1873
1891
|
S: this,
|
|
1874
1892
|
C: (f, a) => f(...a)
|
|
1875
1893
|
});
|
|
@@ -1877,7 +1895,7 @@ var SpaceManager = class {
|
|
|
1877
1895
|
spaceKey: metadata.genesisFeedKey
|
|
1878
1896
|
}, {
|
|
1879
1897
|
F: __dxlog_file10,
|
|
1880
|
-
L:
|
|
1898
|
+
L: 93,
|
|
1881
1899
|
S: this,
|
|
1882
1900
|
C: (f, a) => f(...a)
|
|
1883
1901
|
});
|
|
@@ -1899,14 +1917,15 @@ var SpaceManager = class {
|
|
|
1899
1917
|
feedProvider: (feedKey, opts) => this._feedStore.openFeed(feedKey, opts),
|
|
1900
1918
|
metadataStore: this._metadataStore,
|
|
1901
1919
|
snapshotManager,
|
|
1902
|
-
memberKey
|
|
1920
|
+
memberKey,
|
|
1921
|
+
onDelegatedInvitationStatusChange
|
|
1903
1922
|
});
|
|
1904
1923
|
this._spaces.set(space.key, space);
|
|
1905
1924
|
import_log9.log.trace("dxos.echo.space-manager.construct-space", import_protocols6.trace.end({
|
|
1906
1925
|
id: this._instanceId
|
|
1907
1926
|
}), {
|
|
1908
1927
|
F: __dxlog_file10,
|
|
1909
|
-
L:
|
|
1928
|
+
L: 121,
|
|
1910
1929
|
S: this,
|
|
1911
1930
|
C: (f, a) => f(...a)
|
|
1912
1931
|
});
|
|
@@ -1940,9 +1959,10 @@ SpaceManager = _ts_decorate7([
|
|
|
1940
1959
|
TimeframeClock,
|
|
1941
1960
|
codec,
|
|
1942
1961
|
createMappedFeedWriter,
|
|
1962
|
+
hasInvitationExpired,
|
|
1943
1963
|
mapFeedIndexesToTimeframe,
|
|
1944
1964
|
mapTimeframeToFeedIndexes,
|
|
1945
1965
|
startAfter,
|
|
1946
1966
|
valueEncoding
|
|
1947
1967
|
});
|
|
1948
|
-
//# sourceMappingURL=chunk-
|
|
1968
|
+
//# sourceMappingURL=chunk-YZA42CKA.cjs.map
|