@metamask/profile-sync-controller 0.2.1 → 0.4.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.
Files changed (189) hide show
  1. package/CHANGELOG.md +42 -1
  2. package/auth/mocks/package.json +9 -0
  3. package/auth/package.json +9 -0
  4. package/dist/{chunk-JENTMRXO.js → chunk-246Z6L5V.js} +245 -16
  5. package/dist/chunk-246Z6L5V.js.map +1 -0
  6. package/dist/chunk-2677XY6G.mjs +107 -0
  7. package/dist/chunk-2677XY6G.mjs.map +1 -0
  8. package/dist/{chunk-BDO3VJEU.mjs → chunk-2CWF7ZTL.mjs} +2 -2
  9. package/dist/{chunk-ILIZJQ6X.mjs → chunk-2VEMA6OE.mjs} +11 -4
  10. package/dist/chunk-2VEMA6OE.mjs.map +1 -0
  11. package/dist/chunk-4LMFZDL4.js +114 -0
  12. package/dist/chunk-4LMFZDL4.js.map +1 -0
  13. package/dist/{chunk-VD2IGTS3.js → chunk-4ZGRRVMI.js} +5 -5
  14. package/dist/{chunk-SLHAVOTE.js → chunk-5MQUI24U.js} +13 -6
  15. package/dist/chunk-5MQUI24U.js.map +1 -0
  16. package/dist/chunk-6DAK2U35.mjs +11 -0
  17. package/dist/chunk-6DAK2U35.mjs.map +1 -0
  18. package/dist/{chunk-FU7PSGFP.mjs → chunk-76NMME23.mjs} +51 -9
  19. package/dist/chunk-76NMME23.mjs.map +1 -0
  20. package/dist/{chunk-7KMONAQI.mjs → chunk-7MSQV43P.mjs} +7 -9
  21. package/dist/{chunk-7KMONAQI.mjs.map → chunk-7MSQV43P.mjs.map} +1 -1
  22. package/dist/{chunk-T3FNDVE3.js → chunk-BKQE7DB5.js} +30 -18
  23. package/dist/chunk-BKQE7DB5.js.map +1 -0
  24. package/dist/chunk-CHUZGCDV.js +107 -0
  25. package/dist/chunk-CHUZGCDV.js.map +1 -0
  26. package/dist/{chunk-K5UKU454.mjs → chunk-COBJUBZE.mjs} +31 -19
  27. package/dist/chunk-COBJUBZE.mjs.map +1 -0
  28. package/dist/{chunk-WWQ65CZY.mjs → chunk-D4SNJOID.mjs} +2 -2
  29. package/dist/chunk-D4SNJOID.mjs.map +1 -0
  30. package/dist/{chunk-SMKTWM6I.js → chunk-DF24ZX4H.js} +2 -3
  31. package/dist/chunk-DF24ZX4H.js.map +1 -0
  32. package/dist/chunk-EHZFPUJH.mjs +53 -0
  33. package/dist/chunk-EHZFPUJH.mjs.map +1 -0
  34. package/dist/{chunk-KW3X4TT5.js → chunk-F6BAOSH2.js} +6 -6
  35. package/dist/chunk-F6BAOSH2.js.map +1 -0
  36. package/dist/chunk-GQXYWBFK.js +28 -0
  37. package/dist/chunk-GQXYWBFK.js.map +1 -0
  38. package/dist/{chunk-DRD22DR5.mjs → chunk-J7NSK6BO.mjs} +2 -2
  39. package/dist/chunk-JAQ5TPSZ.js +53 -0
  40. package/dist/chunk-JAQ5TPSZ.js.map +1 -0
  41. package/dist/{chunk-5TOWF6UW.mjs → chunk-KHASG4H3.mjs} +2 -2
  42. package/dist/{chunk-G4NU4KP7.js → chunk-KIVBL6OM.js} +6 -6
  43. package/dist/{chunk-FQ5SDMRE.mjs → chunk-KTCSRECK.mjs} +2 -3
  44. package/dist/{chunk-FQ5SDMRE.mjs.map → chunk-KTCSRECK.mjs.map} +1 -1
  45. package/dist/{chunk-7SW3CC66.mjs → chunk-LGXQBALM.mjs} +2 -2
  46. package/dist/{chunk-5C53GKTU.js.map → chunk-LGXQBALM.mjs.map} +1 -1
  47. package/dist/{chunk-BOET676P.js → chunk-LLG4D2SC.js} +8 -8
  48. package/dist/{chunk-NPH5AHLH.mjs → chunk-MK7ABX2V.mjs} +54 -6
  49. package/dist/chunk-MK7ABX2V.mjs.map +1 -0
  50. package/dist/{chunk-AK7OTIWA.js → chunk-NIUQ34PY.js} +3 -3
  51. package/dist/{chunk-MNVUKRZC.js → chunk-PRYLTXW4.js} +15 -9
  52. package/dist/chunk-PRYLTXW4.js.map +1 -0
  53. package/dist/{chunk-XSSIP3PJ.js → chunk-Q5KTSMRE.js} +8 -8
  54. package/dist/{chunk-QE5X2BT3.mjs → chunk-SZ6WMC6C.mjs} +242 -13
  55. package/dist/chunk-SZ6WMC6C.mjs.map +1 -0
  56. package/dist/{chunk-PSR2V3R4.js → chunk-T2YURW25.js} +17 -19
  57. package/dist/chunk-T2YURW25.js.map +1 -0
  58. package/dist/{chunk-CJLDMVV3.mjs → chunk-UHP2Y32K.mjs} +9 -3
  59. package/dist/chunk-UHP2Y32K.mjs.map +1 -0
  60. package/dist/chunk-UHX7HJAI.js +11 -0
  61. package/dist/chunk-UHX7HJAI.js.map +1 -0
  62. package/dist/{chunk-FUPEFLXB.js → chunk-UIRAMHNM.js} +60 -12
  63. package/dist/chunk-UIRAMHNM.js.map +1 -0
  64. package/dist/{chunk-VYZPOR47.mjs → chunk-YKOMKXG4.mjs} +4 -4
  65. package/dist/{chunk-WB6MUIML.mjs → chunk-YLURF2PF.mjs} +2 -2
  66. package/dist/chunk-ZUPTMFEA.mjs +28 -0
  67. package/dist/chunk-ZUPTMFEA.mjs.map +1 -0
  68. package/dist/{chunk-5C53GKTU.js → chunk-ZX2KHPXG.js} +5 -5
  69. package/dist/chunk-ZX2KHPXG.js.map +1 -0
  70. package/dist/controllers/authentication/AuthenticationController.js +4 -21
  71. package/dist/controllers/authentication/AuthenticationController.mjs +3 -20
  72. package/dist/controllers/authentication/index.js +7 -22
  73. package/dist/controllers/authentication/index.mjs +6 -21
  74. package/dist/controllers/authentication/services.js +3 -20
  75. package/dist/controllers/authentication/services.mjs +2 -19
  76. package/dist/controllers/index.js +13 -23
  77. package/dist/controllers/index.mjs +12 -22
  78. package/dist/controllers/user-storage/UserStorageController.js +9 -19
  79. package/dist/controllers/user-storage/UserStorageController.mjs +8 -18
  80. package/dist/controllers/user-storage/accounts/constants.js +12 -0
  81. package/dist/controllers/user-storage/accounts/constants.js.map +1 -0
  82. package/dist/controllers/user-storage/accounts/constants.mjs +12 -0
  83. package/dist/controllers/user-storage/accounts/constants.mjs.map +1 -0
  84. package/dist/controllers/user-storage/accounts/user-storage.js +11 -0
  85. package/dist/controllers/user-storage/accounts/user-storage.js.map +1 -0
  86. package/dist/controllers/user-storage/accounts/user-storage.mjs +11 -0
  87. package/dist/controllers/user-storage/accounts/user-storage.mjs.map +1 -0
  88. package/dist/controllers/user-storage/encryption/encryption.js +2 -2
  89. package/dist/controllers/user-storage/encryption/encryption.mjs +1 -1
  90. package/dist/controllers/user-storage/encryption/index.js +3 -3
  91. package/dist/controllers/user-storage/encryption/index.mjs +2 -2
  92. package/dist/controllers/user-storage/index.js +15 -23
  93. package/dist/controllers/user-storage/index.mjs +12 -20
  94. package/dist/controllers/user-storage/schema.js +6 -4
  95. package/dist/controllers/user-storage/schema.mjs +7 -5
  96. package/dist/controllers/user-storage/services.js +8 -18
  97. package/dist/controllers/user-storage/services.mjs +7 -17
  98. package/dist/index.js +20 -18
  99. package/dist/index.mjs +19 -17
  100. package/dist/sdk/authentication-jwt-bearer/flow-siwe.js +4 -4
  101. package/dist/sdk/authentication-jwt-bearer/flow-siwe.mjs +3 -3
  102. package/dist/sdk/authentication-jwt-bearer/flow-srp.js +4 -4
  103. package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs +3 -3
  104. package/dist/sdk/authentication-jwt-bearer/services.js +3 -3
  105. package/dist/sdk/authentication-jwt-bearer/services.mjs +2 -2
  106. package/dist/sdk/authentication.js +6 -6
  107. package/dist/sdk/authentication.mjs +5 -5
  108. package/dist/sdk/encryption.js +5 -3
  109. package/dist/sdk/encryption.mjs +6 -4
  110. package/dist/sdk/env.js +2 -2
  111. package/dist/sdk/env.mjs +1 -1
  112. package/dist/sdk/index.js +14 -16
  113. package/dist/sdk/index.mjs +13 -15
  114. package/dist/sdk/user-storage.js +7 -7
  115. package/dist/sdk/user-storage.mjs +6 -6
  116. package/dist/tsconfig.build.tsbuildinfo +1 -1
  117. package/dist/types/controllers/authentication/AuthenticationController.d.ts +6 -3
  118. package/dist/types/controllers/authentication/AuthenticationController.d.ts.map +1 -1
  119. package/dist/types/controllers/authentication/__fixtures__/mockResponses.d.ts +1 -1
  120. package/dist/types/controllers/authentication/__fixtures__/mockResponses.d.ts.map +1 -1
  121. package/dist/types/controllers/authentication/index.d.ts +2 -0
  122. package/dist/types/controllers/authentication/index.d.ts.map +1 -1
  123. package/dist/types/controllers/user-storage/UserStorageController.d.ts +52 -11
  124. package/dist/types/controllers/user-storage/UserStorageController.d.ts.map +1 -1
  125. package/dist/types/controllers/user-storage/__fixtures__/mockAccounts.d.ts +63 -0
  126. package/dist/types/controllers/user-storage/__fixtures__/mockAccounts.d.ts.map +1 -0
  127. package/dist/types/controllers/user-storage/__fixtures__/mockResponses.d.ts +11 -5
  128. package/dist/types/controllers/user-storage/__fixtures__/mockResponses.d.ts.map +1 -1
  129. package/dist/types/controllers/user-storage/__fixtures__/mockServices.d.ts +4 -2
  130. package/dist/types/controllers/user-storage/__fixtures__/mockServices.d.ts.map +1 -1
  131. package/dist/types/controllers/user-storage/__fixtures__/mockStorage.d.ts +1 -1
  132. package/dist/types/controllers/user-storage/__fixtures__/mockStorage.d.ts.map +1 -1
  133. package/dist/types/controllers/user-storage/accounts/constants.d.ts +4 -0
  134. package/dist/types/controllers/user-storage/accounts/constants.d.ts.map +1 -0
  135. package/dist/types/controllers/user-storage/accounts/user-storage.d.ts +32 -0
  136. package/dist/types/controllers/user-storage/accounts/user-storage.d.ts.map +1 -0
  137. package/dist/types/controllers/user-storage/encryption/encryption.d.ts +3 -2
  138. package/dist/types/controllers/user-storage/encryption/encryption.d.ts.map +1 -1
  139. package/dist/types/controllers/user-storage/index.d.ts +2 -0
  140. package/dist/types/controllers/user-storage/index.d.ts.map +1 -1
  141. package/dist/types/controllers/user-storage/schema.d.ts +13 -6
  142. package/dist/types/controllers/user-storage/schema.d.ts.map +1 -1
  143. package/dist/types/controllers/user-storage/services.d.ts +23 -4
  144. package/dist/types/controllers/user-storage/services.d.ts.map +1 -1
  145. package/dist/types/sdk/__fixtures__/mock-userstorage.d.ts +5 -4
  146. package/dist/types/sdk/__fixtures__/mock-userstorage.d.ts.map +1 -1
  147. package/dist/types/sdk/encryption.d.ts +3 -19
  148. package/dist/types/sdk/encryption.d.ts.map +1 -1
  149. package/dist/types/sdk/user-storage.d.ts +4 -3
  150. package/dist/types/sdk/user-storage.d.ts.map +1 -1
  151. package/package.json +37 -6
  152. package/user-storage/mocks/package.json +9 -0
  153. package/user-storage/package.json +9 -0
  154. package/dist/chunk-3TE6M5TV.js +0 -72
  155. package/dist/chunk-3TE6M5TV.js.map +0 -1
  156. package/dist/chunk-4DQF2YNS.js +0 -78
  157. package/dist/chunk-4DQF2YNS.js.map +0 -1
  158. package/dist/chunk-7SW3CC66.mjs.map +0 -1
  159. package/dist/chunk-B5DBQDB3.mjs +0 -140
  160. package/dist/chunk-B5DBQDB3.mjs.map +0 -1
  161. package/dist/chunk-CJLDMVV3.mjs.map +0 -1
  162. package/dist/chunk-FU7PSGFP.mjs.map +0 -1
  163. package/dist/chunk-FUPEFLXB.js.map +0 -1
  164. package/dist/chunk-ILIZJQ6X.mjs.map +0 -1
  165. package/dist/chunk-JENTMRXO.js.map +0 -1
  166. package/dist/chunk-K5UKU454.mjs.map +0 -1
  167. package/dist/chunk-KW3X4TT5.js.map +0 -1
  168. package/dist/chunk-MNVUKRZC.js.map +0 -1
  169. package/dist/chunk-NPH5AHLH.mjs.map +0 -1
  170. package/dist/chunk-P4DUDLMY.js +0 -140
  171. package/dist/chunk-P4DUDLMY.js.map +0 -1
  172. package/dist/chunk-PSR2V3R4.js.map +0 -1
  173. package/dist/chunk-QE5X2BT3.mjs.map +0 -1
  174. package/dist/chunk-SLHAVOTE.js.map +0 -1
  175. package/dist/chunk-SMKTWM6I.js.map +0 -1
  176. package/dist/chunk-T3FNDVE3.js.map +0 -1
  177. package/dist/chunk-WWQ65CZY.mjs.map +0 -1
  178. package/dist/chunk-XMYWJQNH.mjs +0 -78
  179. package/dist/chunk-XMYWJQNH.mjs.map +0 -1
  180. /package/dist/{chunk-BDO3VJEU.mjs.map → chunk-2CWF7ZTL.mjs.map} +0 -0
  181. /package/dist/{chunk-VD2IGTS3.js.map → chunk-4ZGRRVMI.js.map} +0 -0
  182. /package/dist/{chunk-DRD22DR5.mjs.map → chunk-J7NSK6BO.mjs.map} +0 -0
  183. /package/dist/{chunk-5TOWF6UW.mjs.map → chunk-KHASG4H3.mjs.map} +0 -0
  184. /package/dist/{chunk-G4NU4KP7.js.map → chunk-KIVBL6OM.js.map} +0 -0
  185. /package/dist/{chunk-BOET676P.js.map → chunk-LLG4D2SC.js.map} +0 -0
  186. /package/dist/{chunk-AK7OTIWA.js.map → chunk-NIUQ34PY.js.map} +0 -0
  187. /package/dist/{chunk-XSSIP3PJ.js.map → chunk-Q5KTSMRE.js.map} +0 -0
  188. /package/dist/{chunk-VYZPOR47.mjs.map → chunk-YKOMKXG4.mjs.map} +0 -0
  189. /package/dist/{chunk-WB6MUIML.mjs.map → chunk-YLURF2PF.mjs.map} +0 -0
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkBOET676Pjs = require('./chunk-BOET676P.js');
6
+ var _chunkLLG4D2SCjs = require('./chunk-LLG4D2SC.js');
7
7
 
