@dxos/plugin-client 0.8.4-main.c1de068 → 0.8.4-main.c85a9c8dae

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 (479) hide show
  1. package/dist/lib/browser/DevicesContainer-46MEG3F5.mjs +268 -0
  2. package/dist/lib/browser/DevicesContainer-46MEG3F5.mjs.map +7 -0
  3. package/dist/lib/browser/JoinDialog-2RCYK4O5.mjs +59 -0
  4. package/dist/lib/browser/JoinDialog-2RCYK4O5.mjs.map +7 -0
  5. package/dist/lib/browser/ProfileContainer-XYRCOQ5I.mjs +171 -0
  6. package/dist/lib/browser/ProfileContainer-XYRCOQ5I.mjs.map +7 -0
  7. package/dist/lib/browser/RecoveryCodeDialog-EX2CLFND.mjs +60 -0
  8. package/dist/lib/browser/RecoveryCodeDialog-EX2CLFND.mjs.map +7 -0
  9. package/dist/lib/browser/RecoveryCredentialsContainer-RWTEIHOB.mjs +57 -0
  10. package/dist/lib/browser/RecoveryCredentialsContainer-RWTEIHOB.mjs.map +7 -0
  11. package/dist/lib/browser/ResetDialog-W24FOWBQ.mjs +52 -0
  12. package/dist/lib/browser/ResetDialog-W24FOWBQ.mjs.map +7 -0
  13. package/dist/lib/browser/app-graph-builder-QJWFLYZE.mjs +121 -0
  14. package/dist/lib/browser/app-graph-builder-QJWFLYZE.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-4XYOOXAH.mjs +18 -0
  16. package/dist/lib/browser/chunk-4XYOOXAH.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-DPAXDXMK.mjs +283 -0
  18. package/dist/lib/browser/chunk-DPAXDXMK.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-N2GMSVDQ.mjs +15 -0
  20. package/dist/lib/browser/chunk-N2GMSVDQ.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-VYX3ROUX.mjs +15 -0
  22. package/dist/lib/browser/chunk-VYX3ROUX.mjs.map +7 -0
  23. package/dist/lib/browser/cli/index.mjs +1051 -0
  24. package/dist/lib/browser/cli/index.mjs.map +7 -0
  25. package/dist/lib/browser/client-Z25GQ5YC.mjs +86 -0
  26. package/dist/lib/browser/client-Z25GQ5YC.mjs.map +7 -0
  27. package/dist/lib/browser/index.mjs +79 -82
  28. package/dist/lib/browser/index.mjs.map +4 -4
  29. package/dist/lib/browser/meta.json +1 -1
  30. package/dist/lib/browser/migrations-HLHRMOW6.mjs +25 -0
  31. package/dist/lib/browser/migrations-HLHRMOW6.mjs.map +7 -0
  32. package/dist/lib/browser/operation-resolver-6QW3BKA5.mjs +299 -0
  33. package/dist/lib/browser/operation-resolver-6QW3BKA5.mjs.map +7 -0
  34. package/dist/lib/browser/react-context-E7TAJMDK.mjs +26 -0
  35. package/dist/lib/browser/react-context-E7TAJMDK.mjs.map +7 -0
  36. package/dist/lib/browser/react-surface-L5A2LBFE.mjs +77 -0
  37. package/dist/lib/browser/react-surface-L5A2LBFE.mjs.map +7 -0
  38. package/dist/lib/browser/schema-defs-5WDZWVEI.mjs +28 -0
  39. package/dist/lib/browser/schema-defs-5WDZWVEI.mjs.map +7 -0
  40. package/dist/lib/browser/types/index.mjs +10 -4
  41. package/dist/lib/node-esm/DevicesContainer-WQ3DQA45.mjs +269 -0
  42. package/dist/lib/node-esm/DevicesContainer-WQ3DQA45.mjs.map +7 -0
  43. package/dist/lib/node-esm/JoinDialog-KLTNJY5F.mjs +60 -0
  44. package/dist/lib/node-esm/JoinDialog-KLTNJY5F.mjs.map +7 -0
  45. package/dist/lib/node-esm/ProfileContainer-XI425QK5.mjs +172 -0
  46. package/dist/lib/node-esm/ProfileContainer-XI425QK5.mjs.map +7 -0
  47. package/dist/lib/node-esm/RecoveryCodeDialog-AISRNJUM.mjs +61 -0
  48. package/dist/lib/node-esm/RecoveryCodeDialog-AISRNJUM.mjs.map +7 -0
  49. package/dist/lib/node-esm/RecoveryCredentialsContainer-3TKQRPQK.mjs +58 -0
  50. package/dist/lib/node-esm/RecoveryCredentialsContainer-3TKQRPQK.mjs.map +7 -0
  51. package/dist/lib/node-esm/ResetDialog-GGBWSQZO.mjs +54 -0
  52. package/dist/lib/node-esm/ResetDialog-GGBWSQZO.mjs.map +7 -0
  53. package/dist/lib/node-esm/app-graph-builder-6JD6BZAI.mjs +122 -0
  54. package/dist/lib/node-esm/app-graph-builder-6JD6BZAI.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-H2CCMM4Z.mjs +20 -0
  56. package/dist/lib/node-esm/chunk-H2CCMM4Z.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-HKSNTZF5.mjs +16 -0
  58. package/dist/lib/node-esm/chunk-HKSNTZF5.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-RGULICLJ.mjs +17 -0
  60. package/dist/lib/node-esm/chunk-RGULICLJ.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-VEUNEDN5.mjs +284 -0
  62. package/dist/lib/node-esm/chunk-VEUNEDN5.mjs.map +7 -0
  63. package/dist/lib/node-esm/cli/index.mjs +1052 -0
  64. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  65. package/dist/lib/node-esm/client-5AIPYSBT.mjs +87 -0
  66. package/dist/lib/node-esm/client-5AIPYSBT.mjs.map +7 -0
  67. package/dist/lib/node-esm/index.mjs +79 -82
  68. package/dist/lib/node-esm/index.mjs.map +4 -4
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/migrations-O5KG2GGN.mjs +26 -0
  71. package/dist/lib/node-esm/migrations-O5KG2GGN.mjs.map +7 -0
  72. package/dist/lib/node-esm/operation-resolver-GSH7AOTZ.mjs +300 -0
  73. package/dist/lib/node-esm/operation-resolver-GSH7AOTZ.mjs.map +7 -0
  74. package/dist/lib/node-esm/react-context-OMJSBS23.mjs +27 -0
  75. package/dist/lib/node-esm/react-context-OMJSBS23.mjs.map +7 -0
  76. package/dist/lib/node-esm/react-surface-N3BSPMMX.mjs +78 -0
  77. package/dist/lib/node-esm/react-surface-N3BSPMMX.mjs.map +7 -0
  78. package/dist/lib/node-esm/schema-defs-ENOYSDP3.mjs +29 -0
  79. package/dist/lib/node-esm/schema-defs-ENOYSDP3.mjs.map +7 -0
  80. package/dist/lib/node-esm/types/index.mjs +10 -4
  81. package/dist/types/src/ClientPlugin.d.ts +2 -1
  82. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  84. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  85. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  86. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  87. package/dist/types/src/capabilities/client/client.d.ts +8 -0
  88. package/dist/types/src/capabilities/client/client.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/client/index.d.ts +18 -0
  90. package/dist/types/src/capabilities/client/index.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/index.d.ts +7 -19
  92. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/migrations/index.d.ts +3 -0
  94. package/dist/types/src/capabilities/migrations/index.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/migrations/migrations.d.ts +5 -0
  96. package/dist/types/src/capabilities/migrations/migrations.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/operation-resolver/index.d.ts +5 -0
  98. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +8 -0
  100. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/react-context/index.d.ts +7 -0
  102. package/dist/types/src/capabilities/react-context/index.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/react-context/react-context.d.ts +10 -0
  104. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
  106. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +9 -0
  108. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/schema-defs/index.d.ts +3 -0
  110. package/dist/types/src/capabilities/schema-defs/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts +5 -0
  112. package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts.map +1 -0
  113. package/dist/types/src/cli/commands/config/index.d.ts +5 -0
  114. package/dist/types/src/cli/commands/config/index.d.ts.map +1 -0
  115. package/dist/types/src/cli/commands/config/view.d.ts +5 -0
  116. package/dist/types/src/cli/commands/config/view.d.ts.map +1 -0
  117. package/dist/types/src/cli/commands/device/index.d.ts +7 -0
  118. package/dist/types/src/cli/commands/device/index.d.ts.map +1 -0
  119. package/dist/types/src/cli/commands/device/info/index.d.ts +2 -0
  120. package/dist/types/src/cli/commands/device/info/index.d.ts.map +1 -0
  121. package/dist/types/src/cli/commands/device/info/info.d.ts +7 -0
  122. package/dist/types/src/cli/commands/device/info/info.d.ts.map +1 -0
  123. package/dist/types/src/cli/commands/device/info/info.test.d.ts +2 -0
  124. package/dist/types/src/cli/commands/device/info/info.test.d.ts.map +1 -0
  125. package/dist/types/src/cli/commands/device/list/index.d.ts +2 -0
  126. package/dist/types/src/cli/commands/device/list/index.d.ts.map +1 -0
  127. package/dist/types/src/cli/commands/device/list/list.d.ts +7 -0
  128. package/dist/types/src/cli/commands/device/list/list.d.ts.map +1 -0
  129. package/dist/types/src/cli/commands/device/list/list.test.d.ts +2 -0
  130. package/dist/types/src/cli/commands/device/list/list.test.d.ts.map +1 -0
  131. package/dist/types/src/cli/commands/device/update/index.d.ts +2 -0
  132. package/dist/types/src/cli/commands/device/update/index.d.ts.map +1 -0
  133. package/dist/types/src/cli/commands/device/update/update.d.ts +11 -0
  134. package/dist/types/src/cli/commands/device/update/update.d.ts.map +1 -0
  135. package/dist/types/src/cli/commands/device/util.d.ts +16 -0
  136. package/dist/types/src/cli/commands/device/util.d.ts.map +1 -0
  137. package/dist/types/src/cli/commands/edge/index.d.ts +5 -0
  138. package/dist/types/src/cli/commands/edge/index.d.ts.map +1 -0
  139. package/dist/types/src/cli/commands/edge/status.d.ts +7 -0
  140. package/dist/types/src/cli/commands/edge/status.d.ts.map +1 -0
  141. package/dist/types/src/cli/commands/halo/create/create.d.ts +15 -0
  142. package/dist/types/src/cli/commands/halo/create/create.d.ts.map +1 -0
  143. package/dist/types/src/cli/commands/halo/create/create.test.d.ts +2 -0
  144. package/dist/types/src/cli/commands/halo/create/create.test.d.ts.map +1 -0
  145. package/dist/types/src/cli/commands/halo/create/index.d.ts +2 -0
  146. package/dist/types/src/cli/commands/halo/create/index.d.ts.map +1 -0
  147. package/dist/types/src/cli/commands/halo/credential/add/add.d.ts +13 -0
  148. package/dist/types/src/cli/commands/halo/credential/add/add.d.ts.map +1 -0
  149. package/dist/types/src/cli/commands/halo/credential/add/index.d.ts +2 -0
  150. package/dist/types/src/cli/commands/halo/credential/add/index.d.ts.map +1 -0
  151. package/dist/types/src/cli/commands/halo/credential/index.d.ts +12 -0
  152. package/dist/types/src/cli/commands/halo/credential/index.d.ts.map +1 -0
  153. package/dist/types/src/cli/commands/halo/credential/list/index.d.ts +2 -0
  154. package/dist/types/src/cli/commands/halo/credential/list/index.d.ts.map +1 -0
  155. package/dist/types/src/cli/commands/halo/credential/list/list.d.ts +19 -0
  156. package/dist/types/src/cli/commands/halo/credential/list/list.d.ts.map +1 -0
  157. package/dist/types/src/cli/commands/halo/credential/list/list.test.d.ts +2 -0
  158. package/dist/types/src/cli/commands/halo/credential/list/list.test.d.ts.map +1 -0
  159. package/dist/types/src/cli/commands/halo/identity/identity.d.ts +7 -0
  160. package/dist/types/src/cli/commands/halo/identity/identity.d.ts.map +1 -0
  161. package/dist/types/src/cli/commands/halo/identity/identity.test.d.ts +2 -0
  162. package/dist/types/src/cli/commands/halo/identity/identity.test.d.ts.map +1 -0
  163. package/dist/types/src/cli/commands/halo/identity/index.d.ts +2 -0
  164. package/dist/types/src/cli/commands/halo/identity/index.d.ts.map +1 -0
  165. package/dist/types/src/cli/commands/halo/index.d.ts +3 -0
  166. package/dist/types/src/cli/commands/halo/index.d.ts.map +1 -0
  167. package/dist/types/src/cli/commands/halo/join/index.d.ts +2 -0
  168. package/dist/types/src/cli/commands/halo/join/index.d.ts.map +1 -0
  169. package/dist/types/src/cli/commands/halo/join/join.d.ts +8 -0
  170. package/dist/types/src/cli/commands/halo/join/join.d.ts.map +1 -0
  171. package/dist/types/src/cli/commands/halo/join/join.test.d.ts +2 -0
  172. package/dist/types/src/cli/commands/halo/join/join.test.d.ts.map +1 -0
  173. package/dist/types/src/cli/commands/halo/keys/index.d.ts +2 -0
  174. package/dist/types/src/cli/commands/halo/keys/index.d.ts.map +1 -0
  175. package/dist/types/src/cli/commands/halo/keys/keys.d.ts +7 -0
  176. package/dist/types/src/cli/commands/halo/keys/keys.d.ts.map +1 -0
  177. package/dist/types/src/cli/commands/halo/keys/keys.test.d.ts +2 -0
  178. package/dist/types/src/cli/commands/halo/keys/keys.test.d.ts.map +1 -0
  179. package/dist/types/src/cli/commands/halo/recover/index.d.ts +2 -0
  180. package/dist/types/src/cli/commands/halo/recover/index.d.ts.map +1 -0
  181. package/dist/types/src/cli/commands/halo/recover/recover.d.ts +7 -0
  182. package/dist/types/src/cli/commands/halo/recover/recover.d.ts.map +1 -0
  183. package/dist/types/src/cli/commands/halo/recover/recover.test.d.ts +2 -0
  184. package/dist/types/src/cli/commands/halo/recover/recover.test.d.ts.map +1 -0
  185. package/dist/types/src/cli/commands/halo/seed/index.d.ts +2 -0
  186. package/dist/types/src/cli/commands/halo/seed/index.d.ts.map +1 -0
  187. package/dist/types/src/cli/commands/halo/seed/seed.d.ts +7 -0
  188. package/dist/types/src/cli/commands/halo/seed/seed.d.ts.map +1 -0
  189. package/dist/types/src/cli/commands/halo/share/index.d.ts +2 -0
  190. package/dist/types/src/cli/commands/halo/share/index.d.ts.map +1 -0
  191. package/dist/types/src/cli/commands/halo/share/share.d.ts +15 -0
  192. package/dist/types/src/cli/commands/halo/share/share.d.ts.map +1 -0
  193. package/dist/types/src/cli/commands/halo/update/index.d.ts +2 -0
  194. package/dist/types/src/cli/commands/halo/update/index.d.ts.map +1 -0
  195. package/dist/types/src/cli/commands/halo/update/update.d.ts +11 -0
  196. package/dist/types/src/cli/commands/halo/update/update.d.ts.map +1 -0
  197. package/dist/types/src/cli/commands/halo/update/update.test.d.ts +2 -0
  198. package/dist/types/src/cli/commands/halo/update/update.test.d.ts.map +1 -0
  199. package/dist/types/src/cli/commands/halo/util.d.ts +13 -0
  200. package/dist/types/src/cli/commands/halo/util.d.ts.map +1 -0
  201. package/dist/types/src/cli/commands/index.d.ts +6 -0
  202. package/dist/types/src/cli/commands/index.d.ts.map +1 -0
  203. package/dist/types/src/cli/commands/profile/create.d.ts +9 -0
  204. package/dist/types/src/cli/commands/profile/create.d.ts.map +1 -0
  205. package/dist/types/src/cli/commands/profile/delete.d.ts +8 -0
  206. package/dist/types/src/cli/commands/profile/delete.d.ts.map +1 -0
  207. package/dist/types/src/cli/commands/profile/import.d.ts +17 -0
  208. package/dist/types/src/cli/commands/profile/import.d.ts.map +1 -0
  209. package/dist/types/src/cli/commands/profile/index.d.ts +19 -0
  210. package/dist/types/src/cli/commands/profile/index.d.ts.map +1 -0
  211. package/dist/types/src/cli/commands/profile/inspect.d.ts +13 -0
  212. package/dist/types/src/cli/commands/profile/inspect.d.ts.map +1 -0
  213. package/dist/types/src/cli/commands/profile/list.d.ts +6 -0
  214. package/dist/types/src/cli/commands/profile/list.d.ts.map +1 -0
  215. package/dist/types/src/cli/commands/profile/reset.d.ts +8 -0
  216. package/dist/types/src/cli/commands/profile/reset.d.ts.map +1 -0
  217. package/dist/types/src/cli/commands/profile/util.d.ts +24 -0
  218. package/dist/types/src/cli/commands/profile/util.d.ts.map +1 -0
  219. package/dist/types/src/cli/index.d.ts +2 -0
  220. package/dist/types/src/cli/index.d.ts.map +1 -0
  221. package/dist/types/src/cli/plugin.d.ts +4 -0
  222. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  223. package/dist/types/src/cli/testing/test-console.d.ts +37 -0
  224. package/dist/types/src/cli/testing/test-console.d.ts.map +1 -0
  225. package/dist/types/src/components/index.d.ts +0 -6
  226. package/dist/types/src/components/index.d.ts.map +1 -1
  227. package/dist/types/src/constants.d.ts +4 -0
  228. package/dist/types/src/constants.d.ts.map +1 -0
  229. package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts.map +1 -0
  230. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts +183 -0
  231. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts.map +1 -0
  232. package/dist/types/src/containers/DevicesContainer/index.d.ts +3 -0
  233. package/dist/types/src/containers/DevicesContainer/index.d.ts.map +1 -0
  234. package/dist/types/src/{components → containers/JoinDialog}/JoinDialog.d.ts +0 -1
  235. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -0
  236. package/dist/types/src/containers/JoinDialog/index.d.ts +3 -0
  237. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -0
  238. package/dist/types/src/containers/ProfileContainer/ProfileContainer.d.ts.map +1 -0
  239. package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts +14 -0
  240. package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts.map +1 -0
  241. package/dist/types/src/containers/ProfileContainer/index.d.ts +3 -0
  242. package/dist/types/src/containers/ProfileContainer/index.d.ts.map +1 -0
  243. package/dist/types/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.d.ts +0 -1
  244. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts.map +1 -0
  245. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.d.ts +16 -0
  246. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.d.ts.map +1 -0
  247. package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts +4 -0
  248. package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts.map +1 -0
  249. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts +4 -0
  250. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts.map +1 -0
  251. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts +14 -0
  252. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts.map +1 -0
  253. package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts +3 -0
  254. package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts.map +1 -0
  255. package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts +9 -0
  256. package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts.map +1 -0
  257. package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts +19 -0
  258. package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts.map +1 -0
  259. package/dist/types/src/containers/ResetDialog/index.d.ts +4 -0
  260. package/dist/types/src/containers/ResetDialog/index.d.ts.map +1 -0
  261. package/dist/types/src/containers/index.d.ts +10 -0
  262. package/dist/types/src/containers/index.d.ts.map +1 -0
  263. package/dist/types/src/index.d.ts +3 -3
  264. package/dist/types/src/index.d.ts.map +1 -1
  265. package/dist/types/src/meta.d.ts +2 -3
  266. package/dist/types/src/meta.d.ts.map +1 -1
  267. package/dist/types/src/translations.d.ts +2 -48
  268. package/dist/types/src/translations.d.ts.map +1 -1
  269. package/dist/types/src/types/capabilities.d.ts +10 -0
  270. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  271. package/dist/types/src/types/events.d.ts +9 -0
  272. package/dist/types/src/types/events.d.ts.map +1 -0
  273. package/dist/types/src/types/index.d.ts +2 -0
  274. package/dist/types/src/types/index.d.ts.map +1 -1
  275. package/dist/types/src/types/schema.d.ts +174 -10
  276. package/dist/types/src/types/schema.d.ts.map +1 -1
  277. package/dist/types/tsconfig.tsbuildinfo +1 -1
  278. package/package.json +56 -39
  279. package/src/ClientPlugin.ts +49 -61
  280. package/src/capabilities/app-graph-builder/app-graph-builder.ts +96 -0
  281. package/src/capabilities/app-graph-builder/index.ts +7 -0
  282. package/src/capabilities/client/client.ts +77 -0
  283. package/src/capabilities/client/index.ts +7 -0
  284. package/src/capabilities/index.ts +7 -11
  285. package/src/capabilities/migrations/index.ts +7 -0
  286. package/src/capabilities/migrations/migrations.ts +30 -0
  287. package/src/capabilities/operation-resolver/index.ts +7 -0
  288. package/src/capabilities/operation-resolver/operation-resolver.ts +247 -0
  289. package/src/capabilities/react-context/index.ts +7 -0
  290. package/src/capabilities/react-context/react-context.tsx +25 -0
  291. package/src/capabilities/react-surface/index.ts +7 -0
  292. package/src/capabilities/react-surface/react-surface.tsx +74 -0
  293. package/src/capabilities/schema-defs/index.ts +7 -0
  294. package/src/capabilities/schema-defs/schema-defs.ts +36 -0
  295. package/src/cli/commands/config/index.ts +12 -0
  296. package/src/cli/commands/config/view.ts +26 -0
  297. package/src/cli/commands/device/index.ts +14 -0
  298. package/src/cli/commands/device/info/index.ts +5 -0
  299. package/src/cli/commands/device/info/info.test.ts +29 -0
  300. package/src/cli/commands/device/info/info.ts +50 -0
  301. package/src/cli/commands/device/list/index.ts +5 -0
  302. package/src/cli/commands/device/list/list.test.ts +31 -0
  303. package/src/cli/commands/device/list/list.ts +30 -0
  304. package/src/cli/commands/device/update/index.ts +5 -0
  305. package/src/cli/commands/device/update/update.ts +70 -0
  306. package/src/cli/commands/device/util.ts +55 -0
  307. package/src/cli/commands/edge/index.ts +12 -0
  308. package/src/cli/commands/edge/status.ts +45 -0
  309. package/src/cli/commands/halo/create/create.test.ts +52 -0
  310. package/src/cli/commands/halo/create/create.ts +75 -0
  311. package/src/cli/commands/halo/create/index.ts +5 -0
  312. package/src/cli/commands/halo/credential/add/add.ts +97 -0
  313. package/src/cli/commands/halo/credential/add/index.ts +5 -0
  314. package/src/cli/commands/halo/credential/index.ts +13 -0
  315. package/src/cli/commands/halo/credential/list/index.ts +5 -0
  316. package/src/cli/commands/halo/credential/list/list.test.ts +28 -0
  317. package/src/cli/commands/halo/credential/list/list.ts +118 -0
  318. package/src/cli/commands/halo/identity/identity.test.ts +40 -0
  319. package/src/cli/commands/halo/identity/identity.ts +46 -0
  320. package/src/cli/commands/halo/identity/index.ts +5 -0
  321. package/src/cli/commands/halo/index.ts +21 -0
  322. package/src/cli/commands/halo/join/index.ts +5 -0
  323. package/src/cli/commands/halo/join/join.test.ts +10 -0
  324. package/src/cli/commands/halo/join/join.ts +87 -0
  325. package/src/cli/commands/halo/keys/index.ts +5 -0
  326. package/src/cli/commands/halo/keys/keys.test.ts +29 -0
  327. package/src/cli/commands/halo/keys/keys.ts +42 -0
  328. package/src/cli/commands/halo/recover/index.ts +5 -0
  329. package/src/cli/commands/halo/recover/recover.test.ts +10 -0
  330. package/src/cli/commands/halo/recover/recover.ts +44 -0
  331. package/src/cli/commands/halo/seed/index.ts +5 -0
  332. package/src/cli/commands/halo/seed/seed.ts +38 -0
  333. package/src/cli/commands/halo/share/index.ts +5 -0
  334. package/src/cli/commands/halo/share/share.ts +97 -0
  335. package/src/cli/commands/halo/update/index.ts +5 -0
  336. package/src/cli/commands/halo/update/update.test.ts +29 -0
  337. package/src/cli/commands/halo/update/update.ts +69 -0
  338. package/src/cli/commands/halo/util.ts +18 -0
  339. package/src/cli/commands/index.ts +9 -0
  340. package/src/cli/commands/profile/create.ts +87 -0
  341. package/src/cli/commands/profile/delete.ts +33 -0
  342. package/src/cli/commands/profile/import.ts +101 -0
  343. package/src/cli/commands/profile/index.ts +17 -0
  344. package/src/cli/commands/profile/inspect.ts +64 -0
  345. package/src/cli/commands/profile/list.ts +54 -0
  346. package/src/cli/commands/profile/reset.ts +45 -0
  347. package/src/cli/commands/profile/util.ts +48 -0
  348. package/src/cli/index.ts +5 -0
  349. package/src/cli/plugin.ts +34 -0
  350. package/src/cli/testing/test-console.ts +88 -0
  351. package/src/components/index.ts +0 -7
  352. package/src/constants.ts +9 -0
  353. package/src/containers/DevicesContainer/DevicesContainer.stories.tsx +51 -0
  354. package/src/{components → containers/DevicesContainer}/DevicesContainer.tsx +88 -108
  355. package/src/containers/DevicesContainer/index.ts +7 -0
  356. package/src/containers/JoinDialog/JoinDialog.tsx +53 -0
  357. package/src/containers/JoinDialog/index.ts +7 -0
  358. package/src/containers/ProfileContainer/ProfileContainer.stories.tsx +28 -0
  359. package/src/{components → containers/ProfileContainer}/ProfileContainer.tsx +68 -65
  360. package/src/containers/ProfileContainer/index.ts +7 -0
  361. package/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.stories.tsx +11 -12
  362. package/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.tsx +28 -27
  363. package/src/containers/RecoveryCodeDialog/index.ts +8 -0
  364. package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.tsx +46 -0
  365. package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx +68 -0
  366. package/src/containers/RecoveryCredentialsContainer/index.ts +7 -0
  367. package/src/containers/ResetDialog/ResetDialog.stories.tsx +73 -0
  368. package/src/containers/ResetDialog/ResetDialog.tsx +50 -0
  369. package/src/containers/ResetDialog/index.ts +8 -0
  370. package/src/containers/index.ts +15 -0
  371. package/src/index.ts +3 -3
  372. package/src/meta.ts +8 -5
  373. package/src/translations.ts +6 -3
  374. package/src/types/capabilities.ts +16 -0
  375. package/src/types/events.ts +15 -0
  376. package/src/types/index.ts +2 -0
  377. package/src/types/schema.ts +128 -10
  378. package/dist/lib/browser/app-graph-builder-JNIES5L4.mjs +0 -123
  379. package/dist/lib/browser/app-graph-builder-JNIES5L4.mjs.map +0 -7
  380. package/dist/lib/browser/chunk-3F2Q2RKC.mjs +0 -18
  381. package/dist/lib/browser/chunk-3F2Q2RKC.mjs.map +0 -7
  382. package/dist/lib/browser/chunk-CAF2COXW.mjs +0 -19
  383. package/dist/lib/browser/chunk-CAF2COXW.mjs.map +0 -7
  384. package/dist/lib/browser/chunk-GS3LDHYD.mjs +0 -12
  385. package/dist/lib/browser/chunk-GS3LDHYD.mjs.map +0 -7
  386. package/dist/lib/browser/chunk-RMHBOY3Y.mjs +0 -110
  387. package/dist/lib/browser/chunk-RMHBOY3Y.mjs.map +0 -7
  388. package/dist/lib/browser/chunk-SV3MHIKI.mjs +0 -695
  389. package/dist/lib/browser/chunk-SV3MHIKI.mjs.map +0 -7
  390. package/dist/lib/browser/client-SKVKXPLY.mjs +0 -37
  391. package/dist/lib/browser/client-SKVKXPLY.mjs.map +0 -7
  392. package/dist/lib/browser/intent-resolver-LNPLD5CA.mjs +0 -305
  393. package/dist/lib/browser/intent-resolver-LNPLD5CA.mjs.map +0 -7
  394. package/dist/lib/browser/migrations-D76RCG72.mjs +0 -23
  395. package/dist/lib/browser/migrations-D76RCG72.mjs.map +0 -7
  396. package/dist/lib/browser/react-context-YWVPZUMU.mjs +0 -24
  397. package/dist/lib/browser/react-context-YWVPZUMU.mjs.map +0 -7
  398. package/dist/lib/browser/react-surface-QFZTDNLS.mjs +0 -66
  399. package/dist/lib/browser/react-surface-QFZTDNLS.mjs.map +0 -7
  400. package/dist/lib/browser/schema-defs-HKW6VNZB.mjs +0 -25
  401. package/dist/lib/browser/schema-defs-HKW6VNZB.mjs.map +0 -7
  402. package/dist/lib/node-esm/app-graph-builder-SWFB4FID.mjs +0 -124
  403. package/dist/lib/node-esm/app-graph-builder-SWFB4FID.mjs.map +0 -7
  404. package/dist/lib/node-esm/chunk-5V3RCXZV.mjs +0 -111
  405. package/dist/lib/node-esm/chunk-5V3RCXZV.mjs.map +0 -7
  406. package/dist/lib/node-esm/chunk-FBYODKEL.mjs +0 -696
  407. package/dist/lib/node-esm/chunk-FBYODKEL.mjs.map +0 -7
  408. package/dist/lib/node-esm/chunk-IOGTQFLM.mjs +0 -19
  409. package/dist/lib/node-esm/chunk-IOGTQFLM.mjs.map +0 -7
  410. package/dist/lib/node-esm/chunk-SZLX4BVJ.mjs +0 -14
  411. package/dist/lib/node-esm/chunk-SZLX4BVJ.mjs.map +0 -7
  412. package/dist/lib/node-esm/chunk-UMO3ETDV.mjs +0 -20
  413. package/dist/lib/node-esm/chunk-UMO3ETDV.mjs.map +0 -7
  414. package/dist/lib/node-esm/client-SLL6GDC2.mjs +0 -38
  415. package/dist/lib/node-esm/client-SLL6GDC2.mjs.map +0 -7
  416. package/dist/lib/node-esm/intent-resolver-L7C6YRWV.mjs +0 -306
  417. package/dist/lib/node-esm/intent-resolver-L7C6YRWV.mjs.map +0 -7
  418. package/dist/lib/node-esm/migrations-YISDI7LF.mjs +0 -24
  419. package/dist/lib/node-esm/migrations-YISDI7LF.mjs.map +0 -7
  420. package/dist/lib/node-esm/react-context-EEHS4S3L.mjs +0 -25
  421. package/dist/lib/node-esm/react-context-EEHS4S3L.mjs.map +0 -7
  422. package/dist/lib/node-esm/react-surface-2K6W37R4.mjs +0 -67
  423. package/dist/lib/node-esm/react-surface-2K6W37R4.mjs.map +0 -7
  424. package/dist/lib/node-esm/schema-defs-5ZNI63RW.mjs +0 -26
  425. package/dist/lib/node-esm/schema-defs-5ZNI63RW.mjs.map +0 -7
  426. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  427. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  428. package/dist/types/src/capabilities/capabilities.d.ts +0 -9
  429. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  430. package/dist/types/src/capabilities/client.d.ts +0 -9
  431. package/dist/types/src/capabilities/client.d.ts.map +0 -1
  432. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -8
  433. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  434. package/dist/types/src/capabilities/migrations.d.ts +0 -4
  435. package/dist/types/src/capabilities/migrations.d.ts.map +0 -1
  436. package/dist/types/src/capabilities/react-context.d.ts +0 -8
  437. package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
  438. package/dist/types/src/capabilities/react-surface.d.ts +0 -8
  439. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  440. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  441. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  442. package/dist/types/src/components/DevicesContainer.d.ts.map +0 -1
  443. package/dist/types/src/components/DevicesContainer.stories.d.ts +0 -8
  444. package/dist/types/src/components/DevicesContainer.stories.d.ts.map +0 -1
  445. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  446. package/dist/types/src/components/ProfileContainer.d.ts.map +0 -1
  447. package/dist/types/src/components/ProfileContainer.stories.d.ts +0 -8
  448. package/dist/types/src/components/ProfileContainer.stories.d.ts.map +0 -1
  449. package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +0 -1
  450. package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts +0 -8
  451. package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts.map +0 -1
  452. package/dist/types/src/components/RecoveryCredentialsContainer.d.ts +0 -4
  453. package/dist/types/src/components/RecoveryCredentialsContainer.d.ts.map +0 -1
  454. package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts +0 -8
  455. package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts.map +0 -1
  456. package/dist/types/src/components/ResetDialog.d.ts +0 -7
  457. package/dist/types/src/components/ResetDialog.d.ts.map +0 -1
  458. package/dist/types/src/components/ResetDialog.stories.d.ts +0 -10
  459. package/dist/types/src/components/ResetDialog.stories.d.ts.map +0 -1
  460. package/dist/types/src/events.d.ts +0 -8
  461. package/dist/types/src/events.d.ts.map +0 -1
  462. package/src/capabilities/app-graph-builder.ts +0 -113
  463. package/src/capabilities/capabilities.ts +0 -18
  464. package/src/capabilities/client.ts +0 -41
  465. package/src/capabilities/intent-resolver.ts +0 -250
  466. package/src/capabilities/migrations.ts +0 -25
  467. package/src/capabilities/react-context.tsx +0 -20
  468. package/src/capabilities/react-surface.tsx +0 -67
  469. package/src/capabilities/schema-defs.ts +0 -29
  470. package/src/components/DevicesContainer.stories.tsx +0 -49
  471. package/src/components/JoinDialog.tsx +0 -53
  472. package/src/components/ProfileContainer.stories.tsx +0 -29
  473. package/src/components/RecoveryCredentialsContainer.stories.tsx +0 -44
  474. package/src/components/RecoveryCredentialsContainer.tsx +0 -73
  475. package/src/components/ResetDialog.stories.tsx +0 -53
  476. package/src/components/ResetDialog.tsx +0 -49
  477. package/src/events.ts +0 -15
  478. /package/dist/types/src/{components → containers/DevicesContainer}/DevicesContainer.d.ts +0 -0
  479. /package/dist/types/src/{components → containers/ProfileContainer}/ProfileContainer.d.ts +0 -0
