@metamask/utils 8.4.0 → 8.5.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 (346) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/dist/assert.cjs +127 -0
  3. package/dist/assert.cjs.map +1 -0
  4. package/dist/{types/assert.d.ts → assert.d.cts} +3 -3
  5. package/dist/assert.d.cts.map +1 -0
  6. package/dist/assert.d.mts +61 -0
  7. package/dist/assert.d.mts.map +1 -0
  8. package/dist/assert.mjs +119 -15
  9. package/dist/assert.mjs.map +1 -1
  10. package/dist/base64.cjs +34 -0
  11. package/dist/base64.cjs.map +1 -0
  12. package/dist/{types/base64.d.ts → base64.d.cts} +3 -3
  13. package/dist/base64.d.cts.map +1 -0
  14. package/dist/base64.d.mts +25 -0
  15. package/dist/base64.d.mts.map +1 -0
  16. package/dist/base64.mjs +28 -9
  17. package/dist/base64.mjs.map +1 -1
  18. package/dist/bytes.cjs +400 -0
  19. package/dist/{chunk-QEPVHEP7.js.map → bytes.cjs.map} +1 -1
  20. package/dist/{types/bytes.d.ts → bytes.d.cts} +3 -3
  21. package/dist/bytes.d.cts.map +1 -0
  22. package/dist/bytes.d.mts +183 -0
  23. package/dist/bytes.d.mts.map +1 -0
  24. package/dist/bytes.mjs +379 -42
  25. package/dist/bytes.mjs.map +1 -1
  26. package/dist/caip-types.cjs +151 -0
  27. package/dist/caip-types.cjs.map +1 -0
  28. package/dist/{types/caip-types.d.ts → caip-types.d.cts} +12 -12
  29. package/dist/caip-types.d.cts.map +1 -0
  30. package/dist/caip-types.d.mts +114 -0
  31. package/dist/caip-types.d.mts.map +1 -0
  32. package/dist/caip-types.mjs +139 -43
  33. package/dist/caip-types.mjs.map +1 -1
  34. package/dist/checksum.cjs +7 -0
  35. package/dist/checksum.cjs.map +1 -0
  36. package/dist/checksum.d.cts +2 -0
  37. package/dist/checksum.d.cts.map +1 -0
  38. package/dist/checksum.d.mts +2 -0
  39. package/dist/checksum.d.mts.map +1 -0
  40. package/dist/checksum.mjs +3 -11
  41. package/dist/checksum.mjs.map +1 -1
  42. package/dist/coercers.cjs +162 -0
  43. package/dist/coercers.cjs.map +1 -0
  44. package/dist/{types/coercers.d.ts → coercers.d.cts} +7 -7
  45. package/dist/coercers.d.cts.map +1 -0
  46. package/dist/coercers.d.mts +97 -0
  47. package/dist/coercers.d.mts.map +1 -0
  48. package/dist/coercers.mjs +154 -17
  49. package/dist/coercers.mjs.map +1 -1
  50. package/dist/collections.cjs +109 -0
  51. package/dist/collections.cjs.map +1 -0
  52. package/dist/{types/collections.d.ts → collections.d.cts} +1 -1
  53. package/dist/collections.d.cts.map +1 -0
  54. package/dist/collections.d.mts +39 -0
  55. package/dist/collections.d.mts.map +1 -0
  56. package/dist/collections.mjs +103 -8
  57. package/dist/collections.mjs.map +1 -1
  58. package/dist/encryption-types.cjs +3 -0
  59. package/dist/encryption-types.cjs.map +1 -0
  60. package/dist/{types/encryption-types.d.ts → encryption-types.d.cts} +2 -2
  61. package/dist/encryption-types.d.cts.map +1 -0
  62. package/dist/encryption-types.d.mts +7 -0
  63. package/dist/encryption-types.d.mts.map +1 -0
  64. package/dist/encryption-types.mjs +1 -1
  65. package/dist/encryption-types.mjs.map +1 -1
  66. package/dist/errors.cjs +111 -0
  67. package/dist/errors.cjs.map +1 -0
  68. package/dist/{types/errors.d.ts → errors.d.cts} +1 -1
  69. package/dist/errors.d.cts.map +1 -0
  70. package/dist/errors.d.mts +58 -0
  71. package/dist/errors.d.mts.map +1 -0
  72. package/dist/errors.mjs +102 -16
  73. package/dist/errors.mjs.map +1 -1
  74. package/dist/fs.cjs +248 -0
  75. package/dist/fs.cjs.map +1 -0
  76. package/dist/{types/fs.d.ts → fs.d.cts} +3 -3
  77. package/dist/fs.d.cts.map +1 -0
  78. package/dist/fs.d.mts +133 -0
  79. package/dist/fs.d.mts.map +1 -0
  80. package/dist/fs.mjs +209 -25
  81. package/dist/fs.mjs.map +1 -1
  82. package/dist/hex.cjs +134 -0
  83. package/dist/hex.cjs.map +1 -0
  84. package/dist/{types/hex.d.ts → hex.d.cts} +3 -3
  85. package/dist/hex.d.cts.map +1 -0
  86. package/dist/hex.d.mts +77 -0
  87. package/dist/hex.d.mts.map +1 -0
  88. package/dist/hex.mjs +121 -34
  89. package/dist/hex.mjs.map +1 -1
  90. package/dist/index.cjs +37 -0
  91. package/dist/index.cjs.map +1 -0
  92. package/dist/index.d.cts +21 -0
  93. package/dist/index.d.cts.map +1 -0
  94. package/dist/index.d.mts +21 -0
  95. package/dist/index.d.mts.map +1 -0
  96. package/dist/index.mjs +20 -296
  97. package/dist/index.mjs.map +1 -1
  98. package/dist/json.cjs +413 -0
  99. package/dist/json.cjs.map +1 -0
  100. package/dist/{types/json.d.ts → json.d.cts} +21 -22
  101. package/dist/json.d.cts.map +1 -0
  102. package/dist/json.d.mts +383 -0
  103. package/dist/json.d.mts.map +1 -0
  104. package/dist/json.mjs +389 -74
  105. package/dist/json.mjs.map +1 -1
  106. package/dist/keyring.cjs +3 -0
  107. package/dist/keyring.cjs.map +1 -0
  108. package/dist/{types/keyring.d.ts → keyring.d.cts} +7 -7
  109. package/dist/keyring.d.cts.map +1 -0
  110. package/dist/keyring.d.mts +224 -0
  111. package/dist/keyring.d.mts.map +1 -0
  112. package/dist/keyring.mjs +1 -1
  113. package/dist/keyring.mjs.map +1 -1
  114. package/dist/logging.cjs +43 -0
  115. package/dist/logging.cjs.map +1 -0
  116. package/dist/{types/logging.d.ts → logging.d.cts} +2 -2
  117. package/dist/logging.d.cts.map +1 -0
  118. package/dist/logging.d.mts +30 -0
  119. package/dist/logging.d.mts.map +1 -0
  120. package/dist/logging.mjs +34 -9
  121. package/dist/logging.mjs.map +1 -1
  122. package/dist/misc.cjs +149 -0
  123. package/dist/misc.cjs.map +1 -0
  124. package/dist/{types/misc.d.ts → misc.d.cts} +6 -6
  125. package/dist/misc.d.cts.map +1 -0
  126. package/dist/misc.d.mts +119 -0
  127. package/dist/misc.d.mts.map +1 -0
  128. package/dist/misc.mjs +136 -27
  129. package/dist/misc.mjs.map +1 -1
  130. package/dist/node.cjs +19 -0
  131. package/dist/node.cjs.map +1 -0
  132. package/dist/node.d.cts +3 -0
  133. package/dist/node.d.cts.map +1 -0
  134. package/dist/node.d.mts +3 -0
  135. package/dist/node.d.mts.map +1 -0
  136. package/dist/node.mjs +2 -316
  137. package/dist/node.mjs.map +1 -1
  138. package/dist/number.cjs +102 -0
  139. package/dist/number.cjs.map +1 -0
  140. package/dist/{types/number.d.ts → number.d.cts} +1 -1
  141. package/dist/number.d.cts.map +1 -0
  142. package/dist/number.d.mts +73 -0
  143. package/dist/number.d.mts.map +1 -0
  144. package/dist/number.mjs +93 -16
  145. package/dist/number.mjs.map +1 -1
  146. package/dist/opaque.cjs +3 -0
  147. package/dist/opaque.cjs.map +1 -0
  148. package/dist/opaque.d.cts +6 -0
  149. package/dist/opaque.d.cts.map +1 -0
  150. package/dist/opaque.d.mts +6 -0
  151. package/dist/opaque.d.mts.map +1 -0
  152. package/dist/opaque.mjs +1 -1
  153. package/dist/opaque.mjs.map +1 -1
  154. package/dist/promise.cjs +40 -0
  155. package/dist/promise.cjs.map +1 -0
  156. package/dist/{types/promise.d.ts → promise.d.cts} +2 -2
  157. package/dist/promise.d.cts.map +1 -0
  158. package/dist/promise.d.mts +45 -0
  159. package/dist/promise.d.mts.map +1 -0
  160. package/dist/promise.mjs +35 -7
  161. package/dist/promise.mjs.map +1 -1
  162. package/dist/time.cjs +67 -0
  163. package/dist/time.cjs.map +1 -0
  164. package/dist/{types/time.d.ts → time.d.cts} +1 -1
  165. package/dist/time.d.cts.map +1 -0
  166. package/dist/time.d.mts +49 -0
  167. package/dist/time.d.mts.map +1 -0
  168. package/dist/time.mjs +60 -10
  169. package/dist/time.mjs.map +1 -1
  170. package/dist/transaction-types.cjs +3 -0
  171. package/dist/transaction-types.cjs.map +1 -0
  172. package/dist/{types/transaction-types.d.ts → transaction-types.d.cts} +11 -11
  173. package/dist/transaction-types.d.cts.map +1 -0
  174. package/dist/transaction-types.d.mts +117 -0
  175. package/dist/transaction-types.d.mts.map +1 -0
  176. package/dist/transaction-types.mjs +1 -1
  177. package/dist/transaction-types.mjs.map +1 -1
  178. package/dist/versions.cjs +95 -0
  179. package/dist/versions.cjs.map +1 -0
  180. package/dist/{types/versions.d.ts → versions.d.cts} +5 -5
  181. package/dist/versions.d.cts.map +1 -0
  182. package/dist/versions.d.mts +101 -0
  183. package/dist/versions.d.mts.map +1 -0
  184. package/dist/versions.mjs +85 -26
  185. package/dist/versions.mjs.map +1 -1
  186. package/package.json +26 -17
  187. package/dist/assert.js +0 -16
  188. package/dist/assert.js.map +0 -1
  189. package/dist/base64.js +0 -11
  190. package/dist/base64.js.map +0 -1
  191. package/dist/bytes.js +0 -43
  192. package/dist/bytes.js.map +0 -1
  193. package/dist/caip-types.js +0 -44
  194. package/dist/caip-types.js.map +0 -1
  195. package/dist/checksum.js +0 -12
  196. package/dist/checksum.js.map +0 -1
  197. package/dist/chunk-2LBGT4GH.js +0 -15
  198. package/dist/chunk-2LBGT4GH.js.map +0 -1
  199. package/dist/chunk-3W5G4CYI.js +0 -25
  200. package/dist/chunk-3W5G4CYI.js.map +0 -1
  201. package/dist/chunk-4D6XQBHA.js +0 -69
  202. package/dist/chunk-4D6XQBHA.js.map +0 -1
  203. package/dist/chunk-4RMX5YWE.js +0 -34
  204. package/dist/chunk-4RMX5YWE.js.map +0 -1
  205. package/dist/chunk-5AVWINSB.js +0 -1
  206. package/dist/chunk-5AVWINSB.js.map +0 -1
  207. package/dist/chunk-622IOGVI.mjs +0 -1
  208. package/dist/chunk-622IOGVI.mjs.map +0 -1
  209. package/dist/chunk-6C35XQOF.mjs +0 -257
  210. package/dist/chunk-6C35XQOF.mjs.map +0 -1
  211. package/dist/chunk-6NZW4WK4.js +0 -35
  212. package/dist/chunk-6NZW4WK4.js.map +0 -1
  213. package/dist/chunk-6ZDHSOUV.js +0 -59
  214. package/dist/chunk-6ZDHSOUV.js.map +0 -1
  215. package/dist/chunk-74DGVJVE.mjs +0 -59
  216. package/dist/chunk-74DGVJVE.mjs.map +0 -1
  217. package/dist/chunk-AY6FDCBT.mjs +0 -1
  218. package/dist/chunk-AY6FDCBT.mjs.map +0 -1
  219. package/dist/chunk-C6HGFEYL.js +0 -23
  220. package/dist/chunk-C6HGFEYL.js.map +0 -1
  221. package/dist/chunk-DHVKFDHQ.js +0 -95
  222. package/dist/chunk-DHVKFDHQ.js.map +0 -1
  223. package/dist/chunk-DYRKZQMK.mjs +0 -122
  224. package/dist/chunk-DYRKZQMK.mjs.map +0 -1
  225. package/dist/chunk-E4C7EW4R.js +0 -16
  226. package/dist/chunk-E4C7EW4R.js.map +0 -1
  227. package/dist/chunk-EQMZL4XU.js +0 -1
  228. package/dist/chunk-EQMZL4XU.js.map +0 -1
  229. package/dist/chunk-GZS3IQBZ.mjs +0 -16
  230. package/dist/chunk-GZS3IQBZ.mjs.map +0 -1
  231. package/dist/chunk-H4YFDLB7.mjs +0 -70
  232. package/dist/chunk-H4YFDLB7.mjs.map +0 -1
  233. package/dist/chunk-I575FZFH.mjs +0 -1
  234. package/dist/chunk-I575FZFH.mjs.map +0 -1
  235. package/dist/chunk-IZC266HS.js +0 -55
  236. package/dist/chunk-IZC266HS.js.map +0 -1
  237. package/dist/chunk-JPAL7Q5S.mjs +0 -90
  238. package/dist/chunk-JPAL7Q5S.mjs.map +0 -1
  239. package/dist/chunk-LC2CRSWD.js +0 -1
  240. package/dist/chunk-LC2CRSWD.js.map +0 -1
  241. package/dist/chunk-NQMRFZHB.mjs +0 -35
  242. package/dist/chunk-NQMRFZHB.mjs.map +0 -1
  243. package/dist/chunk-O3EIM33O.mjs +0 -95
  244. package/dist/chunk-O3EIM33O.mjs.map +0 -1
  245. package/dist/chunk-OLLG4H35.js +0 -257
  246. package/dist/chunk-OLLG4H35.js.map +0 -1
  247. package/dist/chunk-OUZ3LSLX.mjs +0 -94
  248. package/dist/chunk-OUZ3LSLX.mjs.map +0 -1
  249. package/dist/chunk-QEPVHEP7.js +0 -273
  250. package/dist/chunk-QVEKZRZ2.js +0 -70
  251. package/dist/chunk-QVEKZRZ2.js.map +0 -1
  252. package/dist/chunk-RIRDOQPX.mjs +0 -15
  253. package/dist/chunk-RIRDOQPX.mjs.map +0 -1
  254. package/dist/chunk-RKRGAFXY.js +0 -1
  255. package/dist/chunk-RKRGAFXY.js.map +0 -1
  256. package/dist/chunk-RNEXSCNP.js +0 -122
  257. package/dist/chunk-RNEXSCNP.js.map +0 -1
  258. package/dist/chunk-ROQSKDP5.mjs +0 -69
  259. package/dist/chunk-ROQSKDP5.mjs.map +0 -1
  260. package/dist/chunk-RRYOWRCV.mjs +0 -1
  261. package/dist/chunk-RRYOWRCV.mjs.map +0 -1
  262. package/dist/chunk-S3UHBN2Z.mjs +0 -44
  263. package/dist/chunk-S3UHBN2Z.mjs.map +0 -1
  264. package/dist/chunk-THNLGEXV.mjs +0 -34
  265. package/dist/chunk-THNLGEXV.mjs.map +0 -1
  266. package/dist/chunk-UOTVU7OQ.js +0 -1
  267. package/dist/chunk-UOTVU7OQ.js.map +0 -1
  268. package/dist/chunk-VA2DRBDE.mjs +0 -273
  269. package/dist/chunk-VA2DRBDE.mjs.map +0 -1
  270. package/dist/chunk-VFXTVNXN.js +0 -44
  271. package/dist/chunk-VFXTVNXN.js.map +0 -1
  272. package/dist/chunk-W5XI7ERF.mjs +0 -23
  273. package/dist/chunk-W5XI7ERF.mjs.map +0 -1
  274. package/dist/chunk-WA4DHIND.mjs +0 -1
  275. package/dist/chunk-WA4DHIND.mjs.map +0 -1
  276. package/dist/chunk-X66SUIEF.mjs +0 -25
  277. package/dist/chunk-X66SUIEF.mjs.map +0 -1
  278. package/dist/chunk-XYGUOY6N.mjs +0 -55
  279. package/dist/chunk-XYGUOY6N.mjs.map +0 -1
  280. package/dist/chunk-YWAID473.js +0 -94
  281. package/dist/chunk-YWAID473.js.map +0 -1
  282. package/dist/chunk-Z2RGWDD7.js +0 -90
  283. package/dist/chunk-Z2RGWDD7.js.map +0 -1
  284. package/dist/coercers.js +0 -18
  285. package/dist/coercers.js.map +0 -1
  286. package/dist/collections.js +0 -10
  287. package/dist/collections.js.map +0 -1
  288. package/dist/encryption-types.js +0 -2
  289. package/dist/encryption-types.js.map +0 -1
  290. package/dist/errors.js +0 -17
  291. package/dist/errors.js.map +0 -1
  292. package/dist/fs.js +0 -26
  293. package/dist/fs.js.map +0 -1
  294. package/dist/hex.js +0 -35
  295. package/dist/hex.js.map +0 -1
  296. package/dist/index.js +0 -297
  297. package/dist/index.js.map +0 -1
  298. package/dist/json.js +0 -75
  299. package/dist/json.js.map +0 -1
  300. package/dist/keyring.js +0 -2
  301. package/dist/keyring.js.map +0 -1
  302. package/dist/logging.js +0 -10
  303. package/dist/logging.js.map +0 -1
  304. package/dist/misc.js +0 -28
  305. package/dist/misc.js.map +0 -1
  306. package/dist/node.js +0 -317
  307. package/dist/node.js.map +0 -1
  308. package/dist/number.js +0 -18
  309. package/dist/number.js.map +0 -1
  310. package/dist/opaque.js +0 -2
  311. package/dist/opaque.js.map +0 -1
  312. package/dist/promise.js +0 -8
  313. package/dist/promise.js.map +0 -1
  314. package/dist/time.js +0 -12
  315. package/dist/time.js.map +0 -1
  316. package/dist/transaction-types.js +0 -2
  317. package/dist/transaction-types.js.map +0 -1
  318. package/dist/types/assert.d.ts.map +0 -1
  319. package/dist/types/base64.d.ts.map +0 -1
  320. package/dist/types/bytes.d.ts.map +0 -1
  321. package/dist/types/caip-types.d.ts.map +0 -1
  322. package/dist/types/checksum.d.ts +0 -2
  323. package/dist/types/checksum.d.ts.map +0 -1
  324. package/dist/types/coercers.d.ts.map +0 -1
  325. package/dist/types/collections.d.ts.map +0 -1
  326. package/dist/types/encryption-types.d.ts.map +0 -1
  327. package/dist/types/errors.d.ts.map +0 -1
  328. package/dist/types/fs.d.ts.map +0 -1
  329. package/dist/types/hex.d.ts.map +0 -1
  330. package/dist/types/index.d.ts +0 -21
  331. package/dist/types/index.d.ts.map +0 -1
  332. package/dist/types/json.d.ts.map +0 -1
  333. package/dist/types/keyring.d.ts.map +0 -1
  334. package/dist/types/logging.d.ts.map +0 -1
  335. package/dist/types/misc.d.ts.map +0 -1
  336. package/dist/types/node.d.ts +0 -3
  337. package/dist/types/node.d.ts.map +0 -1
  338. package/dist/types/number.d.ts.map +0 -1
  339. package/dist/types/opaque.d.ts +0 -6
  340. package/dist/types/opaque.d.ts.map +0 -1
  341. package/dist/types/promise.d.ts.map +0 -1
  342. package/dist/types/time.d.ts.map +0 -1
  343. package/dist/types/transaction-types.d.ts.map +0 -1
  344. package/dist/types/versions.d.ts.map +0 -1
  345. package/dist/versions.js +0 -27
  346. package/dist/versions.js.map +0 -1
