@dxos/plugin-client 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/dist/lib/ClientPlugin.mjs +65 -0
  2. package/dist/lib/ClientPlugin.mjs.map +1 -0
  3. package/dist/lib/ClientPlugin.node.mjs +904 -0
  4. package/dist/lib/ClientPlugin.node.mjs.map +1 -0
  5. package/dist/lib/ClientPlugin.workerd.mjs +10 -0
  6. package/dist/lib/ClientPlugin.workerd.mjs.map +1 -0
  7. package/dist/lib/capabilities/node.mjs +13 -0
  8. package/dist/lib/capabilities/node.mjs.map +1 -0
  9. package/dist/lib/capabilities.mjs +23 -0
  10. package/dist/lib/capabilities.mjs.map +1 -0
  11. package/dist/lib/chunk-AccountContainer.mjs +190 -0
  12. package/dist/lib/chunk-AccountContainer.mjs.map +1 -0
  13. package/dist/lib/chunk-DevicesContainer.mjs +275 -0
  14. package/dist/lib/chunk-DevicesContainer.mjs.map +1 -0
  15. package/dist/lib/chunk-InvitationsContainer.mjs +149 -0
  16. package/dist/lib/chunk-InvitationsContainer.mjs.map +1 -0
  17. package/dist/lib/chunk-JoinDialog.mjs +35 -0
  18. package/dist/lib/chunk-JoinDialog.mjs.map +1 -0
  19. package/dist/lib/chunk-ProfileContainer.mjs +145 -0
  20. package/dist/lib/chunk-ProfileContainer.mjs.map +1 -0
  21. package/dist/lib/chunk-RecoveryCodeDialog.mjs +72 -0
  22. package/dist/lib/chunk-RecoveryCodeDialog.mjs.map +1 -0
  23. package/dist/lib/chunk-RecoveryCredentialsContainer.mjs +65 -0
  24. package/dist/lib/chunk-RecoveryCredentialsContainer.mjs.map +1 -0
  25. package/dist/lib/chunk-ResetDialog.mjs +47 -0
  26. package/dist/lib/chunk-ResetDialog.mjs.map +1 -0
  27. package/dist/lib/chunk-UsageContainer.mjs +217 -0
  28. package/dist/lib/chunk-UsageContainer.mjs.map +1 -0
  29. package/dist/lib/{neutral/account-cache-YVQKLNV2.mjs → chunk-account-cache.mjs} +10 -12
  30. package/dist/lib/chunk-account-cache.mjs.map +1 -0
  31. package/dist/lib/chunk-app-graph-builder.mjs +111 -0
  32. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
  33. package/dist/lib/chunk-client.mjs +90 -0
  34. package/dist/lib/chunk-client.mjs.map +1 -0
  35. package/dist/lib/{neutral/chunk-GSKMAS3S.mjs → chunk-constants.mjs} +5 -8
  36. package/dist/lib/chunk-constants.mjs.map +1 -0
  37. package/dist/lib/chunk-create-agent.mjs +23 -0
  38. package/dist/lib/chunk-create-agent.mjs.map +1 -0
  39. package/dist/lib/chunk-create-identity.mjs +28 -0
  40. package/dist/lib/chunk-create-identity.mjs.map +1 -0
  41. package/dist/lib/chunk-create-passkey.mjs +85 -0
  42. package/dist/lib/chunk-create-passkey.mjs.map +1 -0
  43. package/dist/lib/chunk-create-recovery-code.mjs +31 -0
  44. package/dist/lib/chunk-create-recovery-code.mjs.map +1 -0
  45. package/dist/lib/chunk-hooks.mjs +29 -0
  46. package/dist/lib/chunk-hooks.mjs.map +1 -0
  47. package/dist/lib/chunk-hub-http-client.mjs +14 -0
  48. package/dist/lib/chunk-hub-http-client.mjs.map +1 -0
  49. package/dist/lib/chunk-join-identity.mjs +20 -0
  50. package/dist/lib/chunk-join-identity.mjs.map +1 -0
  51. package/dist/lib/chunk-layer-specs.mjs +107 -0
  52. package/dist/lib/chunk-layer-specs.mjs.map +1 -0
  53. package/dist/lib/{neutral/chunk-6G4KZLBG.mjs → chunk-meta.mjs} +13 -20
  54. package/dist/lib/chunk-meta.mjs.map +1 -0
  55. package/dist/lib/chunk-migrations.mjs +29 -0
  56. package/dist/lib/chunk-migrations.mjs.map +1 -0
  57. package/dist/lib/chunk-navigation-handler.mjs +71 -0
  58. package/dist/lib/chunk-navigation-handler.mjs.map +1 -0
  59. package/dist/lib/chunk-navigation-target-loader.mjs +46 -0
  60. package/dist/lib/chunk-navigation-target-loader.mjs.map +1 -0
  61. package/dist/lib/chunk-open-usage.mjs +14 -0
  62. package/dist/lib/chunk-open-usage.mjs.map +1 -0
  63. package/dist/lib/chunk-operation-handler.mjs +11 -0
  64. package/dist/lib/chunk-operation-handler.mjs.map +1 -0
  65. package/dist/lib/chunk-operations.mjs +212 -0
  66. package/dist/lib/chunk-operations.mjs.map +1 -0
  67. package/dist/lib/chunk-progress.mjs +10 -0
  68. package/dist/lib/chunk-progress.mjs.map +1 -0
  69. package/dist/lib/chunk-react-context.mjs +30 -0
  70. package/dist/lib/chunk-react-context.mjs.map +1 -0
  71. package/dist/lib/chunk-react-surface.mjs +70 -0
  72. package/dist/lib/chunk-react-surface.mjs.map +1 -0
  73. package/dist/lib/chunk-recover-identity.mjs +17 -0
  74. package/dist/lib/chunk-recover-identity.mjs.map +1 -0
  75. package/dist/lib/chunk-redeem-passkey.mjs +72 -0
  76. package/dist/lib/chunk-redeem-passkey.mjs.map +1 -0
  77. package/dist/lib/chunk-redeem-token.mjs +24 -0
  78. package/dist/lib/chunk-redeem-token.mjs.map +1 -0
  79. package/dist/lib/chunk-remote-trace-monitor.mjs +37 -0
  80. package/dist/lib/chunk-remote-trace-monitor.mjs.map +1 -0
  81. package/dist/lib/chunk-reset-storage.mjs +17 -0
  82. package/dist/lib/chunk-reset-storage.mjs.map +1 -0
  83. package/dist/lib/chunk-resolve-navigation-targets.mjs +32 -0
  84. package/dist/lib/chunk-resolve-navigation-targets.mjs.map +1 -0
  85. package/dist/lib/chunk-schema-defs.mjs +53 -0
  86. package/dist/lib/chunk-schema-defs.mjs.map +1 -0
  87. package/dist/lib/chunk-share-identity.mjs +16 -0
  88. package/dist/lib/chunk-share-identity.mjs.map +1 -0
  89. package/dist/lib/chunk-space-replication-progress.mjs +94 -0
  90. package/dist/lib/chunk-space-replication-progress.mjs.map +1 -0
  91. package/dist/lib/chunk-trace-progress.mjs +69 -0
  92. package/dist/lib/chunk-trace-progress.mjs.map +1 -0
  93. package/dist/lib/chunk-update-profile.mjs +15 -0
  94. package/dist/lib/chunk-update-profile.mjs.map +1 -0
  95. package/dist/lib/components.mjs +0 -0
  96. package/dist/lib/containers.mjs +15 -0
  97. package/dist/lib/containers.mjs.map +1 -0
  98. package/dist/lib/index.mjs +27 -0
  99. package/dist/lib/index.mjs.map +1 -0
  100. package/dist/lib/meta.mjs +2 -0
  101. package/dist/lib/operations.mjs +2 -0
  102. package/dist/lib/plugin.mjs +9 -0
  103. package/dist/lib/plugin.mjs.map +1 -0
  104. package/dist/lib/testing.mjs +21 -0
  105. package/dist/lib/testing.mjs.map +1 -0
  106. package/dist/lib/translations.mjs +111 -0
  107. package/dist/lib/translations.mjs.map +1 -0
  108. package/dist/lib/types.mjs +139 -0
  109. package/dist/lib/types.mjs.map +1 -0
  110. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/account-cache.d.ts +1 -1
  112. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  113. package/dist/types/src/capabilities/client.d.ts +1 -1
  114. package/dist/types/src/capabilities/client.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/hub-http-client.d.ts +1 -1
  116. package/dist/types/src/capabilities/index.d.ts +6 -1
  117. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  118. package/dist/types/src/capabilities/layer-specs.d.ts +1 -1
  119. package/dist/types/src/capabilities/migrations.d.ts +1 -1
  120. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +3 -1
  121. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -1
  122. package/dist/types/src/capabilities/navigation-target-loader.d.ts +11 -0
  123. package/dist/types/src/capabilities/navigation-target-loader.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/node.d.ts +2 -1
  125. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  126. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  127. package/dist/types/src/capabilities/react-context.d.ts +1 -1
  128. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  129. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  130. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/remote-trace-monitor.d.ts +15 -0
  132. package/dist/types/src/capabilities/remote-trace-monitor.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  134. package/dist/types/src/capabilities/space-replication-progress.d.ts +11 -0
  135. package/dist/types/src/capabilities/space-replication-progress.d.ts.map +1 -0
  136. package/dist/types/src/capabilities/trace-progress.d.ts +17 -0
  137. package/dist/types/src/capabilities/trace-progress.d.ts.map +1 -0
  138. package/dist/types/src/commands/account/login/login.d.ts +2 -1
  139. package/dist/types/src/commands/account/login/login.d.ts.map +1 -1
  140. package/dist/types/src/commands/account/logout/logout.d.ts +1 -1
  141. package/dist/types/src/commands/account/logout/logout.d.ts.map +1 -1
  142. package/dist/types/src/commands/halo/index.d.ts.map +1 -1
  143. package/dist/types/src/commands/halo/share/share.d.ts.map +1 -1
  144. package/dist/types/src/commands/profile/create.d.ts.map +1 -1
  145. package/dist/types/src/containers/AccountContainer/AccountContainer.d.ts +4 -1
  146. package/dist/types/src/containers/AccountContainer/AccountContainer.d.ts.map +1 -1
  147. package/dist/types/src/containers/AccountContainer/AccountContainer.stories.d.ts +4 -1
  148. package/dist/types/src/containers/AccountContainer/AccountContainer.stories.d.ts.map +1 -1
  149. package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts +4 -1
  150. package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts.map +1 -1
  151. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts +4 -1
  152. package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts.map +1 -1
  153. package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.d.ts +4 -1
  154. package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.d.ts.map +1 -1
  155. package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.stories.d.ts +4 -1
  156. package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.stories.d.ts.map +1 -1
  157. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts +4 -1
  158. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
  159. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +4 -1
  160. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -1
  161. package/dist/types/src/containers/ProfileContainer/ProfileContainer.d.ts +4 -1
  162. package/dist/types/src/containers/ProfileContainer/ProfileContainer.d.ts.map +1 -1
  163. package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts +4 -1
  164. package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts.map +1 -1
  165. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts +4 -1
  166. package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts.map +1 -1
  167. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts +4 -1
  168. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts.map +1 -1
  169. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts +4 -1
  170. package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts.map +1 -1
  171. package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts +4 -1
  172. package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts.map +1 -1
  173. package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts +4 -1
  174. package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts.map +1 -1
  175. package/dist/types/src/containers/UsageContainer/UsageContainer.d.ts +4 -5
  176. package/dist/types/src/containers/UsageContainer/UsageContainer.d.ts.map +1 -1
  177. package/dist/types/src/containers/UsageContainer/UsageView.d.ts +4 -7
  178. package/dist/types/src/containers/UsageContainer/UsageView.d.ts.map +1 -1
  179. package/dist/types/src/containers/UsageContainer/UsageView.stories.d.ts +4 -2
  180. package/dist/types/src/containers/UsageContainer/UsageView.stories.d.ts.map +1 -1
  181. package/dist/types/src/halo-services-layer.d.ts +19 -0
  182. package/dist/types/src/halo-services-layer.d.ts.map +1 -0
  183. package/dist/types/src/index.d.ts +3 -0
  184. package/dist/types/src/index.d.ts.map +1 -1
  185. package/dist/types/src/operations/definitions.d.ts +9 -1
  186. package/dist/types/src/operations/definitions.d.ts.map +1 -1
  187. package/dist/types/src/operations/errors.d.ts +109 -0
  188. package/dist/types/src/operations/errors.d.ts.map +1 -0
  189. package/dist/types/src/operations/errors.test.d.ts +2 -0
  190. package/dist/types/src/operations/errors.test.d.ts.map +1 -0
  191. package/dist/types/src/operations/index.d.ts +1 -0
  192. package/dist/types/src/operations/index.d.ts.map +1 -1
  193. package/dist/types/src/operations/redeem-passkey.d.ts.map +1 -1
  194. package/dist/types/src/operations/resolve-navigation-targets.d.ts +5 -0
  195. package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -0
  196. package/dist/types/src/operations/update-profile.d.ts +5 -0
  197. package/dist/types/src/operations/update-profile.d.ts.map +1 -0
  198. package/dist/types/src/progress/index.d.ts +2 -0
  199. package/dist/types/src/progress/index.d.ts.map +1 -0
  200. package/dist/types/src/progress/progress-keys.d.ts +6 -0
  201. package/dist/types/src/progress/progress-keys.d.ts.map +1 -0
  202. package/dist/types/src/testing/initializeIdentity.d.ts +5 -1
  203. package/dist/types/src/testing/initializeIdentity.d.ts.map +1 -1
  204. package/dist/types/src/translations.d.ts.map +1 -1
  205. package/dist/types/src/types/capabilities.d.ts +10 -1
  206. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  207. package/dist/types/src/types/schema.d.ts +6 -0
  208. package/dist/types/src/types/schema.d.ts.map +1 -1
  209. package/dist/types/tsconfig.tsbuildinfo +1 -1
  210. package/package.json +60 -55
  211. package/src/ClientPlugin.ts +25 -2
  212. package/src/capabilities/app-graph-builder.ts +1 -1
  213. package/src/capabilities/client.ts +26 -0
  214. package/src/capabilities/index.ts +10 -0
  215. package/src/capabilities/layer-specs.ts +64 -2
  216. package/src/capabilities/migrations.ts +9 -1
  217. package/src/capabilities/navigation-handler/navigation-handler.ts +20 -3
  218. package/src/capabilities/navigation-target-loader.ts +70 -0
  219. package/src/capabilities/react-context.tsx +20 -2
  220. package/src/capabilities/{react-surface.tsx → react-surface.ts} +14 -12
  221. package/src/capabilities/remote-trace-monitor.ts +62 -0
  222. package/src/capabilities/space-replication-progress.ts +143 -0
  223. package/src/capabilities/trace-progress.ts +84 -0
  224. package/src/commands/account/login/login.ts +48 -6
  225. package/src/commands/account/logout/logout.ts +4 -0
  226. package/src/commands/halo/index.ts +6 -2
  227. package/src/commands/halo/share/share.ts +16 -5
  228. package/src/commands/profile/create.ts +23 -40
  229. package/src/containers/AccountContainer/AccountContainer.tsx +6 -5
  230. package/src/containers/DevicesContainer/DevicesContainer.tsx +2 -0
  231. package/src/containers/InvitationsContainer/InvitationsContainer.tsx +2 -0
  232. package/src/containers/JoinDialog/JoinDialog.tsx +2 -0
  233. package/src/containers/ProfileContainer/ProfileContainer.tsx +19 -13
  234. package/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.tsx +2 -0
  235. package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx +7 -9
  236. package/src/containers/ResetDialog/ResetDialog.tsx +2 -0
  237. package/src/containers/UsageContainer/UsageContainer.tsx +10 -1
  238. package/src/containers/UsageContainer/UsageView.stories.tsx +0 -12
  239. package/src/containers/UsageContainer/UsageView.tsx +9 -10
  240. package/src/halo-services-layer.ts +29 -0
  241. package/src/index.ts +9 -0
  242. package/src/operations/definitions.ts +9 -1
  243. package/src/operations/errors.test.ts +27 -0
  244. package/src/operations/errors.ts +47 -0
  245. package/src/operations/index.ts +3 -0
  246. package/src/operations/open-usage.ts +3 -3
  247. package/src/operations/redeem-passkey.ts +85 -55
  248. package/src/operations/resolve-navigation-targets.ts +71 -0
  249. package/src/operations/share-identity.ts +3 -3
  250. package/src/operations/update-profile.ts +20 -0
  251. package/src/progress/index.ts +5 -0
  252. package/src/progress/progress-keys.ts +15 -0
  253. package/src/testing/initializeIdentity.ts +10 -2
  254. package/src/translations.ts +2 -0
  255. package/src/types/capabilities.ts +15 -1
  256. package/src/types/schema.ts +7 -0
  257. package/dist/lib/neutral/AccountContainer-7SF53UON.mjs +0 -186
  258. package/dist/lib/neutral/AccountContainer-7SF53UON.mjs.map +0 -7
  259. package/dist/lib/neutral/ClientPlugin.mjs +0 -72
  260. package/dist/lib/neutral/ClientPlugin.mjs.map +0 -7
  261. package/dist/lib/neutral/ClientPlugin.node.mjs +0 -1156
  262. package/dist/lib/neutral/ClientPlugin.node.mjs.map +0 -7
  263. package/dist/lib/neutral/ClientPlugin.workerd.mjs +0 -16
  264. package/dist/lib/neutral/ClientPlugin.workerd.mjs.map +0 -7
  265. package/dist/lib/neutral/DevicesContainer-PRWIN36N.mjs +0 -271
  266. package/dist/lib/neutral/DevicesContainer-PRWIN36N.mjs.map +0 -7
  267. package/dist/lib/neutral/InvitationsContainer-BI5RAWET.mjs +0 -143
  268. package/dist/lib/neutral/InvitationsContainer-BI5RAWET.mjs.map +0 -7
  269. package/dist/lib/neutral/JoinDialog-4BWV4CYB.mjs +0 -53
  270. package/dist/lib/neutral/JoinDialog-4BWV4CYB.mjs.map +0 -7
  271. package/dist/lib/neutral/ProfileContainer-YEAYOTX5.mjs +0 -169
  272. package/dist/lib/neutral/ProfileContainer-YEAYOTX5.mjs.map +0 -7
  273. package/dist/lib/neutral/RecoveryCodeDialog-7EPNKCLB.mjs +0 -59
  274. package/dist/lib/neutral/RecoveryCodeDialog-7EPNKCLB.mjs.map +0 -7
  275. package/dist/lib/neutral/RecoveryCredentialsContainer-6BZ2IWX7.mjs +0 -60
  276. package/dist/lib/neutral/RecoveryCredentialsContainer-6BZ2IWX7.mjs.map +0 -7
  277. package/dist/lib/neutral/ResetDialog-KUWX45JY.mjs +0 -57
  278. package/dist/lib/neutral/ResetDialog-KUWX45JY.mjs.map +0 -7
  279. package/dist/lib/neutral/UsageContainer-2DWCVVE4.mjs +0 -241
  280. package/dist/lib/neutral/UsageContainer-2DWCVVE4.mjs.map +0 -7
  281. package/dist/lib/neutral/account-cache-YVQKLNV2.mjs.map +0 -7
  282. package/dist/lib/neutral/app-graph-builder-RVXTD6OE.mjs +0 -159
  283. package/dist/lib/neutral/app-graph-builder-RVXTD6OE.mjs.map +0 -7
  284. package/dist/lib/neutral/capabilities/index.mjs +0 -34
  285. package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
  286. package/dist/lib/neutral/capabilities/node.mjs +0 -21
  287. package/dist/lib/neutral/capabilities/node.mjs.map +0 -7
  288. package/dist/lib/neutral/chunk-6G4KZLBG.mjs.map +0 -7
  289. package/dist/lib/neutral/chunk-7DEIKHB7.mjs +0 -199
  290. package/dist/lib/neutral/chunk-7DEIKHB7.mjs.map +0 -7
  291. package/dist/lib/neutral/chunk-A7WDDIWY.mjs +0 -162
  292. package/dist/lib/neutral/chunk-A7WDDIWY.mjs.map +0 -7
  293. package/dist/lib/neutral/chunk-GSKMAS3S.mjs.map +0 -7
  294. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
  295. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
  296. package/dist/lib/neutral/chunk-JY35S2CN.mjs +0 -27
  297. package/dist/lib/neutral/chunk-JY35S2CN.mjs.map +0 -7
  298. package/dist/lib/neutral/chunk-ZFABGG2E.mjs +0 -8
  299. package/dist/lib/neutral/chunk-ZFABGG2E.mjs.map +0 -7
  300. package/dist/lib/neutral/client-7I5Y5SOA.mjs +0 -62
  301. package/dist/lib/neutral/client-7I5Y5SOA.mjs.map +0 -7
  302. package/dist/lib/neutral/components/index.mjs +0 -1
  303. package/dist/lib/neutral/components/index.mjs.map +0 -7
  304. package/dist/lib/neutral/containers/index.mjs +0 -25
  305. package/dist/lib/neutral/containers/index.mjs.map +0 -7
  306. package/dist/lib/neutral/create-agent-6UKJMZS5.mjs +0 -26
  307. package/dist/lib/neutral/create-agent-6UKJMZS5.mjs.map +0 -7
  308. package/dist/lib/neutral/create-identity-ULCRB3YH.mjs +0 -42
  309. package/dist/lib/neutral/create-identity-ULCRB3YH.mjs.map +0 -7
  310. package/dist/lib/neutral/create-passkey-I7VDS3AC.mjs +0 -81
  311. package/dist/lib/neutral/create-passkey-I7VDS3AC.mjs.map +0 -7
  312. package/dist/lib/neutral/create-recovery-code-DH2B6EGP.mjs +0 -36
  313. package/dist/lib/neutral/create-recovery-code-DH2B6EGP.mjs.map +0 -7
  314. package/dist/lib/neutral/hub-http-client-WOJUCDKV.mjs +0 -19
  315. package/dist/lib/neutral/hub-http-client-WOJUCDKV.mjs.map +0 -7
  316. package/dist/lib/neutral/index.mjs +0 -25
  317. package/dist/lib/neutral/index.mjs.map +0 -7
  318. package/dist/lib/neutral/join-identity-PJCHDNLH.mjs +0 -27
  319. package/dist/lib/neutral/join-identity-PJCHDNLH.mjs.map +0 -7
  320. package/dist/lib/neutral/layer-specs-YI7BVWKZ.mjs +0 -59
  321. package/dist/lib/neutral/layer-specs-YI7BVWKZ.mjs.map +0 -7
  322. package/dist/lib/neutral/meta.json +0 -1
  323. package/dist/lib/neutral/meta.mjs +0 -8
  324. package/dist/lib/neutral/meta.mjs.map +0 -7
  325. package/dist/lib/neutral/migrations-7FTW55ER.mjs +0 -23
  326. package/dist/lib/neutral/migrations-7FTW55ER.mjs.map +0 -7
  327. package/dist/lib/neutral/navigation-handler-MQ6MZXLX.mjs +0 -46
  328. package/dist/lib/neutral/navigation-handler-MQ6MZXLX.mjs.map +0 -7
  329. package/dist/lib/neutral/open-usage-OJVTPGOY.mjs +0 -27
  330. package/dist/lib/neutral/open-usage-OJVTPGOY.mjs.map +0 -7
  331. package/dist/lib/neutral/operation-handler-E3HB7E2T.mjs +0 -13
  332. package/dist/lib/neutral/operation-handler-E3HB7E2T.mjs.map +0 -7
  333. package/dist/lib/neutral/operations/index.mjs +0 -12
  334. package/dist/lib/neutral/operations/index.mjs.map +0 -7
  335. package/dist/lib/neutral/plugin.mjs +0 -17
  336. package/dist/lib/neutral/plugin.mjs.map +0 -7
  337. package/dist/lib/neutral/react-context-V74T6JOJ.mjs +0 -23
  338. package/dist/lib/neutral/react-context-V74T6JOJ.mjs.map +0 -7
  339. package/dist/lib/neutral/react-surface-HPXRA65U.mjs +0 -75
  340. package/dist/lib/neutral/react-surface-HPXRA65U.mjs.map +0 -7
  341. package/dist/lib/neutral/recover-identity-B7YM2BR4.mjs +0 -26
  342. package/dist/lib/neutral/recover-identity-B7YM2BR4.mjs.map +0 -7
  343. package/dist/lib/neutral/redeem-passkey-TYP4XLHO.mjs +0 -66
  344. package/dist/lib/neutral/redeem-passkey-TYP4XLHO.mjs.map +0 -7
  345. package/dist/lib/neutral/redeem-token-2J33R3PV.mjs +0 -29
  346. package/dist/lib/neutral/redeem-token-2J33R3PV.mjs.map +0 -7
  347. package/dist/lib/neutral/reset-storage-K47HZTGP.mjs +0 -26
  348. package/dist/lib/neutral/reset-storage-K47HZTGP.mjs.map +0 -7
  349. package/dist/lib/neutral/schema-defs-IHBCKTMM.mjs +0 -51
  350. package/dist/lib/neutral/schema-defs-IHBCKTMM.mjs.map +0 -7
  351. package/dist/lib/neutral/share-identity-TOROBLWL.mjs +0 -31
  352. package/dist/lib/neutral/share-identity-TOROBLWL.mjs.map +0 -7
  353. package/dist/lib/neutral/testing/index.mjs +0 -25
  354. package/dist/lib/neutral/testing/index.mjs.map +0 -7
  355. package/dist/lib/neutral/translations.mjs +0 -124
  356. package/dist/lib/neutral/translations.mjs.map +0 -7
  357. package/dist/lib/neutral/types/index.mjs +0 -16
  358. package/dist/lib/neutral/types/index.mjs.map +0 -7
