@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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkV46WVGWNjs = require('./chunk-V46WVGWN.js');
|
|
6
6
|
|
|
7
7
|
// src/sdk/encryption.ts
|
|
8
8
|
var _aes = require('@noble/ciphers/aes');
|
|
@@ -23,24 +23,32 @@ function bytesToUtf8(byteArray) {
|
|
|
23
23
|
var _ALGORITHM_NONCE_SIZE, _ALGORITHM_KEY_SIZE, _PBKDF2_SALT_SIZE, _PBKDF2_ITERATIONS, _encryptStringV1, encryptStringV1_fn, _decryptStringV1, decryptStringV1_fn, _encrypt, encrypt_fn, _decrypt, decrypt_fn;
|
|
24
24
|
var EncryptorDecryptor = class {
|
|
25
25
|
constructor() {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _encryptStringV1);
|
|
27
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _decryptStringV1);
|
|
28
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _encrypt);
|
|
29
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _decrypt);
|
|
30
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
32
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _ALGORITHM_NONCE_SIZE, 12);
|
|
31
33
|
// 12 bytes
|
|
32
|
-
|
|
34
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
36
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _ALGORITHM_KEY_SIZE, 16);
|
|
33
37
|
// 16 bytes
|
|
34
|
-
|
|
38
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
40
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _PBKDF2_SALT_SIZE, 16);
|
|
35
41
|
// 16 bytes
|
|
36
|
-
|
|
42
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
44
|
+
_chunkV46WVGWNjs.__privateAdd.call(void 0, this, _PBKDF2_ITERATIONS, 9e5);
|
|
37
45
|
}
|
|
38
46
|
encryptString(plaintext, password) {
|
|
39
47
|
try {
|
|
40
48
|
if (plaintext.trim().length === 0) {
|
|
41
49
|
throw new Error("No plain text provided");
|
|
42
50
|
}
|
|
43
|
-
return
|
|
51
|
+
return _chunkV46WVGWNjs.__privateMethod.call(void 0, this, _encryptStringV1, encryptStringV1_fn).call(this, plaintext, password);
|
|
44
52
|
} catch (e) {
|
|
45
53
|
const errorMessage = e instanceof Error ? e.message : String(e);
|
|
46
54
|
throw new Error(`Unable to encrypt string - ${errorMessage}`);
|
|
@@ -50,7 +58,7 @@ var EncryptorDecryptor = class {
|
|
|
50
58
|
try {
|
|
51
59
|
const encryptedData = JSON.parse(encryptedDataStr);
|
|
52
60
|
if (encryptedData.v === "1") {
|
|
53
|
-
return
|
|
61
|
+
return _chunkV46WVGWNjs.__privateMethod.call(void 0, this, _decryptStringV1, decryptStringV1_fn).call(this, encryptedData, password);
|
|
54
62
|
}
|
|
55
63
|
throw new Error(
|
|
56
64
|
`Unsupported encrypted data payload - ${JSON.stringify(encryptedData)}`
|
|
@@ -67,21 +75,21 @@ _PBKDF2_SALT_SIZE = new WeakMap();
|
|
|
67
75
|
_PBKDF2_ITERATIONS = new WeakMap();
|
|
68
76
|
_encryptStringV1 = new WeakSet();
|
|
69
77
|
encryptStringV1_fn = function(plaintext, password) {
|
|
70
|
-
const salt = _webcrypto.randomBytes.call(void 0,
|
|
78
|
+
const salt = _webcrypto.randomBytes.call(void 0, _chunkV46WVGWNjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE));
|
|
71
79
|
const key = _pbkdf2.pbkdf2.call(void 0, _sha256.sha256, password, salt, {
|
|
72
|
-
c:
|
|
73
|
-
dkLen:
|
|
80
|
+
c: _chunkV46WVGWNjs.__privateGet.call(void 0, this, _PBKDF2_ITERATIONS),
|
|
81
|
+
dkLen: _chunkV46WVGWNjs.__privateGet.call(void 0, this, _ALGORITHM_KEY_SIZE)
|
|
74
82
|
});
|
|
75
83
|
const plaintextRaw = _utils.utf8ToBytes.call(void 0, plaintext);
|
|
76
84
|
const ciphertextAndNonceAndSalt = _utils.concatBytes.call(void 0,
|
|
77
85
|
salt,
|
|
78
|
-
|
|
86
|
+
_chunkV46WVGWNjs.__privateMethod.call(void 0, this, _encrypt, encrypt_fn).call(this, plaintextRaw, key)
|
|
79
87
|
);
|
|
80
88
|
const encryptedData = byteArrayToBase64(ciphertextAndNonceAndSalt);
|
|
81
89
|
const encryptedPayload = {
|
|
82
90
|
v: "1",
|
|
83
91
|
d: encryptedData,
|
|
84
|
-
iterations:
|
|
92
|
+
iterations: _chunkV46WVGWNjs.__privateGet.call(void 0, this, _PBKDF2_ITERATIONS)
|
|
85
93
|
};
|
|
86
94
|
return JSON.stringify(encryptedPayload);
|
|
87
95
|
};
|
|
@@ -91,34 +99,34 @@ decryptStringV1_fn = function(data, password) {
|
|
|
91
99
|
const ciphertextAndNonceAndSalt = base64ToByteArray(
|
|
92
100
|
base64CiphertextAndNonceAndSalt
|
|
93
101
|
);
|
|
94
|
-
const salt = ciphertextAndNonceAndSalt.slice(0,
|
|
102
|
+
const salt = ciphertextAndNonceAndSalt.slice(0, _chunkV46WVGWNjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE));
|
|
95
103
|
const ciphertextAndNonce = ciphertextAndNonceAndSalt.slice(
|
|
96
|
-
|
|
104
|
+
_chunkV46WVGWNjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE),
|
|
97
105
|
ciphertextAndNonceAndSalt.length
|
|
98
106
|
);
|
|
99
107
|
const key = _pbkdf2.pbkdf2.call(void 0, _sha256.sha256, password, salt, {
|
|
100
108
|
c: iterations,
|
|
101
|
-
dkLen:
|
|
109
|
+
dkLen: _chunkV46WVGWNjs.__privateGet.call(void 0, this, _ALGORITHM_KEY_SIZE)
|
|
102
110
|
});
|
|
103
|
-
return bytesToUtf8(
|
|
111
|
+
return bytesToUtf8(_chunkV46WVGWNjs.__privateMethod.call(void 0, this, _decrypt, decrypt_fn).call(this, ciphertextAndNonce, key));
|
|
104
112
|
};
|
|
105
113
|
_encrypt = new WeakSet();
|
|
106
114
|
encrypt_fn = function(plaintext, key) {
|
|
107
|
-
const nonce = _webcrypto.randomBytes.call(void 0,
|
|
115
|
+
const nonce = _webcrypto.randomBytes.call(void 0, _chunkV46WVGWNjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE));
|
|
108
116
|
const ciphertext = _aes.gcm.call(void 0, key, nonce).encrypt(plaintext);
|
|
109
117
|
return _utils.concatBytes.call(void 0, nonce, ciphertext);
|
|
110
118
|
};
|
|
111
119
|
_decrypt = new WeakSet();
|
|
112
120
|
decrypt_fn = function(ciphertextAndNonce, key) {
|
|
113
|
-
const nonce = ciphertextAndNonce.slice(0,
|
|
121
|
+
const nonce = ciphertextAndNonce.slice(0, _chunkV46WVGWNjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE));
|
|
114
122
|
const ciphertext = ciphertextAndNonce.slice(
|
|
115
|
-
|
|
123
|
+
_chunkV46WVGWNjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE),
|
|
116
124
|
ciphertextAndNonce.length
|
|
117
125
|
);
|
|
118
126
|
return _aes.gcm.call(void 0, key, nonce).decrypt(ciphertext);
|
|
119
127
|
};
|
|
120
|
-
var
|
|
121
|
-
var encryption_default =
|
|
128
|
+
var Encryption = new EncryptorDecryptor();
|
|
129
|
+
var encryption_default = Encryption;
|
|
122
130
|
function createSHA256Hash(data) {
|
|
123
131
|
const hashedData = _sha256.sha256.call(void 0, data);
|
|
124
132
|
return _utils.bytesToHex.call(void 0, hashedData);
|
|
@@ -127,5 +135,6 @@ function createSHA256Hash(data) {
|
|
|
127
135
|
|
|
128
136
|
|
|
129
137
|
|
|
130
|
-
|
|
131
|
-
|
|
138
|
+
|
|
139
|
+
exports.Encryption = Encryption; exports.encryption_default = encryption_default; exports.createSHA256Hash = createSHA256Hash;
|
|
140
|
+
//# sourceMappingURL=chunk-GLDUXN2T.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/encryption.ts"],"names":[],"mappings":";;;;;;;AAAA,SAAS,WAAW;AACpB,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AACvB,SAAS,cAAc;AACvB,SAAS,aAAa,aAAa,kBAAkB;AAcrD,SAAS,kBAAkB,WAA+B;AACxD,SAAO,OAAO,KAAK,SAAS,EAAE,SAAS,QAAQ;AACjD;AAQA,SAAS,kBAAkB,QAA4B;AACrD,SAAO,IAAI,WAAW,OAAO,KAAK,QAAQ,QAAQ,CAAC;AACrD;AAOA,SAAS,YAAY,WAA+B;AAClD,QAAM,UAAU,IAAI,YAAY,OAAO;AACvC,SAAO,QAAQ,OAAO,SAAS;AACjC;AAxCA;AA0CA,IAAM,qBAAN,MAAyB;AAAA,EAAzB;AA+CE;AA4BA;AAyBA;AASA;AA1GA;AAAA;AAAA,8CAAwB;AAIxB;AAAA;AAAA;AAAA,4CAAsB;AAItB;AAAA;AAAA;AAAA,0CAAoB;AAIpB;AAAA;AAAA;AAAA,2CAAqB;AAAA;AAAA,EAErB,cAAc,WAAmB,UAA0B;AACzD,QAAI;AACF,UAAI,UAAU,KAAK,EAAE,WAAW,GAAG;AACjC,cAAM,IAAI,MAAM,wBAAwB;AAAA,MAC1C;AAEA,aAAO,sBAAK,sCAAL,WAAsB,WAAW;AAAA,IAC1C,SAAS,GAAG;AAEV,YAAM,eAAe,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC;AAC9D,YAAM,IAAI,MAAM,8BAA8B,YAAY,EAAE;AAAA,IAC9D;AAAA,EACF;AAAA,EAEA,cAAc,kBAA0B,UAA0B;AAChE,QAAI;AACF,YAAM,gBAAkC,KAAK,MAAM,gBAAgB;AACnE,UAAI,cAAc,MAAM,KAAK;AAC3B,eAAO,sBAAK,sCAAL,WAAsB,eAAe;AAAA,MAC9C;AACA,YAAM,IAAI;AAAA,QACR,wCAAwC,KAAK,UAAU,aAAa,CAAC;AAAA,MACvE;AAAA,IACF,SAAS,GAAG;AAEV,YAAM,eAAe,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC;AAC9D,YAAM,IAAI,MAAM,8BAA8B,YAAY,EAAE;AAAA,IAC9D;AAAA,EACF;AA2EF;AArHE;AAIA;AAIA;AAIA;AAgCA;AAAA,qBAAgB,SAAC,WAAmB,UAA0B;AAC5D,QAAM,OAAO,YAAY,mBAAK,kBAAiB;AAG/C,QAAM,MAAM,OAAO,QAAQ,UAAU,MAAM;AAAA,IACzC,GAAG,mBAAK;AAAA,IACR,OAAO,mBAAK;AAAA,EACd,CAAC;AAGD,QAAM,eAAe,YAAY,SAAS;AAC1C,QAAM,4BAA4B;AAAA,IAChC;AAAA,IACA,sBAAK,sBAAL,WAAc,cAAc;AAAA,EAC9B;AAGA,QAAM,gBAAgB,kBAAkB,yBAAyB;AAEjE,QAAM,mBAAqC;AAAA,IACzC,GAAG;AAAA,IACH,GAAG;AAAA,IACH,YAAY,mBAAK;AAAA,EACnB;AAEA,SAAO,KAAK,UAAU,gBAAgB;AACxC;AAEA;AAAA,qBAAgB,SAAC,MAAwB,UAA0B;AACjE,QAAM,EAAE,YAAY,GAAG,gCAAgC,IAAI;AAG3D,QAAM,4BAA4B;AAAA,IAChC;AAAA,EACF;AAGA,QAAM,OAAO,0BAA0B,MAAM,GAAG,mBAAK,kBAAiB;AACtE,QAAM,qBAAqB,0BAA0B;AAAA,IACnD,mBAAK;AAAA,IACL,0BAA0B;AAAA,EAC5B;AAGA,QAAM,MAAM,OAAO,QAAQ,UAAU,MAAM;AAAA,IACzC,GAAG;AAAA,IACH,OAAO,mBAAK;AAAA,EACd,CAAC;AAGD,SAAO,YAAY,sBAAK,sBAAL,WAAc,oBAAoB,IAAI;AAC3D;AAEA;AAAA,aAAQ,SAAC,WAAuB,KAA6B;AAC3D,QAAM,QAAQ,YAAY,mBAAK,sBAAqB;AAGpD,QAAM,aAAa,IAAI,KAAK,KAAK,EAAE,QAAQ,SAAS;AAEpD,SAAO,YAAY,OAAO,UAAU;AACtC;AAEA;AAAA,aAAQ,SAAC,oBAAgC,KAA6B;AAEpE,QAAM,QAAQ,mBAAmB,MAAM,GAAG,mBAAK,sBAAqB;AACpE,QAAM,aAAa,mBAAmB;AAAA,IACpC,mBAAK;AAAA,IACL,mBAAmB;AAAA,EACrB;AAGA,SAAO,IAAI,KAAK,KAAK,EAAE,QAAQ,UAAU;AAC3C;AAGK,IAAM,aAAa,IAAI,mBAAmB;AACjD,IAAO,qBAAQ;AAQR,SAAS,iBAAiB,MAAsB;AACrD,QAAM,aAAa,OAAO,IAAI;AAC9B,SAAO,WAAW,UAAU;AAC9B","sourcesContent":["import { gcm } from '@noble/ciphers/aes';\nimport { randomBytes } from '@noble/ciphers/webcrypto';\nimport { pbkdf2 } from '@noble/hashes/pbkdf2';\nimport { sha256 } from '@noble/hashes/sha256';\nimport { utf8ToBytes, concatBytes, bytesToHex } from '@noble/hashes/utils';\n\nexport type EncryptedPayload = {\n v: '1'; // version\n d: string; // data\n iterations: number;\n};\n\n/**\n * Converts Byte Array to Base64 String\n *\n * @param byteArray - array of bytes\n * @returns base64 string\n */\nfunction byteArrayToBase64(byteArray: Uint8Array): string {\n return Buffer.from(byteArray).toString('base64');\n}\n\n/**\n * Converts Base64 String into Byte Array\n *\n * @param base64 - base64 encoded string\n * @returns byte array\n */\nfunction base64ToByteArray(base64: string): Uint8Array {\n return new Uint8Array(Buffer.from(base64, 'base64'));\n}\n\n/**\n * Converts Bytes into UTF-8 Encoded String\n * @param byteArray - array of bytes\n * @returns uft-8 encoded string\n */\nfunction bytesToUtf8(byteArray: Uint8Array): string {\n const decoder = new TextDecoder('utf-8');\n return decoder.decode(byteArray);\n}\n\nclass EncryptorDecryptor {\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 #ALGORITHM_NONCE_SIZE = 12; // 12 bytes\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\n #ALGORITHM_KEY_SIZE = 16; // 16 bytes\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\n #PBKDF2_SALT_SIZE = 16; // 16 bytes\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\n #PBKDF2_ITERATIONS = 900_000;\n\n encryptString(plaintext: string, password: string): string {\n try {\n if (plaintext.trim().length === 0) {\n throw new Error('No plain text provided');\n }\n\n return this.#encryptStringV1(plaintext, password);\n } catch (e) {\n /* istanbul ignore next */\n const errorMessage = e instanceof Error ? e.message : String(e);\n throw new Error(`Unable to encrypt string - ${errorMessage}`);\n }\n }\n\n decryptString(encryptedDataStr: string, password: string): string {\n try {\n const encryptedData: EncryptedPayload = JSON.parse(encryptedDataStr);\n if (encryptedData.v === '1') {\n return this.#decryptStringV1(encryptedData, password);\n }\n throw new Error(\n `Unsupported encrypted data payload - ${JSON.stringify(encryptedData)}`,\n );\n } catch (e) {\n /* istanbul ignore next */\n const errorMessage = e instanceof Error ? e.message : String(e);\n throw new Error(`Unable to decrypt string - ${errorMessage}`);\n }\n }\n\n #encryptStringV1(plaintext: string, password: string): string {\n const salt = randomBytes(this.#PBKDF2_SALT_SIZE);\n\n // Derive a key using PBKDF2.\n const key = pbkdf2(sha256, password, salt, {\n c: this.#PBKDF2_ITERATIONS,\n dkLen: this.#ALGORITHM_KEY_SIZE,\n });\n\n // Encrypt and prepend salt.\n const plaintextRaw = utf8ToBytes(plaintext);\n const ciphertextAndNonceAndSalt = concatBytes(\n salt,\n this.#encrypt(plaintextRaw, key),\n );\n\n // Convert to Base64\n const encryptedData = byteArrayToBase64(ciphertextAndNonceAndSalt);\n\n const encryptedPayload: EncryptedPayload = {\n v: '1',\n d: encryptedData,\n iterations: this.#PBKDF2_ITERATIONS,\n };\n\n return JSON.stringify(encryptedPayload);\n }\n\n #decryptStringV1(data: EncryptedPayload, password: string): string {\n const { iterations, d: base64CiphertextAndNonceAndSalt } = data;\n\n // Decode the base64.\n const ciphertextAndNonceAndSalt = base64ToByteArray(\n base64CiphertextAndNonceAndSalt,\n );\n\n // Create buffers of salt and ciphertextAndNonce.\n const salt = ciphertextAndNonceAndSalt.slice(0, this.#PBKDF2_SALT_SIZE);\n const ciphertextAndNonce = ciphertextAndNonceAndSalt.slice(\n this.#PBKDF2_SALT_SIZE,\n ciphertextAndNonceAndSalt.length,\n );\n\n // Derive the key using PBKDF2.\n const key = pbkdf2(sha256, password, salt, {\n c: iterations,\n dkLen: this.#ALGORITHM_KEY_SIZE,\n });\n\n // Decrypt and return result.\n return bytesToUtf8(this.#decrypt(ciphertextAndNonce, key));\n }\n\n #encrypt(plaintext: Uint8Array, key: Uint8Array): Uint8Array {\n const nonce = randomBytes(this.#ALGORITHM_NONCE_SIZE);\n\n // Encrypt and prepend nonce.\n const ciphertext = gcm(key, nonce).encrypt(plaintext);\n\n return concatBytes(nonce, ciphertext);\n }\n\n #decrypt(ciphertextAndNonce: Uint8Array, key: Uint8Array): Uint8Array {\n // Create buffers of nonce and ciphertext.\n const nonce = ciphertextAndNonce.slice(0, this.#ALGORITHM_NONCE_SIZE);\n const ciphertext = ciphertextAndNonce.slice(\n this.#ALGORITHM_NONCE_SIZE,\n ciphertextAndNonce.length,\n );\n\n // Decrypt and return result.\n return gcm(key, nonce).decrypt(ciphertext);\n }\n}\n\nexport const Encryption = new EncryptorDecryptor();\nexport default Encryption;\n\n/**\n * Create a SHA-256 hash from a given string.\n *\n * @param data - input\n * @returns hash\n */\nexport function createSHA256Hash(data: string): string {\n const hashedData = sha256(data);\n return bytesToHex(hashedData);\n}\n"]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// 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
|
+
export {
|
|
72
|
+
Env,
|
|
73
|
+
Platform,
|
|
74
|
+
getEnvUrls,
|
|
75
|
+
getOidcClientId
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=chunk-GLS4QZF6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/env.ts"],"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"],"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;","names":["Env","Platform"]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
base64ToByteArray,
|
|
3
|
+
byteArrayToBase64
|
|
4
|
+
} from "./chunk-76VRE4BI.mjs";
|
|
5
|
+
|
|
6
|
+
// src/controllers/user-storage/encryption/cache.ts
|
|
7
|
+
var MAX_PASSWORD_CACHES = 3;
|
|
8
|
+
var MAX_SALT_CACHES = 10;
|
|
9
|
+
var inMemCachedKDF = {};
|
|
10
|
+
var getPasswordCache = (hashedPassword) => {
|
|
11
|
+
inMemCachedKDF[hashedPassword] ?? (inMemCachedKDF[hashedPassword] = /* @__PURE__ */ new Map());
|
|
12
|
+
return inMemCachedKDF[hashedPassword];
|
|
13
|
+
};
|
|
14
|
+
function getCachedKeyBySalt(hashedPassword, salt) {
|
|
15
|
+
const cache = getPasswordCache(hashedPassword);
|
|
16
|
+
const base64Salt = byteArrayToBase64(salt);
|
|
17
|
+
const cachedKey = cache.get(base64Salt);
|
|
18
|
+
if (!cachedKey) {
|
|
19
|
+
return void 0;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
salt,
|
|
23
|
+
base64Salt,
|
|
24
|
+
key: cachedKey
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function getAnyCachedKey(hashedPassword) {
|
|
28
|
+
const cache = getPasswordCache(hashedPassword);
|
|
29
|
+
const cachedEntry = cache.entries().next().value;
|
|
30
|
+
if (!cachedEntry) {
|
|
31
|
+
return void 0;
|
|
32
|
+
}
|
|
33
|
+
const base64Salt = cachedEntry[0];
|
|
34
|
+
const bytesSalt = base64ToByteArray(base64Salt);
|
|
35
|
+
return {
|
|
36
|
+
salt: bytesSalt,
|
|
37
|
+
base64Salt,
|
|
38
|
+
key: cachedEntry[1]
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function setCachedKey(hashedPassword, salt, key) {
|
|
42
|
+
if (Object.keys(inMemCachedKDF).length > MAX_PASSWORD_CACHES) {
|
|
43
|
+
inMemCachedKDF = {};
|
|
44
|
+
}
|
|
45
|
+
const cache = getPasswordCache(hashedPassword);
|
|
46
|
+
const base64Salt = byteArrayToBase64(salt);
|
|
47
|
+
if (cache.size > MAX_SALT_CACHES) {
|
|
48
|
+
cache.clear();
|
|
49
|
+
}
|
|
50
|
+
cache.set(base64Salt, key);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
getCachedKeyBySalt,
|
|
55
|
+
getAnyCachedKey,
|
|
56
|
+
setCachedKey
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=chunk-H25EBXG5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/controllers/user-storage/encryption/cache.ts"],"sourcesContent":["import { base64ToByteArray, byteArrayToBase64 } from './utils';\n\ntype CachedEntry = {\n salt: Uint8Array;\n base64Salt: string;\n key: Uint8Array;\n};\n\nconst MAX_PASSWORD_CACHES = 3;\nconst MAX_SALT_CACHES = 10;\n\n/**\n * In-Memory Caching derived keys based from a given salt and password.\n */\ntype PasswordMemCachedKDF = {\n [hashedPassword: string]: Map<string, Uint8Array>;\n};\nlet inMemCachedKDF: PasswordMemCachedKDF = {};\nconst getPasswordCache = (hashedPassword: string) => {\n inMemCachedKDF[hashedPassword] ??= new Map();\n return inMemCachedKDF[hashedPassword];\n};\n\n/**\n * Returns a given cached derived key from a hashed password and salt\n *\n * @param hashedPassword - hashed password for cache lookup\n * @param salt - provide salt to receive cached key\n * @returns cached key\n */\nexport function getCachedKeyBySalt(\n hashedPassword: string,\n salt: Uint8Array,\n): CachedEntry | undefined {\n const cache = getPasswordCache(hashedPassword);\n const base64Salt = byteArrayToBase64(salt);\n const cachedKey = cache.get(base64Salt);\n if (!cachedKey) {\n return undefined;\n }\n\n return {\n salt,\n base64Salt,\n key: cachedKey,\n };\n}\n\n/**\n * Gets any cached key for a given hashed password\n *\n * @param hashedPassword - hashed password for cache lookup\n * @returns any (the first) cached key\n */\nexport function getAnyCachedKey(\n hashedPassword: string,\n): CachedEntry | undefined {\n const cache = getPasswordCache(hashedPassword);\n\n // Takes 1 item from an Iterator via Map.entries()\n const cachedEntry: [string, Uint8Array] | undefined = cache\n .entries()\n .next().value;\n\n if (!cachedEntry) {\n return undefined;\n }\n\n const base64Salt = cachedEntry[0];\n const bytesSalt = base64ToByteArray(base64Salt);\n return {\n salt: bytesSalt,\n base64Salt,\n key: cachedEntry[1],\n };\n}\n\n/**\n * Sets a key to the in memory cache.\n * We have set an arbitrary size of 10 cached keys per hashed password.\n *\n * @param hashedPassword - hashed password for cache lookup\n * @param salt - salt to set new derived key\n * @param key - derived key we are setting\n */\nexport function setCachedKey(\n hashedPassword: string,\n salt: Uint8Array,\n key: Uint8Array,\n): void {\n // Max password caches\n if (Object.keys(inMemCachedKDF).length > MAX_PASSWORD_CACHES) {\n inMemCachedKDF = {};\n }\n\n const cache = getPasswordCache(hashedPassword);\n const base64Salt = byteArrayToBase64(salt);\n\n // Max salt caches\n if (cache.size > MAX_SALT_CACHES) {\n cache.clear();\n }\n\n cache.set(base64Salt, key);\n}\n"],"mappings":";;;;;;AAQA,IAAM,sBAAsB;AAC5B,IAAM,kBAAkB;AAQxB,IAAI,iBAAuC,CAAC;AAC5C,IAAM,mBAAmB,CAAC,mBAA2B;AACnD,sEAAmC,oBAAI,IAAI;AAC3C,SAAO,eAAe,cAAc;AACtC;AASO,SAAS,mBACd,gBACA,MACyB;AACzB,QAAM,QAAQ,iBAAiB,cAAc;AAC7C,QAAM,aAAa,kBAAkB,IAAI;AACzC,QAAM,YAAY,MAAM,IAAI,UAAU;AACtC,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,KAAK;AAAA,EACP;AACF;AAQO,SAAS,gBACd,gBACyB;AACzB,QAAM,QAAQ,iBAAiB,cAAc;AAG7C,QAAM,cAAgD,MACnD,QAAQ,EACR,KAAK,EAAE;AAEV,MAAI,CAAC,aAAa;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,YAAY,CAAC;AAChC,QAAM,YAAY,kBAAkB,UAAU;AAC9C,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,KAAK,YAAY,CAAC;AAAA,EACpB;AACF;AAUO,SAAS,aACd,gBACA,MACA,KACM;AAEN,MAAI,OAAO,KAAK,cAAc,EAAE,SAAS,qBAAqB;AAC5D,qBAAiB,CAAC;AAAA,EACpB;AAEA,QAAM,QAAQ,iBAAiB,cAAc;AAC7C,QAAM,aAAa,kBAAkB,IAAI;AAGzC,MAAI,MAAM,OAAO,iBAAiB;AAChC,UAAM,MAAM;AAAA,EACd;AAEA,QAAM,IAAI,YAAY,GAAG;AAC3B;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/controllers/authentication/auth-snap-requests.ts
|
|
2
|
+
var _snapsutils = require('@metamask/snaps-utils');
|
|
3
|
+
var snapId = "npm:@metamask/message-signing-snap";
|
|
4
|
+
function createSnapPublicKeyRequest() {
|
|
5
|
+
return {
|
|
6
|
+
snapId,
|
|
7
|
+
origin: "",
|
|
8
|
+
handler: _snapsutils.HandlerType.OnRpcRequest,
|
|
9
|
+
request: {
|
|
10
|
+
method: "getPublicKey"
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function createSnapSignMessageRequest(message) {
|
|
15
|
+
return {
|
|
16
|
+
snapId,
|
|
17
|
+
origin: "",
|
|
18
|
+
handler: _snapsutils.HandlerType.OnRpcRequest,
|
|
19
|
+
request: {
|
|
20
|
+
method: "signMessage",
|
|
21
|
+
params: { message }
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
exports.createSnapPublicKeyRequest = createSnapPublicKeyRequest; exports.createSnapSignMessageRequest = createSnapSignMessageRequest;
|
|
30
|
+
//# sourceMappingURL=chunk-IPSBQ3MS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/controllers/authentication/auth-snap-requests.ts"],"names":[],"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","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"]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import {
|
|
2
|
+
JwtBearerAuth
|
|
3
|
+
} from "./chunk-3FJQHCCQ.mjs";
|
|
4
|
+
import {
|
|
5
|
+
SIWEJwtBearerAuth
|
|
6
|
+
} from "./chunk-UWRKMJBI.mjs";
|
|
7
|
+
import {
|
|
8
|
+
SRPJwtBearerAuth
|
|
9
|
+
} from "./chunk-LN2BY2QF.mjs";
|
|
10
|
+
import {
|
|
11
|
+
AuthType
|
|
12
|
+
} from "./chunk-YWA77VMP.mjs";
|
|
13
|
+
import {
|
|
14
|
+
MESSAGE_SIGNING_SNAP,
|
|
15
|
+
SNAP_ORIGIN,
|
|
16
|
+
connectSnap,
|
|
17
|
+
getSnap,
|
|
18
|
+
getSnaps
|
|
19
|
+
} from "./chunk-5EBUFNAN.mjs";
|
|
20
|
+
import {
|
|
21
|
+
STORAGE_URL,
|
|
22
|
+
UserStorage
|
|
23
|
+
} from "./chunk-UEZI2POO.mjs";
|
|
24
|
+
import {
|
|
25
|
+
Encryption,
|
|
26
|
+
createSHA256Hash
|
|
27
|
+
} from "./chunk-VTM5T7Y4.mjs";
|
|
28
|
+
import {
|
|
29
|
+
Env,
|
|
30
|
+
Platform,
|
|
31
|
+
getEnvUrls,
|
|
32
|
+
getOidcClientId
|
|
33
|
+
} from "./chunk-GLS4QZF6.mjs";
|
|
34
|
+
import {
|
|
35
|
+
NonceRetrievalError,
|
|
36
|
+
NotFoundError,
|
|
37
|
+
PairError,
|
|
38
|
+
SignInError,
|
|
39
|
+
UnsupportedAuthTypeError,
|
|
40
|
+
UserStorageError,
|
|
41
|
+
ValidationError
|
|
42
|
+
} from "./chunk-TFFQFIJV.mjs";
|
|
43
|
+
import {
|
|
44
|
+
__export
|
|
45
|
+
} from "./chunk-26CCETCM.mjs";
|
|
46
|
+
|
|
47
|
+
// src/sdk/index.ts
|
|
48
|
+
var sdk_exports = {};
|
|
49
|
+
__export(sdk_exports, {
|
|
50
|
+
AuthType: () => AuthType,
|
|
51
|
+
Encryption: () => Encryption,
|
|
52
|
+
Env: () => Env,
|
|
53
|
+
JwtBearerAuth: () => JwtBearerAuth,
|
|
54
|
+
MESSAGE_SIGNING_SNAP: () => MESSAGE_SIGNING_SNAP,
|
|
55
|
+
NonceRetrievalError: () => NonceRetrievalError,
|
|
56
|
+
NotFoundError: () => NotFoundError,
|
|
57
|
+
PairError: () => PairError,
|
|
58
|
+
Platform: () => Platform,
|
|
59
|
+
SIWEJwtBearerAuth: () => SIWEJwtBearerAuth,
|
|
60
|
+
SNAP_ORIGIN: () => SNAP_ORIGIN,
|
|
61
|
+
SRPJwtBearerAuth: () => SRPJwtBearerAuth,
|
|
62
|
+
STORAGE_URL: () => STORAGE_URL,
|
|
63
|
+
SignInError: () => SignInError,
|
|
64
|
+
UnsupportedAuthTypeError: () => UnsupportedAuthTypeError,
|
|
65
|
+
UserStorage: () => UserStorage,
|
|
66
|
+
UserStorageError: () => UserStorageError,
|
|
67
|
+
ValidationError: () => ValidationError,
|
|
68
|
+
connectSnap: () => connectSnap,
|
|
69
|
+
createSHA256Hash: () => createSHA256Hash,
|
|
70
|
+
getEnvUrls: () => getEnvUrls,
|
|
71
|
+
getOidcClientId: () => getOidcClientId,
|
|
72
|
+
getSnap: () => getSnap,
|
|
73
|
+
getSnaps: () => getSnaps
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
export {
|
|
77
|
+
sdk_exports
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=chunk-IZHWP5VW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/index.ts"],"sourcesContent":["export * from './authentication';\nexport * from './user-storage';\nexport * from './env';\nexport * from './errors';\nexport * from './encryption';\nexport * from './utils/messaging-signing-snap-requests';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import {
|
|
2
|
+
require_nock
|
|
3
|
+
} from "./chunk-JMU3OVPK.mjs";
|
|
4
|
+
import {
|
|
5
|
+
UserStorageController
|
|
6
|
+
} from "./chunk-PNZGAAT4.mjs";
|
|
7
|
+
import {
|
|
8
|
+
USER_STORAGE_ENDPOINT
|
|
9
|
+
} from "./chunk-DHHBHLVN.mjs";
|
|
10
|
+
import {
|
|
11
|
+
createEntryPath
|
|
12
|
+
} from "./chunk-772MKTIO.mjs";
|
|
13
|
+
import {
|
|
14
|
+
encryption_default as encryption_default2
|
|
15
|
+
} from "./chunk-BFE6TB7Y.mjs";
|
|
16
|
+
import {
|
|
17
|
+
createSHA256Hash,
|
|
18
|
+
encryption_default
|
|
19
|
+
} from "./chunk-QE2F5AZL.mjs";
|
|
20
|
+
import {
|
|
21
|
+
__export,
|
|
22
|
+
__toESM
|
|
23
|
+
} from "./chunk-26CCETCM.mjs";
|
|
24
|
+
|
|
25
|
+
// src/controllers/user-storage/index.ts
|
|
26
|
+
var user_storage_exports = {};
|
|
27
|
+
__export(user_storage_exports, {
|
|
28
|
+
Controller: () => UserStorageController,
|
|
29
|
+
Encryption: () => encryption_default,
|
|
30
|
+
Mocks: () => fixtures_exports,
|
|
31
|
+
createSHA256Hash: () => createSHA256Hash
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// src/controllers/user-storage/__fixtures__/index.ts
|
|
35
|
+
var fixtures_exports = {};
|
|
36
|
+
__export(fixtures_exports, {
|
|
37
|
+
MOCK_ENCRYPTED_STORAGE_DATA: () => MOCK_ENCRYPTED_STORAGE_DATA,
|
|
38
|
+
MOCK_STORAGE_DATA: () => MOCK_STORAGE_DATA,
|
|
39
|
+
MOCK_STORAGE_KEY: () => MOCK_STORAGE_KEY,
|
|
40
|
+
MOCK_STORAGE_KEY_SIGNATURE: () => MOCK_STORAGE_KEY_SIGNATURE,
|
|
41
|
+
MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT: () => MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT,
|
|
42
|
+
getMockUserStorageGetResponse: () => getMockUserStorageGetResponse,
|
|
43
|
+
getMockUserStoragePutResponse: () => getMockUserStoragePutResponse,
|
|
44
|
+
mockEndpointGetUserStorage: () => mockEndpointGetUserStorage,
|
|
45
|
+
mockEndpointUpsertUserStorage: () => mockEndpointUpsertUserStorage
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// src/controllers/user-storage/__fixtures__/mockStorage.ts
|
|
49
|
+
var MOCK_STORAGE_KEY_SIGNATURE = "mockStorageKey";
|
|
50
|
+
var MOCK_STORAGE_KEY = createSHA256Hash(MOCK_STORAGE_KEY_SIGNATURE);
|
|
51
|
+
var MOCK_STORAGE_DATA = JSON.stringify({ hello: "world" });
|
|
52
|
+
var MOCK_ENCRYPTED_STORAGE_DATA = encryption_default2.encryptString(
|
|
53
|
+
MOCK_STORAGE_DATA,
|
|
54
|
+
MOCK_STORAGE_KEY
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
// src/controllers/user-storage/__fixtures__/mockResponses.ts
|
|
58
|
+
var MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT = `${USER_STORAGE_ENDPOINT}${createEntryPath(
|
|
59
|
+
"notificationSettings",
|
|
60
|
+
MOCK_STORAGE_KEY
|
|
61
|
+
)}`;
|
|
62
|
+
var MOCK_GET_USER_STORAGE_RESPONSE = {
|
|
63
|
+
HashedKey: "HASHED_KEY",
|
|
64
|
+
Data: MOCK_ENCRYPTED_STORAGE_DATA
|
|
65
|
+
};
|
|
66
|
+
var getMockUserStorageGetResponse = () => {
|
|
67
|
+
return {
|
|
68
|
+
url: MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT,
|
|
69
|
+
requestMethod: "GET",
|
|
70
|
+
response: MOCK_GET_USER_STORAGE_RESPONSE
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
var getMockUserStoragePutResponse = () => {
|
|
74
|
+
return {
|
|
75
|
+
url: MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT,
|
|
76
|
+
requestMethod: "PUT",
|
|
77
|
+
response: null
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
// src/controllers/user-storage/__fixtures__/mockServices.ts
|
|
82
|
+
var import_nock = __toESM(require_nock());
|
|
83
|
+
var mockEndpointGetUserStorage = (mockReply) => {
|
|
84
|
+
const mockResponse = getMockUserStorageGetResponse();
|
|
85
|
+
const reply = mockReply ?? {
|
|
86
|
+
status: 200,
|
|
87
|
+
body: mockResponse.response
|
|
88
|
+
};
|
|
89
|
+
const mockEndpoint = (0, import_nock.default)(mockResponse.url).get("").reply(reply.status, reply.body);
|
|
90
|
+
return mockEndpoint;
|
|
91
|
+
};
|
|
92
|
+
var mockEndpointUpsertUserStorage = (mockReply) => {
|
|
93
|
+
const mockResponse = getMockUserStoragePutResponse();
|
|
94
|
+
const mockEndpoint = (0, import_nock.default)(mockResponse.url).put("").reply(mockReply?.status ?? 204);
|
|
95
|
+
return mockEndpoint;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export {
|
|
99
|
+
fixtures_exports,
|
|
100
|
+
user_storage_exports
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=chunk-JAGWB4JI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/controllers/user-storage/index.ts","../src/controllers/user-storage/__fixtures__/index.ts","../src/controllers/user-storage/__fixtures__/mockStorage.ts","../src/controllers/user-storage/__fixtures__/mockResponses.ts","../src/controllers/user-storage/__fixtures__/mockServices.ts"],"sourcesContent":["import Controller from './UserStorageController';\n\nexport { Controller };\nexport * from './UserStorageController';\nexport * from './encryption';\nexport * as Mocks from './__fixtures__';\n","export * from './mockResponses';\nexport * from './mockServices';\nexport * from './mockStorage';\n","import encryption, { createSHA256Hash } from '../encryption';\n\nexport const MOCK_STORAGE_KEY_SIGNATURE = 'mockStorageKey';\nexport const MOCK_STORAGE_KEY = createSHA256Hash(MOCK_STORAGE_KEY_SIGNATURE);\nexport const MOCK_STORAGE_DATA = JSON.stringify({ hello: 'world' });\nexport const MOCK_ENCRYPTED_STORAGE_DATA = encryption.encryptString(\n MOCK_STORAGE_DATA,\n MOCK_STORAGE_KEY,\n);\n","import { createEntryPath } from '../schema';\nimport type { GetUserStorageResponse } from '../services';\nimport { USER_STORAGE_ENDPOINT } from '../services';\nimport { MOCK_ENCRYPTED_STORAGE_DATA, MOCK_STORAGE_KEY } from './mockStorage';\n\ntype MockResponse = {\n url: string;\n requestMethod: 'GET' | 'POST' | 'PUT';\n response: unknown;\n};\n\nexport const MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT = `${USER_STORAGE_ENDPOINT}${createEntryPath(\n 'notificationSettings',\n MOCK_STORAGE_KEY,\n)}`;\n\nconst MOCK_GET_USER_STORAGE_RESPONSE: GetUserStorageResponse = {\n HashedKey: 'HASHED_KEY',\n Data: MOCK_ENCRYPTED_STORAGE_DATA,\n};\n\nexport const getMockUserStorageGetResponse = () => {\n return {\n url: MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT,\n requestMethod: 'GET',\n response: MOCK_GET_USER_STORAGE_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const getMockUserStoragePutResponse = () => {\n return {\n url: MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT,\n requestMethod: 'PUT',\n response: null,\n } satisfies MockResponse;\n};\n","import nock from 'nock';\n\nimport {\n getMockUserStorageGetResponse,\n getMockUserStoragePutResponse,\n} from './mockResponses';\n\ntype MockReply = {\n status: nock.StatusCode;\n body?: nock.Body;\n};\n\nexport const mockEndpointGetUserStorage = (mockReply?: MockReply) => {\n const mockResponse = getMockUserStorageGetResponse();\n const reply = mockReply ?? {\n status: 200,\n body: mockResponse.response,\n };\n\n const mockEndpoint = nock(mockResponse.url)\n .get('')\n .reply(reply.status, reply.body);\n\n return mockEndpoint;\n};\n\nexport const mockEndpointUpsertUserStorage = (\n mockReply?: Pick<MockReply, 'status'>,\n) => {\n const mockResponse = getMockUserStoragePutResponse();\n const mockEndpoint = nock(mockResponse.url)\n .put('')\n .reply(mockReply?.status ?? 204);\n return mockEndpoint;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,6BAA6B;AACnC,IAAM,mBAAmB,iBAAiB,0BAA0B;AACpE,IAAM,oBAAoB,KAAK,UAAU,EAAE,OAAO,QAAQ,CAAC;AAC3D,IAAM,8BAA8BA,oBAAW;AAAA,EACpD;AAAA,EACA;AACF;;;ACGO,IAAM,2CAA2C,GAAG,qBAAqB,GAAG;AAAA,EACjF;AAAA,EACA;AACF,CAAC;AAED,IAAM,iCAAyD;AAAA,EAC7D,WAAW;AAAA,EACX,MAAM;AACR;AAEO,IAAM,gCAAgC,MAAM;AACjD,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,gCAAgC,MAAM;AACjD,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;;;ACnCA,kBAAiB;AAYV,IAAM,6BAA6B,CAAC,cAA0B;AACnE,QAAM,eAAe,8BAA8B;AACnD,QAAM,QAAQ,aAAa;AAAA,IACzB,QAAQ;AAAA,IACR,MAAM,aAAa;AAAA,EACrB;AAEA,QAAM,mBAAe,YAAAC,SAAK,aAAa,GAAG,EACvC,IAAI,EAAE,EACN,MAAM,MAAM,QAAQ,MAAM,IAAI;AAEjC,SAAO;AACT;AAEO,IAAM,gCAAgC,CAC3C,cACG;AACH,QAAM,eAAe,8BAA8B;AACnD,QAAM,mBAAe,YAAAA,SAAK,aAAa,GAAG,EACvC,IAAI,EAAE,EACN,MAAM,WAAW,UAAU,GAAG;AACjC,SAAO;AACT;","names":["encryption_default","nock"]}
|