@dxos/plugin-client 0.8.4-main.bc674ce → 0.8.4-main.bcb3aa67d6

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 (360) hide show
  1. package/dist/lib/browser/chunk-ELAYKIQU.mjs +12 -0
  2. package/dist/lib/browser/chunk-ELAYKIQU.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  4. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-M43LJQ5U.mjs +175 -0
  6. package/dist/lib/browser/chunk-M43LJQ5U.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-WNJRYPGG.mjs +131 -0
  8. package/dist/lib/browser/chunk-WNJRYPGG.mjs.map +7 -0
  9. package/dist/lib/browser/cli/index.mjs +92 -80
  10. package/dist/lib/browser/cli/index.mjs.map +3 -3
  11. package/dist/lib/browser/create-agent-WXBNGUBQ.mjs +34 -0
  12. package/dist/lib/browser/create-agent-WXBNGUBQ.mjs.map +7 -0
  13. package/dist/lib/browser/create-identity-LIE4RCXJ.mjs +30 -0
  14. package/dist/lib/browser/create-identity-LIE4RCXJ.mjs.map +7 -0
  15. package/dist/lib/browser/create-passkey-PYZ47DJT.mjs +105 -0
  16. package/dist/lib/browser/create-passkey-PYZ47DJT.mjs.map +7 -0
  17. package/dist/lib/browser/create-recovery-code-NSRU3QDJ.mjs +44 -0
  18. package/dist/lib/browser/create-recovery-code-NSRU3QDJ.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +90 -93
  20. package/dist/lib/browser/index.mjs.map +4 -4
  21. package/dist/lib/browser/join-identity-B6DC2VW7.mjs +27 -0
  22. package/dist/lib/browser/join-identity-B6DC2VW7.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/operations/index.mjs +13 -0
  25. package/dist/lib/browser/operations/index.mjs.map +7 -0
  26. package/dist/lib/browser/recover-identity-Z3H4GJ3L.mjs +26 -0
  27. package/dist/lib/browser/recover-identity-Z3H4GJ3L.mjs.map +7 -0
  28. package/dist/lib/browser/redeem-passkey-ODK47PIR.mjs +82 -0
  29. package/dist/lib/browser/redeem-passkey-ODK47PIR.mjs.map +7 -0
  30. package/dist/lib/browser/redeem-token-OYXEFDM3.mjs +37 -0
  31. package/dist/lib/browser/redeem-token-OYXEFDM3.mjs.map +7 -0
  32. package/dist/lib/browser/reset-storage-JAU4CS2U.mjs +26 -0
  33. package/dist/lib/browser/reset-storage-JAU4CS2U.mjs.map +7 -0
  34. package/dist/lib/browser/share-identity-H2JNYYCP.mjs +31 -0
  35. package/dist/lib/browser/share-identity-H2JNYYCP.mjs.map +7 -0
  36. package/dist/lib/browser/testing/index.mjs +22 -0
  37. package/dist/lib/browser/testing/index.mjs.map +7 -0
  38. package/dist/lib/browser/types/index.mjs +4 -5
  39. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  40. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-IT5LAIV3.mjs +133 -0
  42. package/dist/lib/node-esm/chunk-IT5LAIV3.mjs.map +7 -0
  43. package/dist/lib/node-esm/chunk-J5RWSQT6.mjs +14 -0
  44. package/dist/lib/node-esm/chunk-J5RWSQT6.mjs.map +7 -0
  45. package/dist/lib/node-esm/chunk-SJ6FDER5.mjs +176 -0
  46. package/dist/lib/node-esm/chunk-SJ6FDER5.mjs.map +7 -0
  47. package/dist/lib/node-esm/cli/index.mjs +92 -80
  48. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  49. package/dist/lib/node-esm/create-agent-I7VGTH7O.mjs +35 -0
  50. package/dist/lib/node-esm/create-agent-I7VGTH7O.mjs.map +7 -0
  51. package/dist/lib/node-esm/create-identity-NWY3YT5C.mjs +31 -0
  52. package/dist/lib/node-esm/create-identity-NWY3YT5C.mjs.map +7 -0
  53. package/dist/lib/node-esm/create-passkey-2LQEEIAN.mjs +106 -0
  54. package/dist/lib/node-esm/create-passkey-2LQEEIAN.mjs.map +7 -0
  55. package/dist/lib/node-esm/create-recovery-code-2MVK5CVE.mjs +45 -0
  56. package/dist/lib/node-esm/create-recovery-code-2MVK5CVE.mjs.map +7 -0
  57. package/dist/lib/node-esm/index.mjs +90 -93
  58. package/dist/lib/node-esm/index.mjs.map +4 -4
  59. package/dist/lib/node-esm/join-identity-6NT75FSO.mjs +28 -0
  60. package/dist/lib/node-esm/join-identity-6NT75FSO.mjs.map +7 -0
  61. package/dist/lib/node-esm/meta.json +1 -1
  62. package/dist/lib/node-esm/operations/index.mjs +14 -0
  63. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  64. package/dist/lib/node-esm/recover-identity-3UKCQ2M4.mjs +27 -0
  65. package/dist/lib/node-esm/recover-identity-3UKCQ2M4.mjs.map +7 -0
  66. package/dist/lib/node-esm/redeem-passkey-TDNEMVJJ.mjs +83 -0
  67. package/dist/lib/node-esm/redeem-passkey-TDNEMVJJ.mjs.map +7 -0
  68. package/dist/lib/node-esm/redeem-token-ZBYMFFKM.mjs +38 -0
  69. package/dist/lib/node-esm/redeem-token-ZBYMFFKM.mjs.map +7 -0
  70. package/dist/lib/node-esm/reset-storage-NY3ALG72.mjs +27 -0
  71. package/dist/lib/node-esm/reset-storage-NY3ALG72.mjs.map +7 -0
  72. package/dist/lib/node-esm/share-identity-FDIZWTDG.mjs +32 -0
  73. package/dist/lib/node-esm/share-identity-FDIZWTDG.mjs.map +7 -0
  74. package/dist/lib/node-esm/testing/index.mjs +23 -0
  75. package/dist/lib/node-esm/testing/index.mjs.map +7 -0
  76. package/dist/lib/node-esm/types/index.mjs +4 -5
  77. package/dist/types/src/ClientPlugin.d.ts +1 -1
  78. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  80. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/client.d.ts +8 -0
  82. package/dist/types/src/capabilities/client.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/index.d.ts +32 -7
  84. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/migrations.d.ts +5 -0
  86. package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
  87. package/dist/types/src/capabilities/navigation-handler/index.d.ts +4 -0
  88. package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +15 -0
  90. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/{client/index.d.ts → node.d.ts} +7 -3
  92. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  94. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/{react-context/react-context.d.ts → react-context.d.ts} +1 -1
  96. package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/react-surface.d.ts +9 -0
  98. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/schema-defs.d.ts +5 -0
  100. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -0
  101. package/dist/types/src/cli/commands/config/view.d.ts.map +1 -1
  102. package/dist/types/src/cli/commands/device/info/info.d.ts +2 -2
  103. package/dist/types/src/cli/commands/device/info/info.d.ts.map +1 -1
  104. package/dist/types/src/cli/commands/device/list/list.d.ts +2 -2
  105. package/dist/types/src/cli/commands/device/list/list.d.ts.map +1 -1
  106. package/dist/types/src/cli/commands/device/update/update.d.ts.map +1 -1
  107. package/dist/types/src/cli/commands/edge/status.d.ts.map +1 -1
  108. package/dist/types/src/cli/commands/halo/create/create.d.ts +2 -2
  109. package/dist/types/src/cli/commands/halo/create/create.d.ts.map +1 -1
  110. package/dist/types/src/cli/commands/halo/credential/list/list.d.ts +1 -1
  111. package/dist/types/src/cli/commands/halo/credential/list/list.d.ts.map +1 -1
  112. package/dist/types/src/cli/commands/halo/identity/identity.d.ts +2 -2
  113. package/dist/types/src/cli/commands/halo/identity/identity.d.ts.map +1 -1
  114. package/dist/types/src/cli/commands/halo/keys/keys.d.ts +2 -2
  115. package/dist/types/src/cli/commands/halo/keys/keys.d.ts.map +1 -1
  116. package/dist/types/src/cli/commands/halo/seed/seed.d.ts.map +1 -1
  117. package/dist/types/src/cli/commands/halo/update/update.d.ts.map +1 -1
  118. package/dist/types/src/cli/commands/profile/create.d.ts +2 -1
  119. package/dist/types/src/cli/commands/profile/create.d.ts.map +1 -1
  120. package/dist/types/src/cli/commands/profile/delete.d.ts +1 -1
  121. package/dist/types/src/cli/commands/profile/delete.d.ts.map +1 -1
  122. package/dist/types/src/cli/commands/profile/list.d.ts.map +1 -1
  123. package/dist/types/src/cli/plugin.d.ts +1 -1
  124. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  125. package/dist/types/src/components/index.d.ts +0 -6
  126. package/dist/types/src/components/index.d.ts.map +1 -1
  127. package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts.map +1 -0
  128. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts +184 -0
  129. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts.map +1 -0
  130. package/dist/types/src/containers/DevicesContainer/index.d.ts +3 -0
  131. package/dist/types/src/containers/DevicesContainer/index.d.ts.map +1 -0
  132. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -0
  133. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +15 -0
  134. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -0
  135. package/dist/types/src/containers/JoinDialog/index.d.ts +3 -0
  136. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -0
  137. package/dist/types/src/containers/ProfileContainer/ProfileContainer.d.ts.map +1 -0
  138. package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts.map +1 -0
  139. package/dist/types/src/containers/ProfileContainer/index.d.ts +3 -0
  140. package/dist/types/src/containers/ProfileContainer/index.d.ts.map +1 -0
  141. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts.map +1 -0
  142. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.d.ts.map +1 -0
  143. package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts +4 -0
  144. package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts.map +1 -0
  145. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts.map +1 -0
  146. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts.map +1 -0
  147. package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts +3 -0
  148. package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts.map +1 -0
  149. package/dist/types/src/{components → containers/ResetDialog}/ResetDialog.d.ts +1 -1
  150. package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts.map +1 -0
  151. package/dist/types/src/{components → containers/ResetDialog}/ResetDialog.stories.d.ts +1 -1
  152. package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts.map +1 -0
  153. package/dist/types/src/containers/ResetDialog/index.d.ts +4 -0
  154. package/dist/types/src/containers/ResetDialog/index.d.ts.map +1 -0
  155. package/dist/types/src/containers/index.d.ts +10 -0
  156. package/dist/types/src/containers/index.d.ts.map +1 -0
  157. package/dist/types/src/index.d.ts +2 -4
  158. package/dist/types/src/index.d.ts.map +1 -1
  159. package/dist/types/src/operations/create-agent.d.ts +5 -0
  160. package/dist/types/src/operations/create-agent.d.ts.map +1 -0
  161. package/dist/types/src/operations/create-identity.d.ts +5 -0
  162. package/dist/types/src/operations/create-identity.d.ts.map +1 -0
  163. package/dist/types/src/operations/create-passkey.d.ts +5 -0
  164. package/dist/types/src/operations/create-passkey.d.ts.map +1 -0
  165. package/dist/types/src/operations/create-recovery-code.d.ts +5 -0
  166. package/dist/types/src/operations/create-recovery-code.d.ts.map +1 -0
  167. package/dist/types/src/operations/definitions.d.ts +36 -0
  168. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  169. package/dist/types/src/operations/index.d.ts +4 -0
  170. package/dist/types/src/operations/index.d.ts.map +1 -0
  171. package/dist/types/src/operations/join-identity.d.ts +5 -0
  172. package/dist/types/src/operations/join-identity.d.ts.map +1 -0
  173. package/dist/types/src/operations/recover-identity.d.ts +5 -0
  174. package/dist/types/src/operations/recover-identity.d.ts.map +1 -0
  175. package/dist/types/src/operations/redeem-passkey.d.ts +5 -0
  176. package/dist/types/src/operations/redeem-passkey.d.ts.map +1 -0
  177. package/dist/types/src/operations/redeem-token.d.ts +5 -0
  178. package/dist/types/src/operations/redeem-token.d.ts.map +1 -0
  179. package/dist/types/src/operations/reset-storage.d.ts +5 -0
  180. package/dist/types/src/operations/reset-storage.d.ts.map +1 -0
  181. package/dist/types/src/operations/share-identity.d.ts +5 -0
  182. package/dist/types/src/operations/share-identity.d.ts.map +1 -0
  183. package/dist/types/src/testing/index.d.ts +2 -0
  184. package/dist/types/src/testing/index.d.ts.map +1 -0
  185. package/dist/types/src/testing/initializeIdentity.d.ts +13 -0
  186. package/dist/types/src/testing/initializeIdentity.d.ts.map +1 -0
  187. package/dist/types/src/translations.d.ts.map +1 -1
  188. package/dist/types/src/types/capabilities.d.ts +1 -1
  189. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  190. package/dist/types/src/types/schema.d.ts +26 -175
  191. package/dist/types/src/types/schema.d.ts.map +1 -1
  192. package/dist/types/tsconfig.tsbuildinfo +1 -1
  193. package/package.json +72 -36
  194. package/src/ClientPlugin.ts +38 -25
  195. package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +21 -19
  196. package/src/capabilities/{client/client.ts → client.ts} +16 -12
  197. package/src/capabilities/index.ts +15 -7
  198. package/src/capabilities/{migrations/migrations.ts → migrations.ts} +4 -4
  199. package/src/capabilities/navigation-handler/index.ts +9 -0
  200. package/src/capabilities/navigation-handler/navigation-handler.ts +64 -0
  201. package/src/capabilities/node.ts +13 -0
  202. package/src/capabilities/operation-handler.ts +16 -0
  203. package/src/capabilities/{react-context/react-context.tsx → react-context.tsx} +7 -7
  204. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +13 -13
  205. package/src/capabilities/{schema-defs/schema-defs.ts → schema-defs.ts} +8 -7
  206. package/src/cli/commands/config/view.ts +4 -1
  207. package/src/cli/commands/device/info/info.test.ts +0 -1
  208. package/src/cli/commands/device/info/info.ts +0 -2
  209. package/src/cli/commands/device/list/list.test.ts +0 -1
  210. package/src/cli/commands/device/list/list.ts +0 -2
  211. package/src/cli/commands/device/update/update.ts +0 -2
  212. package/src/cli/commands/edge/status.ts +3 -2
  213. package/src/cli/commands/halo/create/create.ts +13 -6
  214. package/src/cli/commands/halo/credential/list/list.test.ts +0 -1
  215. package/src/cli/commands/halo/credential/list/list.ts +4 -7
  216. package/src/cli/commands/halo/identity/identity.ts +0 -1
  217. package/src/cli/commands/halo/keys/keys.ts +0 -2
  218. package/src/cli/commands/halo/seed/seed.ts +0 -2
  219. package/src/cli/commands/halo/update/update.test.ts +0 -1
  220. package/src/cli/commands/halo/update/update.ts +0 -2
  221. package/src/cli/commands/profile/create.ts +9 -6
  222. package/src/cli/commands/profile/delete.ts +5 -2
  223. package/src/cli/commands/profile/list.ts +12 -11
  224. package/src/cli/plugin.ts +12 -13
  225. package/src/components/index.ts +0 -7
  226. package/src/constants.ts +4 -4
  227. package/src/{components → containers/DevicesContainer}/DevicesContainer.stories.tsx +10 -7
  228. package/src/{components → containers/DevicesContainer}/DevicesContainer.tsx +76 -83
  229. package/src/containers/DevicesContainer/index.ts +7 -0
  230. package/src/containers/JoinDialog/JoinDialog.stories.tsx +43 -0
  231. package/src/{components → containers/JoinDialog}/JoinDialog.tsx +20 -15
  232. package/src/containers/JoinDialog/index.ts +7 -0
  233. package/src/{components → containers/ProfileContainer}/ProfileContainer.stories.tsx +4 -4
  234. package/src/{components → containers/ProfileContainer}/ProfileContainer.tsx +21 -29
  235. package/src/containers/ProfileContainer/index.ts +7 -0
  236. package/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.stories.tsx +4 -4
  237. package/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.tsx +29 -26
  238. package/src/containers/RecoveryCodeDialog/index.ts +8 -0
  239. package/src/{components → containers/RecoveryCredentialsContainer}/RecoveryCredentialsContainer.stories.tsx +10 -7
  240. package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx +66 -0
  241. package/src/containers/RecoveryCredentialsContainer/index.ts +7 -0
  242. package/src/{components → containers/ResetDialog}/ResetDialog.stories.tsx +27 -14
  243. package/src/{components → containers/ResetDialog}/ResetDialog.tsx +11 -11
  244. package/src/containers/ResetDialog/index.ts +8 -0
  245. package/src/containers/index.ts +15 -0
  246. package/src/index.ts +2 -5
  247. package/src/meta.ts +1 -1
  248. package/src/operations/create-agent.ts +27 -0
  249. package/src/operations/create-identity.ts +30 -0
  250. package/src/operations/create-passkey.ts +89 -0
  251. package/src/operations/create-recovery-code.ts +35 -0
  252. package/src/operations/definitions.ts +107 -0
  253. package/src/operations/index.ts +20 -0
  254. package/src/operations/join-identity.ts +29 -0
  255. package/src/operations/recover-identity.ts +29 -0
  256. package/src/operations/redeem-passkey.ts +86 -0
  257. package/src/operations/redeem-token.ts +32 -0
  258. package/src/operations/reset-storage.ts +28 -0
  259. package/src/operations/share-identity.ts +27 -0
  260. package/src/testing/index.ts +5 -0
  261. package/src/testing/initializeIdentity.ts +24 -0
  262. package/src/translations.ts +53 -42
  263. package/src/types/capabilities.ts +4 -4
  264. package/src/types/events.ts +6 -6
  265. package/src/types/schema.ts +18 -123
  266. package/dist/lib/browser/app-graph-builder-3FGBMLTF.mjs +0 -118
  267. package/dist/lib/browser/app-graph-builder-3FGBMLTF.mjs.map +0 -7
  268. package/dist/lib/browser/chunk-4BZGRIFS.mjs +0 -293
  269. package/dist/lib/browser/chunk-4BZGRIFS.mjs.map +0 -7
  270. package/dist/lib/browser/chunk-F7H2Y3Z2.mjs +0 -18
  271. package/dist/lib/browser/chunk-F7H2Y3Z2.mjs.map +0 -7
  272. package/dist/lib/browser/chunk-G7C3S2BE.mjs +0 -15
  273. package/dist/lib/browser/chunk-G7C3S2BE.mjs.map +0 -7
  274. package/dist/lib/browser/client-IX5LMWV4.mjs +0 -86
  275. package/dist/lib/browser/client-IX5LMWV4.mjs.map +0 -7
  276. package/dist/lib/browser/migrations-3EBTAW3N.mjs +0 -24
  277. package/dist/lib/browser/migrations-3EBTAW3N.mjs.map +0 -7
  278. package/dist/lib/browser/operation-resolver-2NT3ISVP.mjs +0 -298
  279. package/dist/lib/browser/operation-resolver-2NT3ISVP.mjs.map +0 -7
  280. package/dist/lib/browser/react-context-4UABG3GP.mjs +0 -24
  281. package/dist/lib/browser/react-context-4UABG3GP.mjs.map +0 -7
  282. package/dist/lib/browser/react-surface-RSQ74XCT.mjs +0 -675
  283. package/dist/lib/browser/react-surface-RSQ74XCT.mjs.map +0 -7
  284. package/dist/lib/browser/schema-defs-O7VLP745.mjs +0 -26
  285. package/dist/lib/browser/schema-defs-O7VLP745.mjs.map +0 -7
  286. package/dist/lib/node-esm/app-graph-builder-2PIYVUNC.mjs +0 -119
  287. package/dist/lib/node-esm/app-graph-builder-2PIYVUNC.mjs.map +0 -7
  288. package/dist/lib/node-esm/chunk-BCELGXRI.mjs +0 -20
  289. package/dist/lib/node-esm/chunk-BCELGXRI.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-JAF64TFQ.mjs +0 -295
  291. package/dist/lib/node-esm/chunk-JAF64TFQ.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-PRAFFO54.mjs +0 -16
  293. package/dist/lib/node-esm/chunk-PRAFFO54.mjs.map +0 -7
  294. package/dist/lib/node-esm/client-FFPK5UFP.mjs +0 -87
  295. package/dist/lib/node-esm/client-FFPK5UFP.mjs.map +0 -7
  296. package/dist/lib/node-esm/migrations-WSZSFGDK.mjs +0 -25
  297. package/dist/lib/node-esm/migrations-WSZSFGDK.mjs.map +0 -7
  298. package/dist/lib/node-esm/operation-resolver-VW5R2BE4.mjs +0 -299
  299. package/dist/lib/node-esm/operation-resolver-VW5R2BE4.mjs.map +0 -7
  300. package/dist/lib/node-esm/react-context-UVXMGPW4.mjs +0 -25
  301. package/dist/lib/node-esm/react-context-UVXMGPW4.mjs.map +0 -7
  302. package/dist/lib/node-esm/react-surface-KBHANGGC.mjs +0 -676
  303. package/dist/lib/node-esm/react-surface-KBHANGGC.mjs.map +0 -7
  304. package/dist/lib/node-esm/schema-defs-QLRGBIKY.mjs +0 -27
  305. package/dist/lib/node-esm/schema-defs-QLRGBIKY.mjs.map +0 -7
  306. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  307. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  308. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  309. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  310. package/dist/types/src/capabilities/client/client.d.ts +0 -8
  311. package/dist/types/src/capabilities/client/client.d.ts.map +0 -1
  312. package/dist/types/src/capabilities/client/index.d.ts.map +0 -1
  313. package/dist/types/src/capabilities/migrations/index.d.ts +0 -3
  314. package/dist/types/src/capabilities/migrations/index.d.ts.map +0 -1
  315. package/dist/types/src/capabilities/migrations/migrations.d.ts +0 -5
  316. package/dist/types/src/capabilities/migrations/migrations.d.ts.map +0 -1
  317. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -5
  318. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  319. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -8
  320. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  321. package/dist/types/src/capabilities/react-context/index.d.ts +0 -7
  322. package/dist/types/src/capabilities/react-context/index.d.ts.map +0 -1
  323. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +0 -1
  324. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -5
  325. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  326. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -9
  327. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  328. package/dist/types/src/capabilities/schema-defs/index.d.ts +0 -3
  329. package/dist/types/src/capabilities/schema-defs/index.d.ts.map +0 -1
  330. package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts +0 -5
  331. package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts.map +0 -1
  332. package/dist/types/src/components/DevicesContainer.d.ts.map +0 -1
  333. package/dist/types/src/components/DevicesContainer.stories.d.ts +0 -181
  334. package/dist/types/src/components/DevicesContainer.stories.d.ts.map +0 -1
  335. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  336. package/dist/types/src/components/ProfileContainer.d.ts.map +0 -1
  337. package/dist/types/src/components/ProfileContainer.stories.d.ts.map +0 -1
  338. package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +0 -1
  339. package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts.map +0 -1
  340. package/dist/types/src/components/RecoveryCredentialsContainer.d.ts.map +0 -1
  341. package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts.map +0 -1
  342. package/dist/types/src/components/ResetDialog.d.ts.map +0 -1
  343. package/dist/types/src/components/ResetDialog.stories.d.ts.map +0 -1
  344. package/src/capabilities/app-graph-builder/index.ts +0 -7
  345. package/src/capabilities/client/index.ts +0 -7
  346. package/src/capabilities/migrations/index.ts +0 -7
  347. package/src/capabilities/operation-resolver/index.ts +0 -7
  348. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -248
  349. package/src/capabilities/react-context/index.ts +0 -7
  350. package/src/capabilities/react-surface/index.ts +0 -7
  351. package/src/capabilities/schema-defs/index.ts +0 -7
  352. package/src/components/RecoveryCredentialsContainer.tsx +0 -68
  353. /package/dist/types/src/{components → containers/DevicesContainer}/DevicesContainer.d.ts +0 -0
  354. /package/dist/types/src/{components → containers/JoinDialog}/JoinDialog.d.ts +0 -0
  355. /package/dist/types/src/{components → containers/ProfileContainer}/ProfileContainer.d.ts +0 -0
  356. /package/dist/types/src/{components → containers/ProfileContainer}/ProfileContainer.stories.d.ts +0 -0
  357. /package/dist/types/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.d.ts +0 -0
  358. /package/dist/types/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.stories.d.ts +0 -0
  359. /package/dist/types/src/{components → containers/RecoveryCredentialsContainer}/RecoveryCredentialsContainer.d.ts +0 -0
  360. /package/dist/types/src/{components → containers/RecoveryCredentialsContainer}/RecoveryCredentialsContainer.stories.d.ts +0 -0
