@dxos/messaging 0.8.4-main.cb12b3f963 → 0.8.4-main.d05539e30a

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/LICENSE CHANGED
@@ -1,8 +1,105 @@
1
- MIT License
2
- Copyright (c) 2022 DXOS
1
+ # Functional Source License, Version 1.1, ALv2 Future License
3
2
 
4
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
3
+ ## Abbreviation
5
4
 
6
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
5
+ FSL-1.1-Apache-2.0
7
6
 
8
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7
+ ## Notice
8
+
9
+ Copyright 2026 DXOS
10
+
11
+ ## Terms and Conditions
12
+
13
+ ### Licensor ("We")
14
+
15
+ The party offering the Software under these Terms and Conditions.
16
+
17
+ ### The Software
18
+
19
+ The "Software" is each version of the software that we make available under
20
+ these Terms and Conditions, as indicated by our inclusion of these Terms and
21
+ Conditions with the Software.
22
+
23
+ ### License Grant
24
+
25
+ Subject to your compliance with this License Grant and the Patents,
26
+ Redistribution and Trademark clauses below, we hereby grant you the right to
27
+ use, copy, modify, create derivative works, publicly perform, publicly display
28
+ and redistribute the Software for any Permitted Purpose identified below.
29
+
30
+ ### Permitted Purpose
31
+
32
+ A Permitted Purpose is any purpose other than a Competing Use. A Competing Use
33
+ means making the Software available to others in a commercial product or
34
+ service that:
35
+
36
+ 1. substitutes for the Software;
37
+
38
+ 2. substitutes for any other product or service we offer using the Software
39
+ that exists as of the date we make the Software available; or
40
+
41
+ 3. offers the same or substantially similar functionality as the Software.
42
+
43
+ Permitted Purposes specifically include using the Software:
44
+
45
+ 1. for your internal use and access;
46
+
47
+ 2. for non-commercial education;
48
+
49
+ 3. for non-commercial research; and
50
+
51
+ 4. in connection with professional services that you provide to a licensee
52
+ using the Software in accordance with these Terms and Conditions.
53
+
54
+ ### Patents
55
+
56
+ To the extent your use for a Permitted Purpose would necessarily infringe our
57
+ patents, the license grant above includes a license under our patents. If you
58
+ make a claim against any party that the Software infringes or contributes to
59
+ the infringement of any patent, then your patent license to the Software ends
60
+ immediately.
61
+
62
+ ### Redistribution
63
+
64
+ The Terms and Conditions apply to all copies, modifications and derivatives of
65
+ the Software.
66
+
67
+ If you redistribute any copies, modifications or derivatives of the Software,
68
+ you must include a copy of or a link to these Terms and Conditions and not
69
+ remove any copyright notices provided in or with the Software.
70
+
71
+ ### Disclaimer
72
+
73
+ THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR
74
+ IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR
75
+ PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
76
+
77
+ IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE
78
+ SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
79
+ EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
80
+
81
+ ### Trademarks
82
+
83
+ Except for displaying the License Details and identifying us as the origin of
84
+ the Software, you have no right under these Terms and Conditions to use our
85
+ trademarks, trade names, service marks or product names.
86
+
87
+ ## Grant of Future License
88
+
89
+ We hereby irrevocably grant you an additional license to use the Software under
90
+ the Apache License, Version 2.0 that is effective on the second anniversary of
91
+ the date we make the Software available. On or after that date, you may use the
92
+ Software under the Apache License, Version 2.0, in which case the following
93
+ will apply:
94
+
95
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
96
+ this file except in compliance with the License.
97
+
98
+ You may obtain a copy of the License at
99
+
100
+ http://www.apache.org/licenses/LICENSE-2.0
101
+
102
+ Unless required by applicable law or agreed to in writing, software distributed
103
+ under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
104
+ CONDITIONS OF ANY KIND, either express or implied. See the License for the
105
+ specific language governing permissions and limitations under the License.
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/signal-client/signal-client.ts", "../../../src/signal-client/signal-client-monitor.ts", "../../../src/signal-client/signal-local-state.ts", "../../../src/signal-client/signal-rpc-client.ts", "../../../src/signal-client/signal-rpc-client-monitor.ts", "../../../src/signal-manager/websocket-signal-manager.ts", "../../../src/signal-manager/websocket-signal-manager-monitor.ts", "../../../src/signal-manager/edge-signal-manager.ts", "../../../src/signal-manager/utils.ts"],
4
4
  "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nimport { DeferredTask, Event, Trigger, scheduleTask, scheduleTaskInterval, sleep } from '@dxos/async';\nimport { type Context, Resource, cancelWithContext } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type SwarmResponse } from '@dxos/protocols/proto/dxos/edge/messenger';\nimport { type JoinRequest, type LeaveRequest, type QueryRequest } from '@dxos/protocols/proto/dxos/edge/signal';\nimport { SignalState } from '@dxos/protocols/proto/dxos/mesh/signal';\n\nimport {\n type Message,\n type PeerInfo,\n type SignalClientMethods,\n type SignalStatus,\n type SwarmEvent,\n} from '../signal-methods';\nimport { SignalClientMonitor } from './signal-client-monitor';\nimport { SignalLocalState } from './signal-local-state';\nimport { SignalRPCClient } from './signal-rpc-client';\n\nconst DEFAULT_RECONNECT_TIMEOUT = 100;\nconst MAX_RECONNECT_TIMEOUT = 5_000;\nconst ERROR_RECONCILE_DELAY = 1_000;\nconst RECONCILE_INTERVAL = 5_000;\n\n/**\n * KUBE-specific signaling client.\n * Establishes a websocket connection to signal server and provides RPC methods.\n * Subscription state updates are executed immediately against the local state which\n * is reconciled periodically.\n * TODO(mykola): Delete.\n * @deprecated\n */\n// TODO(burdon): Rename impl.\nexport class SignalClient extends Resource implements SignalClientMethods {\n private readonly _monitor = new SignalClientMonitor();\n\n private _state = SignalState.CLOSED;\n private _lastError?: Error;\n private _lastReconciliationFailed = false;\n\n private readonly _clientReady = new Trigger();\n private _connectionCtx?: Context;\n private _client?: SignalRPCClient;\n\n private _reconcileTask?: DeferredTask;\n private _reconnectTask?: DeferredTask;\n\n /**\n * Number of milliseconds after which the connection will be attempted again in case of error.\n */\n private _reconnectAfter = DEFAULT_RECONNECT_TIMEOUT;\n\n /**\n * @internal\n */\n readonly localState: SignalLocalState;\n\n readonly statusChanged = new Event<SignalStatus>();\n\n public readonly onMessage = new Event<Message>();\n public readonly swarmEvent = new Event<SwarmEvent>();\n\n /**\n * @param _host Signal server websocket URL.\n * @param onMessage called when a new message is received.\n * @param onSwarmEvent called when a new swarm event is received.\n * @param _getMetadata signal-message metadata provider, called for every message.\n */\n constructor(\n private readonly _host: string,\n private readonly _getMetadata?: () => any,\n ) {\n super();\n if (!this._host.startsWith('wss://') && !this._host.startsWith('ws://')) {\n throw new Error(`Signal server requires a websocket URL. Provided: ${this._host}`);\n }\n\n this.localState = new SignalLocalState(\n async (message) => {\n this._monitor.recordMessageReceived(message);\n this.onMessage.emit(message);\n },\n async (event) => this.swarmEvent.emit(event),\n );\n }\n\n protected override async _open(): Promise<void> {\n log('opening signal client');\n\n if ([SignalState.CONNECTED, SignalState.CONNECTING].includes(this._state)) {\n return;\n }\n this._setState(SignalState.CONNECTING);\n\n this._reconcileTask = new DeferredTask(this._ctx, async () => {\n try {\n await cancelWithContext(this._connectionCtx!, this._clientReady.wait({ timeout: 5_000 }));\n invariant(this._state === SignalState.CONNECTED, 'Not connected to Signal Server');\n await this.localState.reconcile(this._connectionCtx!, this._client!);\n this._monitor.recordReconciliation({ success: true });\n this._lastReconciliationFailed = false;\n } catch (err) {\n this._lastReconciliationFailed = true;\n this._monitor.recordReconciliation({ success: false });\n throw err;\n }\n });\n\n // Reconcile subscriptions periodically.\n scheduleTaskInterval(\n this._ctx,\n async () => {\n if (this._state === SignalState.CONNECTED) {\n this._reconcileTask!.schedule();\n }\n },\n RECONCILE_INTERVAL,\n );\n\n this._reconnectTask = new DeferredTask(this._ctx, async () => {\n try {\n await this._reconnect();\n this._monitor.recordReconnect({ success: true });\n } catch (err) {\n this._monitor.recordReconnect({ success: false });\n throw err;\n }\n });\n\n this._createClient();\n log('opened signal client');\n }\n\n protected override async _catch(err: Error): Promise<void> {\n if (this._state === SignalState.CLOSED || this._ctx.disposed) {\n return;\n }\n // Don't log consecutive reconciliation failures.\n if (this._state === SignalState.CONNECTED && !this._lastReconciliationFailed) {\n log.warn('SignalClient error:', err);\n }\n this._scheduleReconcileAfterError();\n }\n\n protected override async _close(): Promise<void> {\n log('closing...');\n if ([SignalState.CLOSED].includes(this._state)) {\n return;\n }\n\n this._setState(SignalState.CLOSED);\n await this._safeResetClient();\n\n log('closed');\n }\n\n getStatus(): SignalStatus {\n return {\n host: this._host,\n state: this._state,\n error: this._lastError?.message,\n reconnectIn: this._reconnectAfter,\n ...this._monitor.getRecordedTimestamps(),\n };\n }\n\n async join(_ctx: Context, args: JoinRequest): Promise<void> {\n log('joining', { topic: args.topic, peerId: args.peer.peerKey });\n this._monitor.recordJoin();\n this.localState.join({ topic: args.topic, peerId: PublicKey.from(args.peer.peerKey) });\n this._reconcileTask?.schedule();\n }\n\n async leave(_ctx: Context, args: LeaveRequest): Promise<void> {\n log('leaving', { topic: args.topic, peerId: args.peer.peerKey });\n this._monitor.recordLeave();\n this.localState.leave({ topic: args.topic, peerId: PublicKey.from(args.peer.peerKey) });\n }\n\n async query(_ctx: Context, params: QueryRequest): Promise<SwarmResponse> {\n throw new Error('Not implemented');\n }\n\n async sendMessage(_ctx: Context, msg: Message): Promise<void> {\n return this._monitor.recordMessageSending(msg, async () => {\n await this._clientReady.wait();\n invariant(this._state === SignalState.CONNECTED, 'Not connected to Signal Server');\n invariant(msg.author.peerKey, 'Author key required');\n invariant(msg.recipient.peerKey, 'Recipient key required');\n await this._client!.sendMessage({\n author: PublicKey.from(msg.author.peerKey),\n recipient: PublicKey.from(msg.recipient.peerKey),\n payload: msg.payload,\n });\n });\n }\n\n async subscribeMessages(peer: PeerInfo): Promise<void> {\n invariant(peer.peerKey, 'Peer key required');\n log('subscribing to messages', { peer });\n this.localState.subscribeMessages(PublicKey.from(peer.peerKey));\n this._reconcileTask?.schedule();\n }\n\n async unsubscribeMessages(peer: PeerInfo): Promise<void> {\n invariant(peer.peerKey, 'Peer key required');\n log('unsubscribing from messages', { peer });\n this.localState.unsubscribeMessages(PublicKey.from(peer.peerKey));\n }\n\n private _scheduleReconcileAfterError(): void {\n scheduleTask(this._ctx, () => this._reconcileTask!.schedule(), ERROR_RECONCILE_DELAY);\n }\n\n private _createClient(): void {\n log('creating client', { host: this._host, state: this._state });\n invariant(!this._client, 'Client already created');\n\n this._monitor.recordConnectionStartTime();\n\n // Create new context for each connection.\n this._connectionCtx = this._ctx.derive();\n this._connectionCtx.onDispose(async () => {\n log('connection context disposed');\n const { failureCount } = await this.localState.safeCloseStreams();\n this._monitor.recordStreamCloseErrors(failureCount);\n });\n\n try {\n const client = new SignalRPCClient({\n url: this._host,\n callbacks: {\n onConnected: () => {\n if (client === this._client) {\n log('socket connected');\n this._onConnected();\n }\n },\n\n onDisconnected: () => {\n if (client !== this._client) {\n return;\n }\n log('socket disconnected', { state: this._state });\n if (this._state === SignalState.ERROR) {\n // Ignore disconnects after error.\n // Handled by error handler before disconnect handler.\n this._setState(SignalState.DISCONNECTED);\n } else {\n this._onDisconnected();\n }\n },\n\n onError: (error) => {\n if (client === this._client) {\n log('socket error', { error, state: this._state });\n this._onDisconnected({ error });\n }\n },\n getMetadata: this._getMetadata,\n },\n });\n this._client = client;\n } catch (error: any) {\n this._client = undefined;\n this._onDisconnected({ error });\n }\n }\n\n private async _reconnect(): Promise<void> {\n log(`reconnecting in ${this._reconnectAfter}ms`, { state: this._state });\n\n if (this._state === SignalState.RECONNECTING) {\n log.info('Signal api already reconnecting.');\n return;\n }\n if (this._state === SignalState.CLOSED) {\n return;\n }\n this._setState(SignalState.RECONNECTING);\n\n await this._safeResetClient();\n\n await cancelWithContext(this._ctx!, sleep(this._reconnectAfter));\n\n this._createClient();\n }\n\n private _onConnected(): void {\n this._lastError = undefined;\n this._lastReconciliationFailed = false;\n this._reconnectAfter = DEFAULT_RECONNECT_TIMEOUT;\n this._setState(SignalState.CONNECTED);\n this._clientReady.wake();\n this._reconcileTask!.schedule();\n }\n\n private _onDisconnected(options?: { error: Error }): void {\n this._updateReconnectTimeout();\n if (this._state === SignalState.CLOSED) {\n return;\n }\n if (options?.error) {\n this._lastError = options.error;\n this._setState(SignalState.ERROR);\n } else {\n this._setState(SignalState.DISCONNECTED);\n }\n this._reconnectTask!.schedule();\n }\n\n private _setState(newState: SignalState): void {\n this._state = newState;\n this._monitor.recordStateChangeTime();\n log('signal state changed', { status: this.getStatus() });\n this.statusChanged.emit(this.getStatus());\n }\n\n private _updateReconnectTimeout(): void {\n if (this._state !== SignalState.CONNECTED && this._state !== SignalState.CONNECTING) {\n this._reconnectAfter *= 2;\n this._reconnectAfter = Math.min(this._reconnectAfter, MAX_RECONNECT_TIMEOUT);\n }\n }\n\n private async _safeResetClient(): Promise<void> {\n await this._connectionCtx?.dispose();\n this._connectionCtx = undefined;\n\n this._clientReady.reset();\n await this._client?.close().catch(() => {});\n this._client = undefined;\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { trace } from '@dxos/tracing';\n\nimport type { Message } from '../signal-methods';\n\nexport class SignalClientMonitor {\n private readonly _performance = {\n sentMessages: 0,\n receivedMessages: 0,\n reconnectCounter: 0,\n joinCounter: 0,\n leaveCounter: 0,\n };\n\n /**\n * Timestamp of when the connection attempt was began.\n */\n private _connectionStarted = new Date();\n /**\n * Timestamp of last state change.\n */\n private _lastStateChange = new Date();\n\n public getRecordedTimestamps(): { connectionStarted: Date; lastStateChange: Date } {\n return {\n connectionStarted: this._connectionStarted,\n lastStateChange: this._lastStateChange,\n };\n }\n\n public recordStateChangeTime(): void {\n this._lastStateChange = new Date();\n }\n\n public recordConnectionStartTime(): void {\n this._connectionStarted = new Date();\n }\n\n public recordReconnect(params: { success: boolean }): void {\n this._performance.reconnectCounter++;\n trace.metrics.increment('dxos.mesh.signal.signal-client.reconnect', 1, {\n tags: {\n success: params.success,\n },\n });\n }\n\n public recordJoin(): void {\n this._performance.joinCounter++;\n }\n\n public recordLeave(): void {\n this._performance.leaveCounter++;\n }\n\n public recordMessageReceived(message: Message): void {\n this._performance.receivedMessages++;\n trace.metrics.increment('dxos.mesh.signal.signal-client.received-total', 1, {\n tags: createIdentityTags(message),\n });\n trace.metrics.distribution('dxos.mesh.signal.signal-client.bytes-in', getByteCount(message), {\n tags: createIdentityTags(message),\n });\n }\n\n public async recordMessageSending(message: Message, sendMessage: () => Promise<void>): Promise<void> {\n this._performance.sentMessages++;\n const tags = createIdentityTags(message);\n let success = true;\n try {\n const reqStart = Date.now();\n await sendMessage();\n const reqDuration = Date.now() - reqStart;\n trace.metrics.distribution('dxos.mesh.signal.signal-client.send-duration', reqDuration, { tags });\n trace.metrics.distribution('dxos.mesh.signal.signal-client.bytes-out', getByteCount(message), { tags });\n } catch (err) {\n success = false;\n }\n trace.metrics.increment('dxos.mesh.signal.signal-client.sent-total', 1, {\n tags: { ...tags, success },\n });\n }\n\n public recordStreamCloseErrors(count: number): void {\n trace.metrics.increment('dxos.mesh.signal.signal-client.stream-close-errors', count);\n }\n\n public recordReconciliation(params: { success: boolean }): void {\n trace.metrics.increment('dxos.mesh.signal.signal-client.reconciliation', 1, {\n tags: {\n success: params.success,\n },\n });\n }\n}\n\nconst getByteCount = (message: Message): number => {\n return (\n message.author.peerKey.length +\n message.recipient.peerKey.length +\n message.payload.type_url.length +\n message.payload.value.length\n );\n};\n\nconst createIdentityTags = (message: Message) => {\n return { peer: message.author.peerKey };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Event, asyncTimeout } from '@dxos/async';\nimport type { Stream } from '@dxos/codec-protobuf/stream';\nimport { type Context, cancelWithContext } from '@dxos/context';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport {\n type Message as SignalMessage,\n type SwarmEvent as SwarmEventProto,\n} from '@dxos/protocols/proto/dxos/mesh/signal';\nimport { ComplexMap, ComplexSet, safeAwaitAll } from '@dxos/util';\n\nimport type { Message, SwarmEvent } from '../signal-methods';\nimport { type SignalRPCClient } from './signal-rpc-client';\n\nexport class SignalLocalState {\n /**\n * Swarm events streams. Keys represent actually joined topic and peerId.\n */\n private readonly _swarmStreams = new ComplexMap<{ topic: PublicKey; peerId: PublicKey }, Stream<SwarmEventProto>>(\n ({ topic, peerId }) => topic.toHex() + peerId.toHex(),\n );\n\n /**\n * Represent desired joined topic and peerId.\n */\n private readonly _joinedTopics = new ComplexSet<{ topic: PublicKey; peerId: PublicKey }>(\n ({ topic, peerId }) => topic.toHex() + peerId.toHex(),\n );\n\n /**\n * Represent desired message subscriptions.\n */\n private readonly _subscribedMessages = new ComplexSet<{ peerId: PublicKey }>(({ peerId }) => peerId.toHex());\n\n /**\n * Message streams. Keys represents actually subscribed peers.\n * @internal\n */\n readonly messageStreams = new ComplexMap<PublicKey, Stream<SignalMessage>>((key) => key.toHex());\n\n /**\n * Event to use in tests to wait till subscription is successfully established.\n * @internal\n */\n readonly reconciled = new Event();\n\n constructor(\n private readonly _onMessage: (params: Message) => Promise<void>,\n private readonly _onSwarmEvent: (params: SwarmEvent) => Promise<void>,\n ) {}\n\n async safeCloseStreams(): Promise<{ failureCount: number }> {\n const streams = ([...this._swarmStreams.values()] as Stream<any>[]).concat([...this.messageStreams.values()]);\n this._swarmStreams.clear();\n this.messageStreams.clear();\n const failureCount = (await safeAwaitAll(streams, (s) => s.close())).length;\n return { failureCount };\n }\n\n join({ topic, peerId }: { topic: PublicKey; peerId: PublicKey }): void {\n this._joinedTopics.add({ topic, peerId });\n }\n\n leave({ topic, peerId }: { topic: PublicKey; peerId: PublicKey }): void {\n void this._swarmStreams.get({ topic, peerId })?.close();\n this._swarmStreams.delete({ topic, peerId });\n this._joinedTopics.delete({ topic, peerId });\n }\n\n subscribeMessages(peerId: PublicKey): void {\n this._subscribedMessages.add({ peerId });\n }\n\n unsubscribeMessages(peerId: PublicKey): void {\n log('unsubscribing from messages', { peerId });\n this._subscribedMessages.delete({ peerId });\n void this.messageStreams.get(peerId)?.close();\n this.messageStreams.delete(peerId);\n }\n\n public async reconcile(ctx: Context, client: SignalRPCClient): Promise<void> {\n await this._reconcileSwarmSubscriptions(ctx, client);\n await this._reconcileMessageSubscriptions(ctx, client);\n this.reconciled.emit();\n }\n\n private async _reconcileSwarmSubscriptions(ctx: Context, client: SignalRPCClient): Promise<void> {\n // Unsubscribe from topics that are no longer needed.\n for (const { topic, peerId } of this._swarmStreams.keys()) {\n // Join desired topics.\n if (this._joinedTopics.has({ topic, peerId })) {\n continue;\n }\n\n void this._swarmStreams.get({ topic, peerId })?.close();\n this._swarmStreams.delete({ topic, peerId });\n }\n\n // Subscribe to topics that are needed.\n for (const { topic, peerId } of this._joinedTopics.values()) {\n // Join desired topics.\n if (this._swarmStreams.has({ topic, peerId })) {\n continue;\n }\n\n const swarmStream = await asyncTimeout(cancelWithContext(ctx, client.join({ topic, peerId })), 5_000);\n // Subscribing to swarm events.\n // TODO(mykola): What happens when the swarm stream is closed? Maybe send leave event for each peer?\n swarmStream.subscribe(async (swarmEvent: SwarmEventProto) => {\n if (this._joinedTopics.has({ topic, peerId })) {\n log('swarm event', { swarmEvent });\n const event: SwarmEvent = swarmEvent.peerAvailable\n ? {\n topic,\n peerAvailable: {\n ...swarmEvent.peerAvailable,\n peer: { peerKey: PublicKey.from(swarmEvent.peerAvailable.peer).toHex() },\n },\n }\n : {\n topic,\n peerLeft: {\n ...swarmEvent.peerLeft,\n peer: { peerKey: PublicKey.from(swarmEvent.peerLeft!.peer).toHex() },\n },\n };\n await this._onSwarmEvent(event);\n }\n });\n\n // Saving swarm stream.\n this._swarmStreams.set({ topic, peerId }, swarmStream);\n }\n }\n\n private async _reconcileMessageSubscriptions(ctx: Context, client: SignalRPCClient): Promise<void> {\n // Unsubscribe from messages that are no longer needed.\n for (const peerId of this.messageStreams.keys()) {\n // Join desired topics.\n if (this._subscribedMessages.has({ peerId })) {\n continue;\n }\n\n void this.messageStreams.get(peerId)?.close();\n this.messageStreams.delete(peerId);\n }\n\n // Subscribe to messages that are needed.\n for (const { peerId } of this._subscribedMessages.values()) {\n if (this.messageStreams.has(peerId)) {\n continue;\n }\n\n const messageStream = await asyncTimeout(cancelWithContext(ctx, client.receiveMessages(peerId)), 5_000);\n messageStream.subscribe(async (signalMessage: SignalMessage) => {\n if (this._subscribedMessages.has({ peerId })) {\n const message: Message = {\n author: { peerKey: PublicKey.from(signalMessage.author).toHex() },\n recipient: { peerKey: PublicKey.from(signalMessage.recipient).toHex() },\n payload: signalMessage.payload,\n };\n await this._onMessage(message);\n }\n });\n\n // Saving message stream.\n this.messageStreams.set(peerId, messageStream);\n }\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport WebSocket from 'isomorphic-ws';\n\nimport { TimeoutError, Trigger, scheduleTaskInterval } from '@dxos/async';\nimport { type Any, type Stream } from '@dxos/codec-protobuf';\nimport { Context } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { schema } from '@dxos/protocols/proto';\nimport { type Signal, type Message as SignalMessage } from '@dxos/protocols/proto/dxos/mesh/signal';\nimport { type ProtoRpcPeer, createProtoRpcPeer } from '@dxos/rpc';\n\nimport { SignalRpcClientMonitor } from './signal-rpc-client-monitor';\n\nconst SIGNAL_KEEPALIVE_INTERVAL = 10000;\n\ninterface Services {\n Signal: Signal;\n}\n\nexport type SignalCallbacks = {\n onConnected?: () => void;\n\n /**\n * Called on disconnect.\n * In case of error, `onError` will be called first and then `onDisconnected`.\n */\n onDisconnected?: () => void;\n\n onError?: (error: Error) => void;\n getMetadata?: () => any;\n};\n\nexport type SignalRPCClientProps = {\n url: string;\n callbacks?: SignalCallbacks;\n};\n\n/**\n * Signal RPC client.\n * TODO(mykola): Delete.\n * @deprecated\n */\nexport class SignalRPCClient {\n private readonly _socket: WebSocket;\n private readonly _rpc: ProtoRpcPeer<Services>;\n private readonly _connectTrigger = new Trigger();\n\n private _keepaliveCtx?: Context;\n\n private _closed = false;\n\n private readonly _url: string;\n private readonly _callbacks: SignalCallbacks;\n private readonly _closeComplete = new Trigger();\n\n private readonly _monitor = new SignalRpcClientMonitor();\n\n constructor({ url, callbacks = {} }: SignalRPCClientProps) {\n log('creating signal rpc client', { url });\n this._url = url;\n this._callbacks = callbacks;\n this._socket = new WebSocket(this._url);\n\n this._rpc = createProtoRpcPeer({\n requested: {\n Signal: schema.getService('dxos.mesh.signal.Signal'),\n },\n noHandshake: true,\n port: {\n send: (msg) => {\n if (this._closed) {\n // Do not send messages after close.\n return;\n }\n try {\n this._socket!.send(msg);\n } catch (err) {\n log.warn('send error', err);\n }\n },\n subscribe: (cb) => {\n this._socket!.onmessage = async (msg: WebSocket.MessageEvent) => {\n if (typeof Blob !== 'undefined' && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data as any);\n }\n };\n },\n },\n encodingOptions: {\n preserveAny: true,\n },\n });\n\n this._socket.onopen = async () => {\n try {\n await this._rpc!.open();\n if (this._closed) {\n await this._safeCloseRpc();\n return;\n }\n log(`RPC open ${this._url}`);\n this._callbacks.onConnected?.();\n this._connectTrigger.wake();\n this._keepaliveCtx = new Context();\n scheduleTaskInterval(\n this._keepaliveCtx,\n async () => {\n // TODO(nf): use RFC6455 ping/pong once implemented in the browser?\n // TODO(nf): check for pong response from server (once implemented)\n // Current implementation of signal server ignores all text data messages, and does not send a response.\n // However this is enough to detect breakages in the connection as TCP will reset the connection if ACKs are not received.\n this._socket?.send('__ping__');\n },\n SIGNAL_KEEPALIVE_INTERVAL,\n );\n } catch (err: any) {\n this._callbacks.onError?.(err);\n this._socket.close();\n this._closed = true;\n }\n };\n\n this._socket.onclose = async () => {\n log(`Disconnected ${this._url}`);\n this._callbacks.onDisconnected?.();\n this._closeComplete.wake();\n await this.close();\n };\n\n this._socket.onerror = async (event: WebSocket.ErrorEvent) => {\n if (this._closed) {\n this._socket.close();\n return;\n }\n this._closed = true;\n\n this._callbacks.onError?.(event.error ?? new Error(event.message));\n await this._safeCloseRpc();\n\n log.warn(`Socket ${event.type ?? 'unknown'} error`, { message: event.message, url: this._url });\n };\n\n log('created signal rpc client', { url });\n }\n\n async close(): Promise<void> {\n if (this._closed) {\n return;\n }\n this._closed = true;\n\n await this._keepaliveCtx?.dispose();\n try {\n await this._safeCloseRpc();\n\n if (this._socket.readyState === WebSocket.OPEN || this._socket.readyState === WebSocket.CONNECTING) {\n // close() only starts the closing handshake.\n this._socket.close();\n }\n\n await this._closeComplete.wait({ timeout: 1_000 });\n } catch (err) {\n const failureReason = err instanceof TimeoutError ? 'timeout' : (err?.constructor?.name ?? 'unknown');\n this._monitor.recordClientCloseFailure({ failureReason });\n }\n }\n\n async join({ topic, peerId }: { topic: PublicKey; peerId: PublicKey }) {\n log('join', { topic, peerId, metadata: this._callbacks?.getMetadata?.() });\n invariant(!this._closed, 'SignalRPCClient is closed');\n await this._connectTrigger.wait();\n const swarmStream = this._rpc.rpc.Signal.join({\n swarm: topic.asUint8Array(),\n peer: peerId.asUint8Array(),\n metadata: this._callbacks?.getMetadata?.(),\n });\n await swarmStream.waitUntilReady();\n return swarmStream;\n }\n\n async receiveMessages(peerId: PublicKey): Promise<Stream<SignalMessage>> {\n log('receiveMessages', { peerId });\n invariant(!this._closed, 'SignalRPCClient is closed');\n await this._connectTrigger.wait();\n const messageStream = this._rpc.rpc.Signal.receiveMessages({\n peer: peerId.asUint8Array(),\n });\n await messageStream.waitUntilReady();\n return messageStream;\n }\n\n async sendMessage({\n author,\n recipient,\n payload,\n }: {\n author: PublicKey;\n recipient: PublicKey;\n payload: Any;\n }): Promise<void> {\n log('sendMessage', { author, recipient, payload, metadata: this._callbacks?.getMetadata?.() });\n invariant(!this._closed, 'SignalRPCClient is closed');\n await this._connectTrigger.wait();\n await this._rpc.rpc.Signal.sendMessage({\n author: author.asUint8Array(),\n recipient: recipient.asUint8Array(),\n payload,\n metadata: this._callbacks?.getMetadata?.(),\n });\n }\n\n private async _safeCloseRpc(): Promise<void> {\n try {\n this._connectTrigger.reset();\n await this._rpc.close();\n } catch (err) {\n log.catch(err);\n }\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { trace } from '@dxos/tracing';\n\nexport class SignalRpcClientMonitor {\n public recordClientCloseFailure(params: { failureReason: string }): void {\n trace.metrics.increment('dxos.mesh.signal.signal-rpc-client.close-failure', 1, {\n tags: {\n reason: params.failureReason,\n },\n });\n }\n}\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { Event, sleep, synchronized } from '@dxos/async';\nimport { type Context, LifecycleState, Resource } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { RateLimitExceededError, TimeoutError } from '@dxos/protocols';\nimport { type Runtime } from '@dxos/protocols/proto/dxos/config';\nimport { type SwarmResponse } from '@dxos/protocols/proto/dxos/edge/messenger';\nimport { type JoinRequest, type LeaveRequest, type QueryRequest } from '@dxos/protocols/proto/dxos/edge/signal';\nimport { BitField, safeAwaitAll } from '@dxos/util';\n\nimport { SignalClient } from '../signal-client';\nimport {\n type Message,\n type PeerInfo,\n type SignalClientMethods,\n type SignalMethods,\n type SignalStatus,\n type SwarmEvent,\n} from '../signal-methods';\nimport { type SignalManager } from './signal-manager';\nimport { WebsocketSignalManagerMonitor } from './websocket-signal-manager-monitor';\n\nconst MAX_SERVER_FAILURES = 5;\nconst WSS_SIGNAL_SERVER_REBOOT_DELAY = 3_000;\n\n/**\n * Manages connection to multiple Signal Servers over WebSocket\n * TODO(mykola): Delete.\n * @deprecated\n */\nexport class WebsocketSignalManager extends Resource implements SignalManager {\n private readonly _servers = new Map<string, SignalClientMethods>();\n private readonly _monitor = new WebsocketSignalManagerMonitor();\n\n /**\n * Used to avoid logging failed server restarts more than once until the server actually recovers.\n */\n private readonly _failedServersBitfield: Uint8Array;\n\n readonly failureCount = new Map<string, number>();\n readonly statusChanged = new Event<SignalStatus[]>();\n readonly swarmEvent = new Event<SwarmEvent>();\n\n readonly onMessage = new Event<Message>();\n\n constructor(\n private readonly _hosts: Runtime.Services.Signal[],\n private readonly _getMetadata?: () => any,\n ) {\n super();\n log('Created WebsocketSignalManager', { hosts: this._hosts });\n for (const host of this._hosts) {\n if (this._servers.has(host.server)) {\n continue;\n }\n\n // TODO(burdon): Create factory to support different variants.\n const server = new SignalClient(host.server, this._getMetadata);\n server.swarmEvent.on((data) => this.swarmEvent.emit(data));\n server.onMessage.on((data) => this.onMessage.emit(data));\n\n server.statusChanged.on(() => this.statusChanged.emit(this.getStatus()));\n\n this._servers.set(host.server, server);\n this.failureCount.set(host.server, 0);\n }\n this._failedServersBitfield = BitField.zeros(this._hosts.length);\n }\n\n protected override async _open(): Promise<void> {\n log('open signal manager', { hosts: this._hosts });\n\n await safeAwaitAll(this._servers.values(), (server) => server.open());\n }\n\n protected override async _close(): Promise<void> {\n await safeAwaitAll(this._servers.values(), (server) => server.close());\n }\n\n async restartServer(serverName: string): Promise<void> {\n log('restarting server', { serverName });\n invariant(this._lifecycleState === LifecycleState.OPEN);\n\n const server = this._servers.get(serverName);\n invariant(server, 'server not found');\n\n await server.close();\n await sleep(WSS_SIGNAL_SERVER_REBOOT_DELAY);\n await server.open();\n }\n\n getStatus(): SignalStatus[] {\n return Array.from(this._servers.values()).map((server) => server.getStatus());\n }\n\n @synchronized\n async join(_ctx: Context, { topic, peer }: JoinRequest): Promise<void> {\n log('join', { topic, peer });\n invariant(this._lifecycleState === LifecycleState.OPEN);\n await this._forEachServer((server) => server.join(_ctx, { topic, peer }));\n }\n\n @synchronized\n async leave(_ctx: Context, { topic, peer }: LeaveRequest): Promise<void> {\n log('leaving', { topic, peer });\n invariant(this._lifecycleState === LifecycleState.OPEN);\n await this._forEachServer((server) => server.leave(_ctx, { topic, peer }));\n }\n\n async query(_ctx: Context, { topic }: QueryRequest): Promise<SwarmResponse> {\n throw new Error('Not implemented');\n }\n\n async sendMessage(_ctx: Context, { author, recipient, payload }: Message): Promise<void> {\n log('signal', { recipient });\n invariant(this._lifecycleState === LifecycleState.OPEN);\n\n void this._forEachServer(async (server, serverName, index) => {\n void server\n .sendMessage(_ctx, { author, recipient, payload })\n .then(() => this._clearServerFailedFlag(serverName, index))\n .catch((err) => {\n if (err instanceof RateLimitExceededError) {\n log.info('WSS rate limit exceeded', { err });\n this._monitor.recordRateLimitExceeded();\n } else if (err instanceof TimeoutError || err.constructor.name === 'TimeoutError') {\n log.info('WSS sendMessage timeout', { err });\n void this.checkServerFailure(serverName, index);\n } else {\n log.warn(`error sending to ${serverName}`, { err });\n void this.checkServerFailure(serverName, index);\n }\n });\n });\n }\n\n @synchronized\n async checkServerFailure(serverName: string, index: number): Promise<void> {\n const failureCount = this.failureCount.get(serverName!) ?? 0;\n const isRestartRequired = failureCount > MAX_SERVER_FAILURES;\n this._monitor.recordServerFailure({ serverName, willRestart: isRestartRequired });\n if (isRestartRequired) {\n if (!BitField.get(this._failedServersBitfield, index)) {\n log.warn('too many failures for ws-server, restarting', { serverName, failureCount });\n BitField.set(this._failedServersBitfield, index, true);\n }\n await this.restartServer(serverName!);\n this.failureCount.set(serverName!, 0);\n return;\n }\n\n this.failureCount.set(serverName!, (this.failureCount.get(serverName!) ?? 0) + 1);\n }\n\n private _clearServerFailedFlag(serverName: string, index: number): void {\n if (BitField.get(this._failedServersBitfield, index)) {\n log.info('server connection restored', { serverName });\n BitField.set(this._failedServersBitfield, index, false);\n this.failureCount.set(serverName!, 0);\n }\n }\n\n async subscribeMessages(peer: PeerInfo): Promise<void> {\n log('subscribed for message stream', { peer });\n invariant(this._lifecycleState === LifecycleState.OPEN);\n\n await this._forEachServer(async (server) => server.subscribeMessages(peer));\n }\n\n async unsubscribeMessages(peer: PeerInfo): Promise<void> {\n log('subscribed for message stream', { peer });\n invariant(this._lifecycleState === LifecycleState.OPEN);\n\n await this._forEachServer(async (server) => server.unsubscribeMessages(peer));\n }\n\n private async _forEachServer<ReturnType>(\n fn: (server: SignalMethods, serverName: string, index: number) => Promise<ReturnType>,\n ): Promise<ReturnType[]> {\n return Promise.all(\n Array.from(this._servers.entries()).map(([serverName, server], idx) => fn(server, serverName, idx)),\n );\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { trace } from '@dxos/tracing';\n\nexport class WebsocketSignalManagerMonitor {\n public recordRateLimitExceeded(): void {\n trace.metrics.increment('dxos.mesh.signal.signal-manager.rate-limit-hit', 1);\n }\n\n public recordServerFailure(params: { serverName: string; willRestart: boolean }): void {\n trace.metrics.increment('dxos.mesh.signal.signal-manager.server-failure', 1, {\n tags: {\n server: params.serverName,\n restarted: params.willRestart,\n },\n });\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Event, scheduleMicroTask } from '@dxos/async';\nimport { type Context, Resource, cancelWithContext } from '@dxos/context';\nimport { type EdgeConnection, EdgeIdentityChangedError, protocol } from '@dxos/edge-client';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { EdgeService } from '@dxos/protocols';\nimport { type buf, bufWkt } from '@dxos/protocols/buf';\nimport {\n type Message as EdgeMessage,\n type PeerSchema,\n SwarmRequest_Action as SwarmRequestAction,\n SwarmRequestSchema,\n SwarmResponseSchema,\n} from '@dxos/protocols/buf/dxos/edge/messenger_pb';\nimport { type SwarmResponse } from '@dxos/protocols/proto/dxos/edge/messenger';\nimport { ComplexMap, ComplexSet } from '@dxos/util';\n\nimport { type Message, type PeerInfo, PeerInfoHash, type SwarmEvent } from '../signal-methods';\nimport { type SignalManager } from './signal-manager';\n\nexport class EdgeSignalManager extends Resource implements SignalManager {\n /**\n * @deprecated\n */\n public swarmEvent = new Event<SwarmEvent>();\n public swarmState = new Event<SwarmResponse>();\n public onMessage = new Event<Message>();\n\n /**\n * Swarm key -> { peer: <own state payload>, joinedPeers: <state of swarm> }.\n */\n // TODO(mykola): This class should not contain swarm state joinedPeers. Temporary before network-manager API changes to accept list of peers.\n private readonly _swarmPeers = new ComplexMap<\n PublicKey,\n { lastState?: Uint8Array; joinedPeers: ComplexSet<PeerInfo> }\n >(PublicKey.hash);\n\n private readonly _edgeConnection: EdgeConnection;\n\n constructor({ edgeConnection }: { edgeConnection: EdgeConnection }) {\n super();\n this._edgeConnection = edgeConnection;\n }\n\n protected override async _open(): Promise<void> {\n this._ctx.onDispose(this._edgeConnection.onMessage((message) => this._onMessage(message)));\n this._ctx.onDispose(\n this._edgeConnection.onReconnected(() => {\n scheduleMicroTask(this._ctx, () => this._rejoinAllSwarms());\n }),\n );\n }\n\n /**\n * Warning: PeerInfo is inferred from edgeConnection.\n */\n async join(ctx: Context, { topic, peer }: { topic: PublicKey; peer: PeerInfo }): Promise<void> {\n if (!this._matchSelfPeerInfo(peer)) {\n // NOTE: Could only join swarm with the same peer info as the edge connection.\n log.warn('ignoring peer info on join request', {\n peer,\n expected: {\n peerKey: this._edgeConnection.peerKey,\n identityKey: this._edgeConnection.identityKey,\n },\n });\n\n peer.identityKey = this._edgeConnection.identityKey;\n peer.peerKey = this._edgeConnection.peerKey;\n }\n\n this._swarmPeers.set(topic, { lastState: peer.state, joinedPeers: new ComplexSet<PeerInfo>(PeerInfoHash) });\n await this._edgeConnection.send(\n ctx,\n protocol.createMessage(SwarmRequestSchema, {\n serviceId: EdgeService.SWARM,\n source: createMessageSource(topic, peer),\n payload: { action: SwarmRequestAction.JOIN, swarmKeys: [topic.toHex()] },\n }),\n );\n }\n\n async leave(ctx: Context, { topic, peer }: { topic: PublicKey; peer: PeerInfo }): Promise<void> {\n this._swarmPeers.delete(topic);\n try {\n await this._edgeConnection.send(\n ctx,\n protocol.createMessage(SwarmRequestSchema, {\n serviceId: EdgeService.SWARM,\n source: createMessageSource(topic, peer),\n payload: { action: SwarmRequestAction.LEAVE, swarmKeys: [topic.toHex()] },\n }),\n );\n } catch (err) {\n if (err instanceof EdgeIdentityChangedError) {\n // Note: On edge identity change, the connection is closed and EDGE will remove us from the swarm.\n // So we should just delete the swarm from _swarmPeers.\n return;\n }\n throw err;\n }\n }\n\n async query(ctx: Context, { topic }: { topic: PublicKey }): Promise<SwarmResponse> {\n const response = cancelWithContext(\n this._ctx,\n this.swarmState.waitFor((state) => state.swarmKey === topic.toHex()),\n );\n\n await this._edgeConnection.send(\n ctx,\n protocol.createMessage(SwarmRequestSchema, {\n serviceId: EdgeService.SWARM,\n source: createMessageSource(topic, {\n peerKey: this._edgeConnection.peerKey,\n identityKey: this._edgeConnection.identityKey,\n }),\n payload: { action: SwarmRequestAction.INFO, swarmKeys: [topic.toHex()] },\n }),\n );\n\n return response;\n }\n\n async sendMessage(ctx: Context, message: Message): Promise<void> {\n if (!this._matchSelfPeerInfo(message.author)) {\n // NOTE: Could only join swarm with the same peer info as the edge connection.\n log.warn('ignoring author on send request', {\n author: message.author,\n expected: { peerKey: this._edgeConnection.peerKey, identityKey: this._edgeConnection.identityKey },\n });\n }\n\n await this._edgeConnection.send(\n ctx,\n protocol.createMessage(bufWkt.AnySchema, {\n serviceId: EdgeService.SIGNAL,\n source: message.author,\n target: [message.recipient],\n payload: { typeUrl: message.payload.type_url, value: message.payload.value },\n }),\n );\n }\n\n async subscribeMessages(peerInfo: PeerInfo): Promise<void> {\n // No-op.\n }\n\n async unsubscribeMessages(peerInfo: PeerInfo): Promise<void> {\n // No-op.\n }\n\n private _onMessage(message: EdgeMessage): void {\n switch (message.serviceId) {\n case EdgeService.SWARM: {\n this._processSwarmResponse(message);\n break;\n }\n case EdgeService.SIGNAL: {\n this._processMessage(message);\n }\n }\n }\n\n private _processSwarmResponse(message: EdgeMessage): void {\n invariant(protocol.getPayloadType(message) === SwarmResponseSchema.typeName, 'Wrong payload type');\n const payload = protocol.getPayload(message, SwarmResponseSchema);\n this.swarmState.emit(payload);\n const topic = PublicKey.from(payload.swarmKey);\n if (!this._swarmPeers.has(topic)) {\n return;\n }\n\n const { joinedPeers: oldPeers } = this._swarmPeers.get(topic)!;\n const timestamp = message.timestamp ? new Date(Date.parse(message.timestamp)) : new Date();\n const newPeers = new ComplexSet<PeerInfo>(PeerInfoHash, payload.peers);\n\n // Emit new available peers in the swarm.\n for (const peer of newPeers) {\n if (oldPeers.has(peer)) {\n continue;\n }\n this.swarmEvent.emit({\n topic,\n peerAvailable: { peer, since: timestamp },\n });\n }\n\n // Emit peer that left the swarm.\n for (const peer of oldPeers) {\n if (newPeers.has(peer)) {\n continue;\n }\n this.swarmEvent.emit({\n topic,\n peerLeft: { peer },\n });\n }\n\n this._swarmPeers.get(topic)!.joinedPeers = newPeers;\n }\n\n private _processMessage(message: EdgeMessage): void {\n invariant(protocol.getPayloadType(message) === bufWkt.AnySchema.typeName, 'Wrong payload type');\n const payload = protocol.getPayload(message, bufWkt.AnySchema);\n invariant(message.source, 'source is missing');\n invariant(message.target, 'target is missing');\n invariant(message.target.length === 1, 'target should have exactly one item');\n\n this.onMessage.emit({\n author: message.source,\n recipient: message.target[0],\n payload: {\n type_url: payload.typeUrl,\n value: payload.value,\n },\n });\n }\n\n private _matchSelfPeerInfo(peer: PeerInfo): boolean {\n return (\n peer && (peer.peerKey === this._edgeConnection.peerKey || peer.identityKey === this._edgeConnection.identityKey)\n );\n }\n\n private async _rejoinAllSwarms(): Promise<void> {\n log('rejoin swarms', { swarms: Array.from(this._swarmPeers.keys()) });\n for (const [topic, { lastState }] of this._swarmPeers.entries()) {\n await this.join(this._ctx, {\n topic,\n peer: {\n peerKey: this._edgeConnection.peerKey,\n identityKey: this._edgeConnection.identityKey,\n state: lastState,\n },\n });\n }\n }\n}\n\nconst createMessageSource = (topic: PublicKey, peerInfo: PeerInfo): buf.MessageInitShape<typeof PeerSchema> => {\n return {\n swarmKey: topic.toHex(),\n ...peerInfo,\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { type DevicesService, type IdentityService } from '@dxos/protocols/proto/dxos/client/services';\nimport { DeviceKind } from '@dxos/protocols/proto/dxos/client/services';\n\nexport const setIdentityTags = ({\n identityService,\n devicesService,\n setTag,\n}: {\n identityService: IdentityService;\n devicesService: DevicesService;\n setTag: (k: string, v: string) => void;\n}) => {\n identityService.queryIdentity().subscribe((idqr) => {\n if (!idqr?.identity?.identityKey) {\n log('empty response from identity service', { idqr });\n return;\n }\n\n setTag('identityKey', idqr.identity.identityKey.truncate());\n });\n\n devicesService.queryDevices().subscribe((dqr) => {\n if (!dqr || !dqr.devices || dqr.devices.length === 0) {\n log('empty response from device service', { device: dqr });\n return;\n }\n invariant(dqr, 'empty response from device service');\n\n const thisDevice = dqr.devices.find((device) => device.kind === DeviceKind.CURRENT);\n if (!thisDevice) {\n log('no current device', { device: dqr });\n return;\n }\n setTag('deviceKey', thisDevice.deviceKey.truncate());\n });\n};\n"],
