@metamask/snaps-cli 6.3.1 → 6.3.3

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 (636) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/dist/__fixtures__/configs/cjs.cjs +9 -0
  3. package/dist/__fixtures__/configs/cjs.cjs.map +1 -0
  4. package/dist/__fixtures__/configs/cjs.d.cts +2 -0
  5. package/dist/__fixtures__/configs/cjs.d.cts.map +1 -0
  6. package/dist/__fixtures__/configs/cjs.d.mts +2 -0
  7. package/dist/__fixtures__/configs/cjs.d.mts.map +1 -0
  8. package/dist/__fixtures__/configs/cjs.mjs +8 -0
  9. package/dist/__fixtures__/configs/cjs.mjs.map +1 -0
  10. package/dist/__fixtures__/configs/esm.cjs +7 -0
  11. package/dist/__fixtures__/configs/esm.cjs.map +1 -0
  12. package/dist/__fixtures__/configs/esm.d.cts +4 -0
  13. package/dist/__fixtures__/configs/esm.d.cts.map +1 -0
  14. package/dist/__fixtures__/configs/esm.d.mts +4 -0
  15. package/dist/__fixtures__/configs/esm.d.mts.map +1 -0
  16. package/dist/__fixtures__/configs/esm.mjs +5 -0
  17. package/dist/__fixtures__/configs/esm.mjs.map +1 -0
  18. package/dist/__fixtures__/configs/invalid.cjs +8 -0
  19. package/dist/__fixtures__/configs/invalid.cjs.map +1 -0
  20. package/dist/__fixtures__/configs/invalid.d.cts +4 -0
  21. package/dist/__fixtures__/configs/invalid.d.cts.map +1 -0
  22. package/dist/__fixtures__/configs/invalid.d.mts +4 -0
  23. package/dist/__fixtures__/configs/invalid.d.mts.map +1 -0
  24. package/dist/__fixtures__/configs/invalid.mjs +6 -0
  25. package/dist/__fixtures__/configs/invalid.mjs.map +1 -0
  26. package/dist/__fixtures__/configs/javascript/snap.config.cjs +6 -0
  27. package/dist/__fixtures__/configs/javascript/snap.config.cjs.map +1 -0
  28. package/dist/__fixtures__/configs/javascript/snap.config.d.cts +2 -0
  29. package/dist/__fixtures__/configs/javascript/snap.config.d.cts.map +1 -0
  30. package/dist/__fixtures__/configs/javascript/snap.config.d.mts +2 -0
  31. package/dist/__fixtures__/configs/javascript/snap.config.d.mts.map +1 -0
  32. package/dist/__fixtures__/configs/javascript/snap.config.mjs +5 -0
  33. package/dist/__fixtures__/configs/javascript/snap.config.mjs.map +1 -0
  34. package/dist/__fixtures__/configs/typescript/snap.config.cjs +7 -0
  35. package/dist/__fixtures__/configs/typescript/snap.config.cjs.map +1 -0
  36. package/dist/__fixtures__/configs/typescript/snap.config.d.cts +4 -0
  37. package/dist/__fixtures__/configs/typescript/snap.config.d.cts.map +1 -0
  38. package/dist/__fixtures__/configs/typescript/snap.config.d.mts +4 -0
  39. package/dist/__fixtures__/configs/typescript/snap.config.d.mts.map +1 -0
  40. package/dist/__fixtures__/configs/typescript/snap.config.mjs +5 -0
  41. package/dist/__fixtures__/configs/typescript/snap.config.mjs.map +1 -0
  42. package/dist/builders.cjs +132 -0
  43. package/dist/builders.cjs.map +1 -0
  44. package/dist/{types/builders.d.ts → builders.d.cts} +2 -1
  45. package/dist/builders.d.cts.map +1 -0
  46. package/dist/builders.d.mts +9 -0
  47. package/dist/builders.d.mts.map +1 -0
  48. package/dist/builders.mjs +127 -8
  49. package/dist/builders.mjs.map +1 -1
  50. package/dist/cli.cjs +71 -0
  51. package/dist/cli.cjs.map +1 -0
  52. package/dist/{types/cli.d.ts → cli.d.cts} +1 -0
  53. package/dist/cli.d.cts.map +1 -0
  54. package/dist/cli.d.mts +16 -0
  55. package/dist/cli.d.mts.map +1 -0
  56. package/dist/cli.mjs +69 -20
  57. package/dist/cli.mjs.map +1 -1
  58. package/dist/commands/build/build.cjs +53 -0
  59. package/dist/commands/build/build.cjs.map +1 -0
  60. package/dist/{types/commands/build/build.d.ts → commands/build/build.d.cts} +3 -1
  61. package/dist/commands/build/build.d.cts.map +1 -0
  62. package/dist/commands/build/build.d.mts +12 -0
  63. package/dist/commands/build/build.d.mts.map +1 -0
  64. package/dist/commands/build/build.mjs +48 -28
  65. package/dist/commands/build/build.mjs.map +1 -1
  66. package/dist/commands/build/implementation.cjs +31 -0
  67. package/dist/commands/build/implementation.cjs.map +1 -0
  68. package/dist/{types/commands/build/implementation.d.ts → commands/build/implementation.d.cts} +3 -2
  69. package/dist/commands/build/implementation.d.cts.map +1 -0
  70. package/dist/commands/build/implementation.d.mts +11 -0
  71. package/dist/commands/build/implementation.d.mts.map +1 -0
  72. package/dist/commands/build/implementation.mjs +26 -27
  73. package/dist/commands/build/implementation.mjs.map +1 -1
  74. package/dist/commands/build/index.cjs +44 -0
  75. package/dist/commands/build/index.cjs.map +1 -0
  76. package/dist/{types/commands/eval/index.d.ts → commands/build/index.d.cts} +4 -3
  77. package/dist/commands/build/index.d.cts.map +1 -0
  78. package/dist/{types/commands/manifest/index.d.ts → commands/build/index.d.mts} +4 -3
  79. package/dist/commands/build/index.d.mts.map +1 -0
  80. package/dist/commands/build/index.mjs +23 -31
  81. package/dist/commands/build/index.mjs.map +1 -1
  82. package/dist/commands/eval/__test__/browserify/bad/snap.config.cjs +10 -0
  83. package/dist/commands/eval/__test__/browserify/bad/snap.config.cjs.map +1 -0
  84. package/dist/commands/eval/__test__/browserify/bad/snap.config.d.cts +4 -0
  85. package/dist/commands/eval/__test__/browserify/bad/snap.config.d.cts.map +1 -0
  86. package/dist/commands/eval/__test__/browserify/bad/snap.config.d.mts +4 -0
  87. package/dist/commands/eval/__test__/browserify/bad/snap.config.d.mts.map +1 -0
  88. package/dist/commands/eval/__test__/browserify/bad/snap.config.mjs +8 -0
  89. package/dist/commands/eval/__test__/browserify/bad/snap.config.mjs.map +1 -0
  90. package/dist/commands/eval/__test__/browserify/good/snap.config.cjs +10 -0
  91. package/dist/commands/eval/__test__/browserify/good/snap.config.cjs.map +1 -0
  92. package/dist/commands/eval/__test__/browserify/good/snap.config.d.cts +4 -0
  93. package/dist/commands/eval/__test__/browserify/good/snap.config.d.cts.map +1 -0
  94. package/dist/commands/eval/__test__/browserify/good/snap.config.d.mts +4 -0
  95. package/dist/commands/eval/__test__/browserify/good/snap.config.d.mts.map +1 -0
  96. package/dist/commands/eval/__test__/browserify/good/snap.config.mjs +8 -0
  97. package/dist/commands/eval/__test__/browserify/good/snap.config.mjs.map +1 -0
  98. package/dist/commands/eval/__test__/webpack/bad/snap.config.cjs +12 -0
  99. package/dist/commands/eval/__test__/webpack/bad/snap.config.cjs.map +1 -0
  100. package/dist/commands/eval/__test__/webpack/bad/snap.config.d.cts +4 -0
  101. package/dist/commands/eval/__test__/webpack/bad/snap.config.d.cts.map +1 -0
  102. package/dist/commands/eval/__test__/webpack/bad/snap.config.d.mts +4 -0
  103. package/dist/commands/eval/__test__/webpack/bad/snap.config.d.mts.map +1 -0
  104. package/dist/commands/eval/__test__/webpack/bad/snap.config.mjs +28 -0
  105. package/dist/commands/eval/__test__/webpack/bad/snap.config.mjs.map +1 -0
  106. package/dist/commands/eval/__test__/webpack/good/snap.config.cjs +12 -0
  107. package/dist/commands/eval/__test__/webpack/good/snap.config.cjs.map +1 -0
  108. package/dist/commands/eval/__test__/webpack/good/snap.config.d.cts +4 -0
  109. package/dist/commands/eval/__test__/webpack/good/snap.config.d.cts.map +1 -0
  110. package/dist/commands/eval/__test__/webpack/good/snap.config.d.mts +4 -0
  111. package/dist/commands/eval/__test__/webpack/good/snap.config.d.mts.map +1 -0
  112. package/dist/commands/eval/__test__/webpack/good/snap.config.mjs +28 -0
  113. package/dist/commands/eval/__test__/webpack/good/snap.config.mjs.map +1 -0
  114. package/dist/commands/eval/__test__/webpack/snap.config.cjs +8 -0
  115. package/dist/commands/eval/__test__/webpack/snap.config.cjs.map +1 -0
  116. package/dist/commands/eval/__test__/webpack/snap.config.d.cts +4 -0
  117. package/dist/commands/eval/__test__/webpack/snap.config.d.cts.map +1 -0
  118. package/dist/commands/eval/__test__/webpack/snap.config.d.mts +4 -0
  119. package/dist/commands/eval/__test__/webpack/snap.config.d.mts.map +1 -0
  120. package/dist/commands/eval/__test__/webpack/snap.config.mjs +6 -0
  121. package/dist/commands/eval/__test__/webpack/snap.config.mjs.map +1 -0
  122. package/dist/commands/eval/eval.cjs +57 -0
  123. package/dist/commands/eval/eval.cjs.map +1 -0
  124. package/dist/{types/commands/eval/eval.d.ts → commands/eval/eval.d.cts} +2 -1
  125. package/dist/commands/eval/eval.d.cts.map +1 -0
  126. package/dist/commands/eval/eval.d.mts +15 -0
  127. package/dist/commands/eval/eval.d.mts.map +1 -0
  128. package/dist/commands/eval/eval.mjs +52 -17
  129. package/dist/commands/eval/eval.mjs.map +1 -1
  130. package/dist/commands/eval/implementation.cjs +30 -0
  131. package/dist/commands/eval/implementation.cjs.map +1 -0
  132. package/dist/{types/commands/eval/implementation.d.ts → commands/eval/implementation.d.cts} +2 -0
  133. package/dist/commands/eval/implementation.d.cts.map +1 -0
  134. package/dist/commands/eval/implementation.d.mts +11 -0
  135. package/dist/commands/eval/implementation.d.mts.map +1 -0
  136. package/dist/commands/eval/implementation.mjs +26 -8
  137. package/dist/commands/eval/implementation.mjs.map +1 -1
  138. package/dist/commands/eval/index.cjs +35 -0
  139. package/dist/commands/eval/index.cjs.map +1 -0
  140. package/dist/commands/eval/index.d.cts +11 -0
  141. package/dist/commands/eval/index.d.cts.map +1 -0
  142. package/dist/commands/eval/index.d.mts +11 -0
  143. package/dist/commands/eval/index.d.mts.map +1 -0
  144. package/dist/commands/eval/index.mjs +14 -20
  145. package/dist/commands/eval/index.mjs.map +1 -1
  146. package/dist/commands/index.cjs +19 -0
  147. package/dist/commands/index.cjs.map +1 -0
  148. package/dist/{types/commands/index.d.ts → commands/index.d.cts} +2 -1
  149. package/dist/commands/index.d.cts.map +1 -0
  150. package/dist/commands/index.d.mts +9 -0
  151. package/dist/commands/index.d.mts.map +1 -0
  152. package/dist/commands/index.mjs +13 -38
  153. package/dist/commands/index.mjs.map +1 -1
  154. package/dist/commands/manifest/implementation.cjs +64 -0
  155. package/dist/commands/manifest/implementation.cjs.map +1 -0
  156. package/dist/{types/commands/manifest/implementation.d.ts → commands/manifest/implementation.d.cts} +3 -1
  157. package/dist/commands/manifest/implementation.d.cts.map +1 -0
  158. package/dist/commands/manifest/implementation.d.mts +14 -0
  159. package/dist/commands/manifest/implementation.d.mts.map +1 -0
  160. package/dist/commands/manifest/implementation.mjs +60 -16
  161. package/dist/commands/manifest/implementation.mjs.map +1 -1
  162. package/dist/commands/manifest/index.cjs +35 -0
  163. package/dist/commands/manifest/index.cjs.map +1 -0
  164. package/dist/commands/manifest/index.d.cts +11 -0
  165. package/dist/commands/manifest/index.d.cts.map +1 -0
  166. package/dist/commands/manifest/index.d.mts +11 -0
  167. package/dist/commands/manifest/index.d.mts.map +1 -0
  168. package/dist/commands/manifest/index.mjs +14 -20
  169. package/dist/commands/manifest/index.mjs.map +1 -1
  170. package/dist/commands/manifest/manifest.cjs +57 -0
  171. package/dist/commands/manifest/manifest.cjs.map +1 -0
  172. package/dist/{types/commands/manifest/manifest.d.ts → commands/manifest/manifest.d.cts} +2 -1
  173. package/dist/commands/manifest/manifest.d.cts.map +1 -0
  174. package/dist/commands/manifest/manifest.d.mts +15 -0
  175. package/dist/commands/manifest/manifest.d.mts.map +1 -0
  176. package/dist/commands/manifest/manifest.mjs +52 -17
  177. package/dist/commands/manifest/manifest.mjs.map +1 -1
  178. package/dist/commands/serve/index.cjs +19 -0
  179. package/dist/commands/serve/index.cjs.map +1 -0
  180. package/dist/{types/commands/serve/index.d.ts → commands/serve/index.d.cts} +3 -2
  181. package/dist/commands/serve/index.d.cts.map +1 -0
  182. package/dist/{types/commands/build/index.d.ts → commands/serve/index.d.mts} +3 -3
  183. package/dist/commands/serve/index.d.mts.map +1 -0
  184. package/dist/commands/serve/index.mjs +12 -27
  185. package/dist/commands/serve/index.mjs.map +1 -1
  186. package/dist/commands/serve/serve.cjs +21 -0
  187. package/dist/commands/serve/serve.cjs.map +1 -0
  188. package/dist/{types/commands/serve/serve.d.ts → commands/serve/serve.d.cts} +2 -1
  189. package/dist/commands/serve/serve.d.cts.map +1 -0
  190. package/dist/commands/serve/serve.d.mts +17 -0
  191. package/dist/commands/serve/serve.d.mts.map +1 -0
  192. package/dist/commands/serve/serve.mjs +16 -27
  193. package/dist/commands/serve/serve.mjs.map +1 -1
  194. package/dist/commands/watch/implementation.cjs +38 -0
  195. package/dist/{chunk-BAEGXYL7.mjs.map → commands/watch/implementation.cjs.map} +1 -1
  196. package/dist/{types/commands/watch/implementation.d.ts → commands/watch/implementation.d.cts} +4 -3
  197. package/dist/commands/watch/implementation.d.cts.map +1 -0
  198. package/dist/commands/watch/implementation.d.mts +15 -0
  199. package/dist/commands/watch/implementation.d.mts.map +1 -0
  200. package/dist/commands/watch/implementation.mjs +33 -27
  201. package/dist/commands/watch/implementation.mjs.map +1 -1
  202. package/dist/commands/watch/index.cjs +49 -0
  203. package/dist/commands/watch/index.cjs.map +1 -0
  204. package/dist/commands/watch/index.d.cts +11 -0
  205. package/dist/commands/watch/index.d.cts.map +1 -0
  206. package/dist/commands/watch/index.d.mts +11 -0
  207. package/dist/commands/watch/index.d.mts.map +1 -0
  208. package/dist/commands/watch/index.mjs +28 -31
  209. package/dist/commands/watch/index.mjs.map +1 -1
  210. package/dist/commands/watch/watch.cjs +49 -0
  211. package/dist/commands/watch/watch.cjs.map +1 -0
  212. package/dist/{types/commands/watch/watch.d.ts → commands/watch/watch.d.cts} +2 -1
  213. package/dist/commands/watch/watch.d.cts.map +1 -0
  214. package/dist/commands/watch/watch.d.mts +20 -0
  215. package/dist/commands/watch/watch.d.mts.map +1 -0
  216. package/dist/commands/watch/watch.mjs +44 -28
  217. package/dist/commands/watch/watch.mjs.map +1 -1
  218. package/dist/config.cjs +334 -0
  219. package/dist/config.cjs.map +1 -0
  220. package/dist/{types/config.d.ts → config.d.cts} +44 -43
  221. package/dist/config.d.cts.map +1 -0
  222. package/dist/config.d.mts +821 -0
  223. package/dist/config.d.mts.map +1 -0
  224. package/dist/config.mjs +322 -35
  225. package/dist/config.mjs.map +1 -1
  226. package/dist/errors.cjs +38 -0
  227. package/dist/errors.cjs.map +1 -0
  228. package/dist/{types/errors.d.ts → errors.d.cts} +1 -0
  229. package/dist/errors.d.cts.map +1 -0
  230. package/dist/errors.d.mts +26 -0
  231. package/dist/errors.d.mts.map +1 -0
  232. package/dist/errors.mjs +32 -11
  233. package/dist/errors.mjs.map +1 -1
  234. package/dist/index.cjs +39 -0
  235. package/dist/index.cjs.map +1 -0
  236. package/dist/index.d.cts +6 -0
  237. package/dist/index.d.cts.map +1 -0
  238. package/dist/index.d.mts +6 -0
  239. package/dist/index.d.mts.map +1 -0
  240. package/dist/index.mjs +4 -44
  241. package/dist/index.mjs.map +1 -1
  242. package/dist/main.cjs +24 -0
  243. package/dist/main.cjs.map +1 -0
  244. package/dist/main.d.cts +3 -0
  245. package/dist/main.d.cts.map +1 -0
  246. package/dist/main.d.mts +3 -0
  247. package/dist/main.d.mts.map +1 -0
  248. package/dist/main.mjs +15 -46
  249. package/dist/main.mjs.map +1 -1
  250. package/dist/structs.cjs +31 -0
  251. package/dist/structs.cjs.map +1 -0
  252. package/dist/{types/structs.d.ts → structs.d.cts} +1 -0
  253. package/dist/structs.d.cts.map +1 -0
  254. package/dist/structs.d.mts +21 -0
  255. package/dist/structs.d.mts.map +1 -0
  256. package/dist/structs.mjs +26 -7
  257. package/dist/structs.mjs.map +1 -1
  258. package/dist/utils/cli.cjs +52 -0
  259. package/dist/utils/cli.cjs.map +1 -0
  260. package/dist/{types/utils/cli.d.ts → utils/cli.d.cts} +1 -0
  261. package/dist/utils/cli.d.cts.map +1 -0
  262. package/dist/utils/cli.d.mts +18 -0
  263. package/dist/utils/cli.d.mts.map +1 -0
  264. package/dist/utils/cli.mjs +43 -13
  265. package/dist/utils/cli.mjs.map +1 -1
  266. package/dist/utils/errors.cjs +49 -0
  267. package/dist/utils/errors.cjs.map +1 -0
  268. package/dist/{types/utils/errors.d.ts → utils/errors.d.cts} +1 -0
  269. package/dist/utils/errors.d.cts.map +1 -0
  270. package/dist/utils/errors.d.mts +24 -0
  271. package/dist/utils/errors.d.mts.map +1 -0
  272. package/dist/utils/errors.mjs +43 -10
  273. package/dist/utils/errors.mjs.map +1 -1
  274. package/dist/utils/index.cjs +23 -0
  275. package/dist/utils/index.cjs.map +1 -0
  276. package/dist/utils/index.d.cts +7 -0
  277. package/dist/utils/index.d.cts.map +1 -0
  278. package/dist/utils/index.d.mts +7 -0
  279. package/dist/utils/index.d.mts.map +1 -0
  280. package/dist/utils/index.mjs +6 -46
  281. package/dist/utils/index.mjs.map +1 -1
  282. package/dist/utils/legacy.cjs +53 -0
  283. package/dist/utils/legacy.cjs.map +1 -0
  284. package/dist/{types/utils/legacy.d.ts → utils/legacy.d.cts} +2 -1
  285. package/dist/utils/legacy.d.cts.map +1 -0
  286. package/dist/utils/legacy.d.mts +28 -0
  287. package/dist/utils/legacy.d.mts.map +1 -0
  288. package/dist/utils/legacy.mjs +46 -12
  289. package/dist/utils/legacy.mjs.map +1 -1
  290. package/dist/utils/logging.cjs +48 -0
  291. package/dist/utils/logging.cjs.map +1 -0
  292. package/dist/{types/utils/logging.d.ts → utils/logging.d.cts} +2 -1
  293. package/dist/utils/logging.d.cts.map +1 -0
  294. package/dist/utils/logging.d.mts +23 -0
  295. package/dist/utils/logging.d.mts.map +1 -0
  296. package/dist/utils/logging.mjs +42 -11
  297. package/dist/utils/logging.mjs.map +1 -1
  298. package/dist/utils/path.cjs +17 -0
  299. package/dist/utils/path.cjs.map +1 -0
  300. package/dist/{types/utils/path.d.ts → utils/path.d.cts} +1 -0
  301. package/dist/utils/path.d.cts.map +1 -0
  302. package/dist/utils/path.d.mts +10 -0
  303. package/dist/utils/path.d.mts.map +1 -0
  304. package/dist/utils/path.mjs +12 -7
  305. package/dist/utils/path.mjs.map +1 -1
  306. package/dist/utils/steps.cjs +51 -0
  307. package/dist/utils/steps.cjs.map +1 -0
  308. package/dist/{types/utils/steps.d.ts → utils/steps.d.cts} +2 -1
  309. package/dist/utils/steps.d.cts.map +1 -0
  310. package/dist/utils/steps.d.mts +18 -0
  311. package/dist/utils/steps.d.mts.map +1 -0
  312. package/dist/utils/steps.mjs +51 -10
  313. package/dist/utils/steps.mjs.map +1 -1
  314. package/dist/webpack/compiler.cjs +19 -0
  315. package/dist/webpack/compiler.cjs.map +1 -0
  316. package/dist/{types/webpack/compiler.d.ts → webpack/compiler.d.cts} +3 -2
  317. package/dist/webpack/compiler.d.cts.map +1 -0
  318. package/dist/webpack/compiler.d.mts +11 -0
  319. package/dist/webpack/compiler.d.mts.map +1 -0
  320. package/dist/webpack/compiler.mjs +15 -24
  321. package/dist/webpack/compiler.mjs.map +1 -1
  322. package/dist/webpack/config.cjs +349 -0
  323. package/dist/webpack/config.cjs.map +1 -0
  324. package/dist/{types/webpack/config.d.ts → webpack/config.d.cts} +4 -3
  325. package/dist/webpack/config.d.cts.map +1 -0
  326. package/dist/webpack/config.d.mts +38 -0
  327. package/dist/webpack/config.d.mts.map +1 -0
  328. package/dist/webpack/config.mjs +349 -23
  329. package/dist/webpack/config.mjs.map +1 -1
  330. package/dist/webpack/index.cjs +21 -0
  331. package/dist/webpack/index.cjs.map +1 -0
  332. package/dist/webpack/index.d.cts +5 -0
  333. package/dist/webpack/index.d.cts.map +1 -0
  334. package/dist/webpack/index.d.mts +5 -0
  335. package/dist/webpack/index.d.mts.map +1 -0
  336. package/dist/webpack/index.mjs +4 -43
  337. package/dist/webpack/index.mjs.map +1 -1
  338. package/dist/webpack/loaders/browserify.cjs +84 -0
  339. package/dist/webpack/loaders/browserify.cjs.map +1 -0
  340. package/dist/{types/webpack/loaders/browserify.d.ts → webpack/loaders/browserify.d.cts} +4 -2
  341. package/dist/webpack/loaders/browserify.d.cts.map +1 -0
  342. package/dist/webpack/loaders/browserify.d.mts +18 -0
  343. package/dist/webpack/loaders/browserify.d.mts.map +1 -0
  344. package/dist/webpack/loaders/browserify.mjs +86 -17
  345. package/dist/webpack/loaders/browserify.mjs.map +1 -1
  346. package/dist/webpack/loaders/function.cjs +45 -0
  347. package/dist/webpack/loaders/function.cjs.map +1 -0
  348. package/dist/{types/webpack/loaders/function.d.ts → webpack/loaders/function.d.cts} +2 -1
  349. package/dist/webpack/loaders/function.d.cts.map +1 -0
  350. package/dist/webpack/loaders/function.d.mts +35 -0
  351. package/dist/webpack/loaders/function.d.mts.map +1 -0
  352. package/dist/webpack/loaders/function.mjs +43 -8
  353. package/dist/webpack/loaders/function.mjs.map +1 -1
  354. package/dist/webpack/loaders/index.cjs +26 -0
  355. package/dist/webpack/loaders/index.cjs.map +1 -0
  356. package/dist/webpack/loaders/index.d.cts +4 -0
  357. package/dist/webpack/loaders/index.d.cts.map +1 -0
  358. package/dist/webpack/loaders/index.d.mts +4 -0
  359. package/dist/webpack/loaders/index.d.mts.map +1 -0
  360. package/dist/webpack/loaders/index.mjs +3 -24
  361. package/dist/webpack/loaders/index.mjs.map +1 -1
  362. package/dist/webpack/loaders/wasm.cjs +103 -0
  363. package/dist/webpack/loaders/wasm.cjs.map +1 -0
  364. package/dist/{types/webpack/loaders/wasm.d.ts → webpack/loaders/wasm.d.cts} +2 -1
  365. package/dist/webpack/loaders/wasm.d.cts.map +1 -0
  366. package/dist/webpack/loaders/wasm.d.mts +43 -0
  367. package/dist/webpack/loaders/wasm.d.mts.map +1 -0
  368. package/dist/webpack/loaders/wasm.mjs +95 -14
  369. package/dist/webpack/loaders/wasm.mjs.map +1 -1
  370. package/dist/webpack/plugins.cjs +277 -0
  371. package/dist/webpack/plugins.cjs.map +1 -0
  372. package/dist/{types/webpack/plugins.d.ts → webpack/plugins.d.cts} +3 -2
  373. package/dist/webpack/plugins.d.cts.map +1 -0
  374. package/dist/webpack/plugins.d.mts +148 -0
  375. package/dist/webpack/plugins.d.mts.map +1 -0
  376. package/dist/webpack/plugins.mjs +270 -27
  377. package/dist/webpack/plugins.mjs.map +1 -1
  378. package/dist/webpack/server.cjs +144 -0
  379. package/dist/webpack/server.cjs.map +1 -0
  380. package/dist/{types/webpack/server.d.ts → webpack/server.d.cts} +5 -3
  381. package/dist/webpack/server.d.cts.map +1 -0
  382. package/dist/webpack/server.d.mts +32 -0
  383. package/dist/webpack/server.d.mts.map +1 -0
  384. package/dist/webpack/server.mjs +142 -9
  385. package/dist/webpack/server.mjs.map +1 -1
  386. package/dist/webpack/utils.cjs +359 -0
  387. package/dist/webpack/utils.cjs.map +1 -0
  388. package/dist/{types/webpack/utils.d.ts → webpack/utils.d.cts} +8 -7
  389. package/dist/webpack/utils.d.cts.map +1 -0
  390. package/dist/webpack/utils.d.mts +259 -0
  391. package/dist/webpack/utils.d.mts.map +1 -0
  392. package/dist/webpack/utils.mjs +350 -37
  393. package/dist/webpack/utils.mjs.map +1 -1
  394. package/package.json +22 -22
  395. package/dist/builders.js +0 -10
  396. package/dist/builders.js.map +0 -1
  397. package/dist/chunk-24QJ2ZUZ.mjs +0 -55
  398. package/dist/chunk-24QJ2ZUZ.mjs.map +0 -1
  399. package/dist/chunk-2P3D6FNV.mjs +0 -23
  400. package/dist/chunk-2P3D6FNV.mjs.map +0 -1
  401. package/dist/chunk-2ZBAKBVW.js +0 -28
  402. package/dist/chunk-2ZBAKBVW.js.map +0 -1
  403. package/dist/chunk-3WWFQLH4.mjs +0 -30
  404. package/dist/chunk-3WWFQLH4.mjs.map +0 -1
  405. package/dist/chunk-45LOTCC4.mjs +0 -1
  406. package/dist/chunk-45LOTCC4.mjs.map +0 -1
  407. package/dist/chunk-4A5QZUC7.mjs +0 -68
  408. package/dist/chunk-4A5QZUC7.mjs.map +0 -1
  409. package/dist/chunk-4JEJ7WKR.js +0 -61
  410. package/dist/chunk-4JEJ7WKR.js.map +0 -1
  411. package/dist/chunk-4QUVE3EK.js +0 -53
  412. package/dist/chunk-4QUVE3EK.js.map +0 -1
  413. package/dist/chunk-5IN3GGMV.js +0 -68
  414. package/dist/chunk-5IN3GGMV.js.map +0 -1
  415. package/dist/chunk-6ABGZTV7.mjs +0 -16
  416. package/dist/chunk-6ABGZTV7.mjs.map +0 -1
  417. package/dist/chunk-6EEZHGF5.js +0 -23
  418. package/dist/chunk-6EEZHGF5.js.map +0 -1
  419. package/dist/chunk-7H5FH7RY.js +0 -22
  420. package/dist/chunk-7H5FH7RY.js.map +0 -1
  421. package/dist/chunk-7RHK2YTB.mjs +0 -32
  422. package/dist/chunk-7RHK2YTB.mjs.map +0 -1
  423. package/dist/chunk-AQSQ7YYP.mjs +0 -24
  424. package/dist/chunk-AQSQ7YYP.mjs.map +0 -1
  425. package/dist/chunk-AZMQTZXZ.mjs +0 -28
  426. package/dist/chunk-AZMQTZXZ.mjs.map +0 -1
  427. package/dist/chunk-B3NNVTA6.js +0 -32
  428. package/dist/chunk-B3NNVTA6.js.map +0 -1
  429. package/dist/chunk-BAEGXYL7.mjs +0 -35
  430. package/dist/chunk-BALQOCUO.js +0 -22
  431. package/dist/chunk-BALQOCUO.js.map +0 -1
  432. package/dist/chunk-BYNQODL3.mjs +0 -23
  433. package/dist/chunk-BYNQODL3.mjs.map +0 -1
  434. package/dist/chunk-C44RRX3H.js +0 -18
  435. package/dist/chunk-C44RRX3H.js.map +0 -1
  436. package/dist/chunk-C46KEPAC.js +0 -37
  437. package/dist/chunk-C46KEPAC.js.map +0 -1
  438. package/dist/chunk-CB77QR32.js +0 -52
  439. package/dist/chunk-CB77QR32.js.map +0 -1
  440. package/dist/chunk-CZRGAFVI.mjs +0 -28
  441. package/dist/chunk-CZRGAFVI.mjs.map +0 -1
  442. package/dist/chunk-D2ZIM5W2.js +0 -370
  443. package/dist/chunk-D2ZIM5W2.js.map +0 -1
  444. package/dist/chunk-DBLADLQ4.js +0 -10
  445. package/dist/chunk-DBLADLQ4.js.map +0 -1
  446. package/dist/chunk-ERSRIVYH.mjs +0 -64
  447. package/dist/chunk-ERSRIVYH.mjs.map +0 -1
  448. package/dist/chunk-G62Q4YO5.js +0 -30
  449. package/dist/chunk-G62Q4YO5.js.map +0 -1
  450. package/dist/chunk-HAYK73YO.js +0 -23
  451. package/dist/chunk-HAYK73YO.js.map +0 -1
  452. package/dist/chunk-HLQEI6DV.js +0 -54
  453. package/dist/chunk-HLQEI6DV.js.map +0 -1
  454. package/dist/chunk-HLSCFGA7.mjs +0 -13
  455. package/dist/chunk-HLSCFGA7.mjs.map +0 -1
  456. package/dist/chunk-HOVEQTF3.mjs +0 -346
  457. package/dist/chunk-HOVEQTF3.mjs.map +0 -1
  458. package/dist/chunk-JAHNVVLT.mjs +0 -18
  459. package/dist/chunk-JAHNVVLT.mjs.map +0 -1
  460. package/dist/chunk-JCVSYVPD.mjs +0 -24
  461. package/dist/chunk-JCVSYVPD.mjs.map +0 -1
  462. package/dist/chunk-JL3URCHO.mjs +0 -53
  463. package/dist/chunk-JL3URCHO.mjs.map +0 -1
  464. package/dist/chunk-K26BOY6Z.mjs +0 -51
  465. package/dist/chunk-K26BOY6Z.mjs.map +0 -1
  466. package/dist/chunk-KLOPX6DO.js +0 -51
  467. package/dist/chunk-KLOPX6DO.js.map +0 -1
  468. package/dist/chunk-KWHAT6UJ.mjs +0 -22
  469. package/dist/chunk-KWHAT6UJ.mjs.map +0 -1
  470. package/dist/chunk-L72RLBV5.mjs +0 -37
  471. package/dist/chunk-L72RLBV5.mjs.map +0 -1
  472. package/dist/chunk-MECBOP7G.js +0 -35
  473. package/dist/chunk-MECBOP7G.js.map +0 -1
  474. package/dist/chunk-MR44GPM3.mjs +0 -135
  475. package/dist/chunk-MR44GPM3.mjs.map +0 -1
  476. package/dist/chunk-MR5TAGOG.mjs +0 -54
  477. package/dist/chunk-MR5TAGOG.mjs.map +0 -1
  478. package/dist/chunk-MUYXNION.js +0 -30
  479. package/dist/chunk-MUYXNION.js.map +0 -1
  480. package/dist/chunk-MXOKUCLH.js +0 -347
  481. package/dist/chunk-MXOKUCLH.js.map +0 -1
  482. package/dist/chunk-NGS23BTR.js +0 -13
  483. package/dist/chunk-NGS23BTR.js.map +0 -1
  484. package/dist/chunk-NOBUMOYX.mjs +0 -61
  485. package/dist/chunk-NOBUMOYX.mjs.map +0 -1
  486. package/dist/chunk-NR4OJOGX.mjs +0 -370
  487. package/dist/chunk-NR4OJOGX.mjs.map +0 -1
  488. package/dist/chunk-OIFTFHZ4.mjs +0 -30
  489. package/dist/chunk-OIFTFHZ4.mjs.map +0 -1
  490. package/dist/chunk-PDYQXXLP.js +0 -30
  491. package/dist/chunk-PDYQXXLP.js.map +0 -1
  492. package/dist/chunk-QAM2JJRA.mjs +0 -52
  493. package/dist/chunk-QAM2JJRA.mjs.map +0 -1
  494. package/dist/chunk-QHCKVO3P.js +0 -28
  495. package/dist/chunk-QHCKVO3P.js.map +0 -1
  496. package/dist/chunk-QMB2ZRWW.js +0 -16
  497. package/dist/chunk-QMB2ZRWW.js.map +0 -1
  498. package/dist/chunk-QMD3VO6R.mjs +0 -30
  499. package/dist/chunk-QMD3VO6R.mjs.map +0 -1
  500. package/dist/chunk-QRW2GKA3.mjs +0 -347
  501. package/dist/chunk-QRW2GKA3.mjs.map +0 -1
  502. package/dist/chunk-R77RJHC5.mjs +0 -44
  503. package/dist/chunk-R77RJHC5.mjs.map +0 -1
  504. package/dist/chunk-RANTKN66.js +0 -24
  505. package/dist/chunk-RANTKN66.js.map +0 -1
  506. package/dist/chunk-S7UP2YYF.js +0 -135
  507. package/dist/chunk-S7UP2YYF.js.map +0 -1
  508. package/dist/chunk-SQXMNT7M.js +0 -326
  509. package/dist/chunk-SQXMNT7M.js.map +0 -1
  510. package/dist/chunk-SYRWT2KT.mjs +0 -124
  511. package/dist/chunk-SYRWT2KT.mjs.map +0 -1
  512. package/dist/chunk-TDSL55B3.mjs +0 -10
  513. package/dist/chunk-TDSL55B3.mjs.map +0 -1
  514. package/dist/chunk-TJ2F3J6X.js +0 -31
  515. package/dist/chunk-TJ2F3J6X.js.map +0 -1
  516. package/dist/chunk-U4VFMIGO.js +0 -24
  517. package/dist/chunk-U4VFMIGO.js.map +0 -1
  518. package/dist/chunk-V6SYDSWM.mjs +0 -326
  519. package/dist/chunk-V6SYDSWM.mjs.map +0 -1
  520. package/dist/chunk-VXOV3ZCB.js +0 -1
  521. package/dist/chunk-VXOV3ZCB.js.map +0 -1
  522. package/dist/chunk-X3D3MHWF.js +0 -44
  523. package/dist/chunk-X3D3MHWF.js.map +0 -1
  524. package/dist/chunk-X7TESUC7.mjs +0 -22
  525. package/dist/chunk-X7TESUC7.mjs.map +0 -1
  526. package/dist/chunk-XGWLFH7Y.js +0 -41
  527. package/dist/chunk-XGWLFH7Y.js.map +0 -1
  528. package/dist/chunk-YCOC4VEP.js +0 -346
  529. package/dist/chunk-YCOC4VEP.js.map +0 -1
  530. package/dist/chunk-YCYGKEXF.mjs +0 -41
  531. package/dist/chunk-YCYGKEXF.mjs.map +0 -1
  532. package/dist/chunk-YGEAZQSC.js +0 -124
  533. package/dist/chunk-YGEAZQSC.js.map +0 -1
  534. package/dist/chunk-YQ2E7NEA.js +0 -64
  535. package/dist/chunk-YQ2E7NEA.js.map +0 -1
  536. package/dist/chunk-ZAW4ZWQX.mjs +0 -31
  537. package/dist/chunk-ZAW4ZWQX.mjs.map +0 -1
  538. package/dist/chunk-ZVUF6JDJ.js +0 -55
  539. package/dist/chunk-ZVUF6JDJ.js.map +0 -1
  540. package/dist/cli.js +0 -21
  541. package/dist/cli.js.map +0 -1
  542. package/dist/commands/build/build.js +0 -29
  543. package/dist/commands/build/build.js.map +0 -1
  544. package/dist/commands/build/implementation.js +0 -28
  545. package/dist/commands/build/implementation.js.map +0 -1
  546. package/dist/commands/build/index.js +0 -33
  547. package/dist/commands/build/index.js.map +0 -1
  548. package/dist/commands/eval/eval.js +0 -18
  549. package/dist/commands/eval/eval.js.map +0 -1
  550. package/dist/commands/eval/implementation.js +0 -9
  551. package/dist/commands/eval/implementation.js.map +0 -1
  552. package/dist/commands/eval/index.js +0 -22
  553. package/dist/commands/eval/index.js.map +0 -1
  554. package/dist/commands/index.js +0 -39
  555. package/dist/commands/index.js.map +0 -1
  556. package/dist/commands/manifest/implementation.js +0 -17
  557. package/dist/commands/manifest/implementation.js.map +0 -1
  558. package/dist/commands/manifest/index.js +0 -22
  559. package/dist/commands/manifest/index.js.map +0 -1
  560. package/dist/commands/manifest/manifest.js +0 -18
  561. package/dist/commands/manifest/manifest.js.map +0 -1
  562. package/dist/commands/serve/index.js +0 -29
  563. package/dist/commands/serve/index.js.map +0 -1
  564. package/dist/commands/serve/serve.js +0 -28
  565. package/dist/commands/serve/serve.js.map +0 -1
  566. package/dist/commands/watch/implementation.js +0 -28
  567. package/dist/commands/watch/implementation.js.map +0 -1
  568. package/dist/commands/watch/index.js +0 -33
  569. package/dist/commands/watch/index.js.map +0 -1
  570. package/dist/commands/watch/watch.js +0 -29
  571. package/dist/commands/watch/watch.js.map +0 -1
  572. package/dist/config.js +0 -36
  573. package/dist/config.js.map +0 -1
  574. package/dist/errors.js +0 -12
  575. package/dist/errors.js.map +0 -1
  576. package/dist/index.js +0 -45
  577. package/dist/index.js.map +0 -1
  578. package/dist/main.js +0 -50
  579. package/dist/main.js.map +0 -1
  580. package/dist/structs.js +0 -8
  581. package/dist/structs.js.map +0 -1
  582. package/dist/tsconfig.build.tsbuildinfo +0 -1
  583. package/dist/types/__fixtures__/configs/cjs.d.ts +0 -1
  584. package/dist/types/__fixtures__/configs/esm.d.ts +0 -3
  585. package/dist/types/__fixtures__/configs/invalid.d.ts +0 -3
  586. package/dist/types/__fixtures__/configs/javascript/snap.config.d.ts +0 -0
  587. package/dist/types/__fixtures__/configs/typescript/snap.config.d.ts +0 -3
  588. package/dist/types/commands/eval/__test__/browserify/bad/snap.config.d.ts +0 -3
  589. package/dist/types/commands/eval/__test__/browserify/good/snap.config.d.ts +0 -3
  590. package/dist/types/commands/eval/__test__/webpack/bad/snap.config.d.ts +0 -3
  591. package/dist/types/commands/eval/__test__/webpack/good/snap.config.d.ts +0 -3
  592. package/dist/types/commands/eval/__test__/webpack/snap.config.d.ts +0 -3
  593. package/dist/types/commands/watch/index.d.ts +0 -10
  594. package/dist/types/index.d.ts +0 -5
  595. package/dist/types/main.d.ts +0 -2
  596. package/dist/types/utils/index.d.ts +0 -6
  597. package/dist/types/webpack/index.d.ts +0 -4
  598. package/dist/types/webpack/loaders/index.d.ts +0 -3
  599. package/dist/types/yargs.d.js +0 -1
  600. package/dist/types/yargs.d.js.map +0 -1
  601. package/dist/types/yargs.d.mjs +0 -1
  602. package/dist/types/yargs.d.mjs.map +0 -1
  603. package/dist/utils/cli.js +0 -14
  604. package/dist/utils/cli.js.map +0 -1
  605. package/dist/utils/errors.js +0 -11
  606. package/dist/utils/errors.js.map +0 -1
  607. package/dist/utils/index.js +0 -47
  608. package/dist/utils/index.js.map +0 -1
  609. package/dist/utils/legacy.js +0 -13
  610. package/dist/utils/legacy.js.map +0 -1
  611. package/dist/utils/logging.js +0 -12
  612. package/dist/utils/logging.js.map +0 -1
  613. package/dist/utils/path.js +0 -8
  614. package/dist/utils/path.js.map +0 -1
  615. package/dist/utils/steps.js +0 -11
  616. package/dist/utils/steps.js.map +0 -1
  617. package/dist/webpack/compiler.js +0 -25
  618. package/dist/webpack/compiler.js.map +0 -1
  619. package/dist/webpack/config.js +0 -24
  620. package/dist/webpack/config.js.map +0 -1
  621. package/dist/webpack/index.js +0 -44
  622. package/dist/webpack/index.js.map +0 -1
  623. package/dist/webpack/loaders/browserify.js +0 -19
  624. package/dist/webpack/loaders/browserify.js.map +0 -1
  625. package/dist/webpack/loaders/function.js +0 -10
  626. package/dist/webpack/loaders/function.js.map +0 -1
  627. package/dist/webpack/loaders/index.js +0 -25
  628. package/dist/webpack/loaders/index.js.map +0 -1
  629. package/dist/webpack/loaders/wasm.js +0 -16
  630. package/dist/webpack/loaders/wasm.js.map +0 -1
  631. package/dist/webpack/plugins.js +0 -29
  632. package/dist/webpack/plugins.js.map +0 -1
  633. package/dist/webpack/server.js +0 -10
  634. package/dist/webpack/server.js.map +0 -1
  635. package/dist/webpack/utils.js +0 -39
  636. package/dist/webpack/utils.js.map +0 -1