@@ -0,0 +1,106 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ CreatePasskey
4
+ } from "./chunk-SJ6FDER5.mjs";
5
+ import {
6
+ ClientCapabilities
7
+ } from "./chunk-IT5LAIV3.mjs";
8
+ import "./chunk-HSLMI22Q.mjs";
9
+
10
+ // src/operations/create-passkey.ts
11
+ import * as Effect from "effect/Effect";
12
+ import * as Match from "effect/Match";
13
+ import { Capability } from "@dxos/app-framework";
14
+ import { supportsNativePasskeys, createNativePasskey, extractPublicKeyFromAttestation } from "@dxos/app-toolkit";
15
+ import { PublicKey } from "@dxos/client";
16
+ import { invariant } from "@dxos/invariant";
17
+ import { Operation } from "@dxos/operation";
18
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/operations/create-passkey.ts";
19
+ var handler = CreatePasskey.pipe(Operation.withHandler(Effect.fnUntraced(function* () {
20
+ const client = yield* Capability.get(ClientCapabilities.Client);
21
+ const identity = client.halo.identity.get();
22
+ invariant(identity, "Identity not available", {
23
+ F: __dxlog_file,
24
+ L: 23,
25
+ S: this,
26
+ A: [
27
+ "identity",
28
+ "'Identity not available'"
29
+ ]
30
+ });
31
+ const lookupKey = PublicKey.random();
32
+ const { recoveryKey, algorithm } = yield* Match.value(supportsNativePasskeys()).pipe(Match.when(true, () => Effect.gen(function* () {
33
+ const result = yield* Effect.promise(() => createNativePasskey({
34
+ username: identity.did,
35
+ userId: lookupKey.asUint8Array()
36
+ }));
37
+ const { publicKey, algorithm: alg } = extractPublicKeyFromAttestation(result.attestation_object);
38
+ return {
39
+ recoveryKey: PublicKey.from(publicKey),
40
+ algorithm: alg === -7 ? "ES256" : "ED25519"
41
+ };
42
+ })), Match.orElse(() => Effect.gen(function* () {
43
+ const credential = yield* Effect.promise(() => navigator.credentials.create({
44
+ publicKey: {
45
+ challenge: new Uint8Array(),
46
+ rp: {
47
+ id: location.hostname,
48
+ name: "Composer"
49
+ },
50
+ user: {
51
+ id: lookupKey.asUint8Array(),
52
+ name: identity.did,
53
+ displayName: identity.profile?.displayName ?? ""
54
+ },
55
+ pubKeyCredParams: [
56
+ {
57
+ type: "public-key",
58
+ alg: -8
59
+ },
60
+ {
61
+ type: "public-key",
62
+ alg: -7
63
+ }
64
+ ],
65
+ authenticatorSelection: {
66
+ residentKey: "required",
67
+ requireResidentKey: true
68
+ }
69
+ }
70
+ }));
71
+ invariant(credential, "Credential not available", {
72
+ F: __dxlog_file,
73
+ L: 66,
74
+ S: this,
75
+ A: [
76
+ "credential",
77
+ "'Credential not available'"
78
+ ]
79
+ });
80
+ return {
81
+ recoveryKey: PublicKey.from(new Uint8Array(credential.response.getPublicKey())),
82
+ algorithm: credential.response.getPublicKeyAlgorithm() === -7 ? "ES256" : "ED25519"
83
+ };
84
+ })));
85
+ invariant(client.services.services.IdentityService, "IdentityService not available", {
86
+ F: __dxlog_file,
87
+ L: 75,
88
+ S: this,
89
+ A: [
90
+ "client.services.services.IdentityService",
91
+ "'IdentityService not available'"
92
+ ]
93
+ });
94
+ yield* Effect.promise(() => client.services.services.IdentityService.createRecoveryCredential({
95
+ data: {
96
+ recoveryKey,
97
+ algorithm,
98
+ lookupKey
99
+ }
100
+ }));
101
+ })));
102
+ var create_passkey_default = handler;
103
+ export {
104
+ create_passkey_default as default
105
+ };
106
+ //# sourceMappingURL=create-passkey-2LQEEIAN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create-passkey.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Match from 'effect/Match';\n\nimport { Capability } from '@dxos/app-framework';\nimport { supportsNativePasskeys, createNativePasskey, extractPublicKeyFromAttestation } from '@dxos/app-toolkit';\nimport { PublicKey } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\nimport { Operation } from '@dxos/operation';\n\nimport { CreatePasskey } from './definitions';\n\nimport { ClientCapabilities } from '../types';\n\nconst handler: Operation.WithHandler<typeof CreatePasskey> = CreatePasskey.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const identity = client.halo.identity.get();\n invariant(identity, 'Identity not available');\n\n const lookupKey = PublicKey.random();\n\n const { recoveryKey, algorithm } = yield* Match.value(supportsNativePasskeys()).pipe(\n Match.when(true, () =>\n Effect.gen(function* () {\n const result = yield* Effect.promise(() =>\n createNativePasskey({\n username: identity.did,\n userId: lookupKey.asUint8Array(),\n }),\n );\n const { publicKey, algorithm: alg } = extractPublicKeyFromAttestation(result.attestation_object);\n return {\n recoveryKey: PublicKey.from(publicKey),\n algorithm: alg === -7 ? 'ES256' : 'ED25519',\n };\n }),\n ),\n Match.orElse(() =>\n Effect.gen(function* () {\n const credential = yield* Effect.promise(() =>\n navigator.credentials.create({\n publicKey: {\n challenge: new Uint8Array(),\n rp: { id: location.hostname, name: 'Composer' },\n user: {\n id: lookupKey.asUint8Array() as Uint8Array<ArrayBuffer>,\n name: identity.did,\n displayName: identity.profile?.displayName ?? '',\n },\n pubKeyCredParams: [\n { type: 'public-key', alg: -8 },\n { type: 'public-key', alg: -7 },\n ],\n authenticatorSelection: {\n residentKey: 'required',\n requireResidentKey: true,\n },\n },\n }),\n );\n invariant(credential, 'Credential not available');\n return {\n recoveryKey: PublicKey.from(new Uint8Array((credential as any).response.getPublicKey())),\n algorithm: (credential as any).response.getPublicKeyAlgorithm() === -7 ? 'ES256' : 'ED25519',\n };\n }),\n ),\n );\n\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n yield* Effect.promise(() =>\n client.services.services.IdentityService!.createRecoveryCredential({\n data: {\n recoveryKey,\n algorithm,\n lookupKey,\n },\n }),\n );\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,WAAW;AAEvB,SAASC,kBAAkB;AAC3B,SAASC,wBAAwBC,qBAAqBC,uCAAuC;AAC7F,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;;AAM1B,IAAMC,UAAuDC,cAAcC,KACzEC,UAAUC,YACDC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOC,WAAWC,IAAIC,mBAAmBC,MAAM;AAC9D,QAAMC,WAAWL,OAAOM,KAAKD,SAASH,IAAG;AACzCK,YAAUF,UAAU,0BAAA;;;;;;;;;AAEpB,QAAMG,YAAYC,UAAUC,OAAM;AAElC,QAAM,EAAEC,aAAaC,UAAS,IAAK,OAAaC,YAAMC,uBAAAA,CAAAA,EAA0BlB,KACxEmB,WAAK,MAAM,MACRC,WAAI,aAAA;AACT,UAAMC,SAAS,OAAcC,eAAQ,MACnCC,oBAAoB;MAClBC,UAAUf,SAASgB;MACnBC,QAAQd,UAAUe,aAAY;IAChC,CAAA,CAAA;AAEF,UAAM,EAAEC,WAAWZ,WAAWa,IAAG,IAAKC,gCAAgCT,OAAOU,kBAAkB;AAC/F,WAAO;MACLhB,aAAaF,UAAUmB,KAAKJ,SAAAA;MAC5BZ,WAAWa,QAAQ,KAAK,UAAU;IACpC;EACF,CAAA,CAAA,GAEII,aAAO,MACJb,WAAI,aAAA;AACT,UAAMc,aAAa,OAAcZ,eAAQ,MACvCa,UAAUC,YAAYC,OAAO;MAC3BT,WAAW;QACTU,WAAW,IAAIC,WAAAA;QACfC,IAAI;UAAEC,IAAIC,SAASC;UAAUC,MAAM;QAAW;QAC9CC,MAAM;UACJJ,IAAI7B,UAAUe,aAAY;UAC1BiB,MAAMnC,SAASgB;UACfqB,aAAarC,SAASsC,SAASD,eAAe;QAChD;QACAE,kBAAkB;UAChB;YAAEC,MAAM;YAAcpB,KAAK;UAAG;UAC9B;YAAEoB,MAAM;YAAcpB,KAAK;UAAG;;QAEhCqB,wBAAwB;UACtBC,aAAa;UACbC,oBAAoB;QACtB;MACF;IACF,CAAA,CAAA;AAEFzC,cAAUuB,YAAY,4BAAA;;;;;;;;;AACtB,WAAO;MACLnB,aAAaF,UAAUmB,KAAK,IAAIO,WAAYL,WAAmBmB,SAASC,aAAY,CAAA,CAAA;MACpFtC,WAAYkB,WAAmBmB,SAASE,sBAAqB,MAAO,KAAK,UAAU;IACrF;EACF,CAAA,CAAA,CAAA;AAIJ5C,YAAUP,OAAOoD,SAASA,SAASC,iBAAiB,iCAAA;;;;;;;;;AACpD,SAAcnC,eAAQ,MACpBlB,OAAOoD,SAASA,SAASC,gBAAiBC,yBAAyB;IACjEC,MAAM;MACJ5C;MACAC;MACAJ;IACF;EACF,CAAA,CAAA;AAEJ,CAAA,CAAA,CAAA;AAIJ,IAAA,yBAAed;",
6
+ "names": ["Effect", "Match", "Capability", "supportsNativePasskeys", "createNativePasskey", "extractPublicKeyFromAttestation", "PublicKey", "invariant", "Operation", "handler", "CreatePasskey", "pipe", "Operation", "withHandler", "fnUntraced", "client", "Capability", "get", "ClientCapabilities", "Client", "identity", "halo", "invariant", "lookupKey", "PublicKey", "random", "recoveryKey", "algorithm", "value", "supportsNativePasskeys", "when", "gen", "result", "promise", "createNativePasskey", "username", "did", "userId", "asUint8Array", "publicKey", "alg", "extractPublicKeyFromAttestation", "attestation_object", "from", "orElse", "credential", "navigator", "credentials", "create", "challenge", "Uint8Array", "rp", "id", "location", "hostname", "name", "user", "displayName", "profile", "pubKeyCredParams", "type", "authenticatorSelection", "residentKey", "requireResidentKey", "response", "getPublicKey", "getPublicKeyAlgorithm", "services", "IdentityService", "createRecoveryCredential", "data"]
7
+ }
@@ -0,0 +1,45 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ RECOVERY_CODE_DIALOG
4
+ } from "./chunk-J5RWSQT6.mjs";
5
+ import {
6
+ CreateRecoveryCode
7
+ } from "./chunk-SJ6FDER5.mjs";
8
+ import {
9
+ ClientCapabilities
10
+ } from "./chunk-IT5LAIV3.mjs";
11
+ import "./chunk-HSLMI22Q.mjs";
12
+
13
+ // src/operations/create-recovery-code.ts
14
+ import * as Effect from "effect/Effect";
15
+ import { Capability } from "@dxos/app-framework";
16
+ import { LayoutOperation } from "@dxos/app-toolkit";
17
+ import { invariant } from "@dxos/invariant";
18
+ import { Operation } from "@dxos/operation";
19
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/operations/create-recovery-code.ts";
20
+ var handler = CreateRecoveryCode.pipe(Operation.withHandler(Effect.fnUntraced(function* () {
21
+ const client = yield* Capability.get(ClientCapabilities.Client);
22
+ invariant(client.services.services.IdentityService, "IdentityService not available", {
23
+ F: __dxlog_file,
24
+ L: 21,
25
+ S: this,
26
+ A: [
27
+ "client.services.services.IdentityService",
28
+ "'IdentityService not available'"
29
+ ]
30
+ });
31
+ const { recoveryCode } = yield* Effect.promise(() => client.services.services.IdentityService.createRecoveryCredential({}));
32
+ yield* Operation.invoke(LayoutOperation.UpdateDialog, {
33
+ subject: RECOVERY_CODE_DIALOG,
34
+ blockAlign: "start",
35
+ type: "alert",
36
+ props: {
37
+ code: recoveryCode
38
+ }
39
+ });
40
+ })));
41
+ var create_recovery_code_default = handler;
42
+ export {
43
+ create_recovery_code_default as default
44
+ };
45
+ //# sourceMappingURL=create-recovery-code-2MVK5CVE.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create-recovery-code.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { invariant } from '@dxos/invariant';\nimport { Operation } from '@dxos/operation';\n\nimport { CreateRecoveryCode } from './definitions';\n\nimport { RECOVERY_CODE_DIALOG } from '../constants';\nimport { ClientCapabilities } from '../types';\n\nconst handler: Operation.WithHandler<typeof CreateRecoveryCode> = CreateRecoveryCode.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n const { recoveryCode } = yield* Effect.promise(() =>\n client.services.services.IdentityService!.createRecoveryCredential({}),\n );\n yield* Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: RECOVERY_CODE_DIALOG,\n blockAlign: 'start',\n type: 'alert',\n props: { code: recoveryCode },\n });\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;;AAO1B,IAAMC,UAA4DC,mBAAmBC,KACnFC,UAAUC,YACDC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOC,WAAWC,IAAIC,mBAAmBC,MAAM;AAC9DC,YAAUL,OAAOM,SAASA,SAASC,iBAAiB,iCAAA;;;;;;;;;AACpD,QAAM,EAAEC,aAAY,IAAK,OAAcC,eAAQ,MAC7CT,OAAOM,SAASA,SAASC,gBAAiBG,yBAAyB,CAAC,CAAA,CAAA;AAEtE,SAAOb,UAAUc,OAAOC,gBAAgBC,cAAc;IACpDC,SAASC;IACTC,YAAY;IACZC,MAAM;IACNC,OAAO;MAAEC,MAAMX;IAAa;EAC9B,CAAA;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,+BAAed;",
6
+ "names": ["Effect", "Capability", "LayoutOperation", "invariant", "Operation", "handler", "CreateRecoveryCode", "pipe", "Operation", "withHandler", "fnUntraced", "client", "Capability", "get", "ClientCapabilities", "Client", "invariant", "services", "IdentityService", "recoveryCode", "promise", "createRecoveryCredential", "invoke", "LayoutOperation", "UpdateDialog", "subject", "RECOVERY_CODE_DIALOG", "blockAlign", "type", "props", "code"]
7
+ }
@@ -1,86 +1,71 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- Client,
4
- OperationResolver,
5
- SchemaDefs
6
- } from "./chunk-BCELGXRI.mjs";
7
- import {
8
- Account,
9
- ClientAction,
10
- ClientCapabilities,
11
- ClientEvents,
12
- ClientOperation,
13
- meta
14
- } from "./chunk-JAF64TFQ.mjs";
2
+ import "./chunk-HSLMI22Q.mjs";
15
3
 
