@tempoxyz/id 0.0.0-stage → 0.0.1

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 (1096) hide show
  1. package/README.md +121 -2
  2. package/dist/App.d.ts +121 -0
  3. package/dist/App.d.ts.map +1 -0
  4. package/dist/App.js +132 -0
  5. package/dist/App.js.map +1 -0
  6. package/dist/app/client/.assetsignore +2 -0
  7. package/dist/app/client/_headers +4 -0
  8. package/dist/app/client/assets/Account-BYLpNFf3.css +1 -0
  9. package/dist/app/client/assets/Account-BllJah07.js +1 -0
  10. package/dist/app/client/assets/Amount-E_7snI0-.js +1 -0
  11. package/dist/app/client/assets/Amount-ZdtluGf-.css +1 -0
  12. package/dist/app/client/assets/Approval-CgV5JHlb.css +1 -0
  13. package/dist/app/client/assets/Approval-yKflypU2.js +1 -0
  14. package/dist/app/client/assets/ArrowUp-CRvqfMNU.js +1 -0
  15. package/dist/app/client/assets/Authentication-BAXhOh_4.js +2 -0
  16. package/dist/app/client/assets/BRLA-CZvVDNYr.png +0 -0
  17. package/dist/app/client/assets/BRZ-Cn3jEi9t.svg +1 -0
  18. package/dist/app/client/assets/CHFAU-DCedc4aH.png +0 -0
  19. package/dist/app/client/assets/Callout-B736759d.js +1 -0
  20. package/dist/app/client/assets/Callout-DBfEmP7q.css +1 -0
  21. package/dist/app/client/assets/Check-DVgD8tDG.js +1 -0
  22. package/dist/app/client/assets/ChevronRight-CsXtIZCB.js +1 -0
  23. package/dist/app/client/assets/ChooseAccount-BjxfQjPK.js +1 -0
  24. package/dist/app/client/assets/ChooseAccount-DL3wgJhE.css +1 -0
  25. package/dist/app/client/assets/Client-JrABNovb.js +1 -0
  26. package/dist/app/client/assets/Close-CRvWlhqc.js +1 -0
  27. package/dist/app/client/assets/Cloud-DgJsrqpQ.js +1 -0
  28. package/dist/app/client/assets/CodeInput-79Ctx8ZA.js +1 -0
  29. package/dist/app/client/assets/CodeInput-BqRteSwD.css +1 -0
  30. package/dist/app/client/assets/DLUSD-BnRXm3EI.png +0 -0
  31. package/dist/app/client/assets/Deposit-CclrAoXL.css +1 -0
  32. package/dist/app/client/assets/Deposit-c7uYn2Eb.js +1 -0
  33. package/dist/app/client/assets/DevTools-BYkmtuV5.css +1 -0
  34. package/dist/app/client/assets/DevTools-BgnzDGo2.js +1 -0
  35. package/dist/app/client/assets/DeviceApproval-BBUVv58e.js +1 -0
  36. package/dist/app/client/assets/DeviceApproval-BffFLD8F.css +1 -0
  37. package/dist/app/client/assets/EURAU-sjieTTB9.svg +1 -0
  38. package/dist/app/client/assets/EURC.e-CxYiiwkz.svg +1 -0
  39. package/dist/app/client/assets/Fingerprint-BNCA6qOJ.js +1 -0
  40. package/dist/app/client/assets/GBPA-DI_25xSG.svg +4 -0
  41. package/dist/app/client/assets/GUSD-BDEP2Qb-.svg +1 -0
  42. package/dist/app/client/assets/GeistMono-Variable-BRXCGrxA.woff2 +0 -0
  43. package/dist/app/client/assets/Globe-f0eWzcEI.js +1 -0
  44. package/dist/app/client/assets/Grant-5a-n1gJH.css +1 -0
  45. package/dist/app/client/assets/Grant-Dp7mpcEi.js +1 -0
  46. package/dist/app/client/assets/Hex-C9KeV7_9.css +1 -0
  47. package/dist/app/client/assets/Hex-CSp2U46W.js +10 -0
  48. package/dist/app/client/assets/IconChip-DpZHa1JW.js +1 -0
  49. package/dist/app/client/assets/IconChip-yqaQ2y_d.css +1 -0
  50. package/dist/app/client/assets/InputGroup-BlZvt9In.css +1 -0
  51. package/dist/app/client/assets/InputGroup-CsOeBnpB.js +1 -0
  52. package/dist/app/client/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
  53. package/dist/app/client/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
  54. package/dist/app/client/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
  55. package/dist/app/client/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
  56. package/dist/app/client/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
  57. package/dist/app/client/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
  58. package/dist/app/client/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
  59. package/dist/app/client/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
  60. package/dist/app/client/assets/Loader-Cm9YJNNJ.js +1 -0
  61. package/dist/app/client/assets/MACH-sK0r79kQ.svg +4 -0
  62. package/dist/app/client/assets/OUSD-BFXgVo-Z.svg +5 -0
  63. package/dist/app/client/assets/OUSD.dark-BbbjMvA1.svg +17 -0
  64. package/dist/app/client/assets/OUSD.light-B_zpSz_c.svg +17 -0
  65. package/dist/app/client/assets/PRIME-CiFp2-3e.svg +14 -0
  66. package/dist/app/client/assets/PopoverPopup-DprRXRQe.js +1 -0
  67. package/dist/app/client/assets/Rows-DPGTUdA8.css +1 -0
  68. package/dist/app/client/assets/Rows-Qqo3evtk.js +1 -0
  69. package/dist/app/client/assets/SBC-BTYkbkiD.svg +1 -0
  70. package/dist/app/client/assets/SEKAU-CB5Fc6o8.svg +5 -0
  71. package/dist/app/client/assets/Separator-CZUjVQOL.js +1 -0
  72. package/dist/app/client/assets/SignIn-HdaDzFmq.js +1 -0
  73. package/dist/app/client/assets/SignIn-mlBTwUq4.css +1 -0
  74. package/dist/app/client/assets/Stack-CkkvkOzj.js +1 -0
  75. package/dist/app/client/assets/Stack-D7Yt22Ed.css +1 -0
  76. package/dist/app/client/assets/Tag-BMh6ajrW.css +1 -0
  77. package/dist/app/client/assets/Tag-CLOVANTX.js +1 -0
  78. package/dist/app/client/assets/ToolbarRootContext-Zty_Dh3J.js +1 -0
  79. package/dist/app/client/assets/Tooltip-CLATV6YU.js +1 -0
  80. package/dist/app/client/assets/Tooltip-d3y9ESUJ.css +1 -0
  81. package/dist/app/client/assets/USD1-COVcO_PB.svg +30 -0
  82. package/dist/app/client/assets/USDB-Ckwb6UQw.svg +11 -0
  83. package/dist/app/client/assets/USDC.e-3nMsKAMC.svg +1 -0
  84. package/dist/app/client/assets/USDT0-ia60Dw0e.svg +1 -0
  85. package/dist/app/client/assets/USDY-CB4iet2q.svg +16 -0
  86. package/dist/app/client/assets/USDe-BXHQCd92.svg +1 -0
  87. package/dist/app/client/assets/Upgrade-D0_aO5AP.js +1 -0
  88. package/dist/app/client/assets/WalletUpgrade-BPsPNQsd.js +1 -0
  89. package/dist/app/client/assets/WalletUpgrade-C04kW0Jl.css +1 -0
  90. package/dist/app/client/assets/YLDS-CRh8Zw0g.svg +3 -0
  91. package/dist/app/client/assets/___-I98bns4o.css +1 -0
  92. package/dist/app/client/assets/___.flows-XOlLwMIy.js +5 -0
  93. package/dist/app/client/assets/alphaUSD-CpCFoVuh.svg +1 -0
  94. package/dist/app/client/assets/authorize-C-MlCyaM.js +1 -0
  95. package/dist/app/client/assets/betaUSD-9A8AjgYg.svg +1 -0
  96. package/dist/app/client/assets/cUSD-WsQfa-iC.svg +1 -0
  97. package/dist/app/client/assets/cbBTC-DvUDqrDi.svg +1 -0
  98. package/dist/app/client/assets/choose-account-nXR-SKa2.js +1 -0
  99. package/dist/app/client/assets/deposit-G8tiLPN4.js +1 -0
  100. package/dist/app/client/assets/device-BojBF7hZ.js +1 -0
  101. package/dist/app/client/assets/error-KiOpX7GD.js +1 -0
  102. package/dist/app/client/assets/frxUSD-n9pTpinR.svg +1 -0
  103. package/dist/app/client/assets/getPseudoElementBounds-BsLy4zf_.js +1 -0
  104. package/dist/app/client/assets/goUSD-D9kUvHsF.svg +5 -0
  105. package/dist/app/client/assets/iUSD-CWCJAq9X.svg +1 -0
  106. package/dist/app/client/assets/index-BZH0M7Nf.js +13 -0
  107. package/dist/app/client/assets/index-CIYxHmYA.css +1 -0
  108. package/dist/app/client/assets/login-DUjpk60p.js +1 -0
  109. package/dist/app/client/assets/pathUSD-BvaO6ooS.svg +25 -0
  110. package/dist/app/client/assets/preload-helper-Bs9KvdYl.js +1 -0
  111. package/dist/app/client/assets/rUSD-B-xuFS7T.svg +1 -0
  112. package/dist/app/client/assets/reUSD-CkIUs0Lx.svg +1 -0
  113. package/dist/app/client/assets/removable-DMiA3t_o.js +1 -0
  114. package/dist/app/client/assets/reset-co-CHrff.css +1 -0
  115. package/dist/app/client/assets/rolldown-runtime-WkwZ5CU-.js +1 -0
  116. package/dist/app/client/assets/routes-CK8cthzA.js +1 -0
  117. package/dist/app/client/assets/sUSDe-j9GOnH7I.svg +1 -0
  118. package/dist/app/client/assets/siUSD-C10QUNYS.svg +1 -0
  119. package/dist/app/client/assets/stcUSD-DIntDJeh.svg +1 -0
  120. package/dist/app/client/assets/syrupUSDC-DhYwZqdM.svg +5 -0
  121. package/dist/app/client/assets/thetaUSD-Dgmksf6G.svg +1 -0
  122. package/dist/app/client/assets/useNavigate-CB6S2u4J.js +1 -0
  123. package/dist/app/client/assets/useQuery-BpHfPhTT.js +1 -0
  124. package/dist/app/client/assets/useRegisterFieldControl-DsslqY-V.js +1 -0
  125. package/dist/app/client/assets/wYLDS-CaCKDrO-.svg +10 -0
  126. package/dist/app/client/assets/wsrUSD-B2Ey0bDQ.svg +1 -0
  127. package/dist/app/client/assets/zyzz-DYC-X0_B.css +1 -0
  128. package/dist/app/client/assets/zyzz.config-DX_D_7j3.js +2 -0
  129. package/dist/app/db/auth.d.ts +3412 -0
  130. package/dist/app/db/auth.d.ts.map +1 -0
  131. package/dist/app/db/auth.js +349 -0
  132. package/dist/app/db/auth.js.map +1 -0
  133. package/dist/app/db/schema.d.ts +1091 -0
  134. package/dist/app/db/schema.d.ts.map +1 -0
  135. package/dist/app/db/schema.js +183 -0
  136. package/dist/app/db/schema.js.map +1 -0
  137. package/dist/app/db/table.d.ts +8 -0
  138. package/dist/app/db/table.d.ts.map +1 -0
  139. package/dist/app/db/table.js +28 -0
  140. package/dist/app/db/table.js.map +1 -0
  141. package/dist/app/server/.vite/manifest.json +2093 -0
  142. package/dist/app/server/assets/Account-BYLpNFf3.css +1 -0
  143. package/dist/app/server/assets/Account-G_SUeRU3.js +2 -0
  144. package/dist/app/server/assets/Account-G_SUeRU3.js.map +1 -0
  145. package/dist/app/server/assets/Amount-Cgwdr3Xt.js +2 -0
  146. package/dist/app/server/assets/Amount-Cgwdr3Xt.js.map +1 -0
  147. package/dist/app/server/assets/Amount-ZdtluGf-.css +1 -0
  148. package/dist/app/server/assets/Approval-CgV5JHlb.css +1 -0
  149. package/dist/app/server/assets/Approval-DvkB9tWA.js +2 -0
  150. package/dist/app/server/assets/Approval-DvkB9tWA.js.map +1 -0
  151. package/dist/app/server/assets/ArrowUp-DpK_zNgZ.js +2 -0
  152. package/dist/app/server/assets/ArrowUp-DpK_zNgZ.js.map +1 -0
  153. package/dist/app/server/assets/Authentication-BOkhlNQu.js +2 -0
  154. package/dist/app/server/assets/Authentication-BOkhlNQu.js.map +1 -0
  155. package/dist/app/server/assets/Authentication-C3oNZAVX.js +2 -0
  156. package/dist/app/server/assets/Authentication-C3oNZAVX.js.map +1 -0
  157. package/dist/app/server/assets/BRLA-CZvVDNYr.png +0 -0
  158. package/dist/app/server/assets/BRZ-Cn3jEi9t.svg +1 -0
  159. package/dist/app/server/assets/Bytes-C7CRVS3J.js +4 -0
  160. package/dist/app/server/assets/Bytes-C7CRVS3J.js.map +1 -0
  161. package/dist/app/server/assets/CHFAU-DCedc4aH.png +0 -0
  162. package/dist/app/server/assets/Callout-DBfEmP7q.css +1 -0
  163. package/dist/app/server/assets/Callout-tQoAitWq.js +2 -0
  164. package/dist/app/server/assets/Callout-tQoAitWq.js.map +1 -0
  165. package/dist/app/server/assets/ChainList-C4A_7e-9.js +6 -0
  166. package/dist/app/server/assets/ChainList-C4A_7e-9.js.map +1 -0
  167. package/dist/app/server/assets/ChainName-BMnJyJrd.js +2 -0
  168. package/dist/app/server/assets/ChainName-BMnJyJrd.js.map +1 -0
  169. package/dist/app/server/assets/Check-DU_oR3Ev.js +2 -0
  170. package/dist/app/server/assets/Check-DU_oR3Ev.js.map +1 -0
  171. package/dist/app/server/assets/ChevronRight-DTBnw-W6.js +2 -0
  172. package/dist/app/server/assets/ChevronRight-DTBnw-W6.js.map +1 -0
  173. package/dist/app/server/assets/ChooseAccount-BizJvMrY.js +2 -0
  174. package/dist/app/server/assets/ChooseAccount-BizJvMrY.js.map +1 -0
  175. package/dist/app/server/assets/ChooseAccount-DL3wgJhE.css +1 -0
  176. package/dist/app/server/assets/Client-Dx3KrpJZ.js +2 -0
  177. package/dist/app/server/assets/Client-Dx3KrpJZ.js.map +1 -0
  178. package/dist/app/server/assets/ClientOnly-CKLiu67O.js +2 -0
  179. package/dist/app/server/assets/ClientOnly-CKLiu67O.js.map +1 -0
  180. package/dist/app/server/assets/Close-DUeE37ev.js +2 -0
  181. package/dist/app/server/assets/Close-DUeE37ev.js.map +1 -0
  182. package/dist/app/server/assets/Cloud-CLB3rTTy.js +2 -0
  183. package/dist/app/server/assets/Cloud-CLB3rTTy.js.map +1 -0
  184. package/dist/app/server/assets/CodeInput-BqRteSwD.css +1 -0
  185. package/dist/app/server/assets/CodeInput-FsPzVuLU.js +2 -0
  186. package/dist/app/server/assets/CodeInput-FsPzVuLU.js.map +1 -0
  187. package/dist/app/server/assets/Credential-DFjcrdyI.js +2 -0
  188. package/dist/app/server/assets/Credential-DFjcrdyI.js.map +1 -0
  189. package/dist/app/server/assets/DLUSD-BnRXm3EI.png +0 -0
  190. package/dist/app/server/assets/Deposit-CclrAoXL.css +1 -0
  191. package/dist/app/server/assets/Deposit-ChYGRfW2.js +2 -0
  192. package/dist/app/server/assets/Deposit-ChYGRfW2.js.map +1 -0
  193. package/dist/app/server/assets/DevTools-BYkmtuV5.css +1 -0
  194. package/dist/app/server/assets/DevTools-ZJVXqrIK.js +2 -0
  195. package/dist/app/server/assets/DevTools-ZJVXqrIK.js.map +1 -0
  196. package/dist/app/server/assets/DeviceApproval-BffFLD8F.css +1 -0
  197. package/dist/app/server/assets/DeviceApproval-Bqe3Mi78.js +2 -0
  198. package/dist/app/server/assets/DeviceApproval-Bqe3Mi78.js.map +1 -0
  199. package/dist/app/server/assets/EURAU-sjieTTB9.svg +1 -0
  200. package/dist/app/server/assets/EURC.e-CxYiiwkz.svg +1 -0
  201. package/dist/app/server/assets/ExecutionError-CDszGSF1.js +9 -0
  202. package/dist/app/server/assets/ExecutionError-CDszGSF1.js.map +1 -0
  203. package/dist/app/server/assets/Fingerprint-DhOPOdRr.js +2 -0
  204. package/dist/app/server/assets/Fingerprint-DhOPOdRr.js.map +1 -0
  205. package/dist/app/server/assets/GBPA-DI_25xSG.svg +4 -0
  206. package/dist/app/server/assets/GUSD-BDEP2Qb-.svg +1 -0
  207. package/dist/app/server/assets/GeistMono-Variable-BRXCGrxA.woff2 +0 -0
  208. package/dist/app/server/assets/Globe-2CxqxU-7.js +2 -0
  209. package/dist/app/server/assets/Globe-2CxqxU-7.js.map +1 -0
  210. package/dist/app/server/assets/Grant-5a-n1gJH.css +1 -0
  211. package/dist/app/server/assets/Grant-D_tun0mF.js +2 -0
  212. package/dist/app/server/assets/Grant-D_tun0mF.js.map +1 -0
  213. package/dist/app/server/assets/Hex-C9KeV7_9.css +1 -0
  214. package/dist/app/server/assets/Hex-Z6m_0Y0m.js +11 -0
  215. package/dist/app/server/assets/Hex-Z6m_0Y0m.js.map +1 -0
  216. package/dist/app/server/assets/IconChip-C9ZrmGB5.js +2 -0
  217. package/dist/app/server/assets/IconChip-C9ZrmGB5.js.map +1 -0
  218. package/dist/app/server/assets/IconChip-yqaQ2y_d.css +1 -0
  219. package/dist/app/server/assets/InputGroup-BlZvt9In.css +1 -0
  220. package/dist/app/server/assets/InputGroup-hpjuLuR7.js +2 -0
  221. package/dist/app/server/assets/InputGroup-hpjuLuR7.js.map +1 -0
  222. package/dist/app/server/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
  223. package/dist/app/server/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
  224. package/dist/app/server/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
  225. package/dist/app/server/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
  226. package/dist/app/server/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
  227. package/dist/app/server/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
  228. package/dist/app/server/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
  229. package/dist/app/server/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
  230. package/dist/app/server/assets/Loader-DnKC9P5p.js +2 -0
  231. package/dist/app/server/assets/Loader-DnKC9P5p.js.map +1 -0
  232. package/dist/app/server/assets/MACH-sK0r79kQ.svg +4 -0
  233. package/dist/app/server/assets/Match-CyVdYcSf.js +2 -0
  234. package/dist/app/server/assets/Match-CyVdYcSf.js.map +1 -0
  235. package/dist/app/server/assets/OUSD-BFXgVo-Z.svg +5 -0
  236. package/dist/app/server/assets/OUSD.dark-BbbjMvA1.svg +17 -0
  237. package/dist/app/server/assets/OUSD.light-B_zpSz_c.svg +17 -0
  238. package/dist/app/server/assets/PRIME-CiFp2-3e.svg +14 -0
  239. package/dist/app/server/assets/PopoverPopup-CwqeQelI.js +2 -0
  240. package/dist/app/server/assets/PopoverPopup-CwqeQelI.js.map +1 -0
  241. package/dist/app/server/assets/Rows-CQKQwTI1.js +2 -0
  242. package/dist/app/server/assets/Rows-CQKQwTI1.js.map +1 -0
  243. package/dist/app/server/assets/Rows-DPGTUdA8.css +1 -0
  244. package/dist/app/server/assets/SBC-BTYkbkiD.svg +1 -0
  245. package/dist/app/server/assets/SEKAU-CB5Fc6o8.svg +5 -0
  246. package/dist/app/server/assets/Separator-DrI7KRAs.js +2 -0
  247. package/dist/app/server/assets/Separator-DrI7KRAs.js.map +1 -0
  248. package/dist/app/server/assets/SignIn-DfeeLEmN.js +2 -0
  249. package/dist/app/server/assets/SignIn-DfeeLEmN.js.map +1 -0
  250. package/dist/app/server/assets/SignIn-mlBTwUq4.css +1 -0
  251. package/dist/app/server/assets/Stack-D7Yt22Ed.css +1 -0
  252. package/dist/app/server/assets/Stack-DGktaLZc.js +2 -0
  253. package/dist/app/server/assets/Stack-DGktaLZc.js.map +1 -0
  254. package/dist/app/server/assets/Tag-9vSRBpph.js +2 -0
  255. package/dist/app/server/assets/Tag-9vSRBpph.js.map +1 -0
  256. package/dist/app/server/assets/Tag-BMh6ajrW.css +1 -0
  257. package/dist/app/server/assets/ToolbarRootContext-BH_CFSWd.js +2 -0
  258. package/dist/app/server/assets/ToolbarRootContext-BH_CFSWd.js.map +1 -0
  259. package/dist/app/server/assets/Tooltip-DLX41peb.js +2 -0
  260. package/dist/app/server/assets/Tooltip-DLX41peb.js.map +1 -0
  261. package/dist/app/server/assets/Tooltip-d3y9ESUJ.css +1 -0
  262. package/dist/app/server/assets/USD1-COVcO_PB.svg +30 -0
  263. package/dist/app/server/assets/USDB-Ckwb6UQw.svg +11 -0
  264. package/dist/app/server/assets/USDC.e-3nMsKAMC.svg +1 -0
  265. package/dist/app/server/assets/USDT0-ia60Dw0e.svg +1 -0
  266. package/dist/app/server/assets/USDY-CB4iet2q.svg +16 -0
  267. package/dist/app/server/assets/USDe-BXHQCd92.svg +1 -0
  268. package/dist/app/server/assets/Upgrade-Dbfm2nm0.js +2 -0
  269. package/dist/app/server/assets/Upgrade-Dbfm2nm0.js.map +1 -0
  270. package/dist/app/server/assets/WalletUpgrade-C04kW0Jl.css +1 -0
  271. package/dist/app/server/assets/WalletUpgrade-CWKc5fYt.js +2 -0
  272. package/dist/app/server/assets/WalletUpgrade-CWKc5fYt.js.map +1 -0
  273. package/dist/app/server/assets/YLDS-CRh8Zw0g.svg +3 -0
  274. package/dist/app/server/assets/___-I98bns4o.css +1 -0
  275. package/dist/app/server/assets/___.flows-Cc-awUoC.js +6 -0
  276. package/dist/app/server/assets/___.flows-Cc-awUoC.js.map +1 -0
  277. package/dist/app/server/assets/_tanstack-start-manifest_v-U7TrtUSA.js +1 -0
  278. package/dist/app/server/assets/_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows-B1pPOqsM.css +1 -0
  279. package/dist/app/server/assets/_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-CKALi9oD.js +2 -0
  280. package/dist/app/server/assets/_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-CKALi9oD.js.map +1 -0
  281. package/dist/app/server/assets/_zyzz_shared-BbDIEd_j.css +1 -0
  282. package/dist/app/server/assets/alphaUSD-CpCFoVuh.svg +1 -0
  283. package/dist/app/server/assets/arktype-aI7TBD0R-D1R3Byo5.js +2 -0
  284. package/dist/app/server/assets/arktype-aI7TBD0R-D1R3Byo5.js.map +1 -0
  285. package/dist/app/server/assets/async-local-storage-DlOvwxXd.js +2 -0
  286. package/dist/app/server/assets/async-local-storage-DlOvwxXd.js.map +1 -0
  287. package/dist/app/server/assets/authorize-BXzTo2Pb.js +2 -0
  288. package/dist/app/server/assets/authorize-BXzTo2Pb.js.map +1 -0
  289. package/dist/app/server/assets/authorize-BzoUqOdA.js +2 -0
  290. package/dist/app/server/assets/authorize-BzoUqOdA.js.map +1 -0
  291. package/dist/app/server/assets/authorize-DXYo-K2n-rmQQ42x1.js +56 -0
  292. package/dist/app/server/assets/authorize-DXYo-K2n-rmQQ42x1.js.map +1 -0
  293. package/dist/app/server/assets/authorize-DfjPYJqS.css +1 -0
  294. package/dist/app/server/assets/betaUSD-9A8AjgYg.svg +1 -0
  295. package/dist/app/server/assets/bun-sqlite-dialect-DoOVo4ja-CtyBkVMb.js +2 -0
  296. package/dist/app/server/assets/bun-sqlite-dialect-DoOVo4ja-CtyBkVMb.js.map +1 -0
  297. package/dist/app/server/assets/cUSD-WsQfa-iC.svg +1 -0
  298. package/dist/app/server/assets/call-dzi0xjZd.js +31 -0
  299. package/dist/app/server/assets/call-dzi0xjZd.js.map +1 -0
  300. package/dist/app/server/assets/cbBTC-DvUDqrDi.svg +1 -0
  301. package/dist/app/server/assets/ccip-DjD8z_3B.js +2 -0
  302. package/dist/app/server/assets/ccip-DjD8z_3B.js.map +1 -0
  303. package/dist/app/server/assets/choose-account-_X7xq5am.js +2 -0
  304. package/dist/app/server/assets/choose-account-_X7xq5am.js.map +1 -0
  305. package/dist/app/server/assets/choose-account-lqA5SLx9.css +1 -0
  306. package/dist/app/server/assets/choose-account-zm-5Qs3e.js +2 -0
  307. package/dist/app/server/assets/choose-account-zm-5Qs3e.js.map +1 -0
  308. package/dist/app/server/assets/compiled-query-Ds2NVcFT.js +2 -0
  309. package/dist/app/server/assets/compiled-query-Ds2NVcFT.js.map +1 -0
  310. package/dist/app/server/assets/convert-BIC8n32x.js +2 -0
  311. package/dist/app/server/assets/convert-BIC8n32x.js.map +1 -0
  312. package/dist/app/server/assets/cookie-DxViaO10.js +2 -0
  313. package/dist/app/server/assets/cookie-DxViaO10.js.map +1 -0
  314. package/dist/app/server/assets/core-BBrZXfrB.js +56 -0
  315. package/dist/app/server/assets/core-BBrZXfrB.js.map +1 -0
  316. package/dist/app/server/assets/d1-sqlite-dialect-m0f01-4z-Cv-csE1u.js +2 -0
  317. package/dist/app/server/assets/d1-sqlite-dialect-m0f01-4z-Cv-csE1u.js.map +1 -0
  318. package/dist/app/server/assets/decodeFunctionData-bP6V2ai4.js +2 -0
  319. package/dist/app/server/assets/decodeFunctionData-bP6V2ai4.js.map +1 -0
  320. package/dist/app/server/assets/default-u_dwuiYb-DOrMMcg9.js +2 -0
  321. package/dist/app/server/assets/default-u_dwuiYb-DOrMMcg9.js.map +1 -0
  322. package/dist/app/server/assets/deposit-BBaNI01u.js +2 -0
  323. package/dist/app/server/assets/deposit-BBaNI01u.js.map +1 -0
  324. package/dist/app/server/assets/deposit-LWS6ZTuf.js +2 -0
  325. package/dist/app/server/assets/deposit-LWS6ZTuf.js.map +1 -0
  326. package/dist/app/server/assets/deposit-oFx15XCA.css +1 -0
  327. package/dist/app/server/assets/device-CrXlusjr.js +2 -0
  328. package/dist/app/server/assets/device-CrXlusjr.js.map +1 -0
  329. package/dist/app/server/assets/device-DdFMgYe2.js +2 -0
  330. package/dist/app/server/assets/device-DdFMgYe2.js.map +1 -0
  331. package/dist/app/server/assets/device-tMCpu5zk.css +1 -0
  332. package/dist/app/server/assets/dist-CR6FW-yS.js +1 -0
  333. package/dist/app/server/assets/dist-CoH0hD1s.js +15 -0
  334. package/dist/app/server/assets/dist-CoH0hD1s.js.map +1 -0
  335. package/dist/app/server/assets/dist-DcICI3fd.js +2 -0
  336. package/dist/app/server/assets/dist-DcICI3fd.js.map +1 -0
  337. package/dist/app/server/assets/effect-QlVUlMFu-mXPkuQTb.js +2 -0
  338. package/dist/app/server/assets/effect-QlVUlMFu-mXPkuQTb.js.map +1 -0
  339. package/dist/app/server/assets/empty-plugin-adapters-BaGcmrjC.js +2 -0
  340. package/dist/app/server/assets/empty-plugin-adapters-BaGcmrjC.js.map +1 -0
  341. package/dist/app/server/assets/error-CXy8gqdE.css +1 -0
  342. package/dist/app/server/assets/error-DXDT2AHy.js +2 -0
  343. package/dist/app/server/assets/error-DXDT2AHy.js.map +1 -0
  344. package/dist/app/server/assets/error-bnVzy9tx.js +2 -0
  345. package/dist/app/server/assets/error-bnVzy9tx.js.map +1 -0
  346. package/dist/app/server/assets/esm-C6SW--yt.js +4 -0
  347. package/dist/app/server/assets/esm-C6SW--yt.js.map +1 -0
  348. package/dist/app/server/assets/factory-dvoOlKer.js +5 -0
  349. package/dist/app/server/assets/factory-dvoOlKer.js.map +1 -0
  350. package/dist/app/server/assets/frxUSD-n9pTpinR.svg +1 -0
  351. package/dist/app/server/assets/get-id-field-OwLpfjj2.js +6 -0
  352. package/dist/app/server/assets/get-id-field-OwLpfjj2.js.map +1 -0
  353. package/dist/app/server/assets/getPseudoElementBounds-PkWU72kn.js +2 -0
  354. package/dist/app/server/assets/getPseudoElementBounds-PkWU72kn.js.map +1 -0
  355. package/dist/app/server/assets/goUSD-D9kUvHsF.svg +5 -0
  356. package/dist/app/server/assets/iUSD-CWCJAq9X.svg +1 -0
  357. package/dist/app/server/assets/index-CLddUTqr-CC33CMvS.js +2 -0
  358. package/dist/app/server/assets/index-CLddUTqr-CC33CMvS.js.map +1 -0
  359. package/dist/app/server/assets/index-DZEfthgZ-Ec2MMQ_e.js +2 -0
  360. package/dist/app/server/assets/index-DZEfthgZ-Ec2MMQ_e.js.map +1 -0
  361. package/dist/app/server/assets/kysely-adapter-B8tQwTcu.js +1 -0
  362. package/dist/app/server/assets/lazyRouteComponent-DPOOPZw_.js +2 -0
  363. package/dist/app/server/assets/lazyRouteComponent-DPOOPZw_.js.map +1 -0
  364. package/dist/app/server/assets/load-server-Dr0IlySo.js +3 -0
  365. package/dist/app/server/assets/load-server-Dr0IlySo.js.map +1 -0
  366. package/dist/app/server/assets/login-BLq3tEEr.js +2 -0
  367. package/dist/app/server/assets/login-BLq3tEEr.js.map +1 -0
  368. package/dist/app/server/assets/login-DCIrAbED.js +2 -0
  369. package/dist/app/server/assets/login-DCIrAbED.js.map +1 -0
  370. package/dist/app/server/assets/login-msDnt3yT.css +1 -0
  371. package/dist/app/server/assets/matchContext-ByrIUj4L.js +2 -0
  372. package/dist/app/server/assets/matchContext-ByrIUj4L.js.map +1 -0
  373. package/dist/app/server/assets/node-sqlite-dialect-BowWLXvK.js +2 -0
  374. package/dist/app/server/assets/node-sqlite-dialect-BowWLXvK.js.map +1 -0
  375. package/dist/app/server/assets/pathUSD-BvaO6ooS.svg +25 -0
  376. package/dist/app/server/assets/rUSD-B-xuFS7T.svg +1 -0
  377. package/dist/app/server/assets/reUSD-CkIUs0Lx.svg +1 -0
  378. package/dist/app/server/assets/react-dom-DYzj0HXX.js +2 -0
  379. package/dist/app/server/assets/react-dom-DYzj0HXX.js.map +1 -0
  380. package/dist/app/server/assets/removable-BCLTvPOx.js +2 -0
  381. package/dist/app/server/assets/removable-BCLTvPOx.js.map +1 -0
  382. package/dist/app/server/assets/reset-DZWeTZeQ.js +2 -0
  383. package/dist/app/server/assets/reset-DZWeTZeQ.js.map +1 -0
  384. package/dist/app/server/assets/reset-co-CHrff.css +1 -0
  385. package/dist/app/server/assets/resolveError-CZXXvCJR.js +2 -0
  386. package/dist/app/server/assets/resolveError-CZXXvCJR.js.map +1 -0
  387. package/dist/app/server/assets/rolldown-runtime-BWaJ3C7D.js +1 -0
  388. package/dist/app/server/assets/router-Bqz5X4Qw.js +2 -0
  389. package/dist/app/server/assets/router-Bqz5X4Qw.js.map +1 -0
  390. package/dist/app/server/assets/router-CclzitkY.css +1 -0
  391. package/dist/app/server/assets/routes-BLQdKqcZ.js +2 -0
  392. package/dist/app/server/assets/routes-BLQdKqcZ.js.map +1 -0
  393. package/dist/app/server/assets/routes-BgiIzrOt.css +1 -0
  394. package/dist/app/server/assets/routes-Bv6WzsSR.js +2 -0
  395. package/dist/app/server/assets/routes-Bv6WzsSR.js.map +1 -0
  396. package/dist/app/server/assets/sUSDe-j9GOnH7I.svg +1 -0
  397. package/dist/app/server/assets/schema-check-oLqvHR8y.js +9 -0
  398. package/dist/app/server/assets/schema-check-oLqvHR8y.js.map +1 -0
  399. package/dist/app/server/assets/secp256k1-yg8eeIYU.js +2 -0
  400. package/dist/app/server/assets/secp256k1-yg8eeIYU.js.map +1 -0
  401. package/dist/app/server/assets/server-RRUiOef2.js +76 -0
  402. package/dist/app/server/assets/server-RRUiOef2.js.map +1 -0
  403. package/dist/app/server/assets/siUSD-C10QUNYS.svg +1 -0
  404. package/dist/app/server/assets/sqlite-adapter-C_LAV4e3.js +2 -0
  405. package/dist/app/server/assets/sqlite-adapter-C_LAV4e3.js.map +1 -0
  406. package/dist/app/server/assets/sqlite-introspector-DSCAP82F-Crx7Ny14.js +6 -0
  407. package/dist/app/server/assets/sqlite-introspector-DSCAP82F-Crx7Ny14.js.map +1 -0
  408. package/dist/app/server/assets/standard-json-DY77efq0.js +2 -0
  409. package/dist/app/server/assets/standard-json-DY77efq0.js.map +1 -0
  410. package/dist/app/server/assets/standard-json-ig2t0wRt.js +2 -0
  411. package/dist/app/server/assets/standard-json-ig2t0wRt.js.map +1 -0
  412. package/dist/app/server/assets/standard-json-t-LNckA6.js +2 -0
  413. package/dist/app/server/assets/standard-json-t-LNckA6.js.map +1 -0
  414. package/dist/app/server/assets/standard-openapi-CONmVRl8.js +2 -0
  415. package/dist/app/server/assets/standard-openapi-CONmVRl8.js.map +1 -0
  416. package/dist/app/server/assets/start-C63VetBp.js +2 -0
  417. package/dist/app/server/assets/start-C63VetBp.js.map +1 -0
  418. package/dist/app/server/assets/stcUSD-DIntDJeh.svg +1 -0
  419. package/dist/app/server/assets/sury-CWZTCd75-CDaOS2oM.js +2 -0
  420. package/dist/app/server/assets/sury-CWZTCd75-CDaOS2oM.js.map +1 -0
  421. package/dist/app/server/assets/syrupUSDC-DhYwZqdM.svg +5 -0
  422. package/dist/app/server/assets/thetaUSD-Dgmksf6G.svg +1 -0
  423. package/dist/app/server/assets/typebox-Dei93FPO-D_lCVdAz.js +2 -0
  424. package/dist/app/server/assets/typebox-Dei93FPO-D_lCVdAz.js.map +1 -0
  425. package/dist/app/server/assets/useNavigate-D6d1w7KE.js +2 -0
  426. package/dist/app/server/assets/useNavigate-D6d1w7KE.js.map +1 -0
  427. package/dist/app/server/assets/useQuery-BRpCr5vj.js +2 -0
  428. package/dist/app/server/assets/useQuery-BRpCr5vj.js.map +1 -0
  429. package/dist/app/server/assets/useRegisterFieldControl-cJesrOWK.js +2 -0
  430. package/dist/app/server/assets/useRegisterFieldControl-cJesrOWK.js.map +1 -0
  431. package/dist/app/server/assets/utils-C4ZXZIZW.js +2 -0
  432. package/dist/app/server/assets/utils-C4ZXZIZW.js.map +1 -0
  433. package/dist/app/server/assets/utils-D57zfcg-.js +2 -0
  434. package/dist/app/server/assets/utils-D57zfcg-.js.map +1 -0
  435. package/dist/app/server/assets/valibot--1zFm7rT-CIKoH3MS.js +2 -0
  436. package/dist/app/server/assets/valibot--1zFm7rT-CIKoH3MS.js.map +1 -0
  437. package/dist/app/server/assets/valibot-D_HTw1Gn-BdPyLkXt.js +2 -0
  438. package/dist/app/server/assets/valibot-D_HTw1Gn-BdPyLkXt.js.map +1 -0
  439. package/dist/app/server/assets/wYLDS-CaCKDrO-.svg +10 -0
  440. package/dist/app/server/assets/wsrUSD-B2Ey0bDQ.svg +1 -0
  441. package/dist/app/server/assets/zod-Bwrt9trS-BezI5Gi1.js +2 -0
  442. package/dist/app/server/assets/zod-Bwrt9trS-BezI5Gi1.js.map +1 -0
  443. package/dist/app/server/assets/zod-DSgpEGAE-DZ7M_Q33.js +2 -0
  444. package/dist/app/server/assets/zod-DSgpEGAE-DZ7M_Q33.js.map +1 -0
  445. package/dist/app/server/assets/zyzz-6R2K52xP.css +1 -0
  446. package/dist/app/server/assets/zyzz.config-CJRpjn0E.js +3 -0
  447. package/dist/app/server/assets/zyzz.config-CJRpjn0E.js.map +1 -0
  448. package/dist/app/server/index.js +532 -0
  449. package/dist/app/server/index.js.map +1 -0
  450. package/dist/app/server/wrangler.json +1 -0
  451. package/dist/cli/Admin.d.ts +34 -0
  452. package/dist/cli/Admin.d.ts.map +1 -0
  453. package/dist/cli/Admin.js +61 -0
  454. package/dist/cli/Admin.js.map +1 -0
  455. package/dist/cli/Apps.d.ts +9 -0
  456. package/dist/cli/Apps.d.ts.map +1 -0
  457. package/dist/cli/Apps.js +34 -0
  458. package/dist/cli/Apps.js.map +1 -0
  459. package/dist/cli/Cli.d.ts +13 -0
  460. package/dist/cli/Cli.d.ts.map +1 -0
  461. package/dist/cli/Cli.js +26 -0
  462. package/dist/cli/Cli.js.map +1 -0
  463. package/dist/cli/Project.d.ts +17 -0
  464. package/dist/cli/Project.d.ts.map +1 -0
  465. package/dist/cli/Project.js +90 -0
  466. package/dist/cli/Project.js.map +1 -0
  467. package/dist/cli/Realms.d.ts +24 -0
  468. package/dist/cli/Realms.d.ts.map +1 -0
  469. package/dist/cli/Realms.js +48 -0
  470. package/dist/cli/Realms.js.map +1 -0
  471. package/dist/cli/Session.d.ts +79 -0
  472. package/dist/cli/Session.d.ts.map +1 -0
  473. package/dist/cli/Session.js +229 -0
  474. package/dist/cli/Session.js.map +1 -0
  475. package/dist/cli/User.d.ts +24 -0
  476. package/dist/cli/User.d.ts.map +1 -0
  477. package/dist/cli/User.js +34 -0
  478. package/dist/cli/User.js.map +1 -0
  479. package/dist/cli/V1.d.ts +32 -0
  480. package/dist/cli/V1.d.ts.map +1 -0
  481. package/dist/cli/V1.js +38 -0
  482. package/dist/cli/V1.js.map +1 -0
  483. package/dist/cli/bin.d.ts +3 -0
  484. package/dist/cli/bin.d.ts.map +1 -0
  485. package/dist/cli/bin.js +46 -0
  486. package/dist/cli/bin.js.map +1 -0
  487. package/dist/cli/commands/admin/apps/create.d.ts +23 -0
  488. package/dist/cli/commands/admin/apps/create.d.ts.map +1 -0
  489. package/dist/cli/commands/admin/apps/create.js +84 -0
  490. package/dist/cli/commands/admin/apps/create.js.map +1 -0
  491. package/dist/cli/commands/admin/apps/delete.d.ts +15 -0
  492. package/dist/cli/commands/admin/apps/delete.d.ts.map +1 -0
  493. package/dist/cli/commands/admin/apps/delete.js +41 -0
  494. package/dist/cli/commands/admin/apps/delete.js.map +1 -0
  495. package/dist/cli/commands/admin/apps/index.d.ts +5 -0
  496. package/dist/cli/commands/admin/apps/index.d.ts.map +1 -0
  497. package/dist/cli/commands/admin/apps/index.js +14 -0
  498. package/dist/cli/commands/admin/apps/index.js.map +1 -0
  499. package/dist/cli/commands/admin/apps/list.d.ts +10 -0
  500. package/dist/cli/commands/admin/apps/list.d.ts.map +1 -0
  501. package/dist/cli/commands/admin/apps/list.js +26 -0
  502. package/dist/cli/commands/admin/apps/list.js.map +1 -0
  503. package/dist/cli/commands/admin/apps/rotate-secret.d.ts +17 -0
  504. package/dist/cli/commands/admin/apps/rotate-secret.d.ts.map +1 -0
  505. package/dist/cli/commands/admin/apps/rotate-secret.js +47 -0
  506. package/dist/cli/commands/admin/apps/rotate-secret.js.map +1 -0
  507. package/dist/cli/commands/admin/apps/update.d.ts +20 -0
  508. package/dist/cli/commands/admin/apps/update.d.ts.map +1 -0
  509. package/dist/cli/commands/admin/apps/update.js +71 -0
  510. package/dist/cli/commands/admin/apps/update.js.map +1 -0
  511. package/dist/cli/commands/admin/index.d.ts +5 -0
  512. package/dist/cli/commands/admin/index.d.ts.map +1 -0
  513. package/dist/cli/commands/admin/index.js +13 -0
  514. package/dist/cli/commands/admin/index.js.map +1 -0
  515. package/dist/cli/commands/admin/migrate.d.ts +10 -0
  516. package/dist/cli/commands/admin/migrate.d.ts.map +1 -0
  517. package/dist/cli/commands/admin/migrate.js +20 -0
  518. package/dist/cli/commands/admin/migrate.js.map +1 -0
  519. package/dist/cli/commands/admin/realms/add.d.ts +13 -0
  520. package/dist/cli/commands/admin/realms/add.d.ts.map +1 -0
  521. package/dist/cli/commands/admin/realms/add.js +42 -0
  522. package/dist/cli/commands/admin/realms/add.js.map +1 -0
  523. package/dist/cli/commands/admin/realms/index.d.ts +5 -0
  524. package/dist/cli/commands/admin/realms/index.d.ts.map +1 -0
  525. package/dist/cli/commands/admin/realms/index.js +13 -0
  526. package/dist/cli/commands/admin/realms/index.js.map +1 -0
  527. package/dist/cli/commands/admin/realms/list.d.ts +14 -0
  528. package/dist/cli/commands/admin/realms/list.d.ts.map +1 -0
  529. package/dist/cli/commands/admin/realms/list.js +36 -0
  530. package/dist/cli/commands/admin/realms/list.js.map +1 -0
  531. package/dist/cli/commands/admin/realms/passkeys/index.d.ts +5 -0
  532. package/dist/cli/commands/admin/realms/passkeys/index.d.ts.map +1 -0
  533. package/dist/cli/commands/admin/realms/passkeys/index.js +13 -0
  534. package/dist/cli/commands/admin/realms/passkeys/index.js.map +1 -0
  535. package/dist/cli/commands/admin/realms/passkeys/set.d.ts +17 -0
  536. package/dist/cli/commands/admin/realms/passkeys/set.d.ts.map +1 -0
  537. package/dist/cli/commands/admin/realms/passkeys/set.js +46 -0
  538. package/dist/cli/commands/admin/realms/passkeys/set.js.map +1 -0
  539. package/dist/cli/commands/admin/realms/privy/index.d.ts +5 -0
  540. package/dist/cli/commands/admin/realms/privy/index.d.ts.map +1 -0
  541. package/dist/cli/commands/admin/realms/privy/index.js +13 -0
  542. package/dist/cli/commands/admin/realms/privy/index.js.map +1 -0
  543. package/dist/cli/commands/admin/realms/privy/set.d.ts +19 -0
  544. package/dist/cli/commands/admin/realms/privy/set.d.ts.map +1 -0
  545. package/dist/cli/commands/admin/realms/privy/set.js +66 -0
  546. package/dist/cli/commands/admin/realms/privy/set.js.map +1 -0
  547. package/dist/cli/commands/admin/realms/remove.d.ts +12 -0
  548. package/dist/cli/commands/admin/realms/remove.d.ts.map +1 -0
  549. package/dist/cli/commands/admin/realms/remove.js +35 -0
  550. package/dist/cli/commands/admin/realms/remove.js.map +1 -0
  551. package/dist/cli/commands/admin/realms/secp256k1/disable.d.ts +16 -0
  552. package/dist/cli/commands/admin/realms/secp256k1/disable.d.ts.map +1 -0
  553. package/dist/cli/commands/admin/realms/secp256k1/disable.js +42 -0
  554. package/dist/cli/commands/admin/realms/secp256k1/disable.js.map +1 -0
  555. package/dist/cli/commands/admin/realms/secp256k1/enable.d.ts +16 -0
  556. package/dist/cli/commands/admin/realms/secp256k1/enable.d.ts.map +1 -0
  557. package/dist/cli/commands/admin/realms/secp256k1/enable.js +42 -0
  558. package/dist/cli/commands/admin/realms/secp256k1/enable.js.map +1 -0
  559. package/dist/cli/commands/admin/realms/secp256k1/index.d.ts +9 -0
  560. package/dist/cli/commands/admin/realms/secp256k1/index.d.ts.map +1 -0
  561. package/dist/cli/commands/admin/realms/secp256k1/index.js +17 -0
  562. package/dist/cli/commands/admin/realms/secp256k1/index.js.map +1 -0
  563. package/dist/cli/commands/admin/realms/set.d.ts +17 -0
  564. package/dist/cli/commands/admin/realms/set.d.ts.map +1 -0
  565. package/dist/cli/commands/admin/realms/set.js +46 -0
  566. package/dist/cli/commands/admin/realms/set.js.map +1 -0
  567. package/dist/cli/commands/admin/rotate-key.d.ts +16 -0
  568. package/dist/cli/commands/admin/rotate-key.d.ts.map +1 -0
  569. package/dist/cli/commands/admin/rotate-key.js +46 -0
  570. package/dist/cli/commands/admin/rotate-key.js.map +1 -0
  571. package/dist/cli/commands/init.d.ts +11 -0
  572. package/dist/cli/commands/init.d.ts.map +1 -0
  573. package/dist/cli/commands/init.js +34 -0
  574. package/dist/cli/commands/init.js.map +1 -0
  575. package/dist/cli/commands/login.d.ts +12 -0
  576. package/dist/cli/commands/login.d.ts.map +1 -0
  577. package/dist/cli/commands/login.js +29 -0
  578. package/dist/cli/commands/login.js.map +1 -0
  579. package/dist/cli/commands/logout.d.ts +8 -0
  580. package/dist/cli/commands/logout.d.ts.map +1 -0
  581. package/dist/cli/commands/logout.js +19 -0
  582. package/dist/cli/commands/logout.js.map +1 -0
  583. package/dist/cli/commands/whoami.d.ts +12 -0
  584. package/dist/cli/commands/whoami.d.ts.map +1 -0
  585. package/dist/cli/commands/whoami.js +24 -0
  586. package/dist/cli/commands/whoami.js.map +1 -0
  587. package/dist/client/Actions.d.ts +108 -0
  588. package/dist/client/Actions.d.ts.map +1 -0
  589. package/dist/client/Actions.js +94 -0
  590. package/dist/client/Actions.js.map +1 -0
  591. package/dist/client/Auth.d.ts +143 -0
  592. package/dist/client/Auth.d.ts.map +1 -0
  593. package/dist/client/Auth.js +106 -0
  594. package/dist/client/Auth.js.map +1 -0
  595. package/dist/client/Authorization.d.ts +29 -0
  596. package/dist/client/Authorization.d.ts.map +1 -0
  597. package/dist/client/Authorization.js +12 -0
  598. package/dist/client/Authorization.js.map +1 -0
  599. package/dist/client/Decorator.d.ts +172 -0
  600. package/dist/client/Decorator.d.ts.map +1 -0
  601. package/dist/client/Decorator.js +241 -0
  602. package/dist/client/Decorator.js.map +1 -0
  603. package/dist/client/Key.d.ts +82 -0
  604. package/dist/client/Key.d.ts.map +1 -0
  605. package/dist/client/Key.js +81 -0
  606. package/dist/client/Key.js.map +1 -0
  607. package/dist/client/Pending.d.ts +38 -0
  608. package/dist/client/Pending.d.ts.map +1 -0
  609. package/dist/client/Pending.js +12 -0
  610. package/dist/client/Pending.js.map +1 -0
  611. package/dist/client/Permissions.d.ts +36 -0
  612. package/dist/client/Permissions.d.ts.map +1 -0
  613. package/dist/client/Permissions.js +16 -0
  614. package/dist/client/Permissions.js.map +1 -0
  615. package/dist/client/Storage.d.ts +27 -0
  616. package/dist/client/Storage.d.ts.map +1 -0
  617. package/dist/client/Storage.js +16 -0
  618. package/dist/client/Storage.js.map +1 -0
  619. package/dist/client/TempoAccount.d.ts +52 -0
  620. package/dist/client/TempoAccount.d.ts.map +1 -0
  621. package/dist/client/TempoAccount.js +17 -0
  622. package/dist/client/TempoAccount.js.map +1 -0
  623. package/dist/client/Tokens.d.ts +25 -0
  624. package/dist/client/Tokens.d.ts.map +1 -0
  625. package/dist/client/Tokens.js +12 -0
  626. package/dist/client/Tokens.js.map +1 -0
  627. package/dist/client/User.d.ts +21 -0
  628. package/dist/client/User.d.ts.map +1 -0
  629. package/dist/client/User.js +12 -0
  630. package/dist/client/User.js.map +1 -0
  631. package/dist/client/actions/account.d.ts +75 -0
  632. package/dist/client/actions/account.d.ts.map +1 -0
  633. package/dist/client/actions/account.js +102 -0
  634. package/dist/client/actions/account.js.map +1 -0
  635. package/dist/client/actions/device.d.ts +52 -0
  636. package/dist/client/actions/device.d.ts.map +1 -0
  637. package/dist/client/actions/device.js +103 -0
  638. package/dist/client/actions/device.js.map +1 -0
  639. package/dist/client/actions/email.d.ts +89 -0
  640. package/dist/client/actions/email.d.ts.map +1 -0
  641. package/dist/client/actions/email.js +86 -0
  642. package/dist/client/actions/email.js.map +1 -0
  643. package/dist/client/actions/oauth.d.ts +112 -0
  644. package/dist/client/actions/oauth.d.ts.map +1 -0
  645. package/dist/client/actions/oauth.js +103 -0
  646. package/dist/client/actions/oauth.js.map +1 -0
  647. package/dist/client/actions/passkey.d.ts +140 -0
  648. package/dist/client/actions/passkey.d.ts.map +1 -0
  649. package/dist/client/actions/passkey.js +170 -0
  650. package/dist/client/actions/passkey.js.map +1 -0
  651. package/dist/client/actions/realm.d.ts +25 -0
  652. package/dist/client/actions/realm.d.ts.map +1 -0
  653. package/dist/client/actions/realm.js +16 -0
  654. package/dist/client/actions/realm.js.map +1 -0
  655. package/dist/client/actions/redirect.d.ts +152 -0
  656. package/dist/client/actions/redirect.d.ts.map +1 -0
  657. package/dist/client/actions/redirect.js +311 -0
  658. package/dist/client/actions/redirect.js.map +1 -0
  659. package/dist/client/internal/accessKey.d.ts +21 -0
  660. package/dist/client/internal/accessKey.d.ts.map +1 -0
  661. package/dist/client/internal/accessKey.js +38 -0
  662. package/dist/client/internal/accessKey.js.map +1 -0
  663. package/dist/client/internal/account.d.ts +17 -0
  664. package/dist/client/internal/account.d.ts.map +1 -0
  665. package/dist/client/internal/account.js +3 -0
  666. package/dist/client/internal/account.js.map +1 -0
  667. package/dist/client/internal/api.d.ts +110 -0
  668. package/dist/client/internal/api.d.ts.map +1 -0
  669. package/dist/client/internal/api.js +136 -0
  670. package/dist/client/internal/api.js.map +1 -0
  671. package/dist/client/internal/headless.d.ts +159 -0
  672. package/dist/client/internal/headless.d.ts.map +1 -0
  673. package/dist/client/internal/headless.js +196 -0
  674. package/dist/client/internal/headless.js.map +1 -0
  675. package/dist/client/internal/indexedDb.d.ts +8 -0
  676. package/dist/client/internal/indexedDb.d.ts.map +1 -0
  677. package/dist/client/internal/indexedDb.js +32 -0
  678. package/dist/client/internal/indexedDb.js.map +1 -0
  679. package/dist/client/internal/request.d.ts +56 -0
  680. package/dist/client/internal/request.d.ts.map +1 -0
  681. package/dist/client/internal/request.js +44 -0
  682. package/dist/client/internal/request.js.map +1 -0
  683. package/dist/client/internal/store.d.ts +12 -0
  684. package/dist/client/internal/store.d.ts.map +1 -0
  685. package/dist/client/internal/store.js +15 -0
  686. package/dist/client/internal/store.js.map +1 -0
  687. package/dist/client/internal/verifier.d.ts +25 -0
  688. package/dist/client/internal/verifier.d.ts.map +1 -0
  689. package/dist/client/internal/verifier.js +52 -0
  690. package/dist/client/internal/verifier.js.map +1 -0
  691. package/dist/client.d.ts +18 -0
  692. package/dist/client.d.ts.map +1 -0
  693. package/dist/client.js +18 -0
  694. package/dist/client.js.map +1 -0
  695. package/dist/index.d.ts +6 -0
  696. package/dist/index.d.ts.map +1 -0
  697. package/dist/index.js +6 -0
  698. package/dist/index.js.map +1 -0
  699. package/dist/internal/Apps.d.ts +3169 -0
  700. package/dist/internal/Apps.d.ts.map +1 -0
  701. package/dist/internal/Apps.js +948 -0
  702. package/dist/internal/Apps.js.map +1 -0
  703. package/dist/internal/Auth.d.ts +4287 -0
  704. package/dist/internal/Auth.d.ts.map +1 -0
  705. package/dist/internal/Auth.js +185 -0
  706. package/dist/internal/Auth.js.map +1 -0
  707. package/dist/internal/Authorize.d.ts +526 -0
  708. package/dist/internal/Authorize.d.ts.map +1 -0
  709. package/dist/internal/Authorize.js +330 -0
  710. package/dist/internal/Authorize.js.map +1 -0
  711. package/dist/internal/Cache.d.ts +56 -0
  712. package/dist/internal/Cache.d.ts.map +1 -0
  713. package/dist/internal/Cache.js +65 -0
  714. package/dist/internal/Cache.js.map +1 -0
  715. package/dist/internal/Chain.d.ts +738 -0
  716. package/dist/internal/Chain.d.ts.map +1 -0
  717. package/dist/internal/Chain.js +65 -0
  718. package/dist/internal/Chain.js.map +1 -0
  719. package/dist/internal/ChainList.d.ts +117 -0
  720. package/dist/internal/ChainList.d.ts.map +1 -0
  721. package/dist/internal/ChainList.js +148 -0
  722. package/dist/internal/ChainList.js.map +1 -0
  723. package/dist/internal/ChainName.d.ts +11 -0
  724. package/dist/internal/ChainName.d.ts.map +1 -0
  725. package/dist/internal/ChainName.js +13 -0
  726. package/dist/internal/ChainName.js.map +1 -0
  727. package/dist/internal/CodeEmail.d.ts +38 -0
  728. package/dist/internal/CodeEmail.d.ts.map +1 -0
  729. package/dist/internal/CodeEmail.js +85 -0
  730. package/dist/internal/CodeEmail.js.map +1 -0
  731. package/dist/internal/ConfigurableAccount.d.ts +600 -0
  732. package/dist/internal/ConfigurableAccount.d.ts.map +1 -0
  733. package/dist/internal/ConfigurableAccount.js +795 -0
  734. package/dist/internal/ConfigurableAccount.js.map +1 -0
  735. package/dist/internal/Device.d.ts +246 -0
  736. package/dist/internal/Device.d.ts.map +1 -0
  737. package/dist/internal/Device.js +257 -0
  738. package/dist/internal/Device.js.map +1 -0
  739. package/dist/internal/Env.d.ts +97 -0
  740. package/dist/internal/Env.d.ts.map +1 -0
  741. package/dist/internal/Env.js +2 -0
  742. package/dist/internal/Env.js.map +1 -0
  743. package/dist/internal/ErrorResponse.d.ts +608 -0
  744. package/dist/internal/ErrorResponse.d.ts.map +1 -0
  745. package/dist/internal/ErrorResponse.js +701 -0
  746. package/dist/internal/ErrorResponse.js.map +1 -0
  747. package/dist/internal/Id.d.ts +10 -0
  748. package/dist/internal/Id.d.ts.map +1 -0
  749. package/dist/internal/Id.js +34 -0
  750. package/dist/internal/Id.js.map +1 -0
  751. package/dist/internal/KeyAuthorization.d.ts +1650 -0
  752. package/dist/internal/KeyAuthorization.d.ts.map +1 -0
  753. package/dist/internal/KeyAuthorization.js +1187 -0
  754. package/dist/internal/KeyAuthorization.js.map +1 -0
  755. package/dist/internal/Limits.d.ts +70 -0
  756. package/dist/internal/Limits.d.ts.map +1 -0
  757. package/dist/internal/Limits.js +36 -0
  758. package/dist/internal/Limits.js.map +1 -0
  759. package/dist/internal/Log.d.ts +34 -0
  760. package/dist/internal/Log.d.ts.map +1 -0
  761. package/dist/internal/Log.js +99 -0
  762. package/dist/internal/Log.js.map +1 -0
  763. package/dist/internal/LogLine.d.ts +29 -0
  764. package/dist/internal/LogLine.d.ts.map +1 -0
  765. package/dist/internal/LogLine.js +50 -0
  766. package/dist/internal/LogLine.js.map +1 -0
  767. package/dist/internal/Migrations.d.ts +28 -0
  768. package/dist/internal/Migrations.d.ts.map +1 -0
  769. package/dist/internal/Migrations.js +82 -0
  770. package/dist/internal/Migrations.js.map +1 -0
  771. package/dist/internal/Owner.d.ts +230 -0
  772. package/dist/internal/Owner.d.ts.map +1 -0
  773. package/dist/internal/Owner.js +101 -0
  774. package/dist/internal/Owner.js.map +1 -0
  775. package/dist/internal/Passkey.d.ts +901 -0
  776. package/dist/internal/Passkey.d.ts.map +1 -0
  777. package/dist/internal/Passkey.js +1185 -0
  778. package/dist/internal/Passkey.js.map +1 -0
  779. package/dist/internal/PendingKey.d.ts +49 -0
  780. package/dist/internal/PendingKey.d.ts.map +1 -0
  781. package/dist/internal/PendingKey.js +58 -0
  782. package/dist/internal/PendingKey.js.map +1 -0
  783. package/dist/internal/Privy.d.ts +138 -0
  784. package/dist/internal/Privy.d.ts.map +1 -0
  785. package/dist/internal/Privy.js +285 -0
  786. package/dist/internal/Privy.js.map +1 -0
  787. package/dist/internal/RateLimit.d.ts +218 -0
  788. package/dist/internal/RateLimit.d.ts.map +1 -0
  789. package/dist/internal/RateLimit.js +209 -0
  790. package/dist/internal/RateLimit.js.map +1 -0
  791. package/dist/internal/Realm.d.ts +290 -0
  792. package/dist/internal/Realm.d.ts.map +1 -0
  793. package/dist/internal/Realm.js +502 -0
  794. package/dist/internal/Realm.js.map +1 -0
  795. package/dist/internal/RequestId.d.ts +16 -0
  796. package/dist/internal/RequestId.d.ts.map +1 -0
  797. package/dist/internal/RequestId.js +78 -0
  798. package/dist/internal/RequestId.js.map +1 -0
  799. package/dist/internal/SigningKey.d.ts +126 -0
  800. package/dist/internal/SigningKey.d.ts.map +1 -0
  801. package/dist/internal/SigningKey.js +221 -0
  802. package/dist/internal/SigningKey.js.map +1 -0
  803. package/dist/internal/TempoAccount.d.ts +181 -0
  804. package/dist/internal/TempoAccount.d.ts.map +1 -0
  805. package/dist/internal/TempoAccount.js +369 -0
  806. package/dist/internal/TempoAccount.js.map +1 -0
  807. package/dist/internal/TestInbox.d.ts +42 -0
  808. package/dist/internal/TestInbox.d.ts.map +1 -0
  809. package/dist/internal/TestInbox.js +20 -0
  810. package/dist/internal/TestInbox.js.map +1 -0
  811. package/dist/internal/Timing.d.ts +52 -0
  812. package/dist/internal/Timing.d.ts.map +1 -0
  813. package/dist/internal/Timing.js +116 -0
  814. package/dist/internal/Timing.js.map +1 -0
  815. package/dist/internal/Validation.d.ts +52 -0
  816. package/dist/internal/Validation.d.ts.map +1 -0
  817. package/dist/internal/Validation.js +22 -0
  818. package/dist/internal/Validation.js.map +1 -0
  819. package/dist/internal/Verification.d.ts +24 -0
  820. package/dist/internal/Verification.d.ts.map +1 -0
  821. package/dist/internal/Verification.js +37 -0
  822. package/dist/internal/Verification.js.map +1 -0
  823. package/dist/internal/Wallet.d.ts +66 -0
  824. package/dist/internal/Wallet.d.ts.map +1 -0
  825. package/dist/internal/Wallet.js +59 -0
  826. package/dist/internal/Wallet.js.map +1 -0
  827. package/dist/internal/owners/Passkey.d.ts +9 -0
  828. package/dist/internal/owners/Passkey.d.ts.map +1 -0
  829. package/dist/internal/owners/Passkey.js +58 -0
  830. package/dist/internal/owners/Passkey.js.map +1 -0
  831. package/dist/internal/owners/Privy.d.ts +13 -0
  832. package/dist/internal/owners/Privy.d.ts.map +1 -0
  833. package/dist/internal/owners/Privy.js +59 -0
  834. package/dist/internal/owners/Privy.js.map +1 -0
  835. package/dist/internal/owners/Secp256k1.d.ts +12 -0
  836. package/dist/internal/owners/Secp256k1.d.ts.map +1 -0
  837. package/dist/internal/owners/Secp256k1.js +99 -0
  838. package/dist/internal/owners/Secp256k1.js.map +1 -0
  839. package/dist/worker.d.ts +18 -0
  840. package/dist/worker.d.ts.map +1 -0
  841. package/dist/worker.js +18 -0
  842. package/dist/worker.js.map +1 -0
  843. package/package.json +83 -3
  844. package/src/Api.ts +157 -0
  845. package/src/App.ts +316 -0
  846. package/src/api/account.ts +2266 -0
  847. package/src/api/authenticate.ts +1662 -0
  848. package/src/api/authorize.ts +1086 -0
  849. package/src/api/device.ts +516 -0
  850. package/src/api/health.ts +72 -0
  851. package/src/api/lib/AccountStep.ts +485 -0
  852. package/src/api/lib/Auth.ts +164 -0
  853. package/src/api/lib/Configure.ts +921 -0
  854. package/src/api/lib/Consent.ts +388 -0
  855. package/src/api/lib/Cors.ts +160 -0
  856. package/src/api/lib/Database.ts +10 -0
  857. package/src/api/lib/DeviceRequest.ts +244 -0
  858. package/src/api/lib/FirstAccount.ts +136 -0
  859. package/src/api/lib/Headless.ts +616 -0
  860. package/src/api/lib/IsolateCache.ts +28 -0
  861. package/src/api/lib/KeySigner.ts +690 -0
  862. package/src/api/lib/PasskeyLink.ts +162 -0
  863. package/src/api/lib/Session.ts +64 -0
  864. package/src/api/lib/SignInConsent.ts +393 -0
  865. package/src/api/oauth.ts +1796 -0
  866. package/src/app/components/CodeInput.tsx +153 -0
  867. package/src/app/components/DevTools.tsx +1071 -0
  868. package/src/app/components/Grant.tsx +476 -0
  869. package/src/app/components/icons/BRLA.png +0 -0
  870. package/src/app/components/icons/BRZ.svg +1 -0
  871. package/src/app/components/icons/CHFAU.png +0 -0
  872. package/src/app/components/icons/DLUSD.png +0 -0
  873. package/src/app/components/icons/EURAU.svg +1 -0
  874. package/src/app/components/icons/EURC.e.svg +1 -0
  875. package/src/app/components/icons/GBPA.svg +4 -0
  876. package/src/app/components/icons/GUSD.svg +1 -0
  877. package/src/app/components/icons/MACH.svg +4 -0
  878. package/src/app/components/icons/OUSD.svg +5 -0
  879. package/src/app/components/icons/PRIME.svg +14 -0
  880. package/src/app/components/icons/SBC.svg +1 -0
  881. package/src/app/components/icons/SEKAU.svg +5 -0
  882. package/src/app/components/icons/USD1.svg +30 -0
  883. package/src/app/components/icons/USDB.svg +11 -0
  884. package/src/app/components/icons/USDC.e.svg +1 -0
  885. package/src/app/components/icons/USDT0.svg +1 -0
  886. package/src/app/components/icons/USDY.svg +16 -0
  887. package/src/app/components/icons/USDe.svg +1 -0
  888. package/src/app/components/icons/YLDS.svg +3 -0
  889. package/src/app/components/icons/alphaUSD.svg +1 -0
  890. package/src/app/components/icons/betaUSD.svg +1 -0
  891. package/src/app/components/icons/cUSD.svg +1 -0
  892. package/src/app/components/icons/cbBTC.svg +1 -0
  893. package/src/app/components/icons/frxUSD.svg +1 -0
  894. package/src/app/components/icons/goUSD.svg +5 -0
  895. package/src/app/components/icons/iUSD.svg +1 -0
  896. package/src/app/components/icons/pathUSD.svg +25 -0
  897. package/src/app/components/icons/rUSD.svg +1 -0
  898. package/src/app/components/icons/reUSD.svg +1 -0
  899. package/src/app/components/icons/sUSDe.svg +1 -0
  900. package/src/app/components/icons/siUSD.svg +1 -0
  901. package/src/app/components/icons/stcUSD.svg +1 -0
  902. package/src/app/components/icons/syrupUSDC.svg +5 -0
  903. package/src/app/components/icons/thetaUSD.svg +1 -0
  904. package/src/app/components/icons/wYLDS.svg +10 -0
  905. package/src/app/components/icons/wsrUSD.svg +1 -0
  906. package/src/app/components/logos/OUSD.dark.svg +17 -0
  907. package/src/app/components/logos/OUSD.light.svg +17 -0
  908. package/src/app/coverage.server.ts +73 -0
  909. package/src/app/coverage.ts +69 -0
  910. package/src/app/crons/cleanup.ts +104 -0
  911. package/src/app/db/auth.ts +440 -0
  912. package/src/app/db/migrations/0000_better_auth.sql +53 -0
  913. package/src/app/db/migrations/0001_oauth_provider.sql +162 -0
  914. package/src/app/db/migrations/0002_device_code.sql +17 -0
  915. package/src/app/db/migrations/0003_realms.sql +27 -0
  916. package/src/app/db/migrations/0004_default_realm.sql +2 -0
  917. package/src/app/db/migrations/0005_passkeys.sql +30 -0
  918. package/src/app/db/migrations/0006_first_accounts.sql +9 -0
  919. package/src/app/db/migrations/0007_pending_keys.sql +13 -0
  920. package/src/app/db/migrations/0008_secp256k1_owners.sql +18 -0
  921. package/src/app/db/migrations/0009_device_requests.sql +8 -0
  922. package/src/app/db/migrations/0010_device_keys.sql +4 -0
  923. package/src/app/db/migrations/0011_registered_passkeys.sql +2 -0
  924. package/src/app/db/migrations/0012_passkey_accounts.sql +7 -0
  925. package/src/app/db/migrations/0013_first_party_apps.sql +4 -0
  926. package/src/app/db/migrations/0014_logout_revokes_tokens.sql +17 -0
  927. package/src/app/db/migrations/0015_expiry_indexes.sql +9 -0
  928. package/src/app/db/migrations/0016_configurable_accounts.sql +15 -0
  929. package/src/app/db/migrations/0017_account_config_keys.sql +3 -0
  930. package/src/app/db/migrations/0018_better_auth_1_8.sql +9 -0
  931. package/src/app/db/migrations/0019_drop_provider_account_index.sql +1 -0
  932. package/src/app/db/migrations/meta/0000_snapshot.json +362 -0
  933. package/src/app/db/migrations/meta/0001_snapshot.json +1487 -0
  934. package/src/app/db/migrations/meta/0002_snapshot.json +1603 -0
  935. package/src/app/db/migrations/meta/0003_snapshot.json +1760 -0
  936. package/src/app/db/migrations/meta/0004_snapshot.json +1760 -0
  937. package/src/app/db/migrations/meta/0005_snapshot.json +1911 -0
  938. package/src/app/db/migrations/meta/0006_snapshot.json +1967 -0
  939. package/src/app/db/migrations/meta/0007_snapshot.json +2047 -0
  940. package/src/app/db/migrations/meta/0008_snapshot.json +2157 -0
  941. package/src/app/db/migrations/meta/0009_snapshot.json +2207 -0
  942. package/src/app/db/migrations/meta/0010_snapshot.json +2231 -0
  943. package/src/app/db/migrations/meta/0011_snapshot.json +2231 -0
  944. package/src/app/db/migrations/meta/0012_snapshot.json +2231 -0
  945. package/src/app/db/migrations/meta/0013_snapshot.json +2231 -0
  946. package/src/app/db/migrations/meta/0014_snapshot.json +2231 -0
  947. package/src/app/db/migrations/meta/0015_snapshot.json +2375 -0
  948. package/src/app/db/migrations/meta/0016_snapshot.json +2475 -0
  949. package/src/app/db/migrations/meta/0017_snapshot.json +2481 -0
  950. package/src/app/db/migrations/meta/0018_snapshot.json +2535 -0
  951. package/src/app/db/migrations/meta/0019_snapshot.json +2514 -0
  952. package/src/app/db/migrations/meta/_journal.json +146 -0
  953. package/src/app/db/schema.ts +241 -0
  954. package/src/app/db/table.ts +31 -0
  955. package/src/app/env.ts +57 -0
  956. package/src/app/inbox.ts +190 -0
  957. package/src/app/lib/Client.ts +82 -0
  958. package/src/app/lib/Inbox.ts +11 -0
  959. package/src/app/lib/Loader.ts +21 -0
  960. package/src/app/lib/Upgrade.ts +221 -0
  961. package/src/app/package.json +8 -0
  962. package/src/app/public/_headers +4 -0
  963. package/src/app/routeTree.gen.ts +219 -0
  964. package/src/app/router.tsx +47 -0
  965. package/src/app/routes/[_].flows.tsx +4254 -0
  966. package/src/app/routes/__root.tsx +172 -0
  967. package/src/app/routes/authorize.tsx +379 -0
  968. package/src/app/routes/choose-account.tsx +144 -0
  969. package/src/app/routes/deposit.tsx +107 -0
  970. package/src/app/routes/device.tsx +273 -0
  971. package/src/app/routes/error.tsx +62 -0
  972. package/src/app/routes/index.tsx +511 -0
  973. package/src/app/routes/login.tsx +577 -0
  974. package/src/app/screens/Account.tsx +559 -0
  975. package/src/app/screens/Approval.tsx +444 -0
  976. package/src/app/screens/ChooseAccount.tsx +206 -0
  977. package/src/app/screens/Deposit.tsx +523 -0
  978. package/src/app/screens/DeviceApproval.tsx +500 -0
  979. package/src/app/screens/NotFound.tsx +62 -0
  980. package/src/app/screens/SignIn.tsx +372 -0
  981. package/src/app/screens/WalletUpgrade.tsx +121 -0
  982. package/src/app/screens/chains/base.svg +3 -0
  983. package/src/app/screens/chains/ethereum.svg +11 -0
  984. package/src/app/screens/chains/solana.svg +4 -0
  985. package/src/app/screens/chains/tempo.svg +4 -0
  986. package/src/app/server.ts +342 -0
  987. package/src/app/vite.config.ts +128 -0
  988. package/src/app/void.config.ts +36 -0
  989. package/src/app/wallet.ts +69 -0
  990. package/src/app/zyzz.config.ts +52 -0
  991. package/src/cli/Admin.ts +74 -0
  992. package/src/cli/Apps.ts +27 -0
  993. package/src/cli/Cli.ts +41 -0
  994. package/src/cli/Project.ts +119 -0
  995. package/src/cli/Realms.ts +49 -0
  996. package/src/cli/Session.ts +290 -0
  997. package/src/cli/User.ts +40 -0
  998. package/src/cli/V1.ts +54 -0
  999. package/src/cli/bin.ts +44 -0
  1000. package/src/cli/commands/admin/apps/create.ts +96 -0
  1001. package/src/cli/commands/admin/apps/delete.ts +38 -0
  1002. package/src/cli/commands/admin/apps/index.ts +15 -0
  1003. package/src/cli/commands/admin/apps/list.ts +25 -0
  1004. package/src/cli/commands/admin/apps/rotate-secret.ts +47 -0
  1005. package/src/cli/commands/admin/apps/update.ts +79 -0
  1006. package/src/cli/commands/admin/index.ts +14 -0
  1007. package/src/cli/commands/admin/migrate.ts +19 -0
  1008. package/src/cli/commands/admin/realms/add.ts +40 -0
  1009. package/src/cli/commands/admin/realms/index.ts +14 -0
  1010. package/src/cli/commands/admin/realms/list.ts +38 -0
  1011. package/src/cli/commands/admin/realms/passkeys/index.ts +15 -0
  1012. package/src/cli/commands/admin/realms/passkeys/set.ts +44 -0
  1013. package/src/cli/commands/admin/realms/privy/index.ts +14 -0
  1014. package/src/cli/commands/admin/realms/privy/set.ts +69 -0
  1015. package/src/cli/commands/admin/realms/remove.ts +33 -0
  1016. package/src/cli/commands/admin/realms/secp256k1/disable.ts +40 -0
  1017. package/src/cli/commands/admin/realms/secp256k1/enable.ts +40 -0
  1018. package/src/cli/commands/admin/realms/secp256k1/index.ts +19 -0
  1019. package/src/cli/commands/admin/realms/set.ts +46 -0
  1020. package/src/cli/commands/admin/rotate-key.ts +47 -0
  1021. package/src/cli/commands/init.ts +42 -0
  1022. package/src/cli/commands/login.ts +32 -0
  1023. package/src/cli/commands/logout.ts +19 -0
  1024. package/src/cli/commands/whoami.ts +23 -0
  1025. package/src/client/Actions.ts +180 -0
  1026. package/src/client/Auth.ts +267 -0
  1027. package/src/client/Authorization.ts +34 -0
  1028. package/src/client/Decorator.ts +444 -0
  1029. package/src/client/Key.ts +137 -0
  1030. package/src/client/Pending.ts +45 -0
  1031. package/src/client/Permissions.ts +41 -0
  1032. package/src/client/Storage.ts +29 -0
  1033. package/src/client/TempoAccount.ts +55 -0
  1034. package/src/client/Tokens.ts +27 -0
  1035. package/src/client/User.ts +23 -0
  1036. package/src/client/actions/account.ts +171 -0
  1037. package/src/client/actions/device.ts +166 -0
  1038. package/src/client/actions/email.ts +164 -0
  1039. package/src/client/actions/oauth.ts +179 -0
  1040. package/src/client/actions/passkey.ts +333 -0
  1041. package/src/client/actions/realm.ts +37 -0
  1042. package/src/client/actions/redirect.ts +502 -0
  1043. package/src/client/internal/accessKey.ts +54 -0
  1044. package/src/client/internal/account.ts +18 -0
  1045. package/src/client/internal/api.ts +242 -0
  1046. package/src/client/internal/headless.ts +308 -0
  1047. package/src/client/internal/indexedDb.ts +44 -0
  1048. package/src/client/internal/request.ts +70 -0
  1049. package/src/client/internal/store.ts +20 -0
  1050. package/src/client/internal/verifier.ts +75 -0
  1051. package/src/client.ts +17 -0
  1052. package/src/index.ts +5 -0
  1053. package/src/internal/Apps.ts +1283 -0
  1054. package/src/internal/Auth.ts +273 -0
  1055. package/src/internal/Authorize.ts +433 -0
  1056. package/src/internal/Balance.ts +144 -0
  1057. package/src/internal/BodyLimit.ts +31 -0
  1058. package/src/internal/Cache.ts +119 -0
  1059. package/src/internal/Chain.ts +99 -0
  1060. package/src/internal/ChainList.ts +270 -0
  1061. package/src/internal/ChainName.ts +14 -0
  1062. package/src/internal/ChainStatus.ts +65 -0
  1063. package/src/internal/CodeEmail.ts +138 -0
  1064. package/src/internal/ConfigurableAccount.ts +1315 -0
  1065. package/src/internal/Device.ts +471 -0
  1066. package/src/internal/Env.ts +92 -0
  1067. package/src/internal/ErrorResponse.ts +896 -0
  1068. package/src/internal/Faucet.ts +43 -0
  1069. package/src/internal/Id.ts +41 -0
  1070. package/src/internal/KeyAuthorization.ts +1536 -0
  1071. package/src/internal/Limits.ts +40 -0
  1072. package/src/internal/Log.ts +166 -0
  1073. package/src/internal/LogLine.ts +81 -0
  1074. package/src/internal/Logout.ts +356 -0
  1075. package/src/internal/Migrations.ts +120 -0
  1076. package/src/internal/OpenApi.ts +300 -0
  1077. package/src/internal/Owner.ts +310 -0
  1078. package/src/internal/Passkey.ts +1904 -0
  1079. package/src/internal/PendingKey.ts +104 -0
  1080. package/src/internal/Privy.ts +536 -0
  1081. package/src/internal/RateLimit.ts +346 -0
  1082. package/src/internal/Realm.ts +814 -0
  1083. package/src/internal/RequestId.ts +118 -0
  1084. package/src/internal/SignInGrant.ts +175 -0
  1085. package/src/internal/SigningKey.ts +319 -0
  1086. package/src/internal/TempoAccount.ts +545 -0
  1087. package/src/internal/TestInbox.ts +51 -0
  1088. package/src/internal/Timing.ts +172 -0
  1089. package/src/internal/Validation.ts +52 -0
  1090. package/src/internal/Verification.ts +58 -0
  1091. package/src/internal/Wallet.ts +101 -0
  1092. package/src/internal/owners/Passkey.ts +76 -0
  1093. package/src/internal/owners/Privy.ts +82 -0
  1094. package/src/internal/owners/Secp256k1.ts +139 -0
  1095. package/src/types/app.d.ts +39 -0
  1096. package/src/worker.ts +17 -0
