@metamask/snaps-execution-environments 4.0.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/CHANGELOG.md +10 -1
  2. package/dist/browserify/iframe/bundle.js +4 -4
  3. package/dist/browserify/node-process/bundle.js +3 -3
  4. package/dist/browserify/node-thread/bundle.js +3 -3
  5. package/dist/browserify/webview/bundle.js +4 -4
  6. package/dist/browserify/worker-executor/bundle.js +4 -4
  7. package/dist/browserify/worker-pool/bundle.js +4 -4
  8. package/dist/chunk-26EFJQDW.mjs +49 -0
  9. package/dist/chunk-26EFJQDW.mjs.map +1 -0
  10. package/dist/chunk-4NOF6TN6.js +51 -0
  11. package/dist/chunk-4NOF6TN6.js.map +1 -0
  12. package/dist/chunk-5DIRYAYO.js +30 -0
  13. package/dist/chunk-5DIRYAYO.js.map +1 -0
  14. package/dist/chunk-5RKYO2Y5.js +33 -0
  15. package/dist/chunk-5RKYO2Y5.js.map +1 -0
  16. package/dist/chunk-6GHFAQ54.mjs +44 -0
  17. package/dist/chunk-6GHFAQ54.mjs.map +1 -0
  18. package/dist/chunk-A7NJQLUA.mjs +32 -0
  19. package/dist/chunk-A7NJQLUA.mjs.map +1 -0
  20. package/dist/chunk-AJFPA6MI.js +81 -0
  21. package/dist/chunk-AJFPA6MI.js.map +1 -0
  22. package/dist/chunk-AQNACKO6.js +1 -0
  23. package/dist/chunk-AQNACKO6.js.map +1 -0
  24. package/dist/chunk-AZCRNZ5W.js +49 -0
  25. package/dist/chunk-AZCRNZ5W.js.map +1 -0
  26. package/dist/chunk-B3ASGNVQ.mjs +45 -0
  27. package/dist/chunk-B3ASGNVQ.mjs.map +1 -0
  28. package/dist/chunk-BE4YFFMX.js +49 -0
  29. package/dist/chunk-BE4YFFMX.js.map +1 -0
  30. package/dist/chunk-BOCIYCLE.mjs +30 -0
  31. package/dist/chunk-BOCIYCLE.mjs.map +1 -0
  32. package/dist/chunk-CCBKFCGG.js +147 -0
  33. package/dist/chunk-CCBKFCGG.js.map +1 -0
  34. package/dist/chunk-CINBMYIQ.mjs +183 -0
  35. package/dist/chunk-CINBMYIQ.mjs.map +1 -0
  36. package/dist/chunk-EBECHU6M.js +92 -0
  37. package/dist/chunk-EBECHU6M.js.map +1 -0
  38. package/dist/chunk-ETXAWW65.mjs +86 -0
  39. package/dist/chunk-ETXAWW65.mjs.map +1 -0
  40. package/dist/chunk-EXN2TFDJ.js +38 -0
  41. package/dist/chunk-EXN2TFDJ.js.map +1 -0
  42. package/dist/chunk-FNRATYYY.mjs +24 -0
  43. package/dist/chunk-FNRATYYY.mjs.map +1 -0
  44. package/dist/chunk-FQBU72MW.mjs +16 -0
  45. package/dist/chunk-FQBU72MW.mjs.map +1 -0
  46. package/dist/chunk-G3NCGVCC.mjs +33 -0
  47. package/dist/chunk-G3NCGVCC.mjs.map +1 -0
  48. package/dist/chunk-GH6FPDY5.mjs +147 -0
  49. package/dist/chunk-GH6FPDY5.mjs.map +1 -0
  50. package/dist/chunk-HSZIPZHO.js +183 -0
  51. package/dist/chunk-HSZIPZHO.js.map +1 -0
  52. package/dist/chunk-IU54VPNO.js +67 -0
  53. package/dist/chunk-IU54VPNO.js.map +1 -0
  54. package/dist/chunk-IXYNAYMQ.js +33 -0
  55. package/dist/chunk-IXYNAYMQ.js.map +1 -0
  56. package/dist/chunk-IY3CYGH7.js +44 -0
  57. package/dist/chunk-IY3CYGH7.js.map +1 -0
  58. package/dist/chunk-KQNKD7G5.mjs +40 -0
  59. package/dist/chunk-KQNKD7G5.mjs.map +1 -0
  60. package/dist/chunk-KWFB2KH2.mjs +73 -0
  61. package/dist/chunk-KWFB2KH2.mjs.map +1 -0
  62. package/dist/chunk-L4G6IIWG.js +484 -0
  63. package/dist/chunk-L4G6IIWG.js.map +1 -0
  64. package/dist/chunk-L5U2LMZR.js +26 -0
  65. package/dist/chunk-L5U2LMZR.js.map +1 -0
  66. package/dist/chunk-LGC7HQR4.js +32 -0
  67. package/dist/chunk-LGC7HQR4.js.map +1 -0
  68. package/dist/chunk-LX5LQXYU.js +16 -0
  69. package/dist/chunk-LX5LQXYU.js.map +1 -0
  70. package/dist/chunk-M2OYI2NS.js +108 -0
  71. package/dist/chunk-M2OYI2NS.js.map +1 -0
  72. package/dist/chunk-MOWPAP2K.mjs +92 -0
  73. package/dist/chunk-MOWPAP2K.mjs.map +1 -0
  74. package/dist/chunk-N7URTBJV.js +73 -0
  75. package/dist/chunk-N7URTBJV.js.map +1 -0
  76. package/dist/chunk-OW4IXJ5J.mjs +484 -0
  77. package/dist/chunk-OW4IXJ5J.mjs.map +1 -0
  78. package/dist/chunk-OWG545LQ.js +45 -0
  79. package/dist/chunk-OWG545LQ.js.map +1 -0
  80. package/dist/chunk-QYFJ2LLW.js +86 -0
  81. package/dist/chunk-QYFJ2LLW.js.map +1 -0
  82. package/dist/chunk-RCPCISJD.mjs +16 -0
  83. package/dist/chunk-RCPCISJD.mjs.map +1 -0
  84. package/dist/chunk-RDFGQYG6.mjs +147 -0
  85. package/dist/chunk-RDFGQYG6.mjs.map +1 -0
  86. package/dist/chunk-RO347OMD.js +16 -0
  87. package/dist/chunk-RO347OMD.js.map +1 -0
  88. package/dist/chunk-RWBJNNGH.js +24 -0
  89. package/dist/chunk-RWBJNNGH.js.map +1 -0
  90. package/dist/chunk-S7LRB72P.js +38 -0
  91. package/dist/chunk-S7LRB72P.js.map +1 -0
  92. package/dist/chunk-SWINKAMI.js +147 -0
  93. package/dist/chunk-SWINKAMI.js.map +1 -0
  94. package/dist/chunk-TVV27HGP.mjs +81 -0
  95. package/dist/chunk-TVV27HGP.mjs.map +1 -0
  96. package/dist/chunk-TWF4RAXL.mjs +49 -0
  97. package/dist/chunk-TWF4RAXL.mjs.map +1 -0
  98. package/dist/chunk-VL3VNUT4.mjs +12 -0
  99. package/dist/chunk-VL3VNUT4.mjs.map +1 -0
  100. package/dist/chunk-VZS2LXDP.mjs +108 -0
  101. package/dist/chunk-VZS2LXDP.mjs.map +1 -0
  102. package/dist/chunk-WA7K3P4D.js +40 -0
  103. package/dist/chunk-WA7K3P4D.js.map +1 -0
  104. package/dist/chunk-XBKAIK2K.mjs +67 -0
  105. package/dist/chunk-XBKAIK2K.mjs.map +1 -0
  106. package/dist/chunk-XGCWN6ZD.mjs +262 -0
  107. package/dist/chunk-XGCWN6ZD.mjs.map +1 -0
  108. package/dist/chunk-XKY46YTJ.js +12 -0
  109. package/dist/chunk-XKY46YTJ.js.map +1 -0
  110. package/dist/chunk-XL5BQOEI.mjs +33 -0
  111. package/dist/chunk-XL5BQOEI.mjs.map +1 -0
  112. package/dist/chunk-XMCETCVM.js +48 -0
  113. package/dist/chunk-XMCETCVM.js.map +1 -0
  114. package/dist/chunk-XYRWHY3K.mjs +51 -0
  115. package/dist/chunk-XYRWHY3K.mjs.map +1 -0
  116. package/dist/chunk-Y7IEFWZU.mjs +26 -0
  117. package/dist/chunk-Y7IEFWZU.mjs.map +1 -0
  118. package/dist/chunk-YC3HWHJV.mjs +48 -0
  119. package/dist/chunk-YC3HWHJV.mjs.map +1 -0
  120. package/dist/chunk-YMAK7TUO.mjs +1 -0
  121. package/dist/chunk-YMAK7TUO.mjs.map +1 -0
  122. package/dist/chunk-YRZVIDCF.mjs +38 -0
  123. package/dist/chunk-YRZVIDCF.mjs.map +1 -0
  124. package/dist/chunk-Z7FBBBME.mjs +38 -0
  125. package/dist/chunk-Z7FBBBME.mjs.map +1 -0
  126. package/dist/chunk-ZMDJRC2Z.js +262 -0
  127. package/dist/chunk-ZMDJRC2Z.js.map +1 -0
  128. package/dist/common/BaseSnapExecutor.js +26 -0
  129. package/dist/common/BaseSnapExecutor.js.map +1 -0
  130. package/dist/common/BaseSnapExecutor.mjs +26 -0
  131. package/dist/common/BaseSnapExecutor.mjs.map +1 -0
  132. package/dist/common/commands.js +11 -0
  133. package/dist/common/commands.js.map +1 -0
  134. package/dist/common/commands.mjs +11 -0
  135. package/dist/common/commands.mjs.map +1 -0
  136. package/dist/common/endowments/commonEndowmentFactory.js +20 -0
  137. package/dist/common/endowments/commonEndowmentFactory.js.map +1 -0
  138. package/dist/common/endowments/commonEndowmentFactory.mjs +20 -0
  139. package/dist/common/endowments/commonEndowmentFactory.mjs.map +1 -0
  140. package/dist/common/endowments/console.js +13 -0
  141. package/dist/common/endowments/console.js.map +1 -0
  142. package/dist/common/endowments/console.mjs +13 -0
  143. package/dist/common/endowments/console.mjs.map +1 -0
  144. package/dist/common/endowments/crypto.js +11 -0
  145. package/dist/common/endowments/crypto.js.map +1 -0
  146. package/dist/common/endowments/crypto.mjs +11 -0
  147. package/dist/common/endowments/crypto.mjs.map +1 -0
  148. package/dist/common/endowments/date.js +9 -0
  149. package/dist/common/endowments/date.js.map +1 -0
  150. package/dist/common/endowments/date.mjs +9 -0
  151. package/dist/common/endowments/date.mjs.map +1 -0
  152. package/dist/common/endowments/index.js +21 -0
  153. package/dist/common/endowments/index.js.map +1 -0
  154. package/dist/common/endowments/index.mjs +21 -0
  155. package/dist/common/endowments/index.mjs.map +1 -0
  156. package/dist/common/endowments/interval.js +8 -0
  157. package/dist/common/endowments/interval.js.map +1 -0
  158. package/dist/common/endowments/interval.mjs +8 -0
  159. package/dist/common/endowments/interval.mjs.map +1 -0
  160. package/dist/common/endowments/math.js +10 -0
  161. package/dist/common/endowments/math.js.map +1 -0
  162. package/dist/common/endowments/math.mjs +10 -0
  163. package/dist/common/endowments/math.mjs.map +1 -0
  164. package/dist/common/endowments/network.js +10 -0
  165. package/dist/common/endowments/network.js.map +1 -0
  166. package/dist/common/endowments/network.mjs +10 -0
  167. package/dist/common/endowments/network.mjs.map +1 -0
  168. package/dist/common/endowments/textDecoder.js +8 -0
  169. package/dist/common/endowments/textDecoder.js.map +1 -0
  170. package/dist/common/endowments/textDecoder.mjs +8 -0
  171. package/dist/common/endowments/textDecoder.mjs.map +1 -0
  172. package/dist/common/endowments/textEncoder.js +8 -0
  173. package/dist/common/endowments/textEncoder.js.map +1 -0
  174. package/dist/common/endowments/textEncoder.mjs +8 -0
  175. package/dist/common/endowments/textEncoder.mjs.map +1 -0
  176. package/dist/common/endowments/timeout.js +8 -0
  177. package/dist/common/endowments/timeout.js.map +1 -0
  178. package/dist/common/endowments/timeout.mjs +8 -0
  179. package/dist/common/endowments/timeout.mjs.map +1 -0
  180. package/dist/common/globalEvents.js +11 -0
  181. package/dist/common/globalEvents.js.map +1 -0
  182. package/dist/common/globalEvents.mjs +11 -0
  183. package/dist/common/globalEvents.mjs.map +1 -0
  184. package/dist/common/globalObject.js +10 -0
  185. package/dist/common/globalObject.js.map +1 -0
  186. package/dist/common/globalObject.mjs +10 -0
  187. package/dist/common/globalObject.mjs.map +1 -0
  188. package/dist/common/lockdown/lockdown-events.js +8 -0
  189. package/dist/common/lockdown/lockdown-events.js.map +1 -0
  190. package/dist/common/lockdown/lockdown-events.mjs +8 -0
  191. package/dist/common/lockdown/lockdown-events.mjs.map +1 -0
  192. package/dist/common/lockdown/lockdown-more.js +8 -0
  193. package/dist/common/lockdown/lockdown-more.js.map +1 -0
  194. package/dist/common/lockdown/lockdown-more.mjs +8 -0
  195. package/dist/common/lockdown/lockdown-more.mjs.map +1 -0
  196. package/dist/common/lockdown/lockdown.js +22 -0
  197. package/dist/common/lockdown/lockdown.js.map +1 -0
  198. package/dist/common/lockdown/lockdown.mjs +22 -0
  199. package/dist/common/lockdown/lockdown.mjs.map +1 -0
  200. package/dist/common/sortParams.js +8 -0
  201. package/dist/common/sortParams.js.map +1 -0
  202. package/dist/common/sortParams.mjs +8 -0
  203. package/dist/common/sortParams.mjs.map +1 -0
  204. package/dist/common/utils.js +21 -0
  205. package/dist/common/utils.js.map +1 -0
  206. package/dist/common/utils.mjs +21 -0
  207. package/dist/common/utils.mjs.map +1 -0
  208. package/dist/common/validation.js +38 -0
  209. package/dist/common/validation.js.map +1 -0
  210. package/dist/common/validation.mjs +38 -0
  211. package/dist/common/validation.mjs.map +1 -0
  212. package/dist/globals.d.js +1 -0
  213. package/dist/globals.d.js.map +1 -0
  214. package/dist/globals.d.mjs +1 -0
  215. package/dist/globals.d.mjs.map +1 -0
  216. package/dist/iframe/IFrameSnapExecutor.js +27 -0
  217. package/dist/iframe/IFrameSnapExecutor.js.map +1 -0
  218. package/dist/iframe/IFrameSnapExecutor.mjs +27 -0
  219. package/dist/iframe/IFrameSnapExecutor.mjs.map +1 -0
  220. package/dist/iframe/index.js +35 -0
  221. package/dist/iframe/index.js.map +1 -0
  222. package/dist/iframe/index.mjs +35 -0
  223. package/dist/iframe/index.mjs.map +1 -0
  224. package/dist/index.js +9 -0
  225. package/dist/index.js.map +1 -0
  226. package/dist/index.mjs +9 -0
  227. package/dist/index.mjs.map +1 -0
  228. package/dist/logging.js +8 -0
  229. package/dist/logging.js.map +1 -0
  230. package/dist/logging.mjs +8 -0
  231. package/dist/logging.mjs.map +1 -0
  232. package/dist/node-process/ChildProcessSnapExecutor.js +27 -0
  233. package/dist/node-process/ChildProcessSnapExecutor.js.map +1 -0
  234. package/dist/node-process/ChildProcessSnapExecutor.mjs +27 -0
  235. package/dist/node-process/ChildProcessSnapExecutor.mjs.map +1 -0
  236. package/dist/node-process/index.js +31 -0
  237. package/dist/node-process/index.js.map +1 -0
  238. package/dist/node-process/index.mjs +31 -0
  239. package/dist/node-process/index.mjs.map +1 -0
  240. package/dist/node-thread/ThreadSnapExecutor.js +27 -0
  241. package/dist/node-thread/ThreadSnapExecutor.js.map +1 -0
  242. package/dist/node-thread/ThreadSnapExecutor.mjs +27 -0
  243. package/dist/node-thread/ThreadSnapExecutor.mjs.map +1 -0
  244. package/dist/node-thread/index.js +31 -0
  245. package/dist/node-thread/index.js.map +1 -0
  246. package/dist/node-thread/index.mjs +31 -0
  247. package/dist/node-thread/index.mjs.map +1 -0
  248. package/dist/proxy/ProxySnapExecutor.js +8 -0
  249. package/dist/proxy/ProxySnapExecutor.js.map +1 -0
  250. package/dist/proxy/ProxySnapExecutor.mjs +8 -0
  251. package/dist/proxy/ProxySnapExecutor.mjs.map +1 -0
  252. package/dist/proxy/index.js +9 -0
  253. package/dist/proxy/index.js.map +1 -0
  254. package/dist/proxy/index.mjs +9 -0
  255. package/dist/proxy/index.mjs.map +1 -0
  256. package/dist/tsconfig.build.tsbuildinfo +1 -0
  257. package/dist/types/common/utils.d.ts +7 -0
  258. package/dist/types/vendor/global.d.js +1 -0
  259. package/dist/types/vendor/global.d.js.map +1 -0
  260. package/dist/types/vendor/global.d.mjs +1 -0
  261. package/dist/types/vendor/global.d.mjs.map +1 -0
  262. package/dist/types/vendor/readable-stream.d.js +1 -0
  263. package/dist/types/vendor/readable-stream.d.js.map +1 -0
  264. package/dist/types/vendor/readable-stream.d.mjs +1 -0
  265. package/dist/types/vendor/readable-stream.d.mjs.map +1 -0
  266. package/dist/webview/WebViewExecutorStream.js +8 -0
  267. package/dist/webview/WebViewExecutorStream.js.map +1 -0
  268. package/dist/webview/WebViewExecutorStream.mjs +8 -0
  269. package/dist/webview/WebViewExecutorStream.mjs.map +1 -0
  270. package/dist/webview/index.js +26 -0
  271. package/dist/webview/index.js.map +1 -0
  272. package/dist/webview/index.mjs +26 -0
  273. package/dist/webview/index.mjs.map +1 -0
  274. package/dist/webworker/executor/WebWorkerSnapExecutor.js +27 -0
  275. package/dist/webworker/executor/WebWorkerSnapExecutor.js.map +1 -0
  276. package/dist/webworker/executor/WebWorkerSnapExecutor.mjs +27 -0
  277. package/dist/webworker/executor/WebWorkerSnapExecutor.mjs.map +1 -0
  278. package/dist/webworker/executor/index.js +35 -0
  279. package/dist/webworker/executor/index.js.map +1 -0
  280. package/dist/webworker/executor/index.mjs +35 -0
  281. package/dist/webworker/executor/index.mjs.map +1 -0
  282. package/dist/webworker/pool/WebWorkerPool.js +8 -0
  283. package/dist/webworker/pool/WebWorkerPool.js.map +1 -0
  284. package/dist/webworker/pool/WebWorkerPool.mjs +8 -0
  285. package/dist/webworker/pool/WebWorkerPool.mjs.map +1 -0
  286. package/dist/webworker/pool/index.js +16 -0
  287. package/dist/webworker/pool/index.js.map +1 -0
  288. package/dist/webworker/pool/index.mjs +16 -0
  289. package/dist/webworker/pool/index.mjs.map +1 -0
  290. package/package.json +25 -18
  291. package/dist/cjs/common/BaseSnapExecutor.js +0 -496
  292. package/dist/cjs/common/BaseSnapExecutor.js.map +0 -1
  293. package/dist/cjs/common/commands.js +0 -102
  294. package/dist/cjs/common/commands.js.map +0 -1
  295. package/dist/cjs/common/endowments/commonEndowmentFactory.js +0 -147
  296. package/dist/cjs/common/endowments/commonEndowmentFactory.js.map +0 -1
  297. package/dist/cjs/common/endowments/console.js +0 -134
  298. package/dist/cjs/common/endowments/console.js.map +0 -1
  299. package/dist/cjs/common/endowments/crypto.js +0 -44
  300. package/dist/cjs/common/endowments/crypto.js.map +0 -1
  301. package/dist/cjs/common/endowments/date.js +0 -53
  302. package/dist/cjs/common/endowments/date.js.map +0 -1
  303. package/dist/cjs/common/endowments/index.js +0 -93
  304. package/dist/cjs/common/endowments/index.js.map +0 -1
  305. package/dist/cjs/common/endowments/interval.js +0 -62
  306. package/dist/cjs/common/endowments/interval.js.map +0 -1
  307. package/dist/cjs/common/endowments/math.js +0 -67
  308. package/dist/cjs/common/endowments/math.js.map +0 -1
  309. package/dist/cjs/common/endowments/network.js +0 -303
  310. package/dist/cjs/common/endowments/network.js.map +0 -1
  311. package/dist/cjs/common/endowments/textDecoder.js +0 -28
  312. package/dist/cjs/common/endowments/textDecoder.js.map +0 -1
  313. package/dist/cjs/common/endowments/textEncoder.js +0 -28
  314. package/dist/cjs/common/endowments/textEncoder.js.map +0 -1
  315. package/dist/cjs/common/endowments/timeout.js +0 -64
  316. package/dist/cjs/common/endowments/timeout.js.map +0 -1
  317. package/dist/cjs/common/globalEvents.js +0 -40
  318. package/dist/cjs/common/globalEvents.js.map +0 -1
  319. package/dist/cjs/common/globalObject.js +0 -53
  320. package/dist/cjs/common/globalObject.js.map +0 -1
  321. package/dist/cjs/common/lockdown/lockdown-events.js +0 -74
  322. package/dist/cjs/common/lockdown/lockdown-events.js.map +0 -1
  323. package/dist/cjs/common/lockdown/lockdown-more.js +0 -73
  324. package/dist/cjs/common/lockdown/lockdown-more.js.map +0 -1
  325. package/dist/cjs/common/lockdown/lockdown.js +0 -30
  326. package/dist/cjs/common/lockdown/lockdown.js.map +0 -1
  327. package/dist/cjs/common/sortParams.js +0 -26
  328. package/dist/cjs/common/sortParams.js.map +0 -1
  329. package/dist/cjs/common/utils.js +0 -128
  330. package/dist/cjs/common/utils.js.map +0 -1
  331. package/dist/cjs/common/validation.js +0 -149
  332. package/dist/cjs/common/validation.js.map +0 -1
  333. package/dist/cjs/iframe/IFrameSnapExecutor.js +0 -50
  334. package/dist/cjs/iframe/IFrameSnapExecutor.js.map +0 -1
  335. package/dist/cjs/iframe/index.js +0 -13
  336. package/dist/cjs/iframe/index.js.map +0 -1
  337. package/dist/cjs/index.js +0 -20
  338. package/dist/cjs/index.js.map +0 -1
  339. package/dist/cjs/logging.js +0 -15
  340. package/dist/cjs/logging.js.map +0 -1
  341. package/dist/cjs/node-process/ChildProcessSnapExecutor.js +0 -39
  342. package/dist/cjs/node-process/ChildProcessSnapExecutor.js.map +0 -1
  343. package/dist/cjs/node-process/index.js +0 -11
  344. package/dist/cjs/node-process/index.js.map +0 -1
  345. package/dist/cjs/node-thread/ThreadSnapExecutor.js +0 -39
  346. package/dist/cjs/node-thread/ThreadSnapExecutor.js.map +0 -1
  347. package/dist/cjs/node-thread/index.js +0 -11
  348. package/dist/cjs/node-thread/index.js.map +0 -1
  349. package/dist/cjs/proxy/ProxySnapExecutor.js +0 -183
  350. package/dist/cjs/proxy/ProxySnapExecutor.js.map +0 -1
  351. package/dist/cjs/proxy/index.js +0 -20
  352. package/dist/cjs/proxy/index.js.map +0 -1
  353. package/dist/cjs/webview/WebViewExecutorStream.js +0 -121
  354. package/dist/cjs/webview/WebViewExecutorStream.js.map +0 -1
  355. package/dist/cjs/webview/index.js +0 -19
  356. package/dist/cjs/webview/index.js.map +0 -1
  357. package/dist/cjs/webworker/executor/WebWorkerSnapExecutor.js +0 -45
  358. package/dist/cjs/webworker/executor/WebWorkerSnapExecutor.js.map +0 -1
  359. package/dist/cjs/webworker/executor/index.js +0 -13
  360. package/dist/cjs/webworker/executor/index.js.map +0 -1
  361. package/dist/cjs/webworker/pool/WebWorkerPool.js +0 -248
  362. package/dist/cjs/webworker/pool/WebWorkerPool.js.map +0 -1
  363. package/dist/cjs/webworker/pool/index.js +0 -13
  364. package/dist/cjs/webworker/pool/index.js.map +0 -1
  365. package/dist/esm/common/BaseSnapExecutor.js +0 -486
  366. package/dist/esm/common/BaseSnapExecutor.js.map +0 -1
  367. package/dist/esm/common/commands.js +0 -101
  368. package/dist/esm/common/commands.js.map +0 -1
  369. package/dist/esm/common/endowments/commonEndowmentFactory.js +0 -132
  370. package/dist/esm/common/endowments/commonEndowmentFactory.js.map +0 -1
  371. package/dist/esm/common/endowments/console.js +0 -116
  372. package/dist/esm/common/endowments/console.js.map +0 -1
  373. package/dist/esm/common/endowments/crypto.js +0 -26
  374. package/dist/esm/common/endowments/crypto.js.map +0 -1
  375. package/dist/esm/common/endowments/date.js +0 -43
  376. package/dist/esm/common/endowments/date.js.map +0 -1
  377. package/dist/esm/common/endowments/index.js +0 -92
  378. package/dist/esm/common/endowments/index.js.map +0 -1
  379. package/dist/esm/common/endowments/interval.js +0 -52
  380. package/dist/esm/common/endowments/interval.js.map +0 -1
  381. package/dist/esm/common/endowments/math.js +0 -57
  382. package/dist/esm/common/endowments/math.js.map +0 -1
  383. package/dist/esm/common/endowments/network.js +0 -293
  384. package/dist/esm/common/endowments/network.js.map +0 -1
  385. package/dist/esm/common/endowments/textDecoder.js +0 -18
  386. package/dist/esm/common/endowments/textDecoder.js.map +0 -1
  387. package/dist/esm/common/endowments/textEncoder.js +0 -18
  388. package/dist/esm/common/endowments/textEncoder.js.map +0 -1
  389. package/dist/esm/common/endowments/timeout.js +0 -54
  390. package/dist/esm/common/endowments/timeout.js.map +0 -1
  391. package/dist/esm/common/globalEvents.js +0 -36
  392. package/dist/esm/common/globalEvents.js.map +0 -1
  393. package/dist/esm/common/globalObject.js +0 -36
  394. package/dist/esm/common/globalObject.js.map +0 -1
  395. package/dist/esm/common/lockdown/lockdown-events.js +0 -66
  396. package/dist/esm/common/lockdown/lockdown-events.js.map +0 -1
  397. package/dist/esm/common/lockdown/lockdown-more.js +0 -82
  398. package/dist/esm/common/lockdown/lockdown-more.js.map +0 -1
  399. package/dist/esm/common/lockdown/lockdown.js +0 -24
  400. package/dist/esm/common/lockdown/lockdown.js.map +0 -1
  401. package/dist/esm/common/sortParams.js +0 -29
  402. package/dist/esm/common/sortParams.js.map +0 -1
  403. package/dist/esm/common/utils.js +0 -128
  404. package/dist/esm/common/utils.js.map +0 -1
  405. package/dist/esm/common/validation.js +0 -127
  406. package/dist/esm/common/validation.js.map +0 -1
  407. package/dist/esm/iframe/IFrameSnapExecutor.js +0 -35
  408. package/dist/esm/iframe/IFrameSnapExecutor.js.map +0 -1
  409. package/dist/esm/iframe/index.js +0 -9
  410. package/dist/esm/iframe/index.js.map +0 -1
  411. package/dist/esm/index.js +0 -3
  412. package/dist/esm/index.js.map +0 -1
  413. package/dist/esm/logging.js +0 -10
  414. package/dist/esm/logging.js.map +0 -1
  415. package/dist/esm/node-process/ChildProcessSnapExecutor.js +0 -24
  416. package/dist/esm/node-process/ChildProcessSnapExecutor.js.map +0 -1
  417. package/dist/esm/node-process/index.js +0 -7
  418. package/dist/esm/node-process/index.js.map +0 -1
  419. package/dist/esm/node-thread/ThreadSnapExecutor.js +0 -24
  420. package/dist/esm/node-thread/ThreadSnapExecutor.js.map +0 -1
  421. package/dist/esm/node-thread/index.js +0 -7
  422. package/dist/esm/node-thread/index.js.map +0 -1
  423. package/dist/esm/proxy/ProxySnapExecutor.js +0 -181
  424. package/dist/esm/proxy/ProxySnapExecutor.js.map +0 -1
  425. package/dist/esm/proxy/index.js +0 -3
  426. package/dist/esm/proxy/index.js.map +0 -1
  427. package/dist/esm/webview/WebViewExecutorStream.js +0 -111
  428. package/dist/esm/webview/WebViewExecutorStream.js.map +0 -1
  429. package/dist/esm/webview/index.js +0 -15
  430. package/dist/esm/webview/index.js.map +0 -1
  431. package/dist/esm/webworker/executor/WebWorkerSnapExecutor.js +0 -30
  432. package/dist/esm/webworker/executor/WebWorkerSnapExecutor.js.map +0 -1
  433. package/dist/esm/webworker/executor/index.js +0 -9
  434. package/dist/esm/webworker/executor/index.js.map +0 -1
  435. package/dist/esm/webworker/pool/WebWorkerPool.js +0 -245
  436. package/dist/esm/webworker/pool/WebWorkerPool.js.map +0 -1
  437. package/dist/esm/webworker/pool/index.js +0 -9
  438. package/dist/esm/webworker/pool/index.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ // src/common/endowments/interval.ts
