@privy-io/js-sdk-core 0.65.1 → 0.65.3
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/dist/cjs/client/PrivyInternal.js +1 -1
- package/dist/cjs/client/mfa/MfaApi.js +1 -1
- package/dist/cjs/client/mfa/MfaApi.js.map +1 -1
- package/dist/cjs/embedded/EmbeddedWalletProxy.js +1 -1
- package/dist/cjs/embedded/EmbeddedWalletProxy.js.map +1 -1
- package/dist/esm/client/PrivyInternal.mjs +1 -1
- package/dist/esm/client/mfa/MfaApi.mjs +1 -1
- package/dist/esm/client/mfa/MfaApi.mjs.map +1 -1
- package/dist/esm/embedded/EmbeddedWalletProxy.mjs +1 -1
- package/dist/esm/embedded/EmbeddedWalletProxy.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("fetch-retry"),t=require("@privy-io/api-base"),s=require("@privy-io/routes"),i=require("../Error.js"),r=require("../Session.js"),a=require("../toAbortSignalTimeout.js"),n=require("../utils/toSearchParams.js"),o=require("./logger.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("eventemitter3"),require("jose"),require("js-cookie"),require("../Token.js"),require("../utils/allSettled.js"),require("../utils/noop.js");var c=/*#__PURE__*/h(e);let l="privy:caid";exports.PrivyInternal=class{setCallbacks(e){this.callbacks={...this.callbacks,...e}}get isReady(){return!!this._config}get config(){return this._config}get caid(){return this._analyticsId}async _initialize(){if(this.isReady)this.callbacks?.setIsReady?.(!0);else{if(!await this.isStorageAccessible())throw new i.PrivyClientError({code:"storage_error",error:"Unable to access storage"});this._config=await this.getAppConfig(),this._config?.custom_api_url&&(this.baseUrl=this._config.custom_api_url,this.session.isUsingServerCookies=!0),this.callbacks?.setIsReady?.(!0),this._sdkVersion.startsWith("react-auth:")||this.createAnalyticsEvent("sdk_initialize",{})}}getPath(e,{params:t,query:i}){return`${this.baseUrl}${s.getPathWithParams(e.path,t)}${n.toSearchParams(i)}`}async fetch(e,{body:t,params:s,query:r,headers:a,onRequest:n=this._beforeRequest.bind(this)}){let o=new Request(this.getPath(e,{params:s,query:r}),{method:e.method,body:JSON.stringify(t),headers:a}),h=await n(o),c=await this._fetch(o,h),l=await c.json();if(c.status>299)throw new i.PrivyApiError({...l,status:c.status});return l}async _beforeRequestWithoutInitialize(e){let t=await this.session.getPrivyAccessToken()??await this.session.getCustomerAccessToken(),s=new Headers(e.headers);s.set("privy-app-id",this.appId),this.appClientId&&s.set("privy-client-id",this.appClientId),s.set("privy-client",this._sdkVersion),t&&s.set("Authorization",`Bearer ${t}`),s.set("Content-Type","application/json"),s.set("Accept","application/json");let i=await this._getOrGenerateClientAnalyticsId();return i&&s.set("privy-ca-id",i),this.nativeAppIdentifier&&s.set("x-native-app-identifier",this.nativeAppIdentifier),{signal:a.default(2e4),headers:s,credentials:"include"}}async beforeRequestWithoutRefresh(e){return await this._initialize(),this._beforeRequestWithoutInitialize(e)}async _beforeRequest(e){return await this._initialize(),await this.getAccessTokenInternal(),this.beforeRequestWithoutRefresh(e)}async getAppConfig(){return await this.fetch(s.AppConfig,{params:{app_id:this.appId},onRequest:this._beforeRequestWithoutInitialize.bind(this)})}async _getOrGenerateClientAnalyticsId(){if(this._analyticsId)return this._analyticsId;try{let e=await this._storage.get(l);if("string"==typeof e&&e.length>0)return this._analyticsId=e,e}catch(e){this.logger.error("Unable to load clientId",e)}try{this._analyticsId=this._crypto.randomUUID()}catch(e){this.logger.error("Unable to generate uuidv4",e)}if(this._analyticsId){try{await this._storage.put(l,this._analyticsId)}catch(e){this.logger.error(`Unable to store clientId: ${this._analyticsId}`,e)}return this._analyticsId}}async destroyClientAnalyticsId(){try{return await this._storage.del(l)}catch(e){this.logger.error("Unable to delete clientId",e)}}async createAnalyticsEvent(e,t){try{await this.fetch(s.AnalyticsEvent,{body:{event_name:e,client_id:await this._getOrGenerateClientAnalyticsId(),payload:t},onRequest:this.beforeRequestWithoutRefresh.bind(this)})}catch(e){}}async refreshSession(e=!1){if(!await this.isStorageAccessible())throw new i.PrivyClientError({code:"storage_error",error:"Unable to access storage"});let t=await this.session.getRefreshToken()??void 0,s=t??"key",r=this._cache.get(s);if(r)return this.logger.debug("[privy:refresh] found in-flight session refresh request, deduping"),await r;let a=this._refreshSession(t,e);this._cache.set(s,a);try{return await a}finally{this._cache.delete(s)}}async _refreshSession(e,r){let a=await this.session.getCustomerAccessToken();if(!this.session.hasRefreshCredentials(a,e??null))throw this.logger.debug("[privy:refresh] missing tokens, skipping request"),await this._initialize(),new i.PrivyApiError({code:t.PrivyErrorCode.MISSING_OR_INVALID_TOKEN,error:"No tokens found in storage",status:401});try{this.logger.debug(`[privy:refresh] fetching: ${s.RefreshSession.path}`);let t=await this.fetch(s.RefreshSession,{body:{refresh_token:e},onRequest:this.beforeRequestWithoutRefresh.bind(this)}),i=t.session_update_action;return this.logger.debug(`[privy:refresh] response: ${i}`),"set"===i&&(await this.session.updateWithTokensResponse(t),this.logger.debug("[privy:refresh] tokens stored")),"clear"===i&&(await this.session.destroyLocalState(),this.logger.debug("[privy:refresh] tokens cleared"),r||this.callbacks?.setUser?.(null)),"ignore"===i&&(t.token&&(await this.session.storeCustomerAccessToken(t.token),this.logger.debug("[privy:refresh] token stored (CAT)")),t.privy_access_token&&(await this.session.storePrivyAccessToken(t.privy_access_token),this.logger.debug("[privy:refresh] token stored (PAT)")),t.identity_token&&(this.logger.debug("[privy:refresh] token stored (IDT)"),await this.session.storeIdentityToken(t.identity_token))),this.logger.debug("[privy:refresh] returning response"),r||this.callbacks?.setUser?.(t.user),t}catch(e){throw this.logger.debug(`[privy:refresh] error: ${e.message??"unknown error"}`),e instanceof i.PrivyApiError&&e.code===t.PrivyErrorCode.MISSING_OR_INVALID_TOKEN&&(await this.session.destroyLocalState(),r||this.callbacks?.setUser?.(null)),e}}async getAccessToken(){let[e,t]=await Promise.all([this.session.getCustomerAccessToken(),this.session.getRefreshToken()]);if(e&&!this.session.tokenIsActive(e)&&this.session.hasRefreshCredentials(e,t)){let t=await this.refreshSession(),s=await this.session.getCustomerAccessToken();return t.token||this.logger.debug("[privy:getAccessToken] expected token received null"),t.token===e&&this.logger.debug("[privy:getAccessToken] expected new token in response received existing"),s===e&&this.logger.debug("[privy:getAccessToken] expected new token in storage received existing"),t.token??s}return e&&!this.session.tokenIsActive(e)?(this.logger.debug("[privy:getAccessToken] unable to refresh inactive token"),this.callbacks?.setUser?.(null),await this.session.destroyLocalState(),null):e}async getAccessTokenInternal(){let e=await this.getAccessToken();return await this.session.getPrivyAccessToken()??e}async getIdentityToken(){return await this.session.getIdentityToken()}async isStorageAccessible(){try{let e=`privy:__storage__test-${this._crypto.randomUUID()}`,t="blobby";await this._storage.put(e,t);let s=await this._storage.get(e);return await this._storage.del(e),s===t}catch(e){return this.logger.error(e),!1}}constructor(e){this._sdkVersion="js-sdk-core:0.65.
|
|
1
|
+
"use strict";var e=require("fetch-retry"),t=require("@privy-io/api-base"),s=require("@privy-io/routes"),i=require("../Error.js"),r=require("../Session.js"),a=require("../toAbortSignalTimeout.js"),n=require("../utils/toSearchParams.js"),o=require("./logger.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("eventemitter3"),require("jose"),require("js-cookie"),require("../Token.js"),require("../utils/allSettled.js"),require("../utils/noop.js");var c=/*#__PURE__*/h(e);let l="privy:caid";exports.PrivyInternal=class{setCallbacks(e){this.callbacks={...this.callbacks,...e}}get isReady(){return!!this._config}get config(){return this._config}get caid(){return this._analyticsId}async _initialize(){if(this.isReady)this.callbacks?.setIsReady?.(!0);else{if(!await this.isStorageAccessible())throw new i.PrivyClientError({code:"storage_error",error:"Unable to access storage"});this._config=await this.getAppConfig(),this._config?.custom_api_url&&(this.baseUrl=this._config.custom_api_url,this.session.isUsingServerCookies=!0),this.callbacks?.setIsReady?.(!0),this._sdkVersion.startsWith("react-auth:")||this.createAnalyticsEvent("sdk_initialize",{})}}getPath(e,{params:t,query:i}){return`${this.baseUrl}${s.getPathWithParams(e.path,t)}${n.toSearchParams(i)}`}async fetch(e,{body:t,params:s,query:r,headers:a,onRequest:n=this._beforeRequest.bind(this)}){let o=new Request(this.getPath(e,{params:s,query:r}),{method:e.method,body:JSON.stringify(t),headers:a}),h=await n(o),c=await this._fetch(o,h),l=await c.json();if(c.status>299)throw new i.PrivyApiError({...l,status:c.status});return l}async _beforeRequestWithoutInitialize(e){let t=await this.session.getPrivyAccessToken()??await this.session.getCustomerAccessToken(),s=new Headers(e.headers);s.set("privy-app-id",this.appId),this.appClientId&&s.set("privy-client-id",this.appClientId),s.set("privy-client",this._sdkVersion),t&&s.set("Authorization",`Bearer ${t}`),s.set("Content-Type","application/json"),s.set("Accept","application/json");let i=await this._getOrGenerateClientAnalyticsId();return i&&s.set("privy-ca-id",i),this.nativeAppIdentifier&&s.set("x-native-app-identifier",this.nativeAppIdentifier),{signal:a.default(2e4),headers:s,credentials:"include"}}async beforeRequestWithoutRefresh(e){return await this._initialize(),this._beforeRequestWithoutInitialize(e)}async _beforeRequest(e){return await this._initialize(),await this.getAccessTokenInternal(),this.beforeRequestWithoutRefresh(e)}async getAppConfig(){return await this.fetch(s.AppConfig,{params:{app_id:this.appId},onRequest:this._beforeRequestWithoutInitialize.bind(this)})}async _getOrGenerateClientAnalyticsId(){if(this._analyticsId)return this._analyticsId;try{let e=await this._storage.get(l);if("string"==typeof e&&e.length>0)return this._analyticsId=e,e}catch(e){this.logger.error("Unable to load clientId",e)}try{this._analyticsId=this._crypto.randomUUID()}catch(e){this.logger.error("Unable to generate uuidv4",e)}if(this._analyticsId){try{await this._storage.put(l,this._analyticsId)}catch(e){this.logger.error(`Unable to store clientId: ${this._analyticsId}`,e)}return this._analyticsId}}async destroyClientAnalyticsId(){try{return await this._storage.del(l)}catch(e){this.logger.error("Unable to delete clientId",e)}}async createAnalyticsEvent(e,t){try{await this.fetch(s.AnalyticsEvent,{body:{event_name:e,client_id:await this._getOrGenerateClientAnalyticsId(),payload:t},onRequest:this.beforeRequestWithoutRefresh.bind(this)})}catch(e){}}async refreshSession(e=!1){if(!await this.isStorageAccessible())throw new i.PrivyClientError({code:"storage_error",error:"Unable to access storage"});let t=await this.session.getRefreshToken()??void 0,s=t??"key",r=this._cache.get(s);if(r)return this.logger.debug("[privy:refresh] found in-flight session refresh request, deduping"),await r;let a=this._refreshSession(t,e);this._cache.set(s,a);try{return await a}finally{this._cache.delete(s)}}async _refreshSession(e,r){let a=await this.session.getCustomerAccessToken();if(!this.session.hasRefreshCredentials(a,e??null))throw this.logger.debug("[privy:refresh] missing tokens, skipping request"),await this._initialize(),new i.PrivyApiError({code:t.PrivyErrorCode.MISSING_OR_INVALID_TOKEN,error:"No tokens found in storage",status:401});try{this.logger.debug(`[privy:refresh] fetching: ${s.RefreshSession.path}`);let t=await this.fetch(s.RefreshSession,{body:{refresh_token:e},onRequest:this.beforeRequestWithoutRefresh.bind(this)}),i=t.session_update_action;return this.logger.debug(`[privy:refresh] response: ${i}`),"set"===i&&(await this.session.updateWithTokensResponse(t),this.logger.debug("[privy:refresh] tokens stored")),"clear"===i&&(await this.session.destroyLocalState(),this.logger.debug("[privy:refresh] tokens cleared"),r||this.callbacks?.setUser?.(null)),"ignore"===i&&(t.token&&(await this.session.storeCustomerAccessToken(t.token),this.logger.debug("[privy:refresh] token stored (CAT)")),t.privy_access_token&&(await this.session.storePrivyAccessToken(t.privy_access_token),this.logger.debug("[privy:refresh] token stored (PAT)")),t.identity_token&&(this.logger.debug("[privy:refresh] token stored (IDT)"),await this.session.storeIdentityToken(t.identity_token))),this.logger.debug("[privy:refresh] returning response"),r||this.callbacks?.setUser?.(t.user),t}catch(e){throw this.logger.debug(`[privy:refresh] error: ${e.message??"unknown error"}`),e instanceof i.PrivyApiError&&e.code===t.PrivyErrorCode.MISSING_OR_INVALID_TOKEN&&(await this.session.destroyLocalState(),r||this.callbacks?.setUser?.(null)),e}}async getAccessToken(){let[e,t]=await Promise.all([this.session.getCustomerAccessToken(),this.session.getRefreshToken()]);if(e&&!this.session.tokenIsActive(e)&&this.session.hasRefreshCredentials(e,t)){let t=await this.refreshSession(),s=await this.session.getCustomerAccessToken();return t.token||this.logger.debug("[privy:getAccessToken] expected token received null"),t.token===e&&this.logger.debug("[privy:getAccessToken] expected new token in response received existing"),s===e&&this.logger.debug("[privy:getAccessToken] expected new token in storage received existing"),t.token??s}return e&&!this.session.tokenIsActive(e)?(this.logger.debug("[privy:getAccessToken] unable to refresh inactive token"),this.callbacks?.setUser?.(null),await this.session.destroyLocalState(),null):e}async getAccessTokenInternal(){let e=await this.getAccessToken();return await this.session.getPrivyAccessToken()??e}async getIdentityToken(){return await this.session.getIdentityToken()}async isStorageAccessible(){try{let e=`privy:__storage__test-${this._crypto.randomUUID()}`,t="blobby";await this._storage.put(e,t);let s=await this._storage.get(e);return await this._storage.del(e),s===t}catch(e){return this.logger.error(e),!1}}constructor(e){this._sdkVersion="js-sdk-core:0.65.3",this._cache=new Map,this.logger=o.toLoggerWithLevel({level:e.logger?.level??e.logLevel??"ERROR",logger:e.logger??console}),this._storage=e.storage,this._crypto=e.crypto,this._analyticsId=null,this._getOrGenerateClientAnalyticsId(),this.baseUrl=e.baseUrl??"https://auth.privy.io",this.appId=e.appId,this.appClientId=e.appClientId,this._sdkVersion=e.sdkVersion??this._sdkVersion,this.callbacks=e.callbacks,this.nativeAppIdentifier=e.nativeAppIdentifier,this.session=new r.Session({storage:this._storage,isUsingServerCookies:!1,appId:e.appId}),this._fetch=c.default(globalThis.fetch,{retries:3,retryDelay:e=>3**e*500,retryOn:[408,409,425,500,502,503,504]}),this.session.on("error_storing_tokens",(e=>{this.createAnalyticsEvent("error_updating_tokens_in_storage",{reason:e})}))}};
|
|
2
2
|
//# sourceMappingURL=PrivyInternal.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../Error.js"),r=require("./MfaPasskeyApi.js"),t=require("./MfaSmsApi.js");require("@privy-io/routes");exports.default=class{setProxy(e){this.proxy=e}async getAccessTokenInternal(){let r=await this.privyInternal.getAccessTokenInternal();if(!r)throw new e.PrivyClientError({error:"Missing access token",code:"attempted_rpc_call_before_logged_in"});return r}async verifyMfa(){if(!this.proxy)throw new e.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return await this.proxy.verifyMfa({accessToken:await this.getAccessTokenInternal()})}async initEnrollMfa(r){if(!this.proxy)throw new e.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return await this.proxy.initEnrollMfa({...r,accessToken:await this.getAccessTokenInternal()})}async submitEnrollMfa(r){if(!this.proxy)throw new e.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});let t=await this.proxy.submitEnrollMfa({...r,accessToken:await this.getAccessTokenInternal()})
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../Error.js"),r=require("./MfaPasskeyApi.js"),t=require("./MfaSmsApi.js");require("@privy-io/routes");exports.default=class{setProxy(e){this.proxy=e}async getAccessTokenInternal(){let r=await this.privyInternal.getAccessTokenInternal();if(!r)throw new e.PrivyClientError({error:"Missing access token",code:"attempted_rpc_call_before_logged_in"});return r}async verifyMfa(){if(!this.proxy)throw new e.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return await this.proxy.verifyMfa({accessToken:await this.getAccessTokenInternal()})}async initEnrollMfa(r){if(!this.proxy)throw new e.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return await this.proxy.initEnrollMfa({...r,accessToken:await this.getAccessTokenInternal()})}async submitEnrollMfa(r){if(!this.proxy)throw new e.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});let t=await this.proxy.submitEnrollMfa({...r,accessToken:await this.getAccessTokenInternal()}),i=await this.privyInternal.refreshSession();if(0===i.user.mfa_methods.length)try{await this.proxy.clearMfa({userId:i.user.id})}catch{}return t}async unenrollMfa(r){if(!this.proxy)throw new e.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});let t=await this.proxy.unenrollMfa({method:r,accessToken:await this.getAccessTokenInternal()}),i=await this.privyInternal.refreshSession();if(0===i.user.mfa_methods.length)try{await this.proxy.clearMfa({userId:i.user.id})}catch{}return t}async clearMfa(r){if(!this.proxy)throw new e.PrivyClientError({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return await this.proxy.clearMfa(r)}constructor(e,i){this.proxy=i,this.privyInternal=e,this.sms=new t.default(e),this.passkey=new r.default(e)}};
|
|
2
2
|
//# sourceMappingURL=MfaApi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MfaApi.js","sources":["../../../../src/client/mfa/MfaApi.ts"],"names":["setProxy","proxy","this","getAccessTokenInternal","accessToken","privyInternal","PrivyClientError","error","code","verifyMfa","initEnrollMfa","args","submitEnrollMfa","result","refreshSession","
|
|
1
|
+
{"version":3,"file":"MfaApi.js","sources":["../../../../src/client/mfa/MfaApi.ts"],"names":["setProxy","proxy","this","getAccessTokenInternal","accessToken","privyInternal","PrivyClientError","error","code","verifyMfa","initEnrollMfa","args","submitEnrollMfa","result","refreshed","refreshSession","user","mfa_methods","length","clearMfa","userId","id","unenrollMfa","method","constructor","sms","MfaSmsApi","passkey","MfaPasskeyApi"],"mappings":"kNA4CEA,QAAAA,CAASC,GACPC,KAAKD,MAAQA,CACf,CAKA,4BAAcE,GACZ,IAAMC,QAAoBF,KAAKG,cAAcF,yBAC7C,IAAKC,EACH,MAAM,IAAIE,EAAAA,iBAAiB,CACzBC,MAAO,uBACPC,KAAM,wCAGV,OAAOJ,CACT,CAMA,eAAaK,GACX,IAAKP,KAAKD,MACR,MAAM,IAAIK,mBAAiB,CACzBC,MAAO,wCACPC,KAAM,uCAIV,aAAaN,KAAKD,MAAMQ,UAAU,CAACL,kBAAmBF,KAAKC,0BAC7D,CAMA,mBAAaO,CAAcC,GACzB,IAAKT,KAAKD,MACR,MAAM,IAAIK,mBAAiB,CACzBC,MAAO,wCACPC,KAAM,uCAIV,aAAaN,KAAKD,MAAMS,cAAc,IACjCC,EACHP,kBAAmBF,KAAKC,0BAE5B,CAMA,qBAAaS,CAAgBD,GAC3B,IAAKT,KAAKD,MACR,MAAM,IAAIK,EAAAA,iBAAiB,CACzBC,MAAO,wCACPC,KAAM,uCAIV,IAAMK,QAAeX,KAAKD,MAAMW,gBAAgB,IAC3CD,EACHP,kBAAmBF,KAAKC,2BAGpBW,QAAkBZ,KAAKG,cAAcU,iBAE3C,GAAID,IAAAA,EAAUE,KAAKC,YAAYC,OAC7B,UACQhB,KAAKD,MAAMkB,SAAS,CAACC,OAAQN,EAAUE,KAAKK,IACpD,CAAE,MAEF,CAGF,OAAOR,CACT,CAMA,iBAAaS,CAAYC,GACvB,IAAKrB,KAAKD,MACR,MAAM,IAAIK,EAAAA,iBAAiB,CACzBC,MAAO,wCACPC,KAAM,uCAIV,IAAMK,QAAeX,KAAKD,MAAMqB,YAAY,CAC1CC,OAAAA,EACAnB,kBAAmBF,KAAKC,2BAGpBW,QAAkBZ,KAAKG,cAAcU,iBAE3C,GAAID,IAAAA,EAAUE,KAAKC,YAAYC,OAC7B,UACQhB,KAAKD,MAAMkB,SAAS,CAACC,OAAQN,EAAUE,KAAKK,IACpD,CAAE,MAEF,CAGF,OAAOR,CACT,CAKA,cAAaM,CAASR,GACpB,IAAKT,KAAKD,MACR,MAAM,IAAIK,EAAAA,iBAAiB,CACzBC,MAAO,wCACPC,KAAM,uCAIV,aAAaN,KAAKD,MAAMkB,SAASR,EACnC,CArIA,WAAAa,CAAmBnB,EAA8BJ,GAC/CC,KAAKD,MAAQA,EACbC,KAAKG,cAAgBA,EACrBH,KAAKuB,IAAM,IAAIC,EAAAA,QAAUrB,GACzBH,KAAKyB,QAAU,IAAIC,UAAcvB,EACnC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e,t=require("../utils/sleep.js"),i=require("./EventCallbackQueue.js"),r=require("./errors.js"),a=require("./withMfa.js");require("./types.js");let s=(e=0,()=>"id-"+e++),o=(e,t)=>"bigint"==typeof t?t.toString():t,n=async(e,{ms:t,msg:i})=>{let r,a=new Promise(((e,a)=>{r=setTimeout((()=>{a(Error(i))}),t??15e3)}));try{return await Promise.race([e,a])}finally{void 0!==r&&clearTimeout(r)}},l=new i.EventCallbacksQueue;exports.DEFAULT_WALLET_PROXY_TIMEOUT_MS=15e3,exports.EmbeddedWalletProxy=class{invokeWithMfa(e,t){return n(a.withMfa((i=>n(this.waitForReady().then((()=>e(i))),{msg:t.timeoutMsg,ms:t.timeoutMs})),this.mfa.rootPromise,this.mfa.submitPromise,(()=>this.mfa.emit("mfaRequired")),t.mfaAlwaysRequired??!1,4,3e5),{msg:"Operation reached timeout: MFA verification",ms:126e4})}reload(){return this.ready=!1,this._embeddedWalletMessagePoster.reload()}ping(e=15e3){return n(this.invoke("privy:iframe:ready",{}),{msg:"Ping reached timeout",ms:e})}create(e){return n(this.waitForReady().then((()=>this.invoke("privy:wallet:create",e))),{msg:"Operation reached timeout: create"})}rpc(e){return this.invokeWithMfa((t=>this.invoke("privy:wallet:rpc",{...t,...e})),{timeoutMsg:"Operation reached timeout: rpc"})}createSolana(e){return this.invokeWithMfa((t=>this.invoke("privy:solana-wallet:create",{...t,...e})),{timeoutMsg:"Operation reached timeout: create",timeoutMs:6e4})}createAdditionalSolana(e){return n(this.waitForReady().then((()=>this.invoke("privy:solana-wallet:create-additional",e))),{msg:"Operation reached timeout: create"})}solanaRpc(e){return this.invokeWithMfa((t=>this.invoke("privy:solana-wallet:rpc",{...t,...e})),{timeoutMsg:"Operation reached timeout: solana-rpc"})}delegateWallets(e){return this.invokeWithMfa((t=>this.invoke("privy:delegated-actions:consent",{...t,...e})),{timeoutMsg:"Operation reached timeout: delegated-actions:consent"})}verifyMfa(e){return this.invokeWithMfa((t=>this.invoke("privy:mfa:verify",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:verify",mfaAlwaysRequired:!0})}initEnrollMfa(e){return this.invokeWithMfa((t=>this.invoke("privy:mfa:init-enrollment",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:init-enrollment"})}submitEnrollMfa(e){return
|
|
1
|
+
"use strict";var e,t=require("../utils/sleep.js"),i=require("./EventCallbackQueue.js"),r=require("./errors.js"),a=require("./withMfa.js");require("./types.js");let s=(e=0,()=>"id-"+e++),o=(e,t)=>"bigint"==typeof t?t.toString():t,n=async(e,{ms:t,msg:i})=>{let r,a=new Promise(((e,a)=>{r=setTimeout((()=>{a(Error(i))}),t??15e3)}));try{return await Promise.race([e,a])}finally{void 0!==r&&clearTimeout(r)}},l=new i.EventCallbacksQueue;exports.DEFAULT_WALLET_PROXY_TIMEOUT_MS=15e3,exports.EmbeddedWalletProxy=class{invokeWithMfa(e,t){return n(a.withMfa((i=>n(this.waitForReady().then((()=>e(i))),{msg:t.timeoutMsg,ms:t.timeoutMs})),this.mfa.rootPromise,this.mfa.submitPromise,(()=>this.mfa.emit("mfaRequired")),t.mfaAlwaysRequired??!1,4,3e5),{msg:"Operation reached timeout: MFA verification",ms:126e4})}reload(){return this.ready=!1,this._embeddedWalletMessagePoster.reload()}ping(e=15e3){return n(this.invoke("privy:iframe:ready",{}),{msg:"Ping reached timeout",ms:e})}create(e){return n(this.waitForReady().then((()=>this.invoke("privy:wallet:create",e))),{msg:"Operation reached timeout: create"})}rpc(e){return this.invokeWithMfa((t=>this.invoke("privy:wallet:rpc",{...t,...e})),{timeoutMsg:"Operation reached timeout: rpc"})}createSolana(e){return this.invokeWithMfa((t=>this.invoke("privy:solana-wallet:create",{...t,...e})),{timeoutMsg:"Operation reached timeout: create",timeoutMs:6e4})}createAdditionalSolana(e){return n(this.waitForReady().then((()=>this.invoke("privy:solana-wallet:create-additional",e))),{msg:"Operation reached timeout: create"})}solanaRpc(e){return this.invokeWithMfa((t=>this.invoke("privy:solana-wallet:rpc",{...t,...e})),{timeoutMsg:"Operation reached timeout: solana-rpc"})}delegateWallets(e){return this.invokeWithMfa((t=>this.invoke("privy:delegated-actions:consent",{...t,...e})),{timeoutMsg:"Operation reached timeout: delegated-actions:consent"})}verifyMfa(e){return this.invokeWithMfa((t=>this.invoke("privy:mfa:verify",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:verify",mfaAlwaysRequired:!0})}initEnrollMfa(e){return this.invokeWithMfa((t=>this.invoke("privy:mfa:init-enrollment",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:init-enrollment"})}submitEnrollMfa(e){return"passkey"===e.method?this.invokeWithMfa((t=>this.invoke("privy:mfa:submit-enrollment",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:submit-enrollment"}):n(this.waitForReady().then((()=>this.invoke("privy:mfa:submit-enrollment",e))),{msg:"Operation reached timeout: mfa:submit-enrollment"})}unenrollMfa(e){return this.invokeWithMfa((t=>this.invoke("privy:mfa:unenroll",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:unenroll",mfaAlwaysRequired:!0})}clearMfa(e){return n(this.waitForReady().then((()=>this.invoke("privy:mfa:clear",e))),{msg:"Operation reached timeout: mfa:clear"})}createWallet(e){return this.invokeWithMfa((t=>this.invoke("privy:wallets:create",{...t,...e})),{timeoutMsg:"Operation reached timeout: create",timeoutMs:6e4})}signWithUserSigner(e){return this.invokeWithMfa((t=>this.invoke("privy:user-signer:sign",{...t,...e})),{timeoutMsg:"Operation reached timeout: user-signer:sign"})}addWallet(e){return n(this.waitForReady().then((()=>this.invoke("privy:wallets:add",e))),{msg:"Operation reached timeout: wallets:add"})}setRecovery(e){return this.invokeWithMfa((t=>this.invoke("privy:wallets:set-recovery",{...t,...e})),{timeoutMsg:"Operation reached timeout: wallets:set-recovery",timeoutMs:6e4})}connect(e){return n(this.waitForReady().then((()=>this.invoke("privy:wallets:connect",e))),{msg:"Operation reached timeout: wallets:connect"})}recover(e){return this.invokeWithMfa((t=>this.invoke("privy:wallets:recover",{...t,...e})),{timeoutMsg:"Operation reached timeout: wallets:recover",timeoutMs:6e4})}rpcWallet(e){return this.invokeWithMfa((t=>this.invoke("privy:wallets:rpc",{...t,...e})),{timeoutMsg:"Operation reached timeout: wallets:rpc"})}handleEmbeddedWalletMessages(e){if(!e.event.startsWith("privy:"))return void console.warn(`Unsupported event type: ${e.event}`);let{reject:t,resolve:i}=l.dequeue(e.event,e.id);return void 0!==e.error?t(new r.PrivyIframeError(e.error.type,e.error.message)):i(e.data)}waitForReady(){return this.ready?Promise.resolve():new Promise((async(e,i)=>{for(;!this.ready;)this.invoke("privy:iframe:ready",{}).then((()=>{this.ready=!0,e()})).catch(i),await t.sleep(150)}))}invoke(e,t){let i=((e,t)=>`${e}${JSON.stringify(t,o)}`)(e,t);if("privy:wallet:create"===e||"privy:solana-wallet:create"===e){let e=this.cache.get(i);if(e)return e}let r=new Promise(((i,r)=>{let a=s();l.enqueue(a,{resolve:i,reject:r}),this._embeddedWalletMessagePoster.postMessage(JSON.stringify({id:a,event:e,data:t}),"*")})).finally((()=>{this.cache.delete(i)}));return this.cache.set(i,r),r}constructor(e,t){this.ready=!1,this.cache=new Map,this._embeddedWalletMessagePoster=e,this.mfa=t}};
|
|
2
2
|
//# sourceMappingURL=EmbeddedWalletProxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbeddedWalletProxy.js","sources":["../../../src/embedded/EmbeddedWalletProxy.ts"],"names":["id","uniqueId","replacer","_key","value","toString","withTimeout","async","promise","ms","msg","timer","timeout","Promise","_","reject","setTimeout","Error","race","undefined","clearTimeout","EVENT_CALLBACK_QUEUE","EventCallbacksQueue","invokeWithMfa","callback","options","withMfa","i","this","waitForReady","then","response","timeoutMsg","timeoutMs","mfa","rootPromise","submitPromise","emit","mfaAlwaysRequired","MAX_RETRY_COUNT","reload","ready","_embeddedWalletMessagePoster","ping","invoke","create","data","rpc","t","mfaArgs","createSolana","createAdditionalSolana","solanaRpc","delegateWallets","verifyMfa","initEnrollMfa","submitEnrollMfa","unenrollMfa","clearMfa","createWallet","signWithUserSigner","addWallet","setRecovery","connect","recover","rpcWallet","handleEmbeddedWalletMessages","event","startsWith","console","warn","resolve","dequeue","e","error","PrivyIframeError","type","message","catch","sleep","key","JSON","stringify","serialize","cached","cache","get","res","eventId","enqueue","postMessage","finally","delete","set","constructor","embeddedWalletMessagePoster","Map"],"mappings":"iBAsE4BA,+IAA5B,IAAMC,GAAsBD,EAEzB,EADM,IAAM,MAAMA,KAMfE,EAAW,CAACC,EAAcC,IAC9B,iBAAOA,EAAqBA,EAAMC,WAAaD,EAc3CE,EAAcC,MAAUC,GAAsBC,GAAAA,EAAIC,IAAAA,MAAgC,IAClFC,EAEEC,EAAU,IAAIC,SAAW,CAACC,EAAGC,KACjCJ,EAAQK,YAAW,KACjBD,EAAWE,MAAMP,GAAAA,GAChBD,GAvCwC,KAAA,IA0C7C,IACE,aAAaI,QAAQK,KAAK,CAACV,EAASI,GACtC,CAAA,aACgBO,IAAVR,GACFS,aAAaT,EAEjB,GAGIU,EAAuB,IAAIC,8DAnDc,iCAwDxC,MAmBL,aAAAC,CACEC,EACAC,GAEA,OAAOnB,EACLoB,EAAAA,SACEC,GACErB,EACEsB,KAAKC,eAAeC,MAAK,IAAMN,EAASO,KACxC,CAACrB,IAAKe,EAAQO,WAAYvB,GAAIgB,EAAQQ,aAE1CL,KAAKM,IAAIC,YACTP,KAAKM,IAAIE,eACT,IAAMR,KAAKM,IAAIG,KAAK,gBACpBZ,EAAQa,oBAAqB,EAvFb,EAEa,KAyF/B,CACE5B,IAAK,8CACLD,GAAI8B,OAGV,CAKAC,MAAAA,GAKE,OAHAZ,KAAKa,OAAQ,EAGNb,KAAKc,6BAA6BF,QAC3C,CAOAG,IAAAA,CAAKV,EApHwC,MAqH3C,OAAO3B,EAAYsB,KAAKgB,OAAO,qBAAsB,CAAA,GAAK,CACxDlC,IAAK,uBACLD,GAAIwB,GAER,CAGAY,MAAAA,CAAOC,GACL,OAAOxC,EACLsB,KAAKC,eAAeC,MAAK,IAAMF,KAAKgB,OAAO,sBAAuBE,KAClE,CAACpC,IAAK,qCAEV,CAEAqC,GAAAA,CAAID,GACF,OAAOlB,KAAKL,eAAcyB,GAAapB,KAAKgB,OAAO,mBAAoB,IAAIK,KAAYH,KAAQ,CAC7Fd,WAAY,kCAEhB,CAGAkB,YAAAA,CAAaJ,GACX,OAAOlB,KAAKL,eACVyB,GAAapB,KAAKgB,OAAO,6BAA8B,IAAIK,KAAYH,KACvE,CAACd,WAAY,oCAAqCC,UAAW,KAEjE,CAEAkB,sBAAAA,CAAuBL,GACrB,OAAOxC,EACLsB,KAAKC,eAAeC,MAAK,IAAMF,KAAKgB,OAAO,wCAAyCE,KACpF,CAACpC,IAAK,qCAEV,CAEA0C,SAAAA,CAAUN,GACR,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,0BAA2B,IAAIK,KAAYH,KACpE,CAACd,WAAY,yCAEjB,CAGAqB,eAAAA,CAAgBP,GACd,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,kCAAmC,IAAIK,KAAYH,KAC5E,CAACd,WAAY,wDAEjB,CAGAsB,SAAAA,CAAUR,GACR,OAAOlB,KAAKL,
|
|
1
|
+
{"version":3,"file":"EmbeddedWalletProxy.js","sources":["../../../src/embedded/EmbeddedWalletProxy.ts"],"names":["id","uniqueId","replacer","_key","value","toString","withTimeout","async","promise","ms","msg","timer","timeout","Promise","_","reject","setTimeout","Error","race","undefined","clearTimeout","EVENT_CALLBACK_QUEUE","EventCallbacksQueue","invokeWithMfa","callback","options","withMfa","i","this","waitForReady","then","response","timeoutMsg","timeoutMs","mfa","rootPromise","submitPromise","emit","mfaAlwaysRequired","MAX_RETRY_COUNT","reload","ready","_embeddedWalletMessagePoster","ping","invoke","create","data","rpc","t","mfaArgs","createSolana","createAdditionalSolana","solanaRpc","delegateWallets","verifyMfa","initEnrollMfa","submitEnrollMfa","method","unenrollMfa","clearMfa","createWallet","signWithUserSigner","addWallet","setRecovery","connect","recover","rpcWallet","handleEmbeddedWalletMessages","event","startsWith","console","warn","resolve","dequeue","e","error","PrivyIframeError","type","message","catch","sleep","key","JSON","stringify","serialize","cached","cache","get","res","eventId","enqueue","postMessage","finally","delete","set","constructor","embeddedWalletMessagePoster","Map"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"fetch-retry";import{PrivyErrorCode as t}from"@privy-io/api-base";import{getPathWithParams as s,AppConfig as i,AnalyticsEvent as r,RefreshSession as a}from"@privy-io/routes";import{PrivyClientError as o,PrivyApiError as n}from"../Error.mjs";import{Session as h}from"../Session.mjs";import c from"../toAbortSignalTimeout.mjs";import{toSearchParams as l}from"../utils/toSearchParams.mjs";import{toLoggerWithLevel as g}from"./logger.mjs";import"eventemitter3";import"jose";import"js-cookie";import"../Token.mjs";import"../utils/allSettled.mjs";import"../utils/noop.mjs";let d="privy:caid";class p{setCallbacks(e){this.callbacks={...this.callbacks,...e}}get isReady(){return!!this._config}get config(){return this._config}get caid(){return this._analyticsId}async _initialize(){if(this.isReady)this.callbacks?.setIsReady?.(!0);else{if(!await this.isStorageAccessible())throw new o({code:"storage_error",error:"Unable to access storage"});this._config=await this.getAppConfig(),this._config?.custom_api_url&&(this.baseUrl=this._config.custom_api_url,this.session.isUsingServerCookies=!0),this.callbacks?.setIsReady?.(!0),this._sdkVersion.startsWith("react-auth:")||this.createAnalyticsEvent("sdk_initialize",{})}}getPath(e,{params:t,query:i}){return`${this.baseUrl}${s(e.path,t)}${l(i)}`}async fetch(e,{body:t,params:s,query:i,headers:r,onRequest:a=this._beforeRequest.bind(this)}){let o=new Request(this.getPath(e,{params:s,query:i}),{method:e.method,body:JSON.stringify(t),headers:r}),h=await a(o),c=await this._fetch(o,h),l=await c.json();if(c.status>299)throw new n({...l,status:c.status});return l}async _beforeRequestWithoutInitialize(e){let t=await this.session.getPrivyAccessToken()??await this.session.getCustomerAccessToken(),s=new Headers(e.headers);s.set("privy-app-id",this.appId),this.appClientId&&s.set("privy-client-id",this.appClientId),s.set("privy-client",this._sdkVersion),t&&s.set("Authorization",`Bearer ${t}`),s.set("Content-Type","application/json"),s.set("Accept","application/json");let i=await this._getOrGenerateClientAnalyticsId();return i&&s.set("privy-ca-id",i),this.nativeAppIdentifier&&s.set("x-native-app-identifier",this.nativeAppIdentifier),{signal:c(2e4),headers:s,credentials:"include"}}async beforeRequestWithoutRefresh(e){return await this._initialize(),this._beforeRequestWithoutInitialize(e)}async _beforeRequest(e){return await this._initialize(),await this.getAccessTokenInternal(),this.beforeRequestWithoutRefresh(e)}async getAppConfig(){return await this.fetch(i,{params:{app_id:this.appId},onRequest:this._beforeRequestWithoutInitialize.bind(this)})}async _getOrGenerateClientAnalyticsId(){if(this._analyticsId)return this._analyticsId;try{let e=await this._storage.get(d);if("string"==typeof e&&e.length>0)return this._analyticsId=e,e}catch(e){this.logger.error("Unable to load clientId",e)}try{this._analyticsId=this._crypto.randomUUID()}catch(e){this.logger.error("Unable to generate uuidv4",e)}if(this._analyticsId){try{await this._storage.put(d,this._analyticsId)}catch(e){this.logger.error(`Unable to store clientId: ${this._analyticsId}`,e)}return this._analyticsId}}async destroyClientAnalyticsId(){try{return await this._storage.del(d)}catch(e){this.logger.error("Unable to delete clientId",e)}}async createAnalyticsEvent(e,t){try{await this.fetch(r,{body:{event_name:e,client_id:await this._getOrGenerateClientAnalyticsId(),payload:t},onRequest:this.beforeRequestWithoutRefresh.bind(this)})}catch(e){}}async refreshSession(e=!1){if(!await this.isStorageAccessible())throw new o({code:"storage_error",error:"Unable to access storage"});let t=await this.session.getRefreshToken()??void 0,s=t??"key",i=this._cache.get(s);if(i)return this.logger.debug("[privy:refresh] found in-flight session refresh request, deduping"),await i;let r=this._refreshSession(t,e);this._cache.set(s,r);try{return await r}finally{this._cache.delete(s)}}async _refreshSession(e,s){let i=await this.session.getCustomerAccessToken();if(!this.session.hasRefreshCredentials(i,e??null))throw this.logger.debug("[privy:refresh] missing tokens, skipping request"),await this._initialize(),new n({code:t.MISSING_OR_INVALID_TOKEN,error:"No tokens found in storage",status:401});try{this.logger.debug(`[privy:refresh] fetching: ${a.path}`);let t=await this.fetch(a,{body:{refresh_token:e},onRequest:this.beforeRequestWithoutRefresh.bind(this)}),i=t.session_update_action;return this.logger.debug(`[privy:refresh] response: ${i}`),"set"===i&&(await this.session.updateWithTokensResponse(t),this.logger.debug("[privy:refresh] tokens stored")),"clear"===i&&(await this.session.destroyLocalState(),this.logger.debug("[privy:refresh] tokens cleared"),s||this.callbacks?.setUser?.(null)),"ignore"===i&&(t.token&&(await this.session.storeCustomerAccessToken(t.token),this.logger.debug("[privy:refresh] token stored (CAT)")),t.privy_access_token&&(await this.session.storePrivyAccessToken(t.privy_access_token),this.logger.debug("[privy:refresh] token stored (PAT)")),t.identity_token&&(this.logger.debug("[privy:refresh] token stored (IDT)"),await this.session.storeIdentityToken(t.identity_token))),this.logger.debug("[privy:refresh] returning response"),s||this.callbacks?.setUser?.(t.user),t}catch(e){throw this.logger.debug(`[privy:refresh] error: ${e.message??"unknown error"}`),e instanceof n&&e.code===t.MISSING_OR_INVALID_TOKEN&&(await this.session.destroyLocalState(),s||this.callbacks?.setUser?.(null)),e}}async getAccessToken(){let[e,t]=await Promise.all([this.session.getCustomerAccessToken(),this.session.getRefreshToken()]);if(e&&!this.session.tokenIsActive(e)&&this.session.hasRefreshCredentials(e,t)){let t=await this.refreshSession(),s=await this.session.getCustomerAccessToken();return t.token||this.logger.debug("[privy:getAccessToken] expected token received null"),t.token===e&&this.logger.debug("[privy:getAccessToken] expected new token in response received existing"),s===e&&this.logger.debug("[privy:getAccessToken] expected new token in storage received existing"),t.token??s}return e&&!this.session.tokenIsActive(e)?(this.logger.debug("[privy:getAccessToken] unable to refresh inactive token"),this.callbacks?.setUser?.(null),await this.session.destroyLocalState(),null):e}async getAccessTokenInternal(){let e=await this.getAccessToken();return await this.session.getPrivyAccessToken()??e}async getIdentityToken(){return await this.session.getIdentityToken()}async isStorageAccessible(){try{let e=`privy:__storage__test-${this._crypto.randomUUID()}`,t="blobby";await this._storage.put(e,t);let s=await this._storage.get(e);return await this._storage.del(e),s===t}catch(e){return this.logger.error(e),!1}}constructor(t){this._sdkVersion="js-sdk-core:0.65.
|
|
1
|
+
import e from"fetch-retry";import{PrivyErrorCode as t}from"@privy-io/api-base";import{getPathWithParams as s,AppConfig as i,AnalyticsEvent as r,RefreshSession as a}from"@privy-io/routes";import{PrivyClientError as o,PrivyApiError as n}from"../Error.mjs";import{Session as h}from"../Session.mjs";import c from"../toAbortSignalTimeout.mjs";import{toSearchParams as l}from"../utils/toSearchParams.mjs";import{toLoggerWithLevel as g}from"./logger.mjs";import"eventemitter3";import"jose";import"js-cookie";import"../Token.mjs";import"../utils/allSettled.mjs";import"../utils/noop.mjs";let d="privy:caid";class p{setCallbacks(e){this.callbacks={...this.callbacks,...e}}get isReady(){return!!this._config}get config(){return this._config}get caid(){return this._analyticsId}async _initialize(){if(this.isReady)this.callbacks?.setIsReady?.(!0);else{if(!await this.isStorageAccessible())throw new o({code:"storage_error",error:"Unable to access storage"});this._config=await this.getAppConfig(),this._config?.custom_api_url&&(this.baseUrl=this._config.custom_api_url,this.session.isUsingServerCookies=!0),this.callbacks?.setIsReady?.(!0),this._sdkVersion.startsWith("react-auth:")||this.createAnalyticsEvent("sdk_initialize",{})}}getPath(e,{params:t,query:i}){return`${this.baseUrl}${s(e.path,t)}${l(i)}`}async fetch(e,{body:t,params:s,query:i,headers:r,onRequest:a=this._beforeRequest.bind(this)}){let o=new Request(this.getPath(e,{params:s,query:i}),{method:e.method,body:JSON.stringify(t),headers:r}),h=await a(o),c=await this._fetch(o,h),l=await c.json();if(c.status>299)throw new n({...l,status:c.status});return l}async _beforeRequestWithoutInitialize(e){let t=await this.session.getPrivyAccessToken()??await this.session.getCustomerAccessToken(),s=new Headers(e.headers);s.set("privy-app-id",this.appId),this.appClientId&&s.set("privy-client-id",this.appClientId),s.set("privy-client",this._sdkVersion),t&&s.set("Authorization",`Bearer ${t}`),s.set("Content-Type","application/json"),s.set("Accept","application/json");let i=await this._getOrGenerateClientAnalyticsId();return i&&s.set("privy-ca-id",i),this.nativeAppIdentifier&&s.set("x-native-app-identifier",this.nativeAppIdentifier),{signal:c(2e4),headers:s,credentials:"include"}}async beforeRequestWithoutRefresh(e){return await this._initialize(),this._beforeRequestWithoutInitialize(e)}async _beforeRequest(e){return await this._initialize(),await this.getAccessTokenInternal(),this.beforeRequestWithoutRefresh(e)}async getAppConfig(){return await this.fetch(i,{params:{app_id:this.appId},onRequest:this._beforeRequestWithoutInitialize.bind(this)})}async _getOrGenerateClientAnalyticsId(){if(this._analyticsId)return this._analyticsId;try{let e=await this._storage.get(d);if("string"==typeof e&&e.length>0)return this._analyticsId=e,e}catch(e){this.logger.error("Unable to load clientId",e)}try{this._analyticsId=this._crypto.randomUUID()}catch(e){this.logger.error("Unable to generate uuidv4",e)}if(this._analyticsId){try{await this._storage.put(d,this._analyticsId)}catch(e){this.logger.error(`Unable to store clientId: ${this._analyticsId}`,e)}return this._analyticsId}}async destroyClientAnalyticsId(){try{return await this._storage.del(d)}catch(e){this.logger.error("Unable to delete clientId",e)}}async createAnalyticsEvent(e,t){try{await this.fetch(r,{body:{event_name:e,client_id:await this._getOrGenerateClientAnalyticsId(),payload:t},onRequest:this.beforeRequestWithoutRefresh.bind(this)})}catch(e){}}async refreshSession(e=!1){if(!await this.isStorageAccessible())throw new o({code:"storage_error",error:"Unable to access storage"});let t=await this.session.getRefreshToken()??void 0,s=t??"key",i=this._cache.get(s);if(i)return this.logger.debug("[privy:refresh] found in-flight session refresh request, deduping"),await i;let r=this._refreshSession(t,e);this._cache.set(s,r);try{return await r}finally{this._cache.delete(s)}}async _refreshSession(e,s){let i=await this.session.getCustomerAccessToken();if(!this.session.hasRefreshCredentials(i,e??null))throw this.logger.debug("[privy:refresh] missing tokens, skipping request"),await this._initialize(),new n({code:t.MISSING_OR_INVALID_TOKEN,error:"No tokens found in storage",status:401});try{this.logger.debug(`[privy:refresh] fetching: ${a.path}`);let t=await this.fetch(a,{body:{refresh_token:e},onRequest:this.beforeRequestWithoutRefresh.bind(this)}),i=t.session_update_action;return this.logger.debug(`[privy:refresh] response: ${i}`),"set"===i&&(await this.session.updateWithTokensResponse(t),this.logger.debug("[privy:refresh] tokens stored")),"clear"===i&&(await this.session.destroyLocalState(),this.logger.debug("[privy:refresh] tokens cleared"),s||this.callbacks?.setUser?.(null)),"ignore"===i&&(t.token&&(await this.session.storeCustomerAccessToken(t.token),this.logger.debug("[privy:refresh] token stored (CAT)")),t.privy_access_token&&(await this.session.storePrivyAccessToken(t.privy_access_token),this.logger.debug("[privy:refresh] token stored (PAT)")),t.identity_token&&(this.logger.debug("[privy:refresh] token stored (IDT)"),await this.session.storeIdentityToken(t.identity_token))),this.logger.debug("[privy:refresh] returning response"),s||this.callbacks?.setUser?.(t.user),t}catch(e){throw this.logger.debug(`[privy:refresh] error: ${e.message??"unknown error"}`),e instanceof n&&e.code===t.MISSING_OR_INVALID_TOKEN&&(await this.session.destroyLocalState(),s||this.callbacks?.setUser?.(null)),e}}async getAccessToken(){let[e,t]=await Promise.all([this.session.getCustomerAccessToken(),this.session.getRefreshToken()]);if(e&&!this.session.tokenIsActive(e)&&this.session.hasRefreshCredentials(e,t)){let t=await this.refreshSession(),s=await this.session.getCustomerAccessToken();return t.token||this.logger.debug("[privy:getAccessToken] expected token received null"),t.token===e&&this.logger.debug("[privy:getAccessToken] expected new token in response received existing"),s===e&&this.logger.debug("[privy:getAccessToken] expected new token in storage received existing"),t.token??s}return e&&!this.session.tokenIsActive(e)?(this.logger.debug("[privy:getAccessToken] unable to refresh inactive token"),this.callbacks?.setUser?.(null),await this.session.destroyLocalState(),null):e}async getAccessTokenInternal(){let e=await this.getAccessToken();return await this.session.getPrivyAccessToken()??e}async getIdentityToken(){return await this.session.getIdentityToken()}async isStorageAccessible(){try{let e=`privy:__storage__test-${this._crypto.randomUUID()}`,t="blobby";await this._storage.put(e,t);let s=await this._storage.get(e);return await this._storage.del(e),s===t}catch(e){return this.logger.error(e),!1}}constructor(t){this._sdkVersion="js-sdk-core:0.65.3",this._cache=new Map,this.logger=g({level:t.logger?.level??t.logLevel??"ERROR",logger:t.logger??console}),this._storage=t.storage,this._crypto=t.crypto,this._analyticsId=null,this._getOrGenerateClientAnalyticsId(),this.baseUrl=t.baseUrl??"https://auth.privy.io",this.appId=t.appId,this.appClientId=t.appClientId,this._sdkVersion=t.sdkVersion??this._sdkVersion,this.callbacks=t.callbacks,this.nativeAppIdentifier=t.nativeAppIdentifier,this.session=new h({storage:this._storage,isUsingServerCookies:!1,appId:t.appId}),this._fetch=e(globalThis.fetch,{retries:3,retryDelay:e=>3**e*500,retryOn:[408,409,425,500,502,503,504]}),this.session.on("error_storing_tokens",(e=>{this.createAnalyticsEvent("error_updating_tokens_in_storage",{reason:e})}))}}export{p as PrivyInternal};
|
|
2
2
|
//# sourceMappingURL=PrivyInternal.mjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{PrivyClientError as e}from"../../Error.mjs";import t from"./MfaPasskeyApi.mjs";import r from"./MfaSmsApi.mjs";import"@privy-io/routes";class
|
|
1
|
+
import{PrivyClientError as e}from"../../Error.mjs";import t from"./MfaPasskeyApi.mjs";import r from"./MfaSmsApi.mjs";import"@privy-io/routes";class a{setProxy(e){this.proxy=e}async getAccessTokenInternal(){let t=await this.privyInternal.getAccessTokenInternal();if(!t)throw new e({error:"Missing access token",code:"attempted_rpc_call_before_logged_in"});return t}async verifyMfa(){if(!this.proxy)throw new e({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return await this.proxy.verifyMfa({accessToken:await this.getAccessTokenInternal()})}async initEnrollMfa(t){if(!this.proxy)throw new e({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return await this.proxy.initEnrollMfa({...t,accessToken:await this.getAccessTokenInternal()})}async submitEnrollMfa(t){if(!this.proxy)throw new e({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});let r=await this.proxy.submitEnrollMfa({...t,accessToken:await this.getAccessTokenInternal()}),a=await this.privyInternal.refreshSession();if(0===a.user.mfa_methods.length)try{await this.proxy.clearMfa({userId:a.user.id})}catch{}return r}async unenrollMfa(t){if(!this.proxy)throw new e({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});let r=await this.proxy.unenrollMfa({method:t,accessToken:await this.getAccessTokenInternal()}),a=await this.privyInternal.refreshSession();if(0===a.user.mfa_methods.length)try{await this.proxy.clearMfa({userId:a.user.id})}catch{}return r}async clearMfa(t){if(!this.proxy)throw new e({error:"Embedded wallet proxy not initialized",code:"embedded_wallet_webview_not_loaded"});return await this.proxy.clearMfa(t)}constructor(e,a){this.proxy=a,this.privyInternal=e,this.sms=new r(e),this.passkey=new t(e)}}export{a as default};
|
|
2
2
|
//# sourceMappingURL=MfaApi.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MfaApi.mjs","sources":["../../../../src/client/mfa/MfaApi.ts"],"names":["MfaApi","setProxy","proxy","this","getAccessTokenInternal","accessToken","privyInternal","PrivyClientError","error","code","verifyMfa","initEnrollMfa","args","submitEnrollMfa","result","refreshSession","
|
|
1
|
+
{"version":3,"file":"MfaApi.mjs","sources":["../../../../src/client/mfa/MfaApi.ts"],"names":["MfaApi","setProxy","proxy","this","getAccessTokenInternal","accessToken","privyInternal","PrivyClientError","error","code","verifyMfa","initEnrollMfa","args","submitEnrollMfa","result","refreshed","refreshSession","user","mfa_methods","length","clearMfa","userId","id","unenrollMfa","method","constructor","sms","MfaSmsApi","passkey","MfaPasskeyApi"],"mappings":"oJAYqBA,EAgCnBC,QAAAA,CAASC,GACPC,KAAKD,MAAQA,CACf,CAKA,4BAAcE,GACZ,IAAMC,QAAoBF,KAAKG,cAAcF,yBAC7C,IAAKC,EACH,MAAM,IAAIE,EAAiB,CACzBC,MAAO,uBACPC,KAAM,wCAGV,OAAOJ,CACT,CAMA,eAAaK,GACX,IAAKP,KAAKD,MACR,MAAM,IAAIK,EAAiB,CACzBC,MAAO,wCACPC,KAAM,uCAIV,aAAaN,KAAKD,MAAMQ,UAAU,CAACL,kBAAmBF,KAAKC,0BAC7D,CAMA,mBAAaO,CAAcC,GACzB,IAAKT,KAAKD,MACR,MAAM,IAAIK,EAAiB,CACzBC,MAAO,wCACPC,KAAM,uCAIV,aAAaN,KAAKD,MAAMS,cAAc,IACjCC,EACHP,kBAAmBF,KAAKC,0BAE5B,CAMA,qBAAaS,CAAgBD,GAC3B,IAAKT,KAAKD,MACR,MAAM,IAAIK,EAAiB,CACzBC,MAAO,wCACPC,KAAM,uCAIV,IAAMK,QAAeX,KAAKD,MAAMW,gBAAgB,IAC3CD,EACHP,kBAAmBF,KAAKC,2BAGpBW,QAAkBZ,KAAKG,cAAcU,iBAE3C,GAAID,IAAAA,EAAUE,KAAKC,YAAYC,OAC7B,UACQhB,KAAKD,MAAMkB,SAAS,CAACC,OAAQN,EAAUE,KAAKK,IACpD,CAAE,MAEF,CAGF,OAAOR,CACT,CAMA,iBAAaS,CAAYC,GACvB,IAAKrB,KAAKD,MACR,MAAM,IAAIK,EAAiB,CACzBC,MAAO,wCACPC,KAAM,uCAIV,IAAMK,QAAeX,KAAKD,MAAMqB,YAAY,CAC1CC,OAAAA,EACAnB,kBAAmBF,KAAKC,2BAGpBW,QAAkBZ,KAAKG,cAAcU,iBAE3C,GAAID,IAAAA,EAAUE,KAAKC,YAAYC,OAC7B,UACQhB,KAAKD,MAAMkB,SAAS,CAACC,OAAQN,EAAUE,KAAKK,IACpD,CAAE,MAEF,CAGF,OAAOR,CACT,CAKA,cAAaM,CAASR,GACpB,IAAKT,KAAKD,MACR,MAAM,IAAIK,EAAiB,CACzBC,MAAO,wCACPC,KAAM,uCAIV,aAAaN,KAAKD,MAAMkB,SAASR,EACnC,CArIA,WAAAa,CAAmBnB,EAA8BJ,GAC/CC,KAAKD,MAAQA,EACbC,KAAKG,cAAgBA,EACrBH,KAAKuB,IAAM,IAAIC,EAAUrB,GACzBH,KAAKyB,QAAU,IAAIC,EAAcvB,EACnC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{sleep as e}from"../utils/sleep.mjs";import{EventCallbacksQueue as t}from"./EventCallbackQueue.mjs";import{PrivyIframeError as i}from"./errors.mjs";import{withMfa as r}from"./withMfa.mjs";import"./types.mjs";var a;const o=15e3;let s=(a=0,()=>"id-"+a++),n=(e,t)=>"bigint"==typeof t?t.toString():t,l=async(e,{ms:t,msg:i})=>{let r,a=new Promise(((e,a)=>{r=setTimeout((()=>{a(Error(i))}),t??15e3)}));try{return await Promise.race([e,a])}finally{void 0!==r&&clearTimeout(r)}},m=new t;class h{invokeWithMfa(e,t){return l(r((i=>l(this.waitForReady().then((()=>e(i))),{msg:t.timeoutMsg,ms:t.timeoutMs})),this.mfa.rootPromise,this.mfa.submitPromise,(()=>this.mfa.emit("mfaRequired")),t.mfaAlwaysRequired??!1,4,3e5),{msg:"Operation reached timeout: MFA verification",ms:126e4})}reload(){return this.ready=!1,this._embeddedWalletMessagePoster.reload()}ping(e=15e3){return l(this.invoke("privy:iframe:ready",{}),{msg:"Ping reached timeout",ms:e})}create(e){return l(this.waitForReady().then((()=>this.invoke("privy:wallet:create",e))),{msg:"Operation reached timeout: create"})}rpc(e){return this.invokeWithMfa((t=>this.invoke("privy:wallet:rpc",{...t,...e})),{timeoutMsg:"Operation reached timeout: rpc"})}createSolana(e){return this.invokeWithMfa((t=>this.invoke("privy:solana-wallet:create",{...t,...e})),{timeoutMsg:"Operation reached timeout: create",timeoutMs:6e4})}createAdditionalSolana(e){return l(this.waitForReady().then((()=>this.invoke("privy:solana-wallet:create-additional",e))),{msg:"Operation reached timeout: create"})}solanaRpc(e){return this.invokeWithMfa((t=>this.invoke("privy:solana-wallet:rpc",{...t,...e})),{timeoutMsg:"Operation reached timeout: solana-rpc"})}delegateWallets(e){return this.invokeWithMfa((t=>this.invoke("privy:delegated-actions:consent",{...t,...e})),{timeoutMsg:"Operation reached timeout: delegated-actions:consent"})}verifyMfa(e){return this.invokeWithMfa((t=>this.invoke("privy:mfa:verify",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:verify",mfaAlwaysRequired:!0})}initEnrollMfa(e){return this.invokeWithMfa((t=>this.invoke("privy:mfa:init-enrollment",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:init-enrollment"})}submitEnrollMfa(e){return
|
|
1
|
+
import{sleep as e}from"../utils/sleep.mjs";import{EventCallbacksQueue as t}from"./EventCallbackQueue.mjs";import{PrivyIframeError as i}from"./errors.mjs";import{withMfa as r}from"./withMfa.mjs";import"./types.mjs";var a;const o=15e3;let s=(a=0,()=>"id-"+a++),n=(e,t)=>"bigint"==typeof t?t.toString():t,l=async(e,{ms:t,msg:i})=>{let r,a=new Promise(((e,a)=>{r=setTimeout((()=>{a(Error(i))}),t??15e3)}));try{return await Promise.race([e,a])}finally{void 0!==r&&clearTimeout(r)}},m=new t;class h{invokeWithMfa(e,t){return l(r((i=>l(this.waitForReady().then((()=>e(i))),{msg:t.timeoutMsg,ms:t.timeoutMs})),this.mfa.rootPromise,this.mfa.submitPromise,(()=>this.mfa.emit("mfaRequired")),t.mfaAlwaysRequired??!1,4,3e5),{msg:"Operation reached timeout: MFA verification",ms:126e4})}reload(){return this.ready=!1,this._embeddedWalletMessagePoster.reload()}ping(e=15e3){return l(this.invoke("privy:iframe:ready",{}),{msg:"Ping reached timeout",ms:e})}create(e){return l(this.waitForReady().then((()=>this.invoke("privy:wallet:create",e))),{msg:"Operation reached timeout: create"})}rpc(e){return this.invokeWithMfa((t=>this.invoke("privy:wallet:rpc",{...t,...e})),{timeoutMsg:"Operation reached timeout: rpc"})}createSolana(e){return this.invokeWithMfa((t=>this.invoke("privy:solana-wallet:create",{...t,...e})),{timeoutMsg:"Operation reached timeout: create",timeoutMs:6e4})}createAdditionalSolana(e){return l(this.waitForReady().then((()=>this.invoke("privy:solana-wallet:create-additional",e))),{msg:"Operation reached timeout: create"})}solanaRpc(e){return this.invokeWithMfa((t=>this.invoke("privy:solana-wallet:rpc",{...t,...e})),{timeoutMsg:"Operation reached timeout: solana-rpc"})}delegateWallets(e){return this.invokeWithMfa((t=>this.invoke("privy:delegated-actions:consent",{...t,...e})),{timeoutMsg:"Operation reached timeout: delegated-actions:consent"})}verifyMfa(e){return this.invokeWithMfa((t=>this.invoke("privy:mfa:verify",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:verify",mfaAlwaysRequired:!0})}initEnrollMfa(e){return this.invokeWithMfa((t=>this.invoke("privy:mfa:init-enrollment",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:init-enrollment"})}submitEnrollMfa(e){return"passkey"===e.method?this.invokeWithMfa((t=>this.invoke("privy:mfa:submit-enrollment",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:submit-enrollment"}):l(this.waitForReady().then((()=>this.invoke("privy:mfa:submit-enrollment",e))),{msg:"Operation reached timeout: mfa:submit-enrollment"})}unenrollMfa(e){return this.invokeWithMfa((t=>this.invoke("privy:mfa:unenroll",{...t,...e})),{timeoutMsg:"Operation reached timeout: mfa:unenroll",mfaAlwaysRequired:!0})}clearMfa(e){return l(this.waitForReady().then((()=>this.invoke("privy:mfa:clear",e))),{msg:"Operation reached timeout: mfa:clear"})}createWallet(e){return this.invokeWithMfa((t=>this.invoke("privy:wallets:create",{...t,...e})),{timeoutMsg:"Operation reached timeout: create",timeoutMs:6e4})}signWithUserSigner(e){return this.invokeWithMfa((t=>this.invoke("privy:user-signer:sign",{...t,...e})),{timeoutMsg:"Operation reached timeout: user-signer:sign"})}addWallet(e){return l(this.waitForReady().then((()=>this.invoke("privy:wallets:add",e))),{msg:"Operation reached timeout: wallets:add"})}setRecovery(e){return this.invokeWithMfa((t=>this.invoke("privy:wallets:set-recovery",{...t,...e})),{timeoutMsg:"Operation reached timeout: wallets:set-recovery",timeoutMs:6e4})}connect(e){return l(this.waitForReady().then((()=>this.invoke("privy:wallets:connect",e))),{msg:"Operation reached timeout: wallets:connect"})}recover(e){return this.invokeWithMfa((t=>this.invoke("privy:wallets:recover",{...t,...e})),{timeoutMsg:"Operation reached timeout: wallets:recover",timeoutMs:6e4})}rpcWallet(e){return this.invokeWithMfa((t=>this.invoke("privy:wallets:rpc",{...t,...e})),{timeoutMsg:"Operation reached timeout: wallets:rpc"})}handleEmbeddedWalletMessages(e){if(!e.event.startsWith("privy:"))return void console.warn(`Unsupported event type: ${e.event}`);let{reject:t,resolve:r}=m.dequeue(e.event,e.id);return void 0!==e.error?t(new i(e.error.type,e.error.message)):r(e.data)}waitForReady(){return this.ready?Promise.resolve():new Promise((async(t,i)=>{for(;!this.ready;)this.invoke("privy:iframe:ready",{}).then((()=>{this.ready=!0,t()})).catch(i),await e(150)}))}invoke(e,t){let i=((e,t)=>`${e}${JSON.stringify(t,n)}`)(e,t);if("privy:wallet:create"===e||"privy:solana-wallet:create"===e){let e=this.cache.get(i);if(e)return e}let r=new Promise(((i,r)=>{let a=s();m.enqueue(a,{resolve:i,reject:r}),this._embeddedWalletMessagePoster.postMessage(JSON.stringify({id:a,event:e,data:t}),"*")})).finally((()=>{this.cache.delete(i)}));return this.cache.set(i,r),r}constructor(e,t){this.ready=!1,this.cache=new Map,this._embeddedWalletMessagePoster=e,this.mfa=t}}export{o as DEFAULT_WALLET_PROXY_TIMEOUT_MS,h as EmbeddedWalletProxy};
|
|
2
2
|
//# sourceMappingURL=EmbeddedWalletProxy.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbeddedWalletProxy.mjs","sources":["../../../src/embedded/EmbeddedWalletProxy.ts"],"names":["id","DEFAULT_WALLET_PROXY_TIMEOUT_MS","uniqueId","replacer","_key","value","toString","withTimeout","async","promise","ms","msg","timer","timeout","Promise","_","reject","setTimeout","Error","race","undefined","clearTimeout","EVENT_CALLBACK_QUEUE","EventCallbacksQueue","EmbeddedWalletProxy","invokeWithMfa","callback","options","withMfa","i","this","waitForReady","then","response","timeoutMsg","timeoutMs","mfa","rootPromise","submitPromise","emit","mfaAlwaysRequired","MAX_RETRY_COUNT","reload","ready","_embeddedWalletMessagePoster","ping","invoke","create","data","rpc","t","mfaArgs","createSolana","createAdditionalSolana","solanaRpc","delegateWallets","verifyMfa","initEnrollMfa","submitEnrollMfa","unenrollMfa","clearMfa","createWallet","signWithUserSigner","addWallet","setRecovery","connect","recover","rpcWallet","handleEmbeddedWalletMessages","event","startsWith","console","warn","resolve","dequeue","e","error","PrivyIframeError","type","message","catch","sleep","key","JSON","stringify","serialize","cached","cache","get","res","eventId","enqueue","postMessage","finally","delete","set","constructor","embeddedWalletMessagePoster","Map"],"mappings":"sNAsE4BA,IAAAA,EAXrB,MAAMC,EAAkC,KAW/C,IAAMC,GAAsBF,EAEzB,EADM,IAAM,MAAMA,KAMfG,EAAW,CAACC,EAAcC,IAC9B,iBAAOA,EAAqBA,EAAMC,WAAaD,EAc3CE,EAAcC,MAAUC,GAAsBC,GAAAA,EAAIC,IAAAA,MAAgC,IAClFC,EAEEC,EAAU,IAAIC,SAAW,CAACC,EAAGC,KACjCJ,EAAQK,YAAW,KACjBD,EAAWE,MAAMP,GAAAA,GAChBD,GAvCwC,KAAA,IA0C7C,IACE,aAAaI,QAAQK,KAAK,CAACV,EAASI,GACtC,CAAA,aACgBO,IAAVR,GACFS,aAAaT,EAEjB,GAGIU,EAAuB,IAAIC,EAK1B,MAAMC,EAmBX,aAAAC,CACEC,EACAC,GAEA,OAAOpB,EACLqB,GACEC,GACEtB,EACEuB,KAAKC,eAAeC,MAAK,IAAMN,EAASO,KACxC,CAACtB,IAAKgB,EAAQO,WAAYxB,GAAIiB,EAAQQ,aAE1CL,KAAKM,IAAIC,YACTP,KAAKM,IAAIE,eACT,IAAMR,KAAKM,IAAIG,KAAK,gBACpBZ,EAAQa,oBAAqB,EAvFb,EAEa,KAyF/B,CACE7B,IAAK,8CACLD,GAAI+B,OAGV,CAKAC,MAAAA,GAKE,OAHAZ,KAAKa,OAAQ,EAGNb,KAAKc,6BAA6BF,QAC3C,CAOAG,IAAAA,CAAKV,EApHwC,MAqH3C,OAAO5B,EAAYuB,KAAKgB,OAAO,qBAAsB,CAAA,GAAK,CACxDnC,IAAK,uBACLD,GAAIyB,GAER,CAGAY,MAAAA,CAAOC,GACL,OAAOzC,EACLuB,KAAKC,eAAeC,MAAK,IAAMF,KAAKgB,OAAO,sBAAuBE,KAClE,CAACrC,IAAK,qCAEV,CAEAsC,GAAAA,CAAID,GACF,OAAOlB,KAAKL,eAAcyB,GAAapB,KAAKgB,OAAO,mBAAoB,IAAIK,KAAYH,KAAQ,CAC7Fd,WAAY,kCAEhB,CAGAkB,YAAAA,CAAaJ,GACX,OAAOlB,KAAKL,eACVyB,GAAapB,KAAKgB,OAAO,6BAA8B,IAAIK,KAAYH,KACvE,CAACd,WAAY,oCAAqCC,UAAW,KAEjE,CAEAkB,sBAAAA,CAAuBL,GACrB,OAAOzC,EACLuB,KAAKC,eAAeC,MAAK,IAAMF,KAAKgB,OAAO,wCAAyCE,KACpF,CAACrC,IAAK,qCAEV,CAEA2C,SAAAA,CAAUN,GACR,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,0BAA2B,IAAIK,KAAYH,KACpE,CAACd,WAAY,yCAEjB,CAGAqB,eAAAA,CAAgBP,GACd,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,kCAAmC,IAAIK,KAAYH,KAC5E,CAACd,WAAY,wDAEjB,CAGAsB,SAAAA,CAAUR,GACR,OAAOlB,KAAKL,
|
|
1
|
+
{"version":3,"file":"EmbeddedWalletProxy.mjs","sources":["../../../src/embedded/EmbeddedWalletProxy.ts"],"names":["id","DEFAULT_WALLET_PROXY_TIMEOUT_MS","uniqueId","replacer","_key","value","toString","withTimeout","async","promise","ms","msg","timer","timeout","Promise","_","reject","setTimeout","Error","race","undefined","clearTimeout","EVENT_CALLBACK_QUEUE","EventCallbacksQueue","EmbeddedWalletProxy","invokeWithMfa","callback","options","withMfa","i","this","waitForReady","then","response","timeoutMsg","timeoutMs","mfa","rootPromise","submitPromise","emit","mfaAlwaysRequired","MAX_RETRY_COUNT","reload","ready","_embeddedWalletMessagePoster","ping","invoke","create","data","rpc","t","mfaArgs","createSolana","createAdditionalSolana","solanaRpc","delegateWallets","verifyMfa","initEnrollMfa","submitEnrollMfa","method","unenrollMfa","clearMfa","createWallet","signWithUserSigner","addWallet","setRecovery","connect","recover","rpcWallet","handleEmbeddedWalletMessages","event","startsWith","console","warn","resolve","dequeue","e","error","PrivyIframeError","type","message","catch","sleep","key","JSON","stringify","serialize","cached","cache","get","res","eventId","enqueue","postMessage","finally","delete","set","constructor","embeddedWalletMessagePoster","Map"],"mappings":"sNAsE4BA,IAAAA,EAXrB,MAAMC,EAAkC,KAW/C,IAAMC,GAAsBF,EAEzB,EADM,IAAM,MAAMA,KAMfG,EAAW,CAACC,EAAcC,IAC9B,iBAAOA,EAAqBA,EAAMC,WAAaD,EAc3CE,EAAcC,MAAUC,GAAsBC,GAAAA,EAAIC,IAAAA,MAAgC,IAClFC,EAEEC,EAAU,IAAIC,SAAW,CAACC,EAAGC,KACjCJ,EAAQK,YAAW,KACjBD,EAAWE,MAAMP,GAAAA,GAChBD,GAvCwC,KAAA,IA0C7C,IACE,aAAaI,QAAQK,KAAK,CAACV,EAASI,GACtC,CAAA,aACgBO,IAAVR,GACFS,aAAaT,EAEjB,GAGIU,EAAuB,IAAIC,EAK1B,MAAMC,EAmBX,aAAAC,CACEC,EACAC,GAEA,OAAOpB,EACLqB,GACEC,GACEtB,EACEuB,KAAKC,eAAeC,MAAK,IAAMN,EAASO,KACxC,CAACtB,IAAKgB,EAAQO,WAAYxB,GAAIiB,EAAQQ,aAE1CL,KAAKM,IAAIC,YACTP,KAAKM,IAAIE,eACT,IAAMR,KAAKM,IAAIG,KAAK,gBACpBZ,EAAQa,oBAAqB,EAvFb,EAEa,KAyF/B,CACE7B,IAAK,8CACLD,GAAI+B,OAGV,CAKAC,MAAAA,GAKE,OAHAZ,KAAKa,OAAQ,EAGNb,KAAKc,6BAA6BF,QAC3C,CAOAG,IAAAA,CAAKV,EApHwC,MAqH3C,OAAO5B,EAAYuB,KAAKgB,OAAO,qBAAsB,CAAA,GAAK,CACxDnC,IAAK,uBACLD,GAAIyB,GAER,CAGAY,MAAAA,CAAOC,GACL,OAAOzC,EACLuB,KAAKC,eAAeC,MAAK,IAAMF,KAAKgB,OAAO,sBAAuBE,KAClE,CAACrC,IAAK,qCAEV,CAEAsC,GAAAA,CAAID,GACF,OAAOlB,KAAKL,eAAcyB,GAAapB,KAAKgB,OAAO,mBAAoB,IAAIK,KAAYH,KAAQ,CAC7Fd,WAAY,kCAEhB,CAGAkB,YAAAA,CAAaJ,GACX,OAAOlB,KAAKL,eACVyB,GAAapB,KAAKgB,OAAO,6BAA8B,IAAIK,KAAYH,KACvE,CAACd,WAAY,oCAAqCC,UAAW,KAEjE,CAEAkB,sBAAAA,CAAuBL,GACrB,OAAOzC,EACLuB,KAAKC,eAAeC,MAAK,IAAMF,KAAKgB,OAAO,wCAAyCE,KACpF,CAACrC,IAAK,qCAEV,CAEA2C,SAAAA,CAAUN,GACR,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,0BAA2B,IAAIK,KAAYH,KACpE,CAACd,WAAY,yCAEjB,CAGAqB,eAAAA,CAAgBP,GACd,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,kCAAmC,IAAIK,KAAYH,KAC5E,CAACd,WAAY,wDAEjB,CAGAsB,SAAAA,CAAUR,GACR,OAAOlB,KAAKL,eAAcyB,GAAapB,KAAKgB,OAAO,mBAAoB,IAAIK,KAAYH,KAAQ,CAC7Fd,WAAY,wCACZM,mBAAmB,GAEvB,CAEAiB,aAAAA,CAAcT,GACZ,OAAOlB,KAAKL,eACVyB,GAAapB,KAAKgB,OAAO,4BAA6B,IAAIK,KAAYH,KACtE,CAACd,WAAY,kDAEjB,CAEAwB,eAAAA,CAAgBV,SAEM,YAAhBA,EAAKW,OACA7B,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,8BAA+B,IAAIK,KAAYH,KACxE,CAACd,WAAY,qDAIV3B,EACLuB,KAAKC,eAAeC,MAAK,IAAMF,KAAKgB,OAAO,8BAA+BE,KAC1E,CAACrC,IAAK,oDAEV,CAEAiD,WAAAA,CAAYZ,GACV,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,qBAAsB,IAAIK,KAAYH,KAC/D,CAACd,WAAY,0CAA2CM,mBAAmB,GAE/E,CAEAqB,QAAAA,CAASb,GACP,OAAOzC,EACLuB,KAAKC,eAAeC,MAAK,IAAMF,KAAKgB,OAAO,kBAAmBE,KAC9D,CAACrC,IAAK,wCAEV,CAGAmD,YAAAA,CAAad,GACX,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,uBAAwB,IAAIK,KAAYH,KACjE,CAACd,WAAY,oCAAqCC,UAAW,KAEjE,CAEA4B,kBAAAA,CAAmBf,GACjB,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,yBAA0B,IAAIK,KAAYH,KACnE,CAACd,WAAY,+CAEjB,CAEA8B,SAAAA,CAAUhB,GACR,OAAOzC,EACLuB,KAAKC,eAAeC,MAAK,IAAMF,KAAKgB,OAAO,oBAAqBE,KAChE,CAACrC,IAAK,0CAEV,CAEAsD,WAAAA,CAAYjB,GACV,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,6BAA8B,IAAIK,KAAYH,KACvE,CACEd,WAAY,kDACZC,UAAW,KAGjB,CAEA+B,OAAAA,CAAQlB,GACN,OAAOzC,EACLuB,KAAKC,eAAeC,MAAK,IAAMF,KAAKgB,OAAO,wBAAyBE,KACpE,CAACrC,IAAK,8CAEV,CAEAwD,OAAAA,CAAQnB,GACN,OAAOlB,KAAKL,eACVyB,GAAapB,KAAKgB,OAAO,wBAAyB,IAAIK,KAAYH,KAClE,CACEd,WAAY,6CACZC,UAAW,KAGjB,CAWAiC,SAAAA,CAAUpB,GACR,OAAOlB,KAAKL,eACT0B,GAAYrB,KAAKgB,OAAO,oBAAqB,IAAIK,KAAYH,KAC9D,CAACd,WAAY,0CAEjB,CAEAmC,4BAAAA,CAA6BC,GAC3B,IAAKA,EAAMA,MAAMC,WAAW,UAE1B,YADAC,QAAQC,KAAK,2BAA2BH,EAAMA,SAYhD,IAAOtD,OAAAA,EAAQ0D,QAAAA,GAAWpD,EAAqBqD,QAAQL,EAAMA,MAAcA,EAAMtE,IAAE,YA3R9E,IAAA4E,EAAuCC,MA8RnC7D,EAAO,IAAI8D,EAAiBR,EAAMO,MAAME,KAAMT,EAAMO,MAAMG,UAE1DN,EAAQJ,EAAMtB,KAEzB,CASQjB,YAAAA,UACND,KAASa,MAAc7B,QAAQ4D,UAExB,IAAI5D,SAAcN,MAAOkE,EAAS1D,KACvC,MAAQc,KAAKa,OACXb,KAAKgB,OAAO,qBAAsB,IAC/Bd,MAAK,KACJF,KAAKa,OAAQ,EACb+B,OAEDO,MAAMjE,SACHkE,EAAM,IAAA,GAGlB,CA+FQpC,MAAAA,CAAOwB,EAAuBtB,GACpC,IAAMmC,EA3YQ,EAACb,EAAuBtB,IACxC,GAAGsB,IAAQc,KAAKC,UAAUrC,EAAM7C,KA0YlBmF,CAAUhB,EAAOtB,GAE7B,GAAIsB,wBAAAA,GAA6C,+BAAVA,EAAwC,CAC7E,IAAMiB,EAASzD,KAAK0D,MAAMC,IAAIN,GAE9B,GAAII,EACF,OAAOA,CAEX,CAGA,IAAMG,EAAM,IAAI5E,SAA+B,CAAC4D,EAAS1D,KAEvD,IAAM2E,EAAUzF,IAGhBoB,EAAqBsE,QAAQD,EAAS,CAACjB,QAAAA,EAAS1D,OAAAA,IAKhDc,KAAKc,6BAA6BiD,YAChCT,KAAKC,UAAU,CAACrF,GAAI2F,EAASrB,MAAAA,EAAOtB,KAAAA,IACpC,IAAA,IAED8C,SAAQ,KACThE,KAAK0D,MAAMO,OAAOZ,EAAAA,IAKpB,OAFArD,KAAK0D,MAAMQ,IAAIb,EAAKO,GAEbA,CACT,CAjYAO,WAAAA,CAAYC,EAA0D9D,GACpEN,KAAKa,OAAQ,EACbb,KAAK0D,MAAQ,IAAIW,IACjBrE,KAAKc,6BAA+BsD,EACpCpE,KAAKM,IAAMA,CACb"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@privy-io/js-sdk-core",
|
|
3
|
-
"version": "0.65.
|
|
3
|
+
"version": "0.65.3",
|
|
4
4
|
"description": "Vanilla JS client for the Privy Auth API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"authentication",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"not op_mini all"
|
|
51
51
|
],
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@privy-io/api-types": "0.
|
|
53
|
+
"@privy-io/api-types": "0.14.0",
|
|
54
54
|
"canonicalize": "^2.0.0",
|
|
55
55
|
"eventemitter3": "^5.0.1",
|
|
56
56
|
"fetch-retry": "^6.0.0",
|
|
@@ -58,11 +58,11 @@
|
|
|
58
58
|
"js-cookie": "^3.0.5",
|
|
59
59
|
"libphonenumber-js": "^1.10.44",
|
|
60
60
|
"set-cookie-parser": "^2.6.0",
|
|
61
|
-
"@privy-io/api-base": "1.9.0",
|
|
62
61
|
"@privy-io/chains": "0.3.0",
|
|
63
62
|
"@privy-io/encoding": "0.1.3",
|
|
64
|
-
"@privy-io/ethereum": "0.1.
|
|
65
|
-
"@privy-io/routes": "0.2.
|
|
63
|
+
"@privy-io/ethereum": "0.1.3",
|
|
64
|
+
"@privy-io/routes": "0.2.2",
|
|
65
|
+
"@privy-io/api-base": "1.9.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@metamask/eth-sig-util": "^8.2.0",
|
|
@@ -95,12 +95,12 @@
|
|
|
95
95
|
"text-encoding": "^0.7.0",
|
|
96
96
|
"ts-jest": "^29.1.1",
|
|
97
97
|
"typescript": "~6.0.2",
|
|
98
|
-
"@privy-io/
|
|
99
|
-
"@privy-io/
|
|
98
|
+
"@privy-io/build-config": "1.0.0",
|
|
99
|
+
"@privy-io/tsconfig": "0.0.0"
|
|
100
100
|
},
|
|
101
101
|
"peerDependencies": {
|
|
102
102
|
"permissionless": "^0.2.47",
|
|
103
|
-
"viem": "2.
|
|
103
|
+
"viem": "2.51.2"
|
|
104
104
|
},
|
|
105
105
|
"peerDependenciesMeta": {
|
|
106
106
|
"permissionless": {
|