@metamask/profile-sync-controller 0.0.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/dist/chunk-2XGRQBXI.mjs +70 -0
  3. package/dist/chunk-2XGRQBXI.mjs.map +1 -0
  4. package/dist/chunk-32HAX3MW.mjs +224 -0
  5. package/dist/chunk-32HAX3MW.mjs.map +1 -0
  6. package/dist/chunk-5SXXO4MV.js +70 -0
  7. package/dist/chunk-5SXXO4MV.js.map +1 -0
  8. package/dist/chunk-5TOWF6UW.mjs +11 -0
  9. package/dist/chunk-5TOWF6UW.mjs.map +1 -0
  10. package/dist/chunk-6P6CUKKI.mjs +30 -0
  11. package/dist/chunk-6P6CUKKI.mjs.map +1 -0
  12. package/dist/chunk-76VRE4BI.mjs +18 -0
  13. package/dist/chunk-76VRE4BI.mjs.map +1 -0
  14. package/dist/chunk-AARMY5TW.mjs +86 -0
  15. package/dist/chunk-AARMY5TW.mjs.map +1 -0
  16. package/dist/chunk-AK7OTIWA.js +11 -0
  17. package/dist/chunk-AK7OTIWA.js.map +1 -0
  18. package/dist/chunk-AUFUOKJW.mjs +25 -0
  19. package/dist/chunk-AUFUOKJW.mjs.map +1 -0
  20. package/dist/{chunk-OF3TQWGX.js → chunk-AVOOINGJ.js} +34 -34
  21. package/dist/chunk-AVOOINGJ.js.map +1 -0
  22. package/dist/{chunk-CZ7YK35S.mjs → chunk-AXWK4Y23.mjs} +7 -5
  23. package/dist/{chunk-CZ7YK35S.mjs.map → chunk-AXWK4Y23.mjs.map} +1 -1
  24. package/dist/{chunk-UMKBFFZ5.mjs → chunk-B5DBQDB3.mjs} +13 -4
  25. package/dist/chunk-B5DBQDB3.mjs.map +1 -0
  26. package/dist/chunk-B6CSNLGE.js +25 -0
  27. package/dist/chunk-B6CSNLGE.js.map +1 -0
  28. package/dist/{chunk-NRH6O4QZ.js → chunk-BOET676P.js} +45 -14
  29. package/dist/chunk-BOET676P.js.map +1 -0
  30. package/dist/{chunk-2FZSWVHT.mjs → chunk-CAIIVJAO.mjs} +1 -1
  31. package/dist/chunk-CAIIVJAO.mjs.map +1 -0
  32. package/dist/chunk-ELHJSRS2.js +98 -0
  33. package/dist/chunk-ELHJSRS2.js.map +1 -0
  34. package/dist/chunk-FCT2LIGH.mjs +106 -0
  35. package/dist/chunk-FCT2LIGH.mjs.map +1 -0
  36. package/dist/chunk-FQ5SDMRE.mjs +77 -0
  37. package/dist/chunk-FQ5SDMRE.mjs.map +1 -0
  38. package/dist/chunk-H25EBXG5.mjs +58 -0
  39. package/dist/chunk-H25EBXG5.mjs.map +1 -0
  40. package/dist/chunk-H4TDS65R.js +81 -0
  41. package/dist/chunk-H4TDS65R.js.map +1 -0
  42. package/dist/{chunk-Z4BLTVTB.js → chunk-IGY2S5BC.js} +9 -3
  43. package/dist/chunk-IPSBQ3MS.js +30 -0
  44. package/dist/chunk-IPSBQ3MS.js.map +1 -0
  45. package/dist/{chunk-4NGEEDGV.mjs → chunk-JLDFMYAH.mjs} +9 -9
  46. package/dist/chunk-JLDFMYAH.mjs.map +1 -0
  47. package/dist/chunk-K5UKU454.mjs +158 -0
  48. package/dist/chunk-K5UKU454.mjs.map +1 -0
  49. package/dist/chunk-KBCXN3YW.mjs +98 -0
  50. package/dist/chunk-KBCXN3YW.mjs.map +1 -0
  51. package/dist/chunk-LSVRA3X2.mjs +81 -0
  52. package/dist/chunk-LSVRA3X2.mjs.map +1 -0
  53. package/dist/{chunk-GQLHSQGZ.js → chunk-MBTBE4P5.js} +9 -2
  54. package/dist/chunk-MBTBE4P5.js.map +1 -0
  55. package/dist/chunk-NLHLVVOO.js +106 -0
  56. package/dist/chunk-NLHLVVOO.js.map +1 -0
  57. package/dist/{chunk-VZXD5DCQ.js → chunk-P4DUDLMY.js} +36 -27
  58. package/dist/chunk-P4DUDLMY.js.map +1 -0
  59. package/dist/{chunk-6X6I3HZU.js → chunk-P52TG263.js} +28 -26
  60. package/dist/chunk-P52TG263.js.map +1 -0
  61. package/dist/{chunk-CFST6GWE.js → chunk-PBRUOBEQ.js} +1 -1
  62. package/dist/chunk-PBRUOBEQ.js.map +1 -0
  63. package/dist/chunk-PCOIRDTO.js +18 -0
  64. package/dist/chunk-PCOIRDTO.js.map +1 -0
  65. package/dist/chunk-PTR4DAX6.js +79 -0
  66. package/dist/chunk-PTR4DAX6.js.map +1 -0
  67. package/dist/chunk-Q5WIUNX5.js +126 -0
  68. package/dist/chunk-Q5WIUNX5.js.map +1 -0
  69. package/dist/chunk-RX5R6BUI.js +86 -0
  70. package/dist/chunk-RX5R6BUI.js.map +1 -0
  71. package/dist/chunk-SMKTWM6I.js +77 -0
  72. package/dist/chunk-SMKTWM6I.js.map +1 -0
  73. package/dist/chunk-T3FNDVE3.js +158 -0
  74. package/dist/chunk-T3FNDVE3.js.map +1 -0
  75. package/dist/{chunk-BHVT2QEA.mjs → chunk-TFFQFIJV.mjs} +8 -1
  76. package/dist/chunk-TFFQFIJV.mjs.map +1 -0
  77. package/dist/chunk-TGFMKARH.mjs +274 -0
  78. package/dist/chunk-TGFMKARH.mjs.map +1 -0
  79. package/dist/{chunk-XUI43LEZ.mjs → chunk-U5UIDVOO.mjs} +7 -1
  80. package/dist/chunk-UAXWZN5J.js +58 -0
  81. package/dist/chunk-UAXWZN5J.js.map +1 -0
  82. package/dist/{chunk-CYGZ4WLJ.mjs → chunk-WB6MUIML.mjs} +36 -5
  83. package/dist/chunk-WB6MUIML.mjs.map +1 -0
  84. package/dist/chunk-WJCKQLKK.mjs +79 -0
  85. package/dist/chunk-WJCKQLKK.mjs.map +1 -0
  86. package/dist/{chunk-VXPVURGH.mjs → chunk-Y46NMA3V.mjs} +9 -9
  87. package/dist/chunk-Y46NMA3V.mjs.map +1 -0
  88. package/dist/chunk-YASNOFBV.js +274 -0
  89. package/dist/chunk-YASNOFBV.js.map +1 -0
  90. package/dist/chunk-YUXN5GSW.js +224 -0
  91. package/dist/chunk-YUXN5GSW.js.map +1 -0
  92. package/dist/controllers/authentication/AuthenticationController.js +24 -0
  93. package/dist/controllers/authentication/AuthenticationController.mjs +24 -0
  94. package/dist/controllers/authentication/auth-snap-requests.js +10 -0
  95. package/dist/controllers/authentication/auth-snap-requests.mjs +10 -0
  96. package/dist/controllers/authentication/index.js +28 -0
  97. package/dist/controllers/authentication/index.js.map +1 -0
  98. package/dist/controllers/authentication/index.mjs +28 -0
  99. package/dist/controllers/authentication/index.mjs.map +1 -0
  100. package/dist/controllers/authentication/services.js +32 -0
  101. package/dist/controllers/authentication/services.js.map +1 -0
  102. package/dist/controllers/authentication/services.mjs +32 -0
  103. package/dist/controllers/authentication/services.mjs.map +1 -0
  104. package/dist/controllers/index.js +34 -0
  105. package/dist/controllers/index.js.map +1 -0
  106. package/dist/controllers/index.mjs +34 -0
  107. package/dist/controllers/index.mjs.map +1 -0
  108. package/dist/controllers/user-storage/UserStorageController.js +29 -0
  109. package/dist/controllers/user-storage/UserStorageController.js.map +1 -0
  110. package/dist/controllers/user-storage/UserStorageController.mjs +29 -0
  111. package/dist/controllers/user-storage/UserStorageController.mjs.map +1 -0
  112. package/dist/controllers/user-storage/encryption/cache.js +13 -0
  113. package/dist/controllers/user-storage/encryption/cache.js.map +1 -0
  114. package/dist/controllers/user-storage/encryption/cache.mjs +13 -0
  115. package/dist/controllers/user-storage/encryption/cache.mjs.map +1 -0
  116. package/dist/controllers/user-storage/encryption/encryption.js +12 -0
  117. package/dist/controllers/user-storage/encryption/encryption.js.map +1 -0
  118. package/dist/controllers/user-storage/encryption/encryption.mjs +12 -0
  119. package/dist/controllers/user-storage/encryption/encryption.mjs.map +1 -0
  120. package/dist/controllers/user-storage/encryption/index.js +16 -0
  121. package/dist/controllers/user-storage/encryption/index.js.map +1 -0
  122. package/dist/controllers/user-storage/encryption/index.mjs +16 -0
  123. package/dist/controllers/user-storage/encryption/index.mjs.map +1 -0
  124. package/dist/controllers/user-storage/encryption/utils.js +12 -0
  125. package/dist/controllers/user-storage/encryption/utils.js.map +1 -0
  126. package/dist/controllers/user-storage/encryption/utils.mjs +12 -0
  127. package/dist/controllers/user-storage/encryption/utils.mjs.map +1 -0
  128. package/dist/controllers/user-storage/index.js +38 -0
  129. package/dist/controllers/user-storage/index.js.map +1 -0
  130. package/dist/controllers/user-storage/index.mjs +38 -0
  131. package/dist/controllers/user-storage/index.mjs.map +1 -0
  132. package/dist/controllers/user-storage/schema.js +14 -0
  133. package/dist/controllers/user-storage/schema.js.map +1 -0
  134. package/dist/controllers/user-storage/schema.mjs +14 -0
  135. package/dist/controllers/user-storage/schema.mjs.map +1 -0
  136. package/dist/controllers/user-storage/services.js +31 -0
  137. package/dist/controllers/user-storage/services.js.map +1 -0
  138. package/dist/controllers/user-storage/services.mjs +31 -0
  139. package/dist/controllers/user-storage/services.mjs.map +1 -0
  140. package/dist/index.js +31 -62
  141. package/dist/index.mjs +32 -63
  142. package/dist/sdk/authentication-jwt-bearer/flow-siwe.js +7 -8
  143. package/dist/sdk/authentication-jwt-bearer/flow-siwe.mjs +6 -7
  144. package/dist/sdk/authentication-jwt-bearer/flow-srp.js +7 -8
  145. package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs +6 -7
  146. package/dist/sdk/authentication-jwt-bearer/services.js +10 -6
  147. package/dist/sdk/authentication-jwt-bearer/services.mjs +11 -7
  148. package/dist/sdk/authentication-jwt-bearer/types.js +3 -3
  149. package/dist/sdk/authentication-jwt-bearer/types.mjs +2 -2
  150. package/dist/sdk/authentication.js +9 -10
  151. package/dist/sdk/authentication.mjs +8 -9
  152. package/dist/sdk/encryption.js +5 -3
  153. package/dist/sdk/encryption.mjs +4 -2
  154. package/dist/sdk/env.js +5 -3
  155. package/dist/sdk/env.mjs +4 -2
  156. package/dist/sdk/errors.js +5 -3
  157. package/dist/sdk/errors.mjs +4 -2
  158. package/dist/sdk/index.js +18 -13
  159. package/dist/sdk/index.mjs +17 -12
  160. package/dist/sdk/user-storage.js +6 -6
  161. package/dist/sdk/user-storage.mjs +5 -5
  162. package/dist/sdk/utils/eip-6963-metamask-provider.js +1 -1
  163. package/dist/sdk/utils/eip-6963-metamask-provider.mjs +1 -1
  164. package/dist/sdk/utils/messaging-signing-snap-requests.js +1 -1
  165. package/dist/sdk/utils/messaging-signing-snap-requests.mjs +1 -1
  166. package/dist/tsconfig.build.tsbuildinfo +1 -1
  167. package/dist/types/controllers/authentication/AuthenticationController.d.ts +74 -0
  168. package/dist/types/controllers/authentication/AuthenticationController.d.ts.map +1 -0
  169. package/dist/types/controllers/authentication/__fixtures__/index.d.ts +2 -0
  170. package/dist/types/controllers/authentication/__fixtures__/index.d.ts.map +1 -0
  171. package/dist/types/controllers/authentication/__fixtures__/mockResponses.d.ts +23 -0
  172. package/dist/types/controllers/authentication/__fixtures__/mockResponses.d.ts.map +1 -0
  173. package/dist/types/controllers/authentication/__fixtures__/mockServices.d.ts +10 -0
  174. package/dist/types/controllers/authentication/__fixtures__/mockServices.d.ts.map +1 -0
  175. package/dist/types/controllers/authentication/auth-snap-requests.d.ts +17 -0
  176. package/dist/types/controllers/authentication/auth-snap-requests.d.ts.map +1 -0
  177. package/dist/types/controllers/authentication/index.d.ts +5 -0
  178. package/dist/types/controllers/authentication/index.d.ts.map +1 -0
  179. package/dist/types/controllers/authentication/services.d.ts +69 -0
  180. package/dist/types/controllers/authentication/services.d.ts.map +1 -0
  181. package/dist/types/controllers/index.d.ts +3 -0
  182. package/dist/types/controllers/index.d.ts.map +1 -0
  183. package/dist/types/controllers/user-storage/UserStorageController.d.ts +85 -0
  184. package/dist/types/controllers/user-storage/UserStorageController.d.ts.map +1 -0
  185. package/dist/types/controllers/user-storage/__fixtures__/index.d.ts +3 -0
  186. package/dist/types/controllers/user-storage/__fixtures__/index.d.ts.map +1 -0
  187. package/dist/types/controllers/user-storage/__fixtures__/mockResponses.d.ts +13 -0
  188. package/dist/types/controllers/user-storage/__fixtures__/mockResponses.d.ts.map +1 -0
  189. package/dist/types/controllers/user-storage/__fixtures__/mockServices.d.ts +9 -0
  190. package/dist/types/controllers/user-storage/__fixtures__/mockServices.d.ts.map +1 -0
  191. package/dist/types/controllers/user-storage/__fixtures__/mockStorage.d.ts +5 -0
  192. package/dist/types/controllers/user-storage/__fixtures__/mockStorage.d.ts.map +1 -0
  193. package/dist/types/controllers/user-storage/encryption/cache.d.ts +31 -0
  194. package/dist/types/controllers/user-storage/encryption/cache.d.ts.map +1 -0
  195. package/dist/types/controllers/user-storage/encryption/encryption.d.ts +26 -0
  196. package/dist/types/controllers/user-storage/encryption/encryption.d.ts.map +1 -0
  197. package/dist/types/controllers/user-storage/encryption/index.d.ts +5 -0
  198. package/dist/types/controllers/user-storage/encryption/index.d.ts.map +1 -0
  199. package/dist/types/controllers/user-storage/encryption/utils.d.ts +4 -0
  200. package/dist/types/controllers/user-storage/encryption/utils.d.ts.map +1 -0
  201. package/dist/types/controllers/user-storage/index.d.ts +6 -0
  202. package/dist/types/controllers/user-storage/index.d.ts.map +1 -0
  203. package/dist/types/controllers/user-storage/schema.d.ts +22 -0
  204. package/dist/types/controllers/user-storage/schema.d.ts.map +1 -0
  205. package/dist/types/controllers/user-storage/services.d.ts +30 -0
  206. package/dist/types/controllers/user-storage/services.d.ts.map +1 -0
  207. package/dist/types/index.d.ts +3 -1
  208. package/dist/types/index.d.ts.map +1 -1
  209. package/dist/types/sdk/__fixtures__/mock-auth.d.ts +3 -0
  210. package/dist/types/sdk/__fixtures__/mock-auth.d.ts.map +1 -1
  211. package/dist/types/sdk/__fixtures__/mock-userstorage.d.ts.map +1 -1
  212. package/dist/types/sdk/__fixtures__/test-utils.d.ts.map +1 -1
  213. package/dist/types/sdk/authentication-jwt-bearer/flow-siwe.d.ts.map +1 -1
  214. package/dist/types/sdk/authentication-jwt-bearer/flow-srp.d.ts.map +1 -1
  215. package/dist/types/sdk/authentication-jwt-bearer/services.d.ts +20 -2
  216. package/dist/types/sdk/authentication-jwt-bearer/services.d.ts.map +1 -1
  217. package/dist/types/sdk/authentication-jwt-bearer/types.d.ts +9 -2
  218. package/dist/types/sdk/authentication-jwt-bearer/types.d.ts.map +1 -1
  219. package/dist/types/sdk/authentication.d.ts +2 -1
  220. package/dist/types/sdk/authentication.d.ts.map +1 -1
  221. package/dist/types/sdk/encryption.d.ts +2 -2
  222. package/dist/types/sdk/encryption.d.ts.map +1 -1
  223. package/dist/types/sdk/env.d.ts +9 -2
  224. package/dist/types/sdk/env.d.ts.map +1 -1
  225. package/dist/types/sdk/errors.d.ts +3 -0
  226. package/dist/types/sdk/errors.d.ts.map +1 -1
  227. package/dist/types/sdk/user-storage.d.ts.map +1 -1
  228. package/package.json +15 -2
  229. package/dist/chunk-2FZSWVHT.mjs.map +0 -1
  230. package/dist/chunk-4NGEEDGV.mjs.map +0 -1
  231. package/dist/chunk-6X6I3HZU.js.map +0 -1
  232. package/dist/chunk-BARZBXO7.js +0 -7
  233. package/dist/chunk-BARZBXO7.js.map +0 -1
  234. package/dist/chunk-BHVT2QEA.mjs.map +0 -1
  235. package/dist/chunk-CFST6GWE.js.map +0 -1
  236. package/dist/chunk-CYGZ4WLJ.mjs.map +0 -1
  237. package/dist/chunk-DEATIRII.js +0 -1
  238. package/dist/chunk-GQLHSQGZ.js.map +0 -1
  239. package/dist/chunk-GVMIXMYB.mjs +0 -67
  240. package/dist/chunk-GVMIXMYB.mjs.map +0 -1
  241. package/dist/chunk-KHFPE566.js +0 -49
  242. package/dist/chunk-KHFPE566.js.map +0 -1
  243. package/dist/chunk-KKRIOEXD.mjs +0 -7
  244. package/dist/chunk-KKRIOEXD.mjs.map +0 -1
  245. package/dist/chunk-MKJYSWME.mjs +0 -1
  246. package/dist/chunk-NRH6O4QZ.js.map +0 -1
  247. package/dist/chunk-OF3TQWGX.js.map +0 -1
  248. package/dist/chunk-UMKBFFZ5.mjs.map +0 -1
  249. package/dist/chunk-UVJVONBF.js +0 -126
  250. package/dist/chunk-UVJVONBF.js.map +0 -1
  251. package/dist/chunk-VHUU4HEY.js +0 -67
  252. package/dist/chunk-VHUU4HEY.js.map +0 -1
  253. package/dist/chunk-VXPVURGH.mjs.map +0 -1
  254. package/dist/chunk-VZXD5DCQ.js.map +0 -1
  255. package/dist/chunk-WJRV2JCX.mjs +0 -49
  256. package/dist/chunk-WJRV2JCX.mjs.map +0 -1
  257. package/dist/sdk/authentication-jwt-bearer/constants.js +0 -8
  258. package/dist/sdk/authentication-jwt-bearer/constants.mjs +0 -8
  259. package/dist/types/sdk/authentication-jwt-bearer/constants.d.ts +0 -2
  260. package/dist/types/sdk/authentication-jwt-bearer/constants.d.ts.map +0 -1
  261. /package/dist/{chunk-DEATIRII.js.map → chunk-IGY2S5BC.js.map} +0 -0
  262. /package/dist/{chunk-MKJYSWME.mjs.map → chunk-U5UIDVOO.mjs.map} +0 -0
  263. /package/dist/{chunk-Z4BLTVTB.js.map → controllers/authentication/AuthenticationController.js.map} +0 -0
  264. /package/dist/{chunk-XUI43LEZ.mjs.map → controllers/authentication/AuthenticationController.mjs.map} +0 -0
  265. /package/dist/{sdk/authentication-jwt-bearer/constants.js.map → controllers/authentication/auth-snap-requests.js.map} +0 -0
  266. /package/dist/{sdk/authentication-jwt-bearer/constants.mjs.map → controllers/authentication/auth-snap-requests.mjs.map} +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkZ4BLTVTBjs = require('./chunk-Z4BLTVTB.js');