5
- "mappings": "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",
6
- "names": ["DeferredTask", "Event", "Trigger", "scheduleTask", "scheduleTaskInterval", "sleep", "Resource", "cancelWithContext", "invariant", "PublicKey", "log", "SignalState", "trace", "SignalClientMonitor", "_performance", "sentMessages", "receivedMessages", "reconnectCounter", "joinCounter", "leaveCounter", "_connectionStarted", "Date", "_lastStateChange", "getRecordedTimestamps", "connectionStarted", "lastStateChange", "recordStateChangeTime", "recordConnectionStartTime", "recordReconnect", "params", "metrics", "increment", "tags", "success", "recordJoin", "recordLeave", "recordMessageReceived", "message", "createIdentityTags", "distribution", "getByteCount", "recordMessageSending", "sendMessage", "reqStart", "now", "reqDuration", "err", "recordStreamCloseErrors", "count", "recordReconciliation", "author", "peerKey", "length", "recipient", "payload", "type_url", "value", "peer", "Event", "asyncTimeout", "cancelWithContext", "PublicKey", "log", "ComplexMap", "ComplexSet", "safeAwaitAll", "SignalLocalState", "_onMessage", "_onSwarmEvent", "safeCloseStreams", "_swarmStreams", "concat", "messageStreams", "failureCount", "join", "topic", "peerId", "leave", "close", "subscribeMessages", "unsubscribeMessages", "reconcile", "client", "_reconcileMessageSubscriptions", "reconciled", "_reconcileSwarmSubscriptions", "_joinedTopics", "has", "peerAvailable", "peerLeft", "swarmStream", "_subscribedMessages", "messageStream", "peerKey", "recipient", "payload", "signalMessage", "message", "WebSocket", "TimeoutError", "Trigger", "scheduleTaskInterval", "Context", "invariant", "log", "schema", "createProtoRpcPeer", "trace", "SignalRpcClientMonitor", "recordClientCloseFailure", "params", "metrics", "increment", "tags", "reason", "failureReason", "__dxlog_file", "SIGNAL_KEEPALIVE_INTERVAL", "_connectTrigger", "_keepaliveCtx", "_closed", "_url", "_callbacks", "_closeComplete", "_monitor", "callbacks", "url", "log", "_socket", "_rpc", "createProtoRpcPeer", "requested", "Signal", "getService", "noHandshake", "port", "msg", "warn", "subscribe", "Buffer", "arrayBuffer", "cb", "data", "encodingOptions", "_safeCloseRpc", "wake", "Context", "scheduleTaskInterval", "err", "onDisconnected", "onerror", "close", "type", "message", "failureReason", "topic", "peerId", "metadata", "invariant", "wait", "swarmStream", "swarm", "asUint8Array", "peer", "waitUntilReady", "receiveMessages", "messageStream", "sendMessage", "author", "recipient", "payload", "rpc", "getMetadata", "catch", "__dxlog_file", "DEFAULT_RECONNECT_TIMEOUT", "ERROR_RECONCILE_DELAY", "RECONCILE_INTERVAL", "_monitor", "_state", "_lastError", "_lastReconciliationFailed", "_clientReady", "_connectionCtx", "_client", "Trigger", "_reconcileTask", "_reconnectTask", "onMessage", "swarmEvent", "Event", "_host", "startsWith", "Error", "localState", "message", "emit", "event", "_open", "SignalState", "includes", "cancelWithContext", "invariant", "recordReconciliation", "success", "err", "scheduleTaskInterval", "schedule", "_reconnect", "log", "_catch", "_scheduleReconcileAfterError", "_close", "CLOSED", "getStatus", "host", "state", "error", "reconnectIn", "getRecordedTimestamps", "topic", "args", "peerId", "recordJoin", "PublicKey", "leave", "recordLeave", "from", "sendMessage", "_ctx", "CONNECTED", "msg", "peerKey", "recipient", "author", "payload", "peer", "unsubscribeMessages", "_createClient", "recordConnectionStartTime", "failureCount", "recordStreamCloseErrors", "callbacks", "onConnected", "_onConnected", "onDisconnected", "_onDisconnected", "onError", "getMetadata", "undefined", "sleep", "_reconnectAfter", "_setState", "options", "DISCONNECTED", "recordStateChangeTime", "status", "statusChanged", "_updateReconnectTimeout", "min", "MAX_RECONNECT_TIMEOUT", "close", "LifecycleState", "invariant", "Resource", "log", "RateLimitExceededError", "BitField", "TimeoutError", "SignalClient", "trace", "WebsocketSignalManagerMonitor", "recordRateLimitExceeded", "metrics", "increment", "recordServerFailure", "params", "tags", "server", "serverName", "restarted", "willRestart", "__dxlog_file", "WSS_SIGNAL_SERVER_REBOOT_DELAY", "_servers", "_monitor", "WebsocketSignalManagerMonitor", "failureCount", "statusChanged", "Event", "swarmEvent", "onMessage", "_hosts", "_getMetadata", "log", "hosts", "host", "has", "server", "on", "emit", "data", "set", "safeAwaitAll", "serverName", "invariant", "_lifecycleState", "LifecycleState", "OPEN", "sleep", "getStatus", "Array", "topic", "peer", "_forEachServer", "_ctx", "Error", "recipient", "index", "sendMessage", "author", "payload", "then", "err", "RateLimitExceededError", "recordRateLimitExceeded", "info", "TimeoutError", "checkServerFailure", "get", "isRestartRequired", "MAX_SERVER_FAILURES", "recordServerFailure", "willRestart", "BitField", "_failedServersBitfield", "_clearServerFailedFlag", "subscribeMessages", "unsubscribeMessages", "all", "Event", "scheduleMicroTask", "Resource", "cancelWithContext", "EdgeIdentityChangedError", "protocol", "invariant", "PublicKey", "log", "EdgeService", "bufWkt", "SwarmRequest_Action", "SwarmRequestAction", "SwarmRequestSchema", "SwarmResponseSchema", "ComplexMap", "ComplexSet", "__dxlog_file", "EdgeSignalManager", "onMessage", "Event", "edgeConnection", "PublicKey", "_edgeConnection", "_open", "onDispose", "scheduleMicroTask", "_rejoinAllSwarms", "log", "warn", "expected", "identityKey", "peer", "peerKey", "_swarmPeers", "set", "topic", "joinedPeers", "ComplexSet", "ctx", "protocol", "source", "createMessageSource", "payload", "action", "SwarmRequestAction", "swarmKeys", "leave", "LEAVE", "serviceId", "EdgeService", "sendMessage", "send", "createMessage", "target", "message", "recipient", "value", "subscribeMessages", "_processSwarmResponse", "_processMessage", "getPayload", "invariant", "swarmState", "emit", "from", "newPeers", "PeerInfoHash", "peers", "peerAvailable", "timestamp", "peerLeft", "length", "author", "type_url", "typeUrl", "_matchSelfPeerInfo", "lastState", "_ctx", "state", "toHex", "peerInfo", "invariant", "log", "DeviceKind", "__dxlog_file", "setIdentityTags", "idqr", "identityKey", "setTag", "devicesService", "queryDevices", "subscribe", "dqr", "device", "thisDevice"]
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,cAAcC,SAAAA,QAAOC,WAAAA,UAASC,cAAcC,wBAAAA,uBAAsBC,aAAa;AACxF,SAAuBC,UAAUC,qBAAAA,0BAAyB;AAC1D,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,OAAAA,YAAW;AAGpB,SAASC,mBAAmB;;;ACP5B,SAASC,aAAa;AAIf,IAAMC,sBAAN,MAAMA;EACMC,eAAe;IAC9BC,cAAc;IACdC,kBAAkB;IAClBC,kBAAkB;IAClBC,aAAa;IACbC,cAAc;EAChB;;;;EAKQC,qBAAqB,oBAAIC,KAAAA;;;;EAIzBC,mBAAmB,oBAAID,KAAAA;EAExBE,wBAA4E;AACjF,WAAO;MACLC,mBAAmB,KAAKJ;MACxBK,iBAAiB,KAAKH;IACxB;EACF;EAEOI,wBAA8B;AACnC,SAAKJ,mBAAmB,oBAAID,KAAAA;EAC9B;EAEOM,4BAAkC;AACvC,SAAKP,qBAAqB,oBAAIC,KAAAA;EAChC;EAEOO,gBAAgBC,QAAoC;AACzD,SAAKf,aAAaG;AAClBL,UAAMkB,QAAQC,UAAU,4CAA4C,GAAG;MACrEC,MAAM;QACJC,SAASJ,OAAOI;MAClB;IACF,CAAA;EACF;EAEOC,aAAmB;AACxB,SAAKpB,aAAaI;EACpB;EAEOiB,cAAoB;AACzB,SAAKrB,aAAaK;EACpB;EAEOiB,sBAAsBC,SAAwB;AACnD,SAAKvB,aAAaE;AAClBJ,UAAMkB,QAAQC,UAAU,iDAAiD,GAAG;MAC1EC,MAAMM,mBAAmBD,OAAAA;IAC3B,CAAA;AACAzB,UAAMkB,QAAQS,aAAa,2CAA2CC,aAAaH,OAAAA,GAAU;MAC3FL,MAAMM,mBAAmBD,OAAAA;IAC3B,CAAA;EACF;EAEA,MAAaI,qBAAqBJ,SAAkBK,aAAiD;AACnG,SAAK5B,aAAaC;AAClB,UAAMiB,OAAOM,mBAAmBD,OAAAA;AAChC,QAAIJ,UAAU;AACd,QAAI;AACF,YAAMU,WAAWtB,KAAKuB,IAAG;AACzB,YAAMF,YAAAA;AACN,YAAMG,cAAcxB,KAAKuB,IAAG,IAAKD;AACjC/B,YAAMkB,QAAQS,aAAa,gDAAgDM,aAAa;QAAEb;MAAK,CAAA;AAC/FpB,YAAMkB,QAAQS,aAAa,4CAA4CC,aAAaH,OAAAA,GAAU;QAAEL;MAAK,CAAA;IACvG,SAASc,KAAK;AACZb,gBAAU;IACZ;AACArB,UAAMkB,QAAQC,UAAU,6CAA6C,GAAG;MACtEC,MAAM;QAAE,GAAGA;QAAMC;MAAQ;IAC3B,CAAA;EACF;EAEOc,wBAAwBC,OAAqB;AAClDpC,UAAMkB,QAAQC,UAAU,sDAAsDiB,KAAAA;EAChF;EAEOC,qBAAqBpB,QAAoC;AAC9DjB,UAAMkB,QAAQC,UAAU,iDAAiD,GAAG;MAC1EC,MAAM;QACJC,SAASJ,OAAOI;MAClB;IACF,CAAA;EACF;AACF;AAEA,IAAMO,eAAe,CAACH,YAAAA;AACpB,SACEA,QAAQa,OAAOC,QAAQC,SACvBf,QAAQgB,UAAUF,QAAQC,SAC1Bf,QAAQiB,QAAQC,SAASH,SACzBf,QAAQiB,QAAQE,MAAMJ;AAE1B;AAEA,IAAMd,qBAAqB,CAACD,YAAAA;AAC1B,SAAO;IAAEoB,MAAMpB,QAAQa,OAAOC;EAAQ;AACxC;;;AC1GA,SAASO,OAAOC,oBAAoB;AAEpC,SAAuBC,yBAAyB;AAChD,SAASC,iBAAiB;AAC1B,SAASC,WAAW;AAKpB,SAASC,YAAYC,YAAYC,oBAAoB;AAKrD,IAAA,eAAaC;;EACX;;;;;;;;;;;;;;;;;;;;;;;eAgCmBC,IAAAA,MAAAA;cACAC,YAAAA,eAAAA;AAChB,SAAA,aAAA;AAEH,SAAMC,gBAAsD;;2BAChCC;UAA0CC,UAAO;SAAI,KAAKC,cAAc,OAAO;MAAG,OAAA;MACxG,GAACF,KAAAA,eAAmB,OAAA;IACxB,CAAA;AACA,SAAA,cAAMG,MAAgB;AACtB,SAAA,eAAO,MAAA;UAAEA,gBAAAA,MAAAA,aAAAA,SAAAA,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA,GAAAA;AAAa,WAAA;MACxB;IAEAC;;gBAC2BC,OAAAA,GAAAA;SAAOC,cAAAA,IAAAA;MAAO;MACzC;IAEAC,CAAAA;;UACgCF,OAAAA,OAAAA,GAAAA;SAAOC,KAAAA,cAAAA,IAAAA;MAAWE;MAC5C;QAAwBH,MAAAA;SAAOC,cAAAA,OAAAA;MAAO;MACtC;;SAA+BA,cAAAA,OAAAA;MAAO;MAC5C;IAEAG,CAAAA;;oBACiCH,QAAAA;AAAO,SAAA,oBAAA,IAAA;MACxC;IAEAI,CAAAA;;sBACuCJ,QAAAA;AAAO,QAAA,+BAAA;MACxC;qBAA8BA,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;AAAO,SAAA,oBAAA,OAAA;MACzC;IACA,CAAA;AACF,SAAA,KAAA,eAAA,IAAA,MAAA,GAAA,MAAA;AAEA,SAAaK,eAAwBC,OAAwC,MAAA;;QAE3E,UAAWC,KAAAA,QAAAA;AACX,UAAKC,KAAAA,6BAAe,KAAA,MAAA;AACtB,UAAA,KAAA,+BAAA,KAAA,MAAA;AAEA,SAAcC,WAAAA,KAAAA;;QAEZ,6BAA4B,KAAQ,QAACf;eAE/B,EAAKgB,OAAAA,OAAcC,KAAI,KAAA,cAAA,KAAA,GAAA;UAASX,KAAAA,cAAAA,IAAAA;QAAW;QAC7C;MACF,CAAA,GAAA;AAEA;;WAAqCA,KAAAA,cAAAA,IAAAA;QAAWE;QAC5C;UAAwBH,MAAAA;WAAOC,cAAAA,OAAAA;QAAO;QAC5C;MAEA,CAAA;IACA;eAEM,EAAKN,OAAAA,OAAciB,KAAI,KAAA,cAAA,OAAA,GAAA;UAASX,KAAAA,cAAAA,IAAAA;QAAW;QAC7C;MACF,CAAA,GAAA;AAEA;;YAAmFA,cAAAA,MAAAA,aAAAA,kBAAAA,KAAAA,OAAAA,KAAAA;QAAO;QAC1F;MACA,CAAA,CAAA,GAAA,GAAA;kBAE+BD,UAAAA,OAAAA,eAAAA;YAAOC,KAAAA,cAAAA,IAAAA;UAAW;UAC7Cd;;AAAgC,cAAA,eAAA;YAChC;2BAEMa,YAAAA,GAAAA,cAAAA,GAAAA,KAAAA,GAAAA,KAAAA,CAAAA;gBACAa,QAAAA,WAAe,gBAAA;;2BAEP;4BAAW3B;cAAsD,MAAA;gBACzE,SAAA,UAAA,KAAA,WAAA,cAAA,IAAA,EAAA,MAAA;cAEF;YACEc;cACAc;;sBAEQ;4BAAW5B;cAAkD,MAAA;gBACrE,SAAA,UAAA,KAAA,WAAA,SAAA,IAAA,EAAA,MAAA;cACF;YACJ;UACF;AACF,gBAAA,KAAA,cAAA,KAAA;QAEA;MACA,CAAA;WAAgCe,cAAAA,IAAAA;QAAUc;QAC5C;MACF,GAAA,WAAA;IAEA;;QAEE,+BAA0BlB,KAAAA,QAAmB;eAEvC,UAAKmB,KAAAA,eAAwB,KAAA,GAAA;AAAS,UAAI,KAAA,oBAAA,IAAA;QAC5C;MACF,CAAA,GAAA;AAEA;MACA;AACF,WAAA,KAAA,eAAA,IAAA,MAAA,GAAA,MAAA;AAEA,WAAA,eAAA,OAAA,MAAA;IACA;eAEI,EAAA,OAAA,KAAA,KAAA,oBAAA,OAAA,GAAA;AACF,UAAA,KAAA,eAAA,IAAA,MAAA,GAAA;AAEA;MACAC;YACE,gBAASD,MAAAA,aAAwB,kBAAA,KAAA,OAAA,gBAAA,MAAA,CAAA,GAAA,GAAA;oBAAEf,UAAAA,OAAAA,kBAAAA;AAAO,YAAI,KAAA,oBAAA,IAAA;UAC5C;;0BACYiB;YAAsD,QAAA;cAChEC,SAAW,UAAA,KAAA,cAAA,MAAA,EAAA,MAAA;;YAA2D,WAAA;cACtEC,SAASC,UAAcD,KAAAA,cAAO,SAAA,EAAA,MAAA;YAChC;YACA,SAAW5B,cAAW8B;UACxB;AACF,gBAAA,KAAA,WAAA,OAAA;QAEA;MACA,CAAA;AAEJ,WAAA,eAAA,IAAA,QAAA,aAAA;IACF;;;;;ACzKA,OAAOC,eAAe;AAEtB,SAASC,cAAcC,SAASC,4BAA4B;AAE5D,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAE1B,SAASC,OAAAA,YAAW;AACpB,SAASC,cAAc;AAEvB,SAA4BC,0BAA0B;;;ACVtD,SAASC,SAAAA,cAAa;AAEf,IAAMC,yBAAN,MAAMA;EACJC,yBAAyBC,QAAyC;AACvEH,IAAAA,OAAMI,QAAQC,UAAU,oDAAoD,GAAG;MAC7EC,MAAM;QACJC,QAAQJ,OAAOK;MACjB;IACF,CAAA;EACF;AACF;;;ADIA,IAAAC,gBAAMC;;AA+B0C,IAAA,kBAAA,MAAA;EAC7BC;EAETC;EAEAC,kBAAgB,IAAA,QAAA;EAEPC;EACAC,UAAAA;EACAC;EAEAC;EAEjB,iBAAiB,IAAEC,QAAAA;aACb,IAAA,uBAA8B;cAAEC,EAAAA,KAAAA,YAAAA,CAAAA,EAAAA,GAAAA;AAAI,IAAAC,KAAA,8BAAA;MACpC;IACJ,GAAA,EAAA,YAAKL,YAAaG,GAAAA,eAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;AAClB,SAAKG,OAAO;AAEZ,SAAKC,aAAOC;SACVC,UAAW,IAAA,UAAA,KAAA,IAAA;gBACTC,mBAAeC;MACjB,WAAA;QACAC,QAAAA,OAAa,WAAA,yBAAA;MACbC;mBACSC;;uBAEH;cACA,KAAA,SAAA;AAEE;;AAEJ,cAAE;AACAT,iBAAIU,QAAK,KAAA,GAAA;UACX,SAAA,KAAA;AACF,YAAAV,KAAA,KAAA,cAAA,KAAA,EAAA,YAAA,YAAA,GAAAX,eAAA,GAAA,IAAA,GAAA,KAAA,CAAA;UACAsB;;mBAEI,CAAI,OAAA;uBACCC,YAAY,OAAMH,QAASI;AAChC,gBAAA,OAAO,SAAA,eAAA,IAAA,gBAAA,MAAA;AACLC,iBAAGL,OAAIM,KAAI,MAAA,IAAA,KAAA,YAAA,CAAA,CAAA;YACb,OAAA;AACF,iBAAA,IAAA,IAAA;YACF;UACF;QACAC;;MAEA,iBAAA;QACF,aAAA;MAEI;;iBAEA,SAAWd,YAAU;UACrB;cACE,KAAM,KAAKe,KAAAA;YACX,KAAA,SAAA;AACF,gBAAA,KAAA,cAAA;AACI;QACJ;AACA,QAAAjB,KAAI,YAACT,KAAgB2B,IAAI,IAAA,QAAA,EAAA,YAAA,YAAA,GAAA7B,eAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AACzB,aAAKG,WAAAA,cAAoB2B;AACzBC,aAAAA,gBACE,KAAK5B;aAEH,gBAAA,IAAA,QAAA,QAAA,EAAA,YAAA,YAAA,GAAAH,eAAmE,GAAA,GAAA,CAAA;6BACnE,KAAA,eAAA,YAAA;AAOJ,eAAOgC,SAAU,KAAA,UAAA;QACjB,GAAA,yBAA0BA;eACrBpB,KAAAA;AACL,aAAKR,WAAU,UAAA,GAAA;AACjB,aAAA,QAAA,MAAA;AACF,aAAA,UAAA;MAEI;;SAEF,QAAKE,UAAW2B,YAAAA;AAChB,MAAAtB,KAAI,gBAAgBkB,KAAI,IAAA,IAAA,QAAA,EAAA,YAAA,YAAA,GAAA7B,eAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AACxB,WAAA,WAAgB,iBAAA;AAClB,WAAA,eAAA,KAAA;AAEI,YAACY,KAAQsB,MAAO;;iBAEXtB,UAAQuB,OAAK,UAAA;UAClB,KAAA,SAAA;AACF,aAAA,QAAA,MAAA;AACI;MAEJ;AACA,WAAA,UAAWP;AAEXjB,WAAIU,WAAM,UAAee,MAAI,SAAI,IAAU,MAAO,MAAE,OAAA,CAAA;YAAEC,KAAAA,cAAeA;WAAS3B,KAAK,UAAS,MAAA,QAAA,SAAA,UAAA;QAAC,SAAA,MAAA;QAC/F,KAAA,KAAA;MAEI,GAAA,EAAA,YAAA,YAAA,GAAAV,eAA6B,GAAA,KAAA,GAAA,KAAA,CAAA;;AAAM,IAAAW,KAAA,6BAAA;MACzC;IAEA,GAAMwB,EAAAA,YAAuB,YAAA,GAAAnC,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;;gBAEzB;AACF,QAAA,KAAA,SAAA;AACI;IAEJ;AACA,SAAI,UAAA;UACF,KAAM,eAAK4B,QAAa;QAExB;YACE,KAAA,cAAA;UACA,KAAKhB,QAAQuB,eAAK,UAAA,QAAA,KAAA,QAAA,eAAA,UAAA,YAAA;AAGpB,aAAM,QAAK5B,MAAAA;;AAAqC,YAAA,KAAA,eAAA,KAAA;QAChD,SAAY;MACZ,CAAA;aACKC,KAAAA;YAAoC8B,gBAAAA,eAAAA,eAAAA,YAAAA,KAAAA,aAAAA,QAAAA;AAAc,WAAA,SAAA,yBAAA;QACzD;MACF,CAAA;IAEA;;aACgBC,EAAAA,OAAAA,OAAAA,GAAAA;SAAOC,QAAAA;MAAQC;MAA2C;MACxEC,UAAW,KAAKtC,YAAS,cAAA;IACzB,GAAA,EAAA,YAAWF,YAAAA,GAAgByC,eAAI,GAAA,KAAA,GAAA,KAAA,CAAA;AAC/B,cAAMC,CAAAA,KAAAA,SAAmB/B,6BAAqB,EAAA,YAAA,YAAA,GAAAb,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,iBAAA,6BAAA,EAAA,CAAA;UAC5C6C,KAAON,gBAAMO,KAAY;UACzBC,cAAaD,KAAAA,KAAY,IAAA,OAAA,KAAA;MACzBL,OAAAA,MAAU,aAAe;MAC3B,MAAA,OAAA,aAAA;MACA,UAAMG,KAAYI,YAAAA,cAAc;IAChC,CAAA;AACF,UAAA,YAAA,eAAA;AAEA,WAAMC;;wBACqBT,QAAAA;AAAO,IAAA7B,KAAA,mBAAA;MAChC+B;IACA,GAAA,EAAA,YAAWxC,YAAAA,GAAgByC,eAAI,GAAA,KAAA,GAAA,KAAA,CAAA;AAC/B,cAAMO,CAAAA,KAAAA,SAAgB,6BAAqBD,EAAAA,YAAgB,YAAA,GAAAjD,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,iBAAA,6BAAA,EAAA,CAAA;UACzD+C,KAAMP,gBAAOM,KAAY;AAC3B,UAAA,gBAAA,KAAA,KAAA,IAAA,OAAA,gBAAA;MACA,MAAMI,OAAAA,aAAcF;IACpB,CAAA;AACF,UAAA,cAAA,eAAA;AAEA,WAAMG;;oBASiBC,EAAAA,QAAAA,WAAAA,QAAAA,GAAAA;SAAQC,eAAAA;MAAWC;MAASb;MAA2C;MAC5FC,UAAW,KAAKtC,YAAS,cAAA;IACzB,GAAA,EAAA,YAAWF,YAAAA,GAAgByC,eAAI,GAAA,KAAA,GAAA,KAAA,CAAA;AAC/B,cAAU,CAAC9B,KAAK0C,SAAIvC,6BAAmB,EAAA,YAAA,YAAA,GAAAhB,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,iBAAA,6BAAA,EAAA,CAAA;UACrCoD,KAAAA,gBAAeN,KAAY;UAC3BO,KAAAA,KAAWA,IAAAA,OAAUP,YAAY;MACjCQ,QAAAA,OAAAA,aAAAA;MACAb,WAAU,UAAKnC,aAAYkD;MAC7B;MACF,UAAA,KAAA,YAAA,cAAA;IAEA,CAAA;;wBAEStD;QACL;AACA,WAAO8B,gBAAK,MAAA;AACZrB,YAAI8C,KAAMzB,KAAAA,MAAAA;IACZ,SAAA,KAAA;AACF,MAAArB,KAAA,MAAA,KAAA,QAAA,EAAA,YAAA,YAAA,GAAAX,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;IACF;;;;;AH1MA,IAAA0D,gBAAMC;AAEN,IAAMC,4BAAwB;AAC9B,IAAMC,wBAAqB;AAE3B,IAAA,wBAAA;;;EAUmBC;EAETC;EACAC,WAAmB,IAAA,oBAAA;EACnBC,SAAAA,YAAAA;EAESC;EACTC,4BAAyB;EACzBC,eAA0B,IAAAC,SAAA;EAE1BC;EACAC;EAER;;;;;;;;;EAYgBC;EACAC,gBAAa,IAAIC,OAAoB;EAErD,YAAA,IAAAA,OAAA;;;;;;;;cAWYC,OAAMC,cAAW;UACzB,GAAA,KAAUC,QAAO,OAAA,KAAA,eAAA;AACnB,QAAA,CAAA,KAAA,MAAA,WAAA,QAAA,KAAA,CAAA,KAAA,MAAA,WAAA,OAAA,GAAA;AAEI,YAACC,IAAAA,MAAa,qDACTC,KAAAA,KAAAA,EAAAA;;SAEL,aAAc,IAACC,iBAAKD,OAAAA,YAAAA;AAEtB,WAAA,SAAiB,sBAAqBE,OAAAA;AAE1C,WAAA,UAAA,KAAA,OAAA;IAEA,GAAyBC,OAAuB,UAAA,KAAA,WAAA,KAAA,KAAA,CAAA;;QAG9C,QAAI;SAACC,yBAAqB,QAAA,EAAA,YAAA,YAAA,GAAAzB,eAAA,GAAA,IAAA,GAAA,KAAA,CAAA;QAAEyB;MAAwBC,YAAcrB;MAChE,YAAA;IACF,EAAA,SAAA,KAAA,MAAA,GAAA;AACI;IAEJ;SACE,UAAI,YAAA,UAAA;0BACIsB,IAAAA,aAAuBlB,KAAAA,MAAAA,YAAsBD;;AAAmC,cAAAmB,mBAAA,KAAA,gBAAA,KAAA,aAAA,KAAA;UACtFC,SAAU;QACV,CAAA,CAAA;AACA,QAAAA,WAAKxB,KAASyB,WAAAA,YAAqB,WAAA,kCAAA,EAAA,YAAA,YAAA,GAAA7B,eAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,yCAAA,kCAAA,EAAA,CAAA;cAAE8B,KAAAA,WAAS,UAAA,KAAA,gBAAA,KAAA,OAAA;AAAK,aAAA,SAAA,qBAAA;UAC/C,SAACvB;QACL,CAAA;AACA,aAAKA,4BAA4B;eAC5BH,KAAAA;aAAgC0B,4BAAS;AAAM,aAAA,SAAA,qBAAA;UACpD,SAAMC;QACR,CAAA;AACF,cAAA;MAEA;IACAC,CAAAA;0BAIWpB,KAAAA,MAAgBqB,YAAQ;AAC/B,UAAA,KAAA,WAAA,YAAA,WAAA;AAEF9B,aAAAA,eAAAA,SAAAA;MAGE;yBACE;0BACS+B,IAAAA,aAAU,KAAA,MAAA,YAAA;UACrB;cAAgCJ,KAAAA,WAAS;AAAK,aAAA,SAAA,gBAAA;UAC9C,SAAY;QACZ,CAAA;eAAgCA,KAAAA;AAAe,aAAA,SAAA,gBAAA;UAC/C,SAAMC;QACR,CAAA;AACF,cAAA;MAEI;IACJI,CAAAA;AACF,SAAA,cAAA;AAEA,IAAAA,KAAyBC,wBAAkC,QAAA,EAAA,YAAA,YAAA,GAAApC,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;;eAEvD,KAAA;AACF,QAAA,KAAA,WAAA,YAAA,UAAA,KAAA,KAAA,UAAA;AACA;IACA;AAEA,QAAA,KAAA,WAAA,YAAA,aAAA,CAAA,KAAA,2BAAA;AACI,MAAAmC,KAACE,KAAAA,uBAA4B,KAAA,EAAA,YAAA,YAAA,GAAArC,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;IACnC;AAEA,SAAyBsC,6BAAwB;;QAE/C,SAAI;SAACb,cAAYc,QAAM,EAAA,YAAA,YAAA,GAAAvC,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;QAAE0B;MACvB,YAAA;IACF,EAAA,SAAA,KAAA,MAAA,GAAA;AAEI;IACJ;AAEAS,SAAI,UAAA,YAAA,MAAA;AACN,UAAA,KAAA,iBAAA;AAEAK,IAAAA,KAAAA,UAA0B,QAAA,EAAA,YAAA,YAAA,GAAAxC,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;;cAEtByC;WACAC;MACAC,MAAAA,KAAW;MACXC,OAAAA,KAAAA;MACA,OAAO,KAACxC,YAASyC;MACnB,aAAA,KAAA;MACF,GAAA,KAAA,SAAA,sBAAA;IAEA;;aACmBC,MAAOC,MAAKD;SAAOE,WAAQD;MAAkB,OAAA,KAAA;MAC1D,QAAC3C,KAAS6C,KAAAA;IACd,GAAA,EAAA,YAAK7B,YAAgB,GAAApB,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;SAAE8C,SAAOC,WAAU;SAAEC,WAAQE,KAAAA;MAAkC,OAAA,KAAA;MAChF,QAACtC,WAAgBqB,KAAAA,KAAAA,KAAAA,OAAAA;IACvB,CAAA;AAEA,SAAMkB,gBAAwD,SAAA;;cAC3CL,MAAOC,MAAKD;SAAOE,WAAQD;MAAkB,OAAA,KAAA;MAC1D,QAAC3C,KAASgD,KAAAA;IACd,GAAA,EAAA,YAAKhC,YAAiB,GAAApB,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;SAAE8C,SAAOC,YAAU;SAAEC,WAAQE,MAAUG;MAAwB,OAAA,KAAA;MACvF,QAAAH,WAAA,KAAA,KAAA,KAAA,OAAA;IAEA,CAAA;;EAEA,MAAA,MAAA,MAAA,QAAA;AAEA,UAAMI,IAAAA,MAAYC,iBAA4C;;oBAEhD,MAAC/C,KAAAA;WACXoB,KAAAA,SAAevB,qBAAuBmD,KAAAA,YAAW;AACjD5B,YAAAA,KAAU6B,aAAWC,KAAO;AAC5B9B,MAAAA,WAAU6B,KAAIE,WAAUD,YAAS,WAAA,kCAAA,EAAA,YAAA,YAAA,GAAA1D,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,yCAAA,kCAAA,EAAA,CAAA;AACjC,MAAA4B,WAAU,IAAClB,OAAS4C,SAAW,uBAAC,EAAA,YAAA,YAAA,GAAAtD,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,sBAAA,uBAAA,EAAA,CAAA;iBAC9B4D,IAAQV,UAAUG,SAASO,0BAAc,EAAA,YAAA,YAAA,GAAA5D,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,yBAAA,0BAAA,EAAA,CAAA;YACzC2D,KAAAA,QAAWT,YAAeO;QAC1BI,QAAAA,WAAaA,KAAO,IAAA,OAAA,OAAA;QACtB,WAAAX,WAAA,KAAA,IAAA,UAAA,OAAA;QACF,SAAA,IAAA;MACF,CAAA;IAEA,CAAA;;QAEEf,kBAAI,MAAA;eAA6B2B,KAAAA,SAAAA,qBAAAA,EAAAA,YAAAA,YAAAA,GAAAA,eAAAA,GAAAA,KAAAA,GAAAA,MAAAA,GAAAA,CAAAA,gBAAAA,qBAAAA,EAAAA,CAAAA;AAAK,IAAA3B,KAAA,2BAAA;MAClC;IACJ,GAAA,EAAA,YAAKvB,YAAgBqB,GAAAA,eAAAA,GAAAA,KAAAA,GAAAA,KAAAA,CAAAA;AACvB,SAAA,WAAA,kBAAAiB,WAAA,KAAA,KAAA,OAAA,CAAA;AAEA,SAAMa,gBAAAA,SAAmD;;QAEvD5B,oBAAI,MAAA;eAAiC2B,KAAAA,SAAAA,qBAAAA,EAAAA,YAAAA,YAAAA,GAAAA,eAAAA,GAAAA,KAAAA,GAAAA,MAAAA,GAAAA,CAAAA,gBAAAA,qBAAAA,EAAAA,CAAAA;AAAK,IAAA3B,KAAA,+BAAA;MACtC;IACN,GAAA,EAAA,YAAA,YAAA,GAAAnC,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;AAEQqC,SAAAA,WAAAA,oBAAqCa,WAAA,KAAA,KAAA,OAAA,CAAA;;EAE7C,+BAAA;AAEQc,iBAAsB,KAAA,MAAA,MAAA,KAAA,eAAA,SAAA,GAAA,qBAAA;;kBACG;SAAYtB,mBAAkB;MAAC,MAAA,KAAA;MAC9Dd,OAAW,KAAKlB;IAEhB,GAAA,EAAA,YAAcuD,YAAAA,GAAAA,eAAyB,GAAA,KAAA,GAAA,KAAA,CAAA;AAEvC,IAAArC,WAAA,CAAA,KAAA,SAAA,0BAA0C,EAAA,YAAA,YAAA,GAAA5B,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,iBAAA,0BAAA,EAAA,CAAA;AAC1C,SAAKS,SAAAA,0BAAiC;SAEpC0B,iBAAI,KAAA,KAAA,OAAA;SACJ,eAAQ+B,UAAiB,YAAW9C;AACpC,MAAAe,KAAI,+BAAUgC,QAAwBD,EAAAA,YAAAA,YAAAA,GAAAA,eAAAA,GAAAA,KAAAA,GAAAA,KAAAA,CAAAA;AACxC,YAAA,EAAA,aAAA,IAAA,MAAA,KAAA,WAAA,iBAAA;AAEI,WAAA,SAAA,wBAAA,YAAA;;;YAGAE,SAAW,IAAA,gBAAA;aACTC,KAAAA;mBACE;uBACM,MAAA;gBACJ,WAAKC,KAAAA,SAAY;AACnB,cAAAnC,KAAA,oBAAA,QAAA,EAAA,YAAA,YAAA,GAAAnC,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;AACF,mBAAA,aAAA;YAEAuE;;0BAEI,MAAA;AACF,gBAAA,WAAA,KAAA,SAAA;AACI;;AAA4C,YAAApC,KAAA,uBAAA;cAC5C,OAAK9B,KAAM;6BACb,YAAA,GAAAL,eAAkC,GAAA,KAAA,GAAA,KAAA,CAAA;gBAClC,KAAA,WAAA,YAAA,OAAA;AAGA,mBAAKwE,UAAAA,YAAe,YAAA;YACtB,OAAA;AACF,mBAAA,gBAAA;YAEAC;;mBAEItC,CAAAA,UAAI;2BAAkBQ,KAAAA,SAAAA;mBAAOD,gBAAYrC;gBAAO;gBAC5C,OAACmE,KAAAA;+BAAkB7B,YAAAA,GAAAA,eAAAA,GAAAA,KAAAA,GAAAA,KAAAA,CAAAA;AAAM,mBAAA,gBAAA;gBAC/B;cACF,CAAA;YACA+B;UACF;UACF,aAAA,KAAA;QACI;MACJ,CAAA;AACA,WAAKhE,UAAUiE;aACVH,OAAAA;WAAkB7B,UAAAA;AAAM,WAAA,gBAAA;QAC/B;MACF,CAAA;IAEA;;qBACgE;AAAQ,IAAAR,KAAA,mBAAA,KAAA,eAAA,MAAA;MAElE,OAAK9B,KAAM;qBACJ,YAAA,GAAAL,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;QACT,KAAA,WAAA,YAAA,cAAA;AACF,MAAAmC,KAAA,KAAA,oCAAA,QAAA,EAAA,YAAA,YAAA,GAAAnC,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;AACI;;AAEJ,QAAA,KAAA,WAAA,YAAA,QAAA;AACI;IAEJ;AAEA,SAAA,UAAM2B,YAAkB,YAAYiD;AAEpC,UAAKZ,KAAAA,iBAAa;AACpB,UAAArC,mBAAA,KAAA,MAAA,MAAA,KAAA,eAAA,CAAA;AAEQ2C,SAAAA,cAAqB;;iBAEtB/D;AACL,SAAKsE,aAAAA;AACL,SAAKC,4BAAsBtB;AAC3B,SAAKhD,kBAAiB;AACtB,SAAKI,UAAAA,YAAgBqB,SAAQ;AAC/B,SAAA,aAAA,KAAA;AAEQuC,SAAAA,eAA0C,SAAQ;;kBAE/CnE,SAAWoB;SAClB,wBAAA;AACF,QAAA,KAAA,WAAA,YAAA,QAAA;AACIsD;;QAEF,SAAKD,OAAUrD;AACjB,WAAO,aAAA,QAAA;AACL,WAAKqD,UAAUrD,YAAYuD,KAAAA;IAC7B,OAAA;AACI,WAACnE,UAAc,YAAU,YAAA;IAC/B;AAEQiE,SAAAA,eAAuC,SAAA;;YAExC1E,UAAS6E;AACd9C,SAAI,SAAA;SAA0B+C,SAAQ,sBAAc;AAAG,IAAA/C,KAAA,wBAAA;MACnD,QAACgD,KAAAA,UAAmB;IAC1B,GAAA,EAAA,YAAA,YAAA,GAAAnF,eAAA,GAAA,KAAA,GAAA,KAAA,CAAA;AAEQoF,SAAAA,cAAAA,KAAgC,KAAA,UAAA,CAAA;;4BAE/BP;QACL,KAAKA,WAAAA,YAAuBQ,aAASR,KAAAA,WAAiBS,YAAAA,YAAAA;AACxD,WAAA,mBAAA;AACF,WAAA,kBAAA,KAAA,IAAA,KAAA,iBAAA,qBAAA;IAEA;;QAEE,mBAAmB;AAEnB,UAAK9E,KAAAA,gBAAkB,QAAA;AACvB,SAAA,iBAAoB+E;AACpB,SAAK7E,aAAUiE,MAAAA;AACjB,UAAA,KAAA,SAAA,MAAA,EAAA,MAAA,MAAA;IAAA,CAAA;AACF,SAAA,UAAA;;;;;AK7UA,SAAuBa,SAAAA,QAAAA,SAAAA,QAAc,oBAAkB;AACvD,SAASC,gBAAS,YAAAC,iBAAQ;AAC1B,SAASC,aAAAA,kBAAW;AACpB,SAASC,OAAAA,YAAAA;AAIT,SAASC,wBAAsB,gBAAAC,qBAAqB;AAEpD,SAASC,UAAAA,gBAAAA,qBAAoB;;;ACV7B,SAASC,SAAAA,cAAa;AAEf,IAAMC,gCAAN,MAAMA;EACJC,0BAAgC;AACrCF,IAAAA,OAAMG,QAAQC,UAAU,kDAAkD,CAAA;EAC5E;EAEOC,oBAAoBC,QAA4D;AACrFN,IAAAA,OAAMG,QAAQC,UAAU,kDAAkD,GAAG;MAC3EG,MAAM;QACJC,QAAQF,OAAOG;QACfC,WAAWJ,OAAOK;MACpB;IACF,CAAA;EACF;AACF;;;;;;;;;ADnBA;AA2BA,IAAMC,sBAAAA;AAEN,IAAA,iCAAA;;;EAMmBC;EACAC,WAAW,oBAAIC,IAAAA;EAEhC,WAAA,IAAA,8BAAA;;;;EAKSC;EACAC,eAAAA,oBAAgB,IAAIC;EACpBC,gBAAa,IAAID,OAAoB;EAErCE,aAAY,IAAIF,OAAAA;EAEzB,YACmBG,IAAAA,OACAC;cAEZ,QAHYD,cAAAA;AAIjBE,UAAI,GAAA,KAAA,SAAA,QAAA,KAAA,eAAkC;SAAEC,kCAAkB;MAAC,OAAA,KAAA;IAC3D,GAAA,EAAA,YAAWC,YAAaJ,GAAAA,eAAQ,GAAA,IAAA,GAAA,KAAA,CAAA;eAC1B,QAAKR,KAASa,QAASC;UACzB,KAAA,SAAA,IAAA,KAAA,MAAA,GAAA;AACF;MAEA;AAEAA,YAAAA,SAAOR,IAAWS,aAAa,KAAKT,QAAWU,KAAKC,YAAAA;AACpDH,aAAOP,WAAUQ,GAAIE,CAAAA,SAAS,KAAKV,WAAUS,KAAKC,IAAAA,CAAAA;AAElDH,aAAOV,UAAAA,GAAa,CAACW,SAAS,KAAKX,UAAAA,KAAcY,IAAK,CAAA;AAEtD,aAAKhB,cAAaY,GAAKE,MAAAA,KAAQA,cAAAA,KAAAA,KAAAA,UAAAA,CAAAA,CAAAA;AAC/B,WAAKX,SAAAA,IAAae,KAAIN,QAAKE,MAAQ;AACrC,WAAA,aAAA,IAAA,KAAA,QAAA,CAAA;IACA;AACF,SAAA,yBAAA,SAAA,MAAA,KAAA,OAAA,MAAA;EAEA;QACEJ,QAAI;SAAyBC,uBAAkB;MAAC,OAAA,KAAA;IAEhD,GAAA,EAAA,YAAMQ,YAAkBnB,GAAAA,eAAe,GAAA,IAAKc,GAAAA,KAAAA,CAAAA;AAC9C,UAAAK,cAAA,KAAA,SAAA,OAAA,GAAA,CAAA,WAAA,OAAA,KAAA,CAAA;EAEA;QACE,SAAMA;AACR,UAAAA,cAAA,KAAA,SAAA,OAAA,GAAA,CAAA,WAAA,OAAA,MAAA,CAAA;EAEA;QACET,cAAI,YAAqB;SAAEU,qBAAAA;MAAW;IACtCC,GAAAA,EAAAA,YAAc,YAACC,GAAAA,eAAoBC,GAAAA,IAAAA,GAAAA,KAAeC,CAAAA;AAElD,IAAAH,WAAMP,KAAS,oBAAkBM,eAAAA,MAAAA,QAAAA,EAAAA,YAAAA,YAAAA,GAAAA,eAAAA,GAAAA,IAAAA,GAAAA,MAAAA,GAAAA,CAAAA,gDAAAA,EAAAA,EAAAA,CAAAA;AACjCC,UAAAA,SAAUP,KAAQ,SAAA,IAAA,UAAA;AAElB,IAAAO,WAAMP,QAAY,oBAAA,EAAA,YAAA,YAAA,GAAAW,eAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,UAAA,oBAAA,EAAA,CAAA;AAClB,UAAMC,OAAM3B,MAAAA;AACZ,UAAMe,OAAAA,8BAAW;AACnB,UAAA,OAAA,KAAA;EAEAa;cACSC;AACT,WAAA,MAAA,KAAA,KAAA,SAAA,OAAA,CAAA,EAAA,IAAA,CAAA,WAAA,OAAA,UAAA,CAAA;EAEA;QAEElB,KAAI,MAAQ,EAAA,OAAA,KAAA,GAAA;SAAEmB,QAAAA;MAAOC;MAAK;IAC1BT,GAAAA,EAAAA,YAAc,YAACC,GAAAA,eAAoBC,GAAAA,IAAAA,GAAAA,KAAeC,CAAAA;AAClD,IAAAH,WAAU,KAACU,oBAAgBjB,eAAuBkB,MAAM,QAAA,EAAA,YAAA,YAAA,GAAAP,eAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,gDAAA,EAAA,EAAA,CAAA;eAAEI,eAAAA,CAAAA,WAAAA,OAAAA,KAAAA,MAAAA;MAAOC;MAAK;IACxE,CAAA,CAAA;EAEA;QAEEpB,MAAI,MAAA,EAAW,OAAA,KAAA,GAAA;SAAEmB,WAAAA;MAAOC;MAAK;IAC7BT,GAAAA,EAAAA,YAAc,YAACC,GAAAA,eAAoBC,GAAAA,IAAAA,GAAAA,KAAeC,CAAAA;AAClD,IAAAH,WAAU,KAACU,oBAAgBjB,eAAwBkB,MAAM,QAAA,EAAA,YAAA,YAAA,GAAAP,eAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,gDAAA,EAAA,EAAA,CAAA;eAAEI,eAAAA,CAAAA,WAAAA,OAAAA,MAAAA,MAAAA;MAAOC;MAAK;IACzE,CAAA,CAAA;EAEA;QACE,MAAM,MAAIG,EAAM,MAAA,GAAA;AAClB,UAAA,IAAA,MAAA,iBAAA;EAEA;QACEvB,YAAc,MAAA,EAAA,QAAA,WAAA,QAAA,GAAA;SAAEwB,UAAAA;MAAU;IAC1Bb,GAAAA,EAAAA,YAAc,YAACC,GAAAA,eAAoBC,GAAAA,KAAAA,GAAAA,KAAeC,CAAAA;AAElD,IAAAH,WAAUU,KAAAA,oBAAsBjB,eAAQM,MAAYe,QAAAA,EAAAA,YAAAA,YAAAA,GAAAA,eAAAA,GAAAA,KAAAA,GAAAA,MAAAA,GAAAA,CAAAA,gDAAAA,EAAAA,EAAAA,CAAAA;SAClD,KAAKrB,eACFsB,OAAYJ,QAAM,YAAA,UAAA;WAAEK,OAAAA,YAAAA,MAAAA;QAAQH;QAAWI;QACvCC;cAEKC,MAAAA,KAAAA,uBAAeC,YAAwB,KAAA,CAAA,EAAA,MAAA,CAAA,QAAA;YACzC/B,eAAS,wBAA2B;eAAE8B,KAAAA,2BAAAA;YAAI;UAC1C,GAAA,EAAA,YAAcE,YAAAA,GAAAA,eAAuB,GAAA,KAAA,GAAA,KAAA,CAAA;AACvC,eAAO,SAAIF,wBAA+BA;mBACpCG,eAAKC,iBAA2B,IAAA,YAAA,SAAA,gBAAA;eAAEJ,KAAAA,2BAAAA;YAAI;UAC1C,GAAA,EAAA,YAAUK,YAAAA,GAAAA,eAAmBzB,GAAYe,KAAAA,GAAAA,KAAAA,CAAAA;AAC3C,eAAO,KAAA,mBAAA,YAAA,KAAA;eACLzB;eAA6C8B,KAAAA,oBAAAA,UAAAA,IAAAA;YAAI;UACjD,GAAA,EAAA,YAAUK,YAAAA,GAAAA,eAAmBzB,GAAYe,KAAAA,GAAAA,KAAAA,CAAAA;AAC3C,eAAA,KAAA,mBAAA,YAAA,KAAA;QACF;MACJ,CAAA;IACF,CAAA;EAEA;QAEE,mBAAqB,YAAKhC,OAAa2C;AACvC,UAAMC,eAAAA,KAAoB5C,aAAAA,IAAe6C,UAAAA,KAAAA;AACzC,UAAK/C,oBAASgD,eAAoB;SAAE7B,SAAAA,oBAAAA;MAAY8B;MAA+B,aAAA;IAC/E,CAAA;QACE,mBAAkB;UAChBxC,CAAAA,SAAS,IAAA,KAAA,wBAAA,KAAA,GAAA;aAAiDU,KAAAA,+CAAAA;UAAYjB;UAAa;QACnFgD,GAAAA,EAAAA,YAAa,YAAKC,GAAAA,eAAsB,GAAEjB,KAAAA,GAAAA,KAAO,CAAA;AACnD,iBAAA,IAAA,KAAA,wBAAA,OAAA,IAAA;MACA;AACA,YAAKhC,KAAAA,cAAiBiB,UAAa;AACnC,WAAA,aAAA,IAAA,YAAA,CAAA;AACF;IAEA;AACF,SAAA,aAAA,IAAA,aAAA,KAAA,aAAA,IAAA,UAAA,KAAA,KAAA,CAAA;EAEQiC;yBACW,YAAKD,OAAAA;QACpB1C,SAAS,IAAA,KAAA,wBAA8B,KAAA,GAAA;WAAEU,KAAAA,8BAAAA;QAAW;MACpD+B,GAAAA,EAAAA,YAAa,YAAKC,GAAAA,eAAsB,GAAEjB,KAAAA,GAAAA,KAAO,CAAA;AACjD,eAAKhC,IAAAA,KAAae,wBAAiB,OAAA,KAAA;AACrC,WAAA,aAAA,IAAA,YAAA,CAAA;IACF;EAEA;QACER,kBAAI,MAAA;SAAmCoB,iCAAAA;MAAK;IAC5CT,GAAAA,EAAAA,YAAc,YAACC,GAAAA,eAAoBC,GAAAA,KAAAA,GAAAA,KAAeC,CAAAA;AAElD,IAAAH,WAAU,KAACU,oBAAsBjB,eAAkBwC,MAAAA,QAAAA,EAAAA,YAAkBxB,YAAAA,GAAAA,eAAAA,GAAAA,KAAAA,GAAAA,MAAAA,GAAAA,CAAAA,gDAAAA,EAAAA,EAAAA,CAAAA;AACvE,UAAA,KAAA,eAAA,OAAA,WAAA,OAAA,kBAAA,IAAA,CAAA;EAEA;QACEpB,oBAAI,MAAA;SAAmCoB,iCAAAA;MAAK;IAC5CT,GAAAA,EAAAA,YAAc,YAACC,GAAAA,eAAoBC,GAAAA,KAAAA,GAAAA,KAAeC,CAAAA;AAElD,IAAAH,WAAU,KAACU,oBAAsBjB,eAAkByC,MAAAA,QAAAA,EAAAA,YAAoBzB,YAAAA,GAAAA,eAAAA,GAAAA,KAAAA,GAAAA,MAAAA,GAAAA,CAAAA,gDAAAA,EAAAA,EAAAA,CAAAA;AACzE,UAAA,KAAA,eAAA,OAAA,WAAA,OAAA,oBAAA,IAAA,CAAA;EAEA;QAGE,eAAe0B,IACb5B;AAEJ,WAAA,QAAA,IAAA,MAAA,KAAA,KAAA,SAAA,QAAA,CAAA,EAAA,IAAA,CAAA,CAAA,YAAA,MAAA,GAAA,QAAA,GAAA,QAAA,YAAA,GAAA,CAAA,CAAA;EACF;;;;;;;;;;;;;AEvLA,SAAS6B,SAAAA,QAAOC,yBAAyB;AACzC,SAAuBC,YAAAA,WAAUC,qBAAAA,0BAAyB;AAC1D,SAA8BC,0BAA0BC,gBAAgB;AACxE,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,OAAAA,YAAW;AACpB,SAASC,mBAAmB;AAC5B,SAAmBC,cAAc;AACjC,SAGEC,uBAAuBC,oBACvBC,oBACAC,2BACK;AAEP,SAASC,cAAAA,aAAYC,cAAAA,mBAAkB;AAKvC,IAAAC,gBAAaC;;;;;EAMJC,aAAY,IAAIC,OAAiB;EAExC,aAAA,IAAAA,OAAA;;;;;;EAWA,cAAcC,IAAAA,YAAcC,WAAwC,IAAA;;cAE7DC,EAAAA,eAAkBF,GAAAA;AACzB,UAAA;AAEA,SAAyBG,kBAAuB;;QAE9C,QAAUC;SAENC,KAAAA,UAAAA,KAAkB,gBAAqB,UAACC,CAAAA,YAAgB,KAAA,WAAA,OAAA,CAAA,CAAA;AAC1D,SAAA,KAAA,UAAA,KAAA,gBAAA,cAAA,MAAA;AAEJ,wBAAA,KAAA,MAAA,MAAA,KAAA,iBAAA,CAAA;IAEA,CAAA,CAAA;;;;;QAKI,KAAA,KAAA,EAAA,OAAA,KAAA,GAAA;QACAC,CAAAA,KAAIC,mBAAK,IAAA,GAAA;WAEPC,KAAAA,sCAAU;;kBAERC;UACF,SAAA,KAAA,gBAAA;UACF,aAAA,KAAA,gBAAA;QAEAC;MACAA,GAAAA,EAAAA,YAAY,YAAQT,GAAAA,eAAgBU,GAAAA,IAAO,GAAA,KAAA,CAAA;AAC7C,WAAA,cAAA,KAAA,gBAAA;AAEI,WAACC,UAAYC,KAAIC,gBAAO;;SAAyBC,YAAa,IAAIC,OAAAA;MAAmC,WAAA,KAAA;MACzG,aAAWf,IAAAA,YACTgB,YACAC;;UAEEC,KAAAA,gBAAQC,KAAoBN,KAAAA,SAAOJ,cAAAA,oBAAAA;MACnCW,WAAS,YAAA;cAAEC,oBAAQC,OAAuB,IAAA;eAAEC;gBAAYV,mBAAW;mBAAG;UAAC,MAAA,MAAA;QACzE;MAEJ;IAEA,CAAA,CAAMW;;QAEJ,MAAI,KAAA,EAAA,OAAA,KAAA,GAAA;SACF,YAAWxB,OAAAA,KAAAA;;YAIPkB,KAAAA,gBAAQC,KAAoBN,KAAAA,SAAOJ,cAAAA,oBAAAA;QACnCW,WAAS,YAAA;gBAAEC,oBAAQC,OAAmBG,IAAK;iBAAEF;kBAAYV,mBAAW;qBAAG;YAAC,MAAA,MAAA;UAC1E;QAEF;MACA,CAAA,CAAA;aACE,KAAA;UACA,eAAA,0BAAA;AAGF;MACF;AACF,YAAA;IAEA;;QAME,MAAM,KAAKb,EAAAA,MAAAA,GAAAA;UAGP0B,WAAWC,mBAAiB,KAAA,MAAA,KAAA,WAAA,QAAA,CAAA,UAAA,MAAA,aAAA,MAAA,MAAA,CAAA,CAAA;UAC5BT,KAAAA,gBAAQC,KAAoBN,KAAAA,SAAO,cAAA,oBAAA;iBACjCH,YAAcV;cACdQ,oBAAkBR,OAAAA;QACpB,SAAA,KAAA,gBAAA;QACAoB,aAAS,KAAA,gBAAA;;eAAmCG;gBAAYV,mBAAW;mBAAG;UAAC,MAAA,MAAA;QACzE;MAGF;IACF,CAAA,CAAA;AAEA,WAAMe;;oBAEF,KAAA,SAAA;QACAvB,CAAAA,KAAIC,mBAAK,QAAA,MAAA,GAAA;WAEPC,KAAAA,mCAAU;gBAAEG,QAAS;kBAA8BF;UAA8C,SAAA,KAAA,gBAAA;UACnG,aAAA,KAAA,gBAAA;QACF;MAEA,GAAM,EAAA,YAAKR,YAAgB6B,GAAInC,eAE7BuB,GAASa,KAAAA,GAAAA,KAAAA,CAAAA;;UAEPZ,KAAAA,gBAAsB,KAAA,KAAA,SAAA,cAAA,OAAA,WAAA;MACtBa,WAAQ,YAAA;cAACC,QAAQC;cAAU;QAC3Bb,QAAS;;eAAqCc;QAA6B,SAAA,QAAA,QAAA;QAC7E,OAAA,QAAA,QAAA;MAEJ;IAEA,CAAA,CAAMC;EACJ;EACF,MAAA,kBAAA,UAAA;EAGE;EACF,MAAA,oBAAA,UAAA;;aAII,SAAKR;oBAAmB,WAAA;uBACjBS;AAEP,aAAA,sBAAA,OAAA;AACKT;MAAoB;uBAClBU,QACP;AACF,aAAA,gBAAA,OAAA;MACF;IAEQD;;wBAEUnB,SAASqB;AACzB,IAAAC,WAAKC,SAAWC,eAAKrB,OAAAA,MAAAA,oBAAAA,UAAAA,sBAAAA,EAAAA,YAAAA,YAAAA,GAAAA,eAAAA,GAAAA,KAAAA,GAAAA,MAAAA,GAAAA,CAAAA,qEAAAA,sBAAAA,EAAAA,CAAAA;AACrB,UAAMP,UAAQd,SAAU2C,WAAKtB,SAAgB,mBAAA;AAC7C,SAAK,WAAKT,KAAW,OAAKE;UACxB,QAAAd,WAAA,KAAA,QAAA,QAAA;AACF,QAAA,CAAA,KAAA,YAAA,IAAA,KAAA,GAAA;AAEA;IACA;AACA,UAAM4C,EAAAA,aAAe5B,SAAAA,IAAqB6B,KAAAA,YAAcxB,IAAQyB,KAAK;AAErE,UAAA,YAAA,QAAA,YAAA,IAAyC,KAAA,KAAA,MAAA,QAAA,SAAA,CAAA,IAAA,oBAAA,KAAA;AACzC,UAAK,WAAMpC,IAAQkC,YAAU,cAAA,QAAA,KAAA;eAEzB,QAAA,UAAA;AACF,UAAA,SAAA,IAAA,IAAA,GAAA;AACI;;WAEFG,WAAAA,KAAe;;uBAAeC;UAAU;UAC1C,OAAA;QACF;MAEA,CAAA;IACA;eAEI,QAAA,UAAA;AACF,UAAA,SAAA,IAAA,IAAA,GAAA;AACI;;WAEFC,WAAU,KAAA;;QAAO,UAAA;UACnB;QACF;MAEI,CAACrC;IACP;AAEQ0B,SAAAA,YAAgBL,IAA4B,KAAA,EAAA,cAAA;;kBAE5CZ,SAAUH;AAChBsB,IAAAA,WAAUP,SAAQd,eAAQ,OAAA,MAAA,OAAA,UAAA,UAAA,sBAAA,EAAA,YAAA,YAAA,GAAAxB,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,kEAAA,sBAAA,EAAA,CAAA;AAC1B6C,UAAAA,UAAUP,SAAc,WAAE,SAAA,OAAA,SAAA;AAC1BO,IAAAA,WAAUP,QAAQD,QAAOkB,qBAAc,EAAA,YAAA,YAAA,GAAAvD,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,kBAAA,qBAAA,EAAA,CAAA;AAEvC,IAAA6C,WAAK3C,QAAU6C,QAAK,qBAAA,EAAA,YAAA,YAAA,GAAA/C,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,kBAAA,qBAAA,EAAA,CAAA;eAClBwD,QAAQlB,OAAQd,WAAM,GAAA,uCAAA,EAAA,YAAA,YAAA,GAAAxB,eAAA,GAAA,KAAA,GAAA,MAAA,GAAA,CAAA,+BAAA,uCAAA,EAAA,CAAA;SACtBuC,UAAWD,KAAAA;MACXZ,QAAAA,QAAS;iBACP+B,QAAU/B,OAAQgC,CAAAA;eAClBlB;QACF,UAAA,QAAA;QACF,OAAA,QAAA;MACF;IAEQmB,CAAAA;;EAIR,mBAAA,MAAA;AAEA,WAAcjD,SAAAA,KAAkC,YAAA,KAAA,gBAAA,WAAA,KAAA,gBAAA,KAAA,gBAAA;;2BACTsC;AAA8B,IAAArC,KAAA,iBAAA;MACnE,QAAYQ,MAAAA,KAASyC,KAAAA,YAAgB,KAAK3C,CAAAA;qBAC9B,YAAW4C,GAAAA,eAAM,GAAA,KAAA,GAAA,KAAA,CAAA;eACzB1C,CAAAA,OAAAA,EAAAA,UAAAA,CAAAA,KAAAA,KAAAA,YAAAA,QAAAA,GAAAA;YACAJ,KAAM,KAAA,KAAA,MAAA;;cAEJD;UACAgD,SAAOF,KAAAA,gBAAAA;UACT,aAAA,KAAA,gBAAA;UACF,OAAA;QACF;MACF,CAAA;IACF;EAEA;;0BAEoBG,CAAK,OAAA,aAAA;SAClBC;IACL,UAAA,MAAA,MAAA;IACF,GAAA;;;;;ACtPA,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,OAAAA,YAAW;AAEpB,SAASC,kBAAkB;AAE3B,IAAAC,gBAAaC;IAUJC,kBAAgBC,CAAAA,EAAAA,iBAAa,gBAAA,OAAA,MAAA;kBAC5B,cAAA,EAAA,UAAA,CAAA,SAAA;eAA0CD,UAAAA,aAAAA;AAAK,MAAAJ,KAAA,wCAAA;QACnD;MACF,GAAA,EAAA,YAAA,YAAA,GAAAE,eAAA,GAAA,IAAA,GAAA,OAAA,CAAA;AAEAI;IACF;AAEAC,WAAAA,eAAeC,KAAeC,SAAU,YAACC,SAAAA,CAAAA;;iBAEjC,aAAA,EAAA,UAAA,CAAA,QAAA;gBAAwCC,CAAAA,IAAQD,WAAAA,IAAAA,QAAAA,WAAAA,GAAAA;AAAI,MAAAV,KAAA,sCAAA;QACxD,QAAA;MACF,GAAA,EAAA,YAAA,YAAA,GAAAE,eAAA,GAAA,IAAA,GAAA,OAAA,CAAA;AACAH;IAEA;AACA,IAAAA,WAAKa,KAAAA,sCAAY,EAAA,YAAA,YAAA,GAAAV,eAAA,GAAA,IAAA,GAAA,QAAA,GAAA,CAAA,OAAA,sCAAA,EAAA,CAAA;UACfF,aAAI,IAAA,QAAqB,KAAA,CAAA,WAAA,OAAA,SAAA,WAAA,OAAA;qBAAUU;AAAI,MAAAV,KAAA,qBAAA;QACvC,QAAA;MACF,GAAA,EAAA,YAAA,YAAA,GAAAE,eAAA,GAAA,IAAA,GAAA,OAAA,CAAA;AACAI;IACF;AACA,WAAA,aAAA,WAAA,UAAA,SAAA,CAAA;;;",
6
+ "names": ["DeferredTask", "Event", "Trigger", "scheduleTask", "scheduleTaskInterval", "sleep", "Resource", "cancelWithContext", "invariant", "PublicKey", "log", "SignalState", "trace", "SignalClientMonitor", "_performance", "sentMessages", "receivedMessages", "reconnectCounter", "joinCounter", "leaveCounter", "_connectionStarted", "Date", "_lastStateChange", "getRecordedTimestamps", "connectionStarted", "lastStateChange", "recordStateChangeTime", "recordConnectionStartTime", "recordReconnect", "params", "metrics", "increment", "tags", "success", "recordJoin", "recordLeave", "recordMessageReceived", "message", "createIdentityTags", "distribution", "getByteCount", "recordMessageSending", "sendMessage", "reqStart", "now", "reqDuration", "err", "recordStreamCloseErrors", "count", "recordReconciliation", "author", "peerKey", "length", "recipient", "payload", "type_url", "value", "peer", "Event", "asyncTimeout", "cancelWithContext", "PublicKey", "log", "ComplexMap", "ComplexSet", "safeAwaitAll", "SignalLocalState", "_onMessage", "_onSwarmEvent", "safeCloseStreams", "_swarmStreams", "concat", "messageStreams", "failureCount", "join", "topic", "peerId", "leave", "close", "subscribeMessages", "unsubscribeMessages", "reconcile", "client", "_reconcileMessageSubscriptions", "reconciled", "_reconcileSwarmSubscriptions", "_joinedTopics", "has", "peerAvailable", "peerLeft", "swarmStream", "_subscribedMessages", "messageStream", "peerKey", "recipient", "payload", "signalMessage", "message", "WebSocket", "TimeoutError", "Trigger", "scheduleTaskInterval", "Context", "invariant", "log", "schema", "createProtoRpcPeer", "trace", "SignalRpcClientMonitor", "recordClientCloseFailure", "params", "metrics", "increment", "tags", "reason", "failureReason", "__dxlog_file", "SIGNAL_KEEPALIVE_INTERVAL", "_connectTrigger", "_keepaliveCtx", "_closed", "_url", "_callbacks", "_closeComplete", "_monitor", "callbacks", "url", "log", "_socket", "_rpc", "createProtoRpcPeer", "requested", "Signal", "getService", "noHandshake", "port", "msg", "warn", "subscribe", "Buffer", "arrayBuffer", "cb", "data", "encodingOptions", "_safeCloseRpc", "wake", "Context", "scheduleTaskInterval", "err", "onDisconnected", "onerror", "close", "type", "message", "failureReason", "topic", "peerId", "metadata", "invariant", "wait", "swarmStream", "swarm", "asUint8Array", "peer", "waitUntilReady", "receiveMessages", "messageStream", "sendMessage", "author", "recipient", "payload", "rpc", "getMetadata", "catch", "__dxlog_file", "DEFAULT_RECONNECT_TIMEOUT", "ERROR_RECONCILE_DELAY", "RECONCILE_INTERVAL", "_monitor", "_state", "_lastError", "_lastReconciliationFailed", "_clientReady", "_connectionCtx", "_client", "Trigger", "_reconcileTask", "_reconnectTask", "onMessage", "swarmEvent", "Event", "_host", "startsWith", "Error", "localState", "message", "emit", "event", "_open", "SignalState", "includes", "cancelWithContext", "invariant", "recordReconciliation", "success", "err", "scheduleTaskInterval", "schedule", "_reconnect", "log", "_catch", "_scheduleReconcileAfterError", "_close", "CLOSED", "getStatus", "host", "state", "error", "reconnectIn", "getRecordedTimestamps", "topic", "args", "peerId", "recordJoin", "PublicKey", "leave", "recordLeave", "from", "sendMessage", "_ctx", "CONNECTED", "msg", "peerKey", "recipient", "author", "payload", "peer", "unsubscribeMessages", "_createClient", "recordConnectionStartTime", "failureCount", "recordStreamCloseErrors", "callbacks", "onConnected", "_onConnected", "onDisconnected", "_onDisconnected", "onError", "getMetadata", "undefined", "sleep", "_reconnectAfter", "_setState", "options", "DISCONNECTED", "recordStateChangeTime", "status", "statusChanged", "_updateReconnectTimeout", "min", "MAX_RECONNECT_TIMEOUT", "close", "LifecycleState", "invariant", "Resource", "log", "RateLimitExceededError", "BitField", "TimeoutError", "SignalClient", "trace", "WebsocketSignalManagerMonitor", "recordRateLimitExceeded", "metrics", "increment", "recordServerFailure", "params", "tags", "server", "serverName", "restarted", "willRestart", "WSS_SIGNAL_SERVER_REBOOT_DELAY", "_servers", "_monitor", "WebsocketSignalManagerMonitor", "failureCount", "statusChanged", "Event", "swarmEvent", "onMessage", "_hosts", "_getMetadata", "log", "hosts", "host", "has", "server", "on", "emit", "data", "set", "safeAwaitAll", "serverName", "invariant", "_lifecycleState", "LifecycleState", "OPEN", "__dxlog_file", "sleep", "getStatus", "Array", "topic", "peer", "_forEachServer", "_ctx", "Error", "recipient", "index", "sendMessage", "author", "payload", "then", "err", "RateLimitExceededError", "recordRateLimitExceeded", "info", "TimeoutError", "checkServerFailure", "get", "isRestartRequired", "MAX_SERVER_FAILURES", "recordServerFailure", "willRestart", "BitField", "_failedServersBitfield", "_clearServerFailedFlag", "subscribeMessages", "unsubscribeMessages", "all", "Event", "scheduleMicroTask", "Resource", "cancelWithContext", "EdgeIdentityChangedError", "protocol", "invariant", "PublicKey", "log", "EdgeService", "bufWkt", "SwarmRequest_Action", "SwarmRequestAction", "SwarmRequestSchema", "SwarmResponseSchema", "ComplexMap", "ComplexSet", "__dxlog_file", "EdgeSignalManager", "onMessage", "Event", "edgeConnection", "PublicKey", "_edgeConnection", "_open", "onDispose", "scheduleMicroTask", "_rejoinAllSwarms", "log", "warn", "expected", "identityKey", "peer", "peerKey", "_swarmPeers", "set", "topic", "joinedPeers", "ComplexSet", "ctx", "protocol", "source", "createMessageSource", "payload", "action", "SwarmRequestAction", "swarmKeys", "leave", "LEAVE", "serviceId", "EdgeService", "sendMessage", "send", "createMessage", "target", "message", "recipient", "value", "subscribeMessages", "_processSwarmResponse", "_processMessage", "getPayload", "invariant", "swarmState", "emit", "from", "newPeers", "PeerInfoHash", "peers", "peerAvailable", "timestamp", "peerLeft", "length", "author", "type_url", "typeUrl", "_matchSelfPeerInfo", "lastState", "_ctx", "state", "toHex", "peerInfo", "invariant", "log", "DeviceKind", "__dxlog_file", "setIdentityTags", "idqr", "identityKey", "setTag", "devicesService", "queryDevices", "subscribe", "dqr", "device", "thisDevice"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/messenger-monitor.ts":{"bytes":1936,"imports":[{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/timeouts.ts":{"bytes":561,"imports":[],"format":"esm"},"src/messenger.ts":{"bytes":35271,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/messenger-monitor.ts","kind":"import-statement","original":"./messenger-monitor"},{"path":"src/timeouts.ts","kind":"import-statement","original":"./timeouts"}],"format":"esm"},"src/signal-client/signal-client-monitor.ts":{"bytes":10924,"imports":[{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/signal-client/signal-local-state.ts":{"bytes":21888,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/signal-client/signal-rpc-client-monitor.ts":{"bytes":1448,"imports":[{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/signal-client/signal-rpc-client.ts":{"bytes":23938,"imports":[{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"src/signal-client/signal-rpc-client-monitor.ts","kind":"import-statement","original":"./signal-rpc-client-monitor"}],"format":"esm"},"src/signal-client/signal-client.ts":{"bytes":40706,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/mesh/signal","kind":"import-statement","external":true},{"path":"src/signal-client/signal-client-monitor.ts","kind":"import-statement","original":"./signal-client-monitor"},{"path":"src/signal-client/signal-local-state.ts","kind":"import-statement","original":"./signal-local-state"},{"path":"src/signal-client/signal-rpc-client.ts","kind":"import-statement","original":"./signal-rpc-client"}],"format":"esm"},"src/signal-client/index.ts":{"bytes":389,"imports":[{"path":"src/signal-client/signal-client.ts","kind":"import-statement","original":"./signal-client"}],"format":"esm"},"src/signal-methods.ts":{"bytes":3516,"imports":[],"format":"esm"},"src/signal-manager/memory-signal-manager.ts":{"bytes":23386,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/signal-methods.ts","kind":"import-statement","original":"../signal-methods"}],"format":"esm"},"src/signal-manager/websocket-signal-manager-monitor.ts":{"bytes":2060,"imports":[{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/signal-manager/websocket-signal-manager.ts":{"bytes":26314,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/signal-client/index.ts","kind":"import-statement","original":"../signal-client"},{"path":"src/signal-manager/websocket-signal-manager-monitor.ts","kind":"import-statement","original":"./websocket-signal-manager-monitor"}],"format":"esm"},"src/signal-manager/edge-signal-manager.ts":{"bytes":29795,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf/dxos/edge/messenger_pb","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/signal-methods.ts","kind":"import-statement","original":"../signal-methods"}],"format":"esm"},"src/signal-manager/utils.ts":{"bytes":4764,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true}],"format":"esm"},"src/signal-manager/index.ts":{"bytes":789,"imports":[{"path":"src/signal-manager/memory-signal-manager.ts","kind":"import-statement","original":"./memory-signal-manager"},{"path":"src/signal-manager/websocket-signal-manager.ts","kind":"import-statement","original":"./websocket-signal-manager"},{"path":"src/signal-manager/edge-signal-manager.ts","kind":"import-statement","original":"./edge-signal-manager"},{"path":"src/signal-manager/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/index.ts":{"bytes":690,"imports":[{"path":"src/messenger.ts","kind":"import-statement","original":"./messenger"},{"path":"src/signal-client/index.ts","kind":"import-statement","original":"./signal-client"},{"path":"src/signal-manager/index.ts","kind":"import-statement","original":"./signal-manager"},{"path":"src/signal-methods.ts","kind":"import-statement","original":"./signal-methods"}],"format":"esm"},"src/testing/test-messages.ts":{"bytes":1923,"imports":[],"format":"esm"},"src/testing/utils.ts":{"bytes":5753,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"src/testing/test-messages.ts","kind":"import-statement","original":"./test-messages"}],"format":"esm"},"src/testing/test-peer.ts":{"bytes":7372,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf","kind":"import-statement","external":true},{"path":"src/messenger.ts","kind":"import-statement","original":"../messenger"},{"path":"src/testing/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/testing/test-builder.ts":{"bytes":5561,"imports":[{"path":"src/signal-manager/index.ts","kind":"import-statement","original":"../signal-manager"},{"path":"src/testing/test-peer.ts","kind":"import-statement","original":"./test-peer"}],"format":"esm"},"src/testing/index.ts":{"bytes":663,"imports":[{"path":"src/testing/test-builder.ts","kind":"import-statement","original":"./test-builder"},{"path":"src/testing/test-peer.ts","kind":"import-statement","original":"./test-peer"},{"path":"src/testing/test-messages.ts","kind":"import-statement","original":"./test-messages"},{"path":"src/testing/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"}},"outputs":{"dist/lib/neutral/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":77340},"dist/lib/neutral/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-EC4H56J5.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/mesh/signal","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf/dxos/edge/messenger_pb","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true}],"exports":["EdgeSignalManager","MemorySignalManager","MemorySignalManagerContext","Messenger","PeerInfoHash","SignalClient","WebsocketSignalManager","setIdentityTags"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/signal-client/signal-client.ts":{"bytesInOutput":11426},"src/signal-client/signal-client-monitor.ts":{"bytesInOutput":2742},"src/signal-client/signal-local-state.ts":{"bytesInOutput":5247},"src/signal-client/signal-rpc-client.ts":{"bytesInOutput":6084},"src/signal-client/signal-rpc-client-monitor.ts":{"bytesInOutput":283},"src/signal-manager/websocket-signal-manager.ts":{"bytesInOutput":8289},"src/signal-manager/websocket-signal-manager-monitor.ts":{"bytesInOutput":436},"src/signal-manager/edge-signal-manager.ts":{"bytesInOutput":7862},"src/signal-manager/utils.ts":{"bytesInOutput":1448}},"bytes":44726},"dist/lib/neutral/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10480},"dist/lib/neutral/testing/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-EC4H56J5.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"exports":["PAYLOAD_1","PAYLOAD_2","PAYLOAD_3","TestBuilder","TestPeer","createMessage","expectPeerAvailable","expectPeerLeft","expectReceivedMessage","messageEqual"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/test-peer.ts":{"bytesInOutput":1656},"src/testing/utils.ts":{"bytesInOutput":1132},"src/testing/test-messages.ts":{"bytesInOutput":330},"src/testing/test-builder.ts":{"bytesInOutput":997},"src/testing/index.ts":{"bytesInOutput":0}},"bytes":4638},"dist/lib/neutral/chunk-EC4H56J5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32170},"dist/lib/neutral/chunk-EC4H56J5.mjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["MemorySignalManager","MemorySignalManagerContext","Messenger","PeerInfoHash"],"inputs":{"src/messenger.ts":{"bytesInOutput":9929},"src/messenger-monitor.ts":{"bytesInOutput":392},"src/timeouts.ts":{"bytesInOutput":27},"src/signal-methods.ts":{"bytesInOutput":45},"src/signal-manager/memory-signal-manager.ts":{"bytesInOutput":6309}},"bytes":17038}}}
1
+ {"inputs":{"src/messenger-monitor.ts":{"bytes":1936,"imports":[{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/timeouts.ts":{"bytes":561,"imports":[],"format":"esm"},"src/messenger.ts":{"bytes":35271,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/messenger-monitor.ts","kind":"import-statement","original":"./messenger-monitor"},{"path":"src/timeouts.ts","kind":"import-statement","original":"./timeouts"}],"format":"esm"},"src/signal-client/signal-client-monitor.ts":{"bytes":10924,"imports":[{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/signal-client/signal-local-state.ts":{"bytes":21888,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/signal-client/signal-rpc-client-monitor.ts":{"bytes":1448,"imports":[{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/signal-client/signal-rpc-client.ts":{"bytes":23938,"imports":[{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"src/signal-client/signal-rpc-client-monitor.ts","kind":"import-statement","original":"./signal-rpc-client-monitor"}],"format":"esm"},"src/signal-client/signal-client.ts":{"bytes":40706,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/mesh/signal","kind":"import-statement","external":true},{"path":"src/signal-client/signal-client-monitor.ts","kind":"import-statement","original":"./signal-client-monitor"},{"path":"src/signal-client/signal-local-state.ts","kind":"import-statement","original":"./signal-local-state"},{"path":"src/signal-client/signal-rpc-client.ts","kind":"import-statement","original":"./signal-rpc-client"}],"format":"esm"},"src/signal-client/index.ts":{"bytes":389,"imports":[{"path":"src/signal-client/signal-client.ts","kind":"import-statement","original":"./signal-client"}],"format":"esm"},"src/signal-methods.ts":{"bytes":3516,"imports":[],"format":"esm"},"src/signal-manager/memory-signal-manager.ts":{"bytes":23386,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/signal-methods.ts","kind":"import-statement","original":"../signal-methods"}],"format":"esm"},"src/signal-manager/websocket-signal-manager-monitor.ts":{"bytes":2060,"imports":[{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/signal-manager/websocket-signal-manager.ts":{"bytes":26314,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/signal-client/index.ts","kind":"import-statement","original":"../signal-client"},{"path":"src/signal-manager/websocket-signal-manager-monitor.ts","kind":"import-statement","original":"./websocket-signal-manager-monitor"}],"format":"esm"},"src/signal-manager/edge-signal-manager.ts":{"bytes":29795,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf/dxos/edge/messenger_pb","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/signal-methods.ts","kind":"import-statement","original":"../signal-methods"}],"format":"esm"},"src/signal-manager/utils.ts":{"bytes":4764,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true}],"format":"esm"},"src/signal-manager/index.ts":{"bytes":789,"imports":[{"path":"src/signal-manager/memory-signal-manager.ts","kind":"import-statement","original":"./memory-signal-manager"},{"path":"src/signal-manager/websocket-signal-manager.ts","kind":"import-statement","original":"./websocket-signal-manager"},{"path":"src/signal-manager/edge-signal-manager.ts","kind":"import-statement","original":"./edge-signal-manager"},{"path":"src/signal-manager/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/index.ts":{"bytes":690,"imports":[{"path":"src/messenger.ts","kind":"import-statement","original":"./messenger"},{"path":"src/signal-client/index.ts","kind":"import-statement","original":"./signal-client"},{"path":"src/signal-manager/index.ts","kind":"import-statement","original":"./signal-manager"},{"path":"src/signal-methods.ts","kind":"import-statement","original":"./signal-methods"}],"format":"esm"},"src/testing/test-messages.ts":{"bytes":1923,"imports":[],"format":"esm"},"src/testing/utils.ts":{"bytes":5753,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"src/testing/test-messages.ts","kind":"import-statement","original":"./test-messages"}],"format":"esm"},"src/testing/test-peer.ts":{"bytes":7372,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf","kind":"import-statement","external":true},{"path":"src/messenger.ts","kind":"import-statement","original":"../messenger"},{"path":"src/testing/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/testing/test-builder.ts":{"bytes":5561,"imports":[{"path":"src/signal-manager/index.ts","kind":"import-statement","original":"../signal-manager"},{"path":"src/testing/test-peer.ts","kind":"import-statement","original":"./test-peer"}],"format":"esm"},"src/testing/index.ts":{"bytes":663,"imports":[{"path":"src/testing/test-builder.ts","kind":"import-statement","original":"./test-builder"},{"path":"src/testing/test-peer.ts","kind":"import-statement","original":"./test-peer"},{"path":"src/testing/test-messages.ts","kind":"import-statement","original":"./test-messages"},{"path":"src/testing/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"}},"outputs":{"dist/lib/neutral/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":77318},"dist/lib/neutral/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-EC4H56J5.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/mesh/signal","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf/dxos/edge/messenger_pb","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true}],"exports":["EdgeSignalManager","MemorySignalManager","MemorySignalManagerContext","Messenger","PeerInfoHash","SignalClient","WebsocketSignalManager","setIdentityTags"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/signal-client/signal-client.ts":{"bytesInOutput":11426},"src/signal-client/signal-client-monitor.ts":{"bytesInOutput":2742},"src/signal-client/signal-local-state.ts":{"bytesInOutput":5247},"src/signal-client/signal-rpc-client.ts":{"bytesInOutput":6084},"src/signal-client/signal-rpc-client-monitor.ts":{"bytesInOutput":283},"src/signal-manager/websocket-signal-manager.ts":{"bytesInOutput":8289},"src/signal-manager/websocket-signal-manager-monitor.ts":{"bytesInOutput":436},"src/signal-manager/edge-signal-manager.ts":{"bytesInOutput":7862},"src/signal-manager/utils.ts":{"bytesInOutput":1448}},"bytes":44726},"dist/lib/neutral/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10480},"dist/lib/neutral/testing/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-EC4H56J5.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/buf","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"exports":["PAYLOAD_1","PAYLOAD_2","PAYLOAD_3","TestBuilder","TestPeer","createMessage","expectPeerAvailable","expectPeerLeft","expectReceivedMessage","messageEqual"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/test-peer.ts":{"bytesInOutput":1656},"src/testing/utils.ts":{"bytesInOutput":1132},"src/testing/test-messages.ts":{"bytesInOutput":330},"src/testing/test-builder.ts":{"bytesInOutput":997},"src/testing/index.ts":{"bytesInOutput":0}},"bytes":4638},"dist/lib/neutral/chunk-EC4H56J5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32170},"dist/lib/neutral/chunk-EC4H56J5.mjs":{"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["MemorySignalManager","MemorySignalManagerContext","Messenger","PeerInfoHash"],"inputs":{"src/messenger.ts":{"bytesInOutput":9929},"src/messenger-monitor.ts":{"bytesInOutput":392},"src/timeouts.ts":{"bytesInOutput":27},"src/signal-methods.ts":{"bytesInOutput":45},"src/signal-manager/memory-signal-manager.ts":{"bytesInOutput":6309}},"bytes":17038}}}