@metamask/snaps-utils 6.1.0 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/dist/array.js +8 -0
  3. package/dist/array.js.map +1 -0
  4. package/dist/array.mjs +8 -0
  5. package/dist/array.mjs.map +1 -0
  6. package/dist/auxiliary-files.js +12 -0
  7. package/dist/auxiliary-files.js.map +1 -0
  8. package/dist/auxiliary-files.mjs +12 -0
  9. package/dist/auxiliary-files.mjs.map +1 -0
  10. package/dist/base64.js +13 -0
  11. package/dist/base64.js.map +1 -0
  12. package/dist/base64.mjs +13 -0
  13. package/dist/base64.mjs.map +1 -0
  14. package/dist/bytes.js +10 -0
  15. package/dist/bytes.js.map +1 -0
  16. package/dist/bytes.mjs +10 -0
  17. package/dist/bytes.mjs.map +1 -0
  18. package/dist/caveats.js +8 -0
  19. package/dist/caveats.js.map +1 -0
  20. package/dist/caveats.mjs +8 -0
  21. package/dist/caveats.mjs.map +1 -0
  22. package/dist/checksum.js +13 -0
  23. package/dist/checksum.js.map +1 -0
  24. package/dist/checksum.mjs +13 -0
  25. package/dist/checksum.mjs.map +1 -0
  26. package/dist/chunk-224DMTNJ.mjs +409 -0
  27. package/dist/chunk-224DMTNJ.mjs.map +1 -0
  28. package/dist/chunk-2IWSQJKQ.mjs +193 -0
  29. package/dist/chunk-2IWSQJKQ.mjs.map +1 -0
  30. package/dist/chunk-2LBN5T56.js +64 -0
  31. package/dist/chunk-2LBN5T56.js.map +1 -0
  32. package/dist/chunk-2PCPD5XY.js +169 -0
  33. package/dist/chunk-2PCPD5XY.js.map +1 -0
  34. package/dist/chunk-3SOYDY4W.js +152 -0
  35. package/dist/chunk-3SOYDY4W.js.map +1 -0
  36. package/dist/chunk-44GPX66J.mjs +70 -0
  37. package/dist/chunk-44GPX66J.mjs.map +1 -0
  38. package/dist/chunk-44VFHYJO.js +249 -0
  39. package/dist/chunk-44VFHYJO.js.map +1 -0
  40. package/dist/chunk-473MIETW.js +18 -0
  41. package/dist/chunk-473MIETW.js.map +1 -0
  42. package/dist/chunk-4BDR6KRH.js +50 -0
  43. package/dist/chunk-4BDR6KRH.js.map +1 -0
  44. package/dist/chunk-4CMD46B2.js +1 -0
  45. package/dist/chunk-4CMD46B2.js.map +1 -0
  46. package/dist/chunk-5R7UF7KM.mjs +21 -0
  47. package/dist/chunk-5R7UF7KM.mjs.map +1 -0
  48. package/dist/chunk-63OXILAY.mjs +69 -0
  49. package/dist/chunk-63OXILAY.mjs.map +1 -0
  50. package/dist/chunk-6CHO3LOX.mjs +10 -0
  51. package/dist/chunk-6CHO3LOX.mjs.map +1 -0
  52. package/dist/chunk-6LOYTBS3.js +107 -0
  53. package/dist/chunk-6LOYTBS3.js.map +1 -0
  54. package/dist/chunk-6YRUDGNL.mjs +18 -0
  55. package/dist/chunk-6YRUDGNL.mjs.map +1 -0
  56. package/dist/chunk-772OPTGX.js +70 -0
  57. package/dist/chunk-772OPTGX.js.map +1 -0
  58. package/dist/chunk-7LG4D4XA.mjs +20 -0
  59. package/dist/chunk-7LG4D4XA.mjs.map +1 -0
  60. package/dist/chunk-7LOABHVW.js +1 -0
  61. package/dist/chunk-7LOABHVW.js.map +1 -0
  62. package/dist/chunk-7MTAHOWC.mjs +1 -0
  63. package/dist/chunk-7MTAHOWC.mjs.map +1 -0
  64. package/dist/chunk-7P62OIGX.js +69 -0
  65. package/dist/chunk-7P62OIGX.js.map +1 -0
  66. package/dist/chunk-7Y3WSN44.mjs +103 -0
  67. package/dist/chunk-7Y3WSN44.mjs.map +1 -0
  68. package/dist/chunk-A3RRMELT.mjs +1 -0
  69. package/dist/chunk-A3RRMELT.mjs.map +1 -0
  70. package/dist/chunk-A6E325SZ.js +211 -0
  71. package/dist/chunk-A6E325SZ.js.map +1 -0
  72. package/dist/chunk-AFQY2CNY.js +109 -0
  73. package/dist/chunk-AFQY2CNY.js.map +1 -0
  74. package/dist/chunk-AOGVLPQZ.js +18 -0
  75. package/dist/chunk-AOGVLPQZ.js.map +1 -0
  76. package/dist/chunk-AS5P6JRP.mjs +9 -0
  77. package/dist/chunk-AS5P6JRP.mjs.map +1 -0
  78. package/dist/chunk-ASZWZ7JT.js +20 -0
  79. package/dist/chunk-ASZWZ7JT.js.map +1 -0
  80. package/dist/chunk-BGSO2GQC.mjs +41 -0
  81. package/dist/chunk-BGSO2GQC.mjs.map +1 -0
  82. package/dist/chunk-CMOSYNZR.js +95 -0
  83. package/dist/chunk-CMOSYNZR.js.map +1 -0
  84. package/dist/chunk-CNNMLOQ6.js +409 -0
  85. package/dist/chunk-CNNMLOQ6.js.map +1 -0
  86. package/dist/chunk-CQRPSEH3.js +74 -0
  87. package/dist/chunk-CQRPSEH3.js.map +1 -0
  88. package/dist/chunk-DKDGMZFU.mjs +74 -0
  89. package/dist/chunk-DKDGMZFU.mjs.map +1 -0
  90. package/dist/chunk-E3BDBG6T.js +20 -0
  91. package/dist/chunk-E3BDBG6T.js.map +1 -0
  92. package/dist/chunk-EA2FOAEG.mjs +64 -0
  93. package/dist/chunk-EA2FOAEG.mjs.map +1 -0
  94. package/dist/chunk-EFRPCO3C.js +1 -0
  95. package/dist/chunk-EFRPCO3C.js.map +1 -0
  96. package/dist/chunk-ENKAY3PI.js +281 -0
  97. package/dist/chunk-ENKAY3PI.js.map +1 -0
  98. package/dist/chunk-EXUEHPZ4.mjs +107 -0
  99. package/dist/chunk-EXUEHPZ4.mjs.map +1 -0
  100. package/dist/chunk-FOWIC2SO.mjs +38 -0
  101. package/dist/chunk-FOWIC2SO.mjs.map +1 -0
  102. package/dist/chunk-GTAYOKI4.mjs +211 -0
  103. package/dist/chunk-GTAYOKI4.mjs.map +1 -0
  104. package/dist/chunk-HF7HUZ5Z.js +10 -0
  105. package/dist/chunk-HF7HUZ5Z.js.map +1 -0
  106. package/dist/chunk-HJRCBSNA.mjs +32 -0
  107. package/dist/chunk-HJRCBSNA.mjs.map +1 -0
  108. package/dist/chunk-HJYRGKCX.js +50 -0
  109. package/dist/chunk-HJYRGKCX.js.map +1 -0
  110. package/dist/chunk-HYF7Q6VY.mjs +1 -0
  111. package/dist/chunk-HYF7Q6VY.mjs.map +1 -0
  112. package/dist/chunk-I77AVJKV.mjs +152 -0
  113. package/dist/chunk-I77AVJKV.mjs.map +1 -0
  114. package/dist/chunk-IGMAXVPP.mjs +21 -0
  115. package/dist/chunk-IGMAXVPP.mjs.map +1 -0
  116. package/dist/chunk-IHQPAJ2B.js +38 -0
  117. package/dist/chunk-IHQPAJ2B.js.map +1 -0
  118. package/dist/chunk-IJX3CXOY.js +9 -0
  119. package/dist/chunk-IJX3CXOY.js.map +1 -0
  120. package/dist/chunk-IPOE62V4.js +30 -0
  121. package/dist/chunk-IPOE62V4.js.map +1 -0
  122. package/dist/chunk-IV3FSWZ7.mjs +9 -0
  123. package/dist/chunk-IV3FSWZ7.mjs.map +1 -0
  124. package/dist/chunk-IXBJNVHK.js +22 -0
  125. package/dist/chunk-IXBJNVHK.js.map +1 -0
  126. package/dist/chunk-JI5NQ2C3.mjs +1 -0
  127. package/dist/chunk-JI5NQ2C3.mjs.map +1 -0
  128. package/dist/chunk-JMDSN227.mjs +25 -0
  129. package/dist/chunk-JMDSN227.mjs.map +1 -0
  130. package/dist/chunk-K6BCBPXF.js +151 -0
  131. package/dist/chunk-K6BCBPXF.js.map +1 -0
  132. package/dist/chunk-KMLVVVK3.mjs +22 -0
  133. package/dist/chunk-KMLVVVK3.mjs.map +1 -0
  134. package/dist/chunk-LBRWAC27.js +56 -0
  135. package/dist/chunk-LBRWAC27.js.map +1 -0
  136. package/dist/chunk-LCWDLIK5.mjs +281 -0
  137. package/dist/chunk-LCWDLIK5.mjs.map +1 -0
  138. package/dist/chunk-LEKZPKS2.js +21 -0
  139. package/dist/chunk-LEKZPKS2.js.map +1 -0
  140. package/dist/chunk-LSPOXPJJ.mjs +63 -0
  141. package/dist/chunk-LSPOXPJJ.mjs.map +1 -0
  142. package/dist/chunk-MCEKOGEG.mjs +50 -0
  143. package/dist/chunk-MCEKOGEG.mjs.map +1 -0
  144. package/dist/chunk-MLOQHUOY.js +32 -0
  145. package/dist/chunk-MLOQHUOY.js.map +1 -0
  146. package/dist/chunk-N722KRZW.js +41 -0
  147. package/dist/chunk-N722KRZW.js.map +1 -0
  148. package/dist/chunk-NUCLSR2G.js +8 -0
  149. package/dist/chunk-NUCLSR2G.js.map +1 -0
  150. package/dist/chunk-P252LKUT.mjs +9 -0
  151. package/dist/chunk-P252LKUT.mjs.map +1 -0
  152. package/dist/chunk-PHUTP7NB.js +25 -0
  153. package/dist/chunk-PHUTP7NB.js.map +1 -0
  154. package/dist/chunk-PJMEJVOB.mjs +29 -0
  155. package/dist/chunk-PJMEJVOB.mjs.map +1 -0
  156. package/dist/chunk-PLBSSUVY.js +29 -0
  157. package/dist/chunk-PLBSSUVY.js.map +1 -0
  158. package/dist/chunk-Q7RCL5IE.js +30 -0
  159. package/dist/chunk-Q7RCL5IE.js.map +1 -0
  160. package/dist/chunk-QSCKTRRU.js +21 -0
  161. package/dist/chunk-QSCKTRRU.js.map +1 -0
  162. package/dist/chunk-QX6MAFJU.mjs +169 -0
  163. package/dist/chunk-QX6MAFJU.mjs.map +1 -0
  164. package/dist/chunk-QYPLUMB7.mjs +249 -0
  165. package/dist/chunk-QYPLUMB7.mjs.map +1 -0
  166. package/dist/chunk-RAZ7XG4Z.mjs +1 -0
  167. package/dist/chunk-RAZ7XG4Z.mjs.map +1 -0
  168. package/dist/chunk-SRMDDOVO.mjs +20 -0
  169. package/dist/chunk-SRMDDOVO.mjs.map +1 -0
  170. package/dist/chunk-T3VM5YXY.js +1 -0
  171. package/dist/chunk-T3VM5YXY.js.map +1 -0
  172. package/dist/chunk-T3YY4JIJ.js +9 -0
  173. package/dist/chunk-T3YY4JIJ.js.map +1 -0
  174. package/dist/chunk-T6FWIDA6.mjs +95 -0
  175. package/dist/chunk-T6FWIDA6.mjs.map +1 -0
  176. package/dist/chunk-TFP64TMV.js +1 -0
  177. package/dist/chunk-TFP64TMV.js.map +1 -0
  178. package/dist/chunk-TG4BDSYJ.js +193 -0
  179. package/dist/chunk-TG4BDSYJ.js.map +1 -0
  180. package/dist/chunk-UMZNVWEM.mjs +30 -0
  181. package/dist/chunk-UMZNVWEM.mjs.map +1 -0
  182. package/dist/chunk-UW74NLTC.mjs +18 -0
  183. package/dist/chunk-UW74NLTC.mjs.map +1 -0
  184. package/dist/chunk-VWGXNUMD.mjs +151 -0
  185. package/dist/chunk-VWGXNUMD.mjs.map +1 -0
  186. package/dist/chunk-WEOCOYES.mjs +109 -0
  187. package/dist/chunk-WEOCOYES.mjs.map +1 -0
  188. package/dist/chunk-WF56W2AR.mjs +30 -0
  189. package/dist/chunk-WF56W2AR.mjs.map +1 -0
  190. package/dist/chunk-X44Z53IG.js +103 -0
  191. package/dist/chunk-X44Z53IG.js.map +1 -0
  192. package/dist/chunk-Z2JQNSVL.mjs +8 -0
  193. package/dist/chunk-Z2JQNSVL.mjs.map +1 -0
  194. package/dist/chunk-ZJRWU4AJ.mjs +50 -0
  195. package/dist/chunk-ZJRWU4AJ.mjs.map +1 -0
  196. package/dist/chunk-ZT3KKTS2.js +9 -0
  197. package/dist/chunk-ZT3KKTS2.js.map +1 -0
  198. package/dist/cronjob.js +20 -0
  199. package/dist/cronjob.js.map +1 -0
  200. package/dist/cronjob.mjs +20 -0
  201. package/dist/cronjob.mjs.map +1 -0
  202. package/dist/deep-clone.js +8 -0
  203. package/dist/deep-clone.js.map +1 -0
  204. package/dist/deep-clone.mjs +8 -0
  205. package/dist/deep-clone.mjs.map +1 -0
  206. package/dist/default-endowments.js +8 -0
  207. package/dist/default-endowments.js.map +1 -0
  208. package/dist/default-endowments.mjs +8 -0
  209. package/dist/default-endowments.mjs.map +1 -0
  210. package/dist/derivation-paths.js +13 -0
  211. package/dist/derivation-paths.js.map +1 -0
  212. package/dist/derivation-paths.mjs +13 -0
  213. package/dist/derivation-paths.mjs.map +1 -0
  214. package/dist/entropy.js +10 -0
  215. package/dist/entropy.js.map +1 -0
  216. package/dist/entropy.mjs +10 -0
  217. package/dist/entropy.mjs.map +1 -0
  218. package/dist/errors.js +20 -0
  219. package/dist/errors.js.map +1 -0
  220. package/dist/errors.mjs +20 -0
  221. package/dist/errors.mjs.map +1 -0
  222. package/dist/eval-worker.js +43 -0
  223. package/dist/eval-worker.js.map +1 -0
  224. package/dist/eval-worker.mjs +43 -0
  225. package/dist/eval-worker.mjs.map +1 -0
  226. package/dist/eval.js +17 -0
  227. package/dist/eval.js.map +1 -0
  228. package/dist/eval.mjs +17 -0
  229. package/dist/eval.mjs.map +1 -0
  230. package/dist/fs.js +28 -0
  231. package/dist/fs.js.map +1 -0
  232. package/dist/fs.mjs +28 -0
  233. package/dist/fs.mjs.map +1 -0
  234. package/dist/handler-types.js +10 -0
  235. package/dist/handler-types.js.map +1 -0
  236. package/dist/handler-types.mjs +10 -0
  237. package/dist/handler-types.mjs.map +1 -0
  238. package/dist/handlers.js +35 -0
  239. package/dist/handlers.js.map +1 -0
  240. package/dist/handlers.mjs +35 -0
  241. package/dist/handlers.mjs.map +1 -0
  242. package/dist/icon.js +14 -0
  243. package/dist/icon.js.map +1 -0
  244. package/dist/icon.mjs +14 -0
  245. package/dist/icon.mjs.map +1 -0
  246. package/dist/iframe.js +8 -0
  247. package/dist/iframe.js.map +1 -0
  248. package/dist/iframe.mjs +8 -0
  249. package/dist/iframe.mjs.map +1 -0
  250. package/dist/index.executionenv.js +134 -0
  251. package/dist/index.executionenv.js.map +1 -0
  252. package/dist/index.executionenv.mjs +134 -0
  253. package/dist/index.executionenv.mjs.map +1 -0
  254. package/dist/index.js +378 -0
  255. package/dist/index.js.map +1 -0
  256. package/dist/index.mjs +378 -0
  257. package/dist/index.mjs.map +1 -0
  258. package/dist/json-rpc.js +18 -0
  259. package/dist/json-rpc.js.map +1 -0
  260. package/dist/json-rpc.mjs +18 -0
  261. package/dist/json-rpc.mjs.map +1 -0
  262. package/dist/json.js +8 -0
  263. package/dist/json.js.map +1 -0
  264. package/dist/json.mjs +8 -0
  265. package/dist/json.mjs.map +1 -0
  266. package/dist/localization.js +23 -0
  267. package/dist/localization.js.map +1 -0
  268. package/dist/localization.mjs +23 -0
  269. package/dist/localization.mjs.map +1 -0
  270. package/dist/logging.js +14 -0
  271. package/dist/logging.js.map +1 -0
  272. package/dist/logging.mjs +14 -0
  273. package/dist/logging.mjs.map +1 -0
  274. package/dist/manifest/index.js +59 -0
  275. package/dist/manifest/index.js.map +1 -0
  276. package/dist/manifest/index.mjs +59 -0
  277. package/dist/manifest/index.mjs.map +1 -0
  278. package/dist/manifest/manifest.js +42 -0
  279. package/dist/manifest/manifest.js.map +1 -0
  280. package/dist/manifest/manifest.mjs +42 -0
  281. package/dist/manifest/manifest.mjs.map +1 -0
  282. package/dist/manifest/node.js +85 -0
  283. package/dist/manifest/node.js.map +1 -0
  284. package/dist/manifest/node.mjs +85 -0
  285. package/dist/manifest/node.mjs.map +1 -0
  286. package/dist/manifest/validation.js +58 -0
  287. package/dist/manifest/validation.js.map +1 -0
  288. package/dist/manifest/validation.mjs +58 -0
  289. package/dist/manifest/validation.mjs.map +1 -0
  290. package/dist/mock.js +13 -0
  291. package/dist/mock.js.map +1 -0
  292. package/dist/mock.mjs +13 -0
  293. package/dist/mock.mjs.map +1 -0
  294. package/dist/namespace.js +44 -0
  295. package/dist/namespace.js.map +1 -0
  296. package/dist/namespace.mjs +44 -0
  297. package/dist/namespace.mjs.map +1 -0
  298. package/dist/node.js +448 -0
  299. package/dist/node.js.map +1 -0
  300. package/dist/node.mjs +448 -0
  301. package/dist/node.mjs.map +1 -0
  302. package/dist/npm.js +32 -0
  303. package/dist/npm.js.map +1 -0
  304. package/dist/npm.mjs +32 -0
  305. package/dist/npm.mjs.map +1 -0
  306. package/dist/path.js +8 -0
  307. package/dist/path.js.map +1 -0
  308. package/dist/path.mjs +8 -0
  309. package/dist/path.mjs.map +1 -0
  310. package/dist/post-process.js +10 -0
  311. package/dist/post-process.js.map +1 -0
  312. package/dist/post-process.mjs +10 -0
  313. package/dist/post-process.mjs.map +1 -0
  314. package/dist/snaps.js +48 -0
  315. package/dist/snaps.js.map +1 -0
  316. package/dist/snaps.mjs +48 -0
  317. package/dist/snaps.mjs.map +1 -0
  318. package/dist/strings.js +8 -0
  319. package/dist/strings.js.map +1 -0
  320. package/dist/strings.mjs +8 -0
  321. package/dist/strings.mjs.map +1 -0
  322. package/dist/structs.js +31 -0
  323. package/dist/structs.js.map +1 -0
  324. package/dist/structs.mjs +31 -0
  325. package/dist/structs.mjs.map +1 -0
  326. package/dist/tsconfig.build.tsbuildinfo +1 -0
  327. package/dist/types/bytes.d.ts +1 -1
  328. package/dist/types/checksum.d.ts +1 -1
  329. package/dist/types/index.d.ts +1 -6
  330. package/dist/types/json-rpc.d.ts +1 -1
  331. package/dist/types/localization.d.ts +1 -1
  332. package/dist/types/manifest/index.d.ts +0 -1
  333. package/dist/types/manifest/manifest.d.ts +1 -1
  334. package/dist/types/manifest/node.d.ts +2 -0
  335. package/dist/types/manifest/validation.d.ts +5 -5
  336. package/dist/types/node.d.ts +8 -0
  337. package/dist/types/structs.d.ts +0 -20
  338. package/dist/types/ui.d.ts +7 -0
  339. package/dist/types/virtual-file/index.d.ts +0 -1
  340. package/dist/types/virtual-file/node.d.ts +2 -0
  341. package/dist/types.js +28 -0
  342. package/dist/types.js.map +1 -0
  343. package/dist/types.mjs +28 -0
  344. package/dist/types.mjs.map +1 -0
  345. package/dist/ui.js +12 -0
  346. package/dist/ui.js.map +1 -0
  347. package/dist/ui.mjs +12 -0
  348. package/dist/ui.mjs.map +1 -0
  349. package/dist/validation.js +24 -0
  350. package/dist/validation.js.map +1 -0
  351. package/dist/validation.mjs +24 -0
  352. package/dist/validation.mjs.map +1 -0
  353. package/dist/versions.js +12 -0
  354. package/dist/versions.js.map +1 -0
  355. package/dist/versions.mjs +12 -0
  356. package/dist/versions.mjs.map +1 -0
  357. package/dist/virtual-file/VirtualFile.js +9 -0
  358. package/dist/virtual-file/VirtualFile.js.map +1 -0
  359. package/dist/virtual-file/VirtualFile.mjs +9 -0
  360. package/dist/virtual-file/VirtualFile.mjs.map +1 -0
  361. package/dist/virtual-file/index.js +10 -0
  362. package/dist/virtual-file/index.js.map +1 -0
  363. package/dist/virtual-file/index.mjs +10 -0
  364. package/dist/virtual-file/index.mjs.map +1 -0
  365. package/dist/virtual-file/node.js +17 -0
  366. package/dist/virtual-file/node.js.map +1 -0
  367. package/dist/virtual-file/node.mjs +17 -0
  368. package/dist/virtual-file/node.mjs.map +1 -0
  369. package/dist/virtual-file/toVirtualFile.js +12 -0
  370. package/dist/virtual-file/toVirtualFile.js.map +1 -0
  371. package/dist/virtual-file/toVirtualFile.mjs +12 -0
  372. package/dist/virtual-file/toVirtualFile.mjs.map +1 -0
  373. package/package.json +23 -38
  374. package/dist/cjs/array.js +0 -23
  375. package/dist/cjs/array.js.map +0 -1
  376. package/dist/cjs/auxiliary-files.js +0 -27
  377. package/dist/cjs/auxiliary-files.js.map +0 -1
  378. package/dist/cjs/base64.js +0 -44
  379. package/dist/cjs/base64.js.map +0 -1
  380. package/dist/cjs/bytes.js +0 -23
  381. package/dist/cjs/bytes.js.map +0 -1
  382. package/dist/cjs/caveats.js +0 -48
  383. package/dist/cjs/caveats.js.map +0 -1
  384. package/dist/cjs/checksum.js +0 -43
  385. package/dist/cjs/checksum.js.map +0 -1
  386. package/dist/cjs/cronjob.js +0 -77
  387. package/dist/cjs/cronjob.js.map +0 -1
  388. package/dist/cjs/deep-clone.js +0 -22
  389. package/dist/cjs/deep-clone.js.map +0 -1
  390. package/dist/cjs/default-endowments.js +0 -49
  391. package/dist/cjs/default-endowments.js.map +0 -1
  392. package/dist/cjs/derivation-paths.js +0 -300
  393. package/dist/cjs/derivation-paths.js.map +0 -1
  394. package/dist/cjs/entropy.js +0 -23
  395. package/dist/cjs/entropy.js.map +0 -1
  396. package/dist/cjs/errors.js +0 -221
  397. package/dist/cjs/errors.js.map +0 -1
  398. package/dist/cjs/eval-worker.js +0 -44
  399. package/dist/cjs/eval-worker.js.map +0 -1
  400. package/dist/cjs/eval.js +0 -77
  401. package/dist/cjs/eval.js.map +0 -1
  402. package/dist/cjs/fs.js +0 -126
  403. package/dist/cjs/fs.js.map +0 -1
  404. package/dist/cjs/handler-types.js +0 -34
  405. package/dist/cjs/handler-types.js.map +0 -1
  406. package/dist/cjs/handlers.js +0 -173
  407. package/dist/cjs/handlers.js.map +0 -1
  408. package/dist/cjs/icon.js +0 -66
  409. package/dist/cjs/icon.js.map +0 -1
  410. package/dist/cjs/iframe.js +0 -59
  411. package/dist/cjs/iframe.js.map +0 -1
  412. package/dist/cjs/index.browser.js +0 -49
  413. package/dist/cjs/index.browser.js.map +0 -1
  414. package/dist/cjs/index.executionenv.js +0 -27
  415. package/dist/cjs/index.executionenv.js.map +0 -1
  416. package/dist/cjs/index.js +0 -54
  417. package/dist/cjs/index.js.map +0 -1
  418. package/dist/cjs/json-rpc.js +0 -81
  419. package/dist/cjs/json-rpc.js.map +0 -1
  420. package/dist/cjs/json.js +0 -16
  421. package/dist/cjs/json.js.map +0 -1
  422. package/dist/cjs/localization.js +0 -113
  423. package/dist/cjs/localization.js.map +0 -1
  424. package/dist/cjs/logging.js +0 -40
  425. package/dist/cjs/logging.js.map +0 -1
  426. package/dist/cjs/manifest/index.browser.js +0 -20
  427. package/dist/cjs/manifest/index.browser.js.map +0 -1
  428. package/dist/cjs/manifest/index.js +0 -21
  429. package/dist/cjs/manifest/index.js.map +0 -1
  430. package/dist/cjs/manifest/manifest.js +0 -283
  431. package/dist/cjs/manifest/manifest.js.map +0 -1
  432. package/dist/cjs/manifest/validation.js +0 -244
  433. package/dist/cjs/manifest/validation.js.map +0 -1
  434. package/dist/cjs/mock.js +0 -128
  435. package/dist/cjs/mock.js.map +0 -1
  436. package/dist/cjs/namespace.js +0 -136
  437. package/dist/cjs/namespace.js.map +0 -1
  438. package/dist/cjs/npm.js +0 -96
  439. package/dist/cjs/npm.js.map +0 -1
  440. package/dist/cjs/path.js +0 -21
  441. package/dist/cjs/path.js.map +0 -1
  442. package/dist/cjs/post-process.js +0 -328
  443. package/dist/cjs/post-process.js.map +0 -1
  444. package/dist/cjs/snaps.js +0 -232
  445. package/dist/cjs/snaps.js.map +0 -1
  446. package/dist/cjs/strings.js +0 -21
  447. package/dist/cjs/strings.js.map +0 -1
  448. package/dist/cjs/structs.js +0 -210
  449. package/dist/cjs/structs.js.map +0 -1
  450. package/dist/cjs/types.js +0 -104
  451. package/dist/cjs/types.js.map +0 -1
  452. package/dist/cjs/ui.js +0 -53
  453. package/dist/cjs/ui.js.map +0 -1
  454. package/dist/cjs/validation.js +0 -24
  455. package/dist/cjs/validation.js.map +0 -1
  456. package/dist/cjs/versions.js +0 -47
  457. package/dist/cjs/versions.js.map +0 -1
  458. package/dist/cjs/virtual-file/VirtualFile.js +0 -92
  459. package/dist/cjs/virtual-file/VirtualFile.js.map +0 -1
  460. package/dist/cjs/virtual-file/index.browser.js +0 -20
  461. package/dist/cjs/virtual-file/index.browser.js.map +0 -1
  462. package/dist/cjs/virtual-file/index.js +0 -21
  463. package/dist/cjs/virtual-file/index.js.map +0 -1
  464. package/dist/cjs/virtual-file/toVirtualFile.js +0 -33
  465. package/dist/cjs/virtual-file/toVirtualFile.js.map +0 -1
  466. package/dist/esm/array.js +0 -13
  467. package/dist/esm/array.js.map +0 -1
  468. package/dist/esm/auxiliary-files.js +0 -23
  469. package/dist/esm/auxiliary-files.js.map +0 -1
  470. package/dist/esm/base64.js +0 -36
  471. package/dist/esm/base64.js.map +0 -1
  472. package/dist/esm/bytes.js +0 -18
  473. package/dist/esm/bytes.js.map +0 -1
  474. package/dist/esm/caveats.js +0 -38
  475. package/dist/esm/caveats.js.map +0 -1
  476. package/dist/esm/checksum.js +0 -41
  477. package/dist/esm/checksum.js.map +0 -1
  478. package/dist/esm/cronjob.js +0 -59
  479. package/dist/esm/cronjob.js.map +0 -1
  480. package/dist/esm/deep-clone.js +0 -7
  481. package/dist/esm/deep-clone.js.map +0 -1
  482. package/dist/esm/default-endowments.js +0 -39
  483. package/dist/esm/default-endowments.js.map +0 -1
  484. package/dist/esm/derivation-paths.js +0 -287
  485. package/dist/esm/derivation-paths.js.map +0 -1
  486. package/dist/esm/entropy.js +0 -6
  487. package/dist/esm/entropy.js.map +0 -1
  488. package/dist/esm/errors.js +0 -211
  489. package/dist/esm/errors.js.map +0 -1
  490. package/dist/esm/eval-worker.js +0 -40
  491. package/dist/esm/eval-worker.js.map +0 -1
  492. package/dist/esm/eval.js +0 -65
  493. package/dist/esm/eval.js.map +0 -1
  494. package/dist/esm/fs.js +0 -136
  495. package/dist/esm/fs.js.map +0 -1
  496. package/dist/esm/handler-types.js +0 -16
  497. package/dist/esm/handler-types.js.map +0 -1
  498. package/dist/esm/handlers.js +0 -119
  499. package/dist/esm/handlers.js.map +0 -1
  500. package/dist/esm/icon.js +0 -51
  501. package/dist/esm/icon.js.map +0 -1
  502. package/dist/esm/iframe.js +0 -49
  503. package/dist/esm/iframe.js.map +0 -1
  504. package/dist/esm/index.browser.js +0 -32
  505. package/dist/esm/index.browser.js.map +0 -1
  506. package/dist/esm/index.executionenv.js +0 -10
  507. package/dist/esm/index.executionenv.js.map +0 -1
  508. package/dist/esm/index.js +0 -37
  509. package/dist/esm/index.js.map +0 -1
  510. package/dist/esm/json-rpc.js +0 -79
  511. package/dist/esm/json-rpc.js.map +0 -1
  512. package/dist/esm/json.js +0 -17
  513. package/dist/esm/json.js.map +0 -1
  514. package/dist/esm/localization.js +0 -115
  515. package/dist/esm/localization.js.map +0 -1
  516. package/dist/esm/logging.js +0 -59
  517. package/dist/esm/logging.js.map +0 -1
  518. package/dist/esm/manifest/index.browser.js +0 -3
  519. package/dist/esm/manifest/index.browser.js.map +0 -1
  520. package/dist/esm/manifest/index.js +0 -4
  521. package/dist/esm/manifest/index.js.map +0 -1
  522. package/dist/esm/manifest/manifest.js +0 -307
  523. package/dist/esm/manifest/manifest.js.map +0 -1
  524. package/dist/esm/manifest/validation.js +0 -190
  525. package/dist/esm/manifest/validation.js.map +0 -1
  526. package/dist/esm/mock.js +0 -111
  527. package/dist/esm/mock.js.map +0 -1
  528. package/dist/esm/namespace.js +0 -113
  529. package/dist/esm/namespace.js.map +0 -1
  530. package/dist/esm/npm.js +0 -85
  531. package/dist/esm/npm.js.map +0 -1
  532. package/dist/esm/path.js +0 -17
  533. package/dist/esm/path.js.map +0 -1
  534. package/dist/esm/post-process.js +0 -333
  535. package/dist/esm/post-process.js.map +0 -1
  536. package/dist/esm/snaps.js +0 -217
  537. package/dist/esm/snaps.js.map +0 -1
  538. package/dist/esm/strings.js +0 -11
  539. package/dist/esm/strings.js.map +0 -1
  540. package/dist/esm/structs.js +0 -295
  541. package/dist/esm/structs.js.map +0 -1
  542. package/dist/esm/types.js +0 -78
  543. package/dist/esm/types.js.map +0 -1
  544. package/dist/esm/ui.js +0 -50
  545. package/dist/esm/ui.js.map +0 -1
  546. package/dist/esm/validation.js +0 -19
  547. package/dist/esm/validation.js.map +0 -1
  548. package/dist/esm/versions.js +0 -41
  549. package/dist/esm/versions.js.map +0 -1
  550. package/dist/esm/virtual-file/VirtualFile.js +0 -82
  551. package/dist/esm/virtual-file/VirtualFile.js.map +0 -1
  552. package/dist/esm/virtual-file/index.browser.js +0 -3
  553. package/dist/esm/virtual-file/index.browser.js.map +0 -1
  554. package/dist/esm/virtual-file/index.js +0 -4
  555. package/dist/esm/virtual-file/index.js.map +0 -1
  556. package/dist/esm/virtual-file/toVirtualFile.js +0 -26
  557. package/dist/esm/virtual-file/toVirtualFile.js.map +0 -1
  558. package/dist/types/index.browser.d.ts +0 -30
  559. package/dist/types/manifest/index.browser.d.ts +0 -1
  560. package/dist/types/virtual-file/index.browser.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [7.0.1]