@@ -6,48 +6,49 @@ import React, { useCallback, useState } from 'react';
6
6
 
7
7
  import { AlertDialog, Button, Clipboard, Input, useTranslation } from '@dxos/react-ui';
8
8
 
9
- import { CLIENT_PLUGIN } from '../meta';
10
-
11
- export const RECOVERY_CODE_DIALOG = `${CLIENT_PLUGIN}/RecoveryCodeDialog`;
9
+ import { meta } from '../../meta';
12
10
 
13
11
  export type RecoveryCodeDialogProps = {
14
12
  code: string;
15
13
  };
16
14
 
15
+ // TODO(burdon): Should have cancel button.
17
16
  export const RecoveryCodeDialog = ({ code }: RecoveryCodeDialogProps) => {
18
- const { t } = useTranslation(CLIENT_PLUGIN);
17
+ const { t } = useTranslation(meta.id);
19
18
  const [confirmation, setConfirmation] = useState(false);
20
19
 
21
20
  const handleConfirmation = useCallback((checked: boolean) => setConfirmation(checked), []);
22
21
 
23
22
  return (
24
- <AlertDialog.Content classNames='bs-content min-bs-[15rem] max-bs-full md:max-is-[40rem] overflow-hidden'>
25
- <AlertDialog.Title>{t('recovery code dialog title')}</AlertDialog.Title>
26
- <p className='py-4'>{t('recovery code dialog description')}</p>
27
- <Clipboard.Provider>
28
- <Code code={code} />
29
- </Clipboard.Provider>
30
- <div className='flex flex-col py-4 gap-2'>
31
- <p>{t('recovery code dialog warning 1')}</p>
32
- <p>{t('recovery code dialog warning 2')}</p>
33
- </div>
34
- <div className='flex items-center gap-2 pbe-4'>
35
- <Input.Root>
36
- <Input.Checkbox
37
- data-testid='recoveryCode.confirm'
38
- checked={confirmation}
39
- onCheckedChange={handleConfirmation}
40
- />
41
- <Input.Label>{t('recovery code confirmation label')}</Input.Label>
42
- </Input.Root>
43
- </div>
44
- <div className='flex justify-end'>
23
+ <AlertDialog.Content size='md' classNames='min-h-[15rem]'>
24
+ <AlertDialog.Body>
25
+ <AlertDialog.Title>{t('recovery code dialog title')}</AlertDialog.Title>
26
+ <p className='py-4'>{t('recovery code dialog description')}</p>
27
+ <Clipboard.Provider>
28
+ <Code code={code} />
29
+ </Clipboard.Provider>
30
+ <div className='flex flex-col py-4 gap-2'>
31
+ <p>{t('recovery code dialog warning 1')}</p>
32
+ <p>{t('recovery code dialog warning 2')}</p>
33
+ </div>
34
+ <div className='flex items-center gap-2 pb-4'>
35
+ <Input.Root>
36
+ <Input.Checkbox
37
+ data-testid='recoveryCode.confirm'
38
+ checked={confirmation}
39
+ onCheckedChange={handleConfirmation}
40
+ />
41
+ <Input.Label>{t('recovery code confirmation label')}</Input.Label>
42
+ </Input.Root>
43
+ </div>
44
+ </AlertDialog.Body>
45
+ <AlertDialog.ActionBar>
45
46
  <AlertDialog.Action asChild>
46
47
  <Button data-testid='recoveryCode.continue' variant='primary' disabled={!confirmation}>
47
48
  {t('continue label')}
48
49
  </Button>
49
50
  </AlertDialog.Action>
50
- </div>
51
+ </AlertDialog.ActionBar>
51
52
  </AlertDialog.Content>
52
53
  );
53
54
  };
