@dxos/client-services 0.5.9-main.bd9c8b3 → 0.5.9-main.bdb299c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/lib/browser/{chunk-KI7FY3ZO.mjs → chunk-366QXBJQ.mjs} +940 -523
  2. package/dist/lib/browser/chunk-366QXBJQ.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +13 -2
  4. package/dist/lib/browser/index.mjs.map +1 -1
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/packlets/testing/index.mjs +10 -3
  7. package/dist/lib/browser/packlets/testing/index.mjs.map +1 -1
  8. package/dist/lib/node/{chunk-XWMOEZYI.cjs → chunk-RZCXR5W4.cjs} +975 -558
  9. package/dist/lib/node/chunk-RZCXR5W4.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +53 -42
  11. package/dist/lib/node/index.cjs.map +1 -1
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/packlets/testing/index.cjs +17 -10
  14. package/dist/lib/node/packlets/testing/index.cjs.map +1 -1
  15. package/dist/types/src/packlets/identity/contacts-service.d.ts +14 -0
  16. package/dist/types/src/packlets/identity/contacts-service.d.ts.map +1 -0
  17. package/dist/types/src/packlets/identity/identity-service.d.ts.map +1 -1
  18. package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
  19. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts.map +1 -1
  20. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  21. package/dist/types/src/packlets/spaces/data-space-manager.d.ts +10 -1
  22. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  23. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  24. package/dist/types/src/packlets/spaces/epoch-migrations.d.ts +2 -2
  25. package/dist/types/src/packlets/spaces/epoch-migrations.d.ts.map +1 -1
  26. package/dist/types/src/packlets/spaces/spaces-service.d.ts +4 -1
  27. package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
  28. package/dist/types/src/packlets/storage/index.d.ts +1 -0
  29. package/dist/types/src/packlets/storage/index.d.ts.map +1 -1
  30. package/dist/types/src/packlets/storage/profile-archive.d.ts +14 -0
  31. package/dist/types/src/packlets/storage/profile-archive.d.ts.map +1 -0
  32. package/dist/types/src/version.d.ts +1 -1
  33. package/package.json +36 -36
  34. package/src/packlets/identity/contacts-service.ts +85 -0
  35. package/src/packlets/identity/identity-service.ts +28 -22
  36. package/src/packlets/invitations/invitations-handler.ts +13 -5
  37. package/src/packlets/invitations/space-invitation-protocol.ts +11 -32
  38. package/src/packlets/services/service-host.ts +12 -4
  39. package/src/packlets/spaces/data-space-manager.ts +55 -2
  40. package/src/packlets/spaces/data-space.ts +3 -1
  41. package/src/packlets/spaces/epoch-migrations.ts +57 -38
  42. package/src/packlets/spaces/spaces-service.ts +40 -0
  43. package/src/packlets/storage/index.ts +1 -0
  44. package/src/packlets/storage/profile-archive.ts +111 -0
  45. package/src/version.ts +1 -1
  46. package/dist/lib/browser/chunk-KI7FY3ZO.mjs.map +0 -7
  47. package/dist/lib/node/chunk-XWMOEZYI.cjs.map +0 -7
