@seams/wallet 0.30.0 → 0.33.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 (100) hide show
  1. package/README.md +7 -7
  2. package/THIRD_PARTY_NOTICES.md +1 -127
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +38 -10
  5. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +23 -67
  6. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/RecoveryOptions.js +60 -0
  7. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +6 -0
  8. package/dist/esm/SeamsWeb/walletIframe/shared/authMenuPresentation.js +28 -0
  9. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +21 -10
  10. package/dist/esm/SeamsWeb/walletIframe/shared/walletAlternatives.js +4 -14
  11. package/dist/esm/core/ui/walletIcon.js +11 -3
  12. package/dist/esm/externalNear/controller.js +3 -2
  13. package/dist/esm/externalNear/meteor.js +1 -1
  14. package/dist/esm/externalNear/meteorRequest.js +8 -2
  15. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +17 -1
  16. package/dist/esm/sdk/{host-Csu5L7VF.js → host-BsVFOugh.js} +1 -1
  17. package/dist/esm/sdk/ownerNearOperation-BsIdSH0C.js +1 -0
  18. package/dist/esm/sdk/registration-Coh0_Nva.js +1 -0
  19. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  20. package/dist/esm/sdk/runtime-auth-CJCU2yJi.js +1 -0
  21. package/dist/esm/sdk/{runtime-device-link-DQe0aqRi.js → runtime-device-link-C0oXLSnz.js} +1 -1
  22. package/dist/esm/sdk/{runtime-ecdsa-tempo-DKkeMMpm.js → runtime-ecdsa-tempo-BC8u9NuI.js} +1 -1
  23. package/dist/esm/sdk/{runtime-email-otp-CzTe7r9I.js → runtime-email-otp-Cl4iu0z7.js} +1 -1
  24. package/dist/esm/sdk/{runtime-export-BiyLbdCe.js → runtime-export-BdhfErGJ.js} +1 -1
  25. package/dist/esm/sdk/{runtime-near-Kk0n1FSf.js → runtime-near-CT2ALBct.js} +1 -1
  26. package/dist/esm/sdk/{runtime-preferences-B-A3hddU.js → runtime-preferences-fN2G9tct.js} +1 -1
  27. package/dist/esm/sdk/{runtime-recovery-C9p1TU1w.js → runtime-recovery-n-TGLkwz.js} +1 -1
  28. package/dist/esm/sdk/{runtimeContext-ChuvOC0h.js → runtimeContext-DI28d8Qu.js} +1 -1
  29. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  30. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  31. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  32. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  33. package/dist/esm/sdk/wallet-service.css +2 -0
  34. package/dist/esm/sdk/wallet-ui.css +1 -1
  35. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  36. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
  37. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.d.ts +212 -233
  38. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.js +675 -694
  39. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  40. package/dist/public/headers.manifest.json +1 -1
  41. package/dist/public/sdk/{host-Csu5L7VF.js → host-BsVFOugh.js} +1 -1
  42. package/dist/public/sdk/ownerNearOperation-BsIdSH0C.js +1 -0
  43. package/dist/public/sdk/registration-Coh0_Nva.js +1 -0
  44. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  45. package/dist/public/sdk/runtime-auth-CJCU2yJi.js +1 -0
  46. package/dist/public/sdk/{runtime-device-link-DQe0aqRi.js → runtime-device-link-C0oXLSnz.js} +1 -1
  47. package/dist/public/sdk/{runtime-ecdsa-tempo-DKkeMMpm.js → runtime-ecdsa-tempo-BC8u9NuI.js} +1 -1
  48. package/dist/public/sdk/{runtime-email-otp-CzTe7r9I.js → runtime-email-otp-Cl4iu0z7.js} +1 -1
  49. package/dist/public/sdk/{runtime-export-BiyLbdCe.js → runtime-export-BdhfErGJ.js} +1 -1
  50. package/dist/public/sdk/{runtime-near-Kk0n1FSf.js → runtime-near-CT2ALBct.js} +1 -1
  51. package/dist/public/sdk/{runtime-preferences-B-A3hddU.js → runtime-preferences-fN2G9tct.js} +1 -1
  52. package/dist/public/sdk/{runtime-recovery-C9p1TU1w.js → runtime-recovery-n-TGLkwz.js} +1 -1
  53. package/dist/public/sdk/{runtimeContext-ChuvOC0h.js → runtimeContext-DI28d8Qu.js} +1 -1
  54. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  55. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  56. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  57. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  58. package/dist/public/sdk/wallet-service.css +2 -0
  59. package/dist/public/sdk/wallet-ui.css +1 -1
  60. package/dist/public/sdk/workers/device-linking-key.worker.js +454 -947
  61. package/dist/public/sdk/workers/email-otp.worker.js +588 -820
  62. package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
  63. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +572 -804
  64. package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  65. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  66. package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
  67. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +524 -971
  68. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  69. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  70. package/dist/public/wallet-assets.manifest.json +29 -29
  71. package/dist/public/wallet-service/index.html +4 -4
  72. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.d.ts +4 -0
  73. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +3 -1
  74. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/RecoveryOptions.d.ts +11 -0
  75. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.d.ts +3 -0
  76. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/authMenuPresentation.d.ts +13 -0
  77. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +7 -1
  78. package/dist/types/wallet/src/core/ui/walletIcon.d.ts +1 -0
  79. package/dist/types/wallet/src/externalNear/meteorRequest.d.ts +3 -0
  80. package/dist/types/wallet/src/index.d.ts +1 -1
  81. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/public.d.ts +1 -1
  82. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +6 -2
  83. package/dist/types/wallet/src/react/index.d.ts +1 -1
  84. package/dist/workers/device-linking-key.worker.js +454 -947
  85. package/dist/workers/email-otp.worker.js +588 -820
  86. package/dist/workers/evm_crypto_bg.wasm +0 -0
  87. package/dist/workers/passkey-mpc-export.worker.js +572 -804
  88. package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  89. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  90. package/dist/workers/tempo_signer_bg.wasm +0 -0
  91. package/dist/workers/wallet-custody-ceremony.worker.js +524 -971
  92. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  93. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  94. package/package.json +17 -17
  95. package/dist/esm/sdk/ownerNearOperation-DCxxHcwX.js +0 -1
  96. package/dist/esm/sdk/registration-C7w_51wE.js +0 -1
  97. package/dist/esm/sdk/runtime-auth-BMT_gIKI.js +0 -1
  98. package/dist/public/sdk/ownerNearOperation-DCxxHcwX.js +0 -1
  99. package/dist/public/sdk/registration-C7w_51wE.js +0 -1
  100. package/dist/public/sdk/runtime-auth-BMT_gIKI.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seams/wallet",
