@dynamic-labs-sdk/client 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{InvalidParamError-ClTYNFqH.esm.js → InvalidParamError-C2c9HQ4V.esm.js} +2 -2
- package/dist/{InvalidParamError-ClTYNFqH.esm.js.map → InvalidParamError-C2c9HQ4V.esm.js.map} +1 -1
- package/dist/{InvalidParamError-CyWn6Ttk.cjs.js → InvalidParamError-D2oVXYDc.cjs.js} +2 -2
- package/dist/{InvalidParamError-CyWn6Ttk.cjs.js.map → InvalidParamError-D2oVXYDc.cjs.js.map} +1 -1
- package/dist/{NotWaasWalletAccountError-CrPgPmnV.esm.js → NotWaasWalletAccountError-DJmbtj65.esm.js} +3 -3
- package/dist/{NotWaasWalletAccountError-CrPgPmnV.esm.js.map → NotWaasWalletAccountError-DJmbtj65.esm.js.map} +1 -1
- package/dist/{NotWaasWalletAccountError-BhAtBWXM.cjs.js → NotWaasWalletAccountError-Dq2ssnPs.cjs.js} +3 -3
- package/dist/{NotWaasWalletAccountError-BhAtBWXM.cjs.js.map → NotWaasWalletAccountError-Dq2ssnPs.cjs.js.map} +1 -1
- package/dist/{constants-CnfZO_F_.cjs.js → constants-58bHSI3b.cjs.js} +4 -3
- package/dist/constants-58bHSI3b.cjs.js.map +1 -0
- package/dist/{constants-Bf0abTTp.esm.js → constants-B8WQGUki.esm.js} +3 -2
- package/dist/constants-B8WQGUki.esm.js.map +1 -0
- package/dist/core.cjs.js +14 -7
- package/dist/core.cjs.js.map +1 -1
- package/dist/core.esm.js +13 -6
- package/dist/core.esm.js.map +1 -1
- package/dist/errors/InvalidDeviceRegistrationRedirectError.d.ts +5 -0
- package/dist/errors/InvalidDeviceRegistrationRedirectError.d.ts.map +1 -0
- package/dist/errors/base/BaseError.d.ts.map +1 -1
- package/dist/exports/index.d.ts +4 -0
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/waas.d.ts +3 -0
- package/dist/exports/waas.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-D8p1kWCm.cjs.js → getNetworkProviderFromNetworkId-DCZQS4ot.cjs.js} +3 -3
- package/dist/{getNetworkProviderFromNetworkId-D8p1kWCm.cjs.js.map → getNetworkProviderFromNetworkId-DCZQS4ot.cjs.js.map} +1 -1
- package/dist/{getNetworkProviderFromNetworkId-XZfM4Nug.esm.js → getNetworkProviderFromNetworkId-HoSmTgsz.esm.js} +3 -3
- package/dist/{getNetworkProviderFromNetworkId-XZfM4Nug.esm.js.map → getNetworkProviderFromNetworkId-HoSmTgsz.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-CtIzVPwH.esm.js → getSignedSessionId-CWSJHTeG.esm.js} +3 -3
- package/dist/{getSignedSessionId-CtIzVPwH.esm.js.map → getSignedSessionId-CWSJHTeG.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-Dhhp9jB9.cjs.js → getSignedSessionId-DZ5toWIx.cjs.js} +3 -3
- package/dist/{getSignedSessionId-Dhhp9jB9.cjs.js.map → getSignedSessionId-DZ5toWIx.cjs.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-DMDL4c5-.cjs.js → getVerifiedCredentialForWalletAccount-86wjRIe0.cjs.js} +3 -3
- package/dist/{getVerifiedCredentialForWalletAccount-DMDL4c5-.cjs.js.map → getVerifiedCredentialForWalletAccount-86wjRIe0.cjs.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-D2MMFllp.esm.js → getVerifiedCredentialForWalletAccount-bYTdp3TE.esm.js} +2 -2
- package/dist/{getVerifiedCredentialForWalletAccount-D2MMFllp.esm.js.map → getVerifiedCredentialForWalletAccount-bYTdp3TE.esm.js.map} +1 -1
- package/dist/index.cjs.js +85 -6
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +82 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/{isMfaRequiredForAction-AMhrkEV0.cjs.js → isMfaRequiredForAction-BeZstT1P.cjs.js} +2 -2
- package/dist/{isMfaRequiredForAction-AMhrkEV0.cjs.js.map → isMfaRequiredForAction-BeZstT1P.cjs.js.map} +1 -1
- package/dist/{isMfaRequiredForAction-CRUZHKnT.esm.js → isMfaRequiredForAction-lt9nPT2M.esm.js} +2 -2
- package/dist/{isMfaRequiredForAction-CRUZHKnT.esm.js.map → isMfaRequiredForAction-lt9nPT2M.esm.js.map} +1 -1
- package/dist/modules/deviceRegistration/detectDeviceRegistrationRedirect/detectDeviceRegistrationRedirect.d.ts +14 -0
- package/dist/modules/deviceRegistration/detectDeviceRegistrationRedirect/detectDeviceRegistrationRedirect.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/detectDeviceRegistrationRedirect/index.d.ts +2 -0
- package/dist/modules/deviceRegistration/detectDeviceRegistrationRedirect/index.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/getDeviceTokenFromUrl/getDeviceTokenFromUrl.d.ts +15 -0
- package/dist/modules/deviceRegistration/getDeviceTokenFromUrl/getDeviceTokenFromUrl.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/getDeviceTokenFromUrl/index.d.ts +2 -0
- package/dist/modules/deviceRegistration/getDeviceTokenFromUrl/index.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/isDeviceRegistrationRequired/index.d.ts +2 -0
- package/dist/modules/deviceRegistration/isDeviceRegistrationRequired/index.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/isDeviceRegistrationRequired/isDeviceRegistrationRequired.d.ts +10 -0
- package/dist/modules/deviceRegistration/isDeviceRegistrationRequired/isDeviceRegistrationRequired.d.ts.map +1 -0
- package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
- package/dist/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.d.ts +26 -3
- package/dist/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.d.ts.map +1 -1
- package/dist/modules/waas/isWalletCreationRequirement/isWalletCreationRequirement.d.ts +11 -0
- package/dist/modules/waas/isWalletCreationRequirement/isWalletCreationRequirement.d.ts.map +1 -0
- package/dist/modules/waas/normalizeWalletRequirements/normalizeWalletRequirements.d.ts +19 -0
- package/dist/modules/waas/normalizeWalletRequirements/normalizeWalletRequirements.d.ts.map +1 -0
- package/dist/modules/waas/waas.types.d.ts +15 -0
- package/dist/modules/waas/waas.types.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/waas.cjs.js +95 -24
- package/dist/waas.cjs.js.map +1 -1
- package/dist/waas.esm.js +93 -24
- package/dist/waas.esm.js.map +1 -1
- package/dist/waasCore.cjs.js +11 -10
- package/dist/waasCore.cjs.js.map +1 -1
- package/dist/waasCore.esm.js +10 -9
- package/dist/waasCore.esm.js.map +1 -1
- package/package.json +2 -2
- package/dist/constants-Bf0abTTp.esm.js.map +0 -1
- package/dist/constants-CnfZO_F_.cjs.js.map +0 -1
- package/dist/filterDuplicates-C1MD6p_l.esm.js +0 -10
- package/dist/filterDuplicates-C1MD6p_l.esm.js.map +0 -1
- package/dist/filterDuplicates-DPNky3ug.cjs.js +0 -16
- package/dist/filterDuplicates-DPNky3ug.cjs.js.map +0 -1
package/dist/{isMfaRequiredForAction-AMhrkEV0.cjs.js → isMfaRequiredForAction-BeZstT1P.cjs.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_constants = require('./constants-
|
|
1
|
+
const require_constants = require('./constants-58bHSI3b.cjs.js');
|
|
2
2
|
|
|
3
3
|
//#region src/utils/bufferToHex/bufferToHex.ts
|
|
4
4
|
/**
|
|
@@ -89,4 +89,4 @@ Object.defineProperty(exports, 'isMfaRequiredForAction', {
|
|
|
89
89
|
return isMfaRequiredForAction;
|
|
90
90
|
}
|
|
91
91
|
});
|
|
92
|
-
//# sourceMappingURL=isMfaRequiredForAction-
|
|
92
|
+
//# sourceMappingURL=isMfaRequiredForAction-BeZstT1P.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isMfaRequiredForAction-
|
|
1
|
+
{"version":3,"file":"isMfaRequiredForAction-BeZstT1P.cjs.js","names":["getDefaultClient","getCore","getDefaultClient","getCore","createApiClient","getDefaultClient"],"sources":["../src/utils/bufferToHex/bufferToHex.ts","../src/modules/mfa/consumeMfaToken/consumeMfaToken.ts","../src/modules/mfa/getMfaMethods/getMfaMethods.ts","../src/modules/mfa/isMfaRequiredForAction/isMfaRequiredForAction.ts"],"sourcesContent":["/**\n * Converts an ArrayBuffer to a hex-encoded string\n */\nexport const bufferToHex = (buffer: ArrayBufferLike) =>\n [...new Uint8Array(buffer)]\n .map((x) => x.toString(16).padStart(2, '0'))\n .join('');\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport { assertDefined } from '../../../utils/assertDefined';\n\n/**\n * Consumes and clears the current MFA token from the client state.\n *\n * This function retrieves the MFA token obtained from a successful MFA authentication,\n * and removes it from the client, to prevent it from being used again.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns The MFA token that was consumed.\n * @throws Error if no MFA token is found.\n */\nexport const consumeMfaToken = (client = getDefaultClient()) => {\n const core = getCore(client);\n\n const mfaToken = core.state.get().mfaToken;\n\n assertDefined(mfaToken, 'No MFA token found');\n\n core.state.set({\n mfaToken: null,\n });\n\n return mfaToken;\n};\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport { createApiClient } from '../../apiClient';\n\n/**\n * Retrieves the available MFA methods for the current user.\n *\n * This function fetches information about which multi-factor authentication\n * methods are available and configured for the user's account.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the user's MFA methods configuration.\n */\nexport const getMfaMethods = async (client = getDefaultClient()) => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const userMfaMethods = await apiClient.getUserMfaMethods({\n environmentId: core.environmentId,\n verifiedOnly: true,\n });\n\n return userMfaMethods;\n};\n","import type { MFAAction } from '@dynamic-labs/sdk-api-core';\n\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport { getMfaMethods } from '../getMfaMethods';\n\ntype IsMfaRequiredForActionParams = {\n mfaAction: MFAAction;\n};\n\n/**\n * Checks if MFA is required for a specific action.\n *\n * This function determines whether multi-factor authentication is required\n * for the specified action based on project settings and user configuration.\n *\n * @param params.mfaAction - The action to check MFA requirements for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to true if MFA is required for the action, false otherwise.\n */\nexport const isMfaRequiredForAction = async (\n { mfaAction }: IsMfaRequiredForActionParams,\n client = getDefaultClient()\n) => {\n const projectSettings = client.projectSettings;\n\n const isRequiredForAction = projectSettings?.security?.mfa?.actions?.some(\n (action) => action.action === mfaAction && action.required\n );\n\n // if mfa is not required for the action, return false\n // no matter if general mfa is set to required or not\n if (!isRequiredForAction) {\n return false;\n }\n\n const isMfaMethodRequired = projectSettings?.security?.mfa?.required;\n\n // if mfa is required for the action and also set as required in general, return true\n if (isMfaMethodRequired) {\n return true;\n }\n\n const mfaMethods = await getMfaMethods(client);\n // if general mfa is optional, but user has registered methods,\n // then it should be required for the action\n return mfaMethods.userHasVerifiedMfaMethods;\n};\n"],"mappings":";;;;;;AAGA,MAAa,eAAe,WAC1B,CAAC,GAAG,IAAI,WAAW,OAAO,CAAC,CACxB,KAAK,MAAM,EAAE,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAC3C,KAAK,GAAG;;;;;;;;;;;;;;ACQb,MAAa,mBAAmB,SAASA,oCAAkB,KAAK;CAC9D,MAAM,OAAOC,0BAAQ,OAAO;CAE5B,MAAM,WAAW,KAAK,MAAM,KAAK,CAAC;AAElC,iCAAc,UAAU,qBAAqB;AAE7C,MAAK,MAAM,IAAI,EACb,UAAU,MACX,CAAC;AAEF,QAAO;;;;;;;;;;;;;;ACZT,MAAa,gBAAgB,OAAO,SAASC,oCAAkB,KAAK;CAClE,MAAM,OAAOC,0BAAQ,OAAO;AAQ5B,QALuB,MAFLC,kCAAgB,EAAE,EAAE,OAAO,CAEN,kBAAkB;EACvD,eAAe,KAAK;EACpB,cAAc;EACf,CAAC;;;;;;;;;;;;;;;ACDJ,MAAa,yBAAyB,OACpC,EAAE,aACF,SAASC,oCAAkB,KACxB;CACH,MAAM,kBAAkB,OAAO;AAQ/B,KAAI,CANwB,iBAAiB,UAAU,KAAK,SAAS,MAClE,WAAW,OAAO,WAAW,aAAa,OAAO,SACnD,CAKC,QAAO;AAMT,KAH4B,iBAAiB,UAAU,KAAK,SAI1D,QAAO;AAMT,SAHmB,MAAM,cAAc,OAAO,EAG5B"}
|
package/dist/{isMfaRequiredForAction-CRUZHKnT.esm.js → isMfaRequiredForAction-lt9nPT2M.esm.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as getDefaultClient, D as getCore, c as createApiClient, v as assertDefined } from "./constants-
|
|
1
|
+
import { C as getDefaultClient, D as getCore, c as createApiClient, v as assertDefined } from "./constants-B8WQGUki.esm.js";
|
|
2
2
|
|
|
3
3
|
//#region src/utils/bufferToHex/bufferToHex.ts
|
|
4
4
|
/**
|
|
@@ -66,4 +66,4 @@ const isMfaRequiredForAction = async ({ mfaAction }, client = getDefaultClient()
|
|
|
66
66
|
|
|
67
67
|
//#endregion
|
|
68
68
|
export { bufferToHex as i, getMfaMethods as n, consumeMfaToken as r, isMfaRequiredForAction as t };
|
|
69
|
-
//# sourceMappingURL=isMfaRequiredForAction-
|
|
69
|
+
//# sourceMappingURL=isMfaRequiredForAction-lt9nPT2M.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isMfaRequiredForAction-
|
|
1
|
+
{"version":3,"file":"isMfaRequiredForAction-lt9nPT2M.esm.js","names":[],"sources":["../src/utils/bufferToHex/bufferToHex.ts","../src/modules/mfa/consumeMfaToken/consumeMfaToken.ts","../src/modules/mfa/getMfaMethods/getMfaMethods.ts","../src/modules/mfa/isMfaRequiredForAction/isMfaRequiredForAction.ts"],"sourcesContent":["/**\n * Converts an ArrayBuffer to a hex-encoded string\n */\nexport const bufferToHex = (buffer: ArrayBufferLike) =>\n [...new Uint8Array(buffer)]\n .map((x) => x.toString(16).padStart(2, '0'))\n .join('');\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport { assertDefined } from '../../../utils/assertDefined';\n\n/**\n * Consumes and clears the current MFA token from the client state.\n *\n * This function retrieves the MFA token obtained from a successful MFA authentication,\n * and removes it from the client, to prevent it from being used again.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns The MFA token that was consumed.\n * @throws Error if no MFA token is found.\n */\nexport const consumeMfaToken = (client = getDefaultClient()) => {\n const core = getCore(client);\n\n const mfaToken = core.state.get().mfaToken;\n\n assertDefined(mfaToken, 'No MFA token found');\n\n core.state.set({\n mfaToken: null,\n });\n\n return mfaToken;\n};\n","import { getCore } from '../../../client/core/getCore';\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport { createApiClient } from '../../apiClient';\n\n/**\n * Retrieves the available MFA methods for the current user.\n *\n * This function fetches information about which multi-factor authentication\n * methods are available and configured for the user's account.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to the user's MFA methods configuration.\n */\nexport const getMfaMethods = async (client = getDefaultClient()) => {\n const core = getCore(client);\n const apiClient = createApiClient({}, client);\n\n const userMfaMethods = await apiClient.getUserMfaMethods({\n environmentId: core.environmentId,\n verifiedOnly: true,\n });\n\n return userMfaMethods;\n};\n","import type { MFAAction } from '@dynamic-labs/sdk-api-core';\n\nimport { getDefaultClient } from '../../../client/defaultClient';\nimport { getMfaMethods } from '../getMfaMethods';\n\ntype IsMfaRequiredForActionParams = {\n mfaAction: MFAAction;\n};\n\n/**\n * Checks if MFA is required for a specific action.\n *\n * This function determines whether multi-factor authentication is required\n * for the specified action based on project settings and user configuration.\n *\n * @param params.mfaAction - The action to check MFA requirements for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A promise that resolves to true if MFA is required for the action, false otherwise.\n */\nexport const isMfaRequiredForAction = async (\n { mfaAction }: IsMfaRequiredForActionParams,\n client = getDefaultClient()\n) => {\n const projectSettings = client.projectSettings;\n\n const isRequiredForAction = projectSettings?.security?.mfa?.actions?.some(\n (action) => action.action === mfaAction && action.required\n );\n\n // if mfa is not required for the action, return false\n // no matter if general mfa is set to required or not\n if (!isRequiredForAction) {\n return false;\n }\n\n const isMfaMethodRequired = projectSettings?.security?.mfa?.required;\n\n // if mfa is required for the action and also set as required in general, return true\n if (isMfaMethodRequired) {\n return true;\n }\n\n const mfaMethods = await getMfaMethods(client);\n // if general mfa is optional, but user has registered methods,\n // then it should be required for the action\n return mfaMethods.userHasVerifiedMfaMethods;\n};\n"],"mappings":";;;;;;AAGA,MAAa,eAAe,WAC1B,CAAC,GAAG,IAAI,WAAW,OAAO,CAAC,CACxB,KAAK,MAAM,EAAE,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAC3C,KAAK,GAAG;;;;;;;;;;;;;;ACQb,MAAa,mBAAmB,SAAS,kBAAkB,KAAK;CAC9D,MAAM,OAAO,QAAQ,OAAO;CAE5B,MAAM,WAAW,KAAK,MAAM,KAAK,CAAC;AAElC,eAAc,UAAU,qBAAqB;AAE7C,MAAK,MAAM,IAAI,EACb,UAAU,MACX,CAAC;AAEF,QAAO;;;;;;;;;;;;;;ACZT,MAAa,gBAAgB,OAAO,SAAS,kBAAkB,KAAK;CAClE,MAAM,OAAO,QAAQ,OAAO;AAQ5B,QALuB,MAFL,gBAAgB,EAAE,EAAE,OAAO,CAEN,kBAAkB;EACvD,eAAe,KAAK;EACpB,cAAc;EACf,CAAC;;;;;;;;;;;;;;;ACDJ,MAAa,yBAAyB,OACpC,EAAE,aACF,SAAS,kBAAkB,KACxB;CACH,MAAM,kBAAkB,OAAO;AAQ/B,KAAI,CANwB,iBAAiB,UAAU,KAAK,SAAS,MAClE,WAAW,OAAO,WAAW,aAAa,OAAO,SACnD,CAKC,QAAO;AAMT,KAH4B,iBAAiB,UAAU,KAAK,SAI1D,QAAO;AAMT,SAHmB,MAAM,cAAc,OAAO,EAG5B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type DetectDeviceRegistrationRedirectParams = {
|
|
2
|
+
url: string;
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* Detects if the current URL is a device registration redirect.
|
|
6
|
+
*
|
|
7
|
+
* This function uses getDeviceTokenFromUrl to validate the URL and determine
|
|
8
|
+
* if it contains device registration redirect data from a device authentication flow.
|
|
9
|
+
*
|
|
10
|
+
* @returns True if the URL is a device registration redirect, false otherwise.
|
|
11
|
+
*/
|
|
12
|
+
export declare const detectDeviceRegistrationRedirect: ({ url, }: DetectDeviceRegistrationRedirectParams) => boolean;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=detectDeviceRegistrationRedirect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detectDeviceRegistrationRedirect.d.ts","sourceRoot":"","sources":["../../../../src/modules/deviceRegistration/detectDeviceRegistrationRedirect/detectDeviceRegistrationRedirect.ts"],"names":[],"mappings":"AAEA,KAAK,sCAAsC,GAAG;IAC5C,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,aAE1C,sCAAsC,KAAG,OAO3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/deviceRegistration/detectDeviceRegistrationRedirect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type GetDeviceTokenFromUrlParams = {
|
|
2
|
+
url: string;
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* Safely extracts the device token from a device registration redirect URL.
|
|
6
|
+
*
|
|
7
|
+
* This function validates that the URL is a valid device registration redirect
|
|
8
|
+
* then extracts and returns the deviceToken.
|
|
9
|
+
*
|
|
10
|
+
* @returns The device token as a string if valid.
|
|
11
|
+
* @throws InvalidDeviceRegistrationRedirectError If the URL is not a valid device registration redirect.
|
|
12
|
+
*/
|
|
13
|
+
export declare const getDeviceTokenFromUrl: ({ url, }: GetDeviceTokenFromUrlParams) => string;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=getDeviceTokenFromUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDeviceTokenFromUrl.d.ts","sourceRoot":"","sources":["../../../../src/modules/deviceRegistration/getDeviceTokenFromUrl/getDeviceTokenFromUrl.ts"],"names":[],"mappings":"AAEA,KAAK,2BAA2B,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,aAE/B,2BAA2B,KAAG,MAqBhC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/deviceRegistration/getDeviceTokenFromUrl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/deviceRegistration/isDeviceRegistrationRequired/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if device registration is required for the current user.
|
|
3
|
+
*
|
|
4
|
+
* This function determines if the current user has the deviceRegistration
|
|
5
|
+
* scope, indicating that device registration is required.
|
|
6
|
+
*
|
|
7
|
+
* @returns True if device registration is required, false otherwise.
|
|
8
|
+
*/
|
|
9
|
+
export declare const isDeviceRegistrationRequired: (client?: import("../../../exports").DynamicClient) => boolean;
|
|
10
|
+
//# sourceMappingURL=isDeviceRegistrationRequired.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isDeviceRegistrationRequired.d.ts","sourceRoot":"","sources":["../../../../src/modules/deviceRegistration/isDeviceRegistrationRequired/isDeviceRegistrationRequired.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,gEAMxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWaasProvider.d.ts","sourceRoot":"","sources":["../../../../src/modules/waas/createWaasProvider/createWaasProvider.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIlD,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,0BAG5B,wBAAwB,KAAG,
|
|
1
|
+
{"version":3,"file":"createWaasProvider.d.ts","sourceRoot":"","sources":["../../../../src/modules/waas/createWaasProvider/createWaasProvider.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIlD,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,0BAG5B,wBAAwB,KAAG,YAqT7B,CAAC"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import type { ThresholdSignatureScheme } from '@dynamic-labs-wallet/browser-wallet-client';
|
|
2
2
|
import type { Chain } from '../../chain';
|
|
3
|
+
import type { WalletCreationRequirement } from '../waas.types';
|
|
3
4
|
type CreateWaasWalletAccountsParams = {
|
|
4
5
|
/**
|
|
5
6
|
* For which chains to create wallet accounts.
|
|
7
|
+
* Accepts either an array of chain strings (legacy format) or an array of
|
|
8
|
+
* WalletCreationRequirement objects for chain-specific configuration.
|
|
9
|
+
*
|
|
10
|
+
* For Bitcoin, you can specify the address type ('native_segwit' or 'taproot').
|
|
11
|
+
* If not specified, defaults to 'native_segwit'.
|
|
12
|
+
*
|
|
6
13
|
* If a chain is passed multiple times, just as many wallet accounts will be created
|
|
7
14
|
* for that chain.
|
|
8
15
|
*/
|
|
9
|
-
chains: Chain[];
|
|
16
|
+
chains: Chain[] | WalletCreationRequirement[];
|
|
10
17
|
/**
|
|
11
18
|
* The optional password to use for the wallet accounts.
|
|
12
19
|
* It's used to encrypt the user shares.
|
|
@@ -28,8 +35,24 @@ type CreateWaasWalletAccountsParams = {
|
|
|
28
35
|
*
|
|
29
36
|
* @example
|
|
30
37
|
* ```ts
|
|
31
|
-
* //
|
|
32
|
-
* await createWaasWalletAccounts({ chains: ['EVM', '
|
|
38
|
+
* // Legacy format - will create wallet accounts for EVM and SOL, BTC defaults to native_segwit
|
|
39
|
+
* await createWaasWalletAccounts({ chains: ['EVM', 'SOL', 'BTC'] });
|
|
40
|
+
*
|
|
41
|
+
* // New format with chain-specific config
|
|
42
|
+
* await createWaasWalletAccounts({
|
|
43
|
+
* chains: [
|
|
44
|
+
* { chain: 'BTC', bitcoinConfig: { addressType: 'taproot' } },
|
|
45
|
+
* { chain: 'EVM' },
|
|
46
|
+
* ]
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* // Create both BTC address types
|
|
50
|
+
* await createWaasWalletAccounts({
|
|
51
|
+
* chains: [
|
|
52
|
+
* { chain: 'BTC', bitcoinConfig: { addressType: 'native_segwit' } },
|
|
53
|
+
* { chain: 'BTC', bitcoinConfig: { addressType: 'taproot' } },
|
|
54
|
+
* ]
|
|
55
|
+
* });
|
|
33
56
|
* ```
|
|
34
57
|
*
|
|
35
58
|
* @param params.chains - The chains to create wallet accounts for.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWaasWalletAccounts.d.ts","sourceRoot":"","sources":["../../../../src/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"createWaasWalletAccounts.d.ts","sourceRoot":"","sources":["../../../../src/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAM3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOzC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE/D,KAAK,8BAA8B,GAAG;IACpC;;;;;;;;;;OAUG;IACH,MAAM,EAAE,KAAK,EAAE,GAAG,yBAAyB,EAAE,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,wBAAwB,oDAKhC,8BAA8B,wDAEhC,OAAO,CAAC,IAAI,CAwEd,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Chain } from '../../chain';
|
|
2
|
+
import type { WalletCreationRequirement } from '../waas.types';
|
|
3
|
+
/**
|
|
4
|
+
* Type guard to check if an item is a WalletCreationRequirement object.
|
|
5
|
+
* Chain values are strings, so we can distinguish by checking if it's an object with a 'chain' property.
|
|
6
|
+
*
|
|
7
|
+
* @param item - The item to check, either a WalletCreationRequirement or Chain string
|
|
8
|
+
* @returns True if the item is a WalletCreationRequirement object
|
|
9
|
+
*/
|
|
10
|
+
export declare const isWalletCreationRequirement: (item: WalletCreationRequirement | Chain) => item is WalletCreationRequirement;
|
|
11
|
+
//# sourceMappingURL=isWalletCreationRequirement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isWalletCreationRequirement.d.ts","sourceRoot":"","sources":["../../../../src/modules/waas/isWalletCreationRequirement/isWalletCreationRequirement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE/D;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,SAChC,yBAAyB,GAAG,KAAK,KACtC,IAAI,IAAI,yBACmD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Chain } from '../../chain';
|
|
2
|
+
import type { WalletCreationBitcoinConfig, WalletCreationRequirement } from '../waas.types';
|
|
3
|
+
type NormalizeWalletRequirementsParams = {
|
|
4
|
+
defaultBitcoinConfig?: WalletCreationBitcoinConfig;
|
|
5
|
+
input: WalletCreationRequirement[] | Chain[];
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Normalizes wallet creation input from either legacy Chain[] format
|
|
9
|
+
* or new WalletCreationRequirement[] format to WalletCreationRequirement[].
|
|
10
|
+
*
|
|
11
|
+
* For BTC chains without explicit bitcoinConfig, defaults to native_segwit.
|
|
12
|
+
*
|
|
13
|
+
* @param params.input - Either an array of Chain strings or WalletCreationRequirement objects
|
|
14
|
+
* @param params.defaultBitcoinConfig - Optional default bitcoin config to use for BTC chains when converting from legacy format
|
|
15
|
+
* @returns Array of WalletCreationRequirement objects
|
|
16
|
+
*/
|
|
17
|
+
export declare const normalizeWalletRequirements: ({ defaultBitcoinConfig, input, }: NormalizeWalletRequirementsParams) => WalletCreationRequirement[];
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=normalizeWalletRequirements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeWalletRequirements.d.ts","sourceRoot":"","sources":["../../../../src/modules/waas/normalizeWalletRequirements/normalizeWalletRequirements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,eAAe,CAAC;AAIvB,KAAK,iCAAiC,GAAG;IACvC,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IACnD,KAAK,EAAE,yBAAyB,EAAE,GAAG,KAAK,EAAE,CAAC;CAC9C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,qCAGrC,iCAAiC,KAAG,yBAAyB,EA+B/D,CAAC"}
|
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
import type { DynamicWalletClient, ThresholdSignatureScheme } from '@dynamic-labs-wallet/browser-wallet-client';
|
|
2
|
+
import type { Chain } from '../chain';
|
|
2
3
|
import type { WalletAccount } from '../wallets/walletAccount';
|
|
3
4
|
import type { WalletProvider } from '../wallets/walletProvider';
|
|
4
5
|
export type { ThresholdSignatureScheme } from '@dynamic-labs-wallet/browser-wallet-client';
|
|
6
|
+
/**
|
|
7
|
+
* User-facing Bitcoin configuration type for wallet creation.
|
|
8
|
+
* Uses strings to allow flexibility in user input, which gets cast
|
|
9
|
+
* to the proper BitcoinConfig type internally.
|
|
10
|
+
*/
|
|
11
|
+
export type WalletCreationBitcoinConfig = {
|
|
12
|
+
addressType?: string;
|
|
13
|
+
network?: string;
|
|
14
|
+
};
|
|
15
|
+
export type WalletCreationRequirement = {
|
|
16
|
+
bitcoinConfig?: WalletCreationBitcoinConfig;
|
|
17
|
+
chain: Chain;
|
|
18
|
+
};
|
|
5
19
|
export type WaasProvider = {
|
|
6
20
|
backupKeySharesToGoogleDrive: (args: {
|
|
7
21
|
password?: string;
|
|
8
22
|
walletAccount: WalletAccount;
|
|
9
23
|
}) => Promise<void>;
|
|
10
24
|
createWalletAccount(args?: {
|
|
25
|
+
bitcoinConfig?: WalletCreationBitcoinConfig;
|
|
11
26
|
password?: string;
|
|
12
27
|
thresholdSignatureScheme?: ThresholdSignatureScheme;
|
|
13
28
|
}): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waas.types.d.ts","sourceRoot":"","sources":["../../../src/modules/waas/waas.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"waas.types.d.ts","sourceRoot":"","sources":["../../../src/modules/waas/waas.types.ts"],"names":[],"mappings":"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"}
|