5
+ var _chunkIGY2S5BCjs = require('./chunk-IGY2S5BC.js');
6
6
 
7
7
  // src/sdk/encryption.ts
8
8
  var _aes = require('@noble/ciphers/aes');
@@ -23,24 +23,32 @@ function bytesToUtf8(byteArray) {
23
23
  var _ALGORITHM_NONCE_SIZE, _ALGORITHM_KEY_SIZE, _PBKDF2_SALT_SIZE, _PBKDF2_ITERATIONS, _encryptStringV1, encryptStringV1_fn, _decryptStringV1, decryptStringV1_fn, _encrypt, encrypt_fn, _decrypt, decrypt_fn;
24
24
  var EncryptorDecryptor = class {
25
25
  constructor() {
26
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _encryptStringV1);
27
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _decryptStringV1);
28
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _encrypt);
29
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _decrypt);
30
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _ALGORITHM_NONCE_SIZE, 12);
26
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _encryptStringV1);
27
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _decryptStringV1);
28
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _encrypt);
29
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _decrypt);
30
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
31
+ // eslint-disable-next-line @typescript-eslint/naming-convention
32
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _ALGORITHM_NONCE_SIZE, 12);
31
33
  // 12 bytes
32
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _ALGORITHM_KEY_SIZE, 16);
34
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
35
+ // eslint-disable-next-line @typescript-eslint/naming-convention
36
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _ALGORITHM_KEY_SIZE, 16);
33
37
  // 16 bytes