2
+ import { rpcErrors } from "@metamask/rpc-errors";
3
+ var MINIMUM_INTERVAL = 10;
4
+ var createInterval = () => {
5
+ const registeredHandles = /* @__PURE__ */ new Map();
6
+ const _setInterval = (handler, timeout) => {
7
+ if (typeof handler !== "function") {
8
+ throw rpcErrors.invalidInput(
9
+ `The interval handler must be a function. Received: ${typeof handler}.`
10
+ );
11
+ }
12
+ harden(handler);
13
+ const handle = Object.freeze(/* @__PURE__ */ Object.create(null));
14
+ const platformHandle = setInterval(
15
+ handler,
16
+ Math.max(MINIMUM_INTERVAL, timeout ?? 0)
17
+ );
18
+ registeredHandles.set(handle, platformHandle);
19
+ return handle;
20
+ };
21
+ const _clearInterval = (handle) => {
22
+ harden(handle);
23
+ const platformHandle = registeredHandles.get(handle);
24
+ if (platformHandle !== void 0) {
25
+ clearInterval(platformHandle);
26
+ registeredHandles.delete(handle);
27
+ }
28
+ };
29
+ const teardownFunction = () => {
30
+ for (const handle of registeredHandles.keys()) {
31
+ _clearInterval(handle);
32
+ }
33
+ };
34
+ return {
35
+ setInterval: harden(_setInterval),
36
+ clearInterval: harden(_clearInterval),
37
+ teardownFunction
38
+ };
39
+ };
40
+ var endowmentModule = {
41
+ names: ["setInterval", "clearInterval"],
42
+ factory: createInterval
43
+ };
44
+ var interval_default = endowmentModule;
45
+
46
+ export {
47
+ interval_default
48
+ };
49
+ //# sourceMappingURL=chunk-26EFJQDW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/endowments/interval.ts"],"sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\n\nconst MINIMUM_INTERVAL = 10;\n\n/**\n * Creates a pair of `setInterval` and `clearInterval` functions attenuated such\n * that:\n * - `setInterval` throws if its \"handler\" parameter is not a function.\n * - `clearInterval` only clears timeouts created by its sibling `setInterval`,\n * or else no-ops.\n *\n * @returns An object with the attenuated `setInterval` and `clearInterval`\n * functions.\n */\nconst createInterval = () => {\n const registeredHandles = new Map<unknown, unknown>();\n\n const _setInterval = (handler: TimerHandler, timeout?: number): unknown => {\n if (typeof handler !== 'function') {\n throw rpcErrors.invalidInput(\n `The interval handler must be a function. Received: ${typeof handler}.`,\n );\n }\n harden(handler);\n const handle = Object.freeze(Object.create(null));\n const platformHandle = setInterval(\n handler,\n Math.max(MINIMUM_INTERVAL, timeout ?? 0),\n );\n registeredHandles.set(handle, platformHandle);\n return handle;\n };\n\n const _clearInterval = (handle: unknown): void => {\n harden(handle);\n const platformHandle = registeredHandles.get(handle);\n if (platformHandle !== undefined) {\n clearInterval(platformHandle as any);\n registeredHandles.delete(handle);\n }\n };\n\n const teardownFunction = (): void => {\n for (const handle of registeredHandles.keys()) {\n _clearInterval(handle);\n }\n };\n\n return {\n setInterval: harden(_setInterval),\n clearInterval: harden(_clearInterval),\n teardownFunction,\n } as const;\n};\n\nconst endowmentModule = {\n names: ['setInterval', 'clearInterval'] as const,\n factory: createInterval,\n};\nexport default endowmentModule;\n"],"mappings":";AAAA,SAAS,iBAAiB;AAE1B,IAAM,mBAAmB;AAYzB,IAAM,iBAAiB,MAAM;AAC3B,QAAM,oBAAoB,oBAAI,IAAsB;AAEpD,QAAM,eAAe,CAAC,SAAuB,YAA8B;AACzE,QAAI,OAAO,YAAY,YAAY;AACjC,YAAM,UAAU;AAAA,QACd,sDAAsD,OAAO,OAAO;AAAA,MACtE;AAAA,IACF;AACA,WAAO,OAAO;AACd,UAAM,SAAS,OAAO,OAAO,uBAAO,OAAO,IAAI,CAAC;AAChD,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,KAAK,IAAI,kBAAkB,WAAW,CAAC;AAAA,IACzC;AACA,sBAAkB,IAAI,QAAQ,cAAc;AAC5C,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,CAAC,WAA0B;AAChD,WAAO,MAAM;AACb,UAAM,iBAAiB,kBAAkB,IAAI,MAAM;AACnD,QAAI,mBAAmB,QAAW;AAChC,oBAAc,cAAqB;AACnC,wBAAkB,OAAO,MAAM;AAAA,IACjC;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAY;AACnC,eAAW,UAAU,kBAAkB,KAAK,GAAG;AAC7C,qBAAe,MAAM;AAAA,IACvB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,aAAa,OAAO,YAAY;AAAA,IAChC,eAAe,OAAO,cAAc;AAAA,IACpC;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,eAAe,eAAe;AAAA,EACtC,SAAS;AACX;AACA,IAAO,mBAAQ;","names":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/common/lockdown/lockdown-more.ts
2
+ var _snapsutils = require('@metamask/snaps-utils');
3
+ function executeLockdownMore() {
4
+ try {
5
+ const namedIntrinsics = Reflect.ownKeys(new Compartment().globalThis);
6
+ const shouldHardenManually = /* @__PURE__ */ new Set(["eval", "Function"]);
7
+ const globalProperties = /* @__PURE__ */ new Set([
8
+ // universalPropertyNames is a constant added by lockdown to global scope
9
+ // at the time of writing, it is initialized in 'ses/src/whitelist'.
10
+ // These properties tend to be non-enumerable.
11
+ ...namedIntrinsics
12
+ // TODO: Also include the named platform globals
13
+ // This grabs every enumerable property on globalThis.
14
+ // ...Object.keys(globalThis),
15
+ ]);
16
+ globalProperties.forEach((propertyName) => {
17
+ const descriptor = Reflect.getOwnPropertyDescriptor(
18
+ globalThis,
19
+ propertyName
20
+ );
21
+ if (descriptor) {
22
+ if (descriptor.configurable) {
23
+ if (hasAccessor(descriptor)) {
24
+ Object.defineProperty(globalThis, propertyName, {
25
+ configurable: false
26
+ });
27
+ } else {
28
+ Object.defineProperty(globalThis, propertyName, {
29
+ configurable: false,
30
+ writable: false
31
+ });
32
+ }
33
+ }
34
+ if (shouldHardenManually.has(propertyName)) {
35
+ harden(globalThis[propertyName]);
36
+ }
37
+ }
38
+ });
39
+ } catch (error) {
40
+ _snapsutils.logError.call(void 0, "Protecting intrinsics failed:", error);
41
+ throw error;
42
+ }
43
+ }
44
+ function hasAccessor(descriptor) {
45
+ return "set" in descriptor || "get" in descriptor;
46
+ }
47
+
48
+
49
+
50
+ exports.executeLockdownMore = executeLockdownMore;
51
+ //# sourceMappingURL=chunk-4NOF6TN6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/lockdown/lockdown-more.ts"],"names":[],"mappings":";AAGA,SAAS,gBAAgB;AAsBlB,SAAS,sBAAsB;AAKpC,MAAI;AACF,UAAM,kBAAkB,QAAQ,QAAQ,IAAI,YAAY,EAAE,UAAU;AAGpE,UAAM,uBAAuB,oBAAI,IAAqB,CAAC,QAAQ,UAAU,CAAC;AAE1E,UAAM,mBAAmB,oBAAI,IAAI;AAAA;AAAA;AAAA;AAAA,MAI/B,GAAG;AAAA;AAAA;AAAA;AAAA,IAKL,CAAC;AAED,qBAAiB,QAAQ,CAAC,iBAAiB;AACzC,YAAM,aAAa,QAAQ;AAAA,QACzB;AAAA,QACA;AAAA,MACF;AAEA,UAAI,YAAY;AACd,YAAI,WAAW,cAAc;AAI3B,cAAI,YAAY,UAAU,GAAG;AAC3B,mBAAO,eAAe,YAAY,cAAc;AAAA,cAC9C,cAAc;AAAA,YAChB,CAAC;AAAA,UACH,OAAO;AACL,mBAAO,eAAe,YAAY,cAAc;AAAA,cAC9C,cAAc;AAAA,cACd,UAAU;AAAA,YACZ,CAAC;AAAA,UACH;AAAA,QACF;AAEA,YAAI,qBAAqB,IAAI,YAAY,GAAG;AAC1C,iBAAQ,WAAmB,YAAY,CAAC;AAAA,QAC1C;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,SAAS,OAAO;AACd,aAAS,iCAAiC,KAAK;AAC/C,UAAM;AAAA,EACR;AACF;AAYA,SAAS,YAAY,YAA0B;AAC7C,SAAO,SAAS,cAAc,SAAS;AACzC","sourcesContent":["// eslint-disable-next-line @typescript-eslint/triple-slash-reference, spaced-comment\n/// <reference path=\"../../../../../node_modules/ses/types.d.ts\" />\n\nimport { logError } from '@metamask/snaps-utils';\n\n/**\n * The SES `lockdown` function only hardens the properties enumerated by the\n * universalPropertyNames constant specified in 'ses/src/whitelist'. This\n * function makes all function and object properties on the start compartment\n * global non-configurable and non-writable, unless they are already\n * non-configurable.\n *\n * It is critical that this function runs at the right time during\n * initialization, which should always be immediately after `lockdown` has been\n * called. At the time of writing, the modifications this function makes to the\n * runtime environment appear to be non-breaking, but that could change with\n * the addition of dependencies, or the order of our scripts in our HTML files.\n * Exercise caution.\n *\n * See inline comments for implementation details.\n *\n * We write this function in IIFE format to avoid polluting global scope.\n *\n * @throws If the lockdown failed.\n */\nexport function executeLockdownMore() {\n // Make all \"object\" and \"function\" own properties of globalThis\n // non-configurable and non-writable, when possible.\n // We call a property that is non-configurable and non-writable,\n // \"non-modifiable\".\n try {\n const namedIntrinsics = Reflect.ownKeys(new Compartment().globalThis);\n\n // These named intrinsics are not automatically hardened by `lockdown`\n const shouldHardenManually = new Set<symbol | string>(['eval', 'Function']);\n\n const globalProperties = new Set([\n // universalPropertyNames is a constant added by lockdown to global scope\n // at the time of writing, it is initialized in 'ses/src/whitelist'.\n // These properties tend to be non-enumerable.\n ...namedIntrinsics,\n\n // TODO: Also include the named platform globals\n // This grabs every enumerable property on globalThis.\n // ...Object.keys(globalThis),\n ]);\n\n globalProperties.forEach((propertyName) => {\n const descriptor = Reflect.getOwnPropertyDescriptor(\n globalThis,\n propertyName,\n );\n\n if (descriptor) {\n if (descriptor.configurable) {\n // If the property on globalThis is configurable, make it\n // non-configurable. If it has no accessor properties, also make it\n // non-writable.\n if (hasAccessor(descriptor)) {\n Object.defineProperty(globalThis, propertyName, {\n configurable: false,\n });\n } else {\n Object.defineProperty(globalThis, propertyName, {\n configurable: false,\n writable: false,\n });\n }\n }\n\n if (shouldHardenManually.has(propertyName)) {\n harden((globalThis as any)[propertyName]);\n }\n }\n });\n } catch (error) {\n logError('Protecting intrinsics failed:', error);\n throw error;\n }\n}\n\n/**\n * Checks whether the given propertyName descriptor has any accessors, i.e. the\n * properties `get` or `set`.\n *\n * We want to make globals non-writable, and we can't set the `writable`\n * property and accessor properties at the same time.\n *\n * @param descriptor - The propertyName descriptor to check.\n * @returns Whether the propertyName descriptor has any accessors.\n */\nfunction hasAccessor(descriptor: any): boolean {\n return 'set' in descriptor || 'get' in descriptor;\n}\n"]}
@@ -0,0 +1,30 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkL5U2LMZRjs = require('./chunk-L5U2LMZR.js');
4
+
5
+ // src/common/globalEvents.ts
6
+ var _rpcerrors = require('@metamask/rpc-errors');
7
+ function addEventListener(event, listener) {
8
+ if ("addEventListener" in _chunkL5U2LMZRjs.rootRealmGlobal && typeof _chunkL5U2LMZRjs.rootRealmGlobal.addEventListener === "function") {
9
+ return _chunkL5U2LMZRjs.rootRealmGlobal.addEventListener(event.toLowerCase(), listener);
10
+ }
11
+ if (_chunkL5U2LMZRjs.rootRealmGlobal.process && "on" in _chunkL5U2LMZRjs.rootRealmGlobal.process && typeof _chunkL5U2LMZRjs.rootRealmGlobal.process.on === "function") {
12
+ return _chunkL5U2LMZRjs.rootRealmGlobal.process.on(event, listener);
13
+ }
14
+ throw _rpcerrors.rpcErrors.internal("Platform agnostic addEventListener failed.");
15
+ }
16
+ function removeEventListener(event, listener) {
17
+ if ("removeEventListener" in _chunkL5U2LMZRjs.rootRealmGlobal && typeof _chunkL5U2LMZRjs.rootRealmGlobal.removeEventListener === "function") {
18
+ return _chunkL5U2LMZRjs.rootRealmGlobal.removeEventListener(event.toLowerCase(), listener);
19
+ }
20
+ if (_chunkL5U2LMZRjs.rootRealmGlobal.process && "removeListener" in _chunkL5U2LMZRjs.rootRealmGlobal.process && typeof _chunkL5U2LMZRjs.rootRealmGlobal.process.removeListener === "function") {
21
+ return _chunkL5U2LMZRjs.rootRealmGlobal.process.removeListener(event, listener);
22
+ }
23
+ throw new Error("Platform agnostic removeEventListener failed");
24
+ }
25
+
26
+
27
+
28
+
29
+ exports.addEventListener = addEventListener; exports.removeEventListener = removeEventListener;
30
+ //# sourceMappingURL=chunk-5DIRYAYO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/globalEvents.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,iBAAiB;AAYnB,SAAS,iBACd,OACA,UACA;AACA,MACE,sBAAsB,mBACtB,OAAO,gBAAgB,qBAAqB,YAC5C;AACA,WAAO,gBAAgB,iBAAiB,MAAM,YAAY,GAAG,QAAQ;AAAA,EACvE;AAEA,MACE,gBAAgB,WAChB,QAAQ,gBAAgB,WACxB,OAAO,gBAAgB,QAAQ,OAAO,YACtC;AACA,WAAO,gBAAgB,QAAQ,GAAG,OAAO,QAAQ;AAAA,EACnD;AAEA,QAAM,UAAU,SAAS,4CAA4C;AACvE;AAUO,SAAS,oBACd,OACA,UACA;AACA,MACE,yBAAyB,mBACzB,OAAO,gBAAgB,wBAAwB,YAC/C;AACA,WAAO,gBAAgB,oBAAoB,MAAM,YAAY,GAAG,QAAQ;AAAA,EAC1E;AAEA,MACE,gBAAgB,WAChB,oBAAoB,gBAAgB,WACpC,OAAO,gBAAgB,QAAQ,mBAAmB,YAClD;AACA,WAAO,gBAAgB,QAAQ,eAAe,OAAO,QAAQ;AAAA,EAC/D;AAEA,QAAM,IAAI,MAAM,8CAA8C;AAChE","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\n\nimport { rootRealmGlobal } from './globalObject';\n\n/**\n * Adds an event listener platform agnostically, trying both `globalThis.addEventListener` and `globalThis.process.on`\n *\n * @param event - The event to listen for.\n * @param listener - The listener to be triggered when the event occurs.\n * @returns The result of the platform agnostic operation if any.\n * @throws If none of the platform options are present.\n */\nexport function addEventListener(\n event: string,\n listener: (...args: any[]) => void,\n) {\n if (\n 'addEventListener' in rootRealmGlobal &&\n typeof rootRealmGlobal.addEventListener === 'function'\n ) {\n return rootRealmGlobal.addEventListener(event.toLowerCase(), listener);\n }\n\n if (\n rootRealmGlobal.process &&\n 'on' in rootRealmGlobal.process &&\n typeof rootRealmGlobal.process.on === 'function'\n ) {\n return rootRealmGlobal.process.on(event, listener);\n }\n\n throw rpcErrors.internal('Platform agnostic addEventListener failed.');\n}\n\n/**\n * Removes an event listener platform agnostically, trying both `globalThis.removeEventListener` and `globalThis.process.removeListener`\n *\n * @param event - The event to remove the listener for.\n * @param listener - The currently attached listener.\n * @returns The result of the platform agnostic operation if any.\n * @throws If none of the platform options are present.\n */\nexport function removeEventListener(\n event: string,\n listener: (...args: any[]) => void,\n) {\n if (\n 'removeEventListener' in rootRealmGlobal &&\n typeof rootRealmGlobal.removeEventListener === 'function'\n ) {\n return rootRealmGlobal.removeEventListener(event.toLowerCase(), listener);\n }\n\n if (\n rootRealmGlobal.process &&\n 'removeListener' in rootRealmGlobal.process &&\n typeof rootRealmGlobal.process.removeListener === 'function'\n ) {\n return rootRealmGlobal.process.removeListener(event, listener);\n }\n\n throw new Error('Platform agnostic removeEventListener failed');\n}\n"]}
@@ -0,0 +1,33 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkL4G6IIWGjs = require('./chunk-L4G6IIWG.js');
4
+
5
+
6
+ var _chunkXKY46YTJjs = require('./chunk-XKY46YTJ.js');
7
+
8
+ // src/node-process/ChildProcessSnapExecutor.ts
9
+ var _objectmultiplex = require('@metamask/object-multiplex'); var _objectmultiplex2 = _interopRequireDefault(_objectmultiplex);
10
+ var _postmessagestream = require('@metamask/post-message-stream');
11
+ var _snapsutils = require('@metamask/snaps-utils');
12
+ var _readablestream = require('readable-stream');
13
+ var ChildProcessSnapExecutor = class _ChildProcessSnapExecutor extends _chunkL4G6IIWGjs.BaseSnapExecutor {
14
+ static initialize() {
15
+ _chunkXKY46YTJjs.log.call(void 0, "Worker: Connecting to parent.");
16
+ const parentStream = new (0, _postmessagestream.ProcessMessageStream)();
17
+ const mux = new (0, _objectmultiplex2.default)();
18
+ _readablestream.pipeline.call(void 0, parentStream, mux, parentStream, (error) => {
19
+ if (error) {
20
+ _snapsutils.logError.call(void 0, `Parent stream failure, closing worker.`, error);
21
+ }
22
+ self.close();
23
+ });
24
+ const commandStream = mux.createStream(_snapsutils.SNAP_STREAM_NAMES.COMMAND);
25
+ const rpcStream = mux.createStream(_snapsutils.SNAP_STREAM_NAMES.JSON_RPC);
26
+ return new _ChildProcessSnapExecutor(commandStream, rpcStream);
27
+ }
28
+ };
29
+
30
+
31
+
32
+ exports.ChildProcessSnapExecutor = ChildProcessSnapExecutor;
33
+ //# sourceMappingURL=chunk-5RKYO2Y5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/node-process/ChildProcessSnapExecutor.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,qBAAqB;AAC5B,SAAS,4BAA4B;AACrC,SAAS,UAAU,yBAAyB;AAC5C,SAAS,gBAAgB;AAKlB,IAAM,2BAAN,MAAM,kCAAiC,iBAAiB;AAAA,EAC7D,OAAO,aAAa;AAClB,QAAI,+BAA+B;AAEnC,UAAM,eAAe,IAAI,qBAAqB;AAC9C,UAAM,MAAM,IAAI,gBAAgB;AAChC,aAAS,cAAc,KAAY,cAAc,CAAC,UAAU;AAC1D,UAAI,OAAO;AACT,iBAAS,0CAA0C,KAAK;AAAA,MAC1D;AACA,WAAK,MAAM;AAAA,IACb,CAAC;AAED,UAAM,gBAAgB,IAAI,aAAa,kBAAkB,OAAO;AAChE,UAAM,YAAY,IAAI,aAAa,kBAAkB,QAAQ;AAC7D,WAAO,IAAI,0BAAyB,eAAe,SAAS;AAAA,EAC9D;AACF","sourcesContent":["import ObjectMultiplex from '@metamask/object-multiplex';\nimport { ProcessMessageStream } from '@metamask/post-message-stream';\nimport { logError, SNAP_STREAM_NAMES } from '@metamask/snaps-utils';\nimport { pipeline } from 'readable-stream';\n\nimport { BaseSnapExecutor } from '../common/BaseSnapExecutor';\nimport { log } from '../logging';\n\nexport class ChildProcessSnapExecutor extends BaseSnapExecutor {\n static initialize() {\n log('Worker: Connecting to parent.');\n\n const parentStream = new ProcessMessageStream();\n const mux = new ObjectMultiplex();\n pipeline(parentStream, mux as any, parentStream, (error) => {\n if (error) {\n logError(`Parent stream failure, closing worker.`, error);\n }\n self.close();\n });\n\n const commandStream = mux.createStream(SNAP_STREAM_NAMES.COMMAND);\n const rpcStream = mux.createStream(SNAP_STREAM_NAMES.JSON_RPC) as any;\n return new ChildProcessSnapExecutor(commandStream, rpcStream);\n }\n}\n"]}
@@ -0,0 +1,44 @@
1
+ import {
2
+ rootRealmGlobal
3
+ } from "./chunk-Y7IEFWZU.mjs";
4
+
5
+ // src/common/endowments/date.ts
6
+ function createDate() {
7
+ const keys = Object.getOwnPropertyNames(
8
+ rootRealmGlobal.Date
9
+ );
10
+ let currentTime = 0;
11
+ const now = () => {
12
+ const actual = rootRealmGlobal.Date.now();
13
+ const newTime = Math.round(actual + Math.random());
14
+ if (newTime > currentTime) {
15
+ currentTime = newTime;
16
+ }
17
+ return currentTime;
18
+ };
19
+ const NewDate = function(...args) {
20
+ return Reflect.construct(
21
+ rootRealmGlobal.Date,
22
+ args.length === 0 ? [now()] : args,
23
+ new.target
24
+ );
25
+ };
26
+ keys.forEach((key) => {
27
+ Reflect.defineProperty(NewDate, key, {
28
+ configurable: false,
29
+ writable: false,
30
+ value: key === "now" ? now : rootRealmGlobal.Date[key]
31
+ });
32
+ });
33
+ return { Date: harden(NewDate) };
34
+ }
35
+ var endowmentModule = {
36
+ names: ["Date"],
37
+ factory: createDate
38
+ };
39
+ var date_default = endowmentModule;
40
+
41
+ export {
42
+ date_default
43
+ };
44
+ //# sourceMappingURL=chunk-6GHFAQ54.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/endowments/date.ts"],"sourcesContent":["import { rootRealmGlobal } from '../globalObject';\n\n/**\n * Creates a {@link Date} constructor, with most of the same properties as the global object.\n * The Date.now() function has added noise as to limit its precision and prevent potential timing attacks.\n * The Date constructor uses this now() function to seed itself if no arguments are given to the constructor.\n *\n * @returns A modified {@link Date} constructor with limited precision.\n */\nfunction createDate() {\n const keys = Object.getOwnPropertyNames(\n rootRealmGlobal.Date,\n ) as (keyof typeof Date)[];\n\n let currentTime = 0;\n const now = () => {\n const actual = rootRealmGlobal.Date.now();\n const newTime = Math.round(actual + Math.random());\n if (newTime > currentTime) {\n currentTime = newTime;\n }\n return currentTime;\n };\n\n const NewDate = function (...args: unknown[]) {\n return Reflect.construct(\n rootRealmGlobal.Date,\n args.length === 0 ? [now()] : args,\n new.target,\n );\n } as DateConstructor;\n\n keys.forEach((key) => {\n Reflect.defineProperty(NewDate, key, {\n configurable: false,\n writable: false,\n value: key === 'now' ? now : rootRealmGlobal.Date[key],\n });\n });\n\n return { Date: harden(NewDate) };\n}\n\nconst endowmentModule = {\n names: ['Date'] as const,\n factory: createDate,\n};\n\nexport default endowmentModule;\n"],"mappings":";;;;;AASA,SAAS,aAAa;AACpB,QAAM,OAAO,OAAO;AAAA,IAClB,gBAAgB;AAAA,EAClB;AAEA,MAAI,cAAc;AAClB,QAAM,MAAM,MAAM;AAChB,UAAM,SAAS,gBAAgB,KAAK,IAAI;AACxC,UAAM,UAAU,KAAK,MAAM,SAAS,KAAK,OAAO,CAAC;AACjD,QAAI,UAAU,aAAa;AACzB,oBAAc;AAAA,IAChB;AACA,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,YAAa,MAAiB;AAC5C,WAAO,QAAQ;AAAA,MACb,gBAAgB;AAAA,MAChB,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AAEA,OAAK,QAAQ,CAAC,QAAQ;AACpB,YAAQ,eAAe,SAAS,KAAK;AAAA,MACnC,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO,QAAQ,QAAQ,MAAM,gBAAgB,KAAK,GAAG;AAAA,IACvD,CAAC;AAAA,EACH,CAAC;AAED,SAAO,EAAE,MAAM,OAAO,OAAO,EAAE;AACjC;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,MAAM;AAAA,EACd,SAAS;AACX;AAEA,IAAO,eAAQ;","names":[]}
@@ -0,0 +1,32 @@
1
+ import {
2
+ rootRealmGlobal
3
+ } from "./chunk-Y7IEFWZU.mjs";
4
+ import {
5
+ __require
6
+ } from "./chunk-YRZVIDCF.mjs";
7
+
8
+ // src/common/endowments/crypto.ts
9
+ var createCrypto = () => {
10
+ if ("crypto" in rootRealmGlobal && typeof rootRealmGlobal.crypto === "object" && "SubtleCrypto" in rootRealmGlobal && typeof rootRealmGlobal.SubtleCrypto === "function") {
11
+ return {
12
+ crypto: harden(rootRealmGlobal.crypto),
13
+ SubtleCrypto: harden(rootRealmGlobal.SubtleCrypto)
14
+ };
15
+ }
16
+ const crypto = __require("crypto").webcrypto;
17
+ return {
18
+ crypto: harden(crypto),
19
+ SubtleCrypto: harden(crypto.subtle.constructor)
20
+ };
21
+ };
22
+ var endowmentModule = {
23
+ names: ["crypto", "SubtleCrypto"],
24
+ factory: createCrypto
25
+ };
26
+ var crypto_default = endowmentModule;
27
+
28
+ export {
29
+ createCrypto,
30
+ crypto_default
31
+ };
32
+ //# sourceMappingURL=chunk-A7NJQLUA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/endowments/crypto.ts"],"sourcesContent":["import { rootRealmGlobal } from '../globalObject';\n\nexport const createCrypto = () => {\n if (\n 'crypto' in rootRealmGlobal &&\n typeof rootRealmGlobal.crypto === 'object' &&\n 'SubtleCrypto' in rootRealmGlobal &&\n typeof rootRealmGlobal.SubtleCrypto === 'function'\n ) {\n return {\n crypto: harden(rootRealmGlobal.crypto),\n SubtleCrypto: harden(rootRealmGlobal.SubtleCrypto),\n };\n }\n // For now, we expose the experimental webcrypto API for Node.js execution environments\n // TODO: Figure out if this is enough long-term or if we should use a polyfill.\n /* eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/global-require */\n const crypto = require('crypto').webcrypto;\n return {\n crypto: harden(crypto),\n SubtleCrypto: harden(crypto.subtle.constructor),\n } as const;\n};\n\nconst endowmentModule = {\n names: ['crypto', 'SubtleCrypto'] as const,\n factory: createCrypto,\n};\nexport default endowmentModule;\n"],"mappings":";;;;;;;;AAEO,IAAM,eAAe,MAAM;AAChC,MACE,YAAY,mBACZ,OAAO,gBAAgB,WAAW,YAClC,kBAAkB,mBAClB,OAAO,gBAAgB,iBAAiB,YACxC;AACA,WAAO;AAAA,MACL,QAAQ,OAAO,gBAAgB,MAAM;AAAA,MACrC,cAAc,OAAO,gBAAgB,YAAY;AAAA,IACnD;AAAA,EACF;AAIA,QAAM,SAAS,UAAQ,QAAQ,EAAE;AACjC,SAAO;AAAA,IACL,QAAQ,OAAO,MAAM;AAAA,IACrB,cAAc,OAAO,OAAO,OAAO,WAAW;AAAA,EAChD;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,UAAU,cAAc;AAAA,EAChC,SAAS;AACX;AACA,IAAO,iBAAQ;","names":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } }
2
+
3
+
4
+
5
+
6
+ var _chunkSWINKAMIjs = require('./chunk-SWINKAMI.js');
7
+
8
+ // src/common/commands.ts
9
+ var _snapsutils = require('@metamask/snaps-utils');
10
+ var _utils = require('@metamask/utils');
11
+ function getHandlerArguments(origin, handler, request) {
12
+ switch (handler) {
13
+ case _snapsutils.HandlerType.OnTransaction: {
14
+ _chunkSWINKAMIjs.assertIsOnTransactionRequestArguments.call(void 0, request.params);
15
+ const { transaction, chainId, transactionOrigin } = request.params;
16
+ return {
17
+ transaction,
18
+ chainId,
19
+ transactionOrigin
20
+ };
21
+ }
22
+ case _snapsutils.HandlerType.OnSignature: {
23
+ _chunkSWINKAMIjs.assertIsOnSignatureRequestArguments.call(void 0, request.params);
24
+ const { signature, signatureOrigin } = request.params;
25
+ return { signature, signatureOrigin };
26
+ }
27
+ case _snapsutils.HandlerType.OnNameLookup: {
28
+ _chunkSWINKAMIjs.assertIsOnNameLookupRequestArguments.call(void 0, request.params);
29
+ const { chainId, domain, address } = request.params;
30
+ return domain ? {
31
+ chainId,
32
+ domain
33
+ } : {
34
+ chainId,
35
+ address
36
+ };
37
+ }
38
+ case _snapsutils.HandlerType.OnRpcRequest:
39
+ case _snapsutils.HandlerType.OnKeyringRequest:
40
+ return { origin, request };
41
+ case _snapsutils.HandlerType.OnCronjob:
42
+ case _snapsutils.HandlerType.OnInstall:
43
+ case _snapsutils.HandlerType.OnUpdate:
44
+ return { request };
45
+ case _snapsutils.HandlerType.OnHomePage:
46
+ return {};
47
+ case _snapsutils.HandlerType.OnUserInput: {
48
+ _chunkSWINKAMIjs.assertIsOnUserInputRequestArguments.call(void 0, request.params);
49
+ const { id, event } = request.params;
50
+ return { id, event };
51
+ }
52
+ default:
53
+ return _utils.assertExhaustive.call(void 0, handler);
54
+ }
55
+ }
56
+ function getCommandMethodImplementations(startSnap, invokeSnap, onTerminate) {
57
+ return {
58
+ ping: async () => Promise.resolve("OK"),
59
+ terminate: async () => {
60
+ onTerminate();
61
+ return Promise.resolve("OK");
62
+ },
63
+ executeSnap: async (snapId, sourceCode, endowments) => {
64
+ await startSnap(snapId, sourceCode, endowments);
65
+ return "OK";
66
+ },
67
+ snapRpc: async (target, handler, origin, request) => {
68
+ return await _asyncNullishCoalesce(await invokeSnap(
69
+ target,
70
+ handler,
71
+ getHandlerArguments(origin, handler, request)
72
+ ), async () => ( null));
73
+ }
74
+ };
75
+ }
76
+
77
+
78
+
79
+
80
+ exports.getHandlerArguments = getHandlerArguments; exports.getCommandMethodImplementations = getCommandMethodImplementations;
81
+ //# sourceMappingURL=chunk-AJFPA6MI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/commands.ts"],"names":[],"mappings":";;;;;;;;AAAA,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AAiC1B,SAAS,oBACd,QACA,SACA,SACgB;AAGhB,UAAQ,SAAS;AAAA,IACf,KAAK,YAAY,eAAe;AAC9B,4CAAsC,QAAQ,MAAM;AAEpD,YAAM,EAAE,aAAa,SAAS,kBAAkB,IAAI,QAAQ;AAC5D,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,YAAY,aAAa;AAC5B,0CAAoC,QAAQ,MAAM;AAElD,YAAM,EAAE,WAAW,gBAAgB,IAAI,QAAQ;AAC/C,aAAO,EAAE,WAAW,gBAAgB;AAAA,IACtC;AAAA,IACA,KAAK,YAAY,cAAc;AAC7B,2CAAqC,QAAQ,MAAM;AAInD,YAAM,EAAE,SAAS,QAAQ,QAAQ,IAC/B,QAAQ;AAEV,aAAO,SACH;AAAA,QACE;AAAA,QACA;AAAA,MACF,IACA;AAAA,QACE;AAAA,QACA;AAAA,MACF;AAAA,IACN;AAAA,IACA,KAAK,YAAY;AAAA,IACjB,KAAK,YAAY;AACf,aAAO,EAAE,QAAQ,QAAQ;AAAA,IAE3B,KAAK,YAAY;AAAA,IACjB,KAAK,YAAY;AAAA,IACjB,KAAK,YAAY;AACf,aAAO,EAAE,QAAQ;AAAA,IAEnB,KAAK,YAAY;AACf,aAAO,CAAC;AAAA,IACV,KAAK,YAAY,aAAa;AAC5B,0CAAoC,QAAQ,MAAM;AAElD,YAAM,EAAE,IAAI,MAAM,IAAI,QAAQ;AAC9B,aAAO,EAAE,IAAI,MAAM;AAAA,IACrB;AAAA,IAEA;AACE,aAAO,iBAAiB,OAAO;AAAA,EACnC;AACF;AAaO,SAAS,gCACd,WACA,YACA,aACuB;AACvB,SAAO;AAAA,IACL,MAAM,YAAY,QAAQ,QAAQ,IAAI;AAAA,IACtC,WAAW,YAAY;AACrB,kBAAY;AACZ,aAAO,QAAQ,QAAQ,IAAI;AAAA,IAC7B;AAAA,IAEA,aAAa,OAAO,QAAQ,YAAY,eAAe;AACrD,YAAM,UAAU,QAAQ,YAAY,UAAU;AAC9C,aAAO;AAAA,IACT;AAAA,IAEA,SAAS,OAAO,QAAQ,SAAS,QAAQ,YAAY;AACnD,aACG,MAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA,oBAAoB,QAAQ,SAAS,OAAO;AAAA,MAC9C,KAAM;AAAA,IAEV;AAAA,EACF;AACF","sourcesContent":["import { HandlerType } from '@metamask/snaps-utils';\nimport { assertExhaustive } from '@metamask/utils';\n\nimport type { InvokeSnap, InvokeSnapArgs } from './BaseSnapExecutor';\nimport type {\n ExecuteSnap,\n JsonRpcRequestWithoutId,\n Ping,\n PossibleLookupRequestArgs,\n SnapRpc,\n Terminate,\n} from './validation';\nimport {\n assertIsOnTransactionRequestArguments,\n assertIsOnSignatureRequestArguments,\n assertIsOnNameLookupRequestArguments,\n assertIsOnUserInputRequestArguments,\n} from './validation';\n\nexport type CommandMethodsMapping = {\n ping: Ping;\n terminate: Terminate;\n executeSnap: ExecuteSnap;\n snapRpc: SnapRpc;\n};\n\n/**\n * Formats the arguments for the given handler.\n *\n * @param origin - The origin of the request.\n * @param handler - The handler to pass the request to.\n * @param request - The request object.\n * @returns The formatted arguments.\n */\nexport function getHandlerArguments(\n origin: string,\n handler: HandlerType,\n request: JsonRpcRequestWithoutId,\n): InvokeSnapArgs {\n // `request` is already validated by the time this function is called.\n\n switch (handler) {\n case HandlerType.OnTransaction: {\n assertIsOnTransactionRequestArguments(request.params);\n\n const { transaction, chainId, transactionOrigin } = request.params;\n return {\n transaction,\n chainId,\n transactionOrigin,\n };\n }\n case HandlerType.OnSignature: {\n assertIsOnSignatureRequestArguments(request.params);\n\n const { signature, signatureOrigin } = request.params;\n return { signature, signatureOrigin };\n }\n case HandlerType.OnNameLookup: {\n assertIsOnNameLookupRequestArguments(request.params);\n\n // TS complains that domain/address are not part of the type\n // casting here as we've already validated the request args in the above step.\n const { chainId, domain, address } =\n request.params as unknown as PossibleLookupRequestArgs;\n\n return domain\n ? {\n chainId,\n domain,\n }\n : {\n chainId,\n address,\n };\n }\n case HandlerType.OnRpcRequest:\n case HandlerType.OnKeyringRequest:\n return { origin, request };\n\n case HandlerType.OnCronjob:\n case HandlerType.OnInstall:\n case HandlerType.OnUpdate:\n return { request };\n\n case HandlerType.OnHomePage:\n return {};\n case HandlerType.OnUserInput: {\n assertIsOnUserInputRequestArguments(request.params);\n\n const { id, event } = request.params;\n return { id, event };\n }\n\n default:\n return assertExhaustive(handler);\n }\n}\n\n/**\n * Gets an object mapping internal, \"command\" JSON-RPC method names to their\n * implementations.\n *\n * @param startSnap - A function that starts a snap.\n * @param invokeSnap - A function that invokes the RPC method handler of a\n * snap.\n * @param onTerminate - A function that will be called when this executor is\n * terminated in order to handle cleanup tasks.\n * @returns An object containing the \"command\" method implementations.\n */\nexport function getCommandMethodImplementations(\n startSnap: (...args: Parameters<ExecuteSnap>) => Promise<void>,\n invokeSnap: InvokeSnap,\n onTerminate: () => void,\n): CommandMethodsMapping {\n return {\n ping: async () => Promise.resolve('OK'),\n terminate: async () => {\n onTerminate();\n return Promise.resolve('OK');\n },\n\n executeSnap: async (snapId, sourceCode, endowments) => {\n await startSnap(snapId, sourceCode, endowments);\n return 'OK';\n },\n\n snapRpc: async (target, handler, origin, request) => {\n return (\n (await invokeSnap(\n target,\n handler,\n getHandlerArguments(origin, handler, request),\n )) ?? null\n );\n },\n };\n}\n"]}
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=chunk-AQNACKO6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/common/endowments/interval.ts
2
+ var _rpcerrors = require('@metamask/rpc-errors');
3
+ var MINIMUM_INTERVAL = 10;
4
+ var createInterval = () => {
5
+ const registeredHandles = /* @__PURE__ */ new Map();
6
+ const _setInterval = (handler, timeout) => {
7
+ if (typeof handler !== "function") {
8
+ throw _rpcerrors.rpcErrors.invalidInput(
9
+ `The interval handler must be a function. Received: ${typeof handler}.`
10
+ );
11
+ }
12
+ harden(handler);
13
+ const handle = Object.freeze(/* @__PURE__ */ Object.create(null));
14
+ const platformHandle = setInterval(
15
+ handler,
16
+ Math.max(MINIMUM_INTERVAL, _nullishCoalesce(timeout, () => ( 0)))
17
+ );
18
+ registeredHandles.set(handle, platformHandle);
19
+ return handle;
20
+ };
21
+ const _clearInterval = (handle) => {
22
+ harden(handle);
23
+ const platformHandle = registeredHandles.get(handle);
24
+ if (platformHandle !== void 0) {
25
+ clearInterval(platformHandle);
26
+ registeredHandles.delete(handle);
27
+ }
28
+ };
29
+ const teardownFunction = () => {
30
+ for (const handle of registeredHandles.keys()) {
31
+ _clearInterval(handle);
32
+ }
33
+ };
34
+ return {
35
+ setInterval: harden(_setInterval),
36
+ clearInterval: harden(_clearInterval),
37
+ teardownFunction
38
+ };
39
+ };
40
+ var endowmentModule = {
41
+ names: ["setInterval", "clearInterval"],
42
+ factory: createInterval
43
+ };
44
+ var interval_default = endowmentModule;
45
+
46
+
47
+
48
+ exports.interval_default = interval_default;
49
+ //# sourceMappingURL=chunk-AZCRNZ5W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/endowments/interval.ts"],"names":[],"mappings":";AAAA,SAAS,iBAAiB;AAE1B,IAAM,mBAAmB;AAYzB,IAAM,iBAAiB,MAAM;AAC3B,QAAM,oBAAoB,oBAAI,IAAsB;AAEpD,QAAM,eAAe,CAAC,SAAuB,YAA8B;AACzE,QAAI,OAAO,YAAY,YAAY;AACjC,YAAM,UAAU;AAAA,QACd,sDAAsD,OAAO,OAAO;AAAA,MACtE;AAAA,IACF;AACA,WAAO,OAAO;AACd,UAAM,SAAS,OAAO,OAAO,uBAAO,OAAO,IAAI,CAAC;AAChD,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,KAAK,IAAI,kBAAkB,WAAW,CAAC;AAAA,IACzC;AACA,sBAAkB,IAAI,QAAQ,cAAc;AAC5C,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,CAAC,WAA0B;AAChD,WAAO,MAAM;AACb,UAAM,iBAAiB,kBAAkB,IAAI,MAAM;AACnD,QAAI,mBAAmB,QAAW;AAChC,oBAAc,cAAqB;AACnC,wBAAkB,OAAO,MAAM;AAAA,IACjC;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAY;AACnC,eAAW,UAAU,kBAAkB,KAAK,GAAG;AAC7C,qBAAe,MAAM;AAAA,IACvB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,aAAa,OAAO,YAAY;AAAA,IAChC,eAAe,OAAO,cAAc;AAAA,IACpC;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,eAAe,eAAe;AAAA,EACtC,SAAS;AACX;AACA,IAAO,mBAAQ","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\n\nconst MINIMUM_INTERVAL = 10;\n\n/**\n * Creates a pair of `setInterval` and `clearInterval` functions attenuated such\n * that:\n * - `setInterval` throws if its \"handler\" parameter is not a function.\n * - `clearInterval` only clears timeouts created by its sibling `setInterval`,\n * or else no-ops.\n *\n * @returns An object with the attenuated `setInterval` and `clearInterval`\n * functions.\n */\nconst createInterval = () => {\n const registeredHandles = new Map<unknown, unknown>();\n\n const _setInterval = (handler: TimerHandler, timeout?: number): unknown => {\n if (typeof handler !== 'function') {\n throw rpcErrors.invalidInput(\n `The interval handler must be a function. Received: ${typeof handler}.`,\n );\n }\n harden(handler);\n const handle = Object.freeze(Object.create(null));\n const platformHandle = setInterval(\n handler,\n Math.max(MINIMUM_INTERVAL, timeout ?? 0),\n );\n registeredHandles.set(handle, platformHandle);\n return handle;\n };\n\n const _clearInterval = (handle: unknown): void => {\n harden(handle);\n const platformHandle = registeredHandles.get(handle);\n if (platformHandle !== undefined) {\n clearInterval(platformHandle as any);\n registeredHandles.delete(handle);\n }\n };\n\n const teardownFunction = (): void => {\n for (const handle of registeredHandles.keys()) {\n _clearInterval(handle);\n }\n };\n\n return {\n setInterval: harden(_setInterval),\n clearInterval: harden(_clearInterval),\n teardownFunction,\n } as const;\n};\n\nconst endowmentModule = {\n names: ['setInterval', 'clearInterval'] as const,\n factory: createInterval,\n};\nexport default endowmentModule;\n"]}
@@ -0,0 +1,45 @@
1
+ import {
2
+ BaseSnapExecutor
3
+ } from "./chunk-OW4IXJ5J.mjs";
4
+ import {
5
+ log
6
+ } from "./chunk-VL3VNUT4.mjs";
7
+
8
+ // src/iframe/IFrameSnapExecutor.ts
9
+ import ObjectMultiplex from "@metamask/object-multiplex";
10
+ import { WindowPostMessageStream } from "@metamask/post-message-stream";
11
+ import { logError, SNAP_STREAM_NAMES } from "@metamask/snaps-utils";
12
+ import { pipeline } from "readable-stream";
13
+ var IFrameSnapExecutor = class _IFrameSnapExecutor extends BaseSnapExecutor {
14
+ /**
15
+ * Initialize the IFrameSnapExecutor. This creates a post message stream from
16
+ * and to the parent window, for two-way communication with the iframe.
17
+ *
18
+ * @param stream - The stream to use for communication.
19
+ * @returns An instance of `IFrameSnapExecutor`, with the initialized post
20
+ * message streams.
21
+ */
22
+ static initialize(stream = new WindowPostMessageStream({
23
+ name: "child",
24
+ target: "parent",
25
+ targetWindow: self.parent,
26
+ targetOrigin: "*"
27
+ })) {
28
+ log("Worker: Connecting to parent.");
29
+ const mux = new ObjectMultiplex();
30
+ pipeline(stream, mux, stream, (error) => {
31
+ if (error) {
32
+ logError(`Parent stream failure, closing worker.`, error);
33
+ }
34
+ self.close();
35
+ });
36
+ const commandStream = mux.createStream(SNAP_STREAM_NAMES.COMMAND);
37
+ const rpcStream = mux.createStream(SNAP_STREAM_NAMES.JSON_RPC);
38
+ return new _IFrameSnapExecutor(commandStream, rpcStream);
39
+ }
40
+ };
41
+
42
+ export {
43
+ IFrameSnapExecutor
44
+ };
45
+ //# sourceMappingURL=chunk-B3ASGNVQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/iframe/IFrameSnapExecutor.ts"],"sourcesContent":["import ObjectMultiplex from '@metamask/object-multiplex';\nimport type { BasePostMessageStream } from '@metamask/post-message-stream';\nimport { WindowPostMessageStream } from '@metamask/post-message-stream';\nimport { logError, SNAP_STREAM_NAMES } from '@metamask/snaps-utils';\nimport { pipeline } from 'readable-stream';\n\nimport { BaseSnapExecutor } from '../common/BaseSnapExecutor';\nimport { log } from '../logging';\n\nexport class IFrameSnapExecutor extends BaseSnapExecutor {\n /**\n * Initialize the IFrameSnapExecutor. This creates a post message stream from\n * and to the parent window, for two-way communication with the iframe.\n *\n * @param stream - The stream to use for communication.\n * @returns An instance of `IFrameSnapExecutor`, with the initialized post\n * message streams.\n */\n static initialize(\n stream: BasePostMessageStream = new WindowPostMessageStream({\n name: 'child',\n target: 'parent',\n targetWindow: self.parent,\n targetOrigin: '*',\n }),\n ) {\n log('Worker: Connecting to parent.');\n\n const mux = new ObjectMultiplex();\n pipeline(stream, mux, stream, (error) => {\n if (error) {\n logError(`Parent stream failure, closing worker.`, error);\n }\n self.close();\n });\n\n const commandStream = mux.createStream(SNAP_STREAM_NAMES.COMMAND);\n const rpcStream = mux.createStream(SNAP_STREAM_NAMES.JSON_RPC);\n\n return new IFrameSnapExecutor(commandStream, rpcStream);\n }\n}\n"],"mappings":";;;;;;;;AAAA,OAAO,qBAAqB;AAE5B,SAAS,+BAA+B;AACxC,SAAS,UAAU,yBAAyB;AAC5C,SAAS,gBAAgB;AAKlB,IAAM,qBAAN,MAAM,4BAA2B,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,OAAO,WACL,SAAgC,IAAI,wBAAwB;AAAA,IAC1D,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,cAAc,KAAK;AAAA,IACnB,cAAc;AAAA,EAChB,CAAC,GACD;AACA,QAAI,+BAA+B;AAEnC,UAAM,MAAM,IAAI,gBAAgB;AAChC,aAAS,QAAQ,KAAK,QAAQ,CAAC,UAAU;AACvC,UAAI,OAAO;AACT,iBAAS,0CAA0C,KAAK;AAAA,MAC1D;AACA,WAAK,MAAM;AAAA,IACb,CAAC;AAED,UAAM,gBAAgB,IAAI,aAAa,kBAAkB,OAAO;AAChE,UAAM,YAAY,IAAI,aAAa,kBAAkB,QAAQ;AAE7D,WAAO,IAAI,oBAAmB,eAAe,SAAS;AAAA,EACxD;AACF;","names":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/common/lockdown/lockdown-events.ts
2
+ var _utils = require('@metamask/utils');
3
+ var targetEvents = /* @__PURE__ */ new Map();
4
+ if (_utils.hasProperty.call(void 0, globalThis, "UIEvent")) {
5
+ targetEvents.set(UIEvent.prototype, ["view"]);
6
+ }
7
+ if (_utils.hasProperty.call(void 0, globalThis, "MutationEvent")) {
8
+ targetEvents.set(MutationEvent.prototype, ["relatedNode"]);
9
+ }
10
+ if (_utils.hasProperty.call(void 0, globalThis, "MessageEvent")) {
11
+ targetEvents.set(MessageEvent.prototype, ["source"]);
12
+ }
13
+ if (_utils.hasProperty.call(void 0, globalThis, "FocusEvent")) {
14
+ targetEvents.set(FocusEvent.prototype, ["relatedTarget"]);
15
+ }
16
+ if (_utils.hasProperty.call(void 0, globalThis, "MouseEvent")) {
17
+ targetEvents.set(MouseEvent.prototype, [
18
+ "relatedTarget",
19
+ "fromElement",
20
+ "toElement"
21
+ ]);
22
+ }
23
+ if (_utils.hasProperty.call(void 0, globalThis, "TouchEvent")) {
24
+ targetEvents.set(TouchEvent.prototype, ["targetTouches", "touches"]);
25
+ }
26
+ if (_utils.hasProperty.call(void 0, globalThis, "Event")) {
27
+ targetEvents.set(Event.prototype, [
28
+ "target",
29
+ "currentTarget",
30
+ "srcElement",
31
+ "composedPath"
32
+ ]);
33
+ }
34
+ function executeLockdownEvents() {
35
+ targetEvents.forEach((properties, prototype) => {
36
+ for (const property of properties) {
37
+ Object.defineProperty(prototype, property, {
38
+ value: void 0,
39
+ configurable: false,
40
+ writable: false
41
+ });
42
+ }
43
+ });
44
+ }
45
+
46
+
47
+
48
+ exports.executeLockdownEvents = executeLockdownEvents;
49
+ //# sourceMappingURL=chunk-BE4YFFMX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/lockdown/lockdown-events.ts"],"names":[],"mappings":";AAGA,SAAS,mBAAmB;AAQ5B,IAAM,eAAe,oBAAI,IAAI;AAC7B,IAAI,YAAY,YAAY,SAAS,GAAG;AACtC,eAAa,IAAI,QAAQ,WAAW,CAAC,MAAM,CAAC;AAC9C;AACA,IAAI,YAAY,YAAY,eAAe,GAAG;AAC5C,eAAa,IAAI,cAAc,WAAW,CAAC,aAAa,CAAC;AAC3D;AACA,IAAI,YAAY,YAAY,cAAc,GAAG;AAC3C,eAAa,IAAI,aAAa,WAAW,CAAC,QAAQ,CAAC;AACrD;AACA,IAAI,YAAY,YAAY,YAAY,GAAG;AACzC,eAAa,IAAI,WAAW,WAAW,CAAC,eAAe,CAAC;AAC1D;AACA,IAAI,YAAY,YAAY,YAAY,GAAG;AACzC,eAAa,IAAI,WAAW,WAAW;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AACA,IAAI,YAAY,YAAY,YAAY,GAAG;AACzC,eAAa,IAAI,WAAW,WAAW,CAAC,iBAAiB,SAAS,CAAC;AACrE;AACA,IAAI,YAAY,YAAY,OAAO,GAAG;AACpC,eAAa,IAAI,MAAM,WAAW;AAAA,IAChC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAKO,SAAS,wBAAwB;AACtC,eAAa,QAAQ,CAAC,YAAY,cAAc;AAC9C,eAAW,YAAY,YAAY;AACjC,aAAO,eAAe,WAAW,UAAU;AAAA,QACzC,OAAO;AAAA,QACP,cAAc;AAAA,QACd,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH","sourcesContent":["// When creating a sandbox, limitation of the events from leaking\n// sensitive objects is required. This is done by overriding own properties\n// of prototypes of all existing events.\nimport { hasProperty } from '@metamask/utils';\n\n/**\n * Targeted Event objects and properties.\n * Note: This is a map of the prototypes that inherit from Events with\n * properties that are identified to leak sensitive objects.\n * Not all browsers support all event types, so checking its existence is required.\n */\nconst targetEvents = new Map();\nif (hasProperty(globalThis, 'UIEvent')) {\n targetEvents.set(UIEvent.prototype, ['view']);\n}\nif (hasProperty(globalThis, 'MutationEvent')) {\n targetEvents.set(MutationEvent.prototype, ['relatedNode']);\n}\nif (hasProperty(globalThis, 'MessageEvent')) {\n targetEvents.set(MessageEvent.prototype, ['source']);\n}\nif (hasProperty(globalThis, 'FocusEvent')) {\n targetEvents.set(FocusEvent.prototype, ['relatedTarget']);\n}\nif (hasProperty(globalThis, 'MouseEvent')) {\n targetEvents.set(MouseEvent.prototype, [\n 'relatedTarget',\n 'fromElement',\n 'toElement',\n ]);\n}\nif (hasProperty(globalThis, 'TouchEvent')) {\n targetEvents.set(TouchEvent.prototype, ['targetTouches', 'touches']);\n}\nif (hasProperty(globalThis, 'Event')) {\n targetEvents.set(Event.prototype, [\n 'target',\n 'currentTarget',\n 'srcElement',\n 'composedPath',\n ]);\n}\n\n/**\n * Attenuate Event objects by replacing its own properties.\n */\nexport function executeLockdownEvents() {\n targetEvents.forEach((properties, prototype) => {\n for (const property of properties) {\n Object.defineProperty(prototype, property, {\n value: undefined,\n configurable: false,\n writable: false,\n });\n }\n });\n}\n"]}
@@ -0,0 +1,30 @@
1
+ import {
2
+ rootRealmGlobal
3
+ } from "./chunk-Y7IEFWZU.mjs";
4
+
5
+ // src/common/globalEvents.ts
6
+ import { rpcErrors } from "@metamask/rpc-errors";
7
+ function addEventListener(event, listener) {
8
+ if ("addEventListener" in rootRealmGlobal && typeof rootRealmGlobal.addEventListener === "function") {
9
+ return rootRealmGlobal.addEventListener(event.toLowerCase(), listener);
10
+ }
11
+ if (rootRealmGlobal.process && "on" in rootRealmGlobal.process && typeof rootRealmGlobal.process.on === "function") {
12
+ return rootRealmGlobal.process.on(event, listener);
13
+ }
14
+ throw rpcErrors.internal("Platform agnostic addEventListener failed.");
15
+ }
16
+ function removeEventListener(event, listener) {
17
+ if ("removeEventListener" in rootRealmGlobal && typeof rootRealmGlobal.removeEventListener === "function") {
18
+ return rootRealmGlobal.removeEventListener(event.toLowerCase(), listener);
19
+ }
20
+ if (rootRealmGlobal.process && "removeListener" in rootRealmGlobal.process && typeof rootRealmGlobal.process.removeListener === "function") {
21
+ return rootRealmGlobal.process.removeListener(event, listener);
22
+ }
23
+ throw new Error("Platform agnostic removeEventListener failed");
24
+ }
25
+
26
+ export {
27
+ addEventListener,
28
+ removeEventListener
29
+ };
30
+ //# sourceMappingURL=chunk-BOCIYCLE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/globalEvents.ts"],"sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\n\nimport { rootRealmGlobal } from './globalObject';\n\n/**\n * Adds an event listener platform agnostically, trying both `globalThis.addEventListener` and `globalThis.process.on`\n *\n * @param event - The event to listen for.\n * @param listener - The listener to be triggered when the event occurs.\n * @returns The result of the platform agnostic operation if any.\n * @throws If none of the platform options are present.\n */\nexport function addEventListener(\n event: string,\n listener: (...args: any[]) => void,\n) {\n if (\n 'addEventListener' in rootRealmGlobal &&\n typeof rootRealmGlobal.addEventListener === 'function'\n ) {\n return rootRealmGlobal.addEventListener(event.toLowerCase(), listener);\n }\n\n if (\n rootRealmGlobal.process &&\n 'on' in rootRealmGlobal.process &&\n typeof rootRealmGlobal.process.on === 'function'\n ) {\n return rootRealmGlobal.process.on(event, listener);\n }\n\n throw rpcErrors.internal('Platform agnostic addEventListener failed.');\n}\n\n/**\n * Removes an event listener platform agnostically, trying both `globalThis.removeEventListener` and `globalThis.process.removeListener`\n *\n * @param event - The event to remove the listener for.\n * @param listener - The currently attached listener.\n * @returns The result of the platform agnostic operation if any.\n * @throws If none of the platform options are present.\n */\nexport function removeEventListener(\n event: string,\n listener: (...args: any[]) => void,\n) {\n if (\n 'removeEventListener' in rootRealmGlobal &&\n typeof rootRealmGlobal.removeEventListener === 'function'\n ) {\n return rootRealmGlobal.removeEventListener(event.toLowerCase(), listener);\n }\n\n if (\n rootRealmGlobal.process &&\n 'removeListener' in rootRealmGlobal.process &&\n typeof rootRealmGlobal.process.removeListener === 'function'\n ) {\n return rootRealmGlobal.process.removeListener(event, listener);\n }\n\n throw new Error('Platform agnostic removeEventListener failed');\n}\n"],"mappings":";;;;;AAAA,SAAS,iBAAiB;AAYnB,SAAS,iBACd,OACA,UACA;AACA,MACE,sBAAsB,mBACtB,OAAO,gBAAgB,qBAAqB,YAC5C;AACA,WAAO,gBAAgB,iBAAiB,MAAM,YAAY,GAAG,QAAQ;AAAA,EACvE;AAEA,MACE,gBAAgB,WAChB,QAAQ,gBAAgB,WACxB,OAAO,gBAAgB,QAAQ,OAAO,YACtC;AACA,WAAO,gBAAgB,QAAQ,GAAG,OAAO,QAAQ;AAAA,EACnD;AAEA,QAAM,UAAU,SAAS,4CAA4C;AACvE;AAUO,SAAS,oBACd,OACA,UACA;AACA,MACE,yBAAyB,mBACzB,OAAO,gBAAgB,wBAAwB,YAC/C;AACA,WAAO,gBAAgB,oBAAoB,MAAM,YAAY,GAAG,QAAQ;AAAA,EAC1E;AAEA,MACE,gBAAgB,WAChB,oBAAoB,gBAAgB,WACpC,OAAO,gBAAgB,QAAQ,mBAAmB,YAClD;AACA,WAAO,gBAAgB,QAAQ,eAAe,OAAO,QAAQ;AAAA,EAC/D;AAEA,QAAM,IAAI,MAAM,8CAA8C;AAChE;","names":[]}