@metamask/snaps-jest 5.0.0 → 6.0.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 (519) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/dist/chunk-265BMFM5.js +13 -0
  3. package/dist/chunk-265BMFM5.js.map +1 -0
  4. package/dist/chunk-2JTGBHPR.js +14 -0
  5. package/dist/chunk-2JTGBHPR.js.map +1 -0
  6. package/dist/chunk-2X23DUDP.mjs +22 -0
  7. package/dist/chunk-2X23DUDP.mjs.map +1 -0
  8. package/dist/chunk-2YE2P5BZ.js +36 -0
  9. package/dist/chunk-2YE2P5BZ.js.map +1 -0
  10. package/dist/chunk-3FNLFVV2.js +15 -0
  11. package/dist/chunk-3FNLFVV2.js.map +1 -0
  12. package/dist/chunk-4SC3HVI5.mjs +104 -0
  13. package/dist/chunk-4SC3HVI5.mjs.map +1 -0
  14. package/dist/chunk-55J6XMHW.js +1 -0
  15. package/dist/chunk-55J6XMHW.js.map +1 -0
  16. package/dist/chunk-57SGDM5B.mjs +69 -0
  17. package/dist/chunk-57SGDM5B.mjs.map +1 -0
  18. package/dist/chunk-5PLDD7ZC.js +153 -0
  19. package/dist/chunk-5PLDD7ZC.js.map +1 -0
  20. package/dist/chunk-5ZFHFICZ.mjs +1 -0
  21. package/dist/chunk-5ZFHFICZ.mjs.map +1 -0
  22. package/dist/chunk-6HHV6YFQ.mjs +1 -0
  23. package/dist/chunk-6HHV6YFQ.mjs.map +1 -0
  24. package/dist/chunk-6KXCBUNZ.mjs +11 -0
  25. package/dist/chunk-6KXCBUNZ.mjs.map +1 -0
  26. package/dist/chunk-6MVV44M5.mjs +76 -0
  27. package/dist/chunk-6MVV44M5.mjs.map +1 -0
  28. package/dist/chunk-74TIKA2T.mjs +34 -0
  29. package/dist/chunk-74TIKA2T.mjs.map +1 -0
  30. package/dist/chunk-7BFTEFLS.mjs +39 -0
  31. package/dist/chunk-7BFTEFLS.mjs.map +1 -0
  32. package/dist/chunk-7J34R6YW.mjs +233 -0
  33. package/dist/chunk-7J34R6YW.mjs.map +1 -0
  34. package/dist/chunk-7VILST6M.mjs +134 -0
  35. package/dist/chunk-7VILST6M.mjs.map +1 -0
  36. package/dist/chunk-7YD4IW43.mjs +57 -0
  37. package/dist/chunk-7YD4IW43.mjs.map +1 -0
  38. package/dist/chunk-ALRZENWP.mjs +42 -0
  39. package/dist/chunk-ALRZENWP.mjs.map +1 -0
  40. package/dist/chunk-B4QZXXQY.js +134 -0
  41. package/dist/chunk-B4QZXXQY.js.map +1 -0
  42. package/dist/chunk-B73P64TE.mjs +28 -0
  43. package/dist/chunk-B73P64TE.mjs.map +1 -0
  44. package/dist/chunk-CCYBLBVL.mjs +91 -0
  45. package/dist/chunk-CCYBLBVL.mjs.map +1 -0
  46. package/dist/chunk-DR6Y7IVX.js +1 -0
  47. package/dist/chunk-DR6Y7IVX.js.map +1 -0
  48. package/dist/chunk-EMTW3H54.js +20 -0
  49. package/dist/chunk-EMTW3H54.js.map +1 -0
  50. package/dist/chunk-FP4H3ADT.mjs +20 -0
  51. package/dist/chunk-FP4H3ADT.mjs.map +1 -0
  52. package/dist/chunk-GECE47HW.js +1 -0
  53. package/dist/chunk-GECE47HW.js.map +1 -0
  54. package/dist/chunk-GMTKFAWO.js +42 -0
  55. package/dist/chunk-GMTKFAWO.js.map +1 -0
  56. package/dist/chunk-H2464AXT.mjs +33 -0
  57. package/dist/chunk-H2464AXT.mjs.map +1 -0
  58. package/dist/chunk-HBLJOACO.mjs +97 -0
  59. package/dist/chunk-HBLJOACO.mjs.map +1 -0
  60. package/dist/chunk-HNH5UAKZ.js +80 -0
  61. package/dist/chunk-HNH5UAKZ.js.map +1 -0
  62. package/dist/chunk-HROOL3VI.js +1 -0
  63. package/dist/chunk-HROOL3VI.js.map +1 -0
  64. package/dist/chunk-IH7UNS5A.mjs +36 -0
  65. package/dist/chunk-IH7UNS5A.mjs.map +1 -0
  66. package/dist/chunk-ISWZ7XZ5.js +39 -0
  67. package/dist/chunk-ISWZ7XZ5.js.map +1 -0
  68. package/dist/chunk-IXKO6X55.mjs +15 -0
  69. package/dist/chunk-IXKO6X55.mjs.map +1 -0
  70. package/dist/chunk-J4ZPUCLX.mjs +8 -0
  71. package/dist/chunk-J4ZPUCLX.mjs.map +1 -0
  72. package/dist/chunk-JMDSN227.mjs +25 -0
  73. package/dist/chunk-JMDSN227.mjs.map +1 -0
  74. package/dist/chunk-JUNUGLG4.js +104 -0
  75. package/dist/chunk-JUNUGLG4.js.map +1 -0
  76. package/dist/chunk-KIQOUUEZ.mjs +1 -0
  77. package/dist/chunk-KIQOUUEZ.mjs.map +1 -0
  78. package/dist/chunk-KNJNL723.mjs +39 -0
  79. package/dist/chunk-KNJNL723.mjs.map +1 -0
  80. package/dist/chunk-KSIBNOB2.mjs +13 -0
  81. package/dist/chunk-KSIBNOB2.mjs.map +1 -0
  82. package/dist/chunk-LACTK6EO.js +33 -0
  83. package/dist/chunk-LACTK6EO.js.map +1 -0
  84. package/dist/chunk-LB4R3BUA.mjs +36 -0
  85. package/dist/chunk-LB4R3BUA.mjs.map +1 -0
  86. package/dist/chunk-LBC2OGSN.js +48 -0
  87. package/dist/chunk-LBC2OGSN.js.map +1 -0
  88. package/dist/chunk-LHU3EHLI.mjs +137 -0
  89. package/dist/chunk-LHU3EHLI.mjs.map +1 -0
  90. package/dist/chunk-LXSNRZV4.js +97 -0
  91. package/dist/chunk-LXSNRZV4.js.map +1 -0
  92. package/dist/chunk-LYK6EGZU.mjs +80 -0
  93. package/dist/chunk-LYK6EGZU.mjs.map +1 -0
  94. package/dist/chunk-MF43OG3Z.mjs +1 -0
  95. package/dist/chunk-MF43OG3Z.mjs.map +1 -0
  96. package/dist/chunk-MJHR5RTY.js +21 -0
  97. package/dist/chunk-MJHR5RTY.js.map +1 -0
  98. package/dist/chunk-MPZOXW6I.mjs +48 -0
  99. package/dist/chunk-MPZOXW6I.mjs.map +1 -0
  100. package/dist/chunk-N6MAO223.js +60 -0
  101. package/dist/chunk-N6MAO223.js.map +1 -0
  102. package/dist/chunk-NTOY6Y4Q.mjs +1 -0
  103. package/dist/chunk-NTOY6Y4Q.mjs.map +1 -0
  104. package/dist/chunk-ORO3T6BU.mjs +24 -0
  105. package/dist/chunk-ORO3T6BU.mjs.map +1 -0
  106. package/dist/chunk-PHUTP7NB.js +25 -0
  107. package/dist/chunk-PHUTP7NB.js.map +1 -0
  108. package/dist/chunk-PZDTZGSI.js +34 -0
  109. package/dist/chunk-PZDTZGSI.js.map +1 -0
  110. package/dist/chunk-Q2OQXAUM.mjs +35 -0
  111. package/dist/chunk-Q2OQXAUM.mjs.map +1 -0
  112. package/dist/chunk-RAMAN5RM.js +24 -0
  113. package/dist/{cjs/internals/simulation/methods/hooks/show-dialog.js.map → chunk-RAMAN5RM.js.map} +1 -1
  114. package/dist/chunk-RD7GQCPL.js +22 -0
  115. package/dist/chunk-RD7GQCPL.js.map +1 -0
  116. package/dist/chunk-RQKT6BQ2.mjs +1 -0
  117. package/dist/chunk-RQKT6BQ2.mjs.map +1 -0
  118. package/dist/chunk-SLU4FNKX.mjs +60 -0
  119. package/dist/chunk-SLU4FNKX.mjs.map +1 -0
  120. package/dist/chunk-SQJOQ7AF.js +137 -0
  121. package/dist/chunk-SQJOQ7AF.js.map +1 -0
  122. package/dist/chunk-T2BE4O5H.js +233 -0
  123. package/dist/chunk-T2BE4O5H.js.map +1 -0
  124. package/dist/chunk-T2PHS5FY.js +28 -0
  125. package/dist/chunk-T2PHS5FY.js.map +1 -0
  126. package/dist/chunk-TBDYQSRT.mjs +16 -0
  127. package/dist/chunk-TBDYQSRT.mjs.map +1 -0
  128. package/dist/chunk-TO46ICOZ.js +57 -0
  129. package/dist/chunk-TO46ICOZ.js.map +1 -0
  130. package/dist/chunk-TVD4SWH7.js +16 -0
  131. package/dist/chunk-TVD4SWH7.js.map +1 -0
  132. package/dist/chunk-TZB4LBT7.js +8 -0
  133. package/dist/chunk-TZB4LBT7.js.map +1 -0
  134. package/dist/chunk-U5BLLHIU.js +1 -0
  135. package/dist/chunk-U5BLLHIU.js.map +1 -0
  136. package/dist/chunk-V6LFAN3U.mjs +1 -0
  137. package/dist/chunk-V6LFAN3U.mjs.map +1 -0
  138. package/dist/chunk-VHJZERIC.js +1 -0
  139. package/dist/chunk-VHJZERIC.js.map +1 -0
  140. package/dist/chunk-VOYBI6T4.mjs +22 -0
  141. package/dist/chunk-VOYBI6T4.mjs.map +1 -0
  142. package/dist/chunk-VXPCUDBI.js +36 -0
  143. package/dist/chunk-VXPCUDBI.js.map +1 -0
  144. package/dist/chunk-WDYPMEZB.js +22 -0
  145. package/dist/chunk-WDYPMEZB.js.map +1 -0
  146. package/dist/chunk-WFBQPYSV.js +91 -0
  147. package/dist/chunk-WFBQPYSV.js.map +1 -0
  148. package/dist/chunk-WH5C5WIZ.mjs +21 -0
  149. package/dist/chunk-WH5C5WIZ.mjs.map +1 -0
  150. package/dist/chunk-WHGYMK5B.js +1 -0
  151. package/dist/chunk-WHGYMK5B.js.map +1 -0
  152. package/dist/chunk-WIFOID2P.mjs +153 -0
  153. package/dist/chunk-WIFOID2P.mjs.map +1 -0
  154. package/dist/chunk-XAOCS6ZD.js +69 -0
  155. package/dist/chunk-XAOCS6ZD.js.map +1 -0
  156. package/dist/chunk-XK5HPZZC.mjs +14 -0
  157. package/dist/chunk-XK5HPZZC.mjs.map +1 -0
  158. package/dist/chunk-XKJHFUHE.js +11 -0
  159. package/dist/chunk-XKJHFUHE.js.map +1 -0
  160. package/dist/chunk-XWGECIXI.js +39 -0
  161. package/dist/chunk-XWGECIXI.js.map +1 -0
  162. package/dist/chunk-Y3JC4WGW.js +35 -0
  163. package/dist/chunk-Y3JC4WGW.js.map +1 -0
  164. package/dist/chunk-ZAQZRYPW.js +76 -0
  165. package/dist/chunk-ZAQZRYPW.js.map +1 -0
  166. package/dist/chunk-ZG33OGC3.mjs +1 -0
  167. package/dist/chunk-ZG33OGC3.mjs.map +1 -0
  168. package/dist/chunk-ZTX624YO.js +1 -0
  169. package/dist/chunk-ZTX624YO.js.map +1 -0
  170. package/dist/environment.js +47 -0
  171. package/dist/environment.js.map +1 -0
  172. package/dist/environment.mjs +47 -0
  173. package/dist/environment.mjs.map +1 -0
  174. package/dist/helpers.js +44 -0
  175. package/dist/helpers.js.map +1 -0
  176. package/dist/helpers.mjs +44 -0
  177. package/dist/helpers.mjs.map +1 -0
  178. package/dist/index.js +54 -0
  179. package/dist/index.js.map +1 -0
  180. package/dist/index.mjs +54 -0
  181. package/dist/index.mjs.map +1 -0
  182. package/dist/internals/environment.js +8 -0
  183. package/dist/internals/environment.js.map +1 -0
  184. package/dist/internals/environment.mjs +8 -0
  185. package/dist/internals/environment.mjs.map +1 -0
  186. package/dist/internals/index.js +123 -0
  187. package/dist/internals/index.js.map +1 -0
  188. package/dist/internals/index.mjs +123 -0
  189. package/dist/internals/index.mjs.map +1 -0
  190. package/dist/internals/logger.js +8 -0
  191. package/dist/internals/logger.js.map +1 -0
  192. package/dist/internals/logger.mjs +8 -0
  193. package/dist/internals/logger.mjs.map +1 -0
  194. package/dist/internals/request.js +40 -0
  195. package/dist/internals/request.js.map +1 -0
  196. package/dist/internals/request.mjs +40 -0
  197. package/dist/internals/request.mjs.map +1 -0
  198. package/dist/internals/server.js +9 -0
  199. package/dist/internals/server.js.map +1 -0
  200. package/dist/internals/server.mjs +9 -0
  201. package/dist/internals/server.mjs.map +1 -0
  202. package/dist/internals/simulation/constants.js +12 -0
  203. package/dist/internals/simulation/constants.js.map +1 -0
  204. package/dist/internals/simulation/constants.mjs +12 -0
  205. package/dist/internals/simulation/constants.mjs.map +1 -0
  206. package/dist/internals/simulation/controllers.js +26 -0
  207. package/dist/internals/simulation/controllers.js.map +1 -0
  208. package/dist/internals/simulation/controllers.mjs +26 -0
  209. package/dist/internals/simulation/controllers.mjs.map +1 -0
  210. package/dist/internals/simulation/files.js +8 -0
  211. package/dist/internals/simulation/files.js.map +1 -0
  212. package/dist/internals/simulation/files.mjs +8 -0
  213. package/dist/internals/simulation/files.mjs.map +1 -0
  214. package/dist/internals/simulation/index.js +90 -0
  215. package/dist/internals/simulation/index.js.map +1 -0
  216. package/dist/internals/simulation/index.mjs +90 -0
  217. package/dist/internals/simulation/index.mjs.map +1 -0
  218. package/dist/internals/simulation/interface.js +16 -0
  219. package/dist/internals/simulation/interface.js.map +1 -0
  220. package/dist/internals/simulation/interface.mjs +16 -0
  221. package/dist/internals/simulation/interface.mjs.map +1 -0
  222. package/dist/internals/simulation/methods/constants.js +12 -0
  223. package/dist/internals/simulation/methods/constants.js.map +1 -0
  224. package/dist/internals/simulation/methods/constants.mjs +12 -0
  225. package/dist/internals/simulation/methods/constants.mjs.map +1 -0
  226. package/dist/internals/simulation/methods/hooks/encryption.js +10 -0
  227. package/dist/internals/simulation/methods/hooks/encryption.js.map +1 -0
  228. package/dist/internals/simulation/methods/hooks/encryption.mjs +10 -0
  229. package/dist/internals/simulation/methods/hooks/encryption.mjs.map +1 -0
  230. package/dist/internals/simulation/methods/hooks/get-locale.js +8 -0
  231. package/dist/internals/simulation/methods/hooks/get-locale.js.map +1 -0
  232. package/dist/internals/simulation/methods/hooks/get-locale.mjs +8 -0
  233. package/dist/internals/simulation/methods/hooks/get-locale.mjs.map +1 -0
  234. package/dist/internals/simulation/methods/hooks/index.js +45 -0
  235. package/dist/internals/simulation/methods/hooks/index.js.map +1 -0
  236. package/dist/internals/simulation/methods/hooks/index.mjs +45 -0
  237. package/dist/internals/simulation/methods/hooks/index.mjs.map +1 -0
  238. package/dist/internals/simulation/methods/hooks/interface.js +10 -0
  239. package/dist/internals/simulation/methods/hooks/interface.js.map +1 -0
  240. package/dist/internals/simulation/methods/hooks/interface.mjs +10 -0
  241. package/dist/internals/simulation/methods/hooks/interface.mjs.map +1 -0
  242. package/dist/internals/simulation/methods/hooks/notifications.js +16 -0
  243. package/dist/internals/simulation/methods/hooks/notifications.js.map +1 -0
  244. package/dist/internals/simulation/methods/hooks/notifications.mjs +16 -0
  245. package/dist/internals/simulation/methods/hooks/notifications.mjs.map +1 -0
  246. package/dist/internals/simulation/methods/hooks/show-dialog.js +14 -0
  247. package/dist/internals/simulation/methods/hooks/show-dialog.js.map +1 -0
  248. package/dist/internals/simulation/methods/hooks/show-dialog.mjs +14 -0
  249. package/dist/internals/simulation/methods/hooks/show-dialog.mjs.map +1 -0
  250. package/dist/internals/simulation/methods/hooks/state.js +18 -0
  251. package/dist/internals/simulation/methods/hooks/state.js.map +1 -0
  252. package/dist/internals/simulation/methods/hooks/state.mjs +18 -0
  253. package/dist/internals/simulation/methods/hooks/state.mjs.map +1 -0
  254. package/dist/internals/simulation/methods/index.js +29 -0
  255. package/dist/internals/simulation/methods/index.js.map +1 -0
  256. package/dist/internals/simulation/methods/index.mjs +29 -0
  257. package/dist/internals/simulation/methods/index.mjs.map +1 -0
  258. package/dist/internals/simulation/methods/specifications.js +28 -0
  259. package/dist/internals/simulation/methods/specifications.js.map +1 -0
  260. package/dist/internals/simulation/methods/specifications.mjs +28 -0
  261. package/dist/internals/simulation/methods/specifications.mjs.map +1 -0
  262. package/dist/internals/simulation/middleware/engine.js +15 -0
  263. package/dist/internals/simulation/middleware/engine.js.map +1 -0
  264. package/dist/internals/simulation/middleware/engine.mjs +15 -0
  265. package/dist/internals/simulation/middleware/engine.mjs.map +1 -0
  266. package/dist/internals/simulation/middleware/index.js +16 -0
  267. package/dist/internals/simulation/middleware/index.js.map +1 -0
  268. package/dist/internals/simulation/middleware/index.mjs +16 -0
  269. package/dist/internals/simulation/middleware/index.mjs.map +1 -0
  270. package/dist/internals/simulation/middleware/internal-methods/accounts.js +8 -0
  271. package/dist/internals/simulation/middleware/internal-methods/accounts.js.map +1 -0
  272. package/dist/internals/simulation/middleware/internal-methods/accounts.mjs +8 -0
  273. package/dist/internals/simulation/middleware/internal-methods/accounts.mjs.map +1 -0
  274. package/dist/internals/simulation/middleware/internal-methods/index.js +11 -0
  275. package/dist/internals/simulation/middleware/internal-methods/index.js.map +1 -0
  276. package/dist/internals/simulation/middleware/internal-methods/index.mjs +11 -0
  277. package/dist/internals/simulation/middleware/internal-methods/index.mjs.map +1 -0
  278. package/dist/internals/simulation/middleware/internal-methods/middleware.js +10 -0
  279. package/dist/internals/simulation/middleware/internal-methods/middleware.js.map +1 -0
  280. package/dist/internals/simulation/middleware/internal-methods/middleware.mjs +10 -0
  281. package/dist/internals/simulation/middleware/internal-methods/middleware.mjs.map +1 -0
  282. package/dist/internals/simulation/middleware/internal-methods/provider-state.js +8 -0
  283. package/dist/internals/simulation/middleware/internal-methods/provider-state.js.map +1 -0
  284. package/dist/internals/simulation/middleware/internal-methods/provider-state.mjs +8 -0
  285. package/dist/internals/simulation/middleware/internal-methods/provider-state.mjs.map +1 -0
  286. package/dist/internals/simulation/middleware/mock.js +9 -0
  287. package/dist/internals/simulation/middleware/mock.js.map +1 -0
  288. package/dist/internals/simulation/middleware/mock.mjs +9 -0
  289. package/dist/internals/simulation/middleware/mock.mjs.map +1 -0
  290. package/dist/internals/simulation/options.js +9 -0
  291. package/dist/internals/simulation/options.js.map +1 -0
  292. package/dist/internals/simulation/options.mjs +9 -0
  293. package/dist/internals/simulation/options.mjs.map +1 -0
  294. package/dist/internals/simulation/simulation.js +39 -0
  295. package/dist/internals/simulation/simulation.js.map +1 -0
  296. package/dist/internals/simulation/simulation.mjs +39 -0
  297. package/dist/internals/simulation/simulation.mjs.map +1 -0
  298. package/dist/internals/simulation/store/index.js +44 -0
  299. package/dist/internals/simulation/store/index.js.map +1 -0
  300. package/dist/internals/simulation/store/index.mjs +44 -0
  301. package/dist/internals/simulation/store/index.mjs.map +1 -0
  302. package/dist/internals/simulation/store/mocks.js +16 -0
  303. package/dist/internals/simulation/store/mocks.js.map +1 -0
  304. package/dist/internals/simulation/store/mocks.mjs +16 -0
  305. package/dist/internals/simulation/store/mocks.mjs.map +1 -0
  306. package/dist/internals/simulation/store/notifications.js +16 -0
  307. package/dist/internals/simulation/store/notifications.js.map +1 -0
  308. package/dist/internals/simulation/store/notifications.mjs +16 -0
  309. package/dist/internals/simulation/store/notifications.mjs.map +1 -0
  310. package/dist/internals/simulation/store/state.js +14 -0
  311. package/dist/internals/simulation/store/state.js.map +1 -0
  312. package/dist/internals/simulation/store/state.mjs +14 -0
  313. package/dist/internals/simulation/store/state.mjs.map +1 -0
  314. package/dist/internals/simulation/store/store.js +12 -0
  315. package/dist/internals/simulation/store/store.js.map +1 -0
  316. package/dist/internals/simulation/store/store.mjs +12 -0
  317. package/dist/internals/simulation/store/store.mjs.map +1 -0
  318. package/dist/internals/simulation/store/ui.js +16 -0
  319. package/dist/internals/simulation/store/ui.js.map +1 -0
  320. package/dist/internals/simulation/store/ui.mjs +16 -0
  321. package/dist/internals/simulation/store/ui.mjs.map +1 -0
  322. package/dist/internals/structs.js +18 -0
  323. package/dist/internals/structs.js.map +1 -0
  324. package/dist/internals/structs.mjs +18 -0
  325. package/dist/internals/structs.mjs.map +1 -0
  326. package/dist/matchers.js +50 -0
  327. package/dist/matchers.js.map +1 -0
  328. package/dist/matchers.mjs +50 -0
  329. package/dist/matchers.mjs.map +1 -0
  330. package/dist/options.js +8 -0
  331. package/dist/options.js.map +1 -0
  332. package/dist/options.mjs +8 -0
  333. package/dist/options.mjs.map +1 -0
  334. package/dist/setup.js +39 -0
  335. package/dist/setup.js.map +1 -0
  336. package/dist/setup.mjs +39 -0
  337. package/dist/setup.mjs.map +1 -0
  338. package/dist/tsconfig.build.tsbuildinfo +1 -0
  339. package/dist/types/vendor/readable-stream.d.js +1 -0
  340. package/dist/types/vendor/readable-stream.d.js.map +1 -0
  341. package/dist/types/vendor/readable-stream.d.mjs +1 -0
  342. package/dist/types/vendor/readable-stream.d.mjs.map +1 -0
  343. package/dist/types.js +2 -0
  344. package/dist/types.js.map +1 -0
  345. package/dist/types.mjs +2 -0
  346. package/dist/types.mjs.map +1 -0
  347. package/jest-preset.js +1 -1
  348. package/package.json +24 -20
  349. package/dist/cjs/environment.js +0 -144
  350. package/dist/cjs/environment.js.map +0 -1
  351. package/dist/cjs/helpers.js +0 -142
  352. package/dist/cjs/helpers.js.map +0 -1
  353. package/dist/cjs/index.js +0 -42
  354. package/dist/cjs/index.js.map +0 -1
  355. package/dist/cjs/internals/environment.js +0 -19
  356. package/dist/cjs/internals/environment.js.map +0 -1
  357. package/dist/cjs/internals/index.js +0 -25
  358. package/dist/cjs/internals/index.js.map +0 -1
  359. package/dist/cjs/internals/logger.js +0 -14
  360. package/dist/cjs/internals/logger.js.map +0 -1
  361. package/dist/cjs/internals/request.js +0 -69
  362. package/dist/cjs/internals/request.js.map +0 -1
  363. package/dist/cjs/internals/server.js +0 -71
  364. package/dist/cjs/internals/server.js.map +0 -1
  365. package/dist/cjs/internals/simulation/constants.js +0 -29
  366. package/dist/cjs/internals/simulation/constants.js.map +0 -1
  367. package/dist/cjs/internals/simulation/controllers.js +0 -95
  368. package/dist/cjs/internals/simulation/controllers.js.map +0 -1
  369. package/dist/cjs/internals/simulation/files.js +0 -22
  370. package/dist/cjs/internals/simulation/files.js.map +0 -1
  371. package/dist/cjs/internals/simulation/index.js +0 -24
  372. package/dist/cjs/internals/simulation/index.js.map +0 -1
  373. package/dist/cjs/internals/simulation/interface.js +0 -98
  374. package/dist/cjs/internals/simulation/interface.js.map +0 -1
  375. package/dist/cjs/internals/simulation/methods/constants.js +0 -84
  376. package/dist/cjs/internals/simulation/methods/constants.js.map +0 -1
  377. package/dist/cjs/internals/simulation/methods/hooks/encryption.js +0 -33
  378. package/dist/cjs/internals/simulation/methods/hooks/encryption.js.map +0 -1
  379. package/dist/cjs/internals/simulation/methods/hooks/get-locale.js +0 -17
  380. package/dist/cjs/internals/simulation/methods/hooks/get-locale.js.map +0 -1
  381. package/dist/cjs/internals/simulation/methods/hooks/index.js +0 -25
  382. package/dist/cjs/internals/simulation/methods/hooks/index.js.map +0 -1
  383. package/dist/cjs/internals/simulation/methods/hooks/interface.js +0 -26
  384. package/dist/cjs/internals/simulation/methods/hooks/interface.js.map +0 -1
  385. package/dist/cjs/internals/simulation/methods/hooks/notifications.js +0 -66
  386. package/dist/cjs/internals/simulation/methods/hooks/notifications.js.map +0 -1
  387. package/dist/cjs/internals/simulation/methods/hooks/show-dialog.js +0 -43
  388. package/dist/cjs/internals/simulation/methods/hooks/state.js +0 -80
  389. package/dist/cjs/internals/simulation/methods/hooks/state.js.map +0 -1
  390. package/dist/cjs/internals/simulation/methods/index.js +0 -20
  391. package/dist/cjs/internals/simulation/methods/index.js.map +0 -1
  392. package/dist/cjs/internals/simulation/methods/specifications.js +0 -81
  393. package/dist/cjs/internals/simulation/methods/specifications.js.map +0 -1
  394. package/dist/cjs/internals/simulation/middleware/engine.js +0 -31
  395. package/dist/cjs/internals/simulation/middleware/engine.js.map +0 -1
  396. package/dist/cjs/internals/simulation/middleware/index.js +0 -20
  397. package/dist/cjs/internals/simulation/middleware/index.js.map +0 -1
  398. package/dist/cjs/internals/simulation/middleware/internal-methods/accounts.js +0 -30
  399. package/dist/cjs/internals/simulation/middleware/internal-methods/accounts.js.map +0 -1
  400. package/dist/cjs/internals/simulation/middleware/internal-methods/index.js +0 -20
  401. package/dist/cjs/internals/simulation/middleware/internal-methods/index.js.map +0 -1
  402. package/dist/cjs/internals/simulation/middleware/internal-methods/middleware.js +0 -37
  403. package/dist/cjs/internals/simulation/middleware/internal-methods/middleware.js.map +0 -1
  404. package/dist/cjs/internals/simulation/middleware/internal-methods/provider-state.js +0 -23
  405. package/dist/cjs/internals/simulation/middleware/internal-methods/provider-state.js.map +0 -1
  406. package/dist/cjs/internals/simulation/middleware/mock.js +0 -23
  407. package/dist/cjs/internals/simulation/middleware/mock.js.map +0 -1
  408. package/dist/cjs/internals/simulation/options.js +0 -24
  409. package/dist/cjs/internals/simulation/options.js.map +0 -1
  410. package/dist/cjs/internals/simulation/simulation.js +0 -124
  411. package/dist/cjs/internals/simulation/simulation.js.map +0 -1
  412. package/dist/cjs/internals/simulation/store/index.js +0 -23
  413. package/dist/cjs/internals/simulation/store/index.js.map +0 -1
  414. package/dist/cjs/internals/simulation/store/mocks.js +0 -52
  415. package/dist/cjs/internals/simulation/store/mocks.js.map +0 -1
  416. package/dist/cjs/internals/simulation/store/notifications.js +0 -52
  417. package/dist/cjs/internals/simulation/store/notifications.js.map +0 -1
  418. package/dist/cjs/internals/simulation/store/state.js +0 -64
  419. package/dist/cjs/internals/simulation/store/state.js.map +0 -1
  420. package/dist/cjs/internals/simulation/store/store.js +0 -57
  421. package/dist/cjs/internals/simulation/store/store.js.map +0 -1
  422. package/dist/cjs/internals/simulation/store/ui.js +0 -48
  423. package/dist/cjs/internals/simulation/store/ui.js.map +0 -1
  424. package/dist/cjs/internals/structs.js +0 -165
  425. package/dist/cjs/internals/structs.js.map +0 -1
  426. package/dist/cjs/matchers.js +0 -120
  427. package/dist/cjs/matchers.js.map +0 -1
  428. package/dist/cjs/options.js +0 -23
  429. package/dist/cjs/options.js.map +0 -1
  430. package/dist/cjs/setup.js +0 -10
  431. package/dist/cjs/setup.js.map +0 -1
  432. package/dist/cjs/types.js +0 -6
  433. package/dist/cjs/types.js.map +0 -1
  434. package/dist/esm/environment.js +0 -121
  435. package/dist/esm/environment.js.map +0 -1
  436. package/dist/esm/helpers.js +0 -163
  437. package/dist/esm/helpers.js.map +0 -1
  438. package/dist/esm/index.js +0 -6
  439. package/dist/esm/index.js.map +0 -1
  440. package/dist/esm/internals/environment.js +0 -14
  441. package/dist/esm/internals/environment.js.map +0 -1
  442. package/dist/esm/internals/index.js +0 -8
  443. package/dist/esm/internals/index.js.map +0 -1
  444. package/dist/esm/internals/logger.js +0 -4
  445. package/dist/esm/internals/logger.js.map +0 -1
  446. package/dist/esm/internals/request.js +0 -77
  447. package/dist/esm/internals/request.js.map +0 -1
  448. package/dist/esm/internals/server.js +0 -64
  449. package/dist/esm/internals/server.js.map +0 -1
  450. package/dist/esm/internals/simulation/constants.js +0 -12
  451. package/dist/esm/internals/simulation/constants.js.map +0 -1
  452. package/dist/esm/internals/simulation/controllers.js +0 -90
  453. package/dist/esm/internals/simulation/controllers.js.map +0 -1
  454. package/dist/esm/internals/simulation/files.js +0 -19
  455. package/dist/esm/internals/simulation/files.js.map +0 -1
  456. package/dist/esm/internals/simulation/index.js +0 -7
  457. package/dist/esm/internals/simulation/index.js.map +0 -1
  458. package/dist/esm/internals/simulation/interface.js +0 -95
  459. package/dist/esm/internals/simulation/interface.js.map +0 -1
  460. package/dist/esm/internals/simulation/methods/constants.js +0 -69
  461. package/dist/esm/internals/simulation/methods/constants.js.map +0 -1
  462. package/dist/esm/internals/simulation/methods/hooks/encryption.js +0 -39
  463. package/dist/esm/internals/simulation/methods/hooks/encryption.js.map +0 -1
  464. package/dist/esm/internals/simulation/methods/hooks/get-locale.js +0 -13
  465. package/dist/esm/internals/simulation/methods/hooks/get-locale.js.map +0 -1
  466. package/dist/esm/internals/simulation/methods/hooks/index.js +0 -8
  467. package/dist/esm/internals/simulation/methods/hooks/index.js.map +0 -1
  468. package/dist/esm/internals/simulation/methods/hooks/interface.js +0 -18
  469. package/dist/esm/internals/simulation/methods/hooks/interface.js.map +0 -1
  470. package/dist/esm/internals/simulation/methods/hooks/notifications.js +0 -58
  471. package/dist/esm/internals/simulation/methods/hooks/notifications.js.map +0 -1
  472. package/dist/esm/internals/simulation/methods/hooks/show-dialog.js +0 -38
  473. package/dist/esm/internals/simulation/methods/hooks/show-dialog.js.map +0 -1
  474. package/dist/esm/internals/simulation/methods/hooks/state.js +0 -74
  475. package/dist/esm/internals/simulation/methods/hooks/state.js.map +0 -1
  476. package/dist/esm/internals/simulation/methods/index.js +0 -3
  477. package/dist/esm/internals/simulation/methods/index.js.map +0 -1
  478. package/dist/esm/internals/simulation/methods/specifications.js +0 -84
  479. package/dist/esm/internals/simulation/methods/specifications.js.map +0 -1
  480. package/dist/esm/internals/simulation/middleware/engine.js +0 -33
  481. package/dist/esm/internals/simulation/middleware/engine.js.map +0 -1
  482. package/dist/esm/internals/simulation/middleware/index.js +0 -3
  483. package/dist/esm/internals/simulation/middleware/index.js.map +0 -1
  484. package/dist/esm/internals/simulation/middleware/internal-methods/accounts.js +0 -31
  485. package/dist/esm/internals/simulation/middleware/internal-methods/accounts.js.map +0 -1
  486. package/dist/esm/internals/simulation/middleware/internal-methods/index.js +0 -3
  487. package/dist/esm/internals/simulation/middleware/internal-methods/index.js.map +0 -1
  488. package/dist/esm/internals/simulation/middleware/internal-methods/middleware.js +0 -37
  489. package/dist/esm/internals/simulation/middleware/internal-methods/middleware.js.map +0 -1
  490. package/dist/esm/internals/simulation/middleware/internal-methods/provider-state.js +0 -23
  491. package/dist/esm/internals/simulation/middleware/internal-methods/provider-state.js.map +0 -1
  492. package/dist/esm/internals/simulation/middleware/mock.js +0 -18
  493. package/dist/esm/internals/simulation/middleware/mock.js.map +0 -1
  494. package/dist/esm/internals/simulation/options.js +0 -20
  495. package/dist/esm/internals/simulation/options.js.map +0 -1
  496. package/dist/esm/internals/simulation/simulation.js +0 -128
  497. package/dist/esm/internals/simulation/simulation.js.map +0 -1
  498. package/dist/esm/internals/simulation/store/index.js +0 -6
  499. package/dist/esm/internals/simulation/store/index.js.map +0 -1
  500. package/dist/esm/internals/simulation/store/mocks.js +0 -32
  501. package/dist/esm/internals/simulation/store/mocks.js.map +0 -1
  502. package/dist/esm/internals/simulation/store/notifications.js +0 -30
  503. package/dist/esm/internals/simulation/store/notifications.js.map +0 -1
  504. package/dist/esm/internals/simulation/store/state.js +0 -47
  505. package/dist/esm/internals/simulation/store/state.js.map +0 -1
  506. package/dist/esm/internals/simulation/store/store.js +0 -50
  507. package/dist/esm/internals/simulation/store/store.js.map +0 -1
  508. package/dist/esm/internals/simulation/store/ui.js +0 -21
  509. package/dist/esm/internals/simulation/store/ui.js.map +0 -1
  510. package/dist/esm/internals/structs.js +0 -135
  511. package/dist/esm/internals/structs.js.map +0 -1
  512. package/dist/esm/matchers.js +0 -111
  513. package/dist/esm/matchers.js.map +0 -1
  514. package/dist/esm/options.js +0 -20
  515. package/dist/esm/options.js.map +0 -1
  516. package/dist/esm/setup.js +0 -6
  517. package/dist/esm/setup.js.map +0 -1
  518. package/dist/esm/types.js +0 -3
  519. package/dist/esm/types.js.map +0 -1