10
+ ### Fixed
11
+ - Fix minor build configuration problems ([#2220](https://github.com/MetaMask/snaps/pull/2220))
12
+ - Fix regex for HTML comment tokens ([#2222](https://github.com/MetaMask/snaps/pull/2222))
13
+
14
+ ## [7.0.0]
15
+ ### Changed
16
+ - **BREAKING:** Update ESM build to be fully compliant with the ESM standard ([#2210](https://github.com/MetaMask/snaps/pull/2210))
17
+ - **BREAKING:** Move Node.js exports to separate export ([#2210](https://github.com/MetaMask/snaps/pull/2210))
18
+ - The default export is now browser-compatible.
19
+ - Node.js APIs can be imported from `<package>/node`.
20
+ - Bump `@metamask/rpc-errors` to `^6.2.1` ([#2209](https://github.com/MetaMask/snaps/pull/2209))
21
+
22
+ ### Removed
23
+ - **BREAKING:** Move `file` struct to CLI ([#2207](https://github.com/MetaMask/snaps/pull/2207))
24
+ - The previously exported `file` struct can now be found in `@metamask/snaps-cli`.
25
+
26
+ ### Fixed
27
+ - Add sizing limits for custom UI ([#2199](https://github.com/MetaMask/snaps/pull/2199))
28
+ - Properly validate links contained in rows ([#2205](https://github.com/MetaMask/snaps/pull/2205))
29
+
9
30
  ## [6.1.0]
10
31
  ### Added
11
32
  - Add a manifest warning when no icon is found and when icon is not square ([#2185](https://github.com/MetaMask/snaps/pull/2185))
@@ -169,7 +190,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
169
190
  - The version of the package no longer needs to match the version of all other
170
191
  MetaMask Snaps packages.
171
192
 
172
- [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@6.1.0...HEAD
193
+ [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.0.1...HEAD
194
+ [7.0.1]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.0.0...@metamask/snaps-utils@7.0.1
195
+ [7.0.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@6.1.0...@metamask/snaps-utils@7.0.0
173
196
  [6.1.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@6.0.0...@metamask/snaps-utils@6.1.0
174
197
  [6.0.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@5.2.0...@metamask/snaps-utils@6.0.0
175
198
  [5.2.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@5.1.2...@metamask/snaps-utils@5.2.0
package/dist/array.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkT3YY4JIJjs = require('./chunk-T3YY4JIJ.js');
4
+ require('./chunk-PHUTP7NB.js');
5
+
6
+
7
+ exports.isEqual = _chunkT3YY4JIJjs.isEqual;
8
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
package/dist/array.mjs ADDED
@@ -0,0 +1,8 @@
1
+ import {
2
+ isEqual
3
+ } from "./chunk-P252LKUT.mjs";
4
+ import "./chunk-JMDSN227.mjs";
5
+ export {
6
+ isEqual
7
+ };
8
+ //# sourceMappingURL=array.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkIXBJNVHKjs = require('./chunk-IXBJNVHK.js');
4
+ require('./chunk-IHQPAJ2B.js');
5
+ require('./chunk-473MIETW.js');
6
+ require('./chunk-HJYRGKCX.js');
7
+ require('./chunk-NUCLSR2G.js');
8
+ require('./chunk-PHUTP7NB.js');
9
+
10
+
11
+ exports.encodeAuxiliaryFile = _chunkIXBJNVHKjs.encodeAuxiliaryFile;
12
+ //# sourceMappingURL=auxiliary-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import {
2
+ encodeAuxiliaryFile
3
+ } from "./chunk-KMLVVVK3.mjs";
4
+ import "./chunk-FOWIC2SO.mjs";
5
+ import "./chunk-6YRUDGNL.mjs";
6
+ import "./chunk-ZJRWU4AJ.mjs";
7
+ import "./chunk-Z2JQNSVL.mjs";
8
+ import "./chunk-JMDSN227.mjs";
9
+ export {
10
+ encodeAuxiliaryFile
11
+ };
12
+ //# sourceMappingURL=auxiliary-files.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/base64.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkIHQPAJ2Bjs = require('./chunk-IHQPAJ2B.js');
5
+ require('./chunk-473MIETW.js');
6
+ require('./chunk-HJYRGKCX.js');
7
+ require('./chunk-NUCLSR2G.js');
8
+ require('./chunk-PHUTP7NB.js');
9
+
10
+
11
+
12
+ exports.decodeBase64 = _chunkIHQPAJ2Bjs.decodeBase64; exports.encodeBase64 = _chunkIHQPAJ2Bjs.encodeBase64;
13
+ //# sourceMappingURL=base64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import {
2
+ decodeBase64,
3
+ encodeBase64
4
+ } from "./chunk-FOWIC2SO.mjs";
5
+ import "./chunk-6YRUDGNL.mjs";
6
+ import "./chunk-ZJRWU4AJ.mjs";
7
+ import "./chunk-Z2JQNSVL.mjs";
8
+ import "./chunk-JMDSN227.mjs";
9
+ export {
10
+ decodeBase64,
11
+ encodeBase64
12
+ };
13
+ //# sourceMappingURL=base64.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/bytes.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunk473MIETWjs = require('./chunk-473MIETW.js');
4
+ require('./chunk-HJYRGKCX.js');
5
+ require('./chunk-NUCLSR2G.js');
6
+ require('./chunk-PHUTP7NB.js');
7
+
8
+
9
+ exports.getBytes = _chunk473MIETWjs.getBytes;
10
+ //# sourceMappingURL=bytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
package/dist/bytes.mjs ADDED
@@ -0,0 +1,10 @@
1
+ import {
2
+ getBytes
3
+ } from "./chunk-6YRUDGNL.mjs";
4
+ import "./chunk-ZJRWU4AJ.mjs";
5
+ import "./chunk-Z2JQNSVL.mjs";
6
+ import "./chunk-JMDSN227.mjs";
7
+ export {
8
+ getBytes
9
+ };
10
+ //# sourceMappingURL=bytes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkASZWZ7JTjs = require('./chunk-ASZWZ7JT.js');
4
+ require('./chunk-PHUTP7NB.js');
5
+
6
+
7
+ exports.SnapCaveatType = _chunkASZWZ7JTjs.SnapCaveatType;
8
+ //# sourceMappingURL=caveats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import {
2
+ SnapCaveatType
3
+ } from "./chunk-7LG4D4XA.mjs";
4
+ import "./chunk-JMDSN227.mjs";
5
+ export {
6
+ SnapCaveatType
7
+ };
8
+ //# sourceMappingURL=caveats.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+ var _chunkMLOQHUOYjs = require('./chunk-MLOQHUOY.js');
5
+ require('./chunk-473MIETW.js');
6
+ require('./chunk-HJYRGKCX.js');
7
+ require('./chunk-NUCLSR2G.js');
8
+ require('./chunk-PHUTP7NB.js');
9
+
10
+
11
+
12
+ exports.checksum = _chunkMLOQHUOYjs.checksum; exports.checksumFiles = _chunkMLOQHUOYjs.checksumFiles;
13
+ //# sourceMappingURL=checksum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import {
2
+ checksum,
3
+ checksumFiles
4
+ } from "./chunk-HJRCBSNA.mjs";
5
+ import "./chunk-6YRUDGNL.mjs";
6
+ import "./chunk-ZJRWU4AJ.mjs";
7
+ import "./chunk-Z2JQNSVL.mjs";
8
+ import "./chunk-JMDSN227.mjs";
9
+ export {
10
+ checksum,
11
+ checksumFiles
12
+ };
13
+ //# sourceMappingURL=checksum.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,409 @@
1
+ import {
2
+ assertIsSnapManifest
3
+ } from "./chunk-LCWDLIK5.mjs";
4
+ import {
5
+ ProgrammaticallyFixableSnapError,
6
+ getSnapChecksum,
7
+ validateSnapShasum
8
+ } from "./chunk-2IWSQJKQ.mjs";
9
+ import {
10
+ assertIsSnapIcon,
11
+ getSvgDimensions
12
+ } from "./chunk-MCEKOGEG.mjs";
13
+ import {
14
+ SnapValidationFailureReason,
15
+ assertIsNpmSnapPackageJson
16
+ } from "./chunk-T6FWIDA6.mjs";
17
+ import {
18
+ getValidatedLocalizationFiles,
19
+ validateSnapManifestLocalizations
20
+ } from "./chunk-WEOCOYES.mjs";
21
+ import {
22
+ readJsonFile
23
+ } from "./chunk-7Y3WSN44.mjs";
24
+ import {
25
+ readVirtualFile
26
+ } from "./chunk-IGMAXVPP.mjs";
27
+ import {
28
+ VirtualFile
29
+ } from "./chunk-ZJRWU4AJ.mjs";
30
+ import {
31
+ deepClone
32
+ } from "./chunk-Z2JQNSVL.mjs";
33
+
34
+ // src/manifest/manifest.ts
35
+ import { getErrorMessage } from "@metamask/snaps-sdk";
36
+ import { assertExhaustive, assert, isPlainObject } from "@metamask/utils";
37
+ import deepEqual from "fast-deep-equal";
38
+ import { promises as fs } from "fs";
39
+ import pathUtils from "path";
40
+ var MANIFEST_SORT_ORDER = {
41
+ $schema: 1,
42
+ version: 2,
43
+ description: 3,
44
+ proposedName: 4,
45
+ repository: 5,
46
+ source: 6,
47
+ initialConnections: 7,
48
+ initialPermissions: 8,
49
+ manifestVersion: 9
50
+ };
51
+ async function checkManifest(basePath, writeManifest = true, sourceCode, writeFileFn = fs.writeFile) {
52
+ const warnings = [];
53
+ const errors = [];
54
+ let updated = false;
55
+ const manifestPath = pathUtils.join(basePath, "snap.manifest.json" /* Manifest */);
56
+ const manifestFile = await readJsonFile(manifestPath);
57
+ const unvalidatedManifest = manifestFile.result;
58
+ const packageFile = await readJsonFile(
59
+ pathUtils.join(basePath, "package.json" /* PackageJson */)
60
+ );
61
+ const auxiliaryFilePaths = getSnapFilePaths(
62
+ unvalidatedManifest,
63
+ (manifest2) => manifest2?.source?.files
64
+ );
65
+ const localizationFilePaths = getSnapFilePaths(
66
+ unvalidatedManifest,
67
+ (manifest2) => manifest2?.source?.locales
68
+ );
69
+ const snapFiles = {
70
+ manifest: manifestFile,
71
+ packageJson: packageFile,
72
+ sourceCode: await getSnapSourceCode(
73
+ basePath,
74
+ unvalidatedManifest,
75
+ sourceCode
76
+ ),
77
+ svgIcon: await getSnapIcon(basePath, unvalidatedManifest),
78
+ // Intentionally pass null as the encoding here since the files may be binary
79
+ auxiliaryFiles: await getSnapFiles(basePath, auxiliaryFilePaths, null) ?? [],
80
+ localizationFiles: await getSnapFiles(basePath, localizationFilePaths) ?? []
81
+ };
82
+ let manifest;
83
+ try {
84
+ ({ manifest } = await validateNpmSnap(snapFiles));
85
+ } catch (error) {
86
+ if (error instanceof ProgrammaticallyFixableSnapError) {
87
+ errors.push(error.message);
88
+ const partiallyValidatedFiles = snapFiles;
89
+ let isInvalid = true;
90
+ let currentError = error;
91
+ const maxAttempts = Object.keys(SnapValidationFailureReason).length;
92
+ for (let attempts = 1; isInvalid && attempts <= maxAttempts; attempts++) {
93
+ manifest = await fixManifest(
94
+ manifest ? { ...partiallyValidatedFiles, manifest } : partiallyValidatedFiles,
95
+ currentError
96
+ );
97
+ try {
98
+ await validateNpmSnapManifest({
99
+ ...partiallyValidatedFiles,
100
+ manifest
101
+ });
102
+ isInvalid = false;
103
+ } catch (nextValidationError) {
104
+ currentError = nextValidationError;
105
+ if (!(nextValidationError instanceof ProgrammaticallyFixableSnapError) || attempts === maxAttempts && !isInvalid) {
106
+ throw new Error(
107
+ `Internal error: Failed to fix manifest. This is a bug, please report it. Reason:
108
+ ${error.message}`
109
+ );
110
+ }
111
+ errors.push(currentError.message);
112
+ }
113
+ }
114
+ updated = true;
115
+ } else {
116
+ throw error;
117
+ }
118
+ }
119
+ assert(manifest);
120
+ const validatedManifest = manifest.result;
121
+ const recommendedFields = ["repository"];
122
+ const missingRecommendedFields = recommendedFields.filter(
123
+ (key) => !validatedManifest[key]
124
+ );
125
+ if (missingRecommendedFields.length > 0) {
126
+ warnings.push(
127
+ `Missing recommended package.json properties:
128
+ ${missingRecommendedFields.reduce(
129
+ (allMissing, currentField) => {
130
+ return `${allMissing} ${currentField}
131
+ `;
132
+ },
133
+ ""
134
+ )}`
135
+ );
136
+ }
137
+ if (!snapFiles.svgIcon) {
138
+ warnings.push(
139
+ "No icon found in the Snap manifest. It is recommended to include an icon for the Snap. See https://docs.metamask.io/snaps/how-to/design-a-snap/#guidelines-at-a-glance for more information."
140
+ );
141
+ }
142
+ const iconDimensions = snapFiles.svgIcon && getSvgDimensions(snapFiles.svgIcon.toString());
143
+ if (iconDimensions && iconDimensions.height !== iconDimensions.width) {
144
+ warnings.push(
145
+ "The icon in the Snap manifest is not square. It is recommended to use a square icon for the Snap."
146
+ );
147
+ }
148
+ if (writeManifest) {
149
+ try {
150
+ const newManifest = `${JSON.stringify(
151
+ getWritableManifest(validatedManifest),
152
+ null,
153
+ 2
154
+ )}
155
+ `;
156
+ if (updated || newManifest !== manifestFile.value) {
157
+ await writeFileFn(
158
+ pathUtils.join(basePath, "snap.manifest.json" /* Manifest */),
159
+ newManifest
160
+ );
161
+ }
162
+ } catch (error) {
163
+ throw new Error(`Failed to update snap.manifest.json: ${error.message}`);
164
+ }
165
+ }
166
+ return { manifest: validatedManifest, updated, warnings, errors };
167
+ }
168
+ async function fixManifest(snapFiles, error) {
169
+ const { manifest, packageJson } = snapFiles;
170
+ const clonedFile = manifest.clone();
171
+ const manifestCopy = clonedFile.result;
172
+ switch (error.reason) {
173
+ case '"name" field mismatch' /* NameMismatch */:
174
+ manifestCopy.source.location.npm.packageName = packageJson.result.name;
175
+ break;
176
+ case '"version" field mismatch' /* VersionMismatch */:
177
+ manifestCopy.version = packageJson.result.version;
178
+ break;
179
+ case '"repository" field mismatch' /* RepositoryMismatch */:
180
+ manifestCopy.repository = packageJson.result.repository ? deepClone(packageJson.result.repository) : void 0;
181
+ break;
182
+ case '"shasum" field mismatch' /* ShasumMismatch */:
183
+ manifestCopy.source.shasum = await getSnapChecksum(snapFiles);
184
+ break;
185
+ default:
186
+ assertExhaustive(error.reason);
187
+ }
188
+ clonedFile.result = manifestCopy;
189
+ clonedFile.value = JSON.stringify(manifestCopy);
190
+ return clonedFile;
191
+ }
192
+ async function getSnapSourceCode(basePath, manifest, sourceCode) {
193
+ if (!isPlainObject(manifest)) {
194
+ return void 0;
195
+ }
196
+ const sourceFilePath = manifest.source?.location?.npm?.filePath;
197
+ if (!sourceFilePath) {
198
+ return void 0;
199
+ }
200
+ if (sourceCode) {
201
+ return new VirtualFile({
202
+ path: pathUtils.join(basePath, sourceFilePath),
203
+ value: sourceCode
204
+ });
205
+ }
206
+ try {
207
+ const virtualFile = await readVirtualFile(
208
+ pathUtils.join(basePath, sourceFilePath),
209
+ "utf8"
210
+ );
211
+ return virtualFile;
212
+ } catch (error) {
213
+ throw new Error(
214
+ `Failed to read snap bundle file: ${getErrorMessage(error)}`
215
+ );
216
+ }
217
+ }
218
+ async function getSnapIcon(basePath, manifest) {
219
+ if (!isPlainObject(manifest)) {
220
+ return void 0;
221
+ }
222
+ const iconPath = manifest.source?.location?.npm?.iconPath;
223
+ if (!iconPath) {
224
+ return void 0;
225
+ }
226
+ try {
227
+ const virtualFile = await readVirtualFile(
228
+ pathUtils.join(basePath, iconPath),
229
+ "utf8"
230
+ );
231
+ return virtualFile;
232
+ } catch (error) {
233
+ throw new Error(`Failed to read snap icon file: ${getErrorMessage(error)}`);
234
+ }
235
+ }
236
+ function getSnapFilePaths(manifest, selector) {
237
+ if (!isPlainObject(manifest)) {
238
+ return void 0;
239
+ }
240
+ const snapManifest = manifest;
241
+ const paths = selector(snapManifest);
242
+ if (!Array.isArray(paths)) {
243
+ return void 0;
244
+ }
245
+ return paths;
246
+ }
247
+ async function getSnapFiles(basePath, paths, encoding = "utf8") {
248
+ if (!paths) {
249
+ return void 0;
250
+ }
251
+ try {
252
+ return await Promise.all(
253
+ paths.map(
254
+ async (filePath) => readVirtualFile(pathUtils.join(basePath, filePath), encoding)
255
+ )
256
+ );
257
+ } catch (error) {
258
+ throw new Error(`Failed to read snap files: ${getErrorMessage(error)}`);
259
+ }
260
+ }
261
+ function getWritableManifest(manifest) {
262
+ const { repository, ...remaining } = manifest;
263
+ const keys = Object.keys(
264
+ repository ? { ...remaining, repository } : remaining
265
+ );
266
+ const writableManifest = keys.sort((a, b) => MANIFEST_SORT_ORDER[a] - MANIFEST_SORT_ORDER[b]).reduce(
267
+ (result, key) => ({
268
+ ...result,
269
+ [key]: manifest[key]
270
+ }),
271
+ {}
272
+ );
273
+ return writableManifest;
274
+ }
275
+ async function validateNpmSnapManifest({
276
+ manifest,
277
+ packageJson,
278
+ sourceCode,
279
+ svgIcon,
280
+ auxiliaryFiles,
281
+ localizationFiles
282
+ }) {
283
+ const packageJsonName = packageJson.result.name;
284
+ const packageJsonVersion = packageJson.result.version;
285
+ const packageJsonRepository = packageJson.result.repository;
286
+ const manifestPackageName = manifest.result.source.location.npm.packageName;
287
+ const manifestPackageVersion = manifest.result.version;
288
+ const manifestRepository = manifest.result.repository;
289
+ if (packageJsonName !== manifestPackageName) {
290
+ throw new ProgrammaticallyFixableSnapError(
291
+ `"${"snap.manifest.json" /* Manifest */}" npm package name ("${manifestPackageName}") does not match the "${"package.json" /* PackageJson */}" "name" field ("${packageJsonName}").`,
292
+ '"name" field mismatch' /* NameMismatch */
293
+ );
294
+ }
295
+ if (packageJsonVersion !== manifestPackageVersion) {
296
+ throw new ProgrammaticallyFixableSnapError(
297
+ `"${"snap.manifest.json" /* Manifest */}" npm package version ("${manifestPackageVersion}") does not match the "${"package.json" /* PackageJson */}" "version" field ("${packageJsonVersion}").`,
298
+ '"version" field mismatch' /* VersionMismatch */
299
+ );
300
+ }
301
+ if (
302
+ // The repository may be `undefined` in package.json but can only be defined
303
+ // or `null` in the Snap manifest due to TS@<4.4 issues.
304
+ (packageJsonRepository || manifestRepository) && !deepEqual(packageJsonRepository, manifestRepository)
305
+ ) {
306
+ throw new ProgrammaticallyFixableSnapError(
307
+ `"${"snap.manifest.json" /* Manifest */}" "repository" field does not match the "${"package.json" /* PackageJson */}" "repository" field.`,
308
+ '"repository" field mismatch' /* RepositoryMismatch */
309
+ );
310
+ }
311
+ await validateSnapShasum(
312
+ { manifest, sourceCode, svgIcon, auxiliaryFiles, localizationFiles },
313
+ `"${"snap.manifest.json" /* Manifest */}" "shasum" field does not match computed shasum.`
314
+ );
315
+ }
316
+
317
+ // src/npm.ts
318
+ var EXPECTED_SNAP_FILES = [
319
+ "manifest",
320
+ "packageJson",
321
+ "sourceCode"
322
+ ];
323
+ var SnapFileNameFromKey = {
324
+ manifest: "snap.manifest.json" /* Manifest */,
325
+ packageJson: "package.json" /* PackageJson */,
326
+ sourceCode: "source code bundle"
327
+ };
328
+ async function validateNpmSnap(snapFiles, errorPrefix) {
329
+ EXPECTED_SNAP_FILES.forEach((key) => {
330
+ if (!snapFiles[key]) {
331
+ throw new Error(
332
+ `${errorPrefix ?? ""}Missing file "${SnapFileNameFromKey[key]}".`
333
+ );
334
+ }
335
+ });
336
+ const {
337
+ manifest,
338
+ packageJson,
339
+ sourceCode,
340
+ svgIcon,
341
+ auxiliaryFiles,
342
+ localizationFiles
343
+ } = snapFiles;
344
+ try {
345
+ assertIsSnapManifest(manifest.result);
346
+ } catch (error) {
347
+ throw new Error(`${errorPrefix ?? ""}${error.message}`);
348
+ }
349
+ const validatedManifest = manifest;
350
+ const { iconPath } = validatedManifest.result.source.location.npm;
351
+ if (iconPath && !svgIcon) {
352
+ throw new Error(`Missing file "${iconPath}".`);
353
+ }
354
+ try {
355
+ assertIsNpmSnapPackageJson(packageJson.result);
356
+ } catch (error) {
357
+ throw new Error(`${errorPrefix ?? ""}${error.message}`);
358
+ }
359
+ const validatedPackageJson = packageJson;
360
+ await validateNpmSnapManifest({
361
+ manifest: validatedManifest,
362
+ packageJson: validatedPackageJson,
363
+ sourceCode,
364
+ svgIcon,
365
+ auxiliaryFiles,
366
+ localizationFiles
367
+ });
368
+ if (svgIcon) {
369
+ try {
370
+ assertIsSnapIcon(svgIcon);
371
+ } catch (error) {
372
+ throw new Error(`${errorPrefix ?? ""}${error.message}`);
373
+ }
374
+ }
375
+ if (localizationFiles) {
376
+ try {
377
+ getValidatedLocalizationFiles(localizationFiles);
378
+ validateSnapManifestLocalizations(
379
+ manifest.result,
380
+ localizationFiles.map((file) => file.result)
381
+ );
382
+ } catch (error) {
383
+ throw new Error(`${errorPrefix ?? ""}${error.message}`);
384
+ }
385
+ }
386
+ return {
387
+ manifest: validatedManifest,
388
+ packageJson: validatedPackageJson,
389
+ sourceCode,
390
+ svgIcon,
391
+ auxiliaryFiles,
392
+ localizationFiles
393
+ };
394
+ }
395
+
396
+ export {
397
+ EXPECTED_SNAP_FILES,
398
+ SnapFileNameFromKey,
399
+ validateNpmSnap,
400
+ checkManifest,
401
+ fixManifest,
402
+ getSnapSourceCode,
403
+ getSnapIcon,
404
+ getSnapFilePaths,
405
+ getSnapFiles,
406
+ getWritableManifest,
407
+ validateNpmSnapManifest
408
+ };
409
+ //# sourceMappingURL=chunk-224DMTNJ.mjs.map