@@ -1,346 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkMUYXNIONjs = require('./chunk-MUYXNION.js');
4
-
5
-
6
-
7
- var _chunkSQXMNT7Mjs = require('./chunk-SQXMNT7M.js');
8
-
9
-
10
- var _chunkB3NNVTA6js = require('./chunk-B3NNVTA6.js');
11
-
12
-
13
-
14
-
15
- var _chunkTJ2F3J6Xjs = require('./chunk-TJ2F3J6X.js');
16
-
17
-
18
-
19
-
20
-
21
- var _chunkX3D3MHWFjs = require('./chunk-X3D3MHWF.js');
22
-
23
- // src/webpack/plugins.ts
24
- var _utils = require('@metamask/utils');
25
- var _chalk = require('chalk');
26
- var _module = require('module');
27
- var _webpack = require('webpack');
28
- var _spinner, _getStatsErrorMessage, getStatsErrorMessage_fn;
29
- var SnapsStatsPlugin = class {
30
- constructor(options = {
31
- verbose: false
32
- }, spinner) {
33
- /**
34
- * Get the error message for the given stats error.
35
- *
36
- * @param statsError - The stats error.
37
- * @param color - The color to use for the error message.
38
- * @returns The error message.
39
- */
40
- _chunkX3D3MHWFjs.__privateAdd.call(void 0, this, _getStatsErrorMessage);
41
- /**
42
- * The spinner to use for logging.
43
- */
44
- _chunkX3D3MHWFjs.__privateAdd.call(void 0, this, _spinner, void 0);
45
- this.options = options;
46
- _chunkX3D3MHWFjs.__privateSet.call(void 0, this, _spinner, spinner);
47
- }
48
- /**
49
- * Apply the plugin to the Webpack compiler.
50
- *
51
- * @param compiler - The Webpack compiler.
52
- */
53
- apply(compiler) {
54
- compiler.hooks.afterDone.tap(this.constructor.name, (stats) => {
55
- if (!stats) {
56
- return;
57
- }
58
- const { modules, time, errors, warnings } = stats.toJson();
59
- _utils.assert.call(void 0, modules, "Modules must be defined in stats.");
60
- _utils.assert.call(void 0, time, "Time must be defined in stats.");
61
- if (errors?.length) {
62
- const formattedErrors = errors.map((statsError) => _chunkX3D3MHWFjs.__privateMethod.call(void 0, this, _getStatsErrorMessage, getStatsErrorMessage_fn).call(this, statsError)).join("\n\n");
63
- _chunkTJ2F3J6Xjs.error.call(void 0,
64
- `Compiled ${modules.length} ${_chunkSQXMNT7Mjs.pluralize.call(void 0,
65
- modules.length,
66
- "file"
67
- )} in ${time}ms with ${errors.length} ${_chunkSQXMNT7Mjs.pluralize.call(void 0,
68
- errors.length,
69
- "error"
70
- )}.
71
-
72
- ${formattedErrors}
73
- `,
74
- _chunkX3D3MHWFjs.__privateGet.call(void 0, this, _spinner)
75
- );
76
- _chunkX3D3MHWFjs.__privateGet.call(void 0, this, _spinner)?.stop();
77
- process.exitCode = 1;
78
- return;
79
- }
80
- if (warnings?.length) {
81
- const formattedWarnings = warnings.map(
82
- (statsWarning) => _chunkX3D3MHWFjs.__privateMethod.call(void 0, this, _getStatsErrorMessage, getStatsErrorMessage_fn).call(this, statsWarning, _chalk.yellow)
83
- ).join("\n\n");
84
- _chunkTJ2F3J6Xjs.warn.call(void 0,
85
- `Compiled ${modules.length} ${_chunkSQXMNT7Mjs.pluralize.call(void 0,
86
- modules.length,
87
- "file"
88
- )} in ${time}ms with ${warnings.length} ${_chunkSQXMNT7Mjs.pluralize.call(void 0,
89
- warnings.length,
90
- "warning"
91
- )}.
92
-
93
- ${formattedWarnings}
94
- `,
95
- _chunkX3D3MHWFjs.__privateGet.call(void 0, this, _spinner)
96
- );
97
- } else {
98
- _chunkTJ2F3J6Xjs.info.call(void 0,
99
- `Compiled ${modules.length} ${_chunkSQXMNT7Mjs.pluralize.call(void 0,
100
- modules.length,
101
- "file"
102
- )} in ${time}ms.`,
103
- _chunkX3D3MHWFjs.__privateGet.call(void 0, this, _spinner)
104
- );
105
- }
106
- if (compiler.watchMode) {
107
- _chunkX3D3MHWFjs.__privateGet.call(void 0, this, _spinner)?.succeed("Done!");
108
- }
109
- });
110
- }
111
- };
112
- _spinner = new WeakMap();
113
- _getStatsErrorMessage = new WeakSet();
114
- getStatsErrorMessage_fn = function(statsError, color = _chalk.red) {
115
- const baseMessage = this.options.verbose ? _chunkB3NNVTA6js.getErrorMessage.call(void 0, statsError) : statsError.message;
116
- const [first, ...rest] = baseMessage.split("\n");
117
- return [
118
- color(_chunkSQXMNT7Mjs.formatText.call(void 0, `\u2022 ${first}`, 4, 2)),
119
- ...rest.map((message) => _chunkSQXMNT7Mjs.formatText.call(void 0, color(message), 4)),
120
- statsError.details && `
121
- ${_chunkSQXMNT7Mjs.formatText.call(void 0, _chalk.dim.call(void 0, statsError.details), 6)}`
122
- ].filter(Boolean).join("\n");
123
- };
124
- var _spinner2, _safeEvaluate, safeEvaluate_fn;
125
- var SnapsWatchPlugin = class {
126
- constructor(options, spinner) {
127
- /**
128
- * Safely evaluate the bundle at the given path. If an error occurs, it will
129
- * be logged to the console, rather than throwing an error.
130
- *
131
- * This function should never throw an error.
132
- *
133
- * @param bundlePath - The path to the bundle.
134
- */
135
- _chunkX3D3MHWFjs.__privateAdd.call(void 0, this, _safeEvaluate);
136
- /**
137
- * The spinner to use for logging.
138
- */
139
- _chunkX3D3MHWFjs.__privateAdd.call(void 0, this, _spinner2, void 0);
140
- this.options = options;
141
- _chunkX3D3MHWFjs.__privateSet.call(void 0, this, _spinner2, spinner);
142
- }
143
- /**
144
- * Apply the plugin to the Webpack compiler.
145
- *
146
- * @param compiler - The Webpack compiler.
147
- */
148
- apply(compiler) {
149
- compiler.hooks.invalid.tap(this.constructor.name, (file) => {
150
- _chunkX3D3MHWFjs.__privateGet.call(void 0, this, _spinner2)?.start();
151
- _chunkTJ2F3J6Xjs.info.call(void 0, `Changes detected in ${_chalk.yellow.call(void 0, file)}, recompiling.`, _chunkX3D3MHWFjs.__privateGet.call(void 0, this, _spinner2));
152
- });
153
- compiler.hooks.afterEmit.tapPromise(
154
- this.constructor.name,
155
- async ({ fileDependencies }) => {
156
- this.options.files?.forEach(
157
- fileDependencies.add.bind(fileDependencies)
158
- );
159
- if (this.options.bundle && this.options.evaluate) {
160
- await _chunkX3D3MHWFjs.__privateMethod.call(void 0, this, _safeEvaluate, safeEvaluate_fn).call(this, this.options.bundle);
161
- }
162
- }
163
- );
164
- }
165
- };
166
- _spinner2 = new WeakMap();
167
- _safeEvaluate = new WeakSet();
168
- safeEvaluate_fn = async function(bundlePath) {
169
- try {
170
- await _chunkMUYXNIONjs.evaluate.call(void 0, bundlePath);
171
- _chunkTJ2F3J6Xjs.info.call(void 0, `Snap bundle evaluated successfully.`, _chunkX3D3MHWFjs.__privateGet.call(void 0, this, _spinner2));
172
- } catch (evaluateError) {
173
- _chunkTJ2F3J6Xjs.error.call(void 0, evaluateError.message, _chunkX3D3MHWFjs.__privateGet.call(void 0, this, _spinner2));
174
- }
175
- };
176
- var _source, _spinner3;
177
- var SnapsBuiltInResolver = class {
178
- constructor(options = {
179
- ignore: []
180
- }, spinner) {
181
- /**
182
- * The built-in modules that have been imported, but not resolved.
183
- */
184
- this.unresolvedModules = /* @__PURE__ */ new Set();
185
- /**
186
- * The name of the resolver hook to tap into.
187
- */
188
- _chunkX3D3MHWFjs.__privateAdd.call(void 0, this, _source, "described-resolve");
189
- /**
190
- * The spinner to use for logging.
191
- */
192
- _chunkX3D3MHWFjs.__privateAdd.call(void 0, this, _spinner3, void 0);
193
- this.options = options;
194
- _chunkX3D3MHWFjs.__privateSet.call(void 0, this, _spinner3, spinner);
195
- }
196
- /**
197
- * Apply the plugin to the Webpack resolver.
198
- *
199
- * @param resolver - The Webpack resolver.
200
- */
201
- apply(resolver) {
202
- resolver.getHook(_chunkX3D3MHWFjs.__privateGet.call(void 0, this, _source)).tapAsync(
203
- this.constructor.name,
204
- ({ module: isModule, request }, _, callback) => {
205
- if (!isModule || !request) {
206
- return callback();
207
- }
208
- const baseRequest = request.split("/")[0];
209
- if (_module.isBuiltin.call(void 0, baseRequest) && !this.options.ignore?.includes(baseRequest)) {
210
- const fallback = resolver.options.fallback.find(
211
- ({ name }) => name === baseRequest
212
- );
213
- if (fallback && !fallback.alias) {
214
- this.unresolvedModules.add(baseRequest);
215
- }
216
- }
217
- return callback();
218
- }
219
- );
220
- }
221
- };
222
- _source = new WeakMap();
223
- _spinner3 = new WeakMap();
224
- var _checkBuiltIns, checkBuiltIns_fn, _isProvidePlugin, isProvidePlugin_fn, _checkBuffer, checkBuffer_fn;
225
- var SnapsBundleWarningsPlugin = class {
226
- constructor(options = {
227
- buffer: true,
228
- builtIns: true
229
- }) {
230
- /**
231
- * Check if a built-in module is used, but not provided by Webpack's
232
- * `fallback` configuration.
233
- *
234
- * @param compiler - The Webpack compiler.
235
- */
236
- _chunkX3D3MHWFjs.__privateAdd.call(void 0, this, _checkBuiltIns);
237
- /**
238
- * Check if the given instance is a `ProvidePlugin`. This is not guaranteed to
239
- * be accurate, but it's good enough for our purposes. If we were to use
240
- * `instanceof` instead, it might not work if multiple versions of Webpack are
241
- * installed.
242
- *
243
- * @param instance - The instance to check.
244
- * @returns Whether the instance is a `ProvidePlugin`, i.e., whether it's an
245
- * object with the name `ProvidePlugin` and a `definitions` property.
246
- */
247
- _chunkX3D3MHWFjs.__privateAdd.call(void 0, this, _isProvidePlugin);
248
- /**
249
- * Check if the `Buffer` global is used, but not provided by Webpack's
250
- * `DefinePlugin`.
251
- *
252
- * @param compiler - The Webpack compiler.
253
- */
254
- _chunkX3D3MHWFjs.__privateAdd.call(void 0, this, _checkBuffer);
255
- this.options = options;
256
- }
257
- /**
258
- * Apply the plugin to the Webpack compiler.
259
- *
260
- * @param compiler - The Webpack compiler.
261
- */
262
- apply(compiler) {
263
- if (this.options.builtIns) {
264
- _chunkX3D3MHWFjs.__privateMethod.call(void 0, this, _checkBuiltIns, checkBuiltIns_fn).call(this, compiler);
265
- }
266
- if (this.options.buffer) {
267
- _chunkX3D3MHWFjs.__privateMethod.call(void 0, this, _checkBuffer, checkBuffer_fn).call(this, compiler);
268
- }
269
- }
270
- };
271
- _checkBuiltIns = new WeakSet();
272
- checkBuiltIns_fn = function(compiler) {
273
- compiler.hooks.afterCompile.tap(this.constructor.name, (compilation) => {
274
- if (!this.options.builtInResolver) {
275
- return;
276
- }
277
- const { unresolvedModules } = this.options.builtInResolver;
278
- if (unresolvedModules.size === 0) {
279
- return;
280
- }
281
- const formattedModules = new Array(...unresolvedModules).map((name) => `\u2022 ${name}`).join("\n");
282
- const webpackError = new (0, _webpack.WebpackError)(
283
- `The snap attempted to use one or more Node.js builtins, but no browser fallback has been provided. The MetaMask Snaps CLI does not support Node.js builtins by default. If you want to use this module, you must set ${_chalk.bold.call(void 0,
284
- "`polyfills`"
285
- )} to ${_chalk.bold.call(void 0,
286
- "`true`"
287
- )} or an object with the builtins to polyfill as the key and ${_chalk.bold.call(void 0,
288
- "`true`"
289
- )} as the value. To disable this warning, set ${_chalk.bold.call(void 0,
290
- "`stats.builtIns`"
291
- )} to ${_chalk.bold.call(void 0,
292
- "`false`"
293
- )} in your snap config file, or add the module to the ${_chalk.bold.call(void 0,
294
- "`stats.builtIns.ignore`"
295
- )} array.`
296
- );
297
- webpackError.details = formattedModules;
298
- compilation.warnings.push(webpackError);
299
- });
300
- };
301
- _isProvidePlugin = new WeakSet();
302
- isProvidePlugin_fn = function(instance) {
303
- return _utils.isObject.call(void 0, instance) && instance.constructor.name === "ProvidePlugin" && _utils.hasProperty.call(void 0, instance, "definitions");
304
- };
305
- _checkBuffer = new WeakSet();
306
- checkBuffer_fn = function(compiler) {
307
- const plugin = compiler.options.plugins?.find(
308
- (instance) => _chunkX3D3MHWFjs.__privateMethod.call(void 0, this, _isProvidePlugin, isProvidePlugin_fn).call(this, instance)
309
- );
310
- if (plugin) {
311
- const { definitions } = plugin;
312
- if (definitions.Buffer) {
313
- return;
314
- }
315
- }
316
- compiler.hooks.compilation.tap(this.constructor.name, (compilation) => {
317
- compilation.hooks.afterProcessAssets.tap(
318
- this.constructor.name,
319
- (assets) => {
320
- const bufferAssets = Object.entries(assets).filter(([name]) => name.endsWith(".js")).filter(([, asset]) => asset.source().includes("Buffer"));
321
- if (bufferAssets.length === 0) {
322
- return;
323
- }
324
- compilation.warnings.push(
325
- new (0, _webpack.WebpackError)(
326
- `The snap attempted to use the Node.js Buffer global, which is not supported in the MetaMask Snaps CLI by default. To use the Buffer global, you must polyfill Buffer by setting ${_chalk.bold.call(void 0,
327
- "`buffer`"
328
- )} to ${_chalk.bold.call(void 0, "`true`")} in the ${_chalk.bold.call(void 0,
329
- "`polyfills`"
330
- )} config object in your snap config. To disable this warning, set ${_chalk.bold.call(void 0,
331
- "`stats.buffer`"
332
- )} to ${_chalk.bold.call(void 0, "`false`")} in your snap config file.`
333
- )
334
- );
335
- }
336
- );
337
- });
338
- };
339
-
340
-
341
-
342
-
343
-
344
-
345
- exports.SnapsStatsPlugin = SnapsStatsPlugin; exports.SnapsWatchPlugin = SnapsWatchPlugin; exports.SnapsBuiltInResolver = SnapsBuiltInResolver; exports.SnapsBundleWarningsPlugin = SnapsBundleWarningsPlugin;
346
- //# sourceMappingURL=chunk-YCOC4VEP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/webpack/plugins.ts"],"names":["_spinner"],"mappings":"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","sourcesContent":["import { assert, hasProperty, isObject } from '@metamask/utils';\nimport { bold, dim, red, yellow } from 'chalk';\nimport { isBuiltin } from 'module';\nimport type { Ora } from 'ora';\nimport type {\n Compiler,\n ProvidePlugin,\n ResolvePluginInstance,\n Resolver,\n StatsError,\n WebpackPluginInstance,\n} from 'webpack';\nimport { WebpackError } from 'webpack';\n\nimport { evaluate } from '../commands/eval';\nimport { error, getErrorMessage, info, warn } from '../utils';\nimport { formatText, pluralize } from './utils';\n\nexport type SnapsStatsPluginOptions = {\n /**\n * Whether to log the verbose stats.\n */\n verbose?: boolean;\n};\n\n/**\n * A plugin that logs the stats after compilation. This is useful for logging\n * the number of files compiled, and the time taken to compile them.\n */\nexport class SnapsStatsPlugin implements WebpackPluginInstance {\n /**\n * The options for the plugin.\n */\n readonly options: SnapsStatsPluginOptions;\n\n /**\n * The spinner to use for logging.\n */\n readonly #spinner?: Ora;\n\n constructor(\n options: SnapsStatsPluginOptions = {\n verbose: false,\n },\n spinner?: Ora,\n ) {\n this.options = options;\n this.#spinner = spinner;\n }\n\n /**\n * Apply the plugin to the Webpack compiler.\n *\n * @param compiler - The Webpack compiler.\n */\n apply(compiler: Compiler) {\n compiler.hooks.afterDone.tap(this.constructor.name, (stats) => {\n if (!stats) {\n return;\n }\n\n const { modules, time, errors, warnings } = stats.toJson();\n\n assert(modules, 'Modules must be defined in stats.');\n assert(time, 'Time must be defined in stats.');\n\n if (errors?.length) {\n const formattedErrors = errors\n .map((statsError) => this.#getStatsErrorMessage(statsError))\n .join('\\n\\n');\n\n error(\n `Compiled ${modules.length} ${pluralize(\n modules.length,\n 'file',\n )} in ${time}ms with ${errors.length} ${pluralize(\n errors.length,\n 'error',\n )}.\\n\\n${formattedErrors}\\n`,\n this.#spinner,\n );\n\n this.#spinner?.stop();\n\n process.exitCode = 1;\n return;\n }\n\n if (warnings?.length) {\n const formattedWarnings = warnings\n .map((statsWarning) =>\n this.#getStatsErrorMessage(statsWarning, yellow),\n )\n .join('\\n\\n');\n\n warn(\n `Compiled ${modules.length} ${pluralize(\n modules.length,\n 'file',\n )} in ${time}ms with ${warnings.length} ${pluralize(\n warnings.length,\n 'warning',\n )}.\\n\\n${formattedWarnings}\\n`,\n this.#spinner,\n );\n } else {\n info(\n `Compiled ${modules.length} ${pluralize(\n modules.length,\n 'file',\n )} in ${time}ms.`,\n this.#spinner,\n );\n }\n\n if (compiler.watchMode) {\n // The spinner may be restarted by the watch plugin, outside of the\n // `executeSteps` flow, so we stop it here just in case.\n this.#spinner?.succeed('Done!');\n }\n });\n }\n\n /**\n * Get the error message for the given stats error.\n *\n * @param statsError - The stats error.\n * @param color - The color to use for the error message.\n * @returns The error message.\n */\n #getStatsErrorMessage(statsError: StatsError, color = red) {\n const baseMessage = this.options.verbose\n ? getErrorMessage(statsError)\n : statsError.message;\n\n const [first, ...rest] = baseMessage.split('\\n');\n\n return [\n color(formatText(`• ${first}`, 4, 2)),\n ...rest.map((message) => formatText(color(message), 4)),\n statsError.details && `\\n${formatText(dim(statsError.details), 6)}`,\n ]\n .filter(Boolean)\n .join('\\n');\n }\n}\n\n/**\n * The options for the {@link SnapsWatchPlugin}.\n */\nexport type SnapsWatchPluginOptions = {\n /**\n * The bundle path. This is the file that will be evaluated, if the `evaluate`\n * option is set.\n */\n bundle?: string;\n\n /**\n * Whether to evaluate the bundle. This only applies if the `bundle` option is\n * set.\n */\n evaluate?: boolean;\n\n /**\n * The extra files to watch.\n */\n files?: string[];\n};\n\n/**\n * A plugin that adds extra files to watch. This is useful for watching files\n * that are not imported by the entry point, such as the `snap.manifest.json`\n * file.\n */\nexport class SnapsWatchPlugin implements WebpackPluginInstance {\n /**\n * The options for the plugin.\n */\n readonly options: SnapsWatchPluginOptions;\n\n /**\n * The spinner to use for logging.\n */\n readonly #spinner?: Ora;\n\n constructor(options: SnapsWatchPluginOptions, spinner?: Ora) {\n this.options = options;\n this.#spinner = spinner;\n }\n\n /**\n * Apply the plugin to the Webpack compiler.\n *\n * @param compiler - The Webpack compiler.\n */\n apply(compiler: Compiler) {\n compiler.hooks.invalid.tap(this.constructor.name, (file) => {\n this.#spinner?.start();\n info(`Changes detected in ${yellow(file)}, recompiling.`, this.#spinner);\n });\n\n compiler.hooks.afterEmit.tapPromise(\n this.constructor.name,\n async ({ fileDependencies }) => {\n this.options.files?.forEach(\n fileDependencies.add.bind(fileDependencies),\n );\n\n if (this.options.bundle && this.options.evaluate) {\n await this.#safeEvaluate(this.options.bundle);\n }\n },\n );\n }\n\n /**\n * Safely evaluate the bundle at the given path. If an error occurs, it will\n * be logged to the console, rather than throwing an error.\n *\n * This function should never throw an error.\n *\n * @param bundlePath - The path to the bundle.\n */\n async #safeEvaluate(bundlePath: string) {\n try {\n await evaluate(bundlePath);\n info(`Snap bundle evaluated successfully.`, this.#spinner);\n } catch (evaluateError) {\n error(evaluateError.message, this.#spinner);\n }\n }\n}\n\n/**\n * The options for the {@link SnapsBuiltInResolver}.\n */\nexport type SnapsBuiltInResolverOptions = {\n /**\n * The built-in modules to ignore.\n */\n ignore?: string[];\n};\n\n/**\n * A plugin that logs a message when a built-in module is not resolved. The\n * MetaMask Snaps CLI does not support built-in modules by default, and this\n * plugin is used to warn the user when they try to import a built-in module,\n * when no fallback is configured.\n */\nexport class SnapsBuiltInResolver implements ResolvePluginInstance {\n /**\n * The built-in modules that have been imported, but not resolved.\n */\n readonly unresolvedModules = new Set<string>();\n\n /**\n * The name of the resolver hook to tap into.\n */\n readonly #source = 'described-resolve';\n\n /**\n * The options for the plugin.\n */\n readonly options: SnapsBuiltInResolverOptions;\n\n /**\n * The spinner to use for logging.\n */\n readonly #spinner?: Ora;\n\n constructor(\n options: SnapsBuiltInResolverOptions = {\n ignore: [],\n },\n spinner?: Ora,\n ) {\n this.options = options;\n this.#spinner = spinner;\n }\n\n /**\n * Apply the plugin to the Webpack resolver.\n *\n * @param resolver - The Webpack resolver.\n */\n apply(resolver: Resolver) {\n resolver\n .getHook(this.#source)\n .tapAsync(\n this.constructor.name,\n ({ module: isModule, request }, _, callback) => {\n if (!isModule || !request) {\n return callback();\n }\n\n const baseRequest = request.split('/')[0];\n if (\n isBuiltin(baseRequest) &&\n !this.options.ignore?.includes(baseRequest)\n ) {\n const fallback = resolver.options.fallback.find(\n ({ name }) => name === baseRequest,\n );\n\n if (fallback && !fallback.alias) {\n this.unresolvedModules.add(baseRequest);\n }\n }\n\n return callback();\n },\n );\n }\n}\n\n/**\n * The options for the {@link SnapsBundleWarningsPlugin}.\n */\nexport type SnapsBundleWarningsPluginOptions = {\n /**\n * The {@link SnapsBuiltInResolver} instance to use for detecting built-in\n * modules.\n */\n builtInResolver?: SnapsBuiltInResolver | false;\n\n /**\n * Whether to show warnings if built-in modules are used, but not provided by\n * Webpack's `fallback` configuration.\n */\n builtIns?: boolean;\n\n /**\n * Whether to show warnings if the `Buffer` global is used, but not provided\n * by Webpack's `DefinePlugin`.\n */\n buffer?: boolean;\n};\n\n/**\n * A plugin that logs a message when:\n *\n * - A built-in module is not resolved. The MetaMask Snaps CLI does not support\n * built-in modules by default, and this plugin is used to warn the user when\n * they try to import a built-in module, when no fallback is configured.\n * - A snap uses the `Buffer` global. The MetaMask Snaps CLI does not support\n * the `Buffer` global by default, and this plugin is used to warn the user when\n * they try to use the `Buffer` global.\n *\n * We use both a resolver and a plugin, because the resolver is used to detect\n * when a built-in module is imported, and the plugin is used to log a single\n * message when the compilation is complete. We can't do everything in a single\n * plugin, because the resolver doesn't have access to the compilation, and the\n * plugin doesn't have access to the resolver.\n */\n\nexport class SnapsBundleWarningsPlugin implements WebpackPluginInstance {\n /**\n * The options for the plugin.\n */\n readonly options: SnapsBundleWarningsPluginOptions;\n\n constructor(\n options: SnapsBundleWarningsPluginOptions = {\n buffer: true,\n builtIns: true,\n },\n ) {\n this.options = options;\n }\n\n /**\n * Apply the plugin to the Webpack compiler.\n *\n * @param compiler - The Webpack compiler.\n */\n apply(compiler: Compiler) {\n if (this.options.builtIns) {\n this.#checkBuiltIns(compiler);\n }\n\n if (this.options.buffer) {\n this.#checkBuffer(compiler);\n }\n }\n\n /**\n * Check if a built-in module is used, but not provided by Webpack's\n * `fallback` configuration.\n *\n * @param compiler - The Webpack compiler.\n */\n #checkBuiltIns(compiler: Compiler) {\n compiler.hooks.afterCompile.tap(this.constructor.name, (compilation) => {\n if (!this.options.builtInResolver) {\n return;\n }\n\n const { unresolvedModules } = this.options.builtInResolver;\n if (unresolvedModules.size === 0) {\n return;\n }\n\n const formattedModules = new Array(...unresolvedModules)\n .map((name) => `• ${name}`)\n .join('\\n');\n\n const webpackError = new WebpackError(\n `The snap attempted to use one or more Node.js builtins, but no browser fallback has been provided. The MetaMask Snaps CLI does not support Node.js builtins by default. If you want to use this module, you must set ${bold(\n '`polyfills`',\n )} to ${bold(\n '`true`',\n )} or an object with the builtins to polyfill as the key and ${bold(\n '`true`',\n )} as the value. To disable this warning, set ${bold(\n '`stats.builtIns`',\n )} to ${bold(\n '`false`',\n )} in your snap config file, or add the module to the ${bold(\n '`stats.builtIns.ignore`',\n )} array.`,\n );\n\n webpackError.details = formattedModules;\n compilation.warnings.push(webpackError);\n });\n }\n\n /**\n * Check if the given instance is a `ProvidePlugin`. This is not guaranteed to\n * be accurate, but it's good enough for our purposes. If we were to use\n * `instanceof` instead, it might not work if multiple versions of Webpack are\n * installed.\n *\n * @param instance - The instance to check.\n * @returns Whether the instance is a `ProvidePlugin`, i.e., whether it's an\n * object with the name `ProvidePlugin` and a `definitions` property.\n */\n #isProvidePlugin(instance: unknown): instance is ProvidePlugin {\n return (\n isObject(instance) &&\n instance.constructor.name === 'ProvidePlugin' &&\n hasProperty(instance, 'definitions')\n );\n }\n\n /**\n * Check if the `Buffer` global is used, but not provided by Webpack's\n * `DefinePlugin`.\n *\n * @param compiler - The Webpack compiler.\n */\n #checkBuffer(compiler: Compiler) {\n const plugin = compiler.options.plugins?.find((instance) =>\n this.#isProvidePlugin(instance),\n ) as ProvidePlugin | undefined;\n\n // If the `ProvidePlugin` is configured to provide `Buffer`, then we don't\n // need to warn the user.\n if (plugin) {\n const { definitions } = plugin;\n if (definitions.Buffer) {\n return;\n }\n }\n\n compiler.hooks.compilation.tap(this.constructor.name, (compilation) => {\n compilation.hooks.afterProcessAssets.tap(\n this.constructor.name,\n (assets) => {\n // Check if assets use `Buffer`.\n const bufferAssets = Object.entries(assets)\n .filter(([name]) => name.endsWith('.js'))\n .filter(([, asset]) => asset.source().includes('Buffer'));\n\n if (bufferAssets.length === 0) {\n return;\n }\n\n compilation.warnings.push(\n new WebpackError(\n `The snap attempted to use the Node.js Buffer global, which is not supported in the MetaMask Snaps CLI by default. To use the Buffer global, you must polyfill Buffer by setting ${bold(\n '`buffer`',\n )} to ${bold('`true`')} in the ${bold(\n '`polyfills`',\n )} config object in your snap config. To disable this warning, set ${bold(\n '`stats.buffer`',\n )} to ${bold('`false`')} in your snap config file.`,\n ),\n );\n },\n );\n });\n }\n}\n"]}
@@ -1,41 +0,0 @@
1
- import {
2
- getErrorMessage
3
- } from "./chunk-7RHK2YTB.mjs";
4
- import {
5
- error
6
- } from "./chunk-ZAW4ZWQX.mjs";
7
-
8
- // src/utils/steps.ts
9
- import { dim } from "chalk";
10
- import createSpinner from "ora";
11
- async function executeSteps(steps, context) {
12
- const spinner = createSpinner({
13
- // Ora writes to `process.stderr` by default.
14
- stream: process.stdout
15
- });
16
- spinner.start();
17
- try {
18
- for (const step of steps) {
19
- if (step.condition && !step.condition(context)) {
20
- continue;
21
- }
22
- spinner.start(dim(step.name));
23
- await step.task({
24
- ...context,
25
- spinner
26
- });
27
- }
28
- if (spinner.isSpinning) {
29
- spinner.succeed("Done!");
30
- }
31
- } catch (_error) {
32
- error(getErrorMessage(_error), spinner);
33
- spinner.stop();
34
- process.exitCode = 1;
35
- }
36
- }
37
-
38
- export {
39
- executeSteps
40
- };
41
- //# sourceMappingURL=chunk-YCYGKEXF.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/steps.ts"],"sourcesContent":["import { dim } from 'chalk';\nimport type { Ora } from 'ora';\nimport createSpinner from 'ora';\n\nimport { getErrorMessage } from './errors';\nimport { error } from './logging';\n\nexport type Step<Context extends Record<string, unknown>> = {\n name: string;\n condition?: (context: Context) => boolean;\n task: (context: Context & { spinner: Ora }) => Promise<void>;\n};\n\nexport type Steps<Context extends Record<string, unknown>> = Readonly<\n Step<Context>[]\n>;\n\n/**\n * Execute a list of steps in series. Each step receives the context object and\n * a spinner instance.\n *\n * @param steps - The steps to execute.\n * @param context - The context object that will be passed to each step.\n */\nexport async function executeSteps<Context extends Record<string, unknown>>(\n steps: Steps<Context>,\n context: Context,\n) {\n const spinner = createSpinner({\n // Ora writes to `process.stderr` by default.\n stream: process.stdout,\n });\n\n spinner.start();\n\n try {\n for (const step of steps) {\n // If the step has a condition, and it returns false, we skip the step.\n if (step.condition && !step.condition(context)) {\n continue;\n }\n\n // Calling `start` here instead of setting `spinner.text` seems to work\n // better when the process doesn't have a TTY.\n spinner.start(dim(step.name));\n\n await step.task({\n ...context,\n spinner,\n });\n }\n\n // The spinner may have been stopped by a step, so we only succeed if it's\n // still spinning.\n if (spinner.isSpinning) {\n spinner.succeed('Done!');\n }\n } catch (_error) {\n error(getErrorMessage(_error), spinner);\n spinner.stop();\n process.exitCode = 1;\n }\n}\n"],"mappings":";;;;;;;;AAAA,SAAS,WAAW;AAEpB,OAAO,mBAAmB;AAsB1B,eAAsB,aACpB,OACA,SACA;AACA,QAAM,UAAU,cAAc;AAAA;AAAA,IAE5B,QAAQ,QAAQ;AAAA,EAClB,CAAC;AAED,UAAQ,MAAM;AAEd,MAAI;AACF,eAAW,QAAQ,OAAO;AAExB,UAAI,KAAK,aAAa,CAAC,KAAK,UAAU,OAAO,GAAG;AAC9C;AAAA,MACF;AAIA,cAAQ,MAAM,IAAI,KAAK,IAAI,CAAC;AAE5B,YAAM,KAAK,KAAK;AAAA,QACd,GAAG;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAIA,QAAI,QAAQ,YAAY;AACtB,cAAQ,QAAQ,OAAO;AAAA,IACzB;AAAA,EACF,SAAS,QAAQ;AACf,UAAM,gBAAgB,MAAM,GAAG,OAAO;AACtC,YAAQ,KAAK;AACb,YAAQ,WAAW;AAAA,EACrB;AACF;","names":[]}
@@ -1,124 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/webpack/server.ts
2
-
3
-
4
-
5
-
6
- var _node = require('@metamask/snaps-utils/node');
7
- var _http = require('http');
8
- var _path = require('path');
9
- var _servehandler = require('serve-handler'); var _servehandler2 = _interopRequireDefault(_servehandler);
10
- function getRelativePath(from, to) {
11
- return _path.relative.call(void 0, from, to).split(_path.sep).join(_path.posix.sep);
12
- }
13
- function getAllowedPaths(config, manifest) {
14
- const auxiliaryFiles = manifest.source.files?.map(
15
- (file) => getRelativePath(
16
- config.server.root,
17
- _path.resolve.call(void 0, config.server.root, file)
18
- )
19
- ) ?? [];
20
- const localizationFiles = manifest.source.locales?.map(
21
- (localization) => getRelativePath(
22
- config.server.root,
23
- _path.resolve.call(void 0, config.server.root, localization)
24
- )
25
- ) ?? [];
26
- const otherFiles = manifest.source.location.npm.iconPath ? [
27
- getRelativePath(
28
- config.server.root,
29
- _path.resolve.call(void 0,
30
- config.server.root,
31
- manifest.source.location.npm.iconPath
32
- )
33
- )
34
- ] : [];
35
- return [
36
- getRelativePath(
37
- config.server.root,
38
- _path.resolve.call(void 0,
39
- config.server.root,
40
- config.output.path,
41
- config.output.filename
42
- )
43
- ),
44
- getRelativePath(
45
- config.server.root,
46
- _path.resolve.call(void 0, config.server.root, _node.NpmSnapFileNames.Manifest)
47
- ),
48
- ...auxiliaryFiles,
49
- ...localizationFiles,
50
- ...otherFiles
51
- ];
52
- }
53
- function getServer(config) {
54
- async function getResponse(request, response) {
55
- const manifestPath = _path.join.call(void 0, config.server.root, _node.NpmSnapFileNames.Manifest);
56
- const { result } = await _node.readJsonFile.call(void 0, manifestPath);
57
- const allowedPaths = getAllowedPaths(config, result);
58
- const path = request.url?.slice(1);
59
- const allowed = allowedPaths.some((allowedPath) => path === allowedPath);
60
- if (!allowed) {
61
- response.statusCode = 404;
62
- response.end();
63
- return;
64
- }
65
- await _servehandler2.default.call(void 0, request, response, {
66
- public: config.server.root,
67
- directoryListing: false,
68
- headers: [
69
- {
70
- source: "**/*",
71
- headers: [
72
- {
73
- key: "Cache-Control",
74
- value: "no-cache"
75
- },
76
- {
77
- key: "Access-Control-Allow-Origin",
78
- value: "*"
79
- }
80
- ]
81
- }
82
- ]
83
- });
84
- }
85
- const server = _http.createServer.call(void 0, (request, response) => {
86
- getResponse(request, response).catch(
87
- /* istanbul ignore next */
88
- (error) => {
89
- _node.logError.call(void 0, error);
90
- response.statusCode = 500;
91
- response.end();
92
- }
93
- );
94
- });
95
- const listen = async (port = config.server.port) => {
96
- return new Promise((resolve, reject) => {
97
- try {
98
- server.listen(port, () => {
99
- const close = async () => {
100
- await new Promise((resolveClose, rejectClose) => {
101
- server.close((closeError) => {
102
- if (closeError) {
103
- return rejectClose(closeError);
104
- }
105
- return resolveClose();
106
- });
107
- });
108
- };
109
- const address = server.address();
110
- resolve({ port: address.port, server, close });
111
- });
112
- } catch (listenError) {
113
- reject(listenError);
114
- }
115
- });
116
- };
117
- return { listen };
118
- }
119
-
120
-
121
-
122
-
123
- exports.getAllowedPaths = getAllowedPaths; exports.getServer = getServer;
124
- //# sourceMappingURL=chunk-YGEAZQSC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/webpack/server.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SnapManifest } from '@metamask/snaps-utils';\nimport {\n logError,\n NpmSnapFileNames,\n readJsonFile,\n} from '@metamask/snaps-utils/node';\nimport type { IncomingMessage, Server, ServerResponse } from 'http';\nimport { createServer } from 'http';\nimport type { AddressInfo } from 'net';\nimport { join, relative, resolve as resolvePath, sep, posix } from 'path';\nimport serveMiddleware from 'serve-handler';\n\nimport type { ProcessedConfig } from '../config';\n\n/**\n * Get the relative path from one path to another.\n *\n * Note: This is a modified version of `path.relative` that uses Posix\n * separators for URL-compatibility.\n *\n * @param from - The path to start from.\n * @param to - The path to end at.\n * @returns The relative path.\n */\nfunction getRelativePath(from: string, to: string) {\n return relative(from, to).split(sep).join(posix.sep);\n}\n\n/**\n * Get the allowed paths for the static server. This includes the output file,\n * the manifest file, and any auxiliary/localization files.\n *\n * @param config - The config object.\n * @param manifest - The Snap manifest object.\n * @returns An array of allowed paths.\n */\nexport function getAllowedPaths(\n config: ProcessedConfig,\n manifest: SnapManifest,\n) {\n const auxiliaryFiles =\n manifest.source.files?.map((file) =>\n getRelativePath(\n config.server.root,\n resolvePath(config.server.root, file),\n ),\n ) ?? [];\n\n const localizationFiles =\n manifest.source.locales?.map((localization) =>\n getRelativePath(\n config.server.root,\n resolvePath(config.server.root, localization),\n ),\n ) ?? [];\n\n const otherFiles = manifest.source.location.npm.iconPath\n ? [\n getRelativePath(\n config.server.root,\n resolvePath(\n config.server.root,\n manifest.source.location.npm.iconPath,\n ),\n ),\n ]\n : [];\n\n return [\n getRelativePath(\n config.server.root,\n resolvePath(\n config.server.root,\n config.output.path,\n config.output.filename,\n ),\n ),\n getRelativePath(\n config.server.root,\n resolvePath(config.server.root, NpmSnapFileNames.Manifest),\n ),\n ...auxiliaryFiles,\n ...localizationFiles,\n ...otherFiles,\n ];\n}\n\n/**\n * Get a static server for development purposes.\n *\n * Note: We're intentionally not using `webpack-dev-server` here because it\n * adds a lot of extra stuff to the output that we don't need, and it's\n * difficult to customize.\n *\n * @param config - The config object.\n * @returns An object with a `listen` method that returns a promise that\n * resolves when the server is listening.\n */\nexport function getServer(config: ProcessedConfig) {\n /**\n * Get the response for a request. This is extracted into a function so that\n * we can easily catch errors and send a 500 response.\n *\n * @param request - The request.\n * @param response - The response.\n * @returns A promise that resolves when the response is sent.\n */\n async function getResponse(\n request: IncomingMessage,\n response: ServerResponse,\n ) {\n const manifestPath = join(config.server.root, NpmSnapFileNames.Manifest);\n const { result } = await readJsonFile<SnapManifest>(manifestPath);\n const allowedPaths = getAllowedPaths(config, result);\n\n const path = request.url?.slice(1);\n const allowed = allowedPaths.some((allowedPath) => path === allowedPath);\n\n if (!allowed) {\n response.statusCode = 404;\n response.end();\n return;\n }\n\n await serveMiddleware(request, response, {\n public: config.server.root,\n directoryListing: false,\n headers: [\n {\n source: '**/*',\n headers: [\n {\n key: 'Cache-Control',\n value: 'no-cache',\n },\n {\n key: 'Access-Control-Allow-Origin',\n value: '*',\n },\n ],\n },\n ],\n });\n }\n\n const server = createServer((request, response) => {\n getResponse(request, response).catch(\n /* istanbul ignore next */\n (error) => {\n logError(error);\n response.statusCode = 500;\n response.end();\n },\n );\n });\n\n /**\n * Start the server on the port specified in the config.\n *\n * @param port - The port to listen on.\n * @returns A promise that resolves when the server is listening. The promise\n * resolves to an object with the port and the server instance. Note that if\n * the `config.server.port` is `0`, the OS will choose a random port for us,\n * so we need to get the port from the server after it starts.\n */\n const listen = async (port = config.server.port) => {\n return new Promise<{\n port: number;\n server: Server;\n close: () => Promise<void>;\n }>((resolve, reject) => {\n try {\n server.listen(port, () => {\n const close = async () => {\n await new Promise<void>((resolveClose, rejectClose) => {\n server.close((closeError) => {\n if (closeError) {\n return rejectClose(closeError);\n }\n\n return resolveClose();\n });\n });\n };\n\n const address = server.address() as AddressInfo;\n resolve({ port: address.port, server, close });\n });\n } catch (listenError) {\n reject(listenError);\n }\n });\n };\n\n return { listen };\n}\n"]}
@@ -1,64 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/webpack/loaders/wasm.ts
2
- var _utils = require('@metamask/utils');
3
- var _path = require('path');
4
- function getImports(importMap) {
5
- return Object.entries(importMap).map(
6
- ([moduleName, exportNames]) => `import { ${exportNames.join(", ")} } from ${JSON.stringify(
7
- moduleName
8
- )};`
9
- ).join("\n");
10
- }
11
- function getModuleImports(importMap) {
12
- return Object.entries(importMap).map(
13
- ([moduleName, exportNames]) => `${JSON.stringify(moduleName)}: { ${exportNames.join(", ")} },`
14
- ).join("\n");
15
- }
16
- function getExports(descriptors) {
17
- return descriptors.map((descriptor) => {
18
- if (descriptor.name === "default") {
19
- return `export default exports[${JSON.stringify(descriptor.name)}];`;
20
- }
21
- return `export const ${descriptor.name} = exports[${JSON.stringify(
22
- descriptor.name
23
- )}];`;
24
- }).join("\n");
25
- }
26
- var loader = async function loader2(source) {
27
- _utils.assert.call(void 0, source instanceof Uint8Array, "Expected source to be a Uint8Array.");
28
- const bytes = new Uint8Array(source);
29
- const wasmModule = await WebAssembly.compile(bytes);
30
- const exports = WebAssembly.Module.exports(wasmModule);
31
- const imports = WebAssembly.Module.imports(wasmModule).reduce((target, descriptor) => {
32
- var _a;
33
- target[_a = descriptor.module] ?? (target[_a] = []);
34
- target[descriptor.module].push(descriptor.name);
35
- return target;
36
- }, {});
37
- const path = _path.dirname.call(void 0, this.resourcePath);
38
- for (const name of Object.keys(imports)) {
39
- this.addDependency(_path.resolve.call(void 0, path, name));
40
- }
41
- return `
42
- ${getImports(imports)}
43
-
44
- const bytes = new Uint8Array(${JSON.stringify(Array.from(source))});
45
- const module = new WebAssembly.Module(bytes);
46
- const instance = new WebAssembly.Instance(module, {
47
- ${getModuleImports(imports)}
48
- });
49
-
50
- const exports = instance.exports;
51
- ${getExports(exports)}
52
- `;
53
- };
54
- var wasm_default = loader;
55
- var raw = true;
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
- exports.getImports = getImports; exports.getModuleImports = getModuleImports; exports.getExports = getExports; exports.wasm_default = wasm_default; exports.raw = raw;
64
- //# sourceMappingURL=chunk-YQ2E7NEA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/webpack/loaders/wasm.ts"],"names":["loader"],"mappings":";AAEA,SAAS,cAAc;AACvB,SAAS,SAAS,eAAe;AAU1B,SAAS,WAAW,WAAqC;AAC9D,SAAO,OAAO,QAAQ,SAAS,EAC5B;AAAA,IACC,CAAC,CAAC,YAAY,WAAW,MACvB,YAAY,YAAY,KAAK,IAAI,CAAC,WAAW,KAAK;AAAA,MAChD;AAAA,IACF,CAAC;AAAA,EACL,EACC,KAAK,IAAI;AACd;AASO,SAAS,iBAAiB,WAAqC;AACpE,SAAO,OAAO,QAAQ,SAAS,EAC5B;AAAA,IACC,CAAC,CAAC,YAAY,WAAW,MACvB,GAAG,KAAK,UAAU,UAAU,CAAC,OAAO,YAAY,KAAK,IAAI,CAAC;AAAA,EAC9D,EACC,KAAK,IAAI;AACd;AAUO,SAAS,WAAW,aAAmD;AAC5E,SAAO,YACJ,IAAI,CAAC,eAAe;AACnB,QAAI,WAAW,SAAS,WAAW;AACjC,aAAO,0BAA0B,KAAK,UAAU,WAAW,IAAI,CAAC;AAAA,IAClE;AAEA,WAAO,gBAAgB,WAAW,IAAI,cAAc,KAAK;AAAA,MACvD,WAAW;AAAA,IACb,CAAC;AAAA,EACH,CAAC,EACA,KAAK,IAAI;AACd;AAiBA,IAAM,SAAmC,eAAeA,QACtD,QACA;AACA,SAAO,kBAAkB,YAAY,qCAAqC;AAE1E,QAAM,QAAQ,IAAI,WAAW,MAAM;AACnC,QAAM,aAAa,MAAM,YAAY,QAAQ,KAAK;AAGlD,QAAM,UAAU,YAAY,OAAO,QAAQ,UAAU;AACrD,QAAM,UAAU,YAAY,OAAO,QAAQ,UAAU,EAAE,OAErD,CAAC,QAAQ,eAAe;AAzF5B;AA0FI,gBAAO,WAAW,YAAlB,aAA8B,CAAC;AAC/B,WAAO,WAAW,MAAM,EAAE,KAAK,WAAW,IAAI;AAE9C,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAIL,QAAM,OAAO,QAAQ,KAAK,YAAY;AACtC,aAAW,QAAQ,OAAO,KAAK,OAAO,GAAG;AACvC,SAAK,cAAc,QAAQ,MAAM,IAAI,CAAC;AAAA,EACxC;AAEA,SAAO;AAAA,MACH,WAAW,OAAO,CAAC;AAAA;AAAA,mCAEU,KAAK,UAAU,MAAM,KAAK,MAAM,CAAC,CAAC;AAAA;AAAA;AAAA,QAG7D,iBAAiB,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,MAI3B,WAAW,OAAO,CAAC;AAAA;AAEzB;AAEA,IAAO,eAAQ;AAKR,IAAM,MAAM","sourcesContent":["/* eslint-disable no-restricted-globals */\n\nimport { assert } from '@metamask/utils';\nimport { dirname, resolve } from 'path';\nimport type { LoaderDefinitionFunction } from 'webpack';\n\n/**\n * Get the imports code for the WASM module. This code imports each of the\n * imports from the WASM module.\n *\n * @param importMap - The import map for the WASM module.\n * @returns The imports code for the WASM module.\n */\nexport function getImports(importMap: Record<string, string[]>) {\n return Object.entries(importMap)\n .map(\n ([moduleName, exportNames]) =>\n `import { ${exportNames.join(', ')} } from ${JSON.stringify(\n moduleName,\n )};`,\n )\n .join('\\n');\n}\n\n/**\n * Get the imports code to use in `WebAssembly.Instance`. This code adds each of\n * the imports to the `imports` object.\n *\n * @param importMap - The import map for the WASM module.\n * @returns The imports code for the WASM module.\n */\nexport function getModuleImports(importMap: Record<string, string[]>) {\n return Object.entries(importMap)\n .map(\n ([moduleName, exportNames]) =>\n `${JSON.stringify(moduleName)}: { ${exportNames.join(', ')} },`,\n )\n .join('\\n');\n}\n\n/**\n * Get the exports code for the WASM module. This code exports each of the\n * exports from the WASM module as a variable. This function assumes that the\n * exports are available in a variable named `exports`.\n *\n * @param descriptors - The export descriptors from the WASM module.\n * @returns The exports code for the WASM module.\n */\nexport function getExports(descriptors: WebAssembly.ModuleExportDescriptor[]) {\n return descriptors\n .map((descriptor) => {\n if (descriptor.name === 'default') {\n return `export default exports[${JSON.stringify(descriptor.name)}];`;\n }\n\n return `export const ${descriptor.name} = exports[${JSON.stringify(\n descriptor.name,\n )}];`;\n })\n .join('\\n');\n}\n\n/**\n * A Webpack loader that synchronously loads the WASM module. This makes it\n * possible to import the WASM module directly.\n *\n * @param source - The WASM module as `Uint8Array`.\n * @returns The WASM module as a JavaScript string.\n * @example\n * ```ts\n * import * as wasm from './program.wasm';\n *\n * // Do something with the WASM module...\n * ```\n */\n// Note: This function needs to be defined like this, so that Webpack can bind\n// `this` to the loader context, and TypeScript can infer the type of `this`.\nconst loader: LoaderDefinitionFunction = async function loader(\n source: unknown,\n) {\n assert(source instanceof Uint8Array, 'Expected source to be a Uint8Array.');\n\n const bytes = new Uint8Array(source);\n const wasmModule = await WebAssembly.compile(bytes);\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const exports = WebAssembly.Module.exports(wasmModule);\n const imports = WebAssembly.Module.imports(wasmModule).reduce<\n Record<string, string[]>\n >((target, descriptor) => {\n target[descriptor.module] ??= [];\n target[descriptor.module].push(descriptor.name);\n\n return target;\n }, {});\n\n // Add the WASM import as a dependency so that Webpack will watch it for\n // changes.\n const path = dirname(this.resourcePath);\n for (const name of Object.keys(imports)) {\n this.addDependency(resolve(path, name));\n }\n\n return `\n ${getImports(imports)}\n\n const bytes = new Uint8Array(${JSON.stringify(Array.from(source))});\n const module = new WebAssembly.Module(bytes);\n const instance = new WebAssembly.Instance(module, {\n ${getModuleImports(imports)}\n });\n\n const exports = instance.exports;\n ${getExports(exports)}\n `;\n};\n\nexport default loader;\n\n// By setting `raw` to `true`, we are telling Webpack to provide the source as a\n// `Uint8Array` instead of converting it to a string. This allows us to avoid\n// having to convert the source back to a `Uint8Array` in the loader.\nexport const raw = true;\n"]}