34
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _PBKDF2_SALT_SIZE, 16);
38
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
39
+ // eslint-disable-next-line @typescript-eslint/naming-convention
40
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _PBKDF2_SALT_SIZE, 16);
35
41
  // 16 bytes
36
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _PBKDF2_ITERATIONS, 9e5);
42
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
43
+ // eslint-disable-next-line @typescript-eslint/naming-convention
44
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _PBKDF2_ITERATIONS, 9e5);
37
45
  }
38
46
  encryptString(plaintext, password) {
39
47
  try {
40
48
  if (plaintext.trim().length === 0) {
41
49
  throw new Error("No plain text provided");
42
50
  }
43
- return _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _encryptStringV1, encryptStringV1_fn).call(this, plaintext, password);
51
+ return _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _encryptStringV1, encryptStringV1_fn).call(this, plaintext, password);
44
52
  } catch (e) {
45
53
  const errorMessage = e instanceof Error ? e.message : String(e);
46
54
  throw new Error(`Unable to encrypt string - ${errorMessage}`);
@@ -50,7 +58,7 @@ var EncryptorDecryptor = class {
50
58
  try {
51
59
  const encryptedData = JSON.parse(encryptedDataStr);
52
60
  if (encryptedData.v === "1") {
53
- return _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _decryptStringV1, decryptStringV1_fn).call(this, encryptedData, password);
61
+ return _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _decryptStringV1, decryptStringV1_fn).call(this, encryptedData, password);
54
62
  }
55
63
  throw new Error(
56
64
  `Unsupported encrypted data payload - ${JSON.stringify(encryptedData)}`
@@ -67,21 +75,21 @@ _PBKDF2_SALT_SIZE = new WeakMap();
67
75
  _PBKDF2_ITERATIONS = new WeakMap();
68
76
  _encryptStringV1 = new WeakSet();
69
77
  encryptStringV1_fn = function(plaintext, password) {
70
- const salt = _webcrypto.randomBytes.call(void 0, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE));
78
+ const salt = _webcrypto.randomBytes.call(void 0, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE));
71
79
  const key = _pbkdf2.pbkdf2.call(void 0, _sha256.sha256, password, salt, {
72
- c: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _PBKDF2_ITERATIONS),
73
- dkLen: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _ALGORITHM_KEY_SIZE)
80
+ c: _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _PBKDF2_ITERATIONS),
81
+ dkLen: _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _ALGORITHM_KEY_SIZE)
74
82
  });
75
83
  const plaintextRaw = _utils.utf8ToBytes.call(void 0, plaintext);
