@metamask/profile-sync-controller 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -1
- package/dist/chunk-26CCETCM.mjs +70 -0
- package/dist/chunk-2MVOZPBN.js +98 -0
- package/dist/chunk-2MVOZPBN.js.map +1 -0
- package/dist/chunk-3FJQHCCQ.mjs +106 -0
- package/dist/chunk-3FJQHCCQ.mjs.map +1 -0
- package/dist/chunk-4OMJ7A6A.js +77 -0
- package/dist/chunk-4OMJ7A6A.js.map +1 -0
- package/dist/chunk-6P6CUKKI.mjs +30 -0
- package/dist/chunk-6P6CUKKI.mjs.map +1 -0
- package/dist/{chunk-OF3TQWGX.js → chunk-6TK7544L.js} +34 -34
- package/dist/chunk-6TK7544L.js.map +1 -0
- package/dist/chunk-76VRE4BI.mjs +18 -0
- package/dist/chunk-76VRE4BI.mjs.map +1 -0
- package/dist/chunk-772MKTIO.mjs +25 -0
- package/dist/chunk-772MKTIO.mjs.map +1 -0
- package/dist/chunk-7FCK4BY3.js +25 -0
- package/dist/chunk-7FCK4BY3.js.map +1 -0
- package/dist/{chunk-CYGZ4WLJ.mjs → chunk-7VMXBDXN.mjs} +36 -5
- package/dist/chunk-7VMXBDXN.mjs.map +1 -0
- package/dist/chunk-ARWL2LBB.js +273 -0
- package/dist/chunk-ARWL2LBB.js.map +1 -0
- package/dist/chunk-BFE6TB7Y.mjs +11 -0
- package/dist/chunk-BFE6TB7Y.mjs.map +1 -0
- package/dist/chunk-BVM4HBM4.js +112 -0
- package/dist/chunk-BVM4HBM4.js.map +1 -0
- package/dist/chunk-DHHBHLVN.mjs +70 -0
- package/dist/chunk-DHHBHLVN.mjs.map +1 -0
- package/dist/chunk-DLXLU44Z.js +106 -0
- package/dist/chunk-DLXLU44Z.js.map +1 -0
- package/dist/chunk-GJJT2CAL.js +3342 -0
- package/dist/chunk-GJJT2CAL.js.map +1 -0
- package/dist/{chunk-VZXD5DCQ.js → chunk-GLDUXN2T.js} +36 -27
- package/dist/chunk-GLDUXN2T.js.map +1 -0
- package/dist/chunk-GLS4QZF6.mjs +77 -0
- package/dist/chunk-GLS4QZF6.mjs.map +1 -0
- package/dist/chunk-H25EBXG5.mjs +58 -0
- package/dist/chunk-H25EBXG5.mjs.map +1 -0
- package/dist/chunk-IPSBQ3MS.js +30 -0
- package/dist/chunk-IPSBQ3MS.js.map +1 -0
- package/dist/chunk-IZHWP5VW.mjs +79 -0
- package/dist/chunk-IZHWP5VW.mjs.map +1 -0
- package/dist/chunk-JAGWB4JI.mjs +102 -0
- package/dist/chunk-JAGWB4JI.mjs.map +1 -0
- package/dist/chunk-JMU3OVPK.mjs +3342 -0
- package/dist/chunk-JMU3OVPK.mjs.map +1 -0
- package/dist/chunk-JTDFOATG.js +11 -0
- package/dist/chunk-JTDFOATG.js.map +1 -0
- package/dist/chunk-JWTNHCVG.js +158 -0
- package/dist/chunk-JWTNHCVG.js.map +1 -0
- package/dist/chunk-K6G7X6PX.js +70 -0
- package/dist/chunk-K6G7X6PX.js.map +1 -0
- package/dist/chunk-LHDVZNW5.js +126 -0
- package/dist/chunk-LHDVZNW5.js.map +1 -0
- package/dist/{chunk-VXPVURGH.mjs → chunk-LN2BY2QF.mjs} +9 -9
- package/dist/chunk-LN2BY2QF.mjs.map +1 -0
- package/dist/{chunk-6X6I3HZU.js → chunk-LUKNP4HM.js} +28 -26
- package/dist/chunk-LUKNP4HM.js.map +1 -0
- package/dist/{chunk-GQLHSQGZ.js → chunk-MBTBE4P5.js} +9 -2
- package/dist/chunk-MBTBE4P5.js.map +1 -0
- package/dist/chunk-PCOIRDTO.js +18 -0
- package/dist/chunk-PCOIRDTO.js.map +1 -0
- package/dist/chunk-PNZGAAT4.mjs +273 -0
- package/dist/chunk-PNZGAAT4.mjs.map +1 -0
- package/dist/chunk-PRDECQM6.mjs +221 -0
- package/dist/chunk-PRDECQM6.mjs.map +1 -0
- package/dist/chunk-QE2F5AZL.mjs +158 -0
- package/dist/chunk-QE2F5AZL.mjs.map +1 -0
- package/dist/chunk-QHL6SQTC.mjs +112 -0
- package/dist/chunk-QHL6SQTC.mjs.map +1 -0
- package/dist/chunk-QILE6KIE.js +79 -0
- package/dist/chunk-QILE6KIE.js.map +1 -0
- package/dist/{chunk-CFST6GWE.js → chunk-T77FC4PB.js} +1 -1
- package/dist/chunk-T77FC4PB.js.map +1 -0
- package/dist/{chunk-BHVT2QEA.mjs → chunk-TFFQFIJV.mjs} +8 -1
- package/dist/chunk-TFFQFIJV.mjs.map +1 -0
- package/dist/chunk-UAXWZN5J.js +58 -0
- package/dist/chunk-UAXWZN5J.js.map +1 -0
- package/dist/{chunk-CZ7YK35S.mjs → chunk-UEZI2POO.mjs} +7 -5
- package/dist/{chunk-CZ7YK35S.mjs.map → chunk-UEZI2POO.mjs.map} +1 -1
- package/dist/{chunk-4NGEEDGV.mjs → chunk-UWRKMJBI.mjs} +9 -9
- package/dist/chunk-UWRKMJBI.mjs.map +1 -0
- package/dist/chunk-V46WVGWN.js +70 -0
- package/dist/{chunk-UMKBFFZ5.mjs → chunk-VTM5T7Y4.mjs} +13 -4
- package/dist/chunk-VTM5T7Y4.mjs.map +1 -0
- package/dist/chunk-VYE2DKST.js +102 -0
- package/dist/chunk-VYE2DKST.js.map +1 -0
- package/dist/chunk-W7JFFMEZ.mjs +98 -0
- package/dist/chunk-W7JFFMEZ.mjs.map +1 -0
- package/dist/chunk-WAS6V24H.js +221 -0
- package/dist/chunk-WAS6V24H.js.map +1 -0
- package/dist/{chunk-NRH6O4QZ.js → chunk-XUPRRLBI.js} +45 -14
- package/dist/chunk-XUPRRLBI.js.map +1 -0
- package/dist/{chunk-2FZSWVHT.mjs → chunk-YWA77VMP.mjs} +1 -1
- package/dist/chunk-YWA77VMP.mjs.map +1 -0
- package/dist/controllers/authentication/AuthenticationController.js +22 -0
- package/dist/controllers/authentication/AuthenticationController.mjs +22 -0
- package/dist/controllers/authentication/auth-snap-requests.js +10 -0
- package/dist/controllers/authentication/auth-snap-requests.mjs +10 -0
- package/dist/controllers/authentication/index.js +27 -0
- package/dist/controllers/authentication/index.js.map +1 -0
- package/dist/controllers/authentication/index.mjs +27 -0
- package/dist/controllers/authentication/index.mjs.map +1 -0
- package/dist/controllers/authentication/services.js +32 -0
- package/dist/controllers/authentication/services.js.map +1 -0
- package/dist/controllers/authentication/services.mjs +32 -0
- package/dist/controllers/authentication/services.mjs.map +1 -0
- package/dist/controllers/index.js +35 -0
- package/dist/controllers/index.js.map +1 -0
- package/dist/controllers/index.mjs +35 -0
- package/dist/controllers/index.mjs.map +1 -0
- package/dist/controllers/user-storage/UserStorageController.js +27 -0
- package/dist/controllers/user-storage/UserStorageController.js.map +1 -0
- package/dist/controllers/user-storage/UserStorageController.mjs +27 -0
- package/dist/controllers/user-storage/UserStorageController.mjs.map +1 -0
- package/dist/controllers/user-storage/encryption/cache.js +13 -0
- package/dist/controllers/user-storage/encryption/cache.js.map +1 -0
- package/dist/controllers/user-storage/encryption/cache.mjs +13 -0
- package/dist/controllers/user-storage/encryption/cache.mjs.map +1 -0
- package/dist/controllers/user-storage/encryption/encryption.js +12 -0
- package/dist/controllers/user-storage/encryption/encryption.js.map +1 -0
- package/dist/controllers/user-storage/encryption/encryption.mjs +12 -0
- package/dist/controllers/user-storage/encryption/encryption.mjs.map +1 -0
- package/dist/controllers/user-storage/encryption/index.js +16 -0
- package/dist/controllers/user-storage/encryption/index.js.map +1 -0
- package/dist/controllers/user-storage/encryption/index.mjs +16 -0
- package/dist/controllers/user-storage/encryption/index.mjs.map +1 -0
- package/dist/controllers/user-storage/encryption/utils.js +12 -0
- package/dist/controllers/user-storage/encryption/utils.js.map +1 -0
- package/dist/controllers/user-storage/encryption/utils.mjs +12 -0
- package/dist/controllers/user-storage/encryption/utils.mjs.map +1 -0
- package/dist/controllers/user-storage/index.js +37 -0
- package/dist/controllers/user-storage/index.js.map +1 -0
- package/dist/controllers/user-storage/index.mjs +37 -0
- package/dist/controllers/user-storage/index.mjs.map +1 -0
- package/dist/controllers/user-storage/schema.js +14 -0
- package/dist/controllers/user-storage/schema.js.map +1 -0
- package/dist/controllers/user-storage/schema.mjs +14 -0
- package/dist/controllers/user-storage/schema.mjs.map +1 -0
- package/dist/controllers/user-storage/services.js +31 -0
- package/dist/controllers/user-storage/services.js.map +1 -0
- package/dist/controllers/user-storage/services.mjs +31 -0
- package/dist/controllers/user-storage/services.mjs.map +1 -0
- package/dist/index.js +32 -62
- package/dist/index.mjs +33 -63
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.js +7 -8
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.mjs +6 -7
- package/dist/sdk/authentication-jwt-bearer/flow-srp.js +7 -8
- package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs +6 -7
- package/dist/sdk/authentication-jwt-bearer/services.js +10 -6
- package/dist/sdk/authentication-jwt-bearer/services.mjs +11 -7
- 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 +9 -10
- package/dist/sdk/authentication.mjs +8 -9
- package/dist/sdk/encryption.js +5 -3
- package/dist/sdk/encryption.mjs +4 -2
- package/dist/sdk/env.js +5 -3
- package/dist/sdk/env.mjs +4 -2
- package/dist/sdk/errors.js +5 -3
- package/dist/sdk/errors.mjs +4 -2
- package/dist/sdk/index.js +18 -13
- package/dist/sdk/index.mjs +17 -12
- package/dist/sdk/user-storage.js +6 -6
- package/dist/sdk/user-storage.mjs +5 -5
- 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 +73 -0
- package/dist/types/controllers/authentication/AuthenticationController.d.ts.map +1 -0
- package/dist/types/controllers/authentication/__fixtures__/index.d.ts +3 -0
- package/dist/types/controllers/authentication/__fixtures__/index.d.ts.map +1 -0
- package/dist/types/controllers/authentication/__fixtures__/mockResponses.d.ts +23 -0
- package/dist/types/controllers/authentication/__fixtures__/mockResponses.d.ts.map +1 -0
- package/dist/types/controllers/authentication/__fixtures__/mockServices.d.ts +10 -0
- package/dist/types/controllers/authentication/__fixtures__/mockServices.d.ts.map +1 -0
- package/dist/types/controllers/authentication/auth-snap-requests.d.ts +17 -0
- package/dist/types/controllers/authentication/auth-snap-requests.d.ts.map +1 -0
- package/dist/types/controllers/authentication/index.d.ts +5 -0
- package/dist/types/controllers/authentication/index.d.ts.map +1 -0
- package/dist/types/controllers/authentication/services.d.ts +69 -0
- package/dist/types/controllers/authentication/services.d.ts.map +1 -0
- package/dist/types/controllers/index.d.ts +3 -0
- package/dist/types/controllers/index.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/UserStorageController.d.ts +84 -0
- package/dist/types/controllers/user-storage/UserStorageController.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/__fixtures__/index.d.ts +4 -0
- package/dist/types/controllers/user-storage/__fixtures__/index.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/__fixtures__/mockResponses.d.ts +13 -0
- package/dist/types/controllers/user-storage/__fixtures__/mockResponses.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/__fixtures__/mockServices.d.ts +9 -0
- package/dist/types/controllers/user-storage/__fixtures__/mockServices.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/__fixtures__/mockStorage.d.ts +5 -0
- package/dist/types/controllers/user-storage/__fixtures__/mockStorage.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/encryption/cache.d.ts +31 -0
- package/dist/types/controllers/user-storage/encryption/cache.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/encryption/encryption.d.ts +26 -0
- package/dist/types/controllers/user-storage/encryption/encryption.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/encryption/index.d.ts +5 -0
- package/dist/types/controllers/user-storage/encryption/index.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/encryption/utils.d.ts +4 -0
- package/dist/types/controllers/user-storage/encryption/utils.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/index.d.ts +6 -0
- package/dist/types/controllers/user-storage/index.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/schema.d.ts +22 -0
- package/dist/types/controllers/user-storage/schema.d.ts.map +1 -0
- package/dist/types/controllers/user-storage/services.d.ts +30 -0
- package/dist/types/controllers/user-storage/services.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/sdk/__fixtures__/mock-auth.d.ts +3 -0
- package/dist/types/sdk/__fixtures__/mock-auth.d.ts.map +1 -1
- package/dist/types/sdk/__fixtures__/mock-userstorage.d.ts.map +1 -1
- package/dist/types/sdk/__fixtures__/test-utils.d.ts.map +1 -1
- package/dist/types/sdk/authentication-jwt-bearer/flow-siwe.d.ts.map +1 -1
- package/dist/types/sdk/authentication-jwt-bearer/flow-srp.d.ts.map +1 -1
- package/dist/types/sdk/authentication-jwt-bearer/services.d.ts +20 -2
- package/dist/types/sdk/authentication-jwt-bearer/services.d.ts.map +1 -1
- package/dist/types/sdk/authentication-jwt-bearer/types.d.ts +8 -1
- package/dist/types/sdk/authentication-jwt-bearer/types.d.ts.map +1 -1
- package/dist/types/sdk/authentication.d.ts +2 -1
- package/dist/types/sdk/authentication.d.ts.map +1 -1
- package/dist/types/sdk/encryption.d.ts +2 -2
- package/dist/types/sdk/encryption.d.ts.map +1 -1
- package/dist/types/sdk/env.d.ts +8 -1
- package/dist/types/sdk/env.d.ts.map +1 -1
- package/dist/types/sdk/errors.d.ts +3 -0
- package/dist/types/sdk/errors.d.ts.map +1 -1
- package/dist/types/sdk/user-storage.d.ts.map +1 -1
- package/package.json +15 -2
- package/dist/chunk-2FZSWVHT.mjs.map +0 -1
- package/dist/chunk-4NGEEDGV.mjs.map +0 -1
- package/dist/chunk-6X6I3HZU.js.map +0 -1
- package/dist/chunk-BARZBXO7.js +0 -7
- package/dist/chunk-BARZBXO7.js.map +0 -1
- package/dist/chunk-BHVT2QEA.mjs.map +0 -1
- package/dist/chunk-CFST6GWE.js.map +0 -1
- package/dist/chunk-CYGZ4WLJ.mjs.map +0 -1
- package/dist/chunk-DEATIRII.js +0 -1
- package/dist/chunk-GQLHSQGZ.js.map +0 -1
- package/dist/chunk-GVMIXMYB.mjs +0 -67
- package/dist/chunk-GVMIXMYB.mjs.map +0 -1
- package/dist/chunk-KHFPE566.js +0 -49
- package/dist/chunk-KHFPE566.js.map +0 -1
- package/dist/chunk-KKRIOEXD.mjs +0 -7
- package/dist/chunk-KKRIOEXD.mjs.map +0 -1
- package/dist/chunk-MKJYSWME.mjs +0 -1
- package/dist/chunk-NRH6O4QZ.js.map +0 -1
- package/dist/chunk-OF3TQWGX.js.map +0 -1
- package/dist/chunk-UMKBFFZ5.mjs.map +0 -1
- package/dist/chunk-UVJVONBF.js +0 -126
- package/dist/chunk-UVJVONBF.js.map +0 -1
- package/dist/chunk-VHUU4HEY.js +0 -67
- package/dist/chunk-VHUU4HEY.js.map +0 -1
- package/dist/chunk-VXPVURGH.mjs.map +0 -1
- package/dist/chunk-VZXD5DCQ.js.map +0 -1
- package/dist/chunk-WJRV2JCX.mjs +0 -49
- package/dist/chunk-WJRV2JCX.mjs.map +0 -1
- package/dist/chunk-XUI43LEZ.mjs +0 -30
- package/dist/chunk-Z4BLTVTB.js +0 -30
- package/dist/sdk/authentication-jwt-bearer/constants.js +0 -8
- package/dist/sdk/authentication-jwt-bearer/constants.mjs +0 -8
- package/dist/types/sdk/authentication-jwt-bearer/constants.d.ts +0 -2
- package/dist/types/sdk/authentication-jwt-bearer/constants.d.ts.map +0 -1
- /package/dist/{chunk-MKJYSWME.mjs.map → chunk-26CCETCM.mjs.map} +0 -0
- /package/dist/{chunk-DEATIRII.js.map → chunk-V46WVGWN.js.map} +0 -0
- /package/dist/{chunk-Z4BLTVTB.js.map → controllers/authentication/AuthenticationController.js.map} +0 -0
- /package/dist/{chunk-XUI43LEZ.mjs.map → controllers/authentication/AuthenticationController.mjs.map} +0 -0
- /package/dist/{sdk/authentication-jwt-bearer/constants.js.map → controllers/authentication/auth-snap-requests.js.map} +0 -0
- /package/dist/{sdk/authentication-jwt-bearer/constants.mjs.map → controllers/authentication/auth-snap-requests.mjs.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,4 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
[
|
|
10
|
+
## [0.1.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Initial release
|
|
15
|
+
|
|
16
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/profile-sync-controller@0.1.0...HEAD
|
|
17
|
+
[0.1.0]: https://github.com/MetaMask/core/releases/tag/@metamask/profile-sync-controller@0.1.0
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
8
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
9
|
+
}) : x)(function(x) {
|
|
10
|
+
if (typeof require !== "undefined")
|
|
11
|
+
return require.apply(this, arguments);
|
|
12
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
13
|
+
});
|
|
14
|
+
var __commonJS = (cb, mod) => function __require2() {
|
|
15
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
16
|
+
};
|
|
17
|
+
var __export = (target, all) => {
|
|
18
|
+
for (var name in all)
|
|
19
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
20
|
+
};
|
|
21
|
+
var __copyProps = (to, from, except, desc) => {
|
|
22
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
23
|
+
for (let key of __getOwnPropNames(from))
|
|
24
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
25
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
26
|
+
}
|
|
27
|
+
return to;
|
|
28
|
+
};
|
|
29
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
30
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
31
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
32
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
33
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
34
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
35
|
+
mod
|
|
36
|
+
));
|
|
37
|
+
var __accessCheck = (obj, member, msg) => {
|
|
38
|
+
if (!member.has(obj))
|
|
39
|
+
throw TypeError("Cannot " + msg);
|
|
40
|
+
};
|
|
41
|
+
var __privateGet = (obj, member, getter) => {
|
|
42
|
+
__accessCheck(obj, member, "read from private field");
|
|
43
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
44
|
+
};
|
|
45
|
+
var __privateAdd = (obj, member, value) => {
|
|
46
|
+
if (member.has(obj))
|
|
47
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
48
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
49
|
+
};
|
|
50
|
+
var __privateSet = (obj, member, value, setter) => {
|
|
51
|
+
__accessCheck(obj, member, "write to private field");
|
|
52
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
53
|
+
return value;
|
|
54
|
+
};
|
|
55
|
+
var __privateMethod = (obj, member, method) => {
|
|
56
|
+
__accessCheck(obj, member, "access private method");
|
|
57
|
+
return method;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export {
|
|
61
|
+
__require,
|
|
62
|
+
__commonJS,
|
|
63
|
+
__export,
|
|
64
|
+
__toESM,
|
|
65
|
+
__privateGet,
|
|
66
|
+
__privateAdd,
|
|
67
|
+
__privateSet,
|
|
68
|
+
__privateMethod
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=chunk-26CCETCM.mjs.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunk4OMJ7A6Ajs = require('./chunk-4OMJ7A6A.js');
|
|
5
|
+
|
|
6
|
+
// src/controllers/authentication/services.ts
|
|
7
|
+
var ENV_URLS = _chunk4OMJ7A6Ajs.getEnvUrls.call(void 0, "prd" /* PRD */);
|
|
8
|
+
var AUTH_ENDPOINT = ENV_URLS.authApiUrl;
|
|
9
|
+
var AUTH_NONCE_ENDPOINT = `${AUTH_ENDPOINT}/api/v2/nonce`;
|
|
10
|
+
var AUTH_LOGIN_ENDPOINT = `${AUTH_ENDPOINT}/api/v2/srp/login`;
|
|
11
|
+
var OIDC_ENDPOINT = ENV_URLS.oidcApiUrl || "";
|
|
12
|
+
var OIDC_TOKENS_ENDPOINT = `${OIDC_ENDPOINT}/oauth2/token`;
|
|
13
|
+
var OIDC_CLIENT_ID = _chunk4OMJ7A6Ajs.getOidcClientId.call(void 0, "prd" /* PRD */, "extension" /* EXTENSION */);
|
|
14
|
+
var OIDC_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:jwt-bearer";
|
|
15
|
+
async function getNonce(publicKey) {
|
|
16
|
+
const nonceUrl = new URL(AUTH_NONCE_ENDPOINT);
|
|
17
|
+
nonceUrl.searchParams.set("identifier", publicKey);
|
|
18
|
+
try {
|
|
19
|
+
const nonceResponse = await fetch(nonceUrl.toString());
|
|
20
|
+
if (!nonceResponse.ok) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const nonceJson = await nonceResponse.json();
|
|
24
|
+
return nonceJson?.nonce ?? null;
|
|
25
|
+
} catch (e) {
|
|
26
|
+
console.error("authentication-controller/services: unable to get nonce", e);
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async function login(rawMessage, signature, clientMetaMetrics) {
|
|
31
|
+
try {
|
|
32
|
+
const response = await fetch(AUTH_LOGIN_ENDPOINT, {
|
|
33
|
+
method: "POST",
|
|
34
|
+
headers: {
|
|
35
|
+
"Content-Type": "application/json"
|
|
36
|
+
},
|
|
37
|
+
body: JSON.stringify({
|
|
38
|
+
signature,
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
40
|
+
raw_message: rawMessage,
|
|
41
|
+
metametrics: {
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
43
|
+
metametrics_id: clientMetaMetrics.metametricsId,
|
|
44
|
+
agent: clientMetaMetrics.agent
|
|
45
|
+
}
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
if (!response.ok) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const loginResponse = await response.json();
|
|
52
|
+
return loginResponse ?? null;
|
|
53
|
+
} catch (e) {
|
|
54
|
+
console.error("authentication-controller/services: unable to login", e);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function getAccessToken(jwtToken) {
|
|
59
|
+
const headers = new Headers({
|
|
60
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
61
|
+
});
|
|
62
|
+
const urlEncodedBody = new URLSearchParams();
|
|
63
|
+
urlEncodedBody.append("grant_type", OIDC_GRANT_TYPE);
|
|
64
|
+
urlEncodedBody.append("client_id", OIDC_CLIENT_ID);
|
|
65
|
+
urlEncodedBody.append("assertion", jwtToken);
|
|
66
|
+
try {
|
|
67
|
+
const response = await fetch(OIDC_TOKENS_ENDPOINT, {
|
|
68
|
+
method: "POST",
|
|
69
|
+
headers,
|
|
70
|
+
body: urlEncodedBody.toString()
|
|
71
|
+
});
|
|
72
|
+
if (!response.ok) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const accessTokenResponse = await response.json();
|
|
76
|
+
return accessTokenResponse?.access_token ?? null;
|
|
77
|
+
} catch (e) {
|
|
78
|
+
console.error(
|
|
79
|
+
"authentication-controller/services: unable to get access token",
|
|
80
|
+
e
|
|
81
|
+
);
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function createLoginRawMessage(nonce, publicKey) {
|
|
86
|
+
return `metamask:${nonce}:${publicKey}`;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
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-2MVOZPBN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/controllers/authentication/services.ts"],"names":[],"mappings":";;;;;;AAEA,IAAM,WAAW,0BAAkB;AAEnC,IAAM,gBAAwB,SAAS;AAChC,IAAM,sBAAsB,GAAG,aAAa;AAC5C,IAAM,sBAAsB,GAAG,aAAa;AAEnD,IAAM,gBAAwB,SAAS,cAAc;AAC9C,IAAM,uBAAuB,GAAG,aAAa;AACpD,IAAM,iBAAiB,4DAA2C;AAClE,IAAM,kBAAkB;AAYxB,eAAsB,SAAS,WAA2C;AACxE,QAAM,WAAW,IAAI,IAAI,mBAAmB;AAC5C,WAAS,aAAa,IAAI,cAAc,SAAS;AAEjD,MAAI;AACF,UAAM,gBAAgB,MAAM,MAAM,SAAS,SAAS,CAAC;AACrD,QAAI,CAAC,cAAc,IAAI;AACrB,aAAO;AAAA,IACT;AAEA,UAAM,YAA2B,MAAM,cAAc,KAAK;AAC1D,WAAO,WAAW,SAAS;AAAA,EAC7B,SAAS,GAAG;AACV,YAAQ,MAAM,2DAA2D,CAAC;AAC1E,WAAO;AAAA,EACT;AACF;AAqCA,eAAsB,MACpB,YACA,WACA,mBAC+B;AAC/B,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,qBAAqB;AAAA,MAChD,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA;AAAA,QAEA,aAAa;AAAA,QACb,aAAa;AAAA;AAAA,UAEX,gBAAgB,kBAAkB;AAAA,UAClC,OAAO,kBAAkB;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,aAAO;AAAA,IACT;AAEA,UAAM,gBAA+B,MAAM,SAAS,KAAK;AACzD,WAAO,iBAAiB;AAAA,EAC1B,SAAS,GAAG;AACV,YAAQ,MAAM,uDAAuD,CAAC;AACtE,WAAO;AAAA,EACT;AACF;AAmBA,eAAsB,eAAe,UAA0C;AAC7E,QAAM,UAAU,IAAI,QAAQ;AAAA,IAC1B,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,iBAAiB,IAAI,gBAAgB;AAC3C,iBAAe,OAAO,cAAc,eAAe;AACnD,iBAAe,OAAO,aAAa,cAAc;AACjD,iBAAe,OAAO,aAAa,QAAQ;AAE3C,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,sBAAsB;AAAA,MACjD,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,eAAe,SAAS;AAAA,IAChC,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,aAAO;AAAA,IACT;AAEA,UAAM,sBAA0C,MAAM,SAAS,KAAK;AACpE,WAAO,qBAAqB,gBAAgB;AAAA,EAC9C,SAAS,GAAG;AACV,YAAQ;AAAA,MACN;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AASO,SAAS,sBACd,OACA,WACgC;AAChC,SAAO,YAAY,KAAK,IAAI,SAAS;AACvC","sourcesContent":["import { Env, Platform, getEnvUrls, getOidcClientId } from '../../sdk';\n\nconst ENV_URLS = getEnvUrls(Env.PRD);\n\nconst AUTH_ENDPOINT: string = ENV_URLS.authApiUrl;\nexport const AUTH_NONCE_ENDPOINT = `${AUTH_ENDPOINT}/api/v2/nonce`;\nexport const AUTH_LOGIN_ENDPOINT = `${AUTH_ENDPOINT}/api/v2/srp/login`;\n\nconst OIDC_ENDPOINT: string = ENV_URLS.oidcApiUrl || '';\nexport const OIDC_TOKENS_ENDPOINT = `${OIDC_ENDPOINT}/oauth2/token`;\nconst OIDC_CLIENT_ID = getOidcClientId(Env.PRD, Platform.EXTENSION);\nconst OIDC_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:jwt-bearer';\n\nexport type NonceResponse = {\n nonce: string;\n};\n\n/**\n * Auth Service - Get Nonce. Used for the initial JWTBearer flow\n *\n * @param publicKey - public key to associate a nonce with\n * @returns the nonce or null if failed\n */\nexport async function getNonce(publicKey: string): Promise<string | null> {\n const nonceUrl = new URL(AUTH_NONCE_ENDPOINT);\n nonceUrl.searchParams.set('identifier', publicKey);\n\n try {\n const nonceResponse = await fetch(nonceUrl.toString());\n if (!nonceResponse.ok) {\n return null;\n }\n\n const nonceJson: NonceResponse = await nonceResponse.json();\n return nonceJson?.nonce ?? null;\n } catch (e) {\n console.error('authentication-controller/services: unable to get nonce', e);\n return null;\n }\n}\n\n/**\n * The Login API Server Response Shape\n */\nexport type LoginResponse = {\n token: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: string;\n /**\n * Contains anonymous information about the logged in profile.\n *\n * @property identifier_id - a deterministic unique identifier on the method used to sign in\n * @property profile_id - a unique id for a given profile\n * @property metametrics_id - an anonymous server id\n */\n profile: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n identifier_id: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n profile_id: string;\n };\n};\n\ntype ClientMetaMetrics = {\n metametricsId: string;\n agent: 'extension' | 'mobile';\n};\n\n/**\n * Auth Service - Login. Will perform login with a given signature and will return a single use JWT Token.\n *\n * @param rawMessage - the original message before signing\n * @param signature - the signed message\n * @param clientMetaMetrics - optional client metametrics id (to associate on backend)\n * @returns The Login Response\n */\nexport async function login(\n rawMessage: string,\n signature: string,\n clientMetaMetrics: ClientMetaMetrics,\n): Promise<LoginResponse | null> {\n try {\n const response = await fetch(AUTH_LOGIN_ENDPOINT, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n signature,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n raw_message: rawMessage,\n metametrics: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n metametrics_id: clientMetaMetrics.metametricsId,\n agent: clientMetaMetrics.agent,\n },\n }),\n });\n\n if (!response.ok) {\n return null;\n }\n\n const loginResponse: LoginResponse = await response.json();\n return loginResponse ?? null;\n } catch (e) {\n console.error('authentication-controller/services: unable to login', e);\n return null;\n }\n}\n\n/**\n * The Auth API Token Response Shape\n */\nexport type OAuthTokenResponse = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n access_token: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: number;\n};\n\n/**\n * OIDC Service - Access Token. Trades the Auth Token for an access token (to be used for other authenticated endpoints)\n * NOTE - the access token is short lived, which means it is best practice to validate session before calling authenticated endpoints\n *\n * @param jwtToken - the JWT Auth Token, received from `/login`\n * @returns JWT Access token to store and use on authorized endpoints.\n */\nexport async function getAccessToken(jwtToken: string): Promise<string | null> {\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded',\n });\n\n const urlEncodedBody = new URLSearchParams();\n urlEncodedBody.append('grant_type', OIDC_GRANT_TYPE);\n urlEncodedBody.append('client_id', OIDC_CLIENT_ID);\n urlEncodedBody.append('assertion', jwtToken);\n\n try {\n const response = await fetch(OIDC_TOKENS_ENDPOINT, {\n method: 'POST',\n headers,\n body: urlEncodedBody.toString(),\n });\n\n if (!response.ok) {\n return null;\n }\n\n const accessTokenResponse: OAuthTokenResponse = await response.json();\n return accessTokenResponse?.access_token ?? null;\n } catch (e) {\n console.error(\n 'authentication-controller/services: unable to get access token',\n e,\n );\n return null;\n }\n}\n\n/**\n * Utility to create the raw login message for the JWT bearer flow (via SRP)\n *\n * @param nonce - nonce received from `/nonce` endpoint\n * @param publicKey - public key used to retrieve nonce and for message signing\n * @returns Raw Message which will be used for signing & logging in.\n */\nexport function createLoginRawMessage(\n nonce: string,\n publicKey: string,\n): `metamask:${string}:${string}` {\n return `metamask:${nonce}:${publicKey}` as const;\n}\n"]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SIWEJwtBearerAuth
|
|
3
|
+
} from "./chunk-UWRKMJBI.mjs";
|
|
4
|
+
import {
|
|
5
|
+
SRPJwtBearerAuth
|
|
6
|
+
} from "./chunk-LN2BY2QF.mjs";
|
|
7
|
+
import {
|
|
8
|
+
getNonce,
|
|
9
|
+
pairIdentifiers
|
|
10
|
+
} from "./chunk-7VMXBDXN.mjs";
|
|
11
|
+
import {
|
|
12
|
+
PairError,
|
|
13
|
+
UnsupportedAuthTypeError
|
|
14
|
+
} from "./chunk-TFFQFIJV.mjs";
|
|
15
|
+
import {
|
|
16
|
+
__privateAdd,
|
|
17
|
+
__privateGet,
|
|
18
|
+
__privateMethod,
|
|
19
|
+
__privateSet
|
|
20
|
+
} from "./chunk-26CCETCM.mjs";
|
|
21
|
+
|
|
22
|
+
// src/sdk/authentication.ts
|
|
23
|
+
var _type, _env, _sdk, _assertSIWE, assertSIWE_fn;
|
|
24
|
+
var JwtBearerAuth = class {
|
|
25
|
+
constructor(...args) {
|
|
26
|
+
__privateAdd(this, _assertSIWE);
|
|
27
|
+
__privateAdd(this, _type, void 0);
|
|
28
|
+
__privateAdd(this, _env, void 0);
|
|
29
|
+
__privateAdd(this, _sdk, void 0);
|
|
30
|
+
__privateSet(this, _type, args[0].type);
|
|
31
|
+
__privateSet(this, _env, args[0].env);
|
|
32
|
+
if (args[0].type === "SRP" /* SRP */) {
|
|
33
|
+
__privateSet(this, _sdk, new SRPJwtBearerAuth(args[0], args[1]));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (args[0].type === "SiWE" /* SiWE */) {
|
|
37
|
+
__privateSet(this, _sdk, new SIWEJwtBearerAuth(args[0], args[1]));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
throw new UnsupportedAuthTypeError("unsupported auth type");
|
|
41
|
+
}
|
|
42
|
+
async getAccessToken() {
|
|
43
|
+
return await __privateGet(this, _sdk).getAccessToken();
|
|
44
|
+
}
|
|
45
|
+
async getUserProfile() {
|
|
46
|
+
return await __privateGet(this, _sdk).getUserProfile();
|
|
47
|
+
}
|
|
48
|
+
async getIdentifier() {
|
|
49
|
+
return await __privateGet(this, _sdk).getIdentifier();
|
|
50
|
+
}
|
|
51
|
+
async signMessage(message) {
|
|
52
|
+
return await __privateGet(this, _sdk).signMessage(message);
|
|
53
|
+
}
|
|
54
|
+
async pairIdentifiers(pairing) {
|
|
55
|
+
const profile = await this.getUserProfile();
|
|
56
|
+
const n = await getNonce(profile.profileId, __privateGet(this, _env));
|
|
57
|
+
const logins = await Promise.all(
|
|
58
|
+
pairing.map(async (p) => {
|
|
59
|
+
try {
|
|
60
|
+
const raw = `metamask:${n.nonce}:${p.identifier}`;
|
|
61
|
+
const sig = await p.signMessage(raw);
|
|
62
|
+
return {
|
|
63
|
+
signature: sig,
|
|
64
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
66
|
+
raw_message: raw,
|
|
67
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
69
|
+
encrypted_storage_key: p.encryptedStorageKey,
|
|
70
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
72
|
+
identifier_type: p.identifierType
|
|
73
|
+
};
|
|
74
|
+
} catch (e) {
|
|
75
|
+
const errorMessage = e instanceof Error ? e.message : JSON.stringify(e ?? "");
|
|
76
|
+
throw new PairError(
|
|
77
|
+
`failed to sign pairing message: ${errorMessage}`
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
})
|
|
81
|
+
);
|
|
82
|
+
const accessToken = await this.getAccessToken();
|
|
83
|
+
await pairIdentifiers(n.nonce, logins, accessToken, __privateGet(this, _env));
|
|
84
|
+
}
|
|
85
|
+
prepare(signer) {
|
|
86
|
+
__privateMethod(this, _assertSIWE, assertSIWE_fn).call(this, __privateGet(this, _type), __privateGet(this, _sdk));
|
|
87
|
+
__privateGet(this, _sdk).prepare(signer);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
_type = new WeakMap();
|
|
91
|
+
_env = new WeakMap();
|
|
92
|
+
_sdk = new WeakMap();
|
|
93
|
+
_assertSIWE = new WeakSet();
|
|
94
|
+
assertSIWE_fn = function(type, sdk) {
|
|
95
|
+
if (type === "SiWE" /* SiWE */) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
throw new UnsupportedAuthTypeError(
|
|
99
|
+
"This method is only available via SIWE auth type"
|
|
100
|
+
);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export {
|
|
104
|
+
JwtBearerAuth
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=chunk-3FJQHCCQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/authentication.ts"],"sourcesContent":["import { SIWEJwtBearerAuth } from './authentication-jwt-bearer/flow-siwe';\nimport { SRPJwtBearerAuth } from './authentication-jwt-bearer/flow-srp';\nimport {\n getNonce,\n pairIdentifiers,\n} from './authentication-jwt-bearer/services';\nimport type { UserProfile, Pair } from './authentication-jwt-bearer/types';\nimport { AuthType } from './authentication-jwt-bearer/types';\nimport type { Env } from './env';\nimport { PairError, UnsupportedAuthTypeError } from './errors';\n\n// Computing the Classes, so we only get back the public methods for the interface.\n// TODO: Either fix this lint violation or explain why it's necessary to ignore.\n// eslint-disable-next-line @typescript-eslint/naming-convention\ntype Compute<T> = T extends infer U ? { [K in keyof U]: U[K] } : never;\ntype SIWEInterface = Compute<SIWEJwtBearerAuth>;\ntype SRPInterface = Compute<SRPJwtBearerAuth>;\n\ntype SiweParams = ConstructorParameters<typeof SIWEJwtBearerAuth>;\ntype SRPParams = ConstructorParameters<typeof SRPJwtBearerAuth>;\ntype JwtBearerAuthParams = SiweParams | SRPParams;\n\nexport class JwtBearerAuth implements SIWEInterface, SRPInterface {\n #type: AuthType;\n\n #env: Env;\n\n #sdk: SIWEJwtBearerAuth | SRPJwtBearerAuth;\n\n constructor(...args: JwtBearerAuthParams) {\n this.#type = args[0].type;\n this.#env = args[0].env;\n\n if (args[0].type === AuthType.SRP) {\n this.#sdk = new SRPJwtBearerAuth(args[0], args[1]);\n return;\n }\n\n if (args[0].type === AuthType.SiWE) {\n this.#sdk = new SIWEJwtBearerAuth(args[0], args[1]);\n return;\n }\n\n throw new UnsupportedAuthTypeError('unsupported auth type');\n }\n\n async getAccessToken(): Promise<string> {\n return await this.#sdk.getAccessToken();\n }\n\n async getUserProfile(): Promise<UserProfile> {\n return await this.#sdk.getUserProfile();\n }\n\n async getIdentifier(): Promise<string> {\n return await this.#sdk.getIdentifier();\n }\n\n async signMessage(message: string): Promise<string> {\n return await this.#sdk.signMessage(message);\n }\n\n async pairIdentifiers(pairing: Pair[]): Promise<void> {\n const profile = await this.getUserProfile();\n const n = await getNonce(profile.profileId, this.#env);\n\n const logins = await Promise.all(\n pairing.map(async (p) => {\n try {\n const raw = `metamask:${n.nonce}:${p.identifier}`;\n const sig = await p.signMessage(raw);\n return {\n signature: sig,\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/naming-convention\n raw_message: raw,\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/naming-convention\n encrypted_storage_key: p.encryptedStorageKey,\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/naming-convention\n identifier_type: p.identifierType,\n };\n } catch (e) {\n /* istanbul ignore next */\n const errorMessage =\n e instanceof Error ? e.message : JSON.stringify(e ?? '');\n throw new PairError(\n `failed to sign pairing message: ${errorMessage}`,\n );\n }\n }),\n );\n\n const accessToken = await this.getAccessToken();\n await pairIdentifiers(n.nonce, logins, accessToken, this.#env);\n }\n\n prepare(signer: {\n address: string;\n chainId: number;\n signMessage: (message: string) => Promise<string>;\n domain: string;\n }): void {\n this.#assertSIWE(this.#type, this.#sdk);\n this.#sdk.prepare(signer);\n }\n\n #assertSIWE(\n type: AuthType,\n sdk: SIWEJwtBearerAuth | SRPJwtBearerAuth,\n ): asserts sdk is SIWEJwtBearerAuth {\n if (type === AuthType.SiWE) {\n return;\n }\n\n throw new UnsupportedAuthTypeError(\n 'This method is only available via SIWE auth type',\n );\n }\n}\n\nexport { SIWEJwtBearerAuth } from './authentication-jwt-bearer/flow-siwe';\nexport { SRPJwtBearerAuth } from './authentication-jwt-bearer/flow-srp';\nexport * from './authentication-jwt-bearer/types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAsBO,IAAM,gBAAN,MAA2D;AAAA,EAOhE,eAAe,MAA2B;AA+E1C;AArFA;AAEA;AAEA;AAGE,uBAAK,OAAQ,KAAK,CAAC,EAAE;AACrB,uBAAK,MAAO,KAAK,CAAC,EAAE;AAEpB,QAAI,KAAK,CAAC,EAAE,0BAAuB;AACjC,yBAAK,MAAO,IAAI,iBAAiB,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AACjD;AAAA,IACF;AAEA,QAAI,KAAK,CAAC,EAAE,4BAAwB;AAClC,yBAAK,MAAO,IAAI,kBAAkB,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAClD;AAAA,IACF;AAEA,UAAM,IAAI,yBAAyB,uBAAuB;AAAA,EAC5D;AAAA,EAEA,MAAM,iBAAkC;AACtC,WAAO,MAAM,mBAAK,MAAK,eAAe;AAAA,EACxC;AAAA,EAEA,MAAM,iBAAuC;AAC3C,WAAO,MAAM,mBAAK,MAAK,eAAe;AAAA,EACxC;AAAA,EAEA,MAAM,gBAAiC;AACrC,WAAO,MAAM,mBAAK,MAAK,cAAc;AAAA,EACvC;AAAA,EAEA,MAAM,YAAY,SAAkC;AAClD,WAAO,MAAM,mBAAK,MAAK,YAAY,OAAO;AAAA,EAC5C;AAAA,EAEA,MAAM,gBAAgB,SAAgC;AACpD,UAAM,UAAU,MAAM,KAAK,eAAe;AAC1C,UAAM,IAAI,MAAM,SAAS,QAAQ,WAAW,mBAAK,KAAI;AAErD,UAAM,SAAS,MAAM,QAAQ;AAAA,MAC3B,QAAQ,IAAI,OAAO,MAAM;AACvB,YAAI;AACF,gBAAM,MAAM,YAAY,EAAE,KAAK,IAAI,EAAE,UAAU;AAC/C,gBAAM,MAAM,MAAM,EAAE,YAAY,GAAG;AACnC,iBAAO;AAAA,YACL,WAAW;AAAA;AAAA;AAAA,YAGX,aAAa;AAAA;AAAA;AAAA,YAGb,uBAAuB,EAAE;AAAA;AAAA;AAAA,YAGzB,iBAAiB,EAAE;AAAA,UACrB;AAAA,QACF,SAAS,GAAG;AAEV,gBAAM,eACJ,aAAa,QAAQ,EAAE,UAAU,KAAK,UAAU,KAAK,EAAE;AACzD,gBAAM,IAAI;AAAA,YACR,mCAAmC,YAAY;AAAA,UACjD;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAEA,UAAM,cAAc,MAAM,KAAK,eAAe;AAC9C,UAAM,gBAAgB,EAAE,OAAO,QAAQ,aAAa,mBAAK,KAAI;AAAA,EAC/D;AAAA,EAEA,QAAQ,QAKC;AACP,0BAAK,4BAAL,WAAiB,mBAAK,QAAO,mBAAK;AAClC,uBAAK,MAAK,QAAQ,MAAM;AAAA,EAC1B;AAcF;AAjGE;AAEA;AAEA;AAiFA;AAAA,gBAAW,SACT,MACA,KACkC;AAClC,MAAI,4BAAwB;AAC1B;AAAA,EACF;AAEA,QAAM,IAAI;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/sdk/env.ts
|
|
2
|
+
var Env = /* @__PURE__ */ ((Env2) => {
|
|
3
|
+
Env2["DEV"] = "dev";
|
|
4
|
+
Env2["UAT"] = "uat";
|
|
5
|
+
Env2["PRD"] = "prd";
|
|
6
|
+
return Env2;
|
|
7
|
+
})(Env || {});
|
|
8
|
+
var Platform = /* @__PURE__ */ ((Platform2) => {
|
|
9
|
+
Platform2["MOBILE"] = "mobile";
|
|
10
|
+
Platform2["EXTENSION"] = "extension";
|
|
11
|
+
Platform2["PORTFOLIO"] = "portfolio";
|
|
12
|
+
Platform2["INFURA"] = "infura";
|
|
13
|
+
return Platform2;
|
|
14
|
+
})(Platform || {});
|
|
15
|
+
var ENV_URLS = {
|
|
16
|
+
dev: {
|
|
17
|
+
authApiUrl: "https://authentication.dev-api.cx.metamask.io",
|
|
18
|
+
oidcApiUrl: "https://oidc.dev-api.cx.metamask.io",
|
|
19
|
+
userStorageApiUrl: "https://user-storage.dev-api.cx.metamask.io"
|
|
20
|
+
},
|
|
21
|
+
uat: {
|
|
22
|
+
authApiUrl: "https://authentication.uat-api.cx.metamask.io",
|
|
23
|
+
oidcApiUrl: "https://oidc.uat-api.cx.metamask.io",
|
|
24
|
+
userStorageApiUrl: "https://user-storage.uat-api.cx.metamask.io"
|
|
25
|
+
},
|
|
26
|
+
prd: {
|
|
27
|
+
authApiUrl: "https://authentication.api.cx.metamask.io",
|
|
28
|
+
oidcApiUrl: "https://oidc.api.cx.metamask.io",
|
|
29
|
+
userStorageApiUrl: "https://user-storage.api.cx.metamask.io"
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
function getEnvUrls(env) {
|
|
33
|
+
if (!ENV_URLS[env]) {
|
|
34
|
+
throw new Error("invalid environment configuration");
|
|
35
|
+
}
|
|
36
|
+
return ENV_URLS[env];
|
|
37
|
+
}
|
|
38
|
+
function getOidcClientId(env, platform) {
|
|
39
|
+
const clientIds = {
|
|
40
|
+
["dev" /* DEV */]: {
|
|
41
|
+
["portfolio" /* PORTFOLIO */]: "c7ca94a0-5d52-4635-9502-1a50a9c410cc",
|
|
42
|
+
["mobile" /* MOBILE */]: "e83c7cc9-267d-4fb4-8fec-f0e3bbe5ae8e",
|
|
43
|
+
["extension" /* EXTENSION */]: "f1a963d7-50dc-4cb5-8d81-f1f3654f0df3",
|
|
44
|
+
["infura" /* INFURA */]: "bd887006-0d55-481a-a395-5ff9a0dc52c9"
|
|
45
|
+
},
|
|
46
|
+
["uat" /* UAT */]: {
|
|
47
|
+
["portfolio" /* PORTFOLIO */]: "8f2dd4ac-db07-4819-9ba5-1ee0ec1b56d1",
|
|
48
|
+
["mobile" /* MOBILE */]: "c3cfdcd2-51d6-4fae-ad2c-ff238c8fef53",
|
|
49
|
+
["extension" /* EXTENSION */]: "a9de167c-c9a6-43d8-af39-d301fd44c485",
|
|
50
|
+
["infura" /* INFURA */]: "01929890-7002-4c97-9913-8f6c09a6d674"
|
|
51
|
+
},
|
|
52
|
+
["prd" /* PRD */]: {
|
|
53
|
+
["portfolio" /* PORTFOLIO */]: "35e1cd62-49c5-4be8-8b6e-a5212f2d2cfb",
|
|
54
|
+
["mobile" /* MOBILE */]: "75fa62a3-9ca0-4b91-9fe5-76bec86b0257",
|
|
55
|
+
["extension" /* EXTENSION */]: "1132f10a-b4e5-4390-a5f2-d9c6022db564",
|
|
56
|
+
["infura" /* INFURA */]: ""
|
|
57
|
+
// unset
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
if (!clientIds[env]) {
|
|
61
|
+
throw new Error(`invalid env ${env}: cannot determine oidc client id`);
|
|
62
|
+
}
|
|
63
|
+
if (!clientIds[env][platform]) {
|
|
64
|
+
throw new Error(
|
|
65
|
+
`invalid env ${env} and platform ${platform} combination: cannot determine oidc client id`
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
return clientIds[env][platform];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
exports.Env = Env; exports.Platform = Platform; exports.getEnvUrls = getEnvUrls; exports.getOidcClientId = getOidcClientId;
|
|
77
|
+
//# sourceMappingURL=chunk-4OMJ7A6A.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/env.ts"],"names":["Env","Platform"],"mappings":";AAAO,IAAW,MAAX,kBAAWA,SAAX;AACL,EAAAA,KAAA,SAAM;AACN,EAAAA,KAAA,SAAM;AACN,EAAAA,KAAA,SAAM;AAHU,SAAAA;AAAA,GAAA;AAMX,IAAW,WAAX,kBAAWC,cAAX;AACL,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,YAAS;AAJO,SAAAA;AAAA,GAAA;AAalB,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","sourcesContent":["export const enum Env {\n DEV = 'dev',\n UAT = 'uat',\n PRD = 'prd',\n}\n\nexport const 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"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// src/controllers/authentication/auth-snap-requests.ts
|
|
2
|
+
import { HandlerType } from "@metamask/snaps-utils";
|
|
3
|
+
var snapId = "npm:@metamask/message-signing-snap";
|
|
4
|
+
function createSnapPublicKeyRequest() {
|
|
5
|
+
return {
|
|
6
|
+
snapId,
|
|
7
|
+
origin: "",
|
|
8
|
+
handler: HandlerType.OnRpcRequest,
|
|
9
|
+
request: {
|
|
10
|
+
method: "getPublicKey"
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function createSnapSignMessageRequest(message) {
|
|
15
|
+
return {
|
|
16
|
+
snapId,
|
|
17
|
+
origin: "",
|
|
18
|
+
handler: HandlerType.OnRpcRequest,
|
|
19
|
+
request: {
|
|
20
|
+
method: "signMessage",
|
|
21
|
+
params: { message }
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export {
|
|
27
|
+
createSnapPublicKeyRequest,
|
|
28
|
+
createSnapSignMessageRequest
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=chunk-6P6CUKKI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/controllers/authentication/auth-snap-requests.ts"],"sourcesContent":["import type { HandleSnapRequest } from '@metamask/snaps-controllers';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport { HandlerType } from '@metamask/snaps-utils';\n\ntype SnapRPCRequest = Parameters<HandleSnapRequest['handler']>[0];\n\nconst snapId = 'npm:@metamask/message-signing-snap' as SnapId;\n\n/**\n * Constructs Request to Message Signing Snap to get Public Key\n *\n * @returns Snap Public Key Request\n */\nexport function createSnapPublicKeyRequest(): SnapRPCRequest {\n return {\n snapId,\n origin: '',\n handler: HandlerType.OnRpcRequest,\n request: {\n method: 'getPublicKey',\n },\n };\n}\n\n/**\n * Constructs Request to get Message Signing Snap to sign a message.\n *\n * @param message - message to sign\n * @returns Snap Sign Message Request\n */\nexport function createSnapSignMessageRequest(\n message: `metamask:${string}`,\n): SnapRPCRequest {\n return {\n snapId,\n origin: '',\n handler: HandlerType.OnRpcRequest,\n request: {\n method: 'signMessage',\n params: { message },\n },\n };\n}\n"],"mappings":";AAEA,SAAS,mBAAmB;AAI5B,IAAM,SAAS;AAOR,SAAS,6BAA6C;AAC3D,SAAO;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,IACR,SAAS,YAAY;AAAA,IACrB,SAAS;AAAA,MACP,QAAQ;AAAA,IACV;AAAA,EACF;AACF;AAQO,SAAS,6BACd,SACgB;AAChB,SAAO;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,IACR,SAAS,YAAY;AAAA,IACrB,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ,EAAE,QAAQ;AAAA,IACpB;AAAA,EACF;AACF;","names":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkXUPRRLBIjs = require('./chunk-XUPRRLBI.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
var _chunkRG4II6WHjs = require('./chunk-RG4II6WH.js');
|
|
@@ -11,33 +11,30 @@ var _chunkRG4II6WHjs = require('./chunk-RG4II6WH.js');
|
|
|
11
11
|
var _chunkPQ5T4GHYjs = require('./chunk-PQ5T4GHY.js');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkMBTBE4P5js = require('./chunk-MBTBE4P5.js');
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var _chunkBARZBXO7js = require('./chunk-BARZBXO7.js');
|
|
18
17
|
|
|
19
18
|
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
var _chunkZ4BLTVTBjs = require('./chunk-Z4BLTVTB.js');
|
|
20
|
+
var _chunkV46WVGWNjs = require('./chunk-V46WVGWN.js');
|
|
24
21
|
|
|
25
22
|
// src/sdk/authentication-jwt-bearer/flow-srp.ts
|
|
26
23
|
var defaultEIP6963SigningOptions = {
|
|
27
24
|
getIdentifier: async () => {
|
|
28
25
|
const provider = await _chunkRG4II6WHjs.getMetaMaskProviderEIP6963.call(void 0, );
|
|
29
26
|
if (!provider) {
|
|
30
|
-
throw new (0,
|
|
27
|
+
throw new (0, _chunkMBTBE4P5js.ValidationError)("No MetaMask wallet connected");
|
|
31
28
|
}
|
|
32
29
|
return await _chunkPQ5T4GHYjs.MESSAGE_SIGNING_SNAP.getPublicKey(provider);
|
|
33
30
|
},
|
|
34
31
|
signMessage: async (message) => {
|
|
35
32
|
const provider = await _chunkRG4II6WHjs.getMetaMaskProviderEIP6963.call(void 0, );
|
|
36
33
|
if (!provider) {
|
|
37
|
-
throw new (0,
|
|
34
|
+
throw new (0, _chunkMBTBE4P5js.ValidationError)("No MetaMask wallet connected");
|
|
38
35
|
}
|
|
39
36
|
if (!message.startsWith("metamask:")) {
|
|
40
|
-
throw new (0,
|
|
37
|
+
throw new (0, _chunkMBTBE4P5js.ValidationError)('message must start with "metamask:"');
|
|
41
38
|
}
|
|
42
39
|
const formattedMessage = message;
|
|
43
40
|
return await _chunkPQ5T4GHYjs.MESSAGE_SIGNING_SNAP.signMessage(provider, formattedMessage);
|
|
@@ -46,51 +43,53 @@ var defaultEIP6963SigningOptions = {
|
|
|
46
43
|
var _config, _options, _getAuthSession, getAuthSession_fn, _login, login_fn, _createSrpLoginRawMessage, createSrpLoginRawMessage_fn;
|
|
47
44
|
var SRPJwtBearerAuth = class {
|
|
48
45
|
constructor(config, options) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
// convert expiresIn from seconds to milliseconds and use 90% of expiresIn
|
|
47
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _getAuthSession);
|
|
48
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _login);
|
|
49
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _createSrpLoginRawMessage);
|
|
50
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _config, void 0);
|
|
51
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _options, void 0);
|
|
52
|
+
_chunkV46WVGWNjs.__privateSet.call(void 0, this, _config, config);
|
|
53
|
+
_chunkV46WVGWNjs.__privateSet.call(void 0, this, _options, {
|
|
56
54
|
storage: options.storage,
|
|
57
55
|
signing: options.signing ?? defaultEIP6963SigningOptions
|
|
58
56
|
});
|
|
59
57
|
}
|
|
60
58
|
async getAccessToken() {
|
|
61
|
-
const session = await
|
|
59
|
+
const session = await _chunkV46WVGWNjs.__privateMethod.call(void 0, this, _getAuthSession, getAuthSession_fn).call(this);
|
|
62
60
|
if (session) {
|
|
63
61
|
return session.token.accessToken;
|
|
64
62
|
}
|
|
65
|
-
const loginResponse = await
|
|
63
|
+
const loginResponse = await _chunkV46WVGWNjs.__privateMethod.call(void 0, this, _login, login_fn).call(this);
|
|
66
64
|
return loginResponse.token.accessToken;
|
|
67
65
|
}
|
|
68
66
|
async getUserProfile() {
|
|
69
|
-
const session = await
|
|
67
|
+
const session = await _chunkV46WVGWNjs.__privateMethod.call(void 0, this, _getAuthSession, getAuthSession_fn).call(this);
|
|
70
68
|
if (session) {
|
|
71
69
|
return session.profile;
|
|
72
70
|
}
|
|
73
|
-
const loginResponse = await
|
|
71
|
+
const loginResponse = await _chunkV46WVGWNjs.__privateMethod.call(void 0, this, _login, login_fn).call(this);
|
|
74
72
|
return loginResponse.profile;
|
|
75
73
|
}
|
|
76
74
|
async getIdentifier() {
|
|
77
|
-
return await
|
|
75
|
+
return await _chunkV46WVGWNjs.__privateGet.call(void 0, this, _options).signing.getIdentifier();
|
|
78
76
|
}
|
|
79
77
|
async signMessage(message) {
|
|
80
|
-
return await
|
|
78
|
+
return await _chunkV46WVGWNjs.__privateGet.call(void 0, this, _options).signing.signMessage(message);
|
|
81
79
|
}
|
|
82
80
|
};
|
|
83
81
|
_config = new WeakMap();
|
|
84
82
|
_options = new WeakMap();
|
|
85
83
|
_getAuthSession = new WeakSet();
|
|
86
84
|
getAuthSession_fn = async function() {
|
|
87
|
-
const auth = await
|
|
85
|
+
const auth = await _chunkV46WVGWNjs.__privateGet.call(void 0, this, _options).storage.getLoginResponse();
|
|
88
86
|
if (!auth) {
|
|
89
87
|
return null;
|
|
90
88
|
}
|
|
91
89
|
const currentTime = Date.now();
|
|
92
90
|
const sessionAge = currentTime - auth.token.obtainedAt;
|
|
93
|
-
|
|
91
|
+
const refreshThreshold = auth.token.expiresIn * 1e3 * 0.9;
|
|
92
|
+
if (sessionAge < refreshThreshold) {
|
|
94
93
|
return auth;
|
|
95
94
|
}
|
|
96
95
|
return null;
|
|
@@ -98,25 +97,26 @@ getAuthSession_fn = async function() {
|
|
|
98
97
|
_login = new WeakSet();
|
|
99
98
|
login_fn = async function() {
|
|
100
99
|
const address = await this.getIdentifier();
|
|
101
|
-
const nonceRes = await
|
|
102
|
-
const publicKey = await
|
|
103
|
-
const rawMessage =
|
|
100
|
+
const nonceRes = await _chunkXUPRRLBIjs.getNonce.call(void 0, address, _chunkV46WVGWNjs.__privateGet.call(void 0, this, _config).env);
|
|
101
|
+
const publicKey = await _chunkV46WVGWNjs.__privateGet.call(void 0, this, _options).signing.getIdentifier();
|
|
102
|
+
const rawMessage = _chunkV46WVGWNjs.__privateMethod.call(void 0, this, _createSrpLoginRawMessage, createSrpLoginRawMessage_fn).call(this, nonceRes.nonce, publicKey);
|
|
104
103
|
const signature = await this.signMessage(rawMessage);
|
|
105
|
-
const authResponse = await
|
|
104
|
+
const authResponse = await _chunkXUPRRLBIjs.authenticate.call(void 0,
|
|
106
105
|
rawMessage,
|
|
107
106
|
signature,
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
_chunkV46WVGWNjs.__privateGet.call(void 0, this, _config).type,
|
|
108
|
+
_chunkV46WVGWNjs.__privateGet.call(void 0, this, _config).env
|
|
110
109
|
);
|
|
111
|
-
const tokenResponse = await
|
|
110
|
+
const tokenResponse = await _chunkXUPRRLBIjs.authorizeOIDC.call(void 0,
|
|
112
111
|
authResponse.token,
|
|
113
|
-
|
|
112
|
+
_chunkV46WVGWNjs.__privateGet.call(void 0, this, _config).env,
|
|
113
|
+
_chunkV46WVGWNjs.__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 _chunkV46WVGWNjs.__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-6TK7544L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/authentication-jwt-bearer/flow-srp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAM,+BAAmD;AAAA,EACvD,eAAe,YAA6B;AAC1C,UAAM,WAAW,MAAM,2BAA2B;AAClD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,gBAAgB,8BAA8B;AAAA,IAC1D;AACA,WAAO,MAAM,qBAAqB,aAAa,QAAQ;AAAA,EACzD;AAAA,EACA,aAAa,OAAO,YAAqC;AACvD,UAAM,WAAW,MAAM,2BAA2B;AAClD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,gBAAgB,8BAA8B;AAAA,IAC1D;AACA,QAAI,CAAC,QAAQ,WAAW,WAAW,GAAG;AACpC,YAAM,IAAI,gBAAgB,qCAAqC;AAAA,IACjE;AACA,UAAM,mBAAmB;AACzB,WAAO,MAAM,qBAAqB,YAAY,UAAU,gBAAgB;AAAA,EAC1E;AACF;AAxCA;AA0CO,IAAM,mBAAN,MAA4C;AAAA,EAKjD,YACE,QACA,SACA;AAqCF;AAAA,uBAAM;AAgBN,uBAAM;AAqCN;AAjGA;AAEA;AAME,uBAAK,SAAU;AACf,uBAAK,UAAW;AAAA,MACd,SAAS,QAAQ;AAAA,MACjB,SAAS,QAAQ,WAAW;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,MAAM,iBAAkC;AACtC,UAAM,UAAU,MAAM,sBAAK,oCAAL;AACtB,QAAI,SAAS;AACX,aAAO,QAAQ,MAAM;AAAA,IACvB;AAEA,UAAM,gBAAgB,MAAM,sBAAK,kBAAL;AAC5B,WAAO,cAAc,MAAM;AAAA,EAC7B;AAAA,EAEA,MAAM,iBAAuC;AAC3C,UAAM,UAAU,MAAM,sBAAK,oCAAL;AACtB,QAAI,SAAS;AACX,aAAO,QAAQ;AAAA,IACjB;AAEA,UAAM,gBAAgB,MAAM,sBAAK,kBAAL;AAC5B,WAAO,cAAc;AAAA,EACvB;AAAA,EAEA,MAAM,gBAAiC;AACrC,WAAO,MAAM,mBAAK,UAAS,QAAQ,cAAc;AAAA,EACnD;AAAA,EAEA,MAAM,YAAY,SAAkC;AAClD,WAAO,MAAM,mBAAK,UAAS,QAAQ,YAAY,OAAO;AAAA,EACxD;AA8DF;AAvGE;AAEA;AA0CM;AAAA,oBAAe,iBAAkC;AACrD,QAAM,OAAO,MAAM,mBAAK,UAAS,QAAQ,iBAAiB;AAC1D,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,KAAK,IAAI;AAC7B,QAAM,aAAa,cAAc,KAAK,MAAM;AAC5C,QAAM,mBAAmB,KAAK,MAAM,YAAY,MAAO;AAEvD,MAAI,aAAa,kBAAkB;AACjC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEM;AAAA,WAAM,iBAA2B;AAErC,QAAM,UAAU,MAAM,KAAK,cAAc;AACzC,QAAM,WAAW,MAAM,SAAS,SAAS,mBAAK,SAAQ,GAAG;AACzD,QAAM,YAAY,MAAM,mBAAK,UAAS,QAAQ,cAAc;AAC5D,QAAM,aAAa,sBAAK,wDAAL,WACjB,SAAS,OACT;AAEF,QAAM,YAAY,MAAM,KAAK,YAAY,UAAU;AAGnD,QAAM,eAAe,MAAM;AAAA,IACzB;AAAA,IACA;AAAA,IACA,mBAAK,SAAQ;AAAA,IACb,mBAAK,SAAQ;AAAA,EACf;AAGA,QAAM,gBAAgB,MAAM;AAAA,IAC1B,aAAa;AAAA,IACb,mBAAK,SAAQ;AAAA,IACb,mBAAK,SAAQ;AAAA,EACf;AAGA,QAAM,SAAwB;AAAA,IAC5B,SAAS,aAAa;AAAA,IACtB,OAAO;AAAA,EACT;AAEA,QAAM,mBAAK,UAAS,QAAQ,iBAAiB,MAAM;AAEnD,SAAO;AACT;AAEA;AAAA,8BAAyB,SACvB,OACA,WACgC;AAChC,SAAO,YAAY,KAAK,IAAI,SAAS;AACvC","sourcesContent":["import { ValidationError } from '../errors';\nimport { getMetaMaskProviderEIP6963 } from '../utils/eip-6963-metamask-provider';\nimport { MESSAGE_SIGNING_SNAP } from '../utils/messaging-signing-snap-requests';\nimport { authenticate, authorizeOIDC, getNonce } from './services';\nimport type {\n AuthConfig,\n AuthSigningOptions,\n AuthStorageOptions,\n AuthType,\n IBaseAuth,\n LoginResponse,\n UserProfile,\n} from './types';\n\n// TODO: Either fix this lint violation or explain why it's necessary to ignore.\n// eslint-disable-next-line @typescript-eslint/naming-convention\ntype JwtBearerAuth_SRP_Options = {\n storage: AuthStorageOptions;\n signing?: AuthSigningOptions;\n};\n\nconst defaultEIP6963SigningOptions: AuthSigningOptions = {\n getIdentifier: async (): Promise<string> => {\n const provider = await getMetaMaskProviderEIP6963();\n if (!provider) {\n throw new ValidationError('No MetaMask wallet connected');\n }\n return await MESSAGE_SIGNING_SNAP.getPublicKey(provider);\n },\n signMessage: async (message: string): Promise<string> => {\n const provider = await getMetaMaskProviderEIP6963();\n if (!provider) {\n throw new ValidationError('No MetaMask wallet connected');\n }\n if (!message.startsWith('metamask:')) {\n throw new ValidationError('message must start with \"metamask:\"');\n }\n const formattedMessage = message as `metamask:${string}`;\n return await MESSAGE_SIGNING_SNAP.signMessage(provider, formattedMessage);\n },\n};\n\nexport class SRPJwtBearerAuth implements IBaseAuth {\n #config: AuthConfig;\n\n #options: Required<JwtBearerAuth_SRP_Options>;\n\n constructor(\n config: AuthConfig & { type: AuthType.SRP },\n options: JwtBearerAuth_SRP_Options,\n ) {\n this.#config = config;\n this.#options = {\n storage: options.storage,\n signing: options.signing ?? defaultEIP6963SigningOptions,\n };\n }\n\n async getAccessToken(): Promise<string> {\n const session = await this.#getAuthSession();\n if (session) {\n return session.token.accessToken;\n }\n\n const loginResponse = await this.#login();\n return loginResponse.token.accessToken;\n }\n\n async getUserProfile(): Promise<UserProfile> {\n const session = await this.#getAuthSession();\n if (session) {\n return session.profile;\n }\n\n const loginResponse = await this.#login();\n return loginResponse.profile;\n }\n\n async getIdentifier(): Promise<string> {\n return await this.#options.signing.getIdentifier();\n }\n\n async signMessage(message: string): Promise<string> {\n return await this.#options.signing.signMessage(message);\n }\n\n // convert expiresIn from seconds to milliseconds and use 90% of expiresIn\n async #getAuthSession(): Promise<LoginResponse | null> {\n const auth = await this.#options.storage.getLoginResponse();\n if (!auth) {\n return null;\n }\n\n const currentTime = Date.now();\n const sessionAge = currentTime - auth.token.obtainedAt;\n const refreshThreshold = auth.token.expiresIn * 1000 * 0.9;\n\n if (sessionAge < refreshThreshold) {\n return auth;\n }\n return null;\n }\n\n async #login(): Promise<LoginResponse> {\n // Nonce\n const address = await this.getIdentifier();\n const nonceRes = await getNonce(address, this.#config.env);\n const publicKey = await this.#options.signing.getIdentifier();\n const rawMessage = this.#createSrpLoginRawMessage(\n nonceRes.nonce,\n publicKey,\n );\n const signature = await this.signMessage(rawMessage);\n\n // Authenticate\n const authResponse = await authenticate(\n rawMessage,\n signature,\n this.#config.type,\n this.#config.env,\n );\n\n // Authorize\n const tokenResponse = await authorizeOIDC(\n authResponse.token,\n this.#config.env,\n this.#config.platform,\n );\n\n // Save\n const result: LoginResponse = {\n profile: authResponse.profile,\n token: tokenResponse,\n };\n\n await this.#options.storage.setLoginResponse(result);\n\n return result;\n }\n\n #createSrpLoginRawMessage(\n nonce: string,\n publicKey: string,\n ): `metamask:${string}:${string}` {\n return `metamask:${nonce}:${publicKey}` as const;\n }\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// src/controllers/user-storage/encryption/utils.ts
|
|
2
|
+
var byteArrayToBase64 = (byteArray) => {
|
|
3
|
+
return Buffer.from(byteArray).toString("base64");
|
|
4
|
+
};
|
|
5
|
+
var base64ToByteArray = (base64) => {
|
|
6
|
+
return new Uint8Array(Buffer.from(base64, "base64"));
|
|
7
|
+
};
|
|
8
|
+
var bytesToUtf8 = (byteArray) => {
|
|
9
|
+
const decoder = new TextDecoder("utf-8");
|
|
10
|
+
return decoder.decode(byteArray);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
byteArrayToBase64,
|
|
15
|
+
base64ToByteArray,
|
|
16
|
+
bytesToUtf8
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=chunk-76VRE4BI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/controllers/user-storage/encryption/utils.ts"],"sourcesContent":["export const byteArrayToBase64 = (byteArray: Uint8Array) => {\n return Buffer.from(byteArray).toString('base64');\n};\n\nexport const base64ToByteArray = (base64: string) => {\n return new Uint8Array(Buffer.from(base64, 'base64'));\n};\n\nexport const bytesToUtf8 = (byteArray: Uint8Array) => {\n const decoder = new TextDecoder('utf-8');\n return decoder.decode(byteArray);\n};\n"],"mappings":";AAAO,IAAM,oBAAoB,CAAC,cAA0B;AAC1D,SAAO,OAAO,KAAK,SAAS,EAAE,SAAS,QAAQ;AACjD;AAEO,IAAM,oBAAoB,CAAC,WAAmB;AACnD,SAAO,IAAI,WAAW,OAAO,KAAK,QAAQ,QAAQ,CAAC;AACrD;AAEO,IAAM,cAAc,CAAC,cAA0B;AACpD,QAAM,UAAU,IAAI,YAAY,OAAO;AACvC,SAAO,QAAQ,OAAO,SAAS;AACjC;","names":[]}
|