@@ -4,7 +4,7 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { LayoutOperation, Paths } from '@dxos/app-toolkit';
7
+ import { GraphPath, LayoutOperation } from '@dxos/app-toolkit';
8
8
  import { Operation } from '@dxos/compute';
9
9
  import { ObservabilityOperation } from '@dxos/plugin-observability';
10
10
 
@@ -14,9 +14,9 @@ import { ShareIdentity } from './definitions';
14
14
  const handler: Operation.WithHandler<typeof ShareIdentity> = ShareIdentity.pipe(
15
15
  Operation.withHandler(
16
16
  Effect.fnUntraced(function* () {
17
- yield* Operation.invoke(LayoutOperation.SwitchWorkspace, { subject: Paths.getSpacePath(Account.id) });
17
+ yield* Operation.invoke(LayoutOperation.SwitchWorkspace, { subject: GraphPath.getSpacePath(Account.id) });
18
18
  yield* Operation.invoke(LayoutOperation.Open, {
19
- subject: [Paths.getSpacePath(Account.id, Account.Profile)],
19
+ subject: [GraphPath.getSpacePath(Account.id, Account.Profile)],
20
20
  });
21
21
  yield* Operation.schedule(ObservabilityOperation.SendEvent, { name: 'identity.share' });
22
22
  }),
@@ -0,0 +1,20 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Operation } from '@dxos/compute';
8
+ import { Identity } from '@dxos/halo';
9
+
10
+ import { UpdateProfile } from './definitions';
11
+
12
+ const handler: Operation.WithHandler<typeof UpdateProfile> = UpdateProfile.pipe(
13
+ Operation.withHandler(
14
+ Effect.fnUntraced(function* (profile) {
15
+ yield* Identity.updateProfile({ displayName: profile.displayName, data: profile.data });
16
+ }),
17
+ ),
18
+ );
19
+
20
+ export default handler;
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ export * from './progress-keys';
@@ -0,0 +1,15 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { type SpaceId } from '@dxos/keys';
6
+
7
+ import { meta } from '#meta';
8
+
9
+ /** Stable progress-monitor key for automerge document replication in a space. */
10
+ export const createSpaceReplicationProgressKey = (spaceId: SpaceId): string =>
11
+ `${meta.profile.key}:space:${spaceId}#replication`;
12
+
13
+ /** Stable progress-monitor key for ECHO feed block replication in a space. */
14
+ export const createSpaceFeedReplicationProgressKey = (spaceId: SpaceId): string =>
15
+ `${meta.profile.key}:space:${spaceId}#feeds`;
@@ -15,13 +15,21 @@ export type InitializeIdentityResult = {
15
15
  personalSpace: Space;
16
16
  };
17
17
 
18
+ export type InitializeIdentityOptions = {
19
+ /** Profile display name for the generated identity, so stories show a real name (not a raw DID). */
20
+ displayName?: string;
21
+ };
22
+
18
23
  /**
19
24
  * Create an identity and a personal space.
20
25
  * Returns the identity and space for further setup.
21
26
  */
22
- export const initializeIdentity = (client: Client): Effect.Effect<InitializeIdentityResult, never, never> =>
27
+ export const initializeIdentity = (
28
+ client: Client,
29
+ { displayName }: InitializeIdentityOptions = {},
30
+ ): Effect.Effect<InitializeIdentityResult, never, never> =>
23
31
  Effect.gen(function* () {
24
- const identity = yield* Effect.promise(() => client.halo.createIdentity());
32
+ const identity = yield* Effect.promise(() => client.halo.createIdentity(displayName ? { displayName } : {}));
25
33
  const personalSpace = yield* Effect.promise(() =>
26
34
  client.spaces.create({}, { tags: [AppSpace.PERSONAL_SPACE_TAG] }),
27
35
  );
@@ -131,6 +131,8 @@ const pluginTranslations = [
131
131
  'reset-device.label': 'Reset storage',
132
132
  'reset-dialog.description': 'Reset storage',
133
133
  'reset-dialog.title': 'Reset storage',
134
+ 'navigation-failed-toast.title': 'Link could not be processed',
135
+ 'navigation-failed-toast.description': 'Something went wrong while handling this link. Please try again.',
134
136
  },
135
137
  },
136
138
  },
@@ -2,13 +2,15 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Atom } from '@effect-atom/atom-react';
5
+ import { type Atom } from '@effect-atom/atom';
6
+ import type * as Context from 'effect/Context';
6
7
 