76
84
  const ciphertextAndNonceAndSalt = _utils.concatBytes.call(void 0,
77
85
  salt,
78
- _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _encrypt, encrypt_fn).call(this, plaintextRaw, key)
86
+ _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _encrypt, encrypt_fn).call(this, plaintextRaw, key)
79
87
  );
80
88
  const encryptedData = byteArrayToBase64(ciphertextAndNonceAndSalt);
81
89
  const encryptedPayload = {
82
90
  v: "1",
83
91
  d: encryptedData,
84
- iterations: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _PBKDF2_ITERATIONS)
92
+ iterations: _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _PBKDF2_ITERATIONS)
85
93
  };
86
94
  return JSON.stringify(encryptedPayload);
87
95
  };
@@ -91,34 +99,34 @@ decryptStringV1_fn = function(data, password) {
91
99
  const ciphertextAndNonceAndSalt = base64ToByteArray(
92
100
  base64CiphertextAndNonceAndSalt
93
101
  );
94
- const salt = ciphertextAndNonceAndSalt.slice(0, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE));
102
+ const salt = ciphertextAndNonceAndSalt.slice(0, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE));
95
103
  const ciphertextAndNonce = ciphertextAndNonceAndSalt.slice(
96
- _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE),
104
+ _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE),
97
105
  ciphertextAndNonceAndSalt.length
98
106
  );
99
107
  const key = _pbkdf2.pbkdf2.call(void 0, _sha256.sha256, password, salt, {
100
108
  c: iterations,
101
- dkLen: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _ALGORITHM_KEY_SIZE)
109
+ dkLen: _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _ALGORITHM_KEY_SIZE)
102
110
  });
103
- return bytesToUtf8(_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _decrypt, decrypt_fn).call(this, ciphertextAndNonce, key));
111
+ return bytesToUtf8(_chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _decrypt, decrypt_fn).call(this, ciphertextAndNonce, key));
104
112
  };
105
113
  _encrypt = new WeakSet();
106
114
  encrypt_fn = function(plaintext, key) {
107
- const nonce = _webcrypto.randomBytes.call(void 0, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE));
115
+ const nonce = _webcrypto.randomBytes.call(void 0, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE));
108
116
  const ciphertext = _aes.gcm.call(void 0, key, nonce).encrypt(plaintext);
109
117
  return _utils.concatBytes.call(void 0, nonce, ciphertext);
110
118
  };
111
119
  _decrypt = new WeakSet();
112
120
  decrypt_fn = function(ciphertextAndNonce, key) {
113
- const nonce = ciphertextAndNonce.slice(0, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE));
121
+ const nonce = ciphertextAndNonce.slice(0, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE));
114
122
  const ciphertext = ciphertextAndNonce.slice(
115
- _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE),
123
+ _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE),
116
124
  ciphertextAndNonce.length
117
125
  );
118
126
  return _aes.gcm.call(void 0, key, nonce).decrypt(ciphertext);
119
127
  };
120
- var encryption = new EncryptorDecryptor();
121
- var encryption_default = encryption;
128
+ var Encryption = new EncryptorDecryptor();
129
+ var encryption_default = Encryption;
122
130
  function createSHA256Hash(data) {
123
131
  const hashedData = _sha256.sha256.call(void 0, data);
124
132
  return _utils.bytesToHex.call(void 0, hashedData);
@@ -127,5 +135,6 @@ function createSHA256Hash(data) {
127
135
 
128
136
 
129
137
 
130
- exports.encryption_default = encryption_default; exports.createSHA256Hash = createSHA256Hash;
131
- //# sourceMappingURL=chunk-VZXD5DCQ.js.map
138
+
139
+ exports.Encryption = Encryption; exports.encryption_default = encryption_default; exports.createSHA256Hash = createSHA256Hash;
140
+ //# sourceMappingURL=chunk-P4DUDLMY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sdk/encryption.ts"],"names":[],"mappings":"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","sourcesContent":["import { gcm } from '@noble/ciphers/aes';\nimport { randomBytes } from '@noble/ciphers/webcrypto';\nimport { pbkdf2 } from '@noble/hashes/pbkdf2';\nimport { sha256 } from '@noble/hashes/sha256';\nimport { utf8ToBytes, concatBytes, bytesToHex } from '@noble/hashes/utils';\n\nexport type EncryptedPayload = {\n v: '1'; // version\n d: string; // data\n iterations: number;\n};\n\n/**\n * Converts Byte Array to Base64 String\n *\n * @param byteArray - array of bytes\n * @returns base64 string\n */\nfunction byteArrayToBase64(byteArray: Uint8Array): string {\n return Buffer.from(byteArray).toString('base64');\n}\n\n/**\n * Converts Base64 String into Byte Array\n *\n * @param base64 - base64 encoded string\n * @returns byte array\n */\nfunction base64ToByteArray(base64: string): Uint8Array {\n return new Uint8Array(Buffer.from(base64, 'base64'));\n}\n\n/**\n * Converts Bytes into UTF-8 Encoded String\n * @param byteArray - array of bytes\n * @returns uft-8 encoded string\n */\nfunction bytesToUtf8(byteArray: Uint8Array): string {\n const decoder = new TextDecoder('utf-8');\n return decoder.decode(byteArray);\n}\n\nclass EncryptorDecryptor {\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/naming-convention\n #ALGORITHM_NONCE_SIZE = 12; // 12 bytes\n\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/naming-convention\n #ALGORITHM_KEY_SIZE = 16; // 16 bytes\n\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/naming-convention\n #PBKDF2_SALT_SIZE = 16; // 16 bytes\n\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/naming-convention\n #PBKDF2_ITERATIONS = 900_000;\n\n encryptString(plaintext: string, password: string): string {\n try {\n if (plaintext.trim().length === 0) {\n throw new Error('No plain text provided');\n }\n\n return this.#encryptStringV1(plaintext, password);\n } catch (e) {\n /* istanbul ignore next */\n const errorMessage = e instanceof Error ? e.message : String(e);\n throw new Error(`Unable to encrypt string - ${errorMessage}`);\n }\n }\n\n decryptString(encryptedDataStr: string, password: string): string {\n try {\n const encryptedData: EncryptedPayload = JSON.parse(encryptedDataStr);\n if (encryptedData.v === '1') {\n return this.#decryptStringV1(encryptedData, password);\n }\n throw new Error(\n `Unsupported encrypted data payload - ${JSON.stringify(encryptedData)}`,\n );\n } catch (e) {\n /* istanbul ignore next */\n const errorMessage = e instanceof Error ? e.message : String(e);\n throw new Error(`Unable to decrypt string - ${errorMessage}`);\n }\n }\n\n #encryptStringV1(plaintext: string, password: string): string {\n const salt = randomBytes(this.#PBKDF2_SALT_SIZE);\n\n // Derive a key using PBKDF2.\n const key = pbkdf2(sha256, password, salt, {\n c: this.#PBKDF2_ITERATIONS,\n dkLen: this.#ALGORITHM_KEY_SIZE,\n });\n\n // Encrypt and prepend salt.\n const plaintextRaw = utf8ToBytes(plaintext);\n const ciphertextAndNonceAndSalt = concatBytes(\n salt,\n this.#encrypt(plaintextRaw, key),\n );\n\n // Convert to Base64\n const encryptedData = byteArrayToBase64(ciphertextAndNonceAndSalt);\n\n const encryptedPayload: EncryptedPayload = {\n v: '1',\n d: encryptedData,\n iterations: this.#PBKDF2_ITERATIONS,\n };\n\n return JSON.stringify(encryptedPayload);\n }\n\n #decryptStringV1(data: EncryptedPayload, password: string): string {\n const { iterations, d: base64CiphertextAndNonceAndSalt } = data;\n\n // Decode the base64.\n const ciphertextAndNonceAndSalt = base64ToByteArray(\n base64CiphertextAndNonceAndSalt,\n );\n\n // Create buffers of salt and ciphertextAndNonce.\n const salt = ciphertextAndNonceAndSalt.slice(0, this.#PBKDF2_SALT_SIZE);\n const ciphertextAndNonce = ciphertextAndNonceAndSalt.slice(\n this.#PBKDF2_SALT_SIZE,\n ciphertextAndNonceAndSalt.length,\n );\n\n // Derive the key using PBKDF2.\n const key = pbkdf2(sha256, password, salt, {\n c: iterations,\n dkLen: this.#ALGORITHM_KEY_SIZE,\n });\n\n // Decrypt and return result.\n return bytesToUtf8(this.#decrypt(ciphertextAndNonce, key));\n }\n\n #encrypt(plaintext: Uint8Array, key: Uint8Array): Uint8Array {\n const nonce = randomBytes(this.#ALGORITHM_NONCE_SIZE);\n\n // Encrypt and prepend nonce.\n const ciphertext = gcm(key, nonce).encrypt(plaintext);\n\n return concatBytes(nonce, ciphertext);\n }\n\n #decrypt(ciphertextAndNonce: Uint8Array, key: Uint8Array): Uint8Array {\n // Create buffers of nonce and ciphertext.\n const nonce = ciphertextAndNonce.slice(0, this.#ALGORITHM_NONCE_SIZE);\n const ciphertext = ciphertextAndNonce.slice(\n this.#ALGORITHM_NONCE_SIZE,\n ciphertextAndNonce.length,\n );\n\n // Decrypt and return result.\n return gcm(key, nonce).decrypt(ciphertext);\n }\n}\n\nexport const Encryption = new EncryptorDecryptor();\nexport default Encryption;\n\n/**\n * Create a SHA-256 hash from a given string.\n *\n * @param data - input\n * @returns hash\n */\nexport function createSHA256Hash(data: string): string {\n const hashedData = sha256(data);\n return bytesToHex(hashedData);\n}\n"]}
@@ -1,44 +1,46 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkVZXD5DCQjs = require('./chunk-VZXD5DCQ.js');
4
+ var _chunkP4DUDLMYjs = require('./chunk-P4DUDLMY.js');
5
5
 
6
6
 
7
- var _chunkKHFPE566js = require('./chunk-KHFPE566.js');
7
+ var _chunkSMKTWM6Ijs = require('./chunk-SMKTWM6I.js');
8
8
 
9
9
 
10
10
 
11
11
 
12
- var _chunkGQLHSQGZjs = require('./chunk-GQLHSQGZ.js');
12
+ var _chunkMBTBE4P5js = require('./chunk-MBTBE4P5.js');
13
13
 
14
14
 
15
15
 
16
- var _chunkZ4BLTVTBjs = require('./chunk-Z4BLTVTB.js');
16
+ var _chunkIGY2S5BCjs = require('./chunk-IGY2S5BC.js');
17
17
 
18
18
  // src/sdk/user-storage.ts
19
- var STORAGE_URL = (env, feature, entry) => `${_chunkKHFPE566js.getEnvUrls.call(void 0, env).userStorageApiUrl}/api/v1/userstorage/${feature}/${entry}`;
19
+ var STORAGE_URL = (env, feature, entry) => `${_chunkSMKTWM6Ijs.getEnvUrls.call(void 0, env).userStorageApiUrl}/api/v1/userstorage/${feature}/${entry}`;
20
20
  var _upsertUserStorage, upsertUserStorage_fn, _getUserStorage, getUserStorage_fn, _createEntryKey, createEntryKey_fn, _getAuthorizationHeader, getAuthorizationHeader_fn;
21
21
  var UserStorage = class {
22
22
  constructor(config, options) {
23
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _upsertUserStorage);
24
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _getUserStorage);
25
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _createEntryKey);
26
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _getAuthorizationHeader);
23
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _upsertUserStorage);
24
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _getUserStorage);
25
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _createEntryKey);
26
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
27
+ // eslint-disable-next-line @typescript-eslint/naming-convention
28
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _getAuthorizationHeader);
27
29
  this.env = config.env;
