@metamask/snaps-utils 7.7.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 +19 -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-7LOVOG6X.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-ZJKG5Q2C.js → chunk-5I5WPAVD.js} +20 -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-J5B5YRG5.js → chunk-6ATNGN44.js} +35 -2
- package/dist/chunk-6ATNGN44.js.map +1 -0
- package/dist/{chunk-G6BVXNNZ.js → chunk-6HXIPMBN.js} +3 -3
- package/dist/{chunk-5ZIWKLVB.mjs → chunk-7HLSXEHK.mjs} +35 -2
- 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-NHGIT2SZ.mjs → chunk-FLSK6ISS.mjs} +6 -6
- 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-NN2HXPZN.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-F72OSQD6.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-HEXZ4DFV.js → chunk-VOPTAKVG.js} +4 -4
- 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-BT2AEFEP.mjs → chunk-YNOZU43P.mjs} +6 -6
- package/dist/{chunk-EXEEDJ6N.mjs → chunk-ZXHR322P.mjs} +19 -19
- 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 +37 -29
- package/dist/index.mjs +74 -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 +11 -11
- package/dist/manifest/index.mjs +10 -10
- package/dist/manifest/manifest.js +15 -15
- package/dist/manifest/manifest.mjs +14 -14
- package/dist/manifest/node.js +15 -15
- package/dist/manifest/node.mjs +14 -14
- package/dist/manifest/validation.js +11 -11
- package/dist/manifest/validation.mjs +10 -10
- package/dist/namespace.js +2 -2
- package/dist/namespace.mjs +1 -1
- package/dist/node.js +41 -33
- package/dist/node.mjs +78 -70
- package/dist/npm.js +15 -15
- package/dist/npm.mjs +14 -14
- package/dist/snaps.js +6 -6
- package/dist/snaps.mjs +5 -5
- package/dist/structs.js +2 -2
- package/dist/structs.mjs +1 -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 -39
- 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 +1 -1
- package/dist/types/namespace.d.ts +18 -18
- package/dist/types/snaps.d.ts +1 -1
- package/dist/types/structs.d.ts +2 -3
- package/dist/types/types.d.ts +1 -1
- package/dist/types/ui.d.ts +10 -1
- 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 +13 -13
- package/dist/validation.mjs +12 -12
- 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-5ZIWKLVB.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-CMOSYNZR.js.map +0 -1
- package/dist/chunk-EA2FOAEG.mjs.map +0 -1
- package/dist/chunk-EXEEDJ6N.mjs.map +0 -1
- package/dist/chunk-EXUEHPZ4.mjs.map +0 -1
- package/dist/chunk-HEXZ4DFV.js.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-J5B5YRG5.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-NHGIT2SZ.mjs.map +0 -1
- package/dist/chunk-OJM2SKJZ.js.map +0 -1
- package/dist/chunk-R5DO7T2D.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-ZJKG5Q2C.js.map +0 -1
- /package/dist/{chunk-7LOVOG6X.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-NN2HXPZN.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-F72OSQD6.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-BT2AEFEP.mjs.map → chunk-YNOZU43P.mjs.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,23 @@ 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
|
+
|
|
9
26
|
## [7.7.0]
|
|
10
27
|
### Added
|
|
11
28
|
- Support conditional children in most JSX components ([#2506](https://github.com/MetaMask/snaps/pull/2506))
|
|
@@ -265,7 +282,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
265
282
|
- The version of the package no longer needs to match the version of all other
|
|
266
283
|
MetaMask Snaps packages.
|
|
267
284
|
|
|
268
|
-
[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
|
|
269
287
|
[7.7.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.6.0...@metamask/snaps-utils@7.7.0
|
|
270
288
|
[7.6.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.5.0...@metamask/snaps-utils@7.6.0
|
|
271
289
|
[7.5.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-utils@7.4.1...@metamask/snaps-utils@7.5.0
|
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,20 +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
|
-
var _chunk6LOYTBS3js = require('./chunk-6LOYTBS3.js');
|
|
10
9
|
|
|
10
|
+
var _chunkPZNIU23Ijs = require('./chunk-PZNIU23I.js');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkLOJA2ZS4js = require('./chunk-LOJA2ZS4.js');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunkT2VA4YJEjs = require('./chunk-T2VA4YJE.js');
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
@@ -24,7 +24,7 @@ var _chunkZT3KKTS2js = require('./chunk-ZT3KKTS2.js');
|
|
|
24
24
|
var _chunkT3YY4JIJjs = require('./chunk-T3YY4JIJ.js');
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
var
|
|
27
|
+
var _chunk4ZJOU3LRjs = require('./chunk-4ZJOU3LR.js');
|
|
28
28
|
|
|
29
29
|
// src/manifest/validation.ts
|
|
30
30
|
var _keytree = require('@metamask/key-tree');
|
|
@@ -35,7 +35,6 @@ var _keytree = require('@metamask/key-tree');
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
var _utils = require('@metamask/utils');
|
|
39
38
|
|
|
40
39
|
|
|
41
40
|
|
|
@@ -46,6 +45,7 @@ var _utils = require('@metamask/utils');
|
|
|
46
45
|
|
|
47
46
|
|
|
48
47
|
|
|
48
|
+
var _superstruct = require('@metamask/superstruct');
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@ var _utils = require('@metamask/utils');
|
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
var
|
|
56
|
+
var _utils = require('@metamask/utils');
|
|
57
57
|
var FORBIDDEN_PURPOSES = [
|
|
58
58
|
_chunkZT3KKTS2js.SIP_6_MAGIC_VALUE,
|
|
59
59
|
_chunkZT3KKTS2js.STATE_ENCRYPTION_MAGIC_VALUE
|
|
@@ -122,7 +122,7 @@ var SemVerRangeStruct = _superstruct.refine.call(void 0, _superstruct.string.cal
|
|
|
122
122
|
return "Expected a valid SemVer range.";
|
|
123
123
|
});
|
|
124
124
|
var SnapIdsStruct = _superstruct.refine.call(void 0,
|
|
125
|
-
_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) })),
|
|
126
126
|
"SnapIds",
|
|
127
127
|
(value) => {
|
|
128
128
|
if (Object.keys(value).length === 0) {
|
|
@@ -131,7 +131,7 @@ var SnapIdsStruct = _superstruct.refine.call(void 0,
|
|
|
131
131
|
return true;
|
|
132
132
|
}
|
|
133
133
|
);
|
|
134
|
-
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);
|
|
135
135
|
var LookupMatchersStruct = _superstruct.union.call(void 0, [
|
|
136
136
|
_superstruct.object.call(void 0, {
|
|
137
137
|
tlds: _superstruct.size.call(void 0, _superstruct.array.call(void 0, _superstruct.string.call(void 0, )), 1, Infinity)
|
|
@@ -157,18 +157,18 @@ var HandlerCaveatsStruct = _superstruct.object.call(void 0, {
|
|
|
157
157
|
var EmptyObjectStruct = _superstruct.object.call(void 0, {});
|
|
158
158
|
var PermissionsStruct = _superstruct.type.call(void 0, {
|
|
159
159
|
"endowment:cronjob": _superstruct.optional.call(void 0,
|
|
160
|
-
|
|
160
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0,
|
|
161
161
|
HandlerCaveatsStruct,
|
|
162
|
-
_superstruct.object.call(void 0, { jobs:
|
|
162
|
+
_superstruct.object.call(void 0, { jobs: _chunk4ZJOU3LRjs.CronjobSpecificationArrayStruct })
|
|
163
163
|
)
|
|
164
164
|
),
|
|
165
165
|
"endowment:ethereum-provider": _superstruct.optional.call(void 0, EmptyObjectStruct),
|
|
166
166
|
"endowment:keyring": _superstruct.optional.call(void 0,
|
|
167
|
-
|
|
167
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0, HandlerCaveatsStruct, _chunkT2VA4YJEjs.KeyringOriginsStruct)
|
|
168
168
|
),
|
|
169
169
|
"endowment:lifecycle-hooks": _superstruct.optional.call(void 0, HandlerCaveatsStruct),
|
|
170
170
|
"endowment:name-lookup": _superstruct.optional.call(void 0,
|
|
171
|
-
|
|
171
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0,
|
|
172
172
|
HandlerCaveatsStruct,
|
|
173
173
|
_superstruct.object.call(void 0, {
|
|
174
174
|
chains: _superstruct.optional.call(void 0, ChainIdsStruct),
|
|
@@ -179,10 +179,10 @@ var PermissionsStruct = _superstruct.type.call(void 0, {
|
|
|
179
179
|
"endowment:network-access": _superstruct.optional.call(void 0, EmptyObjectStruct),
|
|
180
180
|
"endowment:page-home": _superstruct.optional.call(void 0, HandlerCaveatsStruct),
|
|
181
181
|
"endowment:rpc": _superstruct.optional.call(void 0,
|
|
182
|
-
|
|
182
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0, HandlerCaveatsStruct, _chunkT2VA4YJEjs.RpcOriginsStruct)
|
|
183
183
|
),
|
|
184
184
|
"endowment:signature-insight": _superstruct.optional.call(void 0,
|
|
185
|
-
|
|
185
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0,
|
|
186
186
|
HandlerCaveatsStruct,
|
|
187
187
|
_superstruct.object.call(void 0, {
|
|
188
188
|
allowSignatureOrigin: _superstruct.optional.call(void 0, _superstruct.boolean.call(void 0, ))
|
|
@@ -190,7 +190,7 @@ var PermissionsStruct = _superstruct.type.call(void 0, {
|
|
|
190
190
|
)
|
|
191
191
|
),
|
|
192
192
|
"endowment:transaction-insight": _superstruct.optional.call(void 0,
|
|
193
|
-
|
|
193
|
+
_chunkVOPTAKVGjs.mergeStructs.call(void 0,
|
|
194
194
|
HandlerCaveatsStruct,
|
|
195
195
|
_superstruct.object.call(void 0, {
|
|
196
196
|
allowTransactionOrigin: _superstruct.optional.call(void 0, _superstruct.boolean.call(void 0, ))
|
|
@@ -217,7 +217,7 @@ var PermissionsStruct = _superstruct.type.call(void 0, {
|
|
|
217
217
|
});
|
|
218
218
|
var SnapAuxilaryFilesStruct = _superstruct.array.call(void 0, _superstruct.string.call(void 0, ));
|
|
219
219
|
var InitialConnectionsStruct = _superstruct.record.call(void 0,
|
|
220
|
-
_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, )]),
|
|
221
221
|
_superstruct.object.call(void 0, {})
|
|
222
222
|
);
|
|
223
223
|
var SnapManifestStruct = _superstruct.object.call(void 0, {
|
|
@@ -236,7 +236,7 @@ var SnapManifestStruct = _superstruct.object.call(void 0, {
|
|
|
236
236
|
npm: _superstruct.object.call(void 0, {
|
|
237
237
|
filePath: _superstruct.size.call(void 0, _superstruct.string.call(void 0, ), 1, Infinity),
|
|
238
238
|
iconPath: _superstruct.optional.call(void 0, _superstruct.size.call(void 0, _superstruct.string.call(void 0, ), 1, Infinity)),
|
|
239
|
-
packageName:
|
|
239
|
+
packageName: _chunkPZNIU23Ijs.NameStruct,
|
|
240
240
|
registry: _superstruct.union.call(void 0, [
|
|
241
241
|
_superstruct.literal.call(void 0, "https://registry.npmjs.org"),
|
|
242
242
|
_superstruct.literal.call(void 0, "https://registry.npmjs.org/")
|
|
@@ -290,4 +290,4 @@ function createSnapManifest(value) {
|
|
|
290
290
|
|
|
291
291
|
|
|
292
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;
|
|
293
|
-
//# 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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"names":[],"mappings":";AAGO,IAAM,gBAAgB","sourcesContent":["// The max file size for Snap source code and auxiliary files.\n// 64 MB - we chose this number because it is the size limit for postMessage\n// between the extension and the offscreen document enforced by Chrome.\nexport const MAX_FILE_SIZE = 64_000_000;\n"]}
|