@sinclair/typebox 0.31.28 → 0.32.0-dev-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 (417) hide show
  1. package/compiler/compiler.d.ts +25 -18
  2. package/compiler/compiler.js +118 -107
  3. package/errors/errors.d.ts +7 -7
  4. package/errors/errors.js +48 -44
  5. package/index.d.ts +71 -0
  6. package/index.js +205 -0
  7. package/package.json +8 -19
  8. package/readme.md +183 -155
  9. package/system/errors.d.ts +14 -0
  10. package/system/errors.js +192 -0
  11. package/system/index.d.ts +3 -1
  12. package/system/index.js +10 -16
  13. package/system/policy.d.ts +21 -0
  14. package/system/policy.js +74 -0
  15. package/system/system.d.ts +3 -38
  16. package/system/system.js +15 -218
  17. package/type/any/any.d.ts +8 -0
  18. package/type/any/any.js +36 -0
  19. package/type/any/index.d.ts +1 -0
  20. package/type/any/index.js +44 -0
  21. package/type/array/array.d.ts +25 -0
  22. package/type/array/array.js +42 -0
  23. package/type/array/index.d.ts +1 -0
  24. package/type/array/index.js +44 -0
  25. package/type/async-iterator/async-iterator.d.ts +11 -0
  26. package/type/async-iterator/async-iterator.js +42 -0
  27. package/type/async-iterator/index.d.ts +1 -0
  28. package/type/async-iterator/index.js +44 -0
  29. package/type/awaited/awaited.d.ts +12 -0
  30. package/type/awaited/awaited.js +66 -0
  31. package/type/awaited/index.d.ts +1 -0
  32. package/type/awaited/index.js +44 -0
  33. package/type/bigint/bigint.d.ts +16 -0
  34. package/type/bigint/bigint.js +40 -0
  35. package/type/bigint/index.d.ts +1 -0
  36. package/type/bigint/index.js +44 -0
  37. package/type/boolean/boolean.d.ts +9 -0
  38. package/type/boolean/boolean.js +40 -0
  39. package/type/boolean/index.d.ts +1 -0
  40. package/type/boolean/index.js +44 -0
  41. package/type/clone/index.d.ts +2 -0
  42. package/type/clone/index.js +32 -0
  43. package/type/clone/type.d.ts +5 -0
  44. package/type/clone/type.js +41 -0
  45. package/type/clone/value.d.ts +2 -0
  46. package/type/clone/value.js +58 -0
  47. package/type/composite/composite.d.ts +15 -0
  48. package/type/composite/composite.js +47 -0
  49. package/type/composite/index.d.ts +1 -0
  50. package/type/composite/index.js +44 -0
  51. package/type/const/const.d.ts +30 -0
  52. package/type/const/const.js +84 -0
  53. package/type/const/index.d.ts +1 -0
  54. package/type/const/index.js +44 -0
  55. package/type/constructor/constructor.d.ts +17 -0
  56. package/type/constructor/constructor.js +43 -0
  57. package/type/constructor/index.d.ts +1 -0
  58. package/type/constructor/index.js +44 -0
  59. package/type/constructor-parameters/constructor-parameters.d.ts +7 -0
  60. package/type/constructor-parameters/constructor-parameters.js +37 -0
  61. package/type/constructor-parameters/index.d.ts +1 -0
  62. package/type/constructor-parameters/index.js +44 -0
  63. package/type/date/date.d.ts +21 -0
  64. package/type/date/date.js +40 -0
  65. package/type/date/index.d.ts +1 -0
  66. package/type/date/index.js +44 -0
  67. package/type/deref/deref.d.ts +24 -0
  68. package/type/deref/deref.js +136 -0
  69. package/type/deref/index.d.ts +1 -0
  70. package/type/deref/index.js +44 -0
  71. package/type/discard/discard.d.ts +1 -0
  72. package/type/discard/discard.js +38 -0
  73. package/type/discard/index.d.ts +1 -0
  74. package/type/discard/index.js +44 -0
  75. package/type/enum/enum.d.ts +14 -0
  76. package/type/enum/enum.js +46 -0
  77. package/type/enum/index.d.ts +1 -0
  78. package/type/enum/index.js +44 -0
  79. package/type/exclude/exclude.d.ts +21 -0
  80. package/type/exclude/exclude.js +54 -0
  81. package/type/exclude/index.d.ts +1 -0
  82. package/type/exclude/index.js +44 -0
  83. package/type/extends/extends-check.d.ts +9 -0
  84. package/type/extends/extends-check.js +654 -0
  85. package/type/extends/extends-undefined.d.ts +3 -0
  86. package/type/extends/extends-undefined.js +51 -0
  87. package/type/extends/extends.d.ts +9 -0
  88. package/type/extends/extends.js +47 -0
  89. package/type/extends/index.d.ts +3 -0
  90. package/type/extends/index.js +46 -0
  91. package/type/extract/extract.d.ts +20 -0
  92. package/type/extract/extract.js +54 -0
  93. package/type/extract/index.d.ts +1 -0
  94. package/type/extract/index.js +44 -0
  95. package/type/function/function.d.ts +17 -0
  96. package/type/function/function.js +43 -0
  97. package/type/function/index.d.ts +1 -0
  98. package/type/function/index.js +44 -0
  99. package/type/guard/index.d.ts +2 -0
  100. package/type/guard/index.js +32 -0
  101. package/type/guard/type.d.ts +130 -0
  102. package/type/guard/type.js +515 -0
  103. package/type/guard/value.d.ts +28 -0
  104. package/type/guard/value.js +100 -0
  105. package/type/helpers/helpers.d.ts +42 -0
  106. package/type/helpers/helpers.js +35 -0
  107. package/type/helpers/index.d.ts +1 -0
  108. package/type/helpers/index.js +44 -0
  109. package/type/index.d.ts +70 -0
  110. package/type/index.js +113 -0
  111. package/type/indexed/index.d.ts +3 -0
  112. package/type/indexed/index.js +46 -0
  113. package/type/indexed/indexed-key.d.ts +17 -0
  114. package/type/indexed/indexed-key.js +65 -0
  115. package/type/indexed/indexed-type.d.ts +33 -0
  116. package/type/indexed/indexed-type.js +106 -0
  117. package/type/indexed/indexed.d.ts +8 -0
  118. package/type/indexed/indexed.js +41 -0
  119. package/type/instance-type/index.d.ts +1 -0
  120. package/type/instance-type/index.js +44 -0
  121. package/type/instance-type/instance-type.d.ts +5 -0
  122. package/type/instance-type/instance-type.js +36 -0
  123. package/type/integer/index.d.ts +1 -0
  124. package/type/integer/index.js +44 -0
  125. package/type/integer/integer.d.ts +16 -0
  126. package/type/integer/integer.js +40 -0
  127. package/type/intersect/index.d.ts +1 -0
  128. package/type/intersect/index.js +44 -0
  129. package/type/intersect/intersect.d.ts +22 -0
  130. package/type/intersect/intersect.js +59 -0
  131. package/type/intrinsic/index.d.ts +1 -0
  132. package/type/intrinsic/index.js +44 -0
  133. package/type/intrinsic/intrinsic.d.ts +27 -0
  134. package/type/intrinsic/intrinsic.js +106 -0
  135. package/type/iterator/index.d.ts +1 -0
  136. package/type/iterator/index.js +44 -0
  137. package/type/iterator/iterator.d.ts +11 -0
  138. package/type/iterator/iterator.js +42 -0
  139. package/type/keyof/index.d.ts +3 -0
  140. package/type/keyof/index.js +46 -0
  141. package/type/keyof/keyof-string.d.ts +30 -0
  142. package/type/keyof/keyof-string.js +103 -0
  143. package/type/keyof/keyof-type.d.ts +11 -0
  144. package/type/keyof/keyof-type.js +48 -0
  145. package/type/keyof/keyof.d.ts +5 -0
  146. package/type/keyof/keyof.js +38 -0
  147. package/type/literal/index.d.ts +1 -0
  148. package/type/literal/index.js +44 -0
  149. package/type/literal/literal.d.ts +10 -0
  150. package/type/literal/literal.js +41 -0
  151. package/type/mapped/index.d.ts +1 -0
  152. package/type/mapped/index.js +44 -0
  153. package/type/mapped/mapped.d.ts +26 -0
  154. package/type/mapped/mapped.js +47 -0
  155. package/type/modifiers/index.d.ts +1 -0
  156. package/type/modifiers/index.js +44 -0
  157. package/type/modifiers/modifiers.d.ts +18 -0
  158. package/type/modifiers/modifiers.js +78 -0
  159. package/type/never/index.d.ts +1 -0
  160. package/type/never/index.js +44 -0
  161. package/type/never/never.d.ts +9 -0
  162. package/type/never/never.js +40 -0
  163. package/type/not/index.d.ts +1 -0
  164. package/type/not/index.js +44 -0
  165. package/type/not/not.d.ts +10 -0
  166. package/type/not/not.js +41 -0
  167. package/type/null/index.d.ts +1 -0
  168. package/type/null/index.js +44 -0
  169. package/type/null/null.d.ts +9 -0
  170. package/type/null/null.js +40 -0
  171. package/type/number/index.d.ts +1 -0
  172. package/type/number/index.js +44 -0
  173. package/type/number/number.d.ts +16 -0
  174. package/type/number/number.js +40 -0
  175. package/type/object/index.d.ts +1 -0
  176. package/type/object/index.js +44 -0
  177. package/type/object/object.d.ts +44 -0
  178. package/type/object/object.js +47 -0
  179. package/type/omit/index.d.ts +1 -0
  180. package/type/omit/index.js +44 -0
  181. package/type/omit/omit.d.ts +21 -0
  182. package/type/omit/omit.js +75 -0
  183. package/type/operators/index.d.ts +1 -0
  184. package/type/operators/index.js +44 -0
  185. package/type/operators/operators.d.ts +24 -0
  186. package/type/operators/operators.js +119 -0
  187. package/type/optional/index.d.ts +1 -0
  188. package/type/optional/index.js +44 -0
  189. package/type/optional/optional.d.ts +7 -0
  190. package/type/optional/optional.js +37 -0
  191. package/type/parameters/index.d.ts +1 -0
  192. package/type/parameters/index.js +44 -0
  193. package/type/parameters/parameters.d.ts +7 -0
  194. package/type/parameters/parameters.js +37 -0
  195. package/type/partial/index.d.ts +1 -0
  196. package/type/partial/index.js +44 -0
  197. package/type/partial/partial.d.ts +23 -0
  198. package/type/partial/partial.js +73 -0
  199. package/type/patterns/index.d.ts +1 -0
  200. package/type/patterns/index.js +44 -0
  201. package/type/patterns/patterns.d.ts +6 -0
  202. package/type/patterns/patterns.js +36 -0
  203. package/type/pick/index.d.ts +1 -0
  204. package/type/pick/index.js +44 -0
  205. package/type/pick/pick.d.ts +21 -0
  206. package/type/pick/pick.js +66 -0
  207. package/type/promise/index.d.ts +1 -0
  208. package/type/promise/index.js +44 -0
  209. package/type/promise/promise.d.ts +11 -0
  210. package/type/promise/promise.js +42 -0
  211. package/type/readonly/index.d.ts +1 -0
  212. package/type/readonly/index.js +44 -0
  213. package/type/readonly/readonly.d.ts +7 -0
  214. package/type/readonly/readonly.js +37 -0
  215. package/type/readonly-optional/index.d.ts +1 -0
  216. package/type/readonly-optional/index.js +44 -0
  217. package/type/readonly-optional/readonly-optional.d.ts +6 -0
  218. package/type/readonly-optional/readonly-optional.js +37 -0
  219. package/type/record/index.d.ts +1 -0
  220. package/type/record/index.js +44 -0
  221. package/type/record/record.d.ts +55 -0
  222. package/type/record/record.js +97 -0
  223. package/type/recursive/index.d.ts +1 -0
  224. package/type/recursive/index.js +44 -0
  225. package/type/recursive/recursive.d.ts +15 -0
  226. package/type/recursive/recursive.js +48 -0
  227. package/type/ref/index.d.ts +1 -0
  228. package/type/ref/index.js +44 -0
  229. package/type/ref/ref.d.ts +12 -0
  230. package/type/ref/ref.js +45 -0
  231. package/type/regexp/index.d.ts +1 -0
  232. package/type/regexp/index.js +44 -0
  233. package/type/regexp/regexp.d.ts +7 -0
  234. package/type/regexp/regexp.js +38 -0
  235. package/type/registry/format.d.ts +13 -0
  236. package/type/registry/format.js +62 -0
  237. package/type/registry/index.d.ts +2 -0
  238. package/type/registry/index.js +32 -0
  239. package/type/registry/type.d.ts +13 -0
  240. package/type/registry/type.js +62 -0
  241. package/type/required/index.d.ts +1 -0
  242. package/type/required/index.js +44 -0
  243. package/type/required/required.d.ts +23 -0
  244. package/type/required/required.js +72 -0
  245. package/type/rest/index.d.ts +1 -0
  246. package/type/rest/index.js +44 -0
  247. package/type/rest/rest.d.ts +10 -0
  248. package/type/rest/rest.js +41 -0
  249. package/type/return-type/index.d.ts +1 -0
  250. package/type/return-type/index.js +44 -0
  251. package/type/return-type/return-type.d.ts +5 -0
  252. package/type/return-type/return-type.js +36 -0
  253. package/type/schema/anyschema.d.ts +32 -0
  254. package/type/schema/anyschema.js +29 -0
  255. package/type/schema/index.d.ts +2 -0
  256. package/type/schema/index.js +45 -0
  257. package/type/schema/schema.d.ts +29 -0
  258. package/type/schema/schema.js +30 -0
  259. package/type/static/index.d.ts +1 -0
  260. package/type/static/index.js +44 -0
  261. package/type/static/static.d.ts +34 -0
  262. package/type/static/static.js +29 -0
  263. package/type/strict/index.d.ts +1 -0
  264. package/type/strict/index.js +44 -0
  265. package/type/strict/strict.d.ts +3 -0
  266. package/type/strict/strict.js +35 -0
  267. package/type/string/index.d.ts +1 -0
  268. package/type/string/index.js +44 -0
  269. package/type/string/string.d.ts +25 -0
  270. package/type/string/string.js +36 -0
  271. package/type/symbol/index.d.ts +1 -0
  272. package/type/symbol/index.js +44 -0
  273. package/type/symbol/symbol.d.ts +10 -0
  274. package/type/symbol/symbol.js +36 -0
  275. package/type/symbols/index.d.ts +1 -0
  276. package/type/symbols/index.js +44 -0
  277. package/type/symbols/symbols.d.ts +10 -0
  278. package/type/symbols/symbols.js +40 -0
  279. package/type/template-literal/finite.d.ts +16 -0
  280. package/type/template-literal/finite.js +71 -0
  281. package/type/template-literal/generate.d.ts +15 -0
  282. package/type/template-literal/generate.js +74 -0
  283. package/type/template-literal/index.d.ts +7 -0
  284. package/type/template-literal/index.js +50 -0
  285. package/type/template-literal/parser.d.ts +19 -0
  286. package/type/template-literal/parser.js +175 -0
  287. package/type/template-literal/pattern.d.ts +4 -0
  288. package/type/template-literal/pattern.js +61 -0
  289. package/type/template-literal/syntax.d.ts +20 -0
  290. package/type/template-literal/syntax.js +87 -0
  291. package/type/template-literal/template-literal.d.ts +30 -0
  292. package/type/template-literal/template-literal.js +43 -0
  293. package/type/template-literal/union.d.ts +7 -0
  294. package/type/template-literal/union.js +48 -0
  295. package/type/transform/index.d.ts +1 -0
  296. package/type/transform/index.js +44 -0
  297. package/type/transform/transform.d.ts +29 -0
  298. package/type/transform/transform.js +72 -0
  299. package/type/tuple/index.d.ts +1 -0
  300. package/type/tuple/index.js +44 -0
  301. package/type/tuple/tuple.d.ts +15 -0
  302. package/type/tuple/tuple.js +42 -0
  303. package/type/type/index.d.ts +6 -0
  304. package/type/type/index.js +44 -0
  305. package/type/type/javascript.d.ts +58 -0
  306. package/type/type/javascript.js +120 -0
  307. package/type/type/json.d.ts +139 -0
  308. package/type/type/json.js +255 -0
  309. package/type/type/type.d.ts +58 -0
  310. package/type/type/type.js +153 -0
  311. package/type/uint8array/index.d.ts +1 -0
  312. package/type/uint8array/index.js +44 -0
  313. package/type/uint8array/uint8array.d.ts +13 -0
  314. package/type/uint8array/uint8array.js +36 -0
  315. package/type/undefined/index.d.ts +1 -0
  316. package/type/undefined/index.js +44 -0
  317. package/type/undefined/undefined.d.ts +9 -0
  318. package/type/undefined/undefined.js +36 -0
  319. package/type/union/index.d.ts +1 -0
  320. package/type/union/index.js +44 -0
  321. package/type/union/union.d.ts +16 -0
  322. package/type/union/union.js +50 -0
  323. package/type/unknown/index.d.ts +1 -0
  324. package/type/unknown/index.js +44 -0
  325. package/type/unknown/unknown.d.ts +8 -0
  326. package/type/unknown/unknown.js +39 -0
  327. package/type/unsafe/index.d.ts +1 -0
  328. package/type/unsafe/index.js +44 -0
  329. package/type/unsafe/unsafe.d.ts +11 -0
  330. package/type/unsafe/unsafe.js +39 -0
  331. package/type/void/index.d.ts +1 -0
  332. package/type/void/index.js +44 -0
  333. package/type/void/void.d.ts +9 -0
  334. package/type/void/void.js +40 -0
  335. package/value/cast/cast.d.ts +23 -0
  336. package/value/{cast.js → cast/cast.js} +62 -83
  337. package/value/cast/index.d.ts +1 -0
  338. package/value/cast/index.js +44 -0
  339. package/value/check/check.d.ts +10 -0
  340. package/value/{check.js → check/check.js} +50 -45
  341. package/value/check/index.d.ts +1 -0
  342. package/value/check/index.js +44 -0
  343. package/value/clean/clean.d.ts +5 -0
  344. package/value/clean/clean.js +167 -0
  345. package/value/clean/index.d.ts +1 -0
  346. package/value/clean/index.js +44 -0
  347. package/value/{clone.js → clone/clone.js} +6 -6
  348. package/value/clone/index.d.ts +1 -0
  349. package/value/clone/index.js +44 -0
  350. package/value/convert/convert.d.ts +9 -0
  351. package/value/{convert.js → convert/convert.js} +93 -116
  352. package/value/convert/index.d.ts +1 -0
  353. package/value/convert/index.js +44 -0
  354. package/value/create/create.d.ts +31 -0
  355. package/value/{create.js → create/create.js} +69 -62
  356. package/value/create/index.d.ts +1 -0
  357. package/value/create/index.js +44 -0
  358. package/value/default/default.d.ts +5 -0
  359. package/value/default/default.js +175 -0
  360. package/value/default/index.d.ts +1 -0
  361. package/value/default/index.js +44 -0
  362. package/value/delta/delta.d.ts +41 -0
  363. package/value/{delta.js → delta/delta.js} +57 -53
  364. package/value/delta/index.d.ts +1 -0
  365. package/value/delta/index.js +44 -0
  366. package/value/{deref.d.ts → deref/deref.d.ts} +4 -2
  367. package/value/{deref.js → deref/deref.js} +1 -2
  368. package/value/deref/index.d.ts +1 -0
  369. package/value/deref/index.js +44 -0
  370. package/value/{equal.js → equal/equal.js} +14 -14
  371. package/value/equal/index.d.ts +1 -0
  372. package/value/equal/index.js +44 -0
  373. package/value/guard/index.d.ts +1 -0
  374. package/value/guard/index.js +44 -0
  375. package/value/{hash.d.ts → hash/hash.d.ts} +0 -13
  376. package/value/{hash.js → hash/hash.js} +26 -26
  377. package/value/hash/index.d.ts +1 -0
  378. package/value/hash/index.js +44 -0
  379. package/value/index.d.ts +17 -4
  380. package/value/index.js +91 -10
  381. package/value/mutate/index.d.ts +1 -0
  382. package/value/mutate/index.js +44 -0
  383. package/value/{mutate.d.ts → mutate/mutate.d.ts} +1 -1
  384. package/value/{mutate.js → mutate/mutate.js} +25 -25
  385. package/value/pointer/index.d.ts +1 -0
  386. package/value/pointer/index.js +31 -0
  387. package/value/pointer/pointer.d.ts +21 -0
  388. package/value/pointer/pointer.js +151 -0
  389. package/value/transform/decode.d.ts +19 -0
  390. package/value/transform/decode.js +211 -0
  391. package/value/transform/encode.d.ts +20 -0
  392. package/value/transform/encode.js +219 -0
  393. package/value/transform/has.d.ts +3 -0
  394. package/value/transform/has.js +146 -0
  395. package/value/transform/index.d.ts +3 -0
  396. package/value/transform/index.js +46 -0
  397. package/value/value/index.d.ts +1 -0
  398. package/value/value/index.js +31 -0
  399. package/value/value/value.d.ts +53 -0
  400. package/value/value/value.js +125 -0
  401. package/typebox.d.ts +0 -962
  402. package/typebox.js +0 -2364
  403. package/value/cast.d.ts +0 -24
  404. package/value/check.d.ts +0 -9
  405. package/value/convert.d.ts +0 -10
  406. package/value/create.d.ts +0 -30
  407. package/value/delta.d.ts +0 -41
  408. package/value/pointer.d.ts +0 -24
  409. package/value/pointer.js +0 -148
  410. package/value/transform.d.ts +0 -37
  411. package/value/transform.js +0 -473
  412. package/value/value.d.ts +0 -47
  413. package/value/value.js +0 -117
  414. /package/value/{clone.d.ts → clone/clone.d.ts} +0 -0
  415. /package/value/{equal.d.ts → equal/equal.d.ts} +0 -0
  416. /package/value/{guard.d.ts → guard/guard.d.ts} +0 -0
  417. /package/value/{guard.js → guard/guard.js} +0 -0