7
8
  import { Capability } from '@dxos/app-framework';
8
9
  import { type Client } from '@dxos/client';
9
10
  import { type ObjectMigration } from '@dxos/client/echo';
10
11
  import { type Type } from '@dxos/echo';
11
12
  import { type HubHttpClient } from '@dxos/edge-client';
13
+ import { type Identity, type Space } from '@dxos/halo';
12
14
 
13
15
  import { meta } from '#meta';
14
16
 
@@ -22,4 +24,16 @@ export namespace ClientCapabilities {
22
24
  `${meta.profile.key}.capability.accountCache`,
23
25
  );
24
26
  export const HubHttpClient = Capability.make<HubHttpClient>(`${meta.profile.key}.capability.hubHttpClient`);
27
+
28
+ /**
29
+ * The HALO Identity service instance, for imperative (non-React, non-Effect-layer) consumers
30
+ * that need identity access without depending on `@dxos/client`.
31
+ */
32
+ export const IdentityService: Capability.InterfaceDef<Context.Tag.Service<Identity.Service>> = Capability.make(
33
+ `${meta.profile.key}.capability.identityService`,
34
+ );
35
+ /** The HALO Space service instance, for imperative consumers. */
36
+ export const SpaceService: Capability.InterfaceDef<Context.Tag.Service<Space.Service>> = Capability.make(
37
+ `${meta.profile.key}.capability.spaceService`,
38
+ );
25
39
  }