28
30
  this.config = config;
29
31
  this.options = options;
30
32
  }
31
33
  async setItem(feature, key, value) {
32
34
  if (!feature.trim() || !key.trim()) {
33
- throw new (0, _chunkGQLHSQGZjs.ValidationError)("feature or key cannot be empty strings");
35
+ throw new (0, _chunkMBTBE4P5js.ValidationError)("feature or key cannot be empty strings");
34
36
  }
35
- await _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _upsertUserStorage, upsertUserStorage_fn).call(this, feature, key, value);
37
+ await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _upsertUserStorage, upsertUserStorage_fn).call(this, feature, key, value);
36
38
  }
37
39
  async getItem(feature, key) {
38
40
  if (!feature.trim() || !key.trim()) {
39
- throw new (0, _chunkGQLHSQGZjs.ValidationError)("feature or key cannot be empty strings");
41
+ throw new (0, _chunkMBTBE4P5js.ValidationError)("feature or key cannot be empty strings");
40
42
  }
41
- return _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getUserStorage, getUserStorage_fn).call(this, feature, key);
43
+ return _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _getUserStorage, getUserStorage_fn).call(this, feature, key);
42
44
  }
43
45
  async getStorageKey() {
44
46
  const storageKey = await this.options.storage?.getStorageKey();
@@ -49,7 +51,7 @@ var UserStorage = class {
49
51
  const storageKeySignature = await this.config.auth.signMessage(
50
52
  `metamask:${userProfile.profileId}`
51
53
  );
52
- const hashedStorageKeySignature = _chunkVZXD5DCQjs.createSHA256Hash.call(void 0, storageKeySignature);
54
+ const hashedStorageKeySignature = _chunkP4DUDLMYjs.createSHA256Hash.call(void 0, storageKeySignature);
53
55
  await this.options.storage?.setStorageKey(hashedStorageKeySignature);
54
56
  return hashedStorageKeySignature;
55
57
  }
@@ -57,11 +59,11 @@ var UserStorage = class {
57
59
  _upsertUserStorage = new WeakSet();
58
60
  upsertUserStorage_fn = async function(feature, key, data) {
59
61
  try {
60
- const headers = await _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getAuthorizationHeader, getAuthorizationHeader_fn).call(this);
62
+ const headers = await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _getAuthorizationHeader, getAuthorizationHeader_fn).call(this);
61
63
  const storageKey = await this.getStorageKey();
62
- const encryptedData = _chunkVZXD5DCQjs.encryption_default.encryptString(data, storageKey);
64
+ const encryptedData = _chunkP4DUDLMYjs.encryption_default.encryptString(data, storageKey);
63
65
  const url = new URL(
64
- STORAGE_URL(this.env, feature, _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _createEntryKey, createEntryKey_fn).call(this, key, storageKey))
66
+ STORAGE_URL(this.env, feature, _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _createEntryKey, createEntryKey_fn).call(this, key, storageKey))
65
67
  );
