@dxos/plugin-client 0.8.4-main.8360d9e660 → 0.8.4-main.8baae0fced

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 (563) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/ClientPlugin.mjs +10 -0
  4. package/dist/lib/{browser/cli/index.mjs → neutral/ClientPlugin.node.mjs} +87 -117
  5. package/dist/lib/neutral/ClientPlugin.node.mjs.map +7 -0
  6. package/dist/lib/neutral/ClientPlugin.workerd.mjs +16 -0
  7. package/dist/lib/neutral/ClientPlugin.workerd.mjs.map +7 -0
  8. package/dist/lib/{browser/DevicesContainer-3N7ANEJ7.mjs → neutral/DevicesContainer-6MWNUC3I.mjs} +46 -52
  9. package/dist/lib/neutral/DevicesContainer-6MWNUC3I.mjs.map +7 -0
  10. package/dist/lib/{browser/JoinDialog-VTTK7NHO.mjs → neutral/JoinDialog-2NXAKPLP.mjs} +10 -16
  11. package/dist/lib/neutral/JoinDialog-2NXAKPLP.mjs.map +7 -0
  12. package/dist/lib/{browser/ProfileContainer-XV7OXJC2.mjs → neutral/ProfileContainer-VPX3FPWG.mjs} +17 -20
  13. package/dist/lib/neutral/ProfileContainer-VPX3FPWG.mjs.map +7 -0
  14. package/dist/lib/{browser/RecoveryCodeDialog-WO34OZEJ.mjs → neutral/RecoveryCodeDialog-GBRH6ZSA.mjs} +8 -9
  15. package/dist/lib/neutral/RecoveryCodeDialog-GBRH6ZSA.mjs.map +7 -0
  16. package/dist/lib/{browser/RecoveryCredentialsContainer-G22FSTIX.mjs → neutral/RecoveryCredentialsContainer-IPBGDMIA.mjs} +18 -24
  17. package/dist/lib/neutral/RecoveryCredentialsContainer-IPBGDMIA.mjs.map +7 -0
  18. package/dist/lib/{browser/ResetDialog-W24FOWBQ.mjs → neutral/ResetDialog-VXOIHJXP.mjs} +7 -5
  19. package/dist/lib/neutral/ResetDialog-VXOIHJXP.mjs.map +7 -0
  20. package/dist/lib/{browser/app-graph-builder-GGJKFY3X.mjs → neutral/app-graph-builder-IK34U2RQ.mjs} +23 -27
  21. package/dist/lib/neutral/app-graph-builder-IK34U2RQ.mjs.map +7 -0
  22. package/dist/lib/neutral/capabilities/index.mjs +30 -0
  23. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  24. package/dist/lib/neutral/capabilities/node.mjs +13 -0
  25. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  26. package/dist/lib/{browser/chunk-JHSBBOCI.mjs → neutral/chunk-CTLL5QTP.mjs} +6 -2
  27. package/dist/lib/neutral/chunk-CTLL5QTP.mjs.map +7 -0
  28. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  29. package/dist/lib/neutral/chunk-JVKCYW5O.mjs +8 -0
  30. package/dist/lib/neutral/chunk-JVKCYW5O.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-M37DHX5L.mjs +131 -0
  32. package/dist/lib/neutral/chunk-M37DHX5L.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-QPOTUAY5.mjs +68 -0
  34. package/dist/lib/neutral/chunk-QPOTUAY5.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-RPMM5NKJ.mjs +175 -0
  36. package/dist/lib/neutral/chunk-RPMM5NKJ.mjs.map +7 -0
  37. package/dist/lib/{browser/chunk-HSFDKP5D.mjs → neutral/chunk-VAIJSQYA.mjs} +2 -5
  38. package/dist/lib/neutral/chunk-VAIJSQYA.mjs.map +7 -0
  39. package/dist/lib/{browser/client-MM3BHCWG.mjs → neutral/client-7JBIGMTX.mjs} +16 -46
  40. package/dist/lib/neutral/client-7JBIGMTX.mjs.map +7 -0
  41. package/dist/lib/neutral/components/index.mjs +1 -0
  42. package/dist/lib/neutral/components/index.mjs.map +7 -0
  43. package/dist/lib/neutral/containers/index.mjs +19 -0
  44. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  45. package/dist/lib/neutral/create-agent-JV3EM3TV.mjs +26 -0
  46. package/dist/lib/neutral/create-agent-JV3EM3TV.mjs.map +7 -0
  47. package/dist/lib/neutral/create-identity-GNGOTH6D.mjs +30 -0
  48. package/dist/lib/neutral/create-identity-GNGOTH6D.mjs.map +7 -0
  49. package/dist/lib/neutral/create-passkey-NCP4XA7C.mjs +81 -0
  50. package/dist/lib/neutral/create-passkey-NCP4XA7C.mjs.map +7 -0
  51. package/dist/lib/neutral/create-recovery-code-L5LA3GAP.mjs +36 -0
  52. package/dist/lib/neutral/create-recovery-code-L5LA3GAP.mjs.map +7 -0
  53. package/dist/lib/neutral/index.mjs +23 -0
  54. package/dist/lib/neutral/index.mjs.map +7 -0
  55. package/dist/lib/neutral/join-identity-3W6PJLKN.mjs +27 -0
  56. package/dist/lib/neutral/join-identity-3W6PJLKN.mjs.map +7 -0
  57. package/dist/lib/neutral/layer-specs-RCCQ4GKS.mjs +62 -0
  58. package/dist/lib/neutral/layer-specs-RCCQ4GKS.mjs.map +7 -0
  59. package/dist/lib/neutral/meta.json +1 -0
  60. package/dist/lib/neutral/meta.mjs +8 -0
  61. package/dist/lib/neutral/meta.mjs.map +7 -0
  62. package/dist/lib/{browser/migrations-GKUA2ARL.mjs → neutral/migrations-7FTW55ER.mjs} +4 -6
  63. package/dist/lib/neutral/migrations-7FTW55ER.mjs.map +7 -0
  64. package/dist/lib/neutral/navigation-handler-TA4S74CF.mjs +46 -0
  65. package/dist/lib/neutral/navigation-handler-TA4S74CF.mjs.map +7 -0
  66. package/dist/lib/neutral/operation-handler-E3HB7E2T.mjs +13 -0
  67. package/dist/lib/neutral/operation-handler-E3HB7E2T.mjs.map +7 -0
  68. package/dist/lib/neutral/operations/index.mjs +12 -0
  69. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  70. package/dist/lib/neutral/plugin.mjs +17 -0
  71. package/dist/lib/neutral/plugin.mjs.map +7 -0
  72. package/dist/lib/{browser/react-context-GZ3T5UON.mjs → neutral/react-context-B5LXMHVM.mjs} +5 -8
  73. package/dist/lib/neutral/react-context-B5LXMHVM.mjs.map +7 -0
  74. package/dist/lib/{browser/react-surface-5VZP34X3.mjs → neutral/react-surface-VSBYVQL7.mjs} +13 -30
  75. package/dist/lib/neutral/react-surface-VSBYVQL7.mjs.map +7 -0
  76. package/dist/lib/neutral/recover-identity-KL6QY4GI.mjs +26 -0
  77. package/dist/lib/neutral/recover-identity-KL6QY4GI.mjs.map +7 -0
  78. package/dist/lib/neutral/redeem-passkey-NDEWSJTM.mjs +66 -0
  79. package/dist/lib/neutral/redeem-passkey-NDEWSJTM.mjs.map +7 -0
  80. package/dist/lib/neutral/redeem-token-YLWAVFXD.mjs +29 -0
  81. package/dist/lib/neutral/redeem-token-YLWAVFXD.mjs.map +7 -0
  82. package/dist/lib/neutral/reset-storage-OBHEGA6Z.mjs +26 -0
  83. package/dist/lib/neutral/reset-storage-OBHEGA6Z.mjs.map +7 -0
  84. package/dist/lib/neutral/schema-defs-6XJAJAQT.mjs +51 -0
  85. package/dist/lib/neutral/schema-defs-6XJAJAQT.mjs.map +7 -0
  86. package/dist/lib/neutral/share-identity-JQ5SL3J2.mjs +31 -0
  87. package/dist/lib/neutral/share-identity-JQ5SL3J2.mjs.map +7 -0
  88. package/dist/lib/neutral/testing/index.mjs +26 -0
  89. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  90. package/dist/lib/neutral/translations.mjs +74 -0
  91. package/dist/lib/neutral/translations.mjs.map +7 -0
  92. package/dist/lib/{browser → neutral}/types/index.mjs +4 -6
  93. package/dist/lib/neutral/types/index.mjs.map +7 -0
  94. package/dist/types/src/ClientPlugin.d.ts +2 -1
  95. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  96. package/dist/types/src/ClientPlugin.node.d.ts +5 -0
  97. package/dist/types/src/ClientPlugin.node.d.ts.map +1 -0
  98. package/dist/types/src/ClientPlugin.test.d.ts +2 -0
  99. package/dist/types/src/ClientPlugin.test.d.ts.map +1 -0
  100. package/dist/types/src/ClientPlugin.workerd.d.ts +4 -0
  101. package/dist/types/src/ClientPlugin.workerd.d.ts.map +1 -0
  102. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/{client/client.d.ts → client.d.ts} +2 -2
  104. package/dist/types/src/capabilities/client.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/index.d.ts +33 -7
  106. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/layer-specs.d.ts +6 -0
  108. package/dist/types/src/capabilities/layer-specs.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
  110. package/dist/types/src/capabilities/navigation-handler/index.d.ts +4 -0
  111. package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -0
  112. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +15 -0
  113. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -0
  114. package/dist/types/src/capabilities/node.d.ts +21 -0
  115. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  117. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +1 -1
  120. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -0
  122. package/dist/types/src/{cli/commands → commands}/config/index.d.ts +1 -1
  123. package/dist/types/src/commands/config/index.d.ts.map +1 -0
  124. package/dist/types/src/{cli/commands → commands}/config/view.d.ts +1 -1
  125. package/dist/types/src/commands/config/view.d.ts.map +1 -0
  126. package/dist/types/src/commands/device/index.d.ts.map +1 -0
  127. package/dist/types/src/commands/device/info/index.d.ts.map +1 -0
  128. package/dist/types/src/{cli/commands → commands}/device/info/info.d.ts +2 -2
  129. package/dist/types/src/commands/device/info/info.d.ts.map +1 -0
  130. package/dist/types/src/commands/device/info/info.test.d.ts.map +1 -0
  131. package/dist/types/src/commands/device/list/index.d.ts.map +1 -0
  132. package/dist/types/src/{cli/commands → commands}/device/list/list.d.ts +2 -2
  133. package/dist/types/src/commands/device/list/list.d.ts.map +1 -0
  134. package/dist/types/src/commands/device/list/list.test.d.ts.map +1 -0
  135. package/dist/types/src/commands/device/update/index.d.ts.map +1 -0
  136. package/dist/types/src/commands/device/update/update.d.ts.map +1 -0
  137. package/dist/types/src/commands/device/util.d.ts.map +1 -0
  138. package/dist/types/src/commands/edge/index.d.ts.map +1 -0
  139. package/dist/types/src/commands/edge/status.d.ts.map +1 -0
  140. package/dist/types/src/{cli/commands → commands}/halo/create/create.d.ts +2 -2
  141. package/dist/types/src/commands/halo/create/create.d.ts.map +1 -0
  142. package/dist/types/src/commands/halo/create/create.test.d.ts.map +1 -0
  143. package/dist/types/src/commands/halo/create/index.d.ts.map +1 -0
  144. package/dist/types/src/commands/halo/credential/add/add.d.ts.map +1 -0
  145. package/dist/types/src/commands/halo/credential/add/index.d.ts.map +1 -0
  146. package/dist/types/src/commands/halo/credential/index.d.ts.map +1 -0
  147. package/dist/types/src/commands/halo/credential/list/index.d.ts.map +1 -0
  148. package/dist/types/src/{cli/commands → commands}/halo/credential/list/list.d.ts +3 -3
  149. package/dist/types/src/commands/halo/credential/list/list.d.ts.map +1 -0
  150. package/dist/types/src/commands/halo/credential/list/list.test.d.ts.map +1 -0
  151. package/dist/types/src/{cli/commands → commands}/halo/identity/identity.d.ts +2 -2
  152. package/dist/types/src/commands/halo/identity/identity.d.ts.map +1 -0
  153. package/dist/types/src/commands/halo/identity/identity.test.d.ts.map +1 -0
  154. package/dist/types/src/commands/halo/identity/index.d.ts.map +1 -0
  155. package/dist/types/src/commands/halo/index.d.ts.map +1 -0
  156. package/dist/types/src/commands/halo/join/index.d.ts.map +1 -0
  157. package/dist/types/src/{cli/commands → commands}/halo/join/join.d.ts +1 -1
  158. package/dist/types/src/commands/halo/join/join.d.ts.map +1 -0
  159. package/dist/types/src/commands/halo/join/join.test.d.ts.map +1 -0
  160. package/dist/types/src/commands/halo/keys/index.d.ts.map +1 -0
  161. package/dist/types/src/{cli/commands → commands}/halo/keys/keys.d.ts +2 -2
  162. package/dist/types/src/commands/halo/keys/keys.d.ts.map +1 -0
  163. package/dist/types/src/commands/halo/keys/keys.test.d.ts.map +1 -0
  164. package/dist/types/src/commands/halo/recover/index.d.ts.map +1 -0
  165. package/dist/types/src/commands/halo/recover/recover.d.ts.map +1 -0
  166. package/dist/types/src/commands/halo/recover/recover.test.d.ts.map +1 -0
  167. package/dist/types/src/commands/halo/seed/index.d.ts.map +1 -0
  168. package/dist/types/src/commands/halo/seed/seed.d.ts.map +1 -0
  169. package/dist/types/src/commands/halo/share/index.d.ts.map +1 -0
  170. package/dist/types/src/commands/halo/share/share.d.ts.map +1 -0
  171. package/dist/types/src/commands/halo/update/index.d.ts.map +1 -0
  172. package/dist/types/src/commands/halo/update/update.d.ts.map +1 -0
  173. package/dist/types/src/commands/halo/update/update.test.d.ts.map +1 -0
  174. package/dist/types/src/commands/halo/util.d.ts.map +1 -0
  175. package/dist/types/src/commands/index.d.ts.map +1 -0
  176. package/dist/types/src/{cli/commands → commands}/profile/create.d.ts +1 -1
  177. package/dist/types/src/commands/profile/create.d.ts.map +1 -0
  178. package/dist/types/src/commands/profile/delete.d.ts.map +1 -0
  179. package/dist/types/src/{cli/commands → commands}/profile/import.d.ts +2 -2
  180. package/dist/types/src/commands/profile/import.d.ts.map +1 -0
  181. package/dist/types/src/{cli/commands → commands}/profile/index.d.ts +6 -6
  182. package/dist/types/src/commands/profile/index.d.ts.map +1 -0
  183. package/dist/types/src/commands/profile/inspect.d.ts.map +1 -0
  184. package/dist/types/src/commands/profile/list.d.ts.map +1 -0
  185. package/dist/types/src/{cli/commands → commands}/profile/reset.d.ts +1 -1
  186. package/dist/types/src/commands/profile/reset.d.ts.map +1 -0
  187. package/dist/types/src/commands/profile/util.d.ts.map +1 -0
  188. package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts.map +1 -1
  189. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts +165 -164
  190. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts.map +1 -1
  191. package/dist/types/src/containers/DevicesContainer/index.d.ts +1 -2
  192. package/dist/types/src/containers/DevicesContainer/index.d.ts.map +1 -1
  193. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
  194. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +15 -0
  195. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -0
  196. package/dist/types/src/containers/JoinDialog/index.d.ts +1 -2
  197. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -1
  198. package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts.map +1 -1
  199. package/dist/types/src/containers/ProfileContainer/index.d.ts +1 -2
  200. package/dist/types/src/containers/ProfileContainer/index.d.ts.map +1 -1
  201. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts.map +1 -1
  202. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.d.ts.map +1 -1
  203. package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts.map +1 -1
  204. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts.map +1 -1
  205. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts.map +1 -1
  206. package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts +1 -2
  207. package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts.map +1 -1
  208. package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts +1 -1
  209. package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts.map +1 -1
  210. package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts +1 -1
  211. package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts.map +1 -1
  212. package/dist/types/src/containers/ResetDialog/index.d.ts.map +1 -1
  213. package/dist/types/src/index.d.ts +2 -3
  214. package/dist/types/src/index.d.ts.map +1 -1
  215. package/dist/types/src/meta.d.ts.map +1 -1
  216. package/dist/types/src/operations/create-agent.d.ts +5 -0
  217. package/dist/types/src/operations/create-agent.d.ts.map +1 -0
  218. package/dist/types/src/operations/create-identity.d.ts +5 -0
  219. package/dist/types/src/operations/create-identity.d.ts.map +1 -0
  220. package/dist/types/src/operations/create-passkey.d.ts +5 -0
  221. package/dist/types/src/operations/create-passkey.d.ts.map +1 -0
  222. package/dist/types/src/operations/create-recovery-code.d.ts +5 -0
  223. package/dist/types/src/operations/create-recovery-code.d.ts.map +1 -0
  224. package/dist/types/src/operations/definitions.d.ts +36 -0
  225. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  226. package/dist/types/src/operations/index.d.ts +4 -0
  227. package/dist/types/src/operations/index.d.ts.map +1 -0
  228. package/dist/types/src/operations/join-identity.d.ts +5 -0
  229. package/dist/types/src/operations/join-identity.d.ts.map +1 -0
  230. package/dist/types/src/operations/recover-identity.d.ts +5 -0
  231. package/dist/types/src/operations/recover-identity.d.ts.map +1 -0
  232. package/dist/types/src/operations/redeem-passkey.d.ts +5 -0
  233. package/dist/types/src/operations/redeem-passkey.d.ts.map +1 -0
  234. package/dist/types/src/operations/redeem-token.d.ts +5 -0
  235. package/dist/types/src/operations/redeem-token.d.ts.map +1 -0
  236. package/dist/types/src/operations/reset-storage.d.ts +5 -0
  237. package/dist/types/src/operations/reset-storage.d.ts.map +1 -0
  238. package/dist/types/src/operations/share-identity.d.ts +5 -0
  239. package/dist/types/src/operations/share-identity.d.ts.map +1 -0
  240. package/dist/types/src/plugin.d.ts +4 -0
  241. package/dist/types/src/plugin.d.ts.map +1 -0
  242. package/dist/types/src/testing/index.d.ts +3 -0
  243. package/dist/types/src/testing/index.d.ts.map +1 -0
  244. package/dist/types/src/testing/initializeIdentity.d.ts +14 -0
  245. package/dist/types/src/testing/initializeIdentity.d.ts.map +1 -0
  246. package/dist/types/src/translations.d.ts.map +1 -1
  247. package/dist/types/src/types/capabilities.d.ts +1 -2
  248. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  249. package/dist/types/src/types/events.d.ts.map +1 -1
  250. package/dist/types/src/types/schema.d.ts +0 -153
  251. package/dist/types/src/types/schema.d.ts.map +1 -1
  252. package/dist/types/tsconfig.tsbuildinfo +1 -1
  253. package/package.json +110 -51
  254. package/src/{cli/plugin.ts → ClientPlugin.node.ts} +9 -10
  255. package/src/ClientPlugin.test.ts +29 -0
  256. package/src/ClientPlugin.ts +22 -10
  257. package/src/ClientPlugin.workerd.ts +16 -0
  258. package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +20 -19
  259. package/src/capabilities/{client/client.ts → client.ts} +6 -5
  260. package/src/capabilities/index.ts +16 -7
  261. package/src/capabilities/layer-specs.ts +96 -0
  262. package/src/capabilities/{migrations/migrations.ts → migrations.ts} +1 -1
  263. package/src/capabilities/navigation-handler/index.ts +9 -0
  264. package/src/capabilities/navigation-handler/navigation-handler.ts +64 -0
  265. package/src/capabilities/node.ts +13 -0
  266. package/src/capabilities/operation-handler.ts +16 -0
  267. package/src/capabilities/{react-context/react-context.tsx → react-context.tsx} +4 -4
  268. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +18 -22
  269. package/src/capabilities/schema-defs.ts +56 -0
  270. package/src/{cli/commands → commands}/config/view.ts +4 -1
  271. package/src/{cli/commands → commands}/device/info/info.test.ts +0 -1
  272. package/src/{cli/commands → commands}/device/info/info.ts +0 -2
  273. package/src/{cli/commands → commands}/device/list/list.test.ts +0 -1
  274. package/src/{cli/commands → commands}/device/list/list.ts +0 -2
  275. package/src/{cli/commands → commands}/device/update/update.ts +0 -2
  276. package/src/{cli/commands → commands}/edge/status.ts +2 -1
  277. package/src/{cli/commands → commands}/halo/create/create.test.ts +5 -4
  278. package/src/{cli/commands → commands}/halo/create/create.ts +11 -4
  279. package/src/{cli/commands → commands}/halo/credential/list/list.test.ts +0 -1
  280. package/src/{cli/commands → commands}/halo/credential/list/list.ts +4 -7
  281. package/src/{cli/commands → commands}/halo/identity/identity.ts +0 -1
  282. package/src/{cli/commands → commands}/halo/keys/keys.ts +0 -2
  283. package/src/{cli/commands → commands}/halo/seed/seed.ts +0 -2
  284. package/src/{cli/commands → commands}/halo/update/update.test.ts +0 -1
  285. package/src/{cli/commands → commands}/halo/update/update.ts +0 -2
  286. package/src/{cli/commands → commands}/profile/list.ts +0 -1
  287. package/src/constants.ts +1 -1
  288. package/src/containers/DevicesContainer/DevicesContainer.stories.tsx +6 -6
  289. package/src/containers/DevicesContainer/DevicesContainer.tsx +50 -49
  290. package/src/containers/DevicesContainer/index.ts +1 -3
  291. package/src/containers/JoinDialog/JoinDialog.stories.tsx +43 -0
  292. package/src/containers/JoinDialog/JoinDialog.tsx +15 -12
  293. package/src/containers/JoinDialog/index.ts +1 -3
  294. package/src/containers/ProfileContainer/ProfileContainer.stories.tsx +1 -1
  295. package/src/containers/ProfileContainer/ProfileContainer.tsx +13 -13
  296. package/src/containers/ProfileContainer/index.ts +1 -3
  297. package/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.tsx +1 -1
  298. package/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.tsx +7 -7
  299. package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.tsx +6 -6
  300. package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx +24 -26
  301. package/src/containers/RecoveryCredentialsContainer/index.ts +1 -3
  302. package/src/containers/ResetDialog/ResetDialog.stories.tsx +6 -6
  303. package/src/containers/ResetDialog/ResetDialog.tsx +7 -5
  304. package/src/index.ts +2 -4
  305. package/src/meta.ts +2 -0
  306. package/src/operations/create-agent.ts +26 -0
  307. package/src/operations/create-identity.ts +29 -0
  308. package/src/operations/create-passkey.ts +88 -0
  309. package/src/operations/create-recovery-code.ts +34 -0
  310. package/src/operations/definitions.ts +107 -0
  311. package/src/operations/index.ts +20 -0
  312. package/src/operations/join-identity.ts +28 -0
  313. package/src/operations/recover-identity.ts +28 -0
  314. package/src/operations/redeem-passkey.ts +85 -0
  315. package/src/operations/redeem-token.ts +31 -0
  316. package/src/operations/reset-storage.ts +27 -0
  317. package/src/operations/share-identity.ts +26 -0
  318. package/src/plugin.ts +11 -0
  319. package/src/testing/index.ts +8 -0
  320. package/src/testing/initializeIdentity.ts +30 -0
  321. package/src/translations.ts +53 -43
  322. package/src/types/capabilities.ts +1 -1
  323. package/src/types/events.ts +1 -1
  324. package/src/types/schema.ts +1 -111
  325. package/dist/lib/browser/DevicesContainer-3N7ANEJ7.mjs.map +0 -7
  326. package/dist/lib/browser/JoinDialog-VTTK7NHO.mjs.map +0 -7
  327. package/dist/lib/browser/ProfileContainer-XV7OXJC2.mjs.map +0 -7
  328. package/dist/lib/browser/RecoveryCodeDialog-WO34OZEJ.mjs.map +0 -7
  329. package/dist/lib/browser/RecoveryCredentialsContainer-G22FSTIX.mjs.map +0 -7
  330. package/dist/lib/browser/ResetDialog-W24FOWBQ.mjs.map +0 -7
  331. package/dist/lib/browser/app-graph-builder-GGJKFY3X.mjs.map +0 -7
  332. package/dist/lib/browser/chunk-ESDYRACB.mjs +0 -18
  333. package/dist/lib/browser/chunk-ESDYRACB.mjs.map +0 -7
  334. package/dist/lib/browser/chunk-FVEKZBM7.mjs +0 -283
  335. package/dist/lib/browser/chunk-FVEKZBM7.mjs.map +0 -7
  336. package/dist/lib/browser/chunk-HSFDKP5D.mjs.map +0 -7
  337. package/dist/lib/browser/chunk-JHSBBOCI.mjs.map +0 -7
  338. package/dist/lib/browser/cli/index.mjs.map +0 -7
  339. package/dist/lib/browser/client-MM3BHCWG.mjs.map +0 -7
  340. package/dist/lib/browser/index.mjs +0 -149
  341. package/dist/lib/browser/index.mjs.map +0 -7
  342. package/dist/lib/browser/meta.json +0 -1
  343. package/dist/lib/browser/migrations-GKUA2ARL.mjs.map +0 -7
  344. package/dist/lib/browser/operation-resolver-VSWA74RS.mjs +0 -299
  345. package/dist/lib/browser/operation-resolver-VSWA74RS.mjs.map +0 -7
  346. package/dist/lib/browser/react-context-GZ3T5UON.mjs.map +0 -7
  347. package/dist/lib/browser/react-surface-5VZP34X3.mjs.map +0 -7
  348. package/dist/lib/browser/schema-defs-KAG6HQMI.mjs +0 -28
  349. package/dist/lib/browser/schema-defs-KAG6HQMI.mjs.map +0 -7
  350. package/dist/lib/node-esm/DevicesContainer-V7HEUPO7.mjs +0 -269
  351. package/dist/lib/node-esm/DevicesContainer-V7HEUPO7.mjs.map +0 -7
  352. package/dist/lib/node-esm/JoinDialog-XVKW4SLT.mjs +0 -60
  353. package/dist/lib/node-esm/JoinDialog-XVKW4SLT.mjs.map +0 -7
  354. package/dist/lib/node-esm/ProfileContainer-B5LJ6TMU.mjs +0 -172
  355. package/dist/lib/node-esm/ProfileContainer-B5LJ6TMU.mjs.map +0 -7
  356. package/dist/lib/node-esm/RecoveryCodeDialog-YIRGXM7N.mjs +0 -61
  357. package/dist/lib/node-esm/RecoveryCodeDialog-YIRGXM7N.mjs.map +0 -7
  358. package/dist/lib/node-esm/RecoveryCredentialsContainer-MVJEFNXX.mjs +0 -58
  359. package/dist/lib/node-esm/RecoveryCredentialsContainer-MVJEFNXX.mjs.map +0 -7
  360. package/dist/lib/node-esm/ResetDialog-GGBWSQZO.mjs +0 -54
  361. package/dist/lib/node-esm/ResetDialog-GGBWSQZO.mjs.map +0 -7
  362. package/dist/lib/node-esm/app-graph-builder-PTNZ46NN.mjs +0 -122
  363. package/dist/lib/node-esm/app-graph-builder-PTNZ46NN.mjs.map +0 -7
  364. package/dist/lib/node-esm/chunk-BOTJSPCT.mjs +0 -17
  365. package/dist/lib/node-esm/chunk-BOTJSPCT.mjs.map +0 -7
  366. package/dist/lib/node-esm/chunk-DT2ZNOGU.mjs +0 -284
  367. package/dist/lib/node-esm/chunk-DT2ZNOGU.mjs.map +0 -7
  368. package/dist/lib/node-esm/chunk-OIJ5QGFQ.mjs +0 -20
  369. package/dist/lib/node-esm/chunk-OIJ5QGFQ.mjs.map +0 -7
  370. package/dist/lib/node-esm/chunk-VLNCZYIC.mjs +0 -16
  371. package/dist/lib/node-esm/chunk-VLNCZYIC.mjs.map +0 -7
  372. package/dist/lib/node-esm/cli/index.mjs +0 -1060
  373. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  374. package/dist/lib/node-esm/client-24L47Y2G.mjs +0 -93
  375. package/dist/lib/node-esm/client-24L47Y2G.mjs.map +0 -7
  376. package/dist/lib/node-esm/index.mjs +0 -150
  377. package/dist/lib/node-esm/index.mjs.map +0 -7
  378. package/dist/lib/node-esm/meta.json +0 -1
  379. package/dist/lib/node-esm/migrations-4NEKCBGU.mjs +0 -26
  380. package/dist/lib/node-esm/migrations-4NEKCBGU.mjs.map +0 -7
  381. package/dist/lib/node-esm/operation-resolver-4GWB3YZG.mjs +0 -300
  382. package/dist/lib/node-esm/operation-resolver-4GWB3YZG.mjs.map +0 -7
  383. package/dist/lib/node-esm/react-context-T2ORT5CC.mjs +0 -27
  384. package/dist/lib/node-esm/react-context-T2ORT5CC.mjs.map +0 -7
  385. package/dist/lib/node-esm/react-surface-B65OUZYI.mjs +0 -78
  386. package/dist/lib/node-esm/react-surface-B65OUZYI.mjs.map +0 -7
  387. package/dist/lib/node-esm/schema-defs-GXQ47JZN.mjs +0 -29
  388. package/dist/lib/node-esm/schema-defs-GXQ47JZN.mjs.map +0 -7
  389. package/dist/lib/node-esm/types/index.mjs +0 -17
  390. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  391. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  392. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  393. package/dist/types/src/capabilities/client/client.d.ts.map +0 -1
  394. package/dist/types/src/capabilities/client/index.d.ts +0 -18
  395. package/dist/types/src/capabilities/client/index.d.ts.map +0 -1
  396. package/dist/types/src/capabilities/migrations/index.d.ts +0 -3
  397. package/dist/types/src/capabilities/migrations/index.d.ts.map +0 -1
  398. package/dist/types/src/capabilities/migrations/migrations.d.ts.map +0 -1
  399. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -5
  400. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  401. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -8
  402. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  403. package/dist/types/src/capabilities/react-context/index.d.ts +0 -7
  404. package/dist/types/src/capabilities/react-context/index.d.ts.map +0 -1
  405. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +0 -1
  406. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -5
  407. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  408. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  409. package/dist/types/src/capabilities/schema-defs/index.d.ts +0 -3
  410. package/dist/types/src/capabilities/schema-defs/index.d.ts.map +0 -1
  411. package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts.map +0 -1
  412. package/dist/types/src/cli/commands/config/index.d.ts.map +0 -1
  413. package/dist/types/src/cli/commands/config/view.d.ts.map +0 -1
  414. package/dist/types/src/cli/commands/device/index.d.ts.map +0 -1
  415. package/dist/types/src/cli/commands/device/info/index.d.ts.map +0 -1
  416. package/dist/types/src/cli/commands/device/info/info.d.ts.map +0 -1
  417. package/dist/types/src/cli/commands/device/info/info.test.d.ts.map +0 -1
  418. package/dist/types/src/cli/commands/device/list/index.d.ts.map +0 -1
  419. package/dist/types/src/cli/commands/device/list/list.d.ts.map +0 -1
  420. package/dist/types/src/cli/commands/device/list/list.test.d.ts.map +0 -1
  421. package/dist/types/src/cli/commands/device/update/index.d.ts.map +0 -1
  422. package/dist/types/src/cli/commands/device/update/update.d.ts.map +0 -1
  423. package/dist/types/src/cli/commands/device/util.d.ts.map +0 -1
  424. package/dist/types/src/cli/commands/edge/index.d.ts.map +0 -1
  425. package/dist/types/src/cli/commands/edge/status.d.ts.map +0 -1
  426. package/dist/types/src/cli/commands/halo/create/create.d.ts.map +0 -1
  427. package/dist/types/src/cli/commands/halo/create/create.test.d.ts.map +0 -1
  428. package/dist/types/src/cli/commands/halo/create/index.d.ts.map +0 -1
  429. package/dist/types/src/cli/commands/halo/credential/add/add.d.ts.map +0 -1
  430. package/dist/types/src/cli/commands/halo/credential/add/index.d.ts.map +0 -1
  431. package/dist/types/src/cli/commands/halo/credential/index.d.ts.map +0 -1
  432. package/dist/types/src/cli/commands/halo/credential/list/index.d.ts.map +0 -1
  433. package/dist/types/src/cli/commands/halo/credential/list/list.d.ts.map +0 -1
  434. package/dist/types/src/cli/commands/halo/credential/list/list.test.d.ts.map +0 -1
  435. package/dist/types/src/cli/commands/halo/identity/identity.d.ts.map +0 -1
  436. package/dist/types/src/cli/commands/halo/identity/identity.test.d.ts.map +0 -1
  437. package/dist/types/src/cli/commands/halo/identity/index.d.ts.map +0 -1
  438. package/dist/types/src/cli/commands/halo/index.d.ts.map +0 -1
  439. package/dist/types/src/cli/commands/halo/join/index.d.ts.map +0 -1
  440. package/dist/types/src/cli/commands/halo/join/join.d.ts.map +0 -1
  441. package/dist/types/src/cli/commands/halo/join/join.test.d.ts.map +0 -1
  442. package/dist/types/src/cli/commands/halo/keys/index.d.ts.map +0 -1
  443. package/dist/types/src/cli/commands/halo/keys/keys.d.ts.map +0 -1
  444. package/dist/types/src/cli/commands/halo/keys/keys.test.d.ts.map +0 -1
  445. package/dist/types/src/cli/commands/halo/recover/index.d.ts.map +0 -1
  446. package/dist/types/src/cli/commands/halo/recover/recover.d.ts.map +0 -1
  447. package/dist/types/src/cli/commands/halo/recover/recover.test.d.ts.map +0 -1
  448. package/dist/types/src/cli/commands/halo/seed/index.d.ts.map +0 -1
  449. package/dist/types/src/cli/commands/halo/seed/seed.d.ts.map +0 -1
  450. package/dist/types/src/cli/commands/halo/share/index.d.ts.map +0 -1
  451. package/dist/types/src/cli/commands/halo/share/share.d.ts.map +0 -1
  452. package/dist/types/src/cli/commands/halo/update/index.d.ts.map +0 -1
  453. package/dist/types/src/cli/commands/halo/update/update.d.ts.map +0 -1
  454. package/dist/types/src/cli/commands/halo/update/update.test.d.ts.map +0 -1
  455. package/dist/types/src/cli/commands/halo/util.d.ts.map +0 -1
  456. package/dist/types/src/cli/commands/index.d.ts.map +0 -1
  457. package/dist/types/src/cli/commands/profile/create.d.ts.map +0 -1
  458. package/dist/types/src/cli/commands/profile/delete.d.ts.map +0 -1
  459. package/dist/types/src/cli/commands/profile/import.d.ts.map +0 -1
  460. package/dist/types/src/cli/commands/profile/index.d.ts.map +0 -1
  461. package/dist/types/src/cli/commands/profile/inspect.d.ts.map +0 -1
  462. package/dist/types/src/cli/commands/profile/list.d.ts.map +0 -1
  463. package/dist/types/src/cli/commands/profile/reset.d.ts.map +0 -1
  464. package/dist/types/src/cli/commands/profile/util.d.ts.map +0 -1
  465. package/dist/types/src/cli/index.d.ts +0 -2
  466. package/dist/types/src/cli/index.d.ts.map +0 -1
  467. package/dist/types/src/cli/plugin.d.ts +0 -4
  468. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  469. package/dist/types/src/cli/testing/test-console.d.ts +0 -37
  470. package/dist/types/src/cli/testing/test-console.d.ts.map +0 -1
  471. package/src/capabilities/app-graph-builder/index.ts +0 -7
  472. package/src/capabilities/client/index.ts +0 -7
  473. package/src/capabilities/migrations/index.ts +0 -7
  474. package/src/capabilities/operation-resolver/index.ts +0 -7
  475. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -249
  476. package/src/capabilities/react-context/index.ts +0 -7
  477. package/src/capabilities/react-surface/index.ts +0 -7
  478. package/src/capabilities/schema-defs/index.ts +0 -7
  479. package/src/capabilities/schema-defs/schema-defs.ts +0 -36
  480. package/src/cli/index.ts +0 -5
  481. package/src/cli/testing/test-console.ts +0 -88
  482. /package/dist/lib/{browser/types/index.mjs.map → neutral/ClientPlugin.mjs.map} +0 -0
  483. /package/dist/lib/{node-esm/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  484. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  485. /package/dist/types/src/capabilities/{migrations/migrations.d.ts → migrations.d.ts} +0 -0
  486. /package/dist/types/src/capabilities/{react-context/react-context.d.ts → react-context.d.ts} +0 -0
  487. /package/dist/types/src/capabilities/{schema-defs/schema-defs.d.ts → schema-defs.d.ts} +0 -0
  488. /package/dist/types/src/{cli/commands → commands}/device/index.d.ts +0 -0
  489. /package/dist/types/src/{cli/commands → commands}/device/info/index.d.ts +0 -0
  490. /package/dist/types/src/{cli/commands → commands}/device/info/info.test.d.ts +0 -0
  491. /package/dist/types/src/{cli/commands → commands}/device/list/index.d.ts +0 -0
  492. /package/dist/types/src/{cli/commands → commands}/device/list/list.test.d.ts +0 -0
  493. /package/dist/types/src/{cli/commands → commands}/device/update/index.d.ts +0 -0
  494. /package/dist/types/src/{cli/commands → commands}/device/update/update.d.ts +0 -0
  495. /package/dist/types/src/{cli/commands → commands}/device/util.d.ts +0 -0
  496. /package/dist/types/src/{cli/commands → commands}/edge/index.d.ts +0 -0
  497. /package/dist/types/src/{cli/commands → commands}/edge/status.d.ts +0 -0
  498. /package/dist/types/src/{cli/commands → commands}/halo/create/create.test.d.ts +0 -0
  499. /package/dist/types/src/{cli/commands → commands}/halo/create/index.d.ts +0 -0
  500. /package/dist/types/src/{cli/commands → commands}/halo/credential/add/add.d.ts +0 -0
  501. /package/dist/types/src/{cli/commands → commands}/halo/credential/add/index.d.ts +0 -0
  502. /package/dist/types/src/{cli/commands → commands}/halo/credential/index.d.ts +0 -0
  503. /package/dist/types/src/{cli/commands → commands}/halo/credential/list/index.d.ts +0 -0
  504. /package/dist/types/src/{cli/commands → commands}/halo/credential/list/list.test.d.ts +0 -0
  505. /package/dist/types/src/{cli/commands → commands}/halo/identity/identity.test.d.ts +0 -0
  506. /package/dist/types/src/{cli/commands → commands}/halo/identity/index.d.ts +0 -0
  507. /package/dist/types/src/{cli/commands → commands}/halo/index.d.ts +0 -0
  508. /package/dist/types/src/{cli/commands → commands}/halo/join/index.d.ts +0 -0
  509. /package/dist/types/src/{cli/commands → commands}/halo/join/join.test.d.ts +0 -0
  510. /package/dist/types/src/{cli/commands → commands}/halo/keys/index.d.ts +0 -0
  511. /package/dist/types/src/{cli/commands → commands}/halo/keys/keys.test.d.ts +0 -0
  512. /package/dist/types/src/{cli/commands → commands}/halo/recover/index.d.ts +0 -0
  513. /package/dist/types/src/{cli/commands → commands}/halo/recover/recover.d.ts +0 -0
  514. /package/dist/types/src/{cli/commands → commands}/halo/recover/recover.test.d.ts +0 -0
  515. /package/dist/types/src/{cli/commands → commands}/halo/seed/index.d.ts +0 -0
  516. /package/dist/types/src/{cli/commands → commands}/halo/seed/seed.d.ts +0 -0
  517. /package/dist/types/src/{cli/commands → commands}/halo/share/index.d.ts +0 -0
  518. /package/dist/types/src/{cli/commands → commands}/halo/share/share.d.ts +0 -0
  519. /package/dist/types/src/{cli/commands → commands}/halo/update/index.d.ts +0 -0
  520. /package/dist/types/src/{cli/commands → commands}/halo/update/update.d.ts +0 -0
  521. /package/dist/types/src/{cli/commands → commands}/halo/update/update.test.d.ts +0 -0
  522. /package/dist/types/src/{cli/commands → commands}/halo/util.d.ts +0 -0
  523. /package/dist/types/src/{cli/commands → commands}/index.d.ts +0 -0
  524. /package/dist/types/src/{cli/commands → commands}/profile/delete.d.ts +0 -0
  525. /package/dist/types/src/{cli/commands → commands}/profile/inspect.d.ts +0 -0
  526. /package/dist/types/src/{cli/commands → commands}/profile/list.d.ts +0 -0
  527. /package/dist/types/src/{cli/commands → commands}/profile/util.d.ts +0 -0
  528. /package/src/{cli/commands → commands}/config/index.ts +0 -0
  529. /package/src/{cli/commands → commands}/device/index.ts +0 -0
  530. /package/src/{cli/commands → commands}/device/info/index.ts +0 -0
  531. /package/src/{cli/commands → commands}/device/list/index.ts +0 -0
  532. /package/src/{cli/commands → commands}/device/update/index.ts +0 -0
  533. /package/src/{cli/commands → commands}/device/util.ts +0 -0
  534. /package/src/{cli/commands → commands}/edge/index.ts +0 -0
  535. /package/src/{cli/commands → commands}/halo/create/index.ts +0 -0
  536. /package/src/{cli/commands → commands}/halo/credential/add/add.ts +0 -0
  537. /package/src/{cli/commands → commands}/halo/credential/add/index.ts +0 -0
  538. /package/src/{cli/commands → commands}/halo/credential/index.ts +0 -0
  539. /package/src/{cli/commands → commands}/halo/credential/list/index.ts +0 -0
  540. /package/src/{cli/commands → commands}/halo/identity/identity.test.ts +0 -0
  541. /package/src/{cli/commands → commands}/halo/identity/index.ts +0 -0
  542. /package/src/{cli/commands → commands}/halo/index.ts +0 -0
  543. /package/src/{cli/commands → commands}/halo/join/index.ts +0 -0
  544. /package/src/{cli/commands → commands}/halo/join/join.test.ts +0 -0
  545. /package/src/{cli/commands → commands}/halo/join/join.ts +0 -0
  546. /package/src/{cli/commands → commands}/halo/keys/index.ts +0 -0
  547. /package/src/{cli/commands → commands}/halo/keys/keys.test.ts +0 -0
  548. /package/src/{cli/commands → commands}/halo/recover/index.ts +0 -0
  549. /package/src/{cli/commands → commands}/halo/recover/recover.test.ts +0 -0
  550. /package/src/{cli/commands → commands}/halo/recover/recover.ts +0 -0
  551. /package/src/{cli/commands → commands}/halo/seed/index.ts +0 -0
  552. /package/src/{cli/commands → commands}/halo/share/index.ts +0 -0
  553. /package/src/{cli/commands → commands}/halo/share/share.ts +0 -0
  554. /package/src/{cli/commands → commands}/halo/update/index.ts +0 -0
  555. /package/src/{cli/commands → commands}/halo/util.ts +0 -0
  556. /package/src/{cli/commands → commands}/index.ts +0 -0
  557. /package/src/{cli/commands → commands}/profile/create.ts +0 -0
  558. /package/src/{cli/commands → commands}/profile/delete.ts +0 -0
  559. /package/src/{cli/commands → commands}/profile/import.ts +0 -0
  560. /package/src/{cli/commands → commands}/profile/index.ts +0 -0
  561. /package/src/{cli/commands → commands}/profile/inspect.ts +0 -0
  562. /package/src/{cli/commands → commands}/profile/reset.ts +0 -0
  563. /package/src/{cli/commands → commands}/profile/util.ts +0 -0
@@ -5,66 +5,76 @@
5
5
  import { type Resource } from '@dxos/react-ui';
6
6
  import { translations as shellTranslations } from '@dxos/shell/react';
7
7
 
8
- import { meta } from './meta';
8
+ import { meta } from '#meta';
9
9
 
10
+ // TODO(burdon): Disambiguate with sdk/shell
10
11
  const pluginTranslations = [
11
12
  {
12
13
  'en-US': {
13
14
  [meta.id]: {
14
- 'account label': 'User profile',
15
- 'profile label': 'Profile',
16
- 'profile description': 'You can adjust how your user settings here.',
17
- 'devices label': 'Devices',
18
- 'devices verbose label': 'Manage devices',
19
- 'add device description':
15
+ 'account.label': 'User profile',
16
+ 'profile.label': 'Profile',
17
+ 'profile.description': 'User profile and account settings.',
18
+ 'devices.label': 'Devices',
19
+ 'add-device.label': 'Add device',
20
+ 'devices-verbose.label': 'Manage devices',
21
+ 'add-device.description':
20
22
  'Authenticating another device is a two-step process. To get started, create a code using the button below.',
21
- 'devices description':
22
- 'You can add and remove devices, configure your agent in the cloud, reset this device, or log in as a different identity here.',
23
- 'create device invitation label': 'Create code',
24
- 'qr code description':
23
+ 'devices.description': 'Devices, cloud agents, and account access for this identity.',
24
+ 'create-device-invitation.label': 'Create code',
25
+ 'qr-code.description':
25
26
  'Scan this QR code using the device you want to log in to, or copy the URL and share it with the new device.',
26
- 'security label': 'Security',
27
- 'reset device description': 'Log out from this device, erasing all the data on this device.',
28
- 'join new identity description':
27
+ 'security.label': 'Security',
28
+ 'reset-device.description': 'Log out from this device, erasing all the data on this device.',
29
+ 'join-new-identity.description':
29
30
  'Log out from this device, erasing all the data currently on this device, and use a QR code or URL to log in.',
30
- 'recover identity description':
31
+ 'recover-identity.description':
31
32
  'Log out from this device, erasing all the data currently on this device, and use a passkey or recovery code to log in.',
32
- 'danger zone title': 'Log out',
33
- 'danger zone description':
33
+ 'danger-zone.title': 'Log out',
34
+ 'danger-zone.description':
34
35
  'Because Composer is decentralized, logging out entails erasing all the data on this device. If you have any data on this device that you’d like to keep, you can log in on a separate device using a passkey or complete a peer-to-peer device invitation above.',
35
- 'display name label': 'Display name',
36
- 'display name description': 'Your name as it appears in the app.',
37
- 'display name input placeholder': 'Enter a name',
38
- 'icon label': 'Avatar',
39
- 'icon description': 'The emoji used to represent the user.',
40
- 'hue label': 'Color',
41
- 'hue description':
36
+ 'display-name.label': 'Display name',
37
+ 'display-name.description': 'Your name as it appears in the app.',
38
+ 'display-name-input.placeholder': 'Enter a name',
39
+ 'icon.label': 'Avatar',
40
+ 'icon.description': 'The emoji used to represent the user.',
41
+ 'hue.label': 'Color',
42
+ 'hue.description':
42
43
  '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.',
43
- 'did label': 'DID',
44
- 'did description': 'Your unique ID.',
45
- 'open user account label': 'Open user account',
46
- 'manage credentials dialog title': 'Manage Account Recovery',
47
- 'credentials list label': 'Recovery credentials',
48
- 'no credentials title': 'WARNING: There is currently no way to recover your account.',
49
- 'no credentials message': 'Create a recovery credential above to secure your account.',
50
- 'recovery setup dialog title': 'Account Security',
51
- 'recovery setup dialog description':
44
+ 'did.label': 'DID',
45
+ 'did.description': 'Your unique ID.',
46
+ 'open-user-account.label': 'Open user account',
47
+ 'manage-credentials-dialog.title': 'Manage Account Recovery',
48
+ 'credentials-list.label': 'Recovery credentials',
49
+ 'no-credentials.title': 'WARNING: There is currently no way to recover your account.',
50
+ 'no-credentials.message': 'Create a recovery credential above to secure your account.',
51
+ 'recovery-setup-dialog.title': 'Account Security',
52
+ 'recovery-setup-dialog.description':
52
53
  'In order to maintain access to your account you need to register a recovery credential. Passkeys are the recommended way to do this, they can be stored in your browser or in a password manager.',
53
- 'create passkey label': 'Create Passkey',
54
+ 'create-passkey.label': 'Create Passkey',
54
55
  // TODO(wittjosiah): At link to user-focused passkey information.
55
56
  // Something like https://www.tomsguide.com/news/what-are-passkeys.
56
- 'create passkey description':
57
+ 'create-passkey.description':
57
58
  'A passkey is a secure and easy to use credential that can be used to recover your account.',
58
- 'create recovery code label': 'Create Recovery Code',
59
- 'create recovery code description': 'A recovery code is 12 word phrase representing a private key.',
60
- 'recovery code dialog title': 'Recovery Code',
61
- 'recovery code dialog description':
59
+ 'create-recovery-code.label': 'Create Recovery Code',
60
+ 'create-recovery-code.description': 'A recovery code is 12 word phrase representing a private key.',
61
+ 'recovery-code-dialog.title': 'Recovery Code',
62
+ 'recovery-code-dialog.description':
62
63
  'This is your identity recovery code, store it in a safe place. You can use it to recover your identity if you ever lose access to your devices.',
63
- 'recovery code dialog warning 1': 'NOTE: This code will not be displayed again.',
64
- 'recovery code dialog warning 2':
64
+ 'recovery-code-dialog-warning-1.message': 'NOTE: This code will not be displayed again.',
65
+ 'recovery-code-dialog-warning-2.message':
65
66
  'It is your private key for recovering DXOS data. Anyone with this key will be able to gain access to your account.',
66
- 'recovery code confirmation label': 'Please confirm you have saved the code.',
67
- 'continue label': 'Continue',
67
+ 'recovery-code-confirmation.label': 'Please confirm you have saved the code.',
68
+ 'continue.label': 'Continue',
69
+ 'auth-code.message': 'Authorization code',
70
+ 'auth-other-device-emoji.message': 'Authorization icon',
71
+ 'cancel.label': 'Cancel',
72
+ 'join-new-identity.label': 'Join an existing identity',
73
+ 'qr.label': 'QR Code',
74
+ 'recover-identity.label': 'Use a recovery code',
75
+ 'reset-device.label': 'Reset storage',
76
+ 'reset-dialog.description': 'Reset storage',
77
+ 'reset-dialog.title': 'Reset storage',
68
78
  },
69
79
  },
70
80
  },
@@ -7,7 +7,7 @@ import { type Client } from '@dxos/client';
7
7
  import { type ObjectMigration } from '@dxos/client/echo';
8
8
  import { type Type } from '@dxos/echo';
9
9
 
10
- import { meta } from '../meta';
10
+ import { meta } from '#meta';
11
11
 
12
12
  export namespace ClientCapabilities {
13
13
  export const Client = Capability.make<Client>(`${meta.id}.capability.client`);
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { ActivationEvent } from '@dxos/app-framework';
6
6
 
7
- import { meta } from '../meta';
7
+ import { meta } from '#meta';
8
8
 
9
9
  export namespace ClientEvents {
10
10
  export const ClientReady = ActivationEvent.make(`${meta.id}.event.client-ready`);
@@ -7,9 +7,8 @@ import * as Schema from 'effect/Schema';
7
7
 
8
8
  import { Capability } from '@dxos/app-framework';
9
9
  import { type Client, type ClientOptions, PublicKey } from '@dxos/client';
10
- import { Operation } from '@dxos/operation';
11
10
 
12
- import { meta } from '../meta';
11
+ import { meta } from '#meta';
13
12
 
14
13
  // TODO(wittjosiah): Factor out. Generate?
15
14
  const IdentitySchema = Schema.Struct({
@@ -91,115 +90,6 @@ export namespace ClientAction {
91
90
  }) {}
92
91
  }
93
92
 
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
-
203
93
  export type ClientPluginOptions = ClientOptions & {
204
94
  /**
205
95
  * Base origin for the invitation link.
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/DevicesContainer/DevicesContainer.tsx", "../../../src/containers/DevicesContainer/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { QR } from 'react-qr-rounded';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { log } from '@dxos/log';\nimport { useClient, useMulticastObservable } from '@dxos/react-client';\nimport { type Device, useDevices } from '@dxos/react-client/halo';\nimport { type CancellableInvitationObservable, Invitation, InvitationEncoder } from '@dxos/react-client/invitations';\nimport { useNetworkStatus } from '@dxos/react-client/mesh';\nimport { Button, Clipboard, Icon, IconButton, List, useId, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\nimport { AuthCode, Centered, DeviceListItem, Emoji, Viewport, translationKey } from '@dxos/shell/react';\nimport { osTranslations } from '@dxos/ui-theme';\nimport { hexToEmoji } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { ClientOperation } from '../../types';\n\nexport type DevicesContainerProps = {\n createInvitationUrl?: (invitationCode: string) => string;\n};\n\nexport const DevicesContainer = ({ createInvitationUrl }: DevicesContainerProps) => {\n const { t } = useTranslation(translationKey);\n const { invokePromise } = useOperationInvoker();\n const devices = useDevices();\n const { swarm: connectionState } = useNetworkStatus();\n\n const handleResetStorage = useCallback(() => invokePromise(ClientOperation.ResetStorage, {}), [invokePromise]);\n\n const handleRecover = useCallback(\n () => invokePromise(ClientOperation.ResetStorage, { mode: 'recover' }),\n [invokePromise],\n );\n\n const handleJoinNewIdentity = useCallback(\n () => invokePromise(ClientOperation.ResetStorage, { mode: 'join new identity' }),\n [invokePromise],\n );\n\n return (\n <Clipboard.Provider>\n <Settings.Root>\n <Settings.Section\n title={t('devices verbose label', { ns: meta.id })}\n description={t('devices description', { ns: meta.id })}\n >\n <Settings.Frame>\n <Settings.FrameItem title={t('devices label', { ns: meta.id })}>\n <List>\n {devices.map((device: Device) => (\n <DeviceListItem key={device.deviceKey.toHex()} device={device} connectionState={connectionState} />\n ))}\n </List>\n </Settings.FrameItem>\n {createInvitationUrl && (\n <Settings.FrameItem title='Add device'>\n <DeviceInvitation createInvitationUrl={createInvitationUrl} />\n </Settings.FrameItem>\n )}\n </Settings.Frame>\n </Settings.Section>\n <Settings.Section\n title={t('danger zone title', { ns: meta.id })}\n description={t('danger zone description', { ns: meta.id })}\n >\n <Settings.Group>\n <Settings.Item title={t('reset device label')} description={t('reset device description', { ns: meta.id })}>\n <Button variant='destructive' onClick={handleResetStorage} data-testid='devicesContainer.reset'>\n {t('reset device label')}\n </Button>\n </Settings.Item>\n <Settings.Item\n title={t('recover identity label')}\n description={t('recover identity description', { ns: meta.id })}\n >\n <Button variant='destructive' onClick={handleRecover} data-testid='devicesContainer.recover'>\n {t('recover identity label')}\n </Button>\n </Settings.Item>\n <Settings.Item\n title={t('join new identity label')}\n description={t('join new identity description', { ns: meta.id })}\n >\n <Button variant='destructive' onClick={handleJoinNewIdentity} data-testid='devicesContainer.joinExisting'>\n {t('join new identity label')}\n </Button>\n </Settings.Item>\n </Settings.Group>\n </Settings.Section>\n </Settings.Root>\n </Clipboard.Provider>\n );\n};\n\ntype DeviceInvitationProps = {\n invitation?: CancellableInvitationObservable;\n createInvitationUrl: (invitationCode: string) => string;\n onInvitationDone: () => void;\n onInvitationCreate: () => void;\n};\n\nconst DeviceInvitation = (props: Pick<DeviceInvitationProps, 'createInvitationUrl'>) => {\n const client = useClient();\n const [invitation, setInvitation] = useState<CancellableInvitationObservable>();\n\n const onInvitationCreate = useCallback(() => {\n const invitation = client.halo.share();\n if (client.config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {\n const subscription = invitation.subscribe((invitation: Invitation) => {\n const invitationCode = InvitationEncoder.encode(invitation);\n if (invitation.state === Invitation.State.CONNECTING) {\n log.info(JSON.stringify({ invitationCode, authCode: invitation.authCode }));\n subscription.unsubscribe();\n }\n });\n }\n setInvitation(invitation);\n }, [client]);\n\n const onInvitationDone = useCallback(() => {\n setInvitation(undefined);\n }, []);\n\n if (invitation) {\n return <DeviceInvitationImpl {...props} {...{ invitation, onInvitationCreate, onInvitationDone }} />;\n } else {\n return <InvitationSection {...props} {...{ onInvitationCreate, onInvitationDone }} />;\n }\n};\n\nconst DeviceInvitationImpl = ({\n invitation: invitationObservable,\n createInvitationUrl,\n onInvitationDone,\n onInvitationCreate,\n}: DeviceInvitationProps) => {\n const invitation = useMulticastObservable(invitationObservable!);\n const url = createInvitationUrl(InvitationEncoder.encode(invitation));\n\n useEffect(() => {\n if (invitation.state >= Invitation.State.SUCCESS) {\n onInvitationDone();\n }\n }, [invitation.state]);\n\n return <InvitationSection {...invitation} {...{ url, onInvitationDone, onInvitationCreate }} />;\n};\n\ntype InvitationComponentProps = Partial<\n Pick<Invitation, 'authCode' | 'invitationId'> &\n Pick<DeviceInvitationProps, 'onInvitationDone' | 'onInvitationCreate'> & {\n state: number;\n url: string;\n }\n>;\n\nconst InvitationSection = ({\n state = -1,\n authCode,\n invitationId = 'never',\n url = 'never',\n onInvitationDone = () => {},\n onInvitationCreate = () => {},\n}: InvitationComponentProps) => {\n const { t } = useTranslation(meta.id);\n const activeView =\n state < 0\n ? 'init'\n : state >= Invitation.State.CANCELLED\n ? 'complete'\n : state >= Invitation.State.READY_FOR_AUTHENTICATION && authCode\n ? 'auth-code'\n : 'qr-code';\n return activeView === 'init' ? (\n <>\n <p className='text-description mb-2'>{t('add device description')}</p>\n <IconButton\n icon='ph--plus--regular'\n label={t('create device invitation label')}\n disabled={state >= 0}\n classNames='w-full'\n data-testid='devicesContainer.createInvitation'\n onClick={onInvitationCreate}\n />\n </>\n ) : (\n <Viewport.Root activeView={activeView}>\n <Viewport.Views>\n <Viewport.View id='init'>\n {/* This view intentionally left blank while conditionally rendering the viewport. */}\n </Viewport.View>\n <Viewport.View id='complete'>\n <InvitationComplete statusValue={state} />\n </Viewport.View>\n <Viewport.View id='auth-code'>\n <InvitationAuthCode id={invitationId} code={authCode ?? 'never'} onCancel={onInvitationDone} />\n </Viewport.View>\n <Viewport.View id='qr-code'>\n <InvitationQR id={invitationId} url={url} onCancel={onInvitationDone} />\n </Viewport.View>\n </Viewport.Views>\n </Viewport.Root>\n );\n};\n\nconst InvitationQR = ({ id, url, onCancel }: { id: string; url: string; onCancel: () => void }) => {\n const { t } = useTranslation(osTranslations);\n const qrLabel = useId('devices-container__qr-code');\n const emoji = hexToEmoji(id);\n return (\n <>\n <p className='text-description'>{t('qr code description', { ns: meta.id })}</p>\n <div role='group' className='grid grid-cols-[1fr_min-content]'>\n <div className='flex justify-center py-4'>\n <div role='none' className='w-full md:max-w-80 aspect-square relative text-description'>\n <QR\n rounding={100}\n backgroundColor='transparent'\n color='currentColor'\n aria-labelledby={qrLabel}\n errorCorrectionLevel='Q'\n cutout={true}\n >\n {url ?? 'never'}\n </QR>\n <Centered>\n <Emoji text={emoji} />\n </Centered>\n </div>\n </div>\n <span id={qrLabel} className='sr-only'>\n {t('qr label')}\n </span>\n </div>\n {/* TODO(burdon): Factor out button bar */}\n <div className='flex justify-center'>\n <div className='flex gap-2'>\n <Clipboard.Button value={url ?? 'never'} />\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </div>\n </div>\n </>\n );\n};\n\nconst InvitationAuthCode = ({ id, code, onCancel }: { id: string; code: string; onCancel: () => void }) => {\n const { t } = useTranslation(osTranslations);\n const emoji = hexToEmoji(id);\n\n return (\n <>\n <p className='text-description'>{t('auth other device emoji message')}</p>\n {emoji && <Emoji text={emoji} className='mx-auto my-2 text-center' />}\n <p className='text-description'>{t('auth code message')}</p>\n <AuthCode code={code} large classNames='mx-auto my-2 text-center grow' />\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </>\n );\n};\n\nconst InvitationComplete = ({ statusValue }: { statusValue: number }) => {\n return statusValue > 0 ? (\n <Icon icon='ph--check--regular' size={6} classNames='m-1.5' />\n ) : (\n <Icon icon='ph--x--regular' size={6} classNames='m-1.5' />\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { DevicesContainer } from './DevicesContainer';\n\nexport default DevicesContainer;\n"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "useEffect", "useState", "QR", "useOperationInvoker", "log", "useClient", "useMulticastObservable", "useDevices", "Invitation", "InvitationEncoder", "useNetworkStatus", "Button", "Clipboard", "Icon", "IconButton", "List", "useId", "useTranslation", "Settings", "AuthCode", "Centered", "DeviceListItem", "Emoji", "Viewport", "translationKey", "osTranslations", "hexToEmoji", "DevicesContainer", "createInvitationUrl", "t", "useTranslation", "translationKey", "invokePromise", "useOperationInvoker", "devices", "useDevices", "swarm", "connectionState", "useNetworkStatus", "handleResetStorage", "useCallback", "ClientOperation", "ResetStorage", "handleRecover", "mode", "handleJoinNewIdentity", "Clipboard", "Provider", "Settings", "Root", "Section", "title", "ns", "meta", "id", "description", "Frame", "FrameItem", "List", "map", "device", "DeviceListItem", "key", "deviceKey", "toHex", "DeviceInvitation", "Group", "Item", "Button", "variant", "onClick", "data-testid", "props", "client", "useClient", "invitation", "setInvitation", "useState", "onInvitationCreate", "halo", "share", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "subscription", "subscribe", "invitationCode", "InvitationEncoder", "encode", "state", "Invitation", "State", "CONNECTING", "log", "info", "JSON", "stringify", "authCode", "unsubscribe", "onInvitationDone", "undefined", "DeviceInvitationImpl", "InvitationSection", "invitationObservable", "useMulticastObservable", "url", "useEffect", "SUCCESS", "invitationId", "activeView", "CANCELLED", "READY_FOR_AUTHENTICATION", "p", "className", "IconButton", "icon", "label", "disabled", "classNames", "Viewport", "Views", "View", "InvitationComplete", "statusValue", "InvitationAuthCode", "code", "onCancel", "InvitationQR", "osTranslations", "qrLabel", "useId", "emoji", "hexToEmoji", "div", "role", "QR", "rounding", "backgroundColor", "color", "aria-labelledby", "errorCorrectionLevel", "cutout", "Centered", "Emoji", "text", "span", "value", "AuthCode", "large", "Icon", "size", "DevicesContainer"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/JoinDialog/JoinDialog.tsx", "../../../src/containers/JoinDialog/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/types';\nimport { type InvitationResult } from '@dxos/react-client/invitations';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { JoinPanel, type JoinPanelProps } from '@dxos/shell/react';\nimport { osTranslations } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\nimport { ClientOperation } from '../../types';\n\nexport const JoinDialog = (props: JoinPanelProps) => {\n const { invokePromise } = useOperationInvoker();\n const { t } = useTranslation(meta.id);\n\n const handleCancelResetStorage = useCallback(() => invokePromise(ClientOperation.ShareIdentity), [invokePromise]);\n\n const handleDone = useCallback(\n async (result: InvitationResult | null) => {\n if (result?.identityKey) {\n await Promise.all([\n invokePromise(LayoutOperation.UpdateDialog, { state: false }),\n invokePromise(ObservabilityOperation.SendEvent, {\n name: props.initialDisposition === 'recover-identity' ? 'identity.recover' : 'identity.join',\n }),\n ]);\n }\n },\n [invokePromise],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n <Dialog.Title classNames='sr-only'>{t('join space label', { ns: osTranslations })}</Dialog.Title>\n </Dialog.Header>\n <JoinPanel\n mode='halo-only'\n {...props}\n exitActionParent={<Dialog.Close asChild />}\n doneActionParent={<Dialog.Close asChild />}\n onCancelResetStorage={handleCancelResetStorage}\n onDone={handleDone}\n />\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { JoinDialog } from './JoinDialog';\n\nexport default JoinDialog;\n"],
5
- "mappings": ";;;;;;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,8BAA8B;AAEvC,SAASC,QAAQC,sBAAsB;AACvC,SAASC,iBAAsC;AAC/C,SAASC,sBAAsB;AAKxB,IAAMC,aAAa,CAACC,UAAAA;AACzB,QAAM,EAAEC,cAAa,IAAKC,oBAAAA;AAC1B,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,QAAMC,2BAA2BC,YAAY,MAAMP,cAAcQ,gBAAgBC,aAAa,GAAG;IAACT;GAAc;AAEhH,QAAMU,aAAaH,YACjB,OAAOI,WAAAA;AACL,QAAIA,QAAQC,aAAa;AACvB,YAAMC,QAAQC,IAAI;QAChBd,cAAce,gBAAgBC,cAAc;UAAEC,OAAO;QAAM,CAAA;QAC3DjB,cAAckB,uBAAuBC,WAAW;UAC9CC,MAAMrB,MAAMsB,uBAAuB,qBAAqB,qBAAqB;QAC/E,CAAA;OACD;IACH;EACF,GACA;IAACrB;GAAc;AAGjB,SACE,sBAAA,cAACsB,OAAOC,SAAO,MACb,sBAAA,cAACD,OAAOE,QAAM,MACZ,sBAAA,cAACF,OAAOG,OAAK;IAACC,YAAW;KAAWxB,EAAE,oBAAoB;IAAEyB,IAAIC;EAAe,CAAA,CAAA,CAAA,GAEjF,sBAAA,cAACC,WAAAA;IACCC,MAAK;IACJ,GAAG/B;IACJgC,kBAAkB,sBAAA,cAACT,OAAOU,OAAK;MAACC,SAAAA;;IAChCC,kBAAkB,sBAAA,cAACZ,OAAOU,OAAK;MAACC,SAAAA;;IAChCE,sBAAsB7B;IACtB8B,QAAQ1B;;AAIhB;;;AC9CA,IAAA,qBAAe2B;",
6
- "names": ["React", "useCallback", "useOperationInvoker", "LayoutOperation", "ObservabilityOperation", "Dialog", "useTranslation", "JoinPanel", "osTranslations", "JoinDialog", "props", "invokePromise", "useOperationInvoker", "t", "useTranslation", "meta", "id", "handleCancelResetStorage", "useCallback", "ClientOperation", "ShareIdentity", "handleDone", "result", "identityKey", "Promise", "all", "LayoutOperation", "UpdateDialog", "state", "ObservabilityOperation", "SendEvent", "name", "initialDisposition", "Dialog", "Content", "Header", "Title", "classNames", "ns", "osTranslations", "JoinPanel", "mode", "exitActionParent", "Close", "asChild", "doneActionParent", "onCancelResetStorage", "onDone", "JoinDialog"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/ProfileContainer/ProfileContainer.tsx", "../../../src/containers/ProfileContainer/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { useClient } from '@dxos/react-client';\nimport { type Identity, useIdentity } from '@dxos/react-client/halo';\nimport { ButtonGroup, Clipboard, Input, useTranslation } from '@dxos/react-ui';\nimport { Form, type FormFieldMap, type FormUpdateMeta, Settings } from '@dxos/react-ui-form';\nimport { EmojiPickerBlock, HuePicker } from '@dxos/react-ui-pickers';\nimport { hexToEmoji, hexToHue } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\n// TOOD(burdon): Factor out?\n// TODO(wittjosiah): Integrate annotations with translations.\nconst UserProfile = Schema.Struct({\n did: Schema.String.annotations({ title: 'DID' }),\n displayName: Schema.String.annotations({ title: 'Display name' }),\n emoji: Schema.String.annotations({ title: 'Avatar' }),\n hue: Schema.String.annotations({ title: 'Color' }),\n});\n\ntype UserProfile = Schema.Schema.Type<typeof UserProfile>;\n\n// TODO(thure): Factor out?\nconst getDefaultHueValue = (identity: Identity | null) => hexToHue(identity?.identityKey.toHex() ?? '0');\nconst getHueValue = (identity: Identity | null) => identity?.profile?.data?.hue || getDefaultHueValue(identity);\nconst getDefaultEmojiValue = (identity: Identity | null) => hexToEmoji(identity?.identityKey.toHex() ?? '0');\nconst getEmojiValue = (identity: Identity | null) => identity?.profile?.data?.emoji || getDefaultEmojiValue(identity);\n\nexport const ProfileContainer = () => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const identity = useIdentity();\n const [displayName, setDisplayNameDirectly] = useState(identity?.profile?.displayName ?? '');\n const [emoji, setEmojiDirectly] = useState<string>(getEmojiValue(identity));\n const [hue, setHueDirectly] = useState<string>(getHueValue(identity));\n\n const updateProfile = useMemo(\n () =>\n debounce(\n (profile: Partial<UserProfile>) =>\n client.halo.updateProfile({\n displayName: profile.displayName,\n data: {\n emoji: profile.emoji,\n hue: profile.hue,\n },\n }),\n 2_000,\n ),\n [],\n );\n\n const handleChange = useCallback(\n (profile: Partial<UserProfile>, meta: FormUpdateMeta<UserProfile>) => {\n for (const [path, changed] of Object.entries(meta.changed)) {\n if (changed) {\n switch (path) {\n case 'displayName':\n setDisplayNameDirectly(profile.displayName ?? '');\n break;\n case 'emoji':\n setEmojiDirectly(profile.emoji ?? getDefaultEmojiValue(identity));\n break;\n case 'hue':\n setHueDirectly(profile.hue ?? getDefaultHueValue(identity));\n break;\n default:\n break;\n }\n }\n }\n\n void updateProfile(profile);\n },\n [identity],\n );\n\n const values = useMemo(\n () => ({\n did: identity?.did,\n displayName,\n emoji,\n hue,\n }),\n [identity, displayName, emoji, hue],\n );\n\n // TODO(wittjosiah): Integrate descriptions with the form schema.\n const fieldMap = useMemo<FormFieldMap>(\n () => ({\n displayName: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(\n ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onValueChange(type, value),\n [onValueChange, type],\n );\n\n return (\n <Settings.ItemInput title={label} description={t('display name description')}>\n <Input.TextInput\n value={getValue()}\n onChange={handleChange}\n placeholder={t('display name input placeholder')}\n classNames='min-w-64'\n />\n </Settings.ItemInput>\n );\n },\n emoji: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextEmoji: string) => onValueChange(type, nextEmoji), [onValueChange, type]);\n const handleEmojiReset = useCallback(\n () => onValueChange(type, getDefaultEmojiValue(identity)),\n [onValueChange, type],\n );\n\n return (\n <Settings.Item title={label} description={t('icon description')}>\n <EmojiPickerBlock\n triggerVariant='default'\n emoji={getValue()}\n onChangeEmoji={handleChange}\n onClickClear={handleEmojiReset}\n classNames='justify-self-end'\n />\n </Settings.Item>\n );\n },\n hue: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange, type]);\n const handleHueReset = useCallback(\n () => onValueChange(type, getDefaultHueValue(identity)),\n [onValueChange, type],\n );\n\n return (\n <Settings.Item title={label} description={t('hue description')}>\n <div role='none' className='flex justify-self-end'>\n <HuePicker value={getValue()} onChange={handleChange} onReset={handleHueReset} />\n </div>\n </Settings.Item>\n );\n },\n // TODO(wittjosiah): We need text input annotations for disabled and copyable.\n did: ({ label, getValue }) => {\n return (\n <Settings.ItemInput title={label} description={t('did description')}>\n <ButtonGroup classNames='w-full'>\n <Input.TextInput value={getValue()} disabled classNames='min-w-64' />\n <Clipboard.IconButton value={getValue() ?? ''} />\n </ButtonGroup>\n </Settings.ItemInput>\n );\n },\n }),\n [t],\n );\n\n return (\n <Clipboard.Provider>\n <Settings.Root>\n <Settings.Section title={t('profile label')} description={t('profile description')}>\n <Form.Root schema={UserProfile} values={values} fieldMap={fieldMap} onValuesChanged={handleChange}>\n <Form.Content>\n <Form.FieldSet />\n </Form.Content>\n </Form.Root>\n </Settings.Section>\n </Settings.Root>\n </Clipboard.Provider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ProfileContainer } from './ProfileContainer';\n\nexport default ProfileContainer;\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "React", "useCallback", "useMemo", "useState", "debounce", "useClient", "useIdentity", "ButtonGroup", "Clipboard", "Input", "useTranslation", "Form", "Settings", "EmojiPickerBlock", "HuePicker", "hexToEmoji", "hexToHue", "UserProfile", "Struct", "did", "String", "annotations", "title", "displayName", "emoji", "hue", "getDefaultHueValue", "identity", "hexToHue", "identityKey", "toHex", "getHueValue", "profile", "data", "getDefaultEmojiValue", "hexToEmoji", "getEmojiValue", "ProfileContainer", "t", "useTranslation", "meta", "id", "client", "useClient", "useIdentity", "setDisplayNameDirectly", "useState", "setEmojiDirectly", "setHueDirectly", "updateProfile", "useMemo", "debounce", "halo", "handleChange", "useCallback", "path", "changed", "Object", "entries", "values", "fieldMap", "type", "label", "getValue", "onValueChange", "target", "value", "Settings", "ItemInput", "description", "Input", "TextInput", "onChange", "placeholder", "classNames", "nextEmoji", "handleEmojiReset", "Item", "EmojiPickerBlock", "triggerVariant", "onChangeEmoji", "onClickClear", "nextHue", "handleHueReset", "div", "role", "className", "HuePicker", "onReset", "ButtonGroup", "disabled", "Clipboard", "IconButton", "Provider", "Root", "Section", "Form", "schema", "onValuesChanged", "Content", "FieldSet", "ProfileContainer"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/RecoveryCodeDialog/RecoveryCodeDialog.tsx", "../../../src/containers/RecoveryCodeDialog/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useState } from 'react';\n\nimport { AlertDialog, Button, Clipboard, Input, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../../meta';\n\nexport type RecoveryCodeDialogProps = {\n code: string;\n};\n\n// TODO(burdon): Should have cancel button.\nexport const RecoveryCodeDialog = ({ code }: RecoveryCodeDialogProps) => {\n const { t } = useTranslation(meta.id);\n const [confirmation, setConfirmation] = useState(false);\n\n const handleConfirmation = useCallback((checked: boolean) => setConfirmation(checked), []);\n\n return (\n <AlertDialog.Content size='md' classNames='min-h-[15rem]'>\n <AlertDialog.Body>\n <AlertDialog.Title>{t('recovery code dialog title')}</AlertDialog.Title>\n <p className='py-4'>{t('recovery code dialog description')}</p>\n <Clipboard.Provider>\n <Code code={code} />\n </Clipboard.Provider>\n <div className='flex flex-col py-4 gap-2'>\n <p>{t('recovery code dialog warning 1')}</p>\n <p>{t('recovery code dialog warning 2')}</p>\n </div>\n <div className='flex items-center gap-2 pb-4'>\n <Input.Root>\n <Input.Checkbox\n data-testid='recoveryCode.confirm'\n checked={confirmation}\n onCheckedChange={handleConfirmation}\n />\n <Input.Label>{t('recovery code confirmation label')}</Input.Label>\n </Input.Root>\n </div>\n </AlertDialog.Body>\n <AlertDialog.ActionBar>\n <AlertDialog.Action asChild>\n <Button data-testid='recoveryCode.continue' variant='primary' disabled={!confirmation}>\n {t('continue label')}\n </Button>\n </AlertDialog.Action>\n </AlertDialog.ActionBar>\n </AlertDialog.Content>\n );\n};\n\nconst Code = ({ code }: { code: string }) => {\n const words = code.split(' ');\n return (\n <div className='relative p-2 border border-separator rounded-sm group'>\n <Clipboard.IconButton value={code} classNames='absolute top-2 right-2 invisible group-hover:visible' />\n <div className='grid grid-cols-4'>\n {words.map((word, i) => (\n <div key={i} className='flex items-center p-2 gap-2'>\n <div className='w-4 text-xs text-center text-subdued'>{i + 1}</div>\n <div className='text-sm'>{word}</div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { RecoveryCodeDialog } from './RecoveryCodeDialog';\n\nexport * from './RecoveryCodeDialog';\nexport default RecoveryCodeDialog;\n"],
5
- "mappings": ";;;;;AAIA,OAAOA,SAASC,aAAaC,gBAAgB;AAE7C,SAASC,aAAaC,QAAQC,WAAWC,OAAOC,sBAAsB;AAS/D,IAAMC,qBAAqB,CAAC,EAAEC,KAAI,MAA2B;AAClE,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAM,CAACC,cAAcC,eAAAA,IAAmBC,SAAS,KAAA;AAEjD,QAAMC,qBAAqBC,YAAY,CAACC,YAAqBJ,gBAAgBI,OAAAA,GAAU,CAAA,CAAE;AAEzF,SACE,sBAAA,cAACC,YAAYC,SAAO;IAACC,MAAK;IAAKC,YAAW;KACxC,sBAAA,cAACH,YAAYI,MAAI,MACf,sBAAA,cAACJ,YAAYK,OAAK,MAAEf,EAAE,4BAAA,CAAA,GACtB,sBAAA,cAACgB,KAAAA;IAAEC,WAAU;KAAQjB,EAAE,kCAAA,CAAA,GACvB,sBAAA,cAACkB,UAAUC,UAAQ,MACjB,sBAAA,cAACC,MAAAA;IAAKrB;OAER,sBAAA,cAACsB,OAAAA;IAAIJ,WAAU;KACb,sBAAA,cAACD,KAAAA,MAAGhB,EAAE,gCAAA,CAAA,GACN,sBAAA,cAACgB,KAAAA,MAAGhB,EAAE,gCAAA,CAAA,CAAA,GAER,sBAAA,cAACqB,OAAAA;IAAIJ,WAAU;KACb,sBAAA,cAACK,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,UAAQ;IACbC,eAAY;IACZhB,SAASL;IACTsB,iBAAiBnB;MAEnB,sBAAA,cAACe,MAAMK,OAAK,MAAE3B,EAAE,kCAAA,CAAA,CAAA,CAAA,CAAA,GAItB,sBAAA,cAACU,YAAYkB,WAAS,MACpB,sBAAA,cAAClB,YAAYmB,QAAM;IAACC,SAAAA;KAClB,sBAAA,cAACC,QAAAA;IAAON,eAAY;IAAwBO,SAAQ;IAAUC,UAAU,CAAC7B;KACtEJ,EAAE,gBAAA,CAAA,CAAA,CAAA,CAAA;AAMf;AAEA,IAAMoB,OAAO,CAAC,EAAErB,KAAI,MAAoB;AACtC,QAAMmC,QAAQnC,KAAKoC,MAAM,GAAA;AACzB,SACE,sBAAA,cAACd,OAAAA;IAAIJ,WAAU;KACb,sBAAA,cAACC,UAAUkB,YAAU;IAACC,OAAOtC;IAAMc,YAAW;MAC9C,sBAAA,cAACQ,OAAAA;IAAIJ,WAAU;KACZiB,MAAMI,IAAI,CAACC,MAAMC,MAChB,sBAAA,cAACnB,OAAAA;IAAIoB,KAAKD;IAAGvB,WAAU;KACrB,sBAAA,cAACI,OAAAA;IAAIJ,WAAU;KAAwCuB,IAAI,CAAA,GAC3D,sBAAA,cAACnB,OAAAA;IAAIJ,WAAU;KAAWsB,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAMtC;;;AC/DA,IAAA,6BAAeG;",
6
- "names": ["React", "useCallback", "useState", "AlertDialog", "Button", "Clipboard", "Input", "useTranslation", "RecoveryCodeDialog", "code", "t", "useTranslation", "meta", "id", "confirmation", "setConfirmation", "useState", "handleConfirmation", "useCallback", "checked", "AlertDialog", "Content", "size", "classNames", "Body", "Title", "p", "className", "Clipboard", "Provider", "Code", "div", "Input", "Root", "Checkbox", "data-testid", "onCheckedChange", "Label", "ActionBar", "Action", "asChild", "Button", "variant", "disabled", "words", "split", "IconButton", "value", "map", "word", "i", "key", "RecoveryCodeDialog"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx", "../../../src/containers/RecoveryCredentialsContainer/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { useCredentials } from '@dxos/react-client/halo';\nimport { Icon, IconButton, List, ListItem, Message, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\nimport { ClientOperation } from '../../types';\n\nexport const MANAGE_CREDENTIALS_DIALOG = `${meta.id}.ManageCredentialsDialog`;\n\nexport const RecoveryCredentialsContainer = () => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n const credentials = useCredentials();\n const recoveryCredentials = credentials.filter(\n (credential) => credential.subject.assertion['@type'] === 'dxos.halo.credentials.IdentityRecovery',\n );\n\n return (\n <Settings.Root>\n <Settings.Section title={t('recovery setup dialog title')} description={t('recovery setup dialog description')}>\n <Settings.Group>\n <Settings.Item title={t('create passkey label')} description={t('create passkey description')}>\n <IconButton\n label={t('create passkey label')}\n icon='ph--key--duotone'\n variant='primary'\n onClick={() => invokePromise(ClientOperation.CreatePasskey)}\n />\n </Settings.Item>\n <Settings.Item title={t('create recovery code label')} description={t('create recovery code description')}>\n <IconButton\n label={t('create recovery code label')}\n icon='ph--receipt--duotone'\n variant='default'\n onClick={() => invokePromise(ClientOperation.CreateRecoveryCode)}\n />\n </Settings.Item>\n </Settings.Group>\n </Settings.Section>\n <Settings.Section title={t('credentials list label')}>\n {recoveryCredentials.length < 1 ? (\n <Message.Root valence='error'>\n <Message.Title icon='ph--shield-warning--duotone'>{t('no credentials title')}</Message.Title>\n <Message.Content>{t('no credentials message')}</Message.Content>\n </Message.Root>\n ) : (\n <List>\n {recoveryCredentials.map((credential) => (\n <ListItem.Root key={credential.id?.toHex()}>\n <ListItem.Endcap>\n <Icon icon='ph--key--regular' />\n </ListItem.Endcap>\n <ListItem.Heading>{credential.issuanceDate.toLocaleString()}</ListItem.Heading>\n </ListItem.Root>\n ))}\n </List>\n )}\n </Settings.Section>\n </Settings.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { RecoveryCredentialsContainer } from './RecoveryCredentialsContainer';\n\nexport default RecoveryCredentialsContainer;\n"],
5
- "mappings": ";;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,2BAA2B;AACpC,SAASC,sBAAsB;AAC/B,SAASC,MAAMC,YAAYC,MAAMC,UAAUC,SAASC,sBAAsB;AAC1E,SAASC,gBAAgB;AAKlB,IAAMC,4BAA4B,GAAGC,KAAKC,EAAE;AAE5C,IAAMC,+BAA+B,MAAA;AAC1C,QAAM,EAAEC,EAAC,IAAKC,eAAeJ,KAAKC,EAAE;AACpC,QAAM,EAAEI,cAAa,IAAKC,oBAAAA;AAC1B,QAAMC,cAAcC,eAAAA;AACpB,QAAMC,sBAAsBF,YAAYG,OACtC,CAACC,eAAeA,WAAWC,QAAQC,UAAU,OAAA,MAAa,wCAAA;AAG5D,SACE,sBAAA,cAACC,SAASC,MAAI,MACZ,sBAAA,cAACD,SAASE,SAAO;IAACC,OAAOd,EAAE,6BAAA;IAAgCe,aAAaf,EAAE,mCAAA;KACxE,sBAAA,cAACW,SAASK,OAAK,MACb,sBAAA,cAACL,SAASM,MAAI;IAACH,OAAOd,EAAE,sBAAA;IAAyBe,aAAaf,EAAE,4BAAA;KAC9D,sBAAA,cAACkB,YAAAA;IACCC,OAAOnB,EAAE,sBAAA;IACToB,MAAK;IACLC,SAAQ;IACRC,SAAS,MAAMpB,cAAcqB,gBAAgBC,aAAa;OAG9D,sBAAA,cAACb,SAASM,MAAI;IAACH,OAAOd,EAAE,4BAAA;IAA+Be,aAAaf,EAAE,kCAAA;KACpE,sBAAA,cAACkB,YAAAA;IACCC,OAAOnB,EAAE,4BAAA;IACToB,MAAK;IACLC,SAAQ;IACRC,SAAS,MAAMpB,cAAcqB,gBAAgBE,kBAAkB;SAKvE,sBAAA,cAACd,SAASE,SAAO;IAACC,OAAOd,EAAE,wBAAA;KACxBM,oBAAoBoB,SAAS,IAC5B,sBAAA,cAACC,QAAQf,MAAI;IAACgB,SAAQ;KACpB,sBAAA,cAACD,QAAQE,OAAK;IAACT,MAAK;KAA+BpB,EAAE,sBAAA,CAAA,GACrD,sBAAA,cAAC2B,QAAQG,SAAO,MAAE9B,EAAE,wBAAA,CAAA,CAAA,IAGtB,sBAAA,cAAC+B,MAAAA,MACEzB,oBAAoB0B,IAAI,CAACxB,eACxB,sBAAA,cAACyB,SAASrB,MAAI;IAACsB,KAAK1B,WAAWV,IAAIqC,MAAAA;KACjC,sBAAA,cAACF,SAASG,QAAM,MACd,sBAAA,cAACC,MAAAA;IAAKjB,MAAK;OAEb,sBAAA,cAACa,SAASK,SAAO,MAAE9B,WAAW+B,aAAaC,eAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAQzE;;;AC7DA,IAAA,uCAAeC;",
6
- "names": ["React", "useOperationInvoker", "useCredentials", "Icon", "IconButton", "List", "ListItem", "Message", "useTranslation", "Settings", "MANAGE_CREDENTIALS_DIALOG", "meta", "id", "RecoveryCredentialsContainer", "t", "useTranslation", "invokePromise", "useOperationInvoker", "credentials", "useCredentials", "recoveryCredentials", "filter", "credential", "subject", "assertion", "Settings", "Root", "Section", "title", "description", "Group", "Item", "IconButton", "label", "icon", "variant", "onClick", "ClientOperation", "CreatePasskey", "CreateRecoveryCode", "length", "Message", "valence", "Title", "Content", "List", "map", "ListItem", "key", "toHex", "Endcap", "Icon", "Heading", "issuanceDate", "toLocaleString", "RecoveryCredentialsContainer"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/ResetDialog/ResetDialog.tsx", "../../../src/containers/ResetDialog/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React, { useCallback } from 'react';\n\nimport { Capability, type CapabilityManager } from '@dxos/app-framework';\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { useClient } from '@dxos/react-client';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { ConfirmReset, type ConfirmResetProps, translationKey } from '@dxos/shell/react';\n\nimport { type ClientPluginOptions } from '../../types';\n\nexport type ResetDialogProps = Pick<ConfirmResetProps, 'mode'> &\n Pick<ClientPluginOptions, 'onReset'> & {\n capabilityManager: CapabilityManager.CapabilityManager;\n };\n\nexport const ResetDialog = ({ mode, onReset, capabilityManager }: ResetDialogProps) => {\n const { t } = useTranslation(translationKey);\n const { invokePromise } = useOperationInvoker();\n const client = useClient();\n\n const handleReset = useCallback(async () => {\n await client.reset();\n const target =\n mode === 'join new identity' ? 'deviceInvitation' : mode === 'recover' ? 'recoverIdentity' : undefined;\n if (onReset) {\n await runAndForwardErrors(onReset({ target }).pipe(Effect.provideService(Capability.Service, capabilityManager)));\n }\n }, [client, mode, onReset, capabilityManager]);\n\n const handleCancel = useCallback(() => {\n void invokePromise(LayoutOperation.UpdateDialog, { state: false });\n }, [invokePromise]);\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n <Dialog.Title>{t('reset dialog title')}</Dialog.Title>\n </Dialog.Header>\n <Dialog.Description classNames='sr-only'>{t('reset dialog description')}</Dialog.Description>\n <ConfirmReset active mode={mode} onConfirm={handleReset} onCancel={handleCancel} />\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ResetDialog } from './ResetDialog';\n\nexport * from './ResetDialog';\nexport default ResetDialog;\n"],
5
- "mappings": ";AAIA,YAAYA,YAAY;AACxB,OAAOC,SAASC,mBAAmB;AAEnC,SAASC,kBAA0C;AACnD,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,2BAA2B;AACpC,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,sBAAsB;AACvC,SAASC,cAAsCC,sBAAsB;AAS9D,IAAMC,cAAc,CAAC,EAAEC,MAAMC,SAASC,kBAAiB,MAAoB;AAChF,QAAM,EAAEC,EAAC,IAAKC,eAAeC,cAAAA;AAC7B,QAAM,EAAEC,cAAa,IAAKC,oBAAAA;AAC1B,QAAMC,SAASC,UAAAA;AAEf,QAAMC,cAAcC,YAAY,YAAA;AAC9B,UAAMH,OAAOI,MAAK;AAClB,UAAMC,SACJb,SAAS,sBAAsB,qBAAqBA,SAAS,YAAY,oBAAoBc;AAC/F,QAAIb,SAAS;AACX,YAAMc,oBAAoBd,QAAQ;QAAEY;MAAO,CAAA,EAAGG,KAAYC,sBAAeC,WAAWC,SAASjB,iBAAAA,CAAAA,CAAAA;IAC/F;EACF,GAAG;IAACM;IAAQR;IAAMC;IAASC;GAAkB;AAE7C,QAAMkB,eAAeT,YAAY,MAAA;AAC/B,SAAKL,cAAce,gBAAgBC,cAAc;MAAEC,OAAO;IAAM,CAAA;EAClE,GAAG;IAACjB;GAAc;AAElB,SACE,sBAAA,cAACkB,OAAOC,SAAO,MACb,sBAAA,cAACD,OAAOE,QAAM,MACZ,sBAAA,cAACF,OAAOG,OAAK,MAAExB,EAAE,oBAAA,CAAA,CAAA,GAEnB,sBAAA,cAACqB,OAAOI,aAAW;IAACC,YAAW;KAAW1B,EAAE,0BAAA,CAAA,GAC5C,sBAAA,cAAC2B,cAAAA;IAAaC,QAAAA;IAAO/B;IAAYgC,WAAWtB;IAAauB,UAAUb;;AAGzE;;;AC1CA,IAAA,sBAAec;",
6
- "names": ["Effect", "React", "useCallback", "Capability", "useOperationInvoker", "LayoutOperation", "runAndForwardErrors", "useClient", "Dialog", "useTranslation", "ConfirmReset", "translationKey", "ResetDialog", "mode", "onReset", "capabilityManager", "t", "useTranslation", "translationKey", "invokePromise", "useOperationInvoker", "client", "useClient", "handleReset", "useCallback", "reset", "target", "undefined", "runAndForwardErrors", "pipe", "provideService", "Capability", "Service", "handleCancel", "LayoutOperation", "UpdateDialog", "state", "Dialog", "Content", "Header", "Title", "Description", "classNames", "ConfirmReset", "active", "onConfirm", "onCancel", "ResetDialog"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/operation';\nimport { CreateAtom, GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';\nimport { ConnectionState } from '@dxos/react-client/mesh';\n\nimport { meta } from '../../meta';\nimport { Account, ClientCapabilities, ClientOperation } from '../../types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* GraphBuilder.createExtension({\n id: meta.id,\n match: NodeMatcher.whenRoot,\n actions: () =>\n Effect.succeed([\n {\n id: `${meta.id}.open-user-account`,\n data: () => Operation.invoke(ClientOperation.ShareIdentity),\n properties: {\n label: ['open user account label', { ns: meta.id }],\n icon: 'ph--user--regular',\n disposition: 'menu',\n keyBinding: {\n macos: 'meta+shift+.',\n // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.\n windows: 'alt+shift+.',\n linux: 'alt+shift+>',\n },\n },\n },\n ]),\n connector: Effect.fnUntraced(function* (node, get) {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const identity = get(CreateAtom.fromObservable(client.halo.identity));\n const status = get(CreateAtom.fromObservable(client.mesh.networkStatus));\n\n return [\n {\n id: Account.id,\n type: meta.id,\n properties: {\n label: ['account label', { ns: meta.id }],\n icon: 'ph--user--regular',\n disposition: 'user-account',\n testId: 'clientPlugin.account',\n // NOTE: This currently needs to be the identity key because the fallback is generated from hex.\n userId: identity?.identityKey.toHex(),\n hue: identity?.profile?.data?.hue,\n emoji: identity?.profile?.data?.emoji,\n status: status.swarm === ConnectionState.OFFLINE ? 'error' : 'active',\n },\n nodes: [\n {\n id: Account.Profile,\n data: Account.Profile,\n type: meta.id,\n properties: {\n label: ['profile label', { ns: meta.id }],\n icon: 'ph--user--regular',\n },\n },\n {\n id: Account.Devices,\n data: Account.Devices,\n type: meta.id,\n properties: {\n label: ['devices label', { ns: meta.id }],\n icon: 'ph--devices--regular',\n testId: 'clientPlugin.devices',\n },\n },\n {\n id: Account.Security,\n data: Account.Security,\n type: meta.id,\n properties: {\n label: ['security label', { ns: meta.id }],\n icon: 'ph--key--regular',\n },\n },\n ],\n },\n ];\n }),\n });\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
- "mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,YAAYC,cAAcC,mBAAmB;AACtD,SAASC,uBAAuB;AAKhC,IAAA,4BAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAOC,aAAaC,gBAAgB;IACrDC,IAAIC,KAAKD;IACTE,OAAOC,YAAYC;IACnBC,SAAS,MACAC,eAAQ;MACb;QACEN,IAAI,GAAGC,KAAKD,EAAE;QACdO,MAAM,MAAMC,UAAUC,OAAOC,gBAAgBC,aAAa;QAC1DC,YAAY;UACVC,OAAO;YAAC;YAA2B;cAAEC,IAAIb,KAAKD;YAAG;;UACjDe,MAAM;UACNC,aAAa;UACbC,YAAY;YACVC,OAAO;;YAEPC,SAAS;YACTC,OAAO;UACT;QACF;MACF;KACD;IACHC,WAAkBzB,kBAAW,WAAW0B,MAAMC,KAAG;AAC/C,YAAMC,SAAS,OAAO9B,WAAW6B,IAAIE,mBAAmBC,MAAM;AAC9D,YAAMC,WAAWJ,IAAIK,WAAWC,eAAeL,OAAOM,KAAKH,QAAQ,CAAA;AACnE,YAAMI,SAASR,IAAIK,WAAWC,eAAeL,OAAOQ,KAAKC,aAAa,CAAA;AAEtE,aAAO;QACL;UACEjC,IAAIkC,QAAQlC;UACZmC,MAAMlC,KAAKD;UACXY,YAAY;YACVC,OAAO;cAAC;cAAiB;gBAAEC,IAAIb,KAAKD;cAAG;;YACvCe,MAAM;YACNC,aAAa;YACboB,QAAQ;;YAERC,QAAQV,UAAUW,YAAYC,MAAAA;YAC9BC,KAAKb,UAAUc,SAASlC,MAAMiC;YAC9BE,OAAOf,UAAUc,SAASlC,MAAMmC;YAChCX,QAAQA,OAAOY,UAAUC,gBAAgBC,UAAU,UAAU;UAC/D;UACAC,OAAO;YACL;cACE9C,IAAIkC,QAAQa;cACZxC,MAAM2B,QAAQa;cACdZ,MAAMlC,KAAKD;cACXY,YAAY;gBACVC,OAAO;kBAAC;kBAAiB;oBAAEC,IAAIb,KAAKD;kBAAG;;gBACvCe,MAAM;cACR;YACF;YACA;cACEf,IAAIkC,QAAQc;cACZzC,MAAM2B,QAAQc;cACdb,MAAMlC,KAAKD;cACXY,YAAY;gBACVC,OAAO;kBAAC;kBAAiB;oBAAEC,IAAIb,KAAKD;kBAAG;;gBACvCe,MAAM;gBACNqB,QAAQ;cACV;YACF;YACA;cACEpC,IAAIkC,QAAQe;cACZ1C,MAAM2B,QAAQe;cACdd,MAAMlC,KAAKD;cACXY,YAAY;gBACVC,OAAO;kBAAC;kBAAkB;oBAAEC,IAAIb,KAAKD;kBAAG;;gBACxCe,MAAM;cACR;YACF;;QAEJ;;IAEJ,CAAA;EACF,CAAA;AAEA,SAAOrB,WAAWwD,YAAYC,gBAAgBC,iBAAiBvD,UAAAA;AACjE,CAAA,CAAA;",
6
- "names": ["Effect", "Capability", "AppCapabilities", "Operation", "CreateAtom", "GraphBuilder", "NodeMatcher", "ConnectionState", "Capability", "makeModule", "fnUntraced", "extensions", "GraphBuilder", "createExtension", "id", "meta", "match", "NodeMatcher", "whenRoot", "actions", "succeed", "data", "Operation", "invoke", "ClientOperation", "ShareIdentity", "properties", "label", "ns", "icon", "disposition", "keyBinding", "macos", "windows", "linux", "connector", "node", "get", "client", "ClientCapabilities", "Client", "identity", "CreateAtom", "fromObservable", "halo", "status", "mesh", "networkStatus", "Account", "type", "testId", "userId", "identityKey", "toHex", "hue", "profile", "emoji", "swarm", "ConnectionState", "OFFLINE", "nodes", "Profile", "Devices", "Security", "contributes", "AppCapabilities", "AppGraphBuilder"]
7
- }
@@ -1,18 +0,0 @@
1
- // src/capabilities/client/index.ts
2
- import { Capability } from "@dxos/app-framework";
3
- var Client = Capability.lazy("Client", () => import("./client-MM3BHCWG.mjs"));
4
-
5
- // src/capabilities/operation-resolver/index.ts
6
- import { Capability as Capability2 } from "@dxos/app-framework";
7
- var OperationResolver = Capability2.lazy("OperationResolver", () => import("./operation-resolver-VSWA74RS.mjs"));
8
-
9
- // src/capabilities/schema-defs/index.ts
10
- import { Capability as Capability3 } from "@dxos/app-framework";
11
- var SchemaDefs = Capability3.lazy("SchemaDefs", () => import("./schema-defs-KAG6HQMI.mjs"));
12
-
13
- export {
14
- Client,
15
- OperationResolver,
16
- SchemaDefs
17
- };
18
- //# sourceMappingURL=chunk-ESDYRACB.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/schema-defs/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Client = Capability.lazy('Client', () => import('./client'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const SchemaDefs = Capability.lazy('SchemaDefs', () => import('./schema-defs'));\n"],
5
- "mappings": ";AAIA,SAASA,kBAAkB;AAEpB,IAAMC,SAASC,WAAWC,KAAK,UAAU,MAAM,OAAO,uBAAA,CAAA;;;ACF7D,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,oBAAoBC,YAAWC,KAAK,qBAAqB,MAAM,OAAO,mCAAA,CAAA;;;ACFnF,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,aAAaC,YAAWC,KAAK,cAAc,MAAM,OAAO,4BAAA,CAAA;",
6
- "names": ["Capability", "Client", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "SchemaDefs", "Capability", "lazy"]
7
- }