@@ -18,48 +18,52 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var node_exports = {};
20
20
  __export(node_exports, {
21
- ClientRpcServer: () => import_chunk_XWMOEZYI.ClientRpcServer,
22
- ClientServicesHost: () => import_chunk_XWMOEZYI.ClientServicesHost,
23
- ClientServicesProviderResource: () => import_chunk_XWMOEZYI.ClientServicesProviderResource,
24
- DataSpace: () => import_chunk_XWMOEZYI.DataSpace,
25
- DataSpaceManager: () => import_chunk_XWMOEZYI.DataSpaceManager,
26
- DeviceInvitationProtocol: () => import_chunk_XWMOEZYI.DeviceInvitationProtocol,
27
- DevtoolsHostEvents: () => import_chunk_XWMOEZYI.DevtoolsHostEvents,
28
- DevtoolsServiceImpl: () => import_chunk_XWMOEZYI.DevtoolsServiceImpl,
29
- DiagnosticsCollector: () => import_chunk_XWMOEZYI.DiagnosticsCollector,
30
- Identity: () => import_chunk_XWMOEZYI.Identity,
31
- IdentityManager: () => import_chunk_XWMOEZYI.IdentityManager,
32
- IdentityServiceImpl: () => import_chunk_XWMOEZYI.IdentityServiceImpl,
33
- InvitationsHandler: () => import_chunk_XWMOEZYI.InvitationsHandler,
34
- InvitationsManager: () => import_chunk_XWMOEZYI.InvitationsManager,
35
- InvitationsServiceImpl: () => import_chunk_XWMOEZYI.InvitationsServiceImpl,
36
- Lock: () => import_chunk_XWMOEZYI.Lock,
37
- ServiceContext: () => import_chunk_XWMOEZYI.ServiceContext,
38
- ServiceRegistry: () => import_chunk_XWMOEZYI.ServiceRegistry,
39
- SpaceInvitationProtocol: () => import_chunk_XWMOEZYI.SpaceInvitationProtocol,
40
- SpacesServiceImpl: () => import_chunk_XWMOEZYI.SpacesServiceImpl,
41
- TrustedKeySetAuthVerifier: () => import_chunk_XWMOEZYI.TrustedKeySetAuthVerifier,
21
+ ClientRpcServer: () => import_chunk_RZCXR5W4.ClientRpcServer,
22
+ ClientServicesHost: () => import_chunk_RZCXR5W4.ClientServicesHost,
23
+ ClientServicesProviderResource: () => import_chunk_RZCXR5W4.ClientServicesProviderResource,
24
+ DataSpace: () => import_chunk_RZCXR5W4.DataSpace,
25
+ DataSpaceManager: () => import_chunk_RZCXR5W4.DataSpaceManager,
26
+ DeviceInvitationProtocol: () => import_chunk_RZCXR5W4.DeviceInvitationProtocol,
27
+ DevtoolsHostEvents: () => import_chunk_RZCXR5W4.DevtoolsHostEvents,
28
+ DevtoolsServiceImpl: () => import_chunk_RZCXR5W4.DevtoolsServiceImpl,
29
+ DiagnosticsCollector: () => import_chunk_RZCXR5W4.DiagnosticsCollector,
30
+ Identity: () => import_chunk_RZCXR5W4.Identity,
31
+ IdentityManager: () => import_chunk_RZCXR5W4.IdentityManager,
32
+ IdentityServiceImpl: () => import_chunk_RZCXR5W4.IdentityServiceImpl,
33
+ InvitationsHandler: () => import_chunk_RZCXR5W4.InvitationsHandler,
34
+ InvitationsManager: () => import_chunk_RZCXR5W4.InvitationsManager,
35
+ InvitationsServiceImpl: () => import_chunk_RZCXR5W4.InvitationsServiceImpl,
36
+ Lock: () => import_chunk_RZCXR5W4.Lock,
37
+ ServiceContext: () => import_chunk_RZCXR5W4.ServiceContext,
38
+ ServiceRegistry: () => import_chunk_RZCXR5W4.ServiceRegistry,
39
+ SpaceInvitationProtocol: () => import_chunk_RZCXR5W4.SpaceInvitationProtocol,
40
+ SpacesServiceImpl: () => import_chunk_RZCXR5W4.SpacesServiceImpl,
41
+ TrustedKeySetAuthVerifier: () => import_chunk_RZCXR5W4.TrustedKeySetAuthVerifier,
42
42
  WorkerRuntime: () => WorkerRuntime,
43
43
  WorkerSession: () => WorkerSession,
44
- createAdmissionKeypair: () => import_chunk_XWMOEZYI.createAdmissionKeypair,
45
- createAuthProvider: () => import_chunk_XWMOEZYI.createAuthProvider,
46
- createCollectDiagnosticsBroadcastHandler: () => import_chunk_XWMOEZYI.createCollectDiagnosticsBroadcastHandler,
47
- createCollectDiagnosticsBroadcastSender: () => import_chunk_XWMOEZYI.createCollectDiagnosticsBroadcastSender,
48
- createDiagnostics: () => import_chunk_XWMOEZYI.createDiagnostics,
49
- createLevel: () => import_chunk_XWMOEZYI.createLevel,
50
- createStorageObjects: () => import_chunk_XWMOEZYI.createStorageObjects,
51
- getNetworkPeers: () => import_chunk_XWMOEZYI.getNetworkPeers,
52
- isLocked: () => import_chunk_XWMOEZYI.isLocked,
53
- subscribeToFeedBlocks: () => import_chunk_XWMOEZYI.subscribeToFeedBlocks,
54
- subscribeToFeeds: () => import_chunk_XWMOEZYI.subscribeToFeeds,
55
- subscribeToNetworkStatus: () => import_chunk_XWMOEZYI.subscribeToNetworkStatus,
56
- subscribeToNetworkTopics: () => import_chunk_XWMOEZYI.subscribeToNetworkTopics,
57
- subscribeToSignal: () => import_chunk_XWMOEZYI.subscribeToSignal,
58
- subscribeToSpaces: () => import_chunk_XWMOEZYI.subscribeToSpaces,
59
- subscribeToSwarmInfo: () => import_chunk_XWMOEZYI.subscribeToSwarmInfo
44
+ createAdmissionKeypair: () => import_chunk_RZCXR5W4.createAdmissionKeypair,
45
+ createAuthProvider: () => import_chunk_RZCXR5W4.createAuthProvider,
46
+ createCollectDiagnosticsBroadcastHandler: () => import_chunk_RZCXR5W4.createCollectDiagnosticsBroadcastHandler,
47
+ createCollectDiagnosticsBroadcastSender: () => import_chunk_RZCXR5W4.createCollectDiagnosticsBroadcastSender,
48
+ createDiagnostics: () => import_chunk_RZCXR5W4.createDiagnostics,
49
+ createLevel: () => import_chunk_RZCXR5W4.createLevel,
50
+ createStorageObjects: () => import_chunk_RZCXR5W4.createStorageObjects,
51
+ decodeProfileArchive: () => import_chunk_RZCXR5W4.decodeProfileArchive,
52
+ encodeProfileArchive: () => import_chunk_RZCXR5W4.encodeProfileArchive,
53
+ exportProfileData: () => import_chunk_RZCXR5W4.exportProfileData,
54
+ getNetworkPeers: () => import_chunk_RZCXR5W4.getNetworkPeers,
55
+ importProfileData: () => import_chunk_RZCXR5W4.importProfileData,
56
+ isLocked: () => import_chunk_RZCXR5W4.isLocked,
57
+ subscribeToFeedBlocks: () => import_chunk_RZCXR5W4.subscribeToFeedBlocks,
58
+ subscribeToFeeds: () => import_chunk_RZCXR5W4.subscribeToFeeds,
59
+ subscribeToNetworkStatus: () => import_chunk_RZCXR5W4.subscribeToNetworkStatus,
60
+ subscribeToNetworkTopics: () => import_chunk_RZCXR5W4.subscribeToNetworkTopics,
61
+ subscribeToSignal: () => import_chunk_RZCXR5W4.subscribeToSignal,
62
+ subscribeToSpaces: () => import_chunk_RZCXR5W4.subscribeToSpaces,
63
+ subscribeToSwarmInfo: () => import_chunk_RZCXR5W4.subscribeToSwarmInfo
60
64
  });