@@ -27,17 +27,17 @@ THE SOFTWARE.
27
27
 
28
28
  ---------------------------------------------------------------------------*/
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.Cast = exports.Default = exports.DefaultClone = exports.ValueCastUnknownTypeError = exports.ValueCastRecursiveTypeError = exports.ValueCastNeverTypeError = exports.ValueCastArrayUniqueItemsTypeError = void 0;
31
- const guard_1 = require("./guard");
32
- const create_1 = require("./create");
33
- const check_1 = require("./check");
34
- const clone_1 = require("./clone");
35
- const deref_1 = require("./deref");
36
- const Types = require("../typebox");
37
- // --------------------------------------------------------------------------
30
+ exports.Cast = exports.ValueCastUnknownTypeError = exports.ValueCastRecursiveTypeError = exports.ValueCastNeverTypeError = exports.ValueCastArrayUniqueItemsTypeError = void 0;
31
+ const index_1 = require("../guard/index");
32
+ const index_2 = require("../../type/symbols/index");
33
+ const index_3 = require("../create/index");
34
+ const index_4 = require("../check/index");
35
+ const index_5 = require("../clone/index");
36
+ const index_6 = require("../deref/index");
37
+ // ------------------------------------------------------------------
38
38
  // Errors
39
- // --------------------------------------------------------------------------
40
- class ValueCastArrayUniqueItemsTypeError extends Types.TypeBoxError {
39
+ // ------------------------------------------------------------------
40
+ class ValueCastArrayUniqueItemsTypeError extends Error {
41
41
  constructor(schema, value) {
42
42
  super('Array cast produced invalid data due to uniqueItems constraint');
43
43
  this.schema = schema;
@@ -45,51 +45,52 @@ class ValueCastArrayUniqueItemsTypeError extends Types.TypeBoxError {
45
45
  }
46
46
  }
47
47
  exports.ValueCastArrayUniqueItemsTypeError = ValueCastArrayUniqueItemsTypeError;
48
- class ValueCastNeverTypeError extends Types.TypeBoxError {
48
+ class ValueCastNeverTypeError extends Error {
49
49
  constructor(schema) {
50
50
  super('Never types cannot be cast');
51
51
  this.schema = schema;
52
52
  }
53
53
  }
54
54
  exports.ValueCastNeverTypeError = ValueCastNeverTypeError;
55
- class ValueCastRecursiveTypeError extends Types.TypeBoxError {
55
+ class ValueCastRecursiveTypeError extends Error {
56
56
  constructor(schema) {
57
57
  super('Cannot cast recursive schemas');
58
58
  this.schema = schema;
59
59
  }
60
60
  }
61
61
  exports.ValueCastRecursiveTypeError = ValueCastRecursiveTypeError;
62
- class ValueCastUnknownTypeError extends Types.TypeBoxError {
62
+ class ValueCastUnknownTypeError extends Error {
63
63
  constructor(schema) {
64
64
  super('Unknown type');
65
65
  this.schema = schema;
66
66
  }
67
67
  }
68
68
  exports.ValueCastUnknownTypeError = ValueCastUnknownTypeError;
69
- // --------------------------------------------------------------------------
70
- // The following will score a schema against a value. For objects, the score
71
- // is the tally of points awarded for each property of the value. Property
72
- // points are (1.0 / propertyCount) to prevent large property counts biasing
73
- // results. Properties that match literal values are maximally awarded as
74
- // literals are typically used as union discriminator fields.
75
- // --------------------------------------------------------------------------
69
+ // ------------------------------------------------------------------
70
+ // The following will score a schema against a value. For objects,
71
+ // the score is the tally of points awarded for each property of
72
+ // the value. Property points are (1.0 / propertyCount) to prevent
73
+ // large property counts biasing results. Properties that match
74
+ // literal values are maximally awarded as literals are typically
75
+ // used as union discriminator fields.
76
+ // ------------------------------------------------------------------
76
77
  var UnionCastCreate;
77
78
  (function (UnionCastCreate) {
78
79
  function Score(schema, references, value) {
79
- if (schema[Types.Kind] === 'Object' && typeof value === 'object' && !(0, guard_1.IsNull)(value)) {
80
+ if (schema[index_2.Kind] === 'Object' && typeof value === 'object' && !(0, index_1.IsNull)(value)) {
80
81
  const object = schema;
81
82
  const keys = Object.getOwnPropertyNames(value);
82
83
  const entries = Object.entries(object.properties);
83
84
  const [point, max] = [1 / entries.length, entries.length];
84
85
  return entries.reduce((acc, [key, schema]) => {
85
- const literal = schema[Types.Kind] === 'Literal' && schema.const === value[key] ? max : 0;
86
- const checks = (0, check_1.Check)(schema, references, value[key]) ? point : 0;
86
+ const literal = schema[index_2.Kind] === 'Literal' && schema.const === value[key] ? max : 0;
87
+ const checks = (0, index_4.Check)(schema, references, value[key]) ? point : 0;
87
88
  const exists = keys.includes(key) ? point : 0;
88
89
  return acc + (literal + checks + exists);
89
90
  }, 0);
90
91
  }
91
92
  else {
92
- return (0, check_1.Check)(schema, references, value) ? 1 : 0;
93
+ return (0, index_4.Check)(schema, references, value) ? 1 : 0;
93
94
  }
94
95
  }
95
96
  function Select(union, references, value) {
@@ -114,37 +115,35 @@ var UnionCastCreate;
114
115
  }
115
116
  UnionCastCreate.Create = Create;
116
117
  })(UnionCastCreate || (UnionCastCreate = {}));
117
- // --------------------------------------------------------------------------
118
+ // ------------------------------------------------------------------
118
119
  // Default
119
- // --------------------------------------------------------------------------
120
+ // ------------------------------------------------------------------
120
121
  function DefaultClone(schema, references, value) {
121
- return (0, check_1.Check)(schema, references, value) ? (0, clone_1.Clone)(value) : (0, create_1.Create)(schema, references);
122
+ return (0, index_4.Check)(schema, references, value) ? (0, index_5.Clone)(value) : (0, index_3.Create)(schema, references);
122
123
  }
123
- exports.DefaultClone = DefaultClone;
124
124
  function Default(schema, references, value) {
125
- return (0, check_1.Check)(schema, references, value) ? value : (0, create_1.Create)(schema, references);
125
+ return (0, index_4.Check)(schema, references, value) ? value : (0, index_3.Create)(schema, references);
126
126
  }
127
- exports.Default = Default;
128
- // --------------------------------------------------------------------------
127
+ // ------------------------------------------------------------------
129
128
  // Cast
130
- // --------------------------------------------------------------------------
129
+ // ------------------------------------------------------------------
131
130
  function TArray(schema, references, value) {
132
- if ((0, check_1.Check)(schema, references, value))
133
- return (0, clone_1.Clone)(value);
134
- const created = (0, guard_1.IsArray)(value) ? (0, clone_1.Clone)(value) : (0, create_1.Create)(schema, references);
135
- const minimum = (0, guard_1.IsNumber)(schema.minItems) && created.length < schema.minItems ? [...created, ...Array.from({ length: schema.minItems - created.length }, () => null)] : created;
136
- const maximum = (0, guard_1.IsNumber)(schema.maxItems) && minimum.length > schema.maxItems ? minimum.slice(0, schema.maxItems) : minimum;
131
+ if ((0, index_4.Check)(schema, references, value))
132
+ return (0, index_5.Clone)(value);
133
+ const created = (0, index_1.IsArray)(value) ? (0, index_5.Clone)(value) : (0, index_3.Create)(schema, references);
134
+ const minimum = (0, index_1.IsNumber)(schema.minItems) && created.length < schema.minItems ? [...created, ...Array.from({ length: schema.minItems - created.length }, () => null)] : created;
135
+ const maximum = (0, index_1.IsNumber)(schema.maxItems) && minimum.length > schema.maxItems ? minimum.slice(0, schema.maxItems) : minimum;
137
136
  const casted = maximum.map((value) => Visit(schema.items, references, value));
138
137
  if (schema.uniqueItems !== true)
139
138
  return casted;
140
139
  const unique = [...new Set(casted)];
141
- if (!(0, check_1.Check)(schema, references, unique))
140
+ if (!(0, index_4.Check)(schema, references, unique))
142
141
  throw new ValueCastArrayUniqueItemsTypeError(schema, unique);
143
142
  return unique;
144
143
  }
145
144
  function TConstructor(schema, references, value) {
146
- if ((0, check_1.Check)(schema, references, value))
147
- return (0, create_1.Create)(schema, references);
145
+ if ((0, index_4.Check)(schema, references, value))
146
+ return (0, index_3.Create)(schema, references);
148
147
  const required = new Set(schema.returns.required || []);
149
148
  const result = function () { };
150
149
  for (const [key, property] of Object.entries(schema.returns.properties)) {
@@ -155,18 +154,18 @@ function TConstructor(schema, references, value) {
155
154
  return result;
156
155
  }
157
156
  function TIntersect(schema, references, value) {
158
- const created = (0, create_1.Create)(schema, references);
159
- const mapped = (0, guard_1.IsPlainObject)(created) && (0, guard_1.IsPlainObject)(value) ? { ...created, ...value } : value;
160
- return (0, check_1.Check)(schema, references, mapped) ? mapped : (0, create_1.Create)(schema, references);
157
+ const created = (0, index_3.Create)(schema, references);
158
+ const mapped = (0, index_1.IsPlainObject)(created) && (0, index_1.IsPlainObject)(value) ? { ...created, ...value } : value;
159
+ return (0, index_4.Check)(schema, references, mapped) ? mapped : (0, index_3.Create)(schema, references);
161
160
  }
162
161
  function TNever(schema, references, value) {
163
162
  throw new ValueCastNeverTypeError(schema);
164
163
  }
165
164
  function TObject(schema, references, value) {
166
- if ((0, check_1.Check)(schema, references, value))
165
+ if ((0, index_4.Check)(schema, references, value))
167
166
  return value;
168
167
  if (value === null || typeof value !== 'object')
169
- return (0, create_1.Create)(schema, references);
168
+ return (0, index_3.Create)(schema, references);
170
169
  const required = new Set(schema.required || []);
171
170
  const result = {};
172
171
  for (const [key, property] of Object.entries(schema.properties)) {
@@ -186,10 +185,10 @@ function TObject(schema, references, value) {
186
185
  return result;
187
186
  }
188
187
  function TRecord(schema, references, value) {
189
- if ((0, check_1.Check)(schema, references, value))
190
- return (0, clone_1.Clone)(value);
188
+ if ((0, index_4.Check)(schema, references, value))
189
+ return (0, index_5.Clone)(value);
191
190
  if (value === null || typeof value !== 'object' || Array.isArray(value) || value instanceof Date)
192
- return (0, create_1.Create)(schema, references);
191
+ return (0, index_3.Create)(schema, references);
193
192
  const subschemaPropertyName = Object.getOwnPropertyNames(schema.patternProperties)[0];
194
193
  const subschema = schema.patternProperties[subschemaPropertyName];
195
194
  const result = {};
@@ -199,30 +198,30 @@ function TRecord(schema, references, value) {
199
198
  return result;
200
199
  }
201
200
  function TRef(schema, references, value) {
202
- return Visit((0, deref_1.Deref)(schema, references), references, value);
201
+ return Visit((0, index_6.Deref)(schema, references), references, value);
203
202
  }
204
203
  function TThis(schema, references, value) {
205
- return Visit((0, deref_1.Deref)(schema, references), references, value);
204
+ return Visit((0, index_6.Deref)(schema, references), references, value);
206
205
  }
207
206
  function TTuple(schema, references, value) {
208
- if ((0, check_1.Check)(schema, references, value))
209
- return (0, clone_1.Clone)(value);
210
- if (!(0, guard_1.IsArray)(value))
211
- return (0, create_1.Create)(schema, references);
207
+ if ((0, index_4.Check)(schema, references, value))
208
+ return (0, index_5.Clone)(value);
209
+ if (!(0, index_1.IsArray)(value))
210
+ return (0, index_3.Create)(schema, references);
212
211
  if (schema.items === undefined)
213
212
  return [];
214
213
  return schema.items.map((schema, index) => Visit(schema, references, value[index]));
215
214
  }
216
215
  function TUnion(schema, references, value) {
217
- return (0, check_1.Check)(schema, references, value) ? (0, clone_1.Clone)(value) : UnionCastCreate.Create(schema, references, value);
216
+ return (0, index_4.Check)(schema, references, value) ? (0, index_5.Clone)(value) : UnionCastCreate.Create(schema, references, value);
218
217
  }
219
218
  function Visit(schema, references, value) {
220
- const references_ = (0, guard_1.IsString)(schema.$id) ? [...references, schema] : references;
219
+ const references_ = (0, index_1.IsString)(schema.$id) ? [...references, schema] : references;
221
220
  const schema_ = schema;
222
- switch (schema[Types.Kind]) {
223
- // ------------------------------------------------------
221
+ switch (schema[index_2.Kind]) {
222
+ // --------------------------------------------------------------
224
223
  // Structural
225
- // ------------------------------------------------------
224
+ // --------------------------------------------------------------
226
225
  case 'Array':
227
226
  return TArray(schema_, references_, value);
228
227
  case 'Constructor':
@@ -243,37 +242,17 @@ function Visit(schema, references, value) {
243
242
  return TTuple(schema_, references_, value);
244
243
  case 'Union':
245
244
  return TUnion(schema_, references_, value);
246
- // ------------------------------------------------------
245
+ // --------------------------------------------------------------
247
246
  // DefaultClone
248
- // ------------------------------------------------------
247
+ // --------------------------------------------------------------
249
248
  case 'Date':
250
249
  case 'Symbol':
251
250
  case 'Uint8Array':
252
251
  return DefaultClone(schema, references, value);
253
- // ------------------------------------------------------
252
+ // --------------------------------------------------------------
254
253
  // Default
255
- // ------------------------------------------------------
256
- case 'Any':
257
- case 'AsyncIterator':
258
- case 'BigInt':
259
- case 'Boolean':
260
- case 'Function':
261
- case 'Integer':
262
- case 'Iterator':
263
- case 'Literal':
264
- case 'Not':
265
- case 'Null':
266
- case 'Number':
267
- case 'Promise':
268
- case 'String':
269
- case 'TemplateLiteral':
270
- case 'Undefined':
271
- case 'Unknown':
272
- case 'Void':
273
- return Default(schema_, references_, value);
254
+ // --------------------------------------------------------------
274
255
  default:
275
- if (!Types.TypeRegistry.Has(schema_[Types.Kind]))
276
- throw new ValueCastUnknownTypeError(schema_);
277
256
  return Default(schema_, references_, value);
278
257
  }
279
258
  }
@@ -0,0 +1 @@
1
+ export * from './cast';
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /*--------------------------------------------------------------------------
3
+
4
+ @sinclair/typebox/value
5
+
6
+ The MIT License (MIT)
7
+
8
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in
18
+ all copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
+ THE SOFTWARE.
27
+
28
+ ---------------------------------------------------------------------------*/
29
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
30
+ if (k2 === undefined) k2 = k;
31
+ var desc = Object.getOwnPropertyDescriptor(m, k);
32
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
33
+ desc = { enumerable: true, get: function() { return m[k]; } };
34
+ }
35
+ Object.defineProperty(o, k2, desc);
36
+ }) : (function(o, m, k, k2) {
37
+ if (k2 === undefined) k2 = k;
38
+ o[k2] = m[k];
39
+ }));
40
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
41
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ __exportStar(require("./cast"), exports);
@@ -0,0 +1,10 @@
1
+ import type { TSchema } from '../../type/schema/index';
2
+ import type { Static } from '../../type/static/index';
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>;
@@ -28,15 +28,20 @@ THE SOFTWARE.
28
28
  ---------------------------------------------------------------------------*/
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
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");
31
+ const index_1 = require("../guard/index");
32
+ const index_2 = require("../../system/index");
33
+ const index_3 = require("../deref/index");
34
+ const index_4 = require("../hash/index");
35
+ const index_5 = require("../../type/symbols/index");
36
+ const index_6 = require("../../type/keyof/index");
37
+ const index_7 = require("../../type/extends/index");
38
+ const type_1 = require("../../type/guard/type");
39
+ const index_8 = require("../../type/registry/index");
40
+ const index_9 = require("../../type/never/index");
36
41
  // --------------------------------------------------------------------------
37
42
  // Errors
38
43
  // --------------------------------------------------------------------------
39
- class ValueCheckUnknownTypeError extends Types.TypeBoxError {
44
+ class ValueCheckUnknownTypeError extends Error {
40
45
  constructor(schema) {
41
46
  super(`Unknown type`);
42
47
  this.schema = schema;
@@ -47,7 +52,7 @@ exports.ValueCheckUnknownTypeError = ValueCheckUnknownTypeError;
47
52
  // TypeGuards
48
53
  // --------------------------------------------------------------------------
49
54
  function IsAnyOrUnknown(schema) {
50
- return schema[Types.Kind] === 'Any' || schema[Types.Kind] === 'Unknown';
55
+ return schema[index_5.Kind] === 'Any' || schema[index_5.Kind] === 'Unknown';
51
56
  }
52
57
  // --------------------------------------------------------------------------
53
58
  // Guards
@@ -62,7 +67,7 @@ function TAny(schema, references, value) {
62
67
  return true;
63
68
  }
64
69
  function TArray(schema, references, value) {
65
- if (!(0, guard_1.IsArray)(value))
70
+ if (!(0, index_1.IsArray)(value))
66
71
  return false;
67
72
  if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {
68
73
  return false;
@@ -75,7 +80,7 @@ function TArray(schema, references, value) {
75
80
  }
76
81
  // prettier-ignore
77
82
  if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) {
78
- const hashed = (0, hash_1.Hash)(element);
83
+ const hashed = (0, index_4.Hash)(element);
79
84
  if (set.has(hashed)) {
80
85
  return false;
81
86
  }
@@ -86,27 +91,27 @@ function TArray(schema, references, value) {
86
91
  return false;
87
92
  }
88
93
  // contains
89
- if (!(IsDefined(schema.contains) || (0, guard_1.IsNumber)(schema.minContains) || (0, guard_1.IsNumber)(schema.maxContains))) {
94
+ if (!(IsDefined(schema.contains) || (0, index_1.IsNumber)(schema.minContains) || (0, index_1.IsNumber)(schema.maxContains))) {
90
95
  return true; // exit
91
96
  }
92
- const containsSchema = IsDefined(schema.contains) ? schema.contains : Types.Type.Never();
97
+ const containsSchema = IsDefined(schema.contains) ? schema.contains : (0, index_9.Never)();
93
98
  const containsCount = value.reduce((acc, value) => (Visit(containsSchema, references, value) ? acc + 1 : acc), 0);
94
99
  if (containsCount === 0) {
95
100
  return false;
96
101
  }
97
- if ((0, guard_1.IsNumber)(schema.minContains) && containsCount < schema.minContains) {
102
+ if ((0, index_1.IsNumber)(schema.minContains) && containsCount < schema.minContains) {
98
103
  return false;
99
104
  }
100
- if ((0, guard_1.IsNumber)(schema.maxContains) && containsCount > schema.maxContains) {
105
+ if ((0, index_1.IsNumber)(schema.maxContains) && containsCount > schema.maxContains) {
101
106
  return false;
102
107
  }
103
108
  return true;
104
109
  }
105
110
  function TAsyncIterator(schema, references, value) {
106
- return (0, guard_1.IsAsyncIterator)(value);
111
+ return (0, index_1.IsAsyncIterator)(value);
107
112
  }
108
113
  function TBigInt(schema, references, value) {
109
- if (!(0, guard_1.IsBigInt)(value))
114
+ if (!(0, index_1.IsBigInt)(value))
110
115
  return false;
111
116
  if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
112
117
  return false;
@@ -126,13 +131,13 @@ function TBigInt(schema, references, value) {
126
131
  return true;
127
132
  }
128
133
  function TBoolean(schema, references, value) {
129
- return (0, guard_1.IsBoolean)(value);
134
+ return (0, index_1.IsBoolean)(value);
130
135
  }
131
136
  function TConstructor(schema, references, value) {
132
137
  return Visit(schema.returns, references, value.prototype);
133
138
  }
134
139
  function TDate(schema, references, value) {
135
- if (!(0, guard_1.IsDate)(value))
140
+ if (!(0, index_1.IsDate)(value))
136
141
  return false;
137
142
  if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {
138
143
  return false;
@@ -152,10 +157,10 @@ function TDate(schema, references, value) {
152
157
  return true;
153
158
  }
154
159
  function TFunction(schema, references, value) {
155
- return (0, guard_1.IsFunction)(value);
160
+ return (0, index_1.IsFunction)(value);
156
161
  }
157
162
  function TInteger(schema, references, value) {
158
- if (!(0, guard_1.IsInteger)(value)) {
163
+ if (!(0, index_1.IsInteger)(value)) {
159
164
  return false;
160
165
  }
161
166
  if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
@@ -178,12 +183,12 @@ function TInteger(schema, references, value) {
178
183
  function TIntersect(schema, references, value) {
179
184
  const check1 = schema.allOf.every((schema) => Visit(schema, references, value));
180
185
  if (schema.unevaluatedProperties === false) {
181
- const keyPattern = new RegExp(Types.KeyResolver.ResolvePattern(schema));
186
+ const keyPattern = new RegExp((0, index_6.KeyOfStringResolvePattern)(schema));
182
187
  const check2 = Object.getOwnPropertyNames(value).every((key) => keyPattern.test(key));
183
188
  return check1 && check2;
184
189
  }
185
- else if (Types.TypeGuard.TSchema(schema.unevaluatedProperties)) {
186
- const keyCheck = new RegExp(Types.KeyResolver.ResolvePattern(schema));
190
+ else if ((0, type_1.TSchema)(schema.unevaluatedProperties)) {
191
+ const keyCheck = new RegExp((0, index_6.KeyOfStringResolvePattern)(schema));
187
192
  const check2 = Object.getOwnPropertyNames(value).every((key) => keyCheck.test(key) || Visit(schema.unevaluatedProperties, references, value[key]));
188
193
  return check1 && check2;
189
194
  }
@@ -192,7 +197,7 @@ function TIntersect(schema, references, value) {
192
197
  }
193
198
  }
194
199
  function TIterator(schema, references, value) {
195
- return (0, guard_1.IsIterator)(value);
200
+ return (0, index_1.IsIterator)(value);
196
201
  }
197
202
  function TLiteral(schema, references, value) {
198
203
  return value === schema.const;
@@ -204,10 +209,10 @@ function TNot(schema, references, value) {
204
209
  return !Visit(schema.not, references, value);
205
210
  }
206
211
  function TNull(schema, references, value) {
207
- return (0, guard_1.IsNull)(value);
212
+ return (0, index_1.IsNull)(value);
208
213
  }
209
214
  function TNumber(schema, references, value) {
210
- if (!index_1.TypeSystemPolicy.IsNumberLike(value))
215
+ if (!index_2.TypeSystemPolicy.IsNumberLike(value))
211
216
  return false;
212
217
  if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
213
218
  return false;
@@ -227,7 +232,7 @@ function TNumber(schema, references, value) {
227
232
  return true;
228
233
  }
229
234
  function TObject(schema, references, value) {
230
- if (!index_1.TypeSystemPolicy.IsObjectLike(value))
235
+ if (!index_2.TypeSystemPolicy.IsObjectLike(value))
231
236
  return false;
232
237
  if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {
233
238
  return false;
@@ -242,12 +247,12 @@ function TObject(schema, references, value) {
242
247
  if (!Visit(property, references, value[knownKey])) {
243
248
  return false;
244
249
  }
245
- if ((Types.ExtendsUndefined.Check(property) || IsAnyOrUnknown(property)) && !(knownKey in value)) {
250
+ if (((0, index_7.ExtendsUndefinedCheck)(property) || IsAnyOrUnknown(property)) && !(knownKey in value)) {
246
251
  return false;
247
252
  }
248
253
  }
249
254
  else {
250
- if (index_1.TypeSystemPolicy.IsExactOptionalProperty(value, knownKey) && !Visit(property, references, value[knownKey])) {
255
+ if (index_2.TypeSystemPolicy.IsExactOptionalProperty(value, knownKey) && !Visit(property, references, value[knownKey])) {
251
256
  return false;
252
257
  }
253
258
  }
@@ -271,10 +276,10 @@ function TObject(schema, references, value) {
271
276
  }
272
277
  }
273
278
  function TPromise(schema, references, value) {
274
- return (0, guard_1.IsPromise)(value);
279
+ return (0, index_1.IsPromise)(value);
275
280
  }
276
281
  function TRecord(schema, references, value) {
277
- if (!index_1.TypeSystemPolicy.IsRecordLike(value)) {
282
+ if (!index_2.TypeSystemPolicy.IsRecordLike(value)) {
278
283
  return false;
279
284
  }
280
285
  if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {
@@ -301,10 +306,10 @@ function TRecord(schema, references, value) {
301
306
  return check1 && check2 && check3;
302
307
  }
303
308
  function TRef(schema, references, value) {
304
- return Visit((0, deref_1.Deref)(schema, references), references, value);
309
+ return Visit((0, index_3.Deref)(schema, references), references, value);
305
310
  }
306
311
  function TString(schema, references, value) {
307
- if (!(0, guard_1.IsString)(value)) {
312
+ if (!(0, index_1.IsString)(value)) {
308
313
  return false;
309
314
  }
310
315
  if (IsDefined(schema.minLength)) {
@@ -321,24 +326,24 @@ function TString(schema, references, value) {
321
326
  return false;
322
327
  }
323
328
  if (IsDefined(schema.format)) {
324
- if (!Types.FormatRegistry.Has(schema.format))
329
+ if (!index_8.FormatRegistry.Has(schema.format))
325
330
  return false;
326
- const func = Types.FormatRegistry.Get(schema.format);
331
+ const func = index_8.FormatRegistry.Get(schema.format);
327
332
  return func(value);
328
333
  }
329
334
  return true;
330
335
  }
331
336
  function TSymbol(schema, references, value) {
332
- return (0, guard_1.IsSymbol)(value);
337
+ return (0, index_1.IsSymbol)(value);
333
338
  }
334
339
  function TTemplateLiteral(schema, references, value) {
335
- return (0, guard_1.IsString)(value) && new RegExp(schema.pattern).test(value);
340
+ return (0, index_1.IsString)(value) && new RegExp(schema.pattern).test(value);
336
341
  }
337
342
  function TThis(schema, references, value) {
338
- return Visit((0, deref_1.Deref)(schema, references), references, value);
343
+ return Visit((0, index_3.Deref)(schema, references), references, value);
339
344
  }
340
345
  function TTuple(schema, references, value) {
341
- if (!(0, guard_1.IsArray)(value)) {
346
+ if (!(0, index_1.IsArray)(value)) {
342
347
  return false;
343
348
  }
344
349
  if (schema.items === undefined && !(value.length === 0)) {
@@ -357,13 +362,13 @@ function TTuple(schema, references, value) {
357
362
  return true;
358
363
  }
359
364
  function TUndefined(schema, references, value) {
360
- return (0, guard_1.IsUndefined)(value);
365
+ return (0, index_1.IsUndefined)(value);
361
366
  }
362
367
  function TUnion(schema, references, value) {
363
368
  return schema.anyOf.some((inner) => Visit(inner, references, value));
364
369
  }
365
370
  function TUint8Array(schema, references, value) {
366
- if (!(0, guard_1.IsUint8Array)(value)) {
371
+ if (!(0, index_1.IsUint8Array)(value)) {
367
372
  return false;
368
373
  }
369
374
  if (IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) {
@@ -378,18 +383,18 @@ function TUnknown(schema, references, value) {
378
383
  return true;
379
384
  }
380
385
  function TVoid(schema, references, value) {
381
- return index_1.TypeSystemPolicy.IsVoidLike(value);
386
+ return index_2.TypeSystemPolicy.IsVoidLike(value);
382
387
  }
383
388
  function TKind(schema, references, value) {
384
- if (!Types.TypeRegistry.Has(schema[Types.Kind]))
389
+ if (!index_8.TypeRegistry.Has(schema[index_5.Kind]))
385
390
  return false;
386
- const func = Types.TypeRegistry.Get(schema[Types.Kind]);
391
+ const func = index_8.TypeRegistry.Get(schema[index_5.Kind]);
387
392
  return func(schema, value);
388
393
  }
389
394
  function Visit(schema, references, value) {
390
395
  const references_ = IsDefined(schema.$id) ? [...references, schema] : references;
391
396
  const schema_ = schema;
392
- switch (schema_[Types.Kind]) {
397
+ switch (schema_[index_5.Kind]) {
393
398
  case 'Any':
394
399
  return TAny(schema_, references_, value);
395
400
  case 'Array':
@@ -451,7 +456,7 @@ function Visit(schema, references, value) {
451
456
  case 'Void':
452
457
  return TVoid(schema_, references_, value);
453
458
  default:
454
- if (!Types.TypeRegistry.Has(schema_[Types.Kind]))
459
+ if (!index_8.TypeRegistry.Has(schema_[index_5.Kind]))
455
460
  throw new ValueCheckUnknownTypeError(schema_);
456
461
  return TKind(schema_, references_, value);
457
462
  }
@@ -0,0 +1 @@
1
+ export * from './check';
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /*--------------------------------------------------------------------------
3
+
4
+ @sinclair/typebox/value
5
+
6
+ The MIT License (MIT)
7
+
8
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in
18
+ all copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
+ THE SOFTWARE.
27
+
28
+ ---------------------------------------------------------------------------*/
29
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
30
+ if (k2 === undefined) k2 = k;
31
+ var desc = Object.getOwnPropertyDescriptor(m, k);
32
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
33
+ desc = { enumerable: true, get: function() { return m[k]; } };
34
+ }
35
+ Object.defineProperty(o, k2, desc);
36
+ }) : (function(o, m, k, k2) {
37
+ if (k2 === undefined) k2 = k;
38
+ o[k2] = m[k];
39
+ }));
40
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
41
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ __exportStar(require("./check"), exports);