@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
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ /*--------------------------------------------------------------------------
3
+
4
+ @sinclair/typebox/system
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
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.DefaultErrorFunction = exports.TypeSystemErrorFunction = void 0;
31
+ const errors_1 = require("../errors/errors");
32
+ const index_1 = require("../type/symbols/index");
33
+ // ------------------------------------------------------------------
34
+ // TypeSystemErrorFunction
35
+ // ------------------------------------------------------------------
36
+ /** Manages error message providers */
37
+ var TypeSystemErrorFunction;
38
+ (function (TypeSystemErrorFunction) {
39
+ let errorMessageFunction = DefaultErrorFunction;
40
+ /** Resets the error message function to en-us */
41
+ function Reset() {
42
+ errorMessageFunction = DefaultErrorFunction;
43
+ }
44
+ TypeSystemErrorFunction.Reset = Reset;
45
+ /** Sets the error message function used to generate error messages */
46
+ function Set(callback) {
47
+ errorMessageFunction = callback;
48
+ }
49
+ TypeSystemErrorFunction.Set = Set;
50
+ /** Gets the error message function */
51
+ function Get() {
52
+ return errorMessageFunction;
53
+ }
54
+ TypeSystemErrorFunction.Get = Get;
55
+ })(TypeSystemErrorFunction || (exports.TypeSystemErrorFunction = TypeSystemErrorFunction = {}));
56
+ // ------------------------------------------------------------------
57
+ // DefaultErrorFunction
58
+ // ------------------------------------------------------------------
59
+ /** Creates an error message using en-US as the default locale */
60
+ function DefaultErrorFunction(schema, errorType) {
61
+ switch (errorType) {
62
+ case errors_1.ValueErrorType.ArrayContains:
63
+ return 'Expected array to contain at least one matching value';
64
+ case errors_1.ValueErrorType.ArrayMaxContains:
65
+ return `Expected array to contain no more than ${schema.maxContains} matching values`;
66
+ case errors_1.ValueErrorType.ArrayMinContains:
67
+ return `Expected array to contain at least ${schema.minContains} matching values`;
68
+ case errors_1.ValueErrorType.ArrayMaxItems:
69
+ return `Expected array length to be less or equal to ${schema.maxItems}`;
70
+ case errors_1.ValueErrorType.ArrayMinItems:
71
+ return `Expected array length to be greater or equal to ${schema.minItems}`;
72
+ case errors_1.ValueErrorType.ArrayUniqueItems:
73
+ return 'Expected array elements to be unique';
74
+ case errors_1.ValueErrorType.Array:
75
+ return 'Expected array';
76
+ case errors_1.ValueErrorType.AsyncIterator:
77
+ return 'Expected AsyncIterator';
78
+ case errors_1.ValueErrorType.BigIntExclusiveMaximum:
79
+ return `Expected bigint to be less than ${schema.exclusiveMaximum}`;
80
+ case errors_1.ValueErrorType.BigIntExclusiveMinimum:
81
+ return `Expected bigint to be greater than ${schema.exclusiveMinimum}`;
82
+ case errors_1.ValueErrorType.BigIntMaximum:
83
+ return `Expected bigint to be less or equal to ${schema.maximum}`;
84
+ case errors_1.ValueErrorType.BigIntMinimum:
85
+ return `Expected bigint to be greater or equal to ${schema.minimum}`;
86
+ case errors_1.ValueErrorType.BigIntMultipleOf:
87
+ return `Expected bigint to be a multiple of ${schema.multipleOf}`;
88
+ case errors_1.ValueErrorType.BigInt:
89
+ return 'Expected bigint';
90
+ case errors_1.ValueErrorType.Boolean:
91
+ return 'Expected boolean';
92
+ case errors_1.ValueErrorType.DateExclusiveMinimumTimestamp:
93
+ return `Expected Date timestamp to be greater than ${schema.exclusiveMinimumTimestamp}`;
94
+ case errors_1.ValueErrorType.DateExclusiveMaximumTimestamp:
95
+ return `Expected Date timestamp to be less than ${schema.exclusiveMaximumTimestamp}`;
96
+ case errors_1.ValueErrorType.DateMinimumTimestamp:
97
+ return `Expected Date timestamp to be greater or equal to ${schema.minimumTimestamp}`;
98
+ case errors_1.ValueErrorType.DateMaximumTimestamp:
99
+ return `Expected Date timestamp to be less or equal to ${schema.maximumTimestamp}`;
100
+ case errors_1.ValueErrorType.DateMultipleOfTimestamp:
101
+ return `Expected Date timestamp to be a multiple of ${schema.multipleOfTimestamp}`;
102
+ case errors_1.ValueErrorType.Date:
103
+ return 'Expected Date';
104
+ case errors_1.ValueErrorType.Function:
105
+ return 'Expected function';
106
+ case errors_1.ValueErrorType.IntegerExclusiveMaximum:
107
+ return `Expected integer to be less than ${schema.exclusiveMaximum}`;
108
+ case errors_1.ValueErrorType.IntegerExclusiveMinimum:
109
+ return `Expected integer to be greater than ${schema.exclusiveMinimum}`;
110
+ case errors_1.ValueErrorType.IntegerMaximum:
111
+ return `Expected integer to be less or equal to ${schema.maximum}`;
112
+ case errors_1.ValueErrorType.IntegerMinimum:
113
+ return `Expected integer to be greater or equal to ${schema.minimum}`;
114
+ case errors_1.ValueErrorType.IntegerMultipleOf:
115
+ return `Expected integer to be a multiple of ${schema.multipleOf}`;
116
+ case errors_1.ValueErrorType.Integer:
117
+ return 'Expected integer';
118
+ case errors_1.ValueErrorType.IntersectUnevaluatedProperties:
119
+ return 'Unexpected property';
120
+ case errors_1.ValueErrorType.Intersect:
121
+ return 'Expected all values to match';
122
+ case errors_1.ValueErrorType.Iterator:
123
+ return 'Expected Iterator';
124
+ case errors_1.ValueErrorType.Literal:
125
+ return `Expected ${typeof schema.const === 'string' ? `'${schema.const}'` : schema.const}`;
126
+ case errors_1.ValueErrorType.Never:
127
+ return 'Never';
128
+ case errors_1.ValueErrorType.Not:
129
+ return 'Value should not match';
130
+ case errors_1.ValueErrorType.Null:
131
+ return 'Expected null';
132
+ case errors_1.ValueErrorType.NumberExclusiveMaximum:
133
+ return `Expected number to be less than ${schema.exclusiveMaximum}`;
134
+ case errors_1.ValueErrorType.NumberExclusiveMinimum:
135
+ return `Expected number to be greater than ${schema.exclusiveMinimum}`;
136
+ case errors_1.ValueErrorType.NumberMaximum:
137
+ return `Expected number to be less or equal to ${schema.maximum}`;
138
+ case errors_1.ValueErrorType.NumberMinimum:
139
+ return `Expected number to be greater or equal to ${schema.minimum}`;
140
+ case errors_1.ValueErrorType.NumberMultipleOf:
141
+ return `Expected number to be a multiple of ${schema.multipleOf}`;
142
+ case errors_1.ValueErrorType.Number:
143
+ return 'Expected number';
144
+ case errors_1.ValueErrorType.Object:
145
+ return 'Expected object';
146
+ case errors_1.ValueErrorType.ObjectAdditionalProperties:
147
+ return 'Unexpected property';
148
+ case errors_1.ValueErrorType.ObjectMaxProperties:
149
+ return `Expected object to have no more than ${schema.maxProperties} properties`;
150
+ case errors_1.ValueErrorType.ObjectMinProperties:
151
+ return `Expected object to have at least ${schema.minProperties} properties`;
152
+ case errors_1.ValueErrorType.ObjectRequiredProperty:
153
+ return 'Required property';
154
+ case errors_1.ValueErrorType.Promise:
155
+ return 'Expected Promise';
156
+ case errors_1.ValueErrorType.StringFormatUnknown:
157
+ return `Unknown format '${schema.format}'`;
158
+ case errors_1.ValueErrorType.StringFormat:
159
+ return `Expected string to match '${schema.format}' format`;
160
+ case errors_1.ValueErrorType.StringMaxLength:
161
+ return `Expected string length less or equal to ${schema.maxLength}`;
162
+ case errors_1.ValueErrorType.StringMinLength:
163
+ return `Expected string length greater or equal to ${schema.minLength}`;
164
+ case errors_1.ValueErrorType.StringPattern:
165
+ return `Expected string to match '${schema.pattern}'`;
166
+ case errors_1.ValueErrorType.String:
167
+ return 'Expected string';
168
+ case errors_1.ValueErrorType.Symbol:
169
+ return 'Expected symbol';
170
+ case errors_1.ValueErrorType.TupleLength:
171
+ return `Expected tuple to have ${schema.maxItems || 0} elements`;
172
+ case errors_1.ValueErrorType.Tuple:
173
+ return 'Expected tuple';
174
+ case errors_1.ValueErrorType.Uint8ArrayMaxByteLength:
175
+ return `Expected byte length less or equal to ${schema.maxByteLength}`;
176
+ case errors_1.ValueErrorType.Uint8ArrayMinByteLength:
177
+ return `Expected byte length greater or equal to ${schema.minByteLength}`;
178
+ case errors_1.ValueErrorType.Uint8Array:
179
+ return 'Expected Uint8Array';
180
+ case errors_1.ValueErrorType.Undefined:
181
+ return 'Expected undefined';
182
+ case errors_1.ValueErrorType.Union:
183
+ return 'Expected union value';
184
+ case errors_1.ValueErrorType.Void:
185
+ return 'Expected void';
186
+ case errors_1.ValueErrorType.Kind:
187
+ return `Expected kind '${schema[index_1.Kind]}'`;
188
+ default:
189
+ return 'Unknown error type';
190
+ }
191
+ }
192
+ exports.DefaultErrorFunction = DefaultErrorFunction;
package/system/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export { ValueErrorType } from '../errors/errors';
2
- export * from './system';
2
+ export { DefaultErrorFunction, ErrorFunction, TypeSystemErrorFunction } from './errors';
3
+ export { TypeSystemPolicy } from './policy';
4
+ export { TypeSystem, TypeSystemDuplicateFormat, TypeSystemDuplicateTypeKind } from './system';
package/system/index.js CHANGED
@@ -26,22 +26,16 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
26
  THE SOFTWARE.