3
- "version": "0.30.0",
3
+ "version": "0.33.0",
4
4
  "type": "module",
5
5
  "description": "Seams web and runtime TypeScript SDK for NEAR and EVM-family wallets",
6
6
  "main": "./dist/esm/index.js",
@@ -179,10 +179,10 @@
179
179
  },
180
180
  "homepage": "https://github.com/seams-tech/seams-wallet#readme",
181
181
  "peerDependencies": {
182
- "jsqr": ">=1.4.0",
183
- "qrcode": ">=1.3.0",
184
- "react": "^18.0.0 || ^19.0.0",
185
- "react-dom": "^18.0.0 || ^19.0.0"
182
+ "jsqr": "1.4.0",
183
+ "qrcode": "1.5.4",
184
+ "react": "19.1.1",
185
+ "react-dom": "19.1.1"
186
186
  },
187
187
  "peerDependenciesMeta": {
188
188
  "react": {
@@ -200,21 +200,21 @@
200
200
  },
201
201
  "dependencies": {
202
202
  "@levischuck/tiny-cbor": "0.2.11",
203
- "@near-js/types": "^2.4.0",
203
+ "@near-js/types": "2.4.0",
204
204
  "borsh": "1.0.0",
205
- "bs58": "^6.0.0",
206
- "idb": "^8.0.3",
205
+ "bs58": "6.0.0",
206
+ "idb": "8.0.3",
207
207
  "preact": "10.29.8",
208
- "viem": "^2.38.6"
208
+ "viem": "2.46.0"
209
209
  },
210
210
  "devDependencies": {
211
- "@simplewebauthn/server": "^13.2.2",
212
- "@types/node": "^20.19.9",
213
- "@types/qrcode": "^1.5.5",
214
- "@types/react": "^19.1.12",
215
- "@types/react-dom": "^19.1.9",
216
- "react": "^19.1.1",
217
- "react-dom": "^19.1.1",
218
- "rolldown": "^1.0.0-beta.27"
211
+ "@simplewebauthn/server": "13.2.2",
212
+ "@types/node": "20.19.13",
213
+ "@types/qrcode": "1.5.5",
214
+ "@types/react": "19.1.12",
215
+ "@types/react-dom": "19.1.9",
216
+ "react": "19.1.1",
217
+ "react-dom": "19.1.1",
218
+ "rolldown": "1.0.0-rc.9"
219
219
  }
220
220
  }
