@metamask/profile-sync-controller 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/dist/{chunk-DHHBHLVN.mjs → chunk-2XGRQBXI.mjs} +4 -4
  3. package/dist/{chunk-PRDECQM6.mjs → chunk-32HAX3MW.mjs} +7 -4
  4. package/dist/chunk-32HAX3MW.mjs.map +1 -0
  5. package/dist/{chunk-K6G7X6PX.js → chunk-5SXXO4MV.js} +9 -9
  6. package/dist/{chunk-BFE6TB7Y.mjs → chunk-5TOWF6UW.mjs} +2 -2
  7. package/dist/{chunk-QHL6SQTC.mjs → chunk-AARMY5TW.mjs} +10 -36
  8. package/dist/chunk-AARMY5TW.mjs.map +1 -0
  9. package/dist/{chunk-JTDFOATG.js → chunk-AK7OTIWA.js} +3 -3
  10. package/dist/{chunk-772MKTIO.mjs → chunk-AUFUOKJW.mjs} +2 -2
  11. package/dist/{chunk-6TK7544L.js → chunk-AVOOINGJ.js} +27 -27
  12. package/dist/{chunk-UEZI2POO.mjs → chunk-AXWK4Y23.mjs} +4 -4
  13. package/dist/{chunk-VTM5T7Y4.mjs → chunk-B5DBQDB3.mjs} +2 -2
  14. package/dist/{chunk-7FCK4BY3.js → chunk-B6CSNLGE.js} +3 -3
  15. package/dist/{chunk-XUPRRLBI.js → chunk-BOET676P.js} +8 -8
  16. package/dist/{chunk-YWA77VMP.mjs → chunk-CAIIVJAO.mjs} +1 -1
  17. package/dist/chunk-CAIIVJAO.mjs.map +1 -0
  18. package/dist/{chunk-2MVOZPBN.js → chunk-ELHJSRS2.js} +4 -4
  19. package/dist/{chunk-3FJQHCCQ.mjs → chunk-FCT2LIGH.mjs} +5 -5
  20. package/dist/{chunk-GLS4QZF6.mjs → chunk-FQ5SDMRE.mjs} +1 -1
  21. package/dist/chunk-FQ5SDMRE.mjs.map +1 -0
  22. package/dist/chunk-H4TDS65R.js +81 -0
  23. package/dist/chunk-H4TDS65R.js.map +1 -0
  24. package/dist/chunk-IGY2S5BC.js +36 -0
  25. package/dist/{chunk-UWRKMJBI.mjs → chunk-JLDFMYAH.mjs} +3 -3
  26. package/dist/{chunk-QE2F5AZL.mjs → chunk-K5UKU454.mjs} +2 -2
  27. package/dist/{chunk-W7JFFMEZ.mjs → chunk-KBCXN3YW.mjs} +2 -2
  28. package/dist/{chunk-JAGWB4JI.mjs → chunk-LSVRA3X2.mjs} +13 -34
  29. package/dist/chunk-LSVRA3X2.mjs.map +1 -0
  30. package/dist/{chunk-DLXLU44Z.js → chunk-NLHLVVOO.js} +21 -21
  31. package/dist/{chunk-GLDUXN2T.js → chunk-P4DUDLMY.js} +24 -24
  32. package/dist/{chunk-LUKNP4HM.js → chunk-P52TG263.js} +19 -19
  33. package/dist/{chunk-T77FC4PB.js → chunk-PBRUOBEQ.js} +1 -1
  34. package/dist/chunk-PBRUOBEQ.js.map +1 -0
  35. package/dist/chunk-PTR4DAX6.js +79 -0
  36. package/dist/{chunk-LHDVZNW5.js → chunk-Q5WIUNX5.js} +37 -37
  37. package/dist/{chunk-BVM4HBM4.js → chunk-RX5R6BUI.js} +13 -39
  38. package/dist/chunk-RX5R6BUI.js.map +1 -0
  39. package/dist/{chunk-4OMJ7A6A.js → chunk-SMKTWM6I.js} +1 -1
  40. package/dist/chunk-SMKTWM6I.js.map +1 -0
  41. package/dist/{chunk-JWTNHCVG.js → chunk-T3FNDVE3.js} +13 -13
  42. package/dist/{chunk-PNZGAAT4.mjs → chunk-TGFMKARH.mjs} +5 -4
  43. package/dist/chunk-TGFMKARH.mjs.map +1 -0
  44. package/dist/chunk-U5UIDVOO.mjs +36 -0
  45. package/dist/{chunk-7VMXBDXN.mjs → chunk-WB6MUIML.mjs} +2 -2
  46. package/dist/{chunk-IZHWP5VW.mjs → chunk-WJCKQLKK.mjs} +9 -9
  47. package/dist/{chunk-LN2BY2QF.mjs → chunk-Y46NMA3V.mjs} +3 -3
  48. package/dist/{chunk-ARWL2LBB.js → chunk-YASNOFBV.js} +38 -37
  49. package/dist/chunk-YASNOFBV.js.map +1 -0
  50. package/dist/{chunk-WAS6V24H.js → chunk-YUXN5GSW.js} +33 -30
  51. package/dist/chunk-YUXN5GSW.js.map +1 -0
  52. package/dist/controllers/authentication/AuthenticationController.js +15 -13
  53. package/dist/controllers/authentication/AuthenticationController.mjs +16 -14
  54. package/dist/controllers/authentication/auth-snap-requests.js +1 -1
  55. package/dist/controllers/authentication/auth-snap-requests.mjs +1 -1
  56. package/dist/controllers/authentication/index.js +16 -15
  57. package/dist/controllers/authentication/index.mjs +17 -16
  58. package/dist/controllers/authentication/services.js +12 -12
  59. package/dist/controllers/authentication/services.mjs +11 -11
  60. package/dist/controllers/index.js +20 -21
  61. package/dist/controllers/index.mjs +19 -20
  62. package/dist/controllers/user-storage/UserStorageController.js +18 -16
  63. package/dist/controllers/user-storage/UserStorageController.mjs +19 -17
  64. package/dist/controllers/user-storage/encryption/cache.js +1 -1
  65. package/dist/controllers/user-storage/encryption/cache.mjs +1 -1
  66. package/dist/controllers/user-storage/encryption/encryption.js +3 -3
  67. package/dist/controllers/user-storage/encryption/encryption.mjs +2 -2
  68. package/dist/controllers/user-storage/encryption/index.js +4 -4
  69. package/dist/controllers/user-storage/encryption/index.mjs +3 -3
  70. package/dist/controllers/user-storage/encryption/utils.js +1 -1
  71. package/dist/controllers/user-storage/encryption/utils.mjs +1 -1
  72. package/dist/controllers/user-storage/index.js +19 -18
  73. package/dist/controllers/user-storage/index.mjs +20 -19
  74. package/dist/controllers/user-storage/schema.js +5 -5
  75. package/dist/controllers/user-storage/schema.mjs +4 -4
  76. package/dist/controllers/user-storage/services.js +15 -15
  77. package/dist/controllers/user-storage/services.mjs +14 -14
  78. package/dist/index.js +20 -21
  79. package/dist/index.mjs +19 -20
  80. package/dist/sdk/authentication-jwt-bearer/flow-siwe.js +6 -6
  81. package/dist/sdk/authentication-jwt-bearer/flow-siwe.mjs +5 -5
  82. package/dist/sdk/authentication-jwt-bearer/flow-srp.js +6 -6
  83. package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs +5 -5
  84. package/dist/sdk/authentication-jwt-bearer/services.js +5 -5
  85. package/dist/sdk/authentication-jwt-bearer/services.mjs +4 -4
  86. package/dist/sdk/authentication-jwt-bearer/types.js +3 -3
  87. package/dist/sdk/authentication-jwt-bearer/types.mjs +2 -2
  88. package/dist/sdk/authentication.js +8 -8
  89. package/dist/sdk/authentication.mjs +7 -7
  90. package/dist/sdk/encryption.js +3 -3
  91. package/dist/sdk/encryption.mjs +2 -2
  92. package/dist/sdk/env.js +3 -3
  93. package/dist/sdk/env.mjs +2 -2
  94. package/dist/sdk/errors.js +1 -1
  95. package/dist/sdk/errors.mjs +1 -1
  96. package/dist/sdk/index.js +11 -11
  97. package/dist/sdk/index.mjs +10 -10
  98. package/dist/sdk/user-storage.js +5 -5
  99. package/dist/sdk/user-storage.mjs +4 -4
  100. package/dist/sdk/utils/eip-6963-metamask-provider.js +1 -1
  101. package/dist/sdk/utils/eip-6963-metamask-provider.mjs +1 -1
  102. package/dist/sdk/utils/messaging-signing-snap-requests.js +1 -1
  103. package/dist/sdk/utils/messaging-signing-snap-requests.mjs +1 -1
  104. package/dist/tsconfig.build.tsbuildinfo +1 -1
  105. package/dist/types/controllers/authentication/AuthenticationController.d.ts +1 -0
  106. package/dist/types/controllers/authentication/AuthenticationController.d.ts.map +1 -1
  107. package/dist/types/controllers/authentication/__fixtures__/index.d.ts +0 -1
  108. package/dist/types/controllers/authentication/__fixtures__/index.d.ts.map +1 -1
  109. package/dist/types/controllers/user-storage/UserStorageController.d.ts +1 -0
  110. package/dist/types/controllers/user-storage/UserStorageController.d.ts.map +1 -1
  111. package/dist/types/controllers/user-storage/__fixtures__/index.d.ts +0 -1
  112. package/dist/types/controllers/user-storage/__fixtures__/index.d.ts.map +1 -1
  113. package/dist/types/sdk/authentication-jwt-bearer/types.d.ts +1 -1
  114. package/dist/types/sdk/authentication-jwt-bearer/types.d.ts.map +1 -1
  115. package/dist/types/sdk/env.d.ts +2 -2
  116. package/dist/types/sdk/env.d.ts.map +1 -1
  117. package/package.json +1 -1
  118. package/dist/chunk-26CCETCM.mjs +0 -70
  119. package/dist/chunk-4OMJ7A6A.js.map +0 -1
  120. package/dist/chunk-ARWL2LBB.js.map +0 -1
  121. package/dist/chunk-BVM4HBM4.js.map +0 -1
  122. package/dist/chunk-GJJT2CAL.js +0 -3342
  123. package/dist/chunk-GJJT2CAL.js.map +0 -1
  124. package/dist/chunk-GLS4QZF6.mjs.map +0 -1
  125. package/dist/chunk-JAGWB4JI.mjs.map +0 -1
  126. package/dist/chunk-JMU3OVPK.mjs +0 -3342
  127. package/dist/chunk-JMU3OVPK.mjs.map +0 -1
  128. package/dist/chunk-PNZGAAT4.mjs.map +0 -1
  129. package/dist/chunk-PRDECQM6.mjs.map +0 -1
  130. package/dist/chunk-QHL6SQTC.mjs.map +0 -1
  131. package/dist/chunk-QILE6KIE.js +0 -79
  132. package/dist/chunk-T77FC4PB.js.map +0 -1
  133. package/dist/chunk-V46WVGWN.js +0 -70
  134. package/dist/chunk-VYE2DKST.js +0 -102
  135. package/dist/chunk-VYE2DKST.js.map +0 -1
  136. package/dist/chunk-WAS6V24H.js.map +0 -1
  137. package/dist/chunk-YWA77VMP.mjs.map +0 -1
  138. /package/dist/{chunk-DHHBHLVN.mjs.map → chunk-2XGRQBXI.mjs.map} +0 -0
  139. /package/dist/{chunk-K6G7X6PX.js.map → chunk-5SXXO4MV.js.map} +0 -0
  140. /package/dist/{chunk-BFE6TB7Y.mjs.map → chunk-5TOWF6UW.mjs.map} +0 -0
  141. /package/dist/{chunk-JTDFOATG.js.map → chunk-AK7OTIWA.js.map} +0 -0
  142. /package/dist/{chunk-772MKTIO.mjs.map → chunk-AUFUOKJW.mjs.map} +0 -0
  143. /package/dist/{chunk-6TK7544L.js.map → chunk-AVOOINGJ.js.map} +0 -0
  144. /package/dist/{chunk-UEZI2POO.mjs.map → chunk-AXWK4Y23.mjs.map} +0 -0
  145. /package/dist/{chunk-VTM5T7Y4.mjs.map → chunk-B5DBQDB3.mjs.map} +0 -0
  146. /package/dist/{chunk-7FCK4BY3.js.map → chunk-B6CSNLGE.js.map} +0 -0
  147. /package/dist/{chunk-XUPRRLBI.js.map → chunk-BOET676P.js.map} +0 -0
  148. /package/dist/{chunk-2MVOZPBN.js.map → chunk-ELHJSRS2.js.map} +0 -0
  149. /package/dist/{chunk-3FJQHCCQ.mjs.map → chunk-FCT2LIGH.mjs.map} +0 -0
  150. /package/dist/{chunk-V46WVGWN.js.map → chunk-IGY2S5BC.js.map} +0 -0
  151. /package/dist/{chunk-UWRKMJBI.mjs.map → chunk-JLDFMYAH.mjs.map} +0 -0
  152. /package/dist/{chunk-QE2F5AZL.mjs.map → chunk-K5UKU454.mjs.map} +0 -0
  153. /package/dist/{chunk-W7JFFMEZ.mjs.map → chunk-KBCXN3YW.mjs.map} +0 -0
  154. /package/dist/{chunk-DLXLU44Z.js.map → chunk-NLHLVVOO.js.map} +0 -0
  155. /package/dist/{chunk-GLDUXN2T.js.map → chunk-P4DUDLMY.js.map} +0 -0
  156. /package/dist/{chunk-LUKNP4HM.js.map → chunk-P52TG263.js.map} +0 -0
  157. /package/dist/{chunk-QILE6KIE.js.map → chunk-PTR4DAX6.js.map} +0 -0
  158. /package/dist/{chunk-LHDVZNW5.js.map → chunk-Q5WIUNX5.js.map} +0 -0
  159. /package/dist/{chunk-JWTNHCVG.js.map → chunk-T3FNDVE3.js.map} +0 -0
  160. /package/dist/{chunk-26CCETCM.mjs.map → chunk-U5UIDVOO.mjs.map} +0 -0
  161. /package/dist/{chunk-7VMXBDXN.mjs.map → chunk-WB6MUIML.mjs.map} +0 -0
  162. /package/dist/{chunk-IZHWP5VW.mjs.map → chunk-WJCKQLKK.mjs.map} +0 -0
  163. /package/dist/{chunk-LN2BY2QF.mjs.map → chunk-Y46NMA3V.mjs.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/controllers/authentication/index.ts","../src/controllers/authentication/__fixtures__/index.ts","../src/controllers/authentication/__fixtures__/mockResponses.ts","../src/controllers/authentication/__fixtures__/mockServices.ts"],"sourcesContent":["import Controller from './AuthenticationController';\n\nexport { Controller };\nexport * from './AuthenticationController';\nexport * as Mocks from './__fixtures__';\n","export * from './mockResponses';\nexport * from './mockServices';\n","import type {\n LoginResponse,\n NonceResponse,\n OAuthTokenResponse,\n} from '../services';\nimport {\n AUTH_LOGIN_ENDPOINT,\n AUTH_NONCE_ENDPOINT,\n OIDC_TOKENS_ENDPOINT,\n} from '../services';\n\ntype MockResponse = {\n url: string;\n requestMethod: 'GET' | 'POST' | 'PUT';\n response: unknown;\n};\n\nexport const MOCK_NONCE = '4cbfqzoQpcNxVImGv';\nexport const MOCK_NONCE_RESPONSE: NonceResponse = {\n nonce: MOCK_NONCE,\n};\n\nexport const getMockAuthNonceResponse = () => {\n return {\n url: AUTH_NONCE_ENDPOINT,\n requestMethod: 'GET',\n response: MOCK_NONCE_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const MOCK_JWT =\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';\nexport const MOCK_LOGIN_RESPONSE: LoginResponse = {\n token: MOCK_JWT,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: new Date().toString(),\n profile: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n identifier_id: 'MOCK_IDENTIFIER',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n profile_id: 'MOCK_PROFILE_ID',\n },\n};\n\nexport const getMockAuthLoginResponse = () => {\n return {\n url: AUTH_LOGIN_ENDPOINT,\n requestMethod: 'POST',\n response: MOCK_LOGIN_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const MOCK_ACCESS_TOKEN = `MOCK_ACCESS_TOKEN-${MOCK_JWT}`;\nexport const MOCK_OATH_TOKEN_RESPONSE: OAuthTokenResponse = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n access_token: MOCK_ACCESS_TOKEN,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: new Date().getTime(),\n};\n\nexport const getMockAuthAccessTokenResponse = () => {\n return {\n url: OIDC_TOKENS_ENDPOINT,\n requestMethod: 'POST',\n response: MOCK_OATH_TOKEN_RESPONSE,\n } satisfies MockResponse;\n};\n","import nock from 'nock';\n\nimport {\n getMockAuthAccessTokenResponse,\n getMockAuthLoginResponse,\n getMockAuthNonceResponse,\n} from './mockResponses';\n\ntype MockReply = {\n status: nock.StatusCode;\n body?: nock.Body;\n};\n\nexport const mockEndpointGetNonce = (mockReply?: MockReply) => {\n const mockResponse = getMockAuthNonceResponse();\n const reply = mockReply ?? { status: 200, body: mockResponse.response };\n const mockNonceEndpoint = nock(mockResponse.url)\n .get('')\n .query(true)\n .reply(reply.status, reply.body);\n\n return mockNonceEndpoint;\n};\n\nexport const mockEndpointLogin = (mockReply?: MockReply) => {\n const mockResponse = getMockAuthLoginResponse();\n const reply = mockReply ?? { status: 200, body: mockResponse.response };\n const mockLoginEndpoint = nock(mockResponse.url)\n .post('')\n .reply(reply.status, reply.body);\n\n return mockLoginEndpoint;\n};\n\nexport const mockEndpointAccessToken = (mockReply?: MockReply) => {\n const mockResponse = getMockAuthAccessTokenResponse();\n const reply = mockReply ?? { status: 200, body: mockResponse.response };\n const mockOidcTokensEndpoint = nock(mockResponse.url)\n .post('')\n .reply(reply.status, reply.body);\n\n return mockOidcTokensEndpoint;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACiBO,IAAM,aAAa;AACnB,IAAM,sBAAqC;AAAA,EAChD,OAAO;AACT;AAEO,IAAM,2BAA2B,MAAM;AAC5C,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,WACX;AACK,IAAM,sBAAqC;AAAA,EAChD,OAAO;AAAA;AAAA,EAEP,aAAY,oBAAI,KAAK,GAAE,SAAS;AAAA,EAChC,SAAS;AAAA;AAAA,IAEP,eAAe;AAAA;AAAA,IAEf,YAAY;AAAA,EACd;AACF;AAEO,IAAM,2BAA2B,MAAM;AAC5C,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,oBAAoB,qBAAqB,QAAQ;AACvD,IAAM,2BAA+C;AAAA;AAAA,EAE1D,cAAc;AAAA;AAAA,EAEd,aAAY,oBAAI,KAAK,GAAE,QAAQ;AACjC;AAEO,IAAM,iCAAiC,MAAM;AAClD,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;;;AClEA,kBAAiB;AAaV,IAAM,uBAAuB,CAAC,cAA0B;AAC7D,QAAM,eAAe,yBAAyB;AAC9C,QAAM,QAAQ,aAAa,EAAE,QAAQ,KAAK,MAAM,aAAa,SAAS;AACtE,QAAM,wBAAoB,YAAAA,SAAK,aAAa,GAAG,EAC5C,IAAI,EAAE,EACN,MAAM,IAAI,EACV,MAAM,MAAM,QAAQ,MAAM,IAAI;AAEjC,SAAO;AACT;AAEO,IAAM,oBAAoB,CAAC,cAA0B;AAC1D,QAAM,eAAe,yBAAyB;AAC9C,QAAM,QAAQ,aAAa,EAAE,QAAQ,KAAK,MAAM,aAAa,SAAS;AACtE,QAAM,wBAAoB,YAAAA,SAAK,aAAa,GAAG,EAC5C,KAAK,EAAE,EACP,MAAM,MAAM,QAAQ,MAAM,IAAI;AAEjC,SAAO;AACT;AAEO,IAAM,0BAA0B,CAAC,cAA0B;AAChE,QAAM,eAAe,+BAA+B;AACpD,QAAM,QAAQ,aAAa,EAAE,QAAQ,KAAK,MAAM,aAAa,SAAS;AACtE,QAAM,6BAAyB,YAAAA,SAAK,aAAa,GAAG,EACjD,KAAK,EAAE,EACP,MAAM,MAAM,QAAQ,MAAM,IAAI;AAEjC,SAAO;AACT;","names":["nock"]}
@@ -1,79 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkDLXLU44Zjs = require('./chunk-DLXLU44Z.js');
4
-
5
-
6
- var _chunkLHDVZNW5js = require('./chunk-LHDVZNW5.js');
7
-
8
-
9
- var _chunk6TK7544Ljs = require('./chunk-6TK7544L.js');
10
-
11
-
12
- var _chunkT77FC4PBjs = require('./chunk-T77FC4PB.js');
13
-
14
-
15
-
16
-
17
-
18
-
19
- var _chunkPQ5T4GHYjs = require('./chunk-PQ5T4GHY.js');
20
-
21
-
22
-
23
- var _chunkLUKNP4HMjs = require('./chunk-LUKNP4HM.js');
24
-
25
-
26
-
27
- var _chunkGLDUXN2Tjs = require('./chunk-GLDUXN2T.js');
28
-
29
-
30
-
31
-
32
-
33
- var _chunk4OMJ7A6Ajs = require('./chunk-4OMJ7A6A.js');
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
- var _chunkMBTBE4P5js = require('./chunk-MBTBE4P5.js');
43
-
44
-
45
- var _chunkV46WVGWNjs = require('./chunk-V46WVGWN.js');
46
-
47
- // src/sdk/index.ts
48
- var sdk_exports = {};
49
- _chunkV46WVGWNjs.__export.call(void 0, sdk_exports, {
50
- AuthType: () => _chunkT77FC4PBjs.AuthType,
51
- Encryption: () => _chunkGLDUXN2Tjs.Encryption,
52
- Env: () => _chunk4OMJ7A6Ajs.Env,
53
- JwtBearerAuth: () => _chunkDLXLU44Zjs.JwtBearerAuth,
54
- MESSAGE_SIGNING_SNAP: () => _chunkPQ5T4GHYjs.MESSAGE_SIGNING_SNAP,
55
- NonceRetrievalError: () => _chunkMBTBE4P5js.NonceRetrievalError,
56
- NotFoundError: () => _chunkMBTBE4P5js.NotFoundError,
57
- PairError: () => _chunkMBTBE4P5js.PairError,
58
- Platform: () => _chunk4OMJ7A6Ajs.Platform,
59
- SIWEJwtBearerAuth: () => _chunkLHDVZNW5js.SIWEJwtBearerAuth,
60
- SNAP_ORIGIN: () => _chunkPQ5T4GHYjs.SNAP_ORIGIN,
61
- SRPJwtBearerAuth: () => _chunk6TK7544Ljs.SRPJwtBearerAuth,
62
- STORAGE_URL: () => _chunkLUKNP4HMjs.STORAGE_URL,
63
- SignInError: () => _chunkMBTBE4P5js.SignInError,
64
- UnsupportedAuthTypeError: () => _chunkMBTBE4P5js.UnsupportedAuthTypeError,
65
- UserStorage: () => _chunkLUKNP4HMjs.UserStorage,
66
- UserStorageError: () => _chunkMBTBE4P5js.UserStorageError,
67
- ValidationError: () => _chunkMBTBE4P5js.ValidationError,
68
- connectSnap: () => _chunkPQ5T4GHYjs.connectSnap,
69
- createSHA256Hash: () => _chunkGLDUXN2Tjs.createSHA256Hash,
70
- getEnvUrls: () => _chunk4OMJ7A6Ajs.getEnvUrls,
71
- getOidcClientId: () => _chunk4OMJ7A6Ajs.getOidcClientId,
72
- getSnap: () => _chunkPQ5T4GHYjs.getSnap,
73
- getSnaps: () => _chunkPQ5T4GHYjs.getSnaps
74
- });
75
-
76
-
77
-
78
- exports.sdk_exports = sdk_exports;
79
- //# sourceMappingURL=chunk-QILE6KIE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sdk/authentication-jwt-bearer/types.ts"],"names":["AuthType"],"mappings":";AAEO,IAAW,WAAX,kBAAWA,cAAX;AAGL,EAAAA,UAAA,SAAM;AAGN,EAAAA,UAAA,UAAO;AANS,SAAAA;AAAA,GAAA","sourcesContent":["import type { Env, Platform } from '../env';\n\nexport const enum AuthType {\n /* sign in using a private key derived from your secret recovery phrase (SRP). \n Uses message signing snap to perform this operation */\n SRP = 'SRP',\n\n /* sign in with Ethereum */\n SiWE = 'SiWE',\n}\n\nexport type AuthConfig = {\n env: Env;\n platform: Platform;\n type: AuthType;\n};\n\nexport type AccessToken = {\n /**\n * The JWT Access Token\n */\n accessToken: string;\n /**\n * Expiration in seconds\n */\n expiresIn: number;\n /**\n * Date in milliseconds\n */\n obtainedAt: number;\n};\n\nexport type UserProfile = {\n /**\n * The \"Identifier\" used to log in with.\n */\n identifierId: string;\n /**\n * The Unique profile for a logged in user. A Profile can be logged in via multiple Identifiers\n */\n profileId: string;\n /**\n * Server MetaMetrics ID. Allows grouping of user events cross platform.\n */\n metaMetricsId: string;\n};\n\nexport type LoginResponse = {\n token: AccessToken;\n profile: UserProfile;\n};\n\nexport type IBaseAuth = {\n getAccessToken: () => Promise<string>;\n getUserProfile: () => Promise<UserProfile>;\n getIdentifier: () => Promise<string>;\n signMessage: (message: string) => Promise<string>;\n};\n\nexport type AuthStorageOptions = {\n getLoginResponse: () => Promise<LoginResponse | null>;\n setLoginResponse: (val: LoginResponse) => Promise<void>;\n};\n\nexport type AuthSigningOptions = {\n signMessage: (message: string) => Promise<string>;\n getIdentifier: () => Promise<string>;\n};\n\nexport type ErrorMessage = {\n message: string;\n error: string;\n};\n\nexport type Pair = {\n identifier: string;\n encryptedStorageKey: string;\n identifierType: 'SIWE' | 'SRP';\n signMessage: (message: string) => Promise<string>;\n};\n"]}
@@ -1,70 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});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
-
61
-
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
- exports.__require = __require; exports.__commonJS = __commonJS; exports.__export = __export; exports.__toESM = __toESM; exports.__privateGet = __privateGet; exports.__privateAdd = __privateAdd; exports.__privateSet = __privateSet; exports.__privateMethod = __privateMethod;
70
- //# sourceMappingURL=chunk-V46WVGWN.js.map
@@ -1,102 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkGJJT2CALjs = require('./chunk-GJJT2CAL.js');
4
-
5
-
6
- var _chunkARWL2LBBjs = require('./chunk-ARWL2LBB.js');
7
-
8
-
9
- var _chunkK6G7X6PXjs = require('./chunk-K6G7X6PX.js');
10
-
11
-
12
- var _chunk7FCK4BY3js = require('./chunk-7FCK4BY3.js');
13
-
14
-
15
- var _chunkJTDFOATGjs = require('./chunk-JTDFOATG.js');
16
-
17
-
18
-
19
- var _chunkJWTNHCVGjs = require('./chunk-JWTNHCVG.js');
20
-
21
-
22
-
23
- var _chunkV46WVGWNjs = require('./chunk-V46WVGWN.js');
24
-
25
- // src/controllers/user-storage/index.ts
26
- var user_storage_exports = {};
27
- _chunkV46WVGWNjs.__export.call(void 0, user_storage_exports, {
28
- Controller: () => _chunkARWL2LBBjs.UserStorageController,
29
- Encryption: () => _chunkJWTNHCVGjs.encryption_default,
30
- Mocks: () => fixtures_exports,
31
- createSHA256Hash: () => _chunkJWTNHCVGjs.createSHA256Hash
32
- });
33
-
34
- // src/controllers/user-storage/__fixtures__/index.ts
35
- var fixtures_exports = {};
36
- _chunkV46WVGWNjs.__export.call(void 0, 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 = _chunkJWTNHCVGjs.createSHA256Hash.call(void 0, MOCK_STORAGE_KEY_SIGNATURE);
51
- var MOCK_STORAGE_DATA = JSON.stringify({ hello: "world" });
52
- var MOCK_ENCRYPTED_STORAGE_DATA = _chunkJTDFOATGjs.encryption_default.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 = `${_chunkK6G7X6PXjs.USER_STORAGE_ENDPOINT}${_chunk7FCK4BY3js.createEntryPath.call(void 0,
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 = _chunkV46WVGWNjs.__toESM.call(void 0, _chunkGJJT2CALjs.require_nock.call(void 0, ));
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
-
99
-
100
-
101
- exports.fixtures_exports = fixtures_exports; exports.user_storage_exports = user_storage_exports;
102
- //# sourceMappingURL=chunk-VYE2DKST.js.map
@@ -1 +0,0 @@
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"],"names":["encryption_default","nock"],"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","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"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/controllers/authentication/AuthenticationController.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n RestrictedControllerMessenger,\n StateMetadata,\n} from '@metamask/base-controller';\nimport { BaseController } from '@metamask/base-controller';\nimport type { HandleSnapRequest } from '@metamask/snaps-controllers';\n\nimport type { UserStorageControllerDisableProfileSyncing } from '../user-storage/UserStorageController';\nimport {\n createSnapPublicKeyRequest,\n createSnapSignMessageRequest,\n} from './auth-snap-requests';\nimport {\n createLoginRawMessage,\n getAccessToken,\n getNonce,\n login,\n} from './services';\n\nconst THIRTY_MIN_MS = 1000 * 60 * 30;\n\nconst controllerName = 'AuthenticationController';\n\n// State\ntype SessionProfile = {\n identifierId: string;\n profileId: string;\n};\n\ntype SessionData = {\n /** profile - anonymous profile data for the given logged in user */\n profile: SessionProfile;\n /** accessToken - used to make requests authorized endpoints */\n accessToken: string;\n /** expiresIn - string date to determine if new access token is required */\n expiresIn: string;\n};\n\ntype MetaMetricsAuth = {\n getMetaMetricsId: () => string;\n agent: 'extension' | 'mobile';\n};\n\nexport type AuthenticationControllerState = {\n /**\n * Global isSignedIn state.\n * Can be used to determine if \"Profile Syncing\" is enabled.\n */\n isSignedIn: boolean;\n sessionData?: SessionData;\n};\nconst defaultState: AuthenticationControllerState = { isSignedIn: false };\nconst metadata: StateMetadata<AuthenticationControllerState> = {\n isSignedIn: {\n persist: true,\n anonymous: true,\n },\n sessionData: {\n persist: true,\n anonymous: false,\n },\n};\n\n// Messenger Actions\ntype CreateActionsObj<Controller extends keyof AuthenticationController> = {\n [K in Controller]: {\n type: `${typeof controllerName}:${K}`;\n handler: AuthenticationController[K];\n };\n};\ntype ActionsObj = CreateActionsObj<\n | 'performSignIn'\n | 'performSignOut'\n | 'getBearerToken'\n | 'getSessionProfile'\n | 'isSignedIn'\n>;\nexport type Actions = ActionsObj[keyof ActionsObj];\nexport type AuthenticationControllerPerformSignIn = ActionsObj['performSignIn'];\nexport type AuthenticationControllerPerformSignOut =\n ActionsObj['performSignOut'];\nexport type AuthenticationControllerGetBearerToken =\n ActionsObj['getBearerToken'];\nexport type AuthenticationControllerGetSessionProfile =\n ActionsObj['getSessionProfile'];\nexport type AuthenticationControllerIsSignedIn = ActionsObj['isSignedIn'];\n\n// Allowed Actions\nexport type AllowedActions =\n | HandleSnapRequest\n | UserStorageControllerDisableProfileSyncing;\n\n// Messenger\nexport type AuthenticationControllerMessenger = RestrictedControllerMessenger<\n typeof controllerName,\n Actions | AllowedActions,\n never,\n AllowedActions['type'],\n never\n>;\n\n/**\n * Controller that enables authentication for restricted endpoints.\n * Used for Global Profile Syncing and Notifications\n */\nexport default class AuthenticationController extends BaseController<\n typeof controllerName,\n AuthenticationControllerState,\n AuthenticationControllerMessenger\n> {\n #metametrics: MetaMetricsAuth;\n\n constructor({\n messenger,\n state,\n metametrics,\n }: {\n messenger: AuthenticationControllerMessenger;\n state?: AuthenticationControllerState;\n /**\n * Not using the Messaging System as we\n * do not want to tie this strictly to extension\n */\n metametrics: MetaMetricsAuth;\n }) {\n super({\n messenger,\n metadata,\n name: controllerName,\n state: { ...defaultState, ...state },\n });\n\n this.#metametrics = metametrics;\n\n this.#registerMessageHandlers();\n }\n\n /**\n * Constructor helper for registering this controller's messaging system\n * actions.\n */\n #registerMessageHandlers(): void {\n this.messagingSystem.registerActionHandler(\n 'AuthenticationController:getBearerToken',\n this.getBearerToken.bind(this),\n );\n\n this.messagingSystem.registerActionHandler(\n 'AuthenticationController:getSessionProfile',\n this.getSessionProfile.bind(this),\n );\n\n this.messagingSystem.registerActionHandler(\n 'AuthenticationController:isSignedIn',\n this.isSignedIn.bind(this),\n );\n\n this.messagingSystem.registerActionHandler(\n 'AuthenticationController:performSignIn',\n this.performSignIn.bind(this),\n );\n\n this.messagingSystem.registerActionHandler(\n 'AuthenticationController:performSignOut',\n this.performSignOut.bind(this),\n );\n }\n\n public async performSignIn(): Promise<string> {\n const { accessToken } = await this.#performAuthenticationFlow();\n return accessToken;\n }\n\n public performSignOut(): void {\n this.#assertLoggedIn();\n\n this.update((state) => {\n state.isSignedIn = false;\n state.sessionData = undefined;\n });\n }\n\n public async getBearerToken(): Promise<string> {\n this.#assertLoggedIn();\n\n if (this.#hasValidSession(this.state.sessionData)) {\n return this.state.sessionData.accessToken;\n }\n\n const { accessToken } = await this.#performAuthenticationFlow();\n return accessToken;\n }\n\n /**\n * Will return a session profile.\n * Throws if a user is not logged in.\n *\n * @returns profile for the session.\n */\n public async getSessionProfile(): Promise<SessionProfile> {\n this.#assertLoggedIn();\n\n if (this.#hasValidSession(this.state.sessionData)) {\n return this.state.sessionData.profile;\n }\n\n const { profile } = await this.#performAuthenticationFlow();\n return profile;\n }\n\n public isSignedIn(): boolean {\n return this.state.isSignedIn;\n }\n\n #assertLoggedIn(): void {\n if (!this.state.isSignedIn) {\n throw new Error(\n `${controllerName}: Unable to call method, user is not authenticated`,\n );\n }\n }\n\n async #performAuthenticationFlow(): Promise<{\n profile: SessionProfile;\n accessToken: string;\n }> {\n try {\n // 1. Nonce\n const publicKey = await this.#snapGetPublicKey();\n const nonce = await getNonce(publicKey);\n if (!nonce) {\n throw new Error(`Unable to get nonce`);\n }\n\n // 2. Login\n const rawMessage = createLoginRawMessage(nonce, publicKey);\n const signature = await this.#snapSignMessage(rawMessage);\n const loginResponse = await login(rawMessage, signature, {\n metametricsId: this.#metametrics.getMetaMetricsId(),\n agent: this.#metametrics.agent,\n });\n if (!loginResponse?.token) {\n throw new Error(`Unable to login`);\n }\n\n const profile: SessionProfile = {\n identifierId: loginResponse.profile.identifier_id,\n profileId: loginResponse.profile.profile_id,\n };\n\n // 3. Trade for Access Token\n const accessToken = await getAccessToken(loginResponse.token);\n if (!accessToken) {\n throw new Error(`Unable to get Access Token`);\n }\n\n // Update Internal State\n this.update((state) => {\n state.isSignedIn = true;\n const expiresIn = new Date();\n expiresIn.setTime(expiresIn.getTime() + THIRTY_MIN_MS);\n state.sessionData = {\n profile,\n accessToken,\n expiresIn: expiresIn.toString(),\n };\n });\n\n return {\n profile,\n accessToken,\n };\n } catch (e) {\n console.error('Failed to authenticate', e);\n // Disable Profile Syncing\n await this.messagingSystem.call(\n 'UserStorageController:disableProfileSyncing',\n );\n const errorMessage =\n e instanceof Error ? e.message : JSON.stringify(e ?? '');\n throw new Error(\n `${controllerName}: Failed to authenticate - ${errorMessage}`,\n );\n }\n }\n\n #hasValidSession(\n sessionData: SessionData | undefined,\n ): sessionData is SessionData {\n if (!sessionData) {\n return false;\n }\n\n const prevDate = Date.parse(sessionData.expiresIn);\n if (isNaN(prevDate)) {\n return false;\n }\n\n const currentDate = new Date();\n const diffMs = Math.abs(currentDate.getTime() - prevDate);\n\n return THIRTY_MIN_MS > diffMs;\n }\n\n /**\n * Returns the auth snap public key.\n *\n * @returns The snap public key.\n */\n #snapGetPublicKey(): Promise<string> {\n return this.messagingSystem.call(\n 'SnapController:handleRequest',\n createSnapPublicKeyRequest(),\n ) as Promise<string>;\n }\n\n /**\n * Signs a specific message using an underlying auth snap.\n *\n * @param message - A specific tagged message to sign.\n * @returns A Signature created by the snap.\n */\n #snapSignMessage(message: `metamask:${string}`): Promise<string> {\n return this.messagingSystem.call(\n 'SnapController:handleRequest',\n createSnapSignMessageRequest(message),\n ) as Promise<string>;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sdk/authentication-jwt-bearer/types.ts"],"sourcesContent":["import type { Env, Platform } from '../env';\n\nexport const enum AuthType {\n /* sign in using a private key derived from your secret recovery phrase (SRP). \n Uses message signing snap to perform this operation */\n SRP = 'SRP',\n\n /* sign in with Ethereum */\n SiWE = 'SiWE',\n}\n\nexport type AuthConfig = {\n env: Env;\n platform: Platform;\n type: AuthType;\n};\n\nexport type AccessToken = {\n /**\n * The JWT Access Token\n */\n accessToken: string;\n /**\n * Expiration in seconds\n */\n expiresIn: number;\n /**\n * Date in milliseconds\n */\n obtainedAt: number;\n};\n\nexport type UserProfile = {\n /**\n * The \"Identifier\" used to log in with.\n */\n identifierId: string;\n /**\n * The Unique profile for a logged in user. A Profile can be logged in via multiple Identifiers\n */\n profileId: string;\n /**\n * Server MetaMetrics ID. Allows grouping of user events cross platform.\n */\n metaMetricsId: string;\n};\n\nexport type LoginResponse = {\n token: AccessToken;\n profile: UserProfile;\n};\n\nexport type IBaseAuth = {\n getAccessToken: () => Promise<string>;\n getUserProfile: () => Promise<UserProfile>;\n getIdentifier: () => Promise<string>;\n signMessage: (message: string) => Promise<string>;\n};\n\nexport type AuthStorageOptions = {\n getLoginResponse: () => Promise<LoginResponse | null>;\n setLoginResponse: (val: LoginResponse) => Promise<void>;\n};\n\nexport type AuthSigningOptions = {\n signMessage: (message: string) => Promise<string>;\n getIdentifier: () => Promise<string>;\n};\n\nexport type ErrorMessage = {\n message: string;\n error: string;\n};\n\nexport type Pair = {\n identifier: string;\n encryptedStorageKey: string;\n identifierType: 'SIWE' | 'SRP';\n signMessage: (message: string) => Promise<string>;\n};\n"],"mappings":";AAEO,IAAW,WAAX,kBAAWA,cAAX;AAGL,EAAAA,UAAA,SAAM;AAGN,EAAAA,UAAA,UAAO;AANS,SAAAA;AAAA,GAAA;","names":["AuthType"]}