@dynamic-labs-sdk/client 1.16.1 → 1.17.1
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/core.cjs +53 -53
- package/dist/core.cjs.map +1 -1
- package/dist/core.esm.js +5 -5
- package/dist/core.native.esm.js +5 -5
- package/dist/exports/index.d.ts +2 -2
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/waas.d.ts +2 -1
- package/dist/exports/waas.d.ts.map +1 -1
- package/dist/exports/waasCore.d.ts +3 -2
- package/dist/exports/waasCore.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-D79icjmX.native.esm.js → getNetworkProviderFromNetworkId-Bfg-NkNJ.native.esm.js} +12 -4
- package/dist/getNetworkProviderFromNetworkId-Bfg-NkNJ.native.esm.js.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-BHxkTbiJ.cjs → getNetworkProviderFromNetworkId-CS4r9hi7.cjs} +43 -44
- package/dist/{getNetworkProviderFromNetworkId-BHxkTbiJ.cjs.map → getNetworkProviderFromNetworkId-CS4r9hi7.cjs.map} +1 -1
- package/dist/{getNetworkProviderFromNetworkId-BPeOK1Xx.esm.js → getNetworkProviderFromNetworkId-pknqqhk1.esm.js} +2 -3
- package/dist/{getNetworkProviderFromNetworkId-BPeOK1Xx.esm.js.map → getNetworkProviderFromNetworkId-pknqqhk1.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-DzjHW7Rw.esm.js → getSignedSessionId-CUw7LJ35.esm.js} +3 -3
- package/dist/{getSignedSessionId-DzjHW7Rw.esm.js.map → getSignedSessionId-CUw7LJ35.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-Dh4Df1mY.native.esm.js → getSignedSessionId-Cl3PEqa8.native.esm.js} +3 -3
- package/dist/{getSignedSessionId-Dh4Df1mY.native.esm.js.map → getSignedSessionId-Cl3PEqa8.native.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-BjSUL8Br.cjs → getSignedSessionId-cMGkmojJ.cjs} +11 -11
- package/dist/{getSignedSessionId-BjSUL8Br.cjs.map → getSignedSessionId-cMGkmojJ.cjs.map} +1 -1
- package/dist/getWalletProviderByKey-24co0tBE.native.esm.js +20 -0
- package/dist/getWalletProviderByKey-24co0tBE.native.esm.js.map +1 -0
- package/dist/getWalletProviderByKey-CP9Te5Sz.cjs +31 -0
- package/dist/getWalletProviderByKey-CP9Te5Sz.cjs.map +1 -0
- package/dist/getWalletProviderByKey-lQVfIGFi.esm.js +20 -0
- package/dist/getWalletProviderByKey-lQVfIGFi.esm.js.map +1 -0
- package/dist/index.cjs +560 -541
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +29 -28
- package/dist/index.esm.js.map +1 -1
- package/dist/index.native.esm.js +29 -28
- package/dist/index.native.esm.js.map +1 -1
- package/dist/isDynamicWaasEnabled-BXe0VyI4.native.esm.js +70 -0
- package/dist/isDynamicWaasEnabled-BXe0VyI4.native.esm.js.map +1 -0
- package/dist/isDynamicWaasEnabled-BYaqAOml.esm.js +70 -0
- package/dist/isDynamicWaasEnabled-BYaqAOml.esm.js.map +1 -0
- package/dist/isDynamicWaasEnabled-BwP1oowd.cjs +88 -0
- package/dist/isDynamicWaasEnabled-BwP1oowd.cjs.map +1 -0
- package/dist/{isMfaRequiredForAction-3fWX5MEF.cjs → isMfaRequiredForAction-Btejc5g3.cjs} +38 -29
- package/dist/isMfaRequiredForAction-Btejc5g3.cjs.map +1 -0
- package/dist/{isMfaRequiredForAction-CkX6CfJf.esm.js → isMfaRequiredForAction-CqEcCTIe.esm.js} +11 -2
- package/dist/isMfaRequiredForAction-CqEcCTIe.esm.js.map +1 -0
- package/dist/{isMfaRequiredForAction-CBW-d9C6.native.esm.js → isMfaRequiredForAction-Demz9zlH.native.esm.js} +2 -2
- package/dist/{isMfaRequiredForAction-CBW-d9C6.native.esm.js.map → isMfaRequiredForAction-Demz9zlH.native.esm.js.map} +1 -1
- package/dist/{isUserOnboardingComplete-D0JrQGvR.cjs → isUserOnboardingComplete-C86NDY7I.cjs} +13 -13
- package/dist/{isUserOnboardingComplete-D0JrQGvR.cjs.map → isUserOnboardingComplete-C86NDY7I.cjs.map} +1 -1
- package/dist/{isUserOnboardingComplete-C4_b3pDb.esm.js → isUserOnboardingComplete-CBrAH0ZF.esm.js} +3 -3
- package/dist/{isUserOnboardingComplete-C4_b3pDb.esm.js.map → isUserOnboardingComplete-CBrAH0ZF.esm.js.map} +1 -1
- package/dist/{isUserOnboardingComplete-m6E6GbB0.native.esm.js → isUserOnboardingComplete-Cr-YTpcU.native.esm.js} +3 -3
- package/dist/{isUserOnboardingComplete-m6E6GbB0.native.esm.js.map → isUserOnboardingComplete-Cr-YTpcU.native.esm.js.map} +1 -1
- package/dist/migrateFromFireblocks-B_q8Oawb.cjs +82 -0
- package/dist/migrateFromFireblocks-B_q8Oawb.cjs.map +1 -0
- package/dist/migrateFromFireblocks-Bbx2wHZD.esm.js +65 -0
- package/dist/migrateFromFireblocks-Bbx2wHZD.esm.js.map +1 -0
- package/dist/migrateFromFireblocks-D-J6-gRo.native.esm.js +65 -0
- package/dist/migrateFromFireblocks-D-J6-gRo.native.esm.js.map +1 -0
- package/dist/modules/flow/attachFlowSource/attachFlowSource.d.ts.map +1 -1
- package/dist/modules/sessionKeys/generateSessionKeys/generateSessionKeys.d.ts.map +1 -1
- package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
- package/dist/modules/waas/migrateFromFireblocks/index.d.ts +2 -0
- package/dist/modules/waas/migrateFromFireblocks/index.d.ts.map +1 -0
- package/dist/modules/waas/migrateFromFireblocks/migrateFromFireblocks.d.ts +52 -0
- package/dist/modules/waas/migrateFromFireblocks/migrateFromFireblocks.d.ts.map +1 -0
- package/dist/modules/waas/waas.types.d.ts +9 -1
- package/dist/modules/waas/waas.types.d.ts.map +1 -1
- package/dist/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts +1 -1
- package/dist/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts.map +1 -1
- package/dist/modules/wallets/walletProviderRegistry/events.d.ts +2 -1
- package/dist/modules/wallets/walletProviderRegistry/events.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/{InvalidParamError-DCpeZMBr.cjs → updateAuthFromVerifyResponse-CElYpi97.cjs} +291 -9
- package/dist/updateAuthFromVerifyResponse-CElYpi97.cjs.map +1 -0
- package/dist/{InvalidParamError-5AXtm6Zp.native.esm.js → updateAuthFromVerifyResponse-D1w-Aw9P.native.esm.js} +457 -4
- package/dist/updateAuthFromVerifyResponse-D1w-Aw9P.native.esm.js.map +1 -0
- package/dist/{InvalidParamError-PQ2Xen_o.esm.js → updateAuthFromVerifyResponse-azIi_3FB.esm.js} +237 -3
- package/dist/updateAuthFromVerifyResponse-azIi_3FB.esm.js.map +1 -0
- package/dist/waas.cjs +53 -67
- package/dist/waas.cjs.map +1 -1
- package/dist/waas.esm.js +5 -20
- package/dist/waas.esm.js.map +1 -1
- package/dist/waas.native.esm.js +5 -20
- package/dist/waas.native.esm.js.map +1 -1
- package/dist/waasCore.cjs +40 -23
- package/dist/waasCore.cjs.map +1 -1
- package/dist/waasCore.esm.js +23 -7
- package/dist/waasCore.esm.js.map +1 -1
- package/dist/waasCore.native.esm.js +23 -7
- package/dist/waasCore.native.esm.js.map +1 -1
- package/package.json +3 -3
- package/dist/InvalidParamError-5AXtm6Zp.native.esm.js.map +0 -1
- package/dist/InvalidParamError-DCpeZMBr.cjs.map +0 -1
- package/dist/InvalidParamError-PQ2Xen_o.esm.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-D79icjmX.native.esm.js.map +0 -1
- package/dist/getWaasWalletProviderFromWalletAccount-BxyUZBpT.cjs +0 -19
- package/dist/getWaasWalletProviderFromWalletAccount-BxyUZBpT.cjs.map +0 -1
- package/dist/getWaasWalletProviderFromWalletAccount-Ca0SiNEz.native.esm.js +0 -14
- package/dist/getWaasWalletProviderFromWalletAccount-Ca0SiNEz.native.esm.js.map +0 -1
- package/dist/getWaasWalletProviderFromWalletAccount-CupLo7EC.esm.js +0 -14
- package/dist/getWaasWalletProviderFromWalletAccount-CupLo7EC.esm.js.map +0 -1
- package/dist/getWalletProviderByKey-B6vtKHJy.esm.js +0 -255
- package/dist/getWalletProviderByKey-B6vtKHJy.esm.js.map +0 -1
- package/dist/getWalletProviderByKey-DIFBlGlR.cjs +0 -321
- package/dist/getWalletProviderByKey-DIFBlGlR.cjs.map +0 -1
- package/dist/getWalletProviderByKey-Dh2qnBmw.native.esm.js +0 -474
- package/dist/getWalletProviderByKey-Dh2qnBmw.native.esm.js.map +0 -1
- package/dist/isDynamicWaasEnabled-A8Humh0r.cjs +0 -49
- package/dist/isDynamicWaasEnabled-A8Humh0r.cjs.map +0 -1
- package/dist/isDynamicWaasEnabled-BmWqrgz1.esm.js +0 -37
- package/dist/isDynamicWaasEnabled-BmWqrgz1.esm.js.map +0 -1
- package/dist/isDynamicWaasEnabled-Djp4QuBw.native.esm.js +0 -37
- package/dist/isDynamicWaasEnabled-Djp4QuBw.native.esm.js.map +0 -1
- package/dist/isMfaRequiredForAction-3fWX5MEF.cjs.map +0 -1
- package/dist/isMfaRequiredForAction-CkX6CfJf.esm.js.map +0 -1
- package/dist/refreshAuth-BKeW1dSq.cjs +0 -43
- package/dist/refreshAuth-BKeW1dSq.cjs.map +0 -1
- package/dist/refreshAuth-Cykyxvpz.native.esm.js +0 -38
- package/dist/refreshAuth-Cykyxvpz.native.esm.js.map +0 -1
- package/dist/refreshAuth-LzA2xxNC.esm.js +0 -38
- package/dist/refreshAuth-LzA2xxNC.esm.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const require_isMfaRequiredForAction = require('./isMfaRequiredForAction-
|
|
1
|
+
const require_isMfaRequiredForAction = require('./isMfaRequiredForAction-Btejc5g3.cjs');
|
|
2
2
|
let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
|
|
3
3
|
|
|
4
4
|
//#region package.json
|
|
5
5
|
var name = "@dynamic-labs-sdk/client";
|
|
6
|
-
var version = "1.
|
|
6
|
+
var version = "1.17.1";
|
|
7
7
|
var dependencies = {
|
|
8
8
|
"@dynamic-labs-sdk/assert-package-version": "workspace:*",
|
|
9
9
|
"@dynamic-labs-wallet/browser-wallet-client": "1.0.46",
|
|
@@ -1615,6 +1615,28 @@ const instrumentFunction = ({ fn, functionName, getCore: getCore$1, redactAll })
|
|
|
1615
1615
|
const SDK_API_CORE_VERSION = dependencies["@dynamic-labs/sdk-api-core"];
|
|
1616
1616
|
const DYNAMIC_ICONIC_SPRITE_URL = "https://iconic.dynamic-static-assets.com/icons/sprite.svg";
|
|
1617
1617
|
|
|
1618
|
+
//#endregion
|
|
1619
|
+
//#region src/modules/wallets/emitWalletAccountsChangedEvent/emitWalletAccountsChangedEvent.ts
|
|
1620
|
+
/**
|
|
1621
|
+
* Emits the `walletAccountsChanged` event.
|
|
1622
|
+
* @notInstrumented
|
|
1623
|
+
*/
|
|
1624
|
+
const emitWalletAccountsChangedEvent = (client) => {
|
|
1625
|
+
emitEvent({
|
|
1626
|
+
args: { walletAccounts: getWalletAccounts(client) },
|
|
1627
|
+
event: "walletAccountsChanged"
|
|
1628
|
+
}, client);
|
|
1629
|
+
};
|
|
1630
|
+
|
|
1631
|
+
//#endregion
|
|
1632
|
+
//#region src/modules/auth/updateAuthFromVerifyResponse/checkAndRaiseWalletAccountsChangedEvent/checkAndRaiseWalletAccountsChangedEvent.ts
|
|
1633
|
+
/** @notInstrumented */
|
|
1634
|
+
const checkAndRaiseWalletAccountsChangedEvent = ({ previousState }, client) => {
|
|
1635
|
+
const core = getCore(client);
|
|
1636
|
+
if (getWalletAccountsHash(previousState, client) !== getWalletAccountsHash(core.state.get(), client)) emitWalletAccountsChangedEvent(client);
|
|
1637
|
+
};
|
|
1638
|
+
const getWalletAccountsHash = (state, client) => getWalletAccountsFromState(state, client).map((walletAccount) => JSON.stringify(walletAccount)).sort().join("-");
|
|
1639
|
+
|
|
1618
1640
|
//#endregion
|
|
1619
1641
|
//#region src/modules/mfa/isUserMissingMfaAuth/isUserMissingMfaAuth.ts
|
|
1620
1642
|
/**
|
|
@@ -1633,6 +1655,16 @@ const isUserMissingMfaAuth = (client = getDefaultClient()) => {
|
|
|
1633
1655
|
return Boolean(user.scope?.includes("requiresAdditionalAuth"));
|
|
1634
1656
|
};
|
|
1635
1657
|
|
|
1658
|
+
//#endregion
|
|
1659
|
+
//#region src/modules/wallets/getWalletProviders/getWalletProviders.ts
|
|
1660
|
+
/**
|
|
1661
|
+
* Get all available wallet providers to interact with internally.
|
|
1662
|
+
* @notInstrumented
|
|
1663
|
+
*/
|
|
1664
|
+
const getWalletProviders = (client) => {
|
|
1665
|
+
return getWalletProviderRegistry(client).listProviders();
|
|
1666
|
+
};
|
|
1667
|
+
|
|
1636
1668
|
//#endregion
|
|
1637
1669
|
//#region src/modules/waas/constants.ts
|
|
1638
1670
|
const DEFAULT_WAAS_BASE_API_URL = "https://app.dynamicauth.com";
|
|
@@ -1650,6 +1682,68 @@ const isWaasWalletProvider = (walletProvider) => {
|
|
|
1650
1682
|
return walletProvider.key.includes(DYNAMIC_WAAS_METADATA.normalizedWalletName);
|
|
1651
1683
|
};
|
|
1652
1684
|
|
|
1685
|
+
//#endregion
|
|
1686
|
+
//#region src/modules/waas/findWaasWalletProviderByChain/findWaasWalletProviderByChain.ts
|
|
1687
|
+
/** @notInstrumented */
|
|
1688
|
+
const findWaasWalletProviderByChain = ({ chain }, client) => {
|
|
1689
|
+
const providers = getWalletProviders(client);
|
|
1690
|
+
const waasProviderKey = formatWalletProviderKey({
|
|
1691
|
+
chain,
|
|
1692
|
+
displayName: DYNAMIC_WAAS_METADATA.displayName,
|
|
1693
|
+
walletProviderType: _dynamic_labs_sdk_api_core.WalletProviderEnum.EmbeddedWallet
|
|
1694
|
+
});
|
|
1695
|
+
const waasProvider = providers.find((provider) => provider.key === waasProviderKey && provider.chain === chain);
|
|
1696
|
+
if (!waasProvider || !isWaasWalletProvider(waasProvider)) return null;
|
|
1697
|
+
return waasProvider;
|
|
1698
|
+
};
|
|
1699
|
+
|
|
1700
|
+
//#endregion
|
|
1701
|
+
//#region src/modules/waas/isWaasWalletAccount/isWaasWalletAccount.ts
|
|
1702
|
+
/**
|
|
1703
|
+
* This function determines whether the provided wallet account is a Dynamic
|
|
1704
|
+
* WaaS wallet account.
|
|
1705
|
+
*
|
|
1706
|
+
* @param params.walletAccount - The wallet account to check.
|
|
1707
|
+
* @returns True if the wallet account is a WaaS wallet account, false otherwise.
|
|
1708
|
+
* @notInstrumented
|
|
1709
|
+
*/
|
|
1710
|
+
const isWaasWalletAccount = ({ walletAccount }) => {
|
|
1711
|
+
return walletAccount.walletProviderKey.includes(DYNAMIC_WAAS_METADATA.normalizedWalletName);
|
|
1712
|
+
};
|
|
1713
|
+
|
|
1714
|
+
//#endregion
|
|
1715
|
+
//#region src/modules/waas/initializeWaasClientsForEagerRecovery/initializeWaasClientsForEagerRecovery.ts
|
|
1716
|
+
/**
|
|
1717
|
+
* On login, boots the WaaS client once per chain so the SDK eagerly recovers
|
|
1718
|
+
* key shares itself (the `eagerlyRecoverKeyShares` capability) instead of the
|
|
1719
|
+
* host looping per wallet. Booting calls `initialize()`, which sends the auth
|
|
1720
|
+
* token the iframe needs to self-recover.
|
|
1721
|
+
*
|
|
1722
|
+
* @notInstrumented
|
|
1723
|
+
*/
|
|
1724
|
+
const initializeWaasClientsForEagerRecovery = async (client) => {
|
|
1725
|
+
/**
|
|
1726
|
+
* Booting triggers recovery, which fails if the user is missing the MFA auth.
|
|
1727
|
+
* This early return avoids attempting a call we know will fail and just adds
|
|
1728
|
+
* noise to the logs.
|
|
1729
|
+
*/
|
|
1730
|
+
if (isUserMissingMfaAuth(client)) return;
|
|
1731
|
+
const waasChains = new Set(getWalletAccounts(client).filter((walletAccount) => isWaasWalletAccount({ walletAccount })).map((walletAccount) => walletAccount.chain));
|
|
1732
|
+
await Promise.all([...waasChains].map(async (chain) => {
|
|
1733
|
+
const provider = findWaasWalletProviderByChain({ chain }, client);
|
|
1734
|
+
/**
|
|
1735
|
+
* The environment might not have the embedded wallet extensions installed.
|
|
1736
|
+
* In that case there is no provider for the chain and nothing to boot.
|
|
1737
|
+
*/
|
|
1738
|
+
if (!provider) return;
|
|
1739
|
+
try {
|
|
1740
|
+
await provider.getWaasClient();
|
|
1741
|
+
} catch (error) {
|
|
1742
|
+
getCore(client).logger.warn("[initializeWaasClientsForEagerRecovery] failed to boot waas client", error);
|
|
1743
|
+
}
|
|
1744
|
+
}));
|
|
1745
|
+
};
|
|
1746
|
+
|
|
1653
1747
|
//#endregion
|
|
1654
1748
|
//#region src/errors/InvalidParamError.ts
|
|
1655
1749
|
var InvalidParamError = class extends BaseError {
|
|
@@ -1664,6 +1758,146 @@ var InvalidParamError = class extends BaseError {
|
|
|
1664
1758
|
}
|
|
1665
1759
|
};
|
|
1666
1760
|
|
|
1761
|
+
//#endregion
|
|
1762
|
+
//#region src/modules/auth/decodeJwt/decodeJwt.ts
|
|
1763
|
+
/**
|
|
1764
|
+
* Decodes a JWT token and returns the full payload.
|
|
1765
|
+
*
|
|
1766
|
+
* This function extracts and returns the complete JWT payload including scopes,
|
|
1767
|
+
* expiration time, and other claims.
|
|
1768
|
+
*
|
|
1769
|
+
* @param jwt - The JWT token string.
|
|
1770
|
+
* @returns The decoded JWT payload object.
|
|
1771
|
+
* @throws InvalidParamError if the token is invalid or cannot be decoded.
|
|
1772
|
+
*
|
|
1773
|
+
* @example
|
|
1774
|
+
* ```typescript
|
|
1775
|
+
* const payload = decodeJwt(jwt);
|
|
1776
|
+
* // Returns: { scopes: ['wallet:export'], exp: 1234567890, ... }
|
|
1777
|
+
* ```
|
|
1778
|
+
* @notInstrumented
|
|
1779
|
+
*/
|
|
1780
|
+
const decodeJwt = (jwt) => {
|
|
1781
|
+
try {
|
|
1782
|
+
const parts = jwt.split(".");
|
|
1783
|
+
if (parts.length !== 3) throw new InvalidParamError("Invalid JWT format");
|
|
1784
|
+
const base64Payload = parts[1].replaceAll("-", "+").replaceAll("_", "/");
|
|
1785
|
+
const paddedPayload = base64Payload + "=".repeat((4 - base64Payload.length % 4) % 4);
|
|
1786
|
+
const decodedPayload = atob(paddedPayload);
|
|
1787
|
+
return JSON.parse(decodedPayload);
|
|
1788
|
+
} catch (error) {
|
|
1789
|
+
if (error instanceof InvalidParamError) throw error;
|
|
1790
|
+
throw new InvalidParamError(`Failed to decode JWT: ${error instanceof Error ? error.message : String(error)}`);
|
|
1791
|
+
}
|
|
1792
|
+
};
|
|
1793
|
+
|
|
1794
|
+
//#endregion
|
|
1795
|
+
//#region src/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/normalizeScopes/normalizeScopes.ts
|
|
1796
|
+
/**
|
|
1797
|
+
* Normalizes scopes by deduplicating and sorting them.
|
|
1798
|
+
* This creates a canonical representation for comparison.
|
|
1799
|
+
*
|
|
1800
|
+
* @param scopes - Array of scope strings (may contain duplicates)
|
|
1801
|
+
* @returns Normalized, sorted array of unique scopes
|
|
1802
|
+
* @notInstrumented
|
|
1803
|
+
*/
|
|
1804
|
+
const normalizeScopes = (scopes) => {
|
|
1805
|
+
return [...new Set(scopes)].sort((a, b) => a.localeCompare(b));
|
|
1806
|
+
};
|
|
1807
|
+
|
|
1808
|
+
//#endregion
|
|
1809
|
+
//#region src/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/parseElevatedAccessToken.ts
|
|
1810
|
+
/**
|
|
1811
|
+
* Validates and parses an elevated access token from a JWT string.
|
|
1812
|
+
* Extracts scopes, expiration, and validates the token structure.
|
|
1813
|
+
*
|
|
1814
|
+
* Policy decisions:
|
|
1815
|
+
* - Tokens without scopes are rejected (returns null)
|
|
1816
|
+
* - Tokens with empty scopes array are rejected (returns null)
|
|
1817
|
+
* - Tokens without exp field are rejected (returns null)
|
|
1818
|
+
* - Expired tokens are rejected (returns null)
|
|
1819
|
+
*
|
|
1820
|
+
* @returns Parsed token data or null if token is invalid/expired
|
|
1821
|
+
* @notInstrumented
|
|
1822
|
+
*/
|
|
1823
|
+
const parseElevatedAccessToken = ({ token }) => {
|
|
1824
|
+
const payload = decodeJwt(token);
|
|
1825
|
+
const filteredScopes = ((payload?.scope)?.split(" ") ?? []).filter((s) => s.length > 0);
|
|
1826
|
+
const singleUse = payload.singleUse ?? false;
|
|
1827
|
+
if (!filteredScopes || filteredScopes.length === 0) return null;
|
|
1828
|
+
if (!payload.exp) return null;
|
|
1829
|
+
const expiresAt = /* @__PURE__ */ new Date(payload.exp * 1e3);
|
|
1830
|
+
if (expiresAt <= /* @__PURE__ */ new Date()) return null;
|
|
1831
|
+
return {
|
|
1832
|
+
expiresAt,
|
|
1833
|
+
normalizedScopes: normalizeScopes(filteredScopes),
|
|
1834
|
+
scopes: filteredScopes,
|
|
1835
|
+
singleUse,
|
|
1836
|
+
token
|
|
1837
|
+
};
|
|
1838
|
+
};
|
|
1839
|
+
|
|
1840
|
+
//#endregion
|
|
1841
|
+
//#region src/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/upsertElevatedAccessToken/upsertElevatedAccessToken.ts
|
|
1842
|
+
/**
|
|
1843
|
+
* Upserts an elevated access token into the current tokens array.
|
|
1844
|
+
*
|
|
1845
|
+
* Policy: Only one token per normalized scope-set is allowed.
|
|
1846
|
+
* If a token with the same normalized scopes exists, it is replaced.
|
|
1847
|
+
* This ensures we don't accumulate multiple tokens for the same scope combination.
|
|
1848
|
+
*
|
|
1849
|
+
* @param currentTokens - Current array of elevated access tokens
|
|
1850
|
+
* @param newToken - New token to upsert
|
|
1851
|
+
* @returns Updated array of tokens with the new token upserted
|
|
1852
|
+
* @notInstrumented
|
|
1853
|
+
*/
|
|
1854
|
+
const upsertElevatedAccessToken = ({ currentTokens, newToken }) => {
|
|
1855
|
+
const newScopeKey = normalizeScopes(newToken.scopes).join(" ");
|
|
1856
|
+
return [...currentTokens.filter((existingToken) => {
|
|
1857
|
+
return normalizeScopes(existingToken.scopes).join(" ") !== newScopeKey;
|
|
1858
|
+
}), {
|
|
1859
|
+
expiresAt: newToken.expiresAt,
|
|
1860
|
+
scopes: newToken.scopes,
|
|
1861
|
+
singleUse: newToken.singleUse,
|
|
1862
|
+
token: newToken.token
|
|
1863
|
+
}];
|
|
1864
|
+
};
|
|
1865
|
+
|
|
1866
|
+
//#endregion
|
|
1867
|
+
//#region src/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.ts
|
|
1868
|
+
/** @notInstrumented */
|
|
1869
|
+
const updateAuthFromVerifyResponse = ({ response }, client) => {
|
|
1870
|
+
const core = getCore(client);
|
|
1871
|
+
const previousState = { ...core.state.get() };
|
|
1872
|
+
const { user, minifiedJwt, jwt, expiresAt, mfaToken, elevatedAccessToken } = response;
|
|
1873
|
+
const sessionExpiresAt = /* @__PURE__ */ new Date(expiresAt * 1e3);
|
|
1874
|
+
const newState = {
|
|
1875
|
+
legacyToken: jwt ?? null,
|
|
1876
|
+
sessionExpiresAt,
|
|
1877
|
+
token: minifiedJwt ?? null,
|
|
1878
|
+
user
|
|
1879
|
+
};
|
|
1880
|
+
if (mfaToken) newState.mfaToken = mfaToken;
|
|
1881
|
+
const currentTokens = core.state.get().elevatedAccessTokens || [];
|
|
1882
|
+
newState.elevatedAccessTokens = currentTokens;
|
|
1883
|
+
if (elevatedAccessToken) {
|
|
1884
|
+
const parsedToken = parseElevatedAccessToken({ token: elevatedAccessToken });
|
|
1885
|
+
if (parsedToken) newState.elevatedAccessTokens = upsertElevatedAccessToken({
|
|
1886
|
+
currentTokens,
|
|
1887
|
+
newToken: parsedToken
|
|
1888
|
+
});
|
|
1889
|
+
}
|
|
1890
|
+
core.state.set(newState);
|
|
1891
|
+
/**
|
|
1892
|
+
* For customers using a sandbox environment with cookies enabled, we need to set the cookie
|
|
1893
|
+
* programmatically because Redcoast won't set the cookie via headers. We set the cookie programmatically
|
|
1894
|
+
* so customers can access the cookie from document.cookie consistently between sandbox and live environments.
|
|
1895
|
+
*/
|
|
1896
|
+
if (minifiedJwt && isCookieEnabled(client)) setCookie(`${DYNAMIC_AUTH_COOKIE_NAME}=${minifiedJwt}; expires=${sessionExpiresAt.toUTCString()}; path=/; SameSite=Lax`);
|
|
1897
|
+
checkAndRaiseWalletAccountsChangedEvent({ previousState }, client);
|
|
1898
|
+
if (!previousState.user && Boolean(newState.user)) initializeWaasClientsForEagerRecovery(client);
|
|
1899
|
+
};
|
|
1900
|
+
|
|
1667
1901
|
//#endregion
|
|
1668
1902
|
Object.defineProperty(exports, 'APIError', {
|
|
1669
1903
|
enumerable: true,
|
|
@@ -1821,6 +2055,12 @@ Object.defineProperty(exports, 'assertDefined', {
|
|
|
1821
2055
|
return assertDefined;
|
|
1822
2056
|
}
|
|
1823
2057
|
});
|
|
2058
|
+
Object.defineProperty(exports, 'checkAndRaiseWalletAccountsChangedEvent', {
|
|
2059
|
+
enumerable: true,
|
|
2060
|
+
get: function () {
|
|
2061
|
+
return checkAndRaiseWalletAccountsChangedEvent;
|
|
2062
|
+
}
|
|
2063
|
+
});
|
|
1824
2064
|
Object.defineProperty(exports, 'createApiClient', {
|
|
1825
2065
|
enumerable: true,
|
|
1826
2066
|
get: function () {
|
|
@@ -1845,6 +2085,12 @@ Object.defineProperty(exports, 'emitEvent', {
|
|
|
1845
2085
|
return emitEvent;
|
|
1846
2086
|
}
|
|
1847
2087
|
});
|
|
2088
|
+
Object.defineProperty(exports, 'emitWalletAccountsChangedEvent', {
|
|
2089
|
+
enumerable: true,
|
|
2090
|
+
get: function () {
|
|
2091
|
+
return emitWalletAccountsChangedEvent;
|
|
2092
|
+
}
|
|
2093
|
+
});
|
|
1848
2094
|
Object.defineProperty(exports, 'extractSessionId', {
|
|
1849
2095
|
enumerable: true,
|
|
1850
2096
|
get: function () {
|
|
@@ -1857,6 +2103,12 @@ Object.defineProperty(exports, 'fetchAndStoreNonces', {
|
|
|
1857
2103
|
return fetchAndStoreNonces;
|
|
1858
2104
|
}
|
|
1859
2105
|
});
|
|
2106
|
+
Object.defineProperty(exports, 'findWaasWalletProviderByChain', {
|
|
2107
|
+
enumerable: true,
|
|
2108
|
+
get: function () {
|
|
2109
|
+
return findWaasWalletProviderByChain;
|
|
2110
|
+
}
|
|
2111
|
+
});
|
|
1860
2112
|
Object.defineProperty(exports, 'formatWalletAccountId', {
|
|
1861
2113
|
enumerable: true,
|
|
1862
2114
|
get: function () {
|
|
@@ -1941,12 +2193,6 @@ Object.defineProperty(exports, 'getWalletAccounts', {
|
|
|
1941
2193
|
return getWalletAccounts;
|
|
1942
2194
|
}
|
|
1943
2195
|
});
|
|
1944
|
-
Object.defineProperty(exports, 'getWalletAccountsFromState', {
|
|
1945
|
-
enumerable: true,
|
|
1946
|
-
get: function () {
|
|
1947
|
-
return getWalletAccountsFromState;
|
|
1948
|
-
}
|
|
1949
|
-
});
|
|
1950
2196
|
Object.defineProperty(exports, 'getWalletProviderFromWalletAccount', {
|
|
1951
2197
|
enumerable: true,
|
|
1952
2198
|
get: function () {
|
|
@@ -1959,6 +2205,18 @@ Object.defineProperty(exports, 'getWalletProviderRegistry', {
|
|
|
1959
2205
|
return getWalletProviderRegistry;
|
|
1960
2206
|
}
|
|
1961
2207
|
});
|
|
2208
|
+
Object.defineProperty(exports, 'getWalletProviders', {
|
|
2209
|
+
enumerable: true,
|
|
2210
|
+
get: function () {
|
|
2211
|
+
return getWalletProviders;
|
|
2212
|
+
}
|
|
2213
|
+
});
|
|
2214
|
+
Object.defineProperty(exports, 'initializeWaasClientsForEagerRecovery', {
|
|
2215
|
+
enumerable: true,
|
|
2216
|
+
get: function () {
|
|
2217
|
+
return initializeWaasClientsForEagerRecovery;
|
|
2218
|
+
}
|
|
2219
|
+
});
|
|
1962
2220
|
Object.defineProperty(exports, 'instrumentFunction', {
|
|
1963
2221
|
enumerable: true,
|
|
1964
2222
|
get: function () {
|
|
@@ -1977,6 +2235,12 @@ Object.defineProperty(exports, 'isUserMissingMfaAuth', {
|
|
|
1977
2235
|
return isUserMissingMfaAuth;
|
|
1978
2236
|
}
|
|
1979
2237
|
});
|
|
2238
|
+
Object.defineProperty(exports, 'isWaasWalletAccount', {
|
|
2239
|
+
enumerable: true,
|
|
2240
|
+
get: function () {
|
|
2241
|
+
return isWaasWalletAccount;
|
|
2242
|
+
}
|
|
2243
|
+
});
|
|
1980
2244
|
Object.defineProperty(exports, 'isWaasWalletProvider', {
|
|
1981
2245
|
enumerable: true,
|
|
1982
2246
|
get: function () {
|
|
@@ -2019,6 +2283,12 @@ Object.defineProperty(exports, 'onceEvent', {
|
|
|
2019
2283
|
return onceEvent;
|
|
2020
2284
|
}
|
|
2021
2285
|
});
|
|
2286
|
+
Object.defineProperty(exports, 'parseElevatedAccessToken', {
|
|
2287
|
+
enumerable: true,
|
|
2288
|
+
get: function () {
|
|
2289
|
+
return parseElevatedAccessToken;
|
|
2290
|
+
}
|
|
2291
|
+
});
|
|
2022
2292
|
Object.defineProperty(exports, 'randomString', {
|
|
2023
2293
|
enumerable: true,
|
|
2024
2294
|
get: function () {
|
|
@@ -2049,10 +2319,22 @@ Object.defineProperty(exports, 'splitWalletProviderKey', {
|
|
|
2049
2319
|
return splitWalletProviderKey;
|
|
2050
2320
|
}
|
|
2051
2321
|
});
|
|
2322
|
+
Object.defineProperty(exports, 'updateAuthFromVerifyResponse', {
|
|
2323
|
+
enumerable: true,
|
|
2324
|
+
get: function () {
|
|
2325
|
+
return updateAuthFromVerifyResponse;
|
|
2326
|
+
}
|
|
2327
|
+
});
|
|
2328
|
+
Object.defineProperty(exports, 'upsertElevatedAccessToken', {
|
|
2329
|
+
enumerable: true,
|
|
2330
|
+
get: function () {
|
|
2331
|
+
return upsertElevatedAccessToken;
|
|
2332
|
+
}
|
|
2333
|
+
});
|
|
2052
2334
|
Object.defineProperty(exports, 'version', {
|
|
2053
2335
|
enumerable: true,
|
|
2054
2336
|
get: function () {
|
|
2055
2337
|
return version;
|
|
2056
2338
|
}
|
|
2057
2339
|
});
|
|
2058
|
-
//# sourceMappingURL=
|
|
2340
|
+
//# sourceMappingURL=updateAuthFromVerifyResponse-CElYpi97.cjs.map
|