8
8
 
9
9
  var _chunkDRB2MN4Tjs = require('./chunk-DRB2MN4T.js');
@@ -82,16 +82,16 @@ _login = new WeakSet();
82
82
  login_fn = async function() {
83
83
  _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _assertSigner, assertSigner_fn).call(this, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer));
84
84
  const address = await this.getIdentifier();
85
- const nonceRes = await _chunkBOET676Pjs.getNonce.call(void 0, address, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env);
85
+ const nonceRes = await _chunkLLG4D2SCjs.getNonce.call(void 0, address, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env);
86
86
  const rawMessage = _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _createSiWELoginRawMessage, createSiWELoginRawMessage_fn).call(this, nonceRes.nonce);
87
87
  const signature = await this.signMessage(rawMessage);
88
- const authResponse = await _chunkBOET676Pjs.authenticate.call(void 0,
88
+ const authResponse = await _chunkLLG4D2SCjs.authenticate.call(void 0,
89
89
  rawMessage,
90
90
  signature,
91
91
  _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).type,
92
92
  _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env
93
93
  );
94
- const tokenResponse = await _chunkBOET676Pjs.authorizeOIDC.call(void 0,
94
+ const tokenResponse = await _chunkLLG4D2SCjs.authorizeOIDC.call(void 0,
95
95
  authResponse.token,
96
96
  _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env,
97
97
  _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).platform
@@ -109,7 +109,7 @@ createSiWELoginRawMessage_fn = function(nonce) {
109
109
  return new (0, _siwe.SiweMessage)({
110
110
  domain: _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer)?.domain,
111
111
  address: _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer)?.address,
112
- uri: _chunkBOET676Pjs.SIWE_LOGIN_URL.call(void 0, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env),
112
+ uri: _chunkLLG4D2SCjs.SIWE_LOGIN_URL.call(void 0, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env),
113
113
  version: "1",
114
114
  chainId: _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer)?.chainId,
115
115
  nonce,
@@ -126,4 +126,4 @@ assertSigner_fn = function(signer) {
126
126
 
127
127
 
128
128
  exports.SIWEJwtBearerAuth = SIWEJwtBearerAuth;
129
- //# sourceMappingURL=chunk-G4NU4KP7.js.map
129
+ //# sourceMappingURL=chunk-KIVBL6OM.js.map
@@ -53,8 +53,7 @@ function getOidcClientId(env, platform) {
53
53
  ["portfolio" /* PORTFOLIO */]: "35e1cd62-49c5-4be8-8b6e-a5212f2d2cfb",
54
54
  ["mobile" /* MOBILE */]: "75fa62a3-9ca0-4b91-9fe5-76bec86b0257",
55
55
  ["extension" /* EXTENSION */]: "1132f10a-b4e5-4390-a5f2-d9c6022db564",
56
- ["infura" /* INFURA */]: ""
57
- // unset
56
+ ["infura" /* INFURA */]: "fdde9417-e193-4d23-9943-a8346b18d097"
58
57
  }
59
58
  };
60
59
  if (!clientIds[env]) {
@@ -74,4 +73,4 @@ export {
74
73
  getEnvUrls,
75
74
  getOidcClientId
76
75
  };
77
- //# sourceMappingURL=chunk-FQ5SDMRE.mjs.map
76
+ //# sourceMappingURL=chunk-KTCSRECK.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/sdk/env.ts"],"sourcesContent":["export enum Env {\n DEV = 'dev',\n UAT = 'uat',\n PRD = 'prd',\n}\n\nexport enum Platform {\n MOBILE = 'mobile',\n EXTENSION = 'extension',\n PORTFOLIO = 'portfolio',\n INFURA = 'infura',\n}\n\ntype EnvUrlsEntry = {\n authApiUrl: string;\n oidcApiUrl: string;\n userStorageApiUrl: string;\n};\n\nconst ENV_URLS: Record<Env, EnvUrlsEntry> = {\n dev: {\n authApiUrl: 'https://authentication.dev-api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.dev-api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.dev-api.cx.metamask.io',\n },\n uat: {\n authApiUrl: 'https://authentication.uat-api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.uat-api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.uat-api.cx.metamask.io',\n },\n prd: {\n authApiUrl: 'https://authentication.api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.api.cx.metamask.io',\n },\n};\n\n/**\n * Validates and returns correct environment endpoints\n *\n * @param env - environment field\n * @returns the correct environment url\n * @throws on invalid environment passed\n */\nexport function getEnvUrls(env: Env): EnvUrlsEntry {\n if (!ENV_URLS[env]) {\n throw new Error('invalid environment configuration');\n }\n return ENV_URLS[env];\n}\n\n/**\n * Returns the valid OIDC Client ID (used during authorization)\n *\n * @param env - environment field\n * @param platform - platform field\n * @returns the OIDC client id for the environment\n */\nexport function getOidcClientId(env: Env, platform: Platform): string {\n const clientIds = {\n [Env.DEV]: {\n [Platform.PORTFOLIO]: 'c7ca94a0-5d52-4635-9502-1a50a9c410cc',\n [Platform.MOBILE]: 'e83c7cc9-267d-4fb4-8fec-f0e3bbe5ae8e',\n [Platform.EXTENSION]: 'f1a963d7-50dc-4cb5-8d81-f1f3654f0df3',\n [Platform.INFURA]: 'bd887006-0d55-481a-a395-5ff9a0dc52c9',\n },\n [Env.UAT]: {\n [Platform.PORTFOLIO]: '8f2dd4ac-db07-4819-9ba5-1ee0ec1b56d1',\n [Platform.MOBILE]: 'c3cfdcd2-51d6-4fae-ad2c-ff238c8fef53',\n [Platform.EXTENSION]: 'a9de167c-c9a6-43d8-af39-d301fd44c485',\n [Platform.INFURA]: '01929890-7002-4c97-9913-8f6c09a6d674',\n },\n [Env.PRD]: {\n [Platform.PORTFOLIO]: '35e1cd62-49c5-4be8-8b6e-a5212f2d2cfb',\n [Platform.MOBILE]: '75fa62a3-9ca0-4b91-9fe5-76bec86b0257',\n [Platform.EXTENSION]: '1132f10a-b4e5-4390-a5f2-d9c6022db564',\n [Platform.INFURA]: '', // unset\n },\n };\n\n if (!clientIds[env]) {\n throw new Error(`invalid env ${env}: cannot determine oidc client id`);\n }\n\n if (!clientIds[env][platform]) {\n throw new Error(\n `invalid env ${env} and platform ${platform} combination: cannot determine oidc client id`,\n );\n }\n\n return clientIds[env][platform];\n}\n"],"mappings":";AAAO,IAAK,MAAL,kBAAKA,SAAL;AACL,EAAAA,KAAA,SAAM;AACN,EAAAA,KAAA,SAAM;AACN,EAAAA,KAAA,SAAM;AAHI,SAAAA;AAAA,GAAA;AAML,IAAK,WAAL,kBAAKC,cAAL;AACL,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,YAAS;AAJC,SAAAA;AAAA,GAAA;AAaZ,IAAM,WAAsC;AAAA,EAC1C,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AACF;AASO,SAAS,WAAW,KAAwB;AACjD,MAAI,CAAC,SAAS,GAAG,GAAG;AAClB,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AACA,SAAO,SAAS,GAAG;AACrB;AASO,SAAS,gBAAgB,KAAU,UAA4B;AACpE,QAAM,YAAY;AAAA,IAChB,CAAC,eAAO,GAAG;AAAA,MACT,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,MACnB,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,IACrB;AAAA,IACA,CAAC,eAAO,GAAG;AAAA,MACT,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,MACnB,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,IACrB;AAAA,IACA,CAAC,eAAO,GAAG;AAAA,MACT,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,MACnB,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA;AAAA,IACrB;AAAA,EACF;AAEA,MAAI,CAAC,UAAU,GAAG,GAAG;AACnB,UAAM,IAAI,MAAM,eAAe,GAAG,mCAAmC;AAAA,EACvE;AAEA,MAAI,CAAC,UAAU,GAAG,EAAE,QAAQ,GAAG;AAC7B,UAAM,IAAI;AAAA,MACR,eAAe,GAAG,iBAAiB,QAAQ;AAAA,IAC7C;AAAA,EACF;AAEA,SAAO,UAAU,GAAG,EAAE,QAAQ;AAChC;","names":["Env","Platform"]}
1
+ {"version":3,"sources":["../src/sdk/env.ts"],"sourcesContent":["export enum Env {\n DEV = 'dev',\n UAT = 'uat',\n PRD = 'prd',\n}\n\nexport enum Platform {\n MOBILE = 'mobile',\n EXTENSION = 'extension',\n PORTFOLIO = 'portfolio',\n INFURA = 'infura',\n}\n\ntype EnvUrlsEntry = {\n authApiUrl: string;\n oidcApiUrl: string;\n userStorageApiUrl: string;\n};\n\nconst ENV_URLS: Record<Env, EnvUrlsEntry> = {\n dev: {\n authApiUrl: 'https://authentication.dev-api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.dev-api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.dev-api.cx.metamask.io',\n },\n uat: {\n authApiUrl: 'https://authentication.uat-api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.uat-api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.uat-api.cx.metamask.io',\n },\n prd: {\n authApiUrl: 'https://authentication.api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.api.cx.metamask.io',\n },\n};\n\n/**\n * Validates and returns correct environment endpoints\n *\n * @param env - environment field\n * @returns the correct environment url\n * @throws on invalid environment passed\n */\nexport function getEnvUrls(env: Env): EnvUrlsEntry {\n if (!ENV_URLS[env]) {\n throw new Error('invalid environment configuration');\n }\n return ENV_URLS[env];\n}\n\n/**\n * Returns the valid OIDC Client ID (used during authorization)\n *\n * @param env - environment field\n * @param platform - platform field\n * @returns the OIDC client id for the environment\n */\nexport function getOidcClientId(env: Env, platform: Platform): string {\n const clientIds = {\n [Env.DEV]: {\n [Platform.PORTFOLIO]: 'c7ca94a0-5d52-4635-9502-1a50a9c410cc',\n [Platform.MOBILE]: 'e83c7cc9-267d-4fb4-8fec-f0e3bbe5ae8e',\n [Platform.EXTENSION]: 'f1a963d7-50dc-4cb5-8d81-f1f3654f0df3',\n [Platform.INFURA]: 'bd887006-0d55-481a-a395-5ff9a0dc52c9',\n },\n [Env.UAT]: {\n [Platform.PORTFOLIO]: '8f2dd4ac-db07-4819-9ba5-1ee0ec1b56d1',\n [Platform.MOBILE]: 'c3cfdcd2-51d6-4fae-ad2c-ff238c8fef53',\n [Platform.EXTENSION]: 'a9de167c-c9a6-43d8-af39-d301fd44c485',\n [Platform.INFURA]: '01929890-7002-4c97-9913-8f6c09a6d674',\n },\n [Env.PRD]: {\n [Platform.PORTFOLIO]: '35e1cd62-49c5-4be8-8b6e-a5212f2d2cfb',\n [Platform.MOBILE]: '75fa62a3-9ca0-4b91-9fe5-76bec86b0257',\n [Platform.EXTENSION]: '1132f10a-b4e5-4390-a5f2-d9c6022db564',\n [Platform.INFURA]: 'fdde9417-e193-4d23-9943-a8346b18d097',\n },\n };\n\n if (!clientIds[env]) {\n throw new Error(`invalid env ${env}: cannot determine oidc client id`);\n }\n\n if (!clientIds[env][platform]) {\n throw new Error(\n `invalid env ${env} and platform ${platform} combination: cannot determine oidc client id`,\n );\n }\n\n return clientIds[env][platform];\n}\n"],"mappings":";AAAO,IAAK,MAAL,kBAAKA,SAAL;AACL,EAAAA,KAAA,SAAM;AACN,EAAAA,KAAA,SAAM;AACN,EAAAA,KAAA,SAAM;AAHI,SAAAA;AAAA,GAAA;AAML,IAAK,WAAL,kBAAKC,cAAL;AACL,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,YAAS;AAJC,SAAAA;AAAA,GAAA;AAaZ,IAAM,WAAsC;AAAA,EAC1C,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AACF;AASO,SAAS,WAAW,KAAwB;AACjD,MAAI,CAAC,SAAS,GAAG,GAAG;AAClB,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AACA,SAAO,SAAS,GAAG;AACrB;AASO,SAAS,gBAAgB,KAAU,UAA4B;AACpE,QAAM,YAAY;AAAA,IAChB,CAAC,eAAO,GAAG;AAAA,MACT,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,MACnB,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,IACrB;AAAA,IACA,CAAC,eAAO,GAAG;AAAA,MACT,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,MACnB,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,IACrB;AAAA,IACA,CAAC,eAAO,GAAG;AAAA,MACT,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,MACnB,CAAC,2BAAkB,GAAG;AAAA,MACtB,CAAC,qBAAe,GAAG;AAAA,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"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getEnvUrls,
3
3
  getOidcClientId
4
- } from "./chunk-FQ5SDMRE.mjs";
4
+ } from "./chunk-KTCSRECK.mjs";
5
5
 
6
6
  // src/controllers/authentication/services.ts
7
7
  var ENV_URLS = getEnvUrls("prd" /* PRD */);
@@ -103,4 +103,4 @@ export {
103
103
  getAccessToken,
104
104
  createLoginRawMessage
105
105
  };
106
- //# sourceMappingURL=chunk-7SW3CC66.mjs.map
106
+ //# sourceMappingURL=chunk-LGXQBALM.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/controllers/authentication/services.ts"],"names":[],"mappings":";;;;;;AAEA,IAAM,WAAW,0BAAkB;AAEnC,IAAM,gBAAwB,SAAS;AAChC,IAAM,sBAAsB,GAAG,aAAa;AAC5C,IAAM,sBAAsB,GAAG,aAAa;AAEnD,IAAM,gBAAwB,SAAS,cAAc;AAC9C,IAAM,uBAAuB,GAAG,aAAa;AACpD,IAAM,iBAAiB,CAAC,aAAqC;AAC3D,MAAI,aAAa,aAAa;AAC5B,WAAO,4DAA2C;AAAA,EACpD;AACA,MAAI,aAAa,UAAU;AACzB,WAAO,sDAAwC;AAAA,EACjD;AAEA,QAAM,IAAI,MAAM,0BAA0B,QAAkB,EAAE;AAChE;AACA,IAAM,kBAAkB;AAYxB,eAAsB,SAAS,WAA2C;AACxE,QAAM,WAAW,IAAI,IAAI,mBAAmB;AAC5C,WAAS,aAAa,IAAI,cAAc,SAAS;AAEjD,MAAI;AACF,UAAM,gBAAgB,MAAM,MAAM,SAAS,SAAS,CAAC;AACrD,QAAI,CAAC,cAAc,IAAI;AACrB,aAAO;AAAA,IACT;AAEA,UAAM,YAA2B,MAAM,cAAc,KAAK;AAC1D,WAAO,WAAW,SAAS;AAAA,EAC7B,SAAS,GAAG;AACV,YAAQ,MAAM,2DAA2D,CAAC;AAC1E,WAAO;AAAA,EACT;AACF;AAqCA,eAAsB,MACpB,YACA,WACA,mBAC+B;AAC/B,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,qBAAqB;AAAA,MAChD,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA;AAAA,QAEA,aAAa;AAAA,QACb,aAAa;AAAA;AAAA,UAEX,gBAAgB,kBAAkB;AAAA,UAClC,OAAO,kBAAkB;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,aAAO;AAAA,IACT;AAEA,UAAM,gBAA+B,MAAM,SAAS,KAAK;AACzD,WAAO,iBAAiB;AAAA,EAC1B,SAAS,GAAG;AACV,YAAQ,MAAM,uDAAuD,CAAC;AACtE,WAAO;AAAA,EACT;AACF;AAoBA,eAAsB,eACpB,UACA,UACwB;AACxB,QAAM,UAAU,IAAI,QAAQ;AAAA,IAC1B,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,iBAAiB,IAAI,gBAAgB;AAC3C,iBAAe,OAAO,cAAc,eAAe;AACnD,iBAAe,OAAO,aAAa,eAAe,QAAQ,CAAC;AAC3D,iBAAe,OAAO,aAAa,QAAQ;AAE3C,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,sBAAsB;AAAA,MACjD,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,eAAe,SAAS;AAAA,IAChC,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,aAAO;AAAA,IACT;AAEA,UAAM,sBAA0C,MAAM,SAAS,KAAK;AACpE,WAAO,qBAAqB,gBAAgB;AAAA,EAC9C,SAAS,GAAG;AACV,YAAQ;AAAA,MACN;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AASO,SAAS,sBACd,OACA,WACgC;AAChC,SAAO,YAAY,KAAK,IAAI,SAAS;AACvC","sourcesContent":["import { Env, Platform, getEnvUrls, getOidcClientId } from '../../sdk';\n\nconst ENV_URLS = getEnvUrls(Env.PRD);\n\nconst AUTH_ENDPOINT: string = ENV_URLS.authApiUrl;\nexport const AUTH_NONCE_ENDPOINT = `${AUTH_ENDPOINT}/api/v2/nonce`;\nexport const AUTH_LOGIN_ENDPOINT = `${AUTH_ENDPOINT}/api/v2/srp/login`;\n\nconst OIDC_ENDPOINT: string = ENV_URLS.oidcApiUrl || '';\nexport const OIDC_TOKENS_ENDPOINT = `${OIDC_ENDPOINT}/oauth2/token`;\nconst OIDC_CLIENT_ID = (platform: 'mobile' | 'extension') => {\n if (platform === 'extension') {\n return getOidcClientId(Env.PRD, Platform.EXTENSION);\n }\n if (platform === 'mobile') {\n return getOidcClientId(Env.PRD, Platform.MOBILE);\n }\n\n throw new Error(`Unsupported platform - ${platform as string}`);\n};\nconst OIDC_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:jwt-bearer';\n\nexport type NonceResponse = {\n nonce: string;\n};\n\n/**\n * Auth Service - Get Nonce. Used for the initial JWTBearer flow\n *\n * @param publicKey - public key to associate a nonce with\n * @returns the nonce or null if failed\n */\nexport async function getNonce(publicKey: string): Promise<string | null> {\n const nonceUrl = new URL(AUTH_NONCE_ENDPOINT);\n nonceUrl.searchParams.set('identifier', publicKey);\n\n try {\n const nonceResponse = await fetch(nonceUrl.toString());\n if (!nonceResponse.ok) {\n return null;\n }\n\n const nonceJson: NonceResponse = await nonceResponse.json();\n return nonceJson?.nonce ?? null;\n } catch (e) {\n console.error('authentication-controller/services: unable to get nonce', e);\n return null;\n }\n}\n\n/**\n * The Login API Server Response Shape\n */\nexport type LoginResponse = {\n token: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: string;\n /**\n * Contains anonymous information about the logged in profile.\n *\n * @property identifier_id - a deterministic unique identifier on the method used to sign in\n * @property profile_id - a unique id for a given profile\n * @property metametrics_id - an anonymous server id\n */\n profile: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n identifier_id: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n profile_id: string;\n };\n};\n\ntype ClientMetaMetrics = {\n metametricsId: string;\n agent: 'extension' | 'mobile';\n};\n\n/**\n * Auth Service - Login. Will perform login with a given signature and will return a single use JWT Token.\n *\n * @param rawMessage - the original message before signing\n * @param signature - the signed message\n * @param clientMetaMetrics - optional client metametrics id (to associate on backend)\n * @returns The Login Response\n */\nexport async function login(\n rawMessage: string,\n signature: string,\n clientMetaMetrics: ClientMetaMetrics,\n): Promise<LoginResponse | null> {\n try {\n const response = await fetch(AUTH_LOGIN_ENDPOINT, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n signature,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n raw_message: rawMessage,\n metametrics: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n metametrics_id: clientMetaMetrics.metametricsId,\n agent: clientMetaMetrics.agent,\n },\n }),\n });\n\n if (!response.ok) {\n return null;\n }\n\n const loginResponse: LoginResponse = await response.json();\n return loginResponse ?? null;\n } catch (e) {\n console.error('authentication-controller/services: unable to login', e);\n return null;\n }\n}\n\n/**\n * The Auth API Token Response Shape\n */\nexport type OAuthTokenResponse = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n access_token: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: number;\n};\n\n/**\n * OIDC Service - Access Token. Trades the Auth Token for an access token (to be used for other authenticated endpoints)\n * NOTE - the access token is short lived, which means it is best practice to validate session before calling authenticated endpoints\n *\n * @param jwtToken - the JWT Auth Token, received from `/login`\n * @param platform - the OIDC platform to retrieve access token\n * @returns JWT Access token to store and use on authorized endpoints.\n */\nexport async function getAccessToken(\n jwtToken: string,\n platform: ClientMetaMetrics['agent'],\n): Promise<string | null> {\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded',\n });\n\n const urlEncodedBody = new URLSearchParams();\n urlEncodedBody.append('grant_type', OIDC_GRANT_TYPE);\n urlEncodedBody.append('client_id', OIDC_CLIENT_ID(platform));\n urlEncodedBody.append('assertion', jwtToken);\n\n try {\n const response = await fetch(OIDC_TOKENS_ENDPOINT, {\n method: 'POST',\n headers,\n body: urlEncodedBody.toString(),\n });\n\n if (!response.ok) {\n return null;\n }\n\n const accessTokenResponse: OAuthTokenResponse = await response.json();\n return accessTokenResponse?.access_token ?? null;\n } catch (e) {\n console.error(\n 'authentication-controller/services: unable to get access token',\n e,\n );\n return null;\n }\n}\n\n/**\n * Utility to create the raw login message for the JWT bearer flow (via SRP)\n *\n * @param nonce - nonce received from `/nonce` endpoint\n * @param publicKey - public key used to retrieve nonce and for message signing\n * @returns Raw Message which will be used for signing & logging in.\n */\nexport function createLoginRawMessage(\n nonce: string,\n publicKey: string,\n): `metamask:${string}:${string}` {\n return `metamask:${nonce}:${publicKey}` as const;\n}\n"]}
1
+ {"version":3,"sources":["../src/controllers/authentication/services.ts"],"sourcesContent":["import { Env, Platform, getEnvUrls, getOidcClientId } from '../../sdk/env';\n\nconst ENV_URLS = getEnvUrls(Env.PRD);\n\nconst AUTH_ENDPOINT: string = ENV_URLS.authApiUrl;\nexport const AUTH_NONCE_ENDPOINT = `${AUTH_ENDPOINT}/api/v2/nonce`;\nexport const AUTH_LOGIN_ENDPOINT = `${AUTH_ENDPOINT}/api/v2/srp/login`;\n\nconst OIDC_ENDPOINT: string = ENV_URLS.oidcApiUrl || '';\nexport const OIDC_TOKENS_ENDPOINT = `${OIDC_ENDPOINT}/oauth2/token`;\nconst OIDC_CLIENT_ID = (platform: 'mobile' | 'extension') => {\n if (platform === 'extension') {\n return getOidcClientId(Env.PRD, Platform.EXTENSION);\n }\n if (platform === 'mobile') {\n return getOidcClientId(Env.PRD, Platform.MOBILE);\n }\n\n throw new Error(`Unsupported platform - ${platform as string}`);\n};\nconst OIDC_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:jwt-bearer';\n\nexport type NonceResponse = {\n nonce: string;\n};\n\n/**\n * Auth Service - Get Nonce. Used for the initial JWTBearer flow\n *\n * @param publicKey - public key to associate a nonce with\n * @returns the nonce or null if failed\n */\nexport async function getNonce(publicKey: string): Promise<string | null> {\n const nonceUrl = new URL(AUTH_NONCE_ENDPOINT);\n nonceUrl.searchParams.set('identifier', publicKey);\n\n try {\n const nonceResponse = await fetch(nonceUrl.toString());\n if (!nonceResponse.ok) {\n return null;\n }\n\n const nonceJson: NonceResponse = await nonceResponse.json();\n return nonceJson?.nonce ?? null;\n } catch (e) {\n console.error('authentication-controller/services: unable to get nonce', e);\n return null;\n }\n}\n\n/**\n * The Login API Server Response Shape\n */\nexport type LoginResponse = {\n token: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: string;\n /**\n * Contains anonymous information about the logged in profile.\n *\n * @property identifier_id - a deterministic unique identifier on the method used to sign in\n * @property profile_id - a unique id for a given profile\n * @property metametrics_id - an anonymous server id\n */\n profile: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n identifier_id: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n profile_id: string;\n };\n};\n\ntype ClientMetaMetrics = {\n metametricsId: string;\n agent: 'extension' | 'mobile';\n};\n\n/**\n * Auth Service - Login. Will perform login with a given signature and will return a single use JWT Token.\n *\n * @param rawMessage - the original message before signing\n * @param signature - the signed message\n * @param clientMetaMetrics - optional client metametrics id (to associate on backend)\n * @returns The Login Response\n */\nexport async function login(\n rawMessage: string,\n signature: string,\n clientMetaMetrics: ClientMetaMetrics,\n): Promise<LoginResponse | null> {\n try {\n const response = await fetch(AUTH_LOGIN_ENDPOINT, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n signature,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n raw_message: rawMessage,\n metametrics: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n metametrics_id: clientMetaMetrics.metametricsId,\n agent: clientMetaMetrics.agent,\n },\n }),\n });\n\n if (!response.ok) {\n return null;\n }\n\n const loginResponse: LoginResponse = await response.json();\n return loginResponse ?? null;\n } catch (e) {\n console.error('authentication-controller/services: unable to login', e);\n return null;\n }\n}\n\n/**\n * The Auth API Token Response Shape\n */\nexport type OAuthTokenResponse = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n access_token: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: number;\n};\n\n/**\n * OIDC Service - Access Token. Trades the Auth Token for an access token (to be used for other authenticated endpoints)\n * NOTE - the access token is short lived, which means it is best practice to validate session before calling authenticated endpoints\n *\n * @param jwtToken - the JWT Auth Token, received from `/login`\n * @param platform - the OIDC platform to retrieve access token\n * @returns JWT Access token to store and use on authorized endpoints.\n */\nexport async function getAccessToken(\n jwtToken: string,\n platform: ClientMetaMetrics['agent'],\n): Promise<string | null> {\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded',\n });\n\n const urlEncodedBody = new URLSearchParams();\n urlEncodedBody.append('grant_type', OIDC_GRANT_TYPE);\n urlEncodedBody.append('client_id', OIDC_CLIENT_ID(platform));\n urlEncodedBody.append('assertion', jwtToken);\n\n try {\n const response = await fetch(OIDC_TOKENS_ENDPOINT, {\n method: 'POST',\n headers,\n body: urlEncodedBody.toString(),\n });\n\n if (!response.ok) {\n return null;\n }\n\n const accessTokenResponse: OAuthTokenResponse = await response.json();\n return accessTokenResponse?.access_token ?? null;\n } catch (e) {\n console.error(\n 'authentication-controller/services: unable to get access token',\n e,\n );\n return null;\n }\n}\n\n/**\n * Utility to create the raw login message for the JWT bearer flow (via SRP)\n *\n * @param nonce - nonce received from `/nonce` endpoint\n * @param publicKey - public key used to retrieve nonce and for message signing\n * @returns Raw Message which will be used for signing & logging in.\n */\nexport function createLoginRawMessage(\n nonce: string,\n publicKey: string,\n): `metamask:${string}:${string}` {\n return `metamask:${nonce}:${publicKey}` as const;\n}\n"],"mappings":";;;;;;AAEA,IAAM,WAAW,0BAAkB;AAEnC,IAAM,gBAAwB,SAAS;AAChC,IAAM,sBAAsB,GAAG,aAAa;AAC5C,IAAM,sBAAsB,GAAG,aAAa;AAEnD,IAAM,gBAAwB,SAAS,cAAc;AAC9C,IAAM,uBAAuB,GAAG,aAAa;AACpD,IAAM,iBAAiB,CAAC,aAAqC;AAC3D,MAAI,aAAa,aAAa;AAC5B,WAAO,4DAA2C;AAAA,EACpD;AACA,MAAI,aAAa,UAAU;AACzB,WAAO,sDAAwC;AAAA,EACjD;AAEA,QAAM,IAAI,MAAM,0BAA0B,QAAkB,EAAE;AAChE;AACA,IAAM,kBAAkB;AAYxB,eAAsB,SAAS,WAA2C;AACxE,QAAM,WAAW,IAAI,IAAI,mBAAmB;AAC5C,WAAS,aAAa,IAAI,cAAc,SAAS;AAEjD,MAAI;AACF,UAAM,gBAAgB,MAAM,MAAM,SAAS,SAAS,CAAC;AACrD,QAAI,CAAC,cAAc,IAAI;AACrB,aAAO;AAAA,IACT;AAEA,UAAM,YAA2B,MAAM,cAAc,KAAK;AAC1D,WAAO,WAAW,SAAS;AAAA,EAC7B,SAAS,GAAG;AACV,YAAQ,MAAM,2DAA2D,CAAC;AAC1E,WAAO;AAAA,EACT;AACF;AAqCA,eAAsB,MACpB,YACA,WACA,mBAC+B;AAC/B,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,qBAAqB;AAAA,MAChD,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA;AAAA,QAEA,aAAa;AAAA,QACb,aAAa;AAAA;AAAA,UAEX,gBAAgB,kBAAkB;AAAA,UAClC,OAAO,kBAAkB;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,aAAO;AAAA,IACT;AAEA,UAAM,gBAA+B,MAAM,SAAS,KAAK;AACzD,WAAO,iBAAiB;AAAA,EAC1B,SAAS,GAAG;AACV,YAAQ,MAAM,uDAAuD,CAAC;AACtE,WAAO;AAAA,EACT;AACF;AAoBA,eAAsB,eACpB,UACA,UACwB;AACxB,QAAM,UAAU,IAAI,QAAQ;AAAA,IAC1B,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,iBAAiB,IAAI,gBAAgB;AAC3C,iBAAe,OAAO,cAAc,eAAe;AACnD,iBAAe,OAAO,aAAa,eAAe,QAAQ,CAAC;AAC3D,iBAAe,OAAO,aAAa,QAAQ;AAE3C,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,sBAAsB;AAAA,MACjD,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,eAAe,SAAS;AAAA,IAChC,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,aAAO;AAAA,IACT;AAEA,UAAM,sBAA0C,MAAM,SAAS,KAAK;AACpE,WAAO,qBAAqB,gBAAgB;AAAA,EAC9C,SAAS,GAAG;AACV,YAAQ;AAAA,MACN;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AASO,SAAS,sBACd,OACA,WACgC;AAChC,SAAO,YAAY,KAAK,IAAI,SAAS;AACvC;","names":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkSMKTWM6Ijs = require('./chunk-SMKTWM6I.js');
4
+ var _chunkDF24ZX4Hjs = require('./chunk-DF24ZX4H.js');
5
5
 
6
6
 
7
7
 
@@ -10,11 +10,11 @@ var _chunkSMKTWM6Ijs = require('./chunk-SMKTWM6I.js');
10
10
  var _chunkMBTBE4P5js = require('./chunk-MBTBE4P5.js');
11
11
 
12
12
  // src/sdk/authentication-jwt-bearer/services.ts
13
- var NONCE_URL = (env) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/nonce`;
14
- var PAIR_IDENTIFIERS = (env) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/identifiers/pair`;
15
- var OIDC_TOKEN_URL = (env) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).oidcApiUrl}/oauth2/token`;
16
- var SRP_LOGIN_URL = (env) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/srp/login`;
17
- var SIWE_LOGIN_URL = (env) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/siwe/login`;
13
+ var NONCE_URL = (env) => `${_chunkDF24ZX4Hjs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/nonce`;
14
+ var PAIR_IDENTIFIERS = (env) => `${_chunkDF24ZX4Hjs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/identifiers/pair`;
15
+ var OIDC_TOKEN_URL = (env) => `${_chunkDF24ZX4Hjs.getEnvUrls.call(void 0, env).oidcApiUrl}/oauth2/token`;
16
+ var SRP_LOGIN_URL = (env) => `${_chunkDF24ZX4Hjs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/srp/login`;
17
+ var SIWE_LOGIN_URL = (env) => `${_chunkDF24ZX4Hjs.getEnvUrls.call(void 0, env).authApiUrl}/api/v2/siwe/login`;
18
18
  var getAuthenticationUrl = (authType, env) => {
19
19
  switch (authType) {
20
20
  case "SRP" /* SRP */:
@@ -81,7 +81,7 @@ async function authorizeOIDC(jwtToken, env, platform) {
81
81
  });
82
82
  const urlEncodedBody = new URLSearchParams();
83
83
  urlEncodedBody.append("grant_type", grantType);
84
- urlEncodedBody.append("client_id", _chunkSMKTWM6Ijs.getOidcClientId.call(void 0, env, platform));
84
+ urlEncodedBody.append("client_id", _chunkDF24ZX4Hjs.getOidcClientId.call(void 0, env, platform));
85
85
  urlEncodedBody.append("assertion", jwtToken);
86
86
  try {
87
87
  const response = await fetch(OIDC_TOKEN_URL(env), {
@@ -154,4 +154,4 @@ async function authenticate(rawMessage, signature, authType, env) {
154
154
 
155
155
 
156
156
  exports.NONCE_URL = NONCE_URL; exports.PAIR_IDENTIFIERS = PAIR_IDENTIFIERS; exports.OIDC_TOKEN_URL = OIDC_TOKEN_URL; exports.SRP_LOGIN_URL = SRP_LOGIN_URL; exports.SIWE_LOGIN_URL = SIWE_LOGIN_URL; exports.pairIdentifiers = pairIdentifiers; exports.getNonce = getNonce; exports.authorizeOIDC = authorizeOIDC; exports.authenticate = authenticate;
157
- //# sourceMappingURL=chunk-BOET676P.js.map
157
+ //# sourceMappingURL=chunk-LLG4D2SC.js.map
@@ -1,13 +1,15 @@
1
1
  import {
2
2
  createEntryPath
3
- } from "./chunk-ILIZJQ6X.mjs";
3
+ } from "./chunk-2VEMA6OE.mjs";
4
4
  import {
5
- createSHA256Hash,
6
5
  encryption_default
7
- } from "./chunk-B5DBQDB3.mjs";
6
+ } from "./chunk-6DAK2U35.mjs";
7
+ import {
8
+ createSHA256Hash
9
+ } from "./chunk-COBJUBZE.mjs";
8
10
  import {
9
11
  getEnvUrls
10
- } from "./chunk-FQ5SDMRE.mjs";
12
+ } from "./chunk-KTCSRECK.mjs";
11
13
  import {
12
14
  NotFoundError,
13
15
  UserStorageError
@@ -19,11 +21,12 @@ import {
19
21
 
20
22
  // src/sdk/user-storage.ts
21
23
  var STORAGE_URL = (env, encryptedPath) => `${getEnvUrls(env).userStorageApiUrl}/api/v1/userstorage/${encryptedPath}`;
22
- var _upsertUserStorage, upsertUserStorage_fn, _getUserStorage, getUserStorage_fn, _createEntryKey, createEntryKey_fn, _getAuthorizationHeader, getAuthorizationHeader_fn;
24
+ var _upsertUserStorage, upsertUserStorage_fn, _getUserStorage, getUserStorage_fn, _getUserStorageAllFeatureEntries, getUserStorageAllFeatureEntries_fn, _createEntryKey, createEntryKey_fn, _getAuthorizationHeader, getAuthorizationHeader_fn;
23
25
  var UserStorage = class {
24
26
  constructor(config, options) {
25
27
  __privateAdd(this, _upsertUserStorage);
26
28
  __privateAdd(this, _getUserStorage);
29
+ __privateAdd(this, _getUserStorageAllFeatureEntries);
27
30
  __privateAdd(this, _createEntryKey);
28
31
  // TODO: Either fix this lint violation or explain why it's necessary to ignore.
29
32
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -38,6 +41,9 @@ var UserStorage = class {
38
41
  async getItem(path) {
39
42
  return __privateMethod(this, _getUserStorage, getUserStorage_fn).call(this, path);
40
43
  }
44
+ async getAllFeatureItems(path) {
45
+ return __privateMethod(this, _getUserStorageAllFeatureEntries, getUserStorageAllFeatureEntries_fn).call(this, path);
46
+ }
41
47
  async getStorageKey() {
42
48
  const storageKey = await this.options.storage?.getStorageKey();
43
49
  if (storageKey) {
@@ -120,6 +126,48 @@ getUserStorage_fn = async function(path) {
120
126
  );
121
127
  }
122
128
  };
129
+ _getUserStorageAllFeatureEntries = new WeakSet();
130
+ getUserStorageAllFeatureEntries_fn = async function(path) {
131
+ try {
132
+ const headers = await __privateMethod(this, _getAuthorizationHeader, getAuthorizationHeader_fn).call(this);
133
+ const storageKey = await this.getStorageKey();
134
+ const url = new URL(STORAGE_URL(this.env, path));
135
+ const response = await fetch(url.toString(), {
136
+ headers: {
137
+ "Content-Type": "application/json",
138
+ ...headers
139
+ }
140
+ });
141
+ if (response.status === 404) {
142
+ throw new NotFoundError(`feature not found for path '${path}'.`);
143
+ }
144
+ if (!response.ok) {
145
+ const responseBody = await response.json();
146
+ throw new Error(
147
+ `HTTP error message: ${responseBody.message}, error: ${responseBody.error}`
148
+ );
149
+ }
150
+ const userStorage = await response.json();
151
+ if (!Array.isArray(userStorage)) {
152
+ return null;
153
+ }
154
+ const decryptedData = userStorage.flatMap((entry) => {
155
+ if (!entry.Data) {
156
+ return [];
157
+ }
158
+ return encryption_default.decryptString(entry.Data, storageKey);
159
+ });
160
+ return (await Promise.allSettled(decryptedData)).map((d) => d.status === "fulfilled" ? d.value : void 0).filter((d) => d !== void 0);
161
+ } catch (e) {
162
+ if (e instanceof NotFoundError) {
163
+ throw e;
164
+ }
165
+ const errorMessage = e instanceof Error ? e.message : JSON.stringify(e ?? "");
166
+ throw new UserStorageError(
167
+ `failed to get user storage for path '${path}'. ${errorMessage}`
168
+ );
169
+ }
170
+ };
123
171
  _createEntryKey = new WeakSet();
124
172
  createEntryKey_fn = function(key, storageKey) {
125
173
  const hashedKey = createSHA256Hash(key + storageKey);
@@ -135,4 +183,4 @@ export {
135
183
  STORAGE_URL,
136
184
  UserStorage
137
185
  };
138
- //# sourceMappingURL=chunk-NPH5AHLH.mjs.map
186
+ //# sourceMappingURL=chunk-MK7ABX2V.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sdk/user-storage.ts"],"sourcesContent":["import type {\n UserStoragePathWithFeatureAndKey,\n UserStoragePathWithFeatureOnly,\n} from '../controllers/user-storage/schema';\nimport { createEntryPath } from '../controllers/user-storage/schema';\nimport type { GetUserStorageAllFeatureEntriesResponse } from '../controllers/user-storage/services';\nimport type { IBaseAuth } from './authentication-jwt-bearer/types';\nimport encryption, { createSHA256Hash } from './encryption';\nimport type { Env } from './env';\nimport { getEnvUrls } from './env';\nimport { NotFoundError, UserStorageError } from './errors';\n\nexport const STORAGE_URL = (env: Env, encryptedPath: string) =>\n `${getEnvUrls(env).userStorageApiUrl}/api/v1/userstorage/${encryptedPath}`;\n\nexport type UserStorageConfig = {\n env: Env;\n auth: Pick<IBaseAuth, 'getAccessToken' | 'getUserProfile' | 'signMessage'>;\n};\n\nexport type StorageOptions = {\n getStorageKey: () => Promise<string | null>;\n setStorageKey: (val: string) => Promise<void>;\n};\n\nexport type UserStorageOptions = {\n storage?: StorageOptions;\n};\n\ntype ErrorMessage = {\n message: string;\n error: string;\n};\n\nexport class UserStorage {\n protected config: UserStorageConfig;\n\n protected options: UserStorageOptions;\n\n protected env: Env;\n\n constructor(config: UserStorageConfig, options: UserStorageOptions) {\n this.env = config.env;\n this.config = config;\n this.options = options;\n }\n\n async setItem(\n path: UserStoragePathWithFeatureAndKey,\n value: string,\n ): Promise<void> {\n await this.#upsertUserStorage(path, value);\n }\n\n async getItem(path: UserStoragePathWithFeatureAndKey): Promise<string> {\n return this.#getUserStorage(path);\n }\n\n async getAllFeatureItems(\n path: UserStoragePathWithFeatureOnly,\n ): Promise<string[] | null> {\n return this.#getUserStorageAllFeatureEntries(path);\n }\n\n async getStorageKey(): Promise<string> {\n const storageKey = await this.options.storage?.getStorageKey();\n if (storageKey) {\n return storageKey;\n }\n\n const userProfile = await this.config.auth.getUserProfile();\n const storageKeySignature = await this.config.auth.signMessage(\n `metamask:${userProfile.profileId}`,\n );\n const hashedStorageKeySignature = createSHA256Hash(storageKeySignature);\n await this.options.storage?.setStorageKey(hashedStorageKeySignature);\n return hashedStorageKeySignature;\n }\n\n async #upsertUserStorage(\n path: UserStoragePathWithFeatureAndKey,\n data: string,\n ): Promise<void> {\n try {\n const headers = await this.#getAuthorizationHeader();\n const storageKey = await this.getStorageKey();\n const encryptedData = encryption.encryptString(data, storageKey);\n const encryptedPath = createEntryPath(path, storageKey);\n\n const url = new URL(STORAGE_URL(this.env, encryptedPath));\n\n const response = await fetch(url.toString(), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n body: JSON.stringify({ data: encryptedData }),\n });\n\n if (!response.ok) {\n const responseBody: ErrorMessage = await response.json().catch(() => ({\n message: 'unknown',\n error: 'unknown',\n }));\n throw new Error(\n `HTTP error message: ${responseBody.message}, error: ${responseBody.error}`,\n );\n }\n } catch (e) {\n /* istanbul ignore next */\n const errorMessage =\n e instanceof Error ? e.message : JSON.stringify(e ?? '');\n throw new UserStorageError(\n `failed to upsert user storage for path '${path}'. ${errorMessage}`,\n );\n }\n }\n\n async #getUserStorage(\n path: UserStoragePathWithFeatureAndKey,\n ): Promise<string> {\n try {\n const headers = await this.#getAuthorizationHeader();\n const storageKey = await this.getStorageKey();\n const encryptedPath = createEntryPath(path, storageKey);\n\n const url = new URL(STORAGE_URL(this.env, encryptedPath));\n\n const response = await fetch(url.toString(), {\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n });\n\n if (response.status === 404) {\n throw new NotFoundError(\n `feature/key set not found for path '${path}'.`,\n );\n }\n\n if (!response.ok) {\n const responseBody = (await response.json()) as ErrorMessage;\n throw new Error(\n `HTTP error message: ${responseBody.message}, error: ${responseBody.error}`,\n );\n }\n\n const { Data: encryptedData } = await response.json();\n return encryption.decryptString(encryptedData, storageKey);\n } catch (e) {\n if (e instanceof NotFoundError) {\n throw e;\n }\n\n /* istanbul ignore next */\n const errorMessage =\n e instanceof Error ? e.message : JSON.stringify(e ?? '');\n\n throw new UserStorageError(\n `failed to get user storage for path '${path}'. ${errorMessage}`,\n );\n }\n }\n\n async #getUserStorageAllFeatureEntries(\n path: UserStoragePathWithFeatureOnly,\n ): Promise<string[] | null> {\n try {\n const headers = await this.#getAuthorizationHeader();\n const storageKey = await this.getStorageKey();\n\n const url = new URL(STORAGE_URL(this.env, path));\n\n const response = await fetch(url.toString(), {\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n });\n\n if (response.status === 404) {\n throw new NotFoundError(`feature not found for path '${path}'.`);\n }\n\n if (!response.ok) {\n const responseBody = (await response.json()) as ErrorMessage;\n throw new Error(\n `HTTP error message: ${responseBody.message}, error: ${responseBody.error}`,\n );\n }\n\n const userStorage: GetUserStorageAllFeatureEntriesResponse | null =\n await response.json();\n\n if (!Array.isArray(userStorage)) {\n return null;\n }\n\n const decryptedData = userStorage.flatMap((entry) => {\n if (!entry.Data) {\n return [];\n }\n\n return encryption.decryptString(entry.Data, storageKey);\n });\n\n return (await Promise.allSettled(decryptedData))\n .map((d) => (d.status === 'fulfilled' ? d.value : undefined))\n .filter((d): d is string => d !== undefined);\n } catch (e) {\n if (e instanceof NotFoundError) {\n throw e;\n }\n\n /* istanbul ignore next */\n const errorMessage =\n e instanceof Error ? e.message : JSON.stringify(e ?? '');\n\n throw new UserStorageError(\n `failed to get user storage for path '${path}'. ${errorMessage}`,\n );\n }\n }\n\n #createEntryKey(key: string, storageKey: string): string {\n const hashedKey = createSHA256Hash(key + storageKey);\n return hashedKey;\n }\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 async #getAuthorizationHeader(): Promise<{ Authorization: string }> {\n const accessToken = await this.config.auth.getAccessToken();\n return { Authorization: `Bearer ${accessToken}` };\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkT3FNDVE3js = require('./chunk-T3FNDVE3.js');
3
+ var _chunkBKQE7DB5js = require('./chunk-BKQE7DB5.js');
4
4
 
5
5
  // src/controllers/user-storage/encryption/index.ts
6
- var encryption_default2 = _chunkT3FNDVE3js.encryption_default;
6
+ var encryption_default2 = _chunkBKQE7DB5js.encryption_default;
7
7
 
8
8
 
9
9
 
10
10
  exports.encryption_default = encryption_default2;
11
- //# sourceMappingURL=chunk-AK7OTIWA.js.map
11
+ //# sourceMappingURL=chunk-NIUQ34PY.js.map
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkKW3X4TT5js = require('./chunk-KW3X4TT5.js');
4
+ var _chunkF6BAOSH2js = require('./chunk-F6BAOSH2.js');
5
5
 
6
6
 
7
7
 
8
8
 
9
- var _chunk5C53GKTUjs = require('./chunk-5C53GKTU.js');
9
+ var _chunkZX2KHPXGjs = require('./chunk-ZX2KHPXG.js');
10
10
 
11
11
 
12
12
  var _chunkIGY2S5BCjs = require('./chunk-IGY2S5BC.js');
@@ -14,9 +14,10 @@ var _chunkIGY2S5BCjs = require('./chunk-IGY2S5BC.js');
14
14
  // src/controllers/authentication/index.ts
15
15
  var authentication_exports = {};
16
16
  _chunkIGY2S5BCjs.__export.call(void 0, authentication_exports, {
17
- Controller: () => _chunkKW3X4TT5js.AuthenticationController,
17
+ Controller: () => _chunkF6BAOSH2js.AuthenticationController,
18
18
  Mocks: () => fixtures_exports,
19
- defaultState: () => _chunkKW3X4TT5js.defaultState
19
+ default: () => authentication_default,
20
+ defaultState: () => _chunkF6BAOSH2js.defaultState
20
21
  });
21
22
 
22
23
  // src/controllers/authentication/__fixtures__/index.ts
@@ -40,7 +41,7 @@ var MOCK_NONCE_RESPONSE = {
40
41
  };
41
42
  var getMockAuthNonceResponse = () => {
42
43
  return {
43
- url: _chunk5C53GKTUjs.AUTH_NONCE_ENDPOINT,
44
+ url: _chunkZX2KHPXGjs.AUTH_NONCE_ENDPOINT,
44
45
  requestMethod: "GET",
45
46
  response: MOCK_NONCE_RESPONSE
46
47
  };
@@ -59,7 +60,7 @@ var MOCK_LOGIN_RESPONSE = {
59
60
  };
60
61
  var getMockAuthLoginResponse = () => {
61
62
  return {
62
- url: _chunk5C53GKTUjs.AUTH_LOGIN_ENDPOINT,
63
+ url: _chunkZX2KHPXGjs.AUTH_LOGIN_ENDPOINT,
63
64
  requestMethod: "POST",
64
65
  response: MOCK_LOGIN_RESPONSE
65
66
  };
@@ -73,14 +74,19 @@ var MOCK_OATH_TOKEN_RESPONSE = {
73
74
  };
74
75
  var getMockAuthAccessTokenResponse = () => {
75
76
  return {
76
- url: _chunk5C53GKTUjs.OIDC_TOKENS_ENDPOINT,
77
+ url: _chunkZX2KHPXGjs.OIDC_TOKENS_ENDPOINT,
77
78
  requestMethod: "POST",
78
79
  response: MOCK_OATH_TOKEN_RESPONSE
79
80
  };
80
81
  };
81
82
 
83
+ // src/controllers/authentication/index.ts
84
+ var AuthenticationController2 = _chunkF6BAOSH2js.AuthenticationController;
85
+ var authentication_default = AuthenticationController2;
86
+
87
+
82
88
 
83
89
 
84
90
 
85
- exports.fixtures_exports = fixtures_exports; exports.authentication_exports = authentication_exports;
86
- //# sourceMappingURL=chunk-MNVUKRZC.js.map
91
+ exports.fixtures_exports = fixtures_exports; exports.authentication_default = authentication_default; exports.authentication_exports = authentication_exports;
92
+ //# sourceMappingURL=chunk-PRYLTXW4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/controllers/authentication/index.ts","../src/controllers/authentication/__fixtures__/index.ts","../src/controllers/authentication/__fixtures__/mockResponses.ts"],"names":["AuthenticationController"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACiBO,IAAM,aAAa;AACnB,IAAM,sBAAqC;AAAA,EAChD,OAAO;AACT;AAEO,IAAM,2BAA2B,MAAM;AAC5C,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,WACX;AACK,IAAM,sBAAqC;AAAA,EAChD,OAAO;AAAA;AAAA,EAEP,aAAY,oBAAI,KAAK,GAAE,SAAS;AAAA,EAChC,SAAS;AAAA;AAAA,IAEP,eAAe;AAAA;AAAA,IAEf,YAAY;AAAA,EACd;AACF;AAEO,IAAM,2BAA2B,MAAM;AAC5C,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,oBAAoB,qBAAqB,QAAQ;AACvD,IAAM,2BAA+C;AAAA;AAAA,EAE1D,cAAc;AAAA;AAAA,EAEd,aAAY,oBAAI,KAAK,GAAE,QAAQ;AACjC;AAEO,IAAM,iCAAiC,MAAM;AAClD,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;;;AFhEA,IAAMA,4BAA2B;AAEjC,IAAO,yBAAQA","sourcesContent":["import Controller from './AuthenticationController';\n\nconst AuthenticationController = Controller;\nexport { Controller };\nexport default AuthenticationController;\nexport * from './AuthenticationController';\nexport * as Mocks from './__fixtures__';\n","export * from './mockResponses';\n","import type {\n LoginResponse,\n NonceResponse,\n OAuthTokenResponse,\n} from '../services';\nimport {\n AUTH_LOGIN_ENDPOINT,\n AUTH_NONCE_ENDPOINT,\n OIDC_TOKENS_ENDPOINT,\n} from '../services';\n\ntype MockResponse = {\n url: string;\n requestMethod: 'GET' | 'POST' | 'PUT';\n response: unknown;\n};\n\nexport const MOCK_NONCE = '4cbfqzoQpcNxVImGv';\nexport const MOCK_NONCE_RESPONSE: NonceResponse = {\n nonce: MOCK_NONCE,\n};\n\nexport const getMockAuthNonceResponse = () => {\n return {\n url: AUTH_NONCE_ENDPOINT,\n requestMethod: 'GET',\n response: MOCK_NONCE_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const MOCK_JWT =\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';\nexport const MOCK_LOGIN_RESPONSE: LoginResponse = {\n token: MOCK_JWT,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: new Date().toString(),\n profile: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n identifier_id: 'MOCK_IDENTIFIER',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n profile_id: 'MOCK_PROFILE_ID',\n },\n};\n\nexport const getMockAuthLoginResponse = () => {\n return {\n url: AUTH_LOGIN_ENDPOINT,\n requestMethod: 'POST',\n response: MOCK_LOGIN_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const MOCK_ACCESS_TOKEN = `MOCK_ACCESS_TOKEN-${MOCK_JWT}`;\nexport const MOCK_OATH_TOKEN_RESPONSE: OAuthTokenResponse = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n access_token: MOCK_ACCESS_TOKEN,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n expires_in: new Date().getTime(),\n};\n\nexport const getMockAuthAccessTokenResponse = () => {\n return {\n url: OIDC_TOKENS_ENDPOINT,\n requestMethod: 'POST',\n response: MOCK_OATH_TOKEN_RESPONSE,\n } satisfies MockResponse;\n};\n"]}
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkG4NU4KP7js = require('./chunk-G4NU4KP7.js');
3
+ var _chunkKIVBL6OMjs = require('./chunk-KIVBL6OM.js');
4
4
 
5
5
 
6
- var _chunkVD2IGTS3js = require('./chunk-VD2IGTS3.js');
6
+ var _chunk4ZGRRVMIjs = require('./chunk-4ZGRRVMI.js');
7
7
 
8
8
 
9
9
 
10
- var _chunkBOET676Pjs = require('./chunk-BOET676P.js');
10
+ var _chunkLLG4D2SCjs = require('./chunk-LLG4D2SC.js');
11
11
 
12
12
 
13
13
  var _chunkRG4II6WHjs = require('./chunk-RG4II6WH.js');
@@ -36,11 +36,11 @@ var JwtBearerAuth = class {
36
36
  _chunkIGY2S5BCjs.__privateSet.call(void 0, this, _type, args[0].type);
37
37
  _chunkIGY2S5BCjs.__privateSet.call(void 0, this, _env, args[0].env);
38
38
  if (args[0].type === "SRP" /* SRP */) {
39
- _chunkIGY2S5BCjs.__privateSet.call(void 0, this, _sdk, new (0, _chunkVD2IGTS3js.SRPJwtBearerAuth)(args[0], args[1]));
39
+ _chunkIGY2S5BCjs.__privateSet.call(void 0, this, _sdk, new (0, _chunk4ZGRRVMIjs.SRPJwtBearerAuth)(args[0], args[1]));
40
40
  return;
41
41
  }
42
42
  if (args[0].type === "SiWE" /* SiWE */) {
43
- _chunkIGY2S5BCjs.__privateSet.call(void 0, this, _sdk, new (0, _chunkG4NU4KP7js.SIWEJwtBearerAuth)(args[0], args[1]));
43
+ _chunkIGY2S5BCjs.__privateSet.call(void 0, this, _sdk, new (0, _chunkKIVBL6OMjs.SIWEJwtBearerAuth)(args[0], args[1]));
44
44
  return;
45
45
  }
46
46
  throw new (0, _chunkMBTBE4P5js.UnsupportedAuthTypeError)("unsupported auth type");
@@ -67,7 +67,7 @@ var JwtBearerAuth = class {
67
67
  }
68
68
  async pairIdentifiers(pairing) {
69
69
  const profile = await this.getUserProfile();
70
- const n = await _chunkBOET676Pjs.getNonce.call(void 0, profile.profileId, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _env));
70
+ const n = await _chunkLLG4D2SCjs.getNonce.call(void 0, profile.profileId, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _env));
71
71
  const logins = await Promise.all(
72
72
  pairing.map(async (p) => {
73
73
  try {
@@ -94,7 +94,7 @@ var JwtBearerAuth = class {
94
94
  })
95
95
  );
96
96
  const accessToken = await this.getAccessToken();
97
- await _chunkBOET676Pjs.pairIdentifiers.call(void 0, n.nonce, logins, accessToken, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _env));
97
+ await _chunkLLG4D2SCjs.pairIdentifiers.call(void 0, n.nonce, logins, accessToken, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _env));
98
98
  }
99
99
  prepare(signer) {
100
100
  _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _assertSIWE, assertSIWE_fn).call(this, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _type), _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _sdk));
@@ -117,4 +117,4 @@ assertSIWE_fn = function(type, sdk) {
117
117
 
118
118
 
119
119
  exports.JwtBearerAuth = JwtBearerAuth;
120
- //# sourceMappingURL=chunk-XSSIP3PJ.js.map
120
+ //# sourceMappingURL=chunk-Q5KTSMRE.js.map