@metamask/profile-sync-controller 0.1.0 → 0.1.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/CHANGELOG.md +12 -1
- package/dist/{chunk-DHHBHLVN.mjs → chunk-2XGRQBXI.mjs} +4 -4
- package/dist/{chunk-PRDECQM6.mjs → chunk-32HAX3MW.mjs} +7 -4
- package/dist/chunk-32HAX3MW.mjs.map +1 -0
- package/dist/{chunk-K6G7X6PX.js → chunk-5SXXO4MV.js} +9 -9
- package/dist/{chunk-BFE6TB7Y.mjs → chunk-5TOWF6UW.mjs} +2 -2
- package/dist/{chunk-QHL6SQTC.mjs → chunk-AARMY5TW.mjs} +10 -36
- package/dist/chunk-AARMY5TW.mjs.map +1 -0
- package/dist/{chunk-JTDFOATG.js → chunk-AK7OTIWA.js} +3 -3
- package/dist/{chunk-772MKTIO.mjs → chunk-AUFUOKJW.mjs} +2 -2
- package/dist/{chunk-6TK7544L.js → chunk-AVOOINGJ.js} +27 -27
- package/dist/{chunk-UEZI2POO.mjs → chunk-AXWK4Y23.mjs} +4 -4
- package/dist/{chunk-VTM5T7Y4.mjs → chunk-B5DBQDB3.mjs} +2 -2
- package/dist/{chunk-7FCK4BY3.js → chunk-B6CSNLGE.js} +3 -3
- package/dist/{chunk-XUPRRLBI.js → chunk-BOET676P.js} +8 -8
- package/dist/{chunk-YWA77VMP.mjs → chunk-CAIIVJAO.mjs} +1 -1
- package/dist/chunk-CAIIVJAO.mjs.map +1 -0
- package/dist/{chunk-2MVOZPBN.js → chunk-ELHJSRS2.js} +4 -4
- package/dist/{chunk-3FJQHCCQ.mjs → chunk-FCT2LIGH.mjs} +5 -5
- package/dist/{chunk-GLS4QZF6.mjs → chunk-FQ5SDMRE.mjs} +1 -1
- package/dist/chunk-FQ5SDMRE.mjs.map +1 -0
- package/dist/chunk-H4TDS65R.js +81 -0
- package/dist/chunk-H4TDS65R.js.map +1 -0
- package/dist/chunk-IGY2S5BC.js +36 -0
- package/dist/{chunk-UWRKMJBI.mjs → chunk-JLDFMYAH.mjs} +3 -3
- package/dist/{chunk-QE2F5AZL.mjs → chunk-K5UKU454.mjs} +2 -2
- package/dist/{chunk-W7JFFMEZ.mjs → chunk-KBCXN3YW.mjs} +2 -2
- package/dist/{chunk-JAGWB4JI.mjs → chunk-LSVRA3X2.mjs} +13 -34
- package/dist/chunk-LSVRA3X2.mjs.map +1 -0
- package/dist/{chunk-DLXLU44Z.js → chunk-NLHLVVOO.js} +21 -21
- package/dist/{chunk-GLDUXN2T.js → chunk-P4DUDLMY.js} +24 -24
- package/dist/{chunk-LUKNP4HM.js → chunk-P52TG263.js} +19 -19
- package/dist/{chunk-T77FC4PB.js → chunk-PBRUOBEQ.js} +1 -1
- package/dist/chunk-PBRUOBEQ.js.map +1 -0
- package/dist/chunk-PTR4DAX6.js +79 -0
- package/dist/{chunk-LHDVZNW5.js → chunk-Q5WIUNX5.js} +37 -37
- package/dist/{chunk-BVM4HBM4.js → chunk-RX5R6BUI.js} +13 -39
- package/dist/chunk-RX5R6BUI.js.map +1 -0
- package/dist/{chunk-4OMJ7A6A.js → chunk-SMKTWM6I.js} +1 -1
- package/dist/chunk-SMKTWM6I.js.map +1 -0
- package/dist/{chunk-JWTNHCVG.js → chunk-T3FNDVE3.js} +13 -13
- package/dist/{chunk-PNZGAAT4.mjs → chunk-TGFMKARH.mjs} +5 -4
- package/dist/chunk-TGFMKARH.mjs.map +1 -0
- package/dist/chunk-U5UIDVOO.mjs +36 -0
- package/dist/{chunk-7VMXBDXN.mjs → chunk-WB6MUIML.mjs} +2 -2
- package/dist/{chunk-IZHWP5VW.mjs → chunk-WJCKQLKK.mjs} +9 -9
- package/dist/{chunk-LN2BY2QF.mjs → chunk-Y46NMA3V.mjs} +3 -3
- package/dist/{chunk-ARWL2LBB.js → chunk-YASNOFBV.js} +38 -37
- package/dist/chunk-YASNOFBV.js.map +1 -0
- package/dist/{chunk-WAS6V24H.js → chunk-YUXN5GSW.js} +33 -30
- package/dist/chunk-YUXN5GSW.js.map +1 -0
- package/dist/controllers/authentication/AuthenticationController.js +15 -13
- package/dist/controllers/authentication/AuthenticationController.mjs +16 -14
- package/dist/controllers/authentication/auth-snap-requests.js +1 -1
- package/dist/controllers/authentication/auth-snap-requests.mjs +1 -1
- package/dist/controllers/authentication/index.js +16 -15
- package/dist/controllers/authentication/index.mjs +17 -16
- package/dist/controllers/authentication/services.js +12 -12
- package/dist/controllers/authentication/services.mjs +11 -11
- package/dist/controllers/index.js +20 -21
- package/dist/controllers/index.mjs +19 -20
- package/dist/controllers/user-storage/UserStorageController.js +18 -16
- package/dist/controllers/user-storage/UserStorageController.mjs +19 -17
- package/dist/controllers/user-storage/encryption/cache.js +1 -1
- package/dist/controllers/user-storage/encryption/cache.mjs +1 -1
- package/dist/controllers/user-storage/encryption/encryption.js +3 -3
- package/dist/controllers/user-storage/encryption/encryption.mjs +2 -2
- package/dist/controllers/user-storage/encryption/index.js +4 -4
- package/dist/controllers/user-storage/encryption/index.mjs +3 -3
- package/dist/controllers/user-storage/encryption/utils.js +1 -1
- package/dist/controllers/user-storage/encryption/utils.mjs +1 -1
- package/dist/controllers/user-storage/index.js +19 -18
- package/dist/controllers/user-storage/index.mjs +20 -19
- package/dist/controllers/user-storage/schema.js +5 -5
- package/dist/controllers/user-storage/schema.mjs +4 -4
- package/dist/controllers/user-storage/services.js +15 -15
- package/dist/controllers/user-storage/services.mjs +14 -14
- package/dist/index.js +20 -21
- package/dist/index.mjs +19 -20
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.js +6 -6
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.mjs +5 -5
- package/dist/sdk/authentication-jwt-bearer/flow-srp.js +6 -6
- package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs +5 -5
- package/dist/sdk/authentication-jwt-bearer/services.js +5 -5
- package/dist/sdk/authentication-jwt-bearer/services.mjs +4 -4
- package/dist/sdk/authentication-jwt-bearer/types.js +3 -3
- package/dist/sdk/authentication-jwt-bearer/types.mjs +2 -2
- package/dist/sdk/authentication.js +8 -8
- package/dist/sdk/authentication.mjs +7 -7
- package/dist/sdk/encryption.js +3 -3
- package/dist/sdk/encryption.mjs +2 -2
- package/dist/sdk/env.js +3 -3
- package/dist/sdk/env.mjs +2 -2
- package/dist/sdk/errors.js +1 -1
- package/dist/sdk/errors.mjs +1 -1
- package/dist/sdk/index.js +11 -11
- package/dist/sdk/index.mjs +10 -10
- package/dist/sdk/user-storage.js +5 -5
- package/dist/sdk/user-storage.mjs +4 -4
- package/dist/sdk/utils/eip-6963-metamask-provider.js +1 -1
- package/dist/sdk/utils/eip-6963-metamask-provider.mjs +1 -1
- package/dist/sdk/utils/messaging-signing-snap-requests.js +1 -1
- package/dist/sdk/utils/messaging-signing-snap-requests.mjs +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/controllers/authentication/AuthenticationController.d.ts +1 -0
- package/dist/types/controllers/authentication/AuthenticationController.d.ts.map +1 -1
- package/dist/types/controllers/authentication/__fixtures__/index.d.ts +0 -1
- package/dist/types/controllers/authentication/__fixtures__/index.d.ts.map +1 -1
- package/dist/types/controllers/user-storage/UserStorageController.d.ts +1 -0
- package/dist/types/controllers/user-storage/UserStorageController.d.ts.map +1 -1
- package/dist/types/controllers/user-storage/__fixtures__/index.d.ts +0 -1
- package/dist/types/controllers/user-storage/__fixtures__/index.d.ts.map +1 -1
- package/dist/types/sdk/authentication-jwt-bearer/types.d.ts +1 -1
- package/dist/types/sdk/authentication-jwt-bearer/types.d.ts.map +1 -1
- package/dist/types/sdk/env.d.ts +2 -2
- package/dist/types/sdk/env.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-26CCETCM.mjs +0 -70
- package/dist/chunk-4OMJ7A6A.js.map +0 -1
- package/dist/chunk-ARWL2LBB.js.map +0 -1
- package/dist/chunk-BVM4HBM4.js.map +0 -1
- package/dist/chunk-GJJT2CAL.js +0 -3342
- package/dist/chunk-GJJT2CAL.js.map +0 -1
- package/dist/chunk-GLS4QZF6.mjs.map +0 -1
- package/dist/chunk-JAGWB4JI.mjs.map +0 -1
- package/dist/chunk-JMU3OVPK.mjs +0 -3342
- package/dist/chunk-JMU3OVPK.mjs.map +0 -1
- package/dist/chunk-PNZGAAT4.mjs.map +0 -1
- package/dist/chunk-PRDECQM6.mjs.map +0 -1
- package/dist/chunk-QHL6SQTC.mjs.map +0 -1
- package/dist/chunk-QILE6KIE.js +0 -79
- package/dist/chunk-T77FC4PB.js.map +0 -1
- package/dist/chunk-V46WVGWN.js +0 -70
- package/dist/chunk-VYE2DKST.js +0 -102
- package/dist/chunk-VYE2DKST.js.map +0 -1
- package/dist/chunk-WAS6V24H.js.map +0 -1
- package/dist/chunk-YWA77VMP.mjs.map +0 -1
- /package/dist/{chunk-DHHBHLVN.mjs.map → chunk-2XGRQBXI.mjs.map} +0 -0
- /package/dist/{chunk-K6G7X6PX.js.map → chunk-5SXXO4MV.js.map} +0 -0
- /package/dist/{chunk-BFE6TB7Y.mjs.map → chunk-5TOWF6UW.mjs.map} +0 -0
- /package/dist/{chunk-JTDFOATG.js.map → chunk-AK7OTIWA.js.map} +0 -0
- /package/dist/{chunk-772MKTIO.mjs.map → chunk-AUFUOKJW.mjs.map} +0 -0
- /package/dist/{chunk-6TK7544L.js.map → chunk-AVOOINGJ.js.map} +0 -0
- /package/dist/{chunk-UEZI2POO.mjs.map → chunk-AXWK4Y23.mjs.map} +0 -0
- /package/dist/{chunk-VTM5T7Y4.mjs.map → chunk-B5DBQDB3.mjs.map} +0 -0
- /package/dist/{chunk-7FCK4BY3.js.map → chunk-B6CSNLGE.js.map} +0 -0
- /package/dist/{chunk-XUPRRLBI.js.map → chunk-BOET676P.js.map} +0 -0
- /package/dist/{chunk-2MVOZPBN.js.map → chunk-ELHJSRS2.js.map} +0 -0
- /package/dist/{chunk-3FJQHCCQ.mjs.map → chunk-FCT2LIGH.mjs.map} +0 -0
- /package/dist/{chunk-V46WVGWN.js.map → chunk-IGY2S5BC.js.map} +0 -0
- /package/dist/{chunk-UWRKMJBI.mjs.map → chunk-JLDFMYAH.mjs.map} +0 -0
- /package/dist/{chunk-QE2F5AZL.mjs.map → chunk-K5UKU454.mjs.map} +0 -0
- /package/dist/{chunk-W7JFFMEZ.mjs.map → chunk-KBCXN3YW.mjs.map} +0 -0
- /package/dist/{chunk-DLXLU44Z.js.map → chunk-NLHLVVOO.js.map} +0 -0
- /package/dist/{chunk-GLDUXN2T.js.map → chunk-P4DUDLMY.js.map} +0 -0
- /package/dist/{chunk-LUKNP4HM.js.map → chunk-P52TG263.js.map} +0 -0
- /package/dist/{chunk-QILE6KIE.js.map → chunk-PTR4DAX6.js.map} +0 -0
- /package/dist/{chunk-LHDVZNW5.js.map → chunk-Q5WIUNX5.js.map} +0 -0
- /package/dist/{chunk-JWTNHCVG.js.map → chunk-T3FNDVE3.js.map} +0 -0
- /package/dist/{chunk-26CCETCM.mjs.map → chunk-U5UIDVOO.mjs.map} +0 -0
- /package/dist/{chunk-7VMXBDXN.mjs.map → chunk-WB6MUIML.mjs.map} +0 -0
- /package/dist/{chunk-IZHWP5VW.mjs.map → chunk-WJCKQLKK.mjs.map} +0 -0
- /package/dist/{chunk-LN2BY2QF.mjs.map → chunk-Y46NMA3V.mjs.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,11 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.1]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- export `defaultState` for `AuthenticationController` and `UserStorageController`. ([#4441](https://github.com/MetaMask/core/pull/4441))
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- `AuthType`, `Env`, `Platform` are changed from const enums to enums ([#4441](https://github.com/MetaMask/core/pull/4441))
|
|
19
|
+
|
|
10
20
|
## [0.1.0]
|
|
11
21
|
|
|
12
22
|
### Added
|
|
13
23
|
|
|
14
24
|
- Initial release
|
|
15
25
|
|
|
16
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/profile-sync-controller@0.1.
|
|
26
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/profile-sync-controller@0.1.1...HEAD
|
|
27
|
+
[0.1.1]: https://github.com/MetaMask/core/compare/@metamask/profile-sync-controller@0.1.0...@metamask/profile-sync-controller@0.1.1
|
|
17
28
|
[0.1.0]: https://github.com/MetaMask/core/releases/tag/@metamask/profile-sync-controller@0.1.0
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createEntryPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AUFUOKJW.mjs";
|
|
4
4
|
import {
|
|
5
5
|
encryption_default
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5TOWF6UW.mjs";
|
|
7
7
|
import {
|
|
8
8
|
getEnvUrls
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-FQ5SDMRE.mjs";
|
|
10
10
|
|
|
11
11
|
// src/controllers/user-storage/services.ts
|
|
12
12
|
import log from "loglevel";
|
|
@@ -67,4 +67,4 @@ export {
|
|
|
67
67
|
getUserStorage,
|
|
68
68
|
upsertUserStorage
|
|
69
69
|
};
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
70
|
+
//# sourceMappingURL=chunk-2XGRQBXI.mjs.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
getAccessToken,
|
|
4
4
|
getNonce,
|
|
5
5
|
login
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KBCXN3YW.mjs";
|
|
7
7
|
import {
|
|
8
8
|
createSnapPublicKeyRequest,
|
|
9
9
|
createSnapSignMessageRequest
|
|
@@ -13,13 +13,15 @@ import {
|
|
|
13
13
|
__privateGet,
|
|
14
14
|
__privateMethod,
|
|
15
15
|
__privateSet
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-U5UIDVOO.mjs";
|
|
17
17
|
|
|
18
18
|
// src/controllers/authentication/AuthenticationController.ts
|
|
19
19
|
import { BaseController } from "@metamask/base-controller";
|
|
20
20
|
var THIRTY_MIN_MS = 1e3 * 60 * 30;
|
|
21
21
|
var controllerName = "AuthenticationController";
|
|
22
|
-
var defaultState = {
|
|
22
|
+
var defaultState = {
|
|
23
|
+
isSignedIn: false
|
|
24
|
+
};
|
|
23
25
|
var metadata = {
|
|
24
26
|
isSignedIn: {
|
|
25
27
|
persist: true,
|
|
@@ -216,6 +218,7 @@ snapSignMessage_fn = function(message) {
|
|
|
216
218
|
};
|
|
217
219
|
|
|
218
220
|
export {
|
|
221
|
+
defaultState,
|
|
219
222
|
AuthenticationController
|
|
220
223
|
};
|
|
221
|
-
//# sourceMappingURL=chunk-
|
|
224
|
+
//# sourceMappingURL=chunk-32HAX3MW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/controllers/authentication/AuthenticationController.ts"],"sourcesContent":["import type {\n RestrictedControllerMessenger,\n StateMetadata,\n} from '@metamask/base-controller';\nimport { BaseController } from '@metamask/base-controller';\nimport type { HandleSnapRequest } from '@metamask/snaps-controllers';\n\nimport type { UserStorageControllerDisableProfileSyncing } from '../user-storage/UserStorageController';\nimport {\n createSnapPublicKeyRequest,\n createSnapSignMessageRequest,\n} from './auth-snap-requests';\nimport {\n createLoginRawMessage,\n getAccessToken,\n getNonce,\n login,\n} from './services';\n\nconst THIRTY_MIN_MS = 1000 * 60 * 30;\n\nconst controllerName = 'AuthenticationController';\n\n// State\ntype SessionProfile = {\n identifierId: string;\n profileId: string;\n};\n\ntype SessionData = {\n /** profile - anonymous profile data for the given logged in user */\n profile: SessionProfile;\n /** accessToken - used to make requests authorized endpoints */\n accessToken: string;\n /** expiresIn - string date to determine if new access token is required */\n expiresIn: string;\n};\n\ntype MetaMetricsAuth = {\n getMetaMetricsId: () => string;\n agent: 'extension' | 'mobile';\n};\n\nexport type AuthenticationControllerState = {\n /**\n * Global isSignedIn state.\n * Can be used to determine if \"Profile Syncing\" is enabled.\n */\n isSignedIn: boolean;\n sessionData?: SessionData;\n};\nexport const defaultState: AuthenticationControllerState = {\n isSignedIn: false,\n};\nconst metadata: StateMetadata<AuthenticationControllerState> = {\n isSignedIn: {\n persist: true,\n anonymous: true,\n },\n sessionData: {\n persist: true,\n anonymous: false,\n },\n};\n\n// Messenger Actions\ntype CreateActionsObj<Controller extends keyof AuthenticationController> = {\n [K in Controller]: {\n type: `${typeof controllerName}:${K}`;\n handler: AuthenticationController[K];\n };\n};\ntype ActionsObj = CreateActionsObj<\n | 'performSignIn'\n | 'performSignOut'\n | 'getBearerToken'\n | 'getSessionProfile'\n | 'isSignedIn'\n>;\nexport type Actions = ActionsObj[keyof ActionsObj];\nexport type AuthenticationControllerPerformSignIn = ActionsObj['performSignIn'];\nexport type AuthenticationControllerPerformSignOut =\n ActionsObj['performSignOut'];\nexport type AuthenticationControllerGetBearerToken =\n ActionsObj['getBearerToken'];\nexport type AuthenticationControllerGetSessionProfile =\n ActionsObj['getSessionProfile'];\nexport type AuthenticationControllerIsSignedIn = ActionsObj['isSignedIn'];\n\n// Allowed Actions\nexport type AllowedActions =\n | HandleSnapRequest\n | UserStorageControllerDisableProfileSyncing;\n\n// Messenger\nexport type AuthenticationControllerMessenger = RestrictedControllerMessenger<\n typeof controllerName,\n Actions | AllowedActions,\n never,\n AllowedActions['type'],\n never\n>;\n\n/**\n * Controller that enables authentication for restricted endpoints.\n * Used for Global Profile Syncing and Notifications\n */\nexport default class AuthenticationController extends BaseController<\n typeof controllerName,\n AuthenticationControllerState,\n AuthenticationControllerMessenger\n> {\n #metametrics: MetaMetricsAuth;\n\n constructor({\n messenger,\n state,\n metametrics,\n }: {\n messenger: AuthenticationControllerMessenger;\n state?: AuthenticationControllerState;\n /**\n * Not using the Messaging System as we\n * do not want to tie this strictly to extension\n */\n metametrics: MetaMetricsAuth;\n }) {\n super({\n messenger,\n metadata,\n name: controllerName,\n state: { ...defaultState, ...state },\n });\n\n this.#metametrics = metametrics;\n\n this.#registerMessageHandlers();\n }\n\n /**\n * Constructor helper for registering this controller's messaging system\n * actions.\n */\n #registerMessageHandlers(): void {\n this.messagingSystem.registerActionHandler(\n 'AuthenticationController:getBearerToken',\n this.getBearerToken.bind(this),\n );\n\n this.messagingSystem.registerActionHandler(\n 'AuthenticationController:getSessionProfile',\n this.getSessionProfile.bind(this),\n );\n\n this.messagingSystem.registerActionHandler(\n 'AuthenticationController:isSignedIn',\n this.isSignedIn.bind(this),\n );\n\n this.messagingSystem.registerActionHandler(\n 'AuthenticationController:performSignIn',\n this.performSignIn.bind(this),\n );\n\n this.messagingSystem.registerActionHandler(\n 'AuthenticationController:performSignOut',\n this.performSignOut.bind(this),\n );\n }\n\n public async performSignIn(): Promise<string> {\n const { accessToken } = await this.#performAuthenticationFlow();\n return accessToken;\n }\n\n public performSignOut(): void {\n this.#assertLoggedIn();\n\n this.update((state) => {\n state.isSignedIn = false;\n state.sessionData = undefined;\n });\n }\n\n public async getBearerToken(): Promise<string> {\n this.#assertLoggedIn();\n\n if (this.#hasValidSession(this.state.sessionData)) {\n return this.state.sessionData.accessToken;\n }\n\n const { accessToken } = await this.#performAuthenticationFlow();\n return accessToken;\n }\n\n /**\n * Will return a session profile.\n * Throws if a user is not logged in.\n *\n * @returns profile for the session.\n */\n public async getSessionProfile(): Promise<SessionProfile> {\n this.#assertLoggedIn();\n\n if (this.#hasValidSession(this.state.sessionData)) {\n return this.state.sessionData.profile;\n }\n\n const { profile } = await this.#performAuthenticationFlow();\n return profile;\n }\n\n public isSignedIn(): boolean {\n return this.state.isSignedIn;\n }\n\n #assertLoggedIn(): void {\n if (!this.state.isSignedIn) {\n throw new Error(\n `${controllerName}: Unable to call method, user is not authenticated`,\n );\n }\n }\n\n async #performAuthenticationFlow(): Promise<{\n profile: SessionProfile;\n accessToken: string;\n }> {\n try {\n // 1. Nonce\n const publicKey = await this.#snapGetPublicKey();\n const nonce = await getNonce(publicKey);\n if (!nonce) {\n throw new Error(`Unable to get nonce`);\n }\n\n // 2. Login\n const rawMessage = createLoginRawMessage(nonce, publicKey);\n const signature = await this.#snapSignMessage(rawMessage);\n const loginResponse = await login(rawMessage, signature, {\n metametricsId: this.#metametrics.getMetaMetricsId(),\n agent: this.#metametrics.agent,\n });\n if (!loginResponse?.token) {\n throw new Error(`Unable to login`);\n }\n\n const profile: SessionProfile = {\n identifierId: loginResponse.profile.identifier_id,\n profileId: loginResponse.profile.profile_id,\n };\n\n // 3. Trade for Access Token\n const accessToken = await getAccessToken(loginResponse.token);\n if (!accessToken) {\n throw new Error(`Unable to get Access Token`);\n }\n\n // Update Internal State\n this.update((state) => {\n state.isSignedIn = true;\n const expiresIn = new Date();\n expiresIn.setTime(expiresIn.getTime() + THIRTY_MIN_MS);\n state.sessionData = {\n profile,\n accessToken,\n expiresIn: expiresIn.toString(),\n };\n });\n\n return {\n profile,\n accessToken,\n };\n } catch (e) {\n console.error('Failed to authenticate', e);\n // Disable Profile Syncing\n await this.messagingSystem.call(\n 'UserStorageController:disableProfileSyncing',\n );\n const errorMessage =\n e instanceof Error ? e.message : JSON.stringify(e ?? '');\n throw new Error(\n `${controllerName}: Failed to authenticate - ${errorMessage}`,\n );\n }\n }\n\n #hasValidSession(\n sessionData: SessionData | undefined,\n ): sessionData is SessionData {\n if (!sessionData) {\n return false;\n }\n\n const prevDate = Date.parse(sessionData.expiresIn);\n if (isNaN(prevDate)) {\n return false;\n }\n\n const currentDate = new Date();\n const diffMs = Math.abs(currentDate.getTime() - prevDate);\n\n return THIRTY_MIN_MS > diffMs;\n }\n\n /**\n * Returns the auth snap public key.\n *\n * @returns The snap public key.\n */\n #snapGetPublicKey(): Promise<string> {\n return this.messagingSystem.call(\n 'SnapController:handleRequest',\n createSnapPublicKeyRequest(),\n ) as Promise<string>;\n }\n\n /**\n * Signs a specific message using an underlying auth snap.\n *\n * @param message - A specific tagged message to sign.\n * @returns A Signature created by the snap.\n */\n #snapSignMessage(message: `metamask:${string}`): Promise<string> {\n return this.messagingSystem.call(\n 'SnapController:handleRequest',\n createSnapSignMessageRequest(message),\n ) as Promise<string>;\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkB6CSNLGEjs = require('./chunk-B6CSNLGE.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkAK7OTIWAjs = require('./chunk-AK7OTIWA.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkSMKTWM6Ijs = require('./chunk-SMKTWM6I.js');
|
|
10
10
|
|
|
11
11
|
// src/controllers/user-storage/services.ts
|
|
12
12
|
var _loglevel = require('loglevel'); var _loglevel2 = _interopRequireDefault(_loglevel);
|
|
13
|
-
var ENV_URLS =
|
|
13
|
+
var ENV_URLS = _chunkSMKTWM6Ijs.getEnvUrls.call(void 0, "prd" /* PRD */);
|
|
14
14
|
var USER_STORAGE_API = ENV_URLS.userStorageApiUrl;
|
|
15
15
|
var USER_STORAGE_ENDPOINT = `${USER_STORAGE_API}/api/v1/userstorage`;
|
|
16
16
|
async function getUserStorage(opts) {
|
|
17
17
|
try {
|
|
18
|
-
const path =
|
|
18
|
+
const path = _chunkB6CSNLGEjs.createEntryPath.call(void 0, opts.entryKey, opts.storageKey);
|
|
19
19
|
const url = new URL(`${USER_STORAGE_ENDPOINT}${path}`);
|
|
20
20
|
const userStorageResponse = await fetch(url.toString(), {
|
|
21
21
|
headers: {
|
|
@@ -34,7 +34,7 @@ async function getUserStorage(opts) {
|
|
|
34
34
|
if (!encryptedData) {
|
|
35
35
|
return null;
|
|
36
36
|
}
|
|
37
|
-
const decryptedData =
|
|
37
|
+
const decryptedData = _chunkAK7OTIWAjs.encryption_default.decryptString(
|
|
38
38
|
encryptedData,
|
|
39
39
|
opts.storageKey
|
|
40
40
|
);
|
|
@@ -45,8 +45,8 @@ async function getUserStorage(opts) {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
async function upsertUserStorage(data, opts) {
|
|
48
|
-
const encryptedData =
|
|
49
|
-
const path =
|
|
48
|
+
const encryptedData = _chunkAK7OTIWAjs.encryption_default.encryptString(data, opts.storageKey);
|
|
49
|
+
const path = _chunkB6CSNLGEjs.createEntryPath.call(void 0, opts.entryKey, opts.storageKey);
|
|
50
50
|
const url = new URL(`${USER_STORAGE_ENDPOINT}${path}`);
|
|
51
51
|
const res = await fetch(url.toString(), {
|
|
52
52
|
method: "PUT",
|
|
@@ -67,4 +67,4 @@ async function upsertUserStorage(data, opts) {
|
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
exports.USER_STORAGE_API = USER_STORAGE_API; exports.USER_STORAGE_ENDPOINT = USER_STORAGE_ENDPOINT; exports.getUserStorage = getUserStorage; exports.upsertUserStorage = upsertUserStorage;
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
70
|
+
//# sourceMappingURL=chunk-5SXXO4MV.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
encryption_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K5UKU454.mjs";
|
|
4
4
|
|
|
5
5
|
// src/controllers/user-storage/encryption/index.ts
|
|
6
6
|
var encryption_default2 = encryption_default;
|
|
@@ -8,4 +8,4 @@ var encryption_default2 = encryption_default;
|
|
|
8
8
|
export {
|
|
9
9
|
encryption_default2 as encryption_default
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=chunk-
|
|
11
|
+
//# sourceMappingURL=chunk-5TOWF6UW.mjs.map
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AuthenticationController
|
|
3
|
-
|
|
2
|
+
AuthenticationController,
|
|
3
|
+
defaultState
|
|
4
|
+
} from "./chunk-32HAX3MW.mjs";
|
|
4
5
|
import {
|
|
5
6
|
AUTH_LOGIN_ENDPOINT,
|
|
6
7
|
AUTH_NONCE_ENDPOINT,
|
|
7
8
|
OIDC_TOKENS_ENDPOINT
|
|
8
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KBCXN3YW.mjs";
|
|
9
10
|
import {
|
|
10
|
-
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import {
|
|
13
|
-
__export,
|
|
14
|
-
__toESM
|
|
15
|
-
} from "./chunk-26CCETCM.mjs";
|
|
11
|
+
__export
|
|
12
|
+
} from "./chunk-U5UIDVOO.mjs";
|
|
16
13
|
|
|
17
14
|
// src/controllers/authentication/index.ts
|
|
18
15
|
var authentication_exports = {};
|
|
19
16
|
__export(authentication_exports, {
|
|
20
17
|
Controller: () => AuthenticationController,
|
|
21
|
-
Mocks: () => fixtures_exports
|
|
18
|
+
Mocks: () => fixtures_exports,
|
|
19
|
+
defaultState: () => defaultState
|
|
22
20
|
});
|
|
23
21
|
|
|
24
22
|
// src/controllers/authentication/__fixtures__/index.ts
|
|
@@ -32,10 +30,7 @@ __export(fixtures_exports, {
|
|
|
32
30
|
MOCK_OATH_TOKEN_RESPONSE: () => MOCK_OATH_TOKEN_RESPONSE,
|
|
33
31
|
getMockAuthAccessTokenResponse: () => getMockAuthAccessTokenResponse,
|
|
34
32
|
getMockAuthLoginResponse: () => getMockAuthLoginResponse,
|
|
35
|
-
getMockAuthNonceResponse: () => getMockAuthNonceResponse
|
|
36
|
-
mockEndpointAccessToken: () => mockEndpointAccessToken,
|
|
37
|
-
mockEndpointGetNonce: () => mockEndpointGetNonce,
|
|
38
|
-
mockEndpointLogin: () => mockEndpointLogin
|
|
33
|
+
getMockAuthNonceResponse: () => getMockAuthNonceResponse
|
|
39
34
|
});
|
|
40
35
|
|
|
41
36
|
// src/controllers/authentication/__fixtures__/mockResponses.ts
|
|
@@ -84,29 +79,8 @@ var getMockAuthAccessTokenResponse = () => {
|
|
|
84
79
|
};
|
|
85
80
|
};
|
|
86
81
|
|
|
87
|
-
// src/controllers/authentication/__fixtures__/mockServices.ts
|
|
88
|
-
var import_nock = __toESM(require_nock());
|
|
89
|
-
var mockEndpointGetNonce = (mockReply) => {
|
|
90
|
-
const mockResponse = getMockAuthNonceResponse();
|
|
91
|
-
const reply = mockReply ?? { status: 200, body: mockResponse.response };
|
|
92
|
-
const mockNonceEndpoint = (0, import_nock.default)(mockResponse.url).get("").query(true).reply(reply.status, reply.body);
|
|
93
|
-
return mockNonceEndpoint;
|
|
94
|
-
};
|
|
95
|
-
var mockEndpointLogin = (mockReply) => {
|
|
96
|
-
const mockResponse = getMockAuthLoginResponse();
|
|
97
|
-
const reply = mockReply ?? { status: 200, body: mockResponse.response };
|
|
98
|
-
const mockLoginEndpoint = (0, import_nock.default)(mockResponse.url).post("").reply(reply.status, reply.body);
|
|
99
|
-
return mockLoginEndpoint;
|
|
100
|
-
};
|
|
101
|
-
var mockEndpointAccessToken = (mockReply) => {
|
|
102
|
-
const mockResponse = getMockAuthAccessTokenResponse();
|
|
103
|
-
const reply = mockReply ?? { status: 200, body: mockResponse.response };
|
|
104
|
-
const mockOidcTokensEndpoint = (0, import_nock.default)(mockResponse.url).post("").reply(reply.status, reply.body);
|
|
105
|
-
return mockOidcTokensEndpoint;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
82
|
export {
|
|
109
83
|
fixtures_exports,
|
|
110
84
|
authentication_exports
|
|
111
85
|
};
|
|
112
|
-
//# sourceMappingURL=chunk-
|
|
86
|
+
//# sourceMappingURL=chunk-AARMY5TW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/controllers/authentication/index.ts","../src/controllers/authentication/__fixtures__/index.ts","../src/controllers/authentication/__fixtures__/mockResponses.ts"],"sourcesContent":["import Controller from './AuthenticationController';\n\nexport { Controller };\nexport * from './AuthenticationController';\nexport * as Mocks from './__fixtures__';\n","export * from './mockResponses';\n","import type {\n LoginResponse,\n NonceResponse,\n OAuthTokenResponse,\n} from '../services';\nimport {\n AUTH_LOGIN_ENDPOINT,\n AUTH_NONCE_ENDPOINT,\n OIDC_TOKENS_ENDPOINT,\n} from '../services';\n\ntype MockResponse = {\n url: string;\n requestMethod: 'GET' | 'POST' | 'PUT';\n response: unknown;\n};\n\nexport const MOCK_NONCE = '4cbfqzoQpcNxVImGv';\nexport const MOCK_NONCE_RESPONSE: NonceResponse = {\n nonce: MOCK_NONCE,\n};\n\nexport const getMockAuthNonceResponse = () => {\n return {\n url: AUTH_NONCE_ENDPOINT,\n requestMethod: 'GET',\n response: MOCK_NONCE_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const MOCK_JWT =\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';\nexport const MOCK_LOGIN_RESPONSE: LoginResponse = {\n token: MOCK_JWT,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: new Date().toString(),\n profile: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n identifier_id: 'MOCK_IDENTIFIER',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n profile_id: 'MOCK_PROFILE_ID',\n },\n};\n\nexport const getMockAuthLoginResponse = () => {\n return {\n url: AUTH_LOGIN_ENDPOINT,\n requestMethod: 'POST',\n response: MOCK_LOGIN_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const MOCK_ACCESS_TOKEN = `MOCK_ACCESS_TOKEN-${MOCK_JWT}`;\nexport const MOCK_OATH_TOKEN_RESPONSE: OAuthTokenResponse = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n access_token: MOCK_ACCESS_TOKEN,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: new Date().getTime(),\n};\n\nexport const getMockAuthAccessTokenResponse = () => {\n return {\n url: OIDC_TOKENS_ENDPOINT,\n requestMethod: 'POST',\n response: MOCK_OATH_TOKEN_RESPONSE,\n } satisfies MockResponse;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACiBO,IAAM,aAAa;AACnB,IAAM,sBAAqC;AAAA,EAChD,OAAO;AACT;AAEO,IAAM,2BAA2B,MAAM;AAC5C,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,WACX;AACK,IAAM,sBAAqC;AAAA,EAChD,OAAO;AAAA;AAAA,EAEP,aAAY,oBAAI,KAAK,GAAE,SAAS;AAAA,EAChC,SAAS;AAAA;AAAA,IAEP,eAAe;AAAA;AAAA,IAEf,YAAY;AAAA,EACd;AACF;AAEO,IAAM,2BAA2B,MAAM;AAC5C,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,oBAAoB,qBAAqB,QAAQ;AACvD,IAAM,2BAA+C;AAAA;AAAA,EAE1D,cAAc;AAAA;AAAA,EAEd,aAAY,oBAAI,KAAK,GAAE,QAAQ;AACjC;AAEO,IAAM,iCAAiC,MAAM;AAClD,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;","names":[]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkT3FNDVE3js = require('./chunk-T3FNDVE3.js');
|
|
4
4
|
|
|
5
5
|
// src/controllers/user-storage/encryption/index.ts
|
|
6
|
-
var encryption_default2 =
|
|
6
|
+
var encryption_default2 = _chunkT3FNDVE3js.encryption_default;
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
exports.encryption_default = encryption_default2;
|
|
11
|
-
//# sourceMappingURL=chunk-
|
|
11
|
+
//# sourceMappingURL=chunk-AK7OTIWA.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createSHA256Hash
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K5UKU454.mjs";
|
|
4
4
|
|
|
5
5
|
// src/controllers/user-storage/schema.ts
|
|
6
6
|
var USER_STORAGE_ENTRIES = {
|
|
@@ -22,4 +22,4 @@ export {
|
|
|
22
22
|
USER_STORAGE_ENTRIES,
|
|
23
23
|
createEntryPath
|
|
24
24
|
};
|
|
25
|
-
//# sourceMappingURL=chunk-
|
|
25
|
+
//# sourceMappingURL=chunk-AUFUOKJW.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkBOET676Pjs = require('./chunk-BOET676P.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
var _chunkRG4II6WHjs = require('./chunk-RG4II6WH.js');
|
|
@@ -17,7 +17,7 @@ var _chunkMBTBE4P5js = require('./chunk-MBTBE4P5.js');
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkIGY2S5BCjs = require('./chunk-IGY2S5BC.js');
|
|
21
21
|
|
|
22
22
|
// src/sdk/authentication-jwt-bearer/flow-srp.ts
|
|
23
23
|
var defaultEIP6963SigningOptions = {
|
|
@@ -44,45 +44,45 @@ var _config, _options, _getAuthSession, getAuthSession_fn, _login, login_fn, _cr
|
|
|
44
44
|
var SRPJwtBearerAuth = class {
|
|
45
45
|
constructor(config, options) {
|
|
46
46
|
// convert expiresIn from seconds to milliseconds and use 90% of expiresIn
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
_chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _getAuthSession);
|
|
48
|
+
_chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _login);
|
|
49
|
+
_chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _createSrpLoginRawMessage);
|
|
50
|
+
_chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _config, void 0);
|
|
51
|
+
_chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _options, void 0);
|
|
52
|
+
_chunkIGY2S5BCjs.__privateSet.call(void 0, this, _config, config);
|
|
53
|
+
_chunkIGY2S5BCjs.__privateSet.call(void 0, this, _options, {
|
|
54
54
|
storage: options.storage,
|
|
55
55
|
signing: options.signing ?? defaultEIP6963SigningOptions
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
async getAccessToken() {
|
|
59
|
-
const session = await
|
|
59
|
+
const session = await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _getAuthSession, getAuthSession_fn).call(this);
|
|
60
60
|
if (session) {
|
|
61
61
|
return session.token.accessToken;
|
|
62
62
|
}
|
|
63
|
-
const loginResponse = await
|
|
63
|
+
const loginResponse = await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _login, login_fn).call(this);
|
|
64
64
|
return loginResponse.token.accessToken;
|
|
65
65
|
}
|
|
66
66
|
async getUserProfile() {
|
|
67
|
-
const session = await
|
|
67
|
+
const session = await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _getAuthSession, getAuthSession_fn).call(this);
|
|
68
68
|
if (session) {
|
|
69
69
|
return session.profile;
|
|
70
70
|
}
|
|
71
|
-
const loginResponse = await
|
|
71
|
+
const loginResponse = await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _login, login_fn).call(this);
|
|
72
72
|
return loginResponse.profile;
|
|
73
73
|
}
|
|
74
74
|
async getIdentifier() {
|
|
75
|
-
return await
|
|
75
|
+
return await _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _options).signing.getIdentifier();
|
|
76
76
|
}
|
|
77
77
|
async signMessage(message) {
|
|
78
|
-
return await
|
|
78
|
+
return await _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _options).signing.signMessage(message);
|
|
79
79
|
}
|
|
80
80
|
};
|
|
81
81
|
_config = new WeakMap();
|
|
82
82
|
_options = new WeakMap();
|
|
83
83
|
_getAuthSession = new WeakSet();
|
|
84
84
|
getAuthSession_fn = async function() {
|
|
85
|
-
const auth = await
|
|
85
|
+
const auth = await _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _options).storage.getLoginResponse();
|
|
86
86
|
if (!auth) {
|
|
87
87
|
return null;
|
|
88
88
|
}
|
|
@@ -97,26 +97,26 @@ getAuthSession_fn = async function() {
|
|
|
97
97
|
_login = new WeakSet();
|
|
98
98
|
login_fn = async function() {
|
|
99
99
|
const address = await this.getIdentifier();
|
|
100
|
-
const nonceRes = await
|
|
101
|
-
const publicKey = await
|
|
102
|
-
const rawMessage =
|
|
100
|
+
const nonceRes = await _chunkBOET676Pjs.getNonce.call(void 0, address, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env);
|
|
101
|
+
const publicKey = await _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _options).signing.getIdentifier();
|
|
102
|
+
const rawMessage = _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _createSrpLoginRawMessage, createSrpLoginRawMessage_fn).call(this, nonceRes.nonce, publicKey);
|
|
103
103
|
const signature = await this.signMessage(rawMessage);
|
|
104
|
-
const authResponse = await
|
|
104
|
+
const authResponse = await _chunkBOET676Pjs.authenticate.call(void 0,
|
|
105
105
|
rawMessage,
|
|
106
106
|
signature,
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
_chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).type,
|
|
108
|
+
_chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env
|
|
109
109
|
);
|
|
110
|
-
const tokenResponse = await
|
|
110
|
+
const tokenResponse = await _chunkBOET676Pjs.authorizeOIDC.call(void 0,
|
|
111
111
|
authResponse.token,
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
_chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env,
|
|
113
|
+
_chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).platform
|
|
114
114
|
);
|
|
115
115
|
const result = {
|
|
116
116
|
profile: authResponse.profile,
|
|
117
117
|
token: tokenResponse
|
|
118
118
|
};
|
|
119
|
-
await
|
|
119
|
+
await _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _options).storage.setLoginResponse(result);
|
|
120
120
|
return result;
|
|
121
121
|
};
|
|
122
122
|
_createSrpLoginRawMessage = new WeakSet();
|
|
@@ -127,4 +127,4 @@ createSrpLoginRawMessage_fn = function(nonce, publicKey) {
|
|
|
127
127
|
|
|
128
128
|
|
|
129
129
|
exports.SRPJwtBearerAuth = SRPJwtBearerAuth;
|
|
130
|
-
//# sourceMappingURL=chunk-
|
|
130
|
+
//# sourceMappingURL=chunk-AVOOINGJ.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createSHA256Hash,
|
|
3
3
|
encryption_default
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-B5DBQDB3.mjs";
|
|
5
5
|
import {
|
|
6
6
|
getEnvUrls
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FQ5SDMRE.mjs";
|
|
8
8
|
import {
|
|
9
9
|
NotFoundError,
|
|
10
10
|
UserStorageError,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
__privateAdd,
|
|
15
15
|
__privateMethod
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-U5UIDVOO.mjs";
|
|
17
17
|
|
|
18
18
|
// src/sdk/user-storage.ts
|
|
19
19
|
var STORAGE_URL = (env, feature, entry) => `${getEnvUrls(env).userStorageApiUrl}/api/v1/userstorage/${feature}/${entry}`;
|
|
@@ -141,4 +141,4 @@ export {
|
|
|
141
141
|
STORAGE_URL,
|
|
142
142
|
UserStorage
|
|
143
143
|
};
|
|
144
|
-
//# sourceMappingURL=chunk-
|
|
144
|
+
//# sourceMappingURL=chunk-AXWK4Y23.mjs.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
__privateAdd,
|
|
3
3
|
__privateGet,
|
|
4
4
|
__privateMethod
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-U5UIDVOO.mjs";
|
|
6
6
|
|
|
7
7
|
// src/sdk/encryption.ts
|
|
8
8
|
import { gcm } from "@noble/ciphers/aes";
|
|
@@ -137,4 +137,4 @@ export {
|
|
|
137
137
|
encryption_default,
|
|
138
138
|
createSHA256Hash
|
|
139
139
|
};
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-B5DBQDB3.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkT3FNDVE3js = require('./chunk-T3FNDVE3.js');
|
|
4
4
|
|
|
5
5
|
// src/controllers/user-storage/schema.ts
|
|
6
6
|
var USER_STORAGE_ENTRIES = {
|
|
@@ -14,7 +14,7 @@ function createEntryPath(entryKey, storageKey) {
|
|
|
14
14
|
if (!entry) {
|
|
15
15
|
throw new Error(`user-storage - invalid entry provided: ${entryKey}`);
|
|
16
16
|
}
|
|
17
|
-
const hashedKey =
|
|
17
|
+
const hashedKey = _chunkT3FNDVE3js.createSHA256Hash.call(void 0, entry.entryName + storageKey);
|
|
18
18
|
return `/${entry.path}/${hashedKey}`;
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -22,4 +22,4 @@ function createEntryPath(entryKey, storageKey) {
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
exports.USER_STORAGE_ENTRIES = USER_STORAGE_ENTRIES; exports.createEntryPath = createEntryPath;
|
|
25
|
-
//# sourceMappingURL=chunk-
|
|
25
|
+
//# sourceMappingURL=chunk-B6CSNLGE.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkSMKTWM6Ijs = require('./chunk-SMKTWM6I.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
@@ -10,11 +10,11 @@ var _chunk4OMJ7A6Ajs = require('./chunk-4OMJ7A6A.js');
|
|
|
10
10
|
var _chunkMBTBE4P5js = require('./chunk-MBTBE4P5.js');
|
|
11
11
|
|
|
12
12
|
// src/sdk/authentication-jwt-bearer/services.ts
|
|
13
|
-
var NONCE_URL = (env) => `${
|
|
14
|
-
var PAIR_IDENTIFIERS = (env) => `${
|
|
15
|
-
var OIDC_TOKEN_URL = (env) => `${
|
|
16
|
-
var SRP_LOGIN_URL = (env) => `${
|
|
17
|
-
var SIWE_LOGIN_URL = (env) => `${
|
|
13
|
+
var NONCE_URL = (env) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/nonce`;
|
|
14
|
+
var PAIR_IDENTIFIERS = (env) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/identifiers/pair`;
|
|
15
|
+
var OIDC_TOKEN_URL = (env) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).oidcApiUrl}/oauth2/token`;
|
|
16
|
+
var SRP_LOGIN_URL = (env) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/srp/login`;
|
|
17
|
+
var SIWE_LOGIN_URL = (env) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/siwe/login`;
|
|
18
18
|
var getAuthenticationUrl = (authType, env) => {
|
|
19
19
|
switch (authType) {
|
|
20
20
|
case "SRP" /* SRP */:
|
|
@@ -81,7 +81,7 @@ async function authorizeOIDC(jwtToken, env, platform) {
|
|
|
81
81
|
});
|
|
82
82
|
const urlEncodedBody = new URLSearchParams();
|
|
83
83
|
urlEncodedBody.append("grant_type", grantType);
|
|
84
|
-
urlEncodedBody.append("client_id",
|
|
84
|
+
urlEncodedBody.append("client_id", _chunkSMKTWM6Ijs.getOidcClientId.call(void 0, env, platform));
|
|
85
85
|
urlEncodedBody.append("assertion", jwtToken);
|
|
86
86
|
try {
|
|
87
87
|
const response = await fetch(OIDC_TOKEN_URL(env), {
|
|
@@ -154,4 +154,4 @@ async function authenticate(rawMessage, signature, authType, env) {
|
|
|
154
154
|
|
|
155
155
|
|
|
156
156
|
exports.NONCE_URL = NONCE_URL; exports.PAIR_IDENTIFIERS = PAIR_IDENTIFIERS; exports.OIDC_TOKEN_URL = OIDC_TOKEN_URL; exports.SRP_LOGIN_URL = SRP_LOGIN_URL; exports.SIWE_LOGIN_URL = SIWE_LOGIN_URL; exports.pairIdentifiers = pairIdentifiers; exports.getNonce = getNonce; exports.authorizeOIDC = authorizeOIDC; exports.authenticate = authenticate;
|
|
157
|
-
//# sourceMappingURL=chunk-
|
|
157
|
+
//# sourceMappingURL=chunk-BOET676P.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/authentication-jwt-bearer/types.ts"],"sourcesContent":["import type { Env, Platform } from '../env';\n\nexport enum AuthType {\n /* sign in using a private key derived from your secret recovery phrase (SRP). \n Uses message signing snap to perform this operation */\n SRP = 'SRP',\n\n /* sign in with Ethereum */\n SiWE = 'SiWE',\n}\n\nexport type AuthConfig = {\n env: Env;\n platform: Platform;\n type: AuthType;\n};\n\nexport type AccessToken = {\n /**\n * The JWT Access Token\n */\n accessToken: string;\n /**\n * Expiration in seconds\n */\n expiresIn: number;\n /**\n * Date in milliseconds\n */\n obtainedAt: number;\n};\n\nexport type UserProfile = {\n /**\n * The \"Identifier\" used to log in with.\n */\n identifierId: string;\n /**\n * The Unique profile for a logged in user. A Profile can be logged in via multiple Identifiers\n */\n profileId: string;\n /**\n * Server MetaMetrics ID. Allows grouping of user events cross platform.\n */\n metaMetricsId: string;\n};\n\nexport type LoginResponse = {\n token: AccessToken;\n profile: UserProfile;\n};\n\nexport type IBaseAuth = {\n getAccessToken: () => Promise<string>;\n getUserProfile: () => Promise<UserProfile>;\n getIdentifier: () => Promise<string>;\n signMessage: (message: string) => Promise<string>;\n};\n\nexport type AuthStorageOptions = {\n getLoginResponse: () => Promise<LoginResponse | null>;\n setLoginResponse: (val: LoginResponse) => Promise<void>;\n};\n\nexport type AuthSigningOptions = {\n signMessage: (message: string) => Promise<string>;\n getIdentifier: () => Promise<string>;\n};\n\nexport type ErrorMessage = {\n message: string;\n error: string;\n};\n\nexport type Pair = {\n identifier: string;\n encryptedStorageKey: string;\n identifierType: 'SIWE' | 'SRP';\n signMessage: (message: string) => Promise<string>;\n};\n"],"mappings":";AAEO,IAAK,WAAL,kBAAKA,cAAL;AAGL,EAAAA,UAAA,SAAM;AAGN,EAAAA,UAAA,UAAO;AANG,SAAAA;AAAA,GAAA;","names":["AuthType"]}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkSMKTWM6Ijs = require('./chunk-SMKTWM6I.js');
|
|
5
5
|
|
|
6
6
|
// src/controllers/authentication/services.ts
|
|
7
|
-
var ENV_URLS =
|
|
7
|
+
var ENV_URLS = _chunkSMKTWM6Ijs.getEnvUrls.call(void 0, "prd" /* PRD */);
|
|
8
8
|
var AUTH_ENDPOINT = ENV_URLS.authApiUrl;
|
|
9
9
|
var AUTH_NONCE_ENDPOINT = `${AUTH_ENDPOINT}/api/v2/nonce`;
|
|
10
10
|
var AUTH_LOGIN_ENDPOINT = `${AUTH_ENDPOINT}/api/v2/srp/login`;
|
|
11
11
|
var OIDC_ENDPOINT = ENV_URLS.oidcApiUrl || "";
|
|
12
12
|
var OIDC_TOKENS_ENDPOINT = `${OIDC_ENDPOINT}/oauth2/token`;
|
|
13
|
-
var OIDC_CLIENT_ID =
|
|
13
|
+
var OIDC_CLIENT_ID = _chunkSMKTWM6Ijs.getOidcClientId.call(void 0, "prd" /* PRD */, "extension" /* EXTENSION */);
|
|
14
14
|
var OIDC_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:jwt-bearer";
|
|
15
15
|
async function getNonce(publicKey) {
|
|
16
16
|
const nonceUrl = new URL(AUTH_NONCE_ENDPOINT);
|
|
@@ -95,4 +95,4 @@ function createLoginRawMessage(nonce, publicKey) {
|
|
|
95
95
|
|
|
96
96
|
|
|
97
97
|
exports.AUTH_NONCE_ENDPOINT = AUTH_NONCE_ENDPOINT; exports.AUTH_LOGIN_ENDPOINT = AUTH_LOGIN_ENDPOINT; exports.OIDC_TOKENS_ENDPOINT = OIDC_TOKENS_ENDPOINT; exports.getNonce = getNonce; exports.login = login; exports.getAccessToken = getAccessToken; exports.createLoginRawMessage = createLoginRawMessage;
|
|
98
|
-
//# sourceMappingURL=chunk-
|
|
98
|
+
//# sourceMappingURL=chunk-ELHJSRS2.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SIWEJwtBearerAuth
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JLDFMYAH.mjs";
|
|
4
4
|
import {
|
|
5
5
|
SRPJwtBearerAuth
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-Y46NMA3V.mjs";
|
|
7
7
|
import {
|
|
8
8
|
getNonce,
|
|
9
9
|
pairIdentifiers
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WB6MUIML.mjs";
|
|
11
11
|
import {
|
|
12
12
|
PairError,
|
|
13
13
|
UnsupportedAuthTypeError
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
__privateGet,
|
|
18
18
|
__privateMethod,
|
|
19
19
|
__privateSet
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-U5UIDVOO.mjs";
|
|
21
21
|
|
|
22
22
|
// src/sdk/authentication.ts
|
|
23
23
|
var _type, _env, _sdk, _assertSIWE, assertSIWE_fn;
|
|
@@ -103,4 +103,4 @@ assertSIWE_fn = function(type, sdk) {
|
|
|
103
103
|
export {
|
|
104
104
|
JwtBearerAuth
|
|
105
105
|
};
|
|
106
|
-
//# sourceMappingURL=chunk-
|
|
106
|
+
//# sourceMappingURL=chunk-FCT2LIGH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/env.ts"],"sourcesContent":["export enum Env {\n DEV = 'dev',\n UAT = 'uat',\n PRD = 'prd',\n}\n\nexport enum Platform {\n MOBILE = 'mobile',\n EXTENSION = 'extension',\n PORTFOLIO = 'portfolio',\n INFURA = 'infura',\n}\n\ntype EnvUrlsEntry = {\n authApiUrl: string;\n oidcApiUrl: string;\n userStorageApiUrl: string;\n};\n\nconst ENV_URLS: Record<Env, EnvUrlsEntry> = {\n dev: {\n authApiUrl: 'https://authentication.dev-api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.dev-api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.dev-api.cx.metamask.io',\n },\n uat: {\n authApiUrl: 'https://authentication.uat-api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.uat-api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.uat-api.cx.metamask.io',\n },\n prd: {\n authApiUrl: 'https://authentication.api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.api.cx.metamask.io',\n },\n};\n\n/**\n * Validates and returns correct environment endpoints\n *\n * @param env - environment field\n * @returns the correct environment url\n * @throws on invalid environment passed\n */\nexport function getEnvUrls(env: Env): EnvUrlsEntry {\n if (!ENV_URLS[env]) {\n throw new Error('invalid environment configuration');\n }\n return ENV_URLS[env];\n}\n\n/**\n * Returns the valid OIDC Client ID (used during authorization)\n *\n * @param env - environment field\n * @param platform - platform field\n * @returns the OIDC client id for the environment\n */\nexport function getOidcClientId(env: Env, platform: Platform): string {\n const clientIds = {\n [Env.DEV]: {\n [Platform.PORTFOLIO]: 'c7ca94a0-5d52-4635-9502-1a50a9c410cc',\n [Platform.MOBILE]: 'e83c7cc9-267d-4fb4-8fec-f0e3bbe5ae8e',\n [Platform.EXTENSION]: 'f1a963d7-50dc-4cb5-8d81-f1f3654f0df3',\n [Platform.INFURA]: 'bd887006-0d55-481a-a395-5ff9a0dc52c9',\n },\n [Env.UAT]: {\n [Platform.PORTFOLIO]: '8f2dd4ac-db07-4819-9ba5-1ee0ec1b56d1',\n [Platform.MOBILE]: 'c3cfdcd2-51d6-4fae-ad2c-ff238c8fef53',\n [Platform.EXTENSION]: 'a9de167c-c9a6-43d8-af39-d301fd44c485',\n [Platform.INFURA]: '01929890-7002-4c97-9913-8f6c09a6d674',\n },\n [Env.PRD]: {\n [Platform.PORTFOLIO]: '35e1cd62-49c5-4be8-8b6e-a5212f2d2cfb',\n [Platform.MOBILE]: '75fa62a3-9ca0-4b91-9fe5-76bec86b0257',\n [Platform.EXTENSION]: '1132f10a-b4e5-4390-a5f2-d9c6022db564',\n [Platform.INFURA]: '', // unset\n },\n };\n\n if (!clientIds[env]) {\n throw new Error(`invalid env ${env}: cannot determine oidc client id`);\n }\n\n if (!clientIds[env][platform]) {\n throw new Error(\n `invalid env ${env} and platform ${platform} combination: cannot determine oidc client id`,\n );\n }\n\n return clientIds[env][platform];\n}\n"],"mappings":";AAAO,IAAK,MAAL,kBAAKA,SAAL;AACL,EAAAA,KAAA,SAAM;AACN,EAAAA,KAAA,SAAM;AACN,EAAAA,KAAA,SAAM;AAHI,SAAAA;AAAA,GAAA;AAML,IAAK,WAAL,kBAAKC,cAAL;AACL,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,YAAS;AAJC,SAAAA;AAAA,GAAA;AAaZ,IAAM,WAAsC;AAAA,EAC1C,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AACF;AASO,SAAS,WAAW,KAAwB;AACjD,MAAI,CAAC,SAAS,GAAG,GAAG;AAClB,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AACA,SAAO,SAAS,GAAG;AACrB;AASO,SAAS,gBAAgB,KAAU,UAA4B;AACpE,QAAM,YAAY;AAAA,IAChB,CAAC,eAAO,GAAG;AAAA,MACT,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,MACnB,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,IACrB;AAAA,IACA,CAAC,eAAO,GAAG;AAAA,MACT,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,MACnB,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,IACrB;AAAA,IACA,CAAC,eAAO,GAAG;AAAA,MACT,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,MACnB,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA;AAAA,IACrB;AAAA,EACF;AAEA,MAAI,CAAC,UAAU,GAAG,GAAG;AACnB,UAAM,IAAI,MAAM,eAAe,GAAG,mCAAmC;AAAA,EACvE;AAEA,MAAI,CAAC,UAAU,GAAG,EAAE,QAAQ,GAAG;AAC7B,UAAM,IAAI;AAAA,MACR,eAAe,GAAG,iBAAiB,QAAQ;AAAA,IAC7C;AAAA,EACF;AAEA,SAAO,UAAU,GAAG,EAAE,QAAQ;AAChC;","names":["Env","Platform"]}
|