@@ -0,0 +1,383 @@
1
+ import { Struct } from "@metamask/superstruct";
2
+ import type { Infer, ObjectSchema, Simplify, Optionalize } from "@metamask/superstruct";
3
+ import type { AssertionErrorConstructor } from "./assert.mjs";
4
+ /**
5
+ * Any JSON-compatible value.
6
+ */
7
+ export type Json = null | boolean | number | string | Json[] | {
8
+ [prop: string]: Json;
9
+ };
10
+ /**
11
+ * A helper type to make properties with `undefined` in their type optional, but
12
+ * not `undefined` itself.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * type Foo = ObjectOptional<{ foo: string | undefined }>;
17
+ * // Foo is equivalent to { foo?: string }
18
+ * ```
19
+ */
20
+ export type ObjectOptional<Schema extends Record<string, unknown>> = {
21
+ [Key in keyof Schema as Schema[Key] extends ExactOptionalGuard ? Key : never]?: Schema[Key] extends ExactOptionalGuard & infer Original ? Original : never;
22
+ } & {
23
+ [Key in keyof Schema as Schema[Key] extends ExactOptionalGuard ? never : Key]: Schema[Key];
24
+ };
25
+ /**
26
+ * An object type with support for exact optionals. This is used by the `object`
27
+ * struct. This uses the {@link ObjectOptional} helper to make properties with
28
+ * `undefined` in their type optional, but not `undefined` itself.
29
+ */
30
+ export type ObjectType<Schema extends ObjectSchema> = Simplify<ObjectOptional<Optionalize<{
31
+ [Key in keyof Schema]: Infer<Schema[Key]>;
32
+ }>>>;
33
+ /**
34
+ * A struct to check if the given value is a valid object, with support for
35
+ * {@link exactOptional} types.
36
+ *
37
+ * @param schema - The schema of the object.
38
+ * @returns A struct to check if the given value is an object.
39
+ */
40
+ export declare const object: <Schema extends ObjectSchema>(schema: Schema) => Struct<Simplify<ObjectOptional<Optionalize<{ [Key in keyof Schema]: Infer<Schema[Key]>; }>>>, unknown>;
41
+ declare const exactOptionalSymbol: unique symbol;
42
+ type ExactOptionalGuard = {
43
+ _exactOptionalGuard?: typeof exactOptionalSymbol;
44
+ };
45
+ /**
46
+ * A struct which allows the property of an object to be absent, or to be present
47
+ * as long as it's valid and not set to `undefined`.
48
+ *
49
+ * This struct should be used in conjunction with the {@link object} from this
50
+ * library, to get proper type inference.
51
+ *
52
+ * @param struct - The struct to check the value against, if present.
53
+ * @returns A struct to check if the given value is valid, or not present.
54
+ * @example
55
+ * ```ts
56
+ * const struct = object({
57
+ * foo: exactOptional(string()),
58
+ * bar: exactOptional(number()),
59
+ * baz: optional(boolean()),
60
+ * qux: unknown(),
61
+ * });
62
+ *
63
+ * type Type = Infer<typeof struct>;
64
+ * // Type is equivalent to:
65
+ * // {
66
+ * // foo?: string;
67
+ * // bar?: number;
68
+ * // baz?: boolean | undefined;
69
+ * // qux: unknown;
70
+ * // }
71
+ * ```
72
+ */
73
+ export declare function exactOptional<Type, Schema>(struct: Struct<Type, Schema>): Struct<Type & ExactOptionalGuard, Schema>;
74
+ /**
75
+ * A struct to check if the given value is a valid JSON-serializable value.
76
+ *
77
+ * Note that this struct is unsafe. For safe validation, use {@link JsonStruct}.
78
+ */
79
+ export declare const UnsafeJsonStruct: Struct<Json>;
80
+ /**
81
+ * A struct to check if the given value is a valid JSON-serializable value.
82
+ *
83
+ * This struct sanitizes the value before validating it, so that it is safe to
84
+ * use with untrusted input.
85
+ */
86
+ export declare const JsonStruct: Struct<Json, unknown>;
87
+ /**
88
+ * Check if the given value is a valid {@link Json} value, i.e., a value that is
89
+ * serializable to JSON.
90
+ *
91
+ * @param value - The value to check.
92
+ * @returns Whether the value is a valid {@link Json} value.
93
+ */
94
+ export declare function isValidJson(value: unknown): value is Json;
95
+ /**
96
+ * Validate and return sanitized JSON.
97
+ *
98
+ * Note:
99
+ * This function uses sanitized JsonStruct for validation
100
+ * that applies stringify and then parse of a value provided
101
+ * to ensure that there are no getters which can have side effects
102
+ * that can cause security issues.
103
+ *
104
+ * @param value - JSON structure to be processed.
105
+ * @returns Sanitized JSON structure.
106
+ */
107
+ export declare function getSafeJson<Type extends Json = Json>(value: unknown): Type;
108
+ /**
109
+ * Get the size of a JSON value in bytes. This also validates the value.
110
+ *
111
+ * @param value - The JSON value to get the size of.
112
+ * @returns The size of the JSON value in bytes.
113
+ */
114
+ export declare function getJsonSize(value: unknown): number;
115
+ /**
116
+ * The string '2.0'.
117
+ */
118
+ export declare const jsonrpc2: "2.0";
119
+ export declare const JsonRpcVersionStruct: Struct<"2.0", "2.0">;
120
+ /**
121
+ * A String specifying the version of the JSON-RPC protocol.
122
+ * MUST be exactly "2.0".
123
+ */
124
+ export type JsonRpcVersion2 = typeof jsonrpc2;
125
+ export declare const JsonRpcIdStruct: Struct<string | number | null, null>;
126
+ /**
127
+ * An identifier established by the Client that MUST contain a String, Number,
128
+ * or NULL value if included. If it is not included it is assumed to be a
129
+ * notification. The value SHOULD normally not be Null and Numbers SHOULD
130
+ * NOT contain fractional parts.
131
+ */
132
+ export type JsonRpcId = Infer<typeof JsonRpcIdStruct>;
133
+ export declare const JsonRpcErrorStruct: Struct<{
134
+ data?: Json & ExactOptionalGuard;
135
+ stack?: string;
136
+ code: number;
137
+ message: string;
138
+ }, unknown>;
139
+ /**
140
+ * Mark a certain key of a type as optional.
141
+ */
142
+ export type OptionalField<Type extends Record<string, unknown>, Key extends keyof Type> = Omit<Type, Key> & Partial<Pick<Type, Key>>;
143
+ /**
144
+ * A JSON-RPC error object.
145
+ *
146
+ * Note that TypeScript infers `unknown | undefined` as `unknown`, meaning that
147
+ * the `data` field is not optional. To make it optional, we use the
148
+ * `OptionalField` helper, to explicitly make it optional.
149
+ */
150
+ export type JsonRpcError = OptionalField<Infer<typeof JsonRpcErrorStruct>, 'data'>;
151
+ export declare const JsonRpcParamsStruct: Struct<Json[] | Record<string, Json>, null>;
152
+ export type JsonRpcParams = Json[] | Record<string, Json>;
153
+ export declare const JsonRpcRequestStruct: Struct<{
154
+ params?: (Json[] | Record<string, Json>) & ExactOptionalGuard;
155
+ id: string | number | null;
156
+ method: string;
157
+ jsonrpc: "2.0";
158
+ }, unknown>;
159
+ export type InferWithParams<Type extends Struct<any>, Params extends JsonRpcParams> = Infer<Type> & {
160
+ params?: Params;
161
+ };
162
+ /**
163
+ * A JSON-RPC request object.
164
+ */
165
+ export type JsonRpcRequest<Params extends JsonRpcParams = JsonRpcParams> = InferWithParams<typeof JsonRpcRequestStruct, Params>;
166
+ export declare const JsonRpcNotificationStruct: Struct<{
167
+ params?: (Json[] | Record<string, Json>) & ExactOptionalGuard;
168
+ method: string;
169
+ jsonrpc: "2.0";
170
+ }, unknown>;
171
+ /**
172
+ * A JSON-RPC notification object.
173
+ */
174
+ export type JsonRpcNotification<Params extends JsonRpcParams = JsonRpcParams> = InferWithParams<typeof JsonRpcNotificationStruct, Params>;
175
+ /**
176
+ * Check if the given value is a valid {@link JsonRpcNotification} object.
177
+ *
178
+ * @param value - The value to check.
179
+ * @returns Whether the given value is a valid {@link JsonRpcNotification}
180
+ * object.
181
+ */
182
+ export declare function isJsonRpcNotification(value: unknown): value is JsonRpcNotification;
183
+ /**
184
+ * Assert that the given value is a valid {@link JsonRpcNotification} object.
185
+ *
186
+ * @param value - The value to check.
187
+ * @param ErrorWrapper - The error class to throw if the assertion fails.
188
+ * Defaults to {@link AssertionError}.
189
+ * @throws If the given value is not a valid {@link JsonRpcNotification} object.
190
+ */
191
+ export declare function assertIsJsonRpcNotification(value: unknown, ErrorWrapper?: AssertionErrorConstructor): asserts value is JsonRpcNotification;
192
+ /**
193
+ * Check if the given value is a valid {@link JsonRpcRequest} object.
194
+ *
195
+ * @param value - The value to check.
196
+ * @returns Whether the given value is a valid {@link JsonRpcRequest} object.
197
+ */
198
+ export declare function isJsonRpcRequest(value: unknown): value is JsonRpcRequest;
199
+ /**
200
+ * Assert that the given value is a valid {@link JsonRpcRequest} object.
201
+ *
202
+ * @param value - The JSON-RPC request or notification to check.
203
+ * @param ErrorWrapper - The error class to throw if the assertion fails.
204
+ * Defaults to {@link AssertionError}.
205
+ * @throws If the given value is not a valid {@link JsonRpcRequest} object.
206
+ */
207
+ export declare function assertIsJsonRpcRequest(value: unknown, ErrorWrapper?: AssertionErrorConstructor): asserts value is JsonRpcRequest;
208
+ export declare const PendingJsonRpcResponseStruct: Struct<{
209
+ id: string | number | null;
210
+ jsonrpc: "2.0";
211
+ result: unknown;
212
+ error?: {
213
+ data?: Json & ExactOptionalGuard;
214
+ stack?: string;
215
+ code: number;
216
+ message: string;
217
+ } | undefined;
218
+ }, {
219
+ id: Struct<string | number | null, null>;
220
+ jsonrpc: Struct<"2.0", "2.0">;
221
+ result: Struct<unknown, null>;
222
+ error: Struct<{
223
+ data?: Json & ExactOptionalGuard;
224
+ stack?: string;
225
+ code: number;
226
+ message: string;
227
+ } | undefined, unknown>;
228
+ }>;
229
+ /**
230
+ * A JSON-RPC response object that has not yet been resolved.
231
+ */
232
+ export type PendingJsonRpcResponse<Result extends Json> = Omit<Infer<typeof PendingJsonRpcResponseStruct>, 'result'> & {
233
+ result?: Result;
234
+ };
235
+ export declare const JsonRpcSuccessStruct: Struct<{
236
+ id: string | number | null;
237
+ jsonrpc: "2.0";
238
+ result: Json;
239
+ }, unknown>;
240
+ /**
241
+ * A successful JSON-RPC response object.
242
+ */
243
+ export type JsonRpcSuccess<Result extends Json> = Omit<Infer<typeof JsonRpcSuccessStruct>, 'result'> & {
244
+ result: Result;
245
+ };
246
+ export declare const JsonRpcFailureStruct: Struct<{
247
+ error: JsonRpcError;
248
+ id: string | number | null;
249
+ jsonrpc: "2.0";
250
+ }, unknown>;
251
+ /**
252
+ * A failed JSON-RPC response object.
253
+ */
254
+ export type JsonRpcFailure = Infer<typeof JsonRpcFailureStruct>;
255
+ export declare const JsonRpcResponseStruct: Struct<{
256
+ id: string | number | null;
257
+ jsonrpc: "2.0";
258
+ result: Json;
259
+ } | {
260
+ error: JsonRpcError;
261
+ id: string | number | null;
262
+ jsonrpc: "2.0";
263
+ }, null>;
264
+ /**
265
+ * A JSON-RPC response object. Must be checked to determine whether it's a
266
+ * success or failure.
267
+ *
268
+ * @template Result - The type of the result.
269
+ */
270
+ export type JsonRpcResponse<Result extends Json> = JsonRpcSuccess<Result> | JsonRpcFailure;
271
+ /**
272
+ * Type guard to check whether specified JSON-RPC response is a
273
+ * {@link PendingJsonRpcResponse}.
274
+ *
275
+ * @param response - The JSON-RPC response to check.
276
+ * @returns Whether the specified JSON-RPC response is pending.
277
+ */
278
+ export declare function isPendingJsonRpcResponse(response: unknown): response is PendingJsonRpcResponse<Json>;
279
+ /**
280
+ * Assert that the given value is a valid {@link PendingJsonRpcResponse} object.
281
+ *
282
+ * @param response - The JSON-RPC response to check.
283
+ * @param ErrorWrapper - The error class to throw if the assertion fails.
284
+ * Defaults to {@link AssertionError}.
285
+ * @throws If the given value is not a valid {@link PendingJsonRpcResponse}
286
+ * object.
287
+ */
288
+ export declare function assertIsPendingJsonRpcResponse(response: unknown, ErrorWrapper?: AssertionErrorConstructor): asserts response is PendingJsonRpcResponse<Json>;
289
+ /**
290
+ * Type guard to check if a value is a {@link JsonRpcResponse}.
291
+ *
292
+ * @param response - The object to check.
293
+ * @returns Whether the object is a JsonRpcResponse.
294
+ */
295
+ export declare function isJsonRpcResponse(response: unknown): response is JsonRpcResponse<Json>;
296
+ /**
297
+ * Assert that the given value is a valid {@link JsonRpcResponse} object.
298
+ *
299
+ * @param value - The value to check.
300
+ * @param ErrorWrapper - The error class to throw if the assertion fails.
301
+ * Defaults to {@link AssertionError}.
302
+ * @throws If the given value is not a valid {@link JsonRpcResponse} object.
303
+ */
304
+ export declare function assertIsJsonRpcResponse(value: unknown, ErrorWrapper?: AssertionErrorConstructor): asserts value is JsonRpcResponse<Json>;
305
+ /**
306
+ * Check if the given value is a valid {@link JsonRpcSuccess} object.
307
+ *
308
+ * @param value - The value to check.
309
+ * @returns Whether the given value is a valid {@link JsonRpcSuccess} object.
310
+ */
311
+ export declare function isJsonRpcSuccess(value: unknown): value is JsonRpcSuccess<Json>;
312
+ /**
313
+ * Assert that the given value is a valid {@link JsonRpcSuccess} object.
314
+ *
315
+ * @param value - The value to check.
316
+ * @param ErrorWrapper - The error class to throw if the assertion fails.
317
+ * Defaults to {@link AssertionError}.
318
+ * @throws If the given value is not a valid {@link JsonRpcSuccess} object.
319
+ */
320
+ export declare function assertIsJsonRpcSuccess(value: unknown, ErrorWrapper?: AssertionErrorConstructor): asserts value is JsonRpcSuccess<Json>;
321
+ /**
322
+ * Check if the given value is a valid {@link JsonRpcFailure} object.
323
+ *
324
+ * @param value - The value to check.
325
+ * @returns Whether the given value is a valid {@link JsonRpcFailure} object.
326
+ */
327
+ export declare function isJsonRpcFailure(value: unknown): value is JsonRpcFailure;
328
+ /**
329
+ * Assert that the given value is a valid {@link JsonRpcFailure} object.
330
+ *
331
+ * @param value - The value to check.
332
+ * @param ErrorWrapper - The error class to throw if the assertion fails.
333
+ * Defaults to {@link AssertionError}.
334
+ * @throws If the given value is not a valid {@link JsonRpcFailure} object.
335
+ */
336
+ export declare function assertIsJsonRpcFailure(value: unknown, ErrorWrapper?: AssertionErrorConstructor): asserts value is JsonRpcFailure;
337
+ /**
338
+ * Check if the given value is a valid {@link JsonRpcError} object.
339
+ *
340
+ * @param value - The value to check.
341
+ * @returns Whether the given value is a valid {@link JsonRpcError} object.
342
+ */
343
+ export declare function isJsonRpcError(value: unknown): value is JsonRpcError;
344
+ /**
345
+ * Assert that the given value is a valid {@link JsonRpcError} object.
346
+ *
347
+ * @param value - The value to check.
348
+ * @param ErrorWrapper - The error class to throw if the assertion fails.
349
+ * Defaults to {@link AssertionError}.
350
+ * @throws If the given value is not a valid {@link JsonRpcError} object.
351
+ */
352
+ export declare function assertIsJsonRpcError(value: unknown, ErrorWrapper?: AssertionErrorConstructor): asserts value is JsonRpcError;
353
+ type JsonRpcValidatorOptions = {
354
+ permitEmptyString?: boolean;
355
+ permitFractions?: boolean;
356
+ permitNull?: boolean;
357
+ };
358
+ /**
359
+ * Gets a function for validating JSON-RPC request / response `id` values.
360
+ *
361
+ * By manipulating the options of this factory, you can control the behavior
362
+ * of the resulting validator for some edge cases. This is useful because e.g.
363
+ * `null` should sometimes but not always be permitted.
364
+ *
365
+ * Note that the empty string (`''`) is always permitted by the JSON-RPC
366
+ * specification, but that kind of sucks and you may want to forbid it in some
367
+ * instances anyway.
368
+ *
369
+ * For more details, see the
370
+ * [JSON-RPC Specification](https://www.jsonrpc.org/specification).
371
+ *
372
+ * @param options - An options object.
373
+ * @param options.permitEmptyString - Whether the empty string (i.e. `''`)
374
+ * should be treated as a valid ID. Default: `true`
375
+ * @param options.permitFractions - Whether fractional numbers (e.g. `1.2`)
376
+ * should be treated as valid IDs. Default: `false`
377
+ * @param options.permitNull - Whether `null` should be treated as a valid ID.
378
+ * Default: `true`
379
+ * @returns The JSON-RPC ID validator function.
380
+ */
381
+ export declare function getJsonRpcIdValidator(options?: JsonRpcValidatorOptions): (id: unknown) => id is string | number | null;
382
+ export {};
383
+ //# sourceMappingURL=json.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.mts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"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"}