@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
@@ -0,0 +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,4DAA2C;AAClE,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;AAmBA,eAAsB,eAAe,UAA0C;AAC7E,QAAM,UAAU,IAAI,QAAQ;AAAA,IAC1B,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,iBAAiB,IAAI,gBAAgB;AAC3C,iBAAe,OAAO,cAAc,eAAe;AACnD,iBAAe,OAAO,aAAa,cAAc;AACjD,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 = getOidcClientId(Env.PRD, Platform.EXTENSION);\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 * @returns JWT Access token to store and use on authorized endpoints.\n */\nexport async function getAccessToken(jwtToken: string): 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);\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"]}
@@ -0,0 +1,106 @@
1
+ import {
2
+ SIWEJwtBearerAuth
3
+ } from "./chunk-JLDFMYAH.mjs";
4
+ import {
5
+ SRPJwtBearerAuth
6
+ } from "./chunk-Y46NMA3V.mjs";
7
+ import {
8
+ getNonce,
9
+ pairIdentifiers
10
+ } from "./chunk-WB6MUIML.mjs";
11
+ import {
12
+ PairError,
13
+ UnsupportedAuthTypeError
14
+ } from "./chunk-TFFQFIJV.mjs";
15
+ import {
16
+ __privateAdd,
17
+ __privateGet,
18
+ __privateMethod,
19
+ __privateSet
20
+ } from "./chunk-U5UIDVOO.mjs";
21
+
22
+ // src/sdk/authentication.ts
23
+ var _type, _env, _sdk, _assertSIWE, assertSIWE_fn;
24
+ var JwtBearerAuth = class {
25
+ constructor(...args) {
26
+ __privateAdd(this, _assertSIWE);
27
+ __privateAdd(this, _type, void 0);
28
+ __privateAdd(this, _env, void 0);
29
+ __privateAdd(this, _sdk, void 0);
30
+ __privateSet(this, _type, args[0].type);
31
+ __privateSet(this, _env, args[0].env);
32
+ if (args[0].type === "SRP" /* SRP */) {
33
+ __privateSet(this, _sdk, new SRPJwtBearerAuth(args[0], args[1]));
34
+ return;
35
+ }
36
+ if (args[0].type === "SiWE" /* SiWE */) {
37
+ __privateSet(this, _sdk, new SIWEJwtBearerAuth(args[0], args[1]));
38
+ return;
39
+ }
40
+ throw new UnsupportedAuthTypeError("unsupported auth type");
41
+ }
42
+ async getAccessToken() {
43
+ return await __privateGet(this, _sdk).getAccessToken();
44
+ }
45
+ async getUserProfile() {
46
+ return await __privateGet(this, _sdk).getUserProfile();
47
+ }
48
+ async getIdentifier() {
49
+ return await __privateGet(this, _sdk).getIdentifier();
50
+ }
51
+ async signMessage(message) {
52
+ return await __privateGet(this, _sdk).signMessage(message);
53
+ }
54
+ async pairIdentifiers(pairing) {
55
+ const profile = await this.getUserProfile();
56
+ const n = await getNonce(profile.profileId, __privateGet(this, _env));
57
+ const logins = await Promise.all(
58
+ pairing.map(async (p) => {
59
+ try {
60
+ const raw = `metamask:${n.nonce}:${p.identifier}`;
61
+ const sig = await p.signMessage(raw);
62
+ return {
63
+ signature: sig,
64
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
65
+ // eslint-disable-next-line @typescript-eslint/naming-convention
66
+ raw_message: raw,
67
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
68
+ // eslint-disable-next-line @typescript-eslint/naming-convention
69
+ encrypted_storage_key: p.encryptedStorageKey,
70
+ // TODO: Either fix this lint violation or explain why it's necessary to ignore.
71
+ // eslint-disable-next-line @typescript-eslint/naming-convention
72
+ identifier_type: p.identifierType
73
+ };
74
+ } catch (e) {
75
+ const errorMessage = e instanceof Error ? e.message : JSON.stringify(e ?? "");
76
+ throw new PairError(
77
+ `failed to sign pairing message: ${errorMessage}`
78
+ );
79
+ }
80
+ })
81
+ );
82
+ const accessToken = await this.getAccessToken();
83
+ await pairIdentifiers(n.nonce, logins, accessToken, __privateGet(this, _env));
84
+ }
85
+ prepare(signer) {
86
+ __privateMethod(this, _assertSIWE, assertSIWE_fn).call(this, __privateGet(this, _type), __privateGet(this, _sdk));
87
+ __privateGet(this, _sdk).prepare(signer);
88
+ }
89
+ };
90
+ _type = new WeakMap();
91
+ _env = new WeakMap();
92
+ _sdk = new WeakMap();
93
+ _assertSIWE = new WeakSet();
94
+ assertSIWE_fn = function(type, sdk) {
95
+ if (type === "SiWE" /* SiWE */) {
96
+ return;
97
+ }
98
+ throw new UnsupportedAuthTypeError(
99
+ "This method is only available via SIWE auth type"
100
+ );
101
+ };
102
+
103
+ export {
104
+ JwtBearerAuth
105
+ };
106
+ //# sourceMappingURL=chunk-FCT2LIGH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sdk/authentication.ts"],"sourcesContent":["import { SIWEJwtBearerAuth } from './authentication-jwt-bearer/flow-siwe';\nimport { SRPJwtBearerAuth } from './authentication-jwt-bearer/flow-srp';\nimport {\n getNonce,\n pairIdentifiers,\n} from './authentication-jwt-bearer/services';\nimport type { UserProfile, Pair } from './authentication-jwt-bearer/types';\nimport { AuthType } from './authentication-jwt-bearer/types';\nimport type { Env } from './env';\nimport { PairError, UnsupportedAuthTypeError } from './errors';\n\n// Computing the Classes, so we only get back the public methods for the interface.\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 Compute<T> = T extends infer U ? { [K in keyof U]: U[K] } : never;\ntype SIWEInterface = Compute<SIWEJwtBearerAuth>;\ntype SRPInterface = Compute<SRPJwtBearerAuth>;\n\ntype SiweParams = ConstructorParameters<typeof SIWEJwtBearerAuth>;\ntype SRPParams = ConstructorParameters<typeof SRPJwtBearerAuth>;\ntype JwtBearerAuthParams = SiweParams | SRPParams;\n\nexport class JwtBearerAuth implements SIWEInterface, SRPInterface {\n #type: AuthType;\n\n #env: Env;\n\n #sdk: SIWEJwtBearerAuth | SRPJwtBearerAuth;\n\n constructor(...args: JwtBearerAuthParams) {\n this.#type = args[0].type;\n this.#env = args[0].env;\n\n if (args[0].type === AuthType.SRP) {\n this.#sdk = new SRPJwtBearerAuth(args[0], args[1]);\n return;\n }\n\n if (args[0].type === AuthType.SiWE) {\n this.#sdk = new SIWEJwtBearerAuth(args[0], args[1]);\n return;\n }\n\n throw new UnsupportedAuthTypeError('unsupported auth type');\n }\n\n async getAccessToken(): Promise<string> {\n return await this.#sdk.getAccessToken();\n }\n\n async getUserProfile(): Promise<UserProfile> {\n return await this.#sdk.getUserProfile();\n }\n\n async getIdentifier(): Promise<string> {\n return await this.#sdk.getIdentifier();\n }\n\n async signMessage(message: string): Promise<string> {\n return await this.#sdk.signMessage(message);\n }\n\n async pairIdentifiers(pairing: Pair[]): Promise<void> {\n const profile = await this.getUserProfile();\n const n = await getNonce(profile.profileId, this.#env);\n\n const logins = await Promise.all(\n pairing.map(async (p) => {\n try {\n const raw = `metamask:${n.nonce}:${p.identifier}`;\n const sig = await p.signMessage(raw);\n return {\n signature: sig,\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 raw_message: raw,\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 encrypted_storage_key: p.encryptedStorageKey,\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 identifier_type: p.identifierType,\n };\n } catch (e) {\n /* istanbul ignore next */\n const errorMessage =\n e instanceof Error ? e.message : JSON.stringify(e ?? '');\n throw new PairError(\n `failed to sign pairing message: ${errorMessage}`,\n );\n }\n }),\n );\n\n const accessToken = await this.getAccessToken();\n await pairIdentifiers(n.nonce, logins, accessToken, this.#env);\n }\n\n prepare(signer: {\n address: string;\n chainId: number;\n signMessage: (message: string) => Promise<string>;\n domain: string;\n }): void {\n this.#assertSIWE(this.#type, this.#sdk);\n this.#sdk.prepare(signer);\n }\n\n #assertSIWE(\n type: AuthType,\n sdk: SIWEJwtBearerAuth | SRPJwtBearerAuth,\n ): asserts sdk is SIWEJwtBearerAuth {\n if (type === AuthType.SiWE) {\n return;\n }\n\n throw new UnsupportedAuthTypeError(\n 'This method is only available via SIWE auth type',\n );\n }\n}\n\nexport { SIWEJwtBearerAuth } from './authentication-jwt-bearer/flow-siwe';\nexport { SRPJwtBearerAuth } from './authentication-jwt-bearer/flow-srp';\nexport * from './authentication-jwt-bearer/types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAsBO,IAAM,gBAAN,MAA2D;AAAA,EAOhE,eAAe,MAA2B;AA+E1C;AArFA;AAEA;AAEA;AAGE,uBAAK,OAAQ,KAAK,CAAC,EAAE;AACrB,uBAAK,MAAO,KAAK,CAAC,EAAE;AAEpB,QAAI,KAAK,CAAC,EAAE,0BAAuB;AACjC,yBAAK,MAAO,IAAI,iBAAiB,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AACjD;AAAA,IACF;AAEA,QAAI,KAAK,CAAC,EAAE,4BAAwB;AAClC,yBAAK,MAAO,IAAI,kBAAkB,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAClD;AAAA,IACF;AAEA,UAAM,IAAI,yBAAyB,uBAAuB;AAAA,EAC5D;AAAA,EAEA,MAAM,iBAAkC;AACtC,WAAO,MAAM,mBAAK,MAAK,eAAe;AAAA,EACxC;AAAA,EAEA,MAAM,iBAAuC;AAC3C,WAAO,MAAM,mBAAK,MAAK,eAAe;AAAA,EACxC;AAAA,EAEA,MAAM,gBAAiC;AACrC,WAAO,MAAM,mBAAK,MAAK,cAAc;AAAA,EACvC;AAAA,EAEA,MAAM,YAAY,SAAkC;AAClD,WAAO,MAAM,mBAAK,MAAK,YAAY,OAAO;AAAA,EAC5C;AAAA,EAEA,MAAM,gBAAgB,SAAgC;AACpD,UAAM,UAAU,MAAM,KAAK,eAAe;AAC1C,UAAM,IAAI,MAAM,SAAS,QAAQ,WAAW,mBAAK,KAAI;AAErD,UAAM,SAAS,MAAM,QAAQ;AAAA,MAC3B,QAAQ,IAAI,OAAO,MAAM;AACvB,YAAI;AACF,gBAAM,MAAM,YAAY,EAAE,KAAK,IAAI,EAAE,UAAU;AAC/C,gBAAM,MAAM,MAAM,EAAE,YAAY,GAAG;AACnC,iBAAO;AAAA,YACL,WAAW;AAAA;AAAA;AAAA,YAGX,aAAa;AAAA;AAAA;AAAA,YAGb,uBAAuB,EAAE;AAAA;AAAA;AAAA,YAGzB,iBAAiB,EAAE;AAAA,UACrB;AAAA,QACF,SAAS,GAAG;AAEV,gBAAM,eACJ,aAAa,QAAQ,EAAE,UAAU,KAAK,UAAU,KAAK,EAAE;AACzD,gBAAM,IAAI;AAAA,YACR,mCAAmC,YAAY;AAAA,UACjD;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAEA,UAAM,cAAc,MAAM,KAAK,eAAe;AAC9C,UAAM,gBAAgB,EAAE,OAAO,QAAQ,aAAa,mBAAK,KAAI;AAAA,EAC/D;AAAA,EAEA,QAAQ,QAKC;AACP,0BAAK,4BAAL,WAAiB,mBAAK,QAAO,mBAAK;AAClC,uBAAK,MAAK,QAAQ,MAAM;AAAA,EAC1B;AAcF;AAjGE;AAEA;AAEA;AAiFA;AAAA,gBAAW,SACT,MACA,KACkC;AAClC,MAAI,4BAAwB;AAC1B;AAAA,EACF;AAEA,QAAM,IAAI;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,77 @@
1
+ // src/sdk/env.ts
2
+ var Env = /* @__PURE__ */ ((Env2) => {
3
+ Env2["DEV"] = "dev";
4
+ Env2["UAT"] = "uat";
5
+ Env2["PRD"] = "prd";
6
+ return Env2;
7
+ })(Env || {});
8
+ var Platform = /* @__PURE__ */ ((Platform2) => {
9
+ Platform2["MOBILE"] = "mobile";
10
+ Platform2["EXTENSION"] = "extension";
11
+ Platform2["PORTFOLIO"] = "portfolio";
12
+ Platform2["INFURA"] = "infura";
13
+ return Platform2;
14
+ })(Platform || {});
15
+ var ENV_URLS = {
16
+ dev: {
17
+ authApiUrl: "https://authentication.dev-api.cx.metamask.io",
18
+ oidcApiUrl: "https://oidc.dev-api.cx.metamask.io",
19
+ userStorageApiUrl: "https://user-storage.dev-api.cx.metamask.io"
20
+ },
21
+ uat: {
22
+ authApiUrl: "https://authentication.uat-api.cx.metamask.io",
23
+ oidcApiUrl: "https://oidc.uat-api.cx.metamask.io",
24
+ userStorageApiUrl: "https://user-storage.uat-api.cx.metamask.io"
25
+ },
26
+ prd: {
27
+ authApiUrl: "https://authentication.api.cx.metamask.io",
28
+ oidcApiUrl: "https://oidc.api.cx.metamask.io",
29
+ userStorageApiUrl: "https://user-storage.api.cx.metamask.io"
30
+ }
31
+ };
32
+ function getEnvUrls(env) {
33
+ if (!ENV_URLS[env]) {
34
+ throw new Error("invalid environment configuration");
35
+ }
36
+ return ENV_URLS[env];
37
+ }
38
+ function getOidcClientId(env, platform) {
39
+ const clientIds = {
40
+ ["dev" /* DEV */]: {
41
+ ["portfolio" /* PORTFOLIO */]: "c7ca94a0-5d52-4635-9502-1a50a9c410cc",
42
+ ["mobile" /* MOBILE */]: "e83c7cc9-267d-4fb4-8fec-f0e3bbe5ae8e",
43
+ ["extension" /* EXTENSION */]: "f1a963d7-50dc-4cb5-8d81-f1f3654f0df3",
44
+ ["infura" /* INFURA */]: "bd887006-0d55-481a-a395-5ff9a0dc52c9"
45
+ },
46
+ ["uat" /* UAT */]: {
47
+ ["portfolio" /* PORTFOLIO */]: "8f2dd4ac-db07-4819-9ba5-1ee0ec1b56d1",
48
+ ["mobile" /* MOBILE */]: "c3cfdcd2-51d6-4fae-ad2c-ff238c8fef53",
49
+ ["extension" /* EXTENSION */]: "a9de167c-c9a6-43d8-af39-d301fd44c485",
50
+ ["infura" /* INFURA */]: "01929890-7002-4c97-9913-8f6c09a6d674"
51
+ },
52
+ ["prd" /* PRD */]: {
53
+ ["portfolio" /* PORTFOLIO */]: "35e1cd62-49c5-4be8-8b6e-a5212f2d2cfb",
54
+ ["mobile" /* MOBILE */]: "75fa62a3-9ca0-4b91-9fe5-76bec86b0257",
55
+ ["extension" /* EXTENSION */]: "1132f10a-b4e5-4390-a5f2-d9c6022db564",
56
+ ["infura" /* INFURA */]: ""
57
+ // unset
58
+ }
59
+ };
60
+ if (!clientIds[env]) {
61
+ throw new Error(`invalid env ${env}: cannot determine oidc client id`);
62
+ }
63
+ if (!clientIds[env][platform]) {
64
+ throw new Error(
65
+ `invalid env ${env} and platform ${platform} combination: cannot determine oidc client id`
66
+ );
67
+ }
68
+ return clientIds[env][platform];
69
+ }
70
+
71
+ export {
72
+ Env,
73
+ Platform,
74
+ getEnvUrls,
75
+ getOidcClientId
76
+ };
77
+ //# sourceMappingURL=chunk-FQ5SDMRE.mjs.map
@@ -0,0 +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"]}
@@ -0,0 +1,58 @@
1
+ import {
2
+ base64ToByteArray,
3
+ byteArrayToBase64
4
+ } from "./chunk-76VRE4BI.mjs";
5
+
6
+ // src/controllers/user-storage/encryption/cache.ts
7
+ var MAX_PASSWORD_CACHES = 3;
8
+ var MAX_SALT_CACHES = 10;
9
+ var inMemCachedKDF = {};
10
+ var getPasswordCache = (hashedPassword) => {
11
+ inMemCachedKDF[hashedPassword] ?? (inMemCachedKDF[hashedPassword] = /* @__PURE__ */ new Map());
12
+ return inMemCachedKDF[hashedPassword];
13
+ };
14
+ function getCachedKeyBySalt(hashedPassword, salt) {
15
+ const cache = getPasswordCache(hashedPassword);
16
+ const base64Salt = byteArrayToBase64(salt);
17
+ const cachedKey = cache.get(base64Salt);
18
+ if (!cachedKey) {
19
+ return void 0;
20
+ }
21
+ return {
22
+ salt,
23
+ base64Salt,
24
+ key: cachedKey
25
+ };
26
+ }
27
+ function getAnyCachedKey(hashedPassword) {
28
+ const cache = getPasswordCache(hashedPassword);
29
+ const cachedEntry = cache.entries().next().value;
30
+ if (!cachedEntry) {
31
+ return void 0;
32
+ }
33
+ const base64Salt = cachedEntry[0];
34
+ const bytesSalt = base64ToByteArray(base64Salt);
35
+ return {
36
+ salt: bytesSalt,
37
+ base64Salt,
38
+ key: cachedEntry[1]
39
+ };
40
+ }
41
+ function setCachedKey(hashedPassword, salt, key) {
42
+ if (Object.keys(inMemCachedKDF).length > MAX_PASSWORD_CACHES) {
43
+ inMemCachedKDF = {};
44
+ }
45
+ const cache = getPasswordCache(hashedPassword);
46
+ const base64Salt = byteArrayToBase64(salt);
47
+ if (cache.size > MAX_SALT_CACHES) {
48
+ cache.clear();
49
+ }
50
+ cache.set(base64Salt, key);
51
+ }
52
+
53
+ export {
54
+ getCachedKeyBySalt,
55
+ getAnyCachedKey,
56
+ setCachedKey
57
+ };
58
+ //# sourceMappingURL=chunk-H25EBXG5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/controllers/user-storage/encryption/cache.ts"],"sourcesContent":["import { base64ToByteArray, byteArrayToBase64 } from './utils';\n\ntype CachedEntry = {\n salt: Uint8Array;\n base64Salt: string;\n key: Uint8Array;\n};\n\nconst MAX_PASSWORD_CACHES = 3;\nconst MAX_SALT_CACHES = 10;\n\n/**\n * In-Memory Caching derived keys based from a given salt and password.\n */\ntype PasswordMemCachedKDF = {\n [hashedPassword: string]: Map<string, Uint8Array>;\n};\nlet inMemCachedKDF: PasswordMemCachedKDF = {};\nconst getPasswordCache = (hashedPassword: string) => {\n inMemCachedKDF[hashedPassword] ??= new Map();\n return inMemCachedKDF[hashedPassword];\n};\n\n/**\n * Returns a given cached derived key from a hashed password and salt\n *\n * @param hashedPassword - hashed password for cache lookup\n * @param salt - provide salt to receive cached key\n * @returns cached key\n */\nexport function getCachedKeyBySalt(\n hashedPassword: string,\n salt: Uint8Array,\n): CachedEntry | undefined {\n const cache = getPasswordCache(hashedPassword);\n const base64Salt = byteArrayToBase64(salt);\n const cachedKey = cache.get(base64Salt);\n if (!cachedKey) {\n return undefined;\n }\n\n return {\n salt,\n base64Salt,\n key: cachedKey,\n };\n}\n\n/**\n * Gets any cached key for a given hashed password\n *\n * @param hashedPassword - hashed password for cache lookup\n * @returns any (the first) cached key\n */\nexport function getAnyCachedKey(\n hashedPassword: string,\n): CachedEntry | undefined {\n const cache = getPasswordCache(hashedPassword);\n\n // Takes 1 item from an Iterator via Map.entries()\n const cachedEntry: [string, Uint8Array] | undefined = cache\n .entries()\n .next().value;\n\n if (!cachedEntry) {\n return undefined;\n }\n\n const base64Salt = cachedEntry[0];\n const bytesSalt = base64ToByteArray(base64Salt);\n return {\n salt: bytesSalt,\n base64Salt,\n key: cachedEntry[1],\n };\n}\n\n/**\n * Sets a key to the in memory cache.\n * We have set an arbitrary size of 10 cached keys per hashed password.\n *\n * @param hashedPassword - hashed password for cache lookup\n * @param salt - salt to set new derived key\n * @param key - derived key we are setting\n */\nexport function setCachedKey(\n hashedPassword: string,\n salt: Uint8Array,\n key: Uint8Array,\n): void {\n // Max password caches\n if (Object.keys(inMemCachedKDF).length > MAX_PASSWORD_CACHES) {\n inMemCachedKDF = {};\n }\n\n const cache = getPasswordCache(hashedPassword);\n const base64Salt = byteArrayToBase64(salt);\n\n // Max salt caches\n if (cache.size > MAX_SALT_CACHES) {\n cache.clear();\n }\n\n cache.set(base64Salt, key);\n}\n"],"mappings":";;;;;;AAQA,IAAM,sBAAsB;AAC5B,IAAM,kBAAkB;AAQxB,IAAI,iBAAuC,CAAC;AAC5C,IAAM,mBAAmB,CAAC,mBAA2B;AACnD,sEAAmC,oBAAI,IAAI;AAC3C,SAAO,eAAe,cAAc;AACtC;AASO,SAAS,mBACd,gBACA,MACyB;AACzB,QAAM,QAAQ,iBAAiB,cAAc;AAC7C,QAAM,aAAa,kBAAkB,IAAI;AACzC,QAAM,YAAY,MAAM,IAAI,UAAU;AACtC,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,KAAK;AAAA,EACP;AACF;AAQO,SAAS,gBACd,gBACyB;AACzB,QAAM,QAAQ,iBAAiB,cAAc;AAG7C,QAAM,cAAgD,MACnD,QAAQ,EACR,KAAK,EAAE;AAEV,MAAI,CAAC,aAAa;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,YAAY,CAAC;AAChC,QAAM,YAAY,kBAAkB,UAAU;AAC9C,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,KAAK,YAAY,CAAC;AAAA,EACpB;AACF;AAUO,SAAS,aACd,gBACA,MACA,KACM;AAEN,MAAI,OAAO,KAAK,cAAc,EAAE,SAAS,qBAAqB;AAC5D,qBAAiB,CAAC;AAAA,EACpB;AAEA,QAAM,QAAQ,iBAAiB,cAAc;AAC7C,QAAM,aAAa,kBAAkB,IAAI;AAGzC,MAAI,MAAM,OAAO,iBAAiB;AAChC,UAAM,MAAM;AAAA,EACd;AAEA,QAAM,IAAI,YAAY,GAAG;AAC3B;","names":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkYASNOFBVjs = require('./chunk-YASNOFBV.js');
5
+
6
+
7
+ var _chunk5SXXO4MVjs = require('./chunk-5SXXO4MV.js');
8
+
9
+
10
+ var _chunkB6CSNLGEjs = require('./chunk-B6CSNLGE.js');
11
+
12
+
13
+ var _chunkAK7OTIWAjs = require('./chunk-AK7OTIWA.js');
14
+
15
+
16
+
17
+ var _chunkT3FNDVE3js = require('./chunk-T3FNDVE3.js');
18
+
19
+
20
+ var _chunkIGY2S5BCjs = require('./chunk-IGY2S5BC.js');
21
+
22
+ // src/controllers/user-storage/index.ts
23
+ var user_storage_exports = {};
24
+ _chunkIGY2S5BCjs.__export.call(void 0, user_storage_exports, {
25
+ Controller: () => _chunkYASNOFBVjs.UserStorageController,
26
+ Encryption: () => _chunkT3FNDVE3js.encryption_default,
27
+ Mocks: () => fixtures_exports,
28
+ createSHA256Hash: () => _chunkT3FNDVE3js.createSHA256Hash,
29
+ defaultState: () => _chunkYASNOFBVjs.defaultState
30
+ });
31
+
32
+ // src/controllers/user-storage/__fixtures__/index.ts
33
+ var fixtures_exports = {};
34
+ _chunkIGY2S5BCjs.__export.call(void 0, fixtures_exports, {
35
+ MOCK_ENCRYPTED_STORAGE_DATA: () => MOCK_ENCRYPTED_STORAGE_DATA,
36
+ MOCK_STORAGE_DATA: () => MOCK_STORAGE_DATA,
37
+ MOCK_STORAGE_KEY: () => MOCK_STORAGE_KEY,
38
+ MOCK_STORAGE_KEY_SIGNATURE: () => MOCK_STORAGE_KEY_SIGNATURE,
39
+ MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT: () => MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT,
40
+ getMockUserStorageGetResponse: () => getMockUserStorageGetResponse,
41
+ getMockUserStoragePutResponse: () => getMockUserStoragePutResponse
42
+ });
43
+
44
+ // src/controllers/user-storage/__fixtures__/mockStorage.ts
45
+ var MOCK_STORAGE_KEY_SIGNATURE = "mockStorageKey";
46
+ var MOCK_STORAGE_KEY = _chunkT3FNDVE3js.createSHA256Hash.call(void 0, MOCK_STORAGE_KEY_SIGNATURE);
47
+ var MOCK_STORAGE_DATA = JSON.stringify({ hello: "world" });
48
+ var MOCK_ENCRYPTED_STORAGE_DATA = _chunkAK7OTIWAjs.encryption_default.encryptString(
49
+ MOCK_STORAGE_DATA,
50
+ MOCK_STORAGE_KEY
51
+ );
52
+
53
+ // src/controllers/user-storage/__fixtures__/mockResponses.ts
54
+ var MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT = `${_chunk5SXXO4MVjs.USER_STORAGE_ENDPOINT}${_chunkB6CSNLGEjs.createEntryPath.call(void 0,
55
+ "notificationSettings",
56
+ MOCK_STORAGE_KEY
57
+ )}`;
58
+ var MOCK_GET_USER_STORAGE_RESPONSE = {
59
+ HashedKey: "HASHED_KEY",
60
+ Data: MOCK_ENCRYPTED_STORAGE_DATA
61
+ };
62
+ var getMockUserStorageGetResponse = () => {
63
+ return {
64
+ url: MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT,
65
+ requestMethod: "GET",
66
+ response: MOCK_GET_USER_STORAGE_RESPONSE
67
+ };
68
+ };
69
+ var getMockUserStoragePutResponse = () => {
70
+ return {
71
+ url: MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT,
72
+ requestMethod: "PUT",
73
+ response: null
74
+ };
75
+ };
76
+
77
+
78
+
79
+
80
+ exports.fixtures_exports = fixtures_exports; exports.user_storage_exports = user_storage_exports;
81
+ //# sourceMappingURL=chunk-H4TDS65R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/controllers/user-storage/index.ts","../src/controllers/user-storage/__fixtures__/index.ts","../src/controllers/user-storage/__fixtures__/mockStorage.ts","../src/controllers/user-storage/__fixtures__/mockResponses.ts"],"names":["encryption_default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,6BAA6B;AACnC,IAAM,mBAAmB,iBAAiB,0BAA0B;AACpE,IAAM,oBAAoB,KAAK,UAAU,EAAE,OAAO,QAAQ,CAAC;AAC3D,IAAM,8BAA8BA,oBAAW;AAAA,EACpD;AAAA,EACA;AACF;;;ACGO,IAAM,2CAA2C,GAAG,qBAAqB,GAAG;AAAA,EACjF;AAAA,EACA;AACF,CAAC;AAED,IAAM,iCAAyD;AAAA,EAC7D,WAAW;AAAA,EACX,MAAM;AACR;AAEO,IAAM,gCAAgC,MAAM;AACjD,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,gCAAgC,MAAM;AACjD,SAAO;AAAA,IACL,KAAK;AAAA,IACL,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AACF","sourcesContent":["import Controller from './UserStorageController';\n\nexport { Controller };\nexport * from './UserStorageController';\nexport * from './encryption';\nexport * as Mocks from './__fixtures__';\n","export * from './mockResponses';\nexport * from './mockStorage';\n","import encryption, { createSHA256Hash } from '../encryption';\n\nexport const MOCK_STORAGE_KEY_SIGNATURE = 'mockStorageKey';\nexport const MOCK_STORAGE_KEY = createSHA256Hash(MOCK_STORAGE_KEY_SIGNATURE);\nexport const MOCK_STORAGE_DATA = JSON.stringify({ hello: 'world' });\nexport const MOCK_ENCRYPTED_STORAGE_DATA = encryption.encryptString(\n MOCK_STORAGE_DATA,\n MOCK_STORAGE_KEY,\n);\n","import { createEntryPath } from '../schema';\nimport type { GetUserStorageResponse } from '../services';\nimport { USER_STORAGE_ENDPOINT } from '../services';\nimport { MOCK_ENCRYPTED_STORAGE_DATA, MOCK_STORAGE_KEY } from './mockStorage';\n\ntype MockResponse = {\n url: string;\n requestMethod: 'GET' | 'POST' | 'PUT';\n response: unknown;\n};\n\nexport const MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT = `${USER_STORAGE_ENDPOINT}${createEntryPath(\n 'notificationSettings',\n MOCK_STORAGE_KEY,\n)}`;\n\nconst MOCK_GET_USER_STORAGE_RESPONSE: GetUserStorageResponse = {\n HashedKey: 'HASHED_KEY',\n Data: MOCK_ENCRYPTED_STORAGE_DATA,\n};\n\nexport const getMockUserStorageGetResponse = () => {\n return {\n url: MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT,\n requestMethod: 'GET',\n response: MOCK_GET_USER_STORAGE_RESPONSE,\n } satisfies MockResponse;\n};\n\nexport const getMockUserStoragePutResponse = () => {\n return {\n url: MOCK_USER_STORAGE_NOTIFICATIONS_ENDPOINT,\n requestMethod: 'PUT',\n response: null,\n } satisfies MockResponse;\n};\n"]}
@@ -1,4 +1,9 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var __accessCheck = (obj, member, msg) => {
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+ var __accessCheck = (obj, member, msg) => {
2
7
  if (!member.has(obj))
3
8
  throw TypeError("Cannot " + msg);
4
9
  };
@@ -26,5 +31,6 @@ var __privateMethod = (obj, member, method) => {
26
31
 
27
32
 
28
33
 
29
- exports.__privateGet = __privateGet; exports.__privateAdd = __privateAdd; exports.__privateSet = __privateSet; exports.__privateMethod = __privateMethod;
30
- //# sourceMappingURL=chunk-Z4BLTVTB.js.map
34
+
35
+ exports.__export = __export; exports.__privateGet = __privateGet; exports.__privateAdd = __privateAdd; exports.__privateSet = __privateSet; exports.__privateMethod = __privateMethod;
36
+ //# sourceMappingURL=chunk-IGY2S5BC.js.map
@@ -0,0 +1,30 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/controllers/authentication/auth-snap-requests.ts
2
+ var _snapsutils = require('@metamask/snaps-utils');
3
+ var snapId = "npm:@metamask/message-signing-snap";
4
+ function createSnapPublicKeyRequest() {
5
+ return {
6
+ snapId,
7
+ origin: "",
8
+ handler: _snapsutils.HandlerType.OnRpcRequest,
9
+ request: {
10
+ method: "getPublicKey"
11
+ }
12
+ };
13
+ }
14
+ function createSnapSignMessageRequest(message) {
15
+ return {
16
+ snapId,
17
+ origin: "",
18
+ handler: _snapsutils.HandlerType.OnRpcRequest,
19
+ request: {
20
+ method: "signMessage",
21
+ params: { message }
22
+ }
23
+ };
24
+ }
25
+
26
+
27
+
28
+
29
+ exports.createSnapPublicKeyRequest = createSnapPublicKeyRequest; exports.createSnapSignMessageRequest = createSnapSignMessageRequest;
30
+ //# sourceMappingURL=chunk-IPSBQ3MS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/controllers/authentication/auth-snap-requests.ts"],"names":[],"mappings":";AAEA,SAAS,mBAAmB;AAI5B,IAAM,SAAS;AAOR,SAAS,6BAA6C;AAC3D,SAAO;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,IACR,SAAS,YAAY;AAAA,IACrB,SAAS;AAAA,MACP,QAAQ;AAAA,IACV;AAAA,EACF;AACF;AAQO,SAAS,6BACd,SACgB;AAChB,SAAO;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,IACR,SAAS,YAAY;AAAA,IACrB,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ,EAAE,QAAQ;AAAA,IACpB;AAAA,EACF;AACF","sourcesContent":["import type { HandleSnapRequest } from '@metamask/snaps-controllers';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport { HandlerType } from '@metamask/snaps-utils';\n\ntype SnapRPCRequest = Parameters<HandleSnapRequest['handler']>[0];\n\nconst snapId = 'npm:@metamask/message-signing-snap' as SnapId;\n\n/**\n * Constructs Request to Message Signing Snap to get Public Key\n *\n * @returns Snap Public Key Request\n */\nexport function createSnapPublicKeyRequest(): SnapRPCRequest {\n return {\n snapId,\n origin: '',\n handler: HandlerType.OnRpcRequest,\n request: {\n method: 'getPublicKey',\n },\n };\n}\n\n/**\n * Constructs Request to get Message Signing Snap to sign a message.\n *\n * @param message - message to sign\n * @returns Snap Sign Message Request\n */\nexport function createSnapSignMessageRequest(\n message: `metamask:${string}`,\n): SnapRPCRequest {\n return {\n snapId,\n origin: '',\n handler: HandlerType.OnRpcRequest,\n request: {\n method: 'signMessage',\n params: { message },\n },\n };\n}\n"]}
@@ -3,25 +3,23 @@ import {
3
3
  authenticate,
4
4
  authorizeOIDC,
5
5
  getNonce
6
- } from "./chunk-CYGZ4WLJ.mjs";
6
+ } from "./chunk-WB6MUIML.mjs";
7
7
  import {
8
8
  ValidationError
9
- } from "./chunk-BHVT2QEA.mjs";
10
- import {
11
- SESSION_LIFETIME_MS
12
- } from "./chunk-KKRIOEXD.mjs";
9
+ } from "./chunk-TFFQFIJV.mjs";
13
10
  import {
14
11
  __privateAdd,
15
12
  __privateGet,
16
13
  __privateMethod,
17
14
  __privateSet
18
- } from "./chunk-XUI43LEZ.mjs";
15
+ } from "./chunk-U5UIDVOO.mjs";
19
16
 