16
4
  // src/ClientPlugin.ts
17
- import { ActivationEvent, Capability as Capability5, Common, Plugin } from "@dxos/app-framework";
18
-
19
- // src/capabilities/app-graph-builder/index.ts
20
- import { Capability } from "@dxos/app-framework";
21
- var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-2PIYVUNC.mjs"));
22
-
23
- // src/capabilities/migrations/index.ts
24
- import { Capability as Capability2 } from "@dxos/app-framework";
25
- var Migrations = Capability2.lazy("Migrations", () => import("./migrations-WSZSFGDK.mjs"));
26
-
27
- // src/capabilities/react-context/index.ts
28
- import { Capability as Capability3 } from "@dxos/app-framework";
29
- var ReactContext = Capability3.lazy("ReactContext", () => import("./react-context-UVXMGPW4.mjs"));
30
-
31
- // src/capabilities/react-surface/index.ts
32
- import { Capability as Capability4 } from "@dxos/app-framework";
33
- var ReactSurface = Capability4.lazy("ReactSurface", () => import("./react-surface-KBHANGGC.mjs"));
5
+ import { ActivationEvent, ActivationEvents, Capability, Plugin } from "@dxos/app-framework";
6
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
7
+ import { meta as meta2 } from "#meta";
34
8
 