66
68
  const response = await fetch(url.toString(), {
67
69
  method: "PUT",
@@ -82,7 +84,7 @@ upsertUserStorage_fn = async function(feature, key, data) {
82
84
  }
83
85
  } catch (e) {
84
86
  const errorMessage = e instanceof Error ? e.message : JSON.stringify(e ?? "");
85
- throw new (0, _chunkGQLHSQGZjs.UserStorageError)(
87
+ throw new (0, _chunkMBTBE4P5js.UserStorageError)(
86
88
  `failed to upsert user storage for feature '${feature}' and key '${key}'. ${errorMessage}`
87
89
  );
88
90
  }
@@ -90,10 +92,10 @@ upsertUserStorage_fn = async function(feature, key, data) {
90
92
  _getUserStorage = new WeakSet();
91
93
  getUserStorage_fn = async function(feature, key) {
92
94
  try {
93
- const headers = await _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getAuthorizationHeader, getAuthorizationHeader_fn).call(this);
95
+ const headers = await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _getAuthorizationHeader, getAuthorizationHeader_fn).call(this);
94
96
  const storageKey = await this.getStorageKey();
95
97
  const url = new URL(
96
- STORAGE_URL(this.env, feature, _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _createEntryKey, createEntryKey_fn).call(this, key, storageKey))
98
+ STORAGE_URL(this.env, feature, _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _createEntryKey, createEntryKey_fn).call(this, key, storageKey))
97
99
  );
98
100
  const response = await fetch(url.toString(), {
99
101
  headers: {
@@ -102,7 +104,7 @@ getUserStorage_fn = async function(feature, key) {
102
104
  }
103
105
  });
104
106
  if (response.status === 404) {
105
- throw new (0, _chunkGQLHSQGZjs.NotFoundError)(
107
+ throw new (0, _chunkMBTBE4P5js.NotFoundError)(
106
108
  `feature/key set not found for feature '${feature}' and key '${key}'.`
107
109
  );
108
110
  }
@@ -113,20 +115,20 @@ getUserStorage_fn = async function(feature, key) {
113
115
  );
114
116
  }
115
117
  const { Data: encryptedData } = await response.json();
116
- return _chunkVZXD5DCQjs.encryption_default.decryptString(encryptedData, storageKey);
118
+ return _chunkP4DUDLMYjs.encryption_default.decryptString(encryptedData, storageKey);
117
119
  } catch (e) {
118
- if (e instanceof _chunkGQLHSQGZjs.NotFoundError) {
120
+ if (e instanceof _chunkMBTBE4P5js.NotFoundError) {
119
121
  throw e;
120
122
  }
121
123
  const errorMessage = e instanceof Error ? e.message : JSON.stringify(e ?? "");
122
- throw new (0, _chunkGQLHSQGZjs.UserStorageError)(
124
+ throw new (0, _chunkMBTBE4P5js.UserStorageError)(
123
125
  `failed to get user storage for feature '${feature}' and key '${key}'. ${errorMessage}`
124
126
  );
125
127
  }
126
128
  };
127
129
  _createEntryKey = new WeakSet();
128
130
  createEntryKey_fn = function(key, storageKey) {
129
- const hashedKey = _chunkVZXD5DCQjs.createSHA256Hash.call(void 0, key + storageKey);
131
+ const hashedKey = _chunkP4DUDLMYjs.createSHA256Hash.call(void 0, key + storageKey);
130
132
  return hashedKey;
131
133
  };
132
134
  _getAuthorizationHeader = new WeakSet();
@@ -139,4 +141,4 @@ getAuthorizationHeader_fn = async function() {
139
141
 
140
142
 
141
143
  exports.STORAGE_URL = STORAGE_URL; exports.UserStorage = UserStorage;
142
- //# sourceMappingURL=chunk-6X6I3HZU.js.map
144
+ //# sourceMappingURL=chunk-P52TG263.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sdk/user-storage.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IBaseAuth } from './authentication-jwt-bearer/types';\nimport encryption, { createSHA256Hash } from './encryption';\nimport type { Env } from './env';\nimport { getEnvUrls } from './env';\nimport { NotFoundError, UserStorageError, ValidationError } from './errors';\n\nexport const STORAGE_URL = (env: Env, feature: string, entry: string) =>\n `${getEnvUrls(env).userStorageApiUrl}/api/v1/userstorage/${feature}/${entry}`;\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(feature: string, key: string, value: string): Promise<void> {\n if (!feature.trim() || !key.trim()) {\n throw new ValidationError('feature or key cannot be empty strings');\n }\n await this.#upsertUserStorage(feature, key, value);\n }\n\n async getItem(feature: string, key: string): Promise<string> {\n if (!feature.trim() || !key.trim()) {\n throw new ValidationError('feature or key cannot be empty strings');\n }\n return this.#getUserStorage(feature, key);\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 feature: string,\n key: string,\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 url = new URL(\n STORAGE_URL(this.env, feature, this.#createEntryKey(key, storageKey)),\n );\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 feature '${feature}' and key '${key}'. ${errorMessage}`,\n );\n }\n }\n\n async #getUserStorage(feature: string, key: string): Promise<string> {\n try {\n const headers = await this.#getAuthorizationHeader();\n const storageKey = await this.getStorageKey();\n const url = new URL(\n STORAGE_URL(this.env, feature, this.#createEntryKey(key, storageKey)),\n );\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 feature '${feature}' and key '${key}'.`,\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 feature '${feature}' and key '${key}'. ${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"]}
@@ -8,4 +8,4 @@ var AuthType = /* @__PURE__ */ ((AuthType2) => {
8
8
 
9
9
 
10
10
  exports.AuthType = AuthType;
11
- //# sourceMappingURL=chunk-CFST6GWE.js.map
11
+ //# sourceMappingURL=chunk-PBRUOBEQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sdk/authentication-jwt-bearer/types.ts"],"names":["AuthType"],"mappings":";AAEO,IAAK,WAAL,kBAAKA,cAAL;AAGL,EAAAA,UAAA,SAAM;AAGN,EAAAA,UAAA,UAAO;AANG,SAAAA;AAAA,GAAA","sourcesContent":["import type { Env, Platform } from '../env';\n\nexport enum AuthType {\n /* sign in using a private key derived from your secret recovery phrase (SRP). \n Uses message signing snap to perform this operation */\n SRP = 'SRP',\n\n /* sign in with Ethereum */\n SiWE = 'SiWE',\n}\n\nexport type AuthConfig = {\n env: Env;\n platform: Platform;\n type: AuthType;\n};\n\nexport type AccessToken = {\n /**\n * The JWT Access Token\n */\n accessToken: string;\n /**\n * Expiration in seconds\n */\n expiresIn: number;\n /**\n * Date in milliseconds\n */\n obtainedAt: number;\n};\n\nexport type UserProfile = {\n /**\n * The \"Identifier\" used to log in with.\n */\n identifierId: string;\n /**\n * The Unique profile for a logged in user. A Profile can be logged in via multiple Identifiers\n */\n profileId: string;\n /**\n * Server MetaMetrics ID. Allows grouping of user events cross platform.\n */\n metaMetricsId: string;\n};\n\nexport type LoginResponse = {\n token: AccessToken;\n profile: UserProfile;\n};\n\nexport type IBaseAuth = {\n getAccessToken: () => Promise<string>;\n getUserProfile: () => Promise<UserProfile>;\n getIdentifier: () => Promise<string>;\n signMessage: (message: string) => Promise<string>;\n};\n\nexport type AuthStorageOptions = {\n getLoginResponse: () => Promise<LoginResponse | null>;\n setLoginResponse: (val: LoginResponse) => Promise<void>;\n};\n\nexport type AuthSigningOptions = {\n signMessage: (message: string) => Promise<string>;\n getIdentifier: () => Promise<string>;\n};\n\nexport type ErrorMessage = {\n message: string;\n error: string;\n};\n\nexport type Pair = {\n identifier: string;\n encryptedStorageKey: string;\n identifierType: 'SIWE' | 'SRP';\n signMessage: (message: string) => Promise<string>;\n};\n"]}
@@ -0,0 +1,18 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/controllers/user-storage/encryption/utils.ts
2
+ var byteArrayToBase64 = (byteArray) => {
3
+ return Buffer.from(byteArray).toString("base64");
4
+ };
5
+ var base64ToByteArray = (base64) => {
6
+ return new Uint8Array(Buffer.from(base64, "base64"));
7
+ };
8
+ var bytesToUtf8 = (byteArray) => {
9
+ const decoder = new TextDecoder("utf-8");
10
+ return decoder.decode(byteArray);
11
+ };
12
+
13
+
14
+
15
+
16
+
17
+ exports.byteArrayToBase64 = byteArrayToBase64; exports.base64ToByteArray = base64ToByteArray; exports.bytesToUtf8 = bytesToUtf8;
18
+ //# sourceMappingURL=chunk-PCOIRDTO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/controllers/user-storage/encryption/utils.ts"],"names":[],"mappings":";AAAO,IAAM,oBAAoB,CAAC,cAA0B;AAC1D,SAAO,OAAO,KAAK,SAAS,EAAE,SAAS,QAAQ;AACjD;AAEO,IAAM,oBAAoB,CAAC,WAAmB;AACnD,SAAO,IAAI,WAAW,OAAO,KAAK,QAAQ,QAAQ,CAAC;AACrD;AAEO,IAAM,cAAc,CAAC,cAA0B;AACpD,QAAM,UAAU,IAAI,YAAY,OAAO;AACvC,SAAO,QAAQ,OAAO,SAAS;AACjC","sourcesContent":["export const byteArrayToBase64 = (byteArray: Uint8Array) => {\n return Buffer.from(byteArray).toString('base64');\n};\n\nexport const base64ToByteArray = (base64: string) => {\n return new Uint8Array(Buffer.from(base64, 'base64'));\n};\n\nexport const bytesToUtf8 = (byteArray: Uint8Array) => {\n const decoder = new TextDecoder('utf-8');\n return decoder.decode(byteArray);\n};\n"]}
@@ -0,0 +1,79 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkNLHLVVOOjs = require('./chunk-NLHLVVOO.js');
4
+
5
+
6
+ var _chunkQ5WIUNX5js = require('./chunk-Q5WIUNX5.js');
7
+
8
+
9
+ var _chunkAVOOINGJjs = require('./chunk-AVOOINGJ.js');
10
+
11
+
12
+ var _chunkPBRUOBEQjs = require('./chunk-PBRUOBEQ.js');
13
+
14
+
15
+
16
+
17
+
18
+
19
+ var _chunkPQ5T4GHYjs = require('./chunk-PQ5T4GHY.js');
20
+
21
+
22
+
23
+ var _chunkP52TG263js = require('./chunk-P52TG263.js');
24
+
25
+
26
+
27
+ var _chunkP4DUDLMYjs = require('./chunk-P4DUDLMY.js');
28
+
29
+
30
+
31
+
32
+
33
+ var _chunkSMKTWM6Ijs = require('./chunk-SMKTWM6I.js');
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+ var _chunkMBTBE4P5js = require('./chunk-MBTBE4P5.js');
43
+
44
+
45
+ var _chunkIGY2S5BCjs = require('./chunk-IGY2S5BC.js');
46
+
47
+ // src/sdk/index.ts
48
+ var sdk_exports = {};
49
+ _chunkIGY2S5BCjs.__export.call(void 0, sdk_exports, {
50
+ AuthType: () => _chunkPBRUOBEQjs.AuthType,
51
+ Encryption: () => _chunkP4DUDLMYjs.Encryption,
52
+ Env: () => _chunkSMKTWM6Ijs.Env,
53
+ JwtBearerAuth: () => _chunkNLHLVVOOjs.JwtBearerAuth,
54
+ MESSAGE_SIGNING_SNAP: () => _chunkPQ5T4GHYjs.MESSAGE_SIGNING_SNAP,
55
+ NonceRetrievalError: () => _chunkMBTBE4P5js.NonceRetrievalError,
56
+ NotFoundError: () => _chunkMBTBE4P5js.NotFoundError,
57
+ PairError: () => _chunkMBTBE4P5js.PairError,
58
+ Platform: () => _chunkSMKTWM6Ijs.Platform,
59
+ SIWEJwtBearerAuth: () => _chunkQ5WIUNX5js.SIWEJwtBearerAuth,
60
+ SNAP_ORIGIN: () => _chunkPQ5T4GHYjs.SNAP_ORIGIN,
61
+ SRPJwtBearerAuth: () => _chunkAVOOINGJjs.SRPJwtBearerAuth,
62
+ STORAGE_URL: () => _chunkP52TG263js.STORAGE_URL,
63
+ SignInError: () => _chunkMBTBE4P5js.SignInError,
64
+ UnsupportedAuthTypeError: () => _chunkMBTBE4P5js.UnsupportedAuthTypeError,
65
+ UserStorage: () => _chunkP52TG263js.UserStorage,
66
+ UserStorageError: () => _chunkMBTBE4P5js.UserStorageError,
67
+ ValidationError: () => _chunkMBTBE4P5js.ValidationError,
68
+ connectSnap: () => _chunkPQ5T4GHYjs.connectSnap,
69
+ createSHA256Hash: () => _chunkP4DUDLMYjs.createSHA256Hash,
70
+ getEnvUrls: () => _chunkSMKTWM6Ijs.getEnvUrls,
71
+ getOidcClientId: () => _chunkSMKTWM6Ijs.getOidcClientId,
72
+ getSnap: () => _chunkPQ5T4GHYjs.getSnap,
73
+ getSnaps: () => _chunkPQ5T4GHYjs.getSnaps
74
+ });
75
+
76
+
77
+
78
+ exports.sdk_exports = sdk_exports;
79
+ //# sourceMappingURL=chunk-PTR4DAX6.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;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"]}
@@ -0,0 +1,126 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+ var _chunkBOET676Pjs = require('./chunk-BOET676P.js');
7
+
8
+
9
+ var _chunkMBTBE4P5js = require('./chunk-MBTBE4P5.js');
10
+
11
+
12
+
13
+
14
+
15
+ var _chunkIGY2S5BCjs = require('./chunk-IGY2S5BC.js');
16
+
17
+ // src/sdk/authentication-jwt-bearer/flow-siwe.ts
18
+ var _siwe = require('siwe');
19
+ var _config, _options, _signer, _getAuthSession, getAuthSession_fn, _login, login_fn, _createSiWELoginRawMessage, createSiWELoginRawMessage_fn, _assertSigner, assertSigner_fn;
20
+ var SIWEJwtBearerAuth = class {
21
+ constructor(config, options) {
22
+ // convert expiresIn from seconds to milliseconds and use 90% of expiresIn
23
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _getAuthSession);
24
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _login);
25
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _createSiWELoginRawMessage);
26
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _assertSigner);
27
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _config, void 0);
28
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _options, void 0);
29
+ _chunkIGY2S5BCjs.__privateAdd.call(void 0, this, _signer, void 0);
30
+ _chunkIGY2S5BCjs.__privateSet.call(void 0, this, _config, config);
31
+ _chunkIGY2S5BCjs.__privateSet.call(void 0, this, _options, options);
32
+ }
33
+ async getAccessToken() {
34
+ const session = await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _getAuthSession, getAuthSession_fn).call(this);
35
+ if (session) {
36
+ return session.token.accessToken;
37
+ }
38
+ const loginResponse = await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _login, login_fn).call(this);
39
+ return loginResponse.token.accessToken;
40
+ }
41
+ async getUserProfile() {
42
+ const session = await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _getAuthSession, getAuthSession_fn).call(this);
43
+ if (session) {
44
+ return session.profile;
45
+ }
46
+ const loginResponse = await _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _login, login_fn).call(this);
47
+ return loginResponse.profile;
48
+ }
49
+ async getIdentifier() {
50
+ _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _assertSigner, assertSigner_fn).call(this, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer));
51
+ return _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer).address;
52
+ }
53
+ async signMessage(message) {
54
+ _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _assertSigner, assertSigner_fn).call(this, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer));
55
+ return await _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer).signMessage(message);
56
+ }
57
+ prepare(signer) {
58
+ _chunkIGY2S5BCjs.__privateSet.call(void 0, this, _signer, signer);
59
+ }
60
+ };
61
+ _config = new WeakMap();
62
+ _options = new WeakMap();
63
+ _signer = new WeakMap();
64
+ _getAuthSession = new WeakSet();
65
+ getAuthSession_fn = async function() {
66
+ const auth = await _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _options).storage.getLoginResponse();
67
+ if (!auth) {
68
+ return null;
69
+ }
70
+ const currentTime = Date.now();
71
+ const sessionAge = currentTime - auth.token.obtainedAt;
72
+ const refreshThreshold = auth.token.expiresIn * 1e3 * 0.9;
73
+ if (sessionAge < refreshThreshold) {
74
+ return auth;
75
+ }
76
+ return null;
77
+ };
78
+ _login = new WeakSet();
79
+ login_fn = async function() {
80
+ _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _assertSigner, assertSigner_fn).call(this, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer));
81
+ const address = await this.getIdentifier();
82
+ const nonceRes = await _chunkBOET676Pjs.getNonce.call(void 0, address, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env);
83
+ const rawMessage = _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _createSiWELoginRawMessage, createSiWELoginRawMessage_fn).call(this, nonceRes.nonce);
84
+ const signature = await this.signMessage(rawMessage);
85
+ const authResponse = await _chunkBOET676Pjs.authenticate.call(void 0,
86
+ rawMessage,
87
+ signature,
88
+ _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).type,
89
+ _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env
90
+ );
91
+ const tokenResponse = await _chunkBOET676Pjs.authorizeOIDC.call(void 0,
92
+ authResponse.token,
93
+ _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env,
94
+ _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).platform
95
+ );
96
+ const result = {
97
+ profile: authResponse.profile,
98
+ token: tokenResponse
99
+ };
100
+ await _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _options).storage.setLoginResponse(result);
101
+ return result;
102
+ };
103
+ _createSiWELoginRawMessage = new WeakSet();
104
+ createSiWELoginRawMessage_fn = function(nonce) {
105
+ _chunkIGY2S5BCjs.__privateMethod.call(void 0, this, _assertSigner, assertSigner_fn).call(this, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer));
106
+ return new (0, _siwe.SiweMessage)({
107
+ domain: _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer)?.domain,
108
+ address: _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer)?.address,
109
+ uri: _chunkBOET676Pjs.SIWE_LOGIN_URL.call(void 0, _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _config).env),
110
+ version: "1",
111
+ chainId: _chunkIGY2S5BCjs.__privateGet.call(void 0, this, _signer)?.chainId,
112
+ nonce,
113
+ issuedAt: (/* @__PURE__ */ new Date()).toISOString()
114
+ }).prepareMessage();
115
+ };
116
+ _assertSigner = new WeakSet();
117
+ assertSigner_fn = function(signer) {
118
+ if (!signer) {
119
+ throw new (0, _chunkMBTBE4P5js.ValidationError)(`you must call 'prepare()' before logging in`);
120
+ }
121
+ };
122
+
123
+
124
+
125
+ exports.SIWEJwtBearerAuth = SIWEJwtBearerAuth;
126
+ //# sourceMappingURL=chunk-Q5WIUNX5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sdk/authentication-jwt-bearer/flow-siwe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAS,mBAAmB;AAA5B;AAiCO,IAAM,oBAAN,MAA6C;AAAA,EAOlD,YACE,QACA,SACA;AAwCF;AAAA,uBAAM;AAgBN,uBAAM;AAmCN;AAcA;AAlHA;AAEA;AAEA;AAME,uBAAK,SAAU;AACf,uBAAK,UAAW;AAAA,EAClB;AAAA,EAEA,MAAM,iBAAkC;AACtC,UAAM,UAAU,MAAM,sBAAK,oCAAL;AACtB,QAAI,SAAS;AACX,aAAO,QAAQ,MAAM;AAAA,IACvB;AAEA,UAAM,gBAAgB,MAAM,sBAAK,kBAAL;AAC5B,WAAO,cAAc,MAAM;AAAA,EAC7B;AAAA,EAEA,MAAM,iBAAuC;AAC3C,UAAM,UAAU,MAAM,sBAAK,oCAAL;AACtB,QAAI,SAAS;AACX,aAAO,QAAQ;AAAA,IACjB;AAEA,UAAM,gBAAgB,MAAM,sBAAK,kBAAL;AAC5B,WAAO,cAAc;AAAA,EACvB;AAAA,EAEA,MAAM,gBAAiC;AACrC,0BAAK,gCAAL,WAAmB,mBAAK;AACxB,WAAO,mBAAK,SAAQ;AAAA,EACtB;AAAA,EAEA,MAAM,YAAY,SAAkC;AAClD,0BAAK,gCAAL,WAAmB,mBAAK;AACxB,WAAO,MAAM,mBAAK,SAAQ,YAAY,OAAO;AAAA,EAC/C;AAAA,EAEA,QAAQ,QAAmC;AACzC,uBAAK,SAAU;AAAA,EACjB;AA2EF;AAzHE;AAEA;AAEA;AA6CM;AAAA,oBAAe,iBAAkC;AACrD,QAAM,OAAO,MAAM,mBAAK,UAAS,QAAQ,iBAAiB;AAC1D,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,KAAK,IAAI;AAC7B,QAAM,aAAa,cAAc,KAAK,MAAM;AAC5C,QAAM,mBAAmB,KAAK,MAAM,YAAY,MAAO;AAEvD,MAAI,aAAa,kBAAkB;AACjC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEM;AAAA,WAAM,iBAA2B;AACrC,wBAAK,gCAAL,WAAmB,mBAAK;AAGxB,QAAM,UAAU,MAAM,KAAK,cAAc;AACzC,QAAM,WAAW,MAAM,SAAS,SAAS,mBAAK,SAAQ,GAAG;AACzD,QAAM,aAAa,sBAAK,0DAAL,WAAgC,SAAS;AAC5D,QAAM,YAAY,MAAM,KAAK,YAAY,UAAU;AAGnD,QAAM,eAAe,MAAM;AAAA,IACzB;AAAA,IACA;AAAA,IACA,mBAAK,SAAQ;AAAA,IACb,mBAAK,SAAQ;AAAA,EACf;AAGA,QAAM,gBAAgB,MAAM;AAAA,IAC1B,aAAa;AAAA,IACb,mBAAK,SAAQ;AAAA,IACb,mBAAK,SAAQ;AAAA,EACf;AAGA,QAAM,SAAwB;AAAA,IAC5B,SAAS,aAAa;AAAA,IACtB,OAAO;AAAA,EACT;AAEA,QAAM,mBAAK,UAAS,QAAQ,iBAAiB,MAAM;AAEnD,SAAO;AACT;AAEA;AAAA,+BAA0B,SAAC,OAAuB;AAChD,wBAAK,gCAAL,WAAmB,mBAAK;AAExB,SAAO,IAAI,YAAY;AAAA,IACrB,QAAQ,mBAAK,UAAS;AAAA,IACtB,SAAS,mBAAK,UAAS;AAAA,IACvB,KAAK,eAAe,mBAAK,SAAQ,GAAG;AAAA,IACpC,SAAS;AAAA,IACT,SAAS,mBAAK,UAAS;AAAA,IACvB;AAAA,IACA,WAAU,oBAAI,KAAK,GAAE,YAAY;AAAA,EACnC,CAAC,EAAE,eAAe;AACpB;AAEA;AAAA,kBAAa,SACX,QAC6C;AAC7C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,gBAAgB,6CAA6C;AAAA,EACzE;AACF","sourcesContent":["import { SiweMessage } from 'siwe';\n\nimport { ValidationError } from '../errors';\nimport {\n SIWE_LOGIN_URL,\n authenticate,\n authorizeOIDC,\n getNonce,\n} from './services';\nimport type {\n AuthConfig,\n AuthStorageOptions,\n AuthType,\n IBaseAuth,\n LoginResponse,\n UserProfile,\n} from './types';\n\n// TODO: Either fix this lint violation or explain why it's necessary to ignore.\n// eslint-disable-next-line @typescript-eslint/naming-convention\ntype JwtBearerAuth_SIWE_Options = {\n storage: AuthStorageOptions;\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\ntype JwtBearerAuth_SIWE_Signer = {\n address: string;\n chainId: number;\n signMessage: (message: string) => Promise<string>;\n domain: string;\n};\n\nexport class SIWEJwtBearerAuth implements IBaseAuth {\n #config: AuthConfig;\n\n #options: JwtBearerAuth_SIWE_Options;\n\n #signer: JwtBearerAuth_SIWE_Signer | undefined;\n\n constructor(\n config: AuthConfig & { type: AuthType.SiWE },\n options: JwtBearerAuth_SIWE_Options,\n ) {\n this.#config = config;\n this.#options = options;\n }\n\n async getAccessToken(): Promise<string> {\n const session = await this.#getAuthSession();\n if (session) {\n return session.token.accessToken;\n }\n\n const loginResponse = await this.#login();\n return loginResponse.token.accessToken;\n }\n\n async getUserProfile(): Promise<UserProfile> {\n const session = await this.#getAuthSession();\n if (session) {\n return session.profile;\n }\n\n const loginResponse = await this.#login();\n return loginResponse.profile;\n }\n\n async getIdentifier(): Promise<string> {\n this.#assertSigner(this.#signer);\n return this.#signer.address;\n }\n\n async signMessage(message: string): Promise<string> {\n this.#assertSigner(this.#signer);\n return await this.#signer.signMessage(message);\n }\n\n prepare(signer: JwtBearerAuth_SIWE_Signer) {\n this.#signer = signer;\n }\n\n // convert expiresIn from seconds to milliseconds and use 90% of expiresIn\n async #getAuthSession(): Promise<LoginResponse | null> {\n const auth = await this.#options.storage.getLoginResponse();\n if (!auth) {\n return null;\n }\n\n const currentTime = Date.now();\n const sessionAge = currentTime - auth.token.obtainedAt;\n const refreshThreshold = auth.token.expiresIn * 1000 * 0.9;\n\n if (sessionAge < refreshThreshold) {\n return auth;\n }\n return null;\n }\n\n async #login(): Promise<LoginResponse> {\n this.#assertSigner(this.#signer);\n\n // Nonce\n const address = await this.getIdentifier();\n const nonceRes = await getNonce(address, this.#config.env);\n const rawMessage = this.#createSiWELoginRawMessage(nonceRes.nonce);\n const signature = await this.signMessage(rawMessage);\n\n // Authenticate\n const authResponse = await authenticate(\n rawMessage,\n signature,\n this.#config.type,\n this.#config.env,\n );\n\n // Authorize\n const tokenResponse = await authorizeOIDC(\n authResponse.token,\n this.#config.env,\n this.#config.platform,\n );\n\n // Save\n const result: LoginResponse = {\n profile: authResponse.profile,\n token: tokenResponse,\n };\n\n await this.#options.storage.setLoginResponse(result);\n\n return result;\n }\n\n #createSiWELoginRawMessage(nonce: string): string {\n this.#assertSigner(this.#signer);\n\n return new SiweMessage({\n domain: this.#signer?.domain,\n address: this.#signer?.address,\n uri: SIWE_LOGIN_URL(this.#config.env),\n version: '1',\n chainId: this.#signer?.chainId,\n nonce,\n issuedAt: new Date().toISOString(),\n }).prepareMessage();\n }\n\n #assertSigner(\n signer?: JwtBearerAuth_SIWE_Signer,\n ): asserts signer is JwtBearerAuth_SIWE_Signer {\n if (!signer) {\n throw new ValidationError(`you must call 'prepare()' before logging in`);\n }\n }\n}\n"]}