@metamask/snaps-utils 8.0.1 → 8.1.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.
Files changed (975) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/dist/array.cjs +17 -0
  3. package/dist/array.cjs.map +1 -0
  4. package/dist/array.d.cts +11 -0
  5. package/dist/array.d.cts.map +1 -0
  6. package/dist/array.d.mts +11 -0
  7. package/dist/array.d.mts.map +1 -0
  8. package/dist/array.mjs +12 -7
  9. package/dist/array.mjs.map +1 -1
  10. package/dist/auxiliary-files.cjs +39 -0
  11. package/dist/auxiliary-files.cjs.map +1 -0
  12. package/dist/auxiliary-files.d.cts +17 -0
  13. package/dist/auxiliary-files.d.cts.map +1 -0
  14. package/dist/auxiliary-files.d.mts +17 -0
  15. package/dist/auxiliary-files.d.mts.map +1 -0
  16. package/dist/auxiliary-files.mjs +33 -14
  17. package/dist/auxiliary-files.mjs.map +1 -1
  18. package/dist/base64.cjs +38 -0
  19. package/dist/base64.cjs.map +1 -0
  20. package/dist/base64.d.cts +16 -0
  21. package/dist/base64.d.cts.map +1 -0
  22. package/dist/base64.d.mts +16 -0
  23. package/dist/base64.d.mts.map +1 -0
  24. package/dist/base64.mjs +32 -12
  25. package/dist/base64.mjs.map +1 -1
  26. package/dist/bytes.cjs +22 -0
  27. package/dist/bytes.cjs.map +1 -0
  28. package/dist/bytes.d.cts +9 -0
  29. package/dist/bytes.d.cts.map +1 -0
  30. package/dist/bytes.d.mts +9 -0
  31. package/dist/bytes.d.mts.map +1 -0
  32. package/dist/bytes.mjs +17 -9
  33. package/dist/bytes.mjs.map +1 -1
  34. package/dist/caveats.cjs +51 -0
  35. package/dist/caveats.cjs.map +1 -0
  36. package/dist/caveats.d.cts +47 -0
  37. package/dist/caveats.d.cts.map +1 -0
  38. package/dist/caveats.d.mts +47 -0
  39. package/dist/caveats.d.mts.map +1 -0
  40. package/dist/caveats.mjs +47 -7
  41. package/dist/caveats.mjs.map +1 -1
  42. package/dist/checksum.cjs +49 -0
  43. package/dist/checksum.cjs.map +1 -0
  44. package/dist/checksum.d.cts +22 -0
  45. package/dist/checksum.d.cts.map +1 -0
  46. package/dist/checksum.d.mts +22 -0
  47. package/dist/checksum.d.mts.map +1 -0
  48. package/dist/checksum.mjs +43 -12
  49. package/dist/checksum.mjs.map +1 -1
  50. package/dist/constants.cjs +8 -0
  51. package/dist/constants.cjs.map +1 -0
  52. package/dist/constants.d.cts +2 -0
  53. package/dist/constants.d.cts.map +1 -0
  54. package/dist/constants.d.mts +2 -0
  55. package/dist/constants.d.mts.map +1 -0
  56. package/dist/constants.mjs +4 -7
  57. package/dist/constants.mjs.map +1 -1
  58. package/dist/cronjob.cjs +70 -0
  59. package/dist/cronjob.cjs.map +1 -0
  60. package/dist/cronjob.d.cts +90 -0
  61. package/dist/cronjob.d.cts.map +1 -0
  62. package/dist/cronjob.d.mts +90 -0
  63. package/dist/cronjob.d.mts.map +1 -0
  64. package/dist/cronjob.mjs +64 -19
  65. package/dist/cronjob.mjs.map +1 -1
  66. package/dist/deep-clone.cjs +9 -0
  67. package/dist/deep-clone.cjs.map +1 -0
  68. package/dist/deep-clone.d.cts +2 -0
  69. package/dist/deep-clone.d.cts.map +1 -0
  70. package/dist/deep-clone.d.mts +2 -0
  71. package/dist/deep-clone.d.mts.map +1 -0
  72. package/dist/deep-clone.mjs +9 -7
  73. package/dist/deep-clone.mjs.map +1 -1
  74. package/dist/default-endowments.cjs +42 -0
  75. package/dist/default-endowments.cjs.map +1 -0
  76. package/dist/default-endowments.d.cts +5 -0
  77. package/dist/default-endowments.d.cts.map +1 -0
  78. package/dist/default-endowments.d.mts +5 -0
  79. package/dist/default-endowments.d.mts.map +1 -0
  80. package/dist/default-endowments.mjs +38 -7
  81. package/dist/default-endowments.mjs.map +1 -1
  82. package/dist/derivation-paths.cjs +215 -0
  83. package/dist/derivation-paths.cjs.map +1 -0
  84. package/dist/derivation-paths.d.cts +25 -0
  85. package/dist/derivation-paths.d.cts.map +1 -0
  86. package/dist/derivation-paths.d.mts +25 -0
  87. package/dist/derivation-paths.d.mts.map +1 -0
  88. package/dist/derivation-paths.mjs +206 -12
  89. package/dist/derivation-paths.mjs.map +1 -1
  90. package/dist/entropy.cjs +8 -0
  91. package/dist/entropy.cjs.map +1 -0
  92. package/dist/entropy.d.cts +4 -0
  93. package/dist/entropy.d.cts.map +1 -0
  94. package/dist/entropy.d.mts +4 -0
  95. package/dist/entropy.d.mts.map +1 -0
  96. package/dist/entropy.mjs +4 -9
  97. package/dist/entropy.mjs.map +1 -1
  98. package/dist/errors.cjs +189 -0
  99. package/dist/errors.cjs.map +1 -0
  100. package/dist/errors.d.cts +85 -0
  101. package/dist/errors.d.cts.map +1 -0
  102. package/dist/errors.d.mts +85 -0
  103. package/dist/errors.d.mts.map +1 -0
  104. package/dist/errors.mjs +179 -18
  105. package/dist/errors.mjs.map +1 -1
  106. package/dist/eval-worker.cjs +42 -0
  107. package/dist/eval-worker.cjs.map +1 -0
  108. package/dist/eval-worker.d.cts +2 -0
  109. package/dist/eval-worker.d.cts.map +1 -0
  110. package/dist/eval-worker.d.mts +2 -0
  111. package/dist/eval-worker.d.mts.map +1 -0
  112. package/dist/eval-worker.mjs +28 -31
  113. package/dist/eval-worker.mjs.map +1 -1
  114. package/dist/eval.cjs +54 -0
  115. package/dist/eval.cjs.map +1 -0
  116. package/dist/eval.d.cts +17 -0
  117. package/dist/eval.d.cts.map +1 -0
  118. package/dist/eval.d.mts +17 -0
  119. package/dist/eval.d.mts.map +1 -0
  120. package/dist/eval.mjs +48 -16
  121. package/dist/eval.mjs.map +1 -1
  122. package/dist/fs.cjs +159 -0
  123. package/dist/fs.cjs.map +1 -0
  124. package/dist/fs.d.cts +70 -0
  125. package/dist/fs.d.cts.map +1 -0
  126. package/dist/fs.d.mts +70 -0
  127. package/dist/fs.d.mts.map +1 -0
  128. package/dist/fs.mjs +144 -27
  129. package/dist/fs.mjs.map +1 -1
  130. package/dist/handler-types.cjs +18 -0
  131. package/dist/handler-types.cjs.map +1 -0
  132. package/dist/handler-types.d.cts +35 -0
  133. package/dist/handler-types.d.cts.map +1 -0
  134. package/dist/handler-types.d.mts +35 -0
  135. package/dist/handler-types.d.mts.map +1 -0
  136. package/dist/handler-types.mjs +14 -9
  137. package/dist/handler-types.mjs.map +1 -1
  138. package/dist/handlers.cjs +119 -0
  139. package/dist/handlers.cjs.map +1 -0
  140. package/dist/handlers.d.cts +750 -0
  141. package/dist/handlers.d.cts.map +1 -0
  142. package/dist/handlers.d.mts +750 -0
  143. package/dist/handlers.d.mts.map +1 -0
  144. package/dist/handlers.mjs +114 -33
  145. package/dist/handlers.mjs.map +1 -1
  146. package/dist/icon.cjs +58 -0
  147. package/dist/icon.cjs.map +1 -0
  148. package/dist/icon.d.cts +20 -0
  149. package/dist/icon.d.cts.map +1 -0
  150. package/dist/icon.d.mts +20 -0
  151. package/dist/icon.d.mts.map +1 -0
  152. package/dist/icon.mjs +52 -14
  153. package/dist/icon.mjs.map +1 -1
  154. package/dist/iframe.cjs +54 -0
  155. package/dist/iframe.cjs.map +1 -0
  156. package/dist/iframe.d.cts +12 -0
  157. package/dist/iframe.d.cts.map +1 -0
  158. package/dist/iframe.d.mts +12 -0
  159. package/dist/iframe.d.mts.map +1 -0
  160. package/dist/iframe.mjs +49 -7
  161. package/dist/iframe.mjs.map +1 -1
  162. package/dist/iframe.test.browser.cjs +15 -0
  163. package/dist/iframe.test.browser.cjs.map +1 -0
  164. package/dist/iframe.test.browser.d.cts +2 -0
  165. package/dist/iframe.test.browser.d.cts.map +1 -0
  166. package/dist/iframe.test.browser.d.mts +2 -0
  167. package/dist/iframe.test.browser.d.mts.map +1 -0
  168. package/dist/iframe.test.browser.mjs +13 -0
  169. package/dist/iframe.test.browser.mjs.map +1 -0
  170. package/dist/index.cjs +49 -0
  171. package/dist/index.cjs.map +1 -0
  172. package/dist/index.d.cts +33 -0
  173. package/dist/index.d.cts.map +1 -0
  174. package/dist/index.d.mts +33 -0
  175. package/dist/index.d.mts.map +1 -0
  176. package/dist/index.executionenv.cjs +25 -0
  177. package/dist/index.executionenv.cjs.map +1 -0
  178. package/dist/index.executionenv.d.cts +8 -0
  179. package/dist/index.executionenv.d.cts.map +1 -0
  180. package/dist/index.executionenv.d.mts +8 -0
  181. package/dist/index.executionenv.d.mts.map +1 -0
  182. package/dist/index.executionenv.mjs +8 -127
  183. package/dist/index.executionenv.mjs.map +1 -1
  184. package/dist/index.mjs +32 -397
  185. package/dist/index.mjs.map +1 -1
  186. package/dist/json-rpc.cjs +135 -0
  187. package/dist/json-rpc.cjs.map +1 -0
  188. package/dist/json-rpc.d.cts +56 -0
  189. package/dist/json-rpc.d.cts.map +1 -0
  190. package/dist/json-rpc.d.mts +56 -0
  191. package/dist/json-rpc.d.mts.map +1 -0
  192. package/dist/json-rpc.mjs +127 -17
  193. package/dist/json-rpc.mjs.map +1 -1
  194. package/dist/json.cjs +34 -0
  195. package/dist/json.cjs.map +1 -0
  196. package/dist/json.d.cts +23 -0
  197. package/dist/json.d.cts.map +1 -0
  198. package/dist/json.d.mts +23 -0
  199. package/dist/json.d.mts.map +1 -0
  200. package/dist/json.mjs +28 -9
  201. package/dist/json.mjs.map +1 -1
  202. package/dist/localization.cjs +128 -0
  203. package/dist/localization.cjs.map +1 -0
  204. package/dist/localization.d.cts +146 -0
  205. package/dist/localization.d.cts.map +1 -0
  206. package/dist/localization.d.mts +146 -0
  207. package/dist/localization.d.mts.map +1 -0
  208. package/dist/localization.mjs +119 -22
  209. package/dist/localization.mjs.map +1 -1
  210. package/dist/logging.cjs +67 -0
  211. package/dist/logging.cjs.map +1 -0
  212. package/dist/logging.d.cts +50 -0
  213. package/dist/logging.d.cts.map +1 -0
  214. package/dist/logging.d.mts +50 -0
  215. package/dist/logging.d.mts.map +1 -0
  216. package/dist/logging.mjs +60 -13
  217. package/dist/logging.mjs.map +1 -1
  218. package/dist/manifest/index.cjs +18 -0
  219. package/dist/manifest/index.cjs.map +1 -0
  220. package/dist/manifest/index.d.cts +2 -0
  221. package/dist/manifest/index.d.cts.map +1 -0
  222. package/dist/manifest/index.d.mts +2 -0
  223. package/dist/manifest/index.d.mts.map +1 -0
  224. package/dist/manifest/index.mjs +1 -64
  225. package/dist/manifest/index.mjs.map +1 -1
  226. package/dist/manifest/manifest.cjs +267 -0
  227. package/dist/manifest/manifest.cjs.map +1 -0
  228. package/dist/manifest/manifest.d.cts +100 -0
  229. package/dist/manifest/manifest.d.cts.map +1 -0
  230. package/dist/manifest/manifest.d.mts +100 -0
  231. package/dist/manifest/manifest.d.mts.map +1 -0
  232. package/dist/manifest/manifest.mjs +252 -57
  233. package/dist/manifest/manifest.mjs.map +1 -1
  234. package/dist/manifest/node.cjs +19 -0
  235. package/dist/manifest/node.cjs.map +1 -0
  236. package/dist/manifest/node.d.cts +3 -0
  237. package/dist/manifest/node.d.cts.map +1 -0
  238. package/dist/manifest/node.d.mts +3 -0
  239. package/dist/manifest/node.d.mts.map +1 -0
  240. package/dist/manifest/node.mjs +2 -105
  241. package/dist/manifest/node.mjs.map +1 -1
  242. package/dist/manifest/validation.cjs +194 -0
  243. package/dist/manifest/validation.cjs.map +1 -0
  244. package/dist/manifest/validation.d.cts +254 -0
  245. package/dist/manifest/validation.d.cts.map +1 -0
  246. package/dist/manifest/validation.d.mts +254 -0
  247. package/dist/manifest/validation.d.mts.map +1 -0
  248. package/dist/manifest/validation.mjs +186 -63
  249. package/dist/manifest/validation.mjs.map +1 -1
  250. package/dist/manifest/validator-types.cjs +3 -0
  251. package/dist/manifest/validator-types.cjs.map +1 -0
  252. package/dist/manifest/validator-types.d.cts +35 -0
  253. package/dist/manifest/validator-types.d.cts.map +1 -0
  254. package/dist/manifest/validator-types.d.mts +35 -0
  255. package/dist/manifest/validator-types.d.mts.map +1 -0
  256. package/dist/manifest/validator-types.mjs +1 -0
  257. package/dist/manifest/validator-types.mjs.map +1 -1
  258. package/dist/manifest/validator.cjs +109 -0
  259. package/dist/manifest/validator.cjs.map +1 -0
  260. package/dist/manifest/validator.d.cts +24 -0
  261. package/dist/manifest/validator.d.cts.map +1 -0
  262. package/dist/manifest/validator.d.mts +24 -0
  263. package/dist/manifest/validator.d.mts.map +1 -0
  264. package/dist/manifest/validator.mjs +79 -42
  265. package/dist/manifest/validator.mjs.map +1 -1
  266. package/dist/manifest/validators/checksum.cjs +23 -0
  267. package/dist/manifest/validators/checksum.cjs.map +1 -0
  268. package/dist/manifest/validators/checksum.d.cts +6 -0
  269. package/dist/manifest/validators/checksum.d.cts.map +1 -0
  270. package/dist/manifest/validators/checksum.d.mts +6 -0
  271. package/dist/manifest/validators/checksum.d.mts.map +1 -0
  272. package/dist/manifest/validators/checksum.mjs +18 -13
  273. package/dist/manifest/validators/checksum.mjs.map +1 -1
  274. package/dist/manifest/validators/expected-files.cjs +24 -0
  275. package/dist/manifest/validators/expected-files.cjs.map +1 -0
  276. package/dist/manifest/validators/expected-files.d.cts +6 -0
  277. package/dist/manifest/validators/expected-files.d.cts.map +1 -0
  278. package/dist/manifest/validators/expected-files.d.mts +6 -0
  279. package/dist/manifest/validators/expected-files.d.mts.map +1 -0
  280. package/dist/manifest/validators/expected-files.mjs +19 -7
  281. package/dist/manifest/validators/expected-files.mjs.map +1 -1
  282. package/dist/manifest/validators/icon-declared.cjs +15 -0
  283. package/dist/manifest/validators/icon-declared.cjs.map +1 -0
  284. package/dist/manifest/validators/icon-declared.d.cts +6 -0
  285. package/dist/manifest/validators/icon-declared.d.cts.map +1 -0
  286. package/dist/manifest/validators/icon-declared.d.mts +6 -0
  287. package/dist/manifest/validators/icon-declared.d.mts.map +1 -0
  288. package/dist/manifest/validators/icon-declared.mjs +10 -6
  289. package/dist/manifest/validators/icon-declared.mjs.map +1 -1
  290. package/dist/manifest/validators/icon-dimensions.cjs +20 -0
  291. package/dist/manifest/validators/icon-dimensions.cjs.map +1 -0
  292. package/dist/manifest/validators/icon-dimensions.d.cts +6 -0
  293. package/dist/manifest/validators/icon-dimensions.d.cts.map +1 -0
  294. package/dist/manifest/validators/icon-dimensions.d.mts +6 -0
  295. package/dist/manifest/validators/icon-dimensions.d.mts.map +1 -0
  296. package/dist/manifest/validators/icon-dimensions.mjs +15 -8
  297. package/dist/manifest/validators/icon-dimensions.mjs.map +1 -1
  298. package/dist/manifest/validators/icon-missing.cjs +16 -0
  299. package/dist/manifest/validators/icon-missing.cjs.map +1 -0
  300. package/dist/manifest/validators/icon-missing.d.cts +6 -0
  301. package/dist/manifest/validators/icon-missing.d.cts.map +1 -0
  302. package/dist/manifest/validators/icon-missing.d.mts +6 -0
  303. package/dist/manifest/validators/icon-missing.d.mts.map +1 -0
  304. package/dist/manifest/validators/icon-missing.mjs +11 -6
  305. package/dist/manifest/validators/icon-missing.mjs.map +1 -1
  306. package/dist/manifest/validators/index.cjs +31 -0
  307. package/dist/manifest/validators/index.cjs.map +1 -0
  308. package/dist/manifest/validators/index.d.cts +15 -0
  309. package/dist/manifest/validators/index.d.cts.map +1 -0
  310. package/dist/manifest/validators/index.d.mts +15 -0
  311. package/dist/manifest/validators/index.d.mts.map +1 -0
  312. package/dist/manifest/validators/index.mjs +14 -79
  313. package/dist/manifest/validators/index.mjs.map +1 -1
  314. package/dist/manifest/validators/is-localization-file.cjs +23 -0
  315. package/dist/manifest/validators/is-localization-file.cjs.map +1 -0
  316. package/dist/manifest/validators/is-localization-file.d.cts +6 -0
  317. package/dist/manifest/validators/is-localization-file.d.cts.map +1 -0
  318. package/dist/manifest/validators/is-localization-file.d.mts +6 -0
  319. package/dist/manifest/validators/is-localization-file.d.mts.map +1 -0
  320. package/dist/manifest/validators/is-localization-file.mjs +18 -10
  321. package/dist/manifest/validators/is-localization-file.mjs.map +1 -1
  322. package/dist/manifest/validators/is-package-json.cjs +24 -0
  323. package/dist/manifest/validators/is-package-json.cjs.map +1 -0
  324. package/dist/manifest/validators/is-package-json.d.cts +6 -0
  325. package/dist/manifest/validators/is-package-json.d.cts.map +1 -0
  326. package/dist/manifest/validators/is-package-json.d.mts +6 -0
  327. package/dist/manifest/validators/is-package-json.d.mts.map +1 -0
  328. package/dist/manifest/validators/is-package-json.mjs +19 -9
  329. package/dist/manifest/validators/is-package-json.mjs.map +1 -1
  330. package/dist/manifest/validators/is-snap-icon.cjs +24 -0
  331. package/dist/manifest/validators/is-snap-icon.cjs.map +1 -0
  332. package/dist/manifest/validators/is-snap-icon.d.cts +6 -0
  333. package/dist/manifest/validators/is-snap-icon.d.cts.map +1 -0
  334. package/dist/manifest/validators/is-snap-icon.d.mts +6 -0
  335. package/dist/manifest/validators/is-snap-icon.d.mts.map +1 -0
  336. package/dist/manifest/validators/is-snap-icon.mjs +19 -8
  337. package/dist/manifest/validators/is-snap-icon.mjs.map +1 -1
  338. package/dist/manifest/validators/is-snap-manifest.cjs +25 -0
  339. package/dist/manifest/validators/is-snap-manifest.cjs.map +1 -0
  340. package/dist/manifest/validators/is-snap-manifest.d.cts +6 -0
  341. package/dist/manifest/validators/is-snap-manifest.d.cts.map +1 -0
  342. package/dist/manifest/validators/is-snap-manifest.d.mts +6 -0
  343. package/dist/manifest/validators/is-snap-manifest.d.mts.map +1 -0
  344. package/dist/manifest/validators/is-snap-manifest.mjs +20 -21
  345. package/dist/manifest/validators/is-snap-manifest.mjs.map +1 -1
  346. package/dist/manifest/validators/manifest-localization.cjs +30 -0
  347. package/dist/manifest/validators/manifest-localization.cjs.map +1 -0
  348. package/dist/manifest/validators/manifest-localization.d.cts +6 -0
  349. package/dist/manifest/validators/manifest-localization.d.cts.map +1 -0
  350. package/dist/manifest/validators/manifest-localization.d.mts +6 -0
  351. package/dist/manifest/validators/manifest-localization.d.mts.map +1 -0
  352. package/dist/manifest/validators/manifest-localization.mjs +25 -8
  353. package/dist/manifest/validators/manifest-localization.mjs.map +1 -1
  354. package/dist/manifest/validators/package-json-recommended-fields.cjs +18 -0
  355. package/dist/manifest/validators/package-json-recommended-fields.cjs.map +1 -0
  356. package/dist/manifest/validators/package-json-recommended-fields.d.cts +6 -0
  357. package/dist/manifest/validators/package-json-recommended-fields.d.cts.map +1 -0
  358. package/dist/manifest/validators/package-json-recommended-fields.d.mts +6 -0
  359. package/dist/manifest/validators/package-json-recommended-fields.d.mts.map +1 -0
  360. package/dist/manifest/validators/package-json-recommended-fields.mjs +13 -6
  361. package/dist/manifest/validators/package-json-recommended-fields.mjs.map +1 -1
  362. package/dist/manifest/validators/package-name-match.cjs +21 -0
  363. package/dist/manifest/validators/package-name-match.cjs.map +1 -0
  364. package/dist/manifest/validators/package-name-match.d.cts +6 -0
  365. package/dist/manifest/validators/package-name-match.d.cts.map +1 -0
  366. package/dist/manifest/validators/package-name-match.d.mts +6 -0
  367. package/dist/manifest/validators/package-name-match.d.mts.map +1 -0
  368. package/dist/manifest/validators/package-name-match.mjs +16 -7
  369. package/dist/manifest/validators/package-name-match.mjs.map +1 -1
  370. package/dist/manifest/validators/repository-match.cjs +29 -0
  371. package/dist/manifest/validators/repository-match.cjs.map +1 -0
  372. package/dist/manifest/validators/repository-match.d.cts +6 -0
  373. package/dist/manifest/validators/repository-match.d.cts.map +1 -0
  374. package/dist/manifest/validators/repository-match.d.mts +6 -0
  375. package/dist/manifest/validators/repository-match.d.mts.map +1 -0
  376. package/dist/manifest/validators/repository-match.mjs +28 -8
  377. package/dist/manifest/validators/repository-match.mjs.map +1 -1
  378. package/dist/manifest/validators/version-match.cjs +21 -0
  379. package/dist/manifest/validators/version-match.cjs.map +1 -0
  380. package/dist/manifest/validators/version-match.d.cts +6 -0
  381. package/dist/manifest/validators/version-match.d.cts.map +1 -0
  382. package/dist/manifest/validators/version-match.d.mts +6 -0
  383. package/dist/manifest/validators/version-match.d.mts.map +1 -0
  384. package/dist/manifest/validators/version-match.mjs +16 -7
  385. package/dist/manifest/validators/version-match.mjs.map +1 -1
  386. package/dist/mock.cjs +113 -0
  387. package/dist/mock.cjs.map +1 -0
  388. package/dist/mock.d.cts +15 -0
  389. package/dist/mock.d.cts.map +1 -0
  390. package/dist/mock.d.mts +15 -0
  391. package/dist/mock.d.mts.map +1 -0
  392. package/dist/mock.mjs +103 -11
  393. package/dist/mock.mjs.map +1 -1
  394. package/dist/namespace.cjs +136 -0
  395. package/dist/namespace.cjs.map +1 -0
  396. package/dist/namespace.d.cts +130 -0
  397. package/dist/namespace.d.cts.map +1 -0
  398. package/dist/namespace.d.mts +130 -0
  399. package/dist/namespace.d.mts.map +1 -0
  400. package/dist/namespace.mjs +125 -43
  401. package/dist/namespace.mjs.map +1 -1
  402. package/dist/node.cjs +25 -0
  403. package/dist/node.cjs.map +1 -0
  404. package/dist/node.d.cts +8 -0
  405. package/dist/node.d.cts.map +1 -0
  406. package/dist/node.d.mts +8 -0
  407. package/dist/node.d.mts.map +1 -0
  408. package/dist/node.mjs +8 -475
  409. package/dist/node.mjs.map +1 -1
  410. package/dist/path.cjs +21 -0
  411. package/dist/path.cjs.map +1 -0
  412. package/dist/path.d.cts +8 -0
  413. package/dist/path.d.cts.map +1 -0
  414. package/dist/path.d.mts +8 -0
  415. package/dist/path.d.mts.map +1 -0
  416. package/dist/path.mjs +16 -7
  417. package/dist/path.mjs.map +1 -1
  418. package/dist/post-process.cjs +339 -0
  419. package/dist/post-process.cjs.map +1 -0
  420. package/dist/post-process.d.cts +72 -0
  421. package/dist/post-process.d.cts.map +1 -0
  422. package/dist/post-process.d.mts +72 -0
  423. package/dist/post-process.d.mts.map +1 -0
  424. package/dist/post-process.mjs +335 -9
  425. package/dist/post-process.mjs.map +1 -1
  426. package/dist/promise.cjs +3 -0
  427. package/dist/promise.cjs.map +1 -0
  428. package/dist/promise.d.cts +2 -0
  429. package/dist/promise.d.cts.map +1 -0
  430. package/dist/promise.d.mts +2 -0
  431. package/dist/promise.d.mts.map +1 -0
  432. package/dist/promise.mjs +1 -1
  433. package/dist/promise.mjs.map +1 -1
  434. package/dist/snaps.cjs +207 -0
  435. package/dist/snaps.cjs.map +1 -0
  436. package/dist/snaps.d.cts +170 -0
  437. package/dist/snaps.d.cts.map +1 -0
  438. package/dist/snaps.d.mts +170 -0
  439. package/dist/snaps.d.mts.map +1 -0
  440. package/dist/snaps.mjs +200 -45
  441. package/dist/snaps.mjs.map +1 -1
  442. package/dist/strings.cjs +15 -0
  443. package/dist/strings.cjs.map +1 -0
  444. package/dist/strings.d.cts +9 -0
  445. package/dist/strings.d.cts.map +1 -0
  446. package/dist/strings.d.mts +9 -0
  447. package/dist/strings.d.mts.map +1 -0
  448. package/dist/strings.mjs +10 -7
  449. package/dist/strings.mjs.map +1 -1
  450. package/dist/structs.cjs +316 -0
  451. package/dist/structs.cjs.map +1 -0
  452. package/dist/structs.d.cts +181 -0
  453. package/dist/structs.d.cts.map +1 -0
  454. package/dist/structs.d.mts +181 -0
  455. package/dist/structs.d.mts.map +1 -0
  456. package/dist/structs.mjs +300 -32
  457. package/dist/structs.mjs.map +1 -1
  458. package/dist/svg.cjs +49 -0
  459. package/dist/svg.cjs.map +1 -0
  460. package/dist/svg.d.cts +15 -0
  461. package/dist/svg.d.cts.map +1 -0
  462. package/dist/svg.d.mts +15 -0
  463. package/dist/svg.d.mts.map +1 -0
  464. package/dist/svg.mjs +43 -9
  465. package/dist/svg.mjs.map +1 -1
  466. package/dist/types.cjs +64 -0
  467. package/dist/types.cjs.map +1 -0
  468. package/dist/types.d.cts +104 -0
  469. package/dist/types.d.cts.map +1 -0
  470. package/dist/types.d.mts +104 -0
  471. package/dist/types.d.mts.map +1 -0
  472. package/dist/types.mjs +58 -21
  473. package/dist/types.mjs.map +1 -1
  474. package/dist/ui.cjs +405 -0
  475. package/dist/ui.cjs.map +1 -0
  476. package/dist/ui.d.cts +93 -0
  477. package/dist/ui.d.cts.map +1 -0
  478. package/dist/ui.d.mts +93 -0
  479. package/dist/ui.d.mts.map +1 -0
  480. package/dist/ui.mjs +391 -23
  481. package/dist/ui.mjs.map +1 -1
  482. package/dist/validation.cjs +23 -0
  483. package/dist/validation.cjs.map +1 -0
  484. package/dist/validation.d.cts +9 -0
  485. package/dist/validation.d.cts.map +1 -0
  486. package/dist/validation.d.mts +9 -0
  487. package/dist/validation.d.mts.map +1 -0
  488. package/dist/validation.mjs +18 -26
  489. package/dist/validation.mjs.map +1 -1
  490. package/dist/versions.cjs +44 -0
  491. package/dist/versions.cjs.map +1 -0
  492. package/dist/versions.d.cts +22 -0
  493. package/dist/versions.d.cts.map +1 -0
  494. package/dist/versions.d.mts +22 -0
  495. package/dist/versions.d.mts.map +1 -0
  496. package/dist/versions.mjs +38 -11
  497. package/dist/versions.mjs.map +1 -1
  498. package/dist/virtual-file/VirtualFile.cjs +75 -0
  499. package/dist/virtual-file/VirtualFile.cjs.map +1 -0
  500. package/dist/virtual-file/VirtualFile.d.cts +35 -0
  501. package/dist/virtual-file/VirtualFile.d.cts.map +1 -0
  502. package/dist/virtual-file/VirtualFile.d.mts +35 -0
  503. package/dist/virtual-file/VirtualFile.d.mts.map +1 -0
  504. package/dist/virtual-file/VirtualFile.mjs +70 -8
  505. package/dist/virtual-file/VirtualFile.mjs.map +1 -1
  506. package/dist/virtual-file/index.cjs +18 -0
  507. package/dist/virtual-file/index.cjs.map +1 -0
  508. package/dist/virtual-file/index.d.cts +2 -0
  509. package/dist/virtual-file/index.d.cts.map +1 -0
  510. package/dist/virtual-file/index.d.mts +2 -0
  511. package/dist/virtual-file/index.d.mts.map +1 -0
  512. package/dist/virtual-file/index.mjs +1 -9
  513. package/dist/virtual-file/index.mjs.map +1 -1
  514. package/dist/virtual-file/node.cjs +19 -0
  515. package/dist/virtual-file/node.cjs.map +1 -0
  516. package/dist/virtual-file/node.d.cts +3 -0
  517. package/dist/virtual-file/node.d.cts.map +1 -0
  518. package/dist/virtual-file/node.d.mts +3 -0
  519. package/dist/virtual-file/node.d.mts.map +1 -0
  520. package/dist/virtual-file/node.mjs +2 -16
  521. package/dist/virtual-file/node.mjs.map +1 -1
  522. package/dist/virtual-file/toVirtualFile.cjs +31 -0
  523. package/dist/virtual-file/toVirtualFile.cjs.map +1 -0
  524. package/dist/virtual-file/toVirtualFile.d.cts +24 -0
  525. package/dist/virtual-file/toVirtualFile.d.cts.map +1 -0
  526. package/dist/virtual-file/toVirtualFile.d.mts +24 -0
  527. package/dist/virtual-file/toVirtualFile.d.mts.map +1 -0
  528. package/dist/virtual-file/toVirtualFile.mjs +25 -11
  529. package/dist/virtual-file/toVirtualFile.mjs.map +1 -1
  530. package/package.json +36 -24
  531. package/dist/array.js +0 -8
  532. package/dist/array.js.map +0 -1
  533. package/dist/auxiliary-files.js +0 -15
  534. package/dist/auxiliary-files.js.map +0 -1
  535. package/dist/base64.js +0 -13
  536. package/dist/base64.js.map +0 -1
  537. package/dist/bytes.js +0 -10
  538. package/dist/bytes.js.map +0 -1
  539. package/dist/caveats.js +0 -8
  540. package/dist/caveats.js.map +0 -1
  541. package/dist/checksum.js +0 -13
  542. package/dist/checksum.js.map +0 -1
  543. package/dist/chunk-37EUH3KZ.js +0 -293
  544. package/dist/chunk-37EUH3KZ.js.map +0 -1
  545. package/dist/chunk-3N27GIUS.mjs +0 -229
  546. package/dist/chunk-3N27GIUS.mjs.map +0 -1
  547. package/dist/chunk-3OXW5H4F.js +0 -30
  548. package/dist/chunk-3OXW5H4F.js.map +0 -1
  549. package/dist/chunk-3RFGTBEP.js +0 -151
  550. package/dist/chunk-3RFGTBEP.js.map +0 -1
  551. package/dist/chunk-3RUWAMJT.mjs +0 -31
  552. package/dist/chunk-3RUWAMJT.mjs.map +0 -1
  553. package/dist/chunk-3S4INAGA.mjs +0 -18
  554. package/dist/chunk-3S4INAGA.mjs.map +0 -1
  555. package/dist/chunk-44VFHYJO.js +0 -249
  556. package/dist/chunk-44VFHYJO.js.map +0 -1
  557. package/dist/chunk-4AA3TKRJ.mjs +0 -153
  558. package/dist/chunk-4AA3TKRJ.mjs.map +0 -1
  559. package/dist/chunk-4BGZ2CHC.mjs +0 -22
  560. package/dist/chunk-4BGZ2CHC.mjs.map +0 -1
  561. package/dist/chunk-4CMD46B2.js +0 -1
  562. package/dist/chunk-4CMD46B2.js.map +0 -1
  563. package/dist/chunk-4RYTYEUQ.mjs +0 -33
  564. package/dist/chunk-4RYTYEUQ.mjs.map +0 -1
  565. package/dist/chunk-4ZJOU3LR.js +0 -71
  566. package/dist/chunk-4ZJOU3LR.js.map +0 -1
  567. package/dist/chunk-53QXTM77.js +0 -229
  568. package/dist/chunk-53QXTM77.js.map +0 -1
  569. package/dist/chunk-5FTBWYCW.mjs +0 -27
  570. package/dist/chunk-5FTBWYCW.mjs.map +0 -1
  571. package/dist/chunk-5MABKEV7.mjs +0 -66
  572. package/dist/chunk-5MABKEV7.mjs.map +0 -1
  573. package/dist/chunk-5R7UF7KM.mjs +0 -21
  574. package/dist/chunk-5R7UF7KM.mjs.map +0 -1
  575. package/dist/chunk-5UAPBOKO.js +0 -37
  576. package/dist/chunk-5UAPBOKO.js.map +0 -1
  577. package/dist/chunk-5WKQI22S.js +0 -7
  578. package/dist/chunk-5WKQI22S.js.map +0 -1
  579. package/dist/chunk-63OXILAY.mjs +0 -69
  580. package/dist/chunk-63OXILAY.mjs.map +0 -1
  581. package/dist/chunk-6ATNGN44.js +0 -300
  582. package/dist/chunk-6ATNGN44.js.map +0 -1
  583. package/dist/chunk-6HXIPMBN.js +0 -103
  584. package/dist/chunk-6HXIPMBN.js.map +0 -1
  585. package/dist/chunk-6YJWU77L.js +0 -19
  586. package/dist/chunk-6YJWU77L.js.map +0 -1
  587. package/dist/chunk-7HLSXEHK.mjs +0 -300
  588. package/dist/chunk-7HLSXEHK.mjs.map +0 -1
  589. package/dist/chunk-7LG4D4XA.mjs +0 -20
  590. package/dist/chunk-7LG4D4XA.mjs.map +0 -1
  591. package/dist/chunk-7P62OIGX.js +0 -69
  592. package/dist/chunk-7P62OIGX.js.map +0 -1
  593. package/dist/chunk-7T7FYH77.mjs +0 -37
  594. package/dist/chunk-7T7FYH77.mjs.map +0 -1
  595. package/dist/chunk-7VJ2BOVU.js +0 -15
  596. package/dist/chunk-7VJ2BOVU.js.map +0 -1
  597. package/dist/chunk-A3RRMELT.mjs +0 -1
  598. package/dist/chunk-A3RRMELT.mjs.map +0 -1
  599. package/dist/chunk-AMW2VJ3N.js +0 -32
  600. package/dist/chunk-AMW2VJ3N.js.map +0 -1
  601. package/dist/chunk-ANYNWSCA.mjs +0 -104
  602. package/dist/chunk-ANYNWSCA.mjs.map +0 -1
  603. package/dist/chunk-AOGVLPQZ.js +0 -18
  604. package/dist/chunk-AOGVLPQZ.js.map +0 -1
  605. package/dist/chunk-AS5P6JRP.mjs +0 -9
  606. package/dist/chunk-AS5P6JRP.mjs.map +0 -1
  607. package/dist/chunk-ASZWZ7JT.js +0 -20
  608. package/dist/chunk-ASZWZ7JT.js.map +0 -1
  609. package/dist/chunk-B5GNTDE2.js +0 -109
  610. package/dist/chunk-B5GNTDE2.js.map +0 -1
  611. package/dist/chunk-BGSO2GQC.mjs +0 -41
  612. package/dist/chunk-BGSO2GQC.mjs.map +0 -1
  613. package/dist/chunk-BPK5BH7K.js +0 -27
  614. package/dist/chunk-BPK5BH7K.js.map +0 -1
  615. package/dist/chunk-CJK7DDV2.mjs +0 -109
  616. package/dist/chunk-CJK7DDV2.mjs.map +0 -1
  617. package/dist/chunk-CPG2UGAA.js +0 -25
  618. package/dist/chunk-CPG2UGAA.js.map +0 -1
  619. package/dist/chunk-DE22V5AO.mjs +0 -53
  620. package/dist/chunk-DE22V5AO.mjs.map +0 -1
  621. package/dist/chunk-DEQUNIME.js +0 -53
  622. package/dist/chunk-DEQUNIME.js.map +0 -1
  623. package/dist/chunk-DKO64Y4H.mjs +0 -27
  624. package/dist/chunk-DKO64Y4H.mjs.map +0 -1
  625. package/dist/chunk-E3BDBG6T.js +0 -20
  626. package/dist/chunk-E3BDBG6T.js.map +0 -1
  627. package/dist/chunk-EFRPCO3C.js +0 -1
  628. package/dist/chunk-EFRPCO3C.js.map +0 -1
  629. package/dist/chunk-EVHDXNOC.mjs +0 -35
  630. package/dist/chunk-EVHDXNOC.mjs.map +0 -1
  631. package/dist/chunk-EYWMVDCD.mjs +0 -25
  632. package/dist/chunk-EYWMVDCD.mjs.map +0 -1
  633. package/dist/chunk-FA4QIZH6.js +0 -1
  634. package/dist/chunk-FA4QIZH6.js.map +0 -1
  635. package/dist/chunk-FBZ5SU7X.js +0 -189
  636. package/dist/chunk-FBZ5SU7X.js.map +0 -1
  637. package/dist/chunk-GIVJAZ2Q.mjs +0 -248
  638. package/dist/chunk-GIVJAZ2Q.mjs.map +0 -1
  639. package/dist/chunk-GJAVOB7B.js +0 -24
  640. package/dist/chunk-GJAVOB7B.js.map +0 -1
  641. package/dist/chunk-GXSTPU7D.mjs +0 -293
  642. package/dist/chunk-GXSTPU7D.mjs.map +0 -1
  643. package/dist/chunk-HY4W6BUH.mjs +0 -24
  644. package/dist/chunk-HY4W6BUH.mjs.map +0 -1
  645. package/dist/chunk-HYF7Q6VY.mjs +0 -1
  646. package/dist/chunk-HYF7Q6VY.mjs.map +0 -1
  647. package/dist/chunk-I2SWLZ34.js +0 -30
  648. package/dist/chunk-I2SWLZ34.js.map +0 -1
  649. package/dist/chunk-IELPPZJP.mjs +0 -189
  650. package/dist/chunk-IELPPZJP.mjs.map +0 -1
  651. package/dist/chunk-IJX3CXOY.js +0 -9
  652. package/dist/chunk-IJX3CXOY.js.map +0 -1
  653. package/dist/chunk-IPUL74MZ.mjs +0 -30
  654. package/dist/chunk-IPUL74MZ.mjs.map +0 -1
  655. package/dist/chunk-IV3FSWZ7.mjs +0 -9
  656. package/dist/chunk-IV3FSWZ7.mjs.map +0 -1
  657. package/dist/chunk-IVDERT5W.js +0 -22
  658. package/dist/chunk-IVDERT5W.js.map +0 -1
  659. package/dist/chunk-JETPRED3.js +0 -248
  660. package/dist/chunk-JETPRED3.js.map +0 -1
  661. package/dist/chunk-JI5NQ2C3.mjs +0 -1
  662. package/dist/chunk-JI5NQ2C3.mjs.map +0 -1
  663. package/dist/chunk-JJTIVHFX.mjs +0 -38
  664. package/dist/chunk-JJTIVHFX.mjs.map +0 -1
  665. package/dist/chunk-L2DHOOBX.js +0 -33
  666. package/dist/chunk-L2DHOOBX.js.map +0 -1
  667. package/dist/chunk-LEKZPKS2.js +0 -21
  668. package/dist/chunk-LEKZPKS2.js.map +0 -1
  669. package/dist/chunk-LHQP7CUJ.mjs +0 -107
  670. package/dist/chunk-LHQP7CUJ.mjs.map +0 -1
  671. package/dist/chunk-LOJA2ZS4.js +0 -107
  672. package/dist/chunk-LOJA2ZS4.js.map +0 -1
  673. package/dist/chunk-LQSEBGOX.js +0 -34
  674. package/dist/chunk-LQSEBGOX.js.map +0 -1
  675. package/dist/chunk-MDOG3S4V.mjs +0 -34
  676. package/dist/chunk-MDOG3S4V.mjs.map +0 -1
  677. package/dist/chunk-MFGLB75H.mjs +0 -22
  678. package/dist/chunk-MFGLB75H.mjs.map +0 -1
  679. package/dist/chunk-MKFQAXRF.js +0 -21
  680. package/dist/chunk-MKFQAXRF.js.map +0 -1
  681. package/dist/chunk-MQURBEO4.mjs +0 -16
  682. package/dist/chunk-MQURBEO4.mjs.map +0 -1
  683. package/dist/chunk-MWAZGSRO.js +0 -75
  684. package/dist/chunk-MWAZGSRO.js.map +0 -1
  685. package/dist/chunk-N2JAYIUP.mjs +0 -75
  686. package/dist/chunk-N2JAYIUP.mjs.map +0 -1
  687. package/dist/chunk-N4MA537G.js +0 -22
  688. package/dist/chunk-N4MA537G.js.map +0 -1
  689. package/dist/chunk-N5HVDE3P.mjs +0 -30
  690. package/dist/chunk-N5HVDE3P.mjs.map +0 -1
  691. package/dist/chunk-N722KRZW.js +0 -41
  692. package/dist/chunk-N722KRZW.js.map +0 -1
  693. package/dist/chunk-NNYGTNHP.mjs +0 -1
  694. package/dist/chunk-NNYGTNHP.mjs.map +0 -1
  695. package/dist/chunk-NSVVZNSD.mjs +0 -183
  696. package/dist/chunk-NSVVZNSD.mjs.map +0 -1
  697. package/dist/chunk-NUCLSR2G.js +0 -8
  698. package/dist/chunk-NUCLSR2G.js.map +0 -1
  699. package/dist/chunk-OBN2WDFU.js +0 -38
  700. package/dist/chunk-OBN2WDFU.js.map +0 -1
  701. package/dist/chunk-P252LKUT.mjs +0 -9
  702. package/dist/chunk-P252LKUT.mjs.map +0 -1
  703. package/dist/chunk-PAOTMYIM.mjs +0 -69
  704. package/dist/chunk-PAOTMYIM.mjs.map +0 -1
  705. package/dist/chunk-PJMEJVOB.mjs +0 -29
  706. package/dist/chunk-PJMEJVOB.mjs.map +0 -1
  707. package/dist/chunk-PLBSSUVY.js +0 -29
  708. package/dist/chunk-PLBSSUVY.js.map +0 -1
  709. package/dist/chunk-PLNIERDY.js +0 -34
  710. package/dist/chunk-PLNIERDY.js.map +0 -1
  711. package/dist/chunk-PO5BBHHX.mjs +0 -22
  712. package/dist/chunk-PO5BBHHX.mjs.map +0 -1
  713. package/dist/chunk-PTOH2SVI.mjs +0 -55
  714. package/dist/chunk-PTOH2SVI.mjs.map +0 -1
  715. package/dist/chunk-PZF4KWU2.mjs +0 -151
  716. package/dist/chunk-PZF4KWU2.mjs.map +0 -1
  717. package/dist/chunk-QD3LTING.js +0 -34
  718. package/dist/chunk-QD3LTING.js.map +0 -1
  719. package/dist/chunk-QGCNQRIQ.js +0 -35
  720. package/dist/chunk-QGCNQRIQ.js.map +0 -1
  721. package/dist/chunk-QYPLUMB7.mjs +0 -249
  722. package/dist/chunk-QYPLUMB7.mjs.map +0 -1
  723. package/dist/chunk-RAZ7XG4Z.mjs +0 -1
  724. package/dist/chunk-RAZ7XG4Z.mjs.map +0 -1
  725. package/dist/chunk-RNMJQSVQ.js +0 -69
  726. package/dist/chunk-RNMJQSVQ.js.map +0 -1
  727. package/dist/chunk-RRFKK45V.mjs +0 -15
  728. package/dist/chunk-RRFKK45V.mjs.map +0 -1
  729. package/dist/chunk-S3BWTUTZ.js +0 -31
  730. package/dist/chunk-S3BWTUTZ.js.map +0 -1
  731. package/dist/chunk-SKKANJ45.mjs +0 -19
  732. package/dist/chunk-SKKANJ45.mjs.map +0 -1
  733. package/dist/chunk-SPCIIRSB.mjs +0 -7
  734. package/dist/chunk-SPCIIRSB.mjs.map +0 -1
  735. package/dist/chunk-SRMDDOVO.mjs +0 -20
  736. package/dist/chunk-SRMDDOVO.mjs.map +0 -1
  737. package/dist/chunk-SYYDKPK3.js +0 -15
  738. package/dist/chunk-SYYDKPK3.js.map +0 -1
  739. package/dist/chunk-T2VA4YJE.js +0 -104
  740. package/dist/chunk-T2VA4YJE.js.map +0 -1
  741. package/dist/chunk-T3VM5YXY.js +0 -1
  742. package/dist/chunk-T3VM5YXY.js.map +0 -1
  743. package/dist/chunk-T3YY4JIJ.js +0 -9
  744. package/dist/chunk-T3YY4JIJ.js.map +0 -1
  745. package/dist/chunk-T5ZOOZ46.js +0 -22
  746. package/dist/chunk-T5ZOOZ46.js.map +0 -1
  747. package/dist/chunk-TAMKWZ4E.js +0 -183
  748. package/dist/chunk-TAMKWZ4E.js.map +0 -1
  749. package/dist/chunk-TFP64TMV.js +0 -1
  750. package/dist/chunk-TFP64TMV.js.map +0 -1
  751. package/dist/chunk-TYWGZIOF.mjs +0 -34
  752. package/dist/chunk-TYWGZIOF.mjs.map +0 -1
  753. package/dist/chunk-UAINMOUU.js +0 -18
  754. package/dist/chunk-UAINMOUU.js.map +0 -1
  755. package/dist/chunk-UNNEBOL4.mjs +0 -15
  756. package/dist/chunk-UNNEBOL4.mjs.map +0 -1
  757. package/dist/chunk-UW74NLTC.mjs +0 -18
  758. package/dist/chunk-UW74NLTC.mjs.map +0 -1
  759. package/dist/chunk-VBYSWMSU.js +0 -66
  760. package/dist/chunk-VBYSWMSU.js.map +0 -1
  761. package/dist/chunk-VEPYH26P.js +0 -27
  762. package/dist/chunk-VEPYH26P.js.map +0 -1
  763. package/dist/chunk-VIAHMNTA.mjs +0 -34
  764. package/dist/chunk-VIAHMNTA.mjs.map +0 -1
  765. package/dist/chunk-VWLBM7XM.js +0 -1
  766. package/dist/chunk-VWLBM7XM.js.map +0 -1
  767. package/dist/chunk-W7A3BYUP.mjs +0 -1
  768. package/dist/chunk-W7A3BYUP.mjs.map +0 -1
  769. package/dist/chunk-W7KRIAIX.js +0 -55
  770. package/dist/chunk-W7KRIAIX.js.map +0 -1
  771. package/dist/chunk-X2GGUOMY.js +0 -153
  772. package/dist/chunk-X2GGUOMY.js.map +0 -1
  773. package/dist/chunk-X3UZCGO5.mjs +0 -103
  774. package/dist/chunk-X3UZCGO5.mjs.map +0 -1
  775. package/dist/chunk-XF2AZMWG.mjs +0 -32
  776. package/dist/chunk-XF2AZMWG.mjs.map +0 -1
  777. package/dist/chunk-XWYJQWHG.js +0 -56
  778. package/dist/chunk-XWYJQWHG.js.map +0 -1
  779. package/dist/chunk-XZ7362GQ.mjs +0 -63
  780. package/dist/chunk-XZ7362GQ.mjs.map +0 -1
  781. package/dist/chunk-XZNJFDBF.mjs +0 -21
  782. package/dist/chunk-XZNJFDBF.mjs.map +0 -1
  783. package/dist/chunk-YJHQZFR4.mjs +0 -71
  784. package/dist/chunk-YJHQZFR4.mjs.map +0 -1
  785. package/dist/chunk-YL2EHYAA.js +0 -16
  786. package/dist/chunk-YL2EHYAA.js.map +0 -1
  787. package/dist/chunk-Z2JQNSVL.mjs +0 -8
  788. package/dist/chunk-Z2JQNSVL.mjs.map +0 -1
  789. package/dist/chunk-ZT3KKTS2.js +0 -9
  790. package/dist/chunk-ZT3KKTS2.js.map +0 -1
  791. package/dist/constants.js +0 -8
  792. package/dist/constants.js.map +0 -1
  793. package/dist/cronjob.js +0 -20
  794. package/dist/cronjob.js.map +0 -1
  795. package/dist/deep-clone.js +0 -8
  796. package/dist/deep-clone.js.map +0 -1
  797. package/dist/default-endowments.js +0 -8
  798. package/dist/default-endowments.js.map +0 -1
  799. package/dist/derivation-paths.js +0 -13
  800. package/dist/derivation-paths.js.map +0 -1
  801. package/dist/entropy.js +0 -10
  802. package/dist/entropy.js.map +0 -1
  803. package/dist/errors.js +0 -20
  804. package/dist/errors.js.map +0 -1
  805. package/dist/eval-worker.js +0 -43
  806. package/dist/eval-worker.js.map +0 -1
  807. package/dist/eval.js +0 -17
  808. package/dist/eval.js.map +0 -1
  809. package/dist/fs.js +0 -28
  810. package/dist/fs.js.map +0 -1
  811. package/dist/handler-types.js +0 -10
  812. package/dist/handler-types.js.map +0 -1
  813. package/dist/handlers.js +0 -35
  814. package/dist/handlers.js.map +0 -1
  815. package/dist/icon.js +0 -15
  816. package/dist/icon.js.map +0 -1
  817. package/dist/iframe.js +0 -8
  818. package/dist/iframe.js.map +0 -1
  819. package/dist/index.executionenv.js +0 -128
  820. package/dist/index.executionenv.js.map +0 -1
  821. package/dist/index.js +0 -398
  822. package/dist/index.js.map +0 -1
  823. package/dist/json-rpc.js +0 -18
  824. package/dist/json-rpc.js.map +0 -1
  825. package/dist/json.js +0 -10
  826. package/dist/json.js.map +0 -1
  827. package/dist/localization.js +0 -23
  828. package/dist/localization.js.map +0 -1
  829. package/dist/logging.js +0 -14
  830. package/dist/logging.js.map +0 -1
  831. package/dist/manifest/index.js +0 -65
  832. package/dist/manifest/index.js.map +0 -1
  833. package/dist/manifest/manifest.js +0 -59
  834. package/dist/manifest/manifest.js.map +0 -1
  835. package/dist/manifest/node.js +0 -106
  836. package/dist/manifest/node.js.map +0 -1
  837. package/dist/manifest/validation.js +0 -64
  838. package/dist/manifest/validation.js.map +0 -1
  839. package/dist/manifest/validator-types.js +0 -1
  840. package/dist/manifest/validator-types.js.map +0 -1
  841. package/dist/manifest/validator.js +0 -44
  842. package/dist/manifest/validator.js.map +0 -1
  843. package/dist/manifest/validators/checksum.js +0 -15
  844. package/dist/manifest/validators/checksum.js.map +0 -1
  845. package/dist/manifest/validators/expected-files.js +0 -9
  846. package/dist/manifest/validators/expected-files.js.map +0 -1
  847. package/dist/manifest/validators/icon-declared.js +0 -8
  848. package/dist/manifest/validators/icon-declared.js.map +0 -1
  849. package/dist/manifest/validators/icon-dimensions.js +0 -10
  850. package/dist/manifest/validators/icon-dimensions.js.map +0 -1
  851. package/dist/manifest/validators/icon-missing.js +0 -8
  852. package/dist/manifest/validators/icon-missing.js.map +0 -1
  853. package/dist/manifest/validators/index.js +0 -80
  854. package/dist/manifest/validators/index.js.map +0 -1
  855. package/dist/manifest/validators/is-localization-file.js +0 -12
  856. package/dist/manifest/validators/is-localization-file.js.map +0 -1
  857. package/dist/manifest/validators/is-package-json.js +0 -11
  858. package/dist/manifest/validators/is-package-json.js.map +0 -1
  859. package/dist/manifest/validators/is-snap-icon.js +0 -10
  860. package/dist/manifest/validators/is-snap-icon.js.map +0 -1
  861. package/dist/manifest/validators/is-snap-manifest.js +0 -23
  862. package/dist/manifest/validators/is-snap-manifest.js.map +0 -1
  863. package/dist/manifest/validators/manifest-localization.js +0 -10
  864. package/dist/manifest/validators/manifest-localization.js.map +0 -1
  865. package/dist/manifest/validators/package-json-recommended-fields.js +0 -8
  866. package/dist/manifest/validators/package-json-recommended-fields.js.map +0 -1
  867. package/dist/manifest/validators/package-name-match.js +0 -9
  868. package/dist/manifest/validators/package-name-match.js.map +0 -1
  869. package/dist/manifest/validators/repository-match.js +0 -10
  870. package/dist/manifest/validators/repository-match.js.map +0 -1
  871. package/dist/manifest/validators/version-match.js +0 -9
  872. package/dist/manifest/validators/version-match.js.map +0 -1
  873. package/dist/mock.js +0 -13
  874. package/dist/mock.js.map +0 -1
  875. package/dist/namespace.js +0 -44
  876. package/dist/namespace.js.map +0 -1
  877. package/dist/node.js +0 -476
  878. package/dist/node.js.map +0 -1
  879. package/dist/path.js +0 -8
  880. package/dist/path.js.map +0 -1
  881. package/dist/post-process.js +0 -10
  882. package/dist/post-process.js.map +0 -1
  883. package/dist/promise.js +0 -2
  884. package/dist/promise.js.map +0 -1
  885. package/dist/snaps.js +0 -46
  886. package/dist/snaps.js.map +0 -1
  887. package/dist/strings.js +0 -8
  888. package/dist/strings.js.map +0 -1
  889. package/dist/structs.js +0 -33
  890. package/dist/structs.js.map +0 -1
  891. package/dist/svg.js +0 -10
  892. package/dist/svg.js.map +0 -1
  893. package/dist/tsconfig.build.tsbuildinfo +0 -1
  894. package/dist/types/array.d.ts +0 -10
  895. package/dist/types/auxiliary-files.d.ts +0 -16
  896. package/dist/types/base64.d.ts +0 -15
  897. package/dist/types/bytes.d.ts +0 -8
  898. package/dist/types/caveats.d.ts +0 -46
  899. package/dist/types/checksum.d.ts +0 -21
  900. package/dist/types/constants.d.ts +0 -1
  901. package/dist/types/cronjob.d.ts +0 -89
  902. package/dist/types/deep-clone.d.ts +0 -1
  903. package/dist/types/default-endowments.d.ts +0 -4
  904. package/dist/types/derivation-paths.d.ts +0 -24
  905. package/dist/types/entropy.d.ts +0 -3
  906. package/dist/types/errors.d.ts +0 -84
  907. package/dist/types/eval-worker.d.ts +0 -1
  908. package/dist/types/eval.d.ts +0 -16
  909. package/dist/types/fs.d.ts +0 -69
  910. package/dist/types/handler-types.d.ts +0 -34
  911. package/dist/types/handlers.d.ts +0 -749
  912. package/dist/types/icon.d.ts +0 -19
  913. package/dist/types/iframe.d.ts +0 -11
  914. package/dist/types/iframe.test.browser.d.ts +0 -1
  915. package/dist/types/index.d.ts +0 -32
  916. package/dist/types/index.executionenv.d.ts +0 -7
  917. package/dist/types/json-rpc.d.ts +0 -55
  918. package/dist/types/json.d.ts +0 -22
  919. package/dist/types/localization.d.ts +0 -145
  920. package/dist/types/logging.d.ts +0 -49
  921. package/dist/types/manifest/index.d.ts +0 -1
  922. package/dist/types/manifest/manifest.d.ts +0 -98
  923. package/dist/types/manifest/node.d.ts +0 -2
  924. package/dist/types/manifest/validation.d.ts +0 -253
  925. package/dist/types/manifest/validator-types.d.ts +0 -34
  926. package/dist/types/manifest/validator.d.ts +0 -22
  927. package/dist/types/manifest/validators/checksum.d.ts +0 -5
  928. package/dist/types/manifest/validators/expected-files.d.ts +0 -5
  929. package/dist/types/manifest/validators/icon-declared.d.ts +0 -5
  930. package/dist/types/manifest/validators/icon-dimensions.d.ts +0 -5
  931. package/dist/types/manifest/validators/icon-missing.d.ts +0 -5
  932. package/dist/types/manifest/validators/index.d.ts +0 -14
  933. package/dist/types/manifest/validators/is-localization-file.d.ts +0 -5
  934. package/dist/types/manifest/validators/is-package-json.d.ts +0 -5
  935. package/dist/types/manifest/validators/is-snap-icon.d.ts +0 -5
  936. package/dist/types/manifest/validators/is-snap-manifest.d.ts +0 -5
  937. package/dist/types/manifest/validators/manifest-localization.d.ts +0 -5
  938. package/dist/types/manifest/validators/package-json-recommended-fields.d.ts +0 -5
  939. package/dist/types/manifest/validators/package-name-match.d.ts +0 -5
  940. package/dist/types/manifest/validators/repository-match.d.ts +0 -5
  941. package/dist/types/manifest/validators/version-match.d.ts +0 -5
  942. package/dist/types/mock.d.ts +0 -14
  943. package/dist/types/namespace.d.ts +0 -129
  944. package/dist/types/node.d.ts +0 -7
  945. package/dist/types/path.d.ts +0 -7
  946. package/dist/types/post-process.d.ts +0 -71
  947. package/dist/types/promise.d.ts +0 -1
  948. package/dist/types/snaps.d.ts +0 -169
  949. package/dist/types/strings.d.ts +0 -8
  950. package/dist/types/structs.d.ts +0 -180
  951. package/dist/types/svg.d.ts +0 -14
  952. package/dist/types/types.d.ts +0 -103
  953. package/dist/types/ui.d.ts +0 -84
  954. package/dist/types/validation.d.ts +0 -8
  955. package/dist/types/versions.d.ts +0 -21
  956. package/dist/types/virtual-file/VirtualFile.d.ts +0 -34
  957. package/dist/types/virtual-file/index.d.ts +0 -1
  958. package/dist/types/virtual-file/node.d.ts +0 -2
  959. package/dist/types/virtual-file/toVirtualFile.d.ts +0 -21
  960. package/dist/types.js +0 -22
  961. package/dist/types.js.map +0 -1
  962. package/dist/ui.js +0 -24
  963. package/dist/ui.js.map +0 -1
  964. package/dist/validation.js +0 -27
  965. package/dist/validation.js.map +0 -1
  966. package/dist/versions.js +0 -12
  967. package/dist/versions.js.map +0 -1
  968. package/dist/virtual-file/VirtualFile.js +0 -9
  969. package/dist/virtual-file/VirtualFile.js.map +0 -1
  970. package/dist/virtual-file/index.js +0 -10
  971. package/dist/virtual-file/index.js.map +0 -1
  972. package/dist/virtual-file/node.js +0 -17
  973. package/dist/virtual-file/node.js.map +0 -1
  974. package/dist/virtual-file/toVirtualFile.js +0 -12
  975. package/dist/virtual-file/toVirtualFile.js.map +0 -1
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSnapManifest = exports.assertIsSnapManifest = exports.isSnapManifest = exports.SnapManifestStruct = exports.InitialConnectionsStruct = exports.SnapAuxilaryFilesStruct = exports.PermissionsStruct = exports.EmptyObjectStruct = exports.HandlerCaveatsStruct = exports.MaxRequestTimeStruct = exports.MAXIMUM_REQUEST_TIMEOUT = exports.MINIMUM_REQUEST_TIMEOUT = exports.LookupMatchersStruct = exports.ChainIdsStruct = exports.SnapIdsStruct = exports.SemVerRangeStruct = exports.SnapGetBip32EntropyPermissionsStruct = exports.Bip32EntropyStruct = exports.CurveStruct = exports.bip32entropy = exports.Bip32PathStruct = exports.FORBIDDEN_COIN_TYPES = void 0;
4
+ const key_tree_1 = require("@metamask/key-tree");
5
+ const superstruct_1 = require("@metamask/superstruct");
6
+ const utils_1 = require("@metamask/utils");
7
+ const array_1 = require("../array.cjs");
8
+ const cronjob_1 = require("../cronjob.cjs");
9
+ const entropy_1 = require("../entropy.cjs");
10
+ const json_rpc_1 = require("../json-rpc.cjs");
11
+ const namespace_1 = require("../namespace.cjs");
12
+ const snaps_1 = require("../snaps.cjs");
13
+ const structs_1 = require("../structs.cjs");
14
+ const types_1 = require("../types.cjs");
15
+ // BIP-43 purposes that cannot be used for entropy derivation. These are in the
16
+ // string form, ending with `'`.
17
+ const FORBIDDEN_PURPOSES = [
18
+ entropy_1.SIP_6_MAGIC_VALUE,
19
+ entropy_1.STATE_ENCRYPTION_MAGIC_VALUE,
20
+ ];
21
+ exports.FORBIDDEN_COIN_TYPES = [60];
22
+ const FORBIDDEN_PATHS = exports.FORBIDDEN_COIN_TYPES.map((coinType) => [
23
+ 'm',
24
+ "44'",
25
+ `${coinType}'`,
26
+ ]);
27
+ exports.Bip32PathStruct = (0, superstruct_1.refine)((0, superstruct_1.array)((0, superstruct_1.string)()), 'BIP-32 path', (path) => {
28
+ if (path.length === 0) {
29
+ return 'Path must be a non-empty BIP-32 derivation path array';
30
+ }
31
+ if (path[0] !== 'm') {
32
+ return 'Path must start with "m".';
33
+ }
34
+ if (path.length < 3) {
35
+ return 'Paths must have a length of at least three.';
36
+ }
37
+ if (path.slice(1).some((part) => !(0, key_tree_1.isValidBIP32PathSegment)(part))) {
38
+ return 'Path must be a valid BIP-32 derivation path array.';
39
+ }
40
+ if (FORBIDDEN_PURPOSES.includes(path[1])) {
41
+ return `The purpose "${path[1]}" is not allowed for entropy derivation.`;
42
+ }
43
+ if (FORBIDDEN_PATHS.some((forbiddenPath) => (0, array_1.isEqual)(path.slice(0, forbiddenPath.length), forbiddenPath))) {
44
+ return `The path "${path.join('/')}" is not allowed for entropy derivation.`;
45
+ }
46
+ return true;
47
+ });
48
+ const bip32entropy = (struct) => (0, superstruct_1.refine)(struct, 'BIP-32 entropy', (value) => {
49
+ if (value.curve === 'ed25519' &&
50
+ value.path.slice(1).some((part) => !part.endsWith("'"))) {
51
+ return 'Ed25519 does not support unhardened paths.';
52
+ }
53
+ return true;
54
+ });
55
+ exports.bip32entropy = bip32entropy;
56
+ exports.CurveStruct = (0, superstruct_1.enums)([
57
+ 'ed25519',
58
+ 'secp256k1',
59
+ 'ed25519Bip32',
60
+ ]);
61
+ // Used outside @metamask/snap-utils
62
+ exports.Bip32EntropyStruct = (0, exports.bip32entropy)((0, superstruct_1.type)({
63
+ path: exports.Bip32PathStruct,
64
+ curve: exports.CurveStruct,
65
+ }));
66
+ exports.SnapGetBip32EntropyPermissionsStruct = (0, superstruct_1.size)((0, superstruct_1.array)(exports.Bip32EntropyStruct), 1, Infinity);
67
+ exports.SemVerRangeStruct = (0, superstruct_1.refine)((0, superstruct_1.string)(), 'SemVer range', (value) => {
68
+ if ((0, utils_1.isValidSemVerRange)(value)) {
69
+ return true;
70
+ }
71
+ return 'Expected a valid SemVer range.';
72
+ });
73
+ exports.SnapIdsStruct = (0, superstruct_1.refine)((0, superstruct_1.record)(snaps_1.SnapIdStruct, (0, superstruct_1.object)({ version: (0, superstruct_1.optional)(exports.SemVerRangeStruct) })), 'SnapIds', (value) => {
74
+ if (Object.keys(value).length === 0) {
75
+ return false;
76
+ }
77
+ return true;
78
+ });
79
+ exports.ChainIdsStruct = (0, superstruct_1.size)((0, superstruct_1.array)(namespace_1.ChainIdStruct), 1, Infinity);
80
+ exports.LookupMatchersStruct = (0, superstruct_1.union)([
81
+ (0, superstruct_1.object)({
82
+ tlds: (0, superstruct_1.size)((0, superstruct_1.array)((0, superstruct_1.string)()), 1, Infinity),
83
+ }),
84
+ (0, superstruct_1.object)({
85
+ schemes: (0, superstruct_1.size)((0, superstruct_1.array)((0, superstruct_1.string)()), 1, Infinity),
86
+ }),
87
+ (0, superstruct_1.object)({
88
+ tlds: (0, superstruct_1.size)((0, superstruct_1.array)((0, superstruct_1.string)()), 1, Infinity),
89
+ schemes: (0, superstruct_1.size)((0, superstruct_1.array)((0, superstruct_1.string)()), 1, Infinity),
90
+ }),
91
+ ]);
92
+ exports.MINIMUM_REQUEST_TIMEOUT = (0, utils_1.inMilliseconds)(5, utils_1.Duration.Second);
93
+ exports.MAXIMUM_REQUEST_TIMEOUT = (0, utils_1.inMilliseconds)(3, utils_1.Duration.Minute);
94
+ exports.MaxRequestTimeStruct = (0, superstruct_1.size)((0, superstruct_1.integer)(), exports.MINIMUM_REQUEST_TIMEOUT, exports.MAXIMUM_REQUEST_TIMEOUT);
95
+ // Utility type to union with for all handler structs
96
+ exports.HandlerCaveatsStruct = (0, superstruct_1.object)({
97
+ maxRequestTime: (0, superstruct_1.optional)(exports.MaxRequestTimeStruct),
98
+ });
99
+ exports.EmptyObjectStruct = (0, superstruct_1.object)({});
100
+ /* eslint-disable @typescript-eslint/naming-convention */
101
+ exports.PermissionsStruct = (0, superstruct_1.type)({
102
+ 'endowment:cronjob': (0, superstruct_1.optional)((0, structs_1.mergeStructs)(exports.HandlerCaveatsStruct, (0, superstruct_1.object)({ jobs: cronjob_1.CronjobSpecificationArrayStruct }))),
103
+ 'endowment:ethereum-provider': (0, superstruct_1.optional)(exports.EmptyObjectStruct),
104
+ 'endowment:keyring': (0, superstruct_1.optional)((0, structs_1.mergeStructs)(exports.HandlerCaveatsStruct, json_rpc_1.KeyringOriginsStruct)),
105
+ 'endowment:lifecycle-hooks': (0, superstruct_1.optional)(exports.HandlerCaveatsStruct),
106
+ 'endowment:name-lookup': (0, superstruct_1.optional)((0, structs_1.mergeStructs)(exports.HandlerCaveatsStruct, (0, superstruct_1.object)({
107
+ chains: (0, superstruct_1.optional)(exports.ChainIdsStruct),
108
+ matchers: (0, superstruct_1.optional)(exports.LookupMatchersStruct),
109
+ }))),
110
+ 'endowment:network-access': (0, superstruct_1.optional)(exports.EmptyObjectStruct),
111
+ 'endowment:page-home': (0, superstruct_1.optional)(exports.HandlerCaveatsStruct),
112
+ 'endowment:rpc': (0, superstruct_1.optional)((0, structs_1.mergeStructs)(exports.HandlerCaveatsStruct, json_rpc_1.RpcOriginsStruct)),
113
+ 'endowment:signature-insight': (0, superstruct_1.optional)((0, structs_1.mergeStructs)(exports.HandlerCaveatsStruct, (0, superstruct_1.object)({
114
+ allowSignatureOrigin: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
115
+ }))),
116
+ 'endowment:transaction-insight': (0, superstruct_1.optional)((0, structs_1.mergeStructs)(exports.HandlerCaveatsStruct, (0, superstruct_1.object)({
117
+ allowTransactionOrigin: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
118
+ }))),
119
+ 'endowment:webassembly': (0, superstruct_1.optional)(exports.EmptyObjectStruct),
120
+ snap_dialog: (0, superstruct_1.optional)(exports.EmptyObjectStruct),
121
+ snap_manageState: (0, superstruct_1.optional)(exports.EmptyObjectStruct),
122
+ snap_manageAccounts: (0, superstruct_1.optional)(exports.EmptyObjectStruct),
123
+ snap_notify: (0, superstruct_1.optional)(exports.EmptyObjectStruct),
124
+ snap_getBip32Entropy: (0, superstruct_1.optional)(exports.SnapGetBip32EntropyPermissionsStruct),
125
+ snap_getBip32PublicKey: (0, superstruct_1.optional)(exports.SnapGetBip32EntropyPermissionsStruct),
126
+ snap_getBip44Entropy: (0, superstruct_1.optional)((0, superstruct_1.size)((0, superstruct_1.array)((0, superstruct_1.object)({ coinType: (0, superstruct_1.size)((0, superstruct_1.integer)(), 0, 2 ** 32 - 1) })), 1, Infinity)),
127
+ snap_getEntropy: (0, superstruct_1.optional)(exports.EmptyObjectStruct),
128
+ snap_getLocale: (0, superstruct_1.optional)(exports.EmptyObjectStruct),
129
+ wallet_snap: (0, superstruct_1.optional)(exports.SnapIdsStruct),
130
+ });
131
+ exports.SnapAuxilaryFilesStruct = (0, superstruct_1.array)((0, superstruct_1.string)());
132
+ exports.InitialConnectionsStruct = (0, superstruct_1.record)((0, superstruct_1.intersection)([(0, superstruct_1.string)(), (0, types_1.uri)()]), (0, superstruct_1.object)({}));
133
+ exports.SnapManifestStruct = (0, superstruct_1.object)({
134
+ version: utils_1.VersionStruct,
135
+ description: (0, superstruct_1.size)((0, superstruct_1.string)(), 1, 280),
136
+ proposedName: (0, superstruct_1.size)((0, superstruct_1.string)(), 1, 214),
137
+ repository: (0, superstruct_1.optional)((0, superstruct_1.object)({
138
+ type: (0, superstruct_1.size)((0, superstruct_1.string)(), 1, Infinity),
139
+ url: (0, superstruct_1.size)((0, superstruct_1.string)(), 1, Infinity),
140
+ })),
141
+ source: (0, superstruct_1.object)({
142
+ shasum: utils_1.ChecksumStruct,
143
+ location: (0, superstruct_1.object)({
144
+ npm: (0, superstruct_1.object)({
145
+ filePath: (0, superstruct_1.size)((0, superstruct_1.string)(), 1, Infinity),
146
+ iconPath: (0, superstruct_1.optional)((0, superstruct_1.size)((0, superstruct_1.string)(), 1, Infinity)),
147
+ packageName: types_1.NameStruct,
148
+ registry: (0, superstruct_1.union)([
149
+ (0, superstruct_1.literal)('https://registry.npmjs.org'),
150
+ (0, superstruct_1.literal)('https://registry.npmjs.org/'),
151
+ ]),
152
+ }),
153
+ }),
154
+ files: (0, superstruct_1.optional)(exports.SnapAuxilaryFilesStruct),
155
+ locales: (0, superstruct_1.optional)(exports.SnapAuxilaryFilesStruct),
156
+ }),
157
+ initialConnections: (0, superstruct_1.optional)(exports.InitialConnectionsStruct),
158
+ initialPermissions: exports.PermissionsStruct,
159
+ manifestVersion: (0, superstruct_1.literal)('0.1'),
160
+ $schema: (0, superstruct_1.optional)((0, superstruct_1.string)()), // enables JSON-Schema linting in VSC and other IDEs
161
+ });
162
+ /**
163
+ * Check if the given value is a valid {@link SnapManifest} object.
164
+ *
165
+ * @param value - The value to check.
166
+ * @returns Whether the value is a valid {@link SnapManifest} object.
167
+ */
168
+ function isSnapManifest(value) {
169
+ return (0, superstruct_1.is)(value, exports.SnapManifestStruct);
170
+ }
171
+ exports.isSnapManifest = isSnapManifest;
172
+ /**
173
+ * Assert that the given value is a valid {@link SnapManifest} object.
174
+ *
175
+ * @param value - The value to check.
176
+ * @throws If the value is not a valid {@link SnapManifest} object.
177
+ */
178
+ function assertIsSnapManifest(value) {
179
+ (0, utils_1.assertStruct)(value, exports.SnapManifestStruct, `"${types_1.NpmSnapFileNames.Manifest}" is invalid`);
180
+ }
181
+ exports.assertIsSnapManifest = assertIsSnapManifest;
182
+ /**
183
+ * Creates a {@link SnapManifest} object from JSON.
184
+ *
185
+ * @param value - The value to check.
186
+ * @throws If the value cannot be coerced to a {@link SnapManifest} object.
187
+ * @returns The created {@link SnapManifest} object.
188
+ */
189
+ function createSnapManifest(value) {
190
+ // TODO: Add a utility to prefix these errors similar to assertStruct
191
+ return (0, superstruct_1.create)(value, exports.SnapManifestStruct);
192
+ }
193
+ exports.createSnapManifest = createSnapManifest;
194
+ //# sourceMappingURL=validation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.cjs","sourceRoot":"","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,254 @@
1
+ import type { SupportedCurve } from "@metamask/key-tree";
2
+ import type { EmptyObject, InitialPermissions } from "@metamask/snaps-sdk";
3
+ import type { Describe, Infer, Struct } from "@metamask/superstruct";
4
+ import { type InferMatching } from "../structs.cjs";
5
+ export declare const FORBIDDEN_COIN_TYPES: number[];
6
+ export declare const Bip32PathStruct: Struct<string[], Struct<string, null>>;
7
+ export declare const bip32entropy: <Type extends {
8
+ path: string[];
9
+ curve: string;
10
+ }, Schema>(struct: Struct<Type, Schema>) => Struct<Type, Schema>;
11
+ export declare const CurveStruct: Describe<SupportedCurve>;
12
+ export declare const Bip32EntropyStruct: Struct<{
13
+ curve: "ed25519" | "ed25519Bip32" | "secp256k1";
14
+ path: string[];
15
+ }, {
16
+ path: Struct<string[], Struct<string, null>>;
17
+ curve: Describe<"ed25519" | "ed25519Bip32" | "secp256k1">;
18
+ }>;
19
+ export type Bip32Entropy = Infer<typeof Bip32EntropyStruct>;
20
+ export declare const SnapGetBip32EntropyPermissionsStruct: Struct<{
21
+ curve: "ed25519" | "ed25519Bip32" | "secp256k1";
22
+ path: string[];
23
+ }[], Struct<{
24
+ curve: "ed25519" | "ed25519Bip32" | "secp256k1";
25
+ path: string[];
26
+ }, {
27
+ path: Struct<string[], Struct<string, null>>;
28
+ curve: Describe<"ed25519" | "ed25519Bip32" | "secp256k1">;
29
+ }>>;
30
+ export declare const SemVerRangeStruct: Struct<string, null>;
31
+ export declare const SnapIdsStruct: Struct<Record<string, {
32
+ version?: string | undefined;
33
+ }>, null>;
34
+ export type SnapIds = Infer<typeof SnapIdsStruct>;
35
+ export declare const ChainIdsStruct: Struct<`${string}:${string}`[], Struct<`${string}:${string}`, null>>;
36
+ export declare const LookupMatchersStruct: Struct<{
37
+ tlds: string[];
38
+ } | {
39
+ schemes: string[];
40
+ } | {
41
+ tlds: string[];
42
+ schemes: string[];
43
+ }, null>;
44
+ export declare const MINIMUM_REQUEST_TIMEOUT: number;
45
+ export declare const MAXIMUM_REQUEST_TIMEOUT: number;
46
+ export declare const MaxRequestTimeStruct: Struct<number, null>;
47
+ export declare const HandlerCaveatsStruct: Struct<{
48
+ maxRequestTime?: number | undefined;
49
+ }, {
50
+ maxRequestTime: Struct<number | undefined, null>;
51
+ }>;
52
+ export type HandlerCaveats = Infer<typeof HandlerCaveatsStruct>;
53
+ export declare const EmptyObjectStruct: Struct<EmptyObject, null>;
54
+ export declare const PermissionsStruct: Describe<InitialPermissions>;
55
+ export type SnapPermissions = InferMatching<typeof PermissionsStruct, InitialPermissions>;
56
+ export declare const SnapAuxilaryFilesStruct: Struct<string[], Struct<string, null>>;
57
+ export declare const InitialConnectionsStruct: Struct<Record<string & URL, {}>, null>;
58
+ export type InitialConnections = Infer<typeof InitialConnectionsStruct>;
59
+ export declare const SnapManifestStruct: Struct<{
60
+ source: {
61
+ location: {
62
+ npm: {
63
+ registry: "https://registry.npmjs.org" | "https://registry.npmjs.org/";
64
+ filePath: string;
65
+ packageName: string;
66
+ iconPath?: string | undefined;
67
+ };
68
+ };
69
+ shasum: string;
70
+ files?: string[] | undefined;
71
+ locales?: string[] | undefined;
72
+ };
73
+ description: string;
74
+ version: import("@metamask/utils").SemVerVersion;
75
+ proposedName: string;
76
+ initialPermissions: Partial<{
77
+ 'endowment:cronjob': {
78
+ jobs: import("@metamask/snaps-sdk").Cronjob[];
79
+ maxRequestTime?: number | undefined;
80
+ };
81
+ 'endowment:ethereum-provider': EmptyObject;
82
+ 'endowment:keyring': {
83
+ allowedOrigins?: string[] | undefined;
84
+ maxRequestTime?: number | undefined;
85
+ };
86
+ 'endowment:lifecycle-hooks'?: {
87
+ maxRequestTime?: number | undefined;
88
+ } | undefined;
89
+ 'endowment:name-lookup': {
90
+ chains?: `${string}:${string}`[] | undefined;
91
+ matchers?: import("@metamask/snaps-sdk").NameLookupMatchers | undefined;
92
+ maxRequestTime?: number | undefined;
93
+ };
94
+ 'endowment:network-access': EmptyObject;
95
+ 'endowment:page-home'?: {
96
+ maxRequestTime?: number | undefined;
97
+ } | undefined;
98
+ 'endowment:rpc': {
99
+ dapps?: boolean | undefined;
100
+ snaps?: boolean | undefined;
101
+ allowedOrigins?: string[] | undefined;
102
+ maxRequestTime?: number | undefined;
103
+ };
104
+ 'endowment:signature-insight': {
105
+ allowSignatureOrigin?: boolean | undefined;
106
+ maxRequestTime?: number | undefined;
107
+ };
108
+ 'endowment:transaction-insight': {
109
+ allowTransactionOrigin?: boolean | undefined;
110
+ maxRequestTime?: number | undefined;
111
+ };
112
+ 'endowment:webassembly': EmptyObject;
113
+ snap_dialog: EmptyObject;
114
+ snap_getBip32Entropy: import("@metamask/snaps-sdk").Bip32Entropy[];
115
+ snap_getBip32PublicKey: import("@metamask/snaps-sdk").Bip32Entropy[];
116
+ snap_getBip44Entropy: import("@metamask/snaps-sdk").Bip44Entropy[];
117
+ snap_getEntropy: EmptyObject;
118
+ snap_getLocale: EmptyObject;
119
+ snap_manageAccounts: EmptyObject;
120
+ snap_manageState: EmptyObject;
121
+ snap_notify: EmptyObject;
122
+ wallet_snap: Record<string, import("@metamask/snaps-sdk").RequestedSnap>;
123
+ }>;
124
+ manifestVersion: "0.1";
125
+ repository?: {
126
+ type: string;
127
+ url: string;
128
+ } | undefined;
129
+ initialConnections?: Record<string & URL, {}> | undefined;
130
+ $schema?: string | undefined;
131
+ }, {
132
+ version: Struct<import("@metamask/utils").SemVerVersion, null>;
133
+ description: Struct<string, null>;
134
+ proposedName: Struct<string, null>;
135
+ repository: Struct<{
136
+ type: string;
137
+ url: string;
138
+ } | undefined, {
139
+ type: Struct<string, null>;
140
+ url: Struct<string, null>;
141
+ }>;
142
+ source: Struct<{
143
+ location: {
144
+ npm: {
145
+ registry: "https://registry.npmjs.org" | "https://registry.npmjs.org/";
146
+ filePath: string;
147
+ packageName: string;
148
+ iconPath?: string | undefined;
149
+ };
150
+ };
151
+ shasum: string;
152
+ files?: string[] | undefined;
153
+ locales?: string[] | undefined;
154
+ }, {
155
+ shasum: Struct<string, null>;
156
+ location: Struct<{
157
+ npm: {
158
+ registry: "https://registry.npmjs.org" | "https://registry.npmjs.org/";
159
+ filePath: string;
160
+ packageName: string;
161
+ iconPath?: string | undefined;
162
+ };
163
+ }, {
164
+ npm: Struct<{
165
+ registry: "https://registry.npmjs.org" | "https://registry.npmjs.org/";
166
+ filePath: string;
167
+ packageName: string;
168
+ iconPath?: string | undefined;
169
+ }, {
170
+ filePath: Struct<string, null>;
171
+ iconPath: Struct<string | undefined, null>;
172
+ packageName: Struct<string, null>;
173
+ registry: Struct<"https://registry.npmjs.org" | "https://registry.npmjs.org/", null>;
174
+ }>;
175
+ }>;
176
+ files: Struct<string[] | undefined, Struct<string, null>>;
177
+ locales: Struct<string[] | undefined, Struct<string, null>>;
178
+ }>;
179
+ initialConnections: Struct<Record<string & URL, {}> | undefined, null>;
180
+ initialPermissions: Describe<Partial<{
181
+ 'endowment:cronjob': {
182
+ jobs: import("@metamask/snaps-sdk").Cronjob[];
183
+ maxRequestTime?: number | undefined;
184
+ };
185
+ 'endowment:ethereum-provider': EmptyObject;
186
+ 'endowment:keyring': {
187
+ allowedOrigins?: string[] | undefined;
188
+ maxRequestTime?: number | undefined;
189
+ };
190
+ 'endowment:lifecycle-hooks'?: {
191
+ maxRequestTime?: number | undefined;
192
+ } | undefined;
193
+ 'endowment:name-lookup': {
194
+ chains?: `${string}:${string}`[] | undefined;
195
+ matchers?: import("@metamask/snaps-sdk").NameLookupMatchers | undefined;
196
+ maxRequestTime?: number | undefined;
197
+ };
198
+ 'endowment:network-access': EmptyObject;
199
+ 'endowment:page-home'?: {
200
+ maxRequestTime?: number | undefined;
201
+ } | undefined;
202
+ 'endowment:rpc': {
203
+ dapps?: boolean | undefined;
204
+ snaps?: boolean | undefined;
205
+ allowedOrigins?: string[] | undefined;
206
+ maxRequestTime?: number | undefined;
207
+ };
208
+ 'endowment:signature-insight': {
209
+ allowSignatureOrigin?: boolean | undefined;
210
+ maxRequestTime?: number | undefined;
211
+ };
212
+ 'endowment:transaction-insight': {
213
+ allowTransactionOrigin?: boolean | undefined;
214
+ maxRequestTime?: number | undefined;
215
+ };
216
+ 'endowment:webassembly': EmptyObject;
217
+ snap_dialog: EmptyObject;
218
+ snap_getBip32Entropy: import("@metamask/snaps-sdk").Bip32Entropy[];
219
+ snap_getBip32PublicKey: import("@metamask/snaps-sdk").Bip32Entropy[];
220
+ snap_getBip44Entropy: import("@metamask/snaps-sdk").Bip44Entropy[];
221
+ snap_getEntropy: EmptyObject;
222
+ snap_getLocale: EmptyObject;
223
+ snap_manageAccounts: EmptyObject;
224
+ snap_manageState: EmptyObject;
225
+ snap_notify: EmptyObject;
226
+ wallet_snap: Record<string, import("@metamask/snaps-sdk").RequestedSnap>;
227
+ }>>;
228
+ manifestVersion: Struct<"0.1", "0.1">;
229
+ $schema: Struct<string | undefined, null>;
230
+ }>;
231
+ export type SnapManifest = Infer<typeof SnapManifestStruct>;
232
+ /**
233
+ * Check if the given value is a valid {@link SnapManifest} object.
234
+ *
235
+ * @param value - The value to check.
236
+ * @returns Whether the value is a valid {@link SnapManifest} object.
237
+ */
238
+ export declare function isSnapManifest(value: unknown): value is SnapManifest;
239
+ /**
240
+ * Assert that the given value is a valid {@link SnapManifest} object.
241
+ *
242
+ * @param value - The value to check.
243
+ * @throws If the value is not a valid {@link SnapManifest} object.
244
+ */
245
+ export declare function assertIsSnapManifest(value: unknown): asserts value is SnapManifest;
246
+ /**
247
+ * Creates a {@link SnapManifest} object from JSON.
248
+ *
249
+ * @param value - The value to check.
250
+ * @throws If the value cannot be coerced to a {@link SnapManifest} object.
251
+ * @returns The created {@link SnapManifest} object.
252
+ */
253
+ export declare function createSnapManifest(value: unknown): SnapManifest;
254
+ //# sourceMappingURL=validation.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.cts","sourceRoot":"","sources":["../../src/manifest/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,2BAA2B;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,4BAA4B;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B;AAkCrE,OAAO,EAAgB,KAAK,aAAa,EAAE,uBAAmB;AAU9D,eAAO,MAAM,oBAAoB,EAAE,MAAM,EAAS,CAAC;AAOnD,eAAO,MAAM,eAAe,wCAoC3B,CAAC;AAEF,eAAO,MAAM,YAAY;UACF,MAAM,EAAE;WAAS,MAAM;gEAc1C,CAAC;AAEL,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,cAAc,CAI/C,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;EAK9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE5D,eAAO,MAAM,oCAAoC;;;;;;;;;GAIhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,sBAK5B,CAAC;AAEH,eAAO,MAAM,aAAa;;SAUzB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAElD,eAAO,MAAM,cAAc,sEAA0C,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;;;;;QAW/B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAAqC,CAAC;AAC1E,eAAO,MAAM,uBAAuB,QAAqC,CAAC;AAE1E,eAAO,MAAM,oBAAoB,sBAIhC,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;EAE/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB,2BAG7B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,kBAAkB,CA2DzD,CAAC;AAGH,MAAM,MAAM,eAAe,GAAG,aAAa,CACzC,OAAO,iBAAiB,EACxB,kBAAkB,CACnB,CAAC;AAEF,eAAO,MAAM,uBAAuB,wCAAkB,CAAC;AAEvD,eAAO,MAAM,wBAAwB,wCAGpC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAExE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,YAAY,CAM/B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAG/D"}