@zeruxjs/validator 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (999) hide show
  1. package/LICENSE-APACHE +201 -0
  2. package/LICENSE-MIT +9 -0
  3. package/README.md +13 -2
  4. package/dist/actions/_isIsbn10.d.ts +10 -0
  5. package/dist/actions/_isIsbn10.js +18 -0
  6. package/dist/actions/_isIsbn10.js.map +1 -0
  7. package/dist/actions/_isIsbn13.d.ts +10 -0
  8. package/dist/actions/_isIsbn13.js +18 -0
  9. package/dist/actions/_isIsbn13.js.map +1 -0
  10. package/dist/actions/_isPartiallyTyped.d.ts +13 -0
  11. package/dist/actions/_isPartiallyTyped.js +45 -0
  12. package/dist/actions/_isPartiallyTyped.js.map +1 -0
  13. package/dist/actions/args.d.ts +32 -0
  14. package/dist/actions/args.js +23 -0
  15. package/dist/actions/args.js.map +1 -0
  16. package/dist/actions/argsAsync.d.ts +32 -0
  17. package/dist/actions/argsAsync.js +23 -0
  18. package/dist/actions/argsAsync.js.map +1 -0
  19. package/dist/actions/awaitAsync.d.ts +20 -0
  20. package/dist/actions/awaitAsync.js +19 -0
  21. package/dist/actions/awaitAsync.js.map +1 -0
  22. package/dist/actions/base64.d.ts +65 -0
  23. package/dist/actions/base64.js +21 -0
  24. package/dist/actions/base64.js.map +1 -0
  25. package/dist/actions/bic.d.ts +65 -0
  26. package/dist/actions/bic.js +21 -0
  27. package/dist/actions/bic.js.map +1 -0
  28. package/dist/actions/brand.d.ts +42 -0
  29. package/dist/actions/brand.js +21 -0
  30. package/dist/actions/brand.js.map +1 -0
  31. package/dist/actions/bytes.d.ts +68 -0
  32. package/dist/actions/bytes.js +25 -0
  33. package/dist/actions/bytes.js.map +1 -0
  34. package/dist/actions/check.d.ts +44 -0
  35. package/dist/actions/check.js +20 -0
  36. package/dist/actions/check.js.map +1 -0
  37. package/dist/actions/checkAsync.d.ts +44 -0
  38. package/dist/actions/checkAsync.js +20 -0
  39. package/dist/actions/checkAsync.js.map +1 -0
  40. package/dist/actions/checkItems.d.ts +45 -0
  41. package/dist/actions/checkItems.js +36 -0
  42. package/dist/actions/checkItems.js.map +1 -0
  43. package/dist/actions/checkItemsAsync.d.ts +45 -0
  44. package/dist/actions/checkItemsAsync.js +37 -0
  45. package/dist/actions/checkItemsAsync.js.map +1 -0
  46. package/dist/actions/creditCard.d.ts +65 -0
  47. package/dist/actions/creditCard.js +57 -0
  48. package/dist/actions/creditCard.js.map +1 -0
  49. package/dist/actions/cuid2.d.ts +65 -0
  50. package/dist/actions/cuid2.js +21 -0
  51. package/dist/actions/cuid2.js.map +1 -0
  52. package/dist/actions/decimal.d.ts +73 -0
  53. package/dist/actions/decimal.js +21 -0
  54. package/dist/actions/decimal.js.map +1 -0
  55. package/dist/actions/description.d.ts +26 -0
  56. package/dist/actions/description.js +17 -0
  57. package/dist/actions/description.js.map +1 -0
  58. package/dist/actions/digits.d.ts +73 -0
  59. package/dist/actions/digits.js +21 -0
  60. package/dist/actions/digits.js.map +1 -0
  61. package/dist/actions/domain.d.ts +81 -0
  62. package/dist/actions/domain.js +21 -0
  63. package/dist/actions/domain.js.map +1 -0
  64. package/dist/actions/email.d.ts +75 -0
  65. package/dist/actions/email.js +21 -0
  66. package/dist/actions/email.js.map +1 -0
  67. package/dist/actions/emoji.d.ts +65 -0
  68. package/dist/actions/emoji.js +21 -0
  69. package/dist/actions/emoji.js.map +1 -0
  70. package/dist/actions/empty.d.ts +58 -0
  71. package/dist/actions/empty.js +21 -0
  72. package/dist/actions/empty.js.map +1 -0
  73. package/dist/actions/endsWith.d.ts +68 -0
  74. package/dist/actions/endsWith.js +22 -0
  75. package/dist/actions/endsWith.js.map +1 -0
  76. package/dist/actions/entries.d.ts +77 -0
  77. package/dist/actions/entries.js +25 -0
  78. package/dist/actions/entries.js.map +1 -0
  79. package/dist/actions/everyItem.d.ts +65 -0
  80. package/dist/actions/everyItem.js +20 -0
  81. package/dist/actions/everyItem.js.map +1 -0
  82. package/dist/actions/examples.d.ts +28 -0
  83. package/dist/actions/examples.js +19 -0
  84. package/dist/actions/examples.js.map +1 -0
  85. package/dist/actions/excludes.d.ts +65 -0
  86. package/dist/actions/excludes.js +22 -0
  87. package/dist/actions/excludes.js.map +1 -0
  88. package/dist/actions/filterItems.d.ts +27 -0
  89. package/dist/actions/filterItems.js +15 -0
  90. package/dist/actions/filterItems.js.map +1 -0
  91. package/dist/actions/findItem.d.ts +32 -0
  92. package/dist/actions/findItem.js +16 -0
  93. package/dist/actions/findItem.js.map +1 -0
  94. package/dist/actions/finite.d.ts +65 -0
  95. package/dist/actions/finite.js +20 -0
  96. package/dist/actions/finite.js.map +1 -0
  97. package/dist/actions/flavor.d.ts +52 -0
  98. package/dist/actions/flavor.js +23 -0
  99. package/dist/actions/flavor.js.map +1 -0
  100. package/dist/actions/graphemes.d.ts +68 -0
  101. package/dist/actions/graphemes.js +25 -0
  102. package/dist/actions/graphemes.js.map +1 -0
  103. package/dist/actions/gtValue.d.ts +65 -0
  104. package/dist/actions/gtValue.js +26 -0
  105. package/dist/actions/gtValue.js.map +1 -0
  106. package/dist/actions/guard.d.ts +97 -0
  107. package/dist/actions/guard.js +21 -0
  108. package/dist/actions/guard.js.map +1 -0
  109. package/dist/actions/hash.d.ts +92 -0
  110. package/dist/actions/hash.js +39 -0
  111. package/dist/actions/hash.js.map +1 -0
  112. package/dist/actions/hexColor.d.ts +65 -0
  113. package/dist/actions/hexColor.js +21 -0
  114. package/dist/actions/hexColor.js.map +1 -0
  115. package/dist/actions/hexadecimal.d.ts +65 -0
  116. package/dist/actions/hexadecimal.js +21 -0
  117. package/dist/actions/hexadecimal.js.map +1 -0
  118. package/dist/actions/imei.d.ts +73 -0
  119. package/dist/actions/imei.js +23 -0
  120. package/dist/actions/imei.js.map +1 -0
  121. package/dist/actions/includes.d.ts +65 -0
  122. package/dist/actions/includes.js +24 -0
  123. package/dist/actions/includes.js.map +1 -0
  124. package/dist/actions/index.d.ts +129 -0
  125. package/dist/actions/index.js +130 -0
  126. package/dist/actions/index.js.map +1 -0
  127. package/dist/actions/integer.d.ts +65 -0
  128. package/dist/actions/integer.js +20 -0
  129. package/dist/actions/integer.js.map +1 -0
  130. package/dist/actions/ip.d.ts +65 -0
  131. package/dist/actions/ip.js +21 -0
  132. package/dist/actions/ip.js.map +1 -0
  133. package/dist/actions/ipv4.d.ts +65 -0
  134. package/dist/actions/ipv4.js +21 -0
  135. package/dist/actions/ipv4.js.map +1 -0
  136. package/dist/actions/ipv6.d.ts +65 -0
  137. package/dist/actions/ipv6.js +21 -0
  138. package/dist/actions/ipv6.js.map +1 -0
  139. package/dist/actions/isbn.d.ts +69 -0
  140. package/dist/actions/isbn.js +43 -0
  141. package/dist/actions/isbn.js.map +1 -0
  142. package/dist/actions/isoDate.d.ts +77 -0
  143. package/dist/actions/isoDate.js +21 -0
  144. package/dist/actions/isoDate.js.map +1 -0
  145. package/dist/actions/isoDateTime.d.ts +83 -0
  146. package/dist/actions/isoDateTime.js +21 -0
  147. package/dist/actions/isoDateTime.js.map +1 -0
  148. package/dist/actions/isoTime.d.ts +69 -0
  149. package/dist/actions/isoTime.js +21 -0
  150. package/dist/actions/isoTime.js.map +1 -0
  151. package/dist/actions/isoTimeSecond.d.ts +69 -0
  152. package/dist/actions/isoTimeSecond.js +21 -0
  153. package/dist/actions/isoTimeSecond.js.map +1 -0
  154. package/dist/actions/isoTimestamp.d.ts +104 -0
  155. package/dist/actions/isoTimestamp.js +21 -0
  156. package/dist/actions/isoTimestamp.js.map +1 -0
  157. package/dist/actions/isoWeek.d.ts +75 -0
  158. package/dist/actions/isoWeek.js +21 -0
  159. package/dist/actions/isoWeek.js.map +1 -0
  160. package/dist/actions/isrc.d.ts +73 -0
  161. package/dist/actions/isrc.js +21 -0
  162. package/dist/actions/isrc.js.map +1 -0
  163. package/dist/actions/jwsCompact.d.ts +83 -0
  164. package/dist/actions/jwsCompact.js +21 -0
  165. package/dist/actions/jwsCompact.js.map +1 -0
  166. package/dist/actions/length.d.ts +69 -0
  167. package/dist/actions/length.js +22 -0
  168. package/dist/actions/length.js.map +1 -0
  169. package/dist/actions/ltValue.d.ts +65 -0
  170. package/dist/actions/ltValue.js +26 -0
  171. package/dist/actions/ltValue.js.map +1 -0
  172. package/dist/actions/mac.d.ts +65 -0
  173. package/dist/actions/mac.js +21 -0
  174. package/dist/actions/mac.js.map +1 -0
  175. package/dist/actions/mac48.d.ts +65 -0
  176. package/dist/actions/mac48.js +21 -0
  177. package/dist/actions/mac48.js.map +1 -0
  178. package/dist/actions/mac64.d.ts +65 -0
  179. package/dist/actions/mac64.js +21 -0
  180. package/dist/actions/mac64.js.map +1 -0
  181. package/dist/actions/mapItems.d.ts +32 -0
  182. package/dist/actions/mapItems.js +15 -0
  183. package/dist/actions/mapItems.js.map +1 -0
  184. package/dist/actions/maxBytes.d.ts +68 -0
  185. package/dist/actions/maxBytes.js +25 -0
  186. package/dist/actions/maxBytes.js.map +1 -0
  187. package/dist/actions/maxEntries.d.ts +77 -0
  188. package/dist/actions/maxEntries.js +25 -0
  189. package/dist/actions/maxEntries.js.map +1 -0
  190. package/dist/actions/maxGraphemes.d.ts +68 -0
  191. package/dist/actions/maxGraphemes.js +25 -0
  192. package/dist/actions/maxGraphemes.js.map +1 -0
  193. package/dist/actions/maxLength.d.ts +69 -0
  194. package/dist/actions/maxLength.js +22 -0
  195. package/dist/actions/maxLength.js.map +1 -0
  196. package/dist/actions/maxSize.d.ts +69 -0
  197. package/dist/actions/maxSize.js +22 -0
  198. package/dist/actions/maxSize.js.map +1 -0
  199. package/dist/actions/maxValue.d.ts +65 -0
  200. package/dist/actions/maxValue.js +26 -0
  201. package/dist/actions/maxValue.js.map +1 -0
  202. package/dist/actions/maxWords.d.ts +74 -0
  203. package/dist/actions/maxWords.js +26 -0
  204. package/dist/actions/maxWords.js.map +1 -0
  205. package/dist/actions/metadata.d.ts +26 -0
  206. package/dist/actions/metadata.js +17 -0
  207. package/dist/actions/metadata.js.map +1 -0
  208. package/dist/actions/mimeType.d.ts +73 -0
  209. package/dist/actions/mimeType.js +23 -0
  210. package/dist/actions/mimeType.js.map +1 -0
  211. package/dist/actions/minBytes.d.ts +68 -0
  212. package/dist/actions/minBytes.js +25 -0
  213. package/dist/actions/minBytes.js.map +1 -0
  214. package/dist/actions/minEntries.d.ts +77 -0
  215. package/dist/actions/minEntries.js +25 -0
  216. package/dist/actions/minEntries.js.map +1 -0
  217. package/dist/actions/minGraphemes.d.ts +68 -0
  218. package/dist/actions/minGraphemes.js +25 -0
  219. package/dist/actions/minGraphemes.js.map +1 -0
  220. package/dist/actions/minLength.d.ts +69 -0
  221. package/dist/actions/minLength.js +22 -0
  222. package/dist/actions/minLength.js.map +1 -0
  223. package/dist/actions/minSize.d.ts +69 -0
  224. package/dist/actions/minSize.js +22 -0
  225. package/dist/actions/minSize.js.map +1 -0
  226. package/dist/actions/minValue.d.ts +65 -0
  227. package/dist/actions/minValue.js +26 -0
  228. package/dist/actions/minValue.js.map +1 -0
  229. package/dist/actions/minWords.d.ts +74 -0
  230. package/dist/actions/minWords.js +26 -0
  231. package/dist/actions/minWords.js.map +1 -0
  232. package/dist/actions/multipleOf.d.ts +90 -0
  233. package/dist/actions/multipleOf.js +21 -0
  234. package/dist/actions/multipleOf.js.map +1 -0
  235. package/dist/actions/nanoid.d.ts +77 -0
  236. package/dist/actions/nanoid.js +21 -0
  237. package/dist/actions/nanoid.js.map +1 -0
  238. package/dist/actions/nonEmpty.d.ts +58 -0
  239. package/dist/actions/nonEmpty.js +21 -0
  240. package/dist/actions/nonEmpty.js.map +1 -0
  241. package/dist/actions/normalize.d.ts +36 -0
  242. package/dist/actions/normalize.js +15 -0
  243. package/dist/actions/normalize.js.map +1 -0
  244. package/dist/actions/notBytes.d.ts +68 -0
  245. package/dist/actions/notBytes.js +25 -0
  246. package/dist/actions/notBytes.js.map +1 -0
  247. package/dist/actions/notEntries.d.ts +77 -0
  248. package/dist/actions/notEntries.js +25 -0
  249. package/dist/actions/notEntries.js.map +1 -0
  250. package/dist/actions/notGraphemes.d.ts +68 -0
  251. package/dist/actions/notGraphemes.js +25 -0
  252. package/dist/actions/notGraphemes.js.map +1 -0
  253. package/dist/actions/notLength.d.ts +69 -0
  254. package/dist/actions/notLength.js +22 -0
  255. package/dist/actions/notLength.js.map +1 -0
  256. package/dist/actions/notSize.d.ts +69 -0
  257. package/dist/actions/notSize.js +22 -0
  258. package/dist/actions/notSize.js.map +1 -0
  259. package/dist/actions/notValue.d.ts +65 -0
  260. package/dist/actions/notValue.js +28 -0
  261. package/dist/actions/notValue.js.map +1 -0
  262. package/dist/actions/notValues.d.ts +65 -0
  263. package/dist/actions/notValues.js +25 -0
  264. package/dist/actions/notValues.js.map +1 -0
  265. package/dist/actions/notWords.d.ts +74 -0
  266. package/dist/actions/notWords.js +26 -0
  267. package/dist/actions/notWords.js.map +1 -0
  268. package/dist/actions/octal.d.ts +65 -0
  269. package/dist/actions/octal.js +21 -0
  270. package/dist/actions/octal.js.map +1 -0
  271. package/dist/actions/parseBoolean.d.ts +91 -0
  272. package/dist/actions/parseBoolean.js +36 -0
  273. package/dist/actions/parseBoolean.js.map +1 -0
  274. package/dist/actions/parseJson.d.ts +87 -0
  275. package/dist/actions/parseJson.js +31 -0
  276. package/dist/actions/parseJson.js.map +1 -0
  277. package/dist/actions/partialCheck.d.ts +50 -0
  278. package/dist/actions/partialCheck.js +24 -0
  279. package/dist/actions/partialCheck.js.map +1 -0
  280. package/dist/actions/partialCheckAsync.d.ts +50 -0
  281. package/dist/actions/partialCheckAsync.js +24 -0
  282. package/dist/actions/partialCheckAsync.js.map +1 -0
  283. package/dist/actions/rawCheck.d.ts +27 -0
  284. package/dist/actions/rawCheck.js +27 -0
  285. package/dist/actions/rawCheck.js.map +1 -0
  286. package/dist/actions/rawCheckAsync.d.ts +27 -0
  287. package/dist/actions/rawCheckAsync.js +27 -0
  288. package/dist/actions/rawCheckAsync.js.map +1 -0
  289. package/dist/actions/rawTransform.d.ts +23 -0
  290. package/dist/actions/rawTransform.js +39 -0
  291. package/dist/actions/rawTransform.js.map +1 -0
  292. package/dist/actions/rawTransformAsync.d.ts +23 -0
  293. package/dist/actions/rawTransformAsync.js +39 -0
  294. package/dist/actions/rawTransformAsync.js.map +1 -0
  295. package/dist/actions/readonly.d.ts +25 -0
  296. package/dist/actions/readonly.js +13 -0
  297. package/dist/actions/readonly.js.map +1 -0
  298. package/dist/actions/reduceItems.d.ts +37 -0
  299. package/dist/actions/reduceItems.js +17 -0
  300. package/dist/actions/reduceItems.js.map +1 -0
  301. package/dist/actions/regex.d.ts +72 -0
  302. package/dist/actions/regex.js +20 -0
  303. package/dist/actions/regex.js.map +1 -0
  304. package/dist/actions/returns.d.ts +26 -0
  305. package/dist/actions/returns.js +23 -0
  306. package/dist/actions/returns.js.map +1 -0
  307. package/dist/actions/returnsAsync.d.ts +26 -0
  308. package/dist/actions/returnsAsync.js +23 -0
  309. package/dist/actions/returnsAsync.js.map +1 -0
  310. package/dist/actions/rfcEmail.d.ts +75 -0
  311. package/dist/actions/rfcEmail.js +21 -0
  312. package/dist/actions/rfcEmail.js.map +1 -0
  313. package/dist/actions/safeInteger.d.ts +65 -0
  314. package/dist/actions/safeInteger.js +20 -0
  315. package/dist/actions/safeInteger.js.map +1 -0
  316. package/dist/actions/size.d.ts +69 -0
  317. package/dist/actions/size.js +22 -0
  318. package/dist/actions/size.js.map +1 -0
  319. package/dist/actions/slug.d.ts +65 -0
  320. package/dist/actions/slug.js +21 -0
  321. package/dist/actions/slug.js.map +1 -0
  322. package/dist/actions/someItem.d.ts +65 -0
  323. package/dist/actions/someItem.js +20 -0
  324. package/dist/actions/someItem.js.map +1 -0
  325. package/dist/actions/sortItems.d.ts +32 -0
  326. package/dist/actions/sortItems.js +15 -0
  327. package/dist/actions/sortItems.js.map +1 -0
  328. package/dist/actions/startsWith.d.ts +68 -0
  329. package/dist/actions/startsWith.js +22 -0
  330. package/dist/actions/startsWith.js.map +1 -0
  331. package/dist/actions/stringifyJson.d.ts +92 -0
  332. package/dist/actions/stringifyJson.js +39 -0
  333. package/dist/actions/stringifyJson.js.map +1 -0
  334. package/dist/actions/title.d.ts +26 -0
  335. package/dist/actions/title.js +17 -0
  336. package/dist/actions/title.js.map +1 -0
  337. package/dist/actions/toBigint.d.ts +53 -0
  338. package/dist/actions/toBigint.js +24 -0
  339. package/dist/actions/toBigint.js.map +1 -0
  340. package/dist/actions/toBoolean.d.ts +22 -0
  341. package/dist/actions/toBoolean.js +22 -0
  342. package/dist/actions/toBoolean.js.map +1 -0
  343. package/dist/actions/toDate.d.ts +53 -0
  344. package/dist/actions/toDate.js +32 -0
  345. package/dist/actions/toDate.js.map +1 -0
  346. package/dist/actions/toLowerCase.d.ts +20 -0
  347. package/dist/actions/toLowerCase.js +19 -0
  348. package/dist/actions/toLowerCase.js.map +1 -0
  349. package/dist/actions/toMaxValue.d.ts +27 -0
  350. package/dist/actions/toMaxValue.js +23 -0
  351. package/dist/actions/toMaxValue.js.map +1 -0
  352. package/dist/actions/toMinValue.d.ts +27 -0
  353. package/dist/actions/toMinValue.js +23 -0
  354. package/dist/actions/toMinValue.js.map +1 -0
  355. package/dist/actions/toNumber.d.ts +53 -0
  356. package/dist/actions/toNumber.js +29 -0
  357. package/dist/actions/toNumber.js.map +1 -0
  358. package/dist/actions/toString.d.ts +53 -0
  359. package/dist/actions/toString.js +23 -0
  360. package/dist/actions/toString.js.map +1 -0
  361. package/dist/actions/toUpperCase.d.ts +20 -0
  362. package/dist/actions/toUpperCase.js +19 -0
  363. package/dist/actions/toUpperCase.js.map +1 -0
  364. package/dist/actions/transform.d.ts +26 -0
  365. package/dist/actions/transform.js +24 -0
  366. package/dist/actions/transform.js.map +1 -0
  367. package/dist/actions/transformAsync.d.ts +26 -0
  368. package/dist/actions/transformAsync.js +24 -0
  369. package/dist/actions/transformAsync.js.map +1 -0
  370. package/dist/actions/trim.d.ts +20 -0
  371. package/dist/actions/trim.js +19 -0
  372. package/dist/actions/trim.js.map +1 -0
  373. package/dist/actions/trimEnd.d.ts +20 -0
  374. package/dist/actions/trimEnd.js +19 -0
  375. package/dist/actions/trimEnd.js.map +1 -0
  376. package/dist/actions/trimStart.d.ts +20 -0
  377. package/dist/actions/trimStart.js +19 -0
  378. package/dist/actions/trimStart.js.map +1 -0
  379. package/dist/actions/types/check.d.ts +22 -0
  380. package/dist/actions/types/check.js +2 -0
  381. package/dist/actions/types/check.js.map +1 -0
  382. package/dist/actions/types/checkItems.d.ts +23 -0
  383. package/dist/actions/types/checkItems.js +2 -0
  384. package/dist/actions/types/checkItems.js.map +1 -0
  385. package/dist/actions/types/index.d.ts +5 -0
  386. package/dist/actions/types/index.js +6 -0
  387. package/dist/actions/types/index.js.map +1 -0
  388. package/dist/actions/types/partialCheck.d.ts +96 -0
  389. package/dist/actions/types/partialCheck.js +2 -0
  390. package/dist/actions/types/partialCheck.js.map +1 -0
  391. package/dist/actions/types/rawCheck.d.ts +37 -0
  392. package/dist/actions/types/rawCheck.js +2 -0
  393. package/dist/actions/types/rawCheck.js.map +1 -0
  394. package/dist/actions/types/rawTransform.d.ts +38 -0
  395. package/dist/actions/types/rawTransform.js +2 -0
  396. package/dist/actions/types/rawTransform.js.map +1 -0
  397. package/dist/actions/types.d.ts +37 -0
  398. package/dist/actions/types.js +2 -0
  399. package/dist/actions/types.js.map +1 -0
  400. package/dist/actions/ulid.d.ts +65 -0
  401. package/dist/actions/ulid.js +21 -0
  402. package/dist/actions/ulid.js.map +1 -0
  403. package/dist/actions/url.d.ts +71 -0
  404. package/dist/actions/url.js +28 -0
  405. package/dist/actions/url.js.map +1 -0
  406. package/dist/actions/uuid.d.ts +65 -0
  407. package/dist/actions/uuid.js +21 -0
  408. package/dist/actions/uuid.js.map +1 -0
  409. package/dist/actions/value.d.ts +65 -0
  410. package/dist/actions/value.js +27 -0
  411. package/dist/actions/value.js.map +1 -0
  412. package/dist/actions/values.d.ts +65 -0
  413. package/dist/actions/values.js +25 -0
  414. package/dist/actions/values.js.map +1 -0
  415. package/dist/actions/words.d.ts +74 -0
  416. package/dist/actions/words.js +26 -0
  417. package/dist/actions/words.js.map +1 -0
  418. package/dist/index.d.ts +10 -0
  419. package/dist/index.js +9 -0
  420. package/dist/index.js.map +1 -0
  421. package/dist/index.min.js +4 -0
  422. package/dist/index.min.js.map +1 -0
  423. package/dist/integrations/http.d.ts +27 -0
  424. package/dist/integrations/http.js +124 -0
  425. package/dist/integrations/http.js.map +1 -0
  426. package/dist/methods/_LruCache.d.ts +44 -0
  427. package/dist/methods/_LruCache.js +115 -0
  428. package/dist/methods/_LruCache.js.map +1 -0
  429. package/dist/methods/assert.d.ts +9 -0
  430. package/dist/methods/assert.js +15 -0
  431. package/dist/methods/assert.js.map +1 -0
  432. package/dist/methods/cache.d.ts +49 -0
  433. package/dist/methods/cache.js +24 -0
  434. package/dist/methods/cache.js.map +1 -0
  435. package/dist/methods/cacheAsync.d.ts +69 -0
  436. package/dist/methods/cacheAsync.js +46 -0
  437. package/dist/methods/cacheAsync.js.map +1 -0
  438. package/dist/methods/config.d.ts +10 -0
  439. package/dist/methods/config.js +22 -0
  440. package/dist/methods/config.js.map +1 -0
  441. package/dist/methods/fallback.d.ts +23 -0
  442. package/dist/methods/fallback.js +27 -0
  443. package/dist/methods/fallback.js.map +1 -0
  444. package/dist/methods/fallbackAsync.d.ts +44 -0
  445. package/dist/methods/fallbackAsync.js +31 -0
  446. package/dist/methods/fallbackAsync.js.map +1 -0
  447. package/dist/methods/flatten.d.ts +48 -0
  448. package/dist/methods/flatten.js +51 -0
  449. package/dist/methods/flatten.js.map +1 -0
  450. package/dist/methods/forward.d.ts +11 -0
  451. package/dist/methods/forward.js +66 -0
  452. package/dist/methods/forward.js.map +1 -0
  453. package/dist/methods/forwardAsync.d.ts +11 -0
  454. package/dist/methods/forwardAsync.js +67 -0
  455. package/dist/methods/forwardAsync.js.map +1 -0
  456. package/dist/methods/getDefault.d.ts +25 -0
  457. package/dist/methods/getDefault.js +19 -0
  458. package/dist/methods/getDefault.js.map +1 -0
  459. package/dist/methods/getDefaults.d.ts +15 -0
  460. package/dist/methods/getDefaults.js +31 -0
  461. package/dist/methods/getDefaults.js.map +1 -0
  462. package/dist/methods/getDefaultsAsync.d.ts +15 -0
  463. package/dist/methods/getDefaultsAsync.js +30 -0
  464. package/dist/methods/getDefaultsAsync.js.map +1 -0
  465. package/dist/methods/getDescription.d.ts +27 -0
  466. package/dist/methods/getDescription.js +19 -0
  467. package/dist/methods/getDescription.js.map +1 -0
  468. package/dist/methods/getExamples.d.ts +38 -0
  469. package/dist/methods/getExamples.js +33 -0
  470. package/dist/methods/getExamples.js.map +1 -0
  471. package/dist/methods/getFallback.d.ts +17 -0
  472. package/dist/methods/getFallback.js +19 -0
  473. package/dist/methods/getFallback.js.map +1 -0
  474. package/dist/methods/getFallbacks.d.ts +15 -0
  475. package/dist/methods/getFallbacks.js +31 -0
  476. package/dist/methods/getFallbacks.js.map +1 -0
  477. package/dist/methods/getFallbacksAsync.d.ts +15 -0
  478. package/dist/methods/getFallbacksAsync.js +30 -0
  479. package/dist/methods/getFallbacksAsync.js.map +1 -0
  480. package/dist/methods/getMetadata.d.ts +45 -0
  481. package/dist/methods/getMetadata.js +33 -0
  482. package/dist/methods/getMetadata.js.map +1 -0
  483. package/dist/methods/getTitle.d.ts +27 -0
  484. package/dist/methods/getTitle.js +19 -0
  485. package/dist/methods/getTitle.js.map +1 -0
  486. package/dist/methods/index.d.ts +41 -0
  487. package/dist/methods/index.js +42 -0
  488. package/dist/methods/index.js.map +1 -0
  489. package/dist/methods/is.d.ts +11 -0
  490. package/dist/methods/is.js +14 -0
  491. package/dist/methods/is.js.map +1 -0
  492. package/dist/methods/keyof.d.ts +32 -0
  493. package/dist/methods/keyof.js +6 -0
  494. package/dist/methods/keyof.js.map +1 -0
  495. package/dist/methods/message.d.ts +10 -0
  496. package/dist/methods/message.js +22 -0
  497. package/dist/methods/message.js.map +1 -0
  498. package/dist/methods/omit.d.ts +277 -0
  499. package/dist/methods/omit.js +33 -0
  500. package/dist/methods/omit.js.map +1 -0
  501. package/dist/methods/parse.d.ts +11 -0
  502. package/dist/methods/parse.js +19 -0
  503. package/dist/methods/parse.js.map +1 -0
  504. package/dist/methods/parseAsync.d.ts +11 -0
  505. package/dist/methods/parseAsync.js +19 -0
  506. package/dist/methods/parseAsync.js.map +1 -0
  507. package/dist/methods/parser.d.ts +35 -0
  508. package/dist/methods/parser.js +11 -0
  509. package/dist/methods/parser.js.map +1 -0
  510. package/dist/methods/parserAsync.d.ts +35 -0
  511. package/dist/methods/parserAsync.js +11 -0
  512. package/dist/methods/parserAsync.js.map +1 -0
  513. package/dist/methods/partial.d.ts +151 -0
  514. package/dist/methods/partial.js +23 -0
  515. package/dist/methods/partial.js.map +1 -0
  516. package/dist/methods/partialAsync.d.ts +151 -0
  517. package/dist/methods/partialAsync.js +23 -0
  518. package/dist/methods/partialAsync.js.map +1 -0
  519. package/dist/methods/pick.d.ts +277 -0
  520. package/dist/methods/pick.js +30 -0
  521. package/dist/methods/pick.js.map +1 -0
  522. package/dist/methods/pipe.d.ts +619 -0
  523. package/dist/methods/pipe.js +36 -0
  524. package/dist/methods/pipe.js.map +1 -0
  525. package/dist/methods/pipeAsync.d.ts +581 -0
  526. package/dist/methods/pipeAsync.js +37 -0
  527. package/dist/methods/pipeAsync.js.map +1 -0
  528. package/dist/methods/required.d.ts +171 -0
  529. package/dist/methods/required.js +26 -0
  530. package/dist/methods/required.js.map +1 -0
  531. package/dist/methods/requiredAsync.d.ts +171 -0
  532. package/dist/methods/requiredAsync.js +26 -0
  533. package/dist/methods/requiredAsync.js.map +1 -0
  534. package/dist/methods/safeParse.d.ts +12 -0
  535. package/dist/methods/safeParse.js +21 -0
  536. package/dist/methods/safeParse.js.map +1 -0
  537. package/dist/methods/safeParseAsync.d.ts +12 -0
  538. package/dist/methods/safeParseAsync.js +21 -0
  539. package/dist/methods/safeParseAsync.js.map +1 -0
  540. package/dist/methods/safeParser.d.ts +36 -0
  541. package/dist/methods/safeParser.js +11 -0
  542. package/dist/methods/safeParser.js.map +1 -0
  543. package/dist/methods/safeParserAsync.d.ts +36 -0
  544. package/dist/methods/safeParserAsync.js +11 -0
  545. package/dist/methods/safeParserAsync.js.map +1 -0
  546. package/dist/methods/summarize.d.ts +11 -0
  547. package/dist/methods/summarize.js +33 -0
  548. package/dist/methods/summarize.js.map +1 -0
  549. package/dist/methods/types/cache.d.ts +46 -0
  550. package/dist/methods/types/cache.js +2 -0
  551. package/dist/methods/types/cache.js.map +1 -0
  552. package/dist/methods/types/forward.d.ts +28 -0
  553. package/dist/methods/types/forward.js +2 -0
  554. package/dist/methods/types/forward.js.map +1 -0
  555. package/dist/methods/types/getDefaults.d.ts +15 -0
  556. package/dist/methods/types/getDefaults.js +2 -0
  557. package/dist/methods/types/getDefaults.js.map +1 -0
  558. package/dist/methods/types/getFallbacks.d.ts +15 -0
  559. package/dist/methods/types/getFallbacks.js +2 -0
  560. package/dist/methods/types/getFallbacks.js.map +1 -0
  561. package/dist/methods/types/index.d.ts +5 -0
  562. package/dist/methods/types/index.js +6 -0
  563. package/dist/methods/types/index.js.map +1 -0
  564. package/dist/methods/types/safeParse.d.ts +32 -0
  565. package/dist/methods/types/safeParse.js +2 -0
  566. package/dist/methods/types/safeParse.js.map +1 -0
  567. package/dist/methods/unwrap.d.ts +10 -0
  568. package/dist/methods/unwrap.js +12 -0
  569. package/dist/methods/unwrap.js.map +1 -0
  570. package/dist/regex.d.ts +151 -0
  571. package/dist/regex.js +159 -0
  572. package/dist/regex.js.map +1 -0
  573. package/dist/schemas/_merge.d.ts +22 -0
  574. package/dist/schemas/_merge.js +70 -0
  575. package/dist/schemas/_merge.js.map +1 -0
  576. package/dist/schemas/_subIssues.d.ts +11 -0
  577. package/dist/schemas/_subIssues.js +27 -0
  578. package/dist/schemas/_subIssues.js.map +1 -0
  579. package/dist/schemas/any.d.ts +28 -0
  580. package/dist/schemas/any.js +30 -0
  581. package/dist/schemas/any.js.map +1 -0
  582. package/dist/schemas/array.d.ts +44 -0
  583. package/dist/schemas/array.js +79 -0
  584. package/dist/schemas/array.js.map +1 -0
  585. package/dist/schemas/arrayAsync.d.ts +45 -0
  586. package/dist/schemas/arrayAsync.js +81 -0
  587. package/dist/schemas/arrayAsync.js.map +1 -0
  588. package/dist/schemas/bigint.d.ts +53 -0
  589. package/dist/schemas/bigint.js +27 -0
  590. package/dist/schemas/bigint.js.map +1 -0
  591. package/dist/schemas/blob.d.ts +53 -0
  592. package/dist/schemas/blob.js +27 -0
  593. package/dist/schemas/blob.js.map +1 -0
  594. package/dist/schemas/boolean.d.ts +53 -0
  595. package/dist/schemas/boolean.js +27 -0
  596. package/dist/schemas/boolean.js.map +1 -0
  597. package/dist/schemas/custom.d.ts +49 -0
  598. package/dist/schemas/custom.js +28 -0
  599. package/dist/schemas/custom.js.map +1 -0
  600. package/dist/schemas/customAsync.d.ts +50 -0
  601. package/dist/schemas/customAsync.js +28 -0
  602. package/dist/schemas/customAsync.js.map +1 -0
  603. package/dist/schemas/date.d.ts +53 -0
  604. package/dist/schemas/date.js +35 -0
  605. package/dist/schemas/date.js.map +1 -0
  606. package/dist/schemas/enum.d.ts +73 -0
  607. package/dist/schemas/enum.js +39 -0
  608. package/dist/schemas/enum.js.map +1 -0
  609. package/dist/schemas/exactOptional.d.ts +43 -0
  610. package/dist/schemas/exactOptional.js +20 -0
  611. package/dist/schemas/exactOptional.js.map +1 -0
  612. package/dist/schemas/exactOptionalAsync.d.ts +44 -0
  613. package/dist/schemas/exactOptionalAsync.js +20 -0
  614. package/dist/schemas/exactOptionalAsync.js.map +1 -0
  615. package/dist/schemas/file.d.ts +53 -0
  616. package/dist/schemas/file.js +27 -0
  617. package/dist/schemas/file.js.map +1 -0
  618. package/dist/schemas/function.d.ts +54 -0
  619. package/dist/schemas/function.js +28 -0
  620. package/dist/schemas/function.js.map +1 -0
  621. package/dist/schemas/index.d.ts +72 -0
  622. package/dist/schemas/index.js +73 -0
  623. package/dist/schemas/index.js.map +1 -0
  624. package/dist/schemas/instance.d.ts +60 -0
  625. package/dist/schemas/instance.js +28 -0
  626. package/dist/schemas/instance.js.map +1 -0
  627. package/dist/schemas/intersect.d.ts +40 -0
  628. package/dist/schemas/intersect.js +88 -0
  629. package/dist/schemas/intersect.js.map +1 -0
  630. package/dist/schemas/intersectAsync.d.ts +41 -0
  631. package/dist/schemas/intersectAsync.js +89 -0
  632. package/dist/schemas/intersectAsync.js.map +1 -0
  633. package/dist/schemas/lazy.d.ts +30 -0
  634. package/dist/schemas/lazy.js +26 -0
  635. package/dist/schemas/lazy.js.map +1 -0
  636. package/dist/schemas/lazyAsync.d.ts +31 -0
  637. package/dist/schemas/lazyAsync.js +26 -0
  638. package/dist/schemas/lazyAsync.js.map +1 -0
  639. package/dist/schemas/literal.d.ts +60 -0
  640. package/dist/schemas/literal.js +28 -0
  641. package/dist/schemas/literal.js.map +1 -0
  642. package/dist/schemas/looseObject.d.ts +48 -0
  643. package/dist/schemas/looseObject.js +132 -0
  644. package/dist/schemas/looseObject.js.map +1 -0
  645. package/dist/schemas/looseObjectAsync.d.ts +49 -0
  646. package/dist/schemas/looseObjectAsync.js +148 -0
  647. package/dist/schemas/looseObjectAsync.js.map +1 -0
  648. package/dist/schemas/looseTuple.d.ts +50 -0
  649. package/dist/schemas/looseTuple.js +86 -0
  650. package/dist/schemas/looseTuple.js.map +1 -0
  651. package/dist/schemas/looseTupleAsync.d.ts +51 -0
  652. package/dist/schemas/looseTupleAsync.js +89 -0
  653. package/dist/schemas/looseTupleAsync.js.map +1 -0
  654. package/dist/schemas/map.d.ts +50 -0
  655. package/dist/schemas/map.js +114 -0
  656. package/dist/schemas/map.js.map +1 -0
  657. package/dist/schemas/mapAsync.d.ts +51 -0
  658. package/dist/schemas/mapAsync.js +117 -0
  659. package/dist/schemas/mapAsync.js.map +1 -0
  660. package/dist/schemas/nan.d.ts +53 -0
  661. package/dist/schemas/nan.js +27 -0
  662. package/dist/schemas/nan.js.map +1 -0
  663. package/dist/schemas/never.d.ts +53 -0
  664. package/dist/schemas/never.js +21 -0
  665. package/dist/schemas/never.js.map +1 -0
  666. package/dist/schemas/nonNullable.d.ts +44 -0
  667. package/dist/schemas/nonNullable.js +31 -0
  668. package/dist/schemas/nonNullable.js.map +1 -0
  669. package/dist/schemas/nonNullableAsync.d.ts +45 -0
  670. package/dist/schemas/nonNullableAsync.js +31 -0
  671. package/dist/schemas/nonNullableAsync.js.map +1 -0
  672. package/dist/schemas/nonNullish.d.ts +44 -0
  673. package/dist/schemas/nonNullish.js +31 -0
  674. package/dist/schemas/nonNullish.js.map +1 -0
  675. package/dist/schemas/nonNullishAsync.d.ts +45 -0
  676. package/dist/schemas/nonNullishAsync.js +31 -0
  677. package/dist/schemas/nonNullishAsync.js.map +1 -0
  678. package/dist/schemas/nonOptional.d.ts +44 -0
  679. package/dist/schemas/nonOptional.js +31 -0
  680. package/dist/schemas/nonOptional.js.map +1 -0
  681. package/dist/schemas/nonOptionalAsync.d.ts +45 -0
  682. package/dist/schemas/nonOptionalAsync.js +31 -0
  683. package/dist/schemas/nonOptionalAsync.js.map +1 -0
  684. package/dist/schemas/null.d.ts +54 -0
  685. package/dist/schemas/null.js +28 -0
  686. package/dist/schemas/null.js.map +1 -0
  687. package/dist/schemas/nullable.d.ts +44 -0
  688. package/dist/schemas/nullable.js +36 -0
  689. package/dist/schemas/nullable.js.map +1 -0
  690. package/dist/schemas/nullableAsync.d.ts +45 -0
  691. package/dist/schemas/nullableAsync.js +36 -0
  692. package/dist/schemas/nullableAsync.js.map +1 -0
  693. package/dist/schemas/nullish.d.ts +44 -0
  694. package/dist/schemas/nullish.js +37 -0
  695. package/dist/schemas/nullish.js.map +1 -0
  696. package/dist/schemas/nullishAsync.d.ts +45 -0
  697. package/dist/schemas/nullishAsync.js +37 -0
  698. package/dist/schemas/nullishAsync.js.map +1 -0
  699. package/dist/schemas/number.d.ts +53 -0
  700. package/dist/schemas/number.js +27 -0
  701. package/dist/schemas/number.js.map +1 -0
  702. package/dist/schemas/object.d.ts +54 -0
  703. package/dist/schemas/object.js +122 -0
  704. package/dist/schemas/object.js.map +1 -0
  705. package/dist/schemas/objectAsync.d.ts +55 -0
  706. package/dist/schemas/objectAsync.js +138 -0
  707. package/dist/schemas/objectAsync.js.map +1 -0
  708. package/dist/schemas/objectWithRest.d.ts +54 -0
  709. package/dist/schemas/objectWithRest.js +174 -0
  710. package/dist/schemas/objectWithRest.js.map +1 -0
  711. package/dist/schemas/objectWithRestAsync.d.ts +55 -0
  712. package/dist/schemas/objectWithRestAsync.js +195 -0
  713. package/dist/schemas/objectWithRestAsync.js.map +1 -0
  714. package/dist/schemas/optional.d.ts +44 -0
  715. package/dist/schemas/optional.js +36 -0
  716. package/dist/schemas/optional.js.map +1 -0
  717. package/dist/schemas/optionalAsync.d.ts +45 -0
  718. package/dist/schemas/optionalAsync.js +36 -0
  719. package/dist/schemas/optionalAsync.js.map +1 -0
  720. package/dist/schemas/picklist.d.ts +60 -0
  721. package/dist/schemas/picklist.js +29 -0
  722. package/dist/schemas/picklist.js.map +1 -0
  723. package/dist/schemas/promise.d.ts +53 -0
  724. package/dist/schemas/promise.js +27 -0
  725. package/dist/schemas/promise.js.map +1 -0
  726. package/dist/schemas/record.d.ts +50 -0
  727. package/dist/schemas/record.js +117 -0
  728. package/dist/schemas/record.js.map +1 -0
  729. package/dist/schemas/recordAsync.d.ts +51 -0
  730. package/dist/schemas/recordAsync.js +118 -0
  731. package/dist/schemas/recordAsync.js.map +1 -0
  732. package/dist/schemas/set.d.ts +44 -0
  733. package/dist/schemas/set.js +78 -0
  734. package/dist/schemas/set.js.map +1 -0
  735. package/dist/schemas/setAsync.d.ts +45 -0
  736. package/dist/schemas/setAsync.js +82 -0
  737. package/dist/schemas/setAsync.js.map +1 -0
  738. package/dist/schemas/strictObject.d.ts +44 -0
  739. package/dist/schemas/strictObject.js +149 -0
  740. package/dist/schemas/strictObject.js.map +1 -0
  741. package/dist/schemas/strictObjectAsync.d.ts +45 -0
  742. package/dist/schemas/strictObjectAsync.js +165 -0
  743. package/dist/schemas/strictObjectAsync.js.map +1 -0
  744. package/dist/schemas/strictTuple.d.ts +44 -0
  745. package/dist/schemas/strictTuple.js +101 -0
  746. package/dist/schemas/strictTuple.js.map +1 -0
  747. package/dist/schemas/strictTupleAsync.d.ts +45 -0
  748. package/dist/schemas/strictTupleAsync.js +104 -0
  749. package/dist/schemas/strictTupleAsync.js.map +1 -0
  750. package/dist/schemas/string.d.ts +53 -0
  751. package/dist/schemas/string.js +27 -0
  752. package/dist/schemas/string.js.map +1 -0
  753. package/dist/schemas/symbol.d.ts +53 -0
  754. package/dist/schemas/symbol.js +27 -0
  755. package/dist/schemas/symbol.js.map +1 -0
  756. package/dist/schemas/tuple.d.ts +54 -0
  757. package/dist/schemas/tuple.js +79 -0
  758. package/dist/schemas/tuple.js.map +1 -0
  759. package/dist/schemas/tupleAsync.d.ts +55 -0
  760. package/dist/schemas/tupleAsync.js +82 -0
  761. package/dist/schemas/tupleAsync.js.map +1 -0
  762. package/dist/schemas/tupleWithRest.d.ts +56 -0
  763. package/dist/schemas/tupleWithRest.js +126 -0
  764. package/dist/schemas/tupleWithRest.js.map +1 -0
  765. package/dist/schemas/tupleWithRestAsync.d.ts +57 -0
  766. package/dist/schemas/tupleWithRestAsync.js +142 -0
  767. package/dist/schemas/tupleWithRestAsync.js.map +1 -0
  768. package/dist/schemas/types/array.d.ts +18 -0
  769. package/dist/schemas/types/array.js +2 -0
  770. package/dist/schemas/types/array.js.map +1 -0
  771. package/dist/schemas/types/custom.d.ts +18 -0
  772. package/dist/schemas/types/custom.js +2 -0
  773. package/dist/schemas/types/custom.js.map +1 -0
  774. package/dist/schemas/types/index.d.ts +23 -0
  775. package/dist/schemas/types/index.js +24 -0
  776. package/dist/schemas/types/index.js.map +1 -0
  777. package/dist/schemas/types/intersect.d.ts +51 -0
  778. package/dist/schemas/types/intersect.js +2 -0
  779. package/dist/schemas/types/intersect.js.map +1 -0
  780. package/dist/schemas/types/looseObject.d.ts +18 -0
  781. package/dist/schemas/types/looseObject.js +2 -0
  782. package/dist/schemas/types/looseObject.js.map +1 -0
  783. package/dist/schemas/types/looseTuple.d.ts +18 -0
  784. package/dist/schemas/types/looseTuple.js +2 -0
  785. package/dist/schemas/types/looseTuple.js.map +1 -0
  786. package/dist/schemas/types/map.d.ts +26 -0
  787. package/dist/schemas/types/map.js +2 -0
  788. package/dist/schemas/types/map.js.map +1 -0
  789. package/dist/schemas/types/nonNullable.d.ts +37 -0
  790. package/dist/schemas/types/nonNullable.js +2 -0
  791. package/dist/schemas/types/nonNullable.js.map +1 -0
  792. package/dist/schemas/types/nonNullish.d.ts +37 -0
  793. package/dist/schemas/types/nonNullish.js +2 -0
  794. package/dist/schemas/types/nonNullish.js.map +1 -0
  795. package/dist/schemas/types/nonOptional.d.ts +37 -0
  796. package/dist/schemas/types/nonOptional.js +2 -0
  797. package/dist/schemas/types/nonOptional.js.map +1 -0
  798. package/dist/schemas/types/nullable.d.ts +5 -0
  799. package/dist/schemas/types/nullable.js +2 -0
  800. package/dist/schemas/types/nullable.js.map +1 -0
  801. package/dist/schemas/types/nullish.d.ts +5 -0
  802. package/dist/schemas/types/nullish.js +2 -0
  803. package/dist/schemas/types/nullish.js.map +1 -0
  804. package/dist/schemas/types/object.d.ts +18 -0
  805. package/dist/schemas/types/object.js +2 -0
  806. package/dist/schemas/types/object.js.map +1 -0
  807. package/dist/schemas/types/objectWithRest.d.ts +18 -0
  808. package/dist/schemas/types/objectWithRest.js +2 -0
  809. package/dist/schemas/types/objectWithRest.js.map +1 -0
  810. package/dist/schemas/types/optional.d.ts +5 -0
  811. package/dist/schemas/types/optional.js +2 -0
  812. package/dist/schemas/types/optional.js.map +1 -0
  813. package/dist/schemas/types/record.d.ts +56 -0
  814. package/dist/schemas/types/record.js +2 -0
  815. package/dist/schemas/types/record.js.map +1 -0
  816. package/dist/schemas/types/set.d.ts +26 -0
  817. package/dist/schemas/types/set.js +2 -0
  818. package/dist/schemas/types/set.js.map +1 -0
  819. package/dist/schemas/types/strictObject.d.ts +18 -0
  820. package/dist/schemas/types/strictObject.js +2 -0
  821. package/dist/schemas/types/strictObject.js.map +1 -0
  822. package/dist/schemas/types/strictTuple.d.ts +18 -0
  823. package/dist/schemas/types/strictTuple.js +2 -0
  824. package/dist/schemas/types/strictTuple.js.map +1 -0
  825. package/dist/schemas/types/tuple.d.ts +18 -0
  826. package/dist/schemas/types/tuple.js +2 -0
  827. package/dist/schemas/types/tuple.js.map +1 -0
  828. package/dist/schemas/types/tupleWithRest.d.ts +18 -0
  829. package/dist/schemas/types/tupleWithRest.js +2 -0
  830. package/dist/schemas/types/tupleWithRest.js.map +1 -0
  831. package/dist/schemas/types/undefinedable.d.ts +5 -0
  832. package/dist/schemas/types/undefinedable.js +2 -0
  833. package/dist/schemas/types/undefinedable.js.map +1 -0
  834. package/dist/schemas/types/union.d.ts +22 -0
  835. package/dist/schemas/types/union.js +2 -0
  836. package/dist/schemas/types/union.js.map +1 -0
  837. package/dist/schemas/types/variant.d.ts +83 -0
  838. package/dist/schemas/types/variant.js +2 -0
  839. package/dist/schemas/types/variant.js.map +1 -0
  840. package/dist/schemas/undefined.d.ts +54 -0
  841. package/dist/schemas/undefined.js +28 -0
  842. package/dist/schemas/undefined.js.map +1 -0
  843. package/dist/schemas/undefinedable.d.ts +44 -0
  844. package/dist/schemas/undefinedable.js +36 -0
  845. package/dist/schemas/undefinedable.js.map +1 -0
  846. package/dist/schemas/undefinedableAsync.d.ts +45 -0
  847. package/dist/schemas/undefinedableAsync.js +36 -0
  848. package/dist/schemas/undefinedableAsync.js.map +1 -0
  849. package/dist/schemas/union.d.ts +44 -0
  850. package/dist/schemas/union.js +91 -0
  851. package/dist/schemas/union.js.map +1 -0
  852. package/dist/schemas/unionAsync.d.ts +45 -0
  853. package/dist/schemas/unionAsync.js +91 -0
  854. package/dist/schemas/unionAsync.js.map +1 -0
  855. package/dist/schemas/unknown.d.ts +24 -0
  856. package/dist/schemas/unknown.js +26 -0
  857. package/dist/schemas/unknown.js.map +1 -0
  858. package/dist/schemas/variant.d.ts +50 -0
  859. package/dist/schemas/variant.js +129 -0
  860. package/dist/schemas/variant.js.map +1 -0
  861. package/dist/schemas/variantAsync.d.ts +51 -0
  862. package/dist/schemas/variantAsync.js +129 -0
  863. package/dist/schemas/variantAsync.js.map +1 -0
  864. package/dist/schemas/void.d.ts +54 -0
  865. package/dist/schemas/void.js +28 -0
  866. package/dist/schemas/void.js.map +1 -0
  867. package/dist/storages/globalConfig.d.ts +23 -0
  868. package/dist/storages/globalConfig.js +35 -0
  869. package/dist/storages/globalConfig.js.map +1 -0
  870. package/dist/storages/globalMessage.d.ts +22 -0
  871. package/dist/storages/globalMessage.js +33 -0
  872. package/dist/storages/globalMessage.js.map +1 -0
  873. package/dist/storages/index.d.ts +4 -0
  874. package/dist/storages/index.js +5 -0
  875. package/dist/storages/index.js.map +1 -0
  876. package/dist/storages/schemaMessage.d.ts +22 -0
  877. package/dist/storages/schemaMessage.js +33 -0
  878. package/dist/storages/schemaMessage.js.map +1 -0
  879. package/dist/storages/specificMessage.d.ts +30 -0
  880. package/dist/storages/specificMessage.js +38 -0
  881. package/dist/storages/specificMessage.js.map +1 -0
  882. package/dist/types/config.d.ts +23 -0
  883. package/dist/types/config.js +2 -0
  884. package/dist/types/config.js.map +1 -0
  885. package/dist/types/dataset.d.ts +73 -0
  886. package/dist/types/dataset.js +2 -0
  887. package/dist/types/dataset.js.map +1 -0
  888. package/dist/types/index.d.ts +14 -0
  889. package/dist/types/index.js +15 -0
  890. package/dist/types/index.js.map +1 -0
  891. package/dist/types/infer.d.ts +17 -0
  892. package/dist/types/infer.js +2 -0
  893. package/dist/types/infer.js.map +1 -0
  894. package/dist/types/issue.d.ts +208 -0
  895. package/dist/types/issue.js +2 -0
  896. package/dist/types/issue.js.map +1 -0
  897. package/dist/types/metadata.d.ts +31 -0
  898. package/dist/types/metadata.js +2 -0
  899. package/dist/types/metadata.js.map +1 -0
  900. package/dist/types/object.d.ts +87 -0
  901. package/dist/types/object.js +2 -0
  902. package/dist/types/object.js.map +1 -0
  903. package/dist/types/other.d.ts +22 -0
  904. package/dist/types/other.js +2 -0
  905. package/dist/types/other.js.map +1 -0
  906. package/dist/types/pipe.d.ts +43 -0
  907. package/dist/types/pipe.js +2 -0
  908. package/dist/types/pipe.js.map +1 -0
  909. package/dist/types/schema.d.ts +88 -0
  910. package/dist/types/schema.js +2 -0
  911. package/dist/types/schema.js.map +1 -0
  912. package/dist/types/standard.d.ts +82 -0
  913. package/dist/types/standard.js +2 -0
  914. package/dist/types/standard.js.map +1 -0
  915. package/dist/types/transformation.d.ts +77 -0
  916. package/dist/types/transformation.js +2 -0
  917. package/dist/types/transformation.js.map +1 -0
  918. package/dist/types/tuple.d.ts +28 -0
  919. package/dist/types/tuple.js +2 -0
  920. package/dist/types/tuple.js.map +1 -0
  921. package/dist/types/utils.d.ts +81 -0
  922. package/dist/types/utils.js +2 -0
  923. package/dist/types/utils.js.map +1 -0
  924. package/dist/types/validation.d.ts +81 -0
  925. package/dist/types/validation.js +2 -0
  926. package/dist/types/validation.js.map +1 -0
  927. package/dist/utils/ValidationError.d.ts +41 -0
  928. package/dist/utils/ValidationError.js +46 -0
  929. package/dist/utils/ValidationError.js.map +1 -0
  930. package/dist/utils/_addIssue.d.ts +35 -0
  931. package/dist/utils/_addIssue.js +67 -0
  932. package/dist/utils/_addIssue.js.map +1 -0
  933. package/dist/utils/_cloneDataset.d.ts +14 -0
  934. package/dist/utils/_cloneDataset.js +24 -0
  935. package/dist/utils/_cloneDataset.js.map +1 -0
  936. package/dist/utils/_getByteCount.d.ts +10 -0
  937. package/dist/utils/_getByteCount.js +18 -0
  938. package/dist/utils/_getByteCount.js.map +1 -0
  939. package/dist/utils/_getGraphemeCount.d.ts +10 -0
  940. package/dist/utils/_getGraphemeCount.js +24 -0
  941. package/dist/utils/_getGraphemeCount.js.map +1 -0
  942. package/dist/utils/_getLastMetadata.d.ts +30 -0
  943. package/dist/utils/_getLastMetadata.js +34 -0
  944. package/dist/utils/_getLastMetadata.js.map +1 -0
  945. package/dist/utils/_getStandardProps.d.ts +9 -0
  946. package/dist/utils/_getStandardProps.js +19 -0
  947. package/dist/utils/_getStandardProps.js.map +1 -0
  948. package/dist/utils/_getWordCount.d.ts +11 -0
  949. package/dist/utils/_getWordCount.js +29 -0
  950. package/dist/utils/_getWordCount.js.map +1 -0
  951. package/dist/utils/_isLuhnAlgo.d.ts +10 -0
  952. package/dist/utils/_isLuhnAlgo.js +31 -0
  953. package/dist/utils/_isLuhnAlgo.js.map +1 -0
  954. package/dist/utils/_isValidObjectKey.d.ts +12 -0
  955. package/dist/utils/_isValidObjectKey.js +19 -0
  956. package/dist/utils/_isValidObjectKey.js.map +1 -0
  957. package/dist/utils/_joinExpects.d.ts +11 -0
  958. package/dist/utils/_joinExpects.js +22 -0
  959. package/dist/utils/_joinExpects.js.map +1 -0
  960. package/dist/utils/_stringify.d.ts +10 -0
  961. package/dist/utils/_stringify.js +25 -0
  962. package/dist/utils/_stringify.js.map +1 -0
  963. package/dist/utils/ajv.d.ts +25 -0
  964. package/dist/utils/ajv.js +233 -0
  965. package/dist/utils/ajv.js.map +1 -0
  966. package/dist/utils/chainConstruct.d.ts +58 -0
  967. package/dist/utils/chainConstruct.js +136 -0
  968. package/dist/utils/chainConstruct.js.map +1 -0
  969. package/dist/utils/entriesFromList.d.ts +10 -0
  970. package/dist/utils/entriesFromList.js +18 -0
  971. package/dist/utils/entriesFromList.js.map +1 -0
  972. package/dist/utils/entriesFromObjects.d.ts +26 -0
  973. package/dist/utils/entriesFromObjects.js +10 -0
  974. package/dist/utils/entriesFromObjects.js.map +1 -0
  975. package/dist/utils/formatIssues.d.ts +13 -0
  976. package/dist/utils/formatIssues.js +35 -0
  977. package/dist/utils/formatIssues.js.map +1 -0
  978. package/dist/utils/getDotPath.d.ts +17 -0
  979. package/dist/utils/getDotPath.js +22 -0
  980. package/dist/utils/getDotPath.js.map +1 -0
  981. package/dist/utils/index.d.ts +23 -0
  982. package/dist/utils/index.js +24 -0
  983. package/dist/utils/index.js.map +1 -0
  984. package/dist/utils/isOfKind.d.ts +13 -0
  985. package/dist/utils/isOfKind.js +13 -0
  986. package/dist/utils/isOfKind.js.map +1 -0
  987. package/dist/utils/isOfType.d.ts +13 -0
  988. package/dist/utils/isOfType.js +13 -0
  989. package/dist/utils/isOfType.js.map +1 -0
  990. package/dist/utils/isValidationError.d.ts +10 -0
  991. package/dist/utils/isValidationError.js +13 -0
  992. package/dist/utils/isValidationError.js.map +1 -0
  993. package/dist/utils/jsonSchema.d.ts +10 -0
  994. package/dist/utils/jsonSchema.js +130 -0
  995. package/dist/utils/jsonSchema.js.map +1 -0
  996. package/dist/utils/schemaConstructors.d.ts +63 -0
  997. package/dist/utils/schemaConstructors.js +84 -0
  998. package/dist/utils/schemaConstructors.js.map +1 -0
  999. package/package.json +48 -4
