@tempoxyz/id 0.0.0-pr-187.sha-eed04d3
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.
- package/README.md +81 -0
- package/dist/App.d.ts +20 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/App.js +26 -0
- package/dist/App.js.map +1 -0
- package/dist/app/client/.assetsignore +2 -0
- package/dist/app/client/assets/BRLA-CZvVDNYr.png +0 -0
- package/dist/app/client/assets/CHFAU-DCedc4aH.png +0 -0
- package/dist/app/client/assets/DLUSD-BnRXm3EI.png +0 -0
- package/dist/app/client/assets/PRIME-CiFp2-3e.svg +14 -0
- package/dist/app/client/assets/Pilat-Bold-C1t1eIrF.woff2 +0 -0
- package/dist/app/client/assets/Pilat-Book-CbS8ofT8.woff2 +0 -0
- package/dist/app/client/assets/Pilat-Demi-CADSbPAt.woff2 +0 -0
- package/dist/app/client/assets/Pilat-Regular-Bx8vzE7q.woff2 +0 -0
- package/dist/app/client/assets/USD1-COVcO_PB.svg +30 -0
- package/dist/app/client/assets/YLDS-CRh8Zw0g.svg +3 -0
- package/dist/app/client/assets/ccip-Cq1mMiVl.js +1 -0
- package/dist/app/client/assets/frxUSD-n9pTpinR.svg +1 -0
- package/dist/app/client/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
- package/dist/app/client/assets/index-B7YJVP00.css +1 -0
- package/dist/app/client/assets/index-UXTxXCLk.js +55 -0
- package/dist/app/client/assets/pathUSD-BvaO6ooS.svg +25 -0
- package/dist/app/client/assets/reset-co-CHrff.css +1 -0
- package/dist/app/client/assets/wYLDS-CaCKDrO-.svg +10 -0
- package/dist/app/db/auth.d.ts +3207 -0
- package/dist/app/db/auth.d.ts.map +1 -0
- package/dist/app/db/auth.js +330 -0
- package/dist/app/db/auth.js.map +1 -0
- package/dist/app/db/schema.d.ts +932 -0
- package/dist/app/db/schema.d.ts.map +1 -0
- package/dist/app/db/schema.js +171 -0
- package/dist/app/db/schema.js.map +1 -0
- package/dist/app/server/.vite/manifest.json +489 -0
- package/dist/app/server/assets/BRLA-CZvVDNYr.png +0 -0
- package/dist/app/server/assets/CHFAU-DCedc4aH.png +0 -0
- package/dist/app/server/assets/DLUSD-BnRXm3EI.png +0 -0
- package/dist/app/server/assets/PRIME-CiFp2-3e.svg +14 -0
- package/dist/app/server/assets/Pilat-Bold-C1t1eIrF.woff2 +0 -0
- package/dist/app/server/assets/Pilat-Book-CbS8ofT8.woff2 +0 -0
- package/dist/app/server/assets/Pilat-Demi-CADSbPAt.woff2 +0 -0
- package/dist/app/server/assets/Pilat-Regular-Bx8vzE7q.woff2 +0 -0
- package/dist/app/server/assets/USD1-COVcO_PB.svg +30 -0
- package/dist/app/server/assets/YLDS-CRh8Zw0g.svg +3 -0
- package/dist/app/server/assets/_tanstack-start-manifest_v-DjQNeRZp.js +1 -0
- package/dist/app/server/assets/arktype-aI7TBD0R-D1R3Byo5.js +2 -0
- package/dist/app/server/assets/arktype-aI7TBD0R-D1R3Byo5.js.map +1 -0
- package/dist/app/server/assets/authorize-C95F-9E1-CbESJKGU.js +31 -0
- package/dist/app/server/assets/authorize-C95F-9E1-CbESJKGU.js.map +1 -0
- package/dist/app/server/assets/bun-sqlite-dialect-DoOVo4ja-CtyBkVMb.js +2 -0
- package/dist/app/server/assets/bun-sqlite-dialect-DoOVo4ja-CtyBkVMb.js.map +1 -0
- package/dist/app/server/assets/call-UQamaCKN.js +32 -0
- package/dist/app/server/assets/call-UQamaCKN.js.map +1 -0
- package/dist/app/server/assets/ccip-CbNKFO4n.js +2 -0
- package/dist/app/server/assets/ccip-CbNKFO4n.js.map +1 -0
- package/dist/app/server/assets/compiled-query-Ds2NVcFT.js +2 -0
- package/dist/app/server/assets/compiled-query-Ds2NVcFT.js.map +1 -0
- package/dist/app/server/assets/convert-BIC8n32x.js +2 -0
- package/dist/app/server/assets/convert-BIC8n32x.js.map +1 -0
- package/dist/app/server/assets/cookie-CS900nSP.css +1 -0
- package/dist/app/server/assets/cookie-Cce9CrIP.js +10 -0
- package/dist/app/server/assets/cookie-Cce9CrIP.js.map +1 -0
- package/dist/app/server/assets/core-B1HCXUmx.js +56 -0
- package/dist/app/server/assets/core-B1HCXUmx.js.map +1 -0
- package/dist/app/server/assets/d1-sqlite-dialect-m0f01-4z-Cv-csE1u.js +2 -0
- package/dist/app/server/assets/d1-sqlite-dialect-m0f01-4z-Cv-csE1u.js.map +1 -0
- package/dist/app/server/assets/default-u_dwuiYb-BJJ9PwCi.js +2 -0
- package/dist/app/server/assets/default-u_dwuiYb-BJJ9PwCi.js.map +1 -0
- package/dist/app/server/assets/dist-BxSwugSY.js +1 -0
- package/dist/app/server/assets/dist-CZGFhmQd.js +2 -0
- package/dist/app/server/assets/dist-CZGFhmQd.js.map +1 -0
- package/dist/app/server/assets/dist-Dg3PQqiW.js +15 -0
- package/dist/app/server/assets/dist-Dg3PQqiW.js.map +1 -0
- package/dist/app/server/assets/effect-QlVUlMFu-2tSPDT2b.js +2 -0
- package/dist/app/server/assets/effect-QlVUlMFu-2tSPDT2b.js.map +1 -0
- package/dist/app/server/assets/empty-plugin-adapters-BaGcmrjC.js +2 -0
- package/dist/app/server/assets/empty-plugin-adapters-BaGcmrjC.js.map +1 -0
- package/dist/app/server/assets/factory-ipHlJXZY.js +5 -0
- package/dist/app/server/assets/factory-ipHlJXZY.js.map +1 -0
- package/dist/app/server/assets/frxUSD-n9pTpinR.svg +1 -0
- package/dist/app/server/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
- package/dist/app/server/assets/get-id-field-B0x109VU.js +6 -0
- package/dist/app/server/assets/get-id-field-B0x109VU.js.map +1 -0
- package/dist/app/server/assets/index-CLddUTqr-xpSuLpBt.js +2 -0
- package/dist/app/server/assets/index-CLddUTqr-xpSuLpBt.js.map +1 -0
- package/dist/app/server/assets/index-DZEfthgZ-8Uq5s5Pt.js +2 -0
- package/dist/app/server/assets/index-DZEfthgZ-8Uq5s5Pt.js.map +1 -0
- package/dist/app/server/assets/kysely-adapter-MkHAI9Jk.js +1 -0
- package/dist/app/server/assets/node-sqlite-dialect-BowWLXvK.js +2 -0
- package/dist/app/server/assets/node-sqlite-dialect-BowWLXvK.js.map +1 -0
- package/dist/app/server/assets/pathUSD-BvaO6ooS.svg +25 -0
- package/dist/app/server/assets/reset-co-CHrff.css +1 -0
- package/dist/app/server/assets/rolldown-runtime-B0Z9INg1.js +1 -0
- package/dist/app/server/assets/router-CcbyBCI4.css +1 -0
- package/dist/app/server/assets/router-xjZtEeaI.js +7 -0
- package/dist/app/server/assets/router-xjZtEeaI.js.map +1 -0
- package/dist/app/server/assets/schema-check-Cf7QOZZD.js +9 -0
- package/dist/app/server/assets/schema-check-Cf7QOZZD.js.map +1 -0
- package/dist/app/server/assets/schemas-C2lCYmR5.js +2 -0
- package/dist/app/server/assets/schemas-C2lCYmR5.js.map +1 -0
- package/dist/app/server/assets/secp256k1-buM5g4AL.js +2 -0
- package/dist/app/server/assets/secp256k1-buM5g4AL.js.map +1 -0
- package/dist/app/server/assets/sqlite-adapter-C_LAV4e3.js +2 -0
- package/dist/app/server/assets/sqlite-adapter-C_LAV4e3.js.map +1 -0
- package/dist/app/server/assets/sqlite-introspector-DSCAP82F-Crx7Ny14.js +6 -0
- package/dist/app/server/assets/sqlite-introspector-DSCAP82F-Crx7Ny14.js.map +1 -0
- package/dist/app/server/assets/standard-json-Cg1N07hM.js +2 -0
- package/dist/app/server/assets/standard-json-Cg1N07hM.js.map +1 -0
- package/dist/app/server/assets/standard-json-DY77efq0.js +2 -0
- package/dist/app/server/assets/standard-json-DY77efq0.js.map +1 -0
- package/dist/app/server/assets/standard-json-ig2t0wRt.js +2 -0
- package/dist/app/server/assets/standard-json-ig2t0wRt.js.map +1 -0
- package/dist/app/server/assets/standard-json-t-LNckA6.js +2 -0
- package/dist/app/server/assets/standard-json-t-LNckA6.js.map +1 -0
- package/dist/app/server/assets/standard-openapi-CONmVRl8.js +2 -0
- package/dist/app/server/assets/standard-openapi-CONmVRl8.js.map +1 -0
- package/dist/app/server/assets/start-C63VetBp.js +2 -0
- package/dist/app/server/assets/start-C63VetBp.js.map +1 -0
- package/dist/app/server/assets/sury-CWZTCd75-xt1mWc9f.js +2 -0
- package/dist/app/server/assets/sury-CWZTCd75-xt1mWc9f.js.map +1 -0
- package/dist/app/server/assets/typebox-Dei93FPO-D_lCVdAz.js +2 -0
- package/dist/app/server/assets/typebox-Dei93FPO-D_lCVdAz.js.map +1 -0
- package/dist/app/server/assets/utils-C4ZXZIZW.js +2 -0
- package/dist/app/server/assets/utils-C4ZXZIZW.js.map +1 -0
- package/dist/app/server/assets/valibot--1zFm7rT-NSoY2xTp.js +2 -0
- package/dist/app/server/assets/valibot--1zFm7rT-NSoY2xTp.js.map +1 -0
- package/dist/app/server/assets/valibot-D_HTw1Gn-CJwWeOUE.js +2 -0
- package/dist/app/server/assets/valibot-D_HTw1Gn-CJwWeOUE.js.map +1 -0
- package/dist/app/server/assets/wYLDS-CaCKDrO-.svg +10 -0
- package/dist/app/server/assets/zod-Bwrt9trS-CV38yPnQ.js +2 -0
- package/dist/app/server/assets/zod-Bwrt9trS-CV38yPnQ.js.map +1 -0
- package/dist/app/server/assets/zod-DSgpEGAE-BvlnBE2L.js +2 -0
- package/dist/app/server/assets/zod-DSgpEGAE-BvlnBE2L.js.map +1 -0
- package/dist/app/server/index.js +574 -0
- package/dist/app/server/index.js.map +1 -0
- package/dist/app/server/wrangler.json +1 -0
- package/dist/cli/Admin.d.ts +38 -0
- package/dist/cli/Admin.d.ts.map +1 -0
- package/dist/cli/Admin.js +62 -0
- package/dist/cli/Admin.js.map +1 -0
- package/dist/cli/Apps.d.ts +9 -0
- package/dist/cli/Apps.d.ts.map +1 -0
- package/dist/cli/Apps.js +36 -0
- package/dist/cli/Apps.js.map +1 -0
- package/dist/cli/Cli.d.ts +14 -0
- package/dist/cli/Cli.d.ts.map +1 -0
- package/dist/cli/Cli.js +27 -0
- package/dist/cli/Cli.js.map +1 -0
- package/dist/cli/Project.d.ts +20 -0
- package/dist/cli/Project.d.ts.map +1 -0
- package/dist/cli/Project.js +88 -0
- package/dist/cli/Project.js.map +1 -0
- package/dist/cli/Realms.d.ts +24 -0
- package/dist/cli/Realms.d.ts.map +1 -0
- package/dist/cli/Realms.js +49 -0
- package/dist/cli/Realms.js.map +1 -0
- package/dist/cli/Session.d.ts +85 -0
- package/dist/cli/Session.d.ts.map +1 -0
- package/dist/cli/Session.js +178 -0
- package/dist/cli/Session.js.map +1 -0
- package/dist/cli/User.d.ts +29 -0
- package/dist/cli/User.d.ts.map +1 -0
- package/dist/cli/User.js +39 -0
- package/dist/cli/User.js.map +1 -0
- package/dist/cli/V1.d.ts +35 -0
- package/dist/cli/V1.d.ts.map +1 -0
- package/dist/cli/V1.js +41 -0
- package/dist/cli/V1.js.map +1 -0
- package/dist/cli/bin.d.ts +3 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +46 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/commands/admin/apps/create.d.ts +23 -0
- package/dist/cli/commands/admin/apps/create.d.ts.map +1 -0
- package/dist/cli/commands/admin/apps/create.js +89 -0
- package/dist/cli/commands/admin/apps/create.js.map +1 -0
- package/dist/cli/commands/admin/apps/delete.d.ts +14 -0
- package/dist/cli/commands/admin/apps/delete.d.ts.map +1 -0
- package/dist/cli/commands/admin/apps/delete.js +41 -0
- package/dist/cli/commands/admin/apps/delete.js.map +1 -0
- package/dist/cli/commands/admin/apps/index.d.ts +5 -0
- package/dist/cli/commands/admin/apps/index.d.ts.map +1 -0
- package/dist/cli/commands/admin/apps/index.js +14 -0
- package/dist/cli/commands/admin/apps/index.js.map +1 -0
- package/dist/cli/commands/admin/apps/list.d.ts +9 -0
- package/dist/cli/commands/admin/apps/list.d.ts.map +1 -0
- package/dist/cli/commands/admin/apps/list.js +26 -0
- package/dist/cli/commands/admin/apps/list.js.map +1 -0
- package/dist/cli/commands/admin/apps/rotate-secret.d.ts +16 -0
- package/dist/cli/commands/admin/apps/rotate-secret.d.ts.map +1 -0
- package/dist/cli/commands/admin/apps/rotate-secret.js +47 -0
- package/dist/cli/commands/admin/apps/rotate-secret.js.map +1 -0
- package/dist/cli/commands/admin/apps/update.d.ts +20 -0
- package/dist/cli/commands/admin/apps/update.d.ts.map +1 -0
- package/dist/cli/commands/admin/apps/update.js +76 -0
- package/dist/cli/commands/admin/apps/update.js.map +1 -0
- package/dist/cli/commands/admin/index.d.ts +5 -0
- package/dist/cli/commands/admin/index.d.ts.map +1 -0
- package/dist/cli/commands/admin/index.js +13 -0
- package/dist/cli/commands/admin/index.js.map +1 -0
- package/dist/cli/commands/admin/migrate.d.ts +9 -0
- package/dist/cli/commands/admin/migrate.d.ts.map +1 -0
- package/dist/cli/commands/admin/migrate.js +17 -0
- package/dist/cli/commands/admin/migrate.js.map +1 -0
- package/dist/cli/commands/admin/realms/add.d.ts +12 -0
- package/dist/cli/commands/admin/realms/add.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/add.js +42 -0
- package/dist/cli/commands/admin/realms/add.js.map +1 -0
- package/dist/cli/commands/admin/realms/index.d.ts +5 -0
- package/dist/cli/commands/admin/realms/index.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/index.js +13 -0
- package/dist/cli/commands/admin/realms/index.js.map +1 -0
- package/dist/cli/commands/admin/realms/list.d.ts +13 -0
- package/dist/cli/commands/admin/realms/list.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/list.js +36 -0
- package/dist/cli/commands/admin/realms/list.js.map +1 -0
- package/dist/cli/commands/admin/realms/passkeys/index.d.ts +5 -0
- package/dist/cli/commands/admin/realms/passkeys/index.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/passkeys/index.js +13 -0
- package/dist/cli/commands/admin/realms/passkeys/index.js.map +1 -0
- package/dist/cli/commands/admin/realms/passkeys/set.d.ts +16 -0
- package/dist/cli/commands/admin/realms/passkeys/set.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/passkeys/set.js +46 -0
- package/dist/cli/commands/admin/realms/passkeys/set.js.map +1 -0
- package/dist/cli/commands/admin/realms/privy/index.d.ts +5 -0
- package/dist/cli/commands/admin/realms/privy/index.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/privy/index.js +13 -0
- package/dist/cli/commands/admin/realms/privy/index.js.map +1 -0
- package/dist/cli/commands/admin/realms/privy/set.d.ts +18 -0
- package/dist/cli/commands/admin/realms/privy/set.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/privy/set.js +66 -0
- package/dist/cli/commands/admin/realms/privy/set.js.map +1 -0
- package/dist/cli/commands/admin/realms/remove.d.ts +11 -0
- package/dist/cli/commands/admin/realms/remove.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/remove.js +35 -0
- package/dist/cli/commands/admin/realms/remove.js.map +1 -0
- package/dist/cli/commands/admin/realms/secp256k1/disable.d.ts +15 -0
- package/dist/cli/commands/admin/realms/secp256k1/disable.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/secp256k1/disable.js +42 -0
- package/dist/cli/commands/admin/realms/secp256k1/disable.js.map +1 -0
- package/dist/cli/commands/admin/realms/secp256k1/enable.d.ts +15 -0
- package/dist/cli/commands/admin/realms/secp256k1/enable.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/secp256k1/enable.js +42 -0
- package/dist/cli/commands/admin/realms/secp256k1/enable.js.map +1 -0
- package/dist/cli/commands/admin/realms/secp256k1/index.d.ts +9 -0
- package/dist/cli/commands/admin/realms/secp256k1/index.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/secp256k1/index.js +17 -0
- package/dist/cli/commands/admin/realms/secp256k1/index.js.map +1 -0
- package/dist/cli/commands/admin/realms/set.d.ts +16 -0
- package/dist/cli/commands/admin/realms/set.d.ts.map +1 -0
- package/dist/cli/commands/admin/realms/set.js +46 -0
- package/dist/cli/commands/admin/realms/set.js.map +1 -0
- package/dist/cli/commands/admin/rotate-key.d.ts +15 -0
- package/dist/cli/commands/admin/rotate-key.d.ts.map +1 -0
- package/dist/cli/commands/admin/rotate-key.js +46 -0
- package/dist/cli/commands/admin/rotate-key.js.map +1 -0
- package/dist/cli/commands/init.d.ts +11 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +34 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/login.d.ts +12 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +29 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +8 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +19 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/whoami.d.ts +12 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -0
- package/dist/cli/commands/whoami.js +24 -0
- package/dist/cli/commands/whoami.js.map +1 -0
- package/dist/client/Actions.d.ts +101 -0
- package/dist/client/Actions.d.ts.map +1 -0
- package/dist/client/Actions.js +90 -0
- package/dist/client/Actions.js.map +1 -0
- package/dist/client/Auth.d.ts +161 -0
- package/dist/client/Auth.d.ts.map +1 -0
- package/dist/client/Auth.js +113 -0
- package/dist/client/Auth.js.map +1 -0
- package/dist/client/Authorization.d.ts +29 -0
- package/dist/client/Authorization.d.ts.map +1 -0
- package/dist/client/Authorization.js +12 -0
- package/dist/client/Authorization.js.map +1 -0
- package/dist/client/Decorator.d.ts +170 -0
- package/dist/client/Decorator.d.ts.map +1 -0
- package/dist/client/Decorator.js +227 -0
- package/dist/client/Decorator.js.map +1 -0
- package/dist/client/Key.d.ts +85 -0
- package/dist/client/Key.d.ts.map +1 -0
- package/dist/client/Key.js +83 -0
- package/dist/client/Key.js.map +1 -0
- package/dist/client/Pending.d.ts +39 -0
- package/dist/client/Pending.d.ts.map +1 -0
- package/dist/client/Pending.js +12 -0
- package/dist/client/Pending.js.map +1 -0
- package/dist/client/Permissions.d.ts +34 -0
- package/dist/client/Permissions.d.ts.map +1 -0
- package/dist/client/Permissions.js +16 -0
- package/dist/client/Permissions.js.map +1 -0
- package/dist/client/Provider.d.ts +16 -0
- package/dist/client/Provider.d.ts.map +1 -0
- package/dist/client/Provider.js +12 -0
- package/dist/client/Provider.js.map +1 -0
- package/dist/client/Step.d.ts +21 -0
- package/dist/client/Step.d.ts.map +1 -0
- package/dist/client/Step.js +16 -0
- package/dist/client/Step.js.map +1 -0
- package/dist/client/Storage.d.ts +27 -0
- package/dist/client/Storage.d.ts.map +1 -0
- package/dist/client/Storage.js +16 -0
- package/dist/client/Storage.js.map +1 -0
- package/dist/client/TempoAccount.d.ts +40 -0
- package/dist/client/TempoAccount.d.ts.map +1 -0
- package/dist/client/TempoAccount.js +16 -0
- package/dist/client/TempoAccount.js.map +1 -0
- package/dist/client/Tokens.d.ts +25 -0
- package/dist/client/Tokens.d.ts.map +1 -0
- package/dist/client/Tokens.js +12 -0
- package/dist/client/Tokens.js.map +1 -0
- package/dist/client/User.d.ts +21 -0
- package/dist/client/User.d.ts.map +1 -0
- package/dist/client/User.js +12 -0
- package/dist/client/User.js.map +1 -0
- package/dist/client/actions/account.d.ts +25 -0
- package/dist/client/actions/account.d.ts.map +1 -0
- package/dist/client/actions/account.js +34 -0
- package/dist/client/actions/account.js.map +1 -0
- package/dist/client/actions/device.d.ts +53 -0
- package/dist/client/actions/device.d.ts.map +1 -0
- package/dist/client/actions/device.js +79 -0
- package/dist/client/actions/device.js.map +1 -0
- package/dist/client/actions/email.d.ts +84 -0
- package/dist/client/actions/email.d.ts.map +1 -0
- package/dist/client/actions/email.js +63 -0
- package/dist/client/actions/email.js.map +1 -0
- package/dist/client/actions/oauth.d.ts +115 -0
- package/dist/client/actions/oauth.d.ts.map +1 -0
- package/dist/client/actions/oauth.js +105 -0
- package/dist/client/actions/oauth.js.map +1 -0
- package/dist/client/actions/passkey.d.ts +88 -0
- package/dist/client/actions/passkey.d.ts.map +1 -0
- package/dist/client/actions/passkey.js +60 -0
- package/dist/client/actions/passkey.js.map +1 -0
- package/dist/client/actions/provider.d.ts +49 -0
- package/dist/client/actions/provider.d.ts.map +1 -0
- package/dist/client/actions/provider.js +34 -0
- package/dist/client/actions/provider.js.map +1 -0
- package/dist/client/actions/realm.d.ts +24 -0
- package/dist/client/actions/realm.d.ts.map +1 -0
- package/dist/client/actions/realm.js +15 -0
- package/dist/client/actions/realm.js.map +1 -0
- package/dist/client/actions/redirect.d.ts +153 -0
- package/dist/client/actions/redirect.d.ts.map +1 -0
- package/dist/client/actions/redirect.js +236 -0
- package/dist/client/actions/redirect.js.map +1 -0
- package/dist/client/internal/accessKey.d.ts +21 -0
- package/dist/client/internal/accessKey.d.ts.map +1 -0
- package/dist/client/internal/accessKey.js +38 -0
- package/dist/client/internal/accessKey.js.map +1 -0
- package/dist/client/internal/account.d.ts +14 -0
- package/dist/client/internal/account.d.ts.map +1 -0
- package/dist/client/internal/account.js +3 -0
- package/dist/client/internal/account.js.map +1 -0
- package/dist/client/internal/api.d.ts +106 -0
- package/dist/client/internal/api.d.ts.map +1 -0
- package/dist/client/internal/api.js +129 -0
- package/dist/client/internal/api.js.map +1 -0
- package/dist/client/internal/headless.d.ts +33 -0
- package/dist/client/internal/headless.d.ts.map +1 -0
- package/dist/client/internal/headless.js +46 -0
- package/dist/client/internal/headless.js.map +1 -0
- package/dist/client/internal/indexedDb.d.ts +9 -0
- package/dist/client/internal/indexedDb.d.ts.map +1 -0
- package/dist/client/internal/indexedDb.js +32 -0
- package/dist/client/internal/indexedDb.js.map +1 -0
- package/dist/client/internal/request.d.ts +58 -0
- package/dist/client/internal/request.d.ts.map +1 -0
- package/dist/client/internal/request.js +45 -0
- package/dist/client/internal/request.js.map +1 -0
- package/dist/client/internal/store.d.ts +12 -0
- package/dist/client/internal/store.d.ts.map +1 -0
- package/dist/client/internal/store.js +15 -0
- package/dist/client/internal/store.js.map +1 -0
- package/dist/client.d.ts +20 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +20 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/Apps.d.ts +3051 -0
- package/dist/internal/Apps.d.ts.map +1 -0
- package/dist/internal/Apps.js +472 -0
- package/dist/internal/Apps.js.map +1 -0
- package/dist/internal/Auth.d.ts +4058 -0
- package/dist/internal/Auth.d.ts.map +1 -0
- package/dist/internal/Auth.js +137 -0
- package/dist/internal/Auth.js.map +1 -0
- package/dist/internal/Authorize.d.ts +532 -0
- package/dist/internal/Authorize.d.ts.map +1 -0
- package/dist/internal/Authorize.js +326 -0
- package/dist/internal/Authorize.js.map +1 -0
- package/dist/internal/Device.d.ts +371 -0
- package/dist/internal/Device.d.ts.map +1 -0
- package/dist/internal/Device.js +271 -0
- package/dist/internal/Device.js.map +1 -0
- package/dist/internal/Env.d.ts +57 -0
- package/dist/internal/Env.d.ts.map +1 -0
- package/dist/internal/Env.js +2 -0
- package/dist/internal/Env.js.map +1 -0
- package/dist/internal/ErrorResponse.d.ts +609 -0
- package/dist/internal/ErrorResponse.d.ts.map +1 -0
- package/dist/internal/ErrorResponse.js +679 -0
- package/dist/internal/ErrorResponse.js.map +1 -0
- package/dist/internal/Id.d.ts +10 -0
- package/dist/internal/Id.d.ts.map +1 -0
- package/dist/internal/Id.js +34 -0
- package/dist/internal/Id.js.map +1 -0
- package/dist/internal/KeyAuthorization.d.ts +1456 -0
- package/dist/internal/KeyAuthorization.d.ts.map +1 -0
- package/dist/internal/KeyAuthorization.js +1030 -0
- package/dist/internal/KeyAuthorization.js.map +1 -0
- package/dist/internal/Limits.d.ts +65 -0
- package/dist/internal/Limits.d.ts.map +1 -0
- package/dist/internal/Limits.js +35 -0
- package/dist/internal/Limits.js.map +1 -0
- package/dist/internal/Log.d.ts +49 -0
- package/dist/internal/Log.d.ts.map +1 -0
- package/dist/internal/Log.js +101 -0
- package/dist/internal/Log.js.map +1 -0
- package/dist/internal/LogLine.d.ts +33 -0
- package/dist/internal/LogLine.d.ts.map +1 -0
- package/dist/internal/LogLine.js +56 -0
- package/dist/internal/LogLine.js.map +1 -0
- package/dist/internal/Migrations.d.ts +19 -0
- package/dist/internal/Migrations.d.ts.map +1 -0
- package/dist/internal/Migrations.js +57 -0
- package/dist/internal/Migrations.js.map +1 -0
- package/dist/internal/Owner.d.ts +146 -0
- package/dist/internal/Owner.d.ts.map +1 -0
- package/dist/internal/Owner.js +65 -0
- package/dist/internal/Owner.js.map +1 -0
- package/dist/internal/Passkey.d.ts +528 -0
- package/dist/internal/Passkey.d.ts.map +1 -0
- package/dist/internal/Passkey.js +658 -0
- package/dist/internal/Passkey.js.map +1 -0
- package/dist/internal/PendingKey.d.ts +49 -0
- package/dist/internal/PendingKey.d.ts.map +1 -0
- package/dist/internal/PendingKey.js +58 -0
- package/dist/internal/PendingKey.js.map +1 -0
- package/dist/internal/Privy.d.ts +105 -0
- package/dist/internal/Privy.d.ts.map +1 -0
- package/dist/internal/Privy.js +224 -0
- package/dist/internal/Privy.js.map +1 -0
- package/dist/internal/RateLimit.d.ts +190 -0
- package/dist/internal/RateLimit.d.ts.map +1 -0
- package/dist/internal/RateLimit.js +148 -0
- package/dist/internal/RateLimit.js.map +1 -0
- package/dist/internal/Realm.d.ts +281 -0
- package/dist/internal/Realm.d.ts.map +1 -0
- package/dist/internal/Realm.js +477 -0
- package/dist/internal/Realm.js.map +1 -0
- package/dist/internal/RequestId.d.ts +16 -0
- package/dist/internal/RequestId.d.ts.map +1 -0
- package/dist/internal/RequestId.js +78 -0
- package/dist/internal/RequestId.js.map +1 -0
- package/dist/internal/SigningKey.d.ts +115 -0
- package/dist/internal/SigningKey.d.ts.map +1 -0
- package/dist/internal/SigningKey.js +197 -0
- package/dist/internal/SigningKey.js.map +1 -0
- package/dist/internal/TestInbox.d.ts +42 -0
- package/dist/internal/TestInbox.d.ts.map +1 -0
- package/dist/internal/TestInbox.js +20 -0
- package/dist/internal/TestInbox.js.map +1 -0
- package/dist/internal/Timing.d.ts +51 -0
- package/dist/internal/Timing.d.ts.map +1 -0
- package/dist/internal/Timing.js +103 -0
- package/dist/internal/Timing.js.map +1 -0
- package/dist/internal/Validation.d.ts +52 -0
- package/dist/internal/Validation.d.ts.map +1 -0
- package/dist/internal/Validation.js +22 -0
- package/dist/internal/Validation.js.map +1 -0
- package/dist/internal/Wallet.d.ts +37 -0
- package/dist/internal/Wallet.d.ts.map +1 -0
- package/dist/internal/Wallet.js +43 -0
- package/dist/internal/Wallet.js.map +1 -0
- package/dist/worker.d.ts +12 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +12 -0
- package/dist/worker.js.map +1 -0
- package/package.json +82 -0
- package/src/Api.ts +151 -0
- package/src/App.ts +56 -0
- package/src/api/account.ts +311 -0
- package/src/api/authenticate.ts +1290 -0
- package/src/api/authorize.ts +1030 -0
- package/src/api/device.ts +874 -0
- package/src/api/health.ts +72 -0
- package/src/api/lib/AccountStep.ts +335 -0
- package/src/api/lib/Auth.ts +134 -0
- package/src/api/lib/Consent.ts +339 -0
- package/src/api/lib/Cors.ts +107 -0
- package/src/api/lib/Database.ts +10 -0
- package/src/api/lib/DeviceRequest.ts +265 -0
- package/src/api/lib/FirstAccount.ts +90 -0
- package/src/api/lib/KeySigner.ts +393 -0
- package/src/api/lib/PasskeyLink.ts +162 -0
- package/src/api/lib/Session.ts +34 -0
- package/src/api/lib/SignInConsent.ts +316 -0
- package/src/api/oauth.ts +1282 -0
- package/src/api/provider.ts +441 -0
- package/src/app/components/Button.tsx +128 -0
- package/src/app/components/CodeInput.tsx +186 -0
- package/src/app/components/ErrorMessage.tsx +66 -0
- package/src/app/components/Grant.tsx +323 -0
- package/src/app/components/Input.tsx +48 -0
- package/src/app/components/Tooltip.tsx +45 -0
- package/src/app/components/icons/BRLA.png +0 -0
- package/src/app/components/icons/BRZ.svg +1 -0
- package/src/app/components/icons/CHFAU.png +0 -0
- package/src/app/components/icons/DLUSD.png +0 -0
- package/src/app/components/icons/EURAU.svg +1 -0
- package/src/app/components/icons/EURC.e.svg +1 -0
- package/src/app/components/icons/GBPA.svg +4 -0
- package/src/app/components/icons/GUSD.svg +1 -0
- package/src/app/components/icons/MACH.svg +4 -0
- package/src/app/components/icons/OUSD.svg +5 -0
- package/src/app/components/icons/PRIME.svg +14 -0
- package/src/app/components/icons/SBC.svg +1 -0
- package/src/app/components/icons/SEKAU.svg +5 -0
- package/src/app/components/icons/USD1.svg +30 -0
- package/src/app/components/icons/USDB.svg +11 -0
- package/src/app/components/icons/USDC.e.svg +1 -0
- package/src/app/components/icons/USDT0.svg +1 -0
- package/src/app/components/icons/USDY.svg +16 -0
- package/src/app/components/icons/USDe.svg +1 -0
- package/src/app/components/icons/YLDS.svg +3 -0
- package/src/app/components/icons/alphaUSD.svg +1 -0
- package/src/app/components/icons/betaUSD.svg +1 -0
- package/src/app/components/icons/cUSD.svg +1 -0
- package/src/app/components/icons/cbBTC.svg +1 -0
- package/src/app/components/icons/frxUSD.svg +1 -0
- package/src/app/components/icons/goUSD.svg +5 -0
- package/src/app/components/icons/iUSD.svg +1 -0
- package/src/app/components/icons/pathUSD.svg +25 -0
- package/src/app/components/icons/rUSD.svg +1 -0
- package/src/app/components/icons/reUSD.svg +1 -0
- package/src/app/components/icons/sUSDe.svg +1 -0
- package/src/app/components/icons/siUSD.svg +1 -0
- package/src/app/components/icons/stcUSD.svg +1 -0
- package/src/app/components/icons/syrupUSDC.svg +5 -0
- package/src/app/components/icons/thetaUSD.svg +1 -0
- package/src/app/components/icons/wYLDS.svg +10 -0
- package/src/app/components/icons/wsrUSD.svg +1 -0
- package/src/app/components/logos/OUSD.dark.svg +17 -0
- package/src/app/components/logos/OUSD.light.svg +17 -0
- package/src/app/crons/cleanup.ts +42 -0
- package/src/app/db/auth.ts +416 -0
- package/src/app/db/migrations/0000_better_auth.sql +53 -0
- package/src/app/db/migrations/0001_oauth_provider.sql +162 -0
- package/src/app/db/migrations/0002_device_code.sql +17 -0
- package/src/app/db/migrations/0003_realms.sql +27 -0
- package/src/app/db/migrations/0004_default_realm.sql +2 -0
- package/src/app/db/migrations/0005_passkeys.sql +30 -0
- package/src/app/db/migrations/0006_first_accounts.sql +9 -0
- package/src/app/db/migrations/0007_pending_keys.sql +13 -0
- package/src/app/db/migrations/0008_secp256k1_owners.sql +18 -0
- package/src/app/db/migrations/0009_device_requests.sql +8 -0
- package/src/app/db/migrations/0010_device_keys.sql +4 -0
- package/src/app/db/migrations/meta/0000_snapshot.json +362 -0
- package/src/app/db/migrations/meta/0001_snapshot.json +1487 -0
- package/src/app/db/migrations/meta/0002_snapshot.json +1603 -0
- package/src/app/db/migrations/meta/0003_snapshot.json +1760 -0
- package/src/app/db/migrations/meta/0004_snapshot.json +1760 -0
- package/src/app/db/migrations/meta/0005_snapshot.json +1911 -0
- package/src/app/db/migrations/meta/0006_snapshot.json +1967 -0
- package/src/app/db/migrations/meta/0007_snapshot.json +2047 -0
- package/src/app/db/migrations/meta/0008_snapshot.json +2157 -0
- package/src/app/db/migrations/meta/0009_snapshot.json +2207 -0
- package/src/app/db/migrations/meta/0010_snapshot.json +2231 -0
- package/src/app/db/migrations/meta/_journal.json +83 -0
- package/src/app/db/schema.ts +218 -0
- package/src/app/env.ts +49 -0
- package/src/app/lib/Client.ts +82 -0
- package/src/app/lib/Loader.ts +24 -0
- package/src/app/package.json +8 -0
- package/src/app/routeTree.gen.ts +198 -0
- package/src/app/router.tsx +48 -0
- package/src/app/routes/[_].flows.tsx +3001 -0
- package/src/app/routes/__root.tsx +91 -0
- package/src/app/routes/authorize.tsx +197 -0
- package/src/app/routes/choose-account.tsx +111 -0
- package/src/app/routes/deposit.tsx +105 -0
- package/src/app/routes/device.tsx +227 -0
- package/src/app/routes/index.tsx +115 -0
- package/src/app/routes/login.tsx +506 -0
- package/src/app/screens/Account.tsx +347 -0
- package/src/app/screens/Approval.tsx +276 -0
- package/src/app/screens/ChooseAccount.tsx +240 -0
- package/src/app/screens/Deposit.tsx +762 -0
- package/src/app/screens/DeviceApproval.tsx +480 -0
- package/src/app/screens/SignIn.tsx +362 -0
- package/src/app/screens/chains/base.svg +3 -0
- package/src/app/screens/chains/ethereum.svg +11 -0
- package/src/app/screens/chains/solana.svg +4 -0
- package/src/app/screens/chains/tempo.svg +4 -0
- package/src/app/server.ts +204 -0
- package/src/app/vite.config.ts +95 -0
- package/src/app/void.config.ts +29 -0
- package/src/app/zyzz.config.ts +274 -0
- package/src/cli/Admin.ts +73 -0
- package/src/cli/Apps.ts +29 -0
- package/src/cli/Cli.ts +42 -0
- package/src/cli/Project.ts +117 -0
- package/src/cli/Realms.ts +50 -0
- package/src/cli/Session.ts +239 -0
- package/src/cli/User.ts +45 -0
- package/src/cli/V1.ts +57 -0
- package/src/cli/bin.ts +44 -0
- package/src/cli/commands/admin/apps/create.ts +101 -0
- package/src/cli/commands/admin/apps/delete.ts +38 -0
- package/src/cli/commands/admin/apps/index.ts +15 -0
- package/src/cli/commands/admin/apps/list.ts +25 -0
- package/src/cli/commands/admin/apps/rotate-secret.ts +47 -0
- package/src/cli/commands/admin/apps/update.ts +86 -0
- package/src/cli/commands/admin/index.ts +14 -0
- package/src/cli/commands/admin/migrate.ts +16 -0
- package/src/cli/commands/admin/realms/add.ts +40 -0
- package/src/cli/commands/admin/realms/index.ts +14 -0
- package/src/cli/commands/admin/realms/list.ts +38 -0
- package/src/cli/commands/admin/realms/passkeys/index.ts +15 -0
- package/src/cli/commands/admin/realms/passkeys/set.ts +44 -0
- package/src/cli/commands/admin/realms/privy/index.ts +14 -0
- package/src/cli/commands/admin/realms/privy/set.ts +69 -0
- package/src/cli/commands/admin/realms/remove.ts +33 -0
- package/src/cli/commands/admin/realms/secp256k1/disable.ts +40 -0
- package/src/cli/commands/admin/realms/secp256k1/enable.ts +40 -0
- package/src/cli/commands/admin/realms/secp256k1/index.ts +19 -0
- package/src/cli/commands/admin/realms/set.ts +46 -0
- package/src/cli/commands/admin/rotate-key.ts +47 -0
- package/src/cli/commands/init.ts +42 -0
- package/src/cli/commands/login.ts +32 -0
- package/src/cli/commands/logout.ts +19 -0
- package/src/cli/commands/whoami.ts +23 -0
- package/src/client/Actions.ts +168 -0
- package/src/client/Auth.ts +285 -0
- package/src/client/Authorization.ts +34 -0
- package/src/client/Decorator.ts +410 -0
- package/src/client/Key.ts +140 -0
- package/src/client/Pending.ts +46 -0
- package/src/client/Permissions.ts +39 -0
- package/src/client/Provider.ts +18 -0
- package/src/client/Step.ts +24 -0
- package/src/client/Storage.ts +29 -0
- package/src/client/TempoAccount.ts +42 -0
- package/src/client/Tokens.ts +27 -0
- package/src/client/User.ts +23 -0
- package/src/client/actions/account.ts +57 -0
- package/src/client/actions/device.ts +151 -0
- package/src/client/actions/email.ts +141 -0
- package/src/client/actions/oauth.ts +182 -0
- package/src/client/actions/passkey.ts +141 -0
- package/src/client/actions/provider.ts +70 -0
- package/src/client/actions/realm.ts +36 -0
- package/src/client/actions/redirect.ts +408 -0
- package/src/client/internal/accessKey.ts +54 -0
- package/src/client/internal/account.ts +15 -0
- package/src/client/internal/api.ts +224 -0
- package/src/client/internal/headless.ts +77 -0
- package/src/client/internal/indexedDb.ts +44 -0
- package/src/client/internal/request.ts +71 -0
- package/src/client/internal/store.ts +20 -0
- package/src/client.ts +19 -0
- package/src/index.ts +6 -0
- package/src/internal/Apps.ts +718 -0
- package/src/internal/Auth.ts +203 -0
- package/src/internal/Authorize.ts +424 -0
- package/src/internal/Balance.ts +168 -0
- package/src/internal/BodyLimit.ts +36 -0
- package/src/internal/Chain.ts +16 -0
- package/src/internal/Device.ts +469 -0
- package/src/internal/Env.ts +58 -0
- package/src/internal/ErrorResponse.ts +854 -0
- package/src/internal/Id.ts +41 -0
- package/src/internal/KeyAuthorization.ts +1339 -0
- package/src/internal/Limits.ts +39 -0
- package/src/internal/Log.ts +178 -0
- package/src/internal/LogLine.ts +87 -0
- package/src/internal/Logout.ts +336 -0
- package/src/internal/Migrations.ts +86 -0
- package/src/internal/OpenApi.ts +300 -0
- package/src/internal/Owner.ts +211 -0
- package/src/internal/Passkey.ts +1052 -0
- package/src/internal/PendingKey.ts +104 -0
- package/src/internal/Privy.ts +402 -0
- package/src/internal/Provider.ts +125 -0
- package/src/internal/RateLimit.ts +259 -0
- package/src/internal/Realm.ts +768 -0
- package/src/internal/RequestId.ts +118 -0
- package/src/internal/SignInGrant.ts +168 -0
- package/src/internal/SigningKey.ts +286 -0
- package/src/internal/TempoAccount.ts +342 -0
- package/src/internal/TestInbox.ts +51 -0
- package/src/internal/Timing.ts +158 -0
- package/src/internal/Validation.ts +52 -0
- package/src/internal/Wallet.ts +62 -0
- package/src/internal/owners/Passkey.ts +72 -0
- package/src/internal/owners/Privy.ts +81 -0
- package/src/internal/owners/Secp256k1.ts +143 -0
- package/src/types/app.d.ts +19 -0
- package/src/worker.ts +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Passkey.js","sourceRoot":"","sources":["../../src/internal/Passkey.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type * as KeyAuthorization from './KeyAuthorization.js';
|
|
2
|
+
import type * as Realm from './Realm.js';
|
|
3
|
+
/** Seconds that a signed key authorization waits for its code's redemption, as long as the code lasts. */
|
|
4
|
+
export declare const lifetime: number;
|
|
5
|
+
/** A signed key authorization, and the Tempo Account that it acts for. */
|
|
6
|
+
export type PendingKey = {
|
|
7
|
+
/** The Tempo Account that the key acts for. */
|
|
8
|
+
account: `0x${string}`;
|
|
9
|
+
/** The signed key authorization, in the node's RPC format. */
|
|
10
|
+
keyAuthorization: Awaited<ReturnType<typeof KeyAuthorization.sign>>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Holds `key` for the app with `clientId` and the PKCE challenge `codeChallenge`, for
|
|
14
|
+
* {@link lifetime} seconds, or until the key expires if sooner. A later approval of the same request
|
|
15
|
+
* by the same user replaces the key that an earlier approval left, so the key matches the approval
|
|
16
|
+
* that the user made last. Another user's approval replaces nothing.
|
|
17
|
+
*/
|
|
18
|
+
export declare function put(db: Realm.Database, options: put.Options): Promise<void>;
|
|
19
|
+
export declare namespace put {
|
|
20
|
+
type Options = {
|
|
21
|
+
/** The client ID of the app that requested the key. */
|
|
22
|
+
clientId: string;
|
|
23
|
+
/** The S256 PKCE challenge of the authorization request. */
|
|
24
|
+
codeChallenge: string;
|
|
25
|
+
/** When the signed key expires, in Unix seconds, which bounds how long the row waits. */
|
|
26
|
+
expiry: number;
|
|
27
|
+
/** The signed key authorization, and the account that it acts for. */
|
|
28
|
+
key: PendingKey;
|
|
29
|
+
/** The ID of the user who approved the key. */
|
|
30
|
+
userId: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Deletes the key held for the app with `clientId`, the PKCE challenge `codeChallenge`, and the
|
|
35
|
+
* user `userId`, and returns it. Returns `undefined` when none is held, when it expired, or when an
|
|
36
|
+
* earlier redemption took it, so a second code for the same challenge carries no key.
|
|
37
|
+
*/
|
|
38
|
+
export declare function take(db: Realm.Database, options: take.Options): Promise<PendingKey | undefined>;
|
|
39
|
+
export declare namespace take {
|
|
40
|
+
type Options = {
|
|
41
|
+
/** The client ID of the app that redeems the code. */
|
|
42
|
+
clientId: string;
|
|
43
|
+
/** The PKCE challenge that the redemption's verifier proved. */
|
|
44
|
+
codeChallenge: string;
|
|
45
|
+
/** The ID of the user whom the code names. */
|
|
46
|
+
userId: string;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=PendingKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PendingKey.d.ts","sourceRoot":"","sources":["../../src/internal/PendingKey.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAC9D,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC,0GAA0G;AAC1G,eAAO,MAAM,QAAQ,QAAU,CAAA;AAE/B,0EAA0E;AAC1E,MAAM,MAAM,UAAU,GAAG;IACvB,+CAA+C;IAC/C,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB,8DAA8D;IAC9D,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;CACpE,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,iBAgBjE;AAED,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,KAAK,OAAO,GAAG;QACb,uDAAuD;QACvD,QAAQ,EAAE,MAAM,CAAA;QAChB,4DAA4D;QAC5D,aAAa,EAAE,MAAM,CAAA;QACrB,yFAAyF;QACzF,MAAM,EAAE,MAAM,CAAA;QACd,sEAAsE;QACtE,GAAG,EAAE,UAAU,CAAA;QACf,+CAA+C;QAC/C,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED;;;;GAIG;AACH,wBAAsB,IAAI,CACxB,EAAE,EAAE,KAAK,CAAC,QAAQ,EAClB,OAAO,EAAE,IAAI,CAAC,OAAO,GACpB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAsBjC;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,OAAO,GAAG;QACb,sDAAsD;QACtD,QAAQ,EAAE,MAAM,CAAA;QAChB,gEAAgE;QAChE,aAAa,EAAE,MAAM,CAAA;QACrB,8CAA8C;QAC9C,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Key authorizations that the approval page signed, held until the app redeems the code that the
|
|
3
|
+
* same approval returned. A signed authorization lets whoever holds its key spend, so no redirect
|
|
4
|
+
* carries it. Each row is keyed by the app's client ID and the request's PKCE challenge, and only
|
|
5
|
+
* the redemption that proves the challenge's verifier takes it.
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
import { and, eq, gt } from 'drizzle-orm';
|
|
9
|
+
import * as Schema from '../app/db/schema.js';
|
|
10
|
+
/** Seconds that a signed key authorization waits for its code's redemption, as long as the code lasts. */
|
|
11
|
+
export const lifetime = 10 * 60;
|
|
12
|
+
/**
|
|
13
|
+
* Holds `key` for the app with `clientId` and the PKCE challenge `codeChallenge`, for
|
|
14
|
+
* {@link lifetime} seconds, or until the key expires if sooner. A later approval of the same request
|
|
15
|
+
* by the same user replaces the key that an earlier approval left, so the key matches the approval
|
|
16
|
+
* that the user made last. Another user's approval replaces nothing.
|
|
17
|
+
*/
|
|
18
|
+
export async function put(db, options) {
|
|
19
|
+
const { clientId, codeChallenge, expiry, key, userId } = options;
|
|
20
|
+
const values = {
|
|
21
|
+
account: key.account,
|
|
22
|
+
expiresAt: new Date(Math.min(Date.now() + lifetime * 1000, expiry * 1000)),
|
|
23
|
+
keyAuthorization: key.keyAuthorization,
|
|
24
|
+
userId,
|
|
25
|
+
};
|
|
26
|
+
await db
|
|
27
|
+
.insert(Schema.pendingKeys)
|
|
28
|
+
.values({ ...values, clientId, codeChallenge })
|
|
29
|
+
.onConflictDoUpdate({
|
|
30
|
+
set: { ...values, createdAt: new Date() },
|
|
31
|
+
setWhere: eq(Schema.pendingKeys.userId, userId),
|
|
32
|
+
target: [Schema.pendingKeys.clientId, Schema.pendingKeys.codeChallenge],
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Deletes the key held for the app with `clientId`, the PKCE challenge `codeChallenge`, and the
|
|
37
|
+
* user `userId`, and returns it. Returns `undefined` when none is held, when it expired, or when an
|
|
38
|
+
* earlier redemption took it, so a second code for the same challenge carries no key.
|
|
39
|
+
*/
|
|
40
|
+
export async function take(db, options) {
|
|
41
|
+
const { clientId, codeChallenge, userId } = options;
|
|
42
|
+
const [row] = await db
|
|
43
|
+
.delete(Schema.pendingKeys)
|
|
44
|
+
.where(and(eq(Schema.pendingKeys.clientId, clientId), eq(Schema.pendingKeys.codeChallenge, codeChallenge), gt(Schema.pendingKeys.expiresAt, new Date()),
|
|
45
|
+
// A challenge that an app reuses for another user's request never carries this user's key.
|
|
46
|
+
eq(Schema.pendingKeys.userId, userId)))
|
|
47
|
+
.returning({
|
|
48
|
+
account: Schema.pendingKeys.account,
|
|
49
|
+
keyAuthorization: Schema.pendingKeys.keyAuthorization,
|
|
50
|
+
});
|
|
51
|
+
if (!row)
|
|
52
|
+
return undefined;
|
|
53
|
+
return {
|
|
54
|
+
account: row.account,
|
|
55
|
+
keyAuthorization: row.keyAuthorization,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=PendingKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PendingKey.js","sourceRoot":"","sources":["../../src/internal/PendingKey.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAI7C,0GAA0G;AAC1G,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAA;AAU/B;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,EAAkB,EAAE,OAAoB;IAChE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAChE,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QAC1E,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,MAAM;KACP,CAAA;IACD,MAAM,EAAE;SACL,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;SAC1B,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;SAC9C,kBAAkB,CAAC;QAClB,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACzC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;QAC/C,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC;KACxE,CAAC,CAAA;AACN,CAAC;AAiBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,EAAkB,EAClB,OAAqB;IAErB,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACnD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;SAC1B,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACzC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,EACnD,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;IAC5C,2FAA2F;IAC3F,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CACtC,CACF;SACA,SAAS,CAAC;QACT,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO;QACnC,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,gBAAgB;KACtD,CAAC,CAAA;IACJ,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAwB;QACrC,gBAAgB,EAAE,GAAG,CAAC,gBAAkD;KACzE,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Account } from 'viem/tempo';
|
|
2
|
+
import * as ErrorResponse from './ErrorResponse.js';
|
|
3
|
+
import * as Timing from './Timing.js';
|
|
4
|
+
/** No `PRIVY_JWT_PRIVATE_KEY` is set, so Tempo ID cannot sign as a Privy wallet. */
|
|
5
|
+
export declare class SigningKeyMissingError extends Error {
|
|
6
|
+
readonly name = "Privy.SigningKeyMissingError";
|
|
7
|
+
constructor();
|
|
8
|
+
}
|
|
9
|
+
/** A realm's Privy app, which holds the owner wallets of the realm's Privy-owned accounts. */
|
|
10
|
+
export type App = {
|
|
11
|
+
/** The Privy app ID. */
|
|
12
|
+
appId: string;
|
|
13
|
+
/** The Privy app secret. */
|
|
14
|
+
appSecret: string;
|
|
15
|
+
};
|
|
16
|
+
/** A user's Privy wallet. */
|
|
17
|
+
export type Wallet = {
|
|
18
|
+
/** The wallet's address. */
|
|
19
|
+
address: `0x${string}`;
|
|
20
|
+
/** When Privy created the wallet, or a lower bound when Privy omits it. */
|
|
21
|
+
createdAt: Date;
|
|
22
|
+
/** The Privy wallet ID, which signing requests name. */
|
|
23
|
+
id: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Returns the user's first Privy wallet in `app`, and creates their Privy user and the wallet when
|
|
27
|
+
* they have none. Concurrent first calls return the same wallet, and hold no database connection
|
|
28
|
+
* while Privy responds.
|
|
29
|
+
*/
|
|
30
|
+
export declare function firstWallet(c: Timing.measure.Context, options: firstWallet.Options): Promise<Wallet>;
|
|
31
|
+
export declare namespace firstWallet {
|
|
32
|
+
type Options = {
|
|
33
|
+
/** The Privy app that holds the user's wallets. */
|
|
34
|
+
app: App;
|
|
35
|
+
/** The user's ID. */
|
|
36
|
+
userId: string;
|
|
37
|
+
};
|
|
38
|
+
/** The refusals `firstWallet` throws, which `ErrorResponse.handle` responds with: Privy's failures. */
|
|
39
|
+
const errors: readonly [typeof ErrorResponse.RateLimitedError, typeof ErrorResponse.UpstreamUnavailableError];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Returns the user's Privy wallets in `app`, oldest first, or none when they have no Privy user yet.
|
|
43
|
+
* Creates nothing.
|
|
44
|
+
*/
|
|
45
|
+
export declare function listWallets(c: Timing.measure.Context, options: listWallets.Options): Promise<readonly Wallet[]>;
|
|
46
|
+
export declare namespace listWallets {
|
|
47
|
+
type Options = {
|
|
48
|
+
/** The Privy app that holds the user's wallets. */
|
|
49
|
+
app: App;
|
|
50
|
+
/** The user's ID. */
|
|
51
|
+
userId: string;
|
|
52
|
+
};
|
|
53
|
+
/** The refusals `listWallets` throws, which `ErrorResponse.handle` responds with: Privy's failures. */
|
|
54
|
+
const errors: readonly [typeof ErrorResponse.RateLimitedError, typeof ErrorResponse.UpstreamUnavailableError];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns a token that names the user for `app`, which Privy exchanges for the right to sign as the
|
|
58
|
+
* user's wallet. `privateKey` signs it, and Privy trusts only that key's public half, so no token
|
|
59
|
+
* that Tempo ID issues to apps signs as a wallet. It lasts {@link tokenLifetime} seconds, and its
|
|
60
|
+
* `aud` is the Privy app ID. Throws {@link SigningKeyMissingError} without `privateKey`.
|
|
61
|
+
*/
|
|
62
|
+
export declare function token(auth: token.Auth, options: token.Options): Promise<string>;
|
|
63
|
+
export declare namespace token {
|
|
64
|
+
/** The capability that signs the token: Better Auth's in-process `signJWT`. */
|
|
65
|
+
type Auth = {
|
|
66
|
+
/** Better Auth's server API. */
|
|
67
|
+
api: {
|
|
68
|
+
/** Signs `payload` with the key set that `overrideOptions` names. */
|
|
69
|
+
signJWT: (input: {
|
|
70
|
+
body: {
|
|
71
|
+
overrideOptions?: Record<string, unknown> | undefined;
|
|
72
|
+
payload: Record<string, unknown>;
|
|
73
|
+
};
|
|
74
|
+
}) => Promise<{
|
|
75
|
+
token: string;
|
|
76
|
+
}>;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
type Options = {
|
|
80
|
+
/** The Privy app that exchanges the token. */
|
|
81
|
+
app: App;
|
|
82
|
+
/** The `PRIVY_JWT_PRIVATE_KEY` variable, as PKCS #8 PEM. */
|
|
83
|
+
privateKey: string | undefined;
|
|
84
|
+
/** The user's ID, the token's `sub`. */
|
|
85
|
+
userId: string;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/** Returns the Tempo Account that `wallet` owns, which signs only with `token`. */
|
|
89
|
+
export declare function toAccount(options: toAccount.Options): Account.ConfigurableAccount<{
|
|
90
|
+
owners: readonly import("viem/tempo").z_AccountConfigOwner<number>[];
|
|
91
|
+
salt: import("ox/Hex").Hex;
|
|
92
|
+
threshold: number;
|
|
93
|
+
version: bigint;
|
|
94
|
+
}>;
|
|
95
|
+
export declare namespace toAccount {
|
|
96
|
+
type Options = {
|
|
97
|
+
/** The Privy app that holds `wallet`. */
|
|
98
|
+
app: App;
|
|
99
|
+
/** The token from {@link token}, which signing requires. Absent, the account cannot sign. */
|
|
100
|
+
token?: string | undefined;
|
|
101
|
+
/** The owner wallet. */
|
|
102
|
+
wallet: Wallet;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=Privy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Privy.d.ts","sourceRoot":"","sources":["../../src/internal/Privy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Each user's Privy embedded wallets, which hold the owner keys of their Privy-owned Tempo Accounts.
|
|
3
|
+
* Each realm's Privy app keys the user by their user ID, the `sub` of every token Tempo ID issues,
|
|
4
|
+
* as a custom auth ID. Tempo ID reads and creates wallets with the app secret, and signs as a wallet
|
|
5
|
+
* with a token that only Privy trusts.
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
import { PrivyClient } from '@privy-io/node';
|
|
9
|
+
import { createViemAccount } from '@privy-io/node/viem';
|
|
10
|
+
import { Base64 } from 'ox';
|
|
11
|
+
import { Account } from 'viem/tempo';
|
|
12
|
+
import * as ErrorResponse from './ErrorResponse.js';
|
|
13
|
+
import * as Timing from './Timing.js';
|
|
14
|
+
/** No `PRIVY_JWT_PRIVATE_KEY` is set, so Tempo ID cannot sign as a Privy wallet. */
|
|
15
|
+
export class SigningKeyMissingError extends Error {
|
|
16
|
+
name = 'Privy.SigningKeyMissingError';
|
|
17
|
+
constructor() {
|
|
18
|
+
super('Missing PRIVY_JWT_PRIVATE_KEY. Set the RS256 private key whose public half each Privy app trusts.');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/** How long a token for Privy lasts, in seconds: long enough for one signing request. */
|
|
22
|
+
const tokenLifetime = 60;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the user's first Privy wallet in `app`, and creates their Privy user and the wallet when
|
|
25
|
+
* they have none. Concurrent first calls return the same wallet, and hold no database connection
|
|
26
|
+
* while Privy responds.
|
|
27
|
+
*/
|
|
28
|
+
export async function firstWallet(c, options) {
|
|
29
|
+
const { app, userId } = options;
|
|
30
|
+
const privyUser = (await Timing.measure(c, findUser(c, { app, userId }), 'Privy.findUser')) ??
|
|
31
|
+
(await Timing.measure(c, createUser(c, { app, userId }), 'Privy.createUser'));
|
|
32
|
+
// The user is created without a wallet, so every call that finds no wallet sends the same
|
|
33
|
+
// idempotent create, and concurrent calls receive one wallet.
|
|
34
|
+
return (wallets(privyUser)[0] ??
|
|
35
|
+
(await Timing.measure(c, addWallet(c, { app, privyUserId: privyUser.id }), 'Privy.addWallet')));
|
|
36
|
+
}
|
|
37
|
+
(function (firstWallet) {
|
|
38
|
+
/** The refusals `firstWallet` throws, which `ErrorResponse.handle` responds with: Privy's failures. */
|
|
39
|
+
firstWallet.errors = ErrorResponse.fromUpstream.errors;
|
|
40
|
+
})(firstWallet || (firstWallet = {}));
|
|
41
|
+
/**
|
|
42
|
+
* Returns the user's Privy wallets in `app`, oldest first, or none when they have no Privy user yet.
|
|
43
|
+
* Creates nothing.
|
|
44
|
+
*/
|
|
45
|
+
export async function listWallets(c, options) {
|
|
46
|
+
const privyUser = await Timing.measure(c, findUser(c, options), 'Privy.findUser');
|
|
47
|
+
return privyUser ? wallets(privyUser) : [];
|
|
48
|
+
}
|
|
49
|
+
(function (listWallets) {
|
|
50
|
+
/** The refusals `listWallets` throws, which `ErrorResponse.handle` responds with: Privy's failures. */
|
|
51
|
+
listWallets.errors = ErrorResponse.fromUpstream.errors;
|
|
52
|
+
})(listWallets || (listWallets = {}));
|
|
53
|
+
/**
|
|
54
|
+
* Returns a token that names the user for `app`, which Privy exchanges for the right to sign as the
|
|
55
|
+
* user's wallet. `privateKey` signs it, and Privy trusts only that key's public half, so no token
|
|
56
|
+
* that Tempo ID issues to apps signs as a wallet. It lasts {@link tokenLifetime} seconds, and its
|
|
57
|
+
* `aud` is the Privy app ID. Throws {@link SigningKeyMissingError} without `privateKey`.
|
|
58
|
+
*/
|
|
59
|
+
export async function token(auth, options) {
|
|
60
|
+
const { app, privateKey, userId } = options;
|
|
61
|
+
if (!privateKey)
|
|
62
|
+
throw new SigningKeyMissingError();
|
|
63
|
+
const key = await crypto.subtle.importKey('pkcs8', new Uint8Array(Base64.toBytes(privateKey.replace(/-----[^-]+-----|\s/g, ''))), { hash: 'SHA-256', name: 'RSASSA-PKCS1-v1_5' }, true, ['sign']);
|
|
64
|
+
const jwk = (await crypto.subtle.exportKey('jwk', key));
|
|
65
|
+
const now = Math.floor(Date.now() / 1000);
|
|
66
|
+
// Better Auth signs with this key alone, never with the keys that sign apps' tokens.
|
|
67
|
+
const signed = await auth.api.signJWT({
|
|
68
|
+
body: {
|
|
69
|
+
overrideOptions: {
|
|
70
|
+
adapter: {
|
|
71
|
+
getJwks: () => [
|
|
72
|
+
{
|
|
73
|
+
alg: 'RS256',
|
|
74
|
+
createdAt: new Date(0),
|
|
75
|
+
id: 'privy',
|
|
76
|
+
privateKey: JSON.stringify(jwk),
|
|
77
|
+
publicKey: JSON.stringify({ e: jwk.e, kty: jwk.kty, n: jwk.n }),
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
jwks: {
|
|
82
|
+
disablePrivateKeyEncryption: true,
|
|
83
|
+
keyPairConfig: { alg: 'RS256' },
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
payload: {
|
|
87
|
+
aud: app.appId,
|
|
88
|
+
exp: now + tokenLifetime,
|
|
89
|
+
iat: now,
|
|
90
|
+
sub: userId,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
return signed.token;
|
|
95
|
+
}
|
|
96
|
+
/** Returns the Tempo Account that `wallet` owns, which signs only with `token`. */
|
|
97
|
+
export function toAccount(options) {
|
|
98
|
+
const { app, token, wallet } = options;
|
|
99
|
+
return Account.fromConfig({
|
|
100
|
+
owners: [
|
|
101
|
+
createViemAccount(client(app), {
|
|
102
|
+
address: wallet.address,
|
|
103
|
+
// Privy signs as the wallet only with its owner's token.
|
|
104
|
+
...(token ? { authorizationContext: { user_jwts: [token] } } : {}),
|
|
105
|
+
walletId: wallet.id,
|
|
106
|
+
}),
|
|
107
|
+
],
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Adds an embedded wallet to a Privy user. While a concurrent create with the same idempotency key
|
|
112
|
+
* is still in progress, Privy refuses with a 400, so the create waits and resends a bounded number
|
|
113
|
+
* of times until Privy returns the first create's wallet.
|
|
114
|
+
*/
|
|
115
|
+
async function addWallet(c, options) {
|
|
116
|
+
for (let attempt = 1;; attempt++) {
|
|
117
|
+
const created = await Timing.measure(c, client(options.app)
|
|
118
|
+
.wallets()
|
|
119
|
+
.create({
|
|
120
|
+
chain_type: 'ethereum',
|
|
121
|
+
// A retry after a timeout or a 5xx, by the SDK or a later request, returns the wallet that
|
|
122
|
+
// the first attempt created instead of a second one.
|
|
123
|
+
idempotency_key: `tempo-id:first-wallet:${options.privyUserId}`,
|
|
124
|
+
owner: { user_id: options.privyUserId },
|
|
125
|
+
}), 'privy.wallets.create').catch((error) => {
|
|
126
|
+
if (attempt < addWallet.attempts && inProgress(error))
|
|
127
|
+
return undefined;
|
|
128
|
+
throw error;
|
|
129
|
+
});
|
|
130
|
+
if (created)
|
|
131
|
+
return {
|
|
132
|
+
address: created.address,
|
|
133
|
+
createdAt: new Date(created.created_at),
|
|
134
|
+
id: created.id,
|
|
135
|
+
};
|
|
136
|
+
await Timing.measure(c, new Promise((resolve) => setTimeout(resolve, addWallet.interval)), 'Privy.addWallet.wait');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
(function (addWallet) {
|
|
140
|
+
/** The most creates that one call sends. */
|
|
141
|
+
addWallet.attempts = 10;
|
|
142
|
+
/** The wait between creates, in milliseconds. */
|
|
143
|
+
addWallet.interval = 250;
|
|
144
|
+
})(addWallet || (addWallet = {}));
|
|
145
|
+
/**
|
|
146
|
+
* Returns a client for the Privy app `app`. A request waits at most 8 seconds for each of two
|
|
147
|
+
* attempts, so a slow Privy fails the request with `upstream_unavailable` well before the SDK's
|
|
148
|
+
* one-minute default.
|
|
149
|
+
*/
|
|
150
|
+
function client(app) {
|
|
151
|
+
return new PrivyClient({
|
|
152
|
+
appId: app.appId,
|
|
153
|
+
appSecret: app.appSecret,
|
|
154
|
+
maxRetries: 1,
|
|
155
|
+
timeout: 8_000,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/** Creates the Privy user for a user ID, without a wallet. */
|
|
159
|
+
async function createUser(c, options) {
|
|
160
|
+
return await Timing.measure(c, client(options.app)
|
|
161
|
+
.users()
|
|
162
|
+
.create({
|
|
163
|
+
linked_accounts: [
|
|
164
|
+
{ custom_user_id: options.userId, type: 'custom_auth' },
|
|
165
|
+
],
|
|
166
|
+
}), 'privy.users.create').catch(async (error) => {
|
|
167
|
+
// A concurrent request may create the user first, so a conflict reads it instead.
|
|
168
|
+
const existing = await Timing.measure(c, findUser(c, options), 'Privy.findUser');
|
|
169
|
+
if (!existing)
|
|
170
|
+
throw error;
|
|
171
|
+
return existing;
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
/** Returns the Privy user for a user ID, or `undefined` when there is none yet. */
|
|
175
|
+
async function findUser(c, options) {
|
|
176
|
+
return await Timing.measure(c, client(options.app)
|
|
177
|
+
.users()
|
|
178
|
+
.getByCustomAuthID({ custom_user_id: options.userId }), 'privy.users.get').catch((error) => {
|
|
179
|
+
if (error instanceof Error && 'status' in error && error.status === 404)
|
|
180
|
+
return undefined;
|
|
181
|
+
throw error;
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Returns whether `error` is Privy's refusal of a create whose idempotency key names a create still
|
|
186
|
+
* in progress. Privy marks it only with a 400 and its message.
|
|
187
|
+
*/
|
|
188
|
+
function inProgress(error) {
|
|
189
|
+
return (error instanceof Error &&
|
|
190
|
+
'status' in error &&
|
|
191
|
+
error.status === 400 &&
|
|
192
|
+
error.message.includes('idempotency key is still in progress'));
|
|
193
|
+
}
|
|
194
|
+
/** Returns a Privy user's embedded Ethereum wallets, in the order Privy created them. */
|
|
195
|
+
function wallets(privyUser) {
|
|
196
|
+
return privyUser.linked_accounts
|
|
197
|
+
.flatMap((entry) => entry.type === 'wallet' &&
|
|
198
|
+
'chain_type' in entry &&
|
|
199
|
+
entry.chain_type === 'ethereum' &&
|
|
200
|
+
'connector_type' in entry &&
|
|
201
|
+
entry.connector_type === 'embedded' &&
|
|
202
|
+
'id' in entry &&
|
|
203
|
+
entry.id
|
|
204
|
+
? [{ ...entry, id: entry.id }]
|
|
205
|
+
: [])
|
|
206
|
+
.sort((a, b) => (a.wallet_index ?? 0) - (b.wallet_index ?? 0))
|
|
207
|
+
.reduce((list, entry) => {
|
|
208
|
+
// Privy records a wallet's creation as its first verification, in seconds. Without it, the
|
|
209
|
+
// first wallet was created with the user, and a later one after the wallet before it. That
|
|
210
|
+
// time is a lower bound that keeps the wallets in order.
|
|
211
|
+
const createdAt = typeof entry.first_verified_at === 'number'
|
|
212
|
+
? new Date(entry.first_verified_at * 1000)
|
|
213
|
+
: (list.at(-1)?.createdAt ?? new Date(privyUser.created_at * 1000));
|
|
214
|
+
return [
|
|
215
|
+
...list,
|
|
216
|
+
{
|
|
217
|
+
address: entry.address,
|
|
218
|
+
createdAt,
|
|
219
|
+
id: entry.id,
|
|
220
|
+
},
|
|
221
|
+
];
|
|
222
|
+
}, []);
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=Privy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Privy.js","sourceRoot":"","sources":["../../src/internal/Privy.ts"],"names":[],"mappings":"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"}
|