@dxos/client-protocol 0.1.58-main.75cbd70 → 0.1.58-main.7858df5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs +4 -4
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +6 -6
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/types/src/echo.d.ts +30 -8
- package/dist/types/src/echo.d.ts.map +1 -1
- package/dist/types/src/halo.d.ts +4 -4
- package/dist/types/src/halo.d.ts.map +1 -1
- package/dist/types/src/invitations/invitations.d.ts +7 -7
- package/dist/types/src/invitations/invitations.d.ts.map +1 -1
- package/dist/types/src/shell.d.ts +1 -1
- package/dist/types/src/shell.d.ts.map +1 -1
- package/dist/types/src/space.d.ts +4 -3
- package/dist/types/src/space.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/echo.ts +34 -10
- package/src/halo.ts +4 -4
- package/src/invitations/invitations.ts +7 -7
- package/src/shell.ts +1 -1
- package/src/space.ts +5 -3
|
@@ -48,7 +48,7 @@ import { Invitation } from "@dxos/protocols/proto/dxos/client/services";
|
|
|
48
48
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/client-protocol/src/invitations/invitations.ts";
|
|
49
49
|
var AUTHENTICATION_CODE_LENGTH = 6;
|
|
50
50
|
var INVITATION_TIMEOUT = 3 * 6e4;
|
|
51
|
-
var
|
|
51
|
+
var CancellableInvitation = class extends MulticastObservable {
|
|
52
52
|
constructor({ subscriber, initialInvitation, onCancel }) {
|
|
53
53
|
super(subscriber, initialInvitation);
|
|
54
54
|
this._onCancel = onCancel;
|
|
@@ -57,7 +57,7 @@ var CancellableInvitationObservable = class extends MulticastObservable {
|
|
|
57
57
|
return this._onCancel();
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
|
-
var
|
|
60
|
+
var AuthenticatingInvitation = class extends CancellableInvitation {
|
|
61
61
|
constructor({ subscriber, initialInvitation, onCancel, onAuthenticate }) {
|
|
62
62
|
super({
|
|
63
63
|
subscriber,
|
|
@@ -133,9 +133,9 @@ var LOAD_CONTROL_FEEDS_TIMEOUT = 3e3;
|
|
|
133
133
|
export {
|
|
134
134
|
AUTHENTICATION_CODE_LENGTH,
|
|
135
135
|
AUTH_TIMEOUT,
|
|
136
|
-
|
|
136
|
+
AuthenticatingInvitation,
|
|
137
137
|
CREATE_SPACE_TIMEOUT,
|
|
138
|
-
|
|
138
|
+
CancellableInvitation,
|
|
139
139
|
DEFAULT_CLIENT_CHANNEL,
|
|
140
140
|
DEFAULT_INTERNAL_CHANNEL,
|
|
141
141
|
DEFAULT_SHELL_CHANNEL,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/config.ts", "../../../src/invitations/encoder.ts", "../../../src/invitations/invitations.ts", "../../../src/service-definitions.ts", "../../../src/timeouts.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { ConfigProto } from '@dxos/config';\n\nexport const DEFAULT_INTERNAL_CHANNEL = 'dxos:vault';\nexport const DEFAULT_CLIENT_CHANNEL = 'dxos:app';\nexport const DEFAULT_SHELL_CHANNEL = 'dxos:shell';\n\nexport const DEFAULT_VAULT_ORIGIN = 'https://halo.dxos.org';\nexport const DEFAULT_VAULT_URL = DEFAULT_VAULT_ORIGIN + '/vault.html';\n\nexport const EXPECTED_CONFIG_VERSION = 1;\nexport const defaultConfig: ConfigProto = { version: 1 };\n\n// TODO(burdon): Allow override via env? Generalize since currently NodeJS only.\nconst HOME = typeof process !== 'undefined' ? process?.env?.HOME ?? '' : '';\n\n// Base directories.\n// TODO(burdon): Consider Windows, Linux, OSX.\n// https://wiki.archlinux.org/title/XDG_Base_Directory\n// Each `/dx` directory should contain `/profile/<DX_PROFILE>` subdirectories.\nexport const getProfilePath = (root: string, profile: string, file: string | undefined = undefined) =>\n `${root}/profile/${profile}` + (file ? `/${file}` : '');\n\n// XDG_CONFIG_HOME (Analogous to /etc.)\nexport const DX_CONFIG = `${HOME}/.config/dx`;\n\n// XDG_CACHE_HOME (Analogous to /var/cache).\nexport const DX_CACHE = `${HOME}/.cache/dx`;\n\n// TODO(burdon): Storage should use this by default (make path optional).\n// XDG_DATA_HOME (Analogous to /usr/share).\nexport const DX_DATA = `${HOME}/.local/share/dx`;\n\n// XDG_STATE_HOME (Analogous to /var/lib).\nexport const DX_STATE = `${HOME}/.local/state/dx`;\n\n// XDG_RUNTIME_DIR (Non-essential files, sockets, etc.)\nexport const DX_RUNTIME = '/tmp/dx/run';\n\nexport const ENV_DX_CONFIG = 'DX_CONFIG';\nexport const ENV_DX_PROFILE = 'DX_PROFILE';\nexport const ENV_DX_PROFILE_DEFAULT = 'default';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport base from 'base-x';\n\nimport { schema } from '@dxos/protocols';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\n// Encode with URL-safe alpha-numeric characters.\nconst base62 = base('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');\n\nconst codec = schema.getCodecForType('dxos.client.services.Invitation');\n\n/**\n * Encodes and decodes an invitation proto into/from alphanumeric chars.\n */\nexport class InvitationEncoder {\n static decode(text: string): Invitation {\n return codec.decode(base62.decode(text));\n }\n\n static encode(invitation: Invitation): string {\n return base62.encode(\n codec.encode({\n invitationId: invitation.invitationId,\n type: invitation.type,\n kind: invitation.kind,\n authMethod: invitation.authMethod,\n swarmKey: invitation.swarmKey,\n state: invitation.state,\n timeout: invitation.timeout,\n }),\n );\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { MulticastObservable, Observable, Subscriber } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\nexport const AUTHENTICATION_CODE_LENGTH = 6;\n\nexport const INVITATION_TIMEOUT = 3 * 60_000; // 3 mins.\n\nexport interface Invitations {\n created: MulticastObservable<CancellableInvitationObservable[]>;\n accepted: MulticastObservable<AuthenticatingInvitationObservable[]>;\n createInvitation(options?: Partial<Invitation>): CancellableInvitationObservable;\n acceptInvitation(invitation: Invitation): AuthenticatingInvitationObservable;\n}\n\n/**\n * Base class for all invitation observables and providers.\n */\nexport class CancellableInvitationObservable extends MulticastObservable<Invitation> {\n private readonly _onCancel: () => Promise<void>;\n\n constructor({\n subscriber,\n initialInvitation,\n onCancel,\n }: {\n subscriber: Observable<Invitation> | Subscriber<Invitation>;\n initialInvitation: Invitation;\n onCancel: () => Promise<void>;\n }) {\n super(subscriber, initialInvitation);\n this._onCancel = onCancel;\n }\n\n cancel(): Promise<void> {\n return this._onCancel();\n }\n}\n\n/**\n * Cancelable observer that relays authentication requests.\n */\nexport class AuthenticatingInvitationObservable extends CancellableInvitationObservable {\n private readonly _onAuthenticate: (authCode: string) => Promise<void>;\n\n constructor({\n subscriber,\n initialInvitation,\n onCancel,\n onAuthenticate,\n }: {\n subscriber: Observable<Invitation> | Subscriber<Invitation>;\n initialInvitation: Invitation;\n onCancel: () => Promise<void>;\n onAuthenticate: (authCode: string) => Promise<void>;\n }) {\n super({ subscriber, initialInvitation, onCancel });\n this._onAuthenticate = onAuthenticate;\n }\n\n async authenticate(authCode: string): Promise<void> {\n return this._onAuthenticate(authCode);\n }\n}\n\n/**\n * Testing util to wrap non-authenticating observable with promise.\n * Don't use this in production code.\n * @deprecated\n */\n// TODO(wittjosiah): Move to testing.\nexport const wrapObservable = async (observable: CancellableInvitationObservable): Promise<Invitation> => {\n return new Promise((resolve, reject) => {\n const subscription = observable.subscribe(\n (invitation: Invitation | undefined) => {\n // TODO(burdon): Throw error if auth requested.\n invariant(invitation?.state === Invitation.State.SUCCESS);\n subscription.unsubscribe();\n resolve(invitation);\n },\n (err: Error) => {\n subscription.unsubscribe();\n reject(err);\n },\n );\n });\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { Context } from '@dxos/context';\nimport { schema } from '@dxos/protocols';\nimport { FunctionRegistryService } from '@dxos/protocols/proto/dxos/agent/functions';\nimport {\n DevicesService,\n IdentityService,\n InvitationsService,\n LoggingService,\n NetworkService,\n SpacesService,\n SystemService,\n} from '@dxos/protocols/proto/dxos/client/services';\nimport { DevtoolsHost } from '@dxos/protocols/proto/dxos/devtools/host';\nimport { DataService } from '@dxos/protocols/proto/dxos/echo/service';\nimport type { AppService, ShellService, WorkerService } from '@dxos/protocols/proto/dxos/iframe';\nimport type { BridgeService } from '@dxos/protocols/proto/dxos/mesh/bridge';\nimport { TracingService } from '@dxos/protocols/proto/dxos/tracing';\nimport { createServiceBundle, ServiceBundle } from '@dxos/rpc';\n\n//\n// NOTE: Should contain client/proxy dependencies only.\n//\n\nexport type ClientServices = {\n SystemService: SystemService;\n NetworkService: NetworkService;\n LoggingService: LoggingService;\n\n IdentityService: IdentityService;\n InvitationsService: InvitationsService;\n DevicesService: DevicesService;\n SpacesService: SpacesService;\n DataService: DataService;\n\n FunctionRegistryService: FunctionRegistryService;\n\n // TODO(burdon): Deprecated.\n DevtoolsHost: DevtoolsHost;\n\n TracingService: TracingService;\n};\n\n/**\n * Provide access to client services definitions and service handler.\n */\nexport interface ClientServicesProvider {\n descriptors: ServiceBundle<ClientServices>;\n services: Partial<ClientServices>;\n\n open(ctx: Context): Promise<void>;\n close(ctx: Context): Promise<void>;\n}\n\n/**\n * Services supported by host.\n */\nexport const clientServiceBundle = createServiceBundle<ClientServices>({\n SystemService: schema.getService('dxos.client.services.SystemService'),\n NetworkService: schema.getService('dxos.client.services.NetworkService'),\n LoggingService: schema.getService('dxos.client.services.LoggingService'),\n\n IdentityService: schema.getService('dxos.client.services.IdentityService'),\n InvitationsService: schema.getService('dxos.client.services.InvitationsService'),\n DevicesService: schema.getService('dxos.client.services.DevicesService'),\n SpacesService: schema.getService('dxos.client.services.SpacesService'),\n DataService: schema.getService('dxos.echo.service.DataService'),\n\n // Agent-only.\n FunctionRegistryService: schema.getService('dxos.agent.functions.FunctionRegistryService'),\n\n // TODO(burdon): Deprecated.\n DevtoolsHost: schema.getService('dxos.devtools.host.DevtoolsHost'),\n\n TracingService: schema.getService('dxos.tracing.TracingService'),\n});\n\nexport type IframeServiceBundle = {\n BridgeService: BridgeService;\n};\n\nexport const iframeServiceBundle: ServiceBundle<IframeServiceBundle> = {\n BridgeService: schema.getService('dxos.mesh.bridge.BridgeService'),\n};\n\nexport type WorkerServiceBundle = {\n WorkerService: WorkerService;\n};\n\nexport const workerServiceBundle: ServiceBundle<WorkerServiceBundle> = {\n WorkerService: schema.getService('dxos.iframe.WorkerService'),\n};\n\nexport type AppServiceBundle = {\n AppService: AppService;\n};\n\nexport const appServiceBundle: ServiceBundle<AppServiceBundle> = {\n AppService: schema.getService('dxos.iframe.AppService'),\n};\n\nexport type ShellServiceBundle = {\n ShellService: ShellService;\n};\n\nexport const shellServiceBundle: ServiceBundle<ShellServiceBundle> = {\n ShellService: schema.getService('dxos.iframe.ShellService'),\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Timeout for making rpc connections from remote proxies.\n */\nexport const PROXY_CONNECTION_TIMEOUT = 30_000;\n\n/**\n * Timeout for the device to be added to the trusted set during auth.\n */\nexport const AUTH_TIMEOUT = 30_000;\n\n/**\n * Timeout for how long the remote client will wait before assuming the connection is lost.\n */\nexport const STATUS_TIMEOUT = 10_000;\n\n/**\n * Timeout for waiting before stealing resource lock.\n */\nexport const RESOURCE_LOCK_TIMEOUT = 3_000;\n\n/**\n * Timeout for space properties to be loaded in the set of tracked items.\n * Accounts for latency between SpaceService reporting the space as READY and DataService streaming the item states.\n */\nexport const LOAD_PROPERTIES_TIMEOUT = 3_000;\n\n/**\n * Timeout for creating new spaces.\n */\nexport const CREATE_SPACE_TIMEOUT = 3_000;\n\n/**\n * Timeout for loading of control feeds.\n */\nexport const LOAD_CONTROL_FEEDS_TIMEOUT = 3_000;\n"],
|
|
5
|
-
"mappings": ";AAMO,IAAMA,2BAA2B;AACjC,IAAMC,yBAAyB;AAC/B,IAAMC,wBAAwB;AAE9B,IAAMC,uBAAuB;AAC7B,IAAMC,oBAAoBD,uBAAuB;AAEjD,IAAME,0BAA0B;AAChC,IAAMC,gBAA6B;EAAEC,SAAS;AAAE;AAGvD,IAAMC,OAAO,OAAOC,YAAY,cAAcA,SAASC,KAAKF,QAAQ,KAAK;AAMlE,IAAMG,iBAAiB,CAACC,MAAcC,SAAiBC,OAA2BC,WACvF,GAAGH,IAAAA,YAAgBC,OAAAA,MAAaC,OAAO,IAAIA,IAAAA,KAAS;AAG/C,IAAME,YAAY,GAAGR,IAAAA;AAGrB,IAAMS,WAAW,GAAGT,IAAAA;AAIpB,IAAMU,UAAU,GAAGV,IAAAA;AAGnB,IAAMW,WAAW,GAAGX,IAAAA;AAGpB,IAAMY,aAAa;AAEnB,IAAMC,gBAAgB;AACtB,IAAMC,iBAAiB;AACvB,IAAMC,yBAAyB;;;ACxCtC,OAAOC,UAAU;AAEjB,SAASC,cAAc;AAIvB,IAAMC,SAASC,KAAK,gEAAA;AAEpB,IAAMC,QAAQC,OAAOC,gBAAgB,iCAAA;AAK9B,IAAMC,oBAAN,MAAMA;EACX,OAAOC,OAAOC,MAA0B;AACtC,WAAOL,MAAMI,OAAON,OAAOM,OAAOC,IAAAA,CAAAA;EACpC;EAEA,OAAOC,OAAOC,YAAgC;AAC5C,WAAOT,OAAOQ,OACZN,MAAMM,OAAO;MACXE,cAAcD,WAAWC;MACzBC,MAAMF,WAAWE;MACjBC,MAAMH,WAAWG;MACjBC,YAAYJ,WAAWI;MACvBC,UAAUL,WAAWK;MACrBC,OAAON,WAAWM;MAClBC,SAASP,WAAWO;IACtB,CAAA,CAAA;EAEJ;AACF;;;AC/BA,SAASC,2BAAmD;AAC5D,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;;AAEpB,IAAMC,6BAA6B;AAEnC,IAAMC,qBAAqB,IAAI;AAY/B,IAAMC,
|
|
6
|
-
"names": ["DEFAULT_INTERNAL_CHANNEL", "DEFAULT_CLIENT_CHANNEL", "DEFAULT_SHELL_CHANNEL", "DEFAULT_VAULT_ORIGIN", "DEFAULT_VAULT_URL", "EXPECTED_CONFIG_VERSION", "defaultConfig", "version", "HOME", "process", "env", "getProfilePath", "root", "profile", "file", "undefined", "DX_CONFIG", "DX_CACHE", "DX_DATA", "DX_STATE", "DX_RUNTIME", "ENV_DX_CONFIG", "ENV_DX_PROFILE", "ENV_DX_PROFILE_DEFAULT", "base", "schema", "base62", "base", "codec", "schema", "getCodecForType", "InvitationEncoder", "decode", "text", "encode", "invitation", "invitationId", "type", "kind", "authMethod", "swarmKey", "state", "timeout", "MulticastObservable", "invariant", "Invitation", "AUTHENTICATION_CODE_LENGTH", "INVITATION_TIMEOUT", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { ConfigProto } from '@dxos/config';\n\nexport const DEFAULT_INTERNAL_CHANNEL = 'dxos:vault';\nexport const DEFAULT_CLIENT_CHANNEL = 'dxos:app';\nexport const DEFAULT_SHELL_CHANNEL = 'dxos:shell';\n\nexport const DEFAULT_VAULT_ORIGIN = 'https://halo.dxos.org';\nexport const DEFAULT_VAULT_URL = DEFAULT_VAULT_ORIGIN + '/vault.html';\n\nexport const EXPECTED_CONFIG_VERSION = 1;\nexport const defaultConfig: ConfigProto = { version: 1 };\n\n// TODO(burdon): Allow override via env? Generalize since currently NodeJS only.\nconst HOME = typeof process !== 'undefined' ? process?.env?.HOME ?? '' : '';\n\n// Base directories.\n// TODO(burdon): Consider Windows, Linux, OSX.\n// https://wiki.archlinux.org/title/XDG_Base_Directory\n// Each `/dx` directory should contain `/profile/<DX_PROFILE>` subdirectories.\nexport const getProfilePath = (root: string, profile: string, file: string | undefined = undefined) =>\n `${root}/profile/${profile}` + (file ? `/${file}` : '');\n\n// XDG_CONFIG_HOME (Analogous to /etc.)\nexport const DX_CONFIG = `${HOME}/.config/dx`;\n\n// XDG_CACHE_HOME (Analogous to /var/cache).\nexport const DX_CACHE = `${HOME}/.cache/dx`;\n\n// TODO(burdon): Storage should use this by default (make path optional).\n// XDG_DATA_HOME (Analogous to /usr/share).\nexport const DX_DATA = `${HOME}/.local/share/dx`;\n\n// XDG_STATE_HOME (Analogous to /var/lib).\nexport const DX_STATE = `${HOME}/.local/state/dx`;\n\n// XDG_RUNTIME_DIR (Non-essential files, sockets, etc.)\nexport const DX_RUNTIME = '/tmp/dx/run';\n\nexport const ENV_DX_CONFIG = 'DX_CONFIG';\nexport const ENV_DX_PROFILE = 'DX_PROFILE';\nexport const ENV_DX_PROFILE_DEFAULT = 'default';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport base from 'base-x';\n\nimport { schema } from '@dxos/protocols';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\n// Encode with URL-safe alpha-numeric characters.\nconst base62 = base('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');\n\nconst codec = schema.getCodecForType('dxos.client.services.Invitation');\n\n/**\n * Encodes and decodes an invitation proto into/from alphanumeric chars.\n */\nexport class InvitationEncoder {\n static decode(text: string): Invitation {\n return codec.decode(base62.decode(text));\n }\n\n static encode(invitation: Invitation): string {\n return base62.encode(\n codec.encode({\n invitationId: invitation.invitationId,\n type: invitation.type,\n kind: invitation.kind,\n authMethod: invitation.authMethod,\n swarmKey: invitation.swarmKey,\n state: invitation.state,\n timeout: invitation.timeout,\n }),\n );\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { MulticastObservable, Observable, Subscriber } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\nexport const AUTHENTICATION_CODE_LENGTH = 6;\n\nexport const INVITATION_TIMEOUT = 3 * 60_000; // 3 mins.\n\nexport interface Invitations {\n created: MulticastObservable<CancellableInvitation[]>;\n accepted: MulticastObservable<AuthenticatingInvitation[]>;\n share(options?: Partial<Invitation>): CancellableInvitation;\n join(invitation: Invitation): AuthenticatingInvitation;\n}\n\n/**\n * Base class for all invitation observables and providers.\n */\nexport class CancellableInvitation extends MulticastObservable<Invitation> {\n private readonly _onCancel: () => Promise<void>;\n\n constructor({\n subscriber,\n initialInvitation,\n onCancel,\n }: {\n subscriber: Observable<Invitation> | Subscriber<Invitation>;\n initialInvitation: Invitation;\n onCancel: () => Promise<void>;\n }) {\n super(subscriber, initialInvitation);\n this._onCancel = onCancel;\n }\n\n cancel(): Promise<void> {\n return this._onCancel();\n }\n}\n\n/**\n * Cancelable observer that relays authentication requests.\n */\nexport class AuthenticatingInvitation extends CancellableInvitation {\n private readonly _onAuthenticate: (authCode: string) => Promise<void>;\n\n constructor({\n subscriber,\n initialInvitation,\n onCancel,\n onAuthenticate,\n }: {\n subscriber: Observable<Invitation> | Subscriber<Invitation>;\n initialInvitation: Invitation;\n onCancel: () => Promise<void>;\n onAuthenticate: (authCode: string) => Promise<void>;\n }) {\n super({ subscriber, initialInvitation, onCancel });\n this._onAuthenticate = onAuthenticate;\n }\n\n async authenticate(authCode: string): Promise<void> {\n return this._onAuthenticate(authCode);\n }\n}\n\n/**\n * Testing util to wrap non-authenticating observable with promise.\n * Don't use this in production code.\n * @deprecated\n */\n// TODO(wittjosiah): Move to testing.\nexport const wrapObservable = async (observable: CancellableInvitation): Promise<Invitation> => {\n return new Promise((resolve, reject) => {\n const subscription = observable.subscribe(\n (invitation: Invitation | undefined) => {\n // TODO(burdon): Throw error if auth requested.\n invariant(invitation?.state === Invitation.State.SUCCESS);\n subscription.unsubscribe();\n resolve(invitation);\n },\n (err: Error) => {\n subscription.unsubscribe();\n reject(err);\n },\n );\n });\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { Context } from '@dxos/context';\nimport { schema } from '@dxos/protocols';\nimport { FunctionRegistryService } from '@dxos/protocols/proto/dxos/agent/functions';\nimport {\n DevicesService,\n IdentityService,\n InvitationsService,\n LoggingService,\n NetworkService,\n SpacesService,\n SystemService,\n} from '@dxos/protocols/proto/dxos/client/services';\nimport { DevtoolsHost } from '@dxos/protocols/proto/dxos/devtools/host';\nimport { DataService } from '@dxos/protocols/proto/dxos/echo/service';\nimport type { AppService, ShellService, WorkerService } from '@dxos/protocols/proto/dxos/iframe';\nimport type { BridgeService } from '@dxos/protocols/proto/dxos/mesh/bridge';\nimport { TracingService } from '@dxos/protocols/proto/dxos/tracing';\nimport { createServiceBundle, ServiceBundle } from '@dxos/rpc';\n\n//\n// NOTE: Should contain client/proxy dependencies only.\n//\n\nexport type ClientServices = {\n SystemService: SystemService;\n NetworkService: NetworkService;\n LoggingService: LoggingService;\n\n IdentityService: IdentityService;\n InvitationsService: InvitationsService;\n DevicesService: DevicesService;\n SpacesService: SpacesService;\n DataService: DataService;\n\n FunctionRegistryService: FunctionRegistryService;\n\n // TODO(burdon): Deprecated.\n DevtoolsHost: DevtoolsHost;\n\n TracingService: TracingService;\n};\n\n/**\n * Provide access to client services definitions and service handler.\n */\nexport interface ClientServicesProvider {\n descriptors: ServiceBundle<ClientServices>;\n services: Partial<ClientServices>;\n\n open(ctx: Context): Promise<void>;\n close(ctx: Context): Promise<void>;\n}\n\n/**\n * Services supported by host.\n */\nexport const clientServiceBundle = createServiceBundle<ClientServices>({\n SystemService: schema.getService('dxos.client.services.SystemService'),\n NetworkService: schema.getService('dxos.client.services.NetworkService'),\n LoggingService: schema.getService('dxos.client.services.LoggingService'),\n\n IdentityService: schema.getService('dxos.client.services.IdentityService'),\n InvitationsService: schema.getService('dxos.client.services.InvitationsService'),\n DevicesService: schema.getService('dxos.client.services.DevicesService'),\n SpacesService: schema.getService('dxos.client.services.SpacesService'),\n DataService: schema.getService('dxos.echo.service.DataService'),\n\n // Agent-only.\n FunctionRegistryService: schema.getService('dxos.agent.functions.FunctionRegistryService'),\n\n // TODO(burdon): Deprecated.\n DevtoolsHost: schema.getService('dxos.devtools.host.DevtoolsHost'),\n\n TracingService: schema.getService('dxos.tracing.TracingService'),\n});\n\nexport type IframeServiceBundle = {\n BridgeService: BridgeService;\n};\n\nexport const iframeServiceBundle: ServiceBundle<IframeServiceBundle> = {\n BridgeService: schema.getService('dxos.mesh.bridge.BridgeService'),\n};\n\nexport type WorkerServiceBundle = {\n WorkerService: WorkerService;\n};\n\nexport const workerServiceBundle: ServiceBundle<WorkerServiceBundle> = {\n WorkerService: schema.getService('dxos.iframe.WorkerService'),\n};\n\nexport type AppServiceBundle = {\n AppService: AppService;\n};\n\nexport const appServiceBundle: ServiceBundle<AppServiceBundle> = {\n AppService: schema.getService('dxos.iframe.AppService'),\n};\n\nexport type ShellServiceBundle = {\n ShellService: ShellService;\n};\n\nexport const shellServiceBundle: ServiceBundle<ShellServiceBundle> = {\n ShellService: schema.getService('dxos.iframe.ShellService'),\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Timeout for making rpc connections from remote proxies.\n */\nexport const PROXY_CONNECTION_TIMEOUT = 30_000;\n\n/**\n * Timeout for the device to be added to the trusted set during auth.\n */\nexport const AUTH_TIMEOUT = 30_000;\n\n/**\n * Timeout for how long the remote client will wait before assuming the connection is lost.\n */\nexport const STATUS_TIMEOUT = 10_000;\n\n/**\n * Timeout for waiting before stealing resource lock.\n */\nexport const RESOURCE_LOCK_TIMEOUT = 3_000;\n\n/**\n * Timeout for space properties to be loaded in the set of tracked items.\n * Accounts for latency between SpaceService reporting the space as READY and DataService streaming the item states.\n */\nexport const LOAD_PROPERTIES_TIMEOUT = 3_000;\n\n/**\n * Timeout for creating new spaces.\n */\nexport const CREATE_SPACE_TIMEOUT = 3_000;\n\n/**\n * Timeout for loading of control feeds.\n */\nexport const LOAD_CONTROL_FEEDS_TIMEOUT = 3_000;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["DEFAULT_INTERNAL_CHANNEL", "DEFAULT_CLIENT_CHANNEL", "DEFAULT_SHELL_CHANNEL", "DEFAULT_VAULT_ORIGIN", "DEFAULT_VAULT_URL", "EXPECTED_CONFIG_VERSION", "defaultConfig", "version", "HOME", "process", "env", "getProfilePath", "root", "profile", "file", "undefined", "DX_CONFIG", "DX_CACHE", "DX_DATA", "DX_STATE", "DX_RUNTIME", "ENV_DX_CONFIG", "ENV_DX_PROFILE", "ENV_DX_PROFILE_DEFAULT", "base", "schema", "base62", "base", "codec", "schema", "getCodecForType", "InvitationEncoder", "decode", "text", "encode", "invitation", "invitationId", "type", "kind", "authMethod", "swarmKey", "state", "timeout", "MulticastObservable", "invariant", "Invitation", "AUTHENTICATION_CODE_LENGTH", "INVITATION_TIMEOUT", "CancellableInvitation", "constructor", "subscriber", "initialInvitation", "onCancel", "_onCancel", "cancel", "AuthenticatingInvitation", "onAuthenticate", "_onAuthenticate", "authenticate", "authCode", "wrapObservable", "observable", "Promise", "resolve", "reject", "subscription", "subscribe", "invitation", "state", "State", "SUCCESS", "unsubscribe", "err", "schema", "createServiceBundle", "clientServiceBundle", "createServiceBundle", "SystemService", "schema", "getService", "NetworkService", "LoggingService", "IdentityService", "InvitationsService", "DevicesService", "SpacesService", "DataService", "FunctionRegistryService", "DevtoolsHost", "TracingService", "iframeServiceBundle", "BridgeService", "workerServiceBundle", "WorkerService", "appServiceBundle", "AppService", "shellServiceBundle", "ShellService", "PROXY_CONNECTION_TIMEOUT", "AUTH_TIMEOUT", "STATUS_TIMEOUT", "RESOURCE_LOCK_TIMEOUT", "LOAD_PROPERTIES_TIMEOUT", "CREATE_SPACE_TIMEOUT", "LOAD_CONTROL_FEEDS_TIMEOUT"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/sdk/client-protocol/src/config.ts":{"bytes":5848,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/echo.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/sdk/client-protocol/src/config.ts":{"bytes":5848,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/echo.ts":{"bytes":2059,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/halo.ts":{"bytes":1687,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/invitations/encoder.ts":{"bytes":3446,"imports":[{"path":"base-x","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/client-protocol/src/invitations/invitations.ts":{"bytes":7737,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/client-protocol/src/invitations/index.ts":{"bytes":578,"imports":[{"path":"packages/sdk/client-protocol/src/invitations/encoder.ts","kind":"import-statement","original":"./encoder"},{"path":"packages/sdk/client-protocol/src/invitations/invitations.ts","kind":"import-statement","original":"./invitations"}],"format":"esm"},"packages/sdk/client-protocol/src/service-definitions.ts":{"bytes":8188,"imports":[{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/client-protocol/src/shell.ts":{"bytes":1004,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/space.ts":{"bytes":3784,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/timeouts.ts":{"bytes":3134,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/index.ts":{"bytes":1086,"imports":[{"path":"packages/sdk/client-protocol/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/sdk/client-protocol/src/echo.ts","kind":"import-statement","original":"./echo"},{"path":"packages/sdk/client-protocol/src/halo.ts","kind":"import-statement","original":"./halo"},{"path":"packages/sdk/client-protocol/src/invitations/index.ts","kind":"import-statement","original":"./invitations"},{"path":"packages/sdk/client-protocol/src/service-definitions.ts","kind":"import-statement","original":"./service-definitions"},{"path":"packages/sdk/client-protocol/src/shell.ts","kind":"import-statement","original":"./shell"},{"path":"packages/sdk/client-protocol/src/space.ts","kind":"import-statement","original":"./space"},{"path":"packages/sdk/client-protocol/src/timeouts.ts","kind":"import-statement","original":"./timeouts"}],"format":"esm"}},"outputs":{"packages/sdk/client-protocol/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":14442},"packages/sdk/client-protocol/dist/lib/browser/index.mjs":{"imports":[{"path":"base-x","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"exports":["AUTHENTICATION_CODE_LENGTH","AUTH_TIMEOUT","AuthenticatingInvitation","CREATE_SPACE_TIMEOUT","CancellableInvitation","DEFAULT_CLIENT_CHANNEL","DEFAULT_INTERNAL_CHANNEL","DEFAULT_SHELL_CHANNEL","DEFAULT_VAULT_ORIGIN","DEFAULT_VAULT_URL","DX_CACHE","DX_CONFIG","DX_DATA","DX_RUNTIME","DX_STATE","ENV_DX_CONFIG","ENV_DX_PROFILE","ENV_DX_PROFILE_DEFAULT","EXPECTED_CONFIG_VERSION","INVITATION_TIMEOUT","InvitationEncoder","LOAD_CONTROL_FEEDS_TIMEOUT","LOAD_PROPERTIES_TIMEOUT","PROXY_CONNECTION_TIMEOUT","RESOURCE_LOCK_TIMEOUT","STATUS_TIMEOUT","appServiceBundle","clientServiceBundle","defaultConfig","getProfilePath","iframeServiceBundle","shellServiceBundle","workerServiceBundle","wrapObservable"],"entryPoint":"packages/sdk/client-protocol/src/index.ts","inputs":{"packages/sdk/client-protocol/src/config.ts":{"bytesInOutput":797},"packages/sdk/client-protocol/src/index.ts":{"bytesInOutput":0},"packages/sdk/client-protocol/src/invitations/encoder.ts":{"bytesInOutput":663},"packages/sdk/client-protocol/src/invitations/index.ts":{"bytesInOutput":0},"packages/sdk/client-protocol/src/invitations/invitations.ts":{"bytesInOutput":1495},"packages/sdk/client-protocol/src/service-definitions.ts":{"bytesInOutput":1426},"packages/sdk/client-protocol/src/timeouts.ts":{"bytesInOutput":224}},"bytes":5662}}}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -32,9 +32,9 @@ var src_exports = {};
|
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
AUTHENTICATION_CODE_LENGTH: () => AUTHENTICATION_CODE_LENGTH,
|
|
34
34
|
AUTH_TIMEOUT: () => AUTH_TIMEOUT,
|
|
35
|
-
|
|
35
|
+
AuthenticatingInvitation: () => AuthenticatingInvitation,
|
|
36
36
|
CREATE_SPACE_TIMEOUT: () => CREATE_SPACE_TIMEOUT,
|
|
37
|
-
|
|
37
|
+
CancellableInvitation: () => CancellableInvitation,
|
|
38
38
|
DEFAULT_CLIENT_CHANNEL: () => DEFAULT_CLIENT_CHANNEL,
|
|
39
39
|
DEFAULT_INTERNAL_CHANNEL: () => DEFAULT_INTERNAL_CHANNEL,
|
|
40
40
|
DEFAULT_SHELL_CHANNEL: () => DEFAULT_SHELL_CHANNEL,
|
|
@@ -117,7 +117,7 @@ var import_services = require("@dxos/protocols/proto/dxos/client/services");
|
|
|
117
117
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/client-protocol/src/invitations/invitations.ts";
|
|
118
118
|
var AUTHENTICATION_CODE_LENGTH = 6;
|
|
119
119
|
var INVITATION_TIMEOUT = 3 * 6e4;
|
|
120
|
-
var
|
|
120
|
+
var CancellableInvitation = class extends import_async.MulticastObservable {
|
|
121
121
|
constructor({ subscriber, initialInvitation, onCancel }) {
|
|
122
122
|
super(subscriber, initialInvitation);
|
|
123
123
|
this._onCancel = onCancel;
|
|
@@ -126,7 +126,7 @@ var CancellableInvitationObservable = class extends import_async.MulticastObserv
|
|
|
126
126
|
return this._onCancel();
|
|
127
127
|
}
|
|
128
128
|
};
|
|
129
|
-
var
|
|
129
|
+
var AuthenticatingInvitation = class extends CancellableInvitation {
|
|
130
130
|
constructor({ subscriber, initialInvitation, onCancel, onAuthenticate }) {
|
|
131
131
|
super({
|
|
132
132
|
subscriber,
|
|
@@ -203,9 +203,9 @@ var LOAD_CONTROL_FEEDS_TIMEOUT = 3e3;
|
|
|
203
203
|
0 && (module.exports = {
|
|
204
204
|
AUTHENTICATION_CODE_LENGTH,
|
|
205
205
|
AUTH_TIMEOUT,
|
|
206
|
-
|
|
206
|
+
AuthenticatingInvitation,
|
|
207
207
|
CREATE_SPACE_TIMEOUT,
|
|
208
|
-
|
|
208
|
+
CancellableInvitation,
|
|
209
209
|
DEFAULT_CLIENT_CHANNEL,
|
|
210
210
|
DEFAULT_INTERNAL_CHANNEL,
|
|
211
211
|
DEFAULT_SHELL_CHANNEL,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/index.ts", "../../../src/config.ts", "../../../src/invitations/encoder.ts", "../../../src/invitations/invitations.ts", "../../../src/service-definitions.ts", "../../../src/timeouts.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from './config';\nexport * from './echo';\nexport * from './halo';\nexport * from './invitations';\nexport * from './service-definitions';\nexport * from './shell';\nexport * from './space';\nexport * from './timeouts';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { ConfigProto } from '@dxos/config';\n\nexport const DEFAULT_INTERNAL_CHANNEL = 'dxos:vault';\nexport const DEFAULT_CLIENT_CHANNEL = 'dxos:app';\nexport const DEFAULT_SHELL_CHANNEL = 'dxos:shell';\n\nexport const DEFAULT_VAULT_ORIGIN = 'https://halo.dxos.org';\nexport const DEFAULT_VAULT_URL = DEFAULT_VAULT_ORIGIN + '/vault.html';\n\nexport const EXPECTED_CONFIG_VERSION = 1;\nexport const defaultConfig: ConfigProto = { version: 1 };\n\n// TODO(burdon): Allow override via env? Generalize since currently NodeJS only.\nconst HOME = typeof process !== 'undefined' ? process?.env?.HOME ?? '' : '';\n\n// Base directories.\n// TODO(burdon): Consider Windows, Linux, OSX.\n// https://wiki.archlinux.org/title/XDG_Base_Directory\n// Each `/dx` directory should contain `/profile/<DX_PROFILE>` subdirectories.\nexport const getProfilePath = (root: string, profile: string, file: string | undefined = undefined) =>\n `${root}/profile/${profile}` + (file ? `/${file}` : '');\n\n// XDG_CONFIG_HOME (Analogous to /etc.)\nexport const DX_CONFIG = `${HOME}/.config/dx`;\n\n// XDG_CACHE_HOME (Analogous to /var/cache).\nexport const DX_CACHE = `${HOME}/.cache/dx`;\n\n// TODO(burdon): Storage should use this by default (make path optional).\n// XDG_DATA_HOME (Analogous to /usr/share).\nexport const DX_DATA = `${HOME}/.local/share/dx`;\n\n// XDG_STATE_HOME (Analogous to /var/lib).\nexport const DX_STATE = `${HOME}/.local/state/dx`;\n\n// XDG_RUNTIME_DIR (Non-essential files, sockets, etc.)\nexport const DX_RUNTIME = '/tmp/dx/run';\n\nexport const ENV_DX_CONFIG = 'DX_CONFIG';\nexport const ENV_DX_PROFILE = 'DX_PROFILE';\nexport const ENV_DX_PROFILE_DEFAULT = 'default';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport base from 'base-x';\n\nimport { schema } from '@dxos/protocols';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\n// Encode with URL-safe alpha-numeric characters.\nconst base62 = base('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');\n\nconst codec = schema.getCodecForType('dxos.client.services.Invitation');\n\n/**\n * Encodes and decodes an invitation proto into/from alphanumeric chars.\n */\nexport class InvitationEncoder {\n static decode(text: string): Invitation {\n return codec.decode(base62.decode(text));\n }\n\n static encode(invitation: Invitation): string {\n return base62.encode(\n codec.encode({\n invitationId: invitation.invitationId,\n type: invitation.type,\n kind: invitation.kind,\n authMethod: invitation.authMethod,\n swarmKey: invitation.swarmKey,\n state: invitation.state,\n timeout: invitation.timeout,\n }),\n );\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { MulticastObservable, Observable, Subscriber } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\nexport const AUTHENTICATION_CODE_LENGTH = 6;\n\nexport const INVITATION_TIMEOUT = 3 * 60_000; // 3 mins.\n\nexport interface Invitations {\n created: MulticastObservable<CancellableInvitationObservable[]>;\n accepted: MulticastObservable<AuthenticatingInvitationObservable[]>;\n createInvitation(options?: Partial<Invitation>): CancellableInvitationObservable;\n acceptInvitation(invitation: Invitation): AuthenticatingInvitationObservable;\n}\n\n/**\n * Base class for all invitation observables and providers.\n */\nexport class CancellableInvitationObservable extends MulticastObservable<Invitation> {\n private readonly _onCancel: () => Promise<void>;\n\n constructor({\n subscriber,\n initialInvitation,\n onCancel,\n }: {\n subscriber: Observable<Invitation> | Subscriber<Invitation>;\n initialInvitation: Invitation;\n onCancel: () => Promise<void>;\n }) {\n super(subscriber, initialInvitation);\n this._onCancel = onCancel;\n }\n\n cancel(): Promise<void> {\n return this._onCancel();\n }\n}\n\n/**\n * Cancelable observer that relays authentication requests.\n */\nexport class AuthenticatingInvitationObservable extends CancellableInvitationObservable {\n private readonly _onAuthenticate: (authCode: string) => Promise<void>;\n\n constructor({\n subscriber,\n initialInvitation,\n onCancel,\n onAuthenticate,\n }: {\n subscriber: Observable<Invitation> | Subscriber<Invitation>;\n initialInvitation: Invitation;\n onCancel: () => Promise<void>;\n onAuthenticate: (authCode: string) => Promise<void>;\n }) {\n super({ subscriber, initialInvitation, onCancel });\n this._onAuthenticate = onAuthenticate;\n }\n\n async authenticate(authCode: string): Promise<void> {\n return this._onAuthenticate(authCode);\n }\n}\n\n/**\n * Testing util to wrap non-authenticating observable with promise.\n * Don't use this in production code.\n * @deprecated\n */\n// TODO(wittjosiah): Move to testing.\nexport const wrapObservable = async (observable: CancellableInvitationObservable): Promise<Invitation> => {\n return new Promise((resolve, reject) => {\n const subscription = observable.subscribe(\n (invitation: Invitation | undefined) => {\n // TODO(burdon): Throw error if auth requested.\n invariant(invitation?.state === Invitation.State.SUCCESS);\n subscription.unsubscribe();\n resolve(invitation);\n },\n (err: Error) => {\n subscription.unsubscribe();\n reject(err);\n },\n );\n });\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { Context } from '@dxos/context';\nimport { schema } from '@dxos/protocols';\nimport { FunctionRegistryService } from '@dxos/protocols/proto/dxos/agent/functions';\nimport {\n DevicesService,\n IdentityService,\n InvitationsService,\n LoggingService,\n NetworkService,\n SpacesService,\n SystemService,\n} from '@dxos/protocols/proto/dxos/client/services';\nimport { DevtoolsHost } from '@dxos/protocols/proto/dxos/devtools/host';\nimport { DataService } from '@dxos/protocols/proto/dxos/echo/service';\nimport type { AppService, ShellService, WorkerService } from '@dxos/protocols/proto/dxos/iframe';\nimport type { BridgeService } from '@dxos/protocols/proto/dxos/mesh/bridge';\nimport { TracingService } from '@dxos/protocols/proto/dxos/tracing';\nimport { createServiceBundle, ServiceBundle } from '@dxos/rpc';\n\n//\n// NOTE: Should contain client/proxy dependencies only.\n//\n\nexport type ClientServices = {\n SystemService: SystemService;\n NetworkService: NetworkService;\n LoggingService: LoggingService;\n\n IdentityService: IdentityService;\n InvitationsService: InvitationsService;\n DevicesService: DevicesService;\n SpacesService: SpacesService;\n DataService: DataService;\n\n FunctionRegistryService: FunctionRegistryService;\n\n // TODO(burdon): Deprecated.\n DevtoolsHost: DevtoolsHost;\n\n TracingService: TracingService;\n};\n\n/**\n * Provide access to client services definitions and service handler.\n */\nexport interface ClientServicesProvider {\n descriptors: ServiceBundle<ClientServices>;\n services: Partial<ClientServices>;\n\n open(ctx: Context): Promise<void>;\n close(ctx: Context): Promise<void>;\n}\n\n/**\n * Services supported by host.\n */\nexport const clientServiceBundle = createServiceBundle<ClientServices>({\n SystemService: schema.getService('dxos.client.services.SystemService'),\n NetworkService: schema.getService('dxos.client.services.NetworkService'),\n LoggingService: schema.getService('dxos.client.services.LoggingService'),\n\n IdentityService: schema.getService('dxos.client.services.IdentityService'),\n InvitationsService: schema.getService('dxos.client.services.InvitationsService'),\n DevicesService: schema.getService('dxos.client.services.DevicesService'),\n SpacesService: schema.getService('dxos.client.services.SpacesService'),\n DataService: schema.getService('dxos.echo.service.DataService'),\n\n // Agent-only.\n FunctionRegistryService: schema.getService('dxos.agent.functions.FunctionRegistryService'),\n\n // TODO(burdon): Deprecated.\n DevtoolsHost: schema.getService('dxos.devtools.host.DevtoolsHost'),\n\n TracingService: schema.getService('dxos.tracing.TracingService'),\n});\n\nexport type IframeServiceBundle = {\n BridgeService: BridgeService;\n};\n\nexport const iframeServiceBundle: ServiceBundle<IframeServiceBundle> = {\n BridgeService: schema.getService('dxos.mesh.bridge.BridgeService'),\n};\n\nexport type WorkerServiceBundle = {\n WorkerService: WorkerService;\n};\n\nexport const workerServiceBundle: ServiceBundle<WorkerServiceBundle> = {\n WorkerService: schema.getService('dxos.iframe.WorkerService'),\n};\n\nexport type AppServiceBundle = {\n AppService: AppService;\n};\n\nexport const appServiceBundle: ServiceBundle<AppServiceBundle> = {\n AppService: schema.getService('dxos.iframe.AppService'),\n};\n\nexport type ShellServiceBundle = {\n ShellService: ShellService;\n};\n\nexport const shellServiceBundle: ServiceBundle<ShellServiceBundle> = {\n ShellService: schema.getService('dxos.iframe.ShellService'),\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Timeout for making rpc connections from remote proxies.\n */\nexport const PROXY_CONNECTION_TIMEOUT = 30_000;\n\n/**\n * Timeout for the device to be added to the trusted set during auth.\n */\nexport const AUTH_TIMEOUT = 30_000;\n\n/**\n * Timeout for how long the remote client will wait before assuming the connection is lost.\n */\nexport const STATUS_TIMEOUT = 10_000;\n\n/**\n * Timeout for waiting before stealing resource lock.\n */\nexport const RESOURCE_LOCK_TIMEOUT = 3_000;\n\n/**\n * Timeout for space properties to be loaded in the set of tracked items.\n * Accounts for latency between SpaceService reporting the space as READY and DataService streaming the item states.\n */\nexport const LOAD_PROPERTIES_TIMEOUT = 3_000;\n\n/**\n * Timeout for creating new spaces.\n */\nexport const CREATE_SPACE_TIMEOUT = 3_000;\n\n/**\n * Timeout for loading of control feeds.\n */\nexport const LOAD_CONTROL_FEEDS_TIMEOUT = 3_000;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACMO,IAAMA,2BAA2B;AACjC,IAAMC,yBAAyB;AAC/B,IAAMC,wBAAwB;AAE9B,IAAMC,uBAAuB;AAC7B,IAAMC,oBAAoBD,uBAAuB;AAEjD,IAAME,0BAA0B;AAChC,IAAMC,gBAA6B;EAAEC,SAAS;AAAE;AAGvD,IAAMC,OAAO,OAAOC,YAAY,cAAcA,SAASC,KAAKF,QAAQ,KAAK;AAMlE,IAAMG,iBAAiB,CAACC,MAAcC,SAAiBC,OAA2BC,WACvF,GAAGH,IAAAA,YAAgBC,OAAAA,MAAaC,OAAO,IAAIA,IAAAA,KAAS;AAG/C,IAAME,YAAY,GAAGR,IAAAA;AAGrB,IAAMS,WAAW,GAAGT,IAAAA;AAIpB,IAAMU,UAAU,GAAGV,IAAAA;AAGnB,IAAMW,WAAW,GAAGX,IAAAA;AAGpB,IAAMY,aAAa;AAEnB,IAAMC,gBAAgB;AACtB,IAAMC,iBAAiB;AACvB,IAAMC,yBAAyB;;;ACxCtC,oBAAiB;AAEjB,uBAAuB;AAIvB,IAAMC,aAASC,cAAAA,SAAK,gEAAA;AAEpB,IAAMC,QAAQC,wBAAOC,gBAAgB,iCAAA;AAK9B,IAAMC,oBAAN,MAAMA;EACX,OAAOC,OAAOC,MAA0B;AACtC,WAAOL,MAAMI,OAAON,OAAOM,OAAOC,IAAAA,CAAAA;EACpC;EAEA,OAAOC,OAAOC,YAAgC;AAC5C,WAAOT,OAAOQ,OACZN,MAAMM,OAAO;MACXE,cAAcD,WAAWC;MACzBC,MAAMF,WAAWE;MACjBC,MAAMH,WAAWG;MACjBC,YAAYJ,WAAWI;MACvBC,UAAUL,WAAWK;MACrBC,OAAON,WAAWM;MAClBC,SAASP,WAAWO;IACtB,CAAA,CAAA;EAEJ;AACF;;;AC/BA,mBAA4D;AAC5D,uBAA0B;AAC1B,sBAA2B;;AAEpB,IAAMC,6BAA6B;AAEnC,IAAMC,qBAAqB,IAAI;AAY/B,IAAMC,
|
|
6
|
-
"names": ["DEFAULT_INTERNAL_CHANNEL", "DEFAULT_CLIENT_CHANNEL", "DEFAULT_SHELL_CHANNEL", "DEFAULT_VAULT_ORIGIN", "DEFAULT_VAULT_URL", "EXPECTED_CONFIG_VERSION", "defaultConfig", "version", "HOME", "process", "env", "getProfilePath", "root", "profile", "file", "undefined", "DX_CONFIG", "DX_CACHE", "DX_DATA", "DX_STATE", "DX_RUNTIME", "ENV_DX_CONFIG", "ENV_DX_PROFILE", "ENV_DX_PROFILE_DEFAULT", "base62", "base", "codec", "schema", "getCodecForType", "InvitationEncoder", "decode", "text", "encode", "invitation", "invitationId", "type", "kind", "authMethod", "swarmKey", "state", "timeout", "AUTHENTICATION_CODE_LENGTH", "INVITATION_TIMEOUT", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from './config';\nexport * from './echo';\nexport * from './halo';\nexport * from './invitations';\nexport * from './service-definitions';\nexport * from './shell';\nexport * from './space';\nexport * from './timeouts';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { ConfigProto } from '@dxos/config';\n\nexport const DEFAULT_INTERNAL_CHANNEL = 'dxos:vault';\nexport const DEFAULT_CLIENT_CHANNEL = 'dxos:app';\nexport const DEFAULT_SHELL_CHANNEL = 'dxos:shell';\n\nexport const DEFAULT_VAULT_ORIGIN = 'https://halo.dxos.org';\nexport const DEFAULT_VAULT_URL = DEFAULT_VAULT_ORIGIN + '/vault.html';\n\nexport const EXPECTED_CONFIG_VERSION = 1;\nexport const defaultConfig: ConfigProto = { version: 1 };\n\n// TODO(burdon): Allow override via env? Generalize since currently NodeJS only.\nconst HOME = typeof process !== 'undefined' ? process?.env?.HOME ?? '' : '';\n\n// Base directories.\n// TODO(burdon): Consider Windows, Linux, OSX.\n// https://wiki.archlinux.org/title/XDG_Base_Directory\n// Each `/dx` directory should contain `/profile/<DX_PROFILE>` subdirectories.\nexport const getProfilePath = (root: string, profile: string, file: string | undefined = undefined) =>\n `${root}/profile/${profile}` + (file ? `/${file}` : '');\n\n// XDG_CONFIG_HOME (Analogous to /etc.)\nexport const DX_CONFIG = `${HOME}/.config/dx`;\n\n// XDG_CACHE_HOME (Analogous to /var/cache).\nexport const DX_CACHE = `${HOME}/.cache/dx`;\n\n// TODO(burdon): Storage should use this by default (make path optional).\n// XDG_DATA_HOME (Analogous to /usr/share).\nexport const DX_DATA = `${HOME}/.local/share/dx`;\n\n// XDG_STATE_HOME (Analogous to /var/lib).\nexport const DX_STATE = `${HOME}/.local/state/dx`;\n\n// XDG_RUNTIME_DIR (Non-essential files, sockets, etc.)\nexport const DX_RUNTIME = '/tmp/dx/run';\n\nexport const ENV_DX_CONFIG = 'DX_CONFIG';\nexport const ENV_DX_PROFILE = 'DX_PROFILE';\nexport const ENV_DX_PROFILE_DEFAULT = 'default';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport base from 'base-x';\n\nimport { schema } from '@dxos/protocols';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\n// Encode with URL-safe alpha-numeric characters.\nconst base62 = base('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');\n\nconst codec = schema.getCodecForType('dxos.client.services.Invitation');\n\n/**\n * Encodes and decodes an invitation proto into/from alphanumeric chars.\n */\nexport class InvitationEncoder {\n static decode(text: string): Invitation {\n return codec.decode(base62.decode(text));\n }\n\n static encode(invitation: Invitation): string {\n return base62.encode(\n codec.encode({\n invitationId: invitation.invitationId,\n type: invitation.type,\n kind: invitation.kind,\n authMethod: invitation.authMethod,\n swarmKey: invitation.swarmKey,\n state: invitation.state,\n timeout: invitation.timeout,\n }),\n );\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { MulticastObservable, Observable, Subscriber } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\nexport const AUTHENTICATION_CODE_LENGTH = 6;\n\nexport const INVITATION_TIMEOUT = 3 * 60_000; // 3 mins.\n\nexport interface Invitations {\n created: MulticastObservable<CancellableInvitation[]>;\n accepted: MulticastObservable<AuthenticatingInvitation[]>;\n share(options?: Partial<Invitation>): CancellableInvitation;\n join(invitation: Invitation): AuthenticatingInvitation;\n}\n\n/**\n * Base class for all invitation observables and providers.\n */\nexport class CancellableInvitation extends MulticastObservable<Invitation> {\n private readonly _onCancel: () => Promise<void>;\n\n constructor({\n subscriber,\n initialInvitation,\n onCancel,\n }: {\n subscriber: Observable<Invitation> | Subscriber<Invitation>;\n initialInvitation: Invitation;\n onCancel: () => Promise<void>;\n }) {\n super(subscriber, initialInvitation);\n this._onCancel = onCancel;\n }\n\n cancel(): Promise<void> {\n return this._onCancel();\n }\n}\n\n/**\n * Cancelable observer that relays authentication requests.\n */\nexport class AuthenticatingInvitation extends CancellableInvitation {\n private readonly _onAuthenticate: (authCode: string) => Promise<void>;\n\n constructor({\n subscriber,\n initialInvitation,\n onCancel,\n onAuthenticate,\n }: {\n subscriber: Observable<Invitation> | Subscriber<Invitation>;\n initialInvitation: Invitation;\n onCancel: () => Promise<void>;\n onAuthenticate: (authCode: string) => Promise<void>;\n }) {\n super({ subscriber, initialInvitation, onCancel });\n this._onAuthenticate = onAuthenticate;\n }\n\n async authenticate(authCode: string): Promise<void> {\n return this._onAuthenticate(authCode);\n }\n}\n\n/**\n * Testing util to wrap non-authenticating observable with promise.\n * Don't use this in production code.\n * @deprecated\n */\n// TODO(wittjosiah): Move to testing.\nexport const wrapObservable = async (observable: CancellableInvitation): Promise<Invitation> => {\n return new Promise((resolve, reject) => {\n const subscription = observable.subscribe(\n (invitation: Invitation | undefined) => {\n // TODO(burdon): Throw error if auth requested.\n invariant(invitation?.state === Invitation.State.SUCCESS);\n subscription.unsubscribe();\n resolve(invitation);\n },\n (err: Error) => {\n subscription.unsubscribe();\n reject(err);\n },\n );\n });\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { Context } from '@dxos/context';\nimport { schema } from '@dxos/protocols';\nimport { FunctionRegistryService } from '@dxos/protocols/proto/dxos/agent/functions';\nimport {\n DevicesService,\n IdentityService,\n InvitationsService,\n LoggingService,\n NetworkService,\n SpacesService,\n SystemService,\n} from '@dxos/protocols/proto/dxos/client/services';\nimport { DevtoolsHost } from '@dxos/protocols/proto/dxos/devtools/host';\nimport { DataService } from '@dxos/protocols/proto/dxos/echo/service';\nimport type { AppService, ShellService, WorkerService } from '@dxos/protocols/proto/dxos/iframe';\nimport type { BridgeService } from '@dxos/protocols/proto/dxos/mesh/bridge';\nimport { TracingService } from '@dxos/protocols/proto/dxos/tracing';\nimport { createServiceBundle, ServiceBundle } from '@dxos/rpc';\n\n//\n// NOTE: Should contain client/proxy dependencies only.\n//\n\nexport type ClientServices = {\n SystemService: SystemService;\n NetworkService: NetworkService;\n LoggingService: LoggingService;\n\n IdentityService: IdentityService;\n InvitationsService: InvitationsService;\n DevicesService: DevicesService;\n SpacesService: SpacesService;\n DataService: DataService;\n\n FunctionRegistryService: FunctionRegistryService;\n\n // TODO(burdon): Deprecated.\n DevtoolsHost: DevtoolsHost;\n\n TracingService: TracingService;\n};\n\n/**\n * Provide access to client services definitions and service handler.\n */\nexport interface ClientServicesProvider {\n descriptors: ServiceBundle<ClientServices>;\n services: Partial<ClientServices>;\n\n open(ctx: Context): Promise<void>;\n close(ctx: Context): Promise<void>;\n}\n\n/**\n * Services supported by host.\n */\nexport const clientServiceBundle = createServiceBundle<ClientServices>({\n SystemService: schema.getService('dxos.client.services.SystemService'),\n NetworkService: schema.getService('dxos.client.services.NetworkService'),\n LoggingService: schema.getService('dxos.client.services.LoggingService'),\n\n IdentityService: schema.getService('dxos.client.services.IdentityService'),\n InvitationsService: schema.getService('dxos.client.services.InvitationsService'),\n DevicesService: schema.getService('dxos.client.services.DevicesService'),\n SpacesService: schema.getService('dxos.client.services.SpacesService'),\n DataService: schema.getService('dxos.echo.service.DataService'),\n\n // Agent-only.\n FunctionRegistryService: schema.getService('dxos.agent.functions.FunctionRegistryService'),\n\n // TODO(burdon): Deprecated.\n DevtoolsHost: schema.getService('dxos.devtools.host.DevtoolsHost'),\n\n TracingService: schema.getService('dxos.tracing.TracingService'),\n});\n\nexport type IframeServiceBundle = {\n BridgeService: BridgeService;\n};\n\nexport const iframeServiceBundle: ServiceBundle<IframeServiceBundle> = {\n BridgeService: schema.getService('dxos.mesh.bridge.BridgeService'),\n};\n\nexport type WorkerServiceBundle = {\n WorkerService: WorkerService;\n};\n\nexport const workerServiceBundle: ServiceBundle<WorkerServiceBundle> = {\n WorkerService: schema.getService('dxos.iframe.WorkerService'),\n};\n\nexport type AppServiceBundle = {\n AppService: AppService;\n};\n\nexport const appServiceBundle: ServiceBundle<AppServiceBundle> = {\n AppService: schema.getService('dxos.iframe.AppService'),\n};\n\nexport type ShellServiceBundle = {\n ShellService: ShellService;\n};\n\nexport const shellServiceBundle: ServiceBundle<ShellServiceBundle> = {\n ShellService: schema.getService('dxos.iframe.ShellService'),\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Timeout for making rpc connections from remote proxies.\n */\nexport const PROXY_CONNECTION_TIMEOUT = 30_000;\n\n/**\n * Timeout for the device to be added to the trusted set during auth.\n */\nexport const AUTH_TIMEOUT = 30_000;\n\n/**\n * Timeout for how long the remote client will wait before assuming the connection is lost.\n */\nexport const STATUS_TIMEOUT = 10_000;\n\n/**\n * Timeout for waiting before stealing resource lock.\n */\nexport const RESOURCE_LOCK_TIMEOUT = 3_000;\n\n/**\n * Timeout for space properties to be loaded in the set of tracked items.\n * Accounts for latency between SpaceService reporting the space as READY and DataService streaming the item states.\n */\nexport const LOAD_PROPERTIES_TIMEOUT = 3_000;\n\n/**\n * Timeout for creating new spaces.\n */\nexport const CREATE_SPACE_TIMEOUT = 3_000;\n\n/**\n * Timeout for loading of control feeds.\n */\nexport const LOAD_CONTROL_FEEDS_TIMEOUT = 3_000;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["DEFAULT_INTERNAL_CHANNEL", "DEFAULT_CLIENT_CHANNEL", "DEFAULT_SHELL_CHANNEL", "DEFAULT_VAULT_ORIGIN", "DEFAULT_VAULT_URL", "EXPECTED_CONFIG_VERSION", "defaultConfig", "version", "HOME", "process", "env", "getProfilePath", "root", "profile", "file", "undefined", "DX_CONFIG", "DX_CACHE", "DX_DATA", "DX_STATE", "DX_RUNTIME", "ENV_DX_CONFIG", "ENV_DX_PROFILE", "ENV_DX_PROFILE_DEFAULT", "base62", "base", "codec", "schema", "getCodecForType", "InvitationEncoder", "decode", "text", "encode", "invitation", "invitationId", "type", "kind", "authMethod", "swarmKey", "state", "timeout", "AUTHENTICATION_CODE_LENGTH", "INVITATION_TIMEOUT", "CancellableInvitation", "MulticastObservable", "constructor", "subscriber", "initialInvitation", "onCancel", "_onCancel", "cancel", "AuthenticatingInvitation", "onAuthenticate", "_onAuthenticate", "authenticate", "authCode", "wrapObservable", "observable", "Promise", "resolve", "reject", "subscription", "subscribe", "invitation", "invariant", "state", "Invitation", "State", "SUCCESS", "unsubscribe", "err", "import_protocols", "clientServiceBundle", "createServiceBundle", "SystemService", "schema", "getService", "NetworkService", "LoggingService", "IdentityService", "InvitationsService", "DevicesService", "SpacesService", "DataService", "FunctionRegistryService", "DevtoolsHost", "TracingService", "iframeServiceBundle", "BridgeService", "workerServiceBundle", "WorkerService", "appServiceBundle", "AppService", "shellServiceBundle", "ShellService", "PROXY_CONNECTION_TIMEOUT", "AUTH_TIMEOUT", "STATUS_TIMEOUT", "RESOURCE_LOCK_TIMEOUT", "LOAD_PROPERTIES_TIMEOUT", "CREATE_SPACE_TIMEOUT", "LOAD_CONTROL_FEEDS_TIMEOUT"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/sdk/client-protocol/src/config.ts":{"bytes":5848,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/echo.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/sdk/client-protocol/src/config.ts":{"bytes":5848,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/echo.ts":{"bytes":2059,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/halo.ts":{"bytes":1687,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/invitations/encoder.ts":{"bytes":3446,"imports":[{"path":"base-x","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/client-protocol/src/invitations/invitations.ts":{"bytes":7737,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/client-protocol/src/invitations/index.ts":{"bytes":578,"imports":[{"path":"packages/sdk/client-protocol/src/invitations/encoder.ts","kind":"import-statement","original":"./encoder"},{"path":"packages/sdk/client-protocol/src/invitations/invitations.ts","kind":"import-statement","original":"./invitations"}],"format":"esm"},"packages/sdk/client-protocol/src/service-definitions.ts":{"bytes":8188,"imports":[{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/client-protocol/src/shell.ts":{"bytes":1004,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/space.ts":{"bytes":3784,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/timeouts.ts":{"bytes":3134,"imports":[],"format":"esm"},"packages/sdk/client-protocol/src/index.ts":{"bytes":1086,"imports":[{"path":"packages/sdk/client-protocol/src/config.ts","kind":"import-statement","original":"./config"},{"path":"packages/sdk/client-protocol/src/echo.ts","kind":"import-statement","original":"./echo"},{"path":"packages/sdk/client-protocol/src/halo.ts","kind":"import-statement","original":"./halo"},{"path":"packages/sdk/client-protocol/src/invitations/index.ts","kind":"import-statement","original":"./invitations"},{"path":"packages/sdk/client-protocol/src/service-definitions.ts","kind":"import-statement","original":"./service-definitions"},{"path":"packages/sdk/client-protocol/src/shell.ts","kind":"import-statement","original":"./shell"},{"path":"packages/sdk/client-protocol/src/space.ts","kind":"import-statement","original":"./space"},{"path":"packages/sdk/client-protocol/src/timeouts.ts","kind":"import-statement","original":"./timeouts"}],"format":"esm"}},"outputs":{"packages/sdk/client-protocol/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":14764},"packages/sdk/client-protocol/dist/lib/node/index.cjs":{"imports":[{"path":"base-x","kind":"require-call","external":true},{"path":"@dxos/protocols","kind":"require-call","external":true},{"path":"@dxos/async","kind":"require-call","external":true},{"path":"@dxos/invariant","kind":"require-call","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"require-call","external":true},{"path":"@dxos/protocols","kind":"require-call","external":true},{"path":"@dxos/rpc","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/sdk/client-protocol/src/index.ts","inputs":{"packages/sdk/client-protocol/src/index.ts":{"bytesInOutput":1693},"packages/sdk/client-protocol/src/config.ts":{"bytesInOutput":797},"packages/sdk/client-protocol/src/invitations/encoder.ts":{"bytesInOutput":732},"packages/sdk/client-protocol/src/invitations/index.ts":{"bytesInOutput":0},"packages/sdk/client-protocol/src/invitations/invitations.ts":{"bytesInOutput":1548},"packages/sdk/client-protocol/src/service-definitions.ts":{"bytesInOutput":1686},"packages/sdk/client-protocol/src/timeouts.ts":{"bytesInOutput":224}},"bytes":9259}}}
|
package/dist/types/src/echo.d.ts
CHANGED
|
@@ -1,17 +1,39 @@
|
|
|
1
1
|
import type { MulticastObservable } from '@dxos/async';
|
|
2
|
-
import type {
|
|
2
|
+
import type { EchoSchema } from '@dxos/echo-schema';
|
|
3
3
|
import type { PublicKey } from '@dxos/keys';
|
|
4
4
|
import type { Invitation } from '@dxos/protocols/proto/dxos/client/services';
|
|
5
|
-
import type {
|
|
5
|
+
import type { AuthenticatingInvitation } from './invitations';
|
|
6
6
|
import type { Space } from './space';
|
|
7
7
|
/**
|
|
8
8
|
* TODO(burdon): Public API (move comments here).
|
|
9
9
|
*/
|
|
10
|
-
export interface Echo {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
export interface Echo extends MulticastObservable<Space[]> {
|
|
11
|
+
/**
|
|
12
|
+
* Returns the list of spaces.
|
|
13
|
+
*/
|
|
14
|
+
get(): Space[];
|
|
15
|
+
/**
|
|
16
|
+
* Returns the space with the given key.
|
|
17
|
+
*/
|
|
18
|
+
get(spaceKey: PublicKey): Space | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Returns the default space.
|
|
21
|
+
*/
|
|
22
|
+
get default(): Space;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a new space.
|
|
25
|
+
*/
|
|
26
|
+
create(): Promise<Space>;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a space from the given snapshot.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Joins an existing space using the given invitation.
|
|
32
|
+
*/
|
|
33
|
+
join(invitation: Invitation | string): AuthenticatingInvitation;
|
|
34
|
+
/**
|
|
35
|
+
* Adds a schema to ECHO.
|
|
36
|
+
*/
|
|
37
|
+
addSchema(schema: EchoSchema): void;
|
|
16
38
|
}
|
|
17
39
|
//# sourceMappingURL=echo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"echo.d.ts","sourceRoot":"","sources":["../../../src/echo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"echo.d.ts","sourceRoot":"","sources":["../../../src/echo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAE7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AAIH,MAAM,WAAW,IAAK,SAAQ,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACxD;;OAEG;IACH,GAAG,IAAI,KAAK,EAAE,CAAC;IAEf;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;IAE5C;;OAEG;IACH,IAAI,OAAO,IAAI,KAAK,CAAC;IAErB;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzB;;OAEG;IAGH;;OAEG;IACH,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,wBAAwB,CAAC;IAEhE;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;CACrC"}
|
package/dist/types/src/halo.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MulticastObservable } from '@dxos/async';
|
|
2
2
|
import { Contact, Device, Identity, Invitation } from '@dxos/protocols/proto/dxos/client/services';
|
|
3
3
|
import { ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';
|
|
4
|
-
import {
|
|
4
|
+
import { AuthenticatingInvitation, CancellableInvitation } from './invitations';
|
|
5
5
|
/**
|
|
6
6
|
* TODO(burdon): Public API (move comments here).
|
|
7
7
|
*/
|
|
@@ -10,11 +10,11 @@ export interface Halo {
|
|
|
10
10
|
get devices(): MulticastObservable<Device[]>;
|
|
11
11
|
get device(): Device | undefined;
|
|
12
12
|
get contacts(): MulticastObservable<Contact[]>;
|
|
13
|
-
get invitations(): MulticastObservable<
|
|
13
|
+
get invitations(): MulticastObservable<CancellableInvitation[]>;
|
|
14
14
|
createIdentity(options?: ProfileDocument): Promise<Identity>;
|
|
15
15
|
recoverIdentity(recoveryKey: Uint8Array): Promise<Identity>;
|
|
16
16
|
updateProfile(profile: ProfileDocument): Promise<Identity>;
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
share(): CancellableInvitation;
|
|
18
|
+
join(invitation: Invitation): AuthenticatingInvitation;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=halo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"halo.d.ts","sourceRoot":"","sources":["../../../src/halo.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAE9E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"halo.d.ts","sourceRoot":"","sources":["../../../src/halo.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,IAAI,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACrD,IAAI,OAAO,IAAI,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,QAAQ,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,IAAI,WAAW,IAAI,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAEhE,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,eAAe,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3D,KAAK,IAAI,qBAAqB,CAAC;IAC/B,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,wBAAwB,CAAC;CACxD"}
|
|
@@ -3,15 +3,15 @@ import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
|
|
|
3
3
|
export declare const AUTHENTICATION_CODE_LENGTH = 6;
|
|
4
4
|
export declare const INVITATION_TIMEOUT: number;
|
|
5
5
|
export interface Invitations {
|
|
6
|
-
created: MulticastObservable<
|
|
7
|
-
accepted: MulticastObservable<
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
created: MulticastObservable<CancellableInvitation[]>;
|
|
7
|
+
accepted: MulticastObservable<AuthenticatingInvitation[]>;
|
|
8
|
+
share(options?: Partial<Invitation>): CancellableInvitation;
|
|
9
|
+
join(invitation: Invitation): AuthenticatingInvitation;
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* Base class for all invitation observables and providers.
|
|
13
13
|
*/
|
|
14
|
-
export declare class
|
|
14
|
+
export declare class CancellableInvitation extends MulticastObservable<Invitation> {
|
|
15
15
|
private readonly _onCancel;
|
|
16
16
|
constructor({ subscriber, initialInvitation, onCancel, }: {
|
|
17
17
|
subscriber: Observable<Invitation> | Subscriber<Invitation>;
|
|
@@ -23,7 +23,7 @@ export declare class CancellableInvitationObservable extends MulticastObservable
|
|
|
23
23
|
/**
|
|
24
24
|
* Cancelable observer that relays authentication requests.
|
|
25
25
|
*/
|
|
26
|
-
export declare class
|
|
26
|
+
export declare class AuthenticatingInvitation extends CancellableInvitation {
|
|
27
27
|
private readonly _onAuthenticate;
|
|
28
28
|
constructor({ subscriber, initialInvitation, onCancel, onAuthenticate, }: {
|
|
29
29
|
subscriber: Observable<Invitation> | Subscriber<Invitation>;
|
|
@@ -38,5 +38,5 @@ export declare class AuthenticatingInvitationObservable extends CancellableInvit
|
|
|
38
38
|
* Don't use this in production code.
|
|
39
39
|
* @deprecated
|
|
40
40
|
*/
|
|
41
|
-
export declare const wrapObservable: (observable:
|
|
41
|
+
export declare const wrapObservable: (observable: CancellableInvitation) => Promise<Invitation>;
|
|
42
42
|
//# sourceMappingURL=invitations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["../../../../src/invitations/invitations.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,mBAAmB,CAAC
|
|
1
|
+
{"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["../../../../src/invitations/invitations.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACtD,QAAQ,EAAE,mBAAmB,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC1D,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,qBAAqB,CAAC;IAC5D,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,wBAAwB,CAAC;CACxD;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,UAAU,CAAC;IACxE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;gBAEpC,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,GACT,EAAE;QACD,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5D,iBAAiB,EAAE,UAAU,CAAC;QAC9B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/B;IAKD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxB;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,qBAAqB;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;gBAE1D,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,cAAc,GACf,EAAE;QACD,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5D,iBAAiB,EAAE,UAAU,CAAC;QAC9B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACrD;IAKK,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpD;AAED;;;;GAIG;AAEH,eAAO,MAAM,cAAc,eAAsB,qBAAqB,KAAG,QAAQ,UAAU,CAe1F,CAAC"}
|
|
@@ -6,7 +6,7 @@ export interface ShellRuntime {
|
|
|
6
6
|
layout: ShellLayout;
|
|
7
7
|
invitationCode?: string;
|
|
8
8
|
spaceKey?: PublicKey;
|
|
9
|
-
setLayout: (
|
|
9
|
+
setLayout: (request: LayoutRequest) => void;
|
|
10
10
|
setAppContext: (context: AppContextRequest) => Promise<void>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=shell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/shell.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAElG,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/shell.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAElG,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D"}
|
|
@@ -5,7 +5,7 @@ import { PublicKey } from '@dxos/keys';
|
|
|
5
5
|
import { Invitation, Space as SpaceData, SpaceMember, SpaceState } from '@dxos/protocols/proto/dxos/client/services';
|
|
6
6
|
import { SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';
|
|
7
7
|
import { GossipMessage } from '@dxos/protocols/proto/dxos/mesh/teleport/gossip';
|
|
8
|
-
import {
|
|
8
|
+
import { CancellableInvitation } from './invitations';
|
|
9
9
|
export interface SpaceInternal {
|
|
10
10
|
get db(): DatabaseProxy;
|
|
11
11
|
get data(): SpaceData;
|
|
@@ -21,6 +21,7 @@ export interface SpaceInternal {
|
|
|
21
21
|
*/
|
|
22
22
|
close(): Promise<void>;
|
|
23
23
|
createEpoch(): Promise<void>;
|
|
24
|
+
removeMember(memberKey: PublicKey): Promise<void>;
|
|
24
25
|
}
|
|
25
26
|
export interface Space {
|
|
26
27
|
get key(): PublicKey;
|
|
@@ -43,7 +44,7 @@ export interface Space {
|
|
|
43
44
|
* Current state of space pipeline.
|
|
44
45
|
*/
|
|
45
46
|
get pipeline(): MulticastObservable<SpaceData.PipelineState>;
|
|
46
|
-
get invitations(): MulticastObservable<
|
|
47
|
+
get invitations(): MulticastObservable<CancellableInvitation[]>;
|
|
47
48
|
get members(): MulticastObservable<SpaceMember[]>;
|
|
48
49
|
get internal(): SpaceInternal;
|
|
49
50
|
open(): Promise<void>;
|
|
@@ -54,7 +55,7 @@ export interface Space {
|
|
|
54
55
|
waitUntilReady(): Promise<this>;
|
|
55
56
|
postMessage: (channel: string, message: any) => Promise<void>;
|
|
56
57
|
listen: (channel: string, callback: (message: GossipMessage) => void) => UnsubscribeCallback;
|
|
57
|
-
|
|
58
|
+
share(options?: Partial<Invitation>): CancellableInvitation;
|
|
58
59
|
createSnapshot(): Promise<SpaceSnapshot>;
|
|
59
60
|
}
|
|
60
61
|
//# sourceMappingURL=space.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../src/space.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACrH,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAEhF,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../src/space.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACrH,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,IAAI,aAAa,CAAC;IACxB,IAAI,IAAI,IAAI,SAAS,CAAC;IAEtB;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAGD,MAAM,WAAW,KAAK;IACpB,IAAI,GAAG,IAAI,SAAS,CAAC;IAErB;;OAEG;IACH,IAAI,EAAE,IAAI,YAAY,CAAC;IACvB,IAAI,MAAM,IAAI,OAAO,CAAC;IAEtB;;OAEG;IACH,IAAI,UAAU,IAAI,WAAW,CAAC;IAE9B;;;;OAIG;IACH,IAAI,KAAK,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAE7C;;OAEG;IACH,IAAI,QAAQ,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAE7D,IAAI,WAAW,IAAI,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAChE,IAAI,OAAO,IAAI,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC;IAElD,IAAI,QAAQ,IAAI,aAAa,CAAC;IAE9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGhC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,KAAK,mBAAmB,CAAC;IAE7F,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,qBAAqB,CAAC;IAE5D,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CAC1C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/client-protocol",
|
|
3
|
-
"version": "0.1.58-main.
|
|
3
|
+
"version": "0.1.58-main.7858df5",
|
|
4
4
|
"description": "Core DXOS Client API.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -18,19 +18,19 @@
|
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"base-x": "~3.0.9",
|
|
21
|
-
"@dxos/async": "0.1.58-main.
|
|
22
|
-
"@dxos/config": "0.1.58-main.
|
|
23
|
-
"@dxos/context": "0.1.58-main.
|
|
24
|
-
"@dxos/document-model": "0.1.58-main.
|
|
25
|
-
"@dxos/echo-db": "0.1.58-main.
|
|
26
|
-
"@dxos/echo-schema": "0.1.58-main.
|
|
27
|
-
"@dxos/invariant": "0.1.58-main.
|
|
28
|
-
"@dxos/keys": "0.1.58-main.
|
|
29
|
-
"@dxos/model-factory": "0.1.58-main.
|
|
30
|
-
"@dxos/node-std": "0.1.58-main.
|
|
31
|
-
"@dxos/protocols": "0.1.58-main.
|
|
32
|
-
"@dxos/rpc": "0.1.58-main.
|
|
33
|
-
"@dxos/text-model": "0.1.58-main.
|
|
21
|
+
"@dxos/async": "0.1.58-main.7858df5",
|
|
22
|
+
"@dxos/config": "0.1.58-main.7858df5",
|
|
23
|
+
"@dxos/context": "0.1.58-main.7858df5",
|
|
24
|
+
"@dxos/document-model": "0.1.58-main.7858df5",
|
|
25
|
+
"@dxos/echo-db": "0.1.58-main.7858df5",
|
|
26
|
+
"@dxos/echo-schema": "0.1.58-main.7858df5",
|
|
27
|
+
"@dxos/invariant": "0.1.58-main.7858df5",
|
|
28
|
+
"@dxos/keys": "0.1.58-main.7858df5",
|
|
29
|
+
"@dxos/model-factory": "0.1.58-main.7858df5",
|
|
30
|
+
"@dxos/node-std": "0.1.58-main.7858df5",
|
|
31
|
+
"@dxos/protocols": "0.1.58-main.7858df5",
|
|
32
|
+
"@dxos/rpc": "0.1.58-main.7858df5",
|
|
33
|
+
"@dxos/text-model": "0.1.58-main.7858df5"
|
|
34
34
|
},
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
package/src/echo.ts
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import type { MulticastObservable } from '@dxos/async';
|
|
6
|
-
import type {
|
|
6
|
+
import type { EchoSchema } from '@dxos/echo-schema';
|
|
7
7
|
import type { PublicKey } from '@dxos/keys';
|
|
8
8
|
import type { Invitation } from '@dxos/protocols/proto/dxos/client/services';
|
|
9
9
|
|
|
10
|
-
import type {
|
|
10
|
+
import type { AuthenticatingInvitation } from './invitations';
|
|
11
11
|
import type { Space } from './space';
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -16,15 +16,39 @@ import type { Space } from './space';
|
|
|
16
16
|
// TODO(wittjosiah): Rename?
|
|
17
17
|
// https://ts.dev/style/#naming-style
|
|
18
18
|
// ClientApi? ClientProtocol?
|
|
19
|
-
export interface Echo {
|
|
20
|
-
|
|
19
|
+
export interface Echo extends MulticastObservable<Space[]> {
|
|
20
|
+
/**
|
|
21
|
+
* Returns the list of spaces.
|
|
22
|
+
*/
|
|
23
|
+
get(): Space[];
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Returns the space with the given key.
|
|
27
|
+
*/
|
|
28
|
+
get(spaceKey: PublicKey): Space | undefined;
|
|
25
29
|
|
|
26
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Returns the default space.
|
|
32
|
+
*/
|
|
33
|
+
get default(): Space;
|
|
27
34
|
|
|
28
|
-
|
|
29
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new space.
|
|
37
|
+
*/
|
|
38
|
+
create(): Promise<Space>;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Creates a space from the given snapshot.
|
|
42
|
+
*/
|
|
43
|
+
// clone(snapshot: SpaceSnapshot): Promise<Space>;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Joins an existing space using the given invitation.
|
|
47
|
+
*/
|
|
48
|
+
join(invitation: Invitation | string): AuthenticatingInvitation;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Adds a schema to ECHO.
|
|
52
|
+
*/
|
|
53
|
+
addSchema(schema: EchoSchema): void;
|
|
30
54
|
}
|
package/src/halo.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { MulticastObservable } from '@dxos/async';
|
|
|
6
6
|
import { Contact, Device, Identity, Invitation } from '@dxos/protocols/proto/dxos/client/services';
|
|
7
7
|
import { ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { AuthenticatingInvitation, CancellableInvitation } from './invitations';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* TODO(burdon): Public API (move comments here).
|
|
@@ -16,12 +16,12 @@ export interface Halo {
|
|
|
16
16
|
get devices(): MulticastObservable<Device[]>;
|
|
17
17
|
get device(): Device | undefined;
|
|
18
18
|
get contacts(): MulticastObservable<Contact[]>;
|
|
19
|
-
get invitations(): MulticastObservable<
|
|
19
|
+
get invitations(): MulticastObservable<CancellableInvitation[]>;
|
|
20
20
|
|
|
21
21
|
createIdentity(options?: ProfileDocument): Promise<Identity>;
|
|
22
22
|
recoverIdentity(recoveryKey: Uint8Array): Promise<Identity>;
|
|
23
23
|
updateProfile(profile: ProfileDocument): Promise<Identity>;
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
share(): CancellableInvitation;
|
|
26
|
+
join(invitation: Invitation): AuthenticatingInvitation;
|
|
27
27
|
}
|
|
@@ -11,16 +11,16 @@ export const AUTHENTICATION_CODE_LENGTH = 6;
|
|
|
11
11
|
export const INVITATION_TIMEOUT = 3 * 60_000; // 3 mins.
|
|
12
12
|
|
|
13
13
|
export interface Invitations {
|
|
14
|
-
created: MulticastObservable<
|
|
15
|
-
accepted: MulticastObservable<
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
created: MulticastObservable<CancellableInvitation[]>;
|
|
15
|
+
accepted: MulticastObservable<AuthenticatingInvitation[]>;
|
|
16
|
+
share(options?: Partial<Invitation>): CancellableInvitation;
|
|
17
|
+
join(invitation: Invitation): AuthenticatingInvitation;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Base class for all invitation observables and providers.
|
|
22
22
|
*/
|
|
23
|
-
export class
|
|
23
|
+
export class CancellableInvitation extends MulticastObservable<Invitation> {
|
|
24
24
|
private readonly _onCancel: () => Promise<void>;
|
|
25
25
|
|
|
26
26
|
constructor({
|
|
@@ -44,7 +44,7 @@ export class CancellableInvitationObservable extends MulticastObservable<Invitat
|
|
|
44
44
|
/**
|
|
45
45
|
* Cancelable observer that relays authentication requests.
|
|
46
46
|
*/
|
|
47
|
-
export class
|
|
47
|
+
export class AuthenticatingInvitation extends CancellableInvitation {
|
|
48
48
|
private readonly _onAuthenticate: (authCode: string) => Promise<void>;
|
|
49
49
|
|
|
50
50
|
constructor({
|
|
@@ -73,7 +73,7 @@ export class AuthenticatingInvitationObservable extends CancellableInvitationObs
|
|
|
73
73
|
* @deprecated
|
|
74
74
|
*/
|
|
75
75
|
// TODO(wittjosiah): Move to testing.
|
|
76
|
-
export const wrapObservable = async (observable:
|
|
76
|
+
export const wrapObservable = async (observable: CancellableInvitation): Promise<Invitation> => {
|
|
77
77
|
return new Promise((resolve, reject) => {
|
|
78
78
|
const subscription = observable.subscribe(
|
|
79
79
|
(invitation: Invitation | undefined) => {
|
package/src/shell.ts
CHANGED
|
@@ -11,6 +11,6 @@ export interface ShellRuntime {
|
|
|
11
11
|
layout: ShellLayout;
|
|
12
12
|
invitationCode?: string;
|
|
13
13
|
spaceKey?: PublicKey;
|
|
14
|
-
setLayout: (
|
|
14
|
+
setLayout: (request: LayoutRequest) => void;
|
|
15
15
|
setAppContext: (context: AppContextRequest) => Promise<void>;
|
|
16
16
|
}
|
package/src/space.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { Invitation, Space as SpaceData, SpaceMember, SpaceState } from '@dxos/p
|
|
|
10
10
|
import { SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';
|
|
11
11
|
import { GossipMessage } from '@dxos/protocols/proto/dxos/mesh/teleport/gossip';
|
|
12
12
|
|
|
13
|
-
import {
|
|
13
|
+
import { CancellableInvitation } from './invitations';
|
|
14
14
|
|
|
15
15
|
export interface SpaceInternal {
|
|
16
16
|
get db(): DatabaseProxy;
|
|
@@ -31,6 +31,8 @@ export interface SpaceInternal {
|
|
|
31
31
|
|
|
32
32
|
// TODO(dmaretskyi): Return epoch info.
|
|
33
33
|
createEpoch(): Promise<void>;
|
|
34
|
+
|
|
35
|
+
removeMember(memberKey: PublicKey): Promise<void>;
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
// TODO(burdon): Separate public API form implementation (move comments here).
|
|
@@ -60,7 +62,7 @@ export interface Space {
|
|
|
60
62
|
*/
|
|
61
63
|
get pipeline(): MulticastObservable<SpaceData.PipelineState>;
|
|
62
64
|
|
|
63
|
-
get invitations(): MulticastObservable<
|
|
65
|
+
get invitations(): MulticastObservable<CancellableInvitation[]>;
|
|
64
66
|
get members(): MulticastObservable<SpaceMember[]>;
|
|
65
67
|
|
|
66
68
|
get internal(): SpaceInternal;
|
|
@@ -78,7 +80,7 @@ export interface Space {
|
|
|
78
80
|
|
|
79
81
|
listen: (channel: string, callback: (message: GossipMessage) => void) => UnsubscribeCallback;
|
|
80
82
|
|
|
81
|
-
|
|
83
|
+
share(options?: Partial<Invitation>): CancellableInvitation;
|
|
82
84
|
|
|
83
85
|
createSnapshot(): Promise<SpaceSnapshot>;
|
|
84
86
|
}
|