@@ -0,0 +1,27 @@
1
+ import type { BaseIssue, BaseSchema, BaseSchemaAsync, InferOutput } from '../types/index.js';
2
+ type AnySchema = BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>;
3
+ export interface HttpValidationOptions {
4
+ maxBytes?: number;
5
+ maxQueryFields?: number;
6
+ maxQueryLength?: number;
7
+ }
8
+ export declare class HttpValidationError extends Error {
9
+ readonly status: 400 | 413 | 415 | 422;
10
+ readonly issues?: readonly {
11
+ path: string;
12
+ message: string;
13
+ }[] | undefined;
14
+ constructor(status: 400 | 413 | 415 | 422, message: string, issues?: readonly {
15
+ path: string;
16
+ message: string;
17
+ }[] | undefined);
18
+ toResponse(): Response;
19
+ }
20
+ /** Reads request bodies incrementally and enforces a hard byte limit before JSON parsing. */
21
+ export declare function readJsonBody(request: Request, options?: HttpValidationOptions): Promise<unknown>;
22
+ /** Validate JSON using sync or async schemas with a uniform typed result. */
23
+ export declare function parseJsonRequest<TSchema extends AnySchema>(schema: TSchema, request: Request, options?: HttpValidationOptions): Promise<InferOutput<TSchema>>;
24
+ export declare function parseQuery<TSchema extends AnySchema>(schema: TSchema, input: string | URL | Request, options?: HttpValidationOptions): Promise<InferOutput<TSchema>>;
25
+ /** Framework-neutral validation middleware for Fetch-compatible handlers. */
26
+ export declare function validatedJsonHandler<TSchema extends AnySchema>(schema: TSchema, handler: (body: InferOutput<TSchema>, request: Request) => Response | Promise<Response> | unknown, options?: HttpValidationOptions): (request: Request) => Promise<Response>;
27
+ export {};
@@ -0,0 +1,124 @@
1
+ import { safeParseAsync } from '../methods/safeParseAsync.js';
2
+ export class HttpValidationError extends Error {
3
+ status;
4
+ issues;
5
+ constructor(status, message, issues) {
6
+ super(message);
7
+ this.status = status;
8
+ this.issues = issues;
9
+ this.name = 'HttpValidationError';
10
+ }
11
+ toResponse() {
12
+ return Response.json({ error: this.message, issues: this.issues ?? [] }, {
13
+ status: this.status, headers: { 'Cache-Control': 'no-store' }
14
+ });
15
+ }
16
+ }
17
+ const checkLimit = (value, fallback) => {
18
+ const limit = value ?? fallback;
19
+ if (!Number.isSafeInteger(limit) || limit <= 0)
20
+ throw new Error('Invalid input size limit');
21
+ return limit;
22
+ };
23
+ /** Reads request bodies incrementally and enforces a hard byte limit before JSON parsing. */
24
+ export async function readJsonBody(request, options = {}) {
25
+ const max = checkLimit(options.maxBytes, 1024 * 1024);
26
+ const contentType = request.headers.get('content-type')?.split(';')[0]?.trim().toLowerCase();
27
+ if (contentType !== 'application/json' && !(contentType?.startsWith('application/') && contentType.endsWith('+json')))
28
+ throw new HttpValidationError(415, 'Expected a JSON request');
29
+ const declared = request.headers.get('content-length');
30
+ if (declared !== null && (!/^\d+$/.test(declared) || Number(declared) > max))
31
+ throw new HttpValidationError(413, 'Request body too large');
32
+ const reader = request.body?.getReader();
33
+ if (!reader)
34
+ throw new HttpValidationError(400, 'Missing JSON request body');
35
+ const chunks = [];
36
+ let bytes = 0;
37
+ try {
38
+ while (true) {
39
+ const { done, value } = await reader.read();
40
+ if (done)
41
+ break;
42
+ bytes += value.byteLength;
43
+ if (bytes > max)
44
+ throw new HttpValidationError(413, 'Request body too large');
45
+ chunks.push(value);
46
+ }
47
+ }
48
+ catch (error) {
49
+ try {
50
+ await reader.cancel();
51
+ }
52
+ catch { /* connection may already be closed */ }
53
+ throw error;
54
+ }
55
+ finally {
56
+ reader.releaseLock();
57
+ }
58
+ if (!bytes)
59
+ throw new HttpValidationError(400, 'Empty JSON request body');
60
+ const body = new Uint8Array(bytes);
61
+ let offset = 0;
62
+ for (const chunk of chunks) {
63
+ body.set(chunk, offset);
64
+ offset += chunk.length;
65
+ }
66
+ try {
67
+ return JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(body));
68
+ }
69
+ catch {
70
+ throw new HttpValidationError(400, 'Malformed JSON request body');
71
+ }
72
+ }
73
+ function formatIssues(issues) {
74
+ return issues.slice(0, 20).map(issue => ({
75
+ message: String(issue.message).slice(0, 300),
76
+ path: (issue.path ?? []).map((part) => String(part.key ?? '')).join('.').slice(0, 300)
77
+ }));
78
+ }
79
+ /** Validate JSON using sync or async schemas with a uniform typed result. */
80
+ export async function parseJsonRequest(schema, request, options = {}) {
81
+ const json = await readJsonBody(request, options);
82
+ const checked = await safeParseAsync(schema, json);
83
+ if (!checked.success)
84
+ throw new HttpValidationError(422, 'Request validation failed', formatIssues(checked.issues ?? []));
85
+ return checked.output;
86
+ }
87
+ export async function parseQuery(schema, input, options = {}) {
88
+ const urlText = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
89
+ if (urlText.length > checkLimit(options.maxQueryLength, 16384))
90
+ throw new HttpValidationError(413, 'Query URL too long');
91
+ const url = new URL(urlText);
92
+ const max = checkLimit(options.maxQueryFields, 200);
93
+ const query = Object.create(null);
94
+ let fields = 0;
95
+ for (const [key, value] of url.searchParams) {
96
+ if (++fields > max)
97
+ throw new HttpValidationError(413, 'Too many query parameters');
98
+ if (['__proto__', 'constructor', 'prototype'].includes(key))
99
+ throw new HttpValidationError(400, 'Unsafe query parameter');
100
+ const prior = query[key];
101
+ query[key] = prior === undefined ? value : Array.isArray(prior) ? [...prior, value] : [prior, value];
102
+ }
103
+ const checked = await safeParseAsync(schema, query);
104
+ if (!checked.success)
105
+ throw new HttpValidationError(422, 'Query validation failed', formatIssues(checked.issues ?? []));
106
+ return checked.output;
107
+ }
108
+ /** Framework-neutral validation middleware for Fetch-compatible handlers. */
109
+ export function validatedJsonHandler(schema, handler, options = {}) {
110
+ return async (request) => {
111
+ let body;
112
+ try {
113
+ body = await parseJsonRequest(schema, request, options);
114
+ }
115
+ catch (error) {
116
+ if (error instanceof HttpValidationError)
117
+ return error.toResponse();
118
+ throw error;
119
+ }
120
+ const result = await handler(body, request);
121
+ return result instanceof Response ? result : result === undefined ? new Response(null, { status: 204 }) : Response.json(result);
122
+ };
123
+ }
124
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/integrations/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { BaseIssue, Config } from '../types/index.js';
2
+ import type { Cache, CacheConfig } from './types/cache.js';
3
+ /**
4
+ * Efficient LRU cache using Map iteration order.
5
+ */
6
+ declare class _LruCache<TValue> implements Cache<TValue> {
7
+ #private;
8
+ private store;
9
+ private refIds;
10
+ private refCount;
11
+ private readonly maxSize;
12
+ private readonly maxAge;
13
+ private readonly hasMaxAge;
14
+ constructor(config?: CacheConfig);
15
+ /**
16
+ * Creates a cache key from input and config.
17
+ *
18
+ * @param input The input value.
19
+ * @param config The parse configuration.
20
+ *
21
+ * @returns The cache key.
22
+ */
23
+ key(input: unknown, config?: Config<BaseIssue<unknown>>): string;
24
+ /**
25
+ * Gets a value from the cache by key.
26
+ *
27
+ * @param key The cache key.
28
+ *
29
+ * @returns The cached value.
30
+ */
31
+ get(key: string): TValue | undefined;
32
+ /**
33
+ * Sets a value in the cache by key.
34
+ *
35
+ * @param key The cache key.
36
+ * @param value The cached value.
37
+ */
38
+ set(key: string, value: TValue): void;
39
+ /**
40
+ * Clears all entries from the cache.
41
+ */
42
+ clear(): void;
43
+ }
44
+ export { _LruCache };
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Efficient LRU cache using Map iteration order.
3
+ */
4
+ class _LruCache {
5
+ // Stores [value, timestamp] tuples to avoid object allocation overhead
6
+ store;
7
+ // Assign stable IDs to references
8
+ refIds;
9
+ // Counter for tracking references
10
+ refCount = 0;
11
+ // Cache configuration
12
+ maxSize;
13
+ maxAge;
14
+ hasMaxAge;
15
+ constructor(config) {
16
+ this.maxSize = config?.maxSize ?? 1000;
17
+ this.maxAge = config?.maxAge ?? Infinity;
18
+ this.hasMaxAge = isFinite(this.maxAge);
19
+ }
20
+ /**
21
+ * Stringifies an unknown input to a cache key component.
22
+ *
23
+ * @param input The unknown input.
24
+ *
25
+ * @returns A cache key component.
26
+ */
27
+ #stringify(input) {
28
+ const type = typeof input;
29
+ if (type === 'string') {
30
+ return `"${input}"`;
31
+ }
32
+ if (type === 'number' || type === 'boolean') {
33
+ return `${input}`;
34
+ }
35
+ if (type === 'bigint') {
36
+ return `${input}n`;
37
+ }
38
+ if (type === 'object' || type === 'function') {
39
+ if (input) {
40
+ this.refIds ??= new WeakMap();
41
+ let id = this.refIds.get(input);
42
+ if (!id) {
43
+ id = ++this.refCount;
44
+ this.refIds.set(input, id);
45
+ }
46
+ return `#${id}`;
47
+ }
48
+ return 'null';
49
+ }
50
+ return type;
51
+ }
52
+ /**
53
+ * Creates a cache key from input and config.
54
+ *
55
+ * @param input The input value.
56
+ * @param config The parse configuration.
57
+ *
58
+ * @returns The cache key.
59
+ */
60
+ key(input, config = {}) {
61
+ return `${this.#stringify(input)}|${this.#stringify(config.lang)}|${this.#stringify(config.message)}|${this.#stringify(config.abortEarly)}|${this.#stringify(config.abortPipeEarly)}`;
62
+ }
63
+ /**
64
+ * Gets a value from the cache by key.
65
+ *
66
+ * @param key The cache key.
67
+ *
68
+ * @returns The cached value.
69
+ */
70
+ get(key) {
71
+ if (!this.store)
72
+ return undefined;
73
+ // Get entry tuple [value, timestamp]
74
+ const entry = this.store.get(key);
75
+ // Return undefined if not found
76
+ if (!entry)
77
+ return undefined;
78
+ // Delete stale entry if maxAge is exceeded
79
+ if (this.hasMaxAge && Date.now() - entry[1] > this.maxAge) {
80
+ this.store.delete(key);
81
+ return undefined;
82
+ }
83
+ // Reorder by deleting and re-inserting at end (most recently used)
84
+ this.store.delete(key);
85
+ this.store.set(key, entry);
86
+ // Return cached value
87
+ return entry[0];
88
+ }
89
+ /**
90
+ * Sets a value in the cache by key.
91
+ *
92
+ * @param key The cache key.
93
+ * @param value The cached value.
94
+ */
95
+ set(key, value) {
96
+ this.store ??= new Map();
97
+ // Delete first to ensure insertion at end for correct ordering
98
+ this.store.delete(key);
99
+ // Set value with current timestamp if maxAge is used
100
+ const timestamp = this.hasMaxAge ? Date.now() : 0;
101
+ this.store.set(key, [value, timestamp]);
102
+ // Evict oldest entry (first key) if over maxSize
103
+ if (this.store.size > this.maxSize) {
104
+ this.store.delete(this.store.keys().next().value);
105
+ }
106
+ }
107
+ /**
108
+ * Clears all entries from the cache.
109
+ */
110
+ clear() {
111
+ this.store?.clear();
112
+ }
113
+ }
114
+ export { _LruCache };
115
+ //# sourceMappingURL=_LruCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_LruCache.js","sourceRoot":"","sources":["../../src/methods/_LruCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { BaseIssue, BaseSchema, InferInput } from '../types/index.js';
2
+ /**
3
+ * Checks if the input matches the schema. As this is an assertion function, it
4
+ * can be used as a type guard.
5
+ *
6
+ * @param schema The schema to be used.
7
+ * @param input The input to be tested.
8
+ */
9
+ export declare function assert<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema, input: unknown): asserts input is InferInput<TSchema>;
@@ -0,0 +1,15 @@
1
+ import { ValidationError } from '../utils/index.js';
2
+ /**
3
+ * Checks if the input matches the schema. As this is an assertion function, it
4
+ * can be used as a type guard.
5
+ *
6
+ * @param schema The schema to be used.
7
+ * @param input The input to be tested.
8
+ */
9
+ export function assert(schema, input) {
10
+ const issues = schema['~run']({ value: input }, { abortEarly: true }).issues;
11
+ if (issues) {
12
+ throw new ValidationError(issues);
13
+ }
14
+ }
15
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/methods/assert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAEpB,MAAe,EAAE,KAAc;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC7E,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { OutputDataset } from '../types/index.js';
2
+ import type { BaseIssue, BaseSchema, InferIssue, InferOutput } from '../types/index.js';
3
+ import type { Cache, CacheConfig } from './types/cache.js';
4
+ /**
5
+ * Schema with cache type.
6
+ *
7
+ * @beta
8
+ */
9
+ export type SchemaWithCache<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, TCacheConfig extends CacheConfig | undefined> = TSchema & {
10
+ /**
11
+ * The cache config.
12
+ */
13
+ readonly cacheConfig: TCacheConfig;
14
+ /**
15
+ * The cache instance.
16
+ */
17
+ readonly cache: Cache<OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>>;
18
+ };
19
+ /**
20
+ * Caches the output of a schema.
21
+ *
22
+ * Hint: Primitive inputs are cached by value. Object and function inputs are
23
+ * cached by reference identity, so mutating input objects and reusing the same
24
+ * reference can return a stale cached dataset. Returned objects are also
25
+ * reused by reference, so mutating cached output can affect later cache hits.
26
+ *
27
+ * @param schema The schema to cache.
28
+ *
29
+ * @returns The cached schema.
30
+ *
31
+ * @beta
32
+ */
33
+ export declare function cache<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema): SchemaWithCache<TSchema, undefined>;
34
+ /**
35
+ * Caches the output of a schema.
36
+ *
37
+ * Hint: Primitive inputs are cached by value. Object and function inputs are
38
+ * cached by reference identity, so mutating input objects and reusing the same
39
+ * reference can return a stale cached dataset. Returned objects are also
40
+ * reused by reference, so mutating cached output can affect later cache hits.
41
+ *
42
+ * @param schema The schema to cache.
43
+ * @param config The cache config.
44
+ *
45
+ * @returns The cached schema.
46
+ *
47
+ * @beta
48
+ */
49
+ export declare function cache<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, const TCacheConfig extends CacheConfig | undefined>(schema: TSchema, config: TCacheConfig): SchemaWithCache<TSchema, TCacheConfig>;
@@ -0,0 +1,24 @@
1
+ import { _cloneDataset, _getStandardProps } from '../utils/index.js';
2
+ import { _LruCache } from './_LruCache.js';
3
+ // @__NO_SIDE_EFFECTS__
4
+ export function cache(schema, config) {
5
+ return {
6
+ ...schema,
7
+ cacheConfig: config,
8
+ cache: new _LruCache(config),
9
+ get '~standard'() {
10
+ return _getStandardProps(this);
11
+ },
12
+ '~run'(dataset, runConfig) {
13
+ const key = this.cache.key(dataset.value, runConfig);
14
+ let outputDataset = this.cache.get(key);
15
+ if (!outputDataset) {
16
+ this.cache.set(key, (outputDataset = schema['~run'](dataset, runConfig)));
17
+ }
18
+ // Hint: We clone the dataset before returning it so downstream pipe items
19
+ // do not mutate the cached dataset wrapper or issues array.
20
+ return _cloneDataset(outputDataset);
21
+ },
22
+ };
23
+ }
24
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/methods/cache.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAiE3C,uBAAuB;AACvB,MAAM,UAAU,KAAK,CACnB,MAAwD,EACxD,MAAoB;IAKpB,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC;QAC5B,IAAI,WAAW;YACb,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,SAAS;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACrD,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,GAAG,EACH,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CACrD,CAAC;YACJ,CAAC;YACD,0EAA0E;YAC1E,4DAA4D;YAC5D,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,69 @@
1
+ import type { BaseIssue, BaseSchema, BaseSchemaAsync, Config, InferInput, InferIssue, InferOutput, OutputDataset, StandardProps, UnknownDataset } from '../types/index.js';
2
+ import type { Cache, CacheConfig } from './types/cache.js';
3
+ /**
4
+ * Schema with cache async type.
5
+ *
6
+ * @beta
7
+ */
8
+ export type SchemaWithCacheAsync<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, TCacheConfig extends CacheConfig | undefined> = Omit<TSchema, 'async' | '~standard' | '~run'> & {
9
+ /**
10
+ * Whether it's async.
11
+ */
12
+ readonly async: true;
13
+ /**
14
+ * The cache config.
15
+ */
16
+ readonly cacheConfig: TCacheConfig;
17
+ /**
18
+ * The cache instance.
19
+ */
20
+ readonly cache: Cache<OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>>;
21
+ /**
22
+ * The Standard Schema properties.
23
+ *
24
+ * @internal
25
+ */
26
+ readonly '~standard': StandardProps<InferInput<TSchema>, InferOutput<TSchema>>;
27
+ /**
28
+ * Parses unknown input values.
29
+ *
30
+ * @param dataset The input dataset.
31
+ * @param config The configuration.
32
+ *
33
+ * @returns The output dataset.
34
+ *
35
+ * @internal
36
+ */
37
+ readonly '~run': (dataset: UnknownDataset, config: Config<BaseIssue<unknown>>) => Promise<OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>>;
38
+ };
39
+ /**
40
+ * Caches the output of a schema.
41
+ *
42
+ * Hint: Primitive inputs are cached by value. Object and function inputs are
43
+ * cached by reference identity, so mutating input objects and reusing the same
44
+ * reference can return a stale cached dataset. Returned objects are also
45
+ * reused by reference, so mutating cached output can affect later cache hits.
46
+ *
47
+ * @param schema The schema to cache.
48
+ *
49
+ * @returns The cached schema.
50
+ *
51
+ * @beta
52
+ */
53
+ export declare function cacheAsync<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema): SchemaWithCacheAsync<TSchema, undefined>;
54
+ /**
55
+ * Caches the output of a schema.
56
+ *
57
+ * Hint: Primitive inputs are cached by value. Object and function inputs are
58
+ * cached by reference identity, so mutating input objects and reusing the same
59
+ * reference can return a stale cached dataset. Returned objects are also
60
+ * reused by reference, so mutating cached output can affect later cache hits.
61
+ *
62
+ * @param schema The schema to cache.
63
+ * @param config The cache config.
64
+ *
65
+ * @returns The cached schema.
66
+ *
67
+ * @beta
68
+ */
69
+ export declare function cacheAsync<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, const TCacheConfig extends CacheConfig | undefined>(schema: TSchema, config: TCacheConfig): SchemaWithCacheAsync<TSchema, TCacheConfig>;
@@ -0,0 +1,46 @@
1
+ import { _cloneDataset, _getStandardProps } from '../utils/index.js';
2
+ import { _LruCache } from './_LruCache.js';
3
+ // @__NO_SIDE_EFFECTS__
4
+ export function cacheAsync(schema, config) {
5
+ let activeRuns;
6
+ return {
7
+ ...schema,
8
+ async: true,
9
+ cacheConfig: config,
10
+ cache: new _LruCache(config),
11
+ get '~standard'() {
12
+ return _getStandardProps(this);
13
+ },
14
+ async '~run'(dataset, runConfig) {
15
+ // Create cache key based on input and config
16
+ const key = this.cache.key(dataset.value, runConfig);
17
+ // Check and return cached output if exists
18
+ const cached = this.cache.get(key);
19
+ if (cached) {
20
+ // Hint: We clone the dataset before returning it so downstream pipe
21
+ // items do not mutate the cached dataset wrapper or issues array.
22
+ return _cloneDataset(cached);
23
+ }
24
+ // If not cached, check if a matching run is already in progress
25
+ let promise = activeRuns?.get(key);
26
+ if (!promise) {
27
+ activeRuns ??= new Map();
28
+ promise = Promise.resolve(schema['~run'](dataset, runConfig));
29
+ activeRuns.set(key, promise);
30
+ }
31
+ // Await pending promise, cache output and return
32
+ try {
33
+ const outputDataset = await promise;
34
+ this.cache.set(key, outputDataset);
35
+ // Hint: We clone the dataset before returning it so downstream pipe
36
+ // items do not mutate the cached dataset wrapper or issues array.
37
+ return _cloneDataset(outputDataset);
38
+ // Cleanup active runs map
39
+ }
40
+ finally {
41
+ activeRuns?.delete(key);
42
+ }
43
+ },
44
+ };
45
+ }
46
+ //# sourceMappingURL=cacheAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheAsync.js","sourceRoot":"","sources":["../../src/methods/cacheAsync.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuG3C,uBAAuB;AACvB,MAAM,UAAU,UAAU,CACxB,MAEyD,EACzD,MAAoB;IAMpB,IAAI,UAES,CAAC;IACd,OAAO;QACL,GAAG,MAAM;QACT,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC;QAC5B,IAAI,WAAW;YACb,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS;YAC7B,6CAA6C;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAErD,2CAA2C;YAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,oEAAoE;gBACpE,kEAAkE;gBAClE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED,gEAAgE;YAChE,IAAI,OAAO,GAAG,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,UAAU,KAAK,IAAI,GAAG,EAAE,CAAC;gBACzB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC9D,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC/B,CAAC;YAED,iDAAiD;YACjD,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBACnC,oEAAoE;gBACpE,kEAAkE;gBAClE,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;gBAEpC,0BAA0B;YAC5B,CAAC;oBAAS,CAAC;gBACT,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { BaseIssue, BaseSchema, BaseSchemaAsync, Config, InferIssue } from '../types/index.js';
2
+ /**
3
+ * Changes the local configuration of a schema.
4
+ *
5
+ * @param schema The schema to configure.
6
+ * @param config The parse configuration.
7
+ *
8
+ * @returns The configured schema.
9
+ */
10
+ export declare function config<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>>(schema: TSchema, config: Config<InferIssue<TSchema>>): TSchema;
@@ -0,0 +1,22 @@
1
+ import { _getStandardProps } from '../utils/index.js';
2
+ /**
3
+ * Changes the local configuration of a schema.
4
+ *
5
+ * @param schema The schema to configure.
6
+ * @param config The parse configuration.
7
+ *
8
+ * @returns The configured schema.
9
+ */
10
+ // @__NO_SIDE_EFFECTS__
11
+ export function config(schema, config) {
12
+ return {
13
+ ...schema,
14
+ get '~standard'() {
15
+ return _getStandardProps(this);
16
+ },
17
+ '~run'(dataset, config_) {
18
+ return schema['~run'](dataset, { ...config_, ...config });
19
+ },
20
+ };
21
+ }
22
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/methods/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;GAOG;AACH,uBAAuB;AACvB,MAAM,UAAU,MAAM,CAIpB,MAAe,EAAE,MAAmC;IACpD,OAAO;QACL,GAAG,MAAM;QACT,IAAI,WAAW;YACb,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,OAAO;YACrB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { BaseIssue, BaseSchema, Config, InferIssue, InferOutput, MaybeDeepReadonly, OutputDataset } from '../types/index.js';
2
+ /**
3
+ * Fallback type.
4
+ */
5
+ export type Fallback<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>> = MaybeDeepReadonly<InferOutput<TSchema>> | ((dataset?: OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>, config?: Config<InferIssue<TSchema>>) => MaybeDeepReadonly<InferOutput<TSchema>>);
6
+ /**
7
+ * Schema with fallback type.
8
+ */
9
+ export type SchemaWithFallback<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, TFallback extends Fallback<TSchema>> = TSchema & {
10
+ /**
11
+ * The fallback value.
12
+ */
13
+ readonly fallback: TFallback;
14
+ };
15
+ /**
16
+ * Returns a fallback value as output if the input does not match the schema.
17
+ *
18
+ * @param schema The schema to catch.
19
+ * @param fallback The fallback value.
20
+ *
21
+ * @returns The passed schema.
22
+ */
23
+ export declare function fallback<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, const TFallback extends Fallback<TSchema>>(schema: TSchema, fallback: TFallback): SchemaWithFallback<TSchema, TFallback>;
@@ -0,0 +1,27 @@
1
+ import { _getStandardProps } from '../utils/index.js';
2
+ import { getFallback } from './getFallback.js';
3
+ /**
4
+ * Returns a fallback value as output if the input does not match the schema.
5
+ *
6
+ * @param schema The schema to catch.
7
+ * @param fallback The fallback value.
8
+ *
9
+ * @returns The passed schema.
10
+ */
11
+ // @__NO_SIDE_EFFECTS__
12
+ export function fallback(schema, fallback) {
13
+ return {
14
+ ...schema,
15
+ fallback,
16
+ get '~standard'() {
17
+ return _getStandardProps(this);
18
+ },
19
+ '~run'(dataset, config) {
20
+ const outputDataset = schema['~run'](dataset, config);
21
+ return outputDataset.issues
22
+ ? { typed: true, value: getFallback(this, outputDataset, config) }
23
+ : outputDataset;
24
+ },
25
+ };
26
+ }
27
+ //# sourceMappingURL=fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../src/methods/fallback.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA2B/C;;;;;;;GAOG;AACH,uBAAuB;AACvB,MAAM,UAAU,QAAQ,CAItB,MAAe,EACf,QAAmB;IAEnB,OAAO;QACL,GAAG,MAAM;QACT,QAAQ;QACR,IAAI,WAAW;YACb,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,MAAM;YACpB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,OAAO,aAAa,CAAC,MAAM;gBACzB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE;gBAClE,CAAC,CAAC,aAAa,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}