@@ -113,6 +113,13 @@ export type ClientPluginOptions = ClientOptions & {
113
113
  */
114
114
  invitationProp?: string;
115
115
 
116
+ /**
117
+ * Whether the navigation handler consumes invitation codes from URL query params.
118
+ * Disable when another plugin (e.g. plugin-onboarding) owns the invitation URL flow.
119
+ * @default true
120
+ */
121
+ invitationUrlHandler?: boolean;
122
+
116
123
  /**
117
124
  * Run after the client has been initialized.
118
125
  * Plugin context is provided so capabilities are accessible.
@@ -1,186 +0,0 @@
1
- import {
2
- useHubHttpClient
3
- } from "./chunk-JY35S2CN.mjs";
4
- import {
5
- RESET_DIALOG
6
- } from "./chunk-GSKMAS3S.mjs";
7
- import "./chunk-J5LGTIGS.mjs";
8
-
9
- // src/containers/AccountContainer/AccountContainer.tsx
10
- import { useAtom, useAtomSet } from "@effect-atom/atom-react";
11
- import React, { useCallback, useState } from "react";
12
- import { useCapability, useOperationInvoker } from "@dxos/app-framework/ui";
13
- import { LayoutOperation } from "@dxos/app-toolkit";
14
- import { Context } from "@dxos/context";
15
- import { createDidFromIdentityKey } from "@dxos/credentials";
16
- import { useIdentity } from "@dxos/react-client/halo";
17
- import { Button, Icon, IconButton, Input, Message, useAsyncEffect, useTranslation } from "@dxos/react-ui";
18
- import { Form } from "@dxos/react-ui-form";
19
- import { meta } from "#meta";
20
- import { ClientCapabilities } from "#types";
21
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/containers/AccountContainer/AccountContainer.tsx";
22
- var AccountContainer = () => {
23
- const { t } = useTranslation(meta.profile.key);
24
- const identity = useIdentity();
25
- const { invokePromise } = useOperationInvoker();
26
- const accountCacheAtom = useCapability(ClientCapabilities.AccountCache);
27
- const [cache] = useAtom(accountCacheAtom);
28
- const setCache = useAtomSet(accountCacheAtom);
29
- const [resendStatus, setResendStatus] = useState(null);
30
- const [accountState, setAccountState] = useState(cache.account ? "present" : "loading");
31
- const [requestEmail, setRequestEmail] = useState("");
32
- const [requestSubmitted, setRequestSubmitted] = useState(false);
33
- const hubHttp = useHubHttpClient();
34
- useAsyncEffect(async () => {
35
- if (!hubHttp) {
36
- return;
37
- }
38
- try {
39
- const account2 = await hubHttp.getAccount(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 36 }));
40
- setCache((prev) => ({
41
- ...prev,
42
- account: account2,
43
- fetchedAt: Date.now()
44
- }));
45
- setAccountState("present");
46
- } catch (err) {
47
- if (err?.data?.type === "no_account") {
48
- setCache((prev) => ({
49
- ...prev,
50
- account: void 0,
51
- fetchedAt: Date.now()
52
- }));
53
- setAccountState("missing");
54
- } else {
55
- setAccountState((prev) => prev === "present" ? "present" : "error");
56
- }
57
- }
58
- }, [
59
- hubHttp,
60
- setCache
61
- ]);
62
- const handleResend = useCallback(async () => {
63
- if (!hubHttp) {
64
- return;
65
- }
66
- try {
67
- const result = await hubHttp.resendVerificationEmail(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 64 }));
68
- if (result.sent) {
69
- setResendStatus(t("verification-sent.message"));
70
- } else if (result.cooldownSecondsRemaining) {
71
- setResendStatus(t("verification-cooldown.message", {
72
- seconds: result.cooldownSecondsRemaining
73
- }));
74
- } else {
75
- setResendStatus(t("verification-failed.message"));
76
- }
77
- } catch {
78
- setResendStatus(t("verification-failed.message"));
79
- }
80
- }, [
81
- hubHttp,
82
- t
83
- ]);
84
- const handleRequestAccess = useCallback(async (event) => {
85
- event.preventDefault();
86
- const email = requestEmail.trim();
87
- if (!email || !hubHttp) {
88
- return;
89
- }
90
- try {
91
- const identityDid = identity ? await createDidFromIdentityKey(identity.identityKey) : void 0;
92
- await hubHttp.requestAccess(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 89 }), {
93
- email,
94
- identityDid
95
- });
96
- } catch {
97
- }
98
- setRequestSubmitted(true);
99
- }, [
100
- hubHttp,
101
- identity,
102
- requestEmail
103
- ]);
104
- const handleDeleteAccount = useCallback(() => {
105
- if (!hubHttp) {
106
- return;
107
- }
108
- void invokePromise(LayoutOperation.UpdateDialog, {
109
- subject: RESET_DIALOG,
110
- blockAlign: "start",
111
- props: {
112
- mode: "reset-storage",
113
- onBeforeReset: async () => {
114
- await hubHttp.deleteAccount(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 115 }));
115
- setCache(() => ({}));
116
- }
117
- }
118
- });
119
- }, [
120
- hubHttp,
121
- invokePromise,
122
- setCache
123
- ]);
124
- const account = cache.account;
125
- return /* @__PURE__ */ React.createElement(Form.Root, {
126
- variant: "settings"
127
- }, /* @__PURE__ */ React.createElement(Form.Viewport, {
128
- scroll: true
129
- }, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.Section, {
130
- title: t("account-section.title"),
131
- description: t("account-section.description")
132
- }, accountState === "loading" ? null : accountState === "missing" ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Message.Root, {
133
- valence: "warning"
134
- }, /* @__PURE__ */ React.createElement(Message.Title, {
135
- icon: "ph--warning--duotone"
136
- }, t("no-edge-access.title")), /* @__PURE__ */ React.createElement(Message.Content, null, t("no-edge-access.description"))), /* @__PURE__ */ React.createElement(Form.Row, {
137
- label: t("request-access.label"),
138
- description: t("request-access.description")
139
- }, requestSubmitted ? /* @__PURE__ */ React.createElement("span", {
140
- className: "text-sm text-description"
141
- }, t("access-request-submitted.message")) : /* @__PURE__ */ React.createElement("form", {
142
- onSubmit: handleRequestAccess,
143
- className: "flex gap-2 items-center justify-end"
144
- }, /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.TextInput, {
145
- type: "email",
146
- required: true,
147
- placeholder: t("access-request-email.placeholder"),
148
- value: requestEmail,
149
- onChange: (event) => setRequestEmail(event.target.value),
150
- classNames: "min-w-64"
151
- })), /* @__PURE__ */ React.createElement(Button, {
152
- type: "submit",
153
- density: "sm"
154
- }, t("request-access.label"))))) : accountState === "error" && !account ? /* @__PURE__ */ React.createElement(Message.Root, {
155
- valence: "error"
156
- }, /* @__PURE__ */ React.createElement(Message.Title, {
157
- icon: "ph--cloud-x--duotone"
158
- }, t("account-offline.title")), /* @__PURE__ */ React.createElement(Message.Content, null, t("account-offline.description"))) : account ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Form.Row, {
159
- label: t("email.label"),
160
- description: account.email
161
- }, account.emailVerified ? /* @__PURE__ */ React.createElement(Icon, {
162
- icon: "ph--check-circle--duotone",
163
- size: 5,
164
- classNames: "text-success-text justify-self-end"
165
- }) : /* @__PURE__ */ React.createElement("div", {
166
- className: "flex flex-col gap-1 items-end"
167
- }, /* @__PURE__ */ React.createElement(IconButton, {
168
- icon: "ph--paper-plane-tilt--regular",
169
- label: t("resend-verification.label"),
170
- onClick: handleResend,
171
- density: "sm"
172
- }), resendStatus ? /* @__PURE__ */ React.createElement("span", {
173
- className: "text-xs text-description"
174
- }, resendStatus) : null)), /* @__PURE__ */ React.createElement(Form.Row, {
175
- label: t("delete-account.label"),
176
- description: t("delete-account.description")
177
- }, /* @__PURE__ */ React.createElement(Button, {
178
- variant: "destructive",
179
- density: "sm",
180
- onClick: handleDeleteAccount
181
- }, t("delete-account.label")))) : null))));
182
- };
183
- export {
184
- AccountContainer as default
185
- };
186
- //# sourceMappingURL=AccountContainer-7SF53UON.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/AccountContainer/AccountContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport { useAtom, useAtomSet } from '@effect-atom/atom-react';\nimport React, { type FormEvent, useCallback, useState } from 'react';\n\nimport { useCapability, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Context } from '@dxos/context';\nimport { createDidFromIdentityKey } from '@dxos/credentials';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Button, Icon, IconButton, Input, Message, useAsyncEffect, useTranslation } from '@dxos/react-ui';\nimport { Form } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\nimport { ClientCapabilities } from '#types';\n\nimport { RESET_DIALOG } from '../../constants';\nimport { useHubHttpClient } from '../../hooks';\n\ntype AccountState = 'loading' | 'present' | 'missing' | 'error';\n\nexport const AccountContainer = () => {\n const { t } = useTranslation(meta.profile.key);\n const identity = useIdentity();\n const { invokePromise } = useOperationInvoker();\n const accountCacheAtom = useCapability(ClientCapabilities.AccountCache);\n const [cache] = useAtom(accountCacheAtom);\n const setCache = useAtomSet(accountCacheAtom);\n const [resendStatus, setResendStatus] = useState<string | null>(null);\n const [accountState, setAccountState] = useState<AccountState>(cache.account ? 'present' : 'loading');\n const [requestEmail, setRequestEmail] = useState('');\n const [requestSubmitted, setRequestSubmitted] = useState(false);\n\n // Single shared instance keeps the VP-auth handshake (request → 401 → signed\n // retry) at one round-trip per session instead of one per panel.\n const hubHttp = useHubHttpClient();\n\n useAsyncEffect(async () => {\n if (!hubHttp) {\n return;\n }\n try {\n const account = await hubHttp.getAccount(new Context());\n setCache((prev) => ({ ...prev, account, fetchedAt: Date.now() }));\n setAccountState('present');\n } catch (err: any) {\n if (err?.data?.type === 'no_account') {\n setCache((prev) => ({ ...prev, account: undefined, fetchedAt: Date.now() }));\n setAccountState('missing');\n } else {\n setAccountState((prev) => (prev === 'present' ? 'present' : 'error'));\n }\n }\n }, [hubHttp, setCache]);\n\n const handleResend = useCallback(async () => {\n if (!hubHttp) {\n return;\n }\n try {\n const result = await hubHttp.resendVerificationEmail(new Context());\n if (result.sent) {\n setResendStatus(t('verification-sent.message'));\n } else if (result.cooldownSecondsRemaining) {\n setResendStatus(t('verification-cooldown.message', { seconds: result.cooldownSecondsRemaining }));\n } else {\n setResendStatus(t('verification-failed.message'));\n }\n } catch {\n setResendStatus(t('verification-failed.message'));\n }\n }, [hubHttp, t]);\n\n const handleRequestAccess = useCallback(\n async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n const email = requestEmail.trim();\n if (!email || !hubHttp) {\n return;\n }\n try {\n const identityDid = identity ? await createDidFromIdentityKey(identity.identityKey) : undefined;\n await hubHttp.requestAccess(new Context(), { email, identityDid });\n } catch {\n // Surface a generic confirmation; failure details would leak signal.\n }\n setRequestSubmitted(true);\n },\n [hubHttp, identity, requestEmail],\n );\n\n // Opens the standard reset confirmation dialog. The `onBeforeReset` hook\n // deletes the hub account first; if that fails the reset is aborted so the\n // local identity is not wiped while the server record remains.\n const handleDeleteAccount = useCallback(() => {\n if (!hubHttp) {\n return;\n }\n void invokePromise(LayoutOperation.UpdateDialog, {\n subject: RESET_DIALOG,\n blockAlign: 'start',\n props: {\n mode: 'reset-storage',\n onBeforeReset: async () => {\n await hubHttp.deleteAccount(new Context());\n setCache(() => ({}));\n },\n },\n });\n }, [hubHttp, invokePromise, setCache]);\n\n const account = cache.account;\n\n return (\n <Form.Root variant='settings'>\n <Form.Viewport scroll>\n <Form.Content>\n <Form.Section title={t('account-section.title')} description={t('account-section.description')}>\n {accountState === 'loading' ? null : accountState === 'missing' ? (\n <>\n <Message.Root valence='warning'>\n <Message.Title icon='ph--warning--duotone'>{t('no-edge-access.title')}</Message.Title>\n <Message.Content>{t('no-edge-access.description')}</Message.Content>\n </Message.Root>\n <Form.Row label={t('request-access.label')} description={t('request-access.description')}>\n {requestSubmitted ? (\n <span className='text-sm text-description'>{t('access-request-submitted.message')}</span>\n ) : (\n <form onSubmit={handleRequestAccess} className='flex gap-2 items-center justify-end'>\n <Input.Root>\n <Input.TextInput\n type='email'\n required\n placeholder={t('access-request-email.placeholder')}\n value={requestEmail}\n onChange={(event) => setRequestEmail(event.target.value)}\n classNames='min-w-64'\n />\n </Input.Root>\n <Button type='submit' density='sm'>\n {t('request-access.label')}\n </Button>\n </form>\n )}\n </Form.Row>\n </>\n ) : accountState === 'error' && !account ? (\n <Message.Root valence='error'>\n <Message.Title icon='ph--cloud-x--duotone'>{t('account-offline.title')}</Message.Title>\n <Message.Content>{t('account-offline.description')}</Message.Content>\n </Message.Root>\n ) : account ? (\n <>\n <Form.Row label={t('email.label')} description={account.email}>\n {account.emailVerified ? (\n <Icon icon='ph--check-circle--duotone' size={5} classNames='text-success-text justify-self-end' />\n ) : (\n <div className='flex flex-col gap-1 items-end'>\n <IconButton\n icon='ph--paper-plane-tilt--regular'\n label={t('resend-verification.label')}\n onClick={handleResend}\n density='sm'\n />\n {resendStatus ? <span className='text-xs text-description'>{resendStatus}</span> : null}\n </div>\n )}\n </Form.Row>\n <Form.Row label={t('delete-account.label')} description={t('delete-account.description')}>\n <Button variant='destructive' density='sm' onClick={handleDeleteAccount}>\n {t('delete-account.label')}\n </Button>\n </Form.Row>\n </>\n ) : null}\n </Form.Section>\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["useAtom", "useAtomSet", "React", "useCallback", "useState", "useCapability", "useOperationInvoker", "LayoutOperation", "Context", "createDidFromIdentityKey", "useIdentity", "Button", "Icon", "IconButton", "Input", "Message", "useAsyncEffect", "useTranslation", "Form", "meta", "ClientCapabilities", "AccountContainer", "identity", "useIdentity", "invokePromise", "useOperationInvoker", "accountCacheAtom", "useCapability", "cache", "useAtom", "setCache", "useAtomSet", "resendStatus", "setResendStatus", "useState", "accountState", "setAccountState", "requestEmail", "setRequestEmail", "requestSubmitted", "setRequestSubmitted", "hubHttp", "account", "fetchedAt", "err", "type", "prev", "undefined", "t", "result", "seconds", "cooldownSecondsRemaining", "email", "identityDid", "blockAlign", "props", "onBeforeReset", "variant", "Form", "Viewport", "scroll", "Content", "title", "valence", "Message", "icon", "label", "description", "className", "onSubmit", "handleRequestAccess", "required", "placeholder", "value", "onChange", "event", "classNames", "Button", "emailVerified", "IconButton", "onClick", "density", "handleDeleteAccount"]
7
- }
@@ -1,72 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/ClientPlugin.ts
4
- import { ActivationEvent, ActivationEvents, Capability, Plugin } from "@dxos/app-framework";
5
- import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
6
- import { AccountCache, AppGraphBuilder, Client, HubHttpClient, LayerSpecs, Migrations, NavigationHandler, OperationHandler, ReactContext, ReactSurface, SchemaDefs } from "#capabilities";
7
- import { meta } from "#meta";
8
- import { translations } from "#translations";
9
- import { ClientEvents } from "#types";
10
- var ClientPlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
11
- activate: AppGraphBuilder
12
- }), AppPlugin.addNavigationHandlerModule(({ invitationProp }) => ({
13
- activate: () => NavigationHandler({
14
- invitationProp
15
- })
16
- })), AppPlugin.addOperationHandlerModule({
17
- activate: OperationHandler
18
- }), AppPlugin.addReactContextModule({
19
- activate: ReactContext
20
- }), AppPlugin.addTranslationsModule({
21
- translations
22
- }), Plugin.addModule((options) => {
23
- return {
24
- id: Capability.getModuleTag(Client),
25
- activatesOn: ActivationEvent.oneOf(ActivationEvents.Startup, AppActivationEvents.SetupAppGraph),
26
- firesAfterActivation: [
27
- ClientEvents.ClientReady
28
- ],
29
- activate: () => Client(options)
30
- };
31
- }), Plugin.addModule({
32
- activatesOn: ClientEvents.ClientReady,
33
- activate: AccountCache
34
- }), Plugin.addModule({
35
- activatesOn: ClientEvents.ClientReady,
36
- activate: HubHttpClient
37
- }), Plugin.addModule({
38
- activatesOn: ClientEvents.ClientReady,
39
- firesBeforeActivation: [
40
- AppActivationEvents.SetupSchema
41
- ],
42
- activate: SchemaDefs
43
- }), Plugin.addModule({
44
- activatesOn: ClientEvents.ClientReady,
45
- firesBeforeActivation: [
46
- ClientEvents.SetupMigration
47
- ],
48
- activate: Migrations
49
- }), Plugin.addModule({
50
- activatesOn: ActivationEvents.SetupProcessManager,
51
- activate: LayerSpecs
52
- }), Plugin.addModule(({ shareableLinkOrigin = typeof window !== "undefined" ? window.location.origin : "http://localhost", invitationPath = "/", invitationProp = "deviceInvitationCode", onReset }) => {
53
- const createInvitationUrl = (invitationCode) => {
54
- const baseUrl = new URL(invitationPath || "/", shareableLinkOrigin);
55
- baseUrl.searchParams.set(invitationProp, invitationCode);
56
- return baseUrl.toString();
57
- };
58
- return {
59
- id: Capability.getModuleTag(ReactSurface),
60
- activatesOn: ActivationEvents.SetupReactSurface,
61
- activate: () => ReactSurface({
62
- createInvitationUrl,
63
- onReset
64
- })
65
- };
66
- }), Plugin.make);
67
- var ClientPlugin_default = ClientPlugin;
68
- export {
69
- ClientPlugin,
70
- ClientPlugin_default as default
71
- };
72
- //# sourceMappingURL=ClientPlugin.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/ClientPlugin.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 {\n AccountCache,\n AppGraphBuilder,\n Client,\n HubHttpClient,\n LayerSpecs,\n Migrations,\n NavigationHandler,\n OperationHandler,\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 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 firesAfterActivation: [ClientEvents.ClientReady],\n activate: () => Client(options),\n };\n }),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n activate: AccountCache,\n }),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n activate: HubHttpClient,\n }),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n firesBeforeActivation: [AppActivationEvents.SetupSchema],\n activate: SchemaDefs,\n }),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n firesBeforeActivation: [ClientEvents.SetupMigration],\n activate: Migrations,\n }),\n Plugin.addModule({\n activatesOn: ActivationEvents.SetupProcessManager,\n activate: LayerSpecs,\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\nexport default ClientPlugin;\n"],
5
- "mappings": ";;;AAIA,SAASA,iBAAiBC,kBAAkBC,YAAYC,cAAc;AACtE,SAASC,qBAAqBC,iBAAiB;AAE/C,SACEC,cACAC,iBACAC,QACAC,eACAC,YACAC,YACAC,mBACAC,kBACAC,cACAC,cACAC,kBACK;AACP,SAASC,YAAY;AACrB,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAGtB,IAAMC,eAAejB,OAAOkB,OAA4BJ,IAAAA,EAAMK,KACnEjB,UAAUkB,kBAAkB;EAAEC,UAAUjB;AAAgB,CAAA,GACxDF,UAAUoB,2BAA2B,CAAC,EAAEC,eAAc,OAAQ;EAC5DF,UAAU,MAAMZ,kBAAkB;IAAEc;EAAe,CAAA;AACrD,EAAA,GACArB,UAAUsB,0BAA0B;EAAEH,UAAUX;AAAiB,CAAA,GACjER,UAAUuB,sBAAsB;EAAEJ,UAAUV;AAAa,CAAA,GACzDT,UAAUwB,sBAAsB;EAAEX;AAAa,CAAA,GAC/Cf,OAAO2B,UAAU,CAACC,YAAAA;AAChB,SAAO;IACLC,IAAI9B,WAAW+B,aAAazB,MAAAA;IAC5B0B,aAAalC,gBAAgBmC,MAAMlC,iBAAiBmC,SAAShC,oBAAoBiC,aAAa;IAC9FC,sBAAsB;MAACnB,aAAaoB;;IACpCf,UAAU,MAAMhB,OAAOuB,OAAAA;EACzB;AACF,CAAA,GACA5B,OAAO2B,UAAU;EACfI,aAAaf,aAAaoB;EAC1Bf,UAAUlB;AACZ,CAAA,GACAH,OAAO2B,UAAU;EACfI,aAAaf,aAAaoB;EAC1Bf,UAAUf;AACZ,CAAA,GACAN,OAAO2B,UAAU;EACfI,aAAaf,aAAaoB;EAC1BC,uBAAuB;IAACpC,oBAAoBqC;;EAC5CjB,UAAUR;AACZ,CAAA,GACAb,OAAO2B,UAAU;EACfI,aAAaf,aAAaoB;EAC1BC,uBAAuB;IAACrB,aAAauB;;EACrClB,UAAUb;AACZ,CAAA,GACAR,OAAO2B,UAAU;EACfI,aAAajC,iBAAiB0C;EAC9BnB,UAAUd;AACZ,CAAA,GACAP,OAAO2B,UACL,CAAC,EACCc,sBAAsB,OAAOC,WAAW,cAAcA,OAAOC,SAASC,SAAS,oBAC/EC,iBAAiB,KACjBtB,iBAAiB,wBACjBuB,QAAO,MACR;AACC,QAAMC,sBAAsB,CAACC,mBAAAA;AAC3B,UAAMC,UAAU,IAAIC,IAAIL,kBAAkB,KAAKJ,mBAAAA;AAC/CQ,YAAQE,aAAaC,IAAI7B,gBAAgByB,cAAAA;AACzC,WAAOC,QAAQI,SAAQ;EACzB;AAEA,SAAO;IACLxB,IAAI9B,WAAW+B,aAAalB,YAAAA;IAC5BmB,aAAajC,iBAAiBwD;IAC9BjC,UAAU,MAAMT,aAAa;MAAEmC;MAAqBD;IAAQ,CAAA;EAC9D;AACF,CAAA,GAEF9C,OAAOuD,IAAI;AAGb,IAAA,uBAAetC;",
6
- "names": ["ActivationEvent", "ActivationEvents", "Capability", "Plugin", "AppActivationEvents", "AppPlugin", "AccountCache", "AppGraphBuilder", "Client", "HubHttpClient", "LayerSpecs", "Migrations", "NavigationHandler", "OperationHandler", "ReactContext", "ReactSurface", "SchemaDefs", "meta", "translations", "ClientEvents", "ClientPlugin", "define", "pipe", "addAppGraphModule", "activate", "addNavigationHandlerModule", "invitationProp", "addOperationHandlerModule", "addReactContextModule", "addTranslationsModule", "addModule", "options", "id", "getModuleTag", "activatesOn", "oneOf", "Startup", "SetupAppGraph", "firesAfterActivation", "ClientReady", "firesBeforeActivation", "SetupSchema", "SetupMigration", "SetupProcessManager", "shareableLinkOrigin", "window", "location", "origin", "invitationPath", "onReset", "createInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "SetupReactSurface", "make"]
7
- }