@tempoxyz/id 0.0.0-pr-196.sha-50666de → 0.0.0-pr-192.sha-e78622a

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 (77) hide show
  1. package/README.md +2 -2
  2. package/dist/app/client/assets/{ccip-zsC5LUoj.js → ccip-DgEYqRsh.js} +1 -1
  3. package/dist/app/client/assets/index-B7YJVP00.css +1 -0
  4. package/dist/app/client/assets/index-lPLOdRTI.js +55 -0
  5. package/dist/app/server/.vite/manifest.json +27 -47
  6. package/dist/app/server/assets/{_tanstack-start-manifest_v-D04-9r0-.js → _tanstack-start-manifest_v-tfMl2fC8.js} +1 -1
  7. package/dist/app/server/assets/cookie-CS900nSP.css +1 -0
  8. package/dist/app/server/assets/{cookie-XMwIGOY4.js → cookie-Cce9CrIP.js} +1 -1
  9. package/dist/app/server/assets/{cookie-XMwIGOY4.js.map → cookie-Cce9CrIP.js.map} +1 -1
  10. package/dist/app/server/assets/router-CcbyBCI4.css +1 -0
  11. package/dist/app/server/assets/router-ESAgyRBy.js +7 -0
  12. package/dist/app/server/assets/router-ESAgyRBy.js.map +1 -0
  13. package/dist/app/server/index.js +20 -20
  14. package/dist/app/server/index.js.map +1 -1
  15. package/dist/client/actions/email.d.ts +5 -2
  16. package/dist/client/actions/email.d.ts.map +1 -1
  17. package/dist/client/actions/email.js +20 -7
  18. package/dist/client/actions/email.js.map +1 -1
  19. package/dist/client/actions/passkey.d.ts +12 -11
  20. package/dist/client/actions/passkey.d.ts.map +1 -1
  21. package/dist/client/actions/passkey.js +19 -14
  22. package/dist/client/actions/passkey.js.map +1 -1
  23. package/dist/client/internal/headless.d.ts +61 -1
  24. package/dist/client/internal/headless.d.ts.map +1 -1
  25. package/dist/client/internal/headless.js +51 -0
  26. package/dist/client/internal/headless.js.map +1 -1
  27. package/dist/internal/Passkey.d.ts +34 -2
  28. package/dist/internal/Passkey.d.ts.map +1 -1
  29. package/dist/internal/Passkey.js +77 -20
  30. package/dist/internal/Passkey.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/api/authenticate.ts +194 -72
  33. package/src/api/authorize.ts +11 -191
  34. package/src/api/lib/Cors.ts +3 -1
  35. package/src/api/lib/Headless.ts +423 -0
  36. package/src/api/lib/KeySigner.ts +36 -12
  37. package/src/api/lib/SignInConsent.ts +5 -2
  38. package/src/app/components/Button.tsx +128 -0
  39. package/src/app/components/CodeInput.tsx +136 -110
  40. package/src/app/components/ErrorMessage.tsx +66 -0
  41. package/src/app/components/Grant.tsx +49 -61
  42. package/src/app/components/Input.tsx +48 -0
  43. package/src/app/components/Tooltip.tsx +45 -0
  44. package/src/app/routes/[_].flows.tsx +20 -19
  45. package/src/app/routes/__root.tsx +6 -4
  46. package/src/app/routes/authorize.tsx +1 -1
  47. package/src/app/routes/choose-account.tsx +3 -8
  48. package/src/app/routes/deposit.tsx +1 -1
  49. package/src/app/routes/device.tsx +1 -1
  50. package/src/app/routes/index.tsx +1 -1
  51. package/src/app/routes/login.tsx +1 -1
  52. package/src/app/screens/Account.tsx +35 -45
  53. package/src/app/screens/Approval.tsx +18 -30
  54. package/src/app/screens/ChooseAccount.tsx +17 -14
  55. package/src/app/screens/Deposit.tsx +49 -90
  56. package/src/app/screens/DeviceApproval.tsx +39 -61
  57. package/src/app/screens/SignIn.tsx +83 -67
  58. package/src/app/vite.config.ts +1 -1
  59. package/src/app/zyzz.config.ts +224 -15
  60. package/src/client/actions/email.ts +24 -10
  61. package/src/client/actions/passkey.ts +22 -16
  62. package/src/client/internal/headless.ts +78 -1
  63. package/src/internal/Passkey.ts +128 -23
  64. package/dist/app/client/assets/Pilat-Black-BLB40yUv.woff2 +0 -0
  65. package/dist/app/client/assets/Pilat-Heavy-D7T63kQY.woff2 +0 -0
  66. package/dist/app/client/assets/Pilat-Light-DwJMu0Ze.woff2 +0 -0
  67. package/dist/app/client/assets/Pilat-Thin-mw3Cat5Z.woff2 +0 -0
  68. package/dist/app/client/assets/index-BiqwZuAy.js +0 -55
  69. package/dist/app/client/assets/index-D_lfZDG-.css +0 -1
  70. package/dist/app/server/assets/Pilat-Black-BLB40yUv.woff2 +0 -0
  71. package/dist/app/server/assets/Pilat-Heavy-D7T63kQY.woff2 +0 -0
  72. package/dist/app/server/assets/Pilat-Light-DwJMu0Ze.woff2 +0 -0
  73. package/dist/app/server/assets/Pilat-Thin-mw3Cat5Z.woff2 +0 -0
  74. package/dist/app/server/assets/cookie-Dhu6Hd0m.css +0 -1
  75. package/dist/app/server/assets/router-B84JQOhz.css +0 -1
  76. package/dist/app/server/assets/router-DHRnZX_D.js +0 -7
  77. package/dist/app/server/assets/router-DHRnZX_D.js.map +0 -1
package/README.md CHANGED
@@ -43,7 +43,7 @@ Tempo ID is one package, `@tempoxyz/id`. An app calls Tempo's deployment, or run
43
43
 
44
44
  ### Hosted
45
45
 
46
- Tempo runs Tempo ID at `https://id.tempo.xyz`, and its development deployment at `https://id.tehq.dev`. A JavaScript app signs in through the client entry:
46
+ Tempo runs Tempo ID at `https://id.tempo.xyz`, and its current production deployment at `https://id.tehq.dev`. A JavaScript app signs in through the client entry:
47
47
 
48
48
  ```ts
49
49
  import { Actions, Auth } from '@tempoxyz/id/client'
@@ -66,7 +66,7 @@ npx tempo-id init my-id --from "Tempo ID <noreply@id.example.com>" --url https:/
66
66
 
67
67
  ## Playgrounds
68
68
 
69
- [`playgrounds/`](playgrounds/README.md) holds one app per flow, deployed beside development at `https://id.tehq.dev`.
69
+ [`playgrounds/`](playgrounds/README.md) holds one app per flow, deployed beside production at `https://id.tehq.dev`.
70
70
 
71
71
  | Playground | Directory | URL |
72
72
  | --------------------- | -------------------------------------------- | ---------------------------------------------------------------------------- |
@@ -1 +1 @@
1
- import{C as e,E as t,S as n,T as r,_ as i,a,b as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x,v as S,w as C,x as w,y as T}from"./index-BiqwZuAy.js";function E(e){let{abi:t,data:r}=e,i=d(r,0,4),a=t.find(e=>e.type===`function`&&i===m(n(e)));if(!a)throw new o(i,{docsPath:`/docs/contract/decodeFunctionData`});return{functionName:a.name,args:`inputs`in a&&a.inputs&&a.inputs.length>0?x(a.inputs,d(r,4)):void 0}}var D=`/docs/contract/encodeErrorResult`;function O(e){let{abi:t,errorName:r,args:a}=e,o=t[0];if(r){let e=y({abi:t,args:a,name:r});if(!e)throw new i(r,{docsPath:D});o=e}if(o.type!==`error`)throw new i(void 0,{docsPath:D});let s=n(o),l=m(s),d=`0x`;if(a&&a.length>0){if(!o.inputs)throw new u(o.name,{docsPath:D});d=c(o.inputs,a)}return _([l,d])}var k=`/docs/contract/encodeFunctionResult`;function A(e){let{abi:t,functionName:n,result:r}=e,i=t[0];if(n){let e=y({abi:t,name:n});if(!e)throw new S(n,{docsPath:k});i=e}if(i.type!==`function`)throw new S(void 0,{docsPath:k});if(!i.outputs)throw new T(i.name,{docsPath:k});let a=(()=>{if(i.outputs.length===0)return[];if(i.outputs.length===1)return[r];if(Array.isArray(r))return r;throw new w(r)})();return c(i.outputs,a)}var j=class extends t{constructor({callbackSelector:e,cause:t,data:n,extraData:r,sender:i,urls:o}){super(t.shortMessage||`An error occurred while fetching for an offchain result.`,{cause:t,metaMessages:[...t.metaMessages||[],t.metaMessages?.length?``:[],`Offchain Gateway Call:`,o&&[` Gateway URL(s):`,...o.map(e=>` ${a(e)}`)],` Sender: ${i}`,` Data: ${n}`,` Callback selector: ${e}`,` Extra data: ${r}`].flat(),name:`OffchainLookupError`})}},M=class extends t{constructor({result:e,url:t}){super(`Offchain gateway response is malformed. Response data must be a hex value.`,{metaMessages:[`Gateway URL: ${a(t)}`,`Response: ${s(e)}`],name:`OffchainLookupResponseMalformedError`})}},N=class extends t{constructor({sender:e,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${e}`],name:`OffchainLookupSenderMismatchError`})}};async function P(e){let{data:t,ccipRequest:n}=e,{args:[r]}=E({abi:C,data:t}),i=[],a=[];return await Promise.all(r.map(async(e,t)=>{try{a[t]=e.urls.includes(`x-batch-gateway:true`)?await P({data:e.data,ccipRequest:n}):await n(e),i[t]=!1}catch(e){i[t]=!0,a[t]=F(e)}})),A({abi:C,functionName:`query`,result:[i,a]})}function F(t){return t.name===`HttpRequestError`&&t.status?O({abi:C,errorName:`HttpError`,args:[t.status,t.shortMessage]}):O({abi:[e],errorName:`Error`,args:[`shortMessage`in t?t.shortMessage:t.message]})}var I=`0x556f1830`,L={name:`OffchainLookup`,type:`error`,inputs:[{name:`sender`,type:`address`},{name:`urls`,type:`string[]`},{name:`callData`,type:`bytes`},{name:`callbackFunction`,type:`bytes4`},{name:`extraData`,type:`bytes`}]};async function R(e,{blockNumber:t,blockTag:n,data:r,requestOptions:i,to:a}){let{args:o}=p({data:r,abi:[L]}),[s,u,d,m,h]=o,{ccipRead:_}=e,y=_&&typeof _?.request==`function`?_.request:z;try{if(!v(a,s))throw new N({sender:s,to:a});let r=u.includes(`x-batch-gateway:true`)?await P({data:d,ccipRequest:e=>y({...e,requestOptions:i})}):await y({data:d,requestOptions:i,sender:s,urls:u}),{data:o}=await b(e,{blockNumber:t,blockTag:n,data:l([m,c([{type:`bytes`},{type:`bytes`}],[r,h])]),requestOptions:i,to:a});return o}catch(e){throw i?.signal?.aborted?f(i.signal):g(e)?e:new j({callbackSelector:m,cause:e,data:r,extraData:h,sender:s,urls:u})}}async function z({data:e,requestOptions:t,sender:n,urls:i}){let a=Error(`An unknown error occurred.`);for(let o=0;o<i.length;o++){if(t?.signal?.aborted)throw f(t.signal);let c=i[o],l=c.includes(`{data}`)?`GET`:`POST`,u=l===`POST`?{data:e,sender:n}:void 0,d=l===`POST`?{"Content-Type":`application/json`}:{};try{let i=await fetch(c.replace(`{sender}`,n.toLowerCase()).replace(`{data}`,e),{body:JSON.stringify(u),headers:d,method:l,...t?.signal?{signal:t.signal}:{}}),o;if(o=i.headers.get(`Content-Type`)?.startsWith(`application/json`)?(await i.json()).data:await i.text(),!i.ok){a=new h({body:u,details:o?.error?s(o.error):i.statusText,headers:i.headers,status:i.status,url:c});continue}if(!r(o)){a=new M({result:o,url:c});continue}return o}catch(e){if(t?.signal?.aborted)throw f(t.signal);if(g(e))throw e;a=new h({body:u,details:e.message,url:c})}}throw a}export{R as offchainLookup,I as offchainLookupSignature};
1
+ import{C as e,E as t,S as n,T as r,_ as i,a,b as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x,v as S,w as C,x as w,y as T}from"./index-lPLOdRTI.js";function E(e){let{abi:t,data:r}=e,i=d(r,0,4),a=t.find(e=>e.type===`function`&&i===m(n(e)));if(!a)throw new o(i,{docsPath:`/docs/contract/decodeFunctionData`});return{functionName:a.name,args:`inputs`in a&&a.inputs&&a.inputs.length>0?x(a.inputs,d(r,4)):void 0}}var D=`/docs/contract/encodeErrorResult`;function O(e){let{abi:t,errorName:r,args:a}=e,o=t[0];if(r){let e=y({abi:t,args:a,name:r});if(!e)throw new i(r,{docsPath:D});o=e}if(o.type!==`error`)throw new i(void 0,{docsPath:D});let s=n(o),l=m(s),d=`0x`;if(a&&a.length>0){if(!o.inputs)throw new u(o.name,{docsPath:D});d=c(o.inputs,a)}return _([l,d])}var k=`/docs/contract/encodeFunctionResult`;function A(e){let{abi:t,functionName:n,result:r}=e,i=t[0];if(n){let e=y({abi:t,name:n});if(!e)throw new S(n,{docsPath:k});i=e}if(i.type!==`function`)throw new S(void 0,{docsPath:k});if(!i.outputs)throw new T(i.name,{docsPath:k});let a=(()=>{if(i.outputs.length===0)return[];if(i.outputs.length===1)return[r];if(Array.isArray(r))return r;throw new w(r)})();return c(i.outputs,a)}var j=class extends t{constructor({callbackSelector:e,cause:t,data:n,extraData:r,sender:i,urls:o}){super(t.shortMessage||`An error occurred while fetching for an offchain result.`,{cause:t,metaMessages:[...t.metaMessages||[],t.metaMessages?.length?``:[],`Offchain Gateway Call:`,o&&[` Gateway URL(s):`,...o.map(e=>` ${a(e)}`)],` Sender: ${i}`,` Data: ${n}`,` Callback selector: ${e}`,` Extra data: ${r}`].flat(),name:`OffchainLookupError`})}},M=class extends t{constructor({result:e,url:t}){super(`Offchain gateway response is malformed. Response data must be a hex value.`,{metaMessages:[`Gateway URL: ${a(t)}`,`Response: ${s(e)}`],name:`OffchainLookupResponseMalformedError`})}},N=class extends t{constructor({sender:e,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${e}`],name:`OffchainLookupSenderMismatchError`})}};async function P(e){let{data:t,ccipRequest:n}=e,{args:[r]}=E({abi:C,data:t}),i=[],a=[];return await Promise.all(r.map(async(e,t)=>{try{a[t]=e.urls.includes(`x-batch-gateway:true`)?await P({data:e.data,ccipRequest:n}):await n(e),i[t]=!1}catch(e){i[t]=!0,a[t]=F(e)}})),A({abi:C,functionName:`query`,result:[i,a]})}function F(t){return t.name===`HttpRequestError`&&t.status?O({abi:C,errorName:`HttpError`,args:[t.status,t.shortMessage]}):O({abi:[e],errorName:`Error`,args:[`shortMessage`in t?t.shortMessage:t.message]})}var I=`0x556f1830`,L={name:`OffchainLookup`,type:`error`,inputs:[{name:`sender`,type:`address`},{name:`urls`,type:`string[]`},{name:`callData`,type:`bytes`},{name:`callbackFunction`,type:`bytes4`},{name:`extraData`,type:`bytes`}]};async function R(e,{blockNumber:t,blockTag:n,data:r,requestOptions:i,to:a}){let{args:o}=p({data:r,abi:[L]}),[s,u,d,m,h]=o,{ccipRead:_}=e,y=_&&typeof _?.request==`function`?_.request:z;try{if(!v(a,s))throw new N({sender:s,to:a});let r=u.includes(`x-batch-gateway:true`)?await P({data:d,ccipRequest:e=>y({...e,requestOptions:i})}):await y({data:d,requestOptions:i,sender:s,urls:u}),{data:o}=await b(e,{blockNumber:t,blockTag:n,data:l([m,c([{type:`bytes`},{type:`bytes`}],[r,h])]),requestOptions:i,to:a});return o}catch(e){throw i?.signal?.aborted?f(i.signal):g(e)?e:new j({callbackSelector:m,cause:e,data:r,extraData:h,sender:s,urls:u})}}async function z({data:e,requestOptions:t,sender:n,urls:i}){let a=Error(`An unknown error occurred.`);for(let o=0;o<i.length;o++){if(t?.signal?.aborted)throw f(t.signal);let c=i[o],l=c.includes(`{data}`)?`GET`:`POST`,u=l===`POST`?{data:e,sender:n}:void 0,d=l===`POST`?{"Content-Type":`application/json`}:{};try{let i=await fetch(c.replace(`{sender}`,n.toLowerCase()).replace(`{data}`,e),{body:JSON.stringify(u),headers:d,method:l,...t?.signal?{signal:t.signal}:{}}),o;if(o=i.headers.get(`Content-Type`)?.startsWith(`application/json`)?(await i.json()).data:await i.text(),!i.ok){a=new h({body:u,details:o?.error?s(o.error):i.statusText,headers:i.headers,status:i.status,url:c});continue}if(!r(o)){a=new M({result:o,url:c});continue}return o}catch(e){if(t?.signal?.aborted)throw f(t.signal);if(g(e))throw e;a=new h({body:u,details:e.message,url:c})}}throw a}export{R as offchainLookup,I as offchainLookupSignature};