@sinclair/typebox 0.31.28 → 0.32.0-dev-2

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 (629) hide show
  1. package/{compiler → cjs/compiler}/compiler.js +118 -107
  2. package/{compiler → cjs/compiler}/index.js +3 -3
  3. package/{errors → cjs/errors}/errors.js +48 -44
  4. package/cjs/index.js +205 -0
  5. package/cjs/system/errors.js +192 -0
  6. package/{value → cjs/system}/index.js +13 -14
  7. package/cjs/system/policy.js +74 -0
  8. package/cjs/system/system.js +71 -0
  9. package/cjs/type/any/any.js +36 -0
  10. package/{system → cjs/type/any}/index.js +2 -5
  11. package/cjs/type/array/array.js +42 -0
  12. package/cjs/type/array/index.js +44 -0
  13. package/cjs/type/async-iterator/async-iterator.js +42 -0
  14. package/cjs/type/async-iterator/index.js +44 -0
  15. package/cjs/type/awaited/awaited.js +66 -0
  16. package/cjs/type/awaited/index.js +44 -0
  17. package/cjs/type/bigint/bigint.js +40 -0
  18. package/cjs/type/bigint/index.js +44 -0
  19. package/cjs/type/boolean/boolean.js +40 -0
  20. package/cjs/type/boolean/index.js +44 -0
  21. package/cjs/type/clone/index.js +32 -0
  22. package/cjs/type/clone/type.js +41 -0
  23. package/cjs/type/clone/value.js +58 -0
  24. package/cjs/type/composite/composite.js +47 -0
  25. package/cjs/type/composite/index.js +44 -0
  26. package/cjs/type/const/const.js +84 -0
  27. package/cjs/type/const/index.js +44 -0
  28. package/cjs/type/constructor/constructor.js +43 -0
  29. package/cjs/type/constructor/index.js +44 -0
  30. package/cjs/type/constructor-parameters/constructor-parameters.js +37 -0
  31. package/cjs/type/constructor-parameters/index.js +44 -0
  32. package/cjs/type/date/date.js +40 -0
  33. package/cjs/type/date/index.js +44 -0
  34. package/cjs/type/deref/deref.js +136 -0
  35. package/cjs/type/deref/index.js +44 -0
  36. package/cjs/type/discard/discard.js +38 -0
  37. package/cjs/type/discard/index.js +44 -0
  38. package/cjs/type/enum/enum.js +46 -0
  39. package/cjs/type/enum/index.js +44 -0
  40. package/cjs/type/exclude/exclude.js +54 -0
  41. package/cjs/type/exclude/index.js +44 -0
  42. package/cjs/type/extends/extends-check.js +654 -0
  43. package/cjs/type/extends/extends-undefined.js +51 -0
  44. package/cjs/type/extends/extends.js +47 -0
  45. package/cjs/type/extends/index.js +46 -0
  46. package/cjs/type/extract/extract.js +54 -0
  47. package/cjs/type/extract/index.js +44 -0
  48. package/cjs/type/function/function.js +43 -0
  49. package/cjs/type/function/index.js +44 -0
  50. package/cjs/type/guard/index.js +32 -0
  51. package/cjs/type/guard/type.js +515 -0
  52. package/cjs/type/guard/value.js +100 -0
  53. package/cjs/type/helpers/helpers.js +35 -0
  54. package/cjs/type/helpers/index.js +44 -0
  55. package/cjs/type/index.js +113 -0
  56. package/cjs/type/indexed/index.js +46 -0
  57. package/cjs/type/indexed/indexed-key.js +65 -0
  58. package/cjs/type/indexed/indexed-type.js +106 -0
  59. package/cjs/type/indexed/indexed.js +41 -0
  60. package/cjs/type/instance-type/index.js +44 -0
  61. package/cjs/type/instance-type/instance-type.js +36 -0
  62. package/cjs/type/integer/index.js +44 -0
  63. package/cjs/type/integer/integer.js +40 -0
  64. package/cjs/type/intersect/index.js +44 -0
  65. package/cjs/type/intersect/intersect.js +59 -0
  66. package/cjs/type/intrinsic/index.js +44 -0
  67. package/cjs/type/intrinsic/intrinsic.js +106 -0
  68. package/cjs/type/iterator/index.js +44 -0
  69. package/cjs/type/iterator/iterator.js +42 -0
  70. package/cjs/type/keyof/index.js +46 -0
  71. package/cjs/type/keyof/keyof-string.js +103 -0
  72. package/cjs/type/keyof/keyof-type.js +48 -0
  73. package/cjs/type/keyof/keyof.js +38 -0
  74. package/cjs/type/literal/index.js +44 -0
  75. package/cjs/type/literal/literal.js +41 -0
  76. package/cjs/type/mapped/index.js +44 -0
  77. package/cjs/type/mapped/mapped.js +47 -0
  78. package/cjs/type/modifiers/index.js +44 -0
  79. package/cjs/type/modifiers/modifiers.js +78 -0
  80. package/cjs/type/never/index.js +44 -0
  81. package/cjs/type/never/never.js +40 -0
  82. package/cjs/type/not/index.js +44 -0
  83. package/cjs/type/not/not.js +41 -0
  84. package/cjs/type/null/index.js +44 -0
  85. package/cjs/type/null/null.js +40 -0
  86. package/cjs/type/number/index.js +44 -0
  87. package/cjs/type/number/number.js +40 -0
  88. package/cjs/type/object/index.js +44 -0
  89. package/cjs/type/object/object.js +47 -0
  90. package/cjs/type/omit/index.js +44 -0
  91. package/cjs/type/omit/omit.js +75 -0
  92. package/cjs/type/operators/index.js +44 -0
  93. package/cjs/type/operators/operators.js +119 -0
  94. package/cjs/type/optional/index.js +44 -0
  95. package/cjs/type/optional/optional.js +37 -0
  96. package/cjs/type/parameters/index.js +44 -0
  97. package/cjs/type/parameters/parameters.js +37 -0
  98. package/cjs/type/partial/index.js +44 -0
  99. package/cjs/type/partial/partial.js +73 -0
  100. package/cjs/type/patterns/index.js +44 -0
  101. package/cjs/type/patterns/patterns.js +36 -0
  102. package/cjs/type/pick/index.js +44 -0
  103. package/cjs/type/pick/pick.js +66 -0
  104. package/cjs/type/promise/index.js +44 -0
  105. package/cjs/type/promise/promise.js +42 -0
  106. package/cjs/type/readonly/index.js +44 -0
  107. package/cjs/type/readonly/readonly.js +37 -0
  108. package/cjs/type/readonly-optional/index.js +44 -0
  109. package/cjs/type/readonly-optional/readonly-optional.js +37 -0
  110. package/cjs/type/record/index.js +44 -0
  111. package/cjs/type/record/record.js +97 -0
  112. package/cjs/type/recursive/index.js +44 -0
  113. package/cjs/type/recursive/recursive.js +48 -0
  114. package/cjs/type/ref/index.js +44 -0
  115. package/cjs/type/ref/ref.js +45 -0
  116. package/cjs/type/regexp/index.js +44 -0
  117. package/cjs/type/regexp/regexp.js +38 -0
  118. package/cjs/type/registry/format.js +62 -0
  119. package/cjs/type/registry/index.js +32 -0
  120. package/cjs/type/registry/type.js +62 -0
  121. package/cjs/type/required/index.js +44 -0
  122. package/cjs/type/required/required.js +72 -0
  123. package/cjs/type/rest/index.js +44 -0
  124. package/cjs/type/rest/rest.js +41 -0
  125. package/cjs/type/return-type/index.js +44 -0
  126. package/cjs/type/return-type/return-type.js +36 -0
  127. package/cjs/type/schema/anyschema.js +29 -0
  128. package/cjs/type/schema/index.js +45 -0
  129. package/cjs/type/schema/schema.js +30 -0
  130. package/cjs/type/static/index.js +44 -0
  131. package/cjs/type/static/static.js +29 -0
  132. package/cjs/type/strict/index.js +44 -0
  133. package/cjs/type/strict/strict.js +35 -0
  134. package/cjs/type/string/index.js +44 -0
  135. package/cjs/type/string/string.js +36 -0
  136. package/cjs/type/symbol/index.js +44 -0
  137. package/cjs/type/symbol/symbol.js +36 -0
  138. package/cjs/type/symbols/index.js +44 -0
  139. package/cjs/type/symbols/symbols.js +40 -0
  140. package/cjs/type/template-literal/finite.js +71 -0
  141. package/cjs/type/template-literal/generate.js +74 -0
  142. package/cjs/type/template-literal/index.js +50 -0
  143. package/cjs/type/template-literal/parser.js +175 -0
  144. package/cjs/type/template-literal/pattern.js +61 -0
  145. package/cjs/type/template-literal/syntax.js +87 -0
  146. package/cjs/type/template-literal/template-literal.js +43 -0
  147. package/cjs/type/template-literal/union.js +48 -0
  148. package/cjs/type/transform/index.js +44 -0
  149. package/cjs/type/transform/transform.js +72 -0
  150. package/cjs/type/tuple/index.js +44 -0
  151. package/cjs/type/tuple/tuple.js +42 -0
  152. package/cjs/type/type/index.js +44 -0
  153. package/cjs/type/type/javascript.js +120 -0
  154. package/cjs/type/type/json.js +255 -0
  155. package/cjs/type/type/type.js +153 -0
  156. package/cjs/type/uint8array/index.js +44 -0
  157. package/cjs/type/uint8array/uint8array.js +36 -0
  158. package/cjs/type/undefined/index.js +44 -0
  159. package/cjs/type/undefined/undefined.js +36 -0
  160. package/cjs/type/union/index.js +44 -0
  161. package/cjs/type/union/union.js +50 -0
  162. package/cjs/type/unknown/index.js +44 -0
  163. package/cjs/type/unknown/unknown.js +39 -0
  164. package/cjs/type/unsafe/index.js +44 -0
  165. package/cjs/type/unsafe/unsafe.js +39 -0
  166. package/cjs/type/void/index.js +44 -0
  167. package/cjs/type/void/void.js +40 -0
  168. package/{value → cjs/value/cast}/cast.js +62 -83
  169. package/cjs/value/cast/index.js +44 -0
  170. package/cjs/value/check/check.js +468 -0
  171. package/cjs/value/check/index.js +44 -0
  172. package/cjs/value/clean/clean.js +167 -0
  173. package/cjs/value/clean/index.js +44 -0
  174. package/{value → cjs/value/clone}/clone.js +6 -6
  175. package/cjs/value/clone/index.js +44 -0
  176. package/{value → cjs/value/convert}/convert.js +93 -116
  177. package/cjs/value/convert/index.js +44 -0
  178. package/{value → cjs/value/create}/create.js +69 -62
  179. package/cjs/value/create/index.js +44 -0
  180. package/cjs/value/default/default.js +175 -0
  181. package/cjs/value/default/index.js +44 -0
  182. package/{value → cjs/value/delta}/delta.js +57 -53
  183. package/cjs/value/delta/index.js +44 -0
  184. package/{value → cjs/value/deref}/deref.js +1 -2
  185. package/cjs/value/deref/index.js +44 -0
  186. package/{value → cjs/value/equal}/equal.js +14 -14
  187. package/cjs/value/equal/index.js +44 -0
  188. package/cjs/value/guard/index.js +44 -0
  189. package/{value → cjs/value/hash}/hash.js +26 -26
  190. package/cjs/value/hash/index.js +44 -0
  191. package/cjs/value/index.js +123 -0
  192. package/cjs/value/mutate/index.js +44 -0
  193. package/{value → cjs/value/mutate}/mutate.js +25 -25
  194. package/cjs/value/pointer/index.js +31 -0
  195. package/cjs/value/pointer/pointer.js +151 -0
  196. package/cjs/value/transform/decode.js +211 -0
  197. package/cjs/value/transform/encode.js +219 -0
  198. package/cjs/value/transform/has.js +146 -0
  199. package/cjs/value/transform/index.js +46 -0
  200. package/cjs/value/value/index.js +31 -0
  201. package/cjs/value/value/value.js +125 -0
  202. package/{compiler/compiler.d.ts → esm/compiler/compiler.d.mts} +25 -18
  203. package/esm/compiler/compiler.mjs +658 -0
  204. package/{compiler/index.d.ts → esm/compiler/index.d.mts} +2 -2
  205. package/esm/compiler/index.mjs +29 -0
  206. package/{errors/errors.d.ts → esm/errors/errors.d.mts} +7 -7
  207. package/esm/errors/errors.mjs +583 -0
  208. package/esm/errors/index.d.mts +1 -0
  209. package/esm/errors/index.mjs +28 -0
  210. package/esm/index.d.mts +71 -0
  211. package/esm/index.mjs +105 -0
  212. package/esm/system/errors.d.mts +14 -0
  213. package/esm/system/errors.mjs +188 -0
  214. package/esm/system/index.d.mts +4 -0
  215. package/esm/system/index.mjs +31 -0
  216. package/esm/system/policy.d.mts +21 -0
  217. package/esm/system/policy.mjs +71 -0
  218. package/esm/system/system.d.mts +13 -0
  219. package/esm/system/system.mjs +66 -0
  220. package/esm/type/any/any.d.mts +8 -0
  221. package/esm/type/any/any.mjs +32 -0
  222. package/esm/type/any/index.d.mts +1 -0
  223. package/esm/type/any/index.mjs +28 -0
  224. package/esm/type/array/array.d.mts +25 -0
  225. package/esm/type/array/array.mjs +38 -0
  226. package/esm/type/array/index.d.mts +1 -0
  227. package/esm/type/array/index.mjs +28 -0
  228. package/esm/type/async-iterator/async-iterator.d.mts +11 -0
  229. package/esm/type/async-iterator/async-iterator.mjs +38 -0
  230. package/esm/type/async-iterator/index.d.mts +1 -0
  231. package/esm/type/async-iterator/index.mjs +28 -0
  232. package/esm/type/awaited/awaited.d.mts +12 -0
  233. package/esm/type/awaited/awaited.mjs +61 -0
  234. package/esm/type/awaited/index.d.mts +1 -0
  235. package/esm/type/awaited/index.mjs +28 -0
  236. package/esm/type/bigint/bigint.d.mts +16 -0
  237. package/esm/type/bigint/bigint.mjs +36 -0
  238. package/esm/type/bigint/index.d.mts +1 -0
  239. package/esm/type/bigint/index.mjs +28 -0
  240. package/esm/type/boolean/boolean.d.mts +9 -0
  241. package/esm/type/boolean/boolean.mjs +36 -0
  242. package/esm/type/boolean/index.d.mts +1 -0
  243. package/esm/type/boolean/index.mjs +28 -0
  244. package/esm/type/clone/index.d.mts +2 -0
  245. package/esm/type/clone/index.mjs +29 -0
  246. package/esm/type/clone/type.d.mts +5 -0
  247. package/esm/type/clone/type.mjs +36 -0
  248. package/esm/type/clone/value.d.mts +2 -0
  249. package/esm/type/clone/value.mjs +54 -0
  250. package/esm/type/composite/composite.d.mts +15 -0
  251. package/esm/type/composite/composite.mjs +42 -0
  252. package/esm/type/composite/index.d.mts +1 -0
  253. package/esm/type/composite/index.mjs +28 -0
  254. package/esm/type/const/const.d.mts +30 -0
  255. package/esm/type/const/const.mjs +80 -0
  256. package/esm/type/const/index.d.mts +1 -0
  257. package/esm/type/const/index.mjs +28 -0
  258. package/esm/type/constructor/constructor.d.mts +17 -0
  259. package/esm/type/constructor/constructor.mjs +39 -0
  260. package/esm/type/constructor/index.d.mts +1 -0
  261. package/esm/type/constructor/index.mjs +28 -0
  262. package/esm/type/constructor-parameters/constructor-parameters.d.mts +7 -0
  263. package/esm/type/constructor-parameters/constructor-parameters.mjs +33 -0
  264. package/esm/type/constructor-parameters/index.d.mts +1 -0
  265. package/esm/type/constructor-parameters/index.mjs +28 -0
  266. package/esm/type/date/date.d.mts +21 -0
  267. package/esm/type/date/date.mjs +36 -0
  268. package/esm/type/date/index.d.mts +1 -0
  269. package/esm/type/date/index.mjs +28 -0
  270. package/esm/type/deref/deref.d.mts +24 -0
  271. package/esm/type/deref/deref.mjs +131 -0
  272. package/esm/type/deref/index.d.mts +1 -0
  273. package/esm/type/deref/index.mjs +28 -0
  274. package/esm/type/discard/discard.d.mts +1 -0
  275. package/esm/type/discard/discard.mjs +34 -0
  276. package/esm/type/discard/index.d.mts +1 -0
  277. package/esm/type/discard/index.mjs +28 -0
  278. package/esm/type/enum/enum.d.mts +14 -0
  279. package/esm/type/enum/enum.mjs +42 -0
  280. package/esm/type/enum/index.d.mts +1 -0
  281. package/esm/type/enum/index.mjs +28 -0
  282. package/esm/type/exclude/exclude.d.mts +21 -0
  283. package/esm/type/exclude/exclude.mjs +49 -0
  284. package/esm/type/exclude/index.d.mts +1 -0
  285. package/esm/type/exclude/index.mjs +28 -0
  286. package/esm/type/extends/extends-check.d.mts +9 -0
  287. package/esm/type/extends/extends-check.mjs +649 -0
  288. package/esm/type/extends/extends-undefined.d.mts +3 -0
  289. package/esm/type/extends/extends-undefined.mjs +47 -0
  290. package/esm/type/extends/extends.d.mts +9 -0
  291. package/esm/type/extends/extends.mjs +42 -0
  292. package/esm/type/extends/index.d.mts +3 -0
  293. package/esm/type/extends/index.mjs +30 -0
  294. package/esm/type/extract/extract.d.mts +20 -0
  295. package/esm/type/extract/extract.mjs +49 -0
  296. package/esm/type/extract/index.d.mts +1 -0
  297. package/esm/type/extract/index.mjs +28 -0
  298. package/esm/type/function/function.d.mts +17 -0
  299. package/esm/type/function/function.mjs +39 -0
  300. package/esm/type/function/index.d.mts +1 -0
  301. package/esm/type/function/index.mjs +28 -0
  302. package/esm/type/guard/index.d.mts +2 -0
  303. package/esm/type/guard/index.mjs +29 -0
  304. package/esm/type/guard/type.d.mts +130 -0
  305. package/esm/type/guard/type.mjs +469 -0
  306. package/esm/type/guard/value.d.mts +28 -0
  307. package/esm/type/guard/value.mjs +83 -0
  308. package/esm/type/helpers/helpers.d.mts +42 -0
  309. package/esm/type/helpers/helpers.mjs +31 -0
  310. package/esm/type/helpers/index.d.mts +1 -0
  311. package/esm/type/helpers/index.mjs +28 -0
  312. package/esm/type/index.d.mts +70 -0
  313. package/esm/type/index.mjs +97 -0
  314. package/esm/type/indexed/index.d.mts +3 -0
  315. package/esm/type/indexed/index.mjs +30 -0
  316. package/esm/type/indexed/indexed-key.d.mts +17 -0
  317. package/esm/type/indexed/indexed-key.mjs +61 -0
  318. package/esm/type/indexed/indexed-type.d.mts +33 -0
  319. package/esm/type/indexed/indexed-type.mjs +102 -0
  320. package/esm/type/indexed/indexed.d.mts +8 -0
  321. package/esm/type/indexed/indexed.mjs +37 -0
  322. package/esm/type/instance-type/index.d.mts +1 -0
  323. package/esm/type/instance-type/index.mjs +28 -0
  324. package/esm/type/instance-type/instance-type.d.mts +5 -0
  325. package/esm/type/instance-type/instance-type.mjs +32 -0
  326. package/esm/type/integer/index.d.mts +1 -0
  327. package/esm/type/integer/index.mjs +28 -0
  328. package/esm/type/integer/integer.d.mts +16 -0
  329. package/esm/type/integer/integer.mjs +36 -0
  330. package/esm/type/intersect/index.d.mts +1 -0
  331. package/esm/type/intersect/index.mjs +28 -0
  332. package/esm/type/intersect/intersect.d.mts +22 -0
  333. package/esm/type/intersect/intersect.mjs +54 -0
  334. package/esm/type/intrinsic/index.d.mts +1 -0
  335. package/esm/type/intrinsic/index.mjs +28 -0
  336. package/esm/type/intrinsic/intrinsic.d.mts +27 -0
  337. package/esm/type/intrinsic/intrinsic.mjs +98 -0
  338. package/esm/type/iterator/index.d.mts +1 -0
  339. package/esm/type/iterator/index.mjs +28 -0
  340. package/esm/type/iterator/iterator.d.mts +11 -0
  341. package/esm/type/iterator/iterator.mjs +38 -0
  342. package/esm/type/keyof/index.d.mts +3 -0
  343. package/esm/type/keyof/index.mjs +30 -0
  344. package/esm/type/keyof/keyof-string.d.mts +30 -0
  345. package/esm/type/keyof/keyof-string.mjs +98 -0
  346. package/esm/type/keyof/keyof-type.d.mts +11 -0
  347. package/esm/type/keyof/keyof-type.mjs +44 -0
  348. package/esm/type/keyof/keyof.d.mts +5 -0
  349. package/esm/type/keyof/keyof.mjs +34 -0
  350. package/esm/type/literal/index.d.mts +1 -0
  351. package/esm/type/literal/index.mjs +28 -0
  352. package/esm/type/literal/literal.d.mts +10 -0
  353. package/esm/type/literal/literal.mjs +37 -0
  354. package/esm/type/mapped/index.d.mts +1 -0
  355. package/esm/type/mapped/index.mjs +28 -0
  356. package/esm/type/mapped/mapped.d.mts +26 -0
  357. package/esm/type/mapped/mapped.mjs +43 -0
  358. package/esm/type/modifiers/index.d.mts +1 -0
  359. package/esm/type/modifiers/index.mjs +28 -0
  360. package/esm/type/modifiers/modifiers.d.mts +18 -0
  361. package/esm/type/modifiers/modifiers.mjs +73 -0
  362. package/esm/type/never/index.d.mts +1 -0
  363. package/esm/type/never/index.mjs +28 -0
  364. package/esm/type/never/never.d.mts +9 -0
  365. package/esm/type/never/never.mjs +36 -0
  366. package/esm/type/not/index.d.mts +1 -0
  367. package/esm/type/not/index.mjs +28 -0
  368. package/esm/type/not/not.d.mts +10 -0
  369. package/esm/type/not/not.mjs +37 -0
  370. package/esm/type/null/index.d.mts +1 -0
  371. package/esm/type/null/index.mjs +28 -0
  372. package/esm/type/null/null.d.mts +9 -0
  373. package/esm/type/null/null.mjs +36 -0
  374. package/esm/type/number/index.d.mts +1 -0
  375. package/esm/type/number/index.mjs +28 -0
  376. package/esm/type/number/number.d.mts +16 -0
  377. package/esm/type/number/number.mjs +36 -0
  378. package/esm/type/object/index.d.mts +1 -0
  379. package/esm/type/object/index.mjs +28 -0
  380. package/esm/type/object/object.d.mts +44 -0
  381. package/esm/type/object/object.mjs +43 -0
  382. package/esm/type/omit/index.d.mts +1 -0
  383. package/esm/type/omit/index.mjs +28 -0
  384. package/esm/type/omit/omit.d.mts +21 -0
  385. package/esm/type/omit/omit.mjs +70 -0
  386. package/esm/type/operators/index.d.mts +1 -0
  387. package/esm/type/operators/index.mjs +28 -0
  388. package/esm/type/operators/operators.d.mts +24 -0
  389. package/esm/type/operators/operators.mjs +108 -0
  390. package/esm/type/optional/index.d.mts +1 -0
  391. package/esm/type/optional/index.mjs +28 -0
  392. package/esm/type/optional/optional.d.mts +7 -0
  393. package/esm/type/optional/optional.mjs +33 -0
  394. package/esm/type/parameters/index.d.mts +1 -0
  395. package/esm/type/parameters/index.mjs +28 -0
  396. package/esm/type/parameters/parameters.d.mts +7 -0
  397. package/esm/type/parameters/parameters.mjs +33 -0
  398. package/esm/type/partial/index.d.mts +1 -0
  399. package/esm/type/partial/index.mjs +28 -0
  400. package/esm/type/partial/partial.d.mts +23 -0
  401. package/esm/type/partial/partial.mjs +68 -0
  402. package/esm/type/patterns/index.d.mts +1 -0
  403. package/esm/type/patterns/index.mjs +28 -0
  404. package/esm/type/patterns/patterns.d.mts +6 -0
  405. package/esm/type/patterns/patterns.mjs +33 -0
  406. package/esm/type/pick/index.d.mts +1 -0
  407. package/esm/type/pick/index.mjs +28 -0
  408. package/esm/type/pick/pick.d.mts +21 -0
  409. package/esm/type/pick/pick.mjs +61 -0
  410. package/esm/type/promise/index.d.mts +1 -0
  411. package/esm/type/promise/index.mjs +28 -0
  412. package/esm/type/promise/promise.d.mts +11 -0
  413. package/esm/type/promise/promise.mjs +38 -0
  414. package/esm/type/readonly/index.d.mts +1 -0
  415. package/esm/type/readonly/index.mjs +28 -0
  416. package/esm/type/readonly/readonly.d.mts +7 -0
  417. package/esm/type/readonly/readonly.mjs +33 -0
  418. package/esm/type/readonly-optional/index.d.mts +1 -0
  419. package/esm/type/readonly-optional/index.mjs +28 -0
  420. package/esm/type/readonly-optional/readonly-optional.d.mts +6 -0
  421. package/esm/type/readonly-optional/readonly-optional.mjs +33 -0
  422. package/esm/type/record/index.d.mts +1 -0
  423. package/esm/type/record/index.mjs +28 -0
  424. package/esm/type/record/record.d.mts +55 -0
  425. package/esm/type/record/record.mjs +92 -0
  426. package/esm/type/recursive/index.d.mts +1 -0
  427. package/esm/type/recursive/index.mjs +28 -0
  428. package/esm/type/recursive/recursive.d.mts +15 -0
  429. package/esm/type/recursive/recursive.mjs +44 -0
  430. package/esm/type/ref/index.d.mts +1 -0
  431. package/esm/type/ref/index.mjs +28 -0
  432. package/esm/type/ref/ref.d.mts +12 -0
  433. package/esm/type/ref/ref.mjs +41 -0
  434. package/esm/type/regexp/index.d.mts +1 -0
  435. package/esm/type/regexp/index.mjs +28 -0
  436. package/esm/type/regexp/regexp.d.mts +7 -0
  437. package/esm/type/regexp/regexp.mjs +34 -0
  438. package/esm/type/registry/format.d.mts +13 -0
  439. package/esm/type/registry/format.mjs +53 -0
  440. package/esm/type/registry/index.d.mts +2 -0
  441. package/esm/type/registry/index.mjs +29 -0
  442. package/esm/type/registry/type.d.mts +13 -0
  443. package/esm/type/registry/type.mjs +53 -0
  444. package/esm/type/required/index.d.mts +1 -0
  445. package/esm/type/required/index.mjs +28 -0
  446. package/esm/type/required/required.d.mts +23 -0
  447. package/esm/type/required/required.mjs +67 -0
  448. package/esm/type/rest/index.d.mts +1 -0
  449. package/esm/type/rest/index.mjs +28 -0
  450. package/esm/type/rest/rest.d.mts +10 -0
  451. package/esm/type/rest/rest.mjs +36 -0
  452. package/esm/type/return-type/index.d.mts +1 -0
  453. package/esm/type/return-type/index.mjs +28 -0
  454. package/esm/type/return-type/return-type.d.mts +5 -0
  455. package/esm/type/return-type/return-type.mjs +32 -0
  456. package/esm/type/schema/anyschema.d.mts +32 -0
  457. package/esm/type/schema/anyschema.mjs +28 -0
  458. package/esm/type/schema/index.d.mts +2 -0
  459. package/esm/type/schema/index.mjs +29 -0
  460. package/esm/type/schema/schema.d.mts +29 -0
  461. package/esm/type/schema/schema.mjs +28 -0
  462. package/esm/type/static/index.d.mts +1 -0
  463. package/esm/type/static/index.mjs +28 -0
  464. package/esm/type/static/static.d.mts +34 -0
  465. package/esm/type/static/static.mjs +28 -0
  466. package/esm/type/strict/index.d.mts +1 -0
  467. package/esm/type/strict/index.mjs +28 -0
  468. package/esm/type/strict/strict.d.mts +3 -0
  469. package/esm/type/strict/strict.mjs +31 -0
  470. package/esm/type/string/index.d.mts +1 -0
  471. package/esm/type/string/index.mjs +28 -0
  472. package/esm/type/string/string.d.mts +25 -0
  473. package/esm/type/string/string.mjs +32 -0
  474. package/esm/type/symbol/index.d.mts +1 -0
  475. package/esm/type/symbol/index.mjs +28 -0
  476. package/esm/type/symbol/symbol.d.mts +10 -0
  477. package/esm/type/symbol/symbol.mjs +32 -0
  478. package/esm/type/symbols/index.d.mts +1 -0
  479. package/esm/type/symbols/index.mjs +28 -0
  480. package/esm/type/symbols/symbols.d.mts +10 -0
  481. package/esm/type/symbols/symbols.mjs +37 -0
  482. package/esm/type/template-literal/finite.d.mts +16 -0
  483. package/esm/type/template-literal/finite.mjs +66 -0
  484. package/esm/type/template-literal/generate.d.mts +15 -0
  485. package/esm/type/template-literal/generate.mjs +69 -0
  486. package/esm/type/template-literal/index.d.mts +7 -0
  487. package/esm/type/template-literal/index.mjs +34 -0
  488. package/esm/type/template-literal/parser.d.mts +19 -0
  489. package/esm/type/template-literal/parser.mjs +169 -0
  490. package/esm/type/template-literal/pattern.d.mts +4 -0
  491. package/esm/type/template-literal/pattern.mjs +56 -0
  492. package/esm/type/template-literal/syntax.d.mts +20 -0
  493. package/esm/type/template-literal/syntax.mjs +83 -0
  494. package/esm/type/template-literal/template-literal.d.mts +30 -0
  495. package/esm/type/template-literal/template-literal.mjs +39 -0
  496. package/esm/type/template-literal/union.d.mts +7 -0
  497. package/esm/type/template-literal/union.mjs +44 -0
  498. package/esm/type/transform/index.d.mts +1 -0
  499. package/esm/type/transform/index.mjs +28 -0
  500. package/esm/type/transform/transform.d.mts +29 -0
  501. package/esm/type/transform/transform.mjs +69 -0
  502. package/esm/type/tuple/index.d.mts +1 -0
  503. package/esm/type/tuple/index.mjs +28 -0
  504. package/esm/type/tuple/tuple.d.mts +15 -0
  505. package/esm/type/tuple/tuple.mjs +38 -0
  506. package/esm/type/type/index.d.mts +6 -0
  507. package/esm/type/type/index.mjs +40 -0
  508. package/esm/type/type/javascript.d.mts +58 -0
  509. package/esm/type/type/javascript.mjs +116 -0
  510. package/esm/type/type/json.d.mts +139 -0
  511. package/esm/type/type/json.mjs +251 -0
  512. package/esm/type/type/type.d.mts +58 -0
  513. package/esm/type/type/type.mjs +88 -0
  514. package/esm/type/uint8array/index.d.mts +1 -0
  515. package/esm/type/uint8array/index.mjs +28 -0
  516. package/esm/type/uint8array/uint8array.d.mts +13 -0
  517. package/esm/type/uint8array/uint8array.mjs +32 -0
  518. package/esm/type/undefined/index.d.mts +1 -0
  519. package/esm/type/undefined/index.mjs +28 -0
  520. package/esm/type/undefined/undefined.d.mts +9 -0
  521. package/esm/type/undefined/undefined.mjs +32 -0
  522. package/esm/type/union/index.d.mts +1 -0
  523. package/esm/type/union/index.mjs +28 -0
  524. package/esm/type/union/union.d.mts +16 -0
  525. package/esm/type/union/union.mjs +45 -0
  526. package/esm/type/unknown/index.d.mts +1 -0
  527. package/esm/type/unknown/index.mjs +28 -0
  528. package/esm/type/unknown/unknown.d.mts +8 -0
  529. package/esm/type/unknown/unknown.mjs +35 -0
  530. package/esm/type/unsafe/index.d.mts +1 -0
  531. package/esm/type/unsafe/index.mjs +28 -0
  532. package/esm/type/unsafe/unsafe.d.mts +11 -0
  533. package/esm/type/unsafe/unsafe.mjs +35 -0
  534. package/esm/type/void/index.d.mts +1 -0
  535. package/esm/type/void/index.mjs +28 -0
  536. package/esm/type/void/void.d.mts +9 -0
  537. package/esm/type/void/void.mjs +36 -0
  538. package/esm/value/cast/cast.d.mts +23 -0
  539. package/esm/value/cast/cast.mjs +260 -0
  540. package/esm/value/cast/index.d.mts +1 -0
  541. package/esm/value/cast/index.mjs +28 -0
  542. package/esm/value/check/check.d.mts +10 -0
  543. package/{value/check.js → esm/value/check/check.mjs} +52 -51
  544. package/esm/value/check/index.d.mts +1 -0
  545. package/esm/value/check/index.mjs +28 -0
  546. package/esm/value/clean/clean.d.mts +5 -0
  547. package/esm/value/clean/clean.mjs +163 -0
  548. package/esm/value/clean/index.d.mts +1 -0
  549. package/esm/value/clean/index.mjs +28 -0
  550. package/esm/value/clone/clone.mjs +64 -0
  551. package/esm/value/clone/index.d.mts +1 -0
  552. package/esm/value/clone/index.mjs +28 -0
  553. package/esm/value/convert/convert.d.mts +9 -0
  554. package/esm/value/convert/convert.mjs +287 -0
  555. package/esm/value/convert/index.d.mts +1 -0
  556. package/esm/value/convert/index.mjs +28 -0
  557. package/esm/value/create/create.d.mts +31 -0
  558. package/esm/value/create/create.mjs +504 -0
  559. package/esm/value/create/index.d.mts +1 -0
  560. package/esm/value/create/index.mjs +28 -0
  561. package/esm/value/default/default.d.mts +5 -0
  562. package/esm/value/default/default.mjs +171 -0
  563. package/esm/value/default/index.d.mts +1 -0
  564. package/esm/value/default/index.mjs +28 -0
  565. package/esm/value/delta/delta.d.mts +41 -0
  566. package/esm/value/delta/delta.mjs +194 -0
  567. package/esm/value/delta/index.d.mts +1 -0
  568. package/esm/value/delta/index.mjs +28 -0
  569. package/{value/deref.d.ts → esm/value/deref/deref.d.mts} +4 -2
  570. package/esm/value/deref/deref.mjs +41 -0
  571. package/esm/value/deref/index.d.mts +1 -0
  572. package/esm/value/deref/index.mjs +28 -0
  573. package/esm/value/equal/equal.mjs +73 -0
  574. package/esm/value/equal/index.d.mts +1 -0
  575. package/esm/value/equal/index.mjs +28 -0
  576. package/esm/value/guard/guard.mjs +123 -0
  577. package/esm/value/guard/index.d.mts +1 -0
  578. package/esm/value/guard/index.mjs +28 -0
  579. package/{value/hash.d.ts → esm/value/hash/hash.d.mts} +0 -13
  580. package/esm/value/hash/hash.mjs +173 -0
  581. package/esm/value/hash/index.d.mts +1 -0
  582. package/esm/value/hash/index.mjs +28 -0
  583. package/esm/value/index.d.mts +18 -0
  584. package/esm/value/index.mjs +57 -0
  585. package/esm/value/mutate/index.d.mts +1 -0
  586. package/esm/value/mutate/index.mjs +28 -0
  587. package/{value/mutate.d.ts → esm/value/mutate/mutate.d.mts} +1 -1
  588. package/esm/value/mutate/mutate.mjs +123 -0
  589. package/esm/value/pointer/index.d.mts +1 -0
  590. package/esm/value/pointer/index.mjs +28 -0
  591. package/esm/value/pointer/pointer.d.mts +21 -0
  592. package/esm/value/pointer/pointer.mjs +146 -0
  593. package/esm/value/transform/decode.d.mts +19 -0
  594. package/esm/value/transform/decode.mjs +210 -0
  595. package/esm/value/transform/encode.d.mts +20 -0
  596. package/esm/value/transform/encode.mjs +218 -0
  597. package/esm/value/transform/has.d.mts +3 -0
  598. package/esm/value/transform/has.mjs +142 -0
  599. package/esm/value/transform/index.d.mts +3 -0
  600. package/esm/value/transform/index.mjs +30 -0
  601. package/esm/value/value/index.d.mts +1 -0
  602. package/esm/value/value/index.mjs +28 -0
  603. package/esm/value/value/value.d.mts +53 -0
  604. package/esm/value/value/value.mjs +107 -0
  605. package/package.json +37 -27
  606. package/readme.md +183 -155
  607. package/errors/index.d.ts +0 -1
  608. package/system/index.d.ts +0 -2
  609. package/system/system.d.ts +0 -48
  610. package/system/system.js +0 -274
  611. package/typebox.d.ts +0 -962
  612. package/typebox.js +0 -2364
  613. package/value/cast.d.ts +0 -24
  614. package/value/check.d.ts +0 -9
  615. package/value/convert.d.ts +0 -10
  616. package/value/create.d.ts +0 -30
  617. package/value/delta.d.ts +0 -41
  618. package/value/index.d.ts +0 -5
  619. package/value/pointer.d.ts +0 -24
  620. package/value/pointer.js +0 -148
  621. package/value/transform.d.ts +0 -37
  622. package/value/transform.js +0 -473
  623. package/value/value.d.ts +0 -47
  624. package/value/value.js +0 -117
  625. /package/{errors → cjs/errors}/index.js +0 -0
  626. /package/{value → cjs/value/guard}/guard.js +0 -0
  627. /package/{value/clone.d.ts → esm/value/clone/clone.d.mts} +0 -0
  628. /package/{value/equal.d.ts → esm/value/equal/equal.d.mts} +0 -0
  629. /package/{value/guard.d.ts → esm/value/guard/guard.d.mts} +0 -0
