@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.
- package/CHANGELOG.md +24 -1
- package/dist/array.js +8 -0
- package/dist/array.js.map +1 -0
- package/dist/array.mjs +8 -0
- package/dist/array.mjs.map +1 -0
- package/dist/auxiliary-files.js +12 -0
- package/dist/auxiliary-files.js.map +1 -0
- package/dist/auxiliary-files.mjs +12 -0
- package/dist/auxiliary-files.mjs.map +1 -0
- package/dist/base64.js +13 -0
- package/dist/base64.js.map +1 -0
- package/dist/base64.mjs +13 -0
- package/dist/base64.mjs.map +1 -0
- package/dist/bytes.js +10 -0
- package/dist/bytes.js.map +1 -0
- package/dist/bytes.mjs +10 -0
- package/dist/bytes.mjs.map +1 -0
- package/dist/caveats.js +8 -0
- package/dist/caveats.js.map +1 -0
- package/dist/caveats.mjs +8 -0
- package/dist/caveats.mjs.map +1 -0
- package/dist/checksum.js +13 -0
- package/dist/checksum.js.map +1 -0
- package/dist/checksum.mjs +13 -0
- package/dist/checksum.mjs.map +1 -0
- package/dist/chunk-224DMTNJ.mjs +409 -0
- package/dist/chunk-224DMTNJ.mjs.map +1 -0
- package/dist/chunk-2IWSQJKQ.mjs +193 -0
- package/dist/chunk-2IWSQJKQ.mjs.map +1 -0
- package/dist/chunk-2LBN5T56.js +64 -0
- package/dist/chunk-2LBN5T56.js.map +1 -0
- package/dist/chunk-2PCPD5XY.js +169 -0
- package/dist/chunk-2PCPD5XY.js.map +1 -0
- package/dist/chunk-3SOYDY4W.js +152 -0
- package/dist/chunk-3SOYDY4W.js.map +1 -0
- package/dist/chunk-44GPX66J.mjs +70 -0
- package/dist/chunk-44GPX66J.mjs.map +1 -0
- package/dist/chunk-44VFHYJO.js +249 -0
- package/dist/chunk-44VFHYJO.js.map +1 -0
- package/dist/chunk-473MIETW.js +18 -0
- package/dist/chunk-473MIETW.js.map +1 -0
- package/dist/chunk-4BDR6KRH.js +50 -0
- package/dist/chunk-4BDR6KRH.js.map +1 -0
- package/dist/chunk-4CMD46B2.js +1 -0
- package/dist/chunk-4CMD46B2.js.map +1 -0
- package/dist/chunk-5R7UF7KM.mjs +21 -0
- package/dist/chunk-5R7UF7KM.mjs.map +1 -0
- package/dist/chunk-63OXILAY.mjs +69 -0
- package/dist/chunk-63OXILAY.mjs.map +1 -0
- package/dist/chunk-6CHO3LOX.mjs +10 -0
- package/dist/chunk-6CHO3LOX.mjs.map +1 -0
- package/dist/chunk-6LOYTBS3.js +107 -0
- package/dist/chunk-6LOYTBS3.js.map +1 -0
- package/dist/chunk-6YRUDGNL.mjs +18 -0
- package/dist/chunk-6YRUDGNL.mjs.map +1 -0
- package/dist/chunk-772OPTGX.js +70 -0
- package/dist/chunk-772OPTGX.js.map +1 -0
- package/dist/chunk-7LG4D4XA.mjs +20 -0
- package/dist/chunk-7LG4D4XA.mjs.map +1 -0
- package/dist/chunk-7LOABHVW.js +1 -0
- package/dist/chunk-7LOABHVW.js.map +1 -0
- package/dist/chunk-7MTAHOWC.mjs +1 -0
- package/dist/chunk-7MTAHOWC.mjs.map +1 -0
- package/dist/chunk-7P62OIGX.js +69 -0
- package/dist/chunk-7P62OIGX.js.map +1 -0
- package/dist/chunk-7Y3WSN44.mjs +103 -0
- package/dist/chunk-7Y3WSN44.mjs.map +1 -0
- package/dist/chunk-A3RRMELT.mjs +1 -0
- package/dist/chunk-A3RRMELT.mjs.map +1 -0
- package/dist/chunk-A6E325SZ.js +211 -0
- package/dist/chunk-A6E325SZ.js.map +1 -0
- package/dist/chunk-AFQY2CNY.js +109 -0
- package/dist/chunk-AFQY2CNY.js.map +1 -0
- package/dist/chunk-AOGVLPQZ.js +18 -0
- package/dist/chunk-AOGVLPQZ.js.map +1 -0
- package/dist/chunk-AS5P6JRP.mjs +9 -0
- package/dist/chunk-AS5P6JRP.mjs.map +1 -0
- package/dist/chunk-ASZWZ7JT.js +20 -0
- package/dist/chunk-ASZWZ7JT.js.map +1 -0
- package/dist/chunk-BGSO2GQC.mjs +41 -0
- package/dist/chunk-BGSO2GQC.mjs.map +1 -0
- package/dist/chunk-CMOSYNZR.js +95 -0
- package/dist/chunk-CMOSYNZR.js.map +1 -0
- package/dist/chunk-CNNMLOQ6.js +409 -0
- package/dist/chunk-CNNMLOQ6.js.map +1 -0
- package/dist/chunk-CQRPSEH3.js +74 -0
- package/dist/chunk-CQRPSEH3.js.map +1 -0
- package/dist/chunk-DKDGMZFU.mjs +74 -0
- package/dist/chunk-DKDGMZFU.mjs.map +1 -0
- package/dist/chunk-E3BDBG6T.js +20 -0
- package/dist/chunk-E3BDBG6T.js.map +1 -0
- package/dist/chunk-EA2FOAEG.mjs +64 -0
- package/dist/chunk-EA2FOAEG.mjs.map +1 -0
- package/dist/chunk-EFRPCO3C.js +1 -0
- package/dist/chunk-EFRPCO3C.js.map +1 -0
- package/dist/chunk-ENKAY3PI.js +281 -0
- package/dist/chunk-ENKAY3PI.js.map +1 -0
- package/dist/chunk-EXUEHPZ4.mjs +107 -0
- package/dist/chunk-EXUEHPZ4.mjs.map +1 -0
- package/dist/chunk-FOWIC2SO.mjs +38 -0
- package/dist/chunk-FOWIC2SO.mjs.map +1 -0
- package/dist/chunk-GTAYOKI4.mjs +211 -0
- package/dist/chunk-GTAYOKI4.mjs.map +1 -0
- package/dist/chunk-HF7HUZ5Z.js +10 -0
- package/dist/chunk-HF7HUZ5Z.js.map +1 -0
- package/dist/chunk-HJRCBSNA.mjs +32 -0
- package/dist/chunk-HJRCBSNA.mjs.map +1 -0
- package/dist/chunk-HJYRGKCX.js +50 -0
- package/dist/chunk-HJYRGKCX.js.map +1 -0
- package/dist/chunk-HYF7Q6VY.mjs +1 -0
- package/dist/chunk-HYF7Q6VY.mjs.map +1 -0
- package/dist/chunk-I77AVJKV.mjs +152 -0
- package/dist/chunk-I77AVJKV.mjs.map +1 -0
- package/dist/chunk-IGMAXVPP.mjs +21 -0
- package/dist/chunk-IGMAXVPP.mjs.map +1 -0
- package/dist/chunk-IHQPAJ2B.js +38 -0
- package/dist/chunk-IHQPAJ2B.js.map +1 -0
- package/dist/chunk-IJX3CXOY.js +9 -0
- package/dist/chunk-IJX3CXOY.js.map +1 -0
- package/dist/chunk-IPOE62V4.js +30 -0
- package/dist/chunk-IPOE62V4.js.map +1 -0
- package/dist/chunk-IV3FSWZ7.mjs +9 -0
- package/dist/chunk-IV3FSWZ7.mjs.map +1 -0
- package/dist/chunk-IXBJNVHK.js +22 -0
- package/dist/chunk-IXBJNVHK.js.map +1 -0
- package/dist/chunk-JI5NQ2C3.mjs +1 -0
- package/dist/chunk-JI5NQ2C3.mjs.map +1 -0
- package/dist/chunk-JMDSN227.mjs +25 -0
- package/dist/chunk-JMDSN227.mjs.map +1 -0
- package/dist/chunk-K6BCBPXF.js +151 -0
- package/dist/chunk-K6BCBPXF.js.map +1 -0
- package/dist/chunk-KMLVVVK3.mjs +22 -0
- package/dist/chunk-KMLVVVK3.mjs.map +1 -0
- package/dist/chunk-LBRWAC27.js +56 -0
- package/dist/chunk-LBRWAC27.js.map +1 -0
- package/dist/chunk-LCWDLIK5.mjs +281 -0
- package/dist/chunk-LCWDLIK5.mjs.map +1 -0
- package/dist/chunk-LEKZPKS2.js +21 -0
- package/dist/chunk-LEKZPKS2.js.map +1 -0
- package/dist/chunk-LSPOXPJJ.mjs +63 -0
- package/dist/chunk-LSPOXPJJ.mjs.map +1 -0
- package/dist/chunk-MCEKOGEG.mjs +50 -0
- package/dist/chunk-MCEKOGEG.mjs.map +1 -0
- package/dist/chunk-MLOQHUOY.js +32 -0
- package/dist/chunk-MLOQHUOY.js.map +1 -0
- package/dist/chunk-N722KRZW.js +41 -0
- package/dist/chunk-N722KRZW.js.map +1 -0
- package/dist/chunk-NUCLSR2G.js +8 -0
- package/dist/chunk-NUCLSR2G.js.map +1 -0
- package/dist/chunk-P252LKUT.mjs +9 -0
- package/dist/chunk-P252LKUT.mjs.map +1 -0
- package/dist/chunk-PHUTP7NB.js +25 -0
- package/dist/chunk-PHUTP7NB.js.map +1 -0
- package/dist/chunk-PJMEJVOB.mjs +29 -0
- package/dist/chunk-PJMEJVOB.mjs.map +1 -0
- package/dist/chunk-PLBSSUVY.js +29 -0
- package/dist/chunk-PLBSSUVY.js.map +1 -0
- package/dist/chunk-Q7RCL5IE.js +30 -0
- package/dist/chunk-Q7RCL5IE.js.map +1 -0
- package/dist/chunk-QSCKTRRU.js +21 -0
- package/dist/chunk-QSCKTRRU.js.map +1 -0
- package/dist/chunk-QX6MAFJU.mjs +169 -0
- package/dist/chunk-QX6MAFJU.mjs.map +1 -0
- package/dist/chunk-QYPLUMB7.mjs +249 -0
- package/dist/chunk-QYPLUMB7.mjs.map +1 -0
- package/dist/chunk-RAZ7XG4Z.mjs +1 -0
- package/dist/chunk-RAZ7XG4Z.mjs.map +1 -0
- package/dist/chunk-SRMDDOVO.mjs +20 -0
- package/dist/chunk-SRMDDOVO.mjs.map +1 -0
- package/dist/chunk-T3VM5YXY.js +1 -0
- package/dist/chunk-T3VM5YXY.js.map +1 -0
- package/dist/chunk-T3YY4JIJ.js +9 -0
- package/dist/chunk-T3YY4JIJ.js.map +1 -0
- package/dist/chunk-T6FWIDA6.mjs +95 -0
- package/dist/chunk-T6FWIDA6.mjs.map +1 -0
- package/dist/chunk-TFP64TMV.js +1 -0
- package/dist/chunk-TFP64TMV.js.map +1 -0
- package/dist/chunk-TG4BDSYJ.js +193 -0
- package/dist/chunk-TG4BDSYJ.js.map +1 -0
- package/dist/chunk-UMZNVWEM.mjs +30 -0
- package/dist/chunk-UMZNVWEM.mjs.map +1 -0
- package/dist/chunk-UW74NLTC.mjs +18 -0
- package/dist/chunk-UW74NLTC.mjs.map +1 -0
- package/dist/chunk-VWGXNUMD.mjs +151 -0
- package/dist/chunk-VWGXNUMD.mjs.map +1 -0
- package/dist/chunk-WEOCOYES.mjs +109 -0
- package/dist/chunk-WEOCOYES.mjs.map +1 -0
- package/dist/chunk-WF56W2AR.mjs +30 -0
- package/dist/chunk-WF56W2AR.mjs.map +1 -0
- package/dist/chunk-X44Z53IG.js +103 -0
- package/dist/chunk-X44Z53IG.js.map +1 -0
- package/dist/chunk-Z2JQNSVL.mjs +8 -0
- package/dist/chunk-Z2JQNSVL.mjs.map +1 -0
- package/dist/chunk-ZJRWU4AJ.mjs +50 -0
- package/dist/chunk-ZJRWU4AJ.mjs.map +1 -0
- package/dist/chunk-ZT3KKTS2.js +9 -0
- package/dist/chunk-ZT3KKTS2.js.map +1 -0
- package/dist/cronjob.js +20 -0
- package/dist/cronjob.js.map +1 -0
- package/dist/cronjob.mjs +20 -0
- package/dist/cronjob.mjs.map +1 -0
- package/dist/deep-clone.js +8 -0
- package/dist/deep-clone.js.map +1 -0
- package/dist/deep-clone.mjs +8 -0
- package/dist/deep-clone.mjs.map +1 -0
- package/dist/default-endowments.js +8 -0
- package/dist/default-endowments.js.map +1 -0
- package/dist/default-endowments.mjs +8 -0
- package/dist/default-endowments.mjs.map +1 -0
- package/dist/derivation-paths.js +13 -0
- package/dist/derivation-paths.js.map +1 -0
- package/dist/derivation-paths.mjs +13 -0
- package/dist/derivation-paths.mjs.map +1 -0
- package/dist/entropy.js +10 -0
- package/dist/entropy.js.map +1 -0
- package/dist/entropy.mjs +10 -0
- package/dist/entropy.mjs.map +1 -0
- package/dist/errors.js +20 -0
- package/dist/errors.js.map +1 -0
- package/dist/errors.mjs +20 -0
- package/dist/errors.mjs.map +1 -0
- package/dist/eval-worker.js +43 -0
- package/dist/eval-worker.js.map +1 -0
- package/dist/eval-worker.mjs +43 -0
- package/dist/eval-worker.mjs.map +1 -0
- package/dist/eval.js +17 -0
- package/dist/eval.js.map +1 -0
- package/dist/eval.mjs +17 -0
- package/dist/eval.mjs.map +1 -0
- package/dist/fs.js +28 -0
- package/dist/fs.js.map +1 -0
- package/dist/fs.mjs +28 -0
- package/dist/fs.mjs.map +1 -0
- package/dist/handler-types.js +10 -0
- package/dist/handler-types.js.map +1 -0
- package/dist/handler-types.mjs +10 -0
- package/dist/handler-types.mjs.map +1 -0
- package/dist/handlers.js +35 -0
- package/dist/handlers.js.map +1 -0
- package/dist/handlers.mjs +35 -0
- package/dist/handlers.mjs.map +1 -0
- package/dist/icon.js +14 -0
- package/dist/icon.js.map +1 -0
- package/dist/icon.mjs +14 -0
- package/dist/icon.mjs.map +1 -0
- package/dist/iframe.js +8 -0
- package/dist/iframe.js.map +1 -0
- package/dist/iframe.mjs +8 -0
- package/dist/iframe.mjs.map +1 -0
- package/dist/index.executionenv.js +134 -0
- package/dist/index.executionenv.js.map +1 -0
- package/dist/index.executionenv.mjs +134 -0
- package/dist/index.executionenv.mjs.map +1 -0
- package/dist/index.js +378 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +378 -0
- package/dist/index.mjs.map +1 -0
- package/dist/json-rpc.js +18 -0
- package/dist/json-rpc.js.map +1 -0
- package/dist/json-rpc.mjs +18 -0
- package/dist/json-rpc.mjs.map +1 -0
- package/dist/json.js +8 -0
- package/dist/json.js.map +1 -0
- package/dist/json.mjs +8 -0
- package/dist/json.mjs.map +1 -0
- package/dist/localization.js +23 -0
- package/dist/localization.js.map +1 -0
- package/dist/localization.mjs +23 -0
- package/dist/localization.mjs.map +1 -0
- package/dist/logging.js +14 -0
- package/dist/logging.js.map +1 -0
- package/dist/logging.mjs +14 -0
- package/dist/logging.mjs.map +1 -0
- package/dist/manifest/index.js +59 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/index.mjs +59 -0
- package/dist/manifest/index.mjs.map +1 -0
- package/dist/manifest/manifest.js +42 -0
- package/dist/manifest/manifest.js.map +1 -0
- package/dist/manifest/manifest.mjs +42 -0
- package/dist/manifest/manifest.mjs.map +1 -0
- package/dist/manifest/node.js +85 -0
- package/dist/manifest/node.js.map +1 -0
- package/dist/manifest/node.mjs +85 -0
- package/dist/manifest/node.mjs.map +1 -0
- package/dist/manifest/validation.js +58 -0
- package/dist/manifest/validation.js.map +1 -0
- package/dist/manifest/validation.mjs +58 -0
- package/dist/manifest/validation.mjs.map +1 -0
- package/dist/mock.js +13 -0
- package/dist/mock.js.map +1 -0
- package/dist/mock.mjs +13 -0
- package/dist/mock.mjs.map +1 -0
- package/dist/namespace.js +44 -0
- package/dist/namespace.js.map +1 -0
- package/dist/namespace.mjs +44 -0
- package/dist/namespace.mjs.map +1 -0
- package/dist/node.js +448 -0
- package/dist/node.js.map +1 -0
- package/dist/node.mjs +448 -0
- package/dist/node.mjs.map +1 -0
- package/dist/npm.js +32 -0
- package/dist/npm.js.map +1 -0
- package/dist/npm.mjs +32 -0
- package/dist/npm.mjs.map +1 -0
- package/dist/path.js +8 -0
- package/dist/path.js.map +1 -0
- package/dist/path.mjs +8 -0
- package/dist/path.mjs.map +1 -0
- package/dist/post-process.js +10 -0
- package/dist/post-process.js.map +1 -0
- package/dist/post-process.mjs +10 -0
- package/dist/post-process.mjs.map +1 -0
- package/dist/snaps.js +48 -0
- package/dist/snaps.js.map +1 -0
- package/dist/snaps.mjs +48 -0
- package/dist/snaps.mjs.map +1 -0
- package/dist/strings.js +8 -0
- package/dist/strings.js.map +1 -0
- package/dist/strings.mjs +8 -0
- package/dist/strings.mjs.map +1 -0
- package/dist/structs.js +31 -0
- package/dist/structs.js.map +1 -0
- package/dist/structs.mjs +31 -0
- package/dist/structs.mjs.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types/bytes.d.ts +1 -1
- package/dist/types/checksum.d.ts +1 -1
- package/dist/types/index.d.ts +1 -6
- package/dist/types/json-rpc.d.ts +1 -1
- package/dist/types/localization.d.ts +1 -1
- package/dist/types/manifest/index.d.ts +0 -1
- package/dist/types/manifest/manifest.d.ts +1 -1
- package/dist/types/manifest/node.d.ts +2 -0
- package/dist/types/manifest/validation.d.ts +5 -5
- package/dist/types/node.d.ts +8 -0
- package/dist/types/structs.d.ts +0 -20
- package/dist/types/ui.d.ts +7 -0
- package/dist/types/virtual-file/index.d.ts +0 -1
- package/dist/types/virtual-file/node.d.ts +2 -0
- package/dist/types.js +28 -0
- package/dist/types.js.map +1 -0
- package/dist/types.mjs +28 -0
- package/dist/types.mjs.map +1 -0
- package/dist/ui.js +12 -0
- package/dist/ui.js.map +1 -0
- package/dist/ui.mjs +12 -0
- package/dist/ui.mjs.map +1 -0
- package/dist/validation.js +24 -0
- package/dist/validation.js.map +1 -0
- package/dist/validation.mjs +24 -0
- package/dist/validation.mjs.map +1 -0
- package/dist/versions.js +12 -0
- package/dist/versions.js.map +1 -0
- package/dist/versions.mjs +12 -0
- package/dist/versions.mjs.map +1 -0
- package/dist/virtual-file/VirtualFile.js +9 -0
- package/dist/virtual-file/VirtualFile.js.map +1 -0
- package/dist/virtual-file/VirtualFile.mjs +9 -0
- package/dist/virtual-file/VirtualFile.mjs.map +1 -0
- package/dist/virtual-file/index.js +10 -0
- package/dist/virtual-file/index.js.map +1 -0
- package/dist/virtual-file/index.mjs +10 -0
- package/dist/virtual-file/index.mjs.map +1 -0
- package/dist/virtual-file/node.js +17 -0
- package/dist/virtual-file/node.js.map +1 -0
- package/dist/virtual-file/node.mjs +17 -0
- package/dist/virtual-file/node.mjs.map +1 -0
- package/dist/virtual-file/toVirtualFile.js +12 -0
- package/dist/virtual-file/toVirtualFile.js.map +1 -0
- package/dist/virtual-file/toVirtualFile.mjs +12 -0
- package/dist/virtual-file/toVirtualFile.mjs.map +1 -0
- package/package.json +23 -38
- package/dist/cjs/array.js +0 -23
- package/dist/cjs/array.js.map +0 -1
- package/dist/cjs/auxiliary-files.js +0 -27
- package/dist/cjs/auxiliary-files.js.map +0 -1
- package/dist/cjs/base64.js +0 -44
- package/dist/cjs/base64.js.map +0 -1
- package/dist/cjs/bytes.js +0 -23
- package/dist/cjs/bytes.js.map +0 -1
- package/dist/cjs/caveats.js +0 -48
- package/dist/cjs/caveats.js.map +0 -1
- package/dist/cjs/checksum.js +0 -43
- package/dist/cjs/checksum.js.map +0 -1
- package/dist/cjs/cronjob.js +0 -77
- package/dist/cjs/cronjob.js.map +0 -1
- package/dist/cjs/deep-clone.js +0 -22
- package/dist/cjs/deep-clone.js.map +0 -1
- package/dist/cjs/default-endowments.js +0 -49
- package/dist/cjs/default-endowments.js.map +0 -1
- package/dist/cjs/derivation-paths.js +0 -300
- package/dist/cjs/derivation-paths.js.map +0 -1
- package/dist/cjs/entropy.js +0 -23
- package/dist/cjs/entropy.js.map +0 -1
- package/dist/cjs/errors.js +0 -221
- package/dist/cjs/errors.js.map +0 -1
- package/dist/cjs/eval-worker.js +0 -44
- package/dist/cjs/eval-worker.js.map +0 -1
- package/dist/cjs/eval.js +0 -77
- package/dist/cjs/eval.js.map +0 -1
- package/dist/cjs/fs.js +0 -126
- package/dist/cjs/fs.js.map +0 -1
- package/dist/cjs/handler-types.js +0 -34
- package/dist/cjs/handler-types.js.map +0 -1
- package/dist/cjs/handlers.js +0 -173
- package/dist/cjs/handlers.js.map +0 -1
- package/dist/cjs/icon.js +0 -66
- package/dist/cjs/icon.js.map +0 -1
- package/dist/cjs/iframe.js +0 -59
- package/dist/cjs/iframe.js.map +0 -1
- package/dist/cjs/index.browser.js +0 -49
- package/dist/cjs/index.browser.js.map +0 -1
- package/dist/cjs/index.executionenv.js +0 -27
- package/dist/cjs/index.executionenv.js.map +0 -1
- package/dist/cjs/index.js +0 -54
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/json-rpc.js +0 -81
- package/dist/cjs/json-rpc.js.map +0 -1
- package/dist/cjs/json.js +0 -16
- package/dist/cjs/json.js.map +0 -1
- package/dist/cjs/localization.js +0 -113
- package/dist/cjs/localization.js.map +0 -1
- package/dist/cjs/logging.js +0 -40
- package/dist/cjs/logging.js.map +0 -1
- package/dist/cjs/manifest/index.browser.js +0 -20
- package/dist/cjs/manifest/index.browser.js.map +0 -1
- package/dist/cjs/manifest/index.js +0 -21
- package/dist/cjs/manifest/index.js.map +0 -1
- package/dist/cjs/manifest/manifest.js +0 -283
- package/dist/cjs/manifest/manifest.js.map +0 -1
- package/dist/cjs/manifest/validation.js +0 -244
- package/dist/cjs/manifest/validation.js.map +0 -1
- package/dist/cjs/mock.js +0 -128
- package/dist/cjs/mock.js.map +0 -1
- package/dist/cjs/namespace.js +0 -136
- package/dist/cjs/namespace.js.map +0 -1
- package/dist/cjs/npm.js +0 -96
- package/dist/cjs/npm.js.map +0 -1
- package/dist/cjs/path.js +0 -21
- package/dist/cjs/path.js.map +0 -1
- package/dist/cjs/post-process.js +0 -328
- package/dist/cjs/post-process.js.map +0 -1
- package/dist/cjs/snaps.js +0 -232
- package/dist/cjs/snaps.js.map +0 -1
- package/dist/cjs/strings.js +0 -21
- package/dist/cjs/strings.js.map +0 -1
- package/dist/cjs/structs.js +0 -210
- package/dist/cjs/structs.js.map +0 -1
- package/dist/cjs/types.js +0 -104
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/ui.js +0 -53
- package/dist/cjs/ui.js.map +0 -1
- package/dist/cjs/validation.js +0 -24
- package/dist/cjs/validation.js.map +0 -1
- package/dist/cjs/versions.js +0 -47
- package/dist/cjs/versions.js.map +0 -1
- package/dist/cjs/virtual-file/VirtualFile.js +0 -92
- package/dist/cjs/virtual-file/VirtualFile.js.map +0 -1
- package/dist/cjs/virtual-file/index.browser.js +0 -20
- package/dist/cjs/virtual-file/index.browser.js.map +0 -1
- package/dist/cjs/virtual-file/index.js +0 -21
- package/dist/cjs/virtual-file/index.js.map +0 -1
- package/dist/cjs/virtual-file/toVirtualFile.js +0 -33
- package/dist/cjs/virtual-file/toVirtualFile.js.map +0 -1
- package/dist/esm/array.js +0 -13
- package/dist/esm/array.js.map +0 -1
- package/dist/esm/auxiliary-files.js +0 -23
- package/dist/esm/auxiliary-files.js.map +0 -1
- package/dist/esm/base64.js +0 -36
- package/dist/esm/base64.js.map +0 -1
- package/dist/esm/bytes.js +0 -18
- package/dist/esm/bytes.js.map +0 -1
- package/dist/esm/caveats.js +0 -38
- package/dist/esm/caveats.js.map +0 -1
- package/dist/esm/checksum.js +0 -41
- package/dist/esm/checksum.js.map +0 -1
- package/dist/esm/cronjob.js +0 -59
- package/dist/esm/cronjob.js.map +0 -1
- package/dist/esm/deep-clone.js +0 -7
- package/dist/esm/deep-clone.js.map +0 -1
- package/dist/esm/default-endowments.js +0 -39
- package/dist/esm/default-endowments.js.map +0 -1
- package/dist/esm/derivation-paths.js +0 -287
- package/dist/esm/derivation-paths.js.map +0 -1
- package/dist/esm/entropy.js +0 -6
- package/dist/esm/entropy.js.map +0 -1
- package/dist/esm/errors.js +0 -211
- package/dist/esm/errors.js.map +0 -1
- package/dist/esm/eval-worker.js +0 -40
- package/dist/esm/eval-worker.js.map +0 -1
- package/dist/esm/eval.js +0 -65
- package/dist/esm/eval.js.map +0 -1
- package/dist/esm/fs.js +0 -136
- package/dist/esm/fs.js.map +0 -1
- package/dist/esm/handler-types.js +0 -16
- package/dist/esm/handler-types.js.map +0 -1
- package/dist/esm/handlers.js +0 -119
- package/dist/esm/handlers.js.map +0 -1
- package/dist/esm/icon.js +0 -51
- package/dist/esm/icon.js.map +0 -1
- package/dist/esm/iframe.js +0 -49
- package/dist/esm/iframe.js.map +0 -1
- package/dist/esm/index.browser.js +0 -32
- package/dist/esm/index.browser.js.map +0 -1
- package/dist/esm/index.executionenv.js +0 -10
- package/dist/esm/index.executionenv.js.map +0 -1
- package/dist/esm/index.js +0 -37
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/json-rpc.js +0 -79
- package/dist/esm/json-rpc.js.map +0 -1
- package/dist/esm/json.js +0 -17
- package/dist/esm/json.js.map +0 -1
- package/dist/esm/localization.js +0 -115
- package/dist/esm/localization.js.map +0 -1
- package/dist/esm/logging.js +0 -59
- package/dist/esm/logging.js.map +0 -1
- package/dist/esm/manifest/index.browser.js +0 -3
- package/dist/esm/manifest/index.browser.js.map +0 -1
- package/dist/esm/manifest/index.js +0 -4
- package/dist/esm/manifest/index.js.map +0 -1
- package/dist/esm/manifest/manifest.js +0 -307
- package/dist/esm/manifest/manifest.js.map +0 -1
- package/dist/esm/manifest/validation.js +0 -190
- package/dist/esm/manifest/validation.js.map +0 -1
- package/dist/esm/mock.js +0 -111
- package/dist/esm/mock.js.map +0 -1
- package/dist/esm/namespace.js +0 -113
- package/dist/esm/namespace.js.map +0 -1
- package/dist/esm/npm.js +0 -85
- package/dist/esm/npm.js.map +0 -1
- package/dist/esm/path.js +0 -17
- package/dist/esm/path.js.map +0 -1
- package/dist/esm/post-process.js +0 -333
- package/dist/esm/post-process.js.map +0 -1
- package/dist/esm/snaps.js +0 -217
- package/dist/esm/snaps.js.map +0 -1
- package/dist/esm/strings.js +0 -11
- package/dist/esm/strings.js.map +0 -1
- package/dist/esm/structs.js +0 -295
- package/dist/esm/structs.js.map +0 -1
- package/dist/esm/types.js +0 -78
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/ui.js +0 -50
- package/dist/esm/ui.js.map +0 -1
- package/dist/esm/validation.js +0 -19
- package/dist/esm/validation.js.map +0 -1
- package/dist/esm/versions.js +0 -41
- package/dist/esm/versions.js.map +0 -1
- package/dist/esm/virtual-file/VirtualFile.js +0 -82
- package/dist/esm/virtual-file/VirtualFile.js.map +0 -1
- package/dist/esm/virtual-file/index.browser.js +0 -3
- package/dist/esm/virtual-file/index.browser.js.map +0 -1
- package/dist/esm/virtual-file/index.js +0 -4
- package/dist/esm/virtual-file/index.js.map +0 -1
- package/dist/esm/virtual-file/toVirtualFile.js +0 -26
- package/dist/esm/virtual-file/toVirtualFile.js.map +0 -1
- package/dist/types/index.browser.d.ts +0 -30
- package/dist/types/manifest/index.browser.d.ts +0 -1
- 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@
|
|
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 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/array.mjs
ADDED
|
@@ -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":""}
|
package/dist/base64.mjs
ADDED
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/caveats.js
ADDED
|
@@ -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":""}
|
package/dist/caveats.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/checksum.js
ADDED
|
@@ -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
|