@tempoxyz/id 0.0.0-stage → 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (712) hide show
  1. package/README.md +80 -2
  2. package/dist/App.d.ts +20 -0
  3. package/dist/App.d.ts.map +1 -0
  4. package/dist/App.js +26 -0
  5. package/dist/App.js.map +1 -0
  6. package/dist/app/client/.assetsignore +2 -0
  7. package/dist/app/client/assets/BRLA-CZvVDNYr.png +0 -0
  8. package/dist/app/client/assets/CHFAU-DCedc4aH.png +0 -0
  9. package/dist/app/client/assets/DLUSD-BnRXm3EI.png +0 -0
  10. package/dist/app/client/assets/PRIME-CiFp2-3e.svg +14 -0
  11. package/dist/app/client/assets/Pilat-Bold-C1t1eIrF.woff2 +0 -0
  12. package/dist/app/client/assets/Pilat-Book-CbS8ofT8.woff2 +0 -0
  13. package/dist/app/client/assets/Pilat-Demi-CADSbPAt.woff2 +0 -0
  14. package/dist/app/client/assets/Pilat-Regular-Bx8vzE7q.woff2 +0 -0
  15. package/dist/app/client/assets/USD1-COVcO_PB.svg +30 -0
  16. package/dist/app/client/assets/YLDS-CRh8Zw0g.svg +3 -0
  17. package/dist/app/client/assets/ccip-Cq1mMiVl.js +1 -0
  18. package/dist/app/client/assets/frxUSD-n9pTpinR.svg +1 -0
  19. package/dist/app/client/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
  20. package/dist/app/client/assets/index-B7YJVP00.css +1 -0
  21. package/dist/app/client/assets/index-UXTxXCLk.js +55 -0
  22. package/dist/app/client/assets/pathUSD-BvaO6ooS.svg +25 -0
  23. package/dist/app/client/assets/reset-co-CHrff.css +1 -0
  24. package/dist/app/client/assets/wYLDS-CaCKDrO-.svg +10 -0
  25. package/dist/app/db/auth.d.ts +3207 -0
  26. package/dist/app/db/auth.d.ts.map +1 -0
  27. package/dist/app/db/auth.js +330 -0
  28. package/dist/app/db/auth.js.map +1 -0
  29. package/dist/app/db/schema.d.ts +932 -0
  30. package/dist/app/db/schema.d.ts.map +1 -0
  31. package/dist/app/db/schema.js +171 -0
  32. package/dist/app/db/schema.js.map +1 -0
  33. package/dist/app/server/.vite/manifest.json +489 -0
  34. package/dist/app/server/assets/BRLA-CZvVDNYr.png +0 -0
  35. package/dist/app/server/assets/CHFAU-DCedc4aH.png +0 -0
  36. package/dist/app/server/assets/DLUSD-BnRXm3EI.png +0 -0
  37. package/dist/app/server/assets/PRIME-CiFp2-3e.svg +14 -0
  38. package/dist/app/server/assets/Pilat-Bold-C1t1eIrF.woff2 +0 -0
  39. package/dist/app/server/assets/Pilat-Book-CbS8ofT8.woff2 +0 -0
  40. package/dist/app/server/assets/Pilat-Demi-CADSbPAt.woff2 +0 -0
  41. package/dist/app/server/assets/Pilat-Regular-Bx8vzE7q.woff2 +0 -0
  42. package/dist/app/server/assets/USD1-COVcO_PB.svg +30 -0
  43. package/dist/app/server/assets/YLDS-CRh8Zw0g.svg +3 -0
  44. package/dist/app/server/assets/_tanstack-start-manifest_v-11GtFGrq.js +1 -0
  45. package/dist/app/server/assets/arktype-aI7TBD0R-D1R3Byo5.js +2 -0
  46. package/dist/app/server/assets/arktype-aI7TBD0R-D1R3Byo5.js.map +1 -0
  47. package/dist/app/server/assets/authorize-C95F-9E1-CbESJKGU.js +31 -0
  48. package/dist/app/server/assets/authorize-C95F-9E1-CbESJKGU.js.map +1 -0
  49. package/dist/app/server/assets/bun-sqlite-dialect-DoOVo4ja-CtyBkVMb.js +2 -0
  50. package/dist/app/server/assets/bun-sqlite-dialect-DoOVo4ja-CtyBkVMb.js.map +1 -0
  51. package/dist/app/server/assets/call-UQamaCKN.js +32 -0
  52. package/dist/app/server/assets/call-UQamaCKN.js.map +1 -0
  53. package/dist/app/server/assets/ccip-CbNKFO4n.js +2 -0
  54. package/dist/app/server/assets/ccip-CbNKFO4n.js.map +1 -0
  55. package/dist/app/server/assets/compiled-query-Ds2NVcFT.js +2 -0
  56. package/dist/app/server/assets/compiled-query-Ds2NVcFT.js.map +1 -0
  57. package/dist/app/server/assets/convert-BIC8n32x.js +2 -0
  58. package/dist/app/server/assets/convert-BIC8n32x.js.map +1 -0
  59. package/dist/app/server/assets/cookie-CS900nSP.css +1 -0
  60. package/dist/app/server/assets/cookie-Cce9CrIP.js +10 -0
  61. package/dist/app/server/assets/cookie-Cce9CrIP.js.map +1 -0
  62. package/dist/app/server/assets/core-B1HCXUmx.js +56 -0
  63. package/dist/app/server/assets/core-B1HCXUmx.js.map +1 -0
  64. package/dist/app/server/assets/d1-sqlite-dialect-m0f01-4z-Cv-csE1u.js +2 -0
  65. package/dist/app/server/assets/d1-sqlite-dialect-m0f01-4z-Cv-csE1u.js.map +1 -0
  66. package/dist/app/server/assets/default-u_dwuiYb-BJJ9PwCi.js +2 -0
  67. package/dist/app/server/assets/default-u_dwuiYb-BJJ9PwCi.js.map +1 -0
  68. package/dist/app/server/assets/dist-BxSwugSY.js +1 -0
  69. package/dist/app/server/assets/dist-CZGFhmQd.js +2 -0
  70. package/dist/app/server/assets/dist-CZGFhmQd.js.map +1 -0
  71. package/dist/app/server/assets/dist-Dg3PQqiW.js +15 -0
  72. package/dist/app/server/assets/dist-Dg3PQqiW.js.map +1 -0
  73. package/dist/app/server/assets/effect-QlVUlMFu-2tSPDT2b.js +2 -0
  74. package/dist/app/server/assets/effect-QlVUlMFu-2tSPDT2b.js.map +1 -0
  75. package/dist/app/server/assets/empty-plugin-adapters-BaGcmrjC.js +2 -0
  76. package/dist/app/server/assets/empty-plugin-adapters-BaGcmrjC.js.map +1 -0
  77. package/dist/app/server/assets/factory-ipHlJXZY.js +5 -0
  78. package/dist/app/server/assets/factory-ipHlJXZY.js.map +1 -0
  79. package/dist/app/server/assets/frxUSD-n9pTpinR.svg +1 -0
  80. package/dist/app/server/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
  81. package/dist/app/server/assets/get-id-field-B0x109VU.js +6 -0
  82. package/dist/app/server/assets/get-id-field-B0x109VU.js.map +1 -0
  83. package/dist/app/server/assets/index-CLddUTqr-xpSuLpBt.js +2 -0
  84. package/dist/app/server/assets/index-CLddUTqr-xpSuLpBt.js.map +1 -0
  85. package/dist/app/server/assets/index-DZEfthgZ-8Uq5s5Pt.js +2 -0
  86. package/dist/app/server/assets/index-DZEfthgZ-8Uq5s5Pt.js.map +1 -0
  87. package/dist/app/server/assets/kysely-adapter-MkHAI9Jk.js +1 -0
  88. package/dist/app/server/assets/node-sqlite-dialect-BowWLXvK.js +2 -0
  89. package/dist/app/server/assets/node-sqlite-dialect-BowWLXvK.js.map +1 -0
  90. package/dist/app/server/assets/pathUSD-BvaO6ooS.svg +25 -0
  91. package/dist/app/server/assets/reset-co-CHrff.css +1 -0
  92. package/dist/app/server/assets/rolldown-runtime-B0Z9INg1.js +1 -0
  93. package/dist/app/server/assets/router-CcbyBCI4.css +1 -0
  94. package/dist/app/server/assets/router-xjZtEeaI.js +7 -0
  95. package/dist/app/server/assets/router-xjZtEeaI.js.map +1 -0
  96. package/dist/app/server/assets/schema-check-Cf7QOZZD.js +9 -0
  97. package/dist/app/server/assets/schema-check-Cf7QOZZD.js.map +1 -0
  98. package/dist/app/server/assets/schemas-C2lCYmR5.js +2 -0
  99. package/dist/app/server/assets/schemas-C2lCYmR5.js.map +1 -0
  100. package/dist/app/server/assets/secp256k1-buM5g4AL.js +2 -0
  101. package/dist/app/server/assets/secp256k1-buM5g4AL.js.map +1 -0
  102. package/dist/app/server/assets/sqlite-adapter-C_LAV4e3.js +2 -0
  103. package/dist/app/server/assets/sqlite-adapter-C_LAV4e3.js.map +1 -0
  104. package/dist/app/server/assets/sqlite-introspector-DSCAP82F-Crx7Ny14.js +6 -0
  105. package/dist/app/server/assets/sqlite-introspector-DSCAP82F-Crx7Ny14.js.map +1 -0
  106. package/dist/app/server/assets/standard-json-Cg1N07hM.js +2 -0
  107. package/dist/app/server/assets/standard-json-Cg1N07hM.js.map +1 -0
  108. package/dist/app/server/assets/standard-json-DY77efq0.js +2 -0
  109. package/dist/app/server/assets/standard-json-DY77efq0.js.map +1 -0
  110. package/dist/app/server/assets/standard-json-ig2t0wRt.js +2 -0
  111. package/dist/app/server/assets/standard-json-ig2t0wRt.js.map +1 -0
  112. package/dist/app/server/assets/standard-json-t-LNckA6.js +2 -0
  113. package/dist/app/server/assets/standard-json-t-LNckA6.js.map +1 -0
  114. package/dist/app/server/assets/standard-openapi-CONmVRl8.js +2 -0
  115. package/dist/app/server/assets/standard-openapi-CONmVRl8.js.map +1 -0
  116. package/dist/app/server/assets/start-C63VetBp.js +2 -0
  117. package/dist/app/server/assets/start-C63VetBp.js.map +1 -0
  118. package/dist/app/server/assets/sury-CWZTCd75-xt1mWc9f.js +2 -0
  119. package/dist/app/server/assets/sury-CWZTCd75-xt1mWc9f.js.map +1 -0
  120. package/dist/app/server/assets/typebox-Dei93FPO-D_lCVdAz.js +2 -0
  121. package/dist/app/server/assets/typebox-Dei93FPO-D_lCVdAz.js.map +1 -0
  122. package/dist/app/server/assets/utils-C4ZXZIZW.js +2 -0
  123. package/dist/app/server/assets/utils-C4ZXZIZW.js.map +1 -0
  124. package/dist/app/server/assets/valibot--1zFm7rT-NSoY2xTp.js +2 -0
  125. package/dist/app/server/assets/valibot--1zFm7rT-NSoY2xTp.js.map +1 -0
  126. package/dist/app/server/assets/valibot-D_HTw1Gn-CJwWeOUE.js +2 -0
  127. package/dist/app/server/assets/valibot-D_HTw1Gn-CJwWeOUE.js.map +1 -0
  128. package/dist/app/server/assets/wYLDS-CaCKDrO-.svg +10 -0
  129. package/dist/app/server/assets/zod-Bwrt9trS-CV38yPnQ.js +2 -0
  130. package/dist/app/server/assets/zod-Bwrt9trS-CV38yPnQ.js.map +1 -0
  131. package/dist/app/server/assets/zod-DSgpEGAE-BvlnBE2L.js +2 -0
  132. package/dist/app/server/assets/zod-DSgpEGAE-BvlnBE2L.js.map +1 -0
  133. package/dist/app/server/index.js +574 -0
  134. package/dist/app/server/index.js.map +1 -0
  135. package/dist/app/server/wrangler.json +1 -0
  136. package/dist/cli/Admin.d.ts +38 -0
  137. package/dist/cli/Admin.d.ts.map +1 -0
  138. package/dist/cli/Admin.js +62 -0
  139. package/dist/cli/Admin.js.map +1 -0
  140. package/dist/cli/Apps.d.ts +9 -0
  141. package/dist/cli/Apps.d.ts.map +1 -0
  142. package/dist/cli/Apps.js +36 -0
  143. package/dist/cli/Apps.js.map +1 -0
  144. package/dist/cli/Cli.d.ts +14 -0
  145. package/dist/cli/Cli.d.ts.map +1 -0
  146. package/dist/cli/Cli.js +27 -0
  147. package/dist/cli/Cli.js.map +1 -0
  148. package/dist/cli/Project.d.ts +20 -0
  149. package/dist/cli/Project.d.ts.map +1 -0
  150. package/dist/cli/Project.js +88 -0
  151. package/dist/cli/Project.js.map +1 -0
  152. package/dist/cli/Realms.d.ts +24 -0
  153. package/dist/cli/Realms.d.ts.map +1 -0
  154. package/dist/cli/Realms.js +49 -0
  155. package/dist/cli/Realms.js.map +1 -0
  156. package/dist/cli/Session.d.ts +85 -0
  157. package/dist/cli/Session.d.ts.map +1 -0
  158. package/dist/cli/Session.js +178 -0
  159. package/dist/cli/Session.js.map +1 -0
  160. package/dist/cli/User.d.ts +29 -0
  161. package/dist/cli/User.d.ts.map +1 -0
  162. package/dist/cli/User.js +39 -0
  163. package/dist/cli/User.js.map +1 -0
  164. package/dist/cli/V1.d.ts +35 -0
  165. package/dist/cli/V1.d.ts.map +1 -0
  166. package/dist/cli/V1.js +41 -0
  167. package/dist/cli/V1.js.map +1 -0
  168. package/dist/cli/bin.d.ts +3 -0
  169. package/dist/cli/bin.d.ts.map +1 -0
  170. package/dist/cli/bin.js +46 -0
  171. package/dist/cli/bin.js.map +1 -0
  172. package/dist/cli/commands/admin/apps/create.d.ts +23 -0
  173. package/dist/cli/commands/admin/apps/create.d.ts.map +1 -0
  174. package/dist/cli/commands/admin/apps/create.js +89 -0
  175. package/dist/cli/commands/admin/apps/create.js.map +1 -0
  176. package/dist/cli/commands/admin/apps/delete.d.ts +14 -0
  177. package/dist/cli/commands/admin/apps/delete.d.ts.map +1 -0
  178. package/dist/cli/commands/admin/apps/delete.js +41 -0
  179. package/dist/cli/commands/admin/apps/delete.js.map +1 -0
  180. package/dist/cli/commands/admin/apps/index.d.ts +5 -0
  181. package/dist/cli/commands/admin/apps/index.d.ts.map +1 -0
  182. package/dist/cli/commands/admin/apps/index.js +14 -0
  183. package/dist/cli/commands/admin/apps/index.js.map +1 -0
  184. package/dist/cli/commands/admin/apps/list.d.ts +9 -0
  185. package/dist/cli/commands/admin/apps/list.d.ts.map +1 -0
  186. package/dist/cli/commands/admin/apps/list.js +26 -0
  187. package/dist/cli/commands/admin/apps/list.js.map +1 -0
  188. package/dist/cli/commands/admin/apps/rotate-secret.d.ts +16 -0
  189. package/dist/cli/commands/admin/apps/rotate-secret.d.ts.map +1 -0
  190. package/dist/cli/commands/admin/apps/rotate-secret.js +47 -0
  191. package/dist/cli/commands/admin/apps/rotate-secret.js.map +1 -0
  192. package/dist/cli/commands/admin/apps/update.d.ts +20 -0
  193. package/dist/cli/commands/admin/apps/update.d.ts.map +1 -0
  194. package/dist/cli/commands/admin/apps/update.js +76 -0
  195. package/dist/cli/commands/admin/apps/update.js.map +1 -0
  196. package/dist/cli/commands/admin/index.d.ts +5 -0
  197. package/dist/cli/commands/admin/index.d.ts.map +1 -0
  198. package/dist/cli/commands/admin/index.js +13 -0
  199. package/dist/cli/commands/admin/index.js.map +1 -0
  200. package/dist/cli/commands/admin/migrate.d.ts +9 -0
  201. package/dist/cli/commands/admin/migrate.d.ts.map +1 -0
  202. package/dist/cli/commands/admin/migrate.js +17 -0
  203. package/dist/cli/commands/admin/migrate.js.map +1 -0
  204. package/dist/cli/commands/admin/realms/add.d.ts +12 -0
  205. package/dist/cli/commands/admin/realms/add.d.ts.map +1 -0
  206. package/dist/cli/commands/admin/realms/add.js +42 -0
  207. package/dist/cli/commands/admin/realms/add.js.map +1 -0
  208. package/dist/cli/commands/admin/realms/index.d.ts +5 -0
  209. package/dist/cli/commands/admin/realms/index.d.ts.map +1 -0
  210. package/dist/cli/commands/admin/realms/index.js +13 -0
  211. package/dist/cli/commands/admin/realms/index.js.map +1 -0
  212. package/dist/cli/commands/admin/realms/list.d.ts +13 -0
  213. package/dist/cli/commands/admin/realms/list.d.ts.map +1 -0
  214. package/dist/cli/commands/admin/realms/list.js +36 -0
  215. package/dist/cli/commands/admin/realms/list.js.map +1 -0
  216. package/dist/cli/commands/admin/realms/passkeys/index.d.ts +5 -0
  217. package/dist/cli/commands/admin/realms/passkeys/index.d.ts.map +1 -0
  218. package/dist/cli/commands/admin/realms/passkeys/index.js +13 -0
  219. package/dist/cli/commands/admin/realms/passkeys/index.js.map +1 -0
  220. package/dist/cli/commands/admin/realms/passkeys/set.d.ts +16 -0
  221. package/dist/cli/commands/admin/realms/passkeys/set.d.ts.map +1 -0
  222. package/dist/cli/commands/admin/realms/passkeys/set.js +46 -0
  223. package/dist/cli/commands/admin/realms/passkeys/set.js.map +1 -0
  224. package/dist/cli/commands/admin/realms/privy/index.d.ts +5 -0
  225. package/dist/cli/commands/admin/realms/privy/index.d.ts.map +1 -0
  226. package/dist/cli/commands/admin/realms/privy/index.js +13 -0
  227. package/dist/cli/commands/admin/realms/privy/index.js.map +1 -0
  228. package/dist/cli/commands/admin/realms/privy/set.d.ts +18 -0
  229. package/dist/cli/commands/admin/realms/privy/set.d.ts.map +1 -0
  230. package/dist/cli/commands/admin/realms/privy/set.js +66 -0
  231. package/dist/cli/commands/admin/realms/privy/set.js.map +1 -0
  232. package/dist/cli/commands/admin/realms/remove.d.ts +11 -0
  233. package/dist/cli/commands/admin/realms/remove.d.ts.map +1 -0
  234. package/dist/cli/commands/admin/realms/remove.js +35 -0
  235. package/dist/cli/commands/admin/realms/remove.js.map +1 -0
  236. package/dist/cli/commands/admin/realms/secp256k1/disable.d.ts +15 -0
  237. package/dist/cli/commands/admin/realms/secp256k1/disable.d.ts.map +1 -0
  238. package/dist/cli/commands/admin/realms/secp256k1/disable.js +42 -0
  239. package/dist/cli/commands/admin/realms/secp256k1/disable.js.map +1 -0
  240. package/dist/cli/commands/admin/realms/secp256k1/enable.d.ts +15 -0
  241. package/dist/cli/commands/admin/realms/secp256k1/enable.d.ts.map +1 -0
  242. package/dist/cli/commands/admin/realms/secp256k1/enable.js +42 -0
  243. package/dist/cli/commands/admin/realms/secp256k1/enable.js.map +1 -0
  244. package/dist/cli/commands/admin/realms/secp256k1/index.d.ts +9 -0
  245. package/dist/cli/commands/admin/realms/secp256k1/index.d.ts.map +1 -0
  246. package/dist/cli/commands/admin/realms/secp256k1/index.js +17 -0
  247. package/dist/cli/commands/admin/realms/secp256k1/index.js.map +1 -0
  248. package/dist/cli/commands/admin/realms/set.d.ts +16 -0
  249. package/dist/cli/commands/admin/realms/set.d.ts.map +1 -0
  250. package/dist/cli/commands/admin/realms/set.js +46 -0
  251. package/dist/cli/commands/admin/realms/set.js.map +1 -0
  252. package/dist/cli/commands/admin/rotate-key.d.ts +15 -0
  253. package/dist/cli/commands/admin/rotate-key.d.ts.map +1 -0
  254. package/dist/cli/commands/admin/rotate-key.js +46 -0
  255. package/dist/cli/commands/admin/rotate-key.js.map +1 -0
  256. package/dist/cli/commands/init.d.ts +11 -0
  257. package/dist/cli/commands/init.d.ts.map +1 -0
  258. package/dist/cli/commands/init.js +34 -0
  259. package/dist/cli/commands/init.js.map +1 -0
  260. package/dist/cli/commands/login.d.ts +12 -0
  261. package/dist/cli/commands/login.d.ts.map +1 -0
  262. package/dist/cli/commands/login.js +29 -0
  263. package/dist/cli/commands/login.js.map +1 -0
  264. package/dist/cli/commands/logout.d.ts +8 -0
  265. package/dist/cli/commands/logout.d.ts.map +1 -0
  266. package/dist/cli/commands/logout.js +19 -0
  267. package/dist/cli/commands/logout.js.map +1 -0
  268. package/dist/cli/commands/whoami.d.ts +12 -0
  269. package/dist/cli/commands/whoami.d.ts.map +1 -0
  270. package/dist/cli/commands/whoami.js +24 -0
  271. package/dist/cli/commands/whoami.js.map +1 -0
  272. package/dist/client/Actions.d.ts +101 -0
  273. package/dist/client/Actions.d.ts.map +1 -0
  274. package/dist/client/Actions.js +90 -0
  275. package/dist/client/Actions.js.map +1 -0
  276. package/dist/client/Auth.d.ts +161 -0
  277. package/dist/client/Auth.d.ts.map +1 -0
  278. package/dist/client/Auth.js +113 -0
  279. package/dist/client/Auth.js.map +1 -0
  280. package/dist/client/Authorization.d.ts +29 -0
  281. package/dist/client/Authorization.d.ts.map +1 -0
  282. package/dist/client/Authorization.js +12 -0
  283. package/dist/client/Authorization.js.map +1 -0
  284. package/dist/client/Decorator.d.ts +170 -0
  285. package/dist/client/Decorator.d.ts.map +1 -0
  286. package/dist/client/Decorator.js +227 -0
  287. package/dist/client/Decorator.js.map +1 -0
  288. package/dist/client/Key.d.ts +85 -0
  289. package/dist/client/Key.d.ts.map +1 -0
  290. package/dist/client/Key.js +83 -0
  291. package/dist/client/Key.js.map +1 -0
  292. package/dist/client/Pending.d.ts +39 -0
  293. package/dist/client/Pending.d.ts.map +1 -0
  294. package/dist/client/Pending.js +12 -0
  295. package/dist/client/Pending.js.map +1 -0
  296. package/dist/client/Permissions.d.ts +34 -0
  297. package/dist/client/Permissions.d.ts.map +1 -0
  298. package/dist/client/Permissions.js +16 -0
  299. package/dist/client/Permissions.js.map +1 -0
  300. package/dist/client/Provider.d.ts +16 -0
  301. package/dist/client/Provider.d.ts.map +1 -0
  302. package/dist/client/Provider.js +12 -0
  303. package/dist/client/Provider.js.map +1 -0
  304. package/dist/client/Step.d.ts +21 -0
  305. package/dist/client/Step.d.ts.map +1 -0
  306. package/dist/client/Step.js +16 -0
  307. package/dist/client/Step.js.map +1 -0
  308. package/dist/client/Storage.d.ts +27 -0
  309. package/dist/client/Storage.d.ts.map +1 -0
  310. package/dist/client/Storage.js +16 -0
  311. package/dist/client/Storage.js.map +1 -0
  312. package/dist/client/TempoAccount.d.ts +40 -0
  313. package/dist/client/TempoAccount.d.ts.map +1 -0
  314. package/dist/client/TempoAccount.js +16 -0
  315. package/dist/client/TempoAccount.js.map +1 -0
  316. package/dist/client/Tokens.d.ts +25 -0
  317. package/dist/client/Tokens.d.ts.map +1 -0
  318. package/dist/client/Tokens.js +12 -0
  319. package/dist/client/Tokens.js.map +1 -0
  320. package/dist/client/User.d.ts +21 -0
  321. package/dist/client/User.d.ts.map +1 -0
  322. package/dist/client/User.js +12 -0
  323. package/dist/client/User.js.map +1 -0
  324. package/dist/client/actions/account.d.ts +25 -0
  325. package/dist/client/actions/account.d.ts.map +1 -0
  326. package/dist/client/actions/account.js +34 -0
  327. package/dist/client/actions/account.js.map +1 -0
  328. package/dist/client/actions/device.d.ts +53 -0
  329. package/dist/client/actions/device.d.ts.map +1 -0
  330. package/dist/client/actions/device.js +79 -0
  331. package/dist/client/actions/device.js.map +1 -0
  332. package/dist/client/actions/email.d.ts +84 -0
  333. package/dist/client/actions/email.d.ts.map +1 -0
  334. package/dist/client/actions/email.js +63 -0
  335. package/dist/client/actions/email.js.map +1 -0
  336. package/dist/client/actions/oauth.d.ts +115 -0
  337. package/dist/client/actions/oauth.d.ts.map +1 -0
  338. package/dist/client/actions/oauth.js +105 -0
  339. package/dist/client/actions/oauth.js.map +1 -0
  340. package/dist/client/actions/passkey.d.ts +88 -0
  341. package/dist/client/actions/passkey.d.ts.map +1 -0
  342. package/dist/client/actions/passkey.js +60 -0
  343. package/dist/client/actions/passkey.js.map +1 -0
  344. package/dist/client/actions/provider.d.ts +49 -0
  345. package/dist/client/actions/provider.d.ts.map +1 -0
  346. package/dist/client/actions/provider.js +34 -0
  347. package/dist/client/actions/provider.js.map +1 -0
  348. package/dist/client/actions/realm.d.ts +24 -0
  349. package/dist/client/actions/realm.d.ts.map +1 -0
  350. package/dist/client/actions/realm.js +15 -0
  351. package/dist/client/actions/realm.js.map +1 -0
  352. package/dist/client/actions/redirect.d.ts +153 -0
  353. package/dist/client/actions/redirect.d.ts.map +1 -0
  354. package/dist/client/actions/redirect.js +236 -0
  355. package/dist/client/actions/redirect.js.map +1 -0
  356. package/dist/client/internal/accessKey.d.ts +21 -0
  357. package/dist/client/internal/accessKey.d.ts.map +1 -0
  358. package/dist/client/internal/accessKey.js +38 -0
  359. package/dist/client/internal/accessKey.js.map +1 -0
  360. package/dist/client/internal/account.d.ts +14 -0
  361. package/dist/client/internal/account.d.ts.map +1 -0
  362. package/dist/client/internal/account.js +3 -0
  363. package/dist/client/internal/account.js.map +1 -0
  364. package/dist/client/internal/api.d.ts +106 -0
  365. package/dist/client/internal/api.d.ts.map +1 -0
  366. package/dist/client/internal/api.js +129 -0
  367. package/dist/client/internal/api.js.map +1 -0
  368. package/dist/client/internal/headless.d.ts +33 -0
  369. package/dist/client/internal/headless.d.ts.map +1 -0
  370. package/dist/client/internal/headless.js +46 -0
  371. package/dist/client/internal/headless.js.map +1 -0
  372. package/dist/client/internal/indexedDb.d.ts +9 -0
  373. package/dist/client/internal/indexedDb.d.ts.map +1 -0
  374. package/dist/client/internal/indexedDb.js +32 -0
  375. package/dist/client/internal/indexedDb.js.map +1 -0
  376. package/dist/client/internal/request.d.ts +58 -0
  377. package/dist/client/internal/request.d.ts.map +1 -0
  378. package/dist/client/internal/request.js +45 -0
  379. package/dist/client/internal/request.js.map +1 -0
  380. package/dist/client/internal/store.d.ts +12 -0
  381. package/dist/client/internal/store.d.ts.map +1 -0
  382. package/dist/client/internal/store.js +15 -0
  383. package/dist/client/internal/store.js.map +1 -0
  384. package/dist/client.d.ts +20 -0
  385. package/dist/client.d.ts.map +1 -0
  386. package/dist/client.js +20 -0
  387. package/dist/client.js.map +1 -0
  388. package/dist/index.d.ts +7 -0
  389. package/dist/index.d.ts.map +1 -0
  390. package/dist/index.js +7 -0
  391. package/dist/index.js.map +1 -0
  392. package/dist/internal/Apps.d.ts +3051 -0
  393. package/dist/internal/Apps.d.ts.map +1 -0
  394. package/dist/internal/Apps.js +472 -0
  395. package/dist/internal/Apps.js.map +1 -0
  396. package/dist/internal/Auth.d.ts +4058 -0
  397. package/dist/internal/Auth.d.ts.map +1 -0
  398. package/dist/internal/Auth.js +137 -0
  399. package/dist/internal/Auth.js.map +1 -0
  400. package/dist/internal/Authorize.d.ts +532 -0
  401. package/dist/internal/Authorize.d.ts.map +1 -0
  402. package/dist/internal/Authorize.js +326 -0
  403. package/dist/internal/Authorize.js.map +1 -0
  404. package/dist/internal/Device.d.ts +371 -0
  405. package/dist/internal/Device.d.ts.map +1 -0
  406. package/dist/internal/Device.js +271 -0
  407. package/dist/internal/Device.js.map +1 -0
  408. package/dist/internal/Env.d.ts +57 -0
  409. package/dist/internal/Env.d.ts.map +1 -0
  410. package/dist/internal/Env.js +2 -0
  411. package/dist/internal/Env.js.map +1 -0
  412. package/dist/internal/ErrorResponse.d.ts +609 -0
  413. package/dist/internal/ErrorResponse.d.ts.map +1 -0
  414. package/dist/internal/ErrorResponse.js +679 -0
  415. package/dist/internal/ErrorResponse.js.map +1 -0
  416. package/dist/internal/Id.d.ts +10 -0
  417. package/dist/internal/Id.d.ts.map +1 -0
  418. package/dist/internal/Id.js +34 -0
  419. package/dist/internal/Id.js.map +1 -0
  420. package/dist/internal/KeyAuthorization.d.ts +1456 -0
  421. package/dist/internal/KeyAuthorization.d.ts.map +1 -0
  422. package/dist/internal/KeyAuthorization.js +1030 -0
  423. package/dist/internal/KeyAuthorization.js.map +1 -0
  424. package/dist/internal/Limits.d.ts +65 -0
  425. package/dist/internal/Limits.d.ts.map +1 -0
  426. package/dist/internal/Limits.js +35 -0
  427. package/dist/internal/Limits.js.map +1 -0
  428. package/dist/internal/Log.d.ts +49 -0
  429. package/dist/internal/Log.d.ts.map +1 -0
  430. package/dist/internal/Log.js +101 -0
  431. package/dist/internal/Log.js.map +1 -0
  432. package/dist/internal/LogLine.d.ts +33 -0
  433. package/dist/internal/LogLine.d.ts.map +1 -0
  434. package/dist/internal/LogLine.js +56 -0
  435. package/dist/internal/LogLine.js.map +1 -0
  436. package/dist/internal/Migrations.d.ts +19 -0
  437. package/dist/internal/Migrations.d.ts.map +1 -0
  438. package/dist/internal/Migrations.js +57 -0
  439. package/dist/internal/Migrations.js.map +1 -0
  440. package/dist/internal/Owner.d.ts +146 -0
  441. package/dist/internal/Owner.d.ts.map +1 -0
  442. package/dist/internal/Owner.js +65 -0
  443. package/dist/internal/Owner.js.map +1 -0
  444. package/dist/internal/Passkey.d.ts +528 -0
  445. package/dist/internal/Passkey.d.ts.map +1 -0
  446. package/dist/internal/Passkey.js +658 -0
  447. package/dist/internal/Passkey.js.map +1 -0
  448. package/dist/internal/PendingKey.d.ts +49 -0
  449. package/dist/internal/PendingKey.d.ts.map +1 -0
  450. package/dist/internal/PendingKey.js +58 -0
  451. package/dist/internal/PendingKey.js.map +1 -0
  452. package/dist/internal/Privy.d.ts +105 -0
  453. package/dist/internal/Privy.d.ts.map +1 -0
  454. package/dist/internal/Privy.js +224 -0
  455. package/dist/internal/Privy.js.map +1 -0
  456. package/dist/internal/RateLimit.d.ts +190 -0
  457. package/dist/internal/RateLimit.d.ts.map +1 -0
  458. package/dist/internal/RateLimit.js +148 -0
  459. package/dist/internal/RateLimit.js.map +1 -0
  460. package/dist/internal/Realm.d.ts +281 -0
  461. package/dist/internal/Realm.d.ts.map +1 -0
  462. package/dist/internal/Realm.js +477 -0
  463. package/dist/internal/Realm.js.map +1 -0
  464. package/dist/internal/RequestId.d.ts +16 -0
  465. package/dist/internal/RequestId.d.ts.map +1 -0
  466. package/dist/internal/RequestId.js +78 -0
  467. package/dist/internal/RequestId.js.map +1 -0
  468. package/dist/internal/SigningKey.d.ts +115 -0
  469. package/dist/internal/SigningKey.d.ts.map +1 -0
  470. package/dist/internal/SigningKey.js +197 -0
  471. package/dist/internal/SigningKey.js.map +1 -0
  472. package/dist/internal/TestInbox.d.ts +42 -0
  473. package/dist/internal/TestInbox.d.ts.map +1 -0
  474. package/dist/internal/TestInbox.js +20 -0
  475. package/dist/internal/TestInbox.js.map +1 -0
  476. package/dist/internal/Timing.d.ts +51 -0
  477. package/dist/internal/Timing.d.ts.map +1 -0
  478. package/dist/internal/Timing.js +103 -0
  479. package/dist/internal/Timing.js.map +1 -0
  480. package/dist/internal/Validation.d.ts +52 -0
  481. package/dist/internal/Validation.d.ts.map +1 -0
  482. package/dist/internal/Validation.js +22 -0
  483. package/dist/internal/Validation.js.map +1 -0
  484. package/dist/internal/Wallet.d.ts +37 -0
  485. package/dist/internal/Wallet.d.ts.map +1 -0
  486. package/dist/internal/Wallet.js +43 -0
  487. package/dist/internal/Wallet.js.map +1 -0
  488. package/dist/worker.d.ts +12 -0
  489. package/dist/worker.d.ts.map +1 -0
  490. package/dist/worker.js +12 -0
  491. package/dist/worker.js.map +1 -0
  492. package/package.json +79 -3
  493. package/src/Api.ts +151 -0
  494. package/src/App.ts +56 -0
  495. package/src/api/account.ts +311 -0
  496. package/src/api/authenticate.ts +1290 -0
  497. package/src/api/authorize.ts +1030 -0
  498. package/src/api/device.ts +874 -0
  499. package/src/api/health.ts +72 -0
  500. package/src/api/lib/AccountStep.ts +335 -0
  501. package/src/api/lib/Auth.ts +134 -0
  502. package/src/api/lib/Consent.ts +339 -0
  503. package/src/api/lib/Cors.ts +107 -0
  504. package/src/api/lib/Database.ts +10 -0
  505. package/src/api/lib/DeviceRequest.ts +265 -0
  506. package/src/api/lib/FirstAccount.ts +90 -0
  507. package/src/api/lib/KeySigner.ts +393 -0
  508. package/src/api/lib/PasskeyLink.ts +162 -0
  509. package/src/api/lib/Session.ts +34 -0
  510. package/src/api/lib/SignInConsent.ts +316 -0
  511. package/src/api/oauth.ts +1282 -0
  512. package/src/api/provider.ts +441 -0
  513. package/src/app/components/Button.tsx +128 -0
  514. package/src/app/components/CodeInput.tsx +186 -0
  515. package/src/app/components/ErrorMessage.tsx +66 -0
  516. package/src/app/components/Grant.tsx +323 -0
  517. package/src/app/components/Input.tsx +48 -0
  518. package/src/app/components/Tooltip.tsx +45 -0
  519. package/src/app/components/icons/BRLA.png +0 -0
  520. package/src/app/components/icons/BRZ.svg +1 -0
  521. package/src/app/components/icons/CHFAU.png +0 -0
  522. package/src/app/components/icons/DLUSD.png +0 -0
  523. package/src/app/components/icons/EURAU.svg +1 -0
  524. package/src/app/components/icons/EURC.e.svg +1 -0
  525. package/src/app/components/icons/GBPA.svg +4 -0
  526. package/src/app/components/icons/GUSD.svg +1 -0
  527. package/src/app/components/icons/MACH.svg +4 -0
  528. package/src/app/components/icons/OUSD.svg +5 -0
  529. package/src/app/components/icons/PRIME.svg +14 -0
  530. package/src/app/components/icons/SBC.svg +1 -0
  531. package/src/app/components/icons/SEKAU.svg +5 -0
  532. package/src/app/components/icons/USD1.svg +30 -0
  533. package/src/app/components/icons/USDB.svg +11 -0
  534. package/src/app/components/icons/USDC.e.svg +1 -0
  535. package/src/app/components/icons/USDT0.svg +1 -0
  536. package/src/app/components/icons/USDY.svg +16 -0
  537. package/src/app/components/icons/USDe.svg +1 -0
  538. package/src/app/components/icons/YLDS.svg +3 -0
  539. package/src/app/components/icons/alphaUSD.svg +1 -0
  540. package/src/app/components/icons/betaUSD.svg +1 -0
  541. package/src/app/components/icons/cUSD.svg +1 -0
  542. package/src/app/components/icons/cbBTC.svg +1 -0
  543. package/src/app/components/icons/frxUSD.svg +1 -0
  544. package/src/app/components/icons/goUSD.svg +5 -0
  545. package/src/app/components/icons/iUSD.svg +1 -0
  546. package/src/app/components/icons/pathUSD.svg +25 -0
  547. package/src/app/components/icons/rUSD.svg +1 -0
  548. package/src/app/components/icons/reUSD.svg +1 -0
  549. package/src/app/components/icons/sUSDe.svg +1 -0
  550. package/src/app/components/icons/siUSD.svg +1 -0
  551. package/src/app/components/icons/stcUSD.svg +1 -0
  552. package/src/app/components/icons/syrupUSDC.svg +5 -0
  553. package/src/app/components/icons/thetaUSD.svg +1 -0
  554. package/src/app/components/icons/wYLDS.svg +10 -0
  555. package/src/app/components/icons/wsrUSD.svg +1 -0
  556. package/src/app/components/logos/OUSD.dark.svg +17 -0
  557. package/src/app/components/logos/OUSD.light.svg +17 -0
  558. package/src/app/crons/cleanup.ts +42 -0
  559. package/src/app/db/auth.ts +416 -0
  560. package/src/app/db/migrations/0000_better_auth.sql +53 -0
  561. package/src/app/db/migrations/0001_oauth_provider.sql +162 -0
  562. package/src/app/db/migrations/0002_device_code.sql +17 -0
  563. package/src/app/db/migrations/0003_realms.sql +27 -0
  564. package/src/app/db/migrations/0004_default_realm.sql +2 -0
  565. package/src/app/db/migrations/0005_passkeys.sql +30 -0
  566. package/src/app/db/migrations/0006_first_accounts.sql +9 -0
  567. package/src/app/db/migrations/0007_pending_keys.sql +13 -0
  568. package/src/app/db/migrations/0008_secp256k1_owners.sql +18 -0
  569. package/src/app/db/migrations/0009_device_requests.sql +8 -0
  570. package/src/app/db/migrations/0010_device_keys.sql +4 -0
  571. package/src/app/db/migrations/meta/0000_snapshot.json +362 -0
  572. package/src/app/db/migrations/meta/0001_snapshot.json +1487 -0
  573. package/src/app/db/migrations/meta/0002_snapshot.json +1603 -0
  574. package/src/app/db/migrations/meta/0003_snapshot.json +1760 -0
  575. package/src/app/db/migrations/meta/0004_snapshot.json +1760 -0
  576. package/src/app/db/migrations/meta/0005_snapshot.json +1911 -0
  577. package/src/app/db/migrations/meta/0006_snapshot.json +1967 -0
  578. package/src/app/db/migrations/meta/0007_snapshot.json +2047 -0
  579. package/src/app/db/migrations/meta/0008_snapshot.json +2157 -0
  580. package/src/app/db/migrations/meta/0009_snapshot.json +2207 -0
  581. package/src/app/db/migrations/meta/0010_snapshot.json +2231 -0
  582. package/src/app/db/migrations/meta/_journal.json +83 -0
  583. package/src/app/db/schema.ts +218 -0
  584. package/src/app/env.ts +49 -0
  585. package/src/app/lib/Client.ts +82 -0
  586. package/src/app/lib/Loader.ts +24 -0
  587. package/src/app/package.json +8 -0
  588. package/src/app/routeTree.gen.ts +198 -0
  589. package/src/app/router.tsx +48 -0
  590. package/src/app/routes/[_].flows.tsx +3001 -0
  591. package/src/app/routes/__root.tsx +91 -0
  592. package/src/app/routes/authorize.tsx +197 -0
  593. package/src/app/routes/choose-account.tsx +111 -0
  594. package/src/app/routes/deposit.tsx +105 -0
  595. package/src/app/routes/device.tsx +227 -0
  596. package/src/app/routes/index.tsx +115 -0
  597. package/src/app/routes/login.tsx +506 -0
  598. package/src/app/screens/Account.tsx +347 -0
  599. package/src/app/screens/Approval.tsx +276 -0
  600. package/src/app/screens/ChooseAccount.tsx +240 -0
  601. package/src/app/screens/Deposit.tsx +762 -0
  602. package/src/app/screens/DeviceApproval.tsx +480 -0
  603. package/src/app/screens/SignIn.tsx +362 -0
  604. package/src/app/screens/chains/base.svg +3 -0
  605. package/src/app/screens/chains/ethereum.svg +11 -0
  606. package/src/app/screens/chains/solana.svg +4 -0
  607. package/src/app/screens/chains/tempo.svg +4 -0
  608. package/src/app/server.ts +204 -0
  609. package/src/app/vite.config.ts +95 -0
  610. package/src/app/void.config.ts +29 -0
  611. package/src/app/zyzz.config.ts +274 -0
  612. package/src/cli/Admin.ts +73 -0
  613. package/src/cli/Apps.ts +29 -0
  614. package/src/cli/Cli.ts +42 -0
  615. package/src/cli/Project.ts +117 -0
  616. package/src/cli/Realms.ts +50 -0
  617. package/src/cli/Session.ts +239 -0
  618. package/src/cli/User.ts +45 -0
  619. package/src/cli/V1.ts +57 -0
  620. package/src/cli/bin.ts +44 -0
  621. package/src/cli/commands/admin/apps/create.ts +101 -0
  622. package/src/cli/commands/admin/apps/delete.ts +38 -0
  623. package/src/cli/commands/admin/apps/index.ts +15 -0
  624. package/src/cli/commands/admin/apps/list.ts +25 -0
  625. package/src/cli/commands/admin/apps/rotate-secret.ts +47 -0
  626. package/src/cli/commands/admin/apps/update.ts +86 -0
  627. package/src/cli/commands/admin/index.ts +14 -0
  628. package/src/cli/commands/admin/migrate.ts +16 -0
  629. package/src/cli/commands/admin/realms/add.ts +40 -0
  630. package/src/cli/commands/admin/realms/index.ts +14 -0
  631. package/src/cli/commands/admin/realms/list.ts +38 -0
  632. package/src/cli/commands/admin/realms/passkeys/index.ts +15 -0
  633. package/src/cli/commands/admin/realms/passkeys/set.ts +44 -0
  634. package/src/cli/commands/admin/realms/privy/index.ts +14 -0
  635. package/src/cli/commands/admin/realms/privy/set.ts +69 -0
  636. package/src/cli/commands/admin/realms/remove.ts +33 -0
  637. package/src/cli/commands/admin/realms/secp256k1/disable.ts +40 -0
  638. package/src/cli/commands/admin/realms/secp256k1/enable.ts +40 -0
  639. package/src/cli/commands/admin/realms/secp256k1/index.ts +19 -0
  640. package/src/cli/commands/admin/realms/set.ts +46 -0
  641. package/src/cli/commands/admin/rotate-key.ts +47 -0
  642. package/src/cli/commands/init.ts +42 -0
  643. package/src/cli/commands/login.ts +32 -0
  644. package/src/cli/commands/logout.ts +19 -0
  645. package/src/cli/commands/whoami.ts +23 -0
  646. package/src/client/Actions.ts +168 -0
  647. package/src/client/Auth.ts +285 -0
  648. package/src/client/Authorization.ts +34 -0
  649. package/src/client/Decorator.ts +410 -0
  650. package/src/client/Key.ts +140 -0
  651. package/src/client/Pending.ts +46 -0
  652. package/src/client/Permissions.ts +39 -0
  653. package/src/client/Provider.ts +18 -0
  654. package/src/client/Step.ts +24 -0
  655. package/src/client/Storage.ts +29 -0
  656. package/src/client/TempoAccount.ts +42 -0
  657. package/src/client/Tokens.ts +27 -0
  658. package/src/client/User.ts +23 -0
  659. package/src/client/actions/account.ts +57 -0
  660. package/src/client/actions/device.ts +151 -0
  661. package/src/client/actions/email.ts +141 -0
  662. package/src/client/actions/oauth.ts +182 -0
  663. package/src/client/actions/passkey.ts +141 -0
  664. package/src/client/actions/provider.ts +70 -0
  665. package/src/client/actions/realm.ts +36 -0
  666. package/src/client/actions/redirect.ts +408 -0
  667. package/src/client/internal/accessKey.ts +54 -0
  668. package/src/client/internal/account.ts +15 -0
  669. package/src/client/internal/api.ts +224 -0
  670. package/src/client/internal/headless.ts +77 -0
  671. package/src/client/internal/indexedDb.ts +44 -0
  672. package/src/client/internal/request.ts +71 -0
  673. package/src/client/internal/store.ts +20 -0
  674. package/src/client.ts +19 -0
  675. package/src/index.ts +6 -0
  676. package/src/internal/Apps.ts +718 -0
  677. package/src/internal/Auth.ts +203 -0
  678. package/src/internal/Authorize.ts +424 -0
  679. package/src/internal/Balance.ts +168 -0
  680. package/src/internal/BodyLimit.ts +36 -0
  681. package/src/internal/Chain.ts +16 -0
  682. package/src/internal/Device.ts +469 -0
  683. package/src/internal/Env.ts +58 -0
  684. package/src/internal/ErrorResponse.ts +854 -0
  685. package/src/internal/Id.ts +41 -0
  686. package/src/internal/KeyAuthorization.ts +1339 -0
  687. package/src/internal/Limits.ts +39 -0
  688. package/src/internal/Log.ts +178 -0
  689. package/src/internal/LogLine.ts +87 -0
  690. package/src/internal/Logout.ts +336 -0
  691. package/src/internal/Migrations.ts +86 -0
  692. package/src/internal/OpenApi.ts +300 -0
  693. package/src/internal/Owner.ts +211 -0
  694. package/src/internal/Passkey.ts +1052 -0
  695. package/src/internal/PendingKey.ts +104 -0
  696. package/src/internal/Privy.ts +402 -0
  697. package/src/internal/Provider.ts +125 -0
  698. package/src/internal/RateLimit.ts +259 -0
  699. package/src/internal/Realm.ts +768 -0
  700. package/src/internal/RequestId.ts +118 -0
  701. package/src/internal/SignInGrant.ts +168 -0
  702. package/src/internal/SigningKey.ts +286 -0
  703. package/src/internal/TempoAccount.ts +342 -0
  704. package/src/internal/TestInbox.ts +51 -0
  705. package/src/internal/Timing.ts +158 -0
  706. package/src/internal/Validation.ts +52 -0
  707. package/src/internal/Wallet.ts +62 -0
  708. package/src/internal/owners/Passkey.ts +72 -0
  709. package/src/internal/owners/Privy.ts +81 -0
  710. package/src/internal/owners/Secp256k1.ts +143 -0
  711. package/src/types/app.d.ts +19 -0
  712. package/src/worker.ts +11 -0