27
27
 
28
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
29
  Object.defineProperty(exports, "__esModule", { value: true });
44
- exports.ValueErrorType = void 0;
30
+ exports.TypeSystemDuplicateTypeKind = exports.TypeSystemDuplicateFormat = exports.TypeSystem = exports.TypeSystemPolicy = exports.TypeSystemErrorFunction = exports.DefaultErrorFunction = exports.ValueErrorType = void 0;
45
31
  var errors_1 = require("../errors/errors");
46
32
  Object.defineProperty(exports, "ValueErrorType", { enumerable: true, get: function () { return errors_1.ValueErrorType; } });
47
- __exportStar(require("./system"), exports);
33
+ var errors_2 = require("./errors");
34
+ Object.defineProperty(exports, "DefaultErrorFunction", { enumerable: true, get: function () { return errors_2.DefaultErrorFunction; } });
35
+ Object.defineProperty(exports, "TypeSystemErrorFunction", { enumerable: true, get: function () { return errors_2.TypeSystemErrorFunction; } });
36
+ var policy_1 = require("./policy");
37
+ Object.defineProperty(exports, "TypeSystemPolicy", { enumerable: true, get: function () { return policy_1.TypeSystemPolicy; } });
38
+ var system_1 = require("./system");
39
+ Object.defineProperty(exports, "TypeSystem", { enumerable: true, get: function () { return system_1.TypeSystem; } });
40
+ Object.defineProperty(exports, "TypeSystemDuplicateFormat", { enumerable: true, get: function () { return system_1.TypeSystemDuplicateFormat; } });
41
+ Object.defineProperty(exports, "TypeSystemDuplicateTypeKind", { enumerable: true, get: function () { return system_1.TypeSystemDuplicateTypeKind; } });
@@ -0,0 +1,21 @@
1
+ /** Shared assertion routines used by the value and errors modules */
2
+ export declare namespace TypeSystemPolicy {
3
+ /** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */
4
+ let ExactOptionalPropertyTypes: boolean;
5
+ /** Sets whether arrays should be treated as a kind of objects. The default is `false` */
6
+ let AllowArrayObject: boolean;
7
+ /** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */
8
+ let AllowNaN: boolean;
9
+ /** Sets whether `null` should validate for void types. The default is `false` */
10
+ let AllowNullVoid: boolean;
11
+ /** Asserts this value using the ExactOptionalPropertyTypes policy */
12
+ function IsExactOptionalProperty(value: Record<keyof any, unknown>, key: string): boolean;
13
+ /** Asserts this value using the AllowArrayObjects policy */
14
+ function IsObjectLike(value: unknown): value is Record<keyof any, unknown>;
15
+ /** Asserts this value as a record using the AllowArrayObjects policy */
16
+ function IsRecordLike(value: unknown): value is Record<keyof any, unknown>;
17
+ /** Asserts this value using the AllowNaN policy */
18
+ function IsNumberLike(value: unknown): value is number;
19
+ /** Asserts this value using the AllowVoidNull policy */
20
+ function IsVoidLike(value: unknown): value is void;
21
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ /*--------------------------------------------------------------------------
3
+
4
+ @sinclair/typebox/system
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
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.TypeSystemPolicy = void 0;
31
+ const index_1 = require("../value/guard/index");
32
+ // ------------------------------------------------------------------
33
+ // TypeSystemPolicy
34
+ // ------------------------------------------------------------------
35
+ /** Shared assertion routines used by the value and errors modules */
36
+ var TypeSystemPolicy;
37
+ (function (TypeSystemPolicy) {
38
+ /** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */
39
+ TypeSystemPolicy.ExactOptionalPropertyTypes = false;
40
+ /** Sets whether arrays should be treated as a kind of objects. The default is `false` */
41
+ TypeSystemPolicy.AllowArrayObject = false;
42
+ /** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */
43
+ TypeSystemPolicy.AllowNaN = false;
44
+ /** Sets whether `null` should validate for void types. The default is `false` */
45
+ TypeSystemPolicy.AllowNullVoid = false;
46
+ /** Asserts this value using the ExactOptionalPropertyTypes policy */
47
+ function IsExactOptionalProperty(value, key) {
48
+ return TypeSystemPolicy.ExactOptionalPropertyTypes ? key in value : value[key] !== undefined;
49
+ }
50
+ TypeSystemPolicy.IsExactOptionalProperty = IsExactOptionalProperty;
51
+ /** Asserts this value using the AllowArrayObjects policy */
52
+ function IsObjectLike(value) {
53
+ const isObject = (0, index_1.IsObject)(value);
54
+ return TypeSystemPolicy.AllowArrayObject ? isObject : isObject && !(0, index_1.IsArray)(value);
55
+ }
56
+ TypeSystemPolicy.IsObjectLike = IsObjectLike;
57
+ /** Asserts this value as a record using the AllowArrayObjects policy */
58
+ function IsRecordLike(value) {
59
+ return IsObjectLike(value) && !(value instanceof Date) && !(value instanceof Uint8Array);
60
+ }
61
+ TypeSystemPolicy.IsRecordLike = IsRecordLike;
62
+ /** Asserts this value using the AllowNaN policy */
63
+ function IsNumberLike(value) {
64
+ const isNumber = (0, index_1.IsNumber)(value);
65
+ return TypeSystemPolicy.AllowNaN ? isNumber : isNumber && Number.isFinite(value);
66
+ }
67
+ TypeSystemPolicy.IsNumberLike = IsNumberLike;
68
+ /** Asserts this value using the AllowVoidNull policy */
69
+ function IsVoidLike(value) {
70
+ const isUndefined = (0, index_1.IsUndefined)(value);
71
+ return TypeSystemPolicy.AllowNullVoid ? isUndefined || value === null : isUndefined;
72
+ }
73
+ TypeSystemPolicy.IsVoidLike = IsVoidLike;
74
+ })(TypeSystemPolicy || (exports.TypeSystemPolicy = TypeSystemPolicy = {}));
@@ -1,48 +1,13 @@
1
- import { ValueErrorType } from '../errors/errors';
2
- import * as Types from '../typebox';
3
- export declare class TypeSystemDuplicateTypeKind extends Types.TypeBoxError {
1
+ export declare class TypeSystemDuplicateTypeKind extends Error {
4
2
  constructor(kind: string);
5
3
  }
6
- export declare class TypeSystemDuplicateFormat extends Types.TypeBoxError {
4
+ export declare class TypeSystemDuplicateFormat extends Error {
7
5
  constructor(kind: string);
8
6
  }
9
7
  /** Creates user defined types and formats and provides overrides for value checking behaviours */
10
8
  export declare namespace TypeSystem {
11
9
  /** Creates a new type */
12
- function Type<Type, Options = Record<PropertyKey, unknown>>(kind: string, check: (options: Options, value: unknown) => boolean): (options?: Partial<Options>) => Types.TUnsafe<Type>;
10
+ function Type<Type, Options = Record<PropertyKey, unknown>>(kind: string, check: (options: Options, value: unknown) => boolean): (options?: Partial<Options>) => import("../type/unsafe/unsafe").TUnsafe<Type>;
13
11
  /** Creates a new string format */
14
12
  function Format<F extends string>(format: F, check: (value: string) => boolean): F;
15
13
  }
16
- /** Manages error message providers */
17
- export declare namespace TypeSystemErrorFunction {
18
- /** Resets the error message function to en-us */
19
- function Reset(): void;
20
- /** Sets the error message function used to generate error messages */
21
- function Set(callback: ErrorFunction): void;
22
- /** Gets the error message function */
23
- function Get(): ErrorFunction;
24
- }
25
- /** Shared assertion routines used by the value and errors modules */
26
- export declare namespace TypeSystemPolicy {
27
- /** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */
28
- let ExactOptionalPropertyTypes: boolean;
29
- /** Sets whether arrays should be treated as a kind of objects. The default is `false` */
30
- let AllowArrayObject: boolean;
31
- /** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */
32
- let AllowNaN: boolean;
33
- /** Sets whether `null` should validate for void types. The default is `false` */
34
- let AllowNullVoid: boolean;
35
- /** Asserts this value using the ExactOptionalPropertyTypes policy */
36
- function IsExactOptionalProperty(value: Record<keyof any, unknown>, key: string): boolean;
37
- /** Asserts this value using the AllowArrayObjects policy */
38
- function IsObjectLike(value: unknown): value is Record<keyof any, unknown>;
39
- /** Asserts this value as a record using the AllowArrayObjects policy */
40
- function IsRecordLike(value: unknown): value is Record<keyof any, unknown>;
41
- /** Asserts this value using the AllowNaN policy */
42
- function IsNumberLike(value: unknown): value is number;
43
- /** Asserts this value using the AllowVoidNull policy */
44
- function IsVoidLike(value: unknown): value is void;
45
- }
46
- export type ErrorFunction = (schema: Types.TSchema, type: ValueErrorType) => string;
47
- /** Creates an error message using en-US as the default locale */
48
- export declare function DefaultErrorFunction(schema: Types.TSchema, errorType: ValueErrorType): string;
package/system/system.js CHANGED
@@ -27,248 +27,45 @@ THE SOFTWARE.
27
27
 
28
28
  ---------------------------------------------------------------------------*/
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.DefaultErrorFunction = exports.TypeSystemPolicy = exports.TypeSystemErrorFunction = exports.TypeSystem = exports.TypeSystemDuplicateFormat = exports.TypeSystemDuplicateTypeKind = void 0;
31
- const guard_1 = require("../value/guard");
32
- const errors_1 = require("../errors/errors");
33
- const Types = require("../typebox");
34
- // --------------------------------------------------------------------------
30
+ exports.TypeSystem = exports.TypeSystemDuplicateFormat = exports.TypeSystemDuplicateTypeKind = void 0;
31
+ const index_1 = require("../type/registry/index");
32
+ const index_2 = require("../type/unsafe/index");
33
+ const index_3 = require("../type/symbols/index");
34
+ // ------------------------------------------------------------------
35
35
  // Errors
36
- // --------------------------------------------------------------------------
37
- class TypeSystemDuplicateTypeKind extends Types.TypeBoxError {
36
+ // ------------------------------------------------------------------
37
+ class TypeSystemDuplicateTypeKind extends Error {
38
38
  constructor(kind) {
39
39
  super(`Duplicate type kind '${kind}' detected`);
40
40
  }
41
41
  }
42
42
  exports.TypeSystemDuplicateTypeKind = TypeSystemDuplicateTypeKind;
43
- class TypeSystemDuplicateFormat extends Types.TypeBoxError {
43
+ class TypeSystemDuplicateFormat extends Error {
44
44
  constructor(kind) {
45
45
  super(`Duplicate string format '${kind}' detected`);
46
46
  }
47
47
  }
48
48
  exports.TypeSystemDuplicateFormat = TypeSystemDuplicateFormat;
49
- // -------------------------------------------------------------------------------------------
49
+ // ------------------------------------------------------------------
50
50
  // TypeSystem
51
- // -------------------------------------------------------------------------------------------
51
+ // ------------------------------------------------------------------
52
52
  /** Creates user defined types and formats and provides overrides for value checking behaviours */
53
53
  var TypeSystem;
54
54
  (function (TypeSystem) {
55
55
  /** Creates a new type */
56
56
  function Type(kind, check) {
57
- if (Types.TypeRegistry.Has(kind))
57
+ if (index_1.TypeRegistry.Has(kind))
58
58
  throw new TypeSystemDuplicateTypeKind(kind);
59
- Types.TypeRegistry.Set(kind, check);
60
- return (options = {}) => Types.Type.Unsafe({ ...options, [Types.Kind]: kind });
59
+ index_1.TypeRegistry.Set(kind, check);
60
+ return (options = {}) => (0, index_2.Unsafe)({ ...options, [index_3.Kind]: kind });
61
61
  }
62
62
  TypeSystem.Type = Type;
63
63
  /** Creates a new string format */
64
64
  function Format(format, check) {
65
- if (Types.FormatRegistry.Has(format))
65
+ if (index_1.FormatRegistry.Has(format))
66
66
  throw new TypeSystemDuplicateFormat(format);
67
- Types.FormatRegistry.Set(format, check);
67
+ index_1.FormatRegistry.Set(format, check);
68
68
  return format;
69
69
  }
70
70
  TypeSystem.Format = Format;
71
71
  })(TypeSystem || (exports.TypeSystem = TypeSystem = {}));
72
- // --------------------------------------------------------------------------
73
- // TypeSystemErrorFunction
74
- // --------------------------------------------------------------------------
75
- /** Manages error message providers */
76
- var TypeSystemErrorFunction;
77
- (function (TypeSystemErrorFunction) {
78
- let errorMessageFunction = DefaultErrorFunction;
79
- /** Resets the error message function to en-us */
80
- function Reset() {
81
- errorMessageFunction = DefaultErrorFunction;
82
- }
83
- TypeSystemErrorFunction.Reset = Reset;
84
- /** Sets the error message function used to generate error messages */
85
- function Set(callback) {
86
- errorMessageFunction = callback;
87
- }
88
- TypeSystemErrorFunction.Set = Set;
89
- /** Gets the error message function */
90
- function Get() {
91
- return errorMessageFunction;
92
- }
93
- TypeSystemErrorFunction.Get = Get;
94
- })(TypeSystemErrorFunction || (exports.TypeSystemErrorFunction = TypeSystemErrorFunction = {}));
95
- // --------------------------------------------------------------------------
96
- // TypeSystemPolicy
97
- // --------------------------------------------------------------------------
98
- /** Shared assertion routines used by the value and errors modules */
99
- var TypeSystemPolicy;
100
- (function (TypeSystemPolicy) {
101
- /** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */
102
- TypeSystemPolicy.ExactOptionalPropertyTypes = false;
103
- /** Sets whether arrays should be treated as a kind of objects. The default is `false` */
104
- TypeSystemPolicy.AllowArrayObject = false;
105
- /** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */
106
- TypeSystemPolicy.AllowNaN = false;
107
- /** Sets whether `null` should validate for void types. The default is `false` */
108
- TypeSystemPolicy.AllowNullVoid = false;
109
- /** Asserts this value using the ExactOptionalPropertyTypes policy */
110
- function IsExactOptionalProperty(value, key) {
111
- return TypeSystemPolicy.ExactOptionalPropertyTypes ? key in value : value[key] !== undefined;
112
- }
113
- TypeSystemPolicy.IsExactOptionalProperty = IsExactOptionalProperty;
114
- /** Asserts this value using the AllowArrayObjects policy */
115
- function IsObjectLike(value) {
116
- const isObject = (0, guard_1.IsObject)(value);
117
- return TypeSystemPolicy.AllowArrayObject ? isObject : isObject && !(0, guard_1.IsArray)(value);
118
- }
119
- TypeSystemPolicy.IsObjectLike = IsObjectLike;
120
- /** Asserts this value as a record using the AllowArrayObjects policy */
121
- function IsRecordLike(value) {
122
- return IsObjectLike(value) && !(value instanceof Date) && !(value instanceof Uint8Array);
123
- }
124
- TypeSystemPolicy.IsRecordLike = IsRecordLike;
125
- /** Asserts this value using the AllowNaN policy */
126
- function IsNumberLike(value) {
127
- const isNumber = (0, guard_1.IsNumber)(value);
128
- return TypeSystemPolicy.AllowNaN ? isNumber : isNumber && Number.isFinite(value);
129
- }
130
- TypeSystemPolicy.IsNumberLike = IsNumberLike;
131
- /** Asserts this value using the AllowVoidNull policy */
132
- function IsVoidLike(value) {
133
- const isUndefined = (0, guard_1.IsUndefined)(value);
134
- return TypeSystemPolicy.AllowNullVoid ? isUndefined || value === null : isUndefined;
135
- }
136
- TypeSystemPolicy.IsVoidLike = IsVoidLike;
137
- })(TypeSystemPolicy || (exports.TypeSystemPolicy = TypeSystemPolicy = {}));
138
- // --------------------------------------------------------------------------
139
- // DefaultErrorFunction
140
- // --------------------------------------------------------------------------
141
- /** Creates an error message using en-US as the default locale */
142
- function DefaultErrorFunction(schema, errorType) {
143
- switch (errorType) {
144
- case errors_1.ValueErrorType.ArrayContains:
145
- return 'Expected array to contain at least one matching value';
146
- case errors_1.ValueErrorType.ArrayMaxContains:
147
- return `Expected array to contain no more than ${schema.maxContains} matching values`;
148
- case errors_1.ValueErrorType.ArrayMinContains:
149
- return `Expected array to contain at least ${schema.minContains} matching values`;
150
- case errors_1.ValueErrorType.ArrayMaxItems:
151
- return `Expected array length to be less or equal to ${schema.maxItems}`;
152
- case errors_1.ValueErrorType.ArrayMinItems:
153
- return `Expected array length to be greater or equal to ${schema.minItems}`;
154
- case errors_1.ValueErrorType.ArrayUniqueItems:
155
- return 'Expected array elements to be unique';
156
- case errors_1.ValueErrorType.Array:
157
- return 'Expected array';
158
- case errors_1.ValueErrorType.AsyncIterator:
159
- return 'Expected AsyncIterator';
160
- case errors_1.ValueErrorType.BigIntExclusiveMaximum:
161
- return `Expected bigint to be less than ${schema.exclusiveMaximum}`;
162
- case errors_1.ValueErrorType.BigIntExclusiveMinimum:
163
- return `Expected bigint to be greater than ${schema.exclusiveMinimum}`;
164
- case errors_1.ValueErrorType.BigIntMaximum:
165
- return `Expected bigint to be less or equal to ${schema.maximum}`;
166
- case errors_1.ValueErrorType.BigIntMinimum:
167
- return `Expected bigint to be greater or equal to ${schema.minimum}`;
168
- case errors_1.ValueErrorType.BigIntMultipleOf:
169
- return `Expected bigint to be a multiple of ${schema.multipleOf}`;
170
- case errors_1.ValueErrorType.BigInt:
171
- return 'Expected bigint';
172
- case errors_1.ValueErrorType.Boolean:
173
- return 'Expected boolean';
174
- case errors_1.ValueErrorType.DateExclusiveMinimumTimestamp:
175
- return `Expected Date timestamp to be greater than ${schema.exclusiveMinimumTimestamp}`;
176
- case errors_1.ValueErrorType.DateExclusiveMaximumTimestamp:
177
- return `Expected Date timestamp to be less than ${schema.exclusiveMaximumTimestamp}`;
178
- case errors_1.ValueErrorType.DateMinimumTimestamp:
179
- return `Expected Date timestamp to be greater or equal to ${schema.minimumTimestamp}`;
180
- case errors_1.ValueErrorType.DateMaximumTimestamp:
181
- return `Expected Date timestamp to be less or equal to ${schema.maximumTimestamp}`;
182
- case errors_1.ValueErrorType.DateMultipleOfTimestamp:
183
- return `Expected Date timestamp to be a multiple of ${schema.multipleOfTimestamp}`;
184
- case errors_1.ValueErrorType.Date:
185
- return 'Expected Date';
186
- case errors_1.ValueErrorType.Function:
187
- return 'Expected function';
188
- case errors_1.ValueErrorType.IntegerExclusiveMaximum:
189
- return `Expected integer to be less than ${schema.exclusiveMaximum}`;
190
- case errors_1.ValueErrorType.IntegerExclusiveMinimum:
191
- return `Expected integer to be greater than ${schema.exclusiveMinimum}`;
192
- case errors_1.ValueErrorType.IntegerMaximum:
193
- return `Expected integer to be less or equal to ${schema.maximum}`;
194
- case errors_1.ValueErrorType.IntegerMinimum:
195
- return `Expected integer to be greater or equal to ${schema.minimum}`;
196
- case errors_1.ValueErrorType.IntegerMultipleOf:
197
- return `Expected integer to be a multiple of ${schema.multipleOf}`;
198
- case errors_1.ValueErrorType.Integer:
199
- return 'Expected integer';
200
- case errors_1.ValueErrorType.IntersectUnevaluatedProperties:
201
- return 'Unexpected property';
202
- case errors_1.ValueErrorType.Intersect:
203
- return 'Expected all values to match';
204
- case errors_1.ValueErrorType.Iterator:
205
- return 'Expected Iterator';
206
- case errors_1.ValueErrorType.Literal:
207
- return `Expected ${typeof schema.const === 'string' ? `'${schema.const}'` : schema.const}`;
208
- case errors_1.ValueErrorType.Never:
209
- return 'Never';
210
- case errors_1.ValueErrorType.Not:
211
- return 'Value should not match';
212
- case errors_1.ValueErrorType.Null:
213
- return 'Expected null';
214
- case errors_1.ValueErrorType.NumberExclusiveMaximum:
215
- return `Expected number to be less than ${schema.exclusiveMaximum}`;
216
- case errors_1.ValueErrorType.NumberExclusiveMinimum:
217
- return `Expected number to be greater than ${schema.exclusiveMinimum}`;
218
- case errors_1.ValueErrorType.NumberMaximum:
219
- return `Expected number to be less or equal to ${schema.maximum}`;
220
- case errors_1.ValueErrorType.NumberMinimum:
221
- return `Expected number to be greater or equal to ${schema.minimum}`;
222
- case errors_1.ValueErrorType.NumberMultipleOf:
223
- return `Expected number to be a multiple of ${schema.multipleOf}`;
224
- case errors_1.ValueErrorType.Number:
225
- return 'Expected number';
226
- case errors_1.ValueErrorType.Object:
227
- return 'Expected object';
228
- case errors_1.ValueErrorType.ObjectAdditionalProperties:
229
- return 'Unexpected property';
230
- case errors_1.ValueErrorType.ObjectMaxProperties:
231
- return `Expected object to have no more than ${schema.maxProperties} properties`;
232
- case errors_1.ValueErrorType.ObjectMinProperties:
233
- return `Expected object to have at least ${schema.minProperties} properties`;
234
- case errors_1.ValueErrorType.ObjectRequiredProperty:
235
- return 'Required property';
236
- case errors_1.ValueErrorType.Promise:
237
- return 'Expected Promise';
238
- case errors_1.ValueErrorType.StringFormatUnknown:
239
- return `Unknown format '${schema.format}'`;
240
- case errors_1.ValueErrorType.StringFormat:
241
- return `Expected string to match '${schema.format}' format`;
242
- case errors_1.ValueErrorType.StringMaxLength:
243
- return `Expected string length less or equal to ${schema.maxLength}`;
244
- case errors_1.ValueErrorType.StringMinLength:
245
- return `Expected string length greater or equal to ${schema.minLength}`;
246
- case errors_1.ValueErrorType.StringPattern:
247
- return `Expected string to match '${schema.pattern}'`;
248
- case errors_1.ValueErrorType.String:
249
- return 'Expected string';
250
- case errors_1.ValueErrorType.Symbol:
251
- return 'Expected symbol';
252
- case errors_1.ValueErrorType.TupleLength:
253
- return `Expected tuple to have ${schema.maxItems || 0} elements`;
254
- case errors_1.ValueErrorType.Tuple:
255
- return 'Expected tuple';
256
- case errors_1.ValueErrorType.Uint8ArrayMaxByteLength:
257
- return `Expected byte length less or equal to ${schema.maxByteLength}`;
258
- case errors_1.ValueErrorType.Uint8ArrayMinByteLength:
259
- return `Expected byte length greater or equal to ${schema.minByteLength}`;
260
- case errors_1.ValueErrorType.Uint8Array:
261
- return 'Expected Uint8Array';
262
- case errors_1.ValueErrorType.Undefined:
263
- return 'Expected undefined';
264
- case errors_1.ValueErrorType.Union:
265
- return 'Expected union value';
266
- case errors_1.ValueErrorType.Void:
267
- return 'Expected void';
268
- case errors_1.ValueErrorType.Kind:
269
- return `Expected kind '${schema[Types.Kind]}'`;
270
- default:
271
- return 'Unknown error type';
272
- }
273
- }
274
- exports.DefaultErrorFunction = DefaultErrorFunction;
@@ -0,0 +1,8 @@
1
+ import type { TSchema, SchemaOptions } from '../schema/index';
2
+ import { Kind } from '../symbols/index';
3
+ export interface TAny extends TSchema {
4
+ [Kind]: 'Any';
5
+ static: any;
6
+ }
7
+ /** `[Json]` Creates an Any type */
8
+ export declare function Any(options?: SchemaOptions): TAny;