@@ -55,7 +56,7 @@ export const RecoveryCodeDialog = ({ code }: RecoveryCodeDialogProps) => {
55
56
  const Code = ({ code }: { code: string }) => {
56
57
  const words = code.split(' ');
57
58
  return (
58
- <div className='relative p-2 border border-separator rounded group'>
59
+ <div className='relative p-2 border border-separator rounded-sm group'>
59
60
  <Clipboard.IconButton value={code} classNames='absolute top-2 right-2 invisible group-hover:visible' />
60
61
  <div className='grid grid-cols-4'>
61
62
  {words.map((word, i) => (
@@ -0,0 +1,8 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { RecoveryCodeDialog } from './RecoveryCodeDialog';
6
+
7
+ export * from './RecoveryCodeDialog';
8
+ export default RecoveryCodeDialog;
@@ -0,0 +1,46 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import * as Effect from 'effect/Effect';
7
+
8
+ import { OperationPlugin, RuntimePlugin } from '@dxos/app-framework';
9
+ import { withPluginManager } from '@dxos/app-framework/testing';
10
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
11
+
12
+ import { ClientPlugin } from '../../ClientPlugin';
13
+ import { translations } from '../../translations';
14
+
15
+ import { RecoveryCredentialsContainer } from './RecoveryCredentialsContainer';
16
+
17
+ const meta = {
18
+ title: 'plugins/plugin-client/containers/RecoveryCredentialsContainer',
19
+ component: RecoveryCredentialsContainer,
20
+ decorators: [
21
+ withTheme(),
22
+ withLayout({ layout: 'fullscreen' }),
23
+ withPluginManager({
24
+ plugins: [
25
+ ClientPlugin({
26
+ onClientInitialized: ({ client }) =>
27
+ Effect.gen(function* () {
28
+ yield* Effect.promise(() => client.halo.createIdentity());
29
+ }),
30
+ }),
31
+ OperationPlugin(),
32
+ RuntimePlugin(),
33
+ ],
34
+ }),
35
+ ],
36
+ parameters: {
37
+ layout: 'fullscreen',
38
+ translations,
39
+ },
40
+ } satisfies Meta<typeof RecoveryCredentialsContainer>;
41
+
42
+ export default meta;
43
+
44
+ type Story = StoryObj<typeof meta>;
45
+
46
+ export const Default: Story = {};
@@ -0,0 +1,68 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { useOperationInvoker } from '@dxos/app-framework/ui';
8
+ import { useCredentials } from '@dxos/react-client/halo';
9
+ import { Icon, IconButton, List, ListItem, Message, useTranslation } from '@dxos/react-ui';
10
+ import { Settings } from '@dxos/react-ui-form';
11
+
12
+ import { meta } from '../../meta';
13
+ import { ClientOperation } from '../../types';
14
+
15
+ export const MANAGE_CREDENTIALS_DIALOG = `${meta.id}/ManageCredentialsDialog`;
16
+
17
+ export const RecoveryCredentialsContainer = () => {
18
+ const { t } = useTranslation(meta.id);
19
+ const { invokePromise } = useOperationInvoker();
20
+ const credentials = useCredentials();
21
+ const recoveryCredentials = credentials.filter(
22
+ (credential) => credential.subject.assertion['@type'] === 'dxos.halo.credentials.IdentityRecovery',
23
+ );
24
+
25
+ return (
26
+ <Settings.Root>
27
+ <Settings.Section title={t('recovery setup dialog title')} description={t('recovery setup dialog description')}>
28
+ <Settings.Group>
29
+ <Settings.Item title={t('create passkey label')} description={t('create passkey description')}>
30
+ <IconButton
31
+ label={t('create passkey label')}
32
+ icon='ph--key--duotone'
33
+ variant='primary'
34
+ onClick={() => invokePromise(ClientOperation.CreatePasskey)}
35
+ />
36
+ </Settings.Item>
37
+ <Settings.Item title={t('create recovery code label')} description={t('create recovery code description')}>
38
+ <IconButton
39
+ label={t('create recovery code label')}
40
+ icon='ph--receipt--duotone'
41
+ variant='default'
42
+ onClick={() => invokePromise(ClientOperation.CreateRecoveryCode)}
43
+ />
44
+ </Settings.Item>
45
+ </Settings.Group>
46
+ </Settings.Section>
47
+ <Settings.Section title={t('credentials list label')}>
48
+ {recoveryCredentials.length < 1 ? (
49
+ <Message.Root valence='error'>
50
+ <Message.Title icon='ph--shield-warning--duotone'>{t('no credentials title')}</Message.Title>
51
+ <Message.Content>{t('no credentials message')}</Message.Content>
52
+ </Message.Root>
53
+ ) : (
54
+ <List>
55
+ {recoveryCredentials.map((credential) => (
56
+ <ListItem.Root key={credential.id?.toHex()}>
57
+ <ListItem.Endcap>
58
+ <Icon icon='ph--key--regular' />
59
+ </ListItem.Endcap>
60
+ <ListItem.Heading>{credential.issuanceDate.toLocaleString()}</ListItem.Heading>
61
+ </ListItem.Root>
62
+ ))}
63
+ </List>
64
+ )}
65
+ </Settings.Section>
66
+ </Settings.Root>
67
+ );
68
+ };
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { RecoveryCredentialsContainer } from './RecoveryCredentialsContainer';
6
+
7
+ export default RecoveryCredentialsContainer;
@@ -0,0 +1,73 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import * as Effect from 'effect/Effect';
7
+ import React from 'react';
8
+
9
+ import { OperationPlugin, RuntimePlugin } from '@dxos/app-framework';
10
+ import { withPluginManager } from '@dxos/app-framework/testing';
11
+ import { usePluginManager } from '@dxos/app-framework/ui';
12
+ import { Dialog } from '@dxos/react-ui';
13
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
14
+
15
+ import { ClientPlugin } from '../../ClientPlugin';
16
+ import { translations } from '../../translations';
17
+
18
+ import { ResetDialog, type ResetDialogProps } from './ResetDialog';
19
+
20
+ const DefaultStory = (props: Omit<ResetDialogProps, 'capabilityManager'>) => {
21
+ const manager = usePluginManager();
22
+
23
+ return (
24
+ <Dialog.Root open>
25
+ <Dialog.Overlay>
26
+ <ResetDialog
27
+ capabilityManager={manager.capabilities}
28
+ onReset={() => Effect.sync(() => console.log('reset'))}
29
+ {...props}
30
+ />
31
+ </Dialog.Overlay>
32
+ </Dialog.Root>
33
+ );
34
+ };
35
+
36
+ const meta = {
37
+ title: 'plugins/plugin-client/containers/ResetDialog',
38
+ component: ResetDialog,
39
+ render: DefaultStory,
40
+ decorators: [
41
+ withTheme(),
42
+ withLayout({ layout: 'fullscreen' }),
43
+ withPluginManager({
44
+ plugins: [RuntimePlugin(), OperationPlugin(), ClientPlugin({})],
45
+ }),
46
+ ],
47
+ parameters: {
48
+ layout: 'fullscreen',
49
+ translations,
50
+ },
51
+ } satisfies Meta<typeof ResetDialog>;
52
+
53
+ export default meta;
54
+
55
+ type Story = StoryObj<typeof meta>;
56
+
57
+ export const Default: Story = {
58
+ args: {
59
+ mode: 'reset storage' as const,
60
+ } as any,
61
+ };
62
+
63
+ export const JoinNewIdentity: Story = {
64
+ args: {
65
+ mode: 'join new identity' as const,
66
+ } as any,
67
+ };
68
+
69
+ export const Recover: Story = {
70
+ args: {
71
+ mode: 'recover' as const,
72
+ } as any,
73
+ };
@@ -0,0 +1,50 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+ import React, { useCallback } from 'react';
7
+
8
+ import { Capability, type CapabilityManager } from '@dxos/app-framework';
9
+ import { useOperationInvoker } from '@dxos/app-framework/ui';
10
+ import { LayoutOperation } from '@dxos/app-toolkit';
11
+ import { runAndForwardErrors } from '@dxos/effect';
12
+ import { useClient } from '@dxos/react-client';
13
+ import { Dialog, useTranslation } from '@dxos/react-ui';
14
+ import { ConfirmReset, type ConfirmResetProps, translationKey } from '@dxos/shell/react';
15
+
16
+ import { type ClientPluginOptions } from '../../types';
17
+
18
+ export type ResetDialogProps = Pick<ConfirmResetProps, 'mode'> &
19
+ Pick<ClientPluginOptions, 'onReset'> & {
20
+ capabilityManager: CapabilityManager.CapabilityManager;
21
+ };
22
+
23
+ export const ResetDialog = ({ mode, onReset, capabilityManager }: ResetDialogProps) => {
24
+ const { t } = useTranslation(translationKey);
25
+ const { invokePromise } = useOperationInvoker();
26
+ const client = useClient();
27
+
28
+ const handleReset = useCallback(async () => {
29
+ await client.reset();
30
+ const target =
31
+ mode === 'join new identity' ? 'deviceInvitation' : mode === 'recover' ? 'recoverIdentity' : undefined;
32
+ if (onReset) {
33
+ await runAndForwardErrors(onReset({ target }).pipe(Effect.provideService(Capability.Service, capabilityManager)));
34
+ }
35
+ }, [client, mode, onReset, capabilityManager]);
36
+
37
+ const handleCancel = useCallback(() => {
38
+ void invokePromise(LayoutOperation.UpdateDialog, { state: false });
39
+ }, [invokePromise]);
40
+
41
+ return (
42
+ <Dialog.Content>
43
+ <Dialog.Header>
44
+ <Dialog.Title>{t('reset dialog title')}</Dialog.Title>
45
+ </Dialog.Header>
46
+ <Dialog.Description classNames='sr-only'>{t('reset dialog description')}</Dialog.Description>
47
+ <ConfirmReset active mode={mode} onConfirm={handleReset} onCancel={handleCancel} />
48
+ </Dialog.Content>
49
+ );
50
+ };
@@ -0,0 +1,8 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { ResetDialog } from './ResetDialog';
6
+
7
+ export * from './ResetDialog';
8
+ export default ResetDialog;
@@ -0,0 +1,15 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type ComponentType, lazy } from 'react';
6
+
7
+ export { type RecoveryCodeDialogProps } from './RecoveryCodeDialog';
8
+ export { type ResetDialogProps } from './ResetDialog';
9
+
10
+ export const DevicesContainer: ComponentType<any> = lazy(() => import('./DevicesContainer'));
11
+ export const JoinDialog: ComponentType<any> = lazy(() => import('./JoinDialog'));
12
+ export const ProfileContainer: ComponentType<any> = lazy(() => import('./ProfileContainer'));
13
+ export const RecoveryCodeDialog: ComponentType<any> = lazy(() => import('./RecoveryCodeDialog'));
14
+ export const RecoveryCredentialsContainer: ComponentType<any> = lazy(() => import('./RecoveryCredentialsContainer'));
15
+ export const ResetDialog: ComponentType<any> = lazy(() => import('./ResetDialog'));
package/src/index.ts CHANGED
@@ -2,8 +2,8 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export * from './ClientPlugin';
5
+ export { ClientCapabilities, ClientEvents } from './types';
6
6
  export * from './meta';
7
+ export * from './types';
7
8
 
8
- export { ClientCapabilities } from './capabilities';
9
- export { ClientEvents } from './events';
9
+ export * from './ClientPlugin';
package/src/meta.ts CHANGED
@@ -2,11 +2,14 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type PluginMeta } from '@dxos/app-framework';
5
+ import { type Plugin } from '@dxos/app-framework';
6
+ import { trim } from '@dxos/util';
6
7
 
7
- export const CLIENT_PLUGIN = 'dxos.org/plugin/client';
8
-
9
- export const meta: PluginMeta = {
10
- id: CLIENT_PLUGIN,
8
+ export const meta: Plugin.Meta = {
9
+ id: 'dxos.org/plugin/client',
11
10
  name: 'Client',
11
+ description: trim`
12
+ Core client connectivity and peer-to-peer networking infrastructure.
13
+ Manages identity, authentication, and real-time synchronization across devices.
14
+ `,
12
15
  };
@@ -3,14 +3,15 @@
3
3
  //
4
4
 
5
5
  import { type Resource } from '@dxos/react-ui';
6
+ import { translations as shellTranslations } from '@dxos/shell/react';
6
7
 
7
8
  import { meta } from './meta';
8
9
 
9
- export const translations = [
10
+ const pluginTranslations = [
10
11
  {
11
12
  'en-US': {
12
13
  [meta.id]: {
13
- 'account label': 'User Account',
14
+ 'account label': 'User profile',
14
15
  'profile label': 'Profile',
15
16
  'profile description': 'You can adjust how your user settings here.',
16
17
  'devices label': 'Devices',
@@ -35,7 +36,7 @@ export const translations = [
35
36
  'display name description': 'Your name as it appears in the app.',
36
37
  'display name input placeholder': 'Enter a name',
37
38
  'icon label': 'Avatar',
38
- 'icon description': 'The emoji used to represent you in the app.',
39
+ 'icon description': 'The emoji used to represent the user.',
39
40
  'hue label': 'Color',
40
41
  'hue description':
41
42
  'The color used to represent you in the app, including as your avatar’s background, your cursor as it appears to others, and the messages you send in group threads.',
@@ -68,3 +69,5 @@ export const translations = [
68
69
  },
69
70
  },
70
71
  ] as const satisfies Resource[];
72
+
73
+ export const translations: Resource[] = [...pluginTranslations, ...shellTranslations];
@@ -0,0 +1,16 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+ import { type Client } from '@dxos/client';
7
+ import { type ObjectMigration } from '@dxos/client/echo';
8
+ import { type Type } from '@dxos/echo';
9
+
10
+ import { meta } from '../meta';
11
+
12
+ export namespace ClientCapabilities {
13
+ export const Client = Capability.make<Client>(`${meta.id}/capability/client`);
14
+ export const Schema = Capability.make<Type.AnyEntity[]>(`${meta.id}/capability/schema`);
15
+ export const Migration = Capability.make<ObjectMigration[]>(`${meta.id}/capability/migration`);
16
+ }
@@ -0,0 +1,15 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { ActivationEvent } from '@dxos/app-framework';
6
+
7
+ import { meta } from '../meta';
8
+
9
+ export namespace ClientEvents {
10
+ export const ClientReady = ActivationEvent.make(`${meta.id}/event/client-ready`);
11
+ export const SetupSchema = ActivationEvent.make(`${meta.id}/event/setup-schema`);
12
+ export const SetupMigration = ActivationEvent.make(`${meta.id}/event/setup-migration`);
13
+ export const IdentityCreated = ActivationEvent.make(`${meta.id}/event/identity-created`);
14
+ export const SpacesReady = ActivationEvent.make(`${meta.id}/event/spaces-ready`);
15
+ }
@@ -2,4 +2,6 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ export * from './capabilities';
6
+ export * from './events';
5
7
  export * from './schema';
@@ -2,11 +2,12 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import type * as Effect from 'effect/Effect';
6
+ import * as Schema from 'effect/Schema';
6
7
 
7
- import { type PluginContext } from '@dxos/app-framework';
8
- import { type Client, PublicKey, type ClientOptions } from '@dxos/react-client';
9
- import { type MaybePromise } from '@dxos/util';
8
+ import { Capability } from '@dxos/app-framework';
9
+ import { type Client, type ClientOptions, PublicKey } from '@dxos/client';
10
+ import { Operation } from '@dxos/operation';
10
11
 
11
12
  import { meta } from '../meta';
12
13
 
@@ -90,31 +91,148 @@ export namespace ClientAction {
90
91
  }) {}
91
92
  }
92
93
 
94
+ const CLIENT_OPERATION = `${meta.id}/operation`;
95
+
96
+ /**
97
+ * Operations for the Client plugin.
98
+ */
99
+ export namespace ClientOperation {
100
+ const ProfileSchema = Schema.Struct({
101
+ displayName: Schema.optional(Schema.String),
102
+ avatarCid: Schema.optional(Schema.String),
103
+ data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
104
+ });
105
+
106
+ export const CreateIdentity = Operation.make({
107
+ meta: { key: `${CLIENT_OPERATION}/create-identity`, name: 'Create Identity' },
108
+ services: [Capability.Service],
109
+ schema: {
110
+ input: ProfileSchema,
111
+ output: IdentitySchema,
112
+ },
113
+ });
114
+
115
+ export const JoinIdentity = Operation.make({
116
+ meta: { key: `${CLIENT_OPERATION}/join-identity`, name: 'Join Identity' },
117
+ services: [Capability.Service],
118
+ schema: {
119
+ input: Schema.Struct({
120
+ invitationCode: Schema.optional(Schema.String),
121
+ }),
122
+ output: Schema.Void,
123
+ },
124
+ });
125
+
126
+ export const ShareIdentity = Operation.make({
127
+ meta: { key: `${CLIENT_OPERATION}/share-identity`, name: 'Share Identity' },
128
+ services: [Capability.Service],
129
+ schema: {
130
+ input: Schema.Void,
131
+ output: Schema.Void,
132
+ },
133
+ });
134
+
135
+ export const RecoverIdentity = Operation.make({
136
+ meta: { key: `${CLIENT_OPERATION}/recover-identity`, name: 'Recover Identity' },
137
+ services: [Capability.Service],
138
+ schema: {
139
+ input: Schema.Void,
140
+ output: Schema.Void,
141
+ },
142
+ });
143
+
144
+ export const ResetStorage = Operation.make({
145
+ meta: { key: `${CLIENT_OPERATION}/reset-storage`, name: 'Reset Storage' },
146
+ services: [Capability.Service],
147
+ schema: {
148
+ input: Schema.Struct({
149
+ mode: Schema.optional(Schema.String),
150
+ }),
151
+ output: Schema.Void,
152
+ },
153
+ });
154
+
155
+ export const CreateAgent = Operation.make({
156
+ meta: { key: `${CLIENT_OPERATION}/create-agent`, name: 'Create Agent' },
157
+ services: [Capability.Service],
158
+ schema: {
159
+ input: Schema.Void,
160
+ output: Schema.Void,
161
+ },
162
+ });
163
+
164
+ export const CreateRecoveryCode = Operation.make({
165
+ meta: { key: `${CLIENT_OPERATION}/create-recovery-code`, name: 'Create Recovery Code' },
166
+ services: [Capability.Service],
167
+ schema: {
168
+ input: Schema.Void,
169
+ output: Schema.Void,
170
+ },
171
+ });
172
+
173
+ export const CreatePasskey = Operation.make({
174
+ meta: { key: `${CLIENT_OPERATION}/create-passkey`, name: 'Create Passkey' },
175
+ services: [Capability.Service],
176
+ schema: {
177
+ input: Schema.Void,
178
+ output: Schema.Void,
179
+ },
180
+ });
181
+
182
+ export const RedeemPasskey = Operation.make({
183
+ meta: { key: `${CLIENT_OPERATION}/redeem-passkey`, name: 'Redeem Passkey' },
184
+ services: [Capability.Service],
185
+ schema: {
186
+ input: Schema.Void,
187
+ output: Schema.Void,
188
+ },
189
+ });
190
+
191
+ export const RedeemToken = Operation.make({
192
+ meta: { key: `${CLIENT_OPERATION}/redeem-token`, name: 'Redeem Token' },
193
+ services: [Capability.Service],
194
+ schema: {
195
+ input: Schema.Struct({
196
+ token: Schema.String,
197
+ }),
198
+ output: Schema.Void,
199
+ },
200
+ });
201
+ }
202
+
93
203
  export type ClientPluginOptions = ClientOptions & {
94
204
  /**
95
- * Base URL for the invitation link.
205
+ * Base origin for the invitation link.
206
+ */
207
+ shareableLinkOrigin?: string;
208
+
209
+ /**
210
+ * Path for the invitation link.
96
211
  */
97
- invitationUrl?: string;
212
+ invitationPath?: string;
98
213
 
99
214
  /**
100
215
  * Query parameter for the invitation code.
101
216
  */
102
- invitationParam?: string;
217
+ invitationProp?: string;
103
218
 
104
219
  /**
105
220
  * Run after the client has been initialized.
221
+ * Plugin context is provided so capabilities are accessible.
106
222
  */
107
- onClientInitialized?: (context: PluginContext, client: Client) => MaybePromise<void>;
223
+ onClientInitialized?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;
108
224
 
109
225
  /**
110
226
  * Called when spaces are ready.
227
+ * Plugin context is provided so capabilities are accessible.
111
228
  */
112
- onSpacesReady?: (context: PluginContext, client: Client) => MaybePromise<void>;
229
+ onSpacesReady?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;
113
230
 
114
231
  /**
115
232
  * Called when the client is reset.
233
+ * Plugin context is provided so capabilities are accessible.
116
234
  */
117
- onReset?: (params: { target?: string }) => MaybePromise<void>;
235
+ onReset?: (params: { target?: string }) => Effect.Effect<void, Error | never, Capability.Service | never>;
118
236
  };
119
237
 
120
238
  export namespace Account {