@metamask/profile-sync-controller 0.2.1 → 0.3.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 (168) hide show
  1. package/CHANGELOG.md +34 -1
  2. package/auth/mocks/package.json +9 -0
  3. package/auth/package.json +9 -0
  4. package/dist/{chunk-BDO3VJEU.mjs → chunk-2CWF7ZTL.mjs} +2 -2
  5. package/dist/{chunk-7KMONAQI.mjs → chunk-4WXZXVLI.mjs} +7 -9
  6. package/dist/{chunk-7KMONAQI.mjs.map → chunk-4WXZXVLI.mjs.map} +1 -1
  7. package/dist/{chunk-VD2IGTS3.js → chunk-4ZGRRVMI.js} +5 -5
  8. package/dist/{chunk-WWQ65CZY.mjs → chunk-D4SNJOID.mjs} +2 -2
  9. package/dist/chunk-D4SNJOID.mjs.map +1 -0
  10. package/dist/{chunk-SMKTWM6I.js → chunk-DF24ZX4H.js} +2 -3
  11. package/dist/chunk-DF24ZX4H.js.map +1 -0
  12. package/dist/{chunk-NPH5AHLH.mjs → chunk-E7Z5TCQT.mjs} +54 -6
  13. package/dist/chunk-E7Z5TCQT.mjs.map +1 -0
  14. package/dist/chunk-EHZFPUJH.mjs +53 -0
  15. package/dist/chunk-EHZFPUJH.mjs.map +1 -0
  16. package/dist/{chunk-SLHAVOTE.js → chunk-EYZFHZR2.js} +11 -4
  17. package/dist/chunk-EYZFHZR2.js.map +1 -0
  18. package/dist/{chunk-KW3X4TT5.js → chunk-F6BAOSH2.js} +6 -6
  19. package/dist/chunk-F6BAOSH2.js.map +1 -0
  20. package/dist/chunk-GQXYWBFK.js +28 -0
  21. package/dist/chunk-GQXYWBFK.js.map +1 -0
  22. package/dist/{chunk-3TE6M5TV.js → chunk-HMRRB4EX.js} +40 -7
  23. package/dist/chunk-HMRRB4EX.js.map +1 -0
  24. package/dist/{chunk-DRD22DR5.mjs → chunk-J7NSK6BO.mjs} +2 -2
  25. package/dist/chunk-JAQ5TPSZ.js +53 -0
  26. package/dist/chunk-JAQ5TPSZ.js.map +1 -0
  27. package/dist/{chunk-PSR2V3R4.js → chunk-JJ5BDCKD.js} +17 -19
  28. package/dist/chunk-JJ5BDCKD.js.map +1 -0
  29. package/dist/{chunk-G4NU4KP7.js → chunk-KIVBL6OM.js} +6 -6
  30. package/dist/{chunk-FQ5SDMRE.mjs → chunk-KTCSRECK.mjs} +2 -3
  31. package/dist/{chunk-FQ5SDMRE.mjs.map → chunk-KTCSRECK.mjs.map} +1 -1
  32. package/dist/chunk-LDYHGAP4.js +11 -0
  33. package/dist/chunk-LDYHGAP4.js.map +1 -0
  34. package/dist/{chunk-7SW3CC66.mjs → chunk-LGXQBALM.mjs} +2 -2
  35. package/dist/{chunk-5C53GKTU.js.map → chunk-LGXQBALM.mjs.map} +1 -1
  36. package/dist/{chunk-BOET676P.js → chunk-LLG4D2SC.js} +8 -8
  37. package/dist/{chunk-JENTMRXO.js → chunk-LNECIW4K.js} +214 -8
  38. package/dist/chunk-LNECIW4K.js.map +1 -0
  39. package/dist/{chunk-FU7PSGFP.mjs → chunk-LYDHYB6I.mjs} +36 -3
  40. package/dist/chunk-LYDHYB6I.mjs.map +1 -0
  41. package/dist/{chunk-QE5X2BT3.mjs → chunk-M23ZCTKE.mjs} +212 -6
  42. package/dist/chunk-M23ZCTKE.mjs.map +1 -0
  43. package/dist/{chunk-ILIZJQ6X.mjs → chunk-NSSHFDIS.mjs} +10 -3
  44. package/dist/chunk-NSSHFDIS.mjs.map +1 -0
  45. package/dist/{chunk-MNVUKRZC.js → chunk-PRYLTXW4.js} +15 -9
  46. package/dist/chunk-PRYLTXW4.js.map +1 -0
  47. package/dist/{chunk-XSSIP3PJ.js → chunk-Q5KTSMRE.js} +8 -8
  48. package/dist/chunk-QU4EXKJO.mjs +11 -0
  49. package/dist/chunk-QU4EXKJO.mjs.map +1 -0
  50. package/dist/{chunk-CJLDMVV3.mjs → chunk-UHP2Y32K.mjs} +9 -3
  51. package/dist/chunk-UHP2Y32K.mjs.map +1 -0
  52. package/dist/{chunk-4DQF2YNS.js → chunk-WAFY3R2F.js} +41 -16
  53. package/dist/chunk-WAFY3R2F.js.map +1 -0
  54. package/dist/{chunk-VYZPOR47.mjs → chunk-YKOMKXG4.mjs} +4 -4
  55. package/dist/{chunk-WB6MUIML.mjs → chunk-YLURF2PF.mjs} +2 -2
  56. package/dist/{chunk-FUPEFLXB.js → chunk-ZMQRPWJN.js} +60 -12
  57. package/dist/chunk-ZMQRPWJN.js.map +1 -0
  58. package/dist/chunk-ZUPTMFEA.mjs +28 -0
  59. package/dist/chunk-ZUPTMFEA.mjs.map +1 -0
  60. package/dist/{chunk-5C53GKTU.js → chunk-ZX2KHPXG.js} +5 -5
  61. package/dist/chunk-ZX2KHPXG.js.map +1 -0
  62. package/dist/{chunk-XMYWJQNH.mjs → chunk-ZYYAQJ56.mjs} +38 -13
  63. package/dist/chunk-ZYYAQJ56.mjs.map +1 -0
  64. package/dist/controllers/authentication/AuthenticationController.js +4 -21
  65. package/dist/controllers/authentication/AuthenticationController.mjs +3 -20
  66. package/dist/controllers/authentication/index.js +7 -22
  67. package/dist/controllers/authentication/index.mjs +6 -21
  68. package/dist/controllers/authentication/services.js +3 -20
  69. package/dist/controllers/authentication/services.mjs +2 -19
  70. package/dist/controllers/index.js +11 -21
  71. package/dist/controllers/index.mjs +10 -20
  72. package/dist/controllers/user-storage/UserStorageController.js +7 -17
  73. package/dist/controllers/user-storage/UserStorageController.mjs +6 -16
  74. package/dist/controllers/user-storage/accounts/constants.js +12 -0
  75. package/dist/controllers/user-storage/accounts/constants.js.map +1 -0
  76. package/dist/controllers/user-storage/accounts/constants.mjs +12 -0
  77. package/dist/controllers/user-storage/accounts/constants.mjs.map +1 -0
  78. package/dist/controllers/user-storage/accounts/user-storage.js +11 -0
  79. package/dist/controllers/user-storage/accounts/user-storage.js.map +1 -0
  80. package/dist/controllers/user-storage/accounts/user-storage.mjs +11 -0
  81. package/dist/controllers/user-storage/accounts/user-storage.mjs.map +1 -0
  82. package/dist/controllers/user-storage/index.js +10 -18
  83. package/dist/controllers/user-storage/index.mjs +10 -18
  84. package/dist/controllers/user-storage/schema.js +4 -2
  85. package/dist/controllers/user-storage/schema.mjs +5 -3
  86. package/dist/controllers/user-storage/services.js +6 -16
  87. package/dist/controllers/user-storage/services.mjs +5 -15
  88. package/dist/index.js +18 -16
  89. package/dist/index.mjs +17 -15
  90. package/dist/sdk/authentication-jwt-bearer/flow-siwe.js +4 -4
  91. package/dist/sdk/authentication-jwt-bearer/flow-siwe.mjs +3 -3
  92. package/dist/sdk/authentication-jwt-bearer/flow-srp.js +4 -4
  93. package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs +3 -3
  94. package/dist/sdk/authentication-jwt-bearer/services.js +3 -3
  95. package/dist/sdk/authentication-jwt-bearer/services.mjs +2 -2
  96. package/dist/sdk/authentication.js +6 -6
  97. package/dist/sdk/authentication.mjs +5 -5
  98. package/dist/sdk/encryption.js +5 -3
  99. package/dist/sdk/encryption.mjs +6 -4
  100. package/dist/sdk/env.js +2 -2
  101. package/dist/sdk/env.mjs +1 -1
  102. package/dist/sdk/index.js +13 -15
  103. package/dist/sdk/index.mjs +12 -14
  104. package/dist/sdk/user-storage.js +5 -5
  105. package/dist/sdk/user-storage.mjs +4 -4
  106. package/dist/tsconfig.build.tsbuildinfo +1 -1
  107. package/dist/types/controllers/authentication/AuthenticationController.d.ts +6 -3
  108. package/dist/types/controllers/authentication/AuthenticationController.d.ts.map +1 -1
  109. package/dist/types/controllers/authentication/__fixtures__/mockResponses.d.ts +1 -1
  110. package/dist/types/controllers/authentication/__fixtures__/mockResponses.d.ts.map +1 -1
  111. package/dist/types/controllers/authentication/index.d.ts +2 -0
  112. package/dist/types/controllers/authentication/index.d.ts.map +1 -1
  113. package/dist/types/controllers/user-storage/UserStorageController.d.ts +48 -10
  114. package/dist/types/controllers/user-storage/UserStorageController.d.ts.map +1 -1
  115. package/dist/types/controllers/user-storage/__fixtures__/mockAccounts.d.ts +63 -0
  116. package/dist/types/controllers/user-storage/__fixtures__/mockAccounts.d.ts.map +1 -0
  117. package/dist/types/controllers/user-storage/__fixtures__/mockResponses.d.ts +10 -4
  118. package/dist/types/controllers/user-storage/__fixtures__/mockResponses.d.ts.map +1 -1
  119. package/dist/types/controllers/user-storage/__fixtures__/mockServices.d.ts +4 -2
  120. package/dist/types/controllers/user-storage/__fixtures__/mockServices.d.ts.map +1 -1
  121. package/dist/types/controllers/user-storage/accounts/constants.d.ts +4 -0
  122. package/dist/types/controllers/user-storage/accounts/constants.d.ts.map +1 -0
  123. package/dist/types/controllers/user-storage/accounts/user-storage.d.ts +32 -0
  124. package/dist/types/controllers/user-storage/accounts/user-storage.d.ts.map +1 -0
  125. package/dist/types/controllers/user-storage/index.d.ts +2 -0
  126. package/dist/types/controllers/user-storage/index.d.ts.map +1 -1
  127. package/dist/types/controllers/user-storage/schema.d.ts +13 -6
  128. package/dist/types/controllers/user-storage/schema.d.ts.map +1 -1
  129. package/dist/types/controllers/user-storage/services.d.ts +20 -4
  130. package/dist/types/controllers/user-storage/services.d.ts.map +1 -1
  131. package/dist/types/sdk/__fixtures__/mock-userstorage.d.ts +1 -0
  132. package/dist/types/sdk/__fixtures__/mock-userstorage.d.ts.map +1 -1
  133. package/dist/types/sdk/encryption.d.ts +3 -19
  134. package/dist/types/sdk/encryption.d.ts.map +1 -1
  135. package/dist/types/sdk/user-storage.d.ts +4 -3
  136. package/dist/types/sdk/user-storage.d.ts.map +1 -1
  137. package/package.json +37 -6
  138. package/user-storage/mocks/package.json +9 -0
  139. package/user-storage/package.json +9 -0
  140. package/dist/chunk-3TE6M5TV.js.map +0 -1
  141. package/dist/chunk-4DQF2YNS.js.map +0 -1
  142. package/dist/chunk-7SW3CC66.mjs.map +0 -1
  143. package/dist/chunk-B5DBQDB3.mjs +0 -140
  144. package/dist/chunk-B5DBQDB3.mjs.map +0 -1
  145. package/dist/chunk-CJLDMVV3.mjs.map +0 -1
  146. package/dist/chunk-FU7PSGFP.mjs.map +0 -1
  147. package/dist/chunk-FUPEFLXB.js.map +0 -1
  148. package/dist/chunk-ILIZJQ6X.mjs.map +0 -1
  149. package/dist/chunk-JENTMRXO.js.map +0 -1
  150. package/dist/chunk-KW3X4TT5.js.map +0 -1
  151. package/dist/chunk-MNVUKRZC.js.map +0 -1
  152. package/dist/chunk-NPH5AHLH.mjs.map +0 -1
  153. package/dist/chunk-P4DUDLMY.js +0 -140
  154. package/dist/chunk-P4DUDLMY.js.map +0 -1
  155. package/dist/chunk-PSR2V3R4.js.map +0 -1
  156. package/dist/chunk-QE5X2BT3.mjs.map +0 -1
  157. package/dist/chunk-SLHAVOTE.js.map +0 -1
  158. package/dist/chunk-SMKTWM6I.js.map +0 -1
  159. package/dist/chunk-WWQ65CZY.mjs.map +0 -1
  160. package/dist/chunk-XMYWJQNH.mjs.map +0 -1
  161. /package/dist/{chunk-BDO3VJEU.mjs.map → chunk-2CWF7ZTL.mjs.map} +0 -0
  162. /package/dist/{chunk-VD2IGTS3.js.map → chunk-4ZGRRVMI.js.map} +0 -0
  163. /package/dist/{chunk-DRD22DR5.mjs.map → chunk-J7NSK6BO.mjs.map} +0 -0
  164. /package/dist/{chunk-G4NU4KP7.js.map → chunk-KIVBL6OM.js.map} +0 -0
  165. /package/dist/{chunk-BOET676P.js.map → chunk-LLG4D2SC.js.map} +0 -0
  166. /package/dist/{chunk-XSSIP3PJ.js.map → chunk-Q5KTSMRE.js.map} +0 -0
  167. /package/dist/{chunk-VYZPOR47.mjs.map → chunk-YKOMKXG4.mjs.map} +0 -0
  168. /package/dist/{chunk-WB6MUIML.mjs.map → chunk-YLURF2PF.mjs.map} +0 -0
