@dynamic-labs-sdk/client 0.1.0-alpha.23 → 0.1.0-alpha.25
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/CHANGELOG.md +20 -0
- package/constants.cjs.js +1 -1
- package/constants.esm.js +1 -1
- package/index.cjs.js +93 -76
- package/index.esm.js +92 -75
- package/package.json +2 -2
- package/src/exports/index.d.ts +2 -2
- package/src/exports/index.d.ts.map +1 -1
- package/src/modules/auth/social/oauth/{signInWithSocialRedirect/signInWithSocialRedirect.d.ts → authenticateWithSocial/authenticateWithSocial.d.ts} +5 -3
- package/src/modules/auth/social/oauth/authenticateWithSocial/authenticateWithSocial.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/index.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/buildOAuthUrl.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/index.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/index.d.ts.map +1 -1
- package/src/modules/auth/social/oauth/authenticateWithSocial/index.d.ts +2 -0
- package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/index.d.ts.map +1 -1
- package/src/modules/auth/social/oauth/{completeSocialRedirectSignIn/completeSocialRedirectSignIn.d.ts → completeSocialAuthentication/completeSocialAuthentication.d.ts} +3 -3
- package/src/modules/auth/social/oauth/completeSocialAuthentication/completeSocialAuthentication.d.ts.map +1 -0
- package/src/modules/auth/social/oauth/completeSocialAuthentication/index.d.ts +2 -0
- package/src/modules/auth/social/oauth/{completeSocialRedirectSignIn → completeSocialAuthentication}/index.d.ts.map +1 -1
- package/src/modules/auth/social/oauth/completeSocialRedirectSignIn/completeSocialRedirectSignIn.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/completeSocialRedirectSignIn/index.d.ts +0 -2
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/index.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/buildOAuthUrl.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/index.d.ts.map +0 -1
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/index.d.ts +0 -2
- package/src/modules/auth/social/oauth/signInWithSocialRedirect/signInWithSocialRedirect.d.ts.map +0 -1
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts +0 -0
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/addOAuthUrlParams/index.d.ts +0 -0
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/buildOAuthUrl.d.ts +0 -0
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts +0 -0
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/getOAuthBaseUrl/index.d.ts +0 -0
- /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/index.d.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
## 0.1.0-alpha.25 (2025-10-29)
|
|
2
|
+
|
|
3
|
+
### Breaking Changes
|
|
4
|
+
|
|
5
|
+
- Rename signInWithSocialRedirect -> authenticateWithSocial
|
|
6
|
+
- Rename completeSocialRedirectSignIn -> completeSocialAuthentication
|
|
7
|
+
|
|
8
|
+
### 🚀 Features
|
|
9
|
+
|
|
10
|
+
- add support for social account linking ([#616](https://github.com/dynamic-labs/dynamic-sdk/pull/616))
|
|
11
|
+
|
|
12
|
+
## 0.1.0-alpha.24 (2025-10-28)
|
|
13
|
+
|
|
14
|
+
### Breaking Changes
|
|
15
|
+
|
|
16
|
+
Removed `getSigner` from `solana` package in favor of individual signing methods
|
|
17
|
+
- signAndSendTransaction
|
|
18
|
+
- signTransaction
|
|
19
|
+
- signAllTransactions
|
|
20
|
+
|
|
1
21
|
## 0.1.0-alpha.23 (2025-10-22)
|
|
2
22
|
|
|
3
23
|
### 🚀 Features
|
package/constants.cjs.js
CHANGED
|
@@ -4,7 +4,7 @@ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
|
4
4
|
var buffer = require('buffer');
|
|
5
5
|
|
|
6
6
|
var name = "@dynamic-labs-sdk/client";
|
|
7
|
-
var version = "0.1.0-alpha.
|
|
7
|
+
var version = "0.1.0-alpha.25";
|
|
8
8
|
var dependencies = {
|
|
9
9
|
"@dynamic-labs/sdk-api-core": "0.0.813"};
|
|
10
10
|
|
package/constants.esm.js
CHANGED
|
@@ -2,7 +2,7 @@ import { AuthStorageEnum, SDKApi, Configuration } from '@dynamic-labs/sdk-api-co
|
|
|
2
2
|
import { Buffer as Buffer$1 } from 'buffer';
|
|
3
3
|
|
|
4
4
|
var name = "@dynamic-labs-sdk/client";
|
|
5
|
-
var version = "0.1.0-alpha.
|
|
5
|
+
var version = "0.1.0-alpha.25";
|
|
6
6
|
var dependencies = {
|
|
7
7
|
"@dynamic-labs/sdk-api-core": "0.0.813"};
|
|
8
8
|
|
package/index.cjs.js
CHANGED
|
@@ -1338,79 +1338,6 @@ const serverSigninPasskey = async ({ authentication, createMfaToken }, client)=>
|
|
|
1338
1338
|
})
|
|
1339
1339
|
});
|
|
1340
1340
|
|
|
1341
|
-
/**
|
|
1342
|
-
* Completes the social authentication flow after OAuth redirect.
|
|
1343
|
-
*
|
|
1344
|
-
* This function processes the OAuth callback URL with authorization codes
|
|
1345
|
-
* and completes the user authentication with the social provider.
|
|
1346
|
-
*
|
|
1347
|
-
* @param params.url - The callback URL containing OAuth response parameters.
|
|
1348
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1349
|
-
* @returns A promise that resolves to the authenticated user or null.
|
|
1350
|
-
* @throws MissingSocialUrlParamError If required OAuth parameters are missing.
|
|
1351
|
-
* @throws InvalidRedirectStorageStateError If the stored state doesn't match.
|
|
1352
|
-
*/ const completeSocialRedirectSignIn = async ({ url }, client = constants.getDefaultClient())=>{
|
|
1353
|
-
const core = constants.getCore(client);
|
|
1354
|
-
const apiClient = constants.createApiClient({}, client);
|
|
1355
|
-
await core.initTrack.waitForAll();
|
|
1356
|
-
const dynamicOauthState = url.searchParams.get('dynamicOauthState');
|
|
1357
|
-
const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
|
|
1358
|
-
if (!dynamicOauthState) {
|
|
1359
|
-
throw new MissingSocialUrlParamError('dynamicOauthState');
|
|
1360
|
-
}
|
|
1361
|
-
if (!dynamicOauthCode) {
|
|
1362
|
-
throw new MissingSocialUrlParamError('dynamicOauthCode');
|
|
1363
|
-
}
|
|
1364
|
-
const storedSocialRedirectState = await core.storage.getItem(redirectStateStorageKeySchema);
|
|
1365
|
-
if (!storedSocialRedirectState) {
|
|
1366
|
-
throw new MissingRedirectStorageStateError();
|
|
1367
|
-
}
|
|
1368
|
-
if (storedSocialRedirectState.state !== dynamicOauthState) {
|
|
1369
|
-
throw new InvalidRedirectStorageStateError();
|
|
1370
|
-
}
|
|
1371
|
-
const { provider, codeVerifier } = storedSocialRedirectState;
|
|
1372
|
-
await core.storage.removeItem(redirectStateStorageKeySchema);
|
|
1373
|
-
const response = await apiClient.oauthSignIn({
|
|
1374
|
-
environmentId: core.environmentId,
|
|
1375
|
-
oauthRequest: {
|
|
1376
|
-
captchaToken: getNetworkProviderFromNetworkId.consumeCaptchaToken(client),
|
|
1377
|
-
code: dynamicOauthCode,
|
|
1378
|
-
codeVerifier,
|
|
1379
|
-
state: dynamicOauthState
|
|
1380
|
-
},
|
|
1381
|
-
providerType: provider
|
|
1382
|
-
});
|
|
1383
|
-
getWalletProviderByKey.updateAuthFromVerifyResponse({
|
|
1384
|
-
response
|
|
1385
|
-
}, client);
|
|
1386
|
-
return response.user;
|
|
1387
|
-
};
|
|
1388
|
-
|
|
1389
|
-
/**
|
|
1390
|
-
* Detects if the current URL is an OAuth redirect from a social provider.
|
|
1391
|
-
*
|
|
1392
|
-
* This function examines the URL parameters to determine if it contains
|
|
1393
|
-
* OAuth callback data from a social authentication flow.
|
|
1394
|
-
*
|
|
1395
|
-
* @param params.url - The URL to check for OAuth redirect parameters.
|
|
1396
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1397
|
-
* @returns A promise that resolves to true if the URL is an OAuth redirect, false otherwise.
|
|
1398
|
-
*/ const detectOAuthRedirect = async ({ url }, client = constants.getDefaultClient())=>{
|
|
1399
|
-
const core = constants.getCore(client);
|
|
1400
|
-
const dynamicOauthState = url.searchParams.get('dynamicOauthState');
|
|
1401
|
-
const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
|
|
1402
|
-
if (!dynamicOauthState || !dynamicOauthCode) {
|
|
1403
|
-
return false;
|
|
1404
|
-
}
|
|
1405
|
-
// Wait for SDK to load
|
|
1406
|
-
await core.initTrack.waitForAll();
|
|
1407
|
-
const storedSocialRedirectState = await core.storage.getItem(redirectStateStorageKeySchema);
|
|
1408
|
-
if (!storedSocialRedirectState || storedSocialRedirectState.state !== dynamicOauthState) {
|
|
1409
|
-
return false;
|
|
1410
|
-
}
|
|
1411
|
-
return true;
|
|
1412
|
-
};
|
|
1413
|
-
|
|
1414
1341
|
const digestSHA256 = (str)=>{
|
|
1415
1342
|
const encoder = new TextEncoder();
|
|
1416
1343
|
const data = encoder.encode(str);
|
|
@@ -1511,11 +1438,13 @@ const providersRequiringPkce = [
|
|
|
1511
1438
|
* This function redirects the user to the specified social provider's
|
|
1512
1439
|
* authorization page to complete OAuth authentication flow.
|
|
1513
1440
|
* After the oauth flow is complete, the user will be redirected back to your app.
|
|
1441
|
+
* You can then call `detectOAuthRedirect` to check if the user got redirected back to your app due to the oauth flow,
|
|
1442
|
+
* and finally call `completeSocialAuthentication` to complete the social authentication flow.
|
|
1514
1443
|
*
|
|
1515
1444
|
* @param params.provider - The social provider to authenticate with (e.g., 'google', 'github').
|
|
1516
1445
|
* @param params.redirectUrl - The URL to redirect back to after authentication.
|
|
1517
1446
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1518
|
-
*/ const
|
|
1447
|
+
*/ const authenticateWithSocial = async ({ provider, redirectUrl }, client = constants.getDefaultClient())=>{
|
|
1519
1448
|
const core = constants.getCore(client);
|
|
1520
1449
|
const apiClient = constants.createApiClient({}, client);
|
|
1521
1450
|
await core.initTrack.waitForAll();
|
|
@@ -1537,6 +1466,94 @@ const providersRequiringPkce = [
|
|
|
1537
1466
|
await core.navigate(url.toString());
|
|
1538
1467
|
};
|
|
1539
1468
|
|
|
1469
|
+
/**
|
|
1470
|
+
* Completes the social authentication flow after OAuth redirect.
|
|
1471
|
+
*
|
|
1472
|
+
* This function processes the OAuth callback URL with authorization codes
|
|
1473
|
+
* and completes the user authentication with the social provider.
|
|
1474
|
+
*
|
|
1475
|
+
* @param params.url - The callback URL containing OAuth response parameters.
|
|
1476
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1477
|
+
* @returns A promise that resolves to the authenticated user or null.
|
|
1478
|
+
* @throws MissingSocialUrlParamError If required OAuth parameters are missing.
|
|
1479
|
+
* @throws InvalidRedirectStorageStateError If the stored state doesn't match.
|
|
1480
|
+
*/ const completeSocialAuthentication = async ({ url }, client = constants.getDefaultClient())=>{
|
|
1481
|
+
const core = constants.getCore(client);
|
|
1482
|
+
const apiClient = constants.createApiClient({}, client);
|
|
1483
|
+
await core.initTrack.waitForAll();
|
|
1484
|
+
const dynamicOauthState = url.searchParams.get('dynamicOauthState');
|
|
1485
|
+
const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
|
|
1486
|
+
if (!dynamicOauthState) {
|
|
1487
|
+
throw new MissingSocialUrlParamError('dynamicOauthState');
|
|
1488
|
+
}
|
|
1489
|
+
if (!dynamicOauthCode) {
|
|
1490
|
+
throw new MissingSocialUrlParamError('dynamicOauthCode');
|
|
1491
|
+
}
|
|
1492
|
+
const storedSocialRedirectState = await core.storage.getItem(redirectStateStorageKeySchema);
|
|
1493
|
+
if (!storedSocialRedirectState) {
|
|
1494
|
+
throw new MissingRedirectStorageStateError();
|
|
1495
|
+
}
|
|
1496
|
+
if (storedSocialRedirectState.state !== dynamicOauthState) {
|
|
1497
|
+
throw new InvalidRedirectStorageStateError();
|
|
1498
|
+
}
|
|
1499
|
+
const { provider, codeVerifier } = storedSocialRedirectState;
|
|
1500
|
+
await core.storage.removeItem(redirectStateStorageKeySchema);
|
|
1501
|
+
let response;
|
|
1502
|
+
// if user is alreadyauthenticated, we're verifying the social auth to link it to the user
|
|
1503
|
+
if (client.user) {
|
|
1504
|
+
response = await apiClient.oauthVerify({
|
|
1505
|
+
environmentId: core.environmentId,
|
|
1506
|
+
oauthRequest: {
|
|
1507
|
+
code: dynamicOauthCode,
|
|
1508
|
+
codeVerifier,
|
|
1509
|
+
state: dynamicOauthState
|
|
1510
|
+
},
|
|
1511
|
+
providerType: provider
|
|
1512
|
+
});
|
|
1513
|
+
} else {
|
|
1514
|
+
// if user is not authenticated, we're signing in with the social auth
|
|
1515
|
+
response = await apiClient.oauthSignIn({
|
|
1516
|
+
environmentId: core.environmentId,
|
|
1517
|
+
oauthRequest: {
|
|
1518
|
+
captchaToken: getNetworkProviderFromNetworkId.consumeCaptchaToken(client),
|
|
1519
|
+
code: dynamicOauthCode,
|
|
1520
|
+
codeVerifier,
|
|
1521
|
+
state: dynamicOauthState
|
|
1522
|
+
},
|
|
1523
|
+
providerType: provider
|
|
1524
|
+
});
|
|
1525
|
+
}
|
|
1526
|
+
getWalletProviderByKey.updateAuthFromVerifyResponse({
|
|
1527
|
+
response
|
|
1528
|
+
}, client);
|
|
1529
|
+
return response.user;
|
|
1530
|
+
};
|
|
1531
|
+
|
|
1532
|
+
/**
|
|
1533
|
+
* Detects if the current URL is an OAuth redirect from a social provider.
|
|
1534
|
+
*
|
|
1535
|
+
* This function examines the URL parameters to determine if it contains
|
|
1536
|
+
* OAuth callback data from a social authentication flow.
|
|
1537
|
+
*
|
|
1538
|
+
* @param params.url - The URL to check for OAuth redirect parameters.
|
|
1539
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1540
|
+
* @returns A promise that resolves to true if the URL is an OAuth redirect, false otherwise.
|
|
1541
|
+
*/ const detectOAuthRedirect = async ({ url }, client = constants.getDefaultClient())=>{
|
|
1542
|
+
const core = constants.getCore(client);
|
|
1543
|
+
const dynamicOauthState = url.searchParams.get('dynamicOauthState');
|
|
1544
|
+
const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
|
|
1545
|
+
if (!dynamicOauthState || !dynamicOauthCode) {
|
|
1546
|
+
return false;
|
|
1547
|
+
}
|
|
1548
|
+
// Wait for SDK to load
|
|
1549
|
+
await core.initTrack.waitForAll();
|
|
1550
|
+
const storedSocialRedirectState = await core.storage.getItem(redirectStateStorageKeySchema);
|
|
1551
|
+
if (!storedSocialRedirectState || storedSocialRedirectState.state !== dynamicOauthState) {
|
|
1552
|
+
return false;
|
|
1553
|
+
}
|
|
1554
|
+
return true;
|
|
1555
|
+
};
|
|
1556
|
+
|
|
1540
1557
|
/**
|
|
1541
1558
|
* Retrieves token balances across multiple blockchain networks.
|
|
1542
1559
|
*
|
|
@@ -3707,7 +3724,8 @@ exports.assertWalletProviderMethodDefined = assertWalletProviderMethodDefined;
|
|
|
3707
3724
|
exports.authenticateMfaRecoveryCode = authenticateMfaRecoveryCode;
|
|
3708
3725
|
exports.authenticatePasskeyMFA = authenticatePasskeyMFA;
|
|
3709
3726
|
exports.authenticateTotpMfaDevice = authenticateTotpMfaDevice;
|
|
3710
|
-
exports.
|
|
3727
|
+
exports.authenticateWithSocial = authenticateWithSocial;
|
|
3728
|
+
exports.completeSocialAuthentication = completeSocialAuthentication;
|
|
3711
3729
|
exports.connectAndVerifyWithWalletProvider = connectAndVerifyWithWalletProvider;
|
|
3712
3730
|
exports.connectWithWalletProvider = connectWithWalletProvider;
|
|
3713
3731
|
exports.createDynamicClient = createDynamicClient;
|
|
@@ -3750,7 +3768,6 @@ exports.sendSmsOTP = sendSmsOTP;
|
|
|
3750
3768
|
exports.setDefaultMfaDevice = setDefaultMfaDevice;
|
|
3751
3769
|
exports.signInWithExternalJwt = signInWithExternalJwt;
|
|
3752
3770
|
exports.signInWithPasskey = signInWithPasskey;
|
|
3753
|
-
exports.signInWithSocialRedirect = signInWithSocialRedirect;
|
|
3754
3771
|
exports.signMessage = signMessage;
|
|
3755
3772
|
exports.switchActiveNetwork = switchActiveNetwork;
|
|
3756
3773
|
exports.updateUser = updateUser;
|
package/index.esm.js
CHANGED
|
@@ -1323,79 +1323,6 @@ const serverSigninPasskey = async ({ authentication, createMfaToken }, client)=>
|
|
|
1323
1323
|
})
|
|
1324
1324
|
});
|
|
1325
1325
|
|
|
1326
|
-
/**
|
|
1327
|
-
* Completes the social authentication flow after OAuth redirect.
|
|
1328
|
-
*
|
|
1329
|
-
* This function processes the OAuth callback URL with authorization codes
|
|
1330
|
-
* and completes the user authentication with the social provider.
|
|
1331
|
-
*
|
|
1332
|
-
* @param params.url - The callback URL containing OAuth response parameters.
|
|
1333
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1334
|
-
* @returns A promise that resolves to the authenticated user or null.
|
|
1335
|
-
* @throws MissingSocialUrlParamError If required OAuth parameters are missing.
|
|
1336
|
-
* @throws InvalidRedirectStorageStateError If the stored state doesn't match.
|
|
1337
|
-
*/ const completeSocialRedirectSignIn = async ({ url }, client = getDefaultClient())=>{
|
|
1338
|
-
const core = getCore(client);
|
|
1339
|
-
const apiClient = createApiClient({}, client);
|
|
1340
|
-
await core.initTrack.waitForAll();
|
|
1341
|
-
const dynamicOauthState = url.searchParams.get('dynamicOauthState');
|
|
1342
|
-
const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
|
|
1343
|
-
if (!dynamicOauthState) {
|
|
1344
|
-
throw new MissingSocialUrlParamError('dynamicOauthState');
|
|
1345
|
-
}
|
|
1346
|
-
if (!dynamicOauthCode) {
|
|
1347
|
-
throw new MissingSocialUrlParamError('dynamicOauthCode');
|
|
1348
|
-
}
|
|
1349
|
-
const storedSocialRedirectState = await core.storage.getItem(redirectStateStorageKeySchema);
|
|
1350
|
-
if (!storedSocialRedirectState) {
|
|
1351
|
-
throw new MissingRedirectStorageStateError();
|
|
1352
|
-
}
|
|
1353
|
-
if (storedSocialRedirectState.state !== dynamicOauthState) {
|
|
1354
|
-
throw new InvalidRedirectStorageStateError();
|
|
1355
|
-
}
|
|
1356
|
-
const { provider, codeVerifier } = storedSocialRedirectState;
|
|
1357
|
-
await core.storage.removeItem(redirectStateStorageKeySchema);
|
|
1358
|
-
const response = await apiClient.oauthSignIn({
|
|
1359
|
-
environmentId: core.environmentId,
|
|
1360
|
-
oauthRequest: {
|
|
1361
|
-
captchaToken: consumeCaptchaToken(client),
|
|
1362
|
-
code: dynamicOauthCode,
|
|
1363
|
-
codeVerifier,
|
|
1364
|
-
state: dynamicOauthState
|
|
1365
|
-
},
|
|
1366
|
-
providerType: provider
|
|
1367
|
-
});
|
|
1368
|
-
updateAuthFromVerifyResponse({
|
|
1369
|
-
response
|
|
1370
|
-
}, client);
|
|
1371
|
-
return response.user;
|
|
1372
|
-
};
|
|
1373
|
-
|
|
1374
|
-
/**
|
|
1375
|
-
* Detects if the current URL is an OAuth redirect from a social provider.
|
|
1376
|
-
*
|
|
1377
|
-
* This function examines the URL parameters to determine if it contains
|
|
1378
|
-
* OAuth callback data from a social authentication flow.
|
|
1379
|
-
*
|
|
1380
|
-
* @param params.url - The URL to check for OAuth redirect parameters.
|
|
1381
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1382
|
-
* @returns A promise that resolves to true if the URL is an OAuth redirect, false otherwise.
|
|
1383
|
-
*/ const detectOAuthRedirect = async ({ url }, client = getDefaultClient())=>{
|
|
1384
|
-
const core = getCore(client);
|
|
1385
|
-
const dynamicOauthState = url.searchParams.get('dynamicOauthState');
|
|
1386
|
-
const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
|
|
1387
|
-
if (!dynamicOauthState || !dynamicOauthCode) {
|
|
1388
|
-
return false;
|
|
1389
|
-
}
|
|
1390
|
-
// Wait for SDK to load
|
|
1391
|
-
await core.initTrack.waitForAll();
|
|
1392
|
-
const storedSocialRedirectState = await core.storage.getItem(redirectStateStorageKeySchema);
|
|
1393
|
-
if (!storedSocialRedirectState || storedSocialRedirectState.state !== dynamicOauthState) {
|
|
1394
|
-
return false;
|
|
1395
|
-
}
|
|
1396
|
-
return true;
|
|
1397
|
-
};
|
|
1398
|
-
|
|
1399
1326
|
const digestSHA256 = (str)=>{
|
|
1400
1327
|
const encoder = new TextEncoder();
|
|
1401
1328
|
const data = encoder.encode(str);
|
|
@@ -1496,11 +1423,13 @@ const providersRequiringPkce = [
|
|
|
1496
1423
|
* This function redirects the user to the specified social provider's
|
|
1497
1424
|
* authorization page to complete OAuth authentication flow.
|
|
1498
1425
|
* After the oauth flow is complete, the user will be redirected back to your app.
|
|
1426
|
+
* You can then call `detectOAuthRedirect` to check if the user got redirected back to your app due to the oauth flow,
|
|
1427
|
+
* and finally call `completeSocialAuthentication` to complete the social authentication flow.
|
|
1499
1428
|
*
|
|
1500
1429
|
* @param params.provider - The social provider to authenticate with (e.g., 'google', 'github').
|
|
1501
1430
|
* @param params.redirectUrl - The URL to redirect back to after authentication.
|
|
1502
1431
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1503
|
-
*/ const
|
|
1432
|
+
*/ const authenticateWithSocial = async ({ provider, redirectUrl }, client = getDefaultClient())=>{
|
|
1504
1433
|
const core = getCore(client);
|
|
1505
1434
|
const apiClient = createApiClient({}, client);
|
|
1506
1435
|
await core.initTrack.waitForAll();
|
|
@@ -1522,6 +1451,94 @@ const providersRequiringPkce = [
|
|
|
1522
1451
|
await core.navigate(url.toString());
|
|
1523
1452
|
};
|
|
1524
1453
|
|
|
1454
|
+
/**
|
|
1455
|
+
* Completes the social authentication flow after OAuth redirect.
|
|
1456
|
+
*
|
|
1457
|
+
* This function processes the OAuth callback URL with authorization codes
|
|
1458
|
+
* and completes the user authentication with the social provider.
|
|
1459
|
+
*
|
|
1460
|
+
* @param params.url - The callback URL containing OAuth response parameters.
|
|
1461
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1462
|
+
* @returns A promise that resolves to the authenticated user or null.
|
|
1463
|
+
* @throws MissingSocialUrlParamError If required OAuth parameters are missing.
|
|
1464
|
+
* @throws InvalidRedirectStorageStateError If the stored state doesn't match.
|
|
1465
|
+
*/ const completeSocialAuthentication = async ({ url }, client = getDefaultClient())=>{
|
|
1466
|
+
const core = getCore(client);
|
|
1467
|
+
const apiClient = createApiClient({}, client);
|
|
1468
|
+
await core.initTrack.waitForAll();
|
|
1469
|
+
const dynamicOauthState = url.searchParams.get('dynamicOauthState');
|
|
1470
|
+
const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
|
|
1471
|
+
if (!dynamicOauthState) {
|
|
1472
|
+
throw new MissingSocialUrlParamError('dynamicOauthState');
|
|
1473
|
+
}
|
|
1474
|
+
if (!dynamicOauthCode) {
|
|
1475
|
+
throw new MissingSocialUrlParamError('dynamicOauthCode');
|
|
1476
|
+
}
|
|
1477
|
+
const storedSocialRedirectState = await core.storage.getItem(redirectStateStorageKeySchema);
|
|
1478
|
+
if (!storedSocialRedirectState) {
|
|
1479
|
+
throw new MissingRedirectStorageStateError();
|
|
1480
|
+
}
|
|
1481
|
+
if (storedSocialRedirectState.state !== dynamicOauthState) {
|
|
1482
|
+
throw new InvalidRedirectStorageStateError();
|
|
1483
|
+
}
|
|
1484
|
+
const { provider, codeVerifier } = storedSocialRedirectState;
|
|
1485
|
+
await core.storage.removeItem(redirectStateStorageKeySchema);
|
|
1486
|
+
let response;
|
|
1487
|
+
// if user is alreadyauthenticated, we're verifying the social auth to link it to the user
|
|
1488
|
+
if (client.user) {
|
|
1489
|
+
response = await apiClient.oauthVerify({
|
|
1490
|
+
environmentId: core.environmentId,
|
|
1491
|
+
oauthRequest: {
|
|
1492
|
+
code: dynamicOauthCode,
|
|
1493
|
+
codeVerifier,
|
|
1494
|
+
state: dynamicOauthState
|
|
1495
|
+
},
|
|
1496
|
+
providerType: provider
|
|
1497
|
+
});
|
|
1498
|
+
} else {
|
|
1499
|
+
// if user is not authenticated, we're signing in with the social auth
|
|
1500
|
+
response = await apiClient.oauthSignIn({
|
|
1501
|
+
environmentId: core.environmentId,
|
|
1502
|
+
oauthRequest: {
|
|
1503
|
+
captchaToken: consumeCaptchaToken(client),
|
|
1504
|
+
code: dynamicOauthCode,
|
|
1505
|
+
codeVerifier,
|
|
1506
|
+
state: dynamicOauthState
|
|
1507
|
+
},
|
|
1508
|
+
providerType: provider
|
|
1509
|
+
});
|
|
1510
|
+
}
|
|
1511
|
+
updateAuthFromVerifyResponse({
|
|
1512
|
+
response
|
|
1513
|
+
}, client);
|
|
1514
|
+
return response.user;
|
|
1515
|
+
};
|
|
1516
|
+
|
|
1517
|
+
/**
|
|
1518
|
+
* Detects if the current URL is an OAuth redirect from a social provider.
|
|
1519
|
+
*
|
|
1520
|
+
* This function examines the URL parameters to determine if it contains
|
|
1521
|
+
* OAuth callback data from a social authentication flow.
|
|
1522
|
+
*
|
|
1523
|
+
* @param params.url - The URL to check for OAuth redirect parameters.
|
|
1524
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1525
|
+
* @returns A promise that resolves to true if the URL is an OAuth redirect, false otherwise.
|
|
1526
|
+
*/ const detectOAuthRedirect = async ({ url }, client = getDefaultClient())=>{
|
|
1527
|
+
const core = getCore(client);
|
|
1528
|
+
const dynamicOauthState = url.searchParams.get('dynamicOauthState');
|
|
1529
|
+
const dynamicOauthCode = url.searchParams.get('dynamicOauthCode');
|
|
1530
|
+
if (!dynamicOauthState || !dynamicOauthCode) {
|
|
1531
|
+
return false;
|
|
1532
|
+
}
|
|
1533
|
+
// Wait for SDK to load
|
|
1534
|
+
await core.initTrack.waitForAll();
|
|
1535
|
+
const storedSocialRedirectState = await core.storage.getItem(redirectStateStorageKeySchema);
|
|
1536
|
+
if (!storedSocialRedirectState || storedSocialRedirectState.state !== dynamicOauthState) {
|
|
1537
|
+
return false;
|
|
1538
|
+
}
|
|
1539
|
+
return true;
|
|
1540
|
+
};
|
|
1541
|
+
|
|
1525
1542
|
/**
|
|
1526
1543
|
* Retrieves token balances across multiple blockchain networks.
|
|
1527
1544
|
*
|
|
@@ -3644,4 +3661,4 @@ const isIPhone = ()=>typeof window === 'undefined' || typeof navigator === 'unde
|
|
|
3644
3661
|
|
|
3645
3662
|
assertPackageVersion(name, version);
|
|
3646
3663
|
|
|
3647
|
-
export { BaseError, ClientAlreadyInitializedError, InvalidRedirectStorageStateError, MissingRedirectStorageStateError, MissingSocialUrlParamError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, UnavailableInServerSideError, UnrecognizedNetworkError, UserNotAuthenticatedError, UserRejectedError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletProviderMethodUnavailableError, acknowledgeRecoveryCodes, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice,
|
|
3664
|
+
export { BaseError, ClientAlreadyInitializedError, InvalidRedirectStorageStateError, MissingRedirectStorageStateError, MissingSocialUrlParamError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, UnavailableInServerSideError, UnrecognizedNetworkError, UserNotAuthenticatedError, UserRejectedError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletProviderMethodUnavailableError, acknowledgeRecoveryCodes, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, authenticateWithSocial, completeSocialAuthentication, connectAndVerifyWithWalletProvider, connectWithWalletProvider, createDynamicClient, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, detectOAuthRedirect, fetchProjectSettings, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalance, getBalanceForAddress, getConnectedAddresses, getDefaultClient, getMfaDevices, getMfaRecoveryCodes, getMultichainBalances, getNetworksData, getOwnerWalletAccountForSmartWalletAccount, getPasskeys, getPrimaryWalletAccount, getWalletAccountAddressByType, getWalletAccountFromAddress, getWalletAccounts, getWalletProviderDataByKey, initializeClient, isMobile, isPendingRecoveryCodesAcknowledgment, isProgrammaticNetworkSwitchAvailable, isSignedIn, isUserMissingMfaAuth, logout, offWalletProviderEvent, onWalletProviderEvent, proveWalletAccountOwnership, refreshUser, registerPasskey, registerTotpMfaDevice, removeWalletAccount, selectPrimaryWalletAccount, sendEmailOTP, sendSmsOTP, setDefaultMfaDevice, signInWithExternalJwt, signInWithPasskey, signMessage, switchActiveNetwork, updateUser, verifyOTP, verifyWalletAccount, waitForClientInitialized };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs-sdk/client",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.25",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./index.cjs.js",
|
|
6
6
|
"module": "./index.esm.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@dynamic-labs-sdk/assert-package-version": "0.1.0-alpha.
|
|
32
|
+
"@dynamic-labs-sdk/assert-package-version": "0.1.0-alpha.25",
|
|
33
33
|
"@dynamic-labs/sdk-api-core": "0.0.813",
|
|
34
34
|
"@dynamic-labs-wallet/browser-wallet-client": "0.0.187",
|
|
35
35
|
"@simplewebauthn/browser": "13.1.0",
|
package/src/exports/index.d.ts
CHANGED
|
@@ -49,9 +49,9 @@ export { deletePasskey } from '../modules/auth/passkeys/deletePasskey';
|
|
|
49
49
|
export { getPasskeys } from '../modules/auth/passkeys/getPasskeys';
|
|
50
50
|
export { registerPasskey } from '../modules/auth/passkeys/registerPasskey';
|
|
51
51
|
export { signInWithPasskey } from '../modules/auth/passkeys/signInWithPasskey';
|
|
52
|
-
export {
|
|
52
|
+
export { authenticateWithSocial } from '../modules/auth/social/oauth/authenticateWithSocial';
|
|
53
|
+
export { completeSocialAuthentication } from '../modules/auth/social/oauth/completeSocialAuthentication';
|
|
53
54
|
export { detectOAuthRedirect } from '../modules/auth/social/oauth/detectOAuthRedirect';
|
|
54
|
-
export { signInWithSocialRedirect } from '../modules/auth/social/oauth/signInWithSocialRedirect';
|
|
55
55
|
export type { SocialProvider } from '../modules/auth/social/social.types';
|
|
56
56
|
export { getMultichainBalances, type GetMultichainBalancesParams, } from '../modules/balances/getMultichainBalances';
|
|
57
57
|
export { isCaptchaRequired } from '../modules/captcha/isCaptchaRequired';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/client/src/exports/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/client/src/exports/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SocialProvider } from '../../social.types';
|
|
2
|
-
type
|
|
2
|
+
type AuthenticateWithSocialParams = {
|
|
3
3
|
provider: SocialProvider;
|
|
4
4
|
redirectUrl: string;
|
|
5
5
|
};
|
|
@@ -9,11 +9,13 @@ type SignInWithSocialRedirectParams = {
|
|
|
9
9
|
* This function redirects the user to the specified social provider's
|
|
10
10
|
* authorization page to complete OAuth authentication flow.
|
|
11
11
|
* After the oauth flow is complete, the user will be redirected back to your app.
|
|
12
|
+
* You can then call `detectOAuthRedirect` to check if the user got redirected back to your app due to the oauth flow,
|
|
13
|
+
* and finally call `completeSocialAuthentication` to complete the social authentication flow.
|
|
12
14
|
*
|
|
13
15
|
* @param params.provider - The social provider to authenticate with (e.g., 'google', 'github').
|
|
14
16
|
* @param params.redirectUrl - The URL to redirect back to after authentication.
|
|
15
17
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
16
18
|
*/
|
|
17
|
-
export declare const
|
|
19
|
+
export declare const authenticateWithSocial: ({ provider, redirectUrl }: AuthenticateWithSocialParams, client?: import("../../../../../exports").DynamicClient) => Promise<void>;
|
|
18
20
|
export {};
|
|
19
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=authenticateWithSocial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticateWithSocial.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/authenticateWithSocial/authenticateWithSocial.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,KAAK,4BAA4B,GAAG;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,8BACN,4BAA4B,2EA4BxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addOAuthUrlParams.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,4BAA4B,CAAC;AAOzE,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,aAAc,QAAQ,WAAW,GAAG,KAAG,GA+BpE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/buildOAuthUrl.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildOAuthUrl.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/buildOAuthUrl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAUvE,KAAK,QAAQ,GAAG;IACd,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IAEd,4CAA4C;IAC5C,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,aAAa,SAElB,WAAW,YAGP,YAAY,KACrB,OAAO,CAAC,QAAQ,CAwClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOAuthBaseUrl.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,4BAA4B,CAAC;AAIzE,wEAAwE;AACxE,eAAO,MAAM,eAAe,aAAc,QAAQ,KAAG,GA4BpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/authenticateWithSocial/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { User } from '../../../../user/user.types';
|
|
2
|
-
type
|
|
2
|
+
type CompleteSocialAuthenticationParams = {
|
|
3
3
|
url: URL;
|
|
4
4
|
};
|
|
5
5
|
/**
|
|
@@ -14,6 +14,6 @@ type CompleteSocialRedirectSignInParams = {
|
|
|
14
14
|
* @throws MissingSocialUrlParamError If required OAuth parameters are missing.
|
|
15
15
|
* @throws InvalidRedirectStorageStateError If the stored state doesn't match.
|
|
16
16
|
*/
|
|
17
|
-
export declare const
|
|
17
|
+
export declare const completeSocialAuthentication: ({ url }: CompleteSocialAuthenticationParams, client?: import("../../../../../exports").DynamicClient) => Promise<User | null>;
|
|
18
18
|
export {};
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=completeSocialAuthentication.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completeSocialAuthentication.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/completeSocialAuthentication/completeSocialAuthentication.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAIxD,KAAK,kCAAkC,GAAG;IACxC,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,YAC9B,kCAAkC,8DAE1C,OAAO,CAAC,IAAI,GAAG,IAAI,CA+DrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/completeSocialAuthentication/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"completeSocialRedirectSignIn.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/completeSocialRedirectSignIn/completeSocialRedirectSignIn.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAIxD,KAAK,kCAAkC,GAAG;IACxC,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,YAC9B,kCAAkC,8DAE1C,OAAO,CAAC,IAAI,GAAG,IAAI,CA+CrB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addOAuthUrlParams.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,4BAA4B,CAAC;AAOzE,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,aAAc,QAAQ,WAAW,GAAG,KAAG,GA+BpE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/buildOAuthUrl.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildOAuthUrl.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/buildOAuthUrl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAUvE,KAAK,QAAQ,GAAG;IACd,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IAEd,4CAA4C;IAC5C,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,aAAa,SAElB,WAAW,YAGP,YAAY,KACrB,OAAO,CAAC,QAAQ,CAwClB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getOAuthBaseUrl.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,4BAA4B,CAAC;AAIzE,wEAAwE;AACxE,eAAO,MAAM,eAAe,aAAc,QAAQ,KAAG,GA4BpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
package/src/modules/auth/social/oauth/signInWithSocialRedirect/signInWithSocialRedirect.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signInWithSocialRedirect.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/client/src/modules/auth/social/oauth/signInWithSocialRedirect/signInWithSocialRedirect.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,KAAK,8BAA8B,GAAG;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,8BACR,8BAA8B,2EA4B1D,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|