35
9
  // src/translations.ts
36
10
  import { translations as shellTranslations } from "@dxos/shell/react";
11
+ import { meta } from "#meta";
37
12
  var pluginTranslations = [
38
13
  {
39
14
  "en-US": {
40
15
  [meta.id]: {
41
- "account label": "User profile",
42
- "profile label": "Profile",
43
- "profile description": "You can adjust how your user settings here.",
44
- "devices label": "Devices",
45
- "devices verbose label": "Manage devices",
46
- "add device description": "Authenticating another device is a two-step process. To get started, create a code using the button below.",
47
- "devices description": "You can add and remove devices, configure your agent in the cloud, reset this device, or log in as a different identity here.",
48
- "create device invitation label": "Create code",
49
- "qr code description": "Scan this QR code using the device you want to log in to, or copy the URL and share it with the new device.",
50
- "security label": "Security",
51
- "reset device description": "Log out from this device, erasing all the data on this\xA0device.",
52
- "join new identity description": "Log out from this device, erasing all the data currently on this device, and use a QR code or URL to log\xA0in.",
53
- "recover identity description": "Log out from this device, erasing all the data currently on this device, and use a passkey or recovery code to log\xA0in.",
54
- "danger zone title": "Log out",
55
- "danger zone description": "Because Composer is decentralized, logging out entails erasing all the data on this device. If you have any data on this device that you\u2019d like to keep, you can log in on a separate device using a passkey or complete a peer-to-peer\xA0device invitation above.",
56
- "display name label": "Display name",
57
- "display name description": "Your name as it appears in the app.",
58
- "display name input placeholder": "Enter a name",
59
- "icon label": "Avatar",
60
- "icon description": "The emoji used to represent you in the app.",
61
- "hue label": "Color",
62
- "hue description": "The color used to represent you in the app, including as your avatar\u2019s background, your cursor as it appears to others, and the messages you send in group threads.",
63
- "did label": "DID",
64
- "did description": "Your unique ID.",
65
- "open user account label": "Open user account",
66
- "manage credentials dialog title": "Manage Account Recovery",
67
- "credentials list label": "Recovery credentials",
68
- "no credentials title": "WARNING: There is currently no way to recover your account.",
69
- "no credentials message": "Create a recovery credential above to secure your\xA0account.",
70
- "recovery setup dialog title": "Account Security",
71
- "recovery setup dialog description": "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\xA0manager.",
72
- "create passkey label": "Create Passkey",
16
+ "account.label": "User profile",
17
+ "profile.label": "Profile",
18
+ "profile.description": "You can adjust how your user settings here.",
19
+ "devices.label": "Devices",
20
+ "add-device.label": "Add device",
21
+ "devices-verbose.label": "Manage devices",
22
+ "add-device.description": "Authenticating another device is a two-step process. To get started, create a code using the button below.",
23
+ "devices.description": "You can add and remove devices, configure your agent in the cloud, reset this device, or log in as a different identity here.",
24
+ "create-device-invitation.label": "Create code",
25
+ "qr-code.description": "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\xA0device.",
28
+ "join-new-identity.description": "Log out from this device, erasing all the data currently on this device, and use a QR code or URL to log\xA0in.",
29
+ "recover-identity.description": "Log out from this device, erasing all the data currently on this device, and use a passkey or recovery code to log\xA0in.",
30
+ "danger-zone.title": "Log out",
31
+ "danger-zone.description": "Because Composer is decentralized, logging out entails erasing all the data on this device. If you have any data on this device that you\u2019d like to keep, you can log in on a separate device using a passkey or complete a peer-to-peer\xA0device invitation above.",
32
+ "display-name.label": "Display name",
33
+ "display-name.description": "Your name as it appears in the app.",
34
+ "display-name-input.placeholder": "Enter a name",
35
+ "icon.label": "Avatar",
36
+ "icon.description": "The emoji used to represent the user.",
37
+ "hue.label": "Color",
38
+ "hue.description": "The color used to represent you in the app, including as your avatar\u2019s background, your cursor as it appears to others, and the messages you send in group threads.",
39
+ "did.label": "DID",
40
+ "did.description": "Your unique ID.",
41
+ "open-user-account.label": "Open user account",
42
+ "manage-credentials-dialog.title": "Manage Account Recovery",
43
+ "credentials-list.label": "Recovery credentials",
44
+ "no-credentials.title": "WARNING: There is currently no way to recover your account.",
45
+ "no-credentials.message": "Create a recovery credential above to secure your\xA0account.",
46
+ "recovery-setup-dialog.title": "Account Security",
47
+ "recovery-setup-dialog.description": "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\xA0manager.",
48
+ "create-passkey.label": "Create Passkey",
73
49
  // TODO(wittjosiah): At link to user-focused passkey information.
74
50
  // Something like https://www.tomsguide.com/news/what-are-passkeys.
75
- "create passkey description": "A passkey is a secure and easy to use credential that can be used to recover your\xA0account.",
76
- "create recovery code label": "Create Recovery Code",
77
- "create recovery code description": "A recovery code is 12 word phrase representing a private\xA0key.",
78
- "recovery code dialog title": "Recovery Code",
79
- "recovery code dialog description": "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\xA0devices.",
80
- "recovery code dialog warning 1": "NOTE: This code will not be displayed\xA0again.",
81
- "recovery code dialog warning 2": "It is your private key for recovering DXOS data. Anyone with this key will be able to gain access to your\xA0account.",
82
- "recovery code confirmation label": "Please confirm you have saved the\xA0code.",
83
- "continue label": "Continue"
51
+ "create-passkey.description": "A passkey is a secure and easy to use credential that can be used to recover your\xA0account.",
52
+ "create-recovery-code.label": "Create Recovery Code",
53
+ "create-recovery-code.description": "A recovery code is 12 word phrase representing a private\xA0key.",
54
+ "recovery-code-dialog.title": "Recovery Code",
55
+ "recovery-code-dialog.description": "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\xA0devices.",
56
+ "recovery-code-dialog-warning-1.message": "NOTE: This code will not be displayed\xA0again.",
57
+ "recovery-code-dialog-warning-2.message": "It is your private key for recovering DXOS data. Anyone with this key will be able to gain access to your\xA0account.",
58
+ "recovery-code-confirmation.label": "Please confirm you have saved the\xA0code.",
59
+ "continue.label": "Continue",
60
+ "auth-code.message": "Authorization code",
61
+ "auth-other-device-emoji.message": "Authorization icon",
62
+ "cancel.label": "Cancel",
63
+ "join-new-identity.label": "Join an existing identity",
64
+ "qr.label": "QR Code",
65
+ "recover-identity.label": "Use a recovery code",
66
+ "reset-device.label": "Reset storage",
67
+ "reset-dialog.description": "Reset storage",
68
+ "reset-dialog.title": "Reset storage"
84
69
  }
85
70
  }
86
71
  }
@@ -91,10 +76,24 @@ var translations = [
91
76
  ];
92
77
 
93
78
  // src/ClientPlugin.ts
94
- var ClientPlugin = Plugin.define(meta).pipe(Plugin.addModule((options) => {
79
+ import { ClientEvents } from "#types";
80
+ import { AppGraphBuilder, Client, Migrations, NavigationHandler, OperationHandler, ReactContext, ReactSurface, SchemaDefs } from "#capabilities";
81
+ var ClientPlugin = Plugin.define(meta2).pipe(AppPlugin.addAppGraphModule({
82
+ activate: AppGraphBuilder
83
+ }), AppPlugin.addNavigationHandlerModule(({ invitationProp }) => ({
84
+ activate: () => NavigationHandler({
85
+ invitationProp
86
+ })
87
+ })), AppPlugin.addOperationHandlerModule({
88
+ activate: OperationHandler
89
+ }), AppPlugin.addReactContextModule({
90
+ activate: ReactContext
91
+ }), AppPlugin.addTranslationsModule({
92
+ translations
93
+ }), Plugin.addModule((options) => {
95
94
  return {
96
- id: Capability5.getModuleTag(Client),
97
- activatesOn: ActivationEvent.oneOf(Common.ActivationEvent.Startup, Common.ActivationEvent.SetupAppGraph),
95
+ id: Capability.getModuleTag(Client),
96
+ activatesOn: ActivationEvent.oneOf(ActivationEvents.Startup, AppActivationEvents.SetupAppGraph),
98
97
  activatesAfter: [
99
98
  ClientEvents.ClientReady
100
99
  ],
@@ -103,7 +102,7 @@ var ClientPlugin = Plugin.define(meta).pipe(Plugin.addModule((options) => {
103
102
  }), Plugin.addModule({
104
103
  activatesOn: ClientEvents.ClientReady,
105
104
  activatesBefore: [
106
- Common.ActivationEvent.SetupSchema
105
+ AppActivationEvents.SetupSchema
107
106
  ],
108
107
  activate: SchemaDefs
109
108
  }), Plugin.addModule({
@@ -112,36 +111,34 @@ var ClientPlugin = Plugin.define(meta).pipe(Plugin.addModule((options) => {
112
111
  ClientEvents.SetupMigration
113
112
  ],
114
113
  activate: Migrations
115
- }), Common.Plugin.addReactContextModule({
116
- activate: ReactContext
117
- }), Plugin.addModule(({ invitationUrl = window.location.origin, invitationProp = "deviceInvitationCode", onReset }) => {
114
+ }), Plugin.addModule(({ shareableLinkOrigin = typeof window !== "undefined" ? window.location.origin : "http://localhost", invitationPath = "/", invitationProp = "deviceInvitationCode", onReset }) => {
118
115
  const createInvitationUrl = (invitationCode) => {
119
- const baseUrl = new URL(invitationUrl);
116
+ const baseUrl = new URL(invitationPath || "/", shareableLinkOrigin);
120
117
  baseUrl.searchParams.set(invitationProp, invitationCode);
121
118
  return baseUrl.toString();
122
119
  };
123
120
  return {
124
- id: Capability5.getModuleTag(ReactSurface),
125
- activatesOn: Common.ActivationEvent.SetupReactSurface,
121
+ id: Capability.getModuleTag(ReactSurface),
122
+ activatesOn: ActivationEvents.SetupReactSurface,
126
123
  activate: () => ReactSurface({
127
124
  createInvitationUrl,
128
125
  onReset
129
126
  })
130
127
  };
131
- }), Common.Plugin.addAppGraphModule({
132
- activate: AppGraphBuilder
133
- }), Common.Plugin.addOperationResolverModule({
134
- activate: OperationResolver
135
- }), Common.Plugin.addTranslationsModule({
136
- translations
137
128
  }), Plugin.make);
129
+
130
+ // src/meta.ts
131
+ import { trim } from "@dxos/util";
132
+ var meta3 = {
133
+ id: "org.dxos.plugin.client",
134
+ name: "Client",
135
+ description: trim`
136
+ Core client connectivity and peer-to-peer networking infrastructure.
137
+ Manages identity, authentication, and real-time synchronization across devices.
138
+ `
139
+ };
138
140
  export {
139
- Account,
140
- ClientAction,
141
- ClientCapabilities,
142
- ClientEvents,
143
- ClientOperation,
144
141
  ClientPlugin,
145
- meta
142
+ meta3 as meta
146
143
  };
147
144
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/ClientPlugin.ts", "../../../src/capabilities/app-graph-builder/index.ts", "../../../src/capabilities/migrations/index.ts", "../../../src/capabilities/react-context/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvent, Capability, Common, Plugin } from '@dxos/app-framework';\n\nimport {\n AppGraphBuilder,\n Client,\n Migrations,\n OperationResolver,\n ReactContext,\n ReactSurface,\n SchemaDefs,\n} from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { ClientEvents } from './types';\nimport { type ClientPluginOptions } from './types';\n\nexport const ClientPlugin = Plugin.define<ClientPluginOptions>(meta).pipe(\n Plugin.addModule((options) => {\n return {\n id: Capability.getModuleTag(Client),\n activatesOn: ActivationEvent.oneOf(Common.ActivationEvent.Startup, Common.ActivationEvent.SetupAppGraph),\n activatesAfter: [ClientEvents.ClientReady],\n activate: () => Client(options),\n };\n }),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [Common.ActivationEvent.SetupSchema],\n activate: SchemaDefs,\n }),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [ClientEvents.SetupMigration],\n activate: Migrations,\n }),\n Common.Plugin.addReactContextModule({ activate: ReactContext }),\n Plugin.addModule(({ invitationUrl = window.location.origin, invitationProp = 'deviceInvitationCode', onReset }) => {\n const createInvitationUrl = (invitationCode: string) => {\n const baseUrl = new URL(invitationUrl);\n baseUrl.searchParams.set(invitationProp, invitationCode);\n return baseUrl.toString();\n };\n\n return {\n id: Capability.getModuleTag(ReactSurface),\n activatesOn: Common.ActivationEvent.SetupReactSurface,\n activate: () => ReactSurface({ createInvitationUrl, onReset }),\n };\n }),\n Common.Plugin.addAppGraphModule({ activate: AppGraphBuilder }),\n Common.Plugin.addOperationResolverModule({ activate: OperationResolver }),\n Common.Plugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Migrations = Capability.lazy('Migrations', () => import('./migrations'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactContext = Capability.lazy('ReactContext', () => import('./react-context'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as shellTranslations } from '@dxos/shell/react';\n\nimport { meta } from './meta';\n\nconst pluginTranslations = [\n {\n 'en-US': {\n [meta.id]: {\n 'account label': 'User profile',\n 'profile label': 'Profile',\n 'profile description': 'You can adjust how your user settings here.',\n 'devices label': 'Devices',\n 'devices verbose label': 'Manage devices',\n 'add device description':\n 'Authenticating another device is a two-step process. To get started, create a code using the button below.',\n 'devices description':\n 'You can add and remove devices, configure your agent in the cloud, reset this device, or log in as a different identity here.',\n 'create device invitation label': 'Create code',\n 'qr code description':\n 'Scan this QR code using the device you want to log in to, or copy the URL and share it with the new device.',\n 'security label': 'Security',\n 'reset device description': 'Log out from this device, erasing all the data on this device.',\n 'join new identity description':\n 'Log out from this device, erasing all the data currently on this device, and use a QR code or URL to log in.',\n 'recover identity description':\n 'Log out from this device, erasing all the data currently on this device, and use a passkey or recovery code to log in.',\n 'danger zone title': 'Log out',\n 'danger zone description':\n '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.',\n 'display name label': 'Display name',\n 'display name description': 'Your name as it appears in the app.',\n 'display name input placeholder': 'Enter a name',\n 'icon label': 'Avatar',\n 'icon description': 'The emoji used to represent you in the app.',\n 'hue label': 'Color',\n 'hue description':\n '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.',\n 'did label': 'DID',\n 'did description': 'Your unique ID.',\n 'open user account label': 'Open user account',\n 'manage credentials dialog title': 'Manage Account Recovery',\n 'credentials list label': 'Recovery credentials',\n 'no credentials title': 'WARNING: There is currently no way to recover your account.',\n 'no credentials message': 'Create a recovery credential above to secure your account.',\n 'recovery setup dialog title': 'Account Security',\n 'recovery setup dialog description':\n '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.',\n 'create passkey label': 'Create Passkey',\n // TODO(wittjosiah): At link to user-focused passkey information.\n // Something like https://www.tomsguide.com/news/what-are-passkeys.\n 'create passkey description':\n 'A passkey is a secure and easy to use credential that can be used to recover your account.',\n 'create recovery code label': 'Create Recovery Code',\n 'create recovery code description': 'A recovery code is 12 word phrase representing a private key.',\n 'recovery code dialog title': 'Recovery Code',\n 'recovery code dialog description':\n '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.',\n 'recovery code dialog warning 1': 'NOTE: This code will not be displayed again.',\n 'recovery code dialog warning 2':\n 'It is your private key for recovering DXOS data. Anyone with this key will be able to gain access to your account.',\n 'recovery code confirmation label': 'Please confirm you have saved the code.',\n 'continue label': 'Continue',\n },\n },\n },\n] as const satisfies Resource[];\n\nexport const translations: Resource[] = [...pluginTranslations, ...shellTranslations];\n"],
5
- "mappings": "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",
6
- "names": ["ActivationEvent", "Capability", "Common", "Plugin", "Capability", "AppGraphBuilder", "Capability", "lazy", "Capability", "Migrations", "Capability", "lazy", "Capability", "ReactContext", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "translations", "shellTranslations", "pluginTranslations", "meta", "id", "translations", "shellTranslations", "ClientPlugin", "Plugin", "define", "meta", "pipe", "addModule", "options", "id", "Capability", "getModuleTag", "Client", "activatesOn", "ActivationEvent", "oneOf", "Common", "Startup", "SetupAppGraph", "activatesAfter", "ClientEvents", "ClientReady", "activate", "activatesBefore", "SetupSchema", "SchemaDefs", "SetupMigration", "Migrations", "addReactContextModule", "ReactContext", "invitationUrl", "window", "location", "origin", "invitationProp", "onReset", "createInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "ReactSurface", "SetupReactSurface", "addAppGraphModule", "AppGraphBuilder", "addOperationResolverModule", "OperationResolver", "addTranslationsModule", "translations", "make"]
3
+ "sources": ["../../../src/ClientPlugin.ts", "../../../src/translations.ts", "../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvent, ActivationEvents, Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\n\nimport { meta } from '#meta';\nimport { translations } from './translations';\nimport { ClientEvents } from '#types';\nimport { type ClientPluginOptions } from '#types';\n\nimport {\n AppGraphBuilder,\n Client,\n Migrations,\n NavigationHandler,\n OperationHandler,\n ReactContext,\n ReactSurface,\n SchemaDefs,\n} from '#capabilities';\n\nexport const ClientPlugin = Plugin.define<ClientPluginOptions>(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addNavigationHandlerModule(({ invitationProp }) => ({\n activate: () => NavigationHandler({ invitationProp }),\n })),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addReactContextModule({ activate: ReactContext }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule((options) => {\n return {\n id: Capability.getModuleTag(Client),\n activatesOn: ActivationEvent.oneOf(ActivationEvents.Startup, AppActivationEvents.SetupAppGraph),\n activatesAfter: [ClientEvents.ClientReady],\n activate: () => Client(options),\n };\n }),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [AppActivationEvents.SetupSchema],\n activate: SchemaDefs,\n }),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [ClientEvents.SetupMigration],\n activate: Migrations,\n }),\n Plugin.addModule(\n ({\n shareableLinkOrigin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost',\n invitationPath = '/',\n invitationProp = 'deviceInvitationCode',\n onReset,\n }) => {\n const createInvitationUrl = (invitationCode: string) => {\n const baseUrl = new URL(invitationPath || '/', shareableLinkOrigin);\n baseUrl.searchParams.set(invitationProp, invitationCode);\n return baseUrl.toString();\n };\n\n return {\n id: Capability.getModuleTag(ReactSurface),\n activatesOn: ActivationEvents.SetupReactSurface,\n activate: () => ReactSurface({ createInvitationUrl, onReset }),\n };\n },\n ),\n Plugin.make,\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as shellTranslations } from '@dxos/shell/react';\n\nimport { meta } from '#meta';\n\n// TODO(burdon): Disambiguate with sdk/shell\nconst pluginTranslations = [\n {\n 'en-US': {\n [meta.id]: {\n 'account.label': 'User profile',\n 'profile.label': 'Profile',\n 'profile.description': 'You can adjust how your user settings here.',\n 'devices.label': 'Devices',\n 'add-device.label': 'Add device',\n 'devices-verbose.label': 'Manage devices',\n 'add-device.description':\n 'Authenticating another device is a two-step process. To get started, create a code using the button below.',\n 'devices.description':\n 'You can add and remove devices, configure your agent in the cloud, reset this device, or log in as a different identity here.',\n 'create-device-invitation.label': 'Create code',\n 'qr-code.description':\n 'Scan this QR code using the device you want to log in to, or copy the URL and share it with the new device.',\n 'security.label': 'Security',\n 'reset-device.description': 'Log out from this device, erasing all the data on this device.',\n 'join-new-identity.description':\n 'Log out from this device, erasing all the data currently on this device, and use a QR code or URL to log in.',\n 'recover-identity.description':\n 'Log out from this device, erasing all the data currently on this device, and use a passkey or recovery code to log in.',\n 'danger-zone.title': 'Log out',\n 'danger-zone.description':\n '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.',\n 'display-name.label': 'Display name',\n 'display-name.description': 'Your name as it appears in the app.',\n 'display-name-input.placeholder': 'Enter a name',\n 'icon.label': 'Avatar',\n 'icon.description': 'The emoji used to represent the user.',\n 'hue.label': 'Color',\n 'hue.description':\n '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.',\n 'did.label': 'DID',\n 'did.description': 'Your unique ID.',\n 'open-user-account.label': 'Open user account',\n 'manage-credentials-dialog.title': 'Manage Account Recovery',\n 'credentials-list.label': 'Recovery credentials',\n 'no-credentials.title': 'WARNING: There is currently no way to recover your account.',\n 'no-credentials.message': 'Create a recovery credential above to secure your account.',\n 'recovery-setup-dialog.title': 'Account Security',\n 'recovery-setup-dialog.description':\n '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.',\n 'create-passkey.label': 'Create Passkey',\n // TODO(wittjosiah): At link to user-focused passkey information.\n // Something like https://www.tomsguide.com/news/what-are-passkeys.\n 'create-passkey.description':\n 'A passkey is a secure and easy to use credential that can be used to recover your account.',\n 'create-recovery-code.label': 'Create Recovery Code',\n 'create-recovery-code.description': 'A recovery code is 12 word phrase representing a private key.',\n 'recovery-code-dialog.title': 'Recovery Code',\n 'recovery-code-dialog.description':\n '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.',\n 'recovery-code-dialog-warning-1.message': 'NOTE: This code will not be displayed again.',\n 'recovery-code-dialog-warning-2.message':\n 'It is your private key for recovering DXOS data. Anyone with this key will be able to gain access to your account.',\n 'recovery-code-confirmation.label': 'Please confirm you have saved the code.',\n 'continue.label': 'Continue',\n 'auth-code.message': 'Authorization code',\n 'auth-other-device-emoji.message': 'Authorization icon',\n 'cancel.label': 'Cancel',\n 'join-new-identity.label': 'Join an existing identity',\n 'qr.label': 'QR Code',\n 'recover-identity.label': 'Use a recovery code',\n 'reset-device.label': 'Reset storage',\n 'reset-dialog.description': 'Reset storage',\n 'reset-dialog.title': 'Reset storage',\n },\n },\n },\n] as const satisfies Resource[];\n\nexport const translations: Resource[] = [...pluginTranslations, ...shellTranslations];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.client',\n name: 'Client',\n description: trim`\n Core client connectivity and peer-to-peer networking infrastructure.\n Manages identity, authentication, and real-time synchronization across devices.\n `,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["ActivationEvent", "ActivationEvents", "Capability", "Plugin", "AppActivationEvents", "AppPlugin", "meta", "translations", "shellTranslations", "meta", "pluginTranslations", "meta", "id", "translations", "shellTranslations", "ClientEvents", "AppGraphBuilder", "Client", "Migrations", "NavigationHandler", "OperationHandler", "ReactContext", "ReactSurface", "SchemaDefs", "ClientPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addAppGraphModule", "activate", "AppGraphBuilder", "addNavigationHandlerModule", "invitationProp", "NavigationHandler", "addOperationHandlerModule", "OperationHandler", "addReactContextModule", "ReactContext", "addTranslationsModule", "translations", "addModule", "options", "id", "Capability", "getModuleTag", "Client", "activatesOn", "ActivationEvent", "oneOf", "ActivationEvents", "Startup", "AppActivationEvents", "SetupAppGraph", "activatesAfter", "ClientEvents", "ClientReady", "activatesBefore", "SetupSchema", "SchemaDefs", "SetupMigration", "Migrations", "shareableLinkOrigin", "window", "location", "origin", "invitationPath", "onReset", "createInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "ReactSurface", "SetupReactSurface", "make", "trim", "meta", "id", "name", "description", "trim"]
7
7
  }
@@ -0,0 +1,28 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ JOIN_DIALOG
4
+ } from "./chunk-J5RWSQT6.mjs";
5
+ import {
6
+ JoinIdentity
7
+ } from "./chunk-SJ6FDER5.mjs";
8
+ import "./chunk-HSLMI22Q.mjs";
9
+
10
+ // src/operations/join-identity.ts
11
+ import * as Effect from "effect/Effect";
12
+ import { LayoutOperation } from "@dxos/app-toolkit";
13
+ import { Operation } from "@dxos/operation";
14
+ var handler = JoinIdentity.pipe(Operation.withHandler(Effect.fnUntraced(function* (data) {
15
+ yield* Operation.invoke(LayoutOperation.UpdateDialog, {
16
+ subject: JOIN_DIALOG,
17
+ blockAlign: "start",
18
+ props: {
19
+ initialInvitationCode: data.invitationCode,
20
+ initialDisposition: "accept-halo-invitation"
21
+ }
22
+ });
23
+ })));
24
+ var join_identity_default = handler;
25
+ export {
26
+ join_identity_default as default
27
+ };
28
+ //# sourceMappingURL=join-identity-6NT75FSO.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/join-identity.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/operation';\n\nimport { JoinIdentity } from './definitions';\n\nimport { JOIN_DIALOG } from '../constants';\n\nconst handler: Operation.WithHandler<typeof JoinIdentity> = JoinIdentity.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (data) {\n yield* Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: JOIN_DIALOG,\n blockAlign: 'start',\n props: {\n initialInvitationCode: data.invitationCode,\n initialDisposition: 'accept-halo-invitation',\n },\n });\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAM1B,IAAMC,UAAsDC,aAAaC,KACvEC,UAAUC,YACDC,kBAAW,WAAWC,MAAI;AAC/B,SAAOH,UAAUI,OAAOC,gBAAgBC,cAAc;IACpDC,SAASC;IACTC,YAAY;IACZC,OAAO;MACLC,uBAAuBR,KAAKS;MAC5BC,oBAAoB;IACtB;EACF,CAAA;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,wBAAehB;",
6
+ "names": ["Effect", "LayoutOperation", "Operation", "handler", "JoinIdentity", "pipe", "Operation", "withHandler", "fnUntraced", "data", "invoke", "LayoutOperation", "UpdateDialog", "subject", "JOIN_DIALOG", "blockAlign", "props", "initialInvitationCode", "invitationCode", "initialDisposition"]
7
+ }