@@ -1,22 +1,22 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkSLHAVOTEjs = require('./chunk-SLHAVOTE.js');
3
+ var _chunkEYZFHZR2js = require('./chunk-EYZFHZR2.js');
4
4
 
5
5
 
6
6
  var _chunkAK7OTIWAjs = require('./chunk-AK7OTIWA.js');
7
7
 
8
8
 
9
- var _chunkSMKTWM6Ijs = require('./chunk-SMKTWM6I.js');
9
+ var _chunkDF24ZX4Hjs = require('./chunk-DF24ZX4H.js');
10
10
 
11
11
  // src/controllers/user-storage/services.ts
12
12
  var _loglevel = require('loglevel'); var _loglevel2 = _interopRequireDefault(_loglevel);
13
- var ENV_URLS = _chunkSMKTWM6Ijs.getEnvUrls.call(void 0, "prd" /* PRD */);
13
+ var ENV_URLS = _chunkDF24ZX4Hjs.getEnvUrls.call(void 0, "prd" /* PRD */);
14
14
  var USER_STORAGE_API = ENV_URLS.userStorageApiUrl;
15
15
  var USER_STORAGE_ENDPOINT = `${USER_STORAGE_API}/api/v1/userstorage`;
16
16
  async function getUserStorage(opts) {
17
17
  try {
18
18
  const { bearerToken, path, storageKey } = opts;
19
- const encryptedPath = _chunkSLHAVOTEjs.createEntryPath.call(void 0, path, storageKey);
19
+ const encryptedPath = _chunkEYZFHZR2js.createEntryPath.call(void 0, path, storageKey);
20
20
  const url = new URL(`${USER_STORAGE_ENDPOINT}${encryptedPath}`);
21
21
  const userStorageResponse = await fetch(url.toString(), {
22
22
  headers: {
@@ -45,10 +45,42 @@ async function getUserStorage(opts) {
45
45
  return null;
46
46
  }
47
47
  }
48
+ async function getUserStorageAllFeatureEntries(opts) {
49
+ try {
50
+ const { bearerToken, path } = opts;
51
+ const url = new URL(`${USER_STORAGE_ENDPOINT}/${path}`);
52
+ const userStorageResponse = await fetch(url.toString(), {
53
+ headers: {
54
+ "Content-Type": "application/json",
55
+ Authorization: `Bearer ${bearerToken}`
56
+ }
57
+ });
58
+ if (userStorageResponse.status === 404) {
59
+ return null;
60
+ }
61
+ if (userStorageResponse.status !== 200) {
62
+ throw new Error("Unable to get User Storage");
63
+ }
64
+ const userStorage = await userStorageResponse.json();
65
+ if (!Array.isArray(userStorage)) {
66
+ return null;
67
+ }
68
+ const decryptedData = userStorage?.flatMap((entry) => {
69
+ if (!entry.Data) {
70
+ return [];
71
+ }
72
+ return _chunkAK7OTIWAjs.encryption_default.decryptString(entry.Data, opts.storageKey);
73
+ });
74
+ return decryptedData;
75
+ } catch (e) {
76
+ _loglevel2.default.error("Failed to get user storage", e);
77
+ return null;
78
+ }
79
+ }
48
80
  async function upsertUserStorage(data, opts) {
49
81
  const { bearerToken, path, storageKey } = opts;
50
82
  const encryptedData = _chunkAK7OTIWAjs.encryption_default.encryptString(data, opts.storageKey);
51
- const encryptedPath = _chunkSLHAVOTEjs.createEntryPath.call(void 0, path, storageKey);
83
+ const encryptedPath = _chunkEYZFHZR2js.createEntryPath.call(void 0, path, storageKey);
52
84
  const url = new URL(`${USER_STORAGE_ENDPOINT}${encryptedPath}`);
53
85
  const res = await fetch(url.toString(), {
54
86
  method: "PUT",
@@ -68,5 +100,6 @@ async function upsertUserStorage(data, opts) {
68
100
 
69
101
 
70
102
 
71
- exports.USER_STORAGE_API = USER_STORAGE_API; exports.USER_STORAGE_ENDPOINT = USER_STORAGE_ENDPOINT; exports.getUserStorage = getUserStorage; exports.upsertUserStorage = upsertUserStorage;
72
- //# sourceMappingURL=chunk-3TE6M5TV.js.map
103
+
104
+ exports.USER_STORAGE_API = USER_STORAGE_API; exports.USER_STORAGE_ENDPOINT = USER_STORAGE_ENDPOINT; exports.getUserStorage = getUserStorage; exports.getUserStorageAllFeatureEntries = getUserStorageAllFeatureEntries; exports.upsertUserStorage = upsertUserStorage;
105
+ //# sourceMappingURL=chunk-HMRRB4EX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/controllers/user-storage/services.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,SAAS;AAUhB,IAAM,WAAW,0BAAkB;AAE5B,IAAM,mBAA2B,SAAS;AAC1C,IAAM,wBAAwB,GAAG,gBAAgB;AAsCxD,eAAsB,eACpB,MACwB;AACxB,MAAI;AACF,UAAM,EAAE,aAAa,MAAM,WAAW,IAAI;AAE1C,UAAM,gBAAgB,gBAAgB,MAAM,UAAU;AACtD,UAAM,MAAM,IAAI,IAAI,GAAG,qBAAqB,GAAG,aAAa,EAAE;AAE9D,UAAM,sBAAsB,MAAM,MAAM,IAAI,SAAS,GAAG;AAAA,MACtD,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,eAAe,UAAU,WAAW;AAAA,MACtC;AAAA,IACF,CAAC;AAGD,QAAI,oBAAoB,WAAW,KAAK;AACtC,aAAO;AAAA,IACT;AAEA,QAAI,oBAAoB,WAAW,KAAK;AACtC,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AAEA,UAAM,cACJ,MAAM,oBAAoB,KAAK;AACjC,UAAM,gBAAgB,aAAa,QAAQ;AAE3C,QAAI,CAAC,eAAe;AAClB,aAAO;AAAA,IACT;AAEA,UAAM,gBAAgB,mBAAW;AAAA,MAC/B;AAAA,MACA,KAAK;AAAA,IACP;AAEA,WAAO;AAAA,EACT,SAAS,GAAG;AACV,QAAI,MAAM,8BAA8B,CAAC;AACzC,WAAO;AAAA,EACT;AACF;AAQA,eAAsB,gCACpB,MAC0B;AAC1B,MAAI;AACF,UAAM,EAAE,aAAa,KAAK,IAAI;AAC9B,UAAM,MAAM,IAAI,IAAI,GAAG,qBAAqB,IAAI,IAAI,EAAE;AAEtD,UAAM,sBAAsB,MAAM,MAAM,IAAI,SAAS,GAAG;AAAA,MACtD,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,eAAe,UAAU,WAAW;AAAA,MACtC;AAAA,IACF,CAAC;AAGD,QAAI,oBAAoB,WAAW,KAAK;AACtC,aAAO;AAAA,IACT;AAEA,QAAI,oBAAoB,WAAW,KAAK;AACtC,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AAEA,UAAM,cACJ,MAAM,oBAAoB,KAAK;AAEjC,QAAI,CAAC,MAAM,QAAQ,WAAW,GAAG;AAC/B,aAAO;AAAA,IACT;AAEA,UAAM,gBAAgB,aAAa,QAAQ,CAAC,UAAU;AACpD,UAAI,CAAC,MAAM,MAAM;AACf,eAAO,CAAC;AAAA,MACV;AAEA,aAAO,mBAAW,cAAc,MAAM,MAAM,KAAK,UAAU;AAAA,IAC7D,CAAC;AAED,WAAO;AAAA,EACT,SAAS,GAAG;AACV,QAAI,MAAM,8BAA8B,CAAC;AACzC,WAAO;AAAA,EACT;AACF;AAQA,eAAsB,kBACpB,MACA,MACe;AACf,QAAM,EAAE,aAAa,MAAM,WAAW,IAAI;AAE1C,QAAM,gBAAgB,mBAAW,cAAc,MAAM,KAAK,UAAU;AACpE,QAAM,gBAAgB,gBAAgB,MAAM,UAAU;AACtD,QAAM,MAAM,IAAI,IAAI,GAAG,qBAAqB,GAAG,aAAa,EAAE;AAE9D,QAAM,MAAM,MAAM,MAAM,IAAI,SAAS,GAAG;AAAA,IACtC,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,eAAe,UAAU,WAAW;AAAA,IACtC;AAAA,IACA,MAAM,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAAA,EAC9C,CAAC;AAED,MAAI,CAAC,IAAI,IAAI;AACX,UAAM,IAAI,MAAM,sCAAsC;AAAA,EACxD;AACF","sourcesContent":["import log from 'loglevel';\n\nimport { Env, getEnvUrls } from '../../sdk/env';\nimport encryption from './encryption';\nimport type {\n UserStoragePathWithFeatureAndKey,\n UserStoragePathWithFeatureOnly,\n} from './schema';\nimport { createEntryPath } from './schema';\n\nconst ENV_URLS = getEnvUrls(Env.PRD);\n\nexport const USER_STORAGE_API: string = ENV_URLS.userStorageApiUrl;\nexport const USER_STORAGE_ENDPOINT = `${USER_STORAGE_API}/api/v1/userstorage`;\n\n/**\n * This is the Server Response shape for a feature entry.\n */\nexport type GetUserStorageResponse = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n HashedKey: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n Data: string;\n};\n\nexport type GetUserStorageAllFeatureEntriesResponse = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n HashedKey: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n Data: string;\n}[];\n\nexport type UserStorageBaseOptions = {\n bearerToken: string;\n storageKey: string;\n};\n\nexport type UserStorageOptions = UserStorageBaseOptions & {\n path: UserStoragePathWithFeatureAndKey;\n};\n\nexport type UserStorageAllFeatureEntriesOptions = UserStorageBaseOptions & {\n path: UserStoragePathWithFeatureOnly;\n};\n\n/**\n * User Storage Service - Get Storage Entry.\n *\n * @param opts - User Storage Options\n * @returns The storage entry, or null if fails to find entry\n */\nexport async function getUserStorage(\n opts: UserStorageOptions,\n): Promise<string | null> {\n try {\n const { bearerToken, path, storageKey } = opts;\n\n const encryptedPath = createEntryPath(path, storageKey);\n const url = new URL(`${USER_STORAGE_ENDPOINT}${encryptedPath}`);\n\n const userStorageResponse = await fetch(url.toString(), {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${bearerToken}`,\n },\n });\n\n // Acceptable error - since indicates entry does not exist.\n if (userStorageResponse.status === 404) {\n return null;\n }\n\n if (userStorageResponse.status !== 200) {\n throw new Error('Unable to get User Storage');\n }\n\n const userStorage: GetUserStorageResponse | null =\n await userStorageResponse.json();\n const encryptedData = userStorage?.Data ?? null;\n\n if (!encryptedData) {\n return null;\n }\n\n const decryptedData = encryption.decryptString(\n encryptedData,\n opts.storageKey,\n );\n\n return decryptedData;\n } catch (e) {\n log.error('Failed to get user storage', e);\n return null;\n }\n}\n\n/**\n * User Storage Service - Get all storage entries for a specific feature.\n *\n * @param opts - User Storage Options\n * @returns The storage entry, or null if fails to find entry\n */\nexport async function getUserStorageAllFeatureEntries(\n opts: UserStorageAllFeatureEntriesOptions,\n): Promise<string[] | null> {\n try {\n const { bearerToken, path } = opts;\n const url = new URL(`${USER_STORAGE_ENDPOINT}/${path}`);\n\n const userStorageResponse = await fetch(url.toString(), {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${bearerToken}`,\n },\n });\n\n // Acceptable error - since indicates feature does not exist.\n if (userStorageResponse.status === 404) {\n return null;\n }\n\n if (userStorageResponse.status !== 200) {\n throw new Error('Unable to get User Storage');\n }\n\n const userStorage: GetUserStorageAllFeatureEntriesResponse | null =\n await userStorageResponse.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, opts.storageKey);\n });\n\n return decryptedData;\n } catch (e) {\n log.error('Failed to get user storage', e);\n return null;\n }\n}\n\n/**\n * User Storage Service - Set Storage Entry.\n *\n * @param data - data to store\n * @param opts - storage options\n */\nexport async function upsertUserStorage(\n data: string,\n opts: UserStorageOptions,\n): Promise<void> {\n const { bearerToken, path, storageKey } = opts;\n\n const encryptedData = encryption.encryptString(data, opts.storageKey);\n const encryptedPath = createEntryPath(path, storageKey);\n const url = new URL(`${USER_STORAGE_ENDPOINT}${encryptedPath}`);\n\n const res = await fetch(url.toString(), {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${bearerToken}`,\n },\n body: JSON.stringify({ data: encryptedData }),\n });\n\n if (!res.ok) {\n throw new Error('user-storage - unable to upsert data');\n }\n}\n"]}
@@ -2,7 +2,7 @@ import {
2
2
  authenticate,
3
3
  authorizeOIDC,
4
4
  getNonce
5
- } from "./chunk-WB6MUIML.mjs";
5
+ } from "./chunk-YLURF2PF.mjs";
6
6
  import {
7
7
  getMetaMaskProviderEIP6963
8
8
  } from "./chunk-5XSXZTED.mjs";
@@ -130,4 +130,4 @@ createSrpLoginRawMessage_fn = function(nonce, publicKey) {
130
130
  export {
131
131
  SRPJwtBearerAuth
132
132
  };
133
- //# sourceMappingURL=chunk-DRD22DR5.mjs.map
133
+ //# sourceMappingURL=chunk-J7NSK6BO.mjs.map
@@ -0,0 +1,53 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/controllers/user-storage/accounts/constants.ts
2
+ var USER_STORAGE_VERSION = "1";
3
+ var USER_STORAGE_VERSION_KEY = "v";
4
+ var LOCALIZED_DEFAULT_ACCOUNT_NAMES = [
5
+ "Account",
6
+ "\u1218\u1208\u12EB",
7
+ "\u0627\u0644\u062D\u0633\u0627\u0628",
8
+ "\u041F\u0440\u043E\u0444\u0438\u043B",
9
+ "\u0985\u09CD\u09AF\u09BE\u0995\u09BE\u0989\u09A8\u09CD\u099F",
10
+ "Compte",
11
+ "\xDA\u010Det",
12
+ "Konto",
13
+ "\u039B\u03BF\u03B3\u03B1\u03C1\u03B9\u03B1\u03C3\u03BC\u03CC\u03C2",
14
+ "Cuenta",
15
+ "\u062D\u0633\u0627\u0628",
16
+ "Tili",
17
+ "\u0A8F\u0A95\u0ABE\u0A89\u0AA8\u0ACD\u0A9F",
18
+ "\u05D7\u05E9\u05D1\u05D5\u05DF",
19
+ "\u0905\u0915\u093E\u0909\u0902\u091F",
20
+ "\u0916\u093E\u0924\u093E",
21
+ "Ra\u010Dun",
22
+ "Kont",
23
+ "Fi\xF3k",
24
+ "Akun",
25
+ "\u30A2\u30AB\u30A6\u30F3\u30C8",
26
+ "\u0C96\u0CBE\u0CA4\u0CC6",
27
+ "\uACC4\uC815",
28
+ "Paskyra",
29
+ "Konts",
30
+ "\u0D05\u0D15\u0D4D\u0D15\u0D57\u0D23\u0D4D\u0D1F\u0D4D",
31
+ "\u0916\u093E\u0924\u0947",
32
+ "Akaun",
33
+ "Conta",
34
+ "Cont",
35
+ "\u0421\u0447\u0435\u0442",
36
+ "\u043D\u0430\u043B\u043E\u0433",
37
+ "Akaunti",
38
+ "\u0B95\u0BA3\u0B95\u0BCD\u0B95\u0BC1",
39
+ "\u0C16\u0C3E\u0C24\u0C3E",
40
+ "\u0E1A\u0E31\u0E0D\u0E0A\u0E35",
41
+ "Hesap",
42
+ "\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441",
43
+ "T\xE0i kho\u1EA3n",
44
+ "\u8D26\u6237",
45
+ "\u5E33\u6236"
46
+ ];
47
+
48
+
49
+
50
+
51
+
52
+ exports.USER_STORAGE_VERSION = USER_STORAGE_VERSION; exports.USER_STORAGE_VERSION_KEY = USER_STORAGE_VERSION_KEY; exports.LOCALIZED_DEFAULT_ACCOUNT_NAMES = LOCALIZED_DEFAULT_ACCOUNT_NAMES;
53
+ //# sourceMappingURL=chunk-JAQ5TPSZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/controllers/user-storage/accounts/constants.ts"],"names":[],"mappings":";AAAO,IAAM,uBAAuB;AAG7B,IAAM,2BAA0C;AAGhD,IAAM,kCAAkC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF","sourcesContent":["export const USER_STORAGE_VERSION = '1';\n\n// Force cast. We don't really care about the type here since we treat it as a unique symbol\nexport const USER_STORAGE_VERSION_KEY: unique symbol = 'v' as never;\n\n// We need this in order to know if an account is a default account or not when we do account syncing\nexport const LOCALIZED_DEFAULT_ACCOUNT_NAMES = [\n 'Account',\n 'መለያ',\n 'الحساب',\n 'Профил',\n 'অ্যাকাউন্ট',\n 'Compte',\n 'Účet',\n 'Konto',\n 'Λογαριασμός',\n 'Cuenta',\n 'حساب',\n 'Tili',\n 'એકાઉન્ટ',\n 'חשבון',\n 'अकाउंट',\n 'खाता',\n 'Račun',\n 'Kont',\n 'Fiók',\n 'Akun',\n 'アカウント',\n 'ಖಾತೆ',\n '계정',\n 'Paskyra',\n 'Konts',\n 'അക്കൗണ്ട്',\n 'खाते',\n 'Akaun',\n 'Conta',\n 'Cont',\n 'Счет',\n 'налог',\n 'Akaunti',\n 'கணக்கு',\n 'ఖాతా',\n 'บัญชี',\n 'Hesap',\n 'Обліковий запис',\n 'Tài khoản',\n '账户',\n '帳戶',\n] as const;\n"]}
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkXSSIP3PJjs = require('./chunk-XSSIP3PJ.js');
3
+ var _chunkQ5KTSMREjs = require('./chunk-Q5KTSMRE.js');
4
4
 
5
5
 
6
- var _chunkG4NU4KP7js = require('./chunk-G4NU4KP7.js');
6
+ var _chunkKIVBL6OMjs = require('./chunk-KIVBL6OM.js');
7
7
 
8
8
 
9
- var _chunkVD2IGTS3js = require('./chunk-VD2IGTS3.js');
9
+ var _chunk4ZGRRVMIjs = require('./chunk-4ZGRRVMI.js');
10
10
 
11
11
 
12
12
  var _chunkPBRUOBEQjs = require('./chunk-PBRUOBEQ.js');
@@ -20,17 +20,16 @@ var _chunkPQ5T4GHYjs = require('./chunk-PQ5T4GHY.js');
20
20
 
21
21
 
22
22
 
23
- var _chunkFUPEFLXBjs = require('./chunk-FUPEFLXB.js');
23
+ var _chunkZMQRPWJNjs = require('./chunk-ZMQRPWJN.js');
24
24
 
25
25
 
26
+ var _chunkT3FNDVE3js = require('./chunk-T3FNDVE3.js');
26
27
 
27
- var _chunkP4DUDLMYjs = require('./chunk-P4DUDLMY.js');
28
28
 
29
29
 
30
30
 
31
31
 
32
-
33
- var _chunkSMKTWM6Ijs = require('./chunk-SMKTWM6I.js');
32
+ var _chunkDF24ZX4Hjs = require('./chunk-DF24ZX4H.js');
34
33
 
35
34
 
36
35
 
@@ -48,27 +47,26 @@ var _chunkIGY2S5BCjs = require('./chunk-IGY2S5BC.js');
48
47
  var sdk_exports = {};
49
48
  _chunkIGY2S5BCjs.__export.call(void 0, sdk_exports, {
50
49
  AuthType: () => _chunkPBRUOBEQjs.AuthType,
51
- Encryption: () => _chunkP4DUDLMYjs.Encryption,
52
- Env: () => _chunkSMKTWM6Ijs.Env,
53
- JwtBearerAuth: () => _chunkXSSIP3PJjs.JwtBearerAuth,
50
+ Env: () => _chunkDF24ZX4Hjs.Env,
51
+ JwtBearerAuth: () => _chunkQ5KTSMREjs.JwtBearerAuth,
54
52
  MESSAGE_SIGNING_SNAP: () => _chunkPQ5T4GHYjs.MESSAGE_SIGNING_SNAP,
55
53
  NonceRetrievalError: () => _chunkMBTBE4P5js.NonceRetrievalError,
56
54
  NotFoundError: () => _chunkMBTBE4P5js.NotFoundError,
57
55
  PairError: () => _chunkMBTBE4P5js.PairError,
58
- Platform: () => _chunkSMKTWM6Ijs.Platform,
59
- SIWEJwtBearerAuth: () => _chunkG4NU4KP7js.SIWEJwtBearerAuth,
56
+ Platform: () => _chunkDF24ZX4Hjs.Platform,
57
+ SIWEJwtBearerAuth: () => _chunkKIVBL6OMjs.SIWEJwtBearerAuth,
60
58
  SNAP_ORIGIN: () => _chunkPQ5T4GHYjs.SNAP_ORIGIN,
61
- SRPJwtBearerAuth: () => _chunkVD2IGTS3js.SRPJwtBearerAuth,
62
- STORAGE_URL: () => _chunkFUPEFLXBjs.STORAGE_URL,
59
+ SRPJwtBearerAuth: () => _chunk4ZGRRVMIjs.SRPJwtBearerAuth,
60
+ STORAGE_URL: () => _chunkZMQRPWJNjs.STORAGE_URL,
63
61
  SignInError: () => _chunkMBTBE4P5js.SignInError,
64
62
  UnsupportedAuthTypeError: () => _chunkMBTBE4P5js.UnsupportedAuthTypeError,
65
- UserStorage: () => _chunkFUPEFLXBjs.UserStorage,
63
+ UserStorage: () => _chunkZMQRPWJNjs.UserStorage,
66
64
  UserStorageError: () => _chunkMBTBE4P5js.UserStorageError,
67
65
  ValidationError: () => _chunkMBTBE4P5js.ValidationError,
68
66
  connectSnap: () => _chunkPQ5T4GHYjs.connectSnap,
69
- createSHA256Hash: () => _chunkP4DUDLMYjs.createSHA256Hash,
70
- getEnvUrls: () => _chunkSMKTWM6Ijs.getEnvUrls,
71
- getOidcClientId: () => _chunkSMKTWM6Ijs.getOidcClientId,
67
+ createSHA256Hash: () => _chunkT3FNDVE3js.createSHA256Hash,
68
+ getEnvUrls: () => _chunkDF24ZX4Hjs.getEnvUrls,
69
+ getOidcClientId: () => _chunkDF24ZX4Hjs.getOidcClientId,
72
70
  getSnap: () => _chunkPQ5T4GHYjs.getSnap,
73
71
  getSnaps: () => _chunkPQ5T4GHYjs.getSnaps
74
72
  });
@@ -76,4 +74,4 @@ _chunkIGY2S5BCjs.__export.call(void 0, sdk_exports, {
76
74
 
77
75
 
78
76
  exports.sdk_exports = sdk_exports;
79
- //# sourceMappingURL=chunk-PSR2V3R4.js.map
77
+ //# sourceMappingURL=chunk-JJ5BDCKD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sdk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './authentication';\nexport * from './user-storage';\nexport * from './env';\nexport * from './errors';\nexport * from './encryption';\nexport * from './utils/messaging-signing-snap-requests';\n"]}
@@ -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"]}
@@ -0,0 +1,11 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkT3FNDVE3js = require('./chunk-T3FNDVE3.js');
4
+
5
+ // src/sdk/encryption.ts
6
+ var encryption_default2 = _chunkT3FNDVE3js.encryption_default;
7
+
8
+
9
+
10
+ exports.encryption_default = encryption_default2;
11
+ //# sourceMappingURL=chunk-LDYHGAP4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sdk/encryption.ts"],"names":["encryption_default"],"mappings":";;;;;AAGA,IAAOA,sBAAQ","sourcesContent":["import encryption from '../controllers/user-storage/encryption/encryption';\n\nexport * from '../controllers/user-storage/encryption/encryption';\nexport default encryption;\n"]}
@@ -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