@@ -0,0 +1,28 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/value
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ export * from './cast.mjs';
@@ -0,0 +1,10 @@
1
+ import type { TSchema } from '../../type/schema/index.mjs';
2
+ import type { Static } from '../../type/static/index.mjs';
3
+ export declare class ValueCheckUnknownTypeError extends Error {
4
+ readonly schema: TSchema;
5
+ constructor(schema: TSchema);
6
+ }
7
+ /** Returns true if the value matches the given type. */
8
+ export declare function Check<T extends TSchema>(schema: T, references: TSchema[], value: unknown): value is Static<T>;
9
+ /** Returns true if the value matches the given type. */
10
+ export declare function Check<T extends TSchema>(schema: T, value: unknown): value is Static<T>;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*--------------------------------------------------------------------------
3
2
 
4
3
  @sinclair/typebox/value
@@ -26,28 +25,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
25
  THE SOFTWARE.
27
26
 
28
27
  ---------------------------------------------------------------------------*/
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.Check = exports.ValueCheckUnknownTypeError = void 0;
31
- const guard_1 = require("./guard");
32
- const index_1 = require("../system/index");
33
- const deref_1 = require("./deref");
34
- const hash_1 = require("./hash");
35
- const Types = require("../typebox");
28
+ import { IsArray, IsUint8Array, IsDate, IsPromise, IsFunction, IsAsyncIterator, IsIterator, IsBoolean, IsNumber, IsBigInt, IsString, IsSymbol, IsInteger, IsNull, IsUndefined } from '../guard/index.mjs';
29
+ import { TypeSystemPolicy } from '../../system/index.mjs';
30
+ import { Deref } from '../deref/index.mjs';
31
+ import { Hash } from '../hash/index.mjs';
32
+ import { Kind } from '../../type/symbols/index.mjs';
33
+ import { KeyOfStringResolvePattern } from '../../type/keyof/index.mjs';
34
+ import { ExtendsUndefinedCheck } from '../../type/extends/index.mjs';
35
+ import { TSchema as IsSchemaType } from '../../type/guard/type.mjs';
36
+ import { TypeRegistry, FormatRegistry } from '../../type/registry/index.mjs';
37
+ import { Never } from '../../type/never/index.mjs';
36
38
  // --------------------------------------------------------------------------
