@dxos/client-services 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +20 -0
  3. package/dist/src/errors.d.ts +8 -0
  4. package/dist/src/errors.d.ts.map +1 -0
  5. package/dist/src/errors.js +21 -0
  6. package/dist/src/errors.js.map +1 -0
  7. package/dist/src/index.d.ts +7 -0
  8. package/dist/src/index.d.ts.map +1 -0
  9. package/dist/src/index.js +26 -0
  10. package/dist/src/index.js.map +1 -0
  11. package/dist/src/packlets/devtools/devtools-host-events.d.ts +5 -0
  12. package/dist/src/packlets/devtools/devtools-host-events.d.ts.map +1 -0
  13. package/dist/src/packlets/devtools/devtools-host-events.js +14 -0
  14. package/dist/src/packlets/devtools/devtools-host-events.js.map +1 -0
  15. package/dist/src/packlets/devtools/feeds.d.ts +11 -0
  16. package/dist/src/packlets/devtools/feeds.d.ts.map +1 -0
  17. package/dist/src/packlets/devtools/feeds.js +72 -0
  18. package/dist/src/packlets/devtools/feeds.js.map +1 -0
  19. package/dist/src/packlets/devtools/index.d.ts +5 -0
  20. package/dist/src/packlets/devtools/index.d.ts.map +1 -0
  21. package/dist/src/packlets/devtools/index.js +24 -0
  22. package/dist/src/packlets/devtools/index.js.map +1 -0
  23. package/dist/src/packlets/devtools/network.d.ts +19 -0
  24. package/dist/src/packlets/devtools/network.d.ts.map +1 -0
  25. package/dist/src/packlets/devtools/network.js +79 -0
  26. package/dist/src/packlets/devtools/network.js.map +1 -0
  27. package/dist/src/packlets/devtools/spaces.d.ts +5 -0
  28. package/dist/src/packlets/devtools/spaces.d.ts.map +1 -0
  29. package/dist/src/packlets/devtools/spaces.js +38 -0
  30. package/dist/src/packlets/devtools/spaces.js.map +1 -0
  31. package/dist/src/packlets/identity/authenticator.d.ts +7 -0
  32. package/dist/src/packlets/identity/authenticator.d.ts.map +1 -0
  33. package/dist/src/packlets/identity/authenticator.js +40 -0
  34. package/dist/src/packlets/identity/authenticator.js.map +1 -0
  35. package/dist/src/packlets/identity/authenticator.test.d.ts +2 -0
  36. package/dist/src/packlets/identity/authenticator.test.d.ts.map +1 -0
  37. package/dist/src/packlets/identity/authenticator.test.js +32 -0
  38. package/dist/src/packlets/identity/authenticator.test.js.map +1 -0
  39. package/dist/src/packlets/identity/identity-manager.d.ts +35 -0
  40. package/dist/src/packlets/identity/identity-manager.d.ts.map +1 -0
  41. package/dist/src/packlets/identity/identity-manager.js +151 -0
  42. package/dist/src/packlets/identity/identity-manager.js.map +1 -0
  43. package/dist/src/packlets/identity/identity-manager.test.d.ts +2 -0
  44. package/dist/src/packlets/identity/identity-manager.test.d.ts.map +1 -0
  45. package/dist/src/packlets/identity/identity-manager.test.js +92 -0
  46. package/dist/src/packlets/identity/identity-manager.test.js.map +1 -0
  47. package/dist/src/packlets/identity/identity.d.ts +43 -0
  48. package/dist/src/packlets/identity/identity.d.ts.map +1 -0
  49. package/dist/src/packlets/identity/identity.js +74 -0
  50. package/dist/src/packlets/identity/identity.js.map +1 -0
  51. package/dist/src/packlets/identity/identity.test.d.ts +2 -0
  52. package/dist/src/packlets/identity/identity.test.d.ts.map +1 -0
  53. package/dist/src/packlets/identity/identity.test.js +258 -0
  54. package/dist/src/packlets/identity/identity.test.js.map +1 -0
  55. package/dist/src/packlets/identity/index.d.ts +4 -0
  56. package/dist/src/packlets/identity/index.d.ts.map +1 -0
  57. package/dist/src/packlets/identity/index.js +23 -0
  58. package/dist/src/packlets/identity/index.js.map +1 -0
  59. package/dist/src/packlets/invitations/common.d.ts +35 -0
  60. package/dist/src/packlets/invitations/common.d.ts.map +1 -0
  61. package/dist/src/packlets/invitations/common.js +12 -0
  62. package/dist/src/packlets/invitations/common.js.map +1 -0
  63. package/dist/src/packlets/invitations/halo-invitations.d.ts +23 -0
  64. package/dist/src/packlets/invitations/halo-invitations.d.ts.map +1 -0
  65. package/dist/src/packlets/invitations/halo-invitations.js +150 -0
  66. package/dist/src/packlets/invitations/halo-invitations.js.map +1 -0
  67. package/dist/src/packlets/invitations/index.d.ts +5 -0
  68. package/dist/src/packlets/invitations/index.d.ts.map +1 -0
  69. package/dist/src/packlets/invitations/index.js +24 -0
  70. package/dist/src/packlets/invitations/index.js.map +1 -0
  71. package/dist/src/packlets/invitations/invitation-wrapper.d.ts +36 -0
  72. package/dist/src/packlets/invitations/invitation-wrapper.d.ts.map +1 -0
  73. package/dist/src/packlets/invitations/invitation-wrapper.js +104 -0
  74. package/dist/src/packlets/invitations/invitation-wrapper.js.map +1 -0
  75. package/dist/src/packlets/invitations/observable.test.d.ts +2 -0
  76. package/dist/src/packlets/invitations/observable.test.d.ts.map +1 -0
  77. package/dist/src/packlets/invitations/observable.test.js +43 -0
  78. package/dist/src/packlets/invitations/observable.test.js.map +1 -0
  79. package/dist/src/packlets/invitations/space-invitations.d.ts +25 -0
  80. package/dist/src/packlets/invitations/space-invitations.d.ts.map +1 -0
  81. package/dist/src/packlets/invitations/space-invitations.js +136 -0
  82. package/dist/src/packlets/invitations/space-invitations.js.map +1 -0
  83. package/dist/src/packlets/services/impl/devtools.d.ts +34 -0
  84. package/dist/src/packlets/services/impl/devtools.d.ts.map +1 -0
  85. package/dist/src/packlets/services/impl/devtools.js +77 -0
  86. package/dist/src/packlets/services/impl/devtools.js.map +1 -0
  87. package/dist/src/packlets/services/impl/halo.d.ts +20 -0
  88. package/dist/src/packlets/services/impl/halo.d.ts.map +1 -0
  89. package/dist/src/packlets/services/impl/halo.js +93 -0
  90. package/dist/src/packlets/services/impl/halo.js.map +1 -0
  91. package/dist/src/packlets/services/impl/index.d.ts +6 -0
  92. package/dist/src/packlets/services/impl/index.d.ts.map +1 -0
  93. package/dist/src/packlets/services/impl/index.js +26 -0
  94. package/dist/src/packlets/services/impl/index.js.map +1 -0
  95. package/dist/src/packlets/services/impl/party.d.ts +25 -0
  96. package/dist/src/packlets/services/impl/party.d.ts.map +1 -0
  97. package/dist/src/packlets/services/impl/party.js +265 -0
  98. package/dist/src/packlets/services/impl/party.js.map +1 -0
  99. package/dist/src/packlets/services/impl/profile.d.ts +19 -0
  100. package/dist/src/packlets/services/impl/profile.d.ts.map +1 -0
  101. package/dist/src/packlets/services/impl/profile.js +120 -0
  102. package/dist/src/packlets/services/impl/profile.js.map +1 -0
  103. package/dist/src/packlets/services/impl/system.d.ts +9 -0
  104. package/dist/src/packlets/services/impl/system.d.ts.map +1 -0
  105. package/dist/src/packlets/services/impl/system.js +20 -0
  106. package/dist/src/packlets/services/impl/system.js.map +1 -0
  107. package/dist/src/packlets/services/impl/tracing.d.ts +12 -0
  108. package/dist/src/packlets/services/impl/tracing.d.ts.map +1 -0
  109. package/dist/src/packlets/services/impl/tracing.js +22 -0
  110. package/dist/src/packlets/services/impl/tracing.js.map +1 -0
  111. package/dist/src/packlets/services/index.d.ts +6 -0
  112. package/dist/src/packlets/services/index.d.ts.map +1 -0
  113. package/dist/src/packlets/services/index.js +25 -0
  114. package/dist/src/packlets/services/index.js.map +1 -0
  115. package/dist/src/packlets/services/service-context.d.ts +36 -0
  116. package/dist/src/packlets/services/service-context.d.ts.map +1 -0
  117. package/dist/src/packlets/services/service-context.js +112 -0
  118. package/dist/src/packlets/services/service-context.js.map +1 -0
  119. package/dist/src/packlets/services/service-factory.d.ts +15 -0
  120. package/dist/src/packlets/services/service-factory.d.ts.map +1 -0
  121. package/dist/src/packlets/services/service-factory.js +25 -0
  122. package/dist/src/packlets/services/service-factory.js.map +1 -0
  123. package/dist/src/packlets/services/service-host.d.ts +27 -0
  124. package/dist/src/packlets/services/service-host.d.ts.map +1 -0
  125. package/dist/src/packlets/services/service-host.js +78 -0
  126. package/dist/src/packlets/services/service-host.js.map +1 -0
  127. package/dist/src/packlets/services/service-host.test.d.ts +2 -0
  128. package/dist/src/packlets/services/service-host.test.d.ts.map +1 -0
  129. package/dist/src/packlets/services/service-host.test.js +78 -0
  130. package/dist/src/packlets/services/service-host.test.js.map +1 -0
  131. package/dist/src/packlets/services/services.d.ts +19 -0
  132. package/dist/src/packlets/services/services.d.ts.map +1 -0
  133. package/dist/src/packlets/services/services.js +19 -0
  134. package/dist/src/packlets/services/services.js.map +1 -0
  135. package/dist/src/packlets/services/signer.d.ts +9 -0
  136. package/dist/src/packlets/services/signer.d.ts.map +1 -0
  137. package/dist/src/packlets/services/signer.js +6 -0
  138. package/dist/src/packlets/services/signer.js.map +1 -0
  139. package/dist/src/packlets/services/testing/halo.test.d.ts +2 -0
  140. package/dist/src/packlets/services/testing/halo.test.d.ts.map +1 -0
  141. package/dist/src/packlets/services/testing/halo.test.js +34 -0
  142. package/dist/src/packlets/services/testing/halo.test.js.map +1 -0
  143. package/dist/src/packlets/services/testing/spaces.test.d.ts +2 -0
  144. package/dist/src/packlets/services/testing/spaces.test.d.ts.map +1 -0
  145. package/dist/src/packlets/services/testing/spaces.test.js +68 -0
  146. package/dist/src/packlets/services/testing/spaces.test.js.map +1 -0
  147. package/dist/src/packlets/services/testing/testing.d.ts +8 -0
  148. package/dist/src/packlets/services/testing/testing.d.ts.map +1 -0
  149. package/dist/src/packlets/services/testing/testing.js +23 -0
  150. package/dist/src/packlets/services/testing/testing.js.map +1 -0
  151. package/dist/src/packlets/storage/index.d.ts +2 -0
  152. package/dist/src/packlets/storage/index.d.ts.map +1 -0
  153. package/dist/src/packlets/storage/index.js +21 -0
  154. package/dist/src/packlets/storage/index.js.map +1 -0
  155. package/dist/src/packlets/storage/storage.d.ts +7 -0
  156. package/dist/src/packlets/storage/storage.d.ts.map +1 -0
  157. package/dist/src/packlets/storage/storage.js +89 -0
  158. package/dist/src/packlets/storage/storage.js.map +1 -0
  159. package/package.json +61 -0
  160. package/src/errors.ts +19 -0
  161. package/src/index.ts +11 -0
  162. package/src/packlets/devtools/devtools-host-events.ts +8 -0
  163. package/src/packlets/devtools/feeds.ts +91 -0
  164. package/src/packlets/devtools/index.ts +8 -0
  165. package/src/packlets/devtools/network.ts +89 -0
  166. package/src/packlets/devtools/spaces.ts +50 -0
  167. package/src/packlets/identity/authenticator.test.ts +32 -0
  168. package/src/packlets/identity/authenticator.ts +49 -0
  169. package/src/packlets/identity/identity-manager.test.ts +121 -0
  170. package/src/packlets/identity/identity-manager.ts +207 -0
  171. package/src/packlets/identity/identity.test.ts +295 -0
  172. package/src/packlets/identity/identity.ts +109 -0
  173. package/src/packlets/identity/index.ts +7 -0
  174. package/src/packlets/invitations/common.ts +48 -0
  175. package/src/packlets/invitations/halo-invitations.ts +162 -0
  176. package/src/packlets/invitations/index.ts +8 -0
  177. package/src/packlets/invitations/invitation-wrapper.ts +140 -0
  178. package/src/packlets/invitations/observable.test.ts +67 -0
  179. package/src/packlets/invitations/space-invitations.ts +159 -0
  180. package/src/packlets/services/impl/devtools.ts +141 -0
  181. package/src/packlets/services/impl/halo.ts +107 -0
  182. package/src/packlets/services/impl/index.ts +11 -0
  183. package/src/packlets/services/impl/party.ts +305 -0
  184. package/src/packlets/services/impl/profile.ts +141 -0
  185. package/src/packlets/services/impl/system.ts +19 -0
  186. package/src/packlets/services/impl/tracing.ts +21 -0
  187. package/src/packlets/services/index.ts +9 -0
  188. package/src/packlets/services/service-context.ts +151 -0
  189. package/src/packlets/services/service-factory.ts +35 -0
  190. package/src/packlets/services/service-host.test.ts +88 -0
  191. package/src/packlets/services/service-host.ts +101 -0
  192. package/src/packlets/services/services.ts +39 -0
  193. package/src/packlets/services/signer.ts +13 -0
  194. package/src/packlets/services/testing/halo.test.ts +40 -0
  195. package/src/packlets/services/testing/spaces.test.ts +87 -0
  196. package/src/packlets/services/testing/testing.ts +28 -0
  197. package/src/packlets/storage/index.ts +5 -0
  198. package/src/packlets/storage/storage.ts +97 -0
  199. package/src/typings.d.ts +5 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 DXOS.org
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,20 @@
1
+ # @dxos/client
2
+
3
+ [![js-semistandard-style](https://img.shields.io/badge/code%20style-semistandard-brightgreen.svg?style=flat-square)](https://github.com/standard/semistandard)
4
+ [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
5
+
6
+ Description...
7
+
8
+ ## Install
9
+
10
+ ## Usage
11
+
12
+ ...
13
+
14
+ ## Contributing
15
+
16
+ PRs accepted.
17
+
18
+ ## License
19
+
20
+ MIT © DXOS
@@ -0,0 +1,8 @@
1
+ import { DXOSError } from '@dxos/debug';
2
+ export declare class InvalidConfigurationError extends DXOSError {
3
+ constructor(message: string);
4
+ }
5
+ export declare class RemoteServiceConnectionTimeout extends DXOSError {
6
+ constructor(message?: string);
7
+ }
8
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,qBAAa,yBAA0B,SAAQ,SAAS;gBAC1C,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,8BAA+B,SAAQ,SAAS;gBAC/C,OAAO,CAAC,EAAE,MAAM;CAG7B"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2021 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RemoteServiceConnectionTimeout = exports.InvalidConfigurationError = void 0;
7
+ const debug_1 = require("@dxos/debug");
8
+ // TODO(burdon): Consolidate with @dxos/echo-db.
9
+ class InvalidConfigurationError extends debug_1.DXOSError {
10
+ constructor(message) {
11
+ super('INVALID_CONFIGURATION', message);
12
+ }
13
+ }
14
+ exports.InvalidConfigurationError = InvalidConfigurationError;
15
+ class RemoteServiceConnectionTimeout extends debug_1.DXOSError {
16
+ constructor(message) {
17
+ super('REMOTE_SERVICE_CONNECTION_TIMEOUT', message);
18
+ }
19
+ }
20
+ exports.RemoteServiceConnectionTimeout = RemoteServiceConnectionTimeout;
21
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,uCAAwC;AAExC,gDAAgD;AAEhD,MAAa,yBAA0B,SAAQ,iBAAS;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF;AAJD,8DAIC;AAED,MAAa,8BAA+B,SAAQ,iBAAS;IAC3D,YAAY,OAAgB;QAC1B,KAAK,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF;AAJD,wEAIC"}
@@ -0,0 +1,7 @@
1
+ export * from './packlets/devtools';
2
+ export * from './packlets/identity';
3
+ export * from './packlets/invitations';
4
+ export * from './packlets/services';
5
+ export * from './packlets/storage';
6
+ export * from './errors';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,UAAU,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2020 DXOS.org
4
+ //
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./packlets/devtools"), exports);
21
+ __exportStar(require("./packlets/identity"), exports);
22
+ __exportStar(require("./packlets/invitations"), exports);
23
+ __exportStar(require("./packlets/services"), exports);
24
+ __exportStar(require("./packlets/storage"), exports);
25
+ __exportStar(require("./errors"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,sDAAoC;AACpC,qDAAmC;AAEnC,2CAAyB"}
@@ -0,0 +1,5 @@
1
+ import { Event } from '@dxos/async';
2
+ export declare class DevtoolsHostEvents {
3
+ readonly ready: Event<void>;
4
+ }
5
+ //# sourceMappingURL=devtools-host-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-host-events.d.ts","sourceRoot":"","sources":["../../../../src/packlets/devtools/devtools-host-events.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,KAAK,cAAe;CAC9B"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DevtoolsHostEvents = void 0;
4
+ //
5
+ // Copyright 2021 DXOS.org
6
+ //
7
+ const async_1 = require("@dxos/async");
8
+ class DevtoolsHostEvents {
9
+ constructor() {
10
+ this.ready = new async_1.Event();
11
+ }
12
+ }
13
+ exports.DevtoolsHostEvents = DevtoolsHostEvents;
14
+ //# sourceMappingURL=devtools-host-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-host-events.js","sourceRoot":"","sources":["../../../../src/packlets/devtools/devtools-host-events.ts"],"names":[],"mappings":";;;AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AACF,uCAAoC;AAEpC,MAAa,kBAAkB;IAA/B;QACW,UAAK,GAAG,IAAI,aAAK,EAAE,CAAC;IAC/B,CAAC;CAAA;AAFD,gDAEC"}
@@ -0,0 +1,11 @@
1
+ import { Stream } from '@dxos/codec-protobuf';
2
+ import { FeedStore } from '@dxos/feed-store';
3
+ import { SubscribeToFeedsRequest, SubscribeToFeedsResponse, SubscribeToFeedBlocksRequest, SubscribeToFeedBlocksResponse } from '@dxos/protocols/proto/dxos/devtools/host';
4
+ import { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
5
+ export declare const subscribeToFeeds: ({ feedStore }: {
6
+ feedStore: FeedStore<FeedMessage>;
7
+ }, { feedKeys }: SubscribeToFeedsRequest) => Stream<SubscribeToFeedsResponse>;
8
+ export declare const subscribeToFeedBlocks: ({ feedStore }: {
9
+ feedStore: FeedStore<FeedMessage>;
10
+ }, { feedKey, maxBlocks }: SubscribeToFeedBlocksRequest) => Stream<SubscribeToFeedBlocksResponse>;
11
+ //# sourceMappingURL=feeds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/packlets/devtools/feeds.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAgB,SAAS,EAAe,MAAM,kBAAkB,CAAC;AAExE,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,eAAO,MAAM,gBAAgB;eACC,UAAU,WAAW,CAAC;iBACpC,uBAAuB,qCAiCnC,CAAC;AAEL,eAAO,MAAM,qBAAqB;eACJ,UAAU,WAAW,CAAC;2BACrB,4BAA4B,0CAkCvD,CAAC"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2021 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.subscribeToFeedBlocks = exports.subscribeToFeeds = void 0;
7
+ const async_1 = require("@dxos/async");
8
+ const codec_protobuf_1 = require("@dxos/codec-protobuf");
9
+ const feed_store_1 = require("@dxos/feed-store");
10
+ const keys_1 = require("@dxos/keys");
11
+ const util_1 = require("@dxos/util");
12
+ const subscribeToFeeds = ({ feedStore }, { feedKeys }) => new codec_protobuf_1.Stream(({ next }) => {
13
+ if ((feedKeys === null || feedKeys === void 0 ? void 0 : feedKeys.length) === 0) {
14
+ return;
15
+ }
16
+ const feedMap = new util_1.ComplexMap(keys_1.PublicKey.hash);
17
+ const subscriptions = new async_1.EventSubscriptions();
18
+ const update = async () => {
19
+ const feeds = await feedStore.feeds;
20
+ feeds
21
+ .filter((feed) => !(feedKeys === null || feedKeys === void 0 ? void 0 : feedKeys.length) || feedKeys.some((feedKey) => feedKey.equals(feed.key)))
22
+ .forEach((feed) => {
23
+ if (!feedMap.has(feed.key)) {
24
+ feedMap.set(feed.key, feed);
25
+ feed.on('close', update); // TODO(mykola): Unsubscribe.
26
+ }
27
+ });
28
+ next({
29
+ feeds: Array.from(feedMap.values()).map((feed) => ({ feedKey: feed.key, length: feed.properties.length }))
30
+ });
31
+ };
32
+ setImmediate(async () => {
33
+ subscriptions.add(feedStore.feedOpened.on(update));
34
+ await update();
35
+ });
36
+ return () => {
37
+ subscriptions.clear();
38
+ };
39
+ });
40
+ exports.subscribeToFeeds = subscribeToFeeds;
41
+ const subscribeToFeedBlocks = ({ feedStore }, { feedKey, maxBlocks = 10 }) => new codec_protobuf_1.Stream(({ next }) => {
42
+ if (!feedKey) {
43
+ return;
44
+ }
45
+ const update = async (feed) => {
46
+ const iterator = new feed_store_1.FeedIterator(feed);
47
+ await iterator.open();
48
+ const blocks = [];
49
+ for await (const block of iterator) {
50
+ blocks.push(block);
51
+ if (blocks.length >= feed.properties.length) {
52
+ break;
53
+ }
54
+ }
55
+ next({
56
+ blocks: blocks.slice(-maxBlocks)
57
+ });
58
+ await iterator.close();
59
+ };
60
+ setImmediate(async () => {
61
+ const feed = await feedStore.getFeed(feedKey);
62
+ if (!feed) {
63
+ return;
64
+ }
65
+ feed.on('append', () => update(feed)); // TODO(mykola): Unsubscribe.
66
+ feed.on('truncate', () => update(feed)); // TODO(mykola): Unsubscribe.
67
+ await update(feed);
68
+ });
69
+ return () => { };
70
+ });
71
+ exports.subscribeToFeedBlocks = subscribeToFeedBlocks;
72
+ //# sourceMappingURL=feeds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../../../src/packlets/devtools/feeds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './devtools-host-events';
2
+ export * from './feeds';
3
+ export * from './network';
4
+ export * from './spaces';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/packlets/devtools/index.ts"],"names":[],"mappings":"AAIA,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2022 DXOS.org
4
+ //
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./devtools-host-events"), exports);
21
+ __exportStar(require("./feeds"), exports);
22
+ __exportStar(require("./network"), exports);
23
+ __exportStar(require("./spaces"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/packlets/devtools/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,yDAAuC;AACvC,0CAAwB;AACxB,4CAA0B;AAC1B,2CAAyB"}
@@ -0,0 +1,19 @@
1
+ import { Stream } from '@dxos/codec-protobuf';
2
+ import { NetworkManager } from '@dxos/network-manager';
3
+ import { GetNetworkPeersRequest, GetNetworkPeersResponse, SubscribeToNetworkTopicsResponse, SubscribeToSignalStatusResponse, SubscribeToSignalTraceResponse, SubscribeToSwarmInfoResponse } from '@dxos/protocols/proto/dxos/devtools/host';
4
+ export declare const subscribeToNetworkStatus: ({ networkManager }: {
5
+ networkManager: NetworkManager;
6
+ }) => Stream<SubscribeToSignalStatusResponse>;
7
+ export declare const subscribeToSignalTrace: ({ networkManager }: {
8
+ networkManager: NetworkManager;
9
+ }) => Stream<SubscribeToSignalTraceResponse>;
10
+ export declare const subscribeToNetworkTopics: ({ networkManager }: {
11
+ networkManager: NetworkManager;
12
+ }) => Stream<SubscribeToNetworkTopicsResponse>;
13
+ export declare const subscribeToSwarmInfo: ({ networkManager }: {
14
+ networkManager: NetworkManager;
15
+ }) => Stream<SubscribeToSwarmInfoResponse>;
16
+ export declare const getNetworkPeers: ({ networkManager }: {
17
+ networkManager: NetworkManager;
18
+ }, request: GetNetworkPeersRequest) => GetNetworkPeersResponse;
19
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../src/packlets/devtools/network.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,gCAAgC,EAChC,+BAA+B,EAC/B,8BAA8B,EAC9B,4BAA4B,EAC7B,MAAM,0CAA0C,CAAC;AAElD,eAAO,MAAM,wBAAwB;oBAA0C,cAAc;6CAazF,CAAC;AAEL,eAAO,MAAM,sBAAsB;oBAA0C,cAAc;4CAQvF,CAAC;AAEL,eAAO,MAAM,wBAAwB;oBAA0C,cAAc;8CAiBzF,CAAC;AAEL,eAAO,MAAM,oBAAoB;oBAA0C,cAAc;0CAUrF,CAAC;AAEL,eAAO,MAAM,eAAe;oBACY,cAAc;YAC3C,sBAAsB,KAC9B,uBAYF,CAAC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2020 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getNetworkPeers = exports.subscribeToSwarmInfo = exports.subscribeToNetworkTopics = exports.subscribeToSignalTrace = exports.subscribeToNetworkStatus = void 0;
7
+ const codec_protobuf_1 = require("@dxos/codec-protobuf");
8
+ const keys_1 = require("@dxos/keys");
9
+ const subscribeToNetworkStatus = ({ networkManager }) => new codec_protobuf_1.Stream(({ next, close }) => {
10
+ const update = () => {
11
+ try {
12
+ const status = networkManager.signal.getStatus();
13
+ next({ servers: status });
14
+ }
15
+ catch (err) {
16
+ close(err);
17
+ }
18
+ };
19
+ networkManager.signal.statusChanged.on(update);
20
+ update();
21
+ });
22
+ exports.subscribeToNetworkStatus = subscribeToNetworkStatus;
23
+ const subscribeToSignalTrace = ({ networkManager }) => new codec_protobuf_1.Stream(({ next }) => {
24
+ next({ events: [] });
25
+ const trace = [];
26
+ networkManager.signal.commandTrace.on((msg) => {
27
+ trace.push(msg);
28
+ next({ events: trace.map((msg) => JSON.stringify(msg)) });
29
+ });
30
+ });
31
+ exports.subscribeToSignalTrace = subscribeToSignalTrace;
32
+ const subscribeToNetworkTopics = ({ networkManager }) => new codec_protobuf_1.Stream(({ next, close }) => {
33
+ const update = () => {
34
+ try {
35
+ const topics = networkManager.topics;
36
+ const labeledTopics = topics.map((topic) => {
37
+ var _a, _b;
38
+ return ({
39
+ topic,
40
+ label: (_b = (_a = networkManager.getSwarm(topic)) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : topic.toHex()
41
+ });
42
+ });
43
+ next({ topics: labeledTopics });
44
+ }
45
+ catch (err) {
46
+ close(err);
47
+ }
48
+ };
49
+ networkManager.topicsUpdated.on(update);
50
+ update();
51
+ });
52
+ exports.subscribeToNetworkTopics = subscribeToNetworkTopics;
53
+ const subscribeToSwarmInfo = ({ networkManager }) => new codec_protobuf_1.Stream(({ next }) => {
54
+ var _a;
55
+ const update = () => {
56
+ var _a;
57
+ const info = (_a = networkManager.connectionLog) === null || _a === void 0 ? void 0 : _a.swarms;
58
+ if (info) {
59
+ next({ data: info });
60
+ }
61
+ };
62
+ (_a = networkManager.connectionLog) === null || _a === void 0 ? void 0 : _a.update.on(update);
63
+ update();
64
+ });
65
+ exports.subscribeToSwarmInfo = subscribeToSwarmInfo;
66
+ const getNetworkPeers = ({ networkManager }, request) => {
67
+ if (!request.topic) {
68
+ throw new Error('Expected a network topic');
69
+ }
70
+ const map = networkManager.getSwarmMap(keys_1.PublicKey.from(request.topic));
71
+ return {
72
+ peers: map === null || map === void 0 ? void 0 : map.peers.map((peer) => ({
73
+ ...peer,
74
+ connections: peer.connections.map((connection) => connection.asUint8Array())
75
+ }))
76
+ };
77
+ };
78
+ exports.getNetworkPeers = getNetworkPeers;
79
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/packlets/devtools/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Stream } from '@dxos/codec-protobuf';
2
+ import { SubscribeToPartiesRequest, SubscribeToPartiesResponse } from '@dxos/protocols/proto/dxos/devtools/host';
3
+ import { ServiceContext } from '../services';
4
+ export declare const subscribeToSpaces: (context: ServiceContext, { partyKeys }: SubscribeToPartiesRequest) => Stream<SubscribeToPartiesResponse>;
5
+ //# sourceMappingURL=spaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spaces.d.ts","sourceRoot":"","sources":["../../../../src/packlets/devtools/spaces.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAGjH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,iBAAiB,YAAa,cAAc,iBAAsB,yBAAyB,uCAsCpG,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2020 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.subscribeToSpaces = void 0;
7
+ const codec_protobuf_1 = require("@dxos/codec-protobuf");
8
+ const subscribeToSpaces = (context, { partyKeys = [] }) => new codec_protobuf_1.Stream(({ next }) => {
9
+ let unsubscribe;
10
+ const update = async () => {
11
+ const parties = [...context.spaceManager.spaces.values()];
12
+ const filteredParties = parties.filter((party) => !(partyKeys === null || partyKeys === void 0 ? void 0 : partyKeys.length) || partyKeys.some((partyKey) => partyKey.equals(party.key)));
13
+ next({
14
+ parties: filteredParties.map((party) => {
15
+ const partyMetadata = context.metadataStore.parties.find((partyMetadata) => partyMetadata.key.equals(party.key));
16
+ return {
17
+ key: party.key,
18
+ isOpen: party.isOpen,
19
+ timeframe: partyMetadata.latestTimeframe,
20
+ genesisFeed: party.genesisFeedKey,
21
+ controlFeed: party.controlFeedKey,
22
+ dataFeed: party.dataFeedKey
23
+ };
24
+ })
25
+ });
26
+ };
27
+ setImmediate(async () => {
28
+ await context.initialized.wait();
29
+ unsubscribe = context.spaceManager.update.on(() => update());
30
+ // Send initial parties.
31
+ await update();
32
+ });
33
+ return () => {
34
+ unsubscribe === null || unsubscribe === void 0 ? void 0 : unsubscribe();
35
+ };
36
+ });
37
+ exports.subscribeToSpaces = subscribeToSpaces;
38
+ //# sourceMappingURL=spaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spaces.js","sourceRoot":"","sources":["../../../../src/packlets/devtools/spaces.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,yDAA8C;AAOvC,MAAM,iBAAiB,GAAG,CAAC,OAAuB,EAAE,EAAE,SAAS,GAAG,EAAE,EAA6B,EAAE,EAAE,CAC1G,IAAI,uBAAM,CAA6B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,IAAI,WAAuB,CAAC;IAE5B,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,MAAM,OAAO,GAAY,CAAC,GAAG,OAAO,CAAC,YAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAC1F,CAAC;QAEF,IAAI,CAAC;YACH,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAA4B,EAAE,EAAE,CACxF,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CACpC,CAAC;gBACF,OAAO;oBACL,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,SAAS,EAAE,aAAc,CAAC,eAAgB;oBAC1C,WAAW,EAAE,KAAK,CAAC,cAAc;oBACjC,WAAW,EAAE,KAAK,CAAC,cAAc;oBACjC,QAAQ,EAAE,KAAK,CAAC,WAAW;iBAC5B,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,YAAY,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACjC,WAAW,GAAG,OAAO,CAAC,YAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9D,wBAAwB;QACxB,MAAM,MAAM,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,EAAE;QACV,WAAW,aAAX,WAAW,uBAAX,WAAW,EAAI,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAtCQ,QAAA,iBAAiB,qBAsCzB"}
@@ -0,0 +1,7 @@
1
+ import { CredentialSigner } from '@dxos/credentials';
2
+ import { AuthProvider, AuthVerifier } from '@dxos/echo-db';
3
+ import { PublicKey } from '@dxos/keys';
4
+ import { ComplexSet } from '@dxos/util';
5
+ export declare const createHaloAuthProvider: (signer: CredentialSigner) => AuthProvider;
6
+ export declare const createHaloAuthVerifier: (getDeviceSet: () => ComplexSet<PublicKey>) => AuthVerifier;
7
+ //# sourceMappingURL=authenticator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticator.d.ts","sourceRoot":"","sources":["../../../../src/packlets/identity/authenticator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,sBAAsB,WACxB,gBAAgB,KAAG,YAW3B,CAAC;AAEJ,eAAO,MAAM,sBAAsB,iBAClB,MAAM,WAAW,SAAS,CAAC,KAAG,YAsB5C,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2022 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createHaloAuthVerifier = exports.createHaloAuthProvider = void 0;
7
+ const credentials_1 = require("@dxos/credentials");
8
+ const log_1 = require("@dxos/log");
9
+ const protocols_1 = require("@dxos/protocols");
10
+ const createHaloAuthProvider = (signer) => async (nonce) => {
11
+ const credential = await signer.createCredential({
12
+ assertion: {
13
+ '@type': 'dxos.halo.credentials.Auth'
14
+ },
15
+ subject: signer.getIssuer(),
16
+ nonce
17
+ });
18
+ return protocols_1.schema.getCodecForType('dxos.halo.credentials.Credential').encode(credential);
19
+ };
20
+ exports.createHaloAuthProvider = createHaloAuthProvider;
21
+ const createHaloAuthVerifier = (getDeviceSet) => async (nonce, auth) => {
22
+ const credential = protocols_1.schema.getCodecForType('dxos.halo.credentials.Credential').decode(auth);
23
+ const deviceSet = getDeviceSet();
24
+ const result = await (0, credentials_1.verifyCredential)(credential);
25
+ if (result.kind === 'fail') {
26
+ (0, log_1.log)('Invalid credential', { result }, { file: "packages/sdk/client-services/src/packlets/identity/authenticator.ts", line: 34 });
27
+ return false;
28
+ }
29
+ if (!credential.proof.nonce || !Buffer.from(nonce).equals(credential.proof.nonce)) {
30
+ (0, log_1.log)('Invalid nonce', { nonce, credential }, { file: "packages/sdk/client-services/src/packlets/identity/authenticator.ts", line: 39 });
31
+ return false;
32
+ }
33
+ if (!deviceSet.has(credential.issuer)) {
34
+ (0, log_1.log)('Device not in allowed set', {}, { file: "packages/sdk/client-services/src/packlets/identity/authenticator.ts", line: 44 });
35
+ return false;
36
+ }
37
+ return true;
38
+ };
39
+ exports.createHaloAuthVerifier = createHaloAuthVerifier;
40
+ //# sourceMappingURL=authenticator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticator.js","sourceRoot":"","sources":["../../../../src/packlets/identity/authenticator.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,mDAAuE;AAGvE,mCAAgC;AAChC,+CAAyC;AAGlC,MAAM,sBAAsB,GACjC,CAAC,MAAwB,EAAgB,EAAE,CAC3C,KAAK,EAAE,KAAK,EAAE,EAAE;IACd,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;QAC/C,SAAS,EAAE;YACT,OAAO,EAAE,4BAA4B;SACtC;QACD,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE;QAC3B,KAAK;KACN,CAAC,CAAC;IAEH,OAAO,kBAAM,CAAC,eAAe,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACvF,CAAC,CAAC;AAZS,QAAA,sBAAsB,0BAY/B;AAEG,MAAM,sBAAsB,GACjC,CAAC,YAAyC,EAAgB,EAAE,CAC5D,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IACpB,MAAM,UAAU,GAAG,kBAAM,CAAC,eAAe,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAgB,EAAC,UAAU,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;QAC1B,IAAA,SAAG,EAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,4FAAC,CAAC;QACtC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACjF,IAAA,SAAG,EAAC,eAAe,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,4FAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QACrC,IAAA,SAAG,EAAC,2BAA2B,gGAAC,CAAC;QACjC,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAvBS,QAAA,sBAAsB,0BAuB/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=authenticator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticator.test.d.ts","sourceRoot":"","sources":["../../../../src/packlets/identity/authenticator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2022 DXOS.org
4
+ //
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const assert_1 = __importDefault(require("assert"));
10
+ const expect_1 = __importDefault(require("expect"));
11
+ const credentials_1 = require("@dxos/credentials");
12
+ const keyring_1 = require("@dxos/keyring");
13
+ const keys_1 = require("@dxos/keys");
14
+ const util_1 = require("@dxos/util");
15
+ const authenticator_1 = require("./authenticator");
16
+ describe('identity/authenticator', function () {
17
+ it('verifies credentials', async function () {
18
+ if (mochaExecutor.environment !== 'nodejs') {
19
+ this.skip();
20
+ }
21
+ const keyring = new keyring_1.Keyring();
22
+ const deviceKey = await keyring.createKey();
23
+ const signer = (0, credentials_1.createCredentialSignerWithKey)(keyring, deviceKey);
24
+ const authProvider = (0, authenticator_1.createHaloAuthProvider)(signer);
25
+ const authVerifier = (0, authenticator_1.createHaloAuthVerifier)(() => new util_1.ComplexSet(keys_1.PublicKey.hash, [deviceKey]));
26
+ const nonce = new Uint8Array([2, 1, 3, 7]);
27
+ const credential = await authProvider(nonce);
28
+ (0, assert_1.default)(credential);
29
+ (0, expect_1.default)(await authVerifier(nonce, credential)).toBeTruthy();
30
+ });
31
+ });
32
+ //# sourceMappingURL=authenticator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticator.test.js","sourceRoot":"","sources":["../../../../src/packlets/identity/authenticator.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,oDAA4B;AAC5B,oDAA4B;AAE5B,mDAAkE;AAClE,2CAAwC;AACxC,qCAAuC;AACvC,qCAAwC;AAExC,mDAAiF;AAEjF,QAAQ,CAAC,wBAAwB,EAAE;IACjC,EAAE,CAAC,sBAAsB,EAAE,KAAK;QAC9B,IAAI,aAAa,CAAC,WAAW,KAAK,QAAQ,EAAE;YAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QAED,MAAM,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAA,2CAA6B,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,IAAA,sCAAsB,EAAC,MAAM,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,IAAA,sCAAsB,EAAC,GAAG,EAAE,CAAC,IAAI,iBAAU,CAAC,gBAAS,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAE/F,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAA,gBAAM,EAAC,UAAU,CAAC,CAAC;QACnB,IAAA,gBAAM,EAAC,MAAM,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Event } from '@dxos/async';
2
+ import { MetadataStore } from '@dxos/echo-db';
3
+ import { FeedStore } from '@dxos/feed-store';
4
+ import { Keyring } from '@dxos/keyring';
5
+ import { PublicKey } from '@dxos/keys';
6
+ import { ModelFactory } from '@dxos/model-factory';
7
+ import { NetworkManager } from '@dxos/network-manager';
8
+ import { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
9
+ import { Identity } from '../identity';
10
+ export declare type JoinIdentityParams = {
11
+ identityKey: PublicKey;
12
+ haloSpaceKey: PublicKey;
13
+ haloGenesisFeedKey: PublicKey;
14
+ };
15
+ export declare class IdentityManager {
16
+ private readonly _metadataStore;
17
+ private readonly _feedStore;
18
+ private readonly _keyring;
19
+ private readonly _networkManager;
20
+ private readonly _modelFactory;
21
+ readonly stateUpdate: Event<void>;
22
+ private _identity?;
23
+ constructor(_metadataStore: MetadataStore, _feedStore: FeedStore<FeedMessage>, _keyring: Keyring, _networkManager: NetworkManager, _modelFactory: ModelFactory);
24
+ get identity(): Identity | undefined;
25
+ open(): Promise<void>;
26
+ close(): Promise<void>;
27
+ private _constructIdentity;
28
+ private _constructSpace;
29
+ createIdentity(): Promise<Identity>;
30
+ /**
31
+ * Accept an existing identity. Expects it's device key to be authorized.
32
+ */
33
+ acceptIdentity(params: JoinIdentityParams): Promise<Identity>;
34
+ }
35
+ //# sourceMappingURL=identity-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-manager.d.ts","sourceRoot":"","sources":["../../../../src/packlets/identity/identity-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAGL,aAAa,EAKd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAU,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQvC,oBAAY,kBAAkB,GAAG;IAC/B,WAAW,EAAE,SAAS,CAAC;IACvB,YAAY,EAAE,SAAS,CAAC;IACxB,kBAAkB,EAAE,SAAS,CAAC;CAC/B,CAAC;AAGF,qBAAa,eAAe;IAQxB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAXhC,QAAQ,CAAC,WAAW,cAAe;IAEnC,OAAO,CAAC,SAAS,CAAC,CAAW;gBAKV,cAAc,EAAE,aAAa,EAC7B,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,EAClC,QAAQ,EAAE,OAAO,EACjB,eAAe,EAAE,cAAc,EAC/B,aAAa,EAAE,YAAY;IAG9C,IAAI,QAAQ,yBAEX;IAEK,IAAI;IAYJ,KAAK;YAIG,kBAAkB;YAsBlB,eAAe;IA0BvB,cAAc;IA2DpB;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,kBAAkB;CAoBhD"}