@@ -0,0 +1 @@
1
+ .z_tds_2f_web-h-4dtA0{background-color:var(--z-tds_2f_web-color-foreground,light-dark(#171717,#fff))}.z_tds_2f_web-h-4dtA1{border-radius:var(--z-tds_2f_web-radius-12,.75rem)}.z_tds_2f_web-h-4dtA2{box-sizing:border-box}.z_tds_2f_web-h-4dtA3{color:var(--z-tds_2f_web-color-background-primary,light-dark(#f5f5f5,#100f0f))}.z_tds_2f_web-h-4dtA4{max-width:var(--z-tds_2f_web-spacing-320,20rem)}.z_tds_2f_web-h-4dtA5{padding-block:var(--z-tds_2f_web-spacing-6,.375rem)}.z_tds_2f_web-h-4dtA6{padding-inline:var(--z-tds_2f_web-spacing-12,.75rem)}.z_tds_2f_web-h-4dtA7{transform-origin:var(--transform-origin)}.z_tds_2f_web-h-4dtA8{transition-duration:var(--z-tds_2f_web-transitionDuration-160,.16s)}.z_tds_2f_web-h-4dtA9{transition-property:opacity,scale}.z_tds_2f_web-h-4dtAa{transition-timing-function:var(--z-tds_2f_web-ease-snappy,cubic-bezier(.23, 1, .32, 1))}.z_tds_2f_web-h-4dtAb{font-family:var(--z-tds_2f_web-typography-label-13-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}.z_tds_2f_web-h-4dtAc{font-size:var(--z-tds_2f_web-typography-label-13-fontSize,13px)}.z_tds_2f_web-h-4dtAd{font-weight:var(--z-tds_2f_web-typography-label-13-fontWeight,450)}.z_tds_2f_web-h-4dtAe{letter-spacing:var(--z-tds_2f_web-typography-label-13-letterSpacing,-.04px)}.z_tds_2f_web-h-4dtAf{line-height:var(--z-tds_2f_web-typography-label-13-lineHeight,16px)}.z_tds_2f_web-h-4dtAg{&[data-ending-style]{opacity:0}}.z_tds_2f_web-h-4dtAh{&[data-ending-style]{scale:var(--z-tds_2f_web-scale-enter,.96)}}.z_tds_2f_web-h-4dtAi{&[data-ending-style]{transition-duration:var(--z-tds_2f_web-transitionDuration-100,.1s)}}.z_tds_2f_web-h-4dtAj{&[data-instant]{transition-duration:var(--z-tds_2f_web-transitionDuration-0,0s)}}.z_tds_2f_web-h-4dtAk{&[data-starting-style]{opacity:0}}.z_tds_2f_web-h-4dtAl{&[data-starting-style]{scale:var(--z-tds_2f_web-scale-enter,.96)}}@media (prefers-reduced-motion:reduce){.z_tds_2f_web-h-4dtAm{transition-property:opacity}.z_tds_2f_web-h-4dtAn{&[data-ending-style],&[data-starting-style]{scale:none}}}.z_tds_2f_web-h-4dtAo{z-index:var(--z-tds_2f_web-zIndex-popover,50)}
@@ -0,0 +1,30 @@
1
+ <svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M250 475C374.264 475 475 374.264 475 250C475 125.736 374.264 25 250 25C125.736 25 25 125.736 25 250C25 374.264 125.736 475 250 475ZM250 500C388.071 500 500 388.071 500 250C500 111.929 388.071 0 250 0C111.929 0 0 111.929 0 250C0 388.071 111.929 500 250 500Z" fill="#EAAC08"/>
3
+ <circle cx="250" cy="250" r="209" fill="url(#paint0_linear_177_99)"/>
4
+ <path d="M46.1799 296.452L138.109 244.189L42.377 225.871C47.5555 180.822 67.0578 140.13 96.2142 108.466C119.298 121.179 142.382 133.896 165.466 146.612C193.696 162.165 221.927 177.717 250.157 193.26L370.531 259.539L375.039 262.029C379.942 265.781 382.904 272.16 382.674 279.051C399.325 284.679 406.63 306.681 402.681 325.647C395.869 313.844 384.911 305.691 372.407 303.304C353.419 303.849 334.498 300.541 316.531 293.582C290.172 289.796 269.112 295.049 250.19 305.35C226.941 318.024 201.173 342.205 177.869 364.074C170.564 370.93 163.501 377.558 156.833 383.534C144.234 393.925 127.659 401.392 110.514 405.646C103.667 399.505 97.2274 392.92 91.2407 385.935L148.935 336.085C151.634 333.731 152.16 329.365 150.054 326.329C147.981 323.293 144.065 322.713 141.366 325.067L82.9173 375.577C75.1455 365.253 68.3082 354.185 62.5314 342.5L77.1649 332.298C80.0608 330.252 80.9492 325.988 79.1394 322.713C77.3295 319.472 73.4793 318.483 70.5835 320.496L56.8777 330.049C52.4069 319.275 48.8114 308.047 46.1799 296.452Z" fill="#CA8404"/>
5
+ <path d="M443.591 171.094C449.264 184.998 453.483 199.649 456.058 214.86C452.95 215.416 449.844 215.971 446.738 216.526L446.73 216.527C415.766 222.058 384.808 227.588 352.532 234.126L238.41 171.941L375.961 96.9982C379.495 95.0726 382.921 93.252 386.268 91.5281C407.352 109.674 424.774 131.956 437.276 157.114L416.7 160.855C413.146 161.469 410.711 165.289 411.271 169.382C411.797 173.476 415.121 176.239 418.675 175.625L443.591 171.094Z" fill="#CA8404"/>
6
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M250 459C365.428 459 459 365.428 459 250C459 134.572 365.428 41 250 41C134.572 41 41 134.572 41 250C41 365.428 134.572 459 250 459ZM250 475C374.264 475 475 374.264 475 250C475 125.736 374.264 25 250 25C125.736 25 25 125.736 25 250C25 374.264 125.736 475 250 475Z" fill="#EAAC08"/>
7
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M250 459C365.428 459 459 365.428 459 250C459 134.572 365.428 41 250 41C134.572 41 41 134.572 41 250C41 365.428 134.572 459 250 459ZM250 475C374.264 475 475 374.264 475 250C475 125.736 374.264 25 250 25C125.736 25 25 125.736 25 250C25 374.264 125.736 475 250 475Z" fill="url(#paint1_linear_177_99)"/>
8
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M250 459C365.428 459 459 365.428 459 250C459 134.572 365.428 41 250 41C134.572 41 41 134.572 41 250C41 365.428 134.572 459 250 459ZM250 475C374.264 475 475 374.264 475 250C475 125.736 374.264 25 250 25C125.736 25 25 125.736 25 250C25 374.264 125.736 475 250 475Z" fill="url(#paint2_linear_177_99)"/>
9
+ <path d="M232.8 149.98V163.77C224.42 169.96 215.93 175.03 207.35 178.99C198.07 183.01 188.78 185.03 179.5 185.03C178.92 185.03 178.33 185.03 177.75 185.01V184.77C177.67 184.77 177.58 184.77 177.5 184.76V184.52C177.42 184.52 177.33 184.52 177.25 184.51V184.27C177.17 184.27 177.08 184.27 177 184.26V184.02C176.92 184.02 176.83 184.02 176.75 184.01V183.77C176.67 183.77 176.58 183.77 176.5 183.76V183.52C176.42 183.52 176.33 183.52 176.25 183.51V183.27C176.17 183.27 176.08 183.27 176 183.26V183.02C175.92 183.02 175.83 183.02 175.75 183.01V182.77C175.67 182.77 175.58 182.77 175.5 182.76V182.52C175.42 182.52 175.33 182.52 175.25 182.51V182.27C175.17 182.27 175.08 182.27 175 182.26V182.02C174.92 182.02 174.83 182.02 174.75 182.01V181.77C174.67 181.77 174.58 181.77 174.5 181.76V181.52C174.42 181.52 174.33 181.52 174.25 181.51V181.27C174.17 181.27 174.08 181.27 174 181.26V181.02C173.92 181.02 173.83 181.02 173.75 181.01V180.77C173.67 180.77 173.58 180.77 173.5 180.76V180.52C173.42 180.52 173.33 180.52 173.25 180.51V180.27C173.17 180.27 173.08 180.27 173 180.26V180.02C172.92 180.02 172.83 180.02 172.75 180.01V179.77C172.67 179.77 172.58 179.77 172.5 179.76V179.52C172.42 179.52 172.33 179.52 172.25 179.51V179.27C172.17 179.27 172.08 179.27 172 179.26V179.02C171.92 179.02 171.83 179.02 171.75 179.01V178.77C171.67 178.77 171.58 178.77 171.5 178.76V178.52C171.42 178.52 171.33 178.52 171.25 178.51V178.27C171.17 178.27 171.08 178.27 171 178.26V178.02C170.92 178.02 170.83 178.02 170.75 178.01V177.77C170.67 177.77 170.58 177.77 170.5 177.76V177.52C170.42 177.52 170.33 177.52 170.25 177.51V177.26C170.75 177.28 171.25 177.28 171.75 177.28C181.03 177.28 190.32 175.26 199.6 171.24C209.47 166.69 219.2 160.67 228.8 153.17C230.14 152.12 231.48 151.06 232.8 149.98Z" fill="#85490E"/>
10
+ <path d="M273.75 112.75V393.75H240.55V393.5H240.3V393.25H240.05V393H239.8V392.75H239.55V392.5H239.3V392.25H239.05V392H238.8V391.75H238.55V391.5H238.3V391.25H238.05V391H237.8V390.75H237.55V390.5H237.3V390.25H237.05V390H236.8V389.75H236.55V389.5H236.3V389.25H236.05V389H235.8V388.75H235.55V388.5H235.3V388.25H235.05V388H234.8V387.75H234.55V387.5H234.3V387.25H234.05V387H233.8V386.75H233.55V386.5H233.3V386.25H233.05V386H266V105.25H266.25V105.5H266.5V105.75H266.75V106H267V106.25H267.25V106.5H267.5V106.75H267.75V107H268V107.25H268.25V107.5H268.5V107.75H268.75V108H269V108.25H269.25V108.5H269.5V108.75H269.75V109H270V109.25H270.25V109.5H270.5V109.75H270.75V110H271V110.25H271.25V110.5H271.5V110.75H271.75V111H272V111.25H272.25V111.5H272.5V111.75H272.75V112H273V112.25H273.25V112.5H273.5V112.75H273.75Z" fill="#85490E"/>
11
+ <path d="M266 105V386H232.8V163.77C232.88 163.71 232.72 163.83 232.8 163.77V149.98C231.48 151.06 230.14 152.12 228.8 153.17C219.2 160.67 209.47 166.69 199.6 171.24C190.32 175.26 181.03 177.28 171.75 177.28C171.25 177.28 170.75 177.28 170.25 177.26C170.17 177.27 170.08 177.26 170 177.26V146.35C170.35 146.38 170.71 146.38 171.07 146.38C176.44 146.38 182.76 144.49 190 140.73C197.74 136.72 205.74 131.5 214 125.07C222.27 118.65 229.47 111.96 235.6 105H266Z" fill="url(#paint3_linear_177_99)"/>
12
+ <defs>
13
+ <linearGradient id="paint0_linear_177_99" x1="250" y1="41" x2="250" y2="459" gradientUnits="userSpaceOnUse">
14
+ <stop stop-color="#CA8404"/>
15
+ <stop offset="1" stop-color="#A15D07"/>
16
+ </linearGradient>
17
+ <linearGradient id="paint1_linear_177_99" x1="475" y1="25" x2="25" y2="475" gradientUnits="userSpaceOnUse">
18
+ <stop stop-color="#44403C"/>
19
+ <stop offset="0.4" stop-color="#44403C" stop-opacity="0"/>
20
+ </linearGradient>
21
+ <linearGradient id="paint2_linear_177_99" x1="475" y1="25" x2="25" y2="475" gradientUnits="userSpaceOnUse">
22
+ <stop offset="0.6" stop-color="#F5F5F4" stop-opacity="0"/>
23
+ <stop offset="1" stop-color="#F5F5F4"/>
24
+ </linearGradient>
25
+ <linearGradient id="paint3_linear_177_99" x1="218" y1="105" x2="218" y2="386" gradientUnits="userSpaceOnUse">
26
+ <stop stop-color="#FEF7C3"/>
27
+ <stop offset="1" stop-color="#FDDA47"/>
28
+ </linearGradient>
29
+ </defs>
30
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M25 45C25.7075 45 26.4064 44.9633 27.095 44.8916L26.4697 38.9516C25.9867 39.0018 25.4965 39.0276 25.0002 39.0276C24.5061 39.0276 24.0179 39.0021 23.537 38.9522L22.9039 44.8915C23.5928 44.9632 24.2921 45 25 45Z" fill="#030712"/>
3
+ <path d="M17.9718 37.1424C18.8166 37.6325 19.7172 38.0369 20.6618 38.3438L18.8173 44.0261C17.4728 43.5894 16.1907 43.0143 14.9879 42.3174L17.9718 37.1424Z" fill="#030712"/>
4
+ <path d="M13.642 33.2331C14.2192 34.0281 14.8778 34.7602 15.6057 35.417L11.6042 39.8513C10.5678 38.9158 9.62979 37.8735 8.80758 36.7416L13.642 33.2331Z" fill="#030712"/>
5
+ <path d="M11.2716 27.8917C11.4756 28.8653 11.7805 29.8019 12.175 30.6898L6.71509 33.1156C6.15342 31.8521 5.71889 30.5195 5.42772 29.1341L11.2716 27.8917Z" fill="#030712"/>
6
+ <path d="M10.9733 24.9926H5C5 24.946 5.00016 24.8994 5.00048 24.8529C5.00773 23.846 5.08939 22.8568 5.24022 21.8906C6.24559 15.4618 10.3245 10.0379 15.9214 7.17448C18.6459 5.78411 21.7314 5 25 5C28.2783 5 31.3724 5.78876 34.1028 7.18685C39.6098 10.0137 43.6428 15.3213 44.7163 21.6241C44.9024 22.7192 44.9996 23.8446 45 24.9926H39.027C39.0226 17.2495 32.7443 10.9739 25.0002 10.9739C17.2561 10.9739 10.9778 17.2495 10.9733 24.9926Z" fill="#030712"/>
7
+ <path d="M37.8265 30.6872C38.2196 29.8018 38.5238 28.8682 38.7276 27.8976L44.5723 29.1336C44.2807 30.5213 43.8453 31.856 43.2823 33.1215L37.8265 30.6872Z" fill="#030712"/>
8
+ <path d="M34.3965 35.4154C35.1252 34.7575 35.7846 34.0242 36.3623 33.2278L41.1938 36.7396C40.3706 37.8731 39.4314 38.9168 38.3936 39.8533L34.3965 35.4154Z" fill="#030712"/>
9
+ <path d="M29.3423 38.3426C30.2859 38.0357 31.1855 37.6315 32.0294 37.1419L35.0132 42.3167C33.8125 43.0125 32.5329 43.5869 31.1909 44.0234L29.3423 38.3426Z" fill="#030712"/>
10
+ <path d="M28.7194 24.3156C29.4014 24.6073 29.9343 25.0561 30.3606 25.6396C30.7869 26.223 31 27.0085 31 27.9958C31 29.275 30.5524 30.3521 29.6998 31.2498C28.8472 32.1474 27.7176 32.7084 26.3535 32.9104V35H23.7105V32.8655C22.3037 32.6187 21.1528 32.0352 20.3002 31.0927C19.4476 30.1502 19 29.0281 19 27.7041L22.1332 27.749C22.1758 28.5344 22.4742 29.1628 23.0284 29.634C23.5826 30.1053 24.3073 30.3297 25.2238 30.3297C25.9698 30.3297 26.5879 30.1726 27.0568 29.836C27.5258 29.4994 27.7815 29.0281 27.7815 28.4222C27.7815 28.0183 27.6323 27.6817 27.3766 27.4348C27.1208 27.188 26.7371 26.986 26.2682 26.8514C25.7993 26.7167 25.0533 26.5372 24.0728 26.3128C23.0924 26.1333 22.2611 25.8864 21.6004 25.5722C20.9183 25.2581 20.3854 24.8093 19.9591 24.2034C19.5329 23.5975 19.341 22.7896 19.341 21.7797C19.341 20.5904 19.7247 19.5581 20.5346 18.7054C21.3446 17.8526 22.389 17.3365 23.7105 17.1121V15H26.3535V17.1569C27.6323 17.4262 28.6554 17.9872 29.4654 18.84C30.254 19.7152 30.659 20.7475 30.7016 21.9593H27.5684C27.4831 21.286 27.2274 20.7475 26.7584 20.3435C26.2895 19.9396 25.6714 19.7152 24.9041 19.7152C24.1794 19.7152 23.6252 19.8723 23.1989 20.1864C22.7726 20.5006 22.5595 20.9494 22.5595 21.5329C22.5595 21.9593 22.6874 22.2959 22.9432 22.5203C23.1989 22.7447 23.5613 22.9467 24.0302 23.0813C24.4991 23.216 25.2238 23.3955 26.2043 23.575C27.1847 23.777 28.0373 24.0238 28.7194 24.3156Z" fill="#030712"/>
11
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><g fill="none"><circle cx="16" cy="16" r="16" fill="#3e73c4"/><g fill="#fff"><path d="M20.02 18.12c0-2.12-1.28-2.85-3.84-3.15-1.83-.25-2.2-.73-2.2-1.58s.62-1.4 1.84-1.4c1.1 0 1.7.37 2 1.28a.46.46 0 0 0 .43.3h.98a.42.42 0 0 0 .43-.42v-.06a3.04 3.04 0 0 0-2.75-2.5V9.15c0-.24-.18-.42-.48-.48h-.92c-.24 0-.42.18-.48.48v1.4c-1.83.24-3 1.45-3 2.97 0 2 1.23 2.8 3.79 3.1 1.7.3 2.25.66 2.25 1.64 0 .97-.85 1.63-2 1.63-1.6 0-2.14-.66-2.32-1.57-.06-.25-.25-.37-.43-.37h-1.04a.42.42 0 0 0-.42.43v.06c.24 1.51 1.22 2.6 3.23 2.91v1.46c0 .24.18.42.48.48h.92c.24 0 .42-.18.49-.48v-1.46c1.82-.3 3.04-1.58 3.04-3.22z"/><path d="M12.9 24.5a9.03 9.03 0 0 1-5.43-11.66 9 9 0 0 1 5.42-5.4c.25-.12.37-.3.37-.6v-.86c0-.24-.12-.42-.37-.48-.06 0-.18 0-.24.06a10.9 10.9 0 0 0-7.13 13.72c1.1 3.4 3.72 6 7.13 7.1.24.12.49 0 .55-.24.06-.06.06-.13.06-.25v-.85c0-.18-.19-.42-.37-.54m6.46-18.94c-.24-.12-.49 0-.55.24-.06.06-.06.13-.06.25v.85c0 .24.19.48.37.6a9.03 9.03 0 0 1 5.42 11.66 9 9 0 0 1-5.42 5.4c-.25.12-.37.3-.37.6v.86c0 .24.12.42.37.48.06 0 .18 0 .24-.06a10.9 10.9 0 0 0 7.13-13.72 11.03 11.03 0 0 0-7.13-7.16"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="256" cy="256" r="256" fill="#00805e"/><path fill="#f0f0f0" d="M386.895 186.535v-58.196H125.106v58.196h101.797V244.7h58.195v-58.165zM226.934 361.061v58.197h58.164v-58.197h58.165v-116.36h-58.165v116.36zm-.001-116.36h-58.195v116.36h58.195z"/></svg>
@@ -0,0 +1,16 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_3034_948)">
3
+ <circle cx="16" cy="16" r="16" fill="#1C3966"/>
4
+ <g clip-path="url(#clip1_3034_948)">
5
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M24.8 16C24.8 11.1399 20.8601 7.2 16 7.2V4C16.8284 4 17.6372 4.08395 18.4184 4.2438C23.8866 5.36275 28 10.201 28 16C28 22.6274 22.6274 28 16 28C10.7751 28 6.33016 24.6608 4.68282 20H8.15953C9.6161 22.8493 12.5802 24.8 16 24.8C20.8601 24.8 24.8 20.8601 24.8 16ZM5.38408 10.4C7.39607 14.2062 11.3951 16.8 16 16.8V13.6C12.0562 13.6 8.71825 11.0056 7.59987 7.43042C6.71685 8.29608 5.96705 9.29714 5.38408 10.4ZM8.95347 6.28574C9.63814 9.54935 12.5329 12 16 12C18.2091 12 20 13.7909 20 16C20 18.2091 18.2091 20 16 20H10.0124C11.3041 21.9296 13.5037 23.2 16 23.2C19.9765 23.2 23.2 19.9764 23.2 16C23.2 12.0236 19.9765 8.8 16 8.8C13.7909 8.8 12 7.00914 12 4.8V4.68282C10.9024 5.07076 9.87812 5.61385 8.95347 6.28574Z" fill="white"/>
6
+ </g>
7
+ </g>
8
+ <defs>
9
+ <clipPath id="clip0_3034_948">
10
+ <rect width="32" height="32" fill="white"/>
11
+ </clipPath>
12
+ <clipPath id="clip1_3034_948">
13
+ <rect width="24" height="24" fill="white" transform="translate(4 4)"/>
14
+ </clipPath>
15
+ </defs>
16
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 397.1 397.1"><path d="M198.6 7.1c105.8 0 191.5 85.7 191.5 191.5 0 105.7-85.7 191.5-191.5 191.5S7.1 304.3 7.1 198.6C7.1 92.8 92.8 7.1 198.6 7.1z" style="fill:#111;stroke:#111;stroke-width:7.0536"/><radialGradient id="a" cx="-105.949" cy="595.938" r="1" gradientTransform="matrix(0 411.151 289.409 0 -172270.75 43621.418)" gradientUnits="userSpaceOnUse"><stop offset=".031" style="stop-color:#3a3a3a"/><stop offset="1" style="stop-color:#1c1c1c"/></radialGradient><path d="M198.6 3.6c-107.7 0-195 87.3-195 195s87.3 195 195 195 195-87.3 195-195-87.3-195-195-195" style="fill:url(#a);fill-opacity:.7"/><linearGradient id="b" x1="198.575" x2="198.575" y1="399.143" y2="1.994" gradientTransform="matrix(1 0 0 -1 0 399.143)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#fff"/><stop offset="1" style="stop-color:#111"/></linearGradient><path d="M198.6 3.6c-107.7 0-195 87.3-195 195s87.3 195 195 195 195-87.3 195-195-87.3-195-195-195z" style="fill:none;stroke:url(#b);stroke-width:7.1429"/><path d="M167.4 38.1C92.1 52.6 35.2 118.9 35.2 198.4s56.9 145.8 132.2 160.3v-15.3c-67-14.3-117.2-73.8-117.2-145s50.2-130.7 117.2-145zm62.4 15.4V38.2C305 52.8 361.7 119 361.7 198.4S305 344 229.8 358.6v-15.3c66.8-14.4 116.9-73.8 116.9-144.9S296.6 67.9 229.8 53.5" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"/><path d="M221.7 193c12.5 2.4 22.1 7 29 13.7 6.9 6.6 10.3 15.1 10.3 25.4v16.3c0 12.4-4.5 22.4-13.4 30-8.9 7.5-20.7 11.2-35.2 11.2h-5v25.9h-17.2v-25.9h-5.3c-9.6 0-18-2.1-25.4-6.4-7.3-4.4-13.1-10.5-17.2-18.3-4-8-6-17.1-6-27.5h17.2c0 10.5 2.9 19.1 8.6 25.7 5.9 6.4 13.7 9.7 23.2 9.7h26.6q14.1 0 22.8-6.6c5.7-4.6 8.6-10.5 8.6-17.8v-16.3c0-5.8-2.2-10.7-6.5-14.8-4.2-4.1-9.9-6.7-17.2-7.9l-43.1-7.6c-12.1-2.2-21.6-6.8-28.3-13.7-6.7-7-10.1-15.7-10.1-26.2v-13.7c0-12.4 4.3-22.2 12.9-29.5 8.8-7.5 20.4-11.2 34.7-11.2h4.3V81.6h17.2v25.9h5.5c13.6 0 24.5 4.4 32.8 13.2 8.3 8.6 12.5 20.1 12.5 34.3h-17.2c0-9.3-2.6-16.8-7.7-22.4q-7.65-8.4-20.4-8.4h-27.1c-9.1 0-16.4 2.2-21.8 6.6-5.4 4.2-8.1 10-8.1 17.3v13.7q0 8.85 6 15c4.2 4.1 9.8 6.8 17 8.1z" style="fill:#fff"/></svg>
@@ -0,0 +1,2 @@
1
+ /* empty css */import{a as e,i as t,o as n,r}from"./Client-Dx3KrpJZ.js";import{j as i}from"./removable-BCLTvPOx.js";import{t as a}from"./useQuery-BRpCr5vj.js";import{n as o,t as s}from"./Authentication-C3oNZAVX.js";var c=class extends Error{name=`Upgrade.CeremonyError`},l=24e4;async function u(e,t){let{chains:r}=await n(e.i.chains.$get()).catch(()=>({chains:[]})),i=r.filter(e=>e.configurable),a=i.find(e=>e.name===t.chain);if(t.account)return a?{chain:a.name,target:{account:t.account}}:void 0;let o=a??i[0];if(!o)return;let{passkeys:s}=await n(e.i.account.passkeys.$get()).catch(()=>({passkeys:[]})),[c]=s;if(c)return{chain:o.name,target:{credentialId:c.credentialId}}}async function d(e,t){let{upgrades:r}=await n(e.i.account.upgrades.$get({query:{chain:t.chain}})).catch(()=>({upgrades:[]})),[i]=r;if(i)return`account`in i?{chain:i.chain,target:{account:i.account}}:{chain:i.chain,target:{credentialId:i.credentialId}}}async function f(e,t){let n=await p(e,t);if(!(`step`in n))throw Error(`The upgrade returned no passkey step.`);return n.step.options}function p(e,t){return n(e.v1.account.upgrade.$post({json:{...t.target,chain:t.chain}}))}function m(r){let{pending:u}=r,d=e(),f=i(),m=[`upgrade`,u?.chain,u?.target],h=a({enabled:u!==void 0,queryFn:()=>p(d,u),queryKey:m,refetchInterval:l,refetchIntervalInBackground:!0,refetchOnWindowFocus:!0,retry:!1,staleTime:l}),g=o({async mutationFn(){if(!u)throw Error(`No upgrade waits.`);let e=f.getQueryState(m),r=e?.data&&Date.now()-e.dataUpdatedAt<24e4?e.data:await p(d,u);if(!(`step`in r))return r;let i=await(async()=>{try{return await s({getFn:e=>navigator.credentials.get(e),options:r.step.options})}catch(e){throw new c(`Passkey ceremony failed.`,{cause:e})}})();try{return await n(d.v1.account.upgrade.$post({json:{...u.target,chain:u.chain,passkey:{assertion:i}}}))}catch(e){if(t(e)===`owner_exists`)return;throw await h.refetch(),e}},onSuccess:()=>r.onSuccess?.()}),_=[h.error,g.error].some(e=>t(e)===`reauthentication_required`);return{...g,preparing:u!==void 0&&h.isPending,stale:_}}function h(e){return e instanceof c?`Your passkey did not sign the upgrade. Continue to try again.`:r(e)}export{l as a,f as i,h as n,m as o,d as r,u as t};
2
+ //# sourceMappingURL=Upgrade-Dbfm2nm0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Upgrade-Dbfm2nm0.js","names":["Client.use","Authentication.sign","Client.reason","Client.message","use$1","reason","parseResponse","useQueryClient","useQuery","useMutation","sign","CeremonyError","stepLifetime","forKey","client","configurable","chains","entry","keyed","options","chain","unlinked","passkeys","pending","first","upgrades","prepare","data","request","use","queryClient","queryKey","step","mutation","state","prepared","assertion","error","stale","message","message$1"],"sources":["../../../lib/Upgrade.ts"],"sourcesContent":["/**\n * Finds and runs the upgrade of a wallet.tempo passkey's wallet, on a chain whose accounts are\n * configurable, so the wallet that a user signs in with or approves for is configurable. The passkey\n * signs each upgrade in the browser, through `POST /v1/account/upgrade`.\n * @module\n */\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'\nimport { parseResponse } from 'hono/client'\nimport { Authentication } from 'webauthx/client'\nimport type * as Chain from '../../internal/Chain.js'\nimport * as Client from './Client.js'\n\n/** Wraps a failure of the browser's passkey ceremony. */\nexport class CeremonyError extends Error {\n override name = 'Upgrade.CeremonyError'\n}\n\n/**\n * Milliseconds that a page signs an upgrade's passkey step for. The server keeps a step for 5\n * minutes, so a page prepares another before then.\n */\nexport const stepLifetime = 4 * 60 * 1000\n\n/** An upgrade that waits for the user's passkey. */\nexport type Pending = {\n /** The chain whose accounts are configurable, where the upgrade applies. */\n chain: Chain.Chain\n /** The wallet that upgrades. */\n target: Target\n}\n\n/** A wallet that upgrades: the user's linked account, or a passkey of the email that has not linked. */\nexport type Target = { account: `0x${string}` } | { credentialId: string }\n\n/**\n * Returns the upgrade that the approval of a key waits for, after its `upgrade` refusal: `account`,\n * the refused account, on the key's chain. Without `account`, a passkey of the user's email that has\n * not linked waits. Its upgrade links it, on the key's chain when that chain's accounts are\n * configurable, else on the first such chain. A failed read returns none, so the refusal shows.\n */\nexport async function forKey(\n client: Client.Client,\n options: forKey.Options,\n): Promise<Pending | undefined> {\n const { chains } = await parseResponse(client.i.chains.$get()).catch(() => ({\n chains: [],\n }))\n const configurable = chains.filter((entry) => entry.configurable)\n const keyed = configurable.find((entry) => entry.name === options.chain)\n if (options.account)\n return keyed\n ? { chain: keyed.name, target: { account: options.account } }\n : undefined\n\n const chain = keyed ?? configurable[0]\n if (!chain) return undefined\n const { passkeys } = await parseResponse(\n client.i.account.passkeys.$get(),\n ).catch(() => ({ passkeys: [] }))\n const [unlinked] = passkeys\n if (!unlinked) return undefined\n return { chain: chain.name, target: { credentialId: unlinked.credentialId } }\n}\n\nexport declare namespace forKey {\n type Options = {\n /** The account that the key's refusal names. Absent when a passkey of the email has not linked. */\n account?: `0x${string}` | undefined\n /** The name of the key's chain. Absent for a chain that no name lists. */\n chain?: Chain.Chain | undefined\n }\n}\n\n/**\n * Returns the first upgrade that waits for the signed-in user on `chain`, as `GET\n * /i/account/upgrades` lists it: a linked passkey's account that is not configurable there, or, for\n * a user without an account, a passkey of the email that has not linked. A chain whose accounts are\n * not configurable, or a failed read, returns none, so the page continues without the upgrade.\n */\nexport async function pending(\n client: Client.Client,\n options: pending.Options,\n): Promise<Pending | undefined> {\n const { upgrades } = await parseResponse(\n client.i.account.upgrades.$get({ query: { chain: options.chain } }),\n ).catch(() => ({ upgrades: [] }))\n const [first] = upgrades\n if (!first) return undefined\n if ('account' in first)\n return { chain: first.chain, target: { account: first.account } }\n return { chain: first.chain, target: { credentialId: first.credentialId } }\n}\n\nexport declare namespace pending {\n type Options = {\n /** The chain to check, such as the one that the page shows. */\n chain: Chain.Chain\n }\n}\n\n/**\n * Requests the passkey step of `options`' upgrade, and returns its options for\n * `navigator.credentials.get()`.\n */\nexport async function prepare(client: Client.Client, options: Pending) {\n const data = await request(client, options)\n if (!('step' in data))\n throw new Error('The upgrade returned no passkey step.')\n return data.step.options\n}\n\n/**\n * Sends the first request of `options`' upgrade, which returns the passkey step, or the account when\n * the chain already holds the upgrade, which the request then saves.\n */\nfunction request(client: Client.Client, options: Pending) {\n return parseResponse(\n client.v1.account.upgrade.$post({\n json: { ...options.target, chain: options.chain },\n }),\n )\n}\n\n/**\n * Returns the mutation that signs `pending`'s upgrade with the passkey and sends it. The hook\n * prepares the passkey step ahead of the click, since a browser such as Safari spends a click's user\n * activation on a request before the ceremony. `preparing` holds while that first step loads, so the\n * page holds Continue until then. `stale` marks a session that signed in more than 10 minutes\n * before, so no upgrade can run.\n */\nexport function use(options: use.Options) {\n const { pending } = options\n const client = Client.use()\n const queryClient = useQueryClient()\n const queryKey = ['upgrade', pending?.chain, pending?.target]\n const step = useQuery({\n enabled: pending !== undefined,\n queryFn: () => request(client, pending!),\n queryKey,\n refetchInterval: stepLifetime,\n // A hidden tab keeps its step fresh, and a tab that comes back after a stale step prepares\n // another, since the server keeps a step for 5 minutes.\n refetchIntervalInBackground: true,\n refetchOnWindowFocus: true,\n retry: false,\n staleTime: stepLifetime,\n })\n const mutation = useMutation({\n async mutationFn() {\n if (!pending) throw new Error('No upgrade waits.')\n // A step that failed to load, such as for a session older than 10 minutes, loads now, so its\n // refusal shows. So does one older than 4 minutes, which the server may already have expired.\n const state =\n queryClient.getQueryState<Awaited<ReturnType<typeof request>>>(queryKey)\n const prepared =\n state?.data && Date.now() - state.dataUpdatedAt < stepLifetime\n ? state.data\n : await request(client, pending)\n // The chain already held the upgrade, which the request saved, so no passkey signs again.\n if (!('step' in prepared)) return prepared\n\n const assertion = await (async () => {\n try {\n return await Authentication.sign({\n getFn: (request) =>\n navigator.credentials.get(request as CredentialRequestOptions),\n options: prepared.step.options,\n })\n } catch (error) {\n throw new CeremonyError('Passkey ceremony failed.', { cause: error })\n }\n })()\n try {\n return await parseResponse(\n client.v1.account.upgrade.$post({\n json: {\n ...pending.target,\n chain: pending.chain,\n passkey: { assertion },\n },\n }),\n )\n } catch (error) {\n // An account that is configurable already finished its upgrade, such as in another tab, so\n // the page continues as after its own.\n if (Client.reason(error) === 'owner_exists') return undefined\n // The server spends the step's challenge before it sends the upgrade, so a refused or failed\n // upgrade prepares a new step for the next click.\n await step.refetch()\n throw error\n }\n },\n // The mutation stays pending until the callback settles, such as while the page loads again.\n onSuccess: () => options.onSuccess?.(),\n })\n // An upgrade requires a sign-in within the last 10 minutes, which the step's preparation checks.\n const stale = [step.error, mutation.error].some(\n (error) => Client.reason(error) === 'reauthentication_required',\n )\n return {\n ...mutation,\n preparing: pending !== undefined && step.isPending,\n stale,\n }\n}\n\nexport declare namespace use {\n type Options = {\n /** Runs after the upgrade, before the mutation settles. */\n onSuccess?: (() => unknown) | undefined\n /** The upgrade that waits, if any. Absent, the hook prepares nothing. */\n pending: Pending | undefined\n }\n}\n\n/** Returns the message that a failed upgrade shows. */\nexport function message(error: unknown) {\n if (error instanceof CeremonyError)\n return 'Your passkey did not sign the upgrade. Continue to try again.'\n return Client.message(error)\n}\n"],"mappings":"A,2OAaA,IAAaW,EAAb,cAAmC,KAAM,CACvC,KAAgB,uBAClB,EAMaC,EAAe,KAmB5B,eAAsBC,EACpB,EACA,EAC8B,CAC9B,GAAM,CAAE,UAAW,MAAMP,EAAcQ,EAAO,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,WAAa,CAC1E,OAAQ,CAAC,CACX,EAAE,EACIC,EAAeC,EAAO,OAAQ,GAAUC,EAAM,YAAY,EAC1DC,EAAQH,EAAa,KAAM,GAAUE,EAAM,OAASE,EAAQ,KAAK,EACvE,GAAIA,EAAQ,QACV,OAAOD,EACH,CAAE,MAAOA,EAAM,KAAM,OAAQ,CAAE,QAASC,EAAQ,OAAQ,CAAE,EAC1D,IAAA,GAEN,IAAMC,EAAQF,GAASH,EAAa,GACpC,GAAI,CAACK,EAAO,OACZ,GAAM,CAAE,YAAa,MAAMd,EACzBQ,EAAO,EAAE,QAAQ,SAAS,KAAK,CACjC,CAAC,CAAC,WAAa,CAAE,SAAU,CAAC,CAAE,EAAE,EAC1B,CAACO,GAAYC,EACnB,GAAKD,EACL,MAAO,CAAE,MAAOD,EAAM,KAAM,OAAQ,CAAE,aAAcC,EAAS,YAAa,CAAE,CAC9E,CAiBA,eAAsBE,EACpB,EACA,EAC8B,CAC9B,GAAM,CAAE,YAAa,MAAMjB,EACzBQ,EAAO,EAAE,QAAQ,SAAS,KAAK,CAAE,MAAO,CAAE,MAAOK,EAAQ,KAAM,CAAE,CAAC,CACpE,CAAC,CAAC,WAAa,CAAE,SAAU,CAAC,CAAE,EAAE,EAC1B,CAACK,GAASC,EAChB,GAAKD,EAGL,MAFI,YAAaA,EACR,CAAE,MAAOA,EAAM,MAAO,OAAQ,CAAE,QAASA,EAAM,OAAQ,CAAE,EAC3D,CAAE,MAAOA,EAAM,MAAO,OAAQ,CAAE,aAAcA,EAAM,YAAa,CAAE,CAC5E,CAaA,eAAsBE,EAAQ,EAAuB,EAAkB,CACrE,IAAMC,EAAO,MAAMC,EAAQd,EAAQK,CAAO,EAC1C,GAAI,EAAE,SAAUQ,GACd,MAAU,MAAM,uCAAuC,EACzD,OAAOA,EAAK,KAAK,OACnB,CAMA,SAASC,EAAQ,EAAuB,EAAkB,CACxD,OAAOtB,EACLQ,EAAO,GAAG,QAAQ,QAAQ,MAAM,CAC9B,KAAM,CAAE,GAAGK,EAAQ,OAAQ,MAAOA,EAAQ,KAAM,CAClD,CAAC,CACH,CACF,CASA,SAAgBU,EAAI,EAAsB,CACxC,GAAM,CAAE,WAAYV,EACdL,EAASd,EAAW,EACpB8B,EAAcvB,EAAe,EAC7BwB,EAAW,CAAC,UAAWR,GAAS,MAAOA,GAAS,MAAM,EACtDS,EAAOxB,EAAS,CACpB,QAASe,IAAY,IAAA,GACrB,YAAeK,EAAQd,EAAQS,CAAQ,EACvC,WACA,gBAAiBX,EAGjB,4BAA6B,GAC7B,qBAAsB,GACtB,MAAO,GACP,UAAWA,CACb,CAAC,EACKqB,EAAWxB,EAAY,CAC3B,MAAM,YAAa,CACjB,GAAI,CAACc,EAAS,MAAU,MAAM,mBAAmB,EAGjD,IAAMW,EACJJ,EAAY,cAAmDC,CAAQ,EACnEI,EACJD,GAAO,MAAQ,KAAK,IAAI,EAAIA,EAAM,cAAA,KAC9BA,EAAM,KACN,MAAMN,EAAQd,EAAQS,CAAO,EAEnC,GAAI,EAAE,SAAUY,GAAW,OAAOA,EAElC,IAAMC,EAAY,MAAO,SAAY,CACnC,GAAI,CACF,OAAO,MAAMnC,EAAoB,CAC/B,MAAQ,GACN,UAAU,YAAY,IAAI2B,CAAmC,EAC/D,QAASO,EAAS,KAAK,OACzB,CAAC,CACH,OAASE,EAAO,CACd,MAAM,IAAI1B,EAAc,2BAA4B,CAAE,MAAO0B,CAAM,CAAC,CACtE,CACF,EAAA,CAAG,EACH,GAAI,CACF,OAAO,MAAM/B,EACXQ,EAAO,GAAG,QAAQ,QAAQ,MAAM,CAC9B,KAAM,CACJ,GAAGS,EAAQ,OACX,MAAOA,EAAQ,MACf,QAAS,CAAE,WAAU,CACvB,CACF,CAAC,CACH,CACF,OAASc,EAAO,CAGd,GAAInC,EAAcmC,CAAK,IAAM,eAAgB,OAI7C,MADA,MAAML,EAAK,QAAQ,EACbK,CACR,CACF,EAEA,cAAiBlB,EAAQ,YAAY,CACvC,CAAC,EAEKmB,EAAQ,CAACN,EAAK,MAAOC,EAAS,KAAK,CAAC,CAAC,KACxC,GAAU/B,EAAcmC,CAAK,IAAM,2BACtC,EACA,MAAO,CACL,GAAGJ,EACH,UAAWV,IAAY,IAAA,IAAaS,EAAK,UACzC,OACF,CACF,CAYA,SAAgBO,EAAQ,EAAgB,CAGtC,OAFIF,aAAiB1B,EACZ,gEACFR,EAAekC,CAAK,CAC7B,C"}
@@ -0,0 +1 @@
1
+ .z_tempo_2d_id-ccGdat0{border-radius:var(--z-tempo_2d_id-radius-full,9999px)}.z_tempo_2d_id-ccGdat1{font-size:var(--z-tempo_2d_id-fontSize-24,1.5rem)}.z_tempo_2d_id-ccGdat2{height:var(--z-tempo_2d_id-spacing-64,4rem)}.z_tempo_2d_id-ccGdat3{margin-bottom:var(--z-tempo_2d_id-spacing-12,.75rem)}.z_tempo_2d_id-ccGdat4{width:var(--z-tempo_2d_id-spacing-64,4rem)}.z_tempo_2d_id-ccGdat5{max-width:var(--z-tempo_2d_id-spacing-384,24rem)}.z_tempo_2d_id-ccGdat6{width:100%}.z_tempo_2d_id-ccGdat7{color:var(--z-tempo_2d_id-color-gray-900,light-dark(#4d4d4d,#bcbbbb))}.z_tempo_2d_id-ccGdat8{text-wrap:balance}.z_tempo_2d_id-ccGdat9{font-family:var(--z-tempo_2d_id-typography-copy-16-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}.z_tempo_2d_id-ccGdata{font-size:var(--z-tempo_2d_id-typography-copy-16-fontSize,16px)}.z_tempo_2d_id-ccGdatb{font-weight:var(--z-tempo_2d_id-typography-copy-16-fontWeight,450)}.z_tempo_2d_id-ccGdatc{letter-spacing:var(--z-tempo_2d_id-typography-copy-16-letterSpacing,-.18px)}.z_tempo_2d_id-ccGdatd{line-height:var(--z-tempo_2d_id-typography-copy-16-lineHeight,24px)}.z_tempo_2d_id-ccGdate{text-align:center}.z_tempo_2d_id-ccGdatf{clip-path:inset(50%)}.z_tempo_2d_id-ccGdatg{height:var(--z-tempo_2d_id-spacing-1,1px)}.z_tempo_2d_id-ccGdath{overflow:hidden}.z_tempo_2d_id-ccGdati{position:absolute}.z_tempo_2d_id-ccGdatj{white-space:nowrap}.z_tempo_2d_id-ccGdatk{width:var(--z-tempo_2d_id-spacing-1,1px)}.z_tempo_2d_id-ccGdatl{text-wrap:balance}.z_tempo_2d_id-ccGdatm{font-family:var(--z-tempo_2d_id-typography-heading-24-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}.z_tempo_2d_id-ccGdatn{font-size:var(--z-tempo_2d_id-typography-heading-24-fontSize,24px)}.z_tempo_2d_id-ccGdato{font-weight:var(--z-tempo_2d_id-typography-heading-24-fontWeight,600)}.z_tempo_2d_id-ccGdatp{letter-spacing:var(--z-tempo_2d_id-typography-heading-24-letterSpacing,-.47px)}.z_tempo_2d_id-ccGdatq{line-height:var(--z-tempo_2d_id-typography-heading-24-lineHeight,32px)}
@@ -0,0 +1,2 @@
1
+ /* empty css */import{s as e}from"./react-dom-DYzj0HXX.js";import{t}from"./Stack-DGktaLZc.js";import{r as n}from"./zyzz.config-CJRpjn0E.js";import{t as r}from"./Callout-tQoAitWq.js";import{t as i}from"./IconChip-C9ZrmGB5.js";import{t as a}from"./ArrowUp-DpK_zNgZ.js";var o=e();function s(e){let s=e.heading??`h1`;return(0,o.jsxs)(t,{className:c.column?`z_tempo_2d_id-ccGdat5 z_tempo_2d_id-ccGdat6`:c.column().className,gap:`32`,children:[(0,o.jsxs)(t,{className:c.header?`z_tempo_2d_id-ccGdate`:c.header().className,align:`center`,gap:`8`,render:(0,o.jsx)(`header`,{}),children:[(0,o.jsx)(i,{className:c.avatar?`z_tempo_2d_id-ccGdat0 z_tempo_2d_id-ccGdat1 z_tempo_2d_id-ccGdat2 z_tempo_2d_id-ccGdat3 z_tempo_2d_id-ccGdat4`:c.avatar().className,"aria-hidden":!0,children:(0,o.jsx)(a,{})}),(0,o.jsx)(s,{className:c.title?`z_tempo_2d_id-ccGdatl z_tempo_2d_id-ccGdatm z_tempo_2d_id-ccGdatn z_tempo_2d_id-ccGdato z_tempo_2d_id-ccGdatp z_tempo_2d_id-ccGdatq`:c.title().className,children:`Upgrade your wallet`}),(0,o.jsxs)(`p`,{className:c.description?`z_tempo_2d_id-ccGdat7 z_tempo_2d_id-ccGdat8 z_tempo_2d_id-ccGdat9 z_tempo_2d_id-ccGdata z_tempo_2d_id-ccGdatb z_tempo_2d_id-ccGdatc z_tempo_2d_id-ccGdatd`:c.description().className,children:[`Your wallet needs to be upgraded to continue.`,e.onSignIn?` The upgrade needs a sign-in within the last 10 minutes, so sign in again first.`:null]})]}),(0,o.jsxs)(t,{gap:`12`,children:[(0,o.jsx)(n,{disabled:e.skipping,loading:e.upgrading||e.preparing&&!e.onSignIn,onClick:e.onSignIn??e.onContinue,children:e.onSignIn?`Sign in again`:`Continue`}),(0,o.jsx)(n,{disabled:e.upgrading,loading:e.skipping,onClick:e.onSkip,variant:`text`,children:`Not now`}),(0,o.jsx)(`p`,{className:c.status?`z_tempo_2d_id-ccGdatf z_tempo_2d_id-ccGdatg z_tempo_2d_id-ccGdath z_tempo_2d_id-ccGdati z_tempo_2d_id-ccGdatj z_tempo_2d_id-ccGdatk`:c.status().className,"aria-live":`polite`,role:`status`,children:e.upgrading?`Upgrading your wallet.`:void 0})]}),e.error?(0,o.jsxs)(r,{intent:`negative`,children:[(0,o.jsx)(r.Icon,{}),(0,o.jsx)(r.Content,{children:e.error})]}):null]})}var c;(function(e){e.avatar=1,e.column=1,e.description=1,e.header=1,e.status=1,e.title=1})(c||={});export{s as t};
2
+ //# sourceMappingURL=WalletUpgrade-CWKc5fYt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletUpgrade-CWKc5fYt.js","names":["require_jsx_runtime","Button","Callout","IconChip","ArrowUp","import_jsx_runtime","WalletUpgrade","Title","props","Stack","styles"],"sources":["../../../screens/WalletUpgrade.tsx"],"sourcesContent":["/**\n * The upgrade screen: after a sign-in, or before an approval, the user's passkey upgrades their\n * wallet to a configurable wallet, which keeps its address. @module\n */\nimport { Button, Callout, IconChip, Stack } from '@tempoxyz/ds'\nimport { ArrowUp } from '@tempoxyz/ds/icons'\nimport type { ReactNode } from 'react'\nimport { style } from '../zyzz.config.js'\n\n/** The upgrade screen. Continue signs the upgrade with the passkey, and Not now skips it. */\nexport function WalletUpgrade(props: WalletUpgrade.Props): ReactNode {\n const Title = props.heading ?? 'h1'\n return (\n <Stack {...styles.column()} gap=\"32\">\n <Stack {...styles.header()} align=\"center\" gap=\"8\" render={<header />}>\n <IconChip {...styles.avatar()} aria-hidden>\n <ArrowUp />\n </IconChip>\n <Title {...styles.title()}>Upgrade your wallet</Title>\n <p {...styles.description()}>\n Your wallet needs to be upgraded to continue.\n {props.onSignIn\n ? ' The upgrade needs a sign-in within the last 10 minutes, so sign in again first.'\n : null}\n </p>\n </Stack>\n <Stack gap=\"12\">\n <Button\n disabled={props.skipping}\n loading={props.upgrading || (props.preparing && !props.onSignIn)}\n onClick={props.onSignIn ?? props.onContinue}\n >\n {props.onSignIn ? 'Sign in again' : 'Continue'}\n </Button>\n <Button\n disabled={props.upgrading}\n loading={props.skipping}\n onClick={props.onSkip}\n variant=\"text\"\n >\n Not now\n </Button>\n <p {...styles.status()} aria-live=\"polite\" role=\"status\">\n {props.upgrading ? 'Upgrading your wallet.' : undefined}\n </p>\n </Stack>\n {props.error ? (\n <Callout intent=\"negative\">\n <Callout.Icon />\n <Callout.Content>{props.error}</Callout.Content>\n </Callout>\n ) : null}\n </Stack>\n )\n}\n\nexport declare namespace WalletUpgrade {\n type Props = {\n /** Why the upgrade failed. */\n error?: string | undefined\n /** `h1` by default, or `h4` on the flows canvas. */\n heading?: 'h1' | 'h4' | undefined\n /** Signs the upgrade with the passkey. */\n onContinue: () => void\n /**\n * Signs the user out, so the page sends them to sign-in, whose fresh session can upgrade. Present\n * for a session that signed in more than 10 minutes before, in place of Continue.\n */\n onSignIn?: (() => void) | undefined\n /** Continues without the upgrade. */\n onSkip: () => void\n /**\n * Whether the page prepares the passkey step, which holds Continue, since a click before then\n * spends the browser's user activation on a request.\n */\n preparing?: boolean | undefined\n /** Whether the page continues without the upgrade, which holds both buttons. */\n skipping?: boolean | undefined\n /** Whether the upgrade or the sign-out runs, which holds both buttons. */\n upgrading: boolean\n }\n}\n\nnamespace styles {\n // IconChip has no 64 size, so the header chip sets the size of the account screen's avatar.\n export const avatar = style({\n borderRadius: 'full',\n fontSize: '24',\n height: '64',\n marginBottom: '12',\n width: '64',\n })\n\n export const column = style({\n maxWidth: '384',\n width: '100% !custom',\n })\n\n export const description = style({\n color: 'gray.900',\n textWrap: 'balance',\n typography: 'copy.16',\n })\n\n export const header = style({ textAlign: 'center' })\n\n // Screen readers announce the upgrade's progress, which the button shows visually.\n export const status = style({\n clipPath: 'inset(50%)',\n height: '1',\n overflow: 'hidden',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1',\n })\n\n export const title = style({\n textWrap: 'balance',\n typography: 'heading.24',\n })\n}\n"],"mappings":"A,ySAUA,SAAgBM,EAAc,EAAuC,CACnE,IAAMC,EAAQC,EAAM,SAAW,KAC/B,OACE,EAAAH,EAAA,KAAA,CAACI,EAAD,CAAO,UAAAC,EAAA,OAAA,8CAAAA,EAAA,OAAA,CAAA,CAAA,UAAqB,IAAI,KAAhC,SAAA,EACE,EAAAL,EAAA,KAAA,CAACI,EAAD,CAAO,UAAAC,EAAA,OAAA,wBAAAA,EAAA,OAAA,CAAA,CAAA,UAAqB,MAAM,SAAS,IAAI,IAAI,QAAQ,EAAAL,EAAA,IAAA,CAAC,SAAD,CAAS,CAAA,EAApE,SAAA,EACE,EAAAA,EAAA,IAAA,CAACF,EAAD,CAAU,UAAAO,EAAA,OAAA,gHAAAA,EAAA,OAAA,CAAA,CAAA,UAAqB,cAAA,GAC7B,UAAA,EAAAL,EAAA,IAAA,CAACD,EAAD,CAAU,CAAA,CACF,CAAA,GACV,EAAAC,EAAA,IAAA,CAACE,EAAD,CAAO,UAAAG,EAAA,MAAA,sIAAAA,EAAA,MAAA,CAAA,CAAA,UAAoB,SAAA,qBAA0B,CAAA,GACrD,EAAAL,EAAA,KAAA,CAAC,IAAD,CAAG,UAAAK,EAAA,YAAA,4JAAAA,EAAA,YAAA,CAAA,CAAA,UAAH,SAAA,CAA4B,gDAEzBF,EAAM,SACH,mFACA,IACH,C,EACE,C,IACP,EAAAH,EAAA,KAAA,CAACI,EAAD,CAAO,IAAI,KAAX,SAAA,EACE,EAAAJ,EAAA,IAAA,CAACJ,EAAD,CACE,SAAUO,EAAM,SAChB,QAASA,EAAM,WAAcA,EAAM,WAAa,CAACA,EAAM,SACvD,QAASA,EAAM,UAAYA,EAAM,WAEhC,SAAAA,EAAM,SAAW,gBAAkB,UAC9B,CAAA,GACR,EAAAH,EAAA,IAAA,CAACJ,EAAD,CACE,SAAUO,EAAM,UAChB,QAASA,EAAM,SACf,QAASA,EAAM,OACf,QAAQ,OACV,SAAA,SAEQ,CAAA,GACR,EAAAH,EAAA,IAAA,CAAC,IAAD,CAAG,UAAAK,EAAA,OAAA,sIAAAA,EAAA,OAAA,CAAA,CAAA,UAAqB,YAAU,SAAS,KAAK,SAC7C,SAAAF,EAAM,UAAY,yBAA2B,IAAA,EAC7C,CAAA,CACE,C,GACNA,EAAM,OACL,EAAAH,EAAA,KAAA,CAACH,EAAD,CAAS,OAAO,WAAhB,SAAA,EACE,EAAAG,EAAA,IAAA,CAACH,EAAQ,KAAT,CAAe,CAAA,GACf,EAAAG,EAAA,IAAA,CAACH,EAAQ,QAAT,CAAA,SAAkBM,EAAM,KAAuB,CAAA,CACxC,CACP,CAAA,EAAA,IACC,C,EAEX,CA6BA,IAAUE,GAAV,SAAA,EAAA,CAEe,EAAA,OAAS,EAQT,EAAA,OAAS,EAKT,EAAA,YAAc,EAMd,EAAA,OAAS,EAGT,EAAA,OAAS,EAST,EAAA,MAAQ,CAIvB,EAAA,CAAA,AAAAA,IAAA,CAAA,CAAA,E"}
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" viewBox="0 0 200 200">
2
+ <image width="200" height="200" xlink:href="data:img/png;base64,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"/>
3
+ </svg>
@@ -0,0 +1 @@
1
+ .z_tds_2f_web-ctC8Bx0{color:var(--z-tds_2f_web-color-gray-900,light-dark(#4d4d4d,#bcbbbb))}.z_tds_2f_web-ctC8Bx1{padding-bottom:var(--z-tds_2f_web-spacing-16,1rem)}.z_tds_2f_web-ctC8Bx2{font-family:var(--z-tds_2f_web-typography-copy-14-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}.z_tds_2f_web-ctC8Bx3{font-size:var(--z-tds_2f_web-typography-copy-14-fontSize,14px)}.z_tds_2f_web-ctC8Bx4{font-weight:var(--z-tds_2f_web-typography-copy-14-fontWeight,450)}.z_tds_2f_web-ctC8Bx5{letter-spacing:var(--z-tds_2f_web-typography-copy-14-letterSpacing,-.09px)}.z_tds_2f_web-ctC8Bx6{line-height:var(--z-tds_2f_web-typography-copy-14-lineHeight,20px)}.z_tds_2f_web-ctC8Bx7{margin:var(--z-tds_2f_web-spacing-0,0rem)}.z_tds_2f_web-ctC8Bx8{flex-shrink:0}.z_tds_2f_web-ctC8Bx9{height:var(--z-tds_2f_web-spacing-16,1rem)}.z_tds_2f_web-ctC8Bxa{transition-duration:var(--z-tds_2f_web-transitionDuration-240,.24s)}.z_tds_2f_web-ctC8Bxb{transition-property:transform}.z_tds_2f_web-ctC8Bxc{transition-timing-function:var(--z-tds_2f_web-ease-spring,cubic-bezier(.32, .72, 0, 1))}.z_tds_2f_web-ctC8Bxd{width:var(--z-tds_2f_web-spacing-16,1rem)}.z_tds_2f_web-ctC8Bxe{[data-panel-open]>&{transform:rotate(180deg)}}@media (prefers-reduced-motion:reduce){.z_tds_2f_web-ctC8Bxf{transition-property:none}}.z_tds_2f_web-ctC8Bxg{border-bottom:1px solid}.z_tds_2f_web-ctC8Bxh{border-color:var(--z-tds_2f_web-color-grayAlpha-200,light-dark(#00000014,#ffffff1a))}.z_tds_2f_web-ctC8Bxi{height:var(--accordion-panel-height)}.z_tds_2f_web-ctC8Bxj{overflow:hidden}.z_tds_2f_web-ctC8Bxk{transition-duration:var(--z-tds_2f_web-transitionDuration-240,.24s)}.z_tds_2f_web-ctC8Bxl{transition-property:height,opacity}.z_tds_2f_web-ctC8Bxm{&[data-ending-style]{transition-duration:var(--z-tds_2f_web-transitionDuration-180,.18s)}}.z_tds_2f_web-ctC8Bxn{&[data-ending-style],&[data-starting-style]{height:var(--z-tds_2f_web-spacing-0,0rem)}}.z_tds_2f_web-ctC8Bxo{&[data-ending-style],&[data-starting-style]{opacity:0}}@media (prefers-reduced-motion:reduce){.z_tds_2f_web-ctC8Bxp{transition-property:opacity}}.z_tds_2f_web-ctC8Bxq{display:flex}.z_tds_2f_web-ctC8Bxr{flex-direction:column}.z_tds_2f_web-ctC8Bxs{width:100%}.z_tds_2f_web-ctC8Bxt{&:where([data-size=large]){& [data-accordion-trigger]{min-height:var(--z-tds_2f_web-spacing-56,3.5rem)}}}.z_tds_2f_web-ctC8Bxu{&:where([data-size=large]){& [data-accordion-trigger]{padding-block:var(--z-tds_2f_web-spacing-12,.75rem)}}}.z_tds_2f_web-ctC8Bxv{&:where([data-size=large]){& [data-accordion-trigger]{font-family:var(--z-tds_2f_web-typography-button-16-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}}}.z_tds_2f_web-ctC8Bxw{&:where([data-size=large]){& [data-accordion-trigger]{font-size:var(--z-tds_2f_web-typography-button-16-fontSize,16px)}}}.z_tds_2f_web-ctC8Bxx{&:where([data-size=large]){& [data-accordion-trigger]{font-weight:var(--z-tds_2f_web-typography-button-16-fontWeight,500)}}}.z_tds_2f_web-ctC8Bxy{&:where([data-size=large]){& [data-accordion-trigger]{letter-spacing:var(--z-tds_2f_web-typography-button-16-letterSpacing,-.18px)}}}.z_tds_2f_web-ctC8Bxz{&:where([data-size=large]){& [data-accordion-trigger]{line-height:var(--z-tds_2f_web-typography-button-16-lineHeight,20px)}}}.z_tds_2f_web-ctC8Bx10{&:where([data-size=small]){& [data-accordion-trigger]{min-height:var(--z-tds_2f_web-spacing-32,2rem)}}}.z_tds_2f_web-ctC8Bx11{&:where([data-size=small]){& [data-accordion-trigger]{padding-block:var(--z-tds_2f_web-spacing-4,.25rem)}}}.z_tds_2f_web-ctC8Bx12{&:where([data-size=small]){& [data-accordion-trigger]{font-family:var(--z-tds_2f_web-typography-button-12-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}}}.z_tds_2f_web-ctC8Bx13{&:where([data-size=small]){& [data-accordion-trigger]{font-size:var(--z-tds_2f_web-typography-button-12-fontSize,12px)}}}.z_tds_2f_web-ctC8Bx14{&:where([data-size=small]){& [data-accordion-trigger]{font-weight:var(--z-tds_2f_web-typography-button-12-fontWeight,500)}}}.z_tds_2f_web-ctC8Bx15{&:where([data-size=small]){& [data-accordion-trigger]{letter-spacing:var(--z-tds_2f_web-typography-button-12-letterSpacing,.01px)}}}.z_tds_2f_web-ctC8Bx16{&:where([data-size=small]){& [data-accordion-trigger]{line-height:var(--z-tds_2f_web-typography-button-12-lineHeight,16px)}}}.z_tds_2f_web-ctC8Bx17{align-items:center}.z_tds_2f_web-ctC8Bx18{background-color:#0000}.z_tds_2f_web-ctC8Bx19{border:none}.z_tds_2f_web-ctC8Bx1a{border-radius:var(--z-tds_2f_web-radius-8,.5rem)}.z_tds_2f_web-ctC8Bx1b{box-sizing:border-box}.z_tds_2f_web-ctC8Bx1c{color:var(--z-tds_2f_web-color-foreground,light-dark(#171717,#fff))}.z_tds_2f_web-ctC8Bx1d{column-gap:var(--z-tds_2f_web-spacing-16,1rem)}.z_tds_2f_web-ctC8Bx1e{cursor:pointer}.z_tds_2f_web-ctC8Bx1f{justify-content:space-between}.z_tds_2f_web-ctC8Bx1g{min-height:var(--z-tds_2f_web-spacing-40,2.5rem)}.z_tds_2f_web-ctC8Bx1h{outline-color:#0000}.z_tds_2f_web-ctC8Bx1i{outline-offset:var(--z-tds_2f_web-outlineOffset-0,0px)}.z_tds_2f_web-ctC8Bx1j{outline-style:solid}.z_tds_2f_web-ctC8Bx1k{outline-width:var(--z-tds_2f_web-outlineWidth-2,2px)}.z_tds_2f_web-ctC8Bx1l{padding-block:var(--z-tds_2f_web-spacing-8,.5rem)}.z_tds_2f_web-ctC8Bx1m{padding-inline:var(--z-tds_2f_web-spacing-0,0rem)}.z_tds_2f_web-ctC8Bx1n{text-align:start}.z_tds_2f_web-ctC8Bx1o{transition-duration:var(--z-tds_2f_web-transitionDuration-160,.16s)}.z_tds_2f_web-ctC8Bx1p{transition-property:opacity,outline-color,outline-offset}.z_tds_2f_web-ctC8Bx1q{transition-timing-function:var(--z-tds_2f_web-ease-snappy,cubic-bezier(.23, 1, .32, 1))}.z_tds_2f_web-ctC8Bx1r{font-family:var(--z-tds_2f_web-typography-button-14-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}.z_tds_2f_web-ctC8Bx1s{font-size:var(--z-tds_2f_web-typography-button-14-fontSize,14px)}.z_tds_2f_web-ctC8Bx1t{font-weight:var(--z-tds_2f_web-typography-button-14-fontWeight,500)}.z_tds_2f_web-ctC8Bx1u{letter-spacing:var(--z-tds_2f_web-typography-button-14-letterSpacing,-.09px)}.z_tds_2f_web-ctC8Bx1v{line-height:var(--z-tds_2f_web-typography-button-14-lineHeight,20px)}.z_tds_2f_web-ctC8Bx1w{&:focus-visible{outline-color:var(--z-tds_2f_web-color-blue-700,#4471ed)}}.z_tds_2f_web-ctC8Bx1x{&:focus-visible{outline-offset:var(--z-tds_2f_web-outlineOffset-2,2px)}}.z_tds_2f_web-ctC8Bx1y{&[data-disabled]{cursor:default}}.z_tds_2f_web-ctC8Bx1z{&[data-disabled]{opacity:var(--z-tds_2f_web-opacity-disabled,.4)}}@media (prefers-reduced-motion:reduce){.z_tds_2f_web-ctC8Bx20{transition-property:opacity,outline-color}}
@@ -0,0 +1,6 @@
1
+ import{a as e}from"./rolldown-runtime-BWaJ3C7D.js";/* empty css */import{E as t,s as n}from"./react-dom-DYzj0HXX.js";import{o as r}from"./Stack-DGktaLZc.js";import{$ as i,A as a,Ct as o,It as s,O as c,Rt as l,Sn as u,Z as d,_ as f,d as p,et as ee,g as m,h as te,ht as ne,l as h,nn as g,nt as _,r as v,t as y,vn as b,xt as x,yn as re}from"./zyzz.config-CJRpjn0E.js";import{A as S,H as ie,o as ae,t as C}from"./Tooltip-DLX41peb.js";import{n as oe,t as w}from"./Deposit-ChYGRfW2.js";import{c as T,l as se,u as E}from"./useRegisterFieldControl-cJesrOWK.js";import{t as ce}from"./CodeInput-FsPzVuLU.js";import{t as D}from"./SignIn-DfeeLEmN.js";import{t as O}from"./Account-G_SUeRU3.js";import{t as le}from"./ChevronRight-DTBnw-W6.js";import{t as k}from"./DeviceApproval-Bqe3Mi78.js";import{t as ue}from"./_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-CKALi9oD.js";import{t as A}from"./ChooseAccount-BizJvMrY.js";import{n as j,t as M}from"./Approval-DvkB9tWA.js";import{t as N}from"./WalletUpgrade-CWKc5fYt.js";var P=e(t(),1),de=P.createContext(void 0);function fe(){let e=P.useContext(de);if(e===void 0)throw Error(f(10));return e}var F=n(),pe={value:()=>null},me=P.forwardRef(function(e,t){let{render:n,className:r,disabled:a=!1,hiddenUntilFound:o,keepMounted:s,loopFocus:l,onValueChange:d,multiple:f=!1,orientation:p=`vertical`,value:ee,defaultValue:m,style:te,...ne}=e,h=m??u,g=P.useRef([]),[_,v]=E({controlled:ee,default:h,name:`Accordion`,state:`value`}),y=i((e,t,n)=>{let r;r=f?t?[..._,e]:_.filter(t=>t!==e):_[0]===e?[]:[e],d?.(r,n),!n.isCanceled&&v(r)}),b=P.useMemo(()=>({value:_,disabled:a,orientation:p}),[_,a,p]),x=P.useMemo(()=>({disabled:a,handleValueChange:y,hiddenUntilFound:o??!1,keepMounted:s??!1,state:b,value:_}),[a,y,o,s,b,_]),re=c(`div`,e,{state:b,ref:t,props:ne,stateAttributesMapping:pe});return(0,F.jsx)(de.Provider,{value:x,children:(0,F.jsx)(se,{elementsRef:g,children:re})})});function he(e){let{open:t,defaultOpen:n=!1,onOpenChange:r,disabled:a}=e,[s,c]=E({controlled:t,default:n,name:`Collapsible`,state:`open`}),{mounted:l,setMounted:u,transitionStatus:d}=S(s,!0,!0),f=ae(),[p,ee]=P.useState(),m=p===null?void 0:p??f,te=i(e=>{let t=!s,n=o(x,e.nativeEvent);r(t,n),!n.isCanceled&&c(t)});return P.useMemo(()=>({defaultPanelId:f,disabled:a,handleTrigger:te,mounted:l,open:s,panelId:m,setMounted:u,setOpen:c,setPanelIdState:ee,transitionStatus:d}),[f,a,te,l,s,m,u,c,ee,d])}var ge=P.createContext(void 0);function _e(){let e=P.useContext(ge);if(e===void 0)throw Error(f(15));return e}var ve=P.createContext(void 0);function ye(){let e=P.useContext(ve);if(e===void 0)throw Error(f(9));return e}var be=`data-open`,xe=`data-closed`,Se=l,Ce=`data-panel-open`,we={[be]:``},Te={[xe]:``},Ee={open(e){return e?{[Ce]:``}:null}},De={open(e){return e?we:Te}},Oe=`data-index`,ke={...De,index:e=>({[Oe]:String(e)}),...s,value:()=>null},Ae=P.forwardRef(function(e,t){let{className:n,disabled:r=!1,onOpenChange:a,render:o,value:s,style:l,...u}=e,{ref:d,index:f}=T(),{disabled:p,handleValueChange:ee,state:m,value:te}=fe(),ne=ae(),h=s??ne,g=r||p,_=te.includes(h),v=i((e,t)=>{a?.(e,t),!t.isCanceled&&ee(h,e,t)}),y=he({open:_,onOpenChange:v,disabled:g}),b=P.useMemo(()=>({...y,onOpenChange:v,state:{open:y.open,disabled:y.disabled,transitionStatus:y.transitionStatus}}),[y,v]),x=P.useMemo(()=>({...m,hidden:!_&&!y.mounted,index:f,disabled:g,open:_}),[y.mounted,g,f,_,m]),re=ae(),[S,ie]=P.useState(),C=S===null?void 0:S??re,oe=P.useMemo(()=>({defaultTriggerId:re,open:_,state:x,setTriggerId:ie,triggerId:C}),[re,_,x,ie,C]),w=c(`div`,e,{state:x,ref:[t,d],props:u,stateAttributesMapping:ke});return(0,F.jsx)(ge.Provider,{value:b,children:(0,F.jsx)(ve.Provider,{value:oe,children:w})})}),je=P.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{state:o}=ye();return c(`h3`,e,{state:o,ref:t,props:a,stateAttributesMapping:ke})}),Me={...ke,...Ee},Ne=P.forwardRef(function(e,t){let{disabled:n,className:r,id:i,render:a,nativeButton:o=!0,style:s,...l}=e,{panelId:u,open:d,handleTrigger:f,disabled:ee}=_e(),{getButtonProps:m,buttonRef:te}=p({disabled:n||ee,native:o}),{defaultTriggerId:ne,state:h,setTriggerId:g}=ye(),_=i||void 0,v=_??ne;return b(()=>(g(e=>_??(e===null?void 0:e)),()=>{g(e=>e===_?null:e)}),[_,g]),c(`button`,e,{state:h,ref:[t,te],props:[{"aria-controls":d?u:void 0,"aria-expanded":d,id:v,onClick:f},l,m],stateAttributesMapping:Me})}),Pe={height:void 0,width:void 0};function Fe(e){let{externalRef:t,hiddenUntilFound:n,id:r,keepMounted:a,mounted:s,onOpenChange:c,open:l,setMounted:u,setOpen:f,transitionStatus:p}=e,h=P.useRef(null),g=P.useRef(null),[v,y]=P.useState(Pe),x=P.useRef(Pe),S=P.useRef(!1),ae=P.useRef(l),C=P.useRef(!1),[oe,w]=P.useState(!1),T=P.useRef(null),se=ee(t,h),E=ie(l),ce=m(h),D=!l&&!s,O=oe?`idle`:p,le=l&&(ae.current||C.current),k=!l&&s&&g.current===`css-animation`&&v.height===void 0&&v.width===void 0?x.current:v,ue=n&&D&&g.current!==`css-animation`,A=i((e,t=!0)=>{t&&(x.current=e),y(e)}),j=i(()=>{T.current?.(),T.current=null}),M=i(e=>{j(),T.current=()=>{T.current=null,e()}}),N=i(()=>{l&&s&&g.current===`css-animation`&&(C.current=!0)});b(()=>{oe&&p!==`starting`&&w(!1)},[oe,p]),P.useEffect(()=>()=>{N(),j()},[N,j]),b(()=>{l||(ae.current=!1,C.current=!1);let e=h.current;if(!e)return;!l&&T.current&&j();let t=Le(e,le);if(g.current=t,l&&p===`idle`&&ae.current&&t===`css-animation`){x.current=Ie(e);return}if(l&&p===`starting`){let n=S.current;if(S.current=!1,t===`none`){A(Ie(e)),w(!0);return}if(t===`css-transition`){let t=Be(e);if(A(Ie(e)),!n)return t;let r=ze(e,`transition-duration`,`0s`);return M(r),w(!0),t}A(Ie(e));let r=ze(e,`animation-name`,`none`);if(!n){r();return}let i=ze(e,`animation-duration`,`0s`);r(),M(i),w(!0);return}if(!l&&s&&(p===`idle`||p===`starting`)){if(t===`none`){A(Pe,!1),u(!1);return}A(Ie(e));return}if(p!==`ending`)return;if(t===`none`){u(!1);return}let n=Ie(e);n.height>0||n.width>0?(A(n),t===`css-animation`&&ze(e,`animation-name`,`none`)()):u(!1)},[s,l,j,A,u,M,le,p]),te({enabled:l&&s&&O===`idle`,open:!0,ref:h,onComplete(){l&&A(Pe,!1)}}),P.useEffect(()=>{if(l||!s||O!==`ending`)return;if(!h.current){u(!1),A(Pe,!1);return}let e=new AbortController,t=-1;function n(){E.current||(u(!1),A(Pe,!1))}return t=d.request(()=>{ce(n,e.signal)}),()=>{d.cancel(t),e.abort()}},[E,s,l,O,ce,A,u]),b(()=>{let e=h.current;e&&n&&D&&e.setAttribute(`hidden`,`until-found`)},[D,n]),P.useEffect(function(){let e=h.current;if(!e)return;let t=re.create(),n=-1,r=(r,i)=>{t.start(0,()=>{E.current||(n=d.request(()=>{E.current||(r&&(S.current=!1),i&&e.setAttribute(Se,``),e.setAttribute(`hidden`,`until-found`))}))})},i=_(e,`beforematch`,t=>{let n=o(ne,t);if(c(!0,n),n.isCanceled){r(!1,!1);return}S.current=!0;let i=e.hasAttribute(Se);e.removeAttribute(Se),f(!0),r(!0,i)});return()=>{t.clear(),d.cancel(n),i()}},[E,c,f]);let de=a||n||s||l;return{height:k.height,props:{...ue?{[Se]:``}:void 0,hidden:D,id:r},ref:se,shouldPreventOpenAnimation:le,shouldRender:de,transitionStatus:O,width:k.width}}function Ie(e){return{height:e.scrollHeight,width:e.scrollWidth}}function Le(e,t){let n=g(e).getComputedStyle(e),r=(n.animationName.split(`,`).map(e=>e.trim()).some(e=>e!==``&&e!==`none`)||t)&&Re(n.animationDuration),i=Re(n.transitionDuration);return r&&i||i?`css-transition`:r?`css-animation`:`none`}function Re(e){return e.split(`,`).map(e=>e.trim()).some(e=>e!==``&&Number.parseFloat(e)>0)}function ze(e,t,n){let r=e.style.getPropertyValue(t),i=e.style.getPropertyPriority(t);return e.style.setProperty(t,n),()=>{r===``?e.style.removeProperty(t):e.style.setProperty(t,r,i)}}function Be(e){let t={"justify-content":e.style.justifyContent,"align-items":e.style.alignItems,"align-content":e.style.alignContent,"justify-items":e.style.justifyItems};Object.keys(t).forEach(t=>{e.style.setProperty(t,`initial`,`important`)});function n(){Object.entries(t).forEach(([t,n])=>{n===``?e.style.removeProperty(t):e.style.setProperty(t,n)})}let r=d.request(n);return()=>{d.cancel(r),n()}}var Ve=`--accordion-panel-height`,He=`--accordion-panel-width`,Ue=P.forwardRef(function(e,t){let{className:n,hiddenUntilFound:r,keepMounted:i,id:o,render:s,style:l,...u}=e,{hiddenUntilFound:d,keepMounted:f}=fe(),{defaultPanelId:p,mounted:ee,onOpenChange:m,open:te,setMounted:ne,setOpen:h,setPanelIdState:g,transitionStatus:_}=_e(),v=r??d,y=i??f,x=o||void 0,re=o??p;b(()=>(g(e=>x??(e===null?void 0:e)),()=>{g(e=>e===x?null:e)}),[x,g]);let{height:S,props:ie,ref:ae,shouldPreventOpenAnimation:C,shouldRender:oe,transitionStatus:w,width:T}=Fe({externalRef:t,hiddenUntilFound:v,id:re,keepMounted:y,mounted:ee,onOpenChange:m,open:te,setMounted:ne,setOpen:h,transitionStatus:_}),{state:se,triggerId:E}=ye(),ce={...se,transitionStatus:w},D=a(l,ce),O=c(`div`,{...e,style:void 0},{state:ce,ref:ae,props:[ie,{"aria-labelledby":E,role:`region`,style:{[Ve]:S===void 0?`auto`:`${S}px`,[He]:T===void 0?`auto`:`${T}px`}},u,D?{style:D}:void 0,C?{style:{animationName:`none`}}:void 0],stateAttributesMapping:ke});return oe?O:null}),We;(function(e){function t(e){let{className:t,vars:n,...r}=e;return(0,F.jsx)(Ae,{...r,...I.item({className:t,style:e.style,vars:n})})}e.Item=t;function n(e){let{children:t,className:n,vars:r,...i}=e;return(0,F.jsx)(Ue,{...i,...I.panel({className:n,style:e.style,vars:r}),children:(0,F.jsx)(`div`,{...I.content(),children:t})})}e.Panel=n;function r(e){let{className:t,size:n,vars:r,...i}=e;return(0,F.jsx)(me,{...i,...I.root({className:t,size:n,style:e.style,vars:r})})}e.Root=r;function i(e){let{children:t,className:n,vars:r,...i}=e;return(0,F.jsx)(je,{...I.header(),children:(0,F.jsxs)(Ne,{...i,"data-accordion-trigger":``,...I.trigger({className:n,style:e.style,vars:r}),children:[t,(0,F.jsx)(oe,{...I.icon()})]})})}e.Trigger=i})(We||={});var I;(function(e){e.content=h({className:`z_tds_2f_web-ctC8Bx0 z_tds_2f_web-ctC8Bx1 z_tds_2f_web-ctC8Bx2 z_tds_2f_web-ctC8Bx3 z_tds_2f_web-ctC8Bx4 z_tds_2f_web-ctC8Bx5 z_tds_2f_web-ctC8Bx6`}),e.header=h({className:`z_tds_2f_web-ctC8Bx7`}),e.icon=h({className:`z_tds_2f_web-ctC8Bx8 z_tds_2f_web-ctC8Bx9 z_tds_2f_web-ctC8Bxa z_tds_2f_web-ctC8Bxb z_tds_2f_web-ctC8Bxc z_tds_2f_web-ctC8Bxd z_tds_2f_web-ctC8Bxe z_tds_2f_web-ctC8Bxf`}),e.item=((e={})=>{let t=e.className,n=e.style,r=e.vars,i=r?{...r,...n}:n,a=t?`z_tds_2f_web-ctC8Bxg z_tds_2f_web-ctC8Bxh `+t:`z_tds_2f_web-ctC8Bxg z_tds_2f_web-ctC8Bxh`;return i?{className:a,style:i}:{className:a}}),e.panel=((e={})=>{let t=e.className,n=e.style,r=e.vars,i=r?{...r,...n}:n,a=t?`z_tds_2f_web-ctC8Bxi z_tds_2f_web-ctC8Bxj z_tds_2f_web-ctC8Bxk z_tds_2f_web-ctC8Bxl z_tds_2f_web-ctC8Bxc z_tds_2f_web-ctC8Bxm z_tds_2f_web-ctC8Bxn z_tds_2f_web-ctC8Bxo z_tds_2f_web-ctC8Bxp `+t:`z_tds_2f_web-ctC8Bxi z_tds_2f_web-ctC8Bxj z_tds_2f_web-ctC8Bxk z_tds_2f_web-ctC8Bxl z_tds_2f_web-ctC8Bxc z_tds_2f_web-ctC8Bxm z_tds_2f_web-ctC8Bxn z_tds_2f_web-ctC8Bxo z_tds_2f_web-ctC8Bxp`;return i?{className:a,style:i}:{className:a}}),e.root=((e={})=>{let t=e.className,n=e.style,r=e.vars,i=r?{...r,...n}:n,a=t?`z_tds_2f_web-ctC8Bxq z_tds_2f_web-ctC8Bxr z_tds_2f_web-ctC8Bxs z_tds_2f_web-ctC8Bxt z_tds_2f_web-ctC8Bxu z_tds_2f_web-ctC8Bxv z_tds_2f_web-ctC8Bxw z_tds_2f_web-ctC8Bxx z_tds_2f_web-ctC8Bxy z_tds_2f_web-ctC8Bxz z_tds_2f_web-ctC8Bx10 z_tds_2f_web-ctC8Bx11 z_tds_2f_web-ctC8Bx12 z_tds_2f_web-ctC8Bx13 z_tds_2f_web-ctC8Bx14 z_tds_2f_web-ctC8Bx15 z_tds_2f_web-ctC8Bx16 `+t:`z_tds_2f_web-ctC8Bxq z_tds_2f_web-ctC8Bxr z_tds_2f_web-ctC8Bxs z_tds_2f_web-ctC8Bxt z_tds_2f_web-ctC8Bxu z_tds_2f_web-ctC8Bxv z_tds_2f_web-ctC8Bxw z_tds_2f_web-ctC8Bxx z_tds_2f_web-ctC8Bxy z_tds_2f_web-ctC8Bxz z_tds_2f_web-ctC8Bx10 z_tds_2f_web-ctC8Bx11 z_tds_2f_web-ctC8Bx12 z_tds_2f_web-ctC8Bx13 z_tds_2f_web-ctC8Bx14 z_tds_2f_web-ctC8Bx15 z_tds_2f_web-ctC8Bx16`,o=i?{className:a,style:i}:{className:a},s;return s=Object.hasOwn(e,`size`)?e.size:void 0,s===void 0&&(s=`medium`),s!=null&&(o[`data-size`]=String(s)),o}),e.trigger=((e={})=>{let t=e.className,n=e.style,r=e.vars,i=r?{...r,...n}:n,a=t?`z_tds_2f_web-ctC8Bx17 z_tds_2f_web-ctC8Bx18 z_tds_2f_web-ctC8Bx19 z_tds_2f_web-ctC8Bx1a z_tds_2f_web-ctC8Bx1b z_tds_2f_web-ctC8Bx1c z_tds_2f_web-ctC8Bx1d z_tds_2f_web-ctC8Bx1e z_tds_2f_web-ctC8Bxq z_tds_2f_web-ctC8Bx1f z_tds_2f_web-ctC8Bx1g z_tds_2f_web-ctC8Bx1h z_tds_2f_web-ctC8Bx1i z_tds_2f_web-ctC8Bx1j z_tds_2f_web-ctC8Bx1k z_tds_2f_web-ctC8Bx1l z_tds_2f_web-ctC8Bx1m z_tds_2f_web-ctC8Bx1n z_tds_2f_web-ctC8Bx1o z_tds_2f_web-ctC8Bx1p z_tds_2f_web-ctC8Bx1q z_tds_2f_web-ctC8Bx1r z_tds_2f_web-ctC8Bx1s z_tds_2f_web-ctC8Bx1t z_tds_2f_web-ctC8Bx1u z_tds_2f_web-ctC8Bx1v z_tds_2f_web-ctC8Bxs z_tds_2f_web-ctC8Bx1w z_tds_2f_web-ctC8Bx1x z_tds_2f_web-ctC8Bx1y z_tds_2f_web-ctC8Bx1z z_tds_2f_web-ctC8Bx20 `+t:`z_tds_2f_web-ctC8Bx17 z_tds_2f_web-ctC8Bx18 z_tds_2f_web-ctC8Bx19 z_tds_2f_web-ctC8Bx1a z_tds_2f_web-ctC8Bx1b z_tds_2f_web-ctC8Bx1c z_tds_2f_web-ctC8Bx1d z_tds_2f_web-ctC8Bx1e z_tds_2f_web-ctC8Bxq z_tds_2f_web-ctC8Bx1f z_tds_2f_web-ctC8Bx1g z_tds_2f_web-ctC8Bx1h z_tds_2f_web-ctC8Bx1i z_tds_2f_web-ctC8Bx1j z_tds_2f_web-ctC8Bx1k z_tds_2f_web-ctC8Bx1l z_tds_2f_web-ctC8Bx1m z_tds_2f_web-ctC8Bx1n z_tds_2f_web-ctC8Bx1o z_tds_2f_web-ctC8Bx1p z_tds_2f_web-ctC8Bx1q z_tds_2f_web-ctC8Bx1r z_tds_2f_web-ctC8Bx1s z_tds_2f_web-ctC8Bx1t z_tds_2f_web-ctC8Bx1u z_tds_2f_web-ctC8Bx1v z_tds_2f_web-ctC8Bxs z_tds_2f_web-ctC8Bx1w z_tds_2f_web-ctC8Bx1x z_tds_2f_web-ctC8Bx1y z_tds_2f_web-ctC8Bx1z z_tds_2f_web-ctC8Bx20`;return i?{className:a,style:i}:{className:a}})})(I||={});function Ge(e){return(0,F.jsxs)(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":e[`aria-label`]||e[`aria-labelledby`]?void 0:!0,role:e[`aria-label`]||e[`aria-labelledby`]?`img`:void 0,...e,children:[(0,F.jsx)(`path`,{d:`M7.33398 4.66699C7.6099 4.66726 7.83398 4.89101 7.83398 5.16699V6.83398H9.5C9.77592 6.83425 10 7.05801 10 7.33398C9.99974 7.60974 9.77576 7.83372 9.5 7.83398H7.83398V9.5C7.83372 9.77576 7.60974 9.99974 7.33398 10C7.058 10 6.83425 9.77592 6.83398 9.5V7.83398H5.16699C4.89101 7.83398 4.66726 7.6099 4.66699 7.33398C4.66699 7.05784 4.89085 6.83398 5.16699 6.83398H6.83398V5.16699C6.83398 4.89085 7.05784 4.66699 7.33398 4.66699Z`,fill:`currentColor`}),(0,F.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M7.33301 2C10.2784 2 12.6668 4.38764 12.667 7.33301C12.667 8.62549 12.2052 9.81051 11.4404 10.7334L13.6865 12.9795C13.8818 13.1748 13.8818 13.4913 13.6865 13.6865C13.4913 13.8818 13.1748 13.8818 12.9795 13.6865L10.7334 11.4404C9.81051 12.2052 8.62549 12.667 7.33301 12.667C4.38764 12.6668 2 10.2784 2 7.33301C2.00018 4.38775 4.38775 2.00018 7.33301 2ZM7.33301 3C4.94003 3.00018 3.00018 4.94003 3 7.33301C3 9.72613 4.93992 11.6668 7.33301 11.667C8.52976 11.667 9.61273 11.1822 10.3975 10.3975C11.1822 9.61273 11.667 8.52976 11.667 7.33301C11.6668 4.93992 9.72613 3 7.33301 3Z`,fill:`currentColor`})]})}function Ke(e){return(0,F.jsxs)(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":e[`aria-label`]||e[`aria-labelledby`]?void 0:!0,role:e[`aria-label`]||e[`aria-labelledby`]?`img`:void 0,...e,children:[(0,F.jsx)(`path`,{d:`M9.5 6.83398C9.77592 6.83425 10 7.05801 10 7.33398C9.99974 7.60974 9.77576 7.83372 9.5 7.83398H5.16699C4.89101 7.83398 4.66726 7.6099 4.66699 7.33398C4.66699 7.05784 4.89085 6.83398 5.16699 6.83398H9.5Z`,fill:`currentColor`}),(0,F.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M7.33301 2C10.2784 2 12.6668 4.38764 12.667 7.33301C12.667 8.62549 12.2052 9.81051 11.4404 10.7334L13.6865 12.9795C13.8818 13.1748 13.8818 13.4913 13.6865 13.6865C13.4913 13.8818 13.1748 13.8818 12.9795 13.6865L10.7334 11.4404C9.81051 12.2052 8.62549 12.667 7.33301 12.667C4.38764 12.6668 2 10.2784 2 7.33301C2.00018 4.38775 4.38775 2.00018 7.33301 2ZM7.33301 3C4.94003 3.00018 3.00018 4.94003 3 7.33301C3 9.72613 4.93992 11.6668 7.33301 11.667C8.52976 11.667 9.61273 11.1822 10.3975 10.3975C11.1822 9.61273 11.667 8.52976 11.667 7.33301C11.6668 4.93992 9.72613 3 7.33301 3Z`,fill:`currentColor`})]})}var L={max:2,min:.25,step:1.25};function qe(){let e=(0,P.useMemo)(xt,[]),[t,n]=(0,P.useState)(1),r=(0,P.useRef)(1),i=(0,P.useRef)(void 0),a=(0,P.useRef)(null),o=(0,P.useRef)(null),s=()=>a.current?a.current.getBoundingClientRect().top+Number.parseFloat(getComputedStyle(a.current).paddingTop)+window.scrollY:window.scrollY,c=(0,P.useCallback)(()=>(o.current?.getBoundingClientRect().height??100)/100,[]),l=(e,t)=>{let a=Math.min(L.max,Math.max(L.min,e));if(a===r.current)return;let o=t??{x:window.innerWidth/2,y:window.innerHeight/2};i.current={canvas:i.current?.canvas??{x:(window.scrollX+o.x)/r.current,y:(window.scrollY+o.y-s())/r.current},viewport:o},r.current=a,n(a)};(0,P.useLayoutEffect)(()=>{let e=i.current;e&&(i.current=void 0,window.scrollTo(e.canvas.x*t-e.viewport.x,e.canvas.y*t+s()-e.viewport.y))},[t]),(0,P.useEffect)(()=>{let e=e=>{if(!e.ctrlKey&&!e.metaKey)return;e.preventDefault();let t=e.deltaMode===WheelEvent.DOM_DELTA_LINE?e.deltaY*16:e.deltaMode===WheelEvent.DOM_DELTA_PAGE?e.deltaY*window.innerHeight:e.deltaY,n=Math.min(50,Math.max(-50,t));l(r.current*Math.exp(-n/200),{x:e.clientX,y:e.clientY})},t=1,n=e=>{e.preventDefault(),t=r.current},i=e=>{e.preventDefault();let n=e;l(t*n.scale,typeof n.clientX==`number`&&typeof n.clientY==`number`?{x:n.clientX,y:n.clientY}:void 0)},a=e=>{if(!(e.altKey||e.ctrlKey||e.metaKey)&&!(e.target instanceof HTMLElement&&(e.target.isContentEditable||e.target.closest(`input, select, textarea`)))){if(e.key===`+`||e.key===`=`)l(r.current*L.step);else if(e.key===`-`)l(r.current/L.step);else if(e.key===`0`)l(1);else return;e.preventDefault()}};return window.addEventListener(`wheel`,e,{passive:!1}),window.addEventListener(`gesturestart`,n),window.addEventListener(`gesturechange`,i),window.addEventListener(`keydown`,a),()=>{window.removeEventListener(`wheel`,e),window.removeEventListener(`gesturestart`,n),window.removeEventListener(`gesturechange`,i),window.removeEventListener(`keydown`,a)}},[]),(0,P.useEffect)(()=>{window.location.hash&&Qe({id:window.location.hash.slice(1)})},[]);let u=(0,P.useMemo)(()=>(0,F.jsx)(Je,{sections:e,unit:c}),[e,c]),d=Math.round(t*100);return(0,F.jsxs)(`main`,{ref:a,className:$.canvas?`z_tempo_2d_id-cvNCQ91d z_tempo_2d_id-cvNCQ91x z_tempo_2d_id-cvNCQ91y z_tempo_2d_id-cvNCQ91z z_tempo_2d_id-cvNCQ920 z_tempo_2d_id-cvNCQ921`:$.canvas().className,children:[(0,F.jsxs)(`div`,{className:$.panels?`z_tempo_2d_id-cvNCQ94e z_tempo_2d_id-cvNCQ9z z_tempo_2d_id-cvNCQ94f z_tempo_2d_id-cvNCQ91b z_tempo_2d_id-cvNCQ94g z_tempo_2d_id-cvNCQ94h z_tempo_2d_id-cvNCQ94i z_tempo_2d_id-cvNCQ94j`:$.panels().className,children:[(0,F.jsxs)(`div`,{"aria-label":`Zoom`,role:`toolbar`,className:$.zoom?`z_tempo_2d_id-cvNCQ9y z_tempo_2d_id-nr-Vm714 z_tempo_2d_id-cvNCQ94y z_tempo_2d_id-cvNCQ93i z_tempo_2d_id-cvNCQ9z z_tempo_2d_id-cvNCQ94z z_tempo_2d_id-cvNCQ950 z_tempo_2d_id-cvNCQ93l`:$.zoom().className,children:[(0,F.jsx)(nt,{label:`Zoom out`,children:(0,F.jsx)(v,{"aria-label":`Zoom out`,disabled:t<=L.min,onClick:()=>l(t/L.step),shape:`icon`,size:`small`,variant:`text`,children:(0,F.jsx)(Ke,{className:$.zoomIcon?`z_tempo_2d_id-cvNCQ928 z_tempo_2d_id-cvNCQ951 z_tempo_2d_id-cvNCQ952`:$.zoomIcon().className})})}),(0,F.jsx)(nt,{label:`Reset to 100%`,children:(0,F.jsxs)(v,{"aria-label":`Zoom ${d}%. Reset to 100%`,onClick:()=>l(1),size:`small`,variant:`text`,className:$.zoomLevel?`z_tempo_2d_id-cvNCQ953 z_tempo_2d_id-cvNCQ954`:$.zoomLevel().className,children:[d,`%`]})}),(0,F.jsx)(nt,{label:`Zoom in`,children:(0,F.jsx)(v,{"aria-label":`Zoom in`,disabled:t>=L.max,onClick:()=>l(t*L.step),shape:`icon`,size:`small`,variant:`text`,children:(0,F.jsx)(Ge,{className:$.zoomIcon?`z_tempo_2d_id-cvNCQ928 z_tempo_2d_id-cvNCQ951 z_tempo_2d_id-cvNCQ952`:$.zoomIcon().className})})}),(0,F.jsx)(`span`,{"aria-live":`polite`,role:`status`,className:$.hidden?`z_tempo_2d_id-3w2jki0 z_tempo_2d_id-cvNCQ939 z_tempo_2d_id-3w2jki2 z_tempo_2d_id-3w2jki3 z_tempo_2d_id-3w2jki4 z_tempo_2d_id-cvNCQ93c`:$.hidden().className,children:`Zoom ${d}%`})]}),(0,F.jsx)(et,{sections:e})]}),(0,F.jsxs)(`div`,{...$.world({style:{zoom:t}}),children:[(0,F.jsx)(`div`,{"aria-hidden":!0,ref:o,className:$.probe?`z_tempo_2d_id-cvNCQ94k z_tempo_2d_id-cvNCQ94g z_tempo_2d_id-3w2jki3 z_tempo_2d_id-cvNCQ94l z_tempo_2d_id-cvNCQ93c`:$.probe().className}),u]})]})}function Je(e){return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`header`,{className:$.intro?`z_tempo_2d_id-cvNCQ90 z_tempo_2d_id-cvNCQ91b z_tempo_2d_id-cvNCQ93d z_tempo_2d_id-cvNCQ93e z_tempo_2d_id-cvNCQ92o z_tempo_2d_id-cvNCQ92p`:$.intro().className,children:[(0,F.jsx)(`h1`,{className:$.title?`z_tempo_2d_id-cvNCQ91o z_tempo_2d_id-cvNCQ91p z_tempo_2d_id-cvNCQ91q z_tempo_2d_id-cvNCQ91r z_tempo_2d_id-cvNCQ91s`:$.title().className,children:`Flows`}),(0,F.jsx)(`p`,{className:$.lede?`z_tempo_2d_id-cvNCQ92 z_tempo_2d_id-cvNCQ9t z_tempo_2d_id-cvNCQ9u z_tempo_2d_id-cvNCQ9v z_tempo_2d_id-cvNCQ9w z_tempo_2d_id-cvNCQ9x`:$.lede().className,children:`Every path through Tempo ID, from the entry point on the left to the exit on the right. Each arrow names the request or event that leads to the next step. Scroll to pan. To zoom, pinch, or scroll with Control or Command held.`})]}),e.sections.map(t=>(0,F.jsxs)(`section`,{className:$.section?`z_tempo_2d_id-cvNCQ90 z_tempo_2d_id-cvNCQ94m`:$.section().className,children:[(0,F.jsx)(`h2`,{className:$.sectionTitle?`z_tempo_2d_id-cvNCQ94n z_tempo_2d_id-cvNCQ94o z_tempo_2d_id-cvNCQ94p z_tempo_2d_id-cvNCQ94q z_tempo_2d_id-cvNCQ94r z_tempo_2d_id-cvNCQ94s z_tempo_2d_id-cvNCQ94t`:$.sectionTitle().className,id:Ze.section(t),children:t.title}),t.flows.map(n=>(0,F.jsxs)(`article`,{className:$.flow?`z_tempo_2d_id-cvNCQ90 z_tempo_2d_id-cvNCQ910`:$.flow().className,id:Ze.flow(t,n),children:[(0,F.jsxs)(`header`,{className:$.flowHeader?`z_tempo_2d_id-cvNCQ90 z_tempo_2d_id-cvNCQ92l z_tempo_2d_id-cvNCQ92m z_tempo_2d_id-cvNCQ92n z_tempo_2d_id-cvNCQ92o z_tempo_2d_id-cvNCQ92p`:$.flowHeader().className,children:[(0,F.jsx)(`h3`,{className:$.flowTitle?`z_tempo_2d_id-cvNCQ92q z_tempo_2d_id-cvNCQ92r z_tempo_2d_id-cvNCQ92s z_tempo_2d_id-cvNCQ92t z_tempo_2d_id-cvNCQ92u`:$.flowTitle().className,children:n.title}),(0,F.jsx)(`p`,{className:$.flowDescription?`z_tempo_2d_id-cvNCQ92 z_tempo_2d_id-cvNCQ911 z_tempo_2d_id-cvNCQ912 z_tempo_2d_id-cvNCQ913 z_tempo_2d_id-cvNCQ914 z_tempo_2d_id-cvNCQ915`:$.flowDescription().className,children:(0,F.jsx)(rt,{text:n.description})})]}),(0,F.jsx)(Xe,{flow:n,unit:e.unit})]},n.title))]},t.title))]})}var Ye={external:128,screen:480};function Xe(e){let t=(0,P.useRef)(null),[n,r]=(0,P.useState)(!1),[i,a]=(0,P.useState)(()=>({height:e.flow.nodes.some(e=>e.screen!==void 0)?Ye.screen:Ye.external,width:e.flow.nodes.reduce((e,t,n)=>e+(t.screen===void 0?224:384)+(n>0?192:0),0)}));return(0,P.useEffect)(()=>{let n=t.current;if(!n)return;let i=new IntersectionObserver(t=>{let i=t.at(-1);if(i){if(!i.isIntersecting&&n.firstElementChild instanceof HTMLOListElement){let t=n.getBoundingClientRect();a({height:t.height/e.unit(),width:t.width/e.unit()})}r(i.isIntersecting)}},{rootMargin:`100%`});return i.observe(n),()=>i.disconnect()},[e.unit]),(0,F.jsx)(`div`,{ref:t,className:$.rowBox?`z_tempo_2d_id-cvNCQ921`:$.rowBox().className,children:n?(0,F.jsx)(`ol`,{className:$.row?`z_tempo_2d_id-cvNCQ9y z_tempo_2d_id-cvNCQ9z z_tempo_2d_id-cvNCQ940 z_tempo_2d_id-cvNCQ93 z_tempo_2d_id-cvNCQ941`:$.row().className,children:e.flow.nodes.map((t,n)=>(0,F.jsxs)(`li`,{className:$.step?`z_tempo_2d_id-cvNCQ9y z_tempo_2d_id-cvNCQ9z`:$.step().className,children:[n>0?(0,F.jsx)(it,{label:t.edge}):null,t.screen?(0,F.jsxs)(`figure`,{className:$.artboard?`z_tempo_2d_id-cvNCQ90 z_tempo_2d_id-cvNCQ91b z_tempo_2d_id-cvNCQ93`:$.artboard().className,children:[(0,F.jsx)(`figcaption`,{className:$.frameLabel?`z_tempo_2d_id-cvNCQ92 z_tempo_2d_id-cvNCQ930 z_tempo_2d_id-cvNCQ931 z_tempo_2d_id-cvNCQ932 z_tempo_2d_id-cvNCQ933 z_tempo_2d_id-cvNCQ934`:$.frameLabel().className,children:t.owner===`app`?`App · ${t.name}`:t.name}),t.owner===`app`?(0,F.jsx)(`div`,{...y({set:`thirdParty`}),children:(0,F.jsx)(`div`,{className:$.frame?`z_tempo_2d_id-cvNCQ92v z_tempo_2d_id-cvNCQ92w z_tempo_2d_id-cvNCQ92x z_tempo_2d_id-cvNCQ92y z_tempo_2d_id-cvNCQ92z`:$.frame().className,children:t.screen})}):(0,F.jsx)(`div`,{className:$.frame?`z_tempo_2d_id-cvNCQ92v z_tempo_2d_id-cvNCQ92w z_tempo_2d_id-cvNCQ92x z_tempo_2d_id-cvNCQ92y z_tempo_2d_id-cvNCQ92z`:$.frame().className,children:t.screen})]}):(0,F.jsx)(at,{detail:t.detail,kind:n===0?`Entry`:n===e.flow.nodes.length-1?`Exit`:`External`,name:t.name})]},`${n}:${t.name}`))}):(0,F.jsx)(`div`,{"aria-hidden":!0,...$.placeholder({style:{height:i.height,width:i.width}})})})}var Ze={flow(e,t){return`${Ze.section(e)}--${$e(t.title)}`},section(e){return $e(e.title)}};function Qe(e){let t=document.getElementById(e.id);if(!t)return;let n=window.matchMedia(`(min-width: 64rem)`).matches?24:112,r=0,i=()=>{t.scrollIntoView({block:`start`}),window.scrollTo({left:0,top:window.scrollY-n}),r=t.getBoundingClientRect().top};i();let a=10,o=()=>{Math.abs(t.getBoundingClientRect().top-r)>1&&i(),--a,a>0&&requestAnimationFrame(o)};requestAnimationFrame(o)}function $e(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}function et(e){return(0,F.jsx)(`nav`,{"aria-label":`Flows`,className:$.legend?`z_tempo_2d_id-nr-Vm714 z_tempo_2d_id-cvNCQ93h z_tempo_2d_id-cvNCQ93i z_tempo_2d_id-cvNCQ93j z_tempo_2d_id-cvNCQ93k z_tempo_2d_id-cvNCQ93l z_tempo_2d_id-cvNCQ93m`:$.legend().className,children:(0,F.jsx)(We.Root,{children:(0,F.jsxs)(We.Item,{value:`contents`,className:$.legendItem?`z_tempo_2d_id-cvNCQ949`:$.legendItem().className,children:[(0,F.jsx)(We.Trigger,{className:$.legendTrigger?`z_tempo_2d_id-cvNCQ94a`:$.legendTrigger().className,children:`Contents`}),(0,F.jsx)(We.Panel,{children:(0,F.jsx)(`ol`,{className:$.legendList?`z_tempo_2d_id-cvNCQ90 z_tempo_2d_id-cvNCQ91 z_tempo_2d_id-cvNCQ940 z_tempo_2d_id-cvNCQ93 z_tempo_2d_id-cvNCQ942`:$.legendList().className,children:e.sections.map(e=>(0,F.jsxs)(`li`,{children:[(0,F.jsx)(tt,{className:$.legendSection?`z_tempo_2d_id-cvNCQ93n z_tempo_2d_id-cvNCQ943 z_tempo_2d_id-cvNCQ93p z_tempo_2d_id-cvNCQ93q z_tempo_2d_id-cvNCQ93r z_tempo_2d_id-cvNCQ93s z_tempo_2d_id-cvNCQ944 z_tempo_2d_id-cvNCQ945 z_tempo_2d_id-cvNCQ946 z_tempo_2d_id-cvNCQ947 z_tempo_2d_id-cvNCQ948 z_tempo_2d_id-cvNCQ93y`:$.legendSection().className,id:Ze.section(e),children:e.title}),(0,F.jsx)(`ol`,{className:$.legendFlows?`z_tempo_2d_id-cvNCQ940 z_tempo_2d_id-cvNCQ93 z_tempo_2d_id-cvNCQ941`:$.legendFlows().className,children:e.flows.map(t=>(0,F.jsx)(`li`,{children:(0,F.jsx)(tt,{className:$.legendFlow?`z_tempo_2d_id-cvNCQ93n z_tempo_2d_id-cvNCQ93o z_tempo_2d_id-cvNCQ93p z_tempo_2d_id-cvNCQ93q z_tempo_2d_id-cvNCQ93r z_tempo_2d_id-cvNCQ93s z_tempo_2d_id-cvNCQ93t z_tempo_2d_id-cvNCQ93u z_tempo_2d_id-cvNCQ93v z_tempo_2d_id-cvNCQ93w z_tempo_2d_id-cvNCQ93x z_tempo_2d_id-cvNCQ93y z_tempo_2d_id-cvNCQ93z`:$.legendFlow().className,id:Ze.flow(e,t),children:t.title})},t.title))})]},e.title))})})]})})})}function tt(e){return(0,F.jsx)(r,{className:e.className,hash:e.id,hashScrollIntoView:!1,onClick:t=>{t.button!==0||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey||Qe({id:e.id})},replace:!0,resetScroll:!1,to:`/_/flows`,children:e.children})}function nt(e){return(0,F.jsxs)(C.Root,{children:[(0,F.jsx)(C.Trigger,{delay:300,render:e.children}),(0,F.jsx)(C.Popup,{side:`bottom`,sideOffset:8,children:e.label})]})}function rt(e){return e.text.split("`").map((e,t)=>t%2?(0,F.jsx)(`code`,{className:$.code?`z_tempo_2d_id-cvNCQ95 z_tempo_2d_id-cvNCQ96 z_tempo_2d_id-cvNCQ97 z_tempo_2d_id-cvNCQ98 z_tempo_2d_id-cvNCQ99`:$.code().className,children:e},t):e)}function it(e){return(0,F.jsxs)(`span`,{className:$.arrow?`z_tempo_2d_id-cvNCQ9y z_tempo_2d_id-cvNCQ90 z_tempo_2d_id-3w2jki9 z_tempo_2d_id-cvNCQ91b z_tempo_2d_id-cvNCQ91u z_tempo_2d_id-cvNCQ91v z_tempo_2d_id-cvNCQ91w`:$.arrow().className,"aria-label":e.label??`Then`,role:`img`,children:[(0,F.jsx)(`span`,{className:$.edge?`z_tempo_2d_id-cvNCQ92 z_tempo_2d_id-nr-Vm71q z_tempo_2d_id-cvNCQ922 z_tempo_2d_id-cvNCQ95 z_tempo_2d_id-cvNCQ96 z_tempo_2d_id-cvNCQ97 z_tempo_2d_id-cvNCQ98 z_tempo_2d_id-cvNCQ99`:$.edge().className,children:e.label}),(0,F.jsxs)(`span`,{className:$.shaft?`z_tempo_2d_id-cvNCQ9y z_tempo_2d_id-cvNCQ9z z_tempo_2d_id-cvNCQ91i`:$.shaft().className,children:[(0,F.jsx)(`span`,{className:$.line?`z_tempo_2d_id-cvNCQ94b z_tempo_2d_id-cvNCQ94c z_tempo_2d_id-3w2jki1`:$.line().className}),(0,F.jsx)(le,{className:$.head?`z_tempo_2d_id-cvNCQ935 z_tempo_2d_id-cvNCQ928 z_tempo_2d_id-cvNCQ936 z_tempo_2d_id-cvNCQ937`:$.head().className})]})]})}function at(e){return(0,F.jsxs)(`div`,{...$.external({kind:e.kind}),children:[(0,F.jsx)(`span`,{className:$.kind?`z_tempo_2d_id-cvNCQ92 z_tempo_2d_id-cvNCQ93f z_tempo_2d_id-cvNCQ930 z_tempo_2d_id-cvNCQ931 z_tempo_2d_id-cvNCQ932 z_tempo_2d_id-cvNCQ933 z_tempo_2d_id-cvNCQ934`:$.kind().className,children:e.kind}),(0,F.jsx)(`span`,{className:$.externalName?`z_tempo_2d_id-cvNCQ92g z_tempo_2d_id-cvNCQ92h z_tempo_2d_id-cvNCQ92i z_tempo_2d_id-cvNCQ92j z_tempo_2d_id-cvNCQ92k`:$.externalName().className,children:e.name}),e.detail?(0,F.jsx)(`code`,{className:$.detail?`z_tempo_2d_id-cvNCQ92 z_tempo_2d_id-nr-Vm71q z_tempo_2d_id-cvNCQ95 z_tempo_2d_id-cvNCQ96 z_tempo_2d_id-cvNCQ97 z_tempo_2d_id-cvNCQ98 z_tempo_2d_id-cvNCQ99`:$.detail().className,children:e.detail}):null]})}function ot(e){return(0,F.jsxs)(`div`,{className:$.app?`z_tempo_2d_id-cvNCQ90 z_tempo_2d_id-cvNCQ91`:$.app().className,children:[(0,F.jsxs)(`header`,{className:$.appHeader?`z_tempo_2d_id-cvNCQ90 z_tempo_2d_id-cvNCQ91b z_tempo_2d_id-cvNCQ91c`:$.appHeader().className,children:[(0,F.jsx)(`h4`,{className:$.appTitle?`z_tempo_2d_id-cvNCQ91o z_tempo_2d_id-cvNCQ91p z_tempo_2d_id-cvNCQ91q z_tempo_2d_id-cvNCQ91r z_tempo_2d_id-cvNCQ91s`:$.appTitle().className,children:e.title}),e.description?(0,F.jsx)(`p`,{className:$.appDescription?`z_tempo_2d_id-cvNCQ92 z_tempo_2d_id-cvNCQ9t z_tempo_2d_id-cvNCQ9u z_tempo_2d_id-cvNCQ9v z_tempo_2d_id-cvNCQ9w z_tempo_2d_id-cvNCQ9x`:$.appDescription().className,children:e.description}):null]}),e.children]})}function st(e){return(0,F.jsx)(`button`,{...$.appButton({tone:e.tone}),type:`button`,children:e.children})}function ct(){return(0,F.jsxs)(`label`,{className:$.appField?`z_tempo_2d_id-cvNCQ90 z_tempo_2d_id-cvNCQ91b`:$.appField().className,children:[(0,F.jsx)(`span`,{className:$.appLabel?`z_tempo_2d_id-cvNCQ91j z_tempo_2d_id-cvNCQ91k z_tempo_2d_id-cvNCQ91l z_tempo_2d_id-cvNCQ91m z_tempo_2d_id-cvNCQ91n`:$.appLabel().className,children:`Email`}),(0,F.jsx)(`input`,{className:$.appInput?`z_tempo_2d_id-cvNCQ91d z_tempo_2d_id-cvNCQ91e z_tempo_2d_id-nr-Vm71w z_tempo_2d_id-cvNCQ91g z_tempo_2d_id-cvNCQ91h z_tempo_2d_id-cvNCQ9t z_tempo_2d_id-cvNCQ9u z_tempo_2d_id-cvNCQ9v z_tempo_2d_id-cvNCQ9w z_tempo_2d_id-cvNCQ9x z_tempo_2d_id-cvNCQ91i`:$.appInput().className,placeholder:`Required`,readOnly:!0})]})}function lt(){return(0,F.jsxs)(ot,{title:`Sign in or sign up`,children:[(0,F.jsx)(st,{tone:`quiet`,children:`Continue with passkey`}),(0,F.jsx)(`p`,{className:$.appDivider?`z_tempo_2d_id-cvNCQ9y z_tempo_2d_id-cvNCQ92 z_tempo_2d_id-cvNCQ9z z_tempo_2d_id-cvNCQ910 z_tempo_2d_id-cvNCQ93 z_tempo_2d_id-cvNCQ911 z_tempo_2d_id-cvNCQ912 z_tempo_2d_id-cvNCQ913 z_tempo_2d_id-cvNCQ914 z_tempo_2d_id-cvNCQ915 z_tempo_2d_id-3w2jki4 z_tempo_2d_id-cvNCQ917 z_tempo_2d_id-cvNCQ918 z_tempo_2d_id-cvNCQ919 z_tempo_2d_id-cvNCQ91a`:$.appDivider().className,children:`or continue with email`}),(0,F.jsx)(ct,{}),(0,F.jsx)(st,{tone:`brand`,children:`Continue`})]})}function ut(){return(0,F.jsxs)(ot,{description:`Sign in with your email to link this passkey.`,title:`Add your email`,children:[(0,F.jsx)(ct,{}),(0,F.jsx)(st,{tone:`brand`,children:`Continue`})]})}function dt(){return(0,F.jsxs)(ot,{description:`Enter the 6-digit code sent to ${V}.`,title:`Check your email`,children:[(0,F.jsx)(ce,{"aria-label":`Code`,length:6,readOnly:!0}),(0,F.jsx)(st,{tone:`brand`,children:`Verify`})]})}function R(){return(0,F.jsxs)(ot,{description:V,title:`You're signed in`,children:[(0,F.jsx)(`p`,{className:$.appAddress?`z_tempo_2d_id-cvNCQ92 z_tempo_2d_id-cvNCQ93 z_tempo_2d_id-nr-Vm71q z_tempo_2d_id-cvNCQ95 z_tempo_2d_id-cvNCQ96 z_tempo_2d_id-cvNCQ97 z_tempo_2d_id-cvNCQ98 z_tempo_2d_id-cvNCQ99`:$.appAddress().className,children:B[0].address}),(0,F.jsx)(st,{tone:`quiet`,children:`Sign out`})]})}function z(){}function ft(e){e.preventDefault()}var B=[{address:`0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9f3c`,balance:{amount:`1250.5`,currency:`USD`},owner:`privy`,realm:null},{address:`0x7c4d2e9a1b3f5c7d9e0a2b4c6d8e0f1a3b5c21ab`,balance:{amount:`42`,currency:`USD`},owner:`webAuthn`,realm:null}],V=`user@example.com`,pt=`An upstream service is unavailable. Retry later.`;function H(){return{calls:[],expiry:Math.floor(Date.now()/1e3)+604800,limits:[{amount:`100`,currency:`USD`,period:86400,tokens:[{amount:`100`,symbol:`pathUSD`}]}],unrecognized:[]}}function U(){return{app:`Tempo Wallet`,approving:!1,denying:!1,destination:`wallet.tempo.xyz`,email:V,heading:`h4`,keyAuthorization:H(),onApprove:z,onDeny:z,verified:!0}}function W(){return{app:`Tempo Wallet`,key:H(),verified:!0}}function mt(){return{app:`Tempo Wallet`,key:null,verified:!0}}function ht(){return{address:B[0].address,owner:B[0].owner}}var gt={detail:`GET /oauth2/authorize?…&key_authorization`,name:`Web app`};function G(){return{accounts:[B[0]],email:V,heading:`h4`,onAddPasskey:z,onSignOut:z,signingOut:!1}}function K(e){return{...G(),accounts:[{...B[e],configurable:e===0}],onAddOwner:z,passkeys:!0}}function q(){return{accounts:B,app:`Tempo Wallet`,heading:`h4`,onChoose:z}}function J(){return{approving:!1,code:``,denying:!1,email:V,fetching:!1,heading:`h4`,invalid:!1,onApprove:z,onDeny:z,onSubmitCode:ft}}function Y(){return{app:{name:`Tempo CLI`},created_at:Math.floor(Date.now()/1e3),device:`ada-macbook`,ip:`203.0.113.7`,key_authorization:H(),location:`San Francisco, US`,user_code:`BDWP-HQPK`}}var _t={detail:`POST /device/code with key_authorization`,name:`tempo-id login`},vt={detail:`Tokens and key_authorization, stored in ~/.tempo/id/credentials.json. A replaced session’s refresh token goes to POST /oauth2/revoke.`,edge:`POST /oauth2/token: authorization_pending, then tokens`,name:`tempo-id login`};function yt(){return{heading:`h4`,onContinue:z,onSkip:z,upgrading:!1}}function X(){return{heading:`h4`,invalid:!1,onChangeEmail:z,onPasskey:z,onResend:z,onStartOver:z,onSubmitCode:ft,onSubmitEmail:ft,resend:`idle`,sending:!1,verifying:!1}}var Z={detail:`GET /oauth2/authorize?client_id&redirect_uri&code_challenge&state`,name:`Web app`},bt=`GET /v1/auth/session: no user`,Q={detail:`Access, ID, and refresh tokens`,edge:`POST /oauth2/token with code_verifier`,name:`Web app`};function xt(){return[{flows:[{description:`A visitor opens Tempo ID without a session and signs in with an emailed code. An accepted code shows green for 500 ms before the sign-in continues.`,nodes:[{detail:`GET /`,name:`Browser opens Tempo ID`},{edge:`Page /login`,name:`Sign in`,screen:(0,F.jsx)(D,{...X()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify: 200`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{edge:`after 500 ms, redirect: null`,name:`Your account`,screen:(0,F.jsx)(O,{...G()})}],title:`Email code`},{description:`A passkey of the realm signs the user in with one prompt, from the button.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{detail:`POST /v1/auth/passkey/options, as the page shows`,name:`Sign in`,screen:(0,F.jsx)(D,{...X()})},{detail:`The options that the page requested`,edge:`Sign in with a passkey`,name:`Authenticator prompt`},{edge:`POST /v1/auth/passkey/verify`,name:`Your account`,screen:(0,F.jsx)(O,{...G()})}],title:`Passkey`},{description:`A wallet.tempo passkey without an email verifies one with a code. The passkey signs again with the code, which links it to the user.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{detail:`POST /v1/auth/passkey/options, as the page shows`,name:`Sign in`,screen:(0,F.jsx)(D,{...X()})},{detail:`The options that the page requested`,edge:`Sign in with a passkey`,name:`Authenticator prompt`},{edge:`POST /v1/auth/passkey/verify: step email`,name:`Sign in (link passkey)`,screen:(0,F.jsx)(D,{...X(),linking:!0})},{edge:`POST /v1/auth/code`,name:`Check your email (link passkey)`,screen:(0,F.jsx)(D,{...X(),email:V,linking:!0})},{detail:`POST /v1/auth/passkey/options with link and authorize`,edge:`Code complete`,name:`Authenticator prompt`},{edge:`POST /v1/auth/code/verify with link and assertion: 200`,name:`Check your email (link accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,linking:!0,verified:!0})},{edge:`after 500 ms, redirect: null`,name:`Your account`,screen:(0,F.jsx)(O,{...G()})}],title:`Passkey: adds an email`},{description:`Start over on the email step drops the passkey’s link and a pending code request, so the passkey stays unlinked.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{edge:`Sign in with a passkey, POST /v1/auth/passkey/verify: step email`,name:`Sign in (link passkey)`,screen:(0,F.jsx)(D,{...X(),linking:!0})},{edge:`Start over`,name:`Sign in`,screen:(0,F.jsx)(D,{...X()})}],title:`Passkey: start over`},{description:`Realms without a passkey relying party at Tempo ID’s origin leave only the email field.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{edge:`200, passkeys: false`,name:`Sign in (email only)`,screen:(0,F.jsx)(D,{...X(),onPasskey:void 0})}],title:`Email only: no passkey`},{description:`Each sign-in request holds its controls, shows a spinner, and announces its progress until it settles. One sign-in runs at a time.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{edge:`Continue, POST /v1/auth/code`,name:`Sign in (sending)`,screen:(0,F.jsx)(D,{...X(),sending:!0})},{edge:`Or: Sign in with a passkey`,name:`Sign in (passkey pending)`,screen:(0,F.jsx)(D,{...X(),passkeyPending:!0})},{edge:`Code complete, POST /v1/auth/code/verify`,name:`Check your email (verifying)`,screen:(0,F.jsx)(D,{...X(),email:V,verifying:!0})},{edge:`Or: Resend code, POST /v1/auth/code`,name:`Check your email (resending)`,screen:(0,F.jsx)(D,{...X(),email:V,resend:`pending`})}],title:`Sign-in: in progress`}],title:`Sign-in`},{flows:[{description:"The account page lists the user’s Tempo Accounts in the `default` realm, oldest first, each with its balance and a deposit link. A lone wallet shows its balance large, without a list.",nodes:[{detail:`GET /`,name:`Browser opens Tempo ID`},{edge:`GET /v1/account?chain, 200, one wallet`,name:`Your account (one wallet)`,screen:(0,F.jsx)(O,{...G()})},{edge:`Or: several wallets`,name:`Your account (several wallets)`,screen:(0,F.jsx)(O,{...G(),accounts:B})},{edge:`Or: a balance read fails`,name:`Your account (balance unavailable)`,screen:(0,F.jsx)(O,{...G(),accounts:[B[0],{...B[1],balance:null}]})},{edge:`Or: no wallet, POST /v1/account with chain creates the first one, 200 with its balance`,name:`Your account (wallet created)`,screen:(0,F.jsx)(O,{...G()})},{edge:`Or: the realm creates no wallets on the server, but holds passkeys`,name:`Your account (no wallets)`,screen:(0,F.jsx)(O,{...G(),accounts:[]})},{edge:`Or: the realm creates no wallets at all`,name:`Your account (no wallet possible)`,screen:(0,F.jsx)(O,{...G(),accounts:[],onAddPasskey:void 0})},{edge:`Or: the accounts cannot be read`,name:`Your account (unavailable)`,screen:(0,F.jsx)(O,{...G(),accountError:`Your wallets failed to load. Reload the page to try again.`,accounts:null})}],title:`Account page`},{description:"On a test chain, such as testnet, each deposit icon funds its wallet from the chain’s faucet through `POST /i/account/fund`, one request at a time. Tempo mainnet has no faucet, so its deposit icon opens `/deposit`.",nodes:[{detail:`GET /?chain=testnet`,name:`Browser`},{edge:`GET /v1/account?chain=testnet, 200`,name:`Your account (test chain)`,screen:(0,F.jsx)(O,{...G(),accounts:[{...B[0],balance:{amount:`0`,currency:`USD`}}],onFund:z})},{edge:`Deposit icon, POST /i/account/fund`,name:`Your account (funding)`,screen:(0,F.jsx)(O,{...G(),accounts:[{...B[0],balance:{amount:`0`,currency:`USD`}}],funding:B[0].address,onFund:z})},{edge:`200 with the transfers, GET /v1/account?chain=testnet`,name:`Your account (funded)`,screen:(0,F.jsx)(O,{...G(),accounts:[{...B[0],balance:{amount:`5000000`,currency:`USD`}}],onFund:z})},{edge:`Or: the node fails, 503 upstream_unavailable`,name:`Your account (faucet unavailable)`,screen:(0,F.jsx)(O,{...G(),accounts:[{...B[0],balance:{amount:`0`,currency:`USD`}}],error:pt,onFund:z})}],title:`Account page: testnet faucet`},{description:"In one click, the account page adds a passkey of the `default` realm, which signs the user in and owns a new passkey wallet. The page offers it only when the realm holds passkeys and the user has no passkey wallet.",nodes:[{detail:`GET /`,name:`Browser opens Tempo ID`},{name:`Your account`,screen:(0,F.jsx)(O,{...G()})},{edge:`Add passkey, POST /v1/account/passkey/options, navigator.credentials.create(), POST /v1/account/passkey, navigator.credentials.get()`,name:`Your account (adding a passkey)`,screen:(0,F.jsx)(O,{...G(),addingPasskey:!0})},{edge:`POST /v1/account/passkey/verify, 200, then the accounts load again, and a toast: Passkey added`,name:`Your account (passkey added)`,screen:(0,F.jsx)(O,{...G(),accounts:B,onAddPasskey:void 0,passkeyAdded:!0})},{edge:`Or: the ceremony is canceled`,name:`Your account (passkey canceled)`,screen:(0,F.jsx)(O,{...G(),error:`Adding a passkey was canceled. Try again.`})},{edge:`Or: the session signed in more than 10 minutes before`,name:`Your account (sign in again)`,screen:(0,F.jsx)(O,{...G(),error:`Sign in again: adding a passkey needs a sign-in within the last 10 minutes.`})},{edge:`Or: the accounts failed to load, and the device already holds one of the user’s passkeys`,name:`Your account (passkey held)`,screen:(0,F.jsx)(O,{...G(),error:`This device already holds one of your passkeys. Add a passkey on another device.`})}],title:`Account page: add a passkey`},{description:"On a chain that `CONFIGURABLE_ACCOUNTS` names, a cloud wallet’s configurable account adds a passkey as a second owner. The cloud wallet signs the configuration update, so the wallet keeps its address, and either owner then signs alone.",nodes:[{detail:`GET /?chain=local`,name:`Browser opens Tempo ID`},{name:`Your account (configurable chain)`,screen:(0,F.jsx)(O,{...K(0)})},{edge:`Add passkey, POST /v1/account/passkey/options, navigator.credentials.create(), POST /v1/account/passkey, navigator.credentials.get()`,name:`Your account (adding a passkey)`,screen:(0,F.jsx)(O,{...K(0),addingPasskey:!0})},{edge:`POST /v1/account/passkey/verify with account: the cloud wallet signs the update, and a toast: Passkey added`,name:`Your account (passkey added)`,screen:(0,F.jsx)(O,{...K(0),accounts:[{...B[0],configurable:!0,owners:[`privy`,`webAuthn`]}],ownerAdded:`passkey`})},{edge:`Or: the chain refuses the change, or the Tempo API’s sponsor fails`,name:`Your account (change failed)`,screen:(0,F.jsx)(O,{...K(0),error:`An upstream service is unavailable. Retry later.`})}],title:`Add a passkey to a cloud wallet`},{description:"On a chain that `CONFIGURABLE_ACCOUNTS` names, a linked wallet.tempo passkey’s wallet upgrades in place, with the passkey as its only owner. One click signs the prepared passkey step, and the wallet keeps its address.",nodes:[{detail:`GET /?chain=local, then POST /v1/account/upgrade, 200, the passkey step`,name:`Browser opens Tempo ID`},{name:`Your account (upgrade)`,screen:(0,F.jsx)(O,{...K(1),onUpgrade:z})},{edge:`Or: the user holds a cloud wallet too, and each wallet’s row offers its own change as an icon`,name:`Your account (two wallets)`,screen:(0,F.jsx)(O,{...K(1),accounts:[{...B[0],configurable:!0},{...B[1],configurable:!1}],onUpgrade:z})},{edge:`Upgrade wallet, navigator.credentials.get(), POST /v1/account/upgrade with passkey.assertion`,name:`Your account (upgrading)`,screen:(0,F.jsx)(O,{...K(1),onUpgrade:z,upgrading:B[1].address})},{edge:`200, the account at version 1, and a toast: Wallet upgraded`,name:`Your account (upgraded)`,screen:(0,F.jsx)(O,{...K(1),accounts:[{...B[1],configurable:!0}]})},{edge:`Or: the chain refuses the upgrade, or the Tempo API’s sponsor fails`,name:`Your account (upgrade failed)`,screen:(0,F.jsx)(O,{...K(1),error:`An upstream service is unavailable. Retry later.`,onUpgrade:z})}],title:`Upgrade a passkey wallet`},{description:"When `CONFIGURABLE_ACCOUNTS` names the sign-in page’s `chain`, a wallet.tempo user receives no cloud wallet. Before the account page, Continue on the upgrade step links the passkey and signs its upgrade.",nodes:[{detail:`GET /?chain=local, page /login?chain=local, then POST /v1/auth/code/verify: 200`,name:`Browser signs in by email`},{edge:`GET /i/account/upgrades?chain=local, then POST /v1/account/upgrade with credentialId, 200, the passkey step`,name:`Upgrade your wallet`,screen:(0,F.jsx)(N,{...yt()})},{edge:`Continue, POST /v1/account/upgrade with passkey.assertion, which links the passkey`,name:`Upgrade your wallet (upgrading)`,screen:(0,F.jsx)(N,{...yt(),upgrading:!0})},{edge:`Or: the passkey ceremony fails, or the upgrade is refused`,name:`Upgrade your wallet (failed)`,screen:(0,F.jsx)(N,{...yt(),error:`Your passkey did not sign the upgrade. Continue to try again.`})},{edge:`redirect: null, GET /?chain=local`,name:`Your account (upgraded)`,screen:(0,F.jsx)(O,{...K(1),accounts:[{...B[1],configurable:!0}]})}],title:`Sign-in: upgrade a wallet.tempo passkey`},{description:"A wallet.tempo user who chooses Not now on the upgrade step holds no configurable wallet yet. The account page lists that passkey’s wallet from `GET /i/account/passkeys`, and one click links the passkey and signs its upgrade.",nodes:[{detail:`Not now, then GET /?chain=local`,name:`Browser signs in`},{edge:`GET /i/account/passkeys, then POST /v1/account/upgrade with credentialId, 200, the passkey step`,name:`Your account (wallet.tempo passkey)`,screen:(0,F.jsx)(O,{...K(1),accounts:[{...B[1],credentialId:`KEbWNCc7NgaYnUyrNeFGX9_3Y-8`}],onUpgrade:z})},{edge:`Upgrade wallet, POST /v1/account/upgrade with passkey.assertion, which links the passkey, and a toast: Wallet upgraded`,name:`Your account (upgraded)`,screen:(0,F.jsx)(O,{...K(1),accounts:[{...B[1],configurable:!0}]})}],title:`Account page: upgrade a wallet.tempo passkey`},{description:`The account page and the deposit page send a visitor without a session to sign-in, which then opens the account page. The deposit page leaves the address out of the sign-in query.`,nodes:[{detail:`GET / or GET /deposit?address`,name:`Browser`},{edge:`GET /v1/account: session_required, page /login`,name:`Sign in`,screen:(0,F.jsx)(D,{...X()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify: 200`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{edge:`after 500 ms, redirect: null, GET /`,name:`Your account`,screen:(0,F.jsx)(O,{...G()})}],title:`Account page: signed out`},{description:`Deposit lists the networks and cash methods for one of the user’s wallets. Only Tempo is available, and it shows the wallet’s address as a QR code and as text.`,nodes:[{detail:`GET /`,name:`Browser opens Tempo ID`},{edge:`200, one wallet`,name:`Your account`,screen:(0,F.jsx)(O,{...G()})},{edge:`Deposit, GET /deposit?address`,name:`Deposit`,screen:(0,F.jsx)(w,{address:B[0].address,heading:`h4`})},{edge:`Tempo, GET /deposit?address&method=tempo`,name:`Receive funds`,screen:(0,F.jsx)(w,{address:B[0].address,heading:`h4`,method:`tempo`})},{edge:`Back, GET /deposit?address`,name:`Deposit`,screen:(0,F.jsx)(w,{address:B[0].address,heading:`h4`})},{edge:`Back, GET /`,name:`Your account`,screen:(0,F.jsx)(O,{...G()})}],title:`Deposit`},{description:`Done on Receive funds opens the account page at once.`,nodes:[{detail:`GET /deposit?address&method=tempo`,name:`Browser`},{edge:`200 deposit page`,name:`Receive funds`,screen:(0,F.jsx)(w,{address:B[0].address,heading:`h4`,method:`tempo`})},{edge:`Done, GET /`,name:`Your account`,screen:(0,F.jsx)(O,{...G()})}],title:`Deposit: done`},{description:"An address that is not one of the user’s wallets in the `default` realm shows no address. A spent rate limit or a failed account read shows its own reason in the same place.",nodes:[{detail:`GET /deposit?address (not the user’s)`,name:`Browser`},{edge:`200, address: null`,name:`Deposit (wallet not found)`,screen:(0,F.jsx)(w,{error:`This wallet was not found. Go back to your account, then choose Deposit.`,heading:`h4`})},{edge:`Or: the account rate limit is spent`,name:`Deposit (rate limited)`,screen:(0,F.jsx)(w,{error:`Too many requests. Try again in 1 minute.`,heading:`h4`})},{edge:`Or: the accounts cannot be read`,name:`Deposit (unavailable)`,screen:(0,F.jsx)(w,{error:`Your wallets failed to load. Reload the page to try again.`,heading:`h4`})}],title:`Deposit: unknown wallet`},{description:"A page path that no route serves responds with status 404 and the not-found screen, which links to the account page. An API path, such as `/v1/…` or `/oauth2/…`, responds with `unknown_endpoint` instead.",nodes:[{detail:`GET /nope`,name:`Browser`},{edge:`404`,name:`Page not found`,screen:(0,F.jsx)(ue,{heading:`h4`})},{edge:`Go to your account, GET /`,name:`Your account`,screen:(0,F.jsx)(O,{...G()})}],title:`Unknown page: 404`}],title:`Account and deposit`},{flows:[{description:"A web app redirects a signed-out user to the sign-in page, which names the app of the request that Better Auth signs. A page on Tempo ID’s site can first prefetch the sign-in page’s assets from `GET /v1/auth/assets`.",nodes:[Z,{edge:`Page /login?…&sig, GET /login: request without key`,name:`Sign in (app)`,screen:(0,F.jsx)(D,{...X(),request:mt()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify with oauth_query: 200`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{detail:`GET redirect_uri?code&state`,edge:`after 500 ms, redirect`,name:`Web app callback`},Q],title:`Redirect: signed out`},{description:`A signed-out user’s request with a key shows the app and the key on the sign-in page. The first sign-in of the request grants the key, so the browser returns to the app without the approval page.`,nodes:[gt,{edge:`Page /login?…&sig, GET /login: request`,name:`Sign in (key)`,screen:(0,F.jsx)(D,{...X(),request:W()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify with oauth_query: 200, grants the key`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{detail:`GET redirect_uri?code&state`,edge:`after 500 ms, redirect`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Sign-in grant`},{description:`On the sign-in page, the passkey’s challenge is the digest of the request’s key. One assertion signs the user in and signs the key, for an account that this passkey owns, or that Privy or secp256k1 owns.`,nodes:[gt,{edge:`Page /login?…&sig`,name:`Sign in (key)`,screen:(0,F.jsx)(D,{...X(),request:W()})},{detail:`POST /v1/auth/passkey/options with oauth_query, as the page shows: the key’s digest`,edge:`Sign in with a passkey`,name:`Authenticator prompt`},{detail:`GET redirect_uri?code&state`,edge:`POST /v1/auth/passkey/verify with oauth_query, grants the key`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Sign-in grant: passkey sign-in with key signature`},{description:`When the account reads are spent, the account step does not run, so a user with several accounts receives no grant. The approval page opens, and holds Approve until a reload after a minute.`,nodes:[gt,{edge:`Page /login?…&sig`,name:`Sign in (key)`,screen:(0,F.jsx)(D,{...X(),request:W()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify with oauth_query: ACCOUNT_LIMIT spent, no account step, several accounts: no grant`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{edge:`after 500 ms, redirect /authorize?…&sig`,name:`Authorize this app (unavailable)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),refusal:`unavailable`}})},{edge:`Reload after a minute`,name:`Authorize this app`,screen:(0,F.jsx)(M,{...U()})},{detail:`GET redirect_uri?code&state`,edge:`Approve, POST /v1/authorize/consent`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Sign-in grant: account reads spent`},{description:"A held grant covers only the request that the sign-in spent. A request with another `scope`, or with a `challenge`, takes no held grant on the account step, so the approval page opens.",nodes:[{detail:`GET /choose-account?…&sig, another scope or a challenge`,name:`Browser`},{edge:`200 account step`,name:`Choose a wallet`,screen:(0,F.jsx)(A,{...q()})},{edge:`Choose, POST /v1/authorize/account: another scope, no held grant, redirect /authorize?…&sig`,name:`Authorize this app (another scope)`,screen:(0,F.jsx)(M,{...U()})},{edge:`Or: a challenge, which takes no grant, redirect /authorize?…&sig`,name:`Authorize this app (challenge)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),challenge:`Sign in to api.example.com
2
+ Nonce: 8f2a91`}})},{detail:`GET redirect_uri?code&state`,edge:`Approve, POST /v1/authorize/consent`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Sign-in grant: another request`},{description:`A user with several accounts in the app’s realms chooses one, and the choice takes the sign-in’s grant, which lasts 10 minutes. A passkey that owns the chosen account first signs the key on this step.`,nodes:[gt,{edge:`Page /login?…&sig`,name:`Sign in (key)`,screen:(0,F.jsx)(D,{...X(),request:W()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify with oauth_query: 200, holds the grant`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{edge:`after 500 ms, redirect /choose-account?…&sig`,name:`Choose a wallet`,screen:(0,F.jsx)(A,{...q()})},{edge:`Choose, POST /v1/authorize/account`,name:`Choose a wallet (selecting)`,screen:(0,F.jsx)(A,{...q(),selecting:B[0].address})},{detail:`GET redirect_uri?code&state`,edge:`takes the held grant, redirect (a passkey account: passkey step, then POST again with the assertion)`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Sign-in grant: account step`},{description:`A sign-in that cannot grant the key keeps the redirect to the approval page, which shows the request again. Causes include another passkey that owns the account, a replayed request, a refused key, a spent rate limit, or an upstream failure.`,nodes:[gt,{edge:`Page /login?…&sig`,name:`Sign in (key)`,screen:(0,F.jsx)(D,{...X(),request:W()})},{edge:`Sign-in with oauth_query: the grant fails, redirect /authorize?…&sig`,name:`Authorize this app`,screen:(0,F.jsx)(M,{...U()})},{edge:`Approve, POST /v1/authorize/consent`,name:`Authorize this app (approving)`,screen:(0,F.jsx)(M,{...U(),approving:!0})},{detail:`GET redirect_uri?code&state`,edge:`redirect, or the passkey step first`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Sign-in grant: falls back to approval`},{description:"The account step’s signed query expires 10 minutes after the sign-in, just before its held grant. A later choice is refused with `authorization_expired`, so the user starts again in the app.",nodes:[gt,{edge:`Page /login?…&sig`,name:`Sign in (key)`,screen:(0,F.jsx)(D,{...X(),request:W()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify with oauth_query: 200, holds the grant`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{edge:`after 500 ms, redirect /choose-account?…&sig`,name:`Choose a wallet`,screen:(0,F.jsx)(A,{...q()})},{edge:`After 10 minutes, Choose, POST /v1/authorize/account: authorization_expired`,name:`Choose a wallet (request expired)`,screen:(0,F.jsx)(A,{...q(),error:`Expired authorization request: the request from the app is no longer valid. Return to the app, and start again.`})},{detail:`GET /oauth2/authorize?…&key_authorization, a new request`,edge:`Return to the app, and start again`,name:`Web app`}],title:`Sign-in grant: account step expired`},{description:"A request with a `challenge` signs a message that only the approval page shows. So the sign-in page names the app but shows no key, and the sign-in grants nothing.",nodes:[{...gt,detail:`GET /oauth2/authorize?…&key_authorization&challenge`},{edge:`Page /login?…&sig, GET /login: request without key`,name:`Sign in (app)`,screen:(0,F.jsx)(D,{...X(),request:mt()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify with oauth_query: 200`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{edge:`after 500 ms, redirect /authorize?…&sig`,name:`Authorize this app (challenge)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),challenge:`Sign in to api.example.com
3
+ Nonce: 8f2a91`}})},{detail:`GET redirect_uri?code&state`,edge:`Approve, POST /v1/authorize/consent`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Sign-in grant: with a challenge`},{description:`A signed-in user returns to an app that skips consent at once. Tempo ID shows no screen.`,nodes:[Z,{detail:`GET redirect_uri?code&state`,edge:`302, no screen`,name:`Web app callback`},Q],title:`Redirect: signed in`},{description:"A request with `prompt=login` asks a signed-in user to sign in again. The sign-in page shows the request, and its key, despite the session.",nodes:[{...gt,detail:`GET /oauth2/authorize?…&key_authorization&prompt=login`},{edge:`Page /login?…&prompt=login consent&sig`,name:`Sign in (key)`,screen:(0,F.jsx)(D,{...X(),request:W()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify with oauth_query: 200, grants the key`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{detail:`GET redirect_uri?code&state`,edge:`after 500 ms, redirect`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Redirect: prompt=login`},{description:`A signed-in user approves a third-party app, which never skips consent, once for the scopes it requests. The request carries no key, so the page shows none.`,nodes:[Z,{edge:`Page /authorize?…&sig`,name:`Authorize this app (no key)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:void 0})},{detail:`GET redirect_uri?code&state`,edge:`POST /v1/authorize/consent, accept`,name:`Web app callback`},Q],title:`Approval: no key`},{description:`A signed-in user’s request with a key opens the approval page, which holds Approve until the account read streams in. A Privy or secp256k1 owner signs the key on the server when the user approves.`,nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{edge:`Page /authorize?…&sig, GET /i/authorize/request`,name:`Authorize this app (checking)`,screen:(0,F.jsx)(M,{...U(),checking:!0})},{edge:`GET /v1/authorize/request streams in: the account and any refusal`,name:`Authorize this app`,screen:(0,F.jsx)(M,{...U()})},{edge:`Approve, POST /v1/authorize/consent`,name:`Authorize this app (approving)`,screen:(0,F.jsx)(M,{...U(),approving:!0})},{detail:`GET redirect_uri?code&state`,edge:`redirect`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Approval: key`},{description:"A key on a chain other than mainnet shows its chain as a gray tag on the permissions card. The tag shows the name that `GET /v1/chains` lists, or else the chain ID.",nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization with chainId`},{edge:`Page /authorize?…&sig`,name:`Authorize this app (another chain)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),chain:{id:31318,name:`t14`}}})},{detail:`GET redirect_uri?code&state`,edge:`Approve, POST /v1/authorize/consent`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Approval: key on another chain`},{description:"A third-party app names its metadata document’s URL, or its origin, as `client_id`, and registers nothing. The page shows the host beside the name, marks no name as verified, and grants only keys that name expiry, limits, and scopes.",nodes:[{detail:`GET /oauth2/authorize?client_id=https://app.example.com/.well-known/oauth-client-metadata.json&key_authorization`,name:`Third-party app`},{edge:`GET client_id: the metadata document or the origin's manifest, page /authorize?…&sig`,name:`Authorize this app (third-party)`,screen:(0,F.jsx)(M,{...U(),app:`Example`,destination:`app.example.com`,verified:!1})},{detail:`GET redirect_uri?code&state`,edge:`Approve, POST /v1/authorize/consent`,name:`Third-party app callback`},{detail:`Tokens, account, and key_authorization`,edge:`POST /oauth2/token with code_verifier`,name:`Third-party app`}],title:`Third-party app`},{description:"A third-party app’s key that leaves out its expiry, limits, or scopes returns to the app with `missing_permissions`, before sign-in.",nodes:[{detail:`GET /oauth2/authorize?client_id=https://app.example.com/.well-known/oauth-client-metadata.json&key_authorization (no limits)`,name:`Third-party app`},{detail:`GET redirect_uri?error=invalid_authorization_details`,edge:`missing_permissions`,name:`Third-party app callback`}],title:`Third-party app: missing permissions`},{description:`A passkey owns the account, so the approval returns the passkey step. The passkey signs the key’s digest, and the page approves again.`,nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{edge:`Page /authorize?…&sig`,name:`Authorize this app`,screen:(0,F.jsx)(M,{...U()})},{edge:`Approve, POST /v1/authorize/consent`,name:`Authorize this app (approving)`,screen:(0,F.jsx)(M,{...U(),approving:!0})},{detail:`Signs the key authorization, over the approving page`,edge:`step passkey`,name:`Authenticator prompt`},{detail:`GET redirect_uri?code&state`,edge:`POST /v1/authorize/consent with passkey.assertion`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Approval: passkey account`},{description:`When a wallet.tempo passkey’s wallet waits for its upgrade, Approve shows the upgrade step first. The approval follows the upgrade, so the browser returns to the app.`,nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{edge:`Page /authorize?…&sig, GET /v1/authorize/request: refusal upgrade, GET /i/account/passkeys for a passkey that has not linked, POST /v1/account/upgrade, the passkey step`,name:`Authorize this app`,screen:(0,F.jsx)(M,{...U()})},{edge:`Approve`,name:`Upgrade your wallet`,screen:(0,F.jsx)(N,{...yt()})},{edge:`Or: POST /v1/account/upgrade: reauthentication_required, then Sign in again, POST /v1/auth/logout, and the sign-in page`,name:`Upgrade your wallet (sign in again)`,screen:(0,F.jsx)(N,{...yt(),onSignIn:z})},{detail:`Signs the upgrade, then the key authorization, over the upgrading step`,edge:`Continue, POST /v1/account/upgrade with passkey.assertion, then POST /v1/authorize/consent, step passkey`,name:`Authenticator prompt`},{detail:`GET redirect_uri?code&state`,edge:`POST /v1/authorize/consent with passkey.assertion`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Approval: upgrade after Approve`},{description:`Not now on the upgrade step approves the request without the upgrade, and the passkey signs the key as its own account. The key stops working on that chain once the wallet upgrades, and the account page and the next approval offer the upgrade again.`,nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{edge:`Page /authorize?…&sig, GET /v1/authorize/request: refusal upgrade, then Approve`,name:`Upgrade your wallet`,screen:(0,F.jsx)(N,{...yt()})},{edge:`Not now, POST /v1/authorize/consent with skip_upgrade`,name:`Upgrade your wallet (skipping)`,screen:(0,F.jsx)(N,{...yt(),skipping:!0})},{detail:`Signs the key authorization as the passkey’s own account, over the skipping step`,edge:`step passkey`,name:`Authenticator prompt`},{detail:`GET redirect_uri?code&state`,edge:`POST /v1/authorize/consent with skip_upgrade and passkey.assertion, which links a passkey that has not linked`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Approval: skip the upgrade`},{description:"An app with the `tempo-id:sign` scope sends a challenge, and the approval page shows the message that the key signs.",nodes:[{detail:`GET /oauth2/authorize?…&key_authorization&challenge`,name:`Native app`},{edge:`Page /authorize?…&sig`,name:`Authorize this app (challenge)`,screen:(0,F.jsx)(M,{...U(),app:`Tempo Mobile`,destination:`tempo`,keyAuthorization:{...H(),challenge:`Sign in to api.example.com
4
+ Nonce: 8f2a91`}})},{detail:`tempo:/callback?code&state`,edge:`POST /v1/authorize/consent, accept`,name:`Native app callback`},{...Q,detail:`Tokens, account, and key_authorization`,name:`Native app`}],title:`Approval: challenge`},{description:"Beside its limits, the approval page lists the `open` and `topUp` calls on the channel reserve as funds held for services. Its info icon links to the Machine Payments Protocol.",nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{edge:`Page /authorize?…&sig`,name:`Authorize this app (MPP sessions)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),calls:[{call:`open`},{call:`topUp`}]}})},{detail:`GET redirect_uri?code&state`,edge:`POST /v1/authorize/consent, accept`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Approval: MPP sessions`},{description:"The approval page lists a key’s calls that Tempo ID does not recognize, such as a function on another contract, with a warning. A headless request refuses them unless the app holds the `tempo-id:sign` scope.",nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{edge:`Page /authorize?…&sig`,name:`Authorize this app (unrecognized calls)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),unrecognized:[{address:`0xdec0000000000000000000000000000000000000`,selector:`0x12345678`}]}})},{detail:`GET redirect_uri?code&state`,edge:`POST /v1/authorize/consent, accept`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Approval: unrecognized calls`},{description:`A user with more than one Tempo Account in the app’s realms chooses one, which continues to the approval page. Each row shows the account’s balance on the key’s chain, or Balance unavailable when the read fails.`,nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{edge:`Page /choose-account?…&sig`,name:`Choose a wallet`,screen:(0,F.jsx)(A,{...q()})},{edge:`Or: a balance read fails`,name:`Choose a wallet (balance unavailable)`,screen:(0,F.jsx)(A,{...q(),accounts:[B[0],{...B[1],balance:null}]})},{edge:`Choose, POST /v1/authorize/account`,name:`Choose a wallet (selecting)`,screen:(0,F.jsx)(A,{...q(),selecting:B[0].address})},{edge:`redirect /authorize?…&sig, GET /v1/authorize/request: account`,name:`Authorize this app (account)`,screen:(0,F.jsx)(M,{...U(),account:ht()})},{detail:`GET redirect_uri?code&state`,edge:`POST /v1/authorize/consent, accept`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Account step`},{description:`A user with several Tempo Accounts who returns in the same session skips the account step, and the approval page shows the selected account. Sign-out from Tempo ID ends the selection.`,nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{edge:`Page /authorize?…&sig, GET /v1/authorize/request: account`,name:`Authorize this app (selected account)`,screen:(0,F.jsx)(M,{...U(),account:ht()})},{detail:`GET redirect_uri?code&state`,edge:`POST /v1/authorize/consent, accept`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Account step: selection kept`},{description:"An app in several realms, such as web-shared, lists accounts from each. Each row then names its realm, apart from the `default` realm.",nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`,name:`Web app in two realms`},{edge:`Page /choose-account?…&sig`,name:`Choose a wallet (two realms)`,screen:(0,F.jsx)(A,{...q(),accounts:[{...B[0],realm:`Tempo Cash`},B[1]]})},{edge:`Choose, POST /v1/authorize/account`,name:`Choose a wallet (two realms, selecting)`,screen:(0,F.jsx)(A,{...q(),accounts:[{...B[0],realm:`Tempo Cash`},B[1]],selecting:B[0].address})},{edge:`redirect /authorize?…&sig`,name:`Authorize this app`,screen:(0,F.jsx)(M,{...U()})},{detail:`GET redirect_uri?code&state`,edge:`POST /v1/authorize/consent, accept`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Account step: several realms`},{description:"Denying returns the browser to the app with `error=access_denied`. The app receives no code.",nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{edge:`Page /authorize?…&sig`,name:`Authorize this app`,screen:(0,F.jsx)(M,{...U()})},{edge:`Deny`,name:`Authorize this app (denying)`,screen:(0,F.jsx)(M,{...U(),denying:!0})},{detail:`GET redirect_uri?error=access_denied&state`,edge:`POST /v1/authorize/consent, accept: false`,name:`Web app callback`}],title:`Approval: denied`},{description:`Approval cannot sign some keys, so the page holds Approve and states why. Deny still returns to the app.`,nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{edge:`Page /authorize?…&sig: no account, and no Privy app to create one`,name:`Authorize this app (no account)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),refusal:`no_account`}})},{edge:`Or: a passkey whose relying party is not Tempo ID’s, or POST /v1/authorize/consent: webauthn_required`,name:`Authorize this app (passkey)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),refusal:`passkey`}})},{edge:`Or: a wallet.tempo passkey’s wallet waits for its upgrade, and the page reads no upgrade for it, such as when GET /i/chains fails`,name:`Authorize this app (upgrade first)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),refusal:`upgrade`}})},{edge:`Or: the key names an account that the user does not hold`,name:`Authorize this app (foreign account)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),refusal:`foreign_account`}})},{edge:`Or: the accounts cannot be read`,name:`Authorize this app (unavailable)`,screen:(0,F.jsx)(M,{...U(),keyAuthorization:{...H(),refusal:`unavailable`}})},{detail:`GET redirect_uri?error=access_denied&state`,edge:`Deny, POST /v1/authorize/consent, accept: false`,name:`Web app callback`}],title:`Approval: key it cannot sign`},{description:"A key that breaks a rule returns to the app with the refusal, as `/oauth2/authorize` returns one before sign-in. The `error` names the rule, such as `invalid_authorization_details` for an expired key, or `unauthorized_client` for a challenge without the `tempo-id:sign` scope.",nodes:[{...Z,detail:`GET /oauth2/authorize?…&key_authorization`},{detail:`GET redirect_uri?error&error_description`,edge:`key refused`,name:`Web app callback`}],title:`Refused key`},{description:`A changed or expired query, or a request without a known app, shows an invalid request, on the approval page and on the account step.`,nodes:[{detail:`GET /authorize?…&sig (changed)`,name:`Browser`},{edge:`200, request: null`,name:`This sign-in request is invalid`,screen:(0,F.jsx)(j,{heading:`h4`})},{edge:`Or: GET /choose-account?…&sig (changed), 200, request: null`,name:`This sign-in request is invalid (account step)`,screen:(0,F.jsx)(j,{heading:`h4`})}],title:`Invalid request`},{description:"`/oauth2/authorize` shows the error page, not a redirect, for an unknown or disabled app, a failed metadata document, or an unregistered `redirect_uri`. The page maps `error` to fixed copy and never shows `error_description`.",nodes:[{...Z,detail:`GET /oauth2/authorize?client_id (unknown)`},{edge:`Page /error?error=invalid_client`,name:`This app is not recognized`,screen:(0,F.jsx)(j,{heading:`h4`,reason:`client`})},{edge:`Or: redirect_uri not registered, 302 /error?error=invalid_redirect`,name:`This app’s return address is not registered`,screen:(0,F.jsx)(j,{heading:`h4`,reason:`redirect`})},{edge:`Or: another error, such as unsupported_response_type`,name:`This sign-in request is invalid (error page)`,screen:(0,F.jsx)(j,{heading:`h4`})}],title:`Unknown app or redirect URI`},{description:"A backend runs the redirect flow and redeems the code with its client secret, so tokens never reach the browser. In the test harness, no account in the `default` realm can sign the request’s key, so the approval page holds Approve.",nodes:[{detail:`GET /auth/start on the backend, with a key`,name:`Backend playground`},{edge:`302 /oauth2/authorize with state and code_challenge, page /login?…&sig`,name:`Sign in (key)`,screen:(0,F.jsx)(D,{...X(),request:{...W(),app:`Backend playground`}})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify with oauth_query: 200, no account to sign`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{edge:`after 500 ms, redirect /authorize?…&sig`,name:`Authorize this app (no account)`,screen:(0,F.jsx)(M,{...U(),app:`Backend playground`,destination:`backend.example.com`,keyAuthorization:{...H(),refusal:`no_account`}})},{detail:`GET /auth/callback?error=access_denied&state`,edge:`Deny, POST /v1/authorize/consent, accept: false`,name:`Backend callback`},{detail:`GET /auth/callback?code&state`,edge:`302 /auth/start?key=false, 302 /oauth2/authorize, 302, no screen`,name:`Backend callback`},{detail:`Tokens stay on the server, without a key`,edge:`POST /oauth2/token with client_secret`,name:`Backend session`}],title:`Backend app`}],title:`App authorization`},{flows:[{description:`The app's own pages send the code, then verify it with the authorization request, which signs in, creates the first account, and returns the authorization. Tempo ID shows no screen.`,nodes:[{detail:`Web playground`,name:`App's sign-in`},{edge:bt,name:`Sign in`,owner:`app`,screen:(0,F.jsx)(lt,{})},{edge:`POST /v1/auth/code`,name:`Check your email`,owner:`app`,screen:(0,F.jsx)(dt,{})},{edge:`POST /v1/auth/code/verify with authorize: user and authorization`,name:`Signed in`,owner:`app`,screen:(0,F.jsx)(R,{})}],title:`Email code`},{description:`A wallet.tempo passkey owns the user's account, so the code signs no key, and the sign-in returns the passkey step. The passkey then signs the key's digest on the app's page, with no approval page, when its relying party covers the page.`,nodes:[{detail:`Web playground`,name:`App's sign-in`},{edge:bt,name:`Sign in`,owner:`app`,screen:(0,F.jsx)(lt,{})},{edge:`POST /v1/auth/code`,name:`Check your email`,owner:`app`,screen:(0,F.jsx)(dt,{})},{detail:`POST /v1/auth/code/verify with authorize and passkey: step passkey`,edge:`Code complete`,name:`Authenticator prompt`},{edge:`POST /v1/authorize with expiry and passkey: { assertion }: authorization`,name:`Signed in`,owner:`app`,screen:(0,F.jsx)(R,{})}],title:`Email code: passkey account`},{description:`A signed-in user skips the code. The app requests the authorization at once.`,nodes:[{detail:`Session cookie set`,name:`App's page`},{edge:`GET /v1/auth/session, POST /v1/authorize`,name:`Signed in`,owner:`app`,screen:(0,F.jsx)(R,{})}],title:`Email code: signed in`},{description:`The app's page runs the passkey ceremony with its client ID, which selects the app's realms, and its authorization request. The challenge is the key's digest, so one assertion signs the user in and signs the key of the passkey's account, with no approval page.`,nodes:[{detail:`Web playground`,name:`App's sign-in`},{edge:bt,name:`Sign in`,owner:`app`,screen:(0,F.jsx)(lt,{})},{detail:"The options of `Actions.passkey.prepare`, as the form showed: GET /v1/realms, then POST /v1/auth/passkey/options with client_id and authorize",edge:`Continue with passkey`,name:`Authenticator prompt`},{edge:`POST /v1/auth/passkey/verify: user and authorization`,name:`Signed in`,owner:`app`,screen:(0,F.jsx)(R,{})}],title:`Passkey`},{description:`A wallet.tempo passkey without an email verifies one through the app's own code step. The passkey signs again with the code, which links it, and that assertion signs the key of its account.`,nodes:[{detail:`Web playground`,name:`App's sign-in`},{edge:bt,name:`Sign in`,owner:`app`,screen:(0,F.jsx)(lt,{})},{detail:"The options of `Actions.passkey.prepare`, as the form showed: GET /v1/realms, then POST /v1/auth/passkey/options with client_id",edge:`Continue with passkey`,name:`Authenticator prompt`},{edge:`POST /v1/auth/passkey/verify: step email`,name:`Add your email`,owner:`app`,screen:(0,F.jsx)(ut,{})},{edge:`POST /v1/auth/code`,name:`Check your email`,owner:`app`,screen:(0,F.jsx)(dt,{})},{detail:`POST /v1/auth/passkey/options with link`,edge:`Code complete`,name:`Authenticator prompt`},{edge:`POST /v1/auth/code/verify with link and assertion: user and authorization`,name:`Signed in`,owner:`app`,screen:(0,F.jsx)(R,{})}],title:`Passkey: adds an email`},{description:"In a sign-in with key signature, a passkey signs only the key of its own account. For another passkey’s account, the sign-in refuses the key with `webauthn_required`, and the app signs in through a redirect without a key.",nodes:[{detail:`POST /v1/auth/passkey/verify: webauthn_required`,name:`App's sign-in`},{detail:`GET redirect_uri?code&state`,edge:`GET /oauth2/authorize without key_authorization, 302, no screen`,name:`Web app callback`},{edge:`POST /oauth2/token with code_verifier`,name:`Signed in`,owner:`app`,screen:(0,F.jsx)(R,{})}],title:`Passkey: falls back to redirect`},{description:"On a chain whose accounts are configurable, a wallet.tempo passkey's account waits for its upgrade. The sign-in sets `skip_upgrade`, so its one assertion signs the key as the passkey's own account, and returns `upgradeAvailable`. The web playground then calls `Actions.account.upgrade` in the same click. Its prompt signs the upgrade, and Tempo ID first registers the key through a sponsored transaction that the access key signs, so the key keeps working.",nodes:[{detail:`Web playground`,name:`App's sign-in`},{edge:bt,name:`Sign in`,owner:`app`,screen:(0,F.jsx)(lt,{})},{detail:"The options of `Actions.passkey.prepare`, with skip_upgrade in authorize",edge:`Continue with passkey`,name:`Authenticator prompt`},{detail:`POST /v1/account/upgrade with key_authorization: the passkey step, with step.key.digest, which the access key signs with no prompt`,edge:`POST /v1/auth/passkey/verify: user and authorization with upgrade_available: true`,name:`Authenticator prompt`},{edge:`POST /v1/account/upgrade with passkey.assertion and key.signature: the key registers, then the account upgrades`,name:`Signed in`,owner:`app`,screen:(0,F.jsx)(R,{})}],title:`Passkey: upgrade the wallet`}],title:`Headless apps`},{flows:[{description:"`tempo-id login` requests a code with a new access key, and prints `verification_uri_complete`. After the user approves on the device page, the CLI’s next poll receives the tokens and the signed key, and stores them.",nodes:[_t,{detail:`GET /device?code`,edge:`Shows verification_uri_complete`,name:`Browser`},{edge:`Page /login?return_to=/device?code`,name:`Sign in`,screen:(0,F.jsx)(D,{...X(),device:!0})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),device:!0,email:V})},{edge:`POST /v1/auth/code/verify: 200`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),device:!0,email:V,verified:!0})},{edge:`after 500 ms, /device?code`,name:`Authorize a device`,screen:(0,F.jsx)(k,{...J(),request:Y()})},{edge:`POST /v1/device/approve`,name:`Authorization successful`,screen:(0,F.jsx)(k,{...J(),request:Y(),status:`approved`})},vt],title:`Device code: signed out`},{description:"A user who opens the bare `verification_uri` types the code that the terminal shows.",nodes:[_t,{detail:`GET /device`,edge:`Shows user_code and verification_uri`,name:`Browser`},{edge:`200 device page`,name:`Authorize a device (enter a code)`,screen:(0,F.jsx)(k,{...J()})},{edge:`Continue, GET /device?code`,name:`Authorize a device`,screen:(0,F.jsx)(k,{...J(),request:Y()})},{edge:`POST /v1/device/approve`,name:`Authorization successful`,screen:(0,F.jsx)(k,{...J(),request:Y(),status:`approved`})},vt],title:`Device code: typed`},{description:`Denying ends the request. The CLI's next poll is refused.`,nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`200 device page`,name:`Authorize a device`,screen:(0,F.jsx)(k,{...J(),request:Y()})},{edge:`POST /v1/device/deny`,name:`Denied`,screen:(0,F.jsx)(k,{...J(),request:Y(),status:`denied`})},{detail:`Exits with not_signed_in`,edge:`POST /oauth2/token: access_denied`,name:`tempo-id login`}],title:`Device code: denied`},{description:`A passkey owns the account, so the approval returns the passkey step. The passkey signs the key’s digest in this browser, and the page approves again.`,nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`200 device page`,name:`Authorize a device`,screen:(0,F.jsx)(k,{...J(),request:Y()})},{edge:`Approve, POST /v1/device/approve`,name:`Authorize a device (approving)`,screen:(0,F.jsx)(k,{...J(),approving:!0,request:Y()})},{detail:`Signs the key authorization, over the approving page`,edge:`step passkey`,name:`Authenticator prompt`},{edge:`POST /v1/device/approve with passkey.assertion`,name:`Authorization successful`,screen:(0,F.jsx)(k,{...J(),request:Y(),status:`approved`})},vt],title:`Device code: passkey account`},{description:`When a wallet.tempo passkey’s wallet waits for its upgrade, the device page shows the upgrade step first. Continue upgrades the wallet and loads the request again, and Not now shows the request with its refusal.`,nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`GET /v1/device/requests/:code: refusal upgrade, GET /i/account/passkeys for a passkey that has not linked, POST /v1/account/upgrade, the passkey step`,name:`Upgrade your wallet`,screen:(0,F.jsx)(N,{...yt()})},{edge:`Continue, POST /v1/account/upgrade with passkey.assertion, then GET /v1/device/requests/:code again`,name:`Authorize a device`,screen:(0,F.jsx)(k,{...J(),request:Y()})},{detail:`Signs the key authorization, over the approving page`,edge:`Approve, POST /v1/device/approve, step passkey`,name:`Authenticator prompt`},{edge:`POST /v1/device/approve with passkey.assertion`,name:`Authorization successful`,screen:(0,F.jsx)(k,{...J(),request:Y(),status:`approved`})},vt],title:`Device code: upgrade first`},{description:`Approval cannot sign some keys, so the page holds Approve and states why. Deny still ends the request.`,nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`The key names an account that the user does not hold`,name:`Authorize a device (foreign account)`,screen:(0,F.jsx)(k,{...J(),request:{...Y(),key_authorization:{...H(),refusal:`foreign_account`}}})},{edge:`Or: no account, and no Privy app to create one, or Not now on the upgrade step`,name:`Authorize a device (no account)`,screen:(0,F.jsx)(k,{...J(),request:{...Y(),key_authorization:{...H(),refusal:`no_account`}}})},{edge:`Or: a passkey whose relying party is not Tempo ID’s, or POST /v1/device/approve: webauthn_required`,name:`Authorize a device (passkey)`,screen:(0,F.jsx)(k,{...J(),request:{...Y(),key_authorization:{...H(),refusal:`passkey`}}})},{edge:`Or: the accounts cannot be read`,name:`Authorize a device (unavailable)`,screen:(0,F.jsx)(k,{...J(),request:{...Y(),key_authorization:{...H(),refusal:`unavailable`}}})},{detail:`POST /oauth2/token: access_denied`,edge:`Deny, POST /v1/device/deny`,name:`tempo-id login`}],title:`Device code: key it cannot sign`},{description:"A CLI with the `tempo-id:sign` scope sends a challenge, and the device page shows the message that the key signs.",nodes:[{detail:`POST /device/code with key_authorization and challenge`,name:`CLI`},{edge:`GET /device?code, 200 device page`,name:`Authorize a device (challenge)`,screen:(0,F.jsx)(k,{...J(),request:{...Y(),challenge:`Sign in to api.example.com
5
+ Nonce: 8f2a91`}})},{edge:`Approve, POST /v1/device/approve, or the passkey step first`,name:`Authorization successful`,screen:(0,F.jsx)(k,{...J(),request:Y(),status:`approved`})},{detail:`Tokens, and key_authorization bound to the challenge’s hash`,edge:`POST /oauth2/token: authorization_pending, then tokens`,name:`CLI`}],title:`Device code: challenge`},{description:`A code that is already approved or denied shows its outcome again, without the decision buttons.`,nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`200, status: approved`,name:`Authorization successful`,screen:(0,F.jsx)(k,{...J(),request:Y(),status:`approved`})}],title:`Device code: already decided`},{description:"A code that no one approves before `expires_in` ends the login. The CLI stores nothing, and the user runs `tempo-id login` again.",nodes:[_t,{detail:`Exits with not_signed_in`,edge:`POST /oauth2/token: authorization_pending, then expired_token`,name:`tempo-id login`}],title:`tempo-id login: expired`},{description:`The CLI reads the stored session, refreshes its access token when it expires within 30 seconds, and reads the user.`,nodes:[{detail:`~/.tempo/id/credentials.json`,name:`tempo-id whoami`},{detail:`Email and Tempo Account`,edge:`POST /oauth2/token with refresh_token within 30 s of expiry, GET /oauth2/userinfo`,name:`tempo-id whoami`}],title:`tempo-id whoami`},{description:`Each device request holds the code field or the decision buttons, and shows a spinner, until it settles.`,nodes:[{detail:`GET /device`,name:`Browser`},{edge:`Continue, GET /device?code`,name:`Authorize a device (fetching)`,screen:(0,F.jsx)(k,{...J(),code:`BDWP-HQPK`,fetching:!0})},{edge:`Approve, POST /v1/device/approve`,name:`Authorize a device (approving)`,screen:(0,F.jsx)(k,{...J(),approving:!0,request:Y()})},{edge:`Or: Deny, POST /v1/device/deny`,name:`Authorize a device (denying)`,screen:(0,F.jsx)(k,{...J(),denying:!0,request:Y()})}],title:`Device code: in progress`},{description:"A device app without a display name could be anyone’s, so the request omits `app`, and the page flags an unverified app.",nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`200 device page, request without app`,name:`Authorize a device (unverified app)`,screen:(0,F.jsx)(k,{...J(),request:{...Y(),app:void 0}})}],title:`Device code: unverified app`},{description:`A code that matches no pending request, or one that another user holds, keeps the code form.`,nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`unknown_code`,name:`Authorize a device (unknown code)`,screen:(0,F.jsx)(k,{...J(),code:`BDWP-HQPX`,error:`Invalid or expired code. Check the code in the terminal.`,invalid:!0})}],title:`Device code: unknown code`},{description:`Each user’s code lookups share one rate limit, so the page refuses a lookup over it and keeps the code form.`,nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`Lookup over the rate limit`,name:`Authorize a device (rate limited)`,screen:(0,F.jsx)(k,{...J(),code:`BDWP-HQPK`,error:`Too many requests. Try again in 1 minute.`,invalid:!0})}],title:`Device code: rate limited`}],title:`Device grant`},{flows:[{description:`Sign-out ends the session and revokes its refresh tokens, then opens the sign-in page.`,nodes:[{detail:`GET /`,name:`Browser opens Tempo ID`},{name:`Your account`,screen:(0,F.jsx)(O,{...G()})},{edge:`Sign out, POST /v1/auth/logout`,name:`Your account (signing out)`,screen:(0,F.jsx)(O,{...G(),signingOut:!0})},{edge:`200, then /login`,name:`Sign in`,screen:(0,F.jsx)(D,{...X()})}],title:`Sign-out`},{description:`An app signs the user out with its ID token. Tempo ID ends the session that the hint names, if this browser holds it, and redirects to the app.`,nodes:[{detail:`GET /oauth2/end-session?id_token_hint&post_logout_redirect_uri&state`,name:`Web app`},{detail:`GET post_logout_redirect_uri?state`,edge:`302, no screen`,name:`Web app`}],title:`RP-initiated logout`},{description:"A cross-site form POST carries no `SameSite=Lax` session cookie, so Tempo ID seals the parameters and continues as a GET, which carries the cookie.",nodes:[{detail:`POST /oauth2/end-session with id_token_hint, post_logout_redirect_uri, and state`,name:`Web app`},{detail:`GET /oauth2/end-session?continuation`,edge:`303, no session cookie`,name:`Browser`},{detail:`GET post_logout_redirect_uri?state`,edge:`302, no screen`,name:`Web app`}],title:`RP-initiated logout: form POST`},{description:`An app's own Sign out ends the Tempo ID session. The app forgets the sign-in even if the request fails, and shows the error.`,nodes:[{detail:`Web playground`,name:`App's page`},{edge:`GET /v1/auth/session, POST /v1/authorize`,name:`Signed in`,owner:`app`,screen:(0,F.jsx)(R,{})},{edge:`Sign out, POST /v1/auth/logout`,name:`Sign in`,owner:`app`,screen:(0,F.jsx)(lt,{})}],title:`Headless sign-out`},{description:`The CLI revokes the stored refresh token at the deployment that issued it, and deletes the session even if the revocation fails.`,nodes:[{detail:`~/.tempo/id/credentials.json`,name:`tempo-id logout`},{detail:`Session deleted`,edge:`POST /oauth2/revoke with the refresh token`,name:`tempo-id logout`}],title:`tempo-id logout`}],title:`Sign-out`},{flows:[{description:`A refused send keeps the first step, with the refusal below the email field, which it marks invalid. The user can try again or pick another method.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{edge:`POST /v1/auth/code: 503`,name:`Sign in (send failed)`,screen:(0,F.jsx)(D,{...X(),error:pt,invalid:!0})}],title:`Email code: send refused`},{description:`A canceled prompt or a refused passkey keeps the first step, with the error below the email field. The email field is not marked invalid, since no address was sent.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{edge:`Canceled prompt, or POST /v1/auth/passkey/verify refused`,name:`Sign in (passkey failed)`,screen:(0,F.jsx)(D,{...X(),error:`Passkey sign-in was canceled. Try again, or continue with email.`})}],title:`Passkey: fails`},{description:`A refused code clears the field and marks it invalid, so the next code can be typed at once.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{edge:`POST /v1/auth/code/verify: 401`,name:`Check your email (wrong code)`,screen:(0,F.jsx)(D,{...X(),email:V,error:`Invalid or expired code. Request a new one.`,invalid:!0})}],title:`Email code: wrong code`},{description:"With `SIGN_UP_DOMAINS`, a verified code for an address with no account, outside those domains, creates no account. An existing account at any domain still signs in.",nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{edge:`POST /v1/auth/code/verify: 403 sign_up_not_permitted`,name:`Check your email (sign-up refused)`,screen:(0,F.jsx)(D,{...X(),email:V,error:`Sign-up not permitted: new accounts need an address at tempo.xyz. Sign in with an existing account, or with an address at tempo.xyz.`,invalid:!0})}],title:`Email code: sign-up refused`},{description:`A passkey that does not sign again, or whose assertion is refused, drops the link. The code field clears and takes focus, so the next code signs in with email only.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{edge:`Canceled prompt, or POST /v1/auth/code/verify with link: webauthn_rejected`,name:`Check your email (link failed)`,screen:(0,F.jsx)(D,{...X(),email:V,error:`Your passkey did not confirm the sign-in. Enter the code again to sign in with email only.`,invalid:!0})}],title:`Passkey: link fails`},{description:`A resent code shows Code sent on the disabled button for 5 seconds, then Resend code again. A hidden status announces the send, and the code field keeps its value.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{edge:`Resend code, POST /v1/auth/code`,name:`Check your email (resent)`,screen:(0,F.jsx)(D,{...X(),email:V,resend:`sent`})}],title:`Email code: resent`},{description:`A refused resend keeps the code step and its code, with the refusal below the code field. The code stays valid, so the field is not marked invalid.`,nodes:[{detail:`GET /login`,name:`Browser opens sign-in`},{edge:`Resend code, POST /v1/auth/code: 429`,name:`Check your email (resend refused)`,screen:(0,F.jsx)(D,{...X(),email:V,error:`Too many requests. Try again in 1 minute.`})}],title:`Email code: resend refused`},{description:`A failed selection keeps the account step, so the user can choose again. The page does not reload, so an ended session or an expired request shows its refusal in the same place.`,nodes:[{detail:`GET /choose-account?…&sig`,name:`Browser`},{edge:`POST /v1/authorize/account: 503`,name:`Choose a wallet (failed)`,screen:(0,F.jsx)(A,{...q(),error:pt})},{edge:`Or: POST /v1/authorize/account: session_required`,name:`Choose a wallet (session ended)`,screen:(0,F.jsx)(A,{...q(),error:`Sign in first.`})},{edge:`Or: POST /v1/authorize/account: authorization_expired`,name:`Choose a wallet (request expired)`,screen:(0,F.jsx)(A,{...q(),error:`Expired authorization request: the request from the app is no longer valid. Return to the app, and start again.`})}],title:`Account step: fails`},{description:`A failed decision keeps the approval page, with the refusal below the buttons.`,nodes:[{detail:`GET /authorize?…&sig`,name:`Browser`},{edge:`POST /v1/authorize/consent: 503`,name:`Authorize this app (failed)`,screen:(0,F.jsx)(M,{...U(),error:pt})}],title:`Approval: fails`},{description:`A spent authorization rate limit refuses Approve, as it refuses the grant at sign-in. The approval page stays until the limit resets.`,nodes:[{detail:`GET /authorize?…&sig`,name:`Browser`},{edge:`Approve, POST /v1/authorize/consent: 429 rate_limited`,name:`Authorize this app (rate limited)`,screen:(0,F.jsx)(M,{...U(),error:`Too many requests. Try again in 1 minute.`})}],title:`Approval: rate limited`},{description:`A canceled prompt or a refused assertion keeps the approval page, and Approve starts a new passkey step.`,nodes:[{detail:`GET /authorize?…&sig`,name:`Browser`},{edge:`Canceled prompt, or POST /v1/authorize/consent with passkey.assertion: webauthn_rejected`,name:`Authorize this app (passkey failed)`,screen:(0,F.jsx)(M,{...U(),error:`The passkey request was canceled. Approve again, or deny the request.`})}],title:`Approval: passkey fails`},{description:`A session that ends before the decision reloads the page, and the loader sends the browser to sign-in with the signed query. A sign-in already spent this request, so the sign-in page shows only the app, and the next sign-in opens the approval page again.`,nodes:[{detail:`GET /authorize?…&sig`,name:`Browser`},{edge:`200 approval page`,name:`Authorize this app`,screen:(0,F.jsx)(M,{...U()})},{edge:`Approve, POST /v1/authorize/consent: session_required, reload, 302 /login?…&sig, GET /login: spent request`,name:`Sign in (app)`,screen:(0,F.jsx)(D,{...X(),request:mt()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify with oauth_query: 200`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{edge:`after 500 ms, redirect /authorize?…&sig`,name:`Authorize this app`,screen:(0,F.jsx)(M,{...U()})},{detail:`GET redirect_uri?code&state`,edge:`Approve, POST /v1/authorize/consent`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Approval: session expired`},{description:`A user who was signed in when the request arrived reached the approval page without a sign-in, so the request is unspent. The sign-in after the reload grants the key and returns to the app at once.`,nodes:[{detail:`GET /authorize?…&sig`,name:`Browser`},{edge:`200 approval page`,name:`Authorize this app`,screen:(0,F.jsx)(M,{...U()})},{edge:`Approve, POST /v1/authorize/consent: session_required, reload, 302 /login?…&sig`,name:`Sign in (key)`,screen:(0,F.jsx)(D,{...X(),request:W()})},{edge:`POST /v1/auth/code`,name:`Check your email`,screen:(0,F.jsx)(D,{...X(),email:V})},{edge:`POST /v1/auth/code/verify with oauth_query: 200, grants the key`,name:`Check your email (accepted)`,screen:(0,F.jsx)(D,{...X(),email:V,verified:!0})},{detail:`GET redirect_uri?code&state`,edge:`after 500 ms, redirect`,name:`Web app callback`},{...Q,detail:`Tokens, account, and key_authorization`}],title:`Approval: session expired, unspent`},{description:`A failed decision keeps the device page with the request, and the refusal below the buttons.`,nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`POST /v1/device/approve: 503`,name:`Authorize a device (failed)`,screen:(0,F.jsx)(k,{...J(),error:pt,request:Y()})}],title:`Device code: decision fails`},{description:`A session that ends before the decision reloads the page, and sign-in returns to the same code. The request is bound to its user, so another user’s sign-in shows the unknown code.`,nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`200 device page`,name:`Authorize a device`,screen:(0,F.jsx)(k,{...J(),request:Y()})},{edge:`Approve, POST /v1/device/approve: session_required, reload, 302 /login?return_to=/device?code`,name:`Sign in`,screen:(0,F.jsx)(D,{...X()})},{edge:`Sign-in, /device?code`,name:`Authorize a device`,screen:(0,F.jsx)(k,{...J(),request:Y()})}],title:`Device code: session expired`},{description:`A canceled prompt or a refused assertion keeps the device page, and Approve starts a new passkey step.`,nodes:[{detail:`GET /device?code`,name:`Browser`},{edge:`Canceled prompt, or POST /v1/device/approve with passkey.assertion: webauthn_rejected`,name:`Authorize a device (passkey failed)`,screen:(0,F.jsx)(k,{...J(),error:`The passkey request was canceled. Approve again, or deny the request.`,request:Y()})}],title:`Device code: passkey fails`},{description:`A failed sign-out keeps the account page, with the refusal above the button.`,nodes:[{detail:`GET /`,name:`Browser opens Tempo ID`},{edge:`POST /v1/auth/logout: 503`,name:`Your account (sign-out failed)`,screen:(0,F.jsx)(O,{...G(),error:pt})}],title:`Sign-out: fails`}],title:`Request failures`}]}var $;(function(e){e.app=1,e.appAddress=1,e.appButton=(e={})=>{let t=e.className,n=e.style,r=e.vars,i=r?{...r,...n}:n,a=t?`z_tempo_2d_id-cvNCQ9a z_tempo_2d_id-cvNCQ9b z_tempo_2d_id-cvNCQ9c z_tempo_2d_id-cvNCQ9d z_tempo_2d_id-cvNCQ9e z_tempo_2d_id-cvNCQ9f z_tempo_2d_id-cvNCQ9g z_tempo_2d_id-cvNCQ9h z_tempo_2d_id-cvNCQ9i z_tempo_2d_id-cvNCQ9j z_tempo_2d_id-cvNCQ9k z_tempo_2d_id-cvNCQ9l z_tempo_2d_id-cvNCQ9m z_tempo_2d_id-cvNCQ9n z_tempo_2d_id-cvNCQ9o z_tempo_2d_id-cvNCQ9p z_tempo_2d_id-cvNCQ9q z_tempo_2d_id-cvNCQ9r z_tempo_2d_id-cvNCQ9s `+t:`z_tempo_2d_id-cvNCQ9a z_tempo_2d_id-cvNCQ9b z_tempo_2d_id-cvNCQ9c z_tempo_2d_id-cvNCQ9d z_tempo_2d_id-cvNCQ9e z_tempo_2d_id-cvNCQ9f z_tempo_2d_id-cvNCQ9g z_tempo_2d_id-cvNCQ9h z_tempo_2d_id-cvNCQ9i z_tempo_2d_id-cvNCQ9j z_tempo_2d_id-cvNCQ9k z_tempo_2d_id-cvNCQ9l z_tempo_2d_id-cvNCQ9m z_tempo_2d_id-cvNCQ9n z_tempo_2d_id-cvNCQ9o z_tempo_2d_id-cvNCQ9p z_tempo_2d_id-cvNCQ9q z_tempo_2d_id-cvNCQ9r z_tempo_2d_id-cvNCQ9s`,o=i?{className:a,style:i}:{className:a},s;return s=Object.hasOwn(e,`tone`)?e.tone:void 0,s!=null&&(o[`data-tone`]=String(s)),o},e.appDescription=1,e.appDivider=1,e.appField=1,e.appHeader=1,e.appInput=1,e.appLabel=1,e.appTitle=1,e.arrow=1,e.artboard=1,e.canvas=1,e.code=1,e.detail=1,e.edge=1,e.external=(e={})=>{let t=e.className,n=e.style,r=e.vars,i=r?{...r,...n}:n,a=t?`z_tempo_2d_id-cvNCQ923 z_tempo_2d_id-cvNCQ924 z_tempo_2d_id-cvNCQ925 z_tempo_2d_id-cvNCQ926 z_tempo_2d_id-cvNCQ927 z_tempo_2d_id-cvNCQ928 z_tempo_2d_id-cvNCQ929 z_tempo_2d_id-cvNCQ92a z_tempo_2d_id-cvNCQ92b z_tempo_2d_id-cvNCQ92c z_tempo_2d_id-cvNCQ92d z_tempo_2d_id-cvNCQ92e z_tempo_2d_id-cvNCQ92f `+t:`z_tempo_2d_id-cvNCQ923 z_tempo_2d_id-cvNCQ924 z_tempo_2d_id-cvNCQ925 z_tempo_2d_id-cvNCQ926 z_tempo_2d_id-cvNCQ927 z_tempo_2d_id-cvNCQ928 z_tempo_2d_id-cvNCQ929 z_tempo_2d_id-cvNCQ92a z_tempo_2d_id-cvNCQ92b z_tempo_2d_id-cvNCQ92c z_tempo_2d_id-cvNCQ92d z_tempo_2d_id-cvNCQ92e z_tempo_2d_id-cvNCQ92f`,o=i?{className:a,style:i}:{className:a},s;return s=Object.hasOwn(e,`kind`)?e.kind:void 0,s!=null&&(o[`data-kind`]=String(s)),o},e.externalName=1,e.flow=1,e.flowDescription=1,e.flowHeader=1,e.flowTitle=1,e.frame=1,e.frameLabel=1,e.head=1,e.hidden=1,e.intro=1,e.kind=1,e.legend=1,e.legendFlow=1,e.legendFlows=1,e.legendList=1,e.legendSection=1,e.legendItem=1,e.legendTrigger=1,e.lede=1,e.line=1,e.panels=1,e.placeholder=h({className:`z_tempo_2d_id-cvNCQ928`}),e.probe=1,e.row=1,e.rowBox=1,e.section=1,e.sectionTitle=1,e.shaft=1,e.step=1,e.title=1,e.world=h({className:`z_tempo_2d_id-cvNCQ94u z_tempo_2d_id-cvNCQ94v z_tempo_2d_id-cvNCQ94w z_tempo_2d_id-cvNCQ94x`}),e.zoom=1,e.zoomIcon=1,e.zoomLevel=1})($||={});export{qe as component};
6
+ //# sourceMappingURL=___.flows-Cc-awUoC.js.map