20
17
  // src/sdk/authentication-jwt-bearer/flow-siwe.ts
21
18
  import { SiweMessage } from "siwe";
22
19
  var _config, _options, _signer, _getAuthSession, getAuthSession_fn, _login, login_fn, _createSiWELoginRawMessage, createSiWELoginRawMessage_fn, _assertSigner, assertSigner_fn;
23
20
  var SIWEJwtBearerAuth = class {
24
21
  constructor(config, options) {
22
+ // convert expiresIn from seconds to milliseconds and use 90% of expiresIn
25
23
  __privateAdd(this, _getAuthSession);
26
24
  __privateAdd(this, _login);
27
25
  __privateAdd(this, _createSiWELoginRawMessage);
@@ -71,7 +69,8 @@ getAuthSession_fn = async function() {
71
69
  }
72
70
  const currentTime = Date.now();
73
71
  const sessionAge = currentTime - auth.token.obtainedAt;
74
- if (sessionAge < SESSION_LIFETIME_MS) {
72
+ const refreshThreshold = auth.token.expiresIn * 1e3 * 0.9;
73
+ if (sessionAge < refreshThreshold) {
75
74
  return auth;
76
75
  }
77
76
  return null;
@@ -91,7 +90,8 @@ login_fn = async function() {
91
90
  );
92
91
  const tokenResponse = await authorizeOIDC(
93
92
  authResponse.token,
94
- __privateGet(this, _config).env
93
+ __privateGet(this, _config).env,
94
+ __privateGet(this, _config).platform
95
95
  );
96
96
  const result = {
97
97
  profile: authResponse.profile,
@@ -123,4 +123,4 @@ assertSigner_fn = function(signer) {
123
123
  export {
124
124
  SIWEJwtBearerAuth
125
125
  };
126
- //# sourceMappingURL=chunk-4NGEEDGV.mjs.map
126
+ //# sourceMappingURL=chunk-JLDFMYAH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sdk/authentication-jwt-bearer/flow-siwe.ts"],"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"],"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;","names":[]}