@dxos/client-services 0.1.3 → 0.1.5

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.
@@ -5,6 +5,5 @@ export * from './packlets/identity';
5
5
  export * from './packlets/invitations';
6
6
  export * from './packlets/services';
7
7
  export * from './packlets/storage';
8
- export * from './packlets/testing';
9
8
  export * from './packlets/vault';
10
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AAEzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AAEzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
package/dist/src/index.js CHANGED
@@ -24,6 +24,5 @@ __exportStar(require("./packlets/identity"), exports);
24
24
  __exportStar(require("./packlets/invitations"), exports);
25
25
  __exportStar(require("./packlets/services"), exports);
26
26
  __exportStar(require("./packlets/storage"), exports);
27
- __exportStar(require("./packlets/testing"), exports);
28
27
  __exportStar(require("./packlets/vault"), exports);
29
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,2CAAyB;AAEzB,wDAAsC;AACtC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,sDAAoC;AACpC,qDAAmC;AACnC,qDAAmC;AACnC,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,2CAAyB;AAEzB,wDAAsC;AACtC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,sDAAoC;AACpC,qDAAmC;AACnC,mDAAiC"}
@@ -0,0 +1,23 @@
1
+ import { Config, ConfigProto } from '@dxos/config';
2
+ import { ClientServicesProvider } from './service-definitions';
3
+ export declare const DEFAULT_CLIENT_ORIGIN = "https://halo.dxos.org/headless.html";
4
+ export declare const DEFAULT_CONFIG_CHANNEL = "dxos:app";
5
+ export declare type ClientIFrameServiceProxyParams = {
6
+ config: Config | ConfigProto;
7
+ channel?: string;
8
+ timeout?: number;
9
+ };
10
+ /** */
11
+ export declare class ClientIFrameServiceProxy implements ClientServicesProvider {
12
+ private _iframeId?;
13
+ private _clientServicesProxy?;
14
+ private readonly params;
15
+ constructor({ config, channel, timeout }: ClientIFrameServiceProxyParams);
16
+ get proxy(): import("@dxos/rpc").ProtoRpcPeer<import("./service-definitions").ClientServices>;
17
+ get descriptors(): import("@dxos/rpc").ServiceBundle<import("./service-definitions").ClientServices>;
18
+ get services(): import("./service-definitions").ClientServices;
19
+ open(): Promise<void>;
20
+ close(): Promise<void>;
21
+ private _getIFramePort;
22
+ }
23
+ //# sourceMappingURL=iframe-service-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframe-service-proxy.d.ts","sourceRoot":"","sources":["../../../../src/packlets/services/iframe-service-proxy.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAc,MAAM,cAAc,CAAC;AAK/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAI/D,eAAO,MAAM,qBAAqB,wCAAwC,CAAC;AAC3E,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAEjD,oBAAY,8BAA8B,GAAG;IAC3C,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM;AACN,qBAAa,wBAAyB,YAAW,sBAAsB;IACrE,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAEZ,EAAE,MAAM,EAAE,OAAgC,EAAE,OAAc,EAAE,EAAE,8BAA8B;IAKxG,IAAI,KAAK,qFAER;IAED,IAAI,WAAW,sFAEd;IAED,IAAI,QAAQ,mDAEX;IAEK,IAAI;IAOJ,KAAK;IASX,OAAO,CAAC,cAAc;CASvB"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2021 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ClientIFrameServiceProxy = exports.DEFAULT_CONFIG_CHANNEL = exports.DEFAULT_CLIENT_ORIGIN = void 0;
7
+ const config_1 = require("@dxos/config");
8
+ const keys_1 = require("@dxos/keys");
9
+ const rpc_tunnel_1 = require("@dxos/rpc-tunnel");
10
+ const service_proxy_1 = require("./service-proxy");
11
+ // TODO(mykola): Remove copy-paste from client/config.ts
12
+ exports.DEFAULT_CLIENT_ORIGIN = 'https://halo.dxos.org/headless.html';
13
+ exports.DEFAULT_CONFIG_CHANNEL = 'dxos:app';
14
+ /** */
15
+ class ClientIFrameServiceProxy {
16
+ constructor({ config, channel = exports.DEFAULT_CONFIG_CHANNEL, timeout = 1000 }) {
17
+ this.params = { config, channel, timeout };
18
+ this._clientServicesProxy = new service_proxy_1.ClientServicesProxy(this._getIFramePort());
19
+ }
20
+ get proxy() {
21
+ return this._clientServicesProxy.proxy;
22
+ }
23
+ get descriptors() {
24
+ return this._clientServicesProxy.descriptors;
25
+ }
26
+ get services() {
27
+ return this._clientServicesProxy.services;
28
+ }
29
+ async open() {
30
+ if (!this._clientServicesProxy) {
31
+ this._clientServicesProxy = new service_proxy_1.ClientServicesProxy(this._getIFramePort());
32
+ }
33
+ return this._clientServicesProxy.open();
34
+ }
35
+ async close() {
36
+ var _a, _b;
37
+ await ((_a = this._clientServicesProxy) === null || _a === void 0 ? void 0 : _a.close());
38
+ this._clientServicesProxy = undefined;
39
+ if (this._iframeId) {
40
+ (_b = document.getElementById(this._iframeId)) === null || _b === void 0 ? void 0 : _b.remove();
41
+ this._iframeId = undefined;
42
+ }
43
+ }
44
+ _getIFramePort() {
45
+ var _a;
46
+ this._iframeId = `__DXOS_CLIENT_${keys_1.PublicKey.random().toHex()}__`;
47
+ const source = new URL((_a = (0, config_1.fromConfig)(this.params.config).get('runtime.client.remoteSource')) !== null && _a !== void 0 ? _a : exports.DEFAULT_CLIENT_ORIGIN, window.location.origin);
48
+ const iframe = (0, rpc_tunnel_1.createIFrame)(source.toString(), this._iframeId);
49
+ return (0, rpc_tunnel_1.createIFramePort)({ origin: source.origin, iframe, channel: this.params.channel });
50
+ }
51
+ }
52
+ exports.ClientIFrameServiceProxy = ClientIFrameServiceProxy;
53
+ //# sourceMappingURL=iframe-service-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframe-service-proxy.js","sourceRoot":"","sources":["../../../../src/packlets/services/iframe-service-proxy.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,yCAA+D;AAC/D,qCAAuC;AAEvC,iDAAkE;AAGlE,mDAAsD;AAEtD,wDAAwD;AAC3C,QAAA,qBAAqB,GAAG,qCAAqC,CAAC;AAC9D,QAAA,sBAAsB,GAAG,UAAU,CAAC;AAQjD,MAAM;AACN,MAAa,wBAAwB;IAKnC,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,8BAAsB,EAAE,OAAO,GAAG,IAAI,EAAkC;QACtG,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,oBAAoB,GAAG,IAAI,mCAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,oBAAqB,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,oBAAqB,CAAC,WAAW,CAAC;IAChD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,oBAAqB,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,mCAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;SAC5E;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,KAAK;;QACT,MAAM,CAAA,MAAA,IAAI,CAAC,oBAAoB,0CAAE,KAAK,EAAE,CAAA,CAAC;QACzC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAA,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,0CAAE,MAAM,EAAE,CAAC;YAClD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC5B;IACH,CAAC;IAEO,cAAc;;QACpB,IAAI,CAAC,SAAS,GAAG,iBAAiB,gBAAS,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,MAAA,IAAA,mBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,mCAAI,6BAAqB,EAC1F,MAAM,CAAC,QAAQ,CAAC,MAAM,CACvB,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,yBAAY,EAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/D,OAAO,IAAA,6BAAgB,EAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;CACF;AA/CD,4DA+CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-builder.d.ts","sourceRoot":"","sources":["../../../../src/packlets/testing/test-builder.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAuB,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElF,OAAO,EAAiB,OAAO,EAAe,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAA6B,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM5F,eAAO,MAAM,iBAAiB,WAAY,MAAM,wBAAwB,0BAA0B,uBAUjG,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;oBAchC,CAAC;AAEF,eAAO,MAAM,WAAW,aAAoB,MAAM,8BAUjD,CAAC;AAEF,eAAO,MAAM,cAAc,SAAgB,cAAc,4BAGxD,CAAC;AAGF,eAAO,MAAM,SAAS,WAAkB,MAAM,UAAU,MAAM,kBAc7D,CAAC"}
1
+ {"version":3,"file":"test-builder.d.ts","sourceRoot":"","sources":["../../../../src/packlets/testing/test-builder.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAuB,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElF,OAAO,EAAiB,OAAO,EAAe,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAA6B,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM5F,eAAO,MAAM,iBAAiB,WAAY,MAAM,wBAAwB,0BAA0B,uBAUjG,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;oBAchC,CAAC;AAEF,eAAO,MAAM,WAAW,aAAoB,MAAM,8BAUjD,CAAC;AAEF,eAAO,MAAM,cAAc,SAAgB,cAAc,4BAGxD,CAAC;AAIF,eAAO,MAAM,SAAS,WAAkB,MAAM,UAAU,MAAM,kBAc7D,CAAC"}
@@ -46,6 +46,7 @@ const createIdentity = async (peer) => {
46
46
  return peer;
47
47
  };
48
48
  exports.createIdentity = createIdentity;
49
+ // TODO(wittjosiah): Factor out to client-testing?
49
50
  // TODO(burdon): Create builder and make configurable.
50
51
  const syncItems = async (space1, space2) => {
51
52
  {
@@ -1 +1 @@
1
- {"version":3,"file":"test-builder.js","sourceRoot":"","sources":["../../../../src/packlets/testing/test-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-builder.js","sourceRoot":"","sources":["../../../../src/packlets/testing/test-builder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/client-services",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "homepage": "https://dxos.org",
5
5
  "bugs": "https://github.com/dxos/dxos/issues",
6
6
  "license": "MIT",
@@ -15,29 +15,29 @@
15
15
  "src"
16
16
  ],
17
17
  "dependencies": {
18
- "@dxos/async": "0.1.3",
19
- "@dxos/codec-protobuf": "0.1.3",
20
- "@dxos/config": "0.1.3",
21
- "@dxos/credentials": "0.1.3",
22
- "@dxos/crypto": "0.1.3",
23
- "@dxos/debug": "0.1.3",
24
- "@dxos/echo-db": "0.1.3",
25
- "@dxos/feed-store": "0.1.3",
26
- "@dxos/keyring": "0.1.3",
27
- "@dxos/keys": "0.1.3",
28
- "@dxos/log": "0.1.3",
29
- "@dxos/messaging": "0.1.3",
30
- "@dxos/model-factory": "0.1.3",
31
- "@dxos/network-manager": "0.1.3",
32
- "@dxos/object-model": "0.1.3",
33
- "@dxos/protocol-plugin-rpc": "0.1.3",
34
- "@dxos/protocols": "0.1.3",
35
- "@dxos/random-access-storage": "0.1.3",
36
- "@dxos/rpc": "0.1.3",
37
- "@dxos/rpc-tunnel": "0.1.3",
38
- "@dxos/text-model": "0.1.3",
39
- "@dxos/timeframe": "0.1.3",
40
- "@dxos/util": "0.1.3",
18
+ "@dxos/async": "0.1.5",
19
+ "@dxos/codec-protobuf": "0.1.5",
20
+ "@dxos/config": "0.1.5",
21
+ "@dxos/credentials": "0.1.5",
22
+ "@dxos/crypto": "0.1.5",
23
+ "@dxos/debug": "0.1.5",
24
+ "@dxos/echo-db": "0.1.5",
25
+ "@dxos/feed-store": "0.1.5",
26
+ "@dxos/keyring": "0.1.5",
27
+ "@dxos/keys": "0.1.5",
28
+ "@dxos/log": "0.1.5",
29
+ "@dxos/messaging": "0.1.5",
30
+ "@dxos/model-factory": "0.1.5",
31
+ "@dxos/network-manager": "0.1.5",
32
+ "@dxos/object-model": "0.1.5",
33
+ "@dxos/protocol-plugin-rpc": "0.1.5",
34
+ "@dxos/protocols": "0.1.5",
35
+ "@dxos/random-access-storage": "0.1.5",
36
+ "@dxos/rpc": "0.1.5",
37
+ "@dxos/rpc-tunnel": "0.1.5",
38
+ "@dxos/text-model": "0.1.5",
39
+ "@dxos/timeframe": "0.1.5",
40
+ "@dxos/util": "0.1.5",
41
41
  "abstract-leveldown": "~7.0.0",
42
42
  "assert": "^2.0.0",
43
43
  "base-x": "~3.0.9",
@@ -46,8 +46,8 @@
46
46
  "memdown": "^5.1.0"
47
47
  },
48
48
  "devDependencies": {
49
- "@dxos/signal": "0.1.3",
50
- "@dxos/testutils": "0.1.3",
49
+ "@dxos/signal": "0.1.5",
50
+ "@dxos/testutils": "0.1.5",
51
51
  "@types/level-js": "~4.0.1",
52
52
  "@types/memdown": "^3.0.0",
53
53
  "@types/readable-stream": "^2.3.9"
package/src/index.ts CHANGED
@@ -10,5 +10,4 @@ export * from './packlets/identity';
10
10
  export * from './packlets/invitations';
11
11
  export * from './packlets/services';
12
12
  export * from './packlets/storage';
13
- export * from './packlets/testing';
14
13
  export * from './packlets/vault';
@@ -0,0 +1,71 @@
1
+ //
2
+ // Copyright 2021 DXOS.org
3
+ //
4
+
5
+ import { Config, ConfigProto, fromConfig } from '@dxos/config';
6
+ import { PublicKey } from '@dxos/keys';
7
+ import { RpcPort } from '@dxos/rpc';
8
+ import { createIFrame, createIFramePort } from '@dxos/rpc-tunnel';
9
+
10
+ import { ClientServicesProvider } from './service-definitions';
11
+ import { ClientServicesProxy } from './service-proxy';
12
+
13
+ // TODO(mykola): Remove copy-paste from client/config.ts
14
+ export const DEFAULT_CLIENT_ORIGIN = 'https://halo.dxos.org/headless.html';
15
+ export const DEFAULT_CONFIG_CHANNEL = 'dxos:app';
16
+
17
+ export type ClientIFrameServiceProxyParams = {
18
+ config: Config | ConfigProto;
19
+ channel?: string;
20
+ timeout?: number;
21
+ };
22
+
23
+ /** */
24
+ export class ClientIFrameServiceProxy implements ClientServicesProvider {
25
+ private _iframeId?: string;
26
+ private _clientServicesProxy?: ClientServicesProxy;
27
+ private readonly params;
28
+
29
+ constructor({ config, channel = DEFAULT_CONFIG_CHANNEL, timeout = 1000 }: ClientIFrameServiceProxyParams) {
30
+ this.params = { config, channel, timeout };
31
+ this._clientServicesProxy = new ClientServicesProxy(this._getIFramePort());
32
+ }
33
+
34
+ get proxy() {
35
+ return this._clientServicesProxy!.proxy;
36
+ }
37
+
38
+ get descriptors() {
39
+ return this._clientServicesProxy!.descriptors;
40
+ }
41
+
42
+ get services() {
43
+ return this._clientServicesProxy!.services;
44
+ }
45
+
46
+ async open() {
47
+ if (!this._clientServicesProxy) {
48
+ this._clientServicesProxy = new ClientServicesProxy(this._getIFramePort());
49
+ }
50
+ return this._clientServicesProxy.open();
51
+ }
52
+
53
+ async close() {
54
+ await this._clientServicesProxy?.close();
55
+ this._clientServicesProxy = undefined;
56
+ if (this._iframeId) {
57
+ document.getElementById(this._iframeId)?.remove();
58
+ this._iframeId = undefined;
59
+ }
60
+ }
61
+
62
+ private _getIFramePort(): RpcPort {
63
+ this._iframeId = `__DXOS_CLIENT_${PublicKey.random().toHex()}__`;
64
+ const source = new URL(
65
+ fromConfig(this.params.config).get('runtime.client.remoteSource') ?? DEFAULT_CLIENT_ORIGIN,
66
+ window.location.origin
67
+ );
68
+ const iframe = createIFrame(source.toString(), this._iframeId);
69
+ return createIFramePort({ origin: source.origin, iframe, channel: this.params.channel });
70
+ }
71
+ }
@@ -61,6 +61,7 @@ export const createIdentity = async (peer: ServiceContext) => {
61
61
  return peer;
62
62
  };
63
63
 
64
+ // TODO(wittjosiah): Factor out to client-testing?
64
65
  // TODO(burdon): Create builder and make configurable.
65
66
  export const syncItems = async (space1: ISpace, space2: ISpace) => {
66
67
  {