61
65
  module.exports = __toCommonJS(node_exports);
62
- var import_chunk_XWMOEZYI = require("./chunk-XWMOEZYI.cjs");
66
+ var import_chunk_RZCXR5W4 = require("./chunk-RZCXR5W4.cjs");
63
67
  var import_async = require("@dxos/async");
64
68
  var import_context = require("@dxos/context");
65
69
  var import_invariant = require("@dxos/invariant");
@@ -117,12 +121,12 @@ var WorkerSession = class {
117
121
  return handler(method, params);
118
122
  }
119
123
  };
120
- this._clientRpc = new import_chunk_XWMOEZYI.ClientRpcServer({
124
+ this._clientRpc = new import_chunk_RZCXR5W4.ClientRpcServer({
121
125
  serviceRegistry: this._serviceHost.serviceRegistry,
122
126
  port: appPort,
123
127
  ...middleware
124
128
  });
125
- this._shellClientRpc = shellPort ? new import_chunk_XWMOEZYI.ClientRpcServer({
129
+ this._shellClientRpc = shellPort ? new import_chunk_RZCXR5W4.ClientRpcServer({
126
130
  serviceRegistry: this._serviceHost.serviceRegistry,
127
131
  port: shellPort,
128
132
  ...middleware
@@ -249,7 +253,7 @@ var WorkerRuntime = class {
249
253
  this._signalTelemetryEnabled = false;
250
254
  this._acquireLock = acquireLock;
251
255
  this._releaseLock = releaseLock;
252
- this._clientServices = new import_chunk_XWMOEZYI.ClientServicesHost({
256
+ this._clientServices = new import_chunk_RZCXR5W4.ClientServicesHost({
253
257
  callbacks: {
254
258
  onReset: async () => onReset()
255
259
  }
@@ -274,7 +278,10 @@ var WorkerRuntime = class {
274
278
  signalManager: signals ? new import_messaging.WebsocketSignalManager(signals, () => this._signalTelemetryEnabled ? this._signalMetadataTags : {}) : new import_messaging.MemorySignalManager(new import_messaging.MemorySignalManagerContext()),
275
279
  transportFactory: this._transportFactory
276
280
  });
277
- await this._clientServices.open(new import_context.Context());
281
+ await this._clientServices.open(new import_context.Context(void 0, {
282
+ F: __dxlog_file2,
283
+ L: 84
284
+ }));
278
285
  this._ready.wake(void 0);
279
286
  (0, import_log.log)("started", void 0, {
280
287
  F: __dxlog_file2,
@@ -400,7 +407,11 @@ var WorkerRuntime = class {
400
407
  createDiagnostics,
401
408
  createLevel,
402
409
  createStorageObjects,
410
+ decodeProfileArchive,
411
+ encodeProfileArchive,
412
+ exportProfileData,
403
413
  getNetworkPeers,
414
+ importProfileData,
404
415
  isLocked,
405
416
  subscribeToFeedBlocks,
406
417
  subscribeToFeeds,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/packlets/worker/worker-runtime.ts", "../../../src/packlets/worker/worker-session.ts"],
4
4
  "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { Trigger } from '@dxos/async';\nimport { type Config } from '@dxos/config';\nimport { Context } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport {\n MemorySignalManager,\n MemorySignalManagerContext,\n WebsocketSignalManager,\n setIdentityTags,\n} from '@dxos/messaging';\nimport { SimplePeerTransportProxyFactory } from '@dxos/network-manager';\nimport { type RpcPort } from '@dxos/rpc';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { WorkerSession } from './worker-session';\nimport { ClientServicesHost } from '../services';\n\n// NOTE: Keep as RpcPorts to avoid dependency on @dxos/rpc-tunnel so we don't depend on browser-specific apis.\nexport type CreateSessionParams = {\n appPort: RpcPort;\n systemPort: RpcPort;\n shellPort?: RpcPort;\n};\n\nexport type WorkerRuntimeCallbacks = {\n acquireLock: () => Promise<void>;\n releaseLock: () => void;\n onReset: () => Promise<void>;\n};\n\n/**\n * Runtime for the shared worker.\n * Manages connections from proxies (in tabs).\n * Tabs make requests to the `ClientServicesHost`, and provide a WebRTC gateway.\n */\nexport class WorkerRuntime {\n private readonly _acquireLock: () => Promise<void>;\n private readonly _releaseLock: () => void;\n private readonly _transportFactory = new SimplePeerTransportProxyFactory();\n private readonly _ready = new Trigger<Error | undefined>();\n private readonly _sessions = new Set<WorkerSession>();\n private readonly _clientServices!: ClientServicesHost;\n private _sessionForNetworking?: WorkerSession; // TODO(burdon): Expose to client QueryStatusResponse.\n private _config!: Config;\n private _signalMetadataTags: any = { runtime: 'worker-runtime' };\n private _signalTelemetryEnabled: boolean = false;\n\n constructor(\n private readonly _configProvider: () => MaybePromise<Config>,\n { acquireLock, releaseLock, onReset }: WorkerRuntimeCallbacks,\n ) {\n this._acquireLock = acquireLock;\n this._releaseLock = releaseLock;\n this._clientServices = new ClientServicesHost({\n callbacks: {\n onReset: async () => onReset(),\n },\n });\n }\n\n get host() {\n return this._clientServices;\n }\n\n async start() {\n log('starting...');\n try {\n await this._acquireLock();\n this._config = await this._configProvider();\n const signals = this._config.get('runtime.services.signaling');\n this._clientServices.initialize({\n config: this._config,\n signalManager: signals\n ? new WebsocketSignalManager(signals, () => (this._signalTelemetryEnabled ? this._signalMetadataTags : {}))\n : new MemorySignalManager(new MemorySignalManagerContext()), // TODO(dmaretskyi): Inject this context.\n transportFactory: this._transportFactory,\n });\n\n await this._clientServices.open(new Context());\n this._ready.wake(undefined);\n log('started');\n setIdentityTags({\n identityService: this._clientServices.services.IdentityService!,\n devicesService: this._clientServices.services.DevicesService!,\n setTag: (k: string, v: string) => {\n this._signalMetadataTags[k] = v;\n },\n });\n } catch (err: any) {\n this._ready.wake(err);\n log.error('starting', err);\n }\n }\n\n async stop() {\n // Release the lock to notify remote clients that the worker is terminating.\n this._releaseLock();\n await this._clientServices.close();\n }\n\n /**\n * Create a new session.\n */\n async createSession({ appPort, systemPort, shellPort }: CreateSessionParams) {\n const session = new WorkerSession({\n serviceHost: this._clientServices,\n appPort,\n systemPort,\n shellPort,\n readySignal: this._ready,\n });\n\n // When tab is closed or client is destroyed.\n session.onClose.set(async () => {\n this._sessions.delete(session);\n if (this._sessions.size === 0) {\n // Terminate the worker when all sessions are closed.\n if (globalThis.self) {\n self.close();\n }\n } else {\n this._reconnectWebrtc();\n }\n });\n\n await session.open();\n // A worker can only service one origin currently\n invariant(\n !this._signalMetadataTags.origin || this._signalMetadataTags.origin === session.origin,\n `worker origin changed from ${this._signalMetadataTags.origin} to ${session.origin}?`,\n );\n if (session.observabilityGroup) {\n this._signalMetadataTags.group = session.observabilityGroup;\n }\n this._signalTelemetryEnabled = session.signalTelemetryEnabled ?? false;\n this._signalMetadataTags.origin = session.origin;\n this._sessions.add(session);\n\n this._reconnectWebrtc();\n }\n\n /**\n * Selects one of the existing session for WebRTC networking.\n */\n private _reconnectWebrtc() {\n log('reconnecting webrtc...');\n // Check if current session is already closed.\n if (this._sessionForNetworking) {\n if (!this._sessions.has(this._sessionForNetworking)) {\n this._sessionForNetworking = undefined;\n }\n }\n\n // Select existing session.\n if (!this._sessionForNetworking) {\n const selected = Array.from(this._sessions).find((session) => session.bridgeService);\n if (selected) {\n this._sessionForNetworking = selected;\n this._transportFactory.setBridgeService(selected.bridgeService);\n } else {\n this._transportFactory.setBridgeService(undefined);\n }\n }\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { asyncTimeout, Trigger } from '@dxos/async';\nimport {\n iframeServiceBundle,\n type IframeServiceBundle,\n PROXY_CONNECTION_TIMEOUT,\n workerServiceBundle,\n} from '@dxos/client-protocol';\nimport { invariant } from '@dxos/invariant';\nimport { log, logInfo } from '@dxos/log';\nimport { type BridgeService } from '@dxos/protocols/proto/dxos/mesh/bridge';\nimport { createProtoRpcPeer, type ProtoRpcPeer, type RpcPort } from '@dxos/rpc';\nimport { Callback, type MaybePromise } from '@dxos/util';\n\nimport { type ClientServicesHost, ClientRpcServer, type ClientRpcServerParams } from '../services';\n\nexport type WorkerSessionParams = {\n serviceHost: ClientServicesHost;\n systemPort: RpcPort;\n appPort: RpcPort;\n // TODO(wittjosiah): Remove shellPort.\n shellPort?: RpcPort;\n readySignal: Trigger<Error | undefined>;\n};\n\n/**\n * Represents a tab connection within the worker.\n */\nexport class WorkerSession {\n private readonly _clientRpc: ClientRpcServer;\n private readonly _shellClientRpc?: ClientRpcServer;\n private readonly _iframeRpc: ProtoRpcPeer<IframeServiceBundle>;\n private readonly _startTrigger = new Trigger();\n private readonly _serviceHost: ClientServicesHost;\n\n public readonly onClose = new Callback<() => Promise<void>>();\n\n @logInfo\n public origin?: string;\n\n // TODO(nf): factor out?\n public observabilityGroup?: string;\n public signalTelemetryEnabled?: boolean;\n\n @logInfo\n public lockKey?: string;\n\n public bridgeService?: BridgeService;\n\n constructor({ serviceHost, systemPort, appPort, shellPort, readySignal }: WorkerSessionParams) {\n invariant(serviceHost);\n this._serviceHost = serviceHost;\n\n const middleware: Pick<ClientRpcServerParams, 'handleCall' | 'handleStream'> = {\n handleCall: async (method, params, handler) => {\n const error = await readySignal.wait({ timeout: PROXY_CONNECTION_TIMEOUT });\n if (error) {\n throw error;\n }\n\n return handler(method, params);\n },\n handleStream: async (method, params, handler) => {\n const error = await readySignal.wait({ timeout: PROXY_CONNECTION_TIMEOUT });\n if (error) {\n throw error;\n }\n\n return handler(method, params);\n },\n };\n\n this._clientRpc = new ClientRpcServer({\n serviceRegistry: this._serviceHost.serviceRegistry,\n port: appPort,\n ...middleware,\n });\n\n this._shellClientRpc = shellPort\n ? new ClientRpcServer({\n serviceRegistry: this._serviceHost.serviceRegistry,\n port: shellPort,\n ...middleware,\n })\n : undefined;\n\n this._iframeRpc = createProtoRpcPeer({\n requested: iframeServiceBundle,\n exposed: workerServiceBundle,\n handlers: {\n WorkerService: {\n start: async (request) => {\n this.origin = request.origin;\n this.lockKey = request.lockKey;\n this.observabilityGroup = request.observabilityGroup;\n this.signalTelemetryEnabled = request.signalTelemetryEnabled;\n this._startTrigger.wake();\n },\n\n stop: async () => {\n setTimeout(async () => {\n try {\n await this.close();\n } catch (err: any) {\n log.catch(err);\n }\n });\n },\n },\n },\n port: systemPort,\n timeout: 1_000, // With low timeout heartbeat may fail if the tab's thread is saturated.\n });\n\n this.bridgeService = this._iframeRpc.rpc.BridgeService;\n }\n\n async open() {\n log.info('opening...');\n await Promise.all([this._clientRpc.open(), this._iframeRpc.open(), this._maybeOpenShell()]);\n\n // Wait until the worker's RPC service has started.\n await this._startTrigger.wait({ timeout: PROXY_CONNECTION_TIMEOUT });\n\n // TODO(burdon): Comment required.\n if (this.lockKey) {\n void this._afterLockReleases(this.lockKey, () => this.close());\n }\n\n log.info('opened');\n }\n\n async close() {\n log.info('closing...');\n try {\n await this.onClose.callIfSet();\n } catch (err: any) {\n log.catch(err);\n }\n\n await Promise.all([this._clientRpc.close(), this._iframeRpc.close()]);\n log.info('closed');\n }\n\n private async _maybeOpenShell() {\n try {\n this._shellClientRpc && (await asyncTimeout(this._shellClientRpc.open(), 1_000));\n } catch {\n log.info('No shell connected.');\n }\n }\n\n private _afterLockReleases(lockKey: string, callback: () => MaybePromise<void>): Promise<void> {\n return navigator.locks\n .request(lockKey, () => {\n // No-op.\n })\n .then(callback);\n }\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["import_async", "import_invariant", "import_log", "WorkerSession", "constructor", "serviceHost", "systemPort", "appPort", "shellPort", "readySignal", "_startTrigger", "Trigger", "onClose", "Callback", "invariant", "_serviceHost", "middleware", "handleCall", "method", "params", "handler", "error", "wait", "timeout", "PROXY_CONNECTION_TIMEOUT", "handleStream", "_clientRpc", "ClientRpcServer", "serviceRegistry", "port", "_shellClientRpc", "undefined", "_iframeRpc", "createProtoRpcPeer", "requested", "iframeServiceBundle", "exposed", "workerServiceBundle", "handlers", "WorkerService", "start", "request", "origin", "lockKey", "observabilityGroup", "signalTelemetryEnabled", "wake", "stop", "setTimeout", "close", "err", "log", "catch", "bridgeService", "rpc", "BridgeService", "open", "info", "Promise", "all", "_maybeOpenShell", "_afterLockReleases", "callIfSet", "asyncTimeout", "callback", "navigator", "locks", "then", "logInfo", "WorkerRuntime", "_configProvider", "acquireLock", "releaseLock", "onReset", "_transportFactory", "SimplePeerTransportProxyFactory", "_ready", "_sessions", "Set", "_signalMetadataTags", "runtime", "_signalTelemetryEnabled", "_acquireLock", "_releaseLock", "_clientServices", "ClientServicesHost", "callbacks", "host", "_config", "signals", "get", "initialize", "config", "signalManager", "WebsocketSignalManager", "MemorySignalManager", "MemorySignalManagerContext", "transportFactory", "Context", "setIdentityTags", "identityService", "services", "IdentityService", "devicesService", "DevicesService", "setTag", "k", "v", "createSession", "session", "set", "delete", "size", "globalThis", "self", "_reconnectWebrtc", "group", "add", "_sessionForNetworking", "has", "selected", "Array", "from", "find", "setBridgeService"]
7
7
  }