@metamask/snaps-utils 7.6.0 → 7.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -1
- package/dist/auxiliary-files.js +8 -5
- package/dist/auxiliary-files.mjs +9 -6
- package/dist/base64.js +4 -4
- package/dist/base64.mjs +3 -3
- package/dist/bytes.js +3 -3
- package/dist/bytes.mjs +2 -2
- package/dist/checksum.js +4 -4
- package/dist/checksum.mjs +3 -3
- package/dist/{chunk-AD2MMGAX.js → chunk-25ESL4NL.js} +27 -27
- package/dist/{chunk-6YRUDGNL.mjs → chunk-3S4INAGA.mjs} +2 -2
- package/dist/{chunk-I4TRH6VO.mjs → chunk-4AA3TKRJ.mjs} +2 -2
- package/dist/chunk-4AA3TKRJ.mjs.map +1 -0
- package/dist/{chunk-2LBN5T56.js → chunk-4ZJOU3LR.js} +9 -2
- package/dist/chunk-4ZJOU3LR.js.map +1 -0
- package/dist/{chunk-LNZLPDBB.js → chunk-5I5WPAVD.js} +24 -20
- package/dist/chunk-5I5WPAVD.js.map +1 -0
- package/dist/chunk-5WKQI22S.js +7 -0
- package/dist/chunk-5WKQI22S.js.map +1 -0
- package/dist/{chunk-RS5E2NXN.js → chunk-6ATNGN44.js} +43 -7
- package/dist/chunk-6ATNGN44.js.map +1 -0
- package/dist/{chunk-G6BVXNNZ.js → chunk-6HXIPMBN.js} +3 -3
- package/dist/{chunk-NQMQIAWE.mjs → chunk-7HLSXEHK.mjs} +43 -7
- package/dist/chunk-7HLSXEHK.mjs.map +1 -0
- package/dist/{chunk-T6FWIDA6.mjs → chunk-AJNKQYKP.mjs} +3 -3
- package/dist/chunk-AJNKQYKP.mjs.map +1 -0
- package/dist/{chunk-MLOQHUOY.js → chunk-AMW2VJ3N.js} +3 -3
- package/dist/{chunk-K2OTEZZZ.mjs → chunk-ANYNWSCA.mjs} +11 -4
- package/dist/chunk-ANYNWSCA.mjs.map +1 -0
- package/dist/{chunk-R5DO7T2D.js → chunk-B5GNTDE2.js} +2 -2
- package/dist/chunk-B5GNTDE2.js.map +1 -0
- package/dist/{chunk-WZ457PEQ.mjs → chunk-CJK7DDV2.mjs} +2 -2
- package/dist/chunk-CJK7DDV2.mjs.map +1 -0
- package/dist/{chunk-ZJRWU4AJ.mjs → chunk-DE22V5AO.mjs} +4 -1
- package/dist/{chunk-ZJRWU4AJ.mjs.map → chunk-DE22V5AO.mjs.map} +1 -1
- package/dist/{chunk-HJYRGKCX.js → chunk-DEQUNIME.js} +4 -1
- package/dist/chunk-DEQUNIME.js.map +1 -0
- package/dist/chunk-F6G67XQ4.js +1 -0
- package/dist/{chunk-GTAYOKI4.mjs → chunk-FLSK6ISS.mjs} +20 -5
- package/dist/chunk-FLSK6ISS.mjs.map +1 -0
- package/dist/{chunk-YCIPY3UP.mjs → chunk-H35ZUVQT.mjs} +7 -7
- package/dist/chunk-H35ZUVQT.mjs.map +1 -0
- package/dist/{chunk-IPOE62V4.js → chunk-I2SWLZ34.js} +2 -2
- package/dist/chunk-I2SWLZ34.js.map +1 -0
- package/dist/{chunk-FOWIC2SO.mjs → chunk-JJTIVHFX.mjs} +2 -2
- package/dist/{chunk-7SFY75BI.mjs → chunk-KCECQM3L.mjs} +11 -11
- package/dist/{chunk-EXUEHPZ4.mjs → chunk-LHQP7CUJ.mjs} +2 -2
- package/dist/chunk-LHQP7CUJ.mjs.map +1 -0
- package/dist/{chunk-6LOYTBS3.js → chunk-LOJA2ZS4.js} +2 -2
- package/dist/chunk-LOJA2ZS4.js.map +1 -0
- package/dist/{chunk-QSCKTRRU.js → chunk-MKFQAXRF.js} +3 -3
- package/dist/{chunk-UMZNVWEM.mjs → chunk-N5HVDE3P.mjs} +2 -2
- package/dist/chunk-N5HVDE3P.mjs.map +1 -0
- package/dist/{chunk-IHQPAJ2B.js → chunk-OBN2WDFU.js} +3 -3
- package/dist/chunk-OYZPBNHS.mjs +1 -0
- package/dist/chunk-PLNIERDY.js +34 -0
- package/dist/chunk-PLNIERDY.js.map +1 -0
- package/dist/{chunk-CMOSYNZR.js → chunk-PZNIU23I.js} +3 -3
- package/dist/chunk-PZNIU23I.js.map +1 -0
- package/dist/{chunk-K4B37F3L.js → chunk-RD6BN2TQ.js} +12 -12
- package/dist/chunk-RD6BN2TQ.js.map +1 -0
- package/dist/{chunk-7Y4VHT3E.js → chunk-SB43G2RI.js} +8 -8
- package/dist/chunk-SPCIIRSB.mjs +7 -0
- package/dist/chunk-SPCIIRSB.mjs.map +1 -0
- package/dist/{chunk-37VHIRUJ.js → chunk-T2VA4YJE.js} +11 -4
- package/dist/chunk-T2VA4YJE.js.map +1 -0
- package/dist/{chunk-473MIETW.js → chunk-UAINMOUU.js} +3 -3
- package/dist/chunk-VIAHMNTA.mjs +34 -0
- package/dist/chunk-VIAHMNTA.mjs.map +1 -0
- package/dist/{chunk-A6E325SZ.js → chunk-VOPTAKVG.js} +20 -5
- package/dist/chunk-VOPTAKVG.js.map +1 -0
- package/dist/{chunk-OJM2SKJZ.js → chunk-X2GGUOMY.js} +2 -2
- package/dist/chunk-X2GGUOMY.js.map +1 -0
- package/dist/{chunk-LBCPJOAV.mjs → chunk-X3UZCGO5.mjs} +2 -2
- package/dist/{chunk-HJRCBSNA.mjs → chunk-XF2AZMWG.mjs} +2 -2
- package/dist/{chunk-VDJTPG6F.js → chunk-XWYJQWHG.js} +3 -3
- package/dist/{chunk-PWLXPALG.mjs → chunk-XZ7362GQ.mjs} +2 -2
- package/dist/{chunk-IGMAXVPP.mjs → chunk-XZNJFDBF.mjs} +2 -2
- package/dist/{chunk-EA2FOAEG.mjs → chunk-YJHQZFR4.mjs} +9 -2
- package/dist/chunk-YJHQZFR4.mjs.map +1 -0
- package/dist/{chunk-G4LY5HGU.mjs → chunk-YNOZU43P.mjs} +6 -6
- package/dist/{chunk-4I22UHIU.mjs → chunk-ZXHR322P.mjs} +28 -24
- package/dist/chunk-ZXHR322P.mjs.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/constants.mjs +8 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/cronjob.js +2 -2
- package/dist/cronjob.mjs +1 -1
- package/dist/eval-worker.js +1 -1
- package/dist/eval-worker.mjs +1 -1
- package/dist/eval.js +5 -5
- package/dist/eval.mjs +4 -4
- package/dist/fs.js +4 -4
- package/dist/fs.mjs +3 -3
- package/dist/handlers.js +2 -2
- package/dist/handlers.mjs +1 -1
- package/dist/index.executionenv.js +4 -4
- package/dist/index.executionenv.mjs +15 -15
- package/dist/index.js +40 -30
- package/dist/index.mjs +76 -66
- package/dist/json-rpc.js +2 -2
- package/dist/json-rpc.mjs +1 -1
- package/dist/localization.js +2 -2
- package/dist/localization.mjs +1 -1
- package/dist/manifest/index.js +12 -10
- package/dist/manifest/index.mjs +11 -9
- package/dist/manifest/manifest.js +16 -14
- package/dist/manifest/manifest.mjs +15 -13
- package/dist/manifest/node.js +16 -14
- package/dist/manifest/node.mjs +15 -13
- package/dist/manifest/validation.js +12 -10
- package/dist/manifest/validation.mjs +11 -9
- package/dist/namespace.js +2 -2
- package/dist/namespace.mjs +1 -1
- package/dist/node.js +44 -34
- package/dist/node.mjs +80 -70
- package/dist/npm.js +16 -14
- package/dist/npm.mjs +15 -13
- package/dist/snaps.js +6 -6
- package/dist/snaps.mjs +5 -5
- package/dist/structs.js +4 -2
- package/dist/structs.mjs +3 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/auxiliary-files.d.ts +7 -0
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/cronjob.d.ts +22 -22
- package/dist/types/handlers.d.ts +39 -144
- package/dist/types/index.d.ts +1 -0
- package/dist/types/json-rpc.d.ts +7 -7
- package/dist/types/localization.d.ts +4 -4
- package/dist/types/manifest/validation.d.ts +2 -2
- package/dist/types/namespace.d.ts +18 -18
- package/dist/types/snaps.d.ts +1 -1
- package/dist/types/structs.d.ts +6 -3
- package/dist/types/types.d.ts +1 -1
- package/dist/types/ui.d.ts +13 -3
- package/dist/types/virtual-file/VirtualFile.d.ts +1 -0
- package/dist/types.js +2 -2
- package/dist/types.mjs +1 -1
- package/dist/ui.js +4 -2
- package/dist/ui.mjs +3 -1
- package/dist/validation.js +14 -12
- package/dist/validation.mjs +13 -11
- package/dist/versions.js +2 -2
- package/dist/versions.mjs +1 -1
- package/dist/virtual-file/VirtualFile.js +2 -2
- package/dist/virtual-file/VirtualFile.mjs +1 -1
- package/dist/virtual-file/index.js +2 -2
- package/dist/virtual-file/index.mjs +1 -1
- package/dist/virtual-file/node.js +3 -3
- package/dist/virtual-file/node.mjs +2 -2
- package/dist/virtual-file/toVirtualFile.js +3 -3
- package/dist/virtual-file/toVirtualFile.mjs +2 -2
- package/package.json +9 -9
- package/dist/chunk-2LBN5T56.js.map +0 -1
- package/dist/chunk-37VHIRUJ.js.map +0 -1
- package/dist/chunk-4I22UHIU.mjs.map +0 -1
- package/dist/chunk-6LOYTBS3.js.map +0 -1
- package/dist/chunk-7LOABHVW.js +0 -1
- package/dist/chunk-7MTAHOWC.mjs +0 -1
- package/dist/chunk-A6E325SZ.js.map +0 -1
- package/dist/chunk-CMOSYNZR.js.map +0 -1
- package/dist/chunk-EA2FOAEG.mjs.map +0 -1
- package/dist/chunk-EXUEHPZ4.mjs.map +0 -1
- package/dist/chunk-GTAYOKI4.mjs.map +0 -1
- package/dist/chunk-HJYRGKCX.js.map +0 -1
- package/dist/chunk-I4TRH6VO.mjs.map +0 -1
- package/dist/chunk-IPOE62V4.js.map +0 -1
- package/dist/chunk-IXBJNVHK.js +0 -22
- package/dist/chunk-IXBJNVHK.js.map +0 -1
- package/dist/chunk-K2OTEZZZ.mjs.map +0 -1
- package/dist/chunk-K4B37F3L.js.map +0 -1
- package/dist/chunk-KMLVVVK3.mjs +0 -22
- package/dist/chunk-KMLVVVK3.mjs.map +0 -1
- package/dist/chunk-LNZLPDBB.js.map +0 -1
- package/dist/chunk-NQMQIAWE.mjs.map +0 -1
- package/dist/chunk-OJM2SKJZ.js.map +0 -1
- package/dist/chunk-R5DO7T2D.js.map +0 -1
- package/dist/chunk-RS5E2NXN.js.map +0 -1
- package/dist/chunk-T6FWIDA6.mjs.map +0 -1
- package/dist/chunk-UMZNVWEM.mjs.map +0 -1
- package/dist/chunk-WZ457PEQ.mjs.map +0 -1
- package/dist/chunk-YCIPY3UP.mjs.map +0 -1
- /package/dist/{chunk-AD2MMGAX.js.map → chunk-25ESL4NL.js.map} +0 -0
- /package/dist/{chunk-6YRUDGNL.mjs.map → chunk-3S4INAGA.mjs.map} +0 -0
- /package/dist/{chunk-G6BVXNNZ.js.map → chunk-6HXIPMBN.js.map} +0 -0
- /package/dist/{chunk-MLOQHUOY.js.map → chunk-AMW2VJ3N.js.map} +0 -0
- /package/dist/{chunk-7LOABHVW.js.map → chunk-F6G67XQ4.js.map} +0 -0
- /package/dist/{chunk-FOWIC2SO.mjs.map → chunk-JJTIVHFX.mjs.map} +0 -0
- /package/dist/{chunk-7SFY75BI.mjs.map → chunk-KCECQM3L.mjs.map} +0 -0
- /package/dist/{chunk-QSCKTRRU.js.map → chunk-MKFQAXRF.js.map} +0 -0
- /package/dist/{chunk-IHQPAJ2B.js.map → chunk-OBN2WDFU.js.map} +0 -0
- /package/dist/{chunk-7MTAHOWC.mjs.map → chunk-OYZPBNHS.mjs.map} +0 -0
- /package/dist/{chunk-7Y4VHT3E.js.map → chunk-SB43G2RI.js.map} +0 -0
- /package/dist/{chunk-473MIETW.js.map → chunk-UAINMOUU.js.map} +0 -0
- /package/dist/{chunk-LBCPJOAV.mjs.map → chunk-X3UZCGO5.mjs.map} +0 -0
- /package/dist/{chunk-HJRCBSNA.mjs.map → chunk-XF2AZMWG.mjs.map} +0 -0
- /package/dist/{chunk-PWLXPALG.mjs.map → chunk-XWYJQWHG.js.map} +0 -0
- /package/dist/{chunk-VDJTPG6F.js.map → chunk-XZ7362GQ.mjs.map} +0 -0
- /package/dist/{chunk-IGMAXVPP.mjs.map → chunk-XZNJFDBF.mjs.map} +0 -0
- /package/dist/{chunk-G4LY5HGU.mjs.map → chunk-YNOZU43P.mjs.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [7.8.0]
|
|
10
|
+
### Added
|
|
11
|
+
- Move `serialiseJsx` function from `snaps-jest` to `snaps-utils` ([#2409](https://github.com/metamask/snaps/pull/2409))
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
- Bump `@metamask/base-controller` from `^6.0.0` to `^6.0.1` ([#2445](https://github.com/MetaMask/snaps/pull/2445))
|
|
15
|
+
- Bump `@metamask/key-tree` from `^9.1.1` to `^9.1.2` ([#2445](https://github.com/MetaMask/snaps/pull/2445))
|
|
16
|
+
- Bump `@metamask/permission-controller` from `^10.0.0` to `^10.0.1` ([#2445](https://github.com/MetaMask/snaps/pull/2445))
|
|
17
|
+
- Bump `@metamask/rpc-errors` from `^6.2.1` to `^6.3.1` ([#2445](https://github.com/MetaMask/snaps/pull/2445))
|
|
18
|
+
- Bump `@metamask/snaps-registry` from `^3.1.0` to `^3.2.1` ([#2445](https://github.com/MetaMask/snaps/pull/2445))
|
|
19
|
+
- Bump `@metamask/utils` from `^8.3.0` to `^9.1.0` ([#2445](https://github.com/MetaMask/snaps/pull/2445))
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
- Replace `superstruct` with ESM-compatible `@metamask/superstruct` `^3.1.0` ([#2445](https://github.com/MetaMask/snaps/pull/2445))
|
|
23
|
+
- This fixes the issue of this package being unusable by any TypeScript project that uses `Node16` or `NodeNext` as its `moduleResolution` option.
|
|
24
|
+
- Fix `allowedOrigins` bypass caused by unterminated regex ([#2576](https://github.com/metamask/snaps/pull/2576))
|
|
25
|
+
|
|
26
|
+
## [7.7.0]
|
|
27
|
+
### Added
|
|
28
|
+
- Support conditional children in most JSX components ([#2506](https://github.com/MetaMask/snaps/pull/2506))
|
|
29
|
+
- Support additional components inside forms ([#2497](https://github.com/MetaMask/snaps/pull/2497))
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
- Improve validation of `endowment:rpc` ([#2512](https://github.com/MetaMask/snaps/pull/2512))
|
|
33
|
+
|
|
9
34
|
## [7.6.0]
|
|
10
35
|
### Added
|
|
11
36
|
- Support nested children in JSX ([#2482](https://github.com/MetaMask/snaps/pull/2482))
|
|
@@ -257,7 +282,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
257
282
|
- The version of the package no longer needs to match the version of all other
|
|
258
283
|
MetaMask Snaps packages.
|
|
259
284
|
|
|
260
|
-
[Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.
|
|
285
|
+
[Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.8.0...HEAD
|
|
286
|
+
[7.8.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.7.0...@metamask/snaps-utils@7.8.0
|
|
287
|
+
[7.7.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.6.0...@metamask/snaps-utils@7.7.0
|
|
261
288
|
[7.6.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.5.0...@metamask/snaps-utils@7.6.0
|
|
262
289
|
[7.5.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.4.1...@metamask/snaps-utils@7.5.0
|
|
263
290
|
[7.4.1]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.4.0...@metamask/snaps-utils@7.4.1
|
package/dist/auxiliary-files.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require('./chunk-
|
|
5
|
-
require('./chunk-
|
|
6
|
-
require('./chunk-
|
|
3
|
+
|
|
4
|
+
var _chunkPLNIERDYjs = require('./chunk-PLNIERDY.js');
|
|
5
|
+
require('./chunk-OBN2WDFU.js');
|
|
6
|
+
require('./chunk-UAINMOUU.js');
|
|
7
|
+
require('./chunk-DEQUNIME.js');
|
|
7
8
|
require('./chunk-NUCLSR2G.js');
|
|
9
|
+
require('./chunk-5WKQI22S.js');
|
|
8
10
|
require('./chunk-PHUTP7NB.js');
|
|
9
11
|
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
|
|
14
|
+
exports.encodeAuxiliaryFile = _chunkPLNIERDYjs.encodeAuxiliaryFile; exports.validateAuxiliaryFiles = _chunkPLNIERDYjs.validateAuxiliaryFiles;
|
|
12
15
|
//# sourceMappingURL=auxiliary-files.js.map
|
package/dist/auxiliary-files.mjs
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
-
encodeAuxiliaryFile
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
2
|
+
encodeAuxiliaryFile,
|
|
3
|
+
validateAuxiliaryFiles
|
|
4
|
+
} from "./chunk-VIAHMNTA.mjs";
|
|
5
|
+
import "./chunk-JJTIVHFX.mjs";
|
|
6
|
+
import "./chunk-3S4INAGA.mjs";
|
|
7
|
+
import "./chunk-DE22V5AO.mjs";
|
|
7
8
|
import "./chunk-Z2JQNSVL.mjs";
|
|
9
|
+
import "./chunk-SPCIIRSB.mjs";
|
|
8
10
|
import "./chunk-JMDSN227.mjs";
|
|
9
11
|
export {
|
|
10
|
-
encodeAuxiliaryFile
|
|
12
|
+
encodeAuxiliaryFile,
|
|
13
|
+
validateAuxiliaryFiles
|
|
11
14
|
};
|
|
12
15
|
//# sourceMappingURL=auxiliary-files.mjs.map
|
package/dist/base64.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('./chunk-
|
|
6
|
-
require('./chunk-
|
|
4
|
+
var _chunkOBN2WDFUjs = require('./chunk-OBN2WDFU.js');
|
|
5
|
+
require('./chunk-UAINMOUU.js');
|
|
6
|
+
require('./chunk-DEQUNIME.js');
|
|
7
7
|
require('./chunk-NUCLSR2G.js');
|
|
8
8
|
require('./chunk-PHUTP7NB.js');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
exports.decodeBase64 =
|
|
12
|
+
exports.decodeBase64 = _chunkOBN2WDFUjs.decodeBase64; exports.encodeBase64 = _chunkOBN2WDFUjs.encodeBase64;
|
|
13
13
|
//# sourceMappingURL=base64.js.map
|
package/dist/base64.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
decodeBase64,
|
|
3
3
|
encodeBase64
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-JJTIVHFX.mjs";
|
|
5
|
+
import "./chunk-3S4INAGA.mjs";
|
|
6
|
+
import "./chunk-DE22V5AO.mjs";
|
|
7
7
|
import "./chunk-Z2JQNSVL.mjs";
|
|
8
8
|
import "./chunk-JMDSN227.mjs";
|
|
9
9
|
export {
|
package/dist/bytes.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('./chunk-
|
|
3
|
+
var _chunkUAINMOUUjs = require('./chunk-UAINMOUU.js');
|
|
4
|
+
require('./chunk-DEQUNIME.js');
|
|
5
5
|
require('./chunk-NUCLSR2G.js');
|
|
6
6
|
require('./chunk-PHUTP7NB.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
exports.getBytes =
|
|
9
|
+
exports.getBytes = _chunkUAINMOUUjs.getBytes;
|
|
10
10
|
//# sourceMappingURL=bytes.js.map
|
package/dist/bytes.mjs
CHANGED
package/dist/checksum.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('./chunk-
|
|
6
|
-
require('./chunk-
|
|
4
|
+
var _chunkAMW2VJ3Njs = require('./chunk-AMW2VJ3N.js');
|
|
5
|
+
require('./chunk-UAINMOUU.js');
|
|
6
|
+
require('./chunk-DEQUNIME.js');
|
|
7
7
|
require('./chunk-NUCLSR2G.js');
|
|
8
8
|
require('./chunk-PHUTP7NB.js');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
exports.checksum =
|
|
12
|
+
exports.checksum = _chunkAMW2VJ3Njs.checksum; exports.checksumFiles = _chunkAMW2VJ3Njs.checksumFiles;
|
|
13
13
|
//# sourceMappingURL=checksum.js.map
|
package/dist/checksum.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
checksum,
|
|
3
3
|
checksumFiles
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-XF2AZMWG.mjs";
|
|
5
|
+
import "./chunk-3S4INAGA.mjs";
|
|
6
|
+
import "./chunk-DE22V5AO.mjs";
|
|
7
7
|
import "./chunk-Z2JQNSVL.mjs";
|
|
8
8
|
import "./chunk-JMDSN227.mjs";
|
|
9
9
|
export {
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk5I5WPAVDjs = require('./chunk-5I5WPAVD.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkRD6BN2TQjs = require('./chunk-RD6BN2TQ.js');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkB5GNTDE2js = require('./chunk-B5GNTDE2.js');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _chunkW7KRIAIXjs = require('./chunk-W7KRIAIX.js');
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkPZNIU23Ijs = require('./chunk-PZNIU23I.js');
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
var
|
|
23
|
+
var _chunk6HXIPMBNjs = require('./chunk-6HXIPMBN.js');
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _chunkMKFQAXRFjs = require('./chunk-MKFQAXRF.js');
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _chunkDEQUNIMEjs = require('./chunk-DEQUNIME.js');
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
var _chunkNUCLSR2Gjs = require('./chunk-NUCLSR2G.js');
|
|
@@ -53,9 +53,9 @@ async function checkManifest(basePath, writeManifest = true, sourceCode, writeFi
|
|
|
53
53
|
const errors = [];
|
|
54
54
|
let updated = false;
|
|
55
55
|
const manifestPath = _path2.default.join(basePath, "snap.manifest.json" /* Manifest */);
|
|
56
|
-
const manifestFile = await
|
|
56
|
+
const manifestFile = await _chunk6HXIPMBNjs.readJsonFile.call(void 0, manifestPath);
|
|
57
57
|
const unvalidatedManifest = manifestFile.result;
|
|
58
|
-
const packageFile = await
|
|
58
|
+
const packageFile = await _chunk6HXIPMBNjs.readJsonFile.call(void 0,
|
|
59
59
|
_path2.default.join(basePath, "package.json" /* PackageJson */)
|
|
60
60
|
);
|
|
61
61
|
const auxiliaryFilePaths = getSnapFilePaths(
|
|
@@ -83,12 +83,12 @@ async function checkManifest(basePath, writeManifest = true, sourceCode, writeFi
|
|
|
83
83
|
try {
|
|
84
84
|
({ manifest } = await validateNpmSnap(snapFiles));
|
|
85
85
|
} catch (error) {
|
|
86
|
-
if (error instanceof
|
|
86
|
+
if (error instanceof _chunkRD6BN2TQjs.ProgrammaticallyFixableSnapError) {
|
|
87
87
|
errors.push(error.message);
|
|
88
88
|
const partiallyValidatedFiles = snapFiles;
|
|
89
89
|
let isInvalid = true;
|
|
90
90
|
let currentError = error;
|
|
91
|
-
const maxAttempts = Object.keys(
|
|
91
|
+
const maxAttempts = Object.keys(_chunkPZNIU23Ijs.SnapValidationFailureReason).length;
|
|
92
92
|
for (let attempts = 1; isInvalid && attempts <= maxAttempts; attempts++) {
|
|
93
93
|
manifest = await fixManifest(
|
|
94
94
|
manifest ? { ...partiallyValidatedFiles, manifest } : partiallyValidatedFiles,
|
|
@@ -102,7 +102,7 @@ async function checkManifest(basePath, writeManifest = true, sourceCode, writeFi
|
|
|
102
102
|
isInvalid = false;
|
|
103
103
|
} catch (nextValidationError) {
|
|
104
104
|
currentError = nextValidationError;
|
|
105
|
-
if (!(nextValidationError instanceof
|
|
105
|
+
if (!(nextValidationError instanceof _chunkRD6BN2TQjs.ProgrammaticallyFixableSnapError) || attempts === maxAttempts && !isInvalid) {
|
|
106
106
|
throw new Error(
|
|
107
107
|
`Internal error: Failed to fix manifest. This is a bug, please report it. Reason:
|
|
108
108
|
${error.message}`
|
|
@@ -180,7 +180,7 @@ async function fixManifest(snapFiles, error) {
|
|
|
180
180
|
manifestCopy.repository = packageJson.result.repository ? _chunkNUCLSR2Gjs.deepClone.call(void 0, packageJson.result.repository) : void 0;
|
|
181
181
|
break;
|
|
182
182
|
case '"shasum" field mismatch' /* ShasumMismatch */:
|
|
183
|
-
manifestCopy.source.shasum = await
|
|
183
|
+
manifestCopy.source.shasum = await _chunkRD6BN2TQjs.getSnapChecksum.call(void 0, snapFiles);
|
|
184
184
|
break;
|
|
185
185
|
default:
|
|
186
186
|
_utils.assertExhaustive.call(void 0, error.reason);
|
|
@@ -198,13 +198,13 @@ async function getSnapSourceCode(basePath, manifest, sourceCode) {
|
|
|
198
198
|
return void 0;
|
|
199
199
|
}
|
|
200
200
|
if (sourceCode) {
|
|
201
|
-
return new (0,
|
|
201
|
+
return new (0, _chunkDEQUNIMEjs.VirtualFile)({
|
|
202
202
|
path: _path2.default.join(basePath, sourceFilePath),
|
|
203
203
|
value: sourceCode
|
|
204
204
|
});
|
|
205
205
|
}
|
|
206
206
|
try {
|
|
207
|
-
const virtualFile = await
|
|
207
|
+
const virtualFile = await _chunkMKFQAXRFjs.readVirtualFile.call(void 0,
|
|
208
208
|
_path2.default.join(basePath, sourceFilePath),
|
|
209
209
|
"utf8"
|
|
210
210
|
);
|
|
@@ -224,7 +224,7 @@ async function getSnapIcon(basePath, manifest) {
|
|
|
224
224
|
return void 0;
|
|
225
225
|
}
|
|
226
226
|
try {
|
|
227
|
-
const virtualFile = await
|
|
227
|
+
const virtualFile = await _chunkMKFQAXRFjs.readVirtualFile.call(void 0,
|
|
228
228
|
_path2.default.join(basePath, iconPath),
|
|
229
229
|
"utf8"
|
|
230
230
|
);
|
|
@@ -251,7 +251,7 @@ async function getSnapFiles(basePath, paths, encoding = "utf8") {
|
|
|
251
251
|
try {
|
|
252
252
|
return await Promise.all(
|
|
253
253
|
paths.map(
|
|
254
|
-
async (filePath) =>
|
|
254
|
+
async (filePath) => _chunkMKFQAXRFjs.readVirtualFile.call(void 0, _path2.default.join(basePath, filePath), encoding)
|
|
255
255
|
)
|
|
256
256
|
);
|
|
257
257
|
} catch (error) {
|
|
@@ -287,13 +287,13 @@ async function validateNpmSnapManifest({
|
|
|
287
287
|
const manifestPackageVersion = manifest.result.version;
|
|
288
288
|
const manifestRepository = manifest.result.repository;
|
|
289
289
|
if (packageJsonName !== manifestPackageName) {
|
|
290
|
-
throw new (0,
|
|
290
|
+
throw new (0, _chunkRD6BN2TQjs.ProgrammaticallyFixableSnapError)(
|
|
291
291
|
`"${"snap.manifest.json" /* Manifest */}" npm package name ("${manifestPackageName}") does not match the "${"package.json" /* PackageJson */}" "name" field ("${packageJsonName}").`,
|
|
292
292
|
'"name" field mismatch' /* NameMismatch */
|
|
293
293
|
);
|
|
294
294
|
}
|
|
295
295
|
if (packageJsonVersion !== manifestPackageVersion) {
|
|
296
|
-
throw new (0,
|
|
296
|
+
throw new (0, _chunkRD6BN2TQjs.ProgrammaticallyFixableSnapError)(
|
|
297
297
|
`"${"snap.manifest.json" /* Manifest */}" npm package version ("${manifestPackageVersion}") does not match the "${"package.json" /* PackageJson */}" "version" field ("${packageJsonVersion}").`,
|
|
298
298
|
'"version" field mismatch' /* VersionMismatch */
|
|
299
299
|
);
|
|
@@ -303,12 +303,12 @@ async function validateNpmSnapManifest({
|
|
|
303
303
|
// or `null` in the Snap manifest due to TS@<4.4 issues.
|
|
304
304
|
(packageJsonRepository || manifestRepository) && !_fastdeepequal2.default.call(void 0, packageJsonRepository, manifestRepository)
|
|
305
305
|
) {
|
|
306
|
-
throw new (0,
|
|
306
|
+
throw new (0, _chunkRD6BN2TQjs.ProgrammaticallyFixableSnapError)(
|
|
307
307
|
`"${"snap.manifest.json" /* Manifest */}" "repository" field does not match the "${"package.json" /* PackageJson */}" "repository" field.`,
|
|
308
308
|
'"repository" field mismatch' /* RepositoryMismatch */
|
|
309
309
|
);
|
|
310
310
|
}
|
|
311
|
-
await
|
|
311
|
+
await _chunkRD6BN2TQjs.validateSnapShasum.call(void 0,
|
|
312
312
|
{ manifest, sourceCode, svgIcon, auxiliaryFiles, localizationFiles },
|
|
313
313
|
`"${"snap.manifest.json" /* Manifest */}" "shasum" field does not match computed shasum.`
|
|
314
314
|
);
|
|
@@ -342,7 +342,7 @@ async function validateNpmSnap(snapFiles, errorPrefix) {
|
|
|
342
342
|
localizationFiles
|
|
343
343
|
} = snapFiles;
|
|
344
344
|
try {
|
|
345
|
-
|
|
345
|
+
_chunk5I5WPAVDjs.assertIsSnapManifest.call(void 0, manifest.result);
|
|
346
346
|
} catch (error) {
|
|
347
347
|
throw new Error(`${errorPrefix ?? ""}${error.message}`);
|
|
348
348
|
}
|
|
@@ -352,7 +352,7 @@ async function validateNpmSnap(snapFiles, errorPrefix) {
|
|
|
352
352
|
throw new Error(`Missing file "${iconPath}".`);
|
|
353
353
|
}
|
|
354
354
|
try {
|
|
355
|
-
|
|
355
|
+
_chunkPZNIU23Ijs.assertIsNpmSnapPackageJson.call(void 0, packageJson.result);
|
|
356
356
|
} catch (error) {
|
|
357
357
|
throw new Error(`${errorPrefix ?? ""}${error.message}`);
|
|
358
358
|
}
|
|
@@ -374,8 +374,8 @@ async function validateNpmSnap(snapFiles, errorPrefix) {
|
|
|
374
374
|
}
|
|
375
375
|
if (localizationFiles) {
|
|
376
376
|
try {
|
|
377
|
-
|
|
378
|
-
|
|
377
|
+
_chunkB5GNTDE2js.getValidatedLocalizationFiles.call(void 0, localizationFiles);
|
|
378
|
+
_chunkB5GNTDE2js.validateSnapManifestLocalizations.call(void 0,
|
|
379
379
|
manifest.result,
|
|
380
380
|
localizationFiles.map((file) => file.result)
|
|
381
381
|
);
|
|
@@ -406,4 +406,4 @@ async function validateNpmSnap(snapFiles, errorPrefix) {
|
|
|
406
406
|
|
|
407
407
|
|
|
408
408
|
exports.EXPECTED_SNAP_FILES = EXPECTED_SNAP_FILES; exports.SnapFileNameFromKey = SnapFileNameFromKey; exports.validateNpmSnap = validateNpmSnap; exports.checkManifest = checkManifest; exports.fixManifest = fixManifest; exports.getSnapSourceCode = getSnapSourceCode; exports.getSnapIcon = getSnapIcon; exports.getSnapFilePaths = getSnapFilePaths; exports.getSnapFiles = getSnapFiles; exports.getWritableManifest = getWritableManifest; exports.validateNpmSnapManifest = validateNpmSnapManifest;
|
|
409
|
-
//# sourceMappingURL=chunk-
|
|
409
|
+
//# sourceMappingURL=chunk-25ESL4NL.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
VirtualFile
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DE22V5AO.mjs";
|
|
4
4
|
|
|
5
5
|
// src/bytes.ts
|
|
6
6
|
import { stringToBytes } from "@metamask/utils";
|
|
@@ -15,4 +15,4 @@ function getBytes(bytes) {
|
|
|
15
15
|
export {
|
|
16
16
|
getBytes
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=chunk-
|
|
18
|
+
//# sourceMappingURL=chunk-3S4INAGA.mjs.map
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
array,
|
|
11
11
|
size,
|
|
12
12
|
union
|
|
13
|
-
} from "superstruct";
|
|
13
|
+
} from "@metamask/superstruct";
|
|
14
14
|
var SNAP_EXPORTS = {
|
|
15
15
|
["onRpcRequest" /* OnRpcRequest */]: {
|
|
16
16
|
type: "onRpcRequest" /* OnRpcRequest */,
|
|
@@ -150,4 +150,4 @@ export {
|
|
|
150
150
|
DomainResolutionResponseStruct,
|
|
151
151
|
OnNameLookupResponseStruct
|
|
152
152
|
};
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
153
|
+
//# sourceMappingURL=chunk-4AA3TKRJ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/handlers.ts"],"sourcesContent":["import type {\n OnCronjobHandler,\n OnHomePageHandler,\n OnInstallHandler,\n OnKeyringRequestHandler,\n OnNameLookupHandler,\n OnRpcRequestHandler,\n OnSignatureHandler,\n OnTransactionHandler,\n OnUpdateHandler,\n OnUserInputHandler,\n} from '@metamask/snaps-sdk';\nimport { ComponentOrElementStruct, SeverityLevel } from '@metamask/snaps-sdk';\nimport {\n assign,\n literal,\n nullable,\n object,\n optional,\n string,\n array,\n size,\n union,\n} from '@metamask/superstruct';\n\nimport type { SnapHandler } from './handler-types';\nimport { HandlerType } from './handler-types';\n\nexport type SnapRpcHookArgs = {\n origin: string;\n handler: HandlerType;\n request: Record<string, unknown>;\n};\n\nexport const SNAP_EXPORTS = {\n [HandlerType.OnRpcRequest]: {\n type: HandlerType.OnRpcRequest,\n required: true,\n validator: (snapExport: unknown): snapExport is OnRpcRequestHandler => {\n return typeof snapExport === 'function';\n },\n },\n [HandlerType.OnTransaction]: {\n type: HandlerType.OnTransaction,\n required: true,\n validator: (snapExport: unknown): snapExport is OnTransactionHandler => {\n return typeof snapExport === 'function';\n },\n },\n [HandlerType.OnCronjob]: {\n type: HandlerType.OnCronjob,\n required: true,\n validator: (snapExport: unknown): snapExport is OnCronjobHandler => {\n return typeof snapExport === 'function';\n },\n },\n [HandlerType.OnNameLookup]: {\n type: HandlerType.OnNameLookup,\n required: true,\n validator: (snapExport: unknown): snapExport is OnNameLookupHandler => {\n return typeof snapExport === 'function';\n },\n },\n [HandlerType.OnInstall]: {\n type: HandlerType.OnInstall,\n required: false,\n validator: (snapExport: unknown): snapExport is OnInstallHandler => {\n return typeof snapExport === 'function';\n },\n },\n [HandlerType.OnUpdate]: {\n type: HandlerType.OnUpdate,\n required: false,\n validator: (snapExport: unknown): snapExport is OnUpdateHandler => {\n return typeof snapExport === 'function';\n },\n },\n [HandlerType.OnKeyringRequest]: {\n type: HandlerType.OnKeyringRequest,\n required: true,\n validator: (snapExport: unknown): snapExport is OnKeyringRequestHandler => {\n return typeof snapExport === 'function';\n },\n },\n [HandlerType.OnHomePage]: {\n type: HandlerType.OnHomePage,\n required: true,\n validator: (snapExport: unknown): snapExport is OnHomePageHandler => {\n return typeof snapExport === 'function';\n },\n },\n [HandlerType.OnSignature]: {\n type: HandlerType.OnSignature,\n required: true,\n validator: (snapExport: unknown): snapExport is OnSignatureHandler => {\n return typeof snapExport === 'function';\n },\n },\n [HandlerType.OnUserInput]: {\n type: HandlerType.OnUserInput,\n required: false,\n validator: (snapExport: unknown): snapExport is OnUserInputHandler => {\n return typeof snapExport === 'function';\n },\n },\n} as const;\n\nexport const OnTransactionSeverityResponseStruct = object({\n severity: optional(literal(SeverityLevel.Critical)),\n});\n\nexport const OnTransactionResponseWithIdStruct = assign(\n OnTransactionSeverityResponseStruct,\n object({\n id: string(),\n }),\n);\n\nexport const OnTransactionResponseWithContentStruct = assign(\n OnTransactionSeverityResponseStruct,\n object({\n content: ComponentOrElementStruct,\n }),\n);\n\nexport const OnTransactionResponseStruct = nullable(\n union([\n OnTransactionResponseWithContentStruct,\n OnTransactionResponseWithIdStruct,\n ]),\n);\n\nexport const OnSignatureResponseStruct = OnTransactionResponseStruct;\n\nexport const OnHomePageResponseWithContentStruct = object({\n content: ComponentOrElementStruct,\n});\n\nexport const OnHomePageResponseWithIdStruct = object({\n id: string(),\n});\n\nexport const OnHomePageResponseStruct = union([\n OnHomePageResponseWithContentStruct,\n OnHomePageResponseWithIdStruct,\n]);\n\nexport const AddressResolutionStruct = object({\n protocol: string(),\n resolvedDomain: string(),\n});\n\nexport const DomainResolutionStruct = object({\n protocol: string(),\n resolvedAddress: string(),\n domainName: string(),\n});\n\nexport const AddressResolutionResponseStruct = object({\n resolvedDomains: size(array(AddressResolutionStruct), 1, Infinity),\n});\n\nexport const DomainResolutionResponseStruct = object({\n resolvedAddresses: size(array(DomainResolutionStruct), 1, Infinity),\n});\n\nexport const OnNameLookupResponseStruct = nullable(\n union([AddressResolutionResponseStruct, DomainResolutionResponseStruct]),\n);\n\n/**\n * Utility type for getting the handler function type from a handler type.\n */\nexport type HandlerFunction<Type extends SnapHandler> =\n Type['validator'] extends (snapExport: unknown) => snapExport is infer Handler\n ? Handler\n : never;\n\n/**\n * All the function-based handlers that a snap can implement.\n */\nexport type SnapFunctionExports = {\n [Key in keyof typeof SNAP_EXPORTS]?: HandlerFunction<\n (typeof SNAP_EXPORTS)[Key]\n >;\n};\n\n/**\n * All handlers that a snap can implement.\n */\nexport type SnapExports = SnapFunctionExports;\n"],"mappings":"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","names":[]}
|
|
@@ -3,9 +3,16 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _superstruct = require('@metamask/superstruct');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
var _utils = require('@metamask/utils');
|
|
7
15
|
var _cronparser = require('cron-parser');
|
|
8
|
-
var _superstruct = require('superstruct');
|
|
9
16
|
var CronjobRpcRequestStruct = _superstruct.object.call(void 0, {
|
|
10
17
|
jsonrpc: _superstruct.optional.call(void 0, _utils.JsonRpcVersionStruct),
|
|
11
18
|
id: _superstruct.optional.call(void 0, _utils.JsonRpcIdStruct),
|
|
@@ -61,4 +68,4 @@ function isCronjobSpecificationArray(value) {
|
|
|
61
68
|
|
|
62
69
|
|
|
63
70
|
exports.CronjobRpcRequestStruct = CronjobRpcRequestStruct; exports.CronExpressionStruct = CronExpressionStruct; exports.parseCronExpression = parseCronExpression; exports.CronjobSpecificationStruct = CronjobSpecificationStruct; exports.isCronjobSpecification = isCronjobSpecification; exports.CronjobSpecificationArrayStruct = CronjobSpecificationArrayStruct; exports.isCronjobSpecificationArray = isCronjobSpecificationArray;
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
71
|
+
//# sourceMappingURL=chunk-4ZJOU3LR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cronjob.ts"],"names":[],"mappings":";AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,uBAAuB;AAEzB,IAAM,0BAA0B,OAAO;AAAA,EAC5C,SAAS,SAAS,oBAAoB;AAAA,EACtC,IAAI,SAAS,eAAe;AAAA,EAC5B,QAAQ,OAAO;AAAA,EACf,QAAQ,SAAS,mBAAmB;AACtC,CAAC;AAIM,IAAM,uBAAuB;AAAA,EAClC,OAAO;AAAA,EACP;AAAA,EACA,CAAC,UAAU;AACT,QAAI;AACF,sBAAgB,KAAK;AACrB,aAAO;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAUO,SAAS,oBAAoB,YAA6B;AAC/D,QAAM,yBAAyB,OAAO,YAAY,oBAAoB;AACtE,SAAO,gBAAgB,sBAAsB;AAC/C;AAEO,IAAM,6BAA6B,OAAO;AAAA,EAC/C,YAAY;AAAA,EACZ,SAAS;AACX,CAAC;AASM,SAAS,uBAAuB,OAAyB;AAC9D,MAAI;AACF,WAAO,OAAO,0BAA0B;AACxC,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,IAAM,kCAAkC;AAAA,EAC7C;AACF;AAQO,SAAS,4BAA4B,OAAyB;AACnE,MAAI;AACF,WAAO,OAAO,+BAA+B;AAC7C,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF","sourcesContent":["import type { Infer } from '@metamask/superstruct';\nimport {\n array,\n create,\n object,\n optional,\n refine,\n string,\n} from '@metamask/superstruct';\nimport {\n JsonRpcIdStruct,\n JsonRpcParamsStruct,\n JsonRpcVersionStruct,\n} from '@metamask/utils';\nimport { parseExpression } from 'cron-parser';\n\nexport const CronjobRpcRequestStruct = object({\n jsonrpc: optional(JsonRpcVersionStruct),\n id: optional(JsonRpcIdStruct),\n method: string(),\n params: optional(JsonRpcParamsStruct),\n});\n\nexport type CronjobRpcRequest = Infer<typeof CronjobRpcRequestStruct>;\n\nexport const CronExpressionStruct = refine(\n string(),\n 'CronExpression',\n (value) => {\n try {\n parseExpression(value);\n return true;\n } catch {\n return false;\n }\n },\n);\n\nexport type CronExpression = Infer<typeof CronExpressionStruct>;\n\n/**\n * Parses a cron expression.\n *\n * @param expression - Expression to parse.\n * @returns A CronExpression class instance.\n */\nexport function parseCronExpression(expression: string | object) {\n const ensureStringExpression = create(expression, CronExpressionStruct);\n return parseExpression(ensureStringExpression);\n}\n\nexport const CronjobSpecificationStruct = object({\n expression: CronExpressionStruct,\n request: CronjobRpcRequestStruct,\n});\nexport type CronjobSpecification = Infer<typeof CronjobSpecificationStruct>;\n\n/**\n * Check if the given value is a {@link CronjobSpecification} object.\n *\n * @param value - The value to check.\n * @returns Whether the value is a valid {@link CronjobSpecification} object.\n */\nexport function isCronjobSpecification(value: unknown): boolean {\n try {\n create(value, CronjobSpecificationStruct);\n return true;\n } catch {\n return false;\n }\n}\n\nexport const CronjobSpecificationArrayStruct = array(\n CronjobSpecificationStruct,\n);\n\n/**\n * Check if the given value is an array of {@link CronjobSpecification} objects.\n *\n * @param value - The value to check.\n * @returns Whether the value is a valid array of {@link CronjobSpecification} objects.\n */\nexport function isCronjobSpecificationArray(value: unknown): boolean {\n try {\n create(value, CronjobSpecificationArrayStruct);\n return true;\n } catch {\n return false;\n }\n}\n"]}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkRD6BN2TQjs = require('./chunk-RD6BN2TQ.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkVOPTAKVGjs = require('./chunk-VOPTAKVG.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkPZNIU23Ijs = require('./chunk-PZNIU23I.js');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
+
var _chunkLOJA2ZS4js = require('./chunk-LOJA2ZS4.js');
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
var _chunkT2VA4YJEjs = require('./chunk-T2VA4YJE.js');
|
|
15
18
|
|
|
16
19
|
|
|
17
20
|
|
|
@@ -21,7 +24,7 @@ var _chunkZT3KKTS2js = require('./chunk-ZT3KKTS2.js');
|
|
|
21
24
|
var _chunkT3YY4JIJjs = require('./chunk-T3YY4JIJ.js');
|
|
22
25
|
|
|
23
26
|
|
|
24
|
-
var
|
|
27
|
+
var _chunk4ZJOU3LRjs = require('./chunk-4ZJOU3LR.js');
|
|
25
28
|
|
|
26
29
|
// src/manifest/validation.ts
|
|
27
30
|
var _keytree = require('@metamask/key-tree');
|
|
@@ -32,8 +35,6 @@ var _keytree = require('@metamask/key-tree');
|
|
|
32
35
|
|
|
33
36
|
|
|
34
37
|
|
|
35
|
-
var _utils = require('@metamask/utils');
|
|
36
|
-
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
|
|
@@ -44,6 +45,7 @@ var _utils = require('@metamask/utils');
|
|
|
44
45
|
|
|
45
46
|
|
|
46
47
|
|
|
48
|
+
var _superstruct = require('@metamask/superstruct');
|
|
47
49
|
|
|
48
50
|
|
|
49
51
|
|
|
@@ -51,7 +53,7 @@ var _utils = require('@metamask/utils');
|
|
|
51
53
|
|
|
52
54
|
|
|
53
55
|
|
|
54
|
-
var
|
|
56
|
+
var _utils = require('@metamask/utils');
|
|
55
57
|
var FORBIDDEN_PURPOSES = [
|
|
56
58
|
_chunkZT3KKTS2js.SIP_6_MAGIC_VALUE,
|
|
57
59
|
_chunkZT3KKTS2js.STATE_ENCRYPTION_MAGIC_VALUE
|
|
@@ -120,7 +122,7 @@ var SemVerRangeStruct = _superstruct.refine.call(void 0, _superstruct.string.cal
|
|
|
120
122
|
return "Expected a valid SemVer range.";
|
|
121
123
|
});
|
|
122
124
|
var SnapIdsStruct = _superstruct.refine.call(void 0,
|
|
123
|
-
_superstruct.record.call(void 0,
|
|
125
|
+
_superstruct.record.call(void 0, _chunkRD6BN2TQjs.SnapIdStruct, _superstruct.object.call(void 0, { version: _superstruct.optional.call(void 0, SemVerRangeStruct) })),
|
|
124
126
|
"SnapIds",
|
|
125
127
|
(value) => {
|
|
126
128
|
if (Object.keys(value).length === 0) {
|
|
@@ -129,7 +131,7 @@ var SnapIdsStruct = _superstruct.refine.call(void 0,
|
|
|
129
131
|
return true;
|
|
130
132
|
}
|
|
131
133
|
);
|
|
132
|
-
var ChainIdsStruct = _superstruct.size.call(void 0, _superstruct.array.call(void 0,
|
|
134
|
+
var ChainIdsStruct = _superstruct.size.call(void 0, _superstruct.array.call(void 0, _chunkLOJA2ZS4js.ChainIdStruct), 1, Infinity);
|
|
133
135
|
var LookupMatchersStruct = _superstruct.union.call(void 0, [
|
|
134
136
|
_superstruct.object.call(void 0, {
|
|
135
137
|
tlds: _superstruct.size.call(void 0, _superstruct.array.call(void 0, _superstruct.string.call(void 0, )), 1, Infinity)
|
|
@@ -155,18 +157,18 @@ var HandlerCaveatsStruct = _superstruct.object.call(void 0, {
|
|
|
155
157
|
var EmptyObjectStruct = _superstruct.object.call(void 0, {});
|
|
156
158
|
var PermissionsStruct = _superstruct.type.call(void 0, {
|
|
157
159
|
"endowment:cronjob": _superstruct.optional.call(void 0,
|
|
158
|
-
|
|
160
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0,
|
|
159
161
|
HandlerCaveatsStruct,
|
|
160
|
-
_superstruct.object.call(void 0, { jobs:
|
|
162
|
+
_superstruct.object.call(void 0, { jobs: _chunk4ZJOU3LRjs.CronjobSpecificationArrayStruct })
|
|
161
163
|
)
|
|
162
164
|
),
|
|
163
165
|
"endowment:ethereum-provider": _superstruct.optional.call(void 0, EmptyObjectStruct),
|
|
164
166
|
"endowment:keyring": _superstruct.optional.call(void 0,
|
|
165
|
-
|
|
167
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0, HandlerCaveatsStruct, _chunkT2VA4YJEjs.KeyringOriginsStruct)
|
|
166
168
|
),
|
|
167
169
|
"endowment:lifecycle-hooks": _superstruct.optional.call(void 0, HandlerCaveatsStruct),
|
|
168
170
|
"endowment:name-lookup": _superstruct.optional.call(void 0,
|
|
169
|
-
|
|
171
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0,
|
|
170
172
|
HandlerCaveatsStruct,
|
|
171
173
|
_superstruct.object.call(void 0, {
|
|
172
174
|
chains: _superstruct.optional.call(void 0, ChainIdsStruct),
|
|
@@ -176,9 +178,11 @@ var PermissionsStruct = _superstruct.type.call(void 0, {
|
|
|
176
178
|
),
|
|
177
179
|
"endowment:network-access": _superstruct.optional.call(void 0, EmptyObjectStruct),
|
|
178
180
|
"endowment:page-home": _superstruct.optional.call(void 0, HandlerCaveatsStruct),
|
|
179
|
-
"endowment:rpc": _superstruct.optional.call(void 0,
|
|
181
|
+
"endowment:rpc": _superstruct.optional.call(void 0,
|
|
182
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0, HandlerCaveatsStruct, _chunkT2VA4YJEjs.RpcOriginsStruct)
|
|
183
|
+
),
|
|
180
184
|
"endowment:signature-insight": _superstruct.optional.call(void 0,
|
|
181
|
-
|
|
185
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0,
|
|
182
186
|
HandlerCaveatsStruct,
|
|
183
187
|
_superstruct.object.call(void 0, {
|
|
184
188
|
allowSignatureOrigin: _superstruct.optional.call(void 0, _superstruct.boolean.call(void 0, ))
|
|
@@ -186,7 +190,7 @@ var PermissionsStruct = _superstruct.type.call(void 0, {
|
|
|
186
190
|
)
|
|
187
191
|
),
|
|
188
192
|
"endowment:transaction-insight": _superstruct.optional.call(void 0,
|
|
189
|
-
|
|
193
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0,
|
|
190
194
|
HandlerCaveatsStruct,
|
|
191
195
|
_superstruct.object.call(void 0, {
|
|
192
196
|
allowTransactionOrigin: _superstruct.optional.call(void 0, _superstruct.boolean.call(void 0, ))
|
|
@@ -213,7 +217,7 @@ var PermissionsStruct = _superstruct.type.call(void 0, {
|
|
|
213
217
|
});
|
|
214
218
|
var SnapAuxilaryFilesStruct = _superstruct.array.call(void 0, _superstruct.string.call(void 0, ));
|
|
215
219
|
var InitialConnectionsStruct = _superstruct.record.call(void 0,
|
|
216
|
-
_superstruct.intersection.call(void 0, [_superstruct.string.call(void 0, ),
|
|
220
|
+
_superstruct.intersection.call(void 0, [_superstruct.string.call(void 0, ), _chunkPZNIU23Ijs.uri.call(void 0, )]),
|
|
217
221
|
_superstruct.object.call(void 0, {})
|
|
218
222
|
);
|
|
219
223
|
var SnapManifestStruct = _superstruct.object.call(void 0, {
|
|
@@ -232,7 +236,7 @@ var SnapManifestStruct = _superstruct.object.call(void 0, {
|
|
|
232
236
|
npm: _superstruct.object.call(void 0, {
|
|
233
237
|
filePath: _superstruct.size.call(void 0, _superstruct.string.call(void 0, ), 1, Infinity),
|
|
234
238
|
iconPath: _superstruct.optional.call(void 0, _superstruct.size.call(void 0, _superstruct.string.call(void 0, ), 1, Infinity)),
|
|
235
|
-
packageName:
|
|
239
|
+
packageName: _chunkPZNIU23Ijs.NameStruct,
|
|
236
240
|
registry: _superstruct.union.call(void 0, [
|
|
237
241
|
_superstruct.literal.call(void 0, "https://registry.npmjs.org"),
|
|
238
242
|
_superstruct.literal.call(void 0, "https://registry.npmjs.org/")
|
|
@@ -286,4 +290,4 @@ function createSnapManifest(value) {
|
|
|
286
290
|
|
|
287
291
|
|
|
288
292
|
exports.FORBIDDEN_COIN_TYPES = FORBIDDEN_COIN_TYPES; exports.Bip32PathStruct = Bip32PathStruct; exports.bip32entropy = bip32entropy; exports.CurveStruct = CurveStruct; exports.Bip32EntropyStruct = Bip32EntropyStruct; exports.SnapGetBip32EntropyPermissionsStruct = SnapGetBip32EntropyPermissionsStruct; exports.SemVerRangeStruct = SemVerRangeStruct; exports.SnapIdsStruct = SnapIdsStruct; exports.ChainIdsStruct = ChainIdsStruct; exports.LookupMatchersStruct = LookupMatchersStruct; exports.MINIMUM_REQUEST_TIMEOUT = MINIMUM_REQUEST_TIMEOUT; exports.MAXIMUM_REQUEST_TIMEOUT = MAXIMUM_REQUEST_TIMEOUT; exports.MaxRequestTimeStruct = MaxRequestTimeStruct; exports.HandlerCaveatsStruct = HandlerCaveatsStruct; exports.EmptyObjectStruct = EmptyObjectStruct; exports.PermissionsStruct = PermissionsStruct; exports.SnapAuxilaryFilesStruct = SnapAuxilaryFilesStruct; exports.InitialConnectionsStruct = InitialConnectionsStruct; exports.SnapManifestStruct = SnapManifestStruct; exports.isSnapManifest = isSnapManifest; exports.assertIsSnapManifest = assertIsSnapManifest; exports.createSnapManifest = createSnapManifest;
|
|
289
|
-
//# sourceMappingURL=chunk-
|
|
293
|
+
//# sourceMappingURL=chunk-5I5WPAVD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/manifest/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SupportedCurve } from '@metamask/key-tree';\nimport { isValidBIP32PathSegment } from '@metamask/key-tree';\nimport type { EmptyObject, InitialPermissions } from '@metamask/snaps-sdk';\nimport type { Describe, Infer, Struct } from '@metamask/superstruct';\nimport {\n array,\n boolean,\n create,\n enums,\n integer,\n is,\n literal,\n object,\n optional,\n refine,\n record,\n size,\n string,\n type,\n union,\n intersection,\n} from '@metamask/superstruct';\nimport {\n assertStruct,\n ChecksumStruct,\n VersionStruct,\n isValidSemVerRange,\n inMilliseconds,\n Duration,\n} from '@metamask/utils';\n\nimport { isEqual } from '../array';\nimport { CronjobSpecificationArrayStruct } from '../cronjob';\nimport { SIP_6_MAGIC_VALUE, STATE_ENCRYPTION_MAGIC_VALUE } from '../entropy';\nimport { KeyringOriginsStruct, RpcOriginsStruct } from '../json-rpc';\nimport { ChainIdStruct } from '../namespace';\nimport { SnapIdStruct } from '../snaps';\nimport { mergeStructs, type InferMatching } from '../structs';\nimport { NameStruct, NpmSnapFileNames, uri } from '../types';\n\n// BIP-43 purposes that cannot be used for entropy derivation. These are in the\n// string form, ending with `'`.\nconst FORBIDDEN_PURPOSES: string[] = [\n SIP_6_MAGIC_VALUE,\n STATE_ENCRYPTION_MAGIC_VALUE,\n];\n\nexport const FORBIDDEN_COIN_TYPES: number[] = [60];\nconst FORBIDDEN_PATHS: string[][] = FORBIDDEN_COIN_TYPES.map((coinType) => [\n 'm',\n \"44'\",\n `${coinType}'`,\n]);\n\nexport const Bip32PathStruct = refine(\n array(string()),\n 'BIP-32 path',\n (path: string[]) => {\n if (path.length === 0) {\n return 'Path must be a non-empty BIP-32 derivation path array';\n }\n\n if (path[0] !== 'm') {\n return 'Path must start with \"m\".';\n }\n\n if (path.length < 3) {\n return 'Paths must have a length of at least three.';\n }\n\n if (path.slice(1).some((part) => !isValidBIP32PathSegment(part))) {\n return 'Path must be a valid BIP-32 derivation path array.';\n }\n\n if (FORBIDDEN_PURPOSES.includes(path[1])) {\n return `The purpose \"${path[1]}\" is not allowed for entropy derivation.`;\n }\n\n if (\n FORBIDDEN_PATHS.some((forbiddenPath) =>\n isEqual(path.slice(0, forbiddenPath.length), forbiddenPath),\n )\n ) {\n return `The path \"${path.join(\n '/',\n )}\" is not allowed for entropy derivation.`;\n }\n\n return true;\n },\n);\n\nexport const bip32entropy = <\n Type extends { path: string[]; curve: string },\n Schema,\n>(\n struct: Struct<Type, Schema>,\n) =>\n refine(struct, 'BIP-32 entropy', (value) => {\n if (\n value.curve === 'ed25519' &&\n value.path.slice(1).some((part) => !part.endsWith(\"'\"))\n ) {\n return 'Ed25519 does not support unhardened paths.';\n }\n\n return true;\n });\n\nexport const CurveStruct: Describe<SupportedCurve> = enums([\n 'ed25519',\n 'secp256k1',\n 'ed25519Bip32',\n]);\n\n// Used outside @metamask/snap-utils\nexport const Bip32EntropyStruct = bip32entropy(\n type({\n path: Bip32PathStruct,\n curve: CurveStruct,\n }),\n);\n\nexport type Bip32Entropy = Infer<typeof Bip32EntropyStruct>;\n\nexport const SnapGetBip32EntropyPermissionsStruct = size(\n array(Bip32EntropyStruct),\n 1,\n Infinity,\n);\n\nexport const SemVerRangeStruct = refine(string(), 'SemVer range', (value) => {\n if (isValidSemVerRange(value)) {\n return true;\n }\n return 'Expected a valid SemVer range.';\n});\n\nexport const SnapIdsStruct = refine(\n record(SnapIdStruct, object({ version: optional(SemVerRangeStruct) })),\n 'SnapIds',\n (value) => {\n if (Object.keys(value).length === 0) {\n return false;\n }\n\n return true;\n },\n);\n\nexport type SnapIds = Infer<typeof SnapIdsStruct>;\n\nexport const ChainIdsStruct = size(array(ChainIdStruct), 1, Infinity);\n\nexport const LookupMatchersStruct = union([\n object({\n tlds: size(array(string()), 1, Infinity),\n }),\n object({\n schemes: size(array(string()), 1, Infinity),\n }),\n object({\n tlds: size(array(string()), 1, Infinity),\n schemes: size(array(string()), 1, Infinity),\n }),\n]);\n\nexport const MINIMUM_REQUEST_TIMEOUT = inMilliseconds(5, Duration.Second);\nexport const MAXIMUM_REQUEST_TIMEOUT = inMilliseconds(3, Duration.Minute);\n\nexport const MaxRequestTimeStruct = size(\n integer(),\n MINIMUM_REQUEST_TIMEOUT,\n MAXIMUM_REQUEST_TIMEOUT,\n);\n\n// Utility type to union with for all handler structs\nexport const HandlerCaveatsStruct = object({\n maxRequestTime: optional(MaxRequestTimeStruct),\n});\n\nexport type HandlerCaveats = Infer<typeof HandlerCaveatsStruct>;\n\nexport const EmptyObjectStruct = object<EmptyObject>({}) as unknown as Struct<\n EmptyObject,\n null\n>;\n\n/* eslint-disable @typescript-eslint/naming-convention */\nexport const PermissionsStruct: Describe<InitialPermissions> = type({\n 'endowment:cronjob': optional(\n mergeStructs(\n HandlerCaveatsStruct,\n object({ jobs: CronjobSpecificationArrayStruct }),\n ),\n ),\n 'endowment:ethereum-provider': optional(EmptyObjectStruct),\n 'endowment:keyring': optional(\n mergeStructs(HandlerCaveatsStruct, KeyringOriginsStruct),\n ),\n 'endowment:lifecycle-hooks': optional(HandlerCaveatsStruct),\n 'endowment:name-lookup': optional(\n mergeStructs(\n HandlerCaveatsStruct,\n object({\n chains: optional(ChainIdsStruct),\n matchers: optional(LookupMatchersStruct),\n }),\n ),\n ),\n 'endowment:network-access': optional(EmptyObjectStruct),\n 'endowment:page-home': optional(HandlerCaveatsStruct),\n 'endowment:rpc': optional(\n mergeStructs(HandlerCaveatsStruct, RpcOriginsStruct),\n ),\n 'endowment:signature-insight': optional(\n mergeStructs(\n HandlerCaveatsStruct,\n object({\n allowSignatureOrigin: optional(boolean()),\n }),\n ),\n ),\n 'endowment:transaction-insight': optional(\n mergeStructs(\n HandlerCaveatsStruct,\n object({\n allowTransactionOrigin: optional(boolean()),\n }),\n ),\n ),\n 'endowment:webassembly': optional(EmptyObjectStruct),\n snap_dialog: optional(EmptyObjectStruct),\n snap_manageState: optional(EmptyObjectStruct),\n snap_manageAccounts: optional(EmptyObjectStruct),\n snap_notify: optional(EmptyObjectStruct),\n snap_getBip32Entropy: optional(SnapGetBip32EntropyPermissionsStruct),\n snap_getBip32PublicKey: optional(SnapGetBip32EntropyPermissionsStruct),\n snap_getBip44Entropy: optional(\n size(\n array(object({ coinType: size(integer(), 0, 2 ** 32 - 1) })),\n 1,\n Infinity,\n ),\n ),\n snap_getEntropy: optional(EmptyObjectStruct),\n snap_getLocale: optional(EmptyObjectStruct),\n wallet_snap: optional(SnapIdsStruct),\n});\n/* eslint-enable @typescript-eslint/naming-convention */\n\nexport type SnapPermissions = InferMatching<\n typeof PermissionsStruct,\n InitialPermissions\n>;\n\nexport const SnapAuxilaryFilesStruct = array(string());\n\nexport const InitialConnectionsStruct = record(\n intersection([string(), uri()]),\n object({}),\n);\n\nexport type InitialConnections = Infer<typeof InitialConnectionsStruct>;\n\nexport const SnapManifestStruct = object({\n version: VersionStruct,\n description: size(string(), 1, 280),\n proposedName: size(string(), 1, 214),\n repository: optional(\n object({\n type: size(string(), 1, Infinity),\n url: size(string(), 1, Infinity),\n }),\n ),\n source: object({\n shasum: ChecksumStruct,\n location: object({\n npm: object({\n filePath: size(string(), 1, Infinity),\n iconPath: optional(size(string(), 1, Infinity)),\n packageName: NameStruct,\n registry: union([\n literal('https://registry.npmjs.org'),\n literal('https://registry.npmjs.org/'),\n ]),\n }),\n }),\n files: optional(SnapAuxilaryFilesStruct),\n locales: optional(SnapAuxilaryFilesStruct),\n }),\n initialConnections: optional(InitialConnectionsStruct),\n initialPermissions: PermissionsStruct,\n manifestVersion: literal('0.1'),\n $schema: optional(string()), // enables JSON-Schema linting in VSC and other IDEs\n});\n\nexport type SnapManifest = Infer<typeof SnapManifestStruct>;\n\n/**\n * Check if the given value is a valid {@link SnapManifest} object.\n *\n * @param value - The value to check.\n * @returns Whether the value is a valid {@link SnapManifest} object.\n */\nexport function isSnapManifest(value: unknown): value is SnapManifest {\n return is(value, SnapManifestStruct);\n}\n\n/**\n * Assert that the given value is a valid {@link SnapManifest} object.\n *\n * @param value - The value to check.\n * @throws If the value is not a valid {@link SnapManifest} object.\n */\nexport function assertIsSnapManifest(\n value: unknown,\n): asserts value is SnapManifest {\n assertStruct(\n value,\n SnapManifestStruct,\n `\"${NpmSnapFileNames.Manifest}\" is invalid`,\n );\n}\n\n/**\n * Creates a {@link SnapManifest} object from JSON.\n *\n * @param value - The value to check.\n * @throws If the value cannot be coerced to a {@link SnapManifest} object.\n * @returns The created {@link SnapManifest} object.\n */\nexport function createSnapManifest(value: unknown): SnapManifest {\n // TODO: Add a utility to prefix these errors similar to assertStruct\n return create(value, SnapManifestStruct);\n}\n"]}
|