@metamask-previews/seedless-onboarding-controller 5.0.0-preview-3d9bbf60 → 5.0.0-preview-e98a6769
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 +13 -0
- package/dist/SeedlessOnboardingController.cjs +61 -43
- package/dist/SeedlessOnboardingController.cjs.map +1 -1
- package/dist/SeedlessOnboardingController.d.cts +8 -2
- package/dist/SeedlessOnboardingController.d.cts.map +1 -1
- package/dist/SeedlessOnboardingController.d.mts +8 -2
- package/dist/SeedlessOnboardingController.d.mts.map +1 -1
- package/dist/SeedlessOnboardingController.mjs +61 -43
- package/dist/SeedlessOnboardingController.mjs.map +1 -1
- package/dist/constants.cjs +1 -0
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +2 -1
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +2 -1
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +1 -0
- package/dist/constants.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +4 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +4 -0
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeedlessOnboardingController.d.mts","sourceRoot":"","sources":["../src/SeedlessOnboardingController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAsB,kCAAkC;AAC/E,OAAO,KAAK,EAGV,oBAAoB,EACrB,sCAAsC;AACvC,OAAO,EACL,iBAAiB,EAGlB,sCAAsC;AAiBvC,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAoB;AAClD,OAAO,EACL,cAAc,EAEd,UAAU,EAGX,wBAAoB;AAGrB,OAAO,EAAE,cAAc,EAAE,6BAAyB;AAClD,OAAO,KAAK,EAEV,qCAAqC,EACrC,mCAAmC,EACnC,iCAAiC,EAEjC,qBAAqB,EAQtB,oBAAgB;AAUjB;;;;;GAKG;AACH,wBAAgB,uDAAuD,CACrE,SAAS,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,GACrD,iCAAiC,CAenC;AA4ID,qBAAa,4BAA4B,CAAC,aAAa,CAAE,SAAQ,cAAc,CAC7E,OAAO,cAAc,EACrB,iCAAiC,EACjC,qCAAqC,CACtC;;IAOC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IA2BxC;;;;;;;;;;;;;OAaG;gBACS,EACV,SAAS,EACT,KAAK,EACL,SAAS,EACT,eAAe,EACf,OAAiC,EACjC,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,wBAAyD,GAC1D,EAAE,mCAAmC,CAAC,aAAa,CAAC;IAuB/C,wBAAwB,IAAI,OAAO,CAAC;QACxC,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IAyBF;;;;;;;;;;;;;;;;;OAiBG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,cAAc,CAAC;QAC/B,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,
|
|
1
|
+
{"version":3,"file":"SeedlessOnboardingController.d.mts","sourceRoot":"","sources":["../src/SeedlessOnboardingController.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _SeedlessOnboardingController_instances, _SeedlessOnboardingController_vaultEncryptor, _SeedlessOnboardingController_controllerOperationMutex, _SeedlessOnboardingController_vaultOperationMutex, _SeedlessOnboardingController_refreshJWTToken, _SeedlessOnboardingController_revokeRefreshToken, _SeedlessOnboardingController_renewRefreshToken, _SeedlessOnboardingController_passwordOutdatedCacheTTL, _SeedlessOnboardingController_isUnlocked, _SeedlessOnboardingController_cachedDecryptedVaultData, _SeedlessOnboardingController_submitGlobalPassword, _SeedlessOnboardingController_getAccessToken, _SeedlessOnboardingController_setUnlocked, _SeedlessOnboardingController_persistOprfKey, _SeedlessOnboardingController_persistAuthPubKey, _SeedlessOnboardingController_storeKeyringEncryptionKey, _SeedlessOnboardingController_loadKeyringEncryptionKey, _SeedlessOnboardingController_loadSeedlessEncryptionKey, _SeedlessOnboardingController_recoverAuthPubKey, _SeedlessOnboardingController_recoverEncKey, _SeedlessOnboardingController_fetchAllSecretDataFromMetadataStore, _SeedlessOnboardingController_changeEncryptionKey, _SeedlessOnboardingController_encryptAndStoreSecretData, _SeedlessOnboardingController_unlockVaultAndGetVaultData, _SeedlessOnboardingController_decryptAndParseVaultData, _SeedlessOnboardingController_withPersistedSecretMetadataBackupsState, _SeedlessOnboardingController_filterDupesAndUpdateSocialBackupsMetadata, _SeedlessOnboardingController_createNewVaultWithAuthData, _SeedlessOnboardingController_updateVault, _SeedlessOnboardingController_withControllerLock, _SeedlessOnboardingController_withVaultLock, _SeedlessOnboardingController_parseVaultData, _SeedlessOnboardingController_assertIsUnlocked, _SeedlessOnboardingController_assertIsAuthenticatedUser, _SeedlessOnboardingController_assertIsSRPBackedUpUser, _SeedlessOnboardingController_assertPasswordInSync, _SeedlessOnboardingController_resetPasswordOutdatedCache, _SeedlessOnboardingController_addRefreshTokenToRevokeList,
|
|
12
|
+
var _SeedlessOnboardingController_instances, _SeedlessOnboardingController_vaultEncryptor, _SeedlessOnboardingController_controllerOperationMutex, _SeedlessOnboardingController_vaultOperationMutex, _SeedlessOnboardingController_refreshJWTToken, _SeedlessOnboardingController_revokeRefreshToken, _SeedlessOnboardingController_renewRefreshToken, _SeedlessOnboardingController_passwordOutdatedCacheTTL, _SeedlessOnboardingController_isUnlocked, _SeedlessOnboardingController_cachedDecryptedVaultData, _SeedlessOnboardingController_submitGlobalPassword, _SeedlessOnboardingController_getAccessToken, _SeedlessOnboardingController_setUnlocked, _SeedlessOnboardingController_persistOprfKey, _SeedlessOnboardingController_persistAuthPubKey, _SeedlessOnboardingController_storeKeyringEncryptionKey, _SeedlessOnboardingController_loadKeyringEncryptionKey, _SeedlessOnboardingController_loadSeedlessEncryptionKey, _SeedlessOnboardingController_recoverAuthPubKey, _SeedlessOnboardingController_recoverEncKey, _SeedlessOnboardingController_fetchAllSecretDataFromMetadataStore, _SeedlessOnboardingController_changeEncryptionKey, _SeedlessOnboardingController_encryptAndStoreSecretData, _SeedlessOnboardingController_unlockVaultAndGetVaultData, _SeedlessOnboardingController_decryptAndParseVaultData, _SeedlessOnboardingController_withPersistedSecretMetadataBackupsState, _SeedlessOnboardingController_filterDupesAndUpdateSocialBackupsMetadata, _SeedlessOnboardingController_createNewVaultWithAuthData, _SeedlessOnboardingController_updateVault, _SeedlessOnboardingController_withControllerLock, _SeedlessOnboardingController_withVaultLock, _SeedlessOnboardingController_parseVaultData, _SeedlessOnboardingController_assertIsUnlocked, _SeedlessOnboardingController_assertIsAuthenticatedUser, _SeedlessOnboardingController_assertIsSRPBackedUpUser, _SeedlessOnboardingController_assertPasswordInSync, _SeedlessOnboardingController_resetPasswordOutdatedCache, _SeedlessOnboardingController_addRefreshTokenToRevokeList, _SeedlessOnboardingController_isAuthTokenError, _SeedlessOnboardingController_isMaxKeyChainLengthError, _SeedlessOnboardingController_executeWithTokenRefresh;
|
|
13
13
|
import { keccak256AndHexify } from "@metamask/auth-network-utils";
|
|
14
14
|
import { BaseController } from "@metamask/base-controller";
|
|
15
15
|
import { ToprfSecureBackup, TOPRFErrorCode, TOPRFError } from "@metamask/toprf-secure-backup";
|
|
@@ -293,14 +293,10 @@ export class SeedlessOnboardingController extends BaseController {
|
|
|
293
293
|
state.authConnection = authConnection;
|
|
294
294
|
state.socialLoginEmail = socialLoginEmail;
|
|
295
295
|
state.metadataAccessToken = metadataAccessToken;
|
|
296
|
+
state.refreshToken = refreshToken;
|
|
297
|
+
// Temporarily store revoke token & access token in state for later vault creation
|
|
298
|
+
state.revokeToken = revokeToken;
|
|
296
299
|
state.accessToken = accessToken;
|
|
297
|
-
if (refreshToken) {
|
|
298
|
-
state.refreshToken = refreshToken;
|
|
299
|
-
}
|
|
300
|
-
if (revokeToken) {
|
|
301
|
-
// Temporarily store revoke token in state for later vault creation
|
|
302
|
-
state.revokeToken = revokeToken;
|
|
303
|
-
}
|
|
304
300
|
// we will check if the controller state is properly set with the authenticated user info
|
|
305
301
|
// before setting the isSeedlessOnboardingUserAuthenticated to true
|
|
306
302
|
assertIsSeedlessOnboardingUserAuthenticated(state);
|
|
@@ -402,26 +398,26 @@ export class SeedlessOnboardingController extends BaseController {
|
|
|
402
398
|
*/
|
|
403
399
|
async fetchAllSecretData(password) {
|
|
404
400
|
return await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_withControllerLock).call(this, async () => {
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
401
|
+
return await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_executeWithTokenRefresh).call(this, async () => {
|
|
402
|
+
// assert that the user is authenticated before fetching the secret data
|
|
403
|
+
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_assertIsAuthenticatedUser).call(this, this.state);
|
|
404
|
+
let encKey;
|
|
405
|
+
let pwEncKey;
|
|
406
|
+
let authKeyPair;
|
|
407
|
+
if (password) {
|
|
408
|
+
const recoverEncKeyResult = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverEncKey).call(this, password);
|
|
409
|
+
encKey = recoverEncKeyResult.encKey;
|
|
410
|
+
pwEncKey = recoverEncKeyResult.pwEncKey;
|
|
411
|
+
authKeyPair = recoverEncKeyResult.authKeyPair;
|
|
412
|
+
}
|
|
413
|
+
else {
|
|
414
|
+
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_assertIsUnlocked).call(this);
|
|
415
|
+
// verify the password and unlock the vault
|
|
416
|
+
const keysFromVault = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_unlockVaultAndGetVaultData).call(this);
|
|
417
|
+
encKey = keysFromVault.toprfEncryptionKey;
|
|
418
|
+
pwEncKey = keysFromVault.toprfPwEncryptionKey;
|
|
419
|
+
authKeyPair = keysFromVault.toprfAuthKeyPair;
|
|
420
|
+
}
|
|
425
421
|
const secrets = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_fetchAllSecretDataFromMetadataStore).call(this, encKey, authKeyPair);
|
|
426
422
|
if (password) {
|
|
427
423
|
// if password is provided, we need to create a new vault with the auth data. (supposedly the user is trying to rehydrate the wallet)
|
|
@@ -433,8 +429,7 @@ export class SeedlessOnboardingController extends BaseController {
|
|
|
433
429
|
});
|
|
434
430
|
}
|
|
435
431
|
return secrets;
|
|
436
|
-
};
|
|
437
|
-
return await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_executeWithTokenRefresh).call(this, performFetch, 'fetchAllSecretData');
|
|
432
|
+
}, 'fetchAllSecretData');
|
|
438
433
|
});
|
|
439
434
|
}
|
|
440
435
|
/**
|
|
@@ -672,6 +667,21 @@ export class SeedlessOnboardingController extends BaseController {
|
|
|
672
667
|
? await doCheckIsPasswordExpired()
|
|
673
668
|
: await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_withControllerLock).call(this, doCheckIsPasswordExpired), 'checkIsPasswordOutdated');
|
|
674
669
|
}
|
|
670
|
+
/**
|
|
671
|
+
* Check if the user is authenticated with the seedless onboarding flow by checking the token values in the state.
|
|
672
|
+
*
|
|
673
|
+
* @returns True if the user is authenticated, false otherwise.
|
|
674
|
+
*/
|
|
675
|
+
async checkIsSeedlessOnboardingUserAuthenticated() {
|
|
676
|
+
try {
|
|
677
|
+
assertIsSeedlessOnboardingUserAuthenticated(this.state);
|
|
678
|
+
// if accessToken is missing, the user needs to authenticate again
|
|
679
|
+
return Boolean(this.state.accessToken) && Boolean(this.state.revokeToken);
|
|
680
|
+
}
|
|
681
|
+
catch {
|
|
682
|
+
return false;
|
|
683
|
+
}
|
|
684
|
+
}
|
|
675
685
|
/**
|
|
676
686
|
* Clears the current state of the SeedlessOnboardingController.
|
|
677
687
|
*/
|
|
@@ -711,12 +721,15 @@ export class SeedlessOnboardingController extends BaseController {
|
|
|
711
721
|
*/
|
|
712
722
|
async refreshAuthTokens() {
|
|
713
723
|
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_assertIsAuthenticatedUser).call(this, this.state);
|
|
714
|
-
const { refreshToken } = this.state;
|
|
724
|
+
const { refreshToken, revokeToken } = this.state;
|
|
725
|
+
const res = await __classPrivateFieldGet(this, _SeedlessOnboardingController_refreshJWTToken, "f").call(this, {
|
|
726
|
+
connection: this.state.authConnection,
|
|
727
|
+
refreshToken,
|
|
728
|
+
}).catch((error) => {
|
|
729
|
+
log('Error refreshing JWT tokens', error);
|
|
730
|
+
throw new Error(SeedlessOnboardingControllerErrorMessage.FailedToRefreshJWTTokens);
|
|
731
|
+
});
|
|
715
732
|
try {
|
|
716
|
-
const res = await __classPrivateFieldGet(this, _SeedlessOnboardingController_refreshJWTToken, "f").call(this, {
|
|
717
|
-
connection: this.state.authConnection,
|
|
718
|
-
refreshToken,
|
|
719
|
-
});
|
|
720
733
|
const { idTokens, accessToken, metadataAccessToken } = res;
|
|
721
734
|
// re-authenticate with the new id tokens to set new node auth tokens
|
|
722
735
|
await this.authenticate({
|
|
@@ -727,6 +740,8 @@ export class SeedlessOnboardingController extends BaseController {
|
|
|
727
740
|
authConnectionId: this.state.authConnectionId,
|
|
728
741
|
groupedAuthConnectionId: this.state.groupedAuthConnectionId,
|
|
729
742
|
userId: this.state.userId,
|
|
743
|
+
refreshToken,
|
|
744
|
+
revokeToken,
|
|
730
745
|
skipLock: true,
|
|
731
746
|
});
|
|
732
747
|
}
|
|
@@ -907,7 +922,7 @@ async function _SeedlessOnboardingController_submitGlobalPassword({ targetAuthPu
|
|
|
907
922
|
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_setUnlocked).call(this);
|
|
908
923
|
}
|
|
909
924
|
catch (error) {
|
|
910
|
-
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m",
|
|
925
|
+
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_isAuthTokenError).call(this, error)) {
|
|
911
926
|
throw error;
|
|
912
927
|
}
|
|
913
928
|
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_isMaxKeyChainLengthError).call(this, error)) {
|
|
@@ -963,7 +978,7 @@ async function _SeedlessOnboardingController_persistOprfKey(oprfKey, authPubKey)
|
|
|
963
978
|
});
|
|
964
979
|
}
|
|
965
980
|
catch (error) {
|
|
966
|
-
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m",
|
|
981
|
+
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_isAuthTokenError).call(this, error)) {
|
|
967
982
|
throw error;
|
|
968
983
|
}
|
|
969
984
|
log('Error persisting local encryption key', error);
|
|
@@ -1041,7 +1056,7 @@ async function _SeedlessOnboardingController_recoverEncKey(password) {
|
|
|
1041
1056
|
}
|
|
1042
1057
|
catch (error) {
|
|
1043
1058
|
// throw token expired error for token refresh handler
|
|
1044
|
-
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m",
|
|
1059
|
+
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_isAuthTokenError).call(this, error)) {
|
|
1045
1060
|
throw error;
|
|
1046
1061
|
}
|
|
1047
1062
|
throw RecoveryError.getInstance(error);
|
|
@@ -1057,7 +1072,7 @@ async function _SeedlessOnboardingController_recoverEncKey(password) {
|
|
|
1057
1072
|
}
|
|
1058
1073
|
catch (error) {
|
|
1059
1074
|
log('Error fetching secret data', error);
|
|
1060
|
-
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m",
|
|
1075
|
+
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_isAuthTokenError).call(this, error)) {
|
|
1061
1076
|
throw error;
|
|
1062
1077
|
}
|
|
1063
1078
|
throw new Error(SeedlessOnboardingControllerErrorMessage.FailedToFetchSecretMetadata);
|
|
@@ -1161,7 +1176,7 @@ async function _SeedlessOnboardingController_encryptAndStoreSecretData(params) {
|
|
|
1161
1176
|
});
|
|
1162
1177
|
}
|
|
1163
1178
|
catch (error) {
|
|
1164
|
-
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m",
|
|
1179
|
+
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_isAuthTokenError).call(this, error)) {
|
|
1165
1180
|
throw error;
|
|
1166
1181
|
}
|
|
1167
1182
|
log('Error encrypting and storing secret data backup', error);
|
|
@@ -1470,10 +1485,13 @@ async function _SeedlessOnboardingController_assertPasswordInSync(options) {
|
|
|
1470
1485
|
{ refreshToken, revokeToken },
|
|
1471
1486
|
];
|
|
1472
1487
|
});
|
|
1473
|
-
},
|
|
1488
|
+
}, _SeedlessOnboardingController_isAuthTokenError = function _SeedlessOnboardingController_isAuthTokenError(error) {
|
|
1474
1489
|
if (error instanceof TOPRFError) {
|
|
1490
|
+
return (
|
|
1475
1491
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1476
|
-
|
|
1492
|
+
error.code === TOPRFErrorCode.AuthTokenExpired ||
|
|
1493
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1494
|
+
error.code === TOPRFErrorCode.InvalidAuthToken);
|
|
1477
1495
|
}
|
|
1478
1496
|
return false;
|
|
1479
1497
|
}, _SeedlessOnboardingController_isMaxKeyChainLengthError = function _SeedlessOnboardingController_isMaxKeyChainLengthError(error) {
|
|
@@ -1516,7 +1534,7 @@ async function _SeedlessOnboardingController_executeWithTokenRefresh(operation,
|
|
|
1516
1534
|
}
|
|
1517
1535
|
catch (error) {
|
|
1518
1536
|
// Check if this is a token expiration error
|
|
1519
|
-
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m",
|
|
1537
|
+
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_isAuthTokenError).call(this, error)) {
|
|
1520
1538
|
log(`Token expired during ${operationName}, attempting to refresh tokens`, error);
|
|
1521
1539
|
try {
|
|
1522
1540
|
// Refresh the tokens
|