37
39
  // Errors
38
40
  // --------------------------------------------------------------------------
39
- class ValueCheckUnknownTypeError extends Types.TypeBoxError {
41
+ export class ValueCheckUnknownTypeError extends Error {
42
+ schema;
40
43
  constructor(schema) {
41
44
  super(`Unknown type`);
42
45
  this.schema = schema;
43
46
  }
44
47
  }
45
- exports.ValueCheckUnknownTypeError = ValueCheckUnknownTypeError;
46
48
  // --------------------------------------------------------------------------
47
49
  // TypeGuards
48
50
  // --------------------------------------------------------------------------
49
51
  function IsAnyOrUnknown(schema) {
50
- return schema[Types.Kind] === 'Any' || schema[Types.Kind] === 'Unknown';
52
+ return schema[Kind] === 'Any' || schema[Kind] === 'Unknown';
51
53
  }
52
54
  // --------------------------------------------------------------------------
53
55
  // Guards
@@ -62,7 +64,7 @@ function TAny(schema, references, value) {
62
64
  return true;
63
65
  }
64
66
  function TArray(schema, references, value) {
65
- if (!(0, guard_1.IsArray)(value))
67
+ if (!IsArray(value))
66
68
  return false;
67
69
  if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {
68
70
  return false;
@@ -75,7 +77,7 @@ function TArray(schema, references, value) {
75
77
  }
76
78
  // prettier-ignore
77
79
  if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) {
78
- const hashed = (0, hash_1.Hash)(element);
80
+ const hashed = Hash(element);
79
81
  if (set.has(hashed)) {
80
82
  return false;
81
83
  }
@@ -86,27 +88,27 @@ function TArray(schema, references, value) {
86
88
  return false;
87
89
  }
88
90
  // contains
89
- if (!(IsDefined(schema.contains) || (0, guard_1.IsNumber)(schema.minContains) || (0, guard_1.IsNumber)(schema.maxContains))) {
91
+ if (!(IsDefined(schema.contains) || IsNumber(schema.minContains) || IsNumber(schema.maxContains))) {
90
92
  return true; // exit
91
93
  }
92
- const containsSchema = IsDefined(schema.contains) ? schema.contains : Types.Type.Never();
94
+ const containsSchema = IsDefined(schema.contains) ? schema.contains : Never();
93
95
  const containsCount = value.reduce((acc, value) => (Visit(containsSchema, references, value) ? acc + 1 : acc), 0);
94
96
  if (containsCount === 0) {
95
97
  return false;
96
98
  }
97
- if ((0, guard_1.IsNumber)(schema.minContains) && containsCount < schema.minContains) {
99
+ if (IsNumber(schema.minContains) && containsCount < schema.minContains) {
98
100
  return false;
99
101
  }
100
- if ((0, guard_1.IsNumber)(schema.maxContains) && containsCount > schema.maxContains) {
102
+ if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) {
101
103
  return false;
102
104
  }
103
105
  return true;
104
106
  }
105
107
  function TAsyncIterator(schema, references, value) {
106
- return (0, guard_1.IsAsyncIterator)(value);
108
+ return IsAsyncIterator(value);
107
109
  }
108
110
  function TBigInt(schema, references, value) {
109
- if (!(0, guard_1.IsBigInt)(value))
111
+ if (!IsBigInt(value))
110
112
  return false;
111
113
  if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
112
114
  return false;
@@ -126,13 +128,13 @@ function TBigInt(schema, references, value) {
126
128
  return true;
127
129
  }
128
130
  function TBoolean(schema, references, value) {
129
- return (0, guard_1.IsBoolean)(value);
131
+ return IsBoolean(value);
130
132
  }
131
133
  function TConstructor(schema, references, value) {
132
134
  return Visit(schema.returns, references, value.prototype);
133
135
  }
134
136
  function TDate(schema, references, value) {
135
- if (!(0, guard_1.IsDate)(value))
137
+ if (!IsDate(value))
136
138
  return false;
137
139
  if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {
138
140
  return false;
@@ -152,10 +154,10 @@ function TDate(schema, references, value) {
152
154
  return true;
153
155
  }
154
156
  function TFunction(schema, references, value) {
155
- return (0, guard_1.IsFunction)(value);
157
+ return IsFunction(value);
156
158
  }
157
159
  function TInteger(schema, references, value) {
158
- if (!(0, guard_1.IsInteger)(value)) {
160
+ if (!IsInteger(value)) {
159
161
  return false;
160
162
  }
161
163
  if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
@@ -178,12 +180,12 @@ function TInteger(schema, references, value) {
178
180
  function TIntersect(schema, references, value) {
179
181
  const check1 = schema.allOf.every((schema) => Visit(schema, references, value));
180
182
  if (schema.unevaluatedProperties === false) {
181
- const keyPattern = new RegExp(Types.KeyResolver.ResolvePattern(schema));
183
+ const keyPattern = new RegExp(KeyOfStringResolvePattern(schema));
182
184
  const check2 = Object.getOwnPropertyNames(value).every((key) => keyPattern.test(key));
183
185
  return check1 && check2;
184
186
  }
185
- else if (Types.TypeGuard.TSchema(schema.unevaluatedProperties)) {
186
- const keyCheck = new RegExp(Types.KeyResolver.ResolvePattern(schema));
187
+ else if (IsSchemaType(schema.unevaluatedProperties)) {
188
+ const keyCheck = new RegExp(KeyOfStringResolvePattern(schema));
187
189
  const check2 = Object.getOwnPropertyNames(value).every((key) => keyCheck.test(key) || Visit(schema.unevaluatedProperties, references, value[key]));
188
190
  return check1 && check2;
189
191
  }
@@ -192,7 +194,7 @@ function TIntersect(schema, references, value) {
192
194
  }
193
195
  }
194
196
  function TIterator(schema, references, value) {
195
- return (0, guard_1.IsIterator)(value);
197
+ return IsIterator(value);
196
198
  }
197
199
  function TLiteral(schema, references, value) {
198
200
  return value === schema.const;
@@ -204,10 +206,10 @@ function TNot(schema, references, value) {
204
206
  return !Visit(schema.not, references, value);
205
207
  }
206
208
  function TNull(schema, references, value) {
207
- return (0, guard_1.IsNull)(value);
209
+ return IsNull(value);
208
210
  }
209
211
  function TNumber(schema, references, value) {
210
- if (!index_1.TypeSystemPolicy.IsNumberLike(value))
212
+ if (!TypeSystemPolicy.IsNumberLike(value))
211
213
  return false;
212
214
  if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
213
215
  return false;
@@ -227,7 +229,7 @@ function TNumber(schema, references, value) {
227
229
  return true;
228
230
  }
229
231
  function TObject(schema, references, value) {
230
- if (!index_1.TypeSystemPolicy.IsObjectLike(value))
232
+ if (!TypeSystemPolicy.IsObjectLike(value))
231
233
  return false;
232
234
  if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {
233
235
  return false;
@@ -242,12 +244,12 @@ function TObject(schema, references, value) {
242
244
  if (!Visit(property, references, value[knownKey])) {
243
245
  return false;
244
246
  }
245
- if ((Types.ExtendsUndefined.Check(property) || IsAnyOrUnknown(property)) && !(knownKey in value)) {
247
+ if ((ExtendsUndefinedCheck(property) || IsAnyOrUnknown(property)) && !(knownKey in value)) {
246
248
  return false;
247
249
  }
248
250
  }
249
251
  else {
250
- if (index_1.TypeSystemPolicy.IsExactOptionalProperty(value, knownKey) && !Visit(property, references, value[knownKey])) {
252
+ if (TypeSystemPolicy.IsExactOptionalProperty(value, knownKey) && !Visit(property, references, value[knownKey])) {
251
253
  return false;
252
254
  }
253
255
  }
@@ -271,10 +273,10 @@ function TObject(schema, references, value) {
271
273
  }
272
274
  }
273
275
  function TPromise(schema, references, value) {
274
- return (0, guard_1.IsPromise)(value);
276
+ return IsPromise(value);
275
277
  }
276
278
  function TRecord(schema, references, value) {
277
- if (!index_1.TypeSystemPolicy.IsRecordLike(value)) {
279
+ if (!TypeSystemPolicy.IsRecordLike(value)) {
278
280
  return false;
279
281
  }
280
282
  if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {
@@ -301,10 +303,10 @@ function TRecord(schema, references, value) {
301
303
  return check1 && check2 && check3;
302
304
  }
303
305
  function TRef(schema, references, value) {
304
- return Visit((0, deref_1.Deref)(schema, references), references, value);
306
+ return Visit(Deref(schema, references), references, value);
305
307
  }
306
308
  function TString(schema, references, value) {
307
- if (!(0, guard_1.IsString)(value)) {
309
+ if (!IsString(value)) {
308
310
  return false;
309
311
  }
310
312
  if (IsDefined(schema.minLength)) {
@@ -321,24 +323,24 @@ function TString(schema, references, value) {
321
323
  return false;
322
324
  }
323
325
  if (IsDefined(schema.format)) {
324
- if (!Types.FormatRegistry.Has(schema.format))
326
+ if (!FormatRegistry.Has(schema.format))
325
327
  return false;
326
- const func = Types.FormatRegistry.Get(schema.format);
328
+ const func = FormatRegistry.Get(schema.format);
327
329
  return func(value);
328
330
  }
329
331
  return true;
330
332
  }
331
333
  function TSymbol(schema, references, value) {
332
- return (0, guard_1.IsSymbol)(value);
334
+ return IsSymbol(value);
333
335
  }
334
336
  function TTemplateLiteral(schema, references, value) {
335
- return (0, guard_1.IsString)(value) && new RegExp(schema.pattern).test(value);
337
+ return IsString(value) && new RegExp(schema.pattern).test(value);
336
338
  }
337
339
  function TThis(schema, references, value) {
338
- return Visit((0, deref_1.Deref)(schema, references), references, value);
340
+ return Visit(Deref(schema, references), references, value);
339
341
  }
340
342
  function TTuple(schema, references, value) {
341
- if (!(0, guard_1.IsArray)(value)) {
343
+ if (!IsArray(value)) {
342
344
  return false;
343
345
  }
344
346
  if (schema.items === undefined && !(value.length === 0)) {
@@ -357,13 +359,13 @@ function TTuple(schema, references, value) {
357
359
  return true;
358
360
  }
359
361
  function TUndefined(schema, references, value) {
360
- return (0, guard_1.IsUndefined)(value);
362
+ return IsUndefined(value);
361
363
  }
362
364
  function TUnion(schema, references, value) {
363
365
  return schema.anyOf.some((inner) => Visit(inner, references, value));
364
366
  }
365
367
  function TUint8Array(schema, references, value) {
366
- if (!(0, guard_1.IsUint8Array)(value)) {
368
+ if (!IsUint8Array(value)) {
367
369
  return false;
368
370
  }
369
371
  if (IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) {
@@ -378,18 +380,18 @@ function TUnknown(schema, references, value) {
378
380
  return true;
379
381
  }
380
382
  function TVoid(schema, references, value) {
381
- return index_1.TypeSystemPolicy.IsVoidLike(value);
383
+ return TypeSystemPolicy.IsVoidLike(value);
382
384
  }
383
385
  function TKind(schema, references, value) {
384
- if (!Types.TypeRegistry.Has(schema[Types.Kind]))
386
+ if (!TypeRegistry.Has(schema[Kind]))
385
387
  return false;
386
- const func = Types.TypeRegistry.Get(schema[Types.Kind]);
388
+ const func = TypeRegistry.Get(schema[Kind]);
387
389
  return func(schema, value);
388
390
  }
389
391
  function Visit(schema, references, value) {
390
392
  const references_ = IsDefined(schema.$id) ? [...references, schema] : references;
391
393
  const schema_ = schema;
392
- switch (schema_[Types.Kind]) {
394
+ switch (schema_[Kind]) {
393
395
  case 'Any':
394
396
  return TAny(schema_, references_, value);
395
397
  case 'Array':
@@ -451,13 +453,12 @@ function Visit(schema, references, value) {
451
453
  case 'Void':
452
454
  return TVoid(schema_, references_, value);
453
455
  default:
454
- if (!Types.TypeRegistry.Has(schema_[Types.Kind]))
456
+ if (!TypeRegistry.Has(schema_[Kind]))
455
457
  throw new ValueCheckUnknownTypeError(schema_);
456
458
  return TKind(schema_, references_, value);
457
459
  }
458
460
  }
459
461
  /** Returns true if the value matches the given type. */
460
- function Check(...args) {
462
+ export function Check(...args) {
461
463
  return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);
462
464
  }
463
- exports.Check = Check;
@@ -0,0 +1 @@
1
+ export * from './check.mjs';
@@ -0,0 +1,28 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/value
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ export * from './check.mjs';
@@ -0,0 +1,5 @@
1
+ import type { TSchema } from '../../type/schema/index.mjs';
2
+ /** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */
3
+ export declare function Clean<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
4
+ /** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */
5
+ export declare function Clean<T extends TSchema>(schema: T): unknown;
@@ -0,0 +1,163 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/value
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ import { IsString, IsObject, IsArray, IsUndefined } from '../guard/index.mjs';
29
+ import { TSchema as IsSchemaType } from '../../type/guard/type.mjs';
30
+ import { KeyOfStringResolve } from '../../type/keyof/keyof-string.mjs';
31
+ import { Check } from '../check/index.mjs';
32
+ import { Clone } from '../clone/index.mjs';
33
+ import { Deref } from '../deref/index.mjs';
34
+ import { Kind } from '../../type/symbols/index.mjs';
35
+ // ------------------------------------------------------------------
36
+ // IsSchema
37
+ // ------------------------------------------------------------------
38
+ function IsSchema(schema) {
39
+ return IsSchemaType(schema);
40
+ }
41
+ // ------------------------------------------------------------------
42
+ // IsCheckable
43
+ // ------------------------------------------------------------------
44
+ function IsCheckable(schema) {
45
+ return IsSchemaType(schema) && schema[Kind] !== 'Unsafe';
46
+ }
47
+ // ------------------------------------------------------------------
48
+ // Types
49
+ // ------------------------------------------------------------------
50
+ function TArray(schema, references, value) {
51
+ if (!IsArray(value))
52
+ return value;
53
+ return value.map((value) => Visit(schema.items, references, value));
54
+ }
55
+ function TIntersect(schema, references, value) {
56
+ const unevaluatedProperties = schema.unevaluatedProperties;
57
+ const intersections = schema.allOf.map((schema) => Visit(schema, references, Clone(value)));
58
+ const composite = intersections.reduce((acc, value) => (IsObject(value) ? { ...acc, ...value } : value), {});
59
+ if (!IsObject(value) || !IsObject(composite) || !IsSchema(unevaluatedProperties))
60
+ return composite;
61
+ const knownkeys = KeyOfStringResolve(schema);
62
+ for (const key of Object.getOwnPropertyNames(value)) {
63
+ if (knownkeys.includes(key))
64
+ continue;
65
+ if (Check(unevaluatedProperties, references, value[key])) {
66
+ composite[key] = Visit(unevaluatedProperties, references, value[key]);
67
+ }
68
+ }
69
+ return composite;
70
+ }
71
+ function TObject(schema, references, value) {
72
+ if (!IsObject(value) || IsArray(value))
73
+ return value; // Check IsArray for AllowArrayObject configuration
74
+ const additionalProperties = schema.additionalProperties;
75
+ for (const key of Object.getOwnPropertyNames(value)) {
76
+ if (key in schema.properties) {
77
+ value[key] = Visit(schema.properties[key], references, value[key]);
78
+ continue;
79
+ }
80
+ if (IsSchema(additionalProperties) && Check(additionalProperties, references, value[key])) {
81
+ value[key] = Visit(additionalProperties, references, value[key]);
82
+ continue;
83
+ }
84
+ delete value[key];
85
+ }
86
+ return value;
87
+ }
88
+ function TRecord(schema, references, value) {
89
+ if (!IsObject(value))
90
+ return value;
91
+ const additionalProperties = schema.additionalProperties;
92
+ const propertyKeys = Object.keys(value);
93
+ const [propertyKey, propertySchema] = Object.entries(schema.patternProperties)[0];
94
+ const propertyKeyTest = new RegExp(propertyKey);
95
+ for (const key of propertyKeys) {
96
+ if (propertyKeyTest.test(key)) {
97
+ value[key] = Visit(propertySchema, references, value[key]);
98
+ continue;
99
+ }
100
+ if (IsSchema(additionalProperties) && Check(additionalProperties, references, value[key])) {
101
+ value[key] = Visit(additionalProperties, references, value[key]);
102
+ continue;
103
+ }
104
+ delete value[key];
105
+ }
106
+ return value;
107
+ }
108
+ function TRef(schema, references, value) {
109
+ return Visit(Deref(schema, references), references, value);
110
+ }
111
+ function TThis(schema, references, value) {
112
+ return Visit(Deref(schema, references), references, value);
113
+ }
114
+ function TTuple(schema, references, value) {
115
+ if (!IsArray(value))
116
+ return value;
117
+ if (IsUndefined(schema.items))
118
+ return [];
119
+ const length = Math.min(value.length, schema.items.length);
120
+ for (let i = 0; i < length; i++) {
121
+ value[i] = Visit(schema.items[i], references, value[i]);
122
+ }
123
+ // prettier-ignore
124
+ return value.length > length
125
+ ? value.slice(0, length)
126
+ : value;
127
+ }
128
+ function TUnion(schema, references, value) {
129
+ for (const inner of schema.anyOf) {
130
+ if (IsCheckable(inner) && Check(inner, value)) {
131
+ return Visit(inner, references, value);
132
+ }
133
+ }
134
+ return value;
135
+ }
136
+ function Visit(schema, references, value) {
137
+ const references_ = IsString(schema.$id) ? [...references, schema] : references;
138
+ const schema_ = schema;
139
+ switch (schema_[Kind]) {
140
+ case 'Array':
141
+ return TArray(schema_, references_, value);
142
+ case 'Intersect':
143
+ return TIntersect(schema_, references_, value);
144
+ case 'Object':
145
+ return TObject(schema_, references_, value);
146
+ case 'Record':
147
+ return TRecord(schema_, references_, value);
148
+ case 'Ref':
149
+ return TRef(schema_, references_, value);
150
+ case 'This':
151
+ return TThis(schema_, references_, value);
152
+ case 'Tuple':
153
+ return TTuple(schema_, references_, value);
154
+ case 'Union':
155
+ return TUnion(schema_, references_, value);
156
+ default:
157
+ return value;
158
+ }
159
+ }
160
+ /** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */
161
+ export function Clean(...args) {
162
+ return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);
163
+ }
@@ -0,0 +1 @@
1
+ export * from './clean.mjs';
@@ -0,0 +1,28 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/value
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ export * from './clean.mjs';
@@ -0,0 +1,64 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/value
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ import { IsArray, IsDate, IsPlainObject, IsTypedArray, IsValueType } from '../guard/index.mjs';
29
+ // --------------------------------------------------------------------------
30
+ // Clonable
31
+ // --------------------------------------------------------------------------
32
+ function ObjectType(value) {
33
+ const keys = [...Object.getOwnPropertyNames(value), ...Object.getOwnPropertySymbols(value)];
34
+ return keys.reduce((acc, key) => ({ ...acc, [key]: Clone(value[key]) }), {});
35
+ }
36
+ function ArrayType(value) {
37
+ return value.map((element) => Clone(element));
38
+ }
39
+ function TypedArrayType(value) {
40
+ return value.slice();
41
+ }
42
+ function DateType(value) {
43
+ return new Date(value.toISOString());
44
+ }
45
+ function ValueType(value) {
46
+ return value;
47
+ }
48
+ // --------------------------------------------------------------------------
49
+ // Clone
50
+ // --------------------------------------------------------------------------
51
+ /** Returns a clone of the given value */
52
+ export function Clone(value) {
53
+ if (IsArray(value))
54
+ return ArrayType(value);
55
+ if (IsDate(value))
56
+ return DateType(value);
57
+ if (IsPlainObject(value))
58
+ return ObjectType(value);
59
+ if (IsTypedArray(value))
60
+ return TypedArrayType(value);
61
+ if (IsValueType(value))
62
+ return ValueType(value);
63
+ throw new Error('ValueClone: Unable to clone value');
64
+ }
@@ -0,0 +1 @@
1
+ export * from './clone.mjs';
@@ -0,0 +1,28 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/value
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ export * from './clone.mjs';