@@ -0,0 +1,86 @@
1
+ /**
2
+ * `tempo-id admin apps update`: changes an OAuth app. A value left out stays.
3
+ * @module
4
+ */
5
+ import { Cli, z } from 'incur'
6
+ import * as Admin from '../../../Admin.js'
7
+
8
+ export default Cli.command({
9
+ args: z.object({
10
+ clientId: z.string().describe("OAuth app's client ID."),
11
+ }),
12
+ description:
13
+ "Change an app's name, redirect URIs, post-logout redirect URIs, or scopes. A value left out stays.",
14
+ env: Admin.env,
15
+ // Hidden from MCP clients, as is every `admin apps` command, since the group returns client secrets.
16
+ mcp: false,
17
+ options: Admin.options.extend({
18
+ clearPostLogoutRedirectUris: z
19
+ .boolean()
20
+ .default(false)
21
+ .describe(
22
+ 'Remove every post-logout redirect URI. Logout then ends the session without a redirect.',
23
+ ),
24
+ name: z.string().optional().describe('Display name.'),
25
+ postLogoutRedirectUri: z
26
+ .array(z.string())
27
+ .optional()
28
+ .describe(
29
+ 'URI that the app returns to after it ends the session. Repeat the flag for each URI. The URIs replace the earlier ones.',
30
+ ),
31
+ redirectUri: z
32
+ .array(z.string())
33
+ .optional()
34
+ .describe(
35
+ 'Redirect URI. Repeat the flag for each URI. The URIs replace the earlier ones.',
36
+ ),
37
+ sign: z
38
+ .boolean()
39
+ .optional()
40
+ .describe('Grant the tempo-id:sign scope, or remove it with --no-sign.'),
41
+ skipConsent: z
42
+ .boolean()
43
+ .optional()
44
+ .describe(
45
+ 'Skip the approval page for requests without a key, or show it with --no-skip-consent.',
46
+ ),
47
+ }),
48
+ async run(c) {
49
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
50
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
51
+
52
+ const Apps = await Admin.loadApps()
53
+ if (!Apps) return c.error(Admin.missingPeers)
54
+
55
+ if (
56
+ c.options.clearPostLogoutRedirectUris &&
57
+ c.options.postLogoutRedirectUri
58
+ )
59
+ return c.error({
60
+ code: 'invalid_app',
61
+ message:
62
+ 'Invalid options: --clear-post-logout-redirect-uris and --post-logout-redirect-uri conflict. Pass one of them.',
63
+ })
64
+
65
+ const client = Apps.connect({ connectionString })
66
+ try {
67
+ const app = await Apps.Apps.update(client.db, {
68
+ clientId: c.args.clientId,
69
+ name: c.options.name,
70
+ postLogoutRedirectUris: c.options.clearPostLogoutRedirectUris
71
+ ? []
72
+ : c.options.postLogoutRedirectUri,
73
+ redirectUris: c.options.redirectUri,
74
+ sign: c.options.sign,
75
+ skipConsent: c.options.skipConsent,
76
+ })
77
+ return { app }
78
+ } catch (error) {
79
+ const refusal = Apps.error(error)
80
+ if (refusal) return c.error(refusal)
81
+ throw error
82
+ } finally {
83
+ await client.end()
84
+ }
85
+ },
86
+ })
@@ -0,0 +1,14 @@
1
+ /** `tempo-id admin`: the commands that reach a Tempo ID database directly. @module */
2
+ import { Cli } from 'incur'
3
+
4
+ export default Cli.command({
5
+ description: 'Operate a Tempo ID database.',
6
+ mcp: false,
7
+ run(c) {
8
+ return c.error({
9
+ code: 'missing_command',
10
+ message:
11
+ 'Missing command. Run `tempo-id admin --help` to list the commands.',
12
+ })
13
+ },
14
+ })
@@ -0,0 +1,16 @@
1
+ /** `tempo-id admin migrate`: applies the package's pending migrations. @module */
2
+ import { Cli } from 'incur'
3
+ import * as Migrations from '../../../internal/Migrations.js'
4
+ import * as Admin from '../../Admin.js'
5
+
6
+ export default Cli.command({
7
+ description: "Apply the package's pending migrations.",
8
+ env: Admin.env,
9
+ mcp: false,
10
+ options: Admin.options,
11
+ async run(c) {
12
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
13
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
14
+ return await Migrations.apply({ connectionString })
15
+ },
16
+ })
@@ -0,0 +1,40 @@
1
+ /** `tempo-id admin realms add`: adds a realm, a new set of Tempo Accounts. @module */
2
+ import { Cli, z } from 'incur'
3
+ import * as Admin from '../../../Admin.js'
4
+
5
+ export default Cli.command({
6
+ args: z.object({
7
+ id: z
8
+ .string()
9
+ .describe('Realm ID, in lowercase kebab case, such as tempo-cash.'),
10
+ }),
11
+ description:
12
+ 'Add a realm. Set its owner configurations, such as its Privy app, with their own commands.',
13
+ env: Admin.env,
14
+ mcp: false,
15
+ options: Admin.options.extend({
16
+ name: z.string().describe('Display name, such as "Tempo Cash".'),
17
+ }),
18
+ async run(c) {
19
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
20
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
21
+
22
+ const Realms = await Admin.loadRealms()
23
+ if (!Realms) return c.error(Admin.missingPeers)
24
+
25
+ const client = Realms.connect({ connectionString })
26
+ try {
27
+ const realm = await Realms.Realm.add(client.db, {
28
+ id: c.args.id,
29
+ name: c.options.name,
30
+ })
31
+ return { realm }
32
+ } catch (error) {
33
+ const refusal = Realms.error(error)
34
+ if (refusal) return c.error(refusal)
35
+ throw error
36
+ } finally {
37
+ await client.end()
38
+ }
39
+ },
40
+ })
@@ -0,0 +1,14 @@
1
+ /** `tempo-id admin realms`: the commands that define realms and the realms of each app. @module */
2
+ import { Cli } from 'incur'
3
+
4
+ export default Cli.command({
5
+ description: 'Manage realms, and the realms that each app reaches.',
6
+ mcp: false,
7
+ run(c) {
8
+ return c.error({
9
+ code: 'missing_command',
10
+ message:
11
+ 'Missing command. Run `tempo-id admin realms --help` to list the commands.',
12
+ })
13
+ },
14
+ })
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `tempo-id admin realms list`: lists every realm, or the realms of one app in order.
3
+ * @module
4
+ */
5
+ import { Cli, z } from 'incur'
6
+ import * as Admin from '../../../Admin.js'
7
+
8
+ export default Cli.command({
9
+ description:
10
+ 'List every realm, or the realms that one app reaches, in order.',
11
+ env: Admin.env,
12
+ mcp: false,
13
+ options: Admin.options.extend({
14
+ clientId: z
15
+ .string()
16
+ .optional()
17
+ .describe(
18
+ "OAuth app's client ID. Lists the app's realms instead of every realm.",
19
+ ),
20
+ }),
21
+ async run(c) {
22
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
23
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
24
+
25
+ const Realms = await Admin.loadRealms()
26
+ if (!Realms) return c.error(Admin.missingPeers)
27
+
28
+ const client = Realms.connect({ connectionString })
29
+ try {
30
+ const realms = c.options.clientId
31
+ ? await Realms.Realm.forApp(client.db, { clientId: c.options.clientId })
32
+ : await Realms.Realm.list(client.db)
33
+ return { realms }
34
+ } finally {
35
+ await client.end()
36
+ }
37
+ },
38
+ })
@@ -0,0 +1,15 @@
1
+ /** `tempo-id admin realms passkeys`: the commands that set the passkey relying party of a realm. @module */
2
+ import { Cli } from 'incur'
3
+
4
+ export default Cli.command({
5
+ description:
6
+ "Manage the passkey relying party whose passkeys own a realm's accounts.",
7
+ mcp: false,
8
+ run(c) {
9
+ return c.error({
10
+ code: 'missing_command',
11
+ message:
12
+ 'Missing command. Run `tempo-id admin realms passkeys --help` to list the commands.',
13
+ })
14
+ },
15
+ })
@@ -0,0 +1,44 @@
1
+ /**
2
+ * `tempo-id admin realms passkeys set`: sets the passkey relying party of a realm, whose passkeys
3
+ * then sign in and own accounts in it.
4
+ * @module
5
+ */
6
+ import { Cli, z } from 'incur'
7
+ import * as Admin from '../../../../Admin.js'
8
+
9
+ export default Cli.command({
10
+ args: z.object({
11
+ realmId: z.string().describe('Realm ID, such as default.'),
12
+ }),
13
+ description:
14
+ "Set the passkey relying party whose passkeys own a realm's accounts. It replaces an earlier relying party.",
15
+ env: Admin.env,
16
+ mcp: false,
17
+ options: Admin.options.extend({
18
+ rpId: z
19
+ .string()
20
+ .describe('Relying party ID, a registrable domain such as tempo.xyz.'),
21
+ }),
22
+ async run(c) {
23
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
24
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
25
+
26
+ const Realms = await Admin.loadRealms()
27
+ if (!Realms) return c.error(Admin.missingPeers)
28
+
29
+ const client = Realms.connect({ connectionString })
30
+ try {
31
+ const realm = await Realms.Realm.setPasskeys(client.db, {
32
+ realmId: c.args.realmId,
33
+ rpId: c.options.rpId,
34
+ })
35
+ return { realm }
36
+ } catch (error) {
37
+ const refusal = Realms.error(error)
38
+ if (refusal) return c.error(refusal)
39
+ throw error
40
+ } finally {
41
+ await client.end()
42
+ }
43
+ },
44
+ })
@@ -0,0 +1,14 @@
1
+ /** `tempo-id admin realms privy`: the commands that set the Privy app of a realm. @module */
2
+ import { Cli } from 'incur'
3
+
4
+ export default Cli.command({
5
+ description: "Manage the Privy app that holds a realm's Privy owners.",
6
+ mcp: false,
7
+ run(c) {
8
+ return c.error({
9
+ code: 'missing_command',
10
+ message:
11
+ 'Missing command. Run `tempo-id admin realms privy --help` to list the commands.',
12
+ })
13
+ },
14
+ })
@@ -0,0 +1,69 @@
1
+ /**
2
+ * `tempo-id admin realms privy set`: sets the Privy app of a realm. The database holds the app
3
+ * secret only encrypted with `SECRET`.
4
+ * @module
5
+ */
6
+ import { Cli, z } from 'incur'
7
+ import * as Admin from '../../../../Admin.js'
8
+
9
+ export default Cli.command({
10
+ args: z.object({
11
+ realmId: z.string().describe('Realm ID, such as tempo-cash.'),
12
+ }),
13
+ description:
14
+ "Set the Privy app that holds a realm's Privy owners. It replaces an earlier Privy app.",
15
+ env: Admin.env.extend({
16
+ PRIVY_APP_SECRET: z
17
+ .string()
18
+ .optional()
19
+ .describe(
20
+ 'Privy app secret. No flag takes it, so it stays out of the shell history.',
21
+ ),
22
+ SECRET: z
23
+ .string()
24
+ .optional()
25
+ .describe(
26
+ "The deployment's SECRET variable, which encrypts the app secret.",
27
+ ),
28
+ }),
29
+ mcp: false,
30
+ options: Admin.options.extend({
31
+ appId: z.string().describe('Privy app ID.'),
32
+ }),
33
+ async run(c) {
34
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
35
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
36
+ const appSecret = c.env.PRIVY_APP_SECRET
37
+ if (!appSecret)
38
+ return c.error({
39
+ code: 'missing_app_secret',
40
+ message: 'Missing Privy app secret. Set PRIVY_APP_SECRET.',
41
+ })
42
+ if (!c.env.SECRET)
43
+ return c.error({
44
+ code: 'missing_secret',
45
+ message:
46
+ "Missing SECRET. Set it to the deployment's SECRET variable, which encrypts the app secret.",
47
+ })
48
+
49
+ const Realms = await Admin.loadRealms()
50
+ if (!Realms) return c.error(Admin.missingPeers)
51
+
52
+ const client = Realms.connect({ connectionString })
53
+ try {
54
+ const realm = await Realms.Realm.setPrivy(client.db, {
55
+ appId: c.options.appId,
56
+ appSecret,
57
+ realmId: c.args.realmId,
58
+ secret: c.env.SECRET,
59
+ })
60
+ return { realm }
61
+ } catch (error) {
62
+ const refusal = Realms.error(error)
63
+ if (refusal) return c.error(refusal)
64
+ throw error
65
+ } finally {
66
+ await client.end()
67
+ }
68
+ },
69
+ })
@@ -0,0 +1,33 @@
1
+ /** `tempo-id admin realms remove`: removes a realm that no app reaches. @module */
2
+ import { Cli, z } from 'incur'
3
+ import * as Admin from '../../../Admin.js'
4
+
5
+ export default Cli.command({
6
+ args: z.object({
7
+ id: z.string().describe('Realm ID, such as tempo-cash.'),
8
+ }),
9
+ description:
10
+ 'Remove a realm and its owner configurations. No app can name it.',
11
+ env: Admin.env,
12
+ mcp: false,
13
+ options: Admin.options,
14
+ async run(c) {
15
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
16
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
17
+
18
+ const Realms = await Admin.loadRealms()
19
+ if (!Realms) return c.error(Admin.missingPeers)
20
+
21
+ const client = Realms.connect({ connectionString })
22
+ try {
23
+ await Realms.Realm.remove(client.db, { id: c.args.id })
24
+ return { removed: c.args.id }
25
+ } catch (error) {
26
+ const refusal = Realms.error(error)
27
+ if (refusal) return c.error(refusal)
28
+ throw error
29
+ } finally {
30
+ await client.end()
31
+ }
32
+ },
33
+ })
@@ -0,0 +1,40 @@
1
+ /**
2
+ * `tempo-id admin realms secp256k1 disable`: turns off the secp256k1 owners that Tempo ID holds in a
3
+ * realm. The realm keeps the keys it holds, and lists them again when turned on.
4
+ * @module
5
+ */
6
+ import { Cli, z } from 'incur'
7
+ import * as Admin from '../../../../Admin.js'
8
+
9
+ export default Cli.command({
10
+ args: z.object({
11
+ realmId: z.string().describe('Realm ID, such as default.'),
12
+ }),
13
+ description:
14
+ 'Turn off the secp256k1 owners that Tempo ID holds in a realm. The realm keeps its stored keys.',
15
+ env: Admin.env,
16
+ mcp: false,
17
+ options: Admin.options,
18
+ async run(c) {
19
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
20
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
21
+
22
+ const Realms = await Admin.loadRealms()
23
+ if (!Realms) return c.error(Admin.missingPeers)
24
+
25
+ const client = Realms.connect({ connectionString })
26
+ try {
27
+ const realm = await Realms.Realm.setSecp256k1(client.db, {
28
+ enabled: false,
29
+ realmId: c.args.realmId,
30
+ })
31
+ return { realm }
32
+ } catch (error) {
33
+ const refusal = Realms.error(error)
34
+ if (refusal) return c.error(refusal)
35
+ throw error
36
+ } finally {
37
+ await client.end()
38
+ }
39
+ },
40
+ })
@@ -0,0 +1,40 @@
1
+ /**
2
+ * `tempo-id admin realms secp256k1 enable`: turns on the secp256k1 owners that Tempo ID holds in a
3
+ * realm, which then creates a user's first account there with a key that Tempo ID holds.
4
+ * @module
5
+ */
6
+ import { Cli, z } from 'incur'
7
+ import * as Admin from '../../../../Admin.js'
8
+
9
+ export default Cli.command({
10
+ args: z.object({
11
+ realmId: z.string().describe('Realm ID, such as default.'),
12
+ }),
13
+ description:
14
+ 'Turn on the secp256k1 owners that Tempo ID holds in a realm, for tests and local development. Never turn them on in production, since the keys stay in the database.',
15
+ env: Admin.env,
16
+ mcp: false,
17
+ options: Admin.options,
18
+ async run(c) {
19
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
20
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
21
+
22
+ const Realms = await Admin.loadRealms()
23
+ if (!Realms) return c.error(Admin.missingPeers)
24
+
25
+ const client = Realms.connect({ connectionString })
26
+ try {
27
+ const realm = await Realms.Realm.setSecp256k1(client.db, {
28
+ enabled: true,
29
+ realmId: c.args.realmId,
30
+ })
31
+ return { realm }
32
+ } catch (error) {
33
+ const refusal = Realms.error(error)
34
+ if (refusal) return c.error(refusal)
35
+ throw error
36
+ } finally {
37
+ await client.end()
38
+ }
39
+ },
40
+ })
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `tempo-id admin realms secp256k1`: the commands that turn on and off the secp256k1 owners that
3
+ * Tempo ID holds in a realm.
4
+ * @module
5
+ */
6
+ import { Cli } from 'incur'
7
+
8
+ export default Cli.command({
9
+ description:
10
+ 'Manage the secp256k1 owners that Tempo ID holds in a realm, for tests and local development.',
11
+ mcp: false,
12
+ run(c) {
13
+ return c.error({
14
+ code: 'missing_command',
15
+ message:
16
+ 'Missing command. Run `tempo-id admin realms secp256k1 --help` to list the commands.',
17
+ })
18
+ },
19
+ })
@@ -0,0 +1,46 @@
1
+ /**
2
+ * `tempo-id admin realms set`: sets the realms that one app reaches, in order. The first realm holds
3
+ * a user's first account.
4
+ * @module
5
+ */
6
+ import { Cli, z } from 'incur'
7
+ import * as Admin from '../../../Admin.js'
8
+
9
+ export default Cli.command({
10
+ args: z.object({
11
+ clientId: z.string().describe("OAuth app's client ID."),
12
+ realms: z
13
+ .array(z.string())
14
+ .default([])
15
+ .describe(
16
+ 'Realm IDs, in order, such as default tempo-cash. None resets the app to the default realm.',
17
+ ),
18
+ }),
19
+ description:
20
+ 'Set the realms that an app reaches, in order. The first realm holds a first account.',
21
+ env: Admin.env,
22
+ mcp: false,
23
+ options: Admin.options,
24
+ async run(c) {
25
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
26
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
27
+
28
+ const Realms = await Admin.loadRealms()
29
+ if (!Realms) return c.error(Admin.missingPeers)
30
+
31
+ const client = Realms.connect({ connectionString })
32
+ try {
33
+ const realms = await Realms.Realm.setForApp(client.db, {
34
+ clientId: c.args.clientId,
35
+ realms: c.args.realms,
36
+ })
37
+ return { realms }
38
+ } catch (error) {
39
+ const refusal = Realms.error(error)
40
+ if (refusal) return c.error(refusal)
41
+ throw error
42
+ } finally {
43
+ await client.end()
44
+ }
45
+ },
46
+ })
@@ -0,0 +1,47 @@
1
+ /**
2
+ * `tempo-id admin rotate-key`: adds a new signing key, and retires the earlier one. `GET /oauth2/jwks`
3
+ * serves the new key at once, Tempo ID signs with it after the publication delay, and the JWKS serves
4
+ * the earlier key through its grace period.
5
+ * @module
6
+ */
7
+ import { Cli, z } from 'incur'
8
+ import * as Admin from '../../Admin.js'
9
+
10
+ export default Cli.command({
11
+ description:
12
+ 'Rotate the signing key. The new key signs after 5 minutes, and the JWKS serves the earlier key for 30 more days.',
13
+ env: Admin.env.extend({
14
+ SECRET: z
15
+ .string()
16
+ .optional()
17
+ .describe(
18
+ "The deployment's SECRET variable, which encrypts the signing keys.",
19
+ ),
20
+ }),
21
+ mcp: false,
22
+ options: Admin.options,
23
+ async run(c) {
24
+ const connectionString = c.options.databaseUrl ?? c.env.DATABASE_URL
25
+ if (!connectionString) return c.error(Admin.missingDatabaseUrl)
26
+ if (!c.env.SECRET)
27
+ return c.error({
28
+ code: 'missing_secret',
29
+ message:
30
+ "Missing SECRET. Set it to the deployment's SECRET variable, which encrypts the signing keys.",
31
+ })
32
+
33
+ const Apps = await Admin.loadApps()
34
+ if (!Apps) return c.error(Admin.missingPeers)
35
+
36
+ const client = Apps.connect({ connectionString })
37
+ try {
38
+ return await Apps.SigningKey.rotate(client.db, { secret: c.env.SECRET })
39
+ } catch (error) {
40
+ const refusal = Apps.error(error)
41
+ if (refusal) return c.error(refusal)
42
+ throw error
43
+ } finally {
44
+ await client.end()
45
+ }
46
+ },
47
+ })
@@ -0,0 +1,42 @@
1
+ /** `tempo-id init`: writes a Tempo ID Worker project. @module */
2
+ import { Cli, z } from 'incur'
3
+ import * as Project from '../Project.js'
4
+
5
+ export default Cli.command({
6
+ args: z.object({
7
+ dir: z
8
+ .string()
9
+ .optional()
10
+ .describe(
11
+ 'The folder to write the project in. Defaults to the working directory.',
12
+ ),
13
+ }),
14
+ description: 'Write a Tempo ID Worker project.',
15
+ mcp: false,
16
+ options: z.object({
17
+ from: z
18
+ .string()
19
+ .describe(
20
+ 'The sender of every email, such as "Tempo ID <noreply@id.example.com>".',
21
+ ),
22
+ name: z
23
+ .string()
24
+ .optional()
25
+ .describe(
26
+ "The project's package name and Worker name. Defaults to the folder's name.",
27
+ ),
28
+ url: z
29
+ .string()
30
+ .describe(
31
+ "Tempo ID's origin, such as https://id.example.com, and every token's iss.",
32
+ ),
33
+ }),
34
+ run(c) {
35
+ return Project.init({
36
+ from: c.options.from,
37
+ name: c.options.name,
38
+ root: c.args.dir ?? process.cwd(),
39
+ url: c.options.url,
40
+ })
41
+ },
42
+ })
@@ -0,0 +1,32 @@
1
+ /**
2
+ * `tempo-id login`: signs in through Tempo ID's device grant as the `tempo-cli` app, and stores the
3
+ * session with its access key.
4
+ * @module
5
+ */
6
+ import { Cli } from 'incur'
7
+ import * as User from '../User.js'
8
+
9
+ export default Cli.command({
10
+ description:
11
+ 'Sign in by approving a code in any browser, and store the session.',
12
+ env: User.env,
13
+ // An agent cannot approve the code in a browser for the user.
14
+ mcp: false,
15
+ async *run(c) {
16
+ const Session = await User.loadSession()
17
+ if (!Session) return c.error(User.missingPeers)
18
+
19
+ const options = { home: c.env.TEMPO_HOME, url: c.env.TEMPO_ID_URL }
20
+ const device = await Session.login(options)
21
+ yield `Open ${device.verificationUriComplete}`
22
+ yield `and confirm the code ${device.userCode}.`
23
+
24
+ const session = await device.wait().catch((error: Error) => error)
25
+ if (session instanceof Error)
26
+ return c.error({ code: 'not_signed_in', message: session.message })
27
+
28
+ // A streaming command prints what it yields, not what it returns.
29
+ yield `Signed in as ${session.user.email}.`
30
+ return c.ok({ account: session.key.account, email: session.user.email })
31
+ },
32
+ })
@@ -0,0 +1,19 @@
1
+ /** `tempo-id logout`: revokes the stored session's refresh token, and deletes the session. @module */
2
+ import { Cli } from 'incur'
3
+ import * as User from '../User.js'
4
+
5
+ export default Cli.command({
6
+ description: 'Sign out on this machine, and revoke the refresh token.',
7
+ env: User.env,
8
+ mcp: false,
9
+ async run(c) {
10
+ const Session = await User.loadSession()
11
+ if (!Session) return c.error(User.missingPeers)
12
+
13
+ const revoked = await Session.remove({
14
+ home: c.env.TEMPO_HOME,
15
+ url: c.env.TEMPO_ID_URL,
16
+ })
17
+ return { revoked, signed_out: true }
18
+ },
19
+ })