@@ -0,0 +1,60 @@
1
+ import {
2
+ rootLogger
3
+ } from "./chunk-J4ZPUCLX.mjs";
4
+
5
+ // src/internals/server.ts
6
+ import {
7
+ assertIsSnapManifest,
8
+ isDirectory,
9
+ isFile
10
+ } from "@metamask/snaps-utils/node";
11
+ import { createModuleLogger } from "@metamask/utils";
12
+ import express from "express";
13
+ import { promises as fs } from "fs";
14
+ import { createServer } from "http";
15
+ import { resolve as pathResolve } from "path";
16
+ async function assertRoot(root) {
17
+ if (!root) {
18
+ throw new Error("You must specify a root directory.");
19
+ }
20
+ if (!await isDirectory(root, false)) {
21
+ throw new Error(`Root directory "${root}" is not a directory.`);
22
+ }
23
+ const manifestPath = pathResolve(root, "snap.manifest.json");
24
+ const manifest = await fs.readFile(manifestPath, "utf8").then(JSON.parse);
25
+ assertIsSnapManifest(manifest);
26
+ const filePath = pathResolve(root, manifest.source.location.npm.filePath);
27
+ if (!await isFile(filePath)) {
28
+ throw new Error(
29
+ `File "${filePath}" does not exist, or is not a file. Did you forget to build your snap?`
30
+ );
31
+ }
32
+ }
33
+ async function startServer(options) {
34
+ await assertRoot(options.root);
35
+ const log = createModuleLogger(rootLogger, "server");
36
+ const app = express();
37
+ app.use((_request, response, next) => {
38
+ response.header("Access-Control-Allow-Origin", "*");
39
+ response.header("Access-Control-Allow-Credentials", "true");
40
+ response.header("Access-Control-Allow-Methods", "GET, OPTIONS");
41
+ response.header("Access-Control-Allow-Headers", "Content-Type");
42
+ next();
43
+ });
44
+ app.use(express.static(pathResolve(process.cwd(), options.root)));
45
+ const server = createServer(app);
46
+ return await new Promise((resolve, reject) => {
47
+ server.listen(options.port, () => {
48
+ resolve(server);
49
+ });
50
+ server.on("error", (error) => {
51
+ log(error);
52
+ reject(error);
53
+ });
54
+ });
55
+ }
56
+
57
+ export {
58
+ startServer
59
+ };
60
+ //# sourceMappingURL=chunk-SLU4FNKX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internals/server.ts"],"sourcesContent":["import type { SnapManifest } from '@metamask/snaps-utils';\nimport {\n assertIsSnapManifest,\n isDirectory,\n isFile,\n} from '@metamask/snaps-utils/node';\nimport { createModuleLogger } from '@metamask/utils';\nimport express from 'express';\nimport { promises as fs } from 'fs';\nimport type { Server } from 'http';\nimport { createServer } from 'http';\nimport { resolve as pathResolve } from 'path';\n\nimport type { SnapsEnvironmentOptions } from '../options';\nimport { rootLogger } from './logger';\n\nexport type ServerOptions = Required<\n // We need a double `Required` for the type to be inferred correctly.\n Required<SnapsEnvironmentOptions>['server']\n>;\n\n/**\n * Check that:\n *\n * - The root directory exists.\n * - The root directory contains a `snap.manifest.json` file.\n * - The file path in the manifest exists.\n *\n * @param root - The root directory.\n * @throws If any of the checks fail.\n */\nasync function assertRoot(root: string) {\n if (!root) {\n throw new Error('You must specify a root directory.');\n }\n\n if (!(await isDirectory(root, false))) {\n throw new Error(`Root directory \"${root}\" is not a directory.`);\n }\n\n const manifestPath = pathResolve(root, 'snap.manifest.json');\n const manifest: SnapManifest = await fs\n .readFile(manifestPath, 'utf8')\n .then(JSON.parse);\n\n assertIsSnapManifest(manifest);\n const filePath = pathResolve(root, manifest.source.location.npm.filePath);\n\n if (!(await isFile(filePath))) {\n throw new Error(\n `File \"${filePath}\" does not exist, or is not a file. Did you forget to build your snap?`,\n );\n }\n}\n\n/**\n * Start an HTTP server on `localhost` with a random port. This is used to serve\n * the static files for the environment.\n *\n * @param options - The options to use.\n * @param options.port - The port to use for the server.\n * @param options.root - The root directory to serve from the server.\n * @returns The HTTP server.\n */\nexport async function startServer(options: ServerOptions) {\n await assertRoot(options.root);\n\n const log = createModuleLogger(rootLogger, 'server');\n const app = express();\n\n app.use((_request, response, next) => {\n response.header('Access-Control-Allow-Origin', '*');\n response.header('Access-Control-Allow-Credentials', 'true');\n response.header('Access-Control-Allow-Methods', 'GET, OPTIONS');\n response.header('Access-Control-Allow-Headers', 'Content-Type');\n\n next();\n });\n\n app.use(express.static(pathResolve(process.cwd(), options.root)));\n\n const server = createServer(app);\n return await new Promise<Server>((resolve, reject) => {\n server.listen(options.port, () => {\n resolve(server);\n });\n\n server.on('error', (error) => {\n log(error);\n reject(error);\n });\n });\n}\n"],"mappings":";;;;;AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B;AACnC,OAAO,aAAa;AACpB,SAAS,YAAY,UAAU;AAE/B,SAAS,oBAAoB;AAC7B,SAAS,WAAW,mBAAmB;AAoBvC,eAAe,WAAW,MAAc;AACtC,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,oCAAoC;AAAA,EACtD;AAEA,MAAI,CAAE,MAAM,YAAY,MAAM,KAAK,GAAI;AACrC,UAAM,IAAI,MAAM,mBAAmB,IAAI,uBAAuB;AAAA,EAChE;AAEA,QAAM,eAAe,YAAY,MAAM,oBAAoB;AAC3D,QAAM,WAAyB,MAAM,GAClC,SAAS,cAAc,MAAM,EAC7B,KAAK,KAAK,KAAK;AAElB,uBAAqB,QAAQ;AAC7B,QAAM,WAAW,YAAY,MAAM,SAAS,OAAO,SAAS,IAAI,QAAQ;AAExE,MAAI,CAAE,MAAM,OAAO,QAAQ,GAAI;AAC7B,UAAM,IAAI;AAAA,MACR,SAAS,QAAQ;AAAA,IACnB;AAAA,EACF;AACF;AAWA,eAAsB,YAAY,SAAwB;AACxD,QAAM,WAAW,QAAQ,IAAI;AAE7B,QAAM,MAAM,mBAAmB,YAAY,QAAQ;AACnD,QAAM,MAAM,QAAQ;AAEpB,MAAI,IAAI,CAAC,UAAU,UAAU,SAAS;AACpC,aAAS,OAAO,+BAA+B,GAAG;AAClD,aAAS,OAAO,oCAAoC,MAAM;AAC1D,aAAS,OAAO,gCAAgC,cAAc;AAC9D,aAAS,OAAO,gCAAgC,cAAc;AAE9D,SAAK;AAAA,EACP,CAAC;AAED,MAAI,IAAI,QAAQ,OAAO,YAAY,QAAQ,IAAI,GAAG,QAAQ,IAAI,CAAC,CAAC;AAEhE,QAAM,SAAS,aAAa,GAAG;AAC/B,SAAO,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AACpD,WAAO,OAAO,QAAQ,MAAM,MAAM;AAChC,cAAQ,MAAM;AAAA,IAChB,CAAC;AAED,WAAO,GAAG,SAAS,CAAC,UAAU;AAC5B,UAAI,KAAK;AACT,aAAO,KAAK;AAAA,IACd,CAAC;AAAA,EACH,CAAC;AACH;","names":[]}
@@ -0,0 +1,137 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkXWGECIXIjs = require('./chunk-XWGECIXI.js');
4
+
5
+
6
+ var _chunkVXPCUDBIjs = require('./chunk-VXPCUDBI.js');
7
+
8
+
9
+
10
+ var _chunkWFBQPYSVjs = require('./chunk-WFBQPYSV.js');
11
+
12
+
13
+ var _chunkLXSNRZV4js = require('./chunk-LXSNRZV4.js');
14
+
15
+
16
+ var _chunkTO46ICOZjs = require('./chunk-TO46ICOZ.js');
17
+
18
+
19
+ var _chunkTVD4SWH7js = require('./chunk-TVD4SWH7.js');
20
+
21
+ // src/internals/simulation/simulation.ts
22
+ var _basecontroller = require('@metamask/base-controller');
23
+ var _jsonrpcmiddlewarestream = require('@metamask/json-rpc-middleware-stream');
24
+ var _keytree = require('@metamask/key-tree');
25
+
26
+
27
+
28
+
29
+
30
+ var _node = require('@metamask/snaps-controllers/node');
31
+ var _snapsrpcmethods = require('@metamask/snaps-rpc-methods');
32
+ var _snapsutils = require('@metamask/snaps-utils');
33
+ var _readablestream = require('readable-stream');
34
+ async function handleInstallSnap(snapId, {
35
+ executionService,
36
+ executionServiceOptions,
37
+ options: rawOptions = {}
38
+ } = {}) {
39
+ const options = _chunkVXPCUDBIjs.getOptions.call(void 0, rawOptions);
40
+ const location = _node.detectSnapLocation.call(void 0, snapId, {
41
+ allowLocal: true
42
+ });
43
+ const snapFiles = await _node.fetchSnap.call(void 0, snapId, location);
44
+ const password = await _snapsrpcmethods.getEncryptionKey.call(void 0, {
45
+ mnemonicPhrase: _keytree.mnemonicPhraseToBytes.call(void 0, options.secretRecoveryPhrase),
46
+ snapId
47
+ });
48
+ const { store, runSaga } = _chunkTO46ICOZjs.createStore.call(void 0, password, options);
49
+ const controllerMessenger = new (0, _basecontroller.ControllerMessenger)();
50
+ registerActions(controllerMessenger);
51
+ const hooks = getHooks(options, snapFiles, snapId, controllerMessenger);
52
+ const { subjectMetadataController, permissionController } = _chunkWFBQPYSVjs.getControllers.call(void 0, {
53
+ controllerMessenger,
54
+ hooks,
55
+ runSaga,
56
+ options
57
+ });
58
+ const engine = _chunkXWGECIXIjs.createJsonRpcEngine.call(void 0, {
59
+ store,
60
+ hooks,
61
+ permissionMiddleware: permissionController.createPermissionMiddleware({
62
+ origin: snapId
63
+ })
64
+ });
65
+ const ExecutionService = executionService ?? _node.NodeThreadExecutionService;
66
+ const service = new ExecutionService({
67
+ ...executionServiceOptions,
68
+ messenger: controllerMessenger.getRestricted({
69
+ name: "ExecutionService"
70
+ }),
71
+ setupSnapProvider: (_snapId, rpcStream) => {
72
+ const mux = _node.setupMultiplex.call(void 0, rpcStream, "snapStream");
73
+ const stream = mux.createStream("metamask-provider");
74
+ const providerStream = _jsonrpcmiddlewarestream.createEngineStream.call(void 0, { engine });
75
+ _readablestream.pipeline.call(void 0, stream, providerStream, stream, (error) => {
76
+ if (error) {
77
+ _snapsutils.logError.call(void 0, `Provider stream failure.`, error);
78
+ }
79
+ });
80
+ }
81
+ });
82
+ await _chunkWFBQPYSVjs.registerSnap.call(void 0, snapId, snapFiles.manifest.result, {
83
+ permissionController,
84
+ subjectMetadataController
85
+ });
86
+ await service.executeSnap({
87
+ snapId,
88
+ sourceCode: snapFiles.sourceCode.toString("utf8"),
89
+ endowments: await _chunkLXSNRZV4js.getEndowments.call(void 0, permissionController, snapId)
90
+ });
91
+ return {
92
+ snapId,
93
+ store,
94
+ executionService: service,
95
+ controllerMessenger,
96
+ runSaga
97
+ };
98
+ }
99
+ function getHooks(options, snapFiles, snapId, controllerMessenger) {
100
+ return {
101
+ getMnemonic: async () => Promise.resolve(_keytree.mnemonicPhraseToBytes.call(void 0, options.secretRecoveryPhrase)),
102
+ getSnapFile: async (path, encoding) => await _chunkTVD4SWH7js.getSnapFile.call(void 0, snapFiles.auxiliaryFiles, path, encoding),
103
+ getIsLocked: () => false,
104
+ createInterface: async (...args) => controllerMessenger.call(
105
+ "SnapInterfaceController:createInterface",
106
+ snapId,
107
+ ...args
108
+ ),
109
+ updateInterface: async (...args) => controllerMessenger.call(
110
+ "SnapInterfaceController:updateInterface",
111
+ snapId,
112
+ ...args
113
+ ),
114
+ getInterfaceState: (...args) => controllerMessenger.call(
115
+ "SnapInterfaceController:getInterface",
116
+ snapId,
117
+ ...args
118
+ ).state
119
+ };
120
+ }
121
+ function registerActions(controllerMessenger) {
122
+ controllerMessenger.registerActionHandler(
123
+ "PhishingController:maybeUpdateState",
124
+ async () => Promise.resolve()
125
+ );
126
+ controllerMessenger.registerActionHandler(
127
+ "PhishingController:testOrigin",
128
+ () => ({ result: false, type: "all" })
129
+ );
130
+ }
131
+
132
+
133
+
134
+
135
+
136
+ exports.handleInstallSnap = handleInstallSnap; exports.getHooks = getHooks; exports.registerActions = registerActions;
137
+ //# sourceMappingURL=chunk-SQJOQ7AF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internals/simulation/simulation.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ActionConstraint,\n EventConstraint,\n} from '@metamask/base-controller';\nimport { ControllerMessenger } from '@metamask/base-controller';\nimport { createEngineStream } from '@metamask/json-rpc-middleware-stream';\nimport { mnemonicPhraseToBytes } from '@metamask/key-tree';\nimport type { AbstractExecutionService } from '@metamask/snaps-controllers';\nimport {\n fetchSnap,\n detectSnapLocation,\n NodeThreadExecutionService,\n setupMultiplex,\n} from '@metamask/snaps-controllers/node';\nimport { getEncryptionKey } from '@metamask/snaps-rpc-methods';\nimport type {\n SnapId,\n AuxiliaryFileEncoding,\n Component,\n InterfaceState,\n} from '@metamask/snaps-sdk';\nimport type { FetchedSnapFiles } from '@metamask/snaps-utils';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Duplex } from 'readable-stream';\nimport { pipeline } from 'readable-stream';\n\nimport type { RootControllerMessenger } from './controllers';\nimport { getControllers, registerSnap } from './controllers';\nimport { getSnapFile } from './files';\nimport { getEndowments } from './methods';\nimport { createJsonRpcEngine } from './middleware';\nimport type { SimulationOptions, SimulationUserOptions } from './options';\nimport { getOptions } from './options';\nimport type { RunSagaFunction, Store } from './store';\nimport { createStore } from './store';\n\n/**\n * Options for the execution service, without the options that are shared\n * between all execution services.\n *\n * @template Service - The type of the execution service, i.e., the class that\n * creates the execution service.\n */\nexport type ExecutionServiceOptions<\n Service extends new (...args: any[]) => any,\n> = Omit<\n ConstructorParameters<Service>[0],\n keyof ConstructorParameters<typeof AbstractExecutionService<unknown>>[0]\n>;\n\n/**\n * The options for running a Snap in a simulated environment.\n *\n * @property executionService - The execution service to use.\n * @property executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @property options - The simulation options.\n * @template Service - The type of the execution service.\n */\nexport type InstallSnapOptions<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService<unknown>\n >,\n> = ExecutionServiceOptions<Service> extends Record<string, never>\n ? {\n executionService: Service;\n executionServiceOptions?: ExecutionServiceOptions<Service>;\n options?: SimulationUserOptions;\n }\n : {\n executionService: Service;\n executionServiceOptions: ExecutionServiceOptions<Service>;\n options?: SimulationUserOptions;\n };\n\nexport type InstalledSnap = {\n snapId: SnapId;\n store: Store;\n executionService: InstanceType<typeof AbstractExecutionService>;\n controllerMessenger: ControllerMessenger<ActionConstraint, EventConstraint>;\n runSaga: RunSagaFunction;\n};\n\nexport type MiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n\n /**\n * A hook that returns the Snap's auxiliary file for the given path.\n *\n * @param path - The path of the auxiliary file to get.\n * @param encoding - The encoding to use when returning the file.\n * @returns The Snap's auxiliary file for the given path.\n */\n getSnapFile: (\n path: string,\n encoding: AuxiliaryFileEncoding,\n ) => Promise<string | null>;\n\n /**\n * A hook that returns whether the client is locked or not.\n *\n * @returns A boolean flag signaling whether the client is locked.\n */\n getIsLocked: () => boolean;\n createInterface: (content: Component) => Promise<string>;\n updateInterface: (id: string, content: Component) => Promise<void>;\n getInterfaceState: (id: string) => InterfaceState;\n};\n\n/**\n * Install a Snap in a simulated environment. This will fetch the Snap files,\n * create a Redux store, set up the controllers and JSON-RPC stack, register the\n * Snap, and run the Snap code in the execution service.\n *\n * @param snapId - The ID of the Snap to install.\n * @param options - The options to use when installing the Snap.\n * @param options.executionService - The execution service to use.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @template Service - The type of the execution service.\n */\nexport async function handleInstallSnap<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(\n snapId: SnapId,\n {\n executionService,\n executionServiceOptions,\n options: rawOptions = {},\n }: Partial<InstallSnapOptions<Service>> = {},\n): Promise<InstalledSnap> {\n const options = getOptions(rawOptions);\n\n // Fetch Snap files.\n const location = detectSnapLocation(snapId, {\n allowLocal: true,\n });\n\n const snapFiles = await fetchSnap(snapId, location);\n\n // Create Redux store.\n const password = await getEncryptionKey({\n mnemonicPhrase: mnemonicPhraseToBytes(options.secretRecoveryPhrase),\n snapId,\n });\n\n const { store, runSaga } = createStore(password, options);\n\n const controllerMessenger = new ControllerMessenger<any, any>();\n\n registerActions(controllerMessenger);\n\n // Set up controllers and JSON-RPC stack.\n const hooks = getHooks(options, snapFiles, snapId, controllerMessenger);\n\n const { subjectMetadataController, permissionController } = getControllers({\n controllerMessenger,\n hooks,\n runSaga,\n options,\n });\n\n const engine = createJsonRpcEngine({\n store,\n hooks,\n permissionMiddleware: permissionController.createPermissionMiddleware({\n origin: snapId,\n }),\n });\n\n // Create execution service.\n const ExecutionService = executionService ?? NodeThreadExecutionService;\n const service = new ExecutionService({\n ...executionServiceOptions,\n messenger: controllerMessenger.getRestricted({\n name: 'ExecutionService',\n }),\n setupSnapProvider: (_snapId: string, rpcStream: Duplex) => {\n const mux = setupMultiplex(rpcStream, 'snapStream');\n const stream = mux.createStream('metamask-provider');\n const providerStream = createEngineStream({ engine });\n\n // Error function is difficult to test, so we ignore it.\n /* istanbul ignore next 2 */\n pipeline(stream, providerStream, stream, (error: unknown) => {\n if (error) {\n logError(`Provider stream failure.`, error);\n }\n });\n },\n });\n\n // Register the Snap. This sets up the Snap's permissions and subject\n // metadata.\n await registerSnap(snapId, snapFiles.manifest.result, {\n permissionController,\n subjectMetadataController,\n });\n\n // Run the Snap code in the execution service.\n await service.executeSnap({\n snapId,\n sourceCode: snapFiles.sourceCode.toString('utf8'),\n endowments: await getEndowments(permissionController, snapId),\n });\n\n return {\n snapId,\n store,\n executionService: service,\n controllerMessenger,\n runSaga,\n };\n}\n\n/**\n * Get the hooks for the simulation.\n *\n * @param options - The simulation options.\n * @param snapFiles - The Snap files.\n * @param snapId - The Snap ID.\n * @param controllerMessenger - The controller messenger.\n * @returns The hooks for the simulation.\n */\nexport function getHooks(\n options: SimulationOptions,\n snapFiles: FetchedSnapFiles,\n snapId: SnapId,\n controllerMessenger: RootControllerMessenger,\n): MiddlewareHooks {\n return {\n getMnemonic: async () =>\n Promise.resolve(mnemonicPhraseToBytes(options.secretRecoveryPhrase)),\n getSnapFile: async (path: string, encoding: AuxiliaryFileEncoding) =>\n await getSnapFile(snapFiles.auxiliaryFiles, path, encoding),\n getIsLocked: () => false,\n createInterface: async (...args) =>\n controllerMessenger.call(\n 'SnapInterfaceController:createInterface',\n snapId,\n ...args,\n ),\n updateInterface: async (...args) =>\n controllerMessenger.call(\n 'SnapInterfaceController:updateInterface',\n snapId,\n ...args,\n ),\n getInterfaceState: (...args) =>\n controllerMessenger.call(\n 'SnapInterfaceController:getInterface',\n snapId,\n ...args,\n ).state,\n };\n}\n\n/**\n * Register mocked action handlers.\n *\n * @param controllerMessenger - The controller messenger.\n */\nexport function registerActions(controllerMessenger: RootControllerMessenger) {\n controllerMessenger.registerActionHandler(\n 'PhishingController:maybeUpdateState',\n async () => Promise.resolve(),\n );\n\n controllerMessenger.registerActionHandler(\n 'PhishingController:testOrigin',\n () => ({ result: false, type: 'all' }),\n );\n}\n"]}
@@ -0,0 +1,233 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/internals/structs.ts
2
+
3
+
4
+
5
+
6
+ var _snapssdk = require('@metamask/snaps-sdk');
7
+
8
+
9
+
10
+
11
+
12
+ var _utils = require('@metamask/utils');
13
+ var _crypto = require('crypto');
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+ var _superstruct = require('superstruct');
31
+ var BytesLikeStruct = _superstruct.union.call(void 0, [
32
+ _superstruct.bigint.call(void 0, ),
33
+ _superstruct.number.call(void 0, ),
34
+ _superstruct.string.call(void 0, ),
35
+ _superstruct.instance.call(void 0, Uint8Array)
36
+ ]);
37
+ var TransactionOptionsStruct = _superstruct.object.call(void 0, {
38
+ /**
39
+ * The CAIP-2 chain ID to send the transaction on. Defaults to `eip155:1`.
40
+ */
41
+ chainId: _superstruct.defaulted.call(void 0, _superstruct.string.call(void 0, ), "eip155:1"),
42
+ /**
43
+ * The origin to send the transaction from. Defaults to `metamask.io`.
44
+ */
45
+ origin: _superstruct.defaulted.call(void 0, _superstruct.string.call(void 0, ), "metamask.io"),
46
+ /**
47
+ * The address to send the transaction from. Defaults to a randomly generated
48
+ * address.
49
+ */
50
+ // TODO: Move this coercer to `@metamask/utils`.
51
+ from: _superstruct.coerce.call(void 0, _utils.StrictHexStruct, _superstruct.optional.call(void 0, BytesLikeStruct), (value) => {
52
+ if (value) {
53
+ return _utils.bytesToHex.call(void 0, _utils.valueToBytes.call(void 0, value));
54
+ }
55
+ return _utils.bytesToHex.call(void 0, _crypto.randomBytes.call(void 0, 20));
56
+ }),
57
+ /**
58
+ * The address to send the transaction to. Defaults to a randomly generated
59
+ * address.
60
+ */
61
+ // TODO: Move this coercer to `@metamask/utils`.
62
+ to: _superstruct.coerce.call(void 0, _utils.StrictHexStruct, _superstruct.optional.call(void 0, BytesLikeStruct), (value) => {
63
+ if (value) {
64
+ return _utils.bytesToHex.call(void 0, _utils.valueToBytes.call(void 0, value));
65
+ }
66
+ return _utils.bytesToHex.call(void 0, _crypto.randomBytes.call(void 0, 20));
67
+ }),
68
+ /**
69
+ * The value to send with the transaction. The value may be specified as a
70
+ * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0`.
71
+ */
72
+ value: _superstruct.defaulted.call(void 0,
73
+ _superstruct.coerce.call(void 0,
74
+ _utils.StrictHexStruct,
75
+ BytesLikeStruct,
76
+ (value) => _utils.bytesToHex.call(void 0, _utils.valueToBytes.call(void 0, value))
77
+ ),
78
+ "0x0"
79
+ ),
80
+ /**
81
+ * The gas limit to use for the transaction. The gas limit may be specified
82
+ * as a `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `21_000`.
83
+ */
84
+ gasLimit: _superstruct.defaulted.call(void 0,
85
+ _superstruct.coerce.call(void 0,
86
+ _utils.StrictHexStruct,
87
+ BytesLikeStruct,
88
+ (value) => _utils.bytesToHex.call(void 0, _utils.valueToBytes.call(void 0, value))
89
+ ),
90
+ _utils.valueToBytes.call(void 0, 21e3)
91
+ ),
92
+ /**
93
+ * The max fee per gas (in Wei) to use for the transaction. The max fee per
94
+ * gas may be specified as a `number`, `bigint`, `string`, or `Uint8Array`.
95
+ * Defaults to `1`.
96
+ */
97
+ maxFeePerGas: _superstruct.defaulted.call(void 0,
98
+ _superstruct.coerce.call(void 0,
99
+ _utils.StrictHexStruct,
100
+ BytesLikeStruct,
101
+ (value) => _utils.bytesToHex.call(void 0, _utils.valueToBytes.call(void 0, value))
102
+ ),
103
+ _utils.valueToBytes.call(void 0, 1)
104
+ ),
105
+ /**
106
+ * The max priority fee per gas (in Wei) to use for the transaction. The max
107
+ * priority fee per gas may be specified as a `number`, `bigint`, `string`,
108
+ * or `Uint8Array`. Defaults to `1`.
109
+ */
110
+ maxPriorityFeePerGas: _superstruct.defaulted.call(void 0,
111
+ _superstruct.coerce.call(void 0,
112
+ _utils.StrictHexStruct,
113
+ BytesLikeStruct,
114
+ (value) => _utils.bytesToHex.call(void 0, _utils.valueToBytes.call(void 0, value))
115
+ ),
116
+ _utils.valueToBytes.call(void 0, 1)
117
+ ),
118
+ /**
119
+ * The nonce to use for the transaction. The nonce may be specified as a
120
+ * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0`.
121
+ */
122
+ nonce: _superstruct.defaulted.call(void 0,
123
+ _superstruct.coerce.call(void 0,
124
+ _utils.StrictHexStruct,
125
+ BytesLikeStruct,
126
+ (value) => _utils.bytesToHex.call(void 0, _utils.valueToBytes.call(void 0, value))
127
+ ),
128
+ _utils.valueToBytes.call(void 0, 0)
129
+ ),
130
+ /**
131
+ * The data to send with the transaction. The data may be specified as a
132
+ * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0x`.
133
+ */
134
+ data: _superstruct.defaulted.call(void 0,
135
+ _superstruct.coerce.call(void 0,
136
+ _superstruct.union.call(void 0, [_utils.StrictHexStruct, _superstruct.literal.call(void 0, "0x")]),
137
+ BytesLikeStruct,
138
+ (value) => _utils.bytesToHex.call(void 0, _utils.valueToBytes.call(void 0, value))
139
+ ),
140
+ "0x"
141
+ )
142
+ });
143
+ var SignatureOptionsStruct = _superstruct.object.call(void 0, {
144
+ /**
145
+ * The origin making the signature request.
146
+ */
147
+ origin: _superstruct.defaulted.call(void 0, _superstruct.string.call(void 0, ), "metamask.io"),
148
+ /**
149
+ * The address signing the signature request. Defaults to a randomly generated
150
+ * address.
151
+ */
152
+ from: _superstruct.coerce.call(void 0, _utils.StrictHexStruct, _superstruct.optional.call(void 0, BytesLikeStruct), (value) => {
153
+ if (value) {
154
+ return _utils.bytesToHex.call(void 0, _utils.valueToBytes.call(void 0, value));
155
+ }
156
+ return _utils.bytesToHex.call(void 0, _crypto.randomBytes.call(void 0, 20));
157
+ }),
158
+ /**
159
+ * The data to send with the transaction. The data may be specified as a
160
+ * `string`, an object, or an array of objects. This covers the data types
161
+ * for the supported signature methods. Defaults to `0x`.
162
+ */
163
+ data: _superstruct.defaulted.call(void 0,
164
+ _superstruct.union.call(void 0, [
165
+ _utils.StrictHexStruct,
166
+ _superstruct.literal.call(void 0, "0x"),
167
+ _superstruct.record.call(void 0, _superstruct.string.call(void 0, ), _superstruct.any.call(void 0, )),
168
+ _superstruct.array.call(void 0, _superstruct.record.call(void 0, _superstruct.string.call(void 0, ), _superstruct.any.call(void 0, )))
169
+ ]),
170
+ "0x"
171
+ ),
172
+ /**
173
+ * The signature method being used.
174
+ */
175
+ signatureMethod: _superstruct.defaulted.call(void 0,
176
+ _superstruct.union.call(void 0, [
177
+ _superstruct.literal.call(void 0, "eth_sign"),
178
+ _superstruct.literal.call(void 0, "personal_sign"),
179
+ _superstruct.literal.call(void 0, "eth_signTypedData"),
180
+ _superstruct.literal.call(void 0, "eth_signTypedData_v3"),
181
+ _superstruct.literal.call(void 0, "eth_signTypedData_v4")
182
+ ]),
183
+ "personal_sign"
184
+ )
185
+ });
186
+ var SnapOptionsStruct = _superstruct.object.call(void 0, {
187
+ /**
188
+ * The timeout in milliseconds to use for requests to the snap. Defaults to
189
+ * `1000`.
190
+ */
191
+ timeout: _superstruct.defaulted.call(void 0, _superstruct.optional.call(void 0, _superstruct.number.call(void 0, )), 1e3)
192
+ });
193
+ var JsonRpcMockOptionsStruct = _superstruct.object.call(void 0, {
194
+ method: _superstruct.string.call(void 0, ),
195
+ result: _utils.JsonStruct
196
+ });
197
+ var InterfaceStruct = _superstruct.type.call(void 0, {
198
+ content: _superstruct.optional.call(void 0, _snapssdk.ComponentStruct)
199
+ });
200
+ var SnapResponseStruct = _superstruct.assign.call(void 0,
201
+ InterfaceStruct,
202
+ _superstruct.object.call(void 0, {
203
+ id: _superstruct.string.call(void 0, ),
204
+ response: _superstruct.union.call(void 0, [
205
+ _superstruct.object.call(void 0, {
206
+ result: _utils.JsonStruct
207
+ }),
208
+ _superstruct.object.call(void 0, {
209
+ error: _utils.JsonStruct
210
+ })
211
+ ]),
212
+ notifications: _superstruct.array.call(void 0,
213
+ _superstruct.object.call(void 0, {
214
+ id: _superstruct.string.call(void 0, ),
215
+ message: _superstruct.string.call(void 0, ),
216
+ type: _superstruct.union.call(void 0, [
217
+ _snapssdk.enumValue.call(void 0, _snapssdk.NotificationType.InApp),
218
+ _snapssdk.enumValue.call(void 0, _snapssdk.NotificationType.Native)
219
+ ])
220
+ })
221
+ )
222
+ })
223
+ );
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+ exports.TransactionOptionsStruct = TransactionOptionsStruct; exports.SignatureOptionsStruct = SignatureOptionsStruct; exports.SnapOptionsStruct = SnapOptionsStruct; exports.JsonRpcMockOptionsStruct = JsonRpcMockOptionsStruct; exports.InterfaceStruct = InterfaceStruct; exports.SnapResponseStruct = SnapResponseStruct;
233
+ //# sourceMappingURL=chunk-T2BE4O5H.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internals/structs.ts"],"names":[],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,mBAAmB;AAC5B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,IAAM,kBAAkB,MAAM;AAAA,EAC5B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS,UAAU;AACrB,CAAC;AAEM,IAAM,2BAA2B,OAAO;AAAA;AAAA;AAAA;AAAA,EAI7C,SAAS,UAAU,OAAO,GAAG,UAAU;AAAA;AAAA;AAAA;AAAA,EAKvC,QAAQ,UAAU,OAAO,GAAG,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOzC,MAAM,OAAO,iBAAiB,SAAS,eAAe,GAAG,CAAC,UAAU;AAClE,QAAI,OAAO;AACT,aAAO,WAAW,aAAa,KAAK,CAAC;AAAA,IACvC;AAEA,WAAO,WAAW,YAAY,EAAE,CAAC;AAAA,EACnC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,OAAO,iBAAiB,SAAS,eAAe,GAAG,CAAC,UAAU;AAChE,QAAI,OAAO;AACT,aAAO,WAAW,aAAa,KAAK,CAAC;AAAA,IACvC;AAEA,WAAO,WAAW,YAAY,EAAE,CAAC;AAAA,EACnC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO;AAAA,IACL;AAAA,MAAO;AAAA,MAAiB;AAAA,MAAiB,CAAC,UACxC,WAAW,aAAa,KAAK,CAAC;AAAA,IAChC;AAAA,IACA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU;AAAA,IACR;AAAA,MAAO;AAAA,MAAiB;AAAA,MAAiB,CAAC,UACxC,WAAW,aAAa,KAAK,CAAC;AAAA,IAChC;AAAA,IACA,aAAa,IAAM;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAc;AAAA,IACZ;AAAA,MAAO;AAAA,MAAiB;AAAA,MAAiB,CAAC,UACxC,WAAW,aAAa,KAAK,CAAC;AAAA,IAChC;AAAA,IACA,aAAa,CAAC;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,sBAAsB;AAAA,IACpB;AAAA,MAAO;AAAA,MAAiB;AAAA,MAAiB,CAAC,UACxC,WAAW,aAAa,KAAK,CAAC;AAAA,IAChC;AAAA,IACA,aAAa,CAAC;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO;AAAA,IACL;AAAA,MAAO;AAAA,MAAiB;AAAA,MAAiB,CAAC,UACxC,WAAW,aAAa,KAAK,CAAC;AAAA,IAChC;AAAA,IACA,aAAa,CAAC;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM;AAAA,IACJ;AAAA,MAAO,MAAM,CAAC,iBAAiB,QAAQ,IAAI,CAAC,CAAC;AAAA,MAAG;AAAA,MAAiB,CAAC,UAChE,WAAW,aAAa,KAAK,CAAC;AAAA,IAChC;AAAA,IACA;AAAA,EACF;AACF,CAAC;AAEM,IAAM,yBAAyB,OAAO;AAAA;AAAA;AAAA;AAAA,EAI3C,QAAQ,UAAU,OAAO,GAAG,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzC,MAAM,OAAO,iBAAiB,SAAS,eAAe,GAAG,CAAC,UAAU;AAClE,QAAI,OAAO;AACT,aAAO,WAAW,aAAa,KAAK,CAAC;AAAA,IACvC;AAEA,WAAO,WAAW,YAAY,EAAE,CAAC;AAAA,EACnC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,MAAM;AAAA,IACJ,MAAM;AAAA,MACJ;AAAA,MACA,QAAQ,IAAI;AAAA,MACZ,OAAO,OAAO,GAAG,IAAI,CAAC;AAAA,MACtB,MAAM,OAAO,OAAO,GAAG,IAAI,CAAC,CAAC;AAAA,IAC/B,CAAC;AAAA,IACD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB;AAAA,IACf,MAAM;AAAA,MACJ,QAAQ,UAAU;AAAA,MAClB,QAAQ,eAAe;AAAA,MACvB,QAAQ,mBAAmB;AAAA,MAC3B,QAAQ,sBAAsB;AAAA,MAC9B,QAAQ,sBAAsB;AAAA,IAChC,CAAC;AAAA,IACD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,oBAAoB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtC,SAAS,UAAU,SAAS,OAAO,CAAC,GAAG,GAAI;AAC7C,CAAC;AAEM,IAAM,2BAA2B,OAAO;AAAA,EAC7C,QAAQ,OAAO;AAAA,EACf,QAAQ;AACV,CAAC;AAEM,IAAM,kBAAkB,KAAK;AAAA,EAClC,SAAS,SAAS,eAAe;AACnC,CAAC;AAEM,IAAM,qBAAqB;AAAA,EAChC;AAAA,EACA,OAAO;AAAA,IACL,IAAI,OAAO;AAAA,IAEX,UAAU,MAAM;AAAA,MACd,OAAO;AAAA,QACL,QAAQ;AAAA,MACV,CAAC;AAAA,MACD,OAAO;AAAA,QACL,OAAO;AAAA,MACT,CAAC;AAAA,IACH,CAAC;AAAA,IAED,eAAe;AAAA,MACb,OAAO;AAAA,QACL,IAAI,OAAO;AAAA,QACX,SAAS,OAAO;AAAA,QAChB,MAAM,MAAM;AAAA,UACV,UAAU,iBAAiB,KAAK;AAAA,UAChC,UAAU,iBAAiB,MAAM;AAAA,QACnC,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH","sourcesContent":["import {\n NotificationType,\n ComponentStruct,\n enumValue,\n} from '@metamask/snaps-sdk';\nimport {\n bytesToHex,\n JsonStruct,\n StrictHexStruct,\n valueToBytes,\n} from '@metamask/utils';\nimport { randomBytes } from 'crypto';\nimport {\n array,\n assign,\n bigint,\n coerce,\n defaulted,\n instance,\n literal,\n number,\n object,\n optional,\n string,\n type,\n union,\n record,\n any,\n} from 'superstruct';\n\n// TODO: Export this from `@metamask/utils` instead.\nconst BytesLikeStruct = union([\n bigint(),\n number(),\n string(),\n instance(Uint8Array),\n]);\n\nexport const TransactionOptionsStruct = object({\n /**\n * The CAIP-2 chain ID to send the transaction on. Defaults to `eip155:1`.\n */\n chainId: defaulted(string(), 'eip155:1'),\n\n /**\n * The origin to send the transaction from. Defaults to `metamask.io`.\n */\n origin: defaulted(string(), 'metamask.io'),\n\n /**\n * The address to send the transaction from. Defaults to a randomly generated\n * address.\n */\n // TODO: Move this coercer to `@metamask/utils`.\n from: coerce(StrictHexStruct, optional(BytesLikeStruct), (value) => {\n if (value) {\n return bytesToHex(valueToBytes(value));\n }\n\n return bytesToHex(randomBytes(20));\n }),\n\n /**\n * The address to send the transaction to. Defaults to a randomly generated\n * address.\n */\n // TODO: Move this coercer to `@metamask/utils`.\n to: coerce(StrictHexStruct, optional(BytesLikeStruct), (value) => {\n if (value) {\n return bytesToHex(valueToBytes(value));\n }\n\n return bytesToHex(randomBytes(20));\n }),\n\n /**\n * The value to send with the transaction. The value may be specified as a\n * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0`.\n */\n value: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n '0x0',\n ),\n\n /**\n * The gas limit to use for the transaction. The gas limit may be specified\n * as a `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `21_000`.\n */\n gasLimit: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(21_000),\n ),\n\n /**\n * The max fee per gas (in Wei) to use for the transaction. The max fee per\n * gas may be specified as a `number`, `bigint`, `string`, or `Uint8Array`.\n * Defaults to `1`.\n */\n maxFeePerGas: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(1),\n ),\n\n /**\n * The max priority fee per gas (in Wei) to use for the transaction. The max\n * priority fee per gas may be specified as a `number`, `bigint`, `string`,\n * or `Uint8Array`. Defaults to `1`.\n */\n maxPriorityFeePerGas: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(1),\n ),\n\n /**\n * The nonce to use for the transaction. The nonce may be specified as a\n * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0`.\n */\n nonce: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(0),\n ),\n\n /**\n * The data to send with the transaction. The data may be specified as a\n * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0x`.\n */\n data: defaulted(\n coerce(union([StrictHexStruct, literal('0x')]), BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n '0x',\n ),\n});\n\nexport const SignatureOptionsStruct = object({\n /**\n * The origin making the signature request.\n */\n origin: defaulted(string(), 'metamask.io'),\n\n /**\n * The address signing the signature request. Defaults to a randomly generated\n * address.\n */\n from: coerce(StrictHexStruct, optional(BytesLikeStruct), (value) => {\n if (value) {\n return bytesToHex(valueToBytes(value));\n }\n\n return bytesToHex(randomBytes(20));\n }),\n\n /**\n * The data to send with the transaction. The data may be specified as a\n * `string`, an object, or an array of objects. This covers the data types\n * for the supported signature methods. Defaults to `0x`.\n */\n data: defaulted(\n union([\n StrictHexStruct,\n literal('0x'),\n record(string(), any()),\n array(record(string(), any())),\n ]),\n '0x',\n ),\n\n /**\n * The signature method being used.\n */\n signatureMethod: defaulted(\n union([\n literal('eth_sign'),\n literal('personal_sign'),\n literal('eth_signTypedData'),\n literal('eth_signTypedData_v3'),\n literal('eth_signTypedData_v4'),\n ]),\n 'personal_sign',\n ),\n});\n\nexport const SnapOptionsStruct = object({\n /**\n * The timeout in milliseconds to use for requests to the snap. Defaults to\n * `1000`.\n */\n timeout: defaulted(optional(number()), 1000),\n});\n\nexport const JsonRpcMockOptionsStruct = object({\n method: string(),\n result: JsonStruct,\n});\n\nexport const InterfaceStruct = type({\n content: optional(ComponentStruct),\n});\n\nexport const SnapResponseStruct = assign(\n InterfaceStruct,\n object({\n id: string(),\n\n response: union([\n object({\n result: JsonStruct,\n }),\n object({\n error: JsonStruct,\n }),\n ]),\n\n notifications: array(\n object({\n id: string(),\n message: string(),\n type: union([\n enumValue(NotificationType.InApp),\n enumValue(NotificationType.Native),\n ]),\n }),\n ),\n }),\n);\n"]}
@@ -0,0 +1,28 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/options.ts
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+ var _superstruct = require('superstruct');
11
+ var SnapsEnvironmentOptionsStruct = _superstruct.type.call(void 0, {
12
+ server: _superstruct.defaulted.call(void 0,
13
+ _superstruct.object.call(void 0, {
14
+ enabled: _superstruct.defaulted.call(void 0, _superstruct.boolean.call(void 0, ), true),
15
+ port: _superstruct.defaulted.call(void 0, _superstruct.number.call(void 0, ), 0),
16
+ root: _superstruct.defaulted.call(void 0, _superstruct.string.call(void 0, ), process.cwd())
17
+ }),
18
+ {}
19
+ )
20
+ });
21
+ function getOptions(testEnvironmentOptions) {
22
+ return _superstruct.create.call(void 0, testEnvironmentOptions, SnapsEnvironmentOptionsStruct);
23
+ }
24
+
25
+
26
+
27
+ exports.getOptions = getOptions;
28
+ //# sourceMappingURL=chunk-T2PHS5FY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/options.ts"],"names":[],"mappings":";AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,IAAM,gCAAgC,KAAK;AAAA,EACzC,QAAQ;AAAA,IACN,OAAO;AAAA,MACL,SAAS,UAAU,QAAQ,GAAG,IAAI;AAAA,MAClC,MAAM,UAAU,OAAO,GAAG,CAAC;AAAA,MAC3B,MAAM,UAAU,OAAO,GAAG,QAAQ,IAAI,CAAC;AAAA,IACzC,CAAC;AAAA,IACD,CAAC;AAAA,EACH;AACF,CAAC;AAuCM,SAAS,WAAW,wBAAiD;AAC1E,SAAO,OAAO,wBAAwB,6BAA6B;AACrE","sourcesContent":["import type { Infer } from 'superstruct';\nimport {\n boolean,\n create,\n defaulted,\n number,\n object,\n string,\n type,\n} from 'superstruct';\n\nconst SnapsEnvironmentOptionsStruct = type({\n server: defaulted(\n object({\n enabled: defaulted(boolean(), true),\n port: defaulted(number(), 0),\n root: defaulted(string(), process.cwd()),\n }),\n {},\n ),\n});\n\n/**\n * The options for the environment. These can be specified in the Jest\n * configuration under `testEnvironmentOptions`.\n *\n * @example\n * {\n * \"testEnvironment\": \"@metamask/snaps-jest\",\n * \"testEnvironmentOptions\": {\n * \"executionEnvironmentUrl\": \"http://localhost:8080\",\n * \"server\": {\n * \"port\": 8080,\n * /* ... *\\/\n * }\n * }\n * }\n * @property server - The options for the built-in HTTP server.\n * @property server.enabled - Whether to run the built-in HTTP server. Defaults\n * to `true`.\n * @property server.port - The port to use for the built-in HTTP server. If this\n * is not provided, a random available port will be used.\n * @property server.root - The root directory to serve from the built-in HTTP\n * server. Defaults to the current working directory. This is assumed to be the\n * directory containing the snap manifest and `dist` files. If this is a\n * relative path, it will be resolved relative to the current working directory.\n */\nexport type SnapsEnvironmentOptions = Infer<\n typeof SnapsEnvironmentOptionsStruct\n>;\n\n/**\n * Get the environment options. This validates the options, and returns the\n * default options if none are provided.\n *\n * @param testEnvironmentOptions - The test environment options as defined in\n * the Jest configuration.\n * @returns The environment options.\n */\nexport function getOptions(testEnvironmentOptions: Record<string, unknown>) {\n return create(testEnvironmentOptions, SnapsEnvironmentOptionsStruct);\n}\n"]}
@@ -0,0 +1,16 @@
1
+ // src/internals/simulation/files.ts
2
+ import { AuxiliaryFileEncoding } from "@metamask/snaps-sdk";
3
+ import { encodeAuxiliaryFile, normalizeRelative } from "@metamask/snaps-utils";
4
+ async function getSnapFile(files, path, encoding = AuxiliaryFileEncoding.Base64) {
5
+ const normalizedPath = normalizeRelative(path);
6
+ const base64 = files.find((file) => file.path === normalizedPath)?.toString("base64");
7
+ if (!base64) {
8
+ return null;
9
+ }
10
+ return await encodeAuxiliaryFile(base64, encoding);
11
+ }
12
+
13
+ export {
14
+ getSnapFile
15
+ };
16
+ //# sourceMappingURL=chunk-TBDYQSRT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internals/simulation/files.ts"],"sourcesContent":["import { AuxiliaryFileEncoding } from '@metamask/snaps-sdk';\nimport type { VirtualFile } from '@metamask/snaps-utils';\nimport { encodeAuxiliaryFile, normalizeRelative } from '@metamask/snaps-utils';\n\n/**\n * Get a statically defined Snap file from an array of files.\n *\n * @param files - The Snap files.\n * @param path - The file path.\n * @param encoding - The requested file encoding.\n * @returns The file in the requested encoding if found, otherwise null.\n */\nexport async function getSnapFile(\n files: VirtualFile[],\n path: string,\n encoding: AuxiliaryFileEncoding = AuxiliaryFileEncoding.Base64,\n) {\n const normalizedPath = normalizeRelative(path);\n const base64 = files\n .find((file) => file.path === normalizedPath)\n ?.toString('base64');\n\n if (!base64) {\n return null;\n }\n\n return await encodeAuxiliaryFile(base64, encoding);\n}\n"],"mappings":";AAAA,SAAS,6BAA6B;AAEtC,SAAS,qBAAqB,yBAAyB;AAUvD,eAAsB,YACpB,OACA,MACA,WAAkC,sBAAsB,QACxD;AACA,QAAM,iBAAiB,kBAAkB,IAAI;AAC7C,QAAM,SAAS,MACZ,KAAK,CAAC,SAAS,KAAK,SAAS,cAAc,GAC1C,SAAS,QAAQ;AAErB,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,SAAO,MAAM,oBAAoB,QAAQ,QAAQ;AACnD;","names":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkPZDTZGSIjs = require('./chunk-PZDTZGSI.js');
4
+
5
+
6
+ var _chunkLACTK6EOjs = require('./chunk-LACTK6EO.js');
7
+
8
+
9
+ var _chunk2YE2P5BZjs = require('./chunk-2YE2P5BZ.js');
10
+
11
+
12
+
13
+ var _chunkLBC2OGSNjs = require('./chunk-LBC2OGSN.js');
14
+
15
+ // src/internals/simulation/store/store.ts
16
+ var _toolkit = require('@reduxjs/toolkit');
17
+ var _reduxsaga = require('redux-saga'); var _reduxsaga2 = _interopRequireDefault(_reduxsaga);
18
+ function createStore(password, { state, unencryptedState }) {
19
+ const sagaMiddleware = _reduxsaga2.default.call(void 0, );
20
+ const store = _toolkit.configureStore.call(void 0, {
21
+ reducer: {
22
+ mocks: _chunkLACTK6EOjs.mocksSlice.reducer,
23
+ notifications: _chunk2YE2P5BZjs.notificationsSlice.reducer,
24
+ state: _chunkLBC2OGSNjs.stateSlice.reducer,
25
+ ui: _chunkPZDTZGSIjs.uiSlice.reducer
26
+ },
27
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware({ thunk: false }).concat(sagaMiddleware)
28
+ });
29
+ if (state) {
30
+ store.dispatch(
31
+ _chunkLBC2OGSNjs.setState.call(void 0, {
32
+ state: JSON.stringify({
33
+ password,
34
+ value: state
35
+ }),
36
+ encrypted: true
37
+ })
38
+ );
39
+ }
40
+ if (unencryptedState) {
41
+ store.dispatch(
42
+ _chunkLBC2OGSNjs.setState.call(void 0, {
43
+ state: JSON.stringify(unencryptedState),
44
+ encrypted: false
45
+ })
46
+ );
47
+ }
48
+ return {
49
+ store,
50
+ runSaga: sagaMiddleware.run.bind(sagaMiddleware)
51
+ };
52
+ }
53
+
54
+
55
+
56
+ exports.createStore = createStore;
57
+ //# sourceMappingURL=chunk-TO46ICOZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internals/simulation/store/store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,SAAS,sBAAsB;AAC/B,OAAO,0BAA0B;AAiB1B,SAAS,YACd,UACA,EAAE,OAAO,iBAAiB,GAC1B;AACA,QAAM,iBAAiB,qBAAqB;AAC5C,QAAM,QAAQ,eAAe;AAAA,IAC3B,SAAS;AAAA,MACP,OAAO,WAAW;AAAA,MAClB,eAAe,mBAAmB;AAAA,MAClC,OAAO,WAAW;AAAA,MAClB,IAAI,QAAQ;AAAA,IACd;AAAA,IACA,YAAY,CAAC,yBACX,qBAAqB,EAAE,OAAO,MAAM,CAAC,EAAE,OAAO,cAAc;AAAA,EAChE,CAAC;AAGD,MAAI,OAAO;AACT,UAAM;AAAA,MACJ,SAAS;AAAA,QACP,OAAO,KAAK,UAAU;AAAA,UACpB;AAAA,UACA,OAAO;AAAA,QACT,CAAC;AAAA,QACD,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,kBAAkB;AACpB,UAAM;AAAA,MACJ,SAAS;AAAA,QACP,OAAO,KAAK,UAAU,gBAAgB;AAAA,QACtC,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,SAAS,eAAe,IAAI,KAAK,cAAc;AAAA,EACjD;AACF","sourcesContent":["import { configureStore } from '@reduxjs/toolkit';\nimport createSagaMiddleware from 'redux-saga';\n\nimport type { SimulationOptions } from '../options';\nimport { mocksSlice } from './mocks';\nimport { notificationsSlice } from './notifications';\nimport { setState, stateSlice } from './state';\nimport { uiSlice } from './ui';\n\n/**\n * Create a Redux store.\n *\n * @param password - The password to use for state encryption.\n * @param options - The simulation options.\n * @param options.state - The initial state for the Snap.\n * @param options.unencryptedState - The initial unencrypted state for the Snap.\n * @returns A Redux store with the default state.\n */\nexport function createStore(\n password: string,\n { state, unencryptedState }: SimulationOptions,\n) {\n const sagaMiddleware = createSagaMiddleware();\n const store = configureStore({\n reducer: {\n mocks: mocksSlice.reducer,\n notifications: notificationsSlice.reducer,\n state: stateSlice.reducer,\n ui: uiSlice.reducer,\n },\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({ thunk: false }).concat(sagaMiddleware),\n });\n\n // Set initial state for the Snap.\n if (state) {\n store.dispatch(\n setState({\n state: JSON.stringify({\n password,\n value: state,\n }),\n encrypted: true,\n }),\n );\n }\n\n if (unencryptedState) {\n store.dispatch(\n setState({\n state: JSON.stringify(unencryptedState),\n encrypted: false,\n }),\n );\n }\n\n return {\n store,\n runSaga: sagaMiddleware.run.bind(sagaMiddleware),\n };\n}\n\nexport type Store = ReturnType<typeof createStore>['store'];\nexport type ApplicationState = ReturnType<Store['getState']>;\nexport type RunSagaFunction = ReturnType<typeof createStore>['runSaga'];\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/internals/simulation/files.ts
2
+ var _snapssdk = require('@metamask/snaps-sdk');
3
+ var _snapsutils = require('@metamask/snaps-utils');
4
+ async function getSnapFile(files, path, encoding = _snapssdk.AuxiliaryFileEncoding.Base64) {
5
+ const normalizedPath = _snapsutils.normalizeRelative.call(void 0, path);
6
+ const base64 = files.find((file) => file.path === normalizedPath)?.toString("base64");
7
+ if (!base64) {
8
+ return null;
9
+ }
10
+ return await _snapsutils.encodeAuxiliaryFile.call(void 0, base64, encoding);
11
+ }
12
+
13
+
14
+
15
+ exports.getSnapFile = getSnapFile;
16
+ //# sourceMappingURL=chunk-TVD4SWH7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internals/simulation/files.ts"],"names":[],"mappings":";AAAA,SAAS,6BAA6B;AAEtC,SAAS,qBAAqB,yBAAyB;AAUvD,eAAsB,YACpB,OACA,MACA,WAAkC,sBAAsB,QACxD;AACA,QAAM,iBAAiB,kBAAkB,IAAI;AAC7C,QAAM,SAAS,MACZ,KAAK,CAAC,SAAS,KAAK,SAAS,cAAc,GAC1C,SAAS,QAAQ;AAErB,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,SAAO,MAAM,oBAAoB,QAAQ,QAAQ;AACnD","sourcesContent":["import { AuxiliaryFileEncoding } from '@metamask/snaps-sdk';\nimport type { VirtualFile } from '@metamask/snaps-utils';\nimport { encodeAuxiliaryFile, normalizeRelative } from '@metamask/snaps-utils';\n\n/**\n * Get a statically defined Snap file from an array of files.\n *\n * @param files - The Snap files.\n * @param path - The file path.\n * @param encoding - The requested file encoding.\n * @returns The file in the requested encoding if found, otherwise null.\n */\nexport async function getSnapFile(\n files: VirtualFile[],\n path: string,\n encoding: AuxiliaryFileEncoding = AuxiliaryFileEncoding.Base64,\n) {\n const normalizedPath = normalizeRelative(path);\n const base64 = files\n .find((file) => file.path === normalizedPath)\n ?.toString('base64');\n\n if (!base64) {\n return null;\n }\n\n return await encodeAuxiliaryFile(base64, encoding);\n}\n"]}
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/internals/logger.ts
2
+ var _utils = require('@metamask/utils');
3
+ var rootLogger = _utils.createProjectLogger.call(void 0, "snaps-jest");
4
+
5
+
6
+
7
+ exports.rootLogger = rootLogger;
8
+ //# sourceMappingURL=chunk-TZB4LBT7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internals/logger.ts"],"names":[],"mappings":";AAAA,SAAS,2BAA2B;AAE7B,IAAM,aAAa,oBAAoB,YAAY","sourcesContent":["import { createProjectLogger } from '@metamask/utils';\n\nexport const rootLogger = createProjectLogger('snaps-jest');\n"]}
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=chunk-U5BLLHIU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}