@@ -1 +0,0 @@
1
- import{E as e,k as t}from"./domainIds-t1lp25yU.js";import{S as n,b as r,g as i,x as a}from"./digests-BIaE0DMd.js";import{N as o,r as s}from"./activeWalletSession-HAOgRKzn.js";import{t as c}from"./walletIframeIdentity-Cz82I_Uh.js";import{r as l}from"./canonicalPrimitives-DKeS3M40.js";import{o as u}from"./errors-BJBDbwHk.js";import{s as d}from"./nearRpcResults-CeHdqaS4.js";import{n as f}from"./ed25519OperationFingerprint-Dev4P6Og.js";import{r as ee}from"./types-D2Zk1W7I.js";import{t as te}from"./accountIds-DGWFzEnw.js";import{t as p}from"./actions-7SvZZut1.js";const m=`__SEAMS_WALLET_SDK_BASE__`,h=`SEAMS_WALLET_SDK_BASE_CHANGED`,g=`__SEAMS_WALLET_ASSET_VERSION__`;function ne(){if(typeof window>`u`)return;let e=window[m];return typeof e==`string`&&e.length>0?e:void 0}function _(e){if(typeof window>`u`)return;let t=window;t[m]=e,window.dispatchEvent(new CustomEvent(h,{detail:e}))}function v(){if(typeof window>`u`)return;let e=window[g];return typeof e==`string`&&e.length>0?e:void 0}function re(e){if(typeof window>`u`)return;let t=e.trim();t&&(window[g]=t)}function ie(e){if(typeof window>`u`)return()=>{};let t=t=>{let n=t.detail;typeof n==`string`&&n.length>0&&e(n)};return window.addEventListener(h,t,{passive:!0}),()=>window.removeEventListener(h,t)}function ae(e){return typeof e!=`string`||e.length>131072||!/^data:image\/(?:png|webp|jpeg|svg\+xml)[;,]/i.test(e)?null:e}function y(){return{primary:[],secondary:[]}}function b(e){return typeof e==`string`&&e.trim().length>0&&e.length<=512}function x(e){if(e===null)return{ok:!0,value:null};let t=ae(e);if(t!==null)return{ok:!0,value:t};if(typeof e!=`string`||e.length>131072)return{ok:!1};try{if(new URL(e).protocol===`https:`)return{ok:!0,value:e}}catch{return{ok:!1}}return{ok:!1}}function S(e,t){if(!Array.isArray(e)||e.length>32)return null;let n=[];for(let r of e){if(!i(r)||!b(r.id)||!b(r.label)||typeof r.description!=`string`||r.description.length>512||t.has(r.id))return null;let e=x(r.icon);if(!e.ok)return null;t.add(r.id),n.push({id:r.id,label:r.label,description:r.description,icon:e.value})}return n}function oe(e){if(!i(e))return null;let t=new Set,n=S(e.primary,t),r=S(e.secondary,t);return n&&r?{primary:n,secondary:r}:null}function se(e){if(!i(e)||!i(e.result))return null;let t=O(e.authMenuSessionId),n;try{n=c(e.requestId)}catch{return null}if(!t||!b(e.connectionRequestId))return null;let r;switch(e.result.kind){case`connected`:case`cancelled`:if(e.result.message!==void 0)return null;r={kind:e.result.kind};break;case`failed`:if(!b(e.result.message))return null;r={kind:`failed`,message:e.result.message};break;default:return null}return{authMenuSessionId:t,requestId:n,connectionRequestId:e.connectionRequestId,result:r}}const C={login:{title:`Welcome back`,subtitle:``,passkeyCta:`Unlock with passkey`},register:{title:`Create a wallet`,subtitle:``,passkeyNameLabel:`Wallet name`,passkeyCta:`Create wallet with passkey`},common:{closeLabel:`Close`}};function w(e,t){return typeof e==`string`&&e.trim()||null}function T(e,t){let n=w(e,t);return n===null?null:n}function E(e){try{return c(e)}catch{return null}}function D(e,t){let n=new Set(t);return Object.keys(e).every(e=>n.has(e))}function O(e){return T(e,`authMenuSessionId`)}function k(e){return T(e,`externalAuthRequestId`)}function A(e){return i(e)?e:null}function j(e,t=new Set,n=!1){if(e===void 0)return n;if(e===null||typeof e==`string`||typeof e==`boolean`)return!0;if(typeof e==`number`)return Number.isFinite(e);if(typeof e!=`object`||t.has(e))return!1;if(t.add(e),Array.isArray(e))return e.every(e=>j(e,t,n));let r=A(e);return r!==null&&Object.values(r).every(e=>j(e,t,n))}function M(e,t){return w(e,`copy`)??t}function N(e,t){let n=A(e);return{title:M(n?.title,t.title),subtitle:M(n?.subtitle,t.subtitle),passkeyCta:M(n?.passkeyCta,t.passkeyCta)}}function ce(e){let t=A(e),n=A(t?.register);return{login:N(t?.login,C.login),register:{...N(t?.register,C.register),passkeyNameLabel:M(n?.passkeyNameLabel,C.register.passkeyNameLabel)},common:{closeLabel:M(A(t?.common)?.closeLabel,C.common.closeLabel)}}}function P(e){return e===`google`?e:null}function F(e){return e===`login`||e===`register`?e:null}function I(e){return e===`implicit_wallet`||e===`sponsored_named_near_account`?e:null}function L(e){return e===`close_button`||e===`component_unmounted`||e===`connection_closed`?e:null}function R(e,t){if(e===void 0)return!0;let n=A(e);return n!==null&&D(n,t)}function z(e){let t=A(e);return!t||!D(t,[`login`,`register`,`common`])?!1:R(t.login,[`title`,`subtitle`,`passkeyCta`])&&R(t.register,[`title`,`subtitle`,`passkeyCta`,`passkeyNameLabel`])&&R(t.common,[`closeLabel`])}function B(e){if(!Array.isArray(e))return null;let t=[];for(let n of e){let e=P(n);if(!e)return null;t.push(e)}return t}function V(e){let n=A(e);if(!n||!j(n,new Set,!0)||n.kind!==`hosted_auth_menu_open_v1`||!D(n,[`kind`,`authMenuSessionId`,`initialMode`,`initialHeightCssPx`,`loginTarget`,`registrationAccountInput`,`showRegistrationInput`,`showProgress`,`copy`,`enabledExternalProviders`,`walletAlternatives`])||!z(n.copy))return null;let r=O(n.authMenuSessionId),i=F(n.initialMode),a=n.initialHeightCssPx;if(a!==void 0&&(typeof a!=`number`||!Number.isFinite(a)||a<=0))return null;let o=A(n.loginTarget),s=o?.kind===`wallet`||o?.kind===`wallet_sync`?t(o.walletId):null,c=o?.kind===`discoverable`&&D(o,[`kind`])?{kind:`discoverable`}:o?.kind===`wallet`&&D(o,[`kind`,`walletId`])&&s?.ok?{kind:`wallet`,walletId:s.value}:o?.kind===`wallet_sync`&&D(o,[`kind`,`walletId`])&&s?.ok?{kind:`wallet_sync`,walletId:s.value}:null,l=I(n.registrationAccountInput),u=B(n.enabledExternalProviders),d=n.walletAlternatives===void 0?y():oe(n.walletAlternatives);return!r||!i||!c||!l||typeof n.showRegistrationInput!=`boolean`||typeof n.showProgress!=`boolean`||!u||!d||!j(n.copy,new Set,!0)?null:{kind:`hosted_auth_menu_open_v1`,authMenuSessionId:r,initialMode:i,initialHeightCssPx:a,loginTarget:c,registrationAccountInput:l,showRegistrationInput:n.showRegistrationInput,showProgress:n.showProgress,copy:ce(n.copy),enabledExternalProviders:u,walletAlternatives:d}}function H(e){let t=A(e);if(!t||!j(t)||t.kind!==`hosted_auth_menu_error_v1`||!D(t,[`kind`,`authMenuSessionId`,`mode`,`message`]))return null;let n=O(t.authMenuSessionId),r=F(t.mode),i=w(t.message,`message`);return n&&r&&i?{kind:t.kind,authMenuSessionId:n,mode:r,message:i}:null}function U(e){let t=A(e);if(!t||!j(t))return null;switch(t.kind){case`google_id_token`:{if(!D(t,[`kind`,`idToken`]))return null;let e=w(t.idToken,`idToken`);return e?{kind:t.kind,idToken:e}:null}case`cancelled`:return D(t,[`kind`,`reason`])&&t.reason===`user_cancelled`?{kind:t.kind,reason:t.reason}:null;case`failed`:{if(!D(t,[`kind`,`code`,`message`]))return null;let e=t.code===`provider_unavailable`||t.code===`provider_error`||t.code===`invalid_evidence`?t.code:null,n=w(t.message,`message`);return e&&n?{kind:t.kind,code:e,message:n}:null}default:return null}}function W(e){let t=A(e);if(!t||!j(t)||t.kind!==`hosted_auth_menu_external_auth_resolution_v1`||!D(t,[`kind`,`authMenuSessionId`,`externalAuthRequestId`,`requestId`,`evidence`]))return null;let n=O(t.authMenuSessionId),r=k(t.externalAuthRequestId),i=E(t.requestId),a=U(t.evidence);return!n||!r||!i||!a?null:{kind:t.kind,authMenuSessionId:n,externalAuthRequestId:r,requestId:i,evidence:a}}function G(e){let t=A(e);if(!t||!j(t)||t.kind!==`hosted_auth_menu_cancel_v1`||!D(t,[`kind`,`authMenuSessionId`,`requestId`,`reason`]))return null;let n=O(t.authMenuSessionId),r=E(t.requestId),i=L(t.reason);return n&&r&&i?{kind:t.kind,authMenuSessionId:n,requestId:r,reason:i}:null}const le=`20.0.0`,ue=`WALLET_IFRAME_PROTOCOL_VERSION_MISMATCH`,K=[`home`,`exchangeCode`,`nonce`,`appOrigin`,`walletOrigin`,`relayUrl`];function q(e,t){if(typeof e!=`string`||e.length===0||e.length>512||e.trim()!==e||/[\s\u0000-\u001f\u007f]/.test(e))throw Error(`${t} must be a compact opaque identifier`);return e}function J(e,t){if(typeof e!=`string`||e.length===0||e.trim()!==e)throw Error(`${t} must be a canonical HTTP origin`);let n;try{n=new URL(e)}catch{throw Error(`${t} must be a canonical HTTP origin`)}if(n.protocol!==`https:`&&n.protocol!==`http:`||n.origin!==e||n.pathname!==`/`||n.search!==``||n.hash!==``)throw Error(`${t} must be a canonical HTTP origin`);return n.origin}function de(e){if(!i(e))throw Error(`hosted-wallet redemption payload must be an exact object`);if(Object.keys(e).length!==K.length)throw Error(`hosted-wallet redemption payload fields are invalid`);for(let t of K)if(!Object.hasOwn(e,t))throw Error(`hosted-wallet redemption payload fields are invalid`);return{home:s(e.home),exchangeCode:q(e.exchangeCode,`exchangeCode`),nonce:q(e.nonce,`nonce`),appOrigin:J(e.appOrigin,`appOrigin`),walletOrigin:J(e.walletOrigin,`walletOrigin`),relayUrl:q(e.relayUrl,`relayUrl`)}}function fe(t){if(!i(t)||!D(t,[`scanRequestId`,`action`])||typeof t.scanRequestId!=`string`||t.scanRequestId.length===0||!i(t.action))return null;let n=t.action;if(n.kind===`cancel`)return D(n,[`kind`])?{scanRequestId:t.scanRequestId,action:{kind:n.kind}}:null;if(n.kind!==`select`||!D(n,[`kind`,`baseWalletAuthMethodId`]))return null;let r=e(n.baseWalletAuthMethodId);return r.ok?{scanRequestId:t.scanRequestId,action:{kind:n.kind,baseWalletAuthMethodId:r.value}}:null}function pe(e){if(!i(e)||!D(e,[`activationId`,`action`])||typeof e.activationId!=`string`||e.activationId.length===0||!i(e.action))return null;let t=e.action;switch(t.kind){case`create_passkey`:case`send_email_otp`:case`resend_email_otp`:return D(t,[`kind`])?{activationId:e.activationId,action:{kind:t.kind}}:null;case`submit_email_otp`:return D(t,[`kind`,`otpCode`])&&typeof t.otpCode==`string`&&/^\d{6}$/.test(t.otpCode)?{activationId:e.activationId,action:{kind:t.kind,otpCode:t.otpCode}}:null;default:return null}}function me(e){let t=n(e,`NEAR transaction result`);if(t.success===!0){let e=r(t.transactionId,`transactionId`),n=d(t.result);if(e!==n.transaction.hash)throw Error(`NEAR transaction result contains different transaction hashes`);return typeof n.status==`object`&&`Failure`in n.status?Y(e,Error(`NEAR transaction execution failed`)):{success:!0,transactionId:e,result:n}}if(t.success!==!1)throw Error(`Invalid NEAR transaction result`);let i=a(t.error,`NEAR transaction error`);switch(t.kind){case`not_submitted`:return{success:!1,kind:`not_submitted`,error:i};case`submission_unknown`:return{success:!1,kind:`submission_unknown`,error:i};case`unresolved`:return{success:!1,kind:`unresolved`,transactionId:r(t.transactionId,`transactionId`),error:i};default:throw Error(`Invalid NEAR transaction failure`)}}function he(e,t){return{success:!1,kind:t,error:u(e)||`NEAR transaction failed`}}function Y(e,t){return{success:!1,kind:`unresolved`,transactionId:e,error:u(t)}}function ge(){return{appIdentity:{kind:`anonymous`},authentication:{kind:`signed_out`},capabilityProjection:{kind:`not_requested`},nonceDiagnostics:null}}let X=0;function _e(){return X+=1,X}const ve=`/wallet/external-auth`;function ye(e){let t=n(e,`external identity`),i=t.provider,a=r(t.issuer,`issuer`),o=r(t.subject,`subject`);switch(i){case`google`:if(a!==`https://accounts.google.com`)throw Error(`Invalid Google issuer`);return{provider:i,issuer:a,subject:o};case`application`:return{provider:i,issuer:a,subject:o};default:throw Error(`Invalid external identity provider`)}}function be(e){let i=n(e,`external owner challenge`),a=t(i.walletId);if(!a.ok)throw Error(`Invalid owner challenge wallet`);let s=a.value,c=r(i.attemptId,`attemptId`),u=ye(i.identity),d=l(i.challengeB64u),f=o(i.expiresAtMs,`owner challenge expiry`);switch(i.kind){case`associate`:return{kind:`associate`,walletId:s,attemptId:c,identity:u,challengeB64u:d,expiresAtMs:f};case`unlink`:return{kind:`unlink`,walletId:s,attemptId:c,identity:u,challengeB64u:d,expiresAtMs:f,associationId:r(i.associationId,`associationId`)};default:throw Error(`Invalid owner challenge purpose`)}}function xe(e){let t=n(e,`external auth command`);if(t.action===`prepare`||t.action===`prepare_association`)return{action:t.action,walletId:r(t.walletId,`walletId`)};if(t.action===`unlink`)return{action:`unlink`,walletId:r(t.walletId,`walletId`),associationId:r(t.associationId,`associationId`)};if(t.action!==`authenticate`&&t.action!==`associate`)throw Error(`Invalid external authentication command`);let i=n(t.input,`authentication input`),a=r(i.walletId,`walletId`);if(i.method===`google`)return{action:t.action,input:{method:`google`,walletId:a,idToken:r(i.idToken,`idToken`)}};if(i.method===`handoff`)return{action:t.action,input:{method:`handoff`,walletId:a,attemptId:r(i.attemptId,`attemptId`),code:r(i.code,`code`)}};throw Error(`Unsupported external authentication method`)}function Z(e){let i=n(e,`external authentication`),a=t(i.walletId);if(!a.ok||i.kind!==`external_authenticated`||i.provider!==`google`&&i.provider!==`application`||i.permission!==`wallet_settings_read`||`authMethod`in i)throw Error(`External authentication is invalid`);return{kind:`external_authenticated`,walletId:a.value,sessionId:r(i.sessionId,`sessionId`),associationId:r(i.associationId,`associationId`),environmentId:r(i.environmentId,`environmentId`),provider:i.provider,permission:`wallet_settings_read`,expiresAtMs:o(i.expiresAtMs,`expiresAtMs`)}}function Q(e){return{ok:!1,code:e,message:`Wallet authentication could not be completed.`}}function Se(e){let t=n(e,`external authentication failure`);switch(t.code){case`invalid_request`:case`invalid_credential`:case`access_denied`:case`expired`:case`superseded`:case`unavailable`:case`rate_limited`:case`cancelled`:return Q(t.code);default:return Q(`unavailable`)}}function Ce(e){let t=n(e,`external settings`);if(!Array.isArray(t.accounts)||!Array.isArray(t.methods)||!Array.isArray(t.devices))throw Error(`Invalid wallet settings`);return{authentication:Z(t.authentication),accounts:t.accounts.map(we),methods:t.methods.map(Te),devices:t.devices.map(Ee)}}function we(e){let t=n(e,`account`);if(t.family!==`ed25519`&&t.family!==`ecdsa`)throw Error(`Invalid account family`);return{family:t.family,address:r(t.address,`address`),publicKey:r(t.publicKey,`publicKey`)}}function Te(e){let t=n(e,`method`);if(t.kind!==`passkey`&&t.kind!==`email_otp`&&t.kind!==`voiceid`)throw Error(`Invalid method`);return{id:r(t.id,`id`),kind:t.kind}}function Ee(e){return{id:r(n(e,`device`).id,`id`)}}function $(e){let i=n(e,`owner operation recovery`),a=r(i.operationId,`operationId`);if(!/^owner-near:[A-Za-z0-9_-]{32,64}$/.test(a))throw Error(`Invalid owner operation ID.`);let o=t(i.walletId);if(!o.ok)throw Error(`Invalid owner operation wallet.`);return{operationId:ee.signingOperation(a),walletId:o.value,nearAccountId:te(r(i.nearAccountId,`nearAccountId`))}}function De(e){let t=n(e,`owner operation command`),r=Z(t.authentication),i=$(t.recovery);if(i.walletId!==String(r.walletId))throw Error(`Owner operation wallet mismatch.`);switch(t.action){case`recover`:return{action:`recover`,authentication:r,recovery:i};case`approve`:{let e=n(t.transaction,`transaction`),a=f({nearAccountId:i.nearAccountId,receiverId:e.receiverId,actions:e.actions},`transaction`);if(a.nearAccountId!==String(i.nearAccountId))throw Error(`Owner operation account mismatch.`);let o=t.expiresAtMs;if(typeof o!=`number`||!Number.isSafeInteger(o)||o<=0)throw Error(`Invalid owner operation expiry.`);return{action:`approve`,authentication:r,recovery:i,expiresAtMs:o,transaction:{receiverId:a.receiverId,actions:a.actions.map(ke)}}}default:throw Error(`Invalid owner operation action.`)}}function Oe(e){let t=n(e,`owner operation outcome`);switch(t.kind){case`completed`:{let e=me(t.result);if(!e.success)throw Error(`A completed owner operation requires a successful transaction.`);return{kind:`completed`,result:e}}case`reverted`:return{kind:`reverted`,transactionId:r(t.transactionId,`transactionId`),error:r(t.error,`error`)};case`cancelled`:return{kind:`cancelled`};case`expired`:return{kind:`expired`};case`failed`:return{kind:`failed`,error:r(t.error,`error`)};case`unknown`:return{kind:`unknown`,recovery:$(t.recovery)};default:throw Error(`Invalid owner operation outcome.`)}}function ke(e){switch(e.action_type){case`CreateAccount`:return{action_type:p.CreateAccount};case`DeployContract`:return{action_type:p.DeployContract,code:[...e.code]};case`FunctionCall`:return{action_type:p.FunctionCall,method_name:e.method_name,args:e.args,gas:e.gas,deposit:e.deposit};case`Transfer`:return{action_type:p.Transfer,deposit:e.deposit};case`Stake`:return{action_type:p.Stake,stake:e.stake,public_key:e.public_key};case`AddKey`:return{action_type:p.AddKey,public_key:e.public_key,access_key:e.access_key};case`DeleteKey`:return{action_type:p.DeleteKey,public_key:e.public_key};case`DeleteAccount`:return{action_type:p.DeleteAccount,beneficiary_id:e.beneficiary_id};case`DeployGlobalContract`:return{action_type:p.DeployGlobalContract,code:[...e.code],deploy_mode:e.deploy_mode};case`UseGlobalContract`:return e.account_id===void 0?{action_type:p.UseGlobalContract,code_hash:e.code_hash}:{action_type:p.UseGlobalContract,account_id:e.account_id};case`SignedDelegate`:throw Error(`Use the delegate API for delegated actions.`);default:throw Error(`Unsupported owner transaction action.`)}}export{_ as A,de as C,ne as D,v as E,ie as O,V as S,se as T,fe as _,Q as a,H as b,be as c,ge as d,he as f,k as g,le as h,ve as i,re as k,Ce as l,ue as m,Oe as n,xe as o,Y as p,$ as r,Se as s,De as t,_e as u,pe as v,y as w,W as x,G as y};