@sinclair/typebox 0.31.28 → 0.32.0-dev-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (629) hide show
  1. package/{compiler → cjs/compiler}/compiler.js +118 -107
  2. package/{compiler → cjs/compiler}/index.js +3 -3
  3. package/{errors → cjs/errors}/errors.js +48 -44
  4. package/cjs/index.js +205 -0
  5. package/cjs/system/errors.js +192 -0
  6. package/{value → cjs/system}/index.js +13 -14
  7. package/cjs/system/policy.js +74 -0
  8. package/cjs/system/system.js +71 -0
  9. package/cjs/type/any/any.js +36 -0
  10. package/{system → cjs/type/any}/index.js +2 -5
  11. package/cjs/type/array/array.js +42 -0
  12. package/cjs/type/array/index.js +44 -0
  13. package/cjs/type/async-iterator/async-iterator.js +42 -0
  14. package/cjs/type/async-iterator/index.js +44 -0
  15. package/cjs/type/awaited/awaited.js +66 -0
  16. package/cjs/type/awaited/index.js +44 -0
  17. package/cjs/type/bigint/bigint.js +40 -0
  18. package/cjs/type/bigint/index.js +44 -0
  19. package/cjs/type/boolean/boolean.js +40 -0
  20. package/cjs/type/boolean/index.js +44 -0
  21. package/cjs/type/clone/index.js +32 -0
  22. package/cjs/type/clone/type.js +41 -0
  23. package/cjs/type/clone/value.js +58 -0
  24. package/cjs/type/composite/composite.js +47 -0
  25. package/cjs/type/composite/index.js +44 -0
  26. package/cjs/type/const/const.js +84 -0
  27. package/cjs/type/const/index.js +44 -0
  28. package/cjs/type/constructor/constructor.js +43 -0
  29. package/cjs/type/constructor/index.js +44 -0
  30. package/cjs/type/constructor-parameters/constructor-parameters.js +37 -0
  31. package/cjs/type/constructor-parameters/index.js +44 -0
  32. package/cjs/type/date/date.js +40 -0
  33. package/cjs/type/date/index.js +44 -0
  34. package/cjs/type/deref/deref.js +136 -0
  35. package/cjs/type/deref/index.js +44 -0
  36. package/cjs/type/discard/discard.js +38 -0
  37. package/cjs/type/discard/index.js +44 -0
  38. package/cjs/type/enum/enum.js +46 -0
  39. package/cjs/type/enum/index.js +44 -0
  40. package/cjs/type/exclude/exclude.js +54 -0
  41. package/cjs/type/exclude/index.js +44 -0
  42. package/cjs/type/extends/extends-check.js +654 -0
  43. package/cjs/type/extends/extends-undefined.js +51 -0
  44. package/cjs/type/extends/extends.js +47 -0
  45. package/cjs/type/extends/index.js +46 -0
  46. package/cjs/type/extract/extract.js +54 -0
  47. package/cjs/type/extract/index.js +44 -0
  48. package/cjs/type/function/function.js +43 -0
  49. package/cjs/type/function/index.js +44 -0
  50. package/cjs/type/guard/index.js +32 -0
  51. package/cjs/type/guard/type.js +515 -0
  52. package/cjs/type/guard/value.js +100 -0
  53. package/cjs/type/helpers/helpers.js +35 -0
  54. package/cjs/type/helpers/index.js +44 -0
  55. package/cjs/type/index.js +113 -0
  56. package/cjs/type/indexed/index.js +46 -0
  57. package/cjs/type/indexed/indexed-key.js +65 -0
  58. package/cjs/type/indexed/indexed-type.js +106 -0
  59. package/cjs/type/indexed/indexed.js +41 -0
  60. package/cjs/type/instance-type/index.js +44 -0
  61. package/cjs/type/instance-type/instance-type.js +36 -0
  62. package/cjs/type/integer/index.js +44 -0
  63. package/cjs/type/integer/integer.js +40 -0
  64. package/cjs/type/intersect/index.js +44 -0
  65. package/cjs/type/intersect/intersect.js +59 -0
  66. package/cjs/type/intrinsic/index.js +44 -0
  67. package/cjs/type/intrinsic/intrinsic.js +106 -0
  68. package/cjs/type/iterator/index.js +44 -0
  69. package/cjs/type/iterator/iterator.js +42 -0
  70. package/cjs/type/keyof/index.js +46 -0
  71. package/cjs/type/keyof/keyof-string.js +103 -0
  72. package/cjs/type/keyof/keyof-type.js +48 -0
  73. package/cjs/type/keyof/keyof.js +38 -0
  74. package/cjs/type/literal/index.js +44 -0
  75. package/cjs/type/literal/literal.js +41 -0
  76. package/cjs/type/mapped/index.js +44 -0
  77. package/cjs/type/mapped/mapped.js +47 -0
  78. package/cjs/type/modifiers/index.js +44 -0
  79. package/cjs/type/modifiers/modifiers.js +78 -0
  80. package/cjs/type/never/index.js +44 -0
  81. package/cjs/type/never/never.js +40 -0
  82. package/cjs/type/not/index.js +44 -0
  83. package/cjs/type/not/not.js +41 -0
  84. package/cjs/type/null/index.js +44 -0
  85. package/cjs/type/null/null.js +40 -0
  86. package/cjs/type/number/index.js +44 -0
  87. package/cjs/type/number/number.js +40 -0
  88. package/cjs/type/object/index.js +44 -0
  89. package/cjs/type/object/object.js +47 -0
  90. package/cjs/type/omit/index.js +44 -0
  91. package/cjs/type/omit/omit.js +75 -0
  92. package/cjs/type/operators/index.js +44 -0
  93. package/cjs/type/operators/operators.js +119 -0
  94. package/cjs/type/optional/index.js +44 -0
  95. package/cjs/type/optional/optional.js +37 -0
  96. package/cjs/type/parameters/index.js +44 -0
  97. package/cjs/type/parameters/parameters.js +37 -0
  98. package/cjs/type/partial/index.js +44 -0
  99. package/cjs/type/partial/partial.js +73 -0
  100. package/cjs/type/patterns/index.js +44 -0
  101. package/cjs/type/patterns/patterns.js +36 -0
  102. package/cjs/type/pick/index.js +44 -0
  103. package/cjs/type/pick/pick.js +66 -0
  104. package/cjs/type/promise/index.js +44 -0
  105. package/cjs/type/promise/promise.js +42 -0
  106. package/cjs/type/readonly/index.js +44 -0
  107. package/cjs/type/readonly/readonly.js +37 -0
  108. package/cjs/type/readonly-optional/index.js +44 -0
  109. package/cjs/type/readonly-optional/readonly-optional.js +37 -0
  110. package/cjs/type/record/index.js +44 -0
  111. package/cjs/type/record/record.js +97 -0
  112. package/cjs/type/recursive/index.js +44 -0
  113. package/cjs/type/recursive/recursive.js +48 -0
  114. package/cjs/type/ref/index.js +44 -0
  115. package/cjs/type/ref/ref.js +45 -0
  116. package/cjs/type/regexp/index.js +44 -0
  117. package/cjs/type/regexp/regexp.js +38 -0
  118. package/cjs/type/registry/format.js +62 -0
  119. package/cjs/type/registry/index.js +32 -0
  120. package/cjs/type/registry/type.js +62 -0
  121. package/cjs/type/required/index.js +44 -0
  122. package/cjs/type/required/required.js +72 -0
  123. package/cjs/type/rest/index.js +44 -0
  124. package/cjs/type/rest/rest.js +41 -0
  125. package/cjs/type/return-type/index.js +44 -0
  126. package/cjs/type/return-type/return-type.js +36 -0
  127. package/cjs/type/schema/anyschema.js +29 -0
  128. package/cjs/type/schema/index.js +45 -0
  129. package/cjs/type/schema/schema.js +30 -0
  130. package/cjs/type/static/index.js +44 -0
  131. package/cjs/type/static/static.js +29 -0
  132. package/cjs/type/strict/index.js +44 -0
  133. package/cjs/type/strict/strict.js +35 -0
  134. package/cjs/type/string/index.js +44 -0
  135. package/cjs/type/string/string.js +36 -0
  136. package/cjs/type/symbol/index.js +44 -0
  137. package/cjs/type/symbol/symbol.js +36 -0
  138. package/cjs/type/symbols/index.js +44 -0
  139. package/cjs/type/symbols/symbols.js +40 -0
  140. package/cjs/type/template-literal/finite.js +71 -0
  141. package/cjs/type/template-literal/generate.js +74 -0
  142. package/cjs/type/template-literal/index.js +50 -0
  143. package/cjs/type/template-literal/parser.js +175 -0
  144. package/cjs/type/template-literal/pattern.js +61 -0
  145. package/cjs/type/template-literal/syntax.js +87 -0
  146. package/cjs/type/template-literal/template-literal.js +43 -0
  147. package/cjs/type/template-literal/union.js +48 -0
  148. package/cjs/type/transform/index.js +44 -0
  149. package/cjs/type/transform/transform.js +72 -0
  150. package/cjs/type/tuple/index.js +44 -0
  151. package/cjs/type/tuple/tuple.js +42 -0
  152. package/cjs/type/type/index.js +44 -0
  153. package/cjs/type/type/javascript.js +120 -0
  154. package/cjs/type/type/json.js +255 -0
  155. package/cjs/type/type/type.js +153 -0
  156. package/cjs/type/uint8array/index.js +44 -0
  157. package/cjs/type/uint8array/uint8array.js +36 -0
  158. package/cjs/type/undefined/index.js +44 -0
  159. package/cjs/type/undefined/undefined.js +36 -0
  160. package/cjs/type/union/index.js +44 -0
  161. package/cjs/type/union/union.js +50 -0
  162. package/cjs/type/unknown/index.js +44 -0
  163. package/cjs/type/unknown/unknown.js +39 -0
  164. package/cjs/type/unsafe/index.js +44 -0
  165. package/cjs/type/unsafe/unsafe.js +39 -0
  166. package/cjs/type/void/index.js +44 -0
  167. package/cjs/type/void/void.js +40 -0
  168. package/{value → cjs/value/cast}/cast.js +62 -83
  169. package/cjs/value/cast/index.js +44 -0
  170. package/cjs/value/check/check.js +468 -0
  171. package/cjs/value/check/index.js +44 -0
  172. package/cjs/value/clean/clean.js +167 -0
  173. package/cjs/value/clean/index.js +44 -0
  174. package/{value → cjs/value/clone}/clone.js +6 -6
  175. package/cjs/value/clone/index.js +44 -0
  176. package/{value → cjs/value/convert}/convert.js +93 -116
  177. package/cjs/value/convert/index.js +44 -0
  178. package/{value → cjs/value/create}/create.js +69 -62
  179. package/cjs/value/create/index.js +44 -0
  180. package/cjs/value/default/default.js +175 -0
  181. package/cjs/value/default/index.js +44 -0
  182. package/{value → cjs/value/delta}/delta.js +57 -53
  183. package/cjs/value/delta/index.js +44 -0
  184. package/{value → cjs/value/deref}/deref.js +1 -2
  185. package/cjs/value/deref/index.js +44 -0
  186. package/{value → cjs/value/equal}/equal.js +14 -14
  187. package/cjs/value/equal/index.js +44 -0
  188. package/cjs/value/guard/index.js +44 -0
  189. package/{value → cjs/value/hash}/hash.js +26 -26
  190. package/cjs/value/hash/index.js +44 -0
  191. package/cjs/value/index.js +123 -0
  192. package/cjs/value/mutate/index.js +44 -0
  193. package/{value → cjs/value/mutate}/mutate.js +25 -25
  194. package/cjs/value/pointer/index.js +31 -0
  195. package/cjs/value/pointer/pointer.js +151 -0
  196. package/cjs/value/transform/decode.js +211 -0
  197. package/cjs/value/transform/encode.js +219 -0
  198. package/cjs/value/transform/has.js +146 -0
  199. package/cjs/value/transform/index.js +46 -0
  200. package/cjs/value/value/index.js +31 -0
  201. package/cjs/value/value/value.js +125 -0
  202. package/{compiler/compiler.d.ts → esm/compiler/compiler.d.mts} +25 -18
  203. package/esm/compiler/compiler.mjs +658 -0
  204. package/{compiler/index.d.ts → esm/compiler/index.d.mts} +2 -2
  205. package/esm/compiler/index.mjs +29 -0
  206. package/{errors/errors.d.ts → esm/errors/errors.d.mts} +7 -7
  207. package/esm/errors/errors.mjs +583 -0
  208. package/esm/errors/index.d.mts +1 -0
  209. package/esm/errors/index.mjs +28 -0
  210. package/esm/index.d.mts +71 -0
  211. package/esm/index.mjs +105 -0
  212. package/esm/system/errors.d.mts +14 -0
  213. package/esm/system/errors.mjs +188 -0
  214. package/esm/system/index.d.mts +4 -0
  215. package/esm/system/index.mjs +31 -0
  216. package/esm/system/policy.d.mts +21 -0
  217. package/esm/system/policy.mjs +71 -0
  218. package/esm/system/system.d.mts +13 -0
  219. package/esm/system/system.mjs +66 -0
  220. package/esm/type/any/any.d.mts +8 -0
  221. package/esm/type/any/any.mjs +32 -0
  222. package/esm/type/any/index.d.mts +1 -0
  223. package/esm/type/any/index.mjs +28 -0
  224. package/esm/type/array/array.d.mts +25 -0
  225. package/esm/type/array/array.mjs +38 -0
  226. package/esm/type/array/index.d.mts +1 -0
  227. package/esm/type/array/index.mjs +28 -0
  228. package/esm/type/async-iterator/async-iterator.d.mts +11 -0
  229. package/esm/type/async-iterator/async-iterator.mjs +38 -0
  230. package/esm/type/async-iterator/index.d.mts +1 -0
  231. package/esm/type/async-iterator/index.mjs +28 -0
  232. package/esm/type/awaited/awaited.d.mts +12 -0
  233. package/esm/type/awaited/awaited.mjs +61 -0
  234. package/esm/type/awaited/index.d.mts +1 -0
  235. package/esm/type/awaited/index.mjs +28 -0
  236. package/esm/type/bigint/bigint.d.mts +16 -0
  237. package/esm/type/bigint/bigint.mjs +36 -0
  238. package/esm/type/bigint/index.d.mts +1 -0
  239. package/esm/type/bigint/index.mjs +28 -0
  240. package/esm/type/boolean/boolean.d.mts +9 -0
  241. package/esm/type/boolean/boolean.mjs +36 -0
  242. package/esm/type/boolean/index.d.mts +1 -0
  243. package/esm/type/boolean/index.mjs +28 -0
  244. package/esm/type/clone/index.d.mts +2 -0
  245. package/esm/type/clone/index.mjs +29 -0
  246. package/esm/type/clone/type.d.mts +5 -0
  247. package/esm/type/clone/type.mjs +36 -0
  248. package/esm/type/clone/value.d.mts +2 -0
  249. package/esm/type/clone/value.mjs +54 -0
  250. package/esm/type/composite/composite.d.mts +15 -0
  251. package/esm/type/composite/composite.mjs +42 -0
  252. package/esm/type/composite/index.d.mts +1 -0
  253. package/esm/type/composite/index.mjs +28 -0
  254. package/esm/type/const/const.d.mts +30 -0
  255. package/esm/type/const/const.mjs +80 -0
  256. package/esm/type/const/index.d.mts +1 -0
  257. package/esm/type/const/index.mjs +28 -0
  258. package/esm/type/constructor/constructor.d.mts +17 -0
  259. package/esm/type/constructor/constructor.mjs +39 -0
  260. package/esm/type/constructor/index.d.mts +1 -0
  261. package/esm/type/constructor/index.mjs +28 -0
  262. package/esm/type/constructor-parameters/constructor-parameters.d.mts +7 -0
  263. package/esm/type/constructor-parameters/constructor-parameters.mjs +33 -0
  264. package/esm/type/constructor-parameters/index.d.mts +1 -0
  265. package/esm/type/constructor-parameters/index.mjs +28 -0
  266. package/esm/type/date/date.d.mts +21 -0
  267. package/esm/type/date/date.mjs +36 -0
  268. package/esm/type/date/index.d.mts +1 -0
  269. package/esm/type/date/index.mjs +28 -0
  270. package/esm/type/deref/deref.d.mts +24 -0
  271. package/esm/type/deref/deref.mjs +131 -0
  272. package/esm/type/deref/index.d.mts +1 -0
  273. package/esm/type/deref/index.mjs +28 -0
  274. package/esm/type/discard/discard.d.mts +1 -0
  275. package/esm/type/discard/discard.mjs +34 -0
  276. package/esm/type/discard/index.d.mts +1 -0
  277. package/esm/type/discard/index.mjs +28 -0
  278. package/esm/type/enum/enum.d.mts +14 -0
  279. package/esm/type/enum/enum.mjs +42 -0
  280. package/esm/type/enum/index.d.mts +1 -0
  281. package/esm/type/enum/index.mjs +28 -0
  282. package/esm/type/exclude/exclude.d.mts +21 -0
  283. package/esm/type/exclude/exclude.mjs +49 -0
  284. package/esm/type/exclude/index.d.mts +1 -0
  285. package/esm/type/exclude/index.mjs +28 -0
  286. package/esm/type/extends/extends-check.d.mts +9 -0
  287. package/esm/type/extends/extends-check.mjs +649 -0
  288. package/esm/type/extends/extends-undefined.d.mts +3 -0
  289. package/esm/type/extends/extends-undefined.mjs +47 -0
  290. package/esm/type/extends/extends.d.mts +9 -0
  291. package/esm/type/extends/extends.mjs +42 -0
  292. package/esm/type/extends/index.d.mts +3 -0
  293. package/esm/type/extends/index.mjs +30 -0
  294. package/esm/type/extract/extract.d.mts +20 -0
  295. package/esm/type/extract/extract.mjs +49 -0
  296. package/esm/type/extract/index.d.mts +1 -0
  297. package/esm/type/extract/index.mjs +28 -0
  298. package/esm/type/function/function.d.mts +17 -0
  299. package/esm/type/function/function.mjs +39 -0
  300. package/esm/type/function/index.d.mts +1 -0
  301. package/esm/type/function/index.mjs +28 -0
  302. package/esm/type/guard/index.d.mts +2 -0
  303. package/esm/type/guard/index.mjs +29 -0
  304. package/esm/type/guard/type.d.mts +130 -0
  305. package/esm/type/guard/type.mjs +469 -0
  306. package/esm/type/guard/value.d.mts +28 -0
  307. package/esm/type/guard/value.mjs +83 -0
  308. package/esm/type/helpers/helpers.d.mts +42 -0
  309. package/esm/type/helpers/helpers.mjs +31 -0
  310. package/esm/type/helpers/index.d.mts +1 -0
  311. package/esm/type/helpers/index.mjs +28 -0
  312. package/esm/type/index.d.mts +70 -0
  313. package/esm/type/index.mjs +97 -0
  314. package/esm/type/indexed/index.d.mts +3 -0
  315. package/esm/type/indexed/index.mjs +30 -0
  316. package/esm/type/indexed/indexed-key.d.mts +17 -0
  317. package/esm/type/indexed/indexed-key.mjs +61 -0
  318. package/esm/type/indexed/indexed-type.d.mts +33 -0
  319. package/esm/type/indexed/indexed-type.mjs +102 -0
  320. package/esm/type/indexed/indexed.d.mts +8 -0
  321. package/esm/type/indexed/indexed.mjs +37 -0
  322. package/esm/type/instance-type/index.d.mts +1 -0
  323. package/esm/type/instance-type/index.mjs +28 -0
  324. package/esm/type/instance-type/instance-type.d.mts +5 -0
  325. package/esm/type/instance-type/instance-type.mjs +32 -0
  326. package/esm/type/integer/index.d.mts +1 -0
  327. package/esm/type/integer/index.mjs +28 -0
  328. package/esm/type/integer/integer.d.mts +16 -0
  329. package/esm/type/integer/integer.mjs +36 -0
  330. package/esm/type/intersect/index.d.mts +1 -0
  331. package/esm/type/intersect/index.mjs +28 -0
  332. package/esm/type/intersect/intersect.d.mts +22 -0
  333. package/esm/type/intersect/intersect.mjs +54 -0
  334. package/esm/type/intrinsic/index.d.mts +1 -0
  335. package/esm/type/intrinsic/index.mjs +28 -0
  336. package/esm/type/intrinsic/intrinsic.d.mts +27 -0
  337. package/esm/type/intrinsic/intrinsic.mjs +98 -0
  338. package/esm/type/iterator/index.d.mts +1 -0
  339. package/esm/type/iterator/index.mjs +28 -0
  340. package/esm/type/iterator/iterator.d.mts +11 -0
  341. package/esm/type/iterator/iterator.mjs +38 -0
  342. package/esm/type/keyof/index.d.mts +3 -0
  343. package/esm/type/keyof/index.mjs +30 -0
  344. package/esm/type/keyof/keyof-string.d.mts +30 -0
  345. package/esm/type/keyof/keyof-string.mjs +98 -0
  346. package/esm/type/keyof/keyof-type.d.mts +11 -0
  347. package/esm/type/keyof/keyof-type.mjs +44 -0
  348. package/esm/type/keyof/keyof.d.mts +5 -0
  349. package/esm/type/keyof/keyof.mjs +34 -0
  350. package/esm/type/literal/index.d.mts +1 -0
  351. package/esm/type/literal/index.mjs +28 -0
  352. package/esm/type/literal/literal.d.mts +10 -0
  353. package/esm/type/literal/literal.mjs +37 -0
  354. package/esm/type/mapped/index.d.mts +1 -0
  355. package/esm/type/mapped/index.mjs +28 -0
  356. package/esm/type/mapped/mapped.d.mts +26 -0
  357. package/esm/type/mapped/mapped.mjs +43 -0
  358. package/esm/type/modifiers/index.d.mts +1 -0
  359. package/esm/type/modifiers/index.mjs +28 -0
  360. package/esm/type/modifiers/modifiers.d.mts +18 -0
  361. package/esm/type/modifiers/modifiers.mjs +73 -0
  362. package/esm/type/never/index.d.mts +1 -0
  363. package/esm/type/never/index.mjs +28 -0
  364. package/esm/type/never/never.d.mts +9 -0
  365. package/esm/type/never/never.mjs +36 -0
  366. package/esm/type/not/index.d.mts +1 -0
  367. package/esm/type/not/index.mjs +28 -0
  368. package/esm/type/not/not.d.mts +10 -0
  369. package/esm/type/not/not.mjs +37 -0
  370. package/esm/type/null/index.d.mts +1 -0
  371. package/esm/type/null/index.mjs +28 -0
  372. package/esm/type/null/null.d.mts +9 -0
  373. package/esm/type/null/null.mjs +36 -0
  374. package/esm/type/number/index.d.mts +1 -0
  375. package/esm/type/number/index.mjs +28 -0
  376. package/esm/type/number/number.d.mts +16 -0
  377. package/esm/type/number/number.mjs +36 -0
  378. package/esm/type/object/index.d.mts +1 -0
  379. package/esm/type/object/index.mjs +28 -0
  380. package/esm/type/object/object.d.mts +44 -0
  381. package/esm/type/object/object.mjs +43 -0
  382. package/esm/type/omit/index.d.mts +1 -0
  383. package/esm/type/omit/index.mjs +28 -0
  384. package/esm/type/omit/omit.d.mts +21 -0
  385. package/esm/type/omit/omit.mjs +70 -0
  386. package/esm/type/operators/index.d.mts +1 -0
  387. package/esm/type/operators/index.mjs +28 -0
  388. package/esm/type/operators/operators.d.mts +24 -0
  389. package/esm/type/operators/operators.mjs +108 -0
  390. package/esm/type/optional/index.d.mts +1 -0
  391. package/esm/type/optional/index.mjs +28 -0
  392. package/esm/type/optional/optional.d.mts +7 -0
  393. package/esm/type/optional/optional.mjs +33 -0
  394. package/esm/type/parameters/index.d.mts +1 -0
  395. package/esm/type/parameters/index.mjs +28 -0
  396. package/esm/type/parameters/parameters.d.mts +7 -0
  397. package/esm/type/parameters/parameters.mjs +33 -0
  398. package/esm/type/partial/index.d.mts +1 -0
  399. package/esm/type/partial/index.mjs +28 -0
  400. package/esm/type/partial/partial.d.mts +23 -0
  401. package/esm/type/partial/partial.mjs +68 -0
  402. package/esm/type/patterns/index.d.mts +1 -0
  403. package/esm/type/patterns/index.mjs +28 -0
  404. package/esm/type/patterns/patterns.d.mts +6 -0
  405. package/esm/type/patterns/patterns.mjs +33 -0
  406. package/esm/type/pick/index.d.mts +1 -0
  407. package/esm/type/pick/index.mjs +28 -0
  408. package/esm/type/pick/pick.d.mts +21 -0
  409. package/esm/type/pick/pick.mjs +61 -0
  410. package/esm/type/promise/index.d.mts +1 -0
  411. package/esm/type/promise/index.mjs +28 -0
  412. package/esm/type/promise/promise.d.mts +11 -0
  413. package/esm/type/promise/promise.mjs +38 -0
  414. package/esm/type/readonly/index.d.mts +1 -0
  415. package/esm/type/readonly/index.mjs +28 -0
  416. package/esm/type/readonly/readonly.d.mts +7 -0
  417. package/esm/type/readonly/readonly.mjs +33 -0
  418. package/esm/type/readonly-optional/index.d.mts +1 -0
  419. package/esm/type/readonly-optional/index.mjs +28 -0
  420. package/esm/type/readonly-optional/readonly-optional.d.mts +6 -0
  421. package/esm/type/readonly-optional/readonly-optional.mjs +33 -0
  422. package/esm/type/record/index.d.mts +1 -0
  423. package/esm/type/record/index.mjs +28 -0
  424. package/esm/type/record/record.d.mts +55 -0
  425. package/esm/type/record/record.mjs +92 -0
  426. package/esm/type/recursive/index.d.mts +1 -0
  427. package/esm/type/recursive/index.mjs +28 -0
  428. package/esm/type/recursive/recursive.d.mts +15 -0
  429. package/esm/type/recursive/recursive.mjs +44 -0
  430. package/esm/type/ref/index.d.mts +1 -0
  431. package/esm/type/ref/index.mjs +28 -0
  432. package/esm/type/ref/ref.d.mts +12 -0
  433. package/esm/type/ref/ref.mjs +41 -0
  434. package/esm/type/regexp/index.d.mts +1 -0
  435. package/esm/type/regexp/index.mjs +28 -0
  436. package/esm/type/regexp/regexp.d.mts +7 -0
  437. package/esm/type/regexp/regexp.mjs +34 -0
  438. package/esm/type/registry/format.d.mts +13 -0
  439. package/esm/type/registry/format.mjs +53 -0
  440. package/esm/type/registry/index.d.mts +2 -0
  441. package/esm/type/registry/index.mjs +29 -0
  442. package/esm/type/registry/type.d.mts +13 -0
  443. package/esm/type/registry/type.mjs +53 -0
  444. package/esm/type/required/index.d.mts +1 -0
  445. package/esm/type/required/index.mjs +28 -0
  446. package/esm/type/required/required.d.mts +23 -0
  447. package/esm/type/required/required.mjs +67 -0
  448. package/esm/type/rest/index.d.mts +1 -0
  449. package/esm/type/rest/index.mjs +28 -0
  450. package/esm/type/rest/rest.d.mts +10 -0
  451. package/esm/type/rest/rest.mjs +36 -0
  452. package/esm/type/return-type/index.d.mts +1 -0
  453. package/esm/type/return-type/index.mjs +28 -0
  454. package/esm/type/return-type/return-type.d.mts +5 -0
  455. package/esm/type/return-type/return-type.mjs +32 -0
  456. package/esm/type/schema/anyschema.d.mts +32 -0
  457. package/esm/type/schema/anyschema.mjs +28 -0
  458. package/esm/type/schema/index.d.mts +2 -0
  459. package/esm/type/schema/index.mjs +29 -0
  460. package/esm/type/schema/schema.d.mts +29 -0
  461. package/esm/type/schema/schema.mjs +28 -0
  462. package/esm/type/static/index.d.mts +1 -0
  463. package/esm/type/static/index.mjs +28 -0
  464. package/esm/type/static/static.d.mts +34 -0
  465. package/esm/type/static/static.mjs +28 -0
  466. package/esm/type/strict/index.d.mts +1 -0
  467. package/esm/type/strict/index.mjs +28 -0
  468. package/esm/type/strict/strict.d.mts +3 -0
  469. package/esm/type/strict/strict.mjs +31 -0
  470. package/esm/type/string/index.d.mts +1 -0
  471. package/esm/type/string/index.mjs +28 -0
  472. package/esm/type/string/string.d.mts +25 -0
  473. package/esm/type/string/string.mjs +32 -0
  474. package/esm/type/symbol/index.d.mts +1 -0
  475. package/esm/type/symbol/index.mjs +28 -0
  476. package/esm/type/symbol/symbol.d.mts +10 -0
  477. package/esm/type/symbol/symbol.mjs +32 -0
  478. package/esm/type/symbols/index.d.mts +1 -0
  479. package/esm/type/symbols/index.mjs +28 -0
  480. package/esm/type/symbols/symbols.d.mts +10 -0
  481. package/esm/type/symbols/symbols.mjs +37 -0
  482. package/esm/type/template-literal/finite.d.mts +16 -0
  483. package/esm/type/template-literal/finite.mjs +66 -0
  484. package/esm/type/template-literal/generate.d.mts +15 -0
  485. package/esm/type/template-literal/generate.mjs +69 -0
  486. package/esm/type/template-literal/index.d.mts +7 -0
  487. package/esm/type/template-literal/index.mjs +34 -0
  488. package/esm/type/template-literal/parser.d.mts +19 -0
  489. package/esm/type/template-literal/parser.mjs +169 -0
  490. package/esm/type/template-literal/pattern.d.mts +4 -0
  491. package/esm/type/template-literal/pattern.mjs +56 -0
  492. package/esm/type/template-literal/syntax.d.mts +20 -0
  493. package/esm/type/template-literal/syntax.mjs +83 -0
  494. package/esm/type/template-literal/template-literal.d.mts +30 -0
  495. package/esm/type/template-literal/template-literal.mjs +39 -0
  496. package/esm/type/template-literal/union.d.mts +7 -0
  497. package/esm/type/template-literal/union.mjs +44 -0
  498. package/esm/type/transform/index.d.mts +1 -0
  499. package/esm/type/transform/index.mjs +28 -0
  500. package/esm/type/transform/transform.d.mts +29 -0
  501. package/esm/type/transform/transform.mjs +69 -0
  502. package/esm/type/tuple/index.d.mts +1 -0
  503. package/esm/type/tuple/index.mjs +28 -0
  504. package/esm/type/tuple/tuple.d.mts +15 -0
  505. package/esm/type/tuple/tuple.mjs +38 -0
  506. package/esm/type/type/index.d.mts +6 -0
  507. package/esm/type/type/index.mjs +40 -0
  508. package/esm/type/type/javascript.d.mts +58 -0
  509. package/esm/type/type/javascript.mjs +116 -0
  510. package/esm/type/type/json.d.mts +139 -0
  511. package/esm/type/type/json.mjs +251 -0
  512. package/esm/type/type/type.d.mts +58 -0
  513. package/esm/type/type/type.mjs +88 -0
  514. package/esm/type/uint8array/index.d.mts +1 -0
  515. package/esm/type/uint8array/index.mjs +28 -0
  516. package/esm/type/uint8array/uint8array.d.mts +13 -0
  517. package/esm/type/uint8array/uint8array.mjs +32 -0
  518. package/esm/type/undefined/index.d.mts +1 -0
  519. package/esm/type/undefined/index.mjs +28 -0
  520. package/esm/type/undefined/undefined.d.mts +9 -0
  521. package/esm/type/undefined/undefined.mjs +32 -0
  522. package/esm/type/union/index.d.mts +1 -0
  523. package/esm/type/union/index.mjs +28 -0
  524. package/esm/type/union/union.d.mts +16 -0
  525. package/esm/type/union/union.mjs +45 -0
  526. package/esm/type/unknown/index.d.mts +1 -0
  527. package/esm/type/unknown/index.mjs +28 -0
  528. package/esm/type/unknown/unknown.d.mts +8 -0
  529. package/esm/type/unknown/unknown.mjs +35 -0
  530. package/esm/type/unsafe/index.d.mts +1 -0
  531. package/esm/type/unsafe/index.mjs +28 -0
  532. package/esm/type/unsafe/unsafe.d.mts +11 -0
  533. package/esm/type/unsafe/unsafe.mjs +35 -0
  534. package/esm/type/void/index.d.mts +1 -0
  535. package/esm/type/void/index.mjs +28 -0
  536. package/esm/type/void/void.d.mts +9 -0
  537. package/esm/type/void/void.mjs +36 -0
  538. package/esm/value/cast/cast.d.mts +23 -0
  539. package/esm/value/cast/cast.mjs +260 -0
  540. package/esm/value/cast/index.d.mts +1 -0
  541. package/esm/value/cast/index.mjs +28 -0
  542. package/esm/value/check/check.d.mts +10 -0
  543. package/{value/check.js → esm/value/check/check.mjs} +52 -51
  544. package/esm/value/check/index.d.mts +1 -0
  545. package/esm/value/check/index.mjs +28 -0
  546. package/esm/value/clean/clean.d.mts +5 -0
  547. package/esm/value/clean/clean.mjs +163 -0
  548. package/esm/value/clean/index.d.mts +1 -0
  549. package/esm/value/clean/index.mjs +28 -0
  550. package/esm/value/clone/clone.mjs +64 -0
  551. package/esm/value/clone/index.d.mts +1 -0
  552. package/esm/value/clone/index.mjs +28 -0
  553. package/esm/value/convert/convert.d.mts +9 -0
  554. package/esm/value/convert/convert.mjs +287 -0
  555. package/esm/value/convert/index.d.mts +1 -0
  556. package/esm/value/convert/index.mjs +28 -0
  557. package/esm/value/create/create.d.mts +31 -0
  558. package/esm/value/create/create.mjs +504 -0
  559. package/esm/value/create/index.d.mts +1 -0
  560. package/esm/value/create/index.mjs +28 -0
  561. package/esm/value/default/default.d.mts +5 -0
  562. package/esm/value/default/default.mjs +171 -0
  563. package/esm/value/default/index.d.mts +1 -0
  564. package/esm/value/default/index.mjs +28 -0
  565. package/esm/value/delta/delta.d.mts +41 -0
  566. package/esm/value/delta/delta.mjs +194 -0
  567. package/esm/value/delta/index.d.mts +1 -0
  568. package/esm/value/delta/index.mjs +28 -0
  569. package/{value/deref.d.ts → esm/value/deref/deref.d.mts} +4 -2
  570. package/esm/value/deref/deref.mjs +41 -0
  571. package/esm/value/deref/index.d.mts +1 -0
  572. package/esm/value/deref/index.mjs +28 -0
  573. package/esm/value/equal/equal.mjs +73 -0
  574. package/esm/value/equal/index.d.mts +1 -0
  575. package/esm/value/equal/index.mjs +28 -0
  576. package/esm/value/guard/guard.mjs +123 -0
  577. package/esm/value/guard/index.d.mts +1 -0
  578. package/esm/value/guard/index.mjs +28 -0
  579. package/{value/hash.d.ts → esm/value/hash/hash.d.mts} +0 -13
  580. package/esm/value/hash/hash.mjs +173 -0
  581. package/esm/value/hash/index.d.mts +1 -0
  582. package/esm/value/hash/index.mjs +28 -0
  583. package/esm/value/index.d.mts +18 -0
  584. package/esm/value/index.mjs +57 -0
  585. package/esm/value/mutate/index.d.mts +1 -0
  586. package/esm/value/mutate/index.mjs +28 -0
  587. package/{value/mutate.d.ts → esm/value/mutate/mutate.d.mts} +1 -1
  588. package/esm/value/mutate/mutate.mjs +123 -0
  589. package/esm/value/pointer/index.d.mts +1 -0
  590. package/esm/value/pointer/index.mjs +28 -0
  591. package/esm/value/pointer/pointer.d.mts +21 -0
  592. package/esm/value/pointer/pointer.mjs +146 -0
  593. package/esm/value/transform/decode.d.mts +19 -0
  594. package/esm/value/transform/decode.mjs +210 -0
  595. package/esm/value/transform/encode.d.mts +20 -0
  596. package/esm/value/transform/encode.mjs +218 -0
  597. package/esm/value/transform/has.d.mts +3 -0
  598. package/esm/value/transform/has.mjs +142 -0
  599. package/esm/value/transform/index.d.mts +3 -0
  600. package/esm/value/transform/index.mjs +30 -0
  601. package/esm/value/value/index.d.mts +1 -0
  602. package/esm/value/value/index.mjs +28 -0
  603. package/esm/value/value/value.d.mts +53 -0
  604. package/esm/value/value/value.mjs +107 -0
  605. package/package.json +37 -27
  606. package/readme.md +183 -155
  607. package/errors/index.d.ts +0 -1
  608. package/system/index.d.ts +0 -2
  609. package/system/system.d.ts +0 -48
  610. package/system/system.js +0 -274
  611. package/typebox.d.ts +0 -962
  612. package/typebox.js +0 -2364
  613. package/value/cast.d.ts +0 -24
  614. package/value/check.d.ts +0 -9
  615. package/value/convert.d.ts +0 -10
  616. package/value/create.d.ts +0 -30
  617. package/value/delta.d.ts +0 -41
  618. package/value/index.d.ts +0 -5
  619. package/value/pointer.d.ts +0 -24
  620. package/value/pointer.js +0 -148
  621. package/value/transform.d.ts +0 -37
  622. package/value/transform.js +0 -473
  623. package/value/value.d.ts +0 -47
  624. package/value/value.js +0 -117
  625. /package/{errors → cjs/errors}/index.js +0 -0
  626. /package/{value → cjs/value/guard}/guard.js +0 -0
  627. /package/{value/clone.d.ts → esm/value/clone/clone.d.mts} +0 -0
  628. /package/{value/equal.d.ts → esm/value/equal/equal.d.mts} +0 -0
  629. /package/{value/guard.d.ts → esm/value/guard/guard.d.mts} +0 -0
@@ -0,0 +1,92 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ import { Object } from '../object/index.mjs';
29
+ import { Never } from '../never/index.mjs';
30
+ import { Union } from '../union/index.mjs';
31
+ import { IsTemplateLiteralFinite, TemplateLiteralParseExact } from '../template-literal/index.mjs';
32
+ import { PatternStringExact, PatternNumberExact } from '../patterns/index.mjs';
33
+ import { IndexedKeyResolve } from '../indexed/index.mjs';
34
+ import { Kind, Hint } from '../symbols/index.mjs';
35
+ import { CloneType } from '../clone/type.mjs';
36
+ import { IsUndefined } from '../guard/value.mjs';
37
+ import { TUnion as IsUnionType, TTemplateLiteral as IsTemplateLiteralType, TLiteral as IsLiteralType, TString as IsStringType, TInteger as IsIntegerType, TNumber as IsNumberType } from '../guard/type.mjs';
38
+ // ------------------------------------------------------------------
39
+ // FromPattern | FromKeys
40
+ // ------------------------------------------------------------------
41
+ // prettier-ignore
42
+ function FromPattern(pattern, T) {
43
+ return { [Kind]: 'Record', type: 'object', patternProperties: { [pattern]: CloneType(T) } };
44
+ }
45
+ // prettier-ignore
46
+ function FromKeys(keys, T) {
47
+ const properties = keys.reduce((acc, key) => ({ ...acc, [key]: CloneType(T) }), {});
48
+ return Object(properties, { [Hint]: 'Record' });
49
+ }
50
+ // prettier-ignore
51
+ function FromTemplateLiteralKey(K, T) {
52
+ const expression = TemplateLiteralParseExact(K.pattern);
53
+ return (IsTemplateLiteralFinite(expression)
54
+ ? FromKeys(IndexedKeyResolve(K), T)
55
+ : FromPattern(K.pattern, T));
56
+ }
57
+ // prettier-ignore
58
+ function FromUnionKey(K, T) {
59
+ return FromKeys(IndexedKeyResolve(Union(K)), T);
60
+ }
61
+ // prettier-ignore
62
+ function FromLiteralKey(K, T) {
63
+ return FromKeys([K.toString()], T);
64
+ }
65
+ // prettier-ignore
66
+ function FromStringKey(K, T) {
67
+ const pattern = IsUndefined(K.pattern) ? PatternStringExact : K.pattern;
68
+ return FromPattern(pattern, T);
69
+ }
70
+ // prettier-ignore
71
+ function FromIntegerKey(_, T) {
72
+ return FromPattern(PatternNumberExact, T);
73
+ }
74
+ // prettier-ignore
75
+ function FromNumberKey(_, T) {
76
+ return FromPattern(PatternNumberExact, T);
77
+ }
78
+ // prettier-ignore
79
+ export function RecordResolve(K, T) {
80
+ return (IsUnionType(K) ? FromUnionKey(K.anyOf, T) :
81
+ IsTemplateLiteralType(K) ? FromTemplateLiteralKey(K, T) :
82
+ IsLiteralType(K) ? FromLiteralKey(K.const, T) :
83
+ IsStringType(K) ? FromStringKey(K, T) :
84
+ IsIntegerType(K) ? FromIntegerKey(K, T) :
85
+ IsNumberType(K) ? FromNumberKey(K, T) :
86
+ Never());
87
+ }
88
+ // prettier-ignore
89
+ /** `[Json]` Creates a Record type */
90
+ export function Record(K, T, options = {}) {
91
+ return CloneType(RecordResolve(K, T), options);
92
+ }
@@ -0,0 +1 @@
1
+ export * from './recursive.mjs';
@@ -0,0 +1,28 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ export * from './recursive.mjs';
@@ -0,0 +1,15 @@
1
+ import type { TSchema, SchemaOptions } from '../schema/index.mjs';
2
+ import { Kind, Hint } from '../symbols/index.mjs';
3
+ import { Static } from '../static/index.mjs';
4
+ export interface TThis extends TSchema {
5
+ [Kind]: 'This';
6
+ static: this['params'][0];
7
+ $ref: string;
8
+ }
9
+ export type RecursiveResolve<T extends TSchema> = Static<T, [RecursiveResolve<T>]>;
10
+ export interface TRecursive<T extends TSchema> extends TSchema {
11
+ [Hint]: 'Recursive';
12
+ static: RecursiveResolve<T>;
13
+ }
14
+ /** `[Json]` Creates a Recursive type */
15
+ export declare function Recursive<T extends TSchema>(callback: (thisType: TThis) => T, options?: SchemaOptions): TRecursive<T>;
@@ -0,0 +1,44 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ import { CloneType } from '../clone/type.mjs';
29
+ import { IsUndefined } from '../guard/value.mjs';
30
+ import { Kind, Hint } from '../symbols/index.mjs';
31
+ // Auto Tracked For Recursive Types without ID's
32
+ let Ordinal = 0;
33
+ /** `[Json]` Creates a Recursive type */
34
+ export function Recursive(callback, options = {}) {
35
+ if (IsUndefined(options.$id))
36
+ options.$id = `T${Ordinal++}`;
37
+ const thisType = callback({ [Kind]: 'This', $ref: `${options.$id}` });
38
+ thisType.$id = options.$id;
39
+ return CloneType({
40
+ ...options,
41
+ [Hint]: 'Recursive',
42
+ ...thisType,
43
+ });
44
+ }
@@ -0,0 +1 @@
1
+ export * from './ref.mjs';
@@ -0,0 +1,28 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ export * from './ref.mjs';
@@ -0,0 +1,12 @@
1
+ import type { TSchema, SchemaOptions } from '../schema/index.mjs';
2
+ import type { Static } from '../static/index.mjs';
3
+ import { Kind } from '../symbols/index.mjs';
4
+ export interface TRef<T extends TSchema = TSchema> extends TSchema {
5
+ [Kind]: 'Ref';
6
+ static: Static<T, this['params']>;
7
+ $ref: string;
8
+ }
9
+ /** `[Json]` Creates a Ref type. The referenced type must contain a $id */
10
+ export declare function Ref<T extends TSchema>(schema: T, options?: SchemaOptions): TRef<T>;
11
+ /** `[Json]` Creates a Ref type. */
12
+ export declare function Ref<T extends TSchema>($ref: string, options?: SchemaOptions): TRef<T>;
@@ -0,0 +1,41 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ import { Kind } from '../symbols/index.mjs';
29
+ import { IsString, IsUndefined } from '../guard/value.mjs';
30
+ /** `[Json]` Creates a Ref type. */
31
+ export function Ref(unresolved, options = {}) {
32
+ if (IsString(unresolved))
33
+ return { ...options, [Kind]: 'Ref', $ref: unresolved };
34
+ if (IsUndefined(unresolved.$id))
35
+ throw new Error('Reference target type must specify an $id');
36
+ return {
37
+ ...options,
38
+ [Kind]: 'Ref',
39
+ $ref: unresolved.$id,
40
+ };
41
+ }
@@ -0,0 +1 @@
1
+ export * from './regexp.mjs';
@@ -0,0 +1,28 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ export * from './regexp.mjs';
@@ -0,0 +1,7 @@
1
+ import type { SchemaOptions } from '../schema/index.mjs';
2
+ import type { TString } from '../string/index.mjs';
3
+ export type TRegExp = TString;
4
+ /** `[JavaScript]` Creates a String type from a Regular Expression pattern */
5
+ export declare function RegExp(pattern: string, options?: SchemaOptions): TRegExp;
6
+ /** `[JavaScript]` Creates a String type from a Regular Expression */
7
+ export declare function RegExp(regex: RegExp, options?: SchemaOptions): TRegExp;
@@ -0,0 +1,34 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ import { IsString } from '../guard/value.mjs';
29
+ import { Kind } from '../symbols/index.mjs';
30
+ /** `[JavaScript]` Creates a String type */
31
+ export function RegExp(unresolved, options = {}) {
32
+ const pattern = IsString(unresolved) ? unresolved : unresolved.source;
33
+ return { ...options, [Kind]: 'String', type: 'string', pattern };
34
+ }
@@ -0,0 +1,13 @@
1
+ export type FormatRegistryValidationFunction = (value: string) => boolean;
2
+ /** Returns the entries in this registry */
3
+ export declare function Entries(): Map<string, FormatRegistryValidationFunction>;
4
+ /** Clears all user defined string formats */
5
+ export declare function Clear(): void;
6
+ /** Deletes a registered format */
7
+ export declare function Delete(format: string): boolean;
8
+ /** Returns true if the user defined string format exists */
9
+ export declare function Has(format: string): boolean;
10
+ /** Sets a validation function for a user defined string format */
11
+ export declare function Set(format: string, func: FormatRegistryValidationFunction): void;
12
+ /** Gets a validation function for a user defined string format */
13
+ export declare function Get(format: string): FormatRegistryValidationFunction | undefined;
@@ -0,0 +1,53 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ /** A registry for user defined string formats */
29
+ const map = new Map();
30
+ /** Returns the entries in this registry */
31
+ export function Entries() {
32
+ return new Map(map);
33
+ }
34
+ /** Clears all user defined string formats */
35
+ export function Clear() {
36
+ return map.clear();
37
+ }
38
+ /** Deletes a registered format */
39
+ export function Delete(format) {
40
+ return map.delete(format);
41
+ }
42
+ /** Returns true if the user defined string format exists */
43
+ export function Has(format) {
44
+ return map.has(format);
45
+ }
46
+ /** Sets a validation function for a user defined string format */
47
+ export function Set(format, func) {
48
+ map.set(format, func);
49
+ }
50
+ /** Gets a validation function for a user defined string format */
51
+ export function Get(format) {
52
+ return map.get(format);
53
+ }
@@ -0,0 +1,2 @@
1
+ export * as FormatRegistry from './format.mjs';
2
+ export * as TypeRegistry from './type.mjs';
@@ -0,0 +1,29 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ export * as FormatRegistry from './format.mjs';
29
+ export * as TypeRegistry from './type.mjs';
@@ -0,0 +1,13 @@
1
+ export type TypeRegistryValidationFunction<TSchema> = (schema: TSchema, value: unknown) => boolean;
2
+ /** Returns the entries in this registry */
3
+ export declare function Entries(): Map<string, TypeRegistryValidationFunction<any>>;
4
+ /** Clears all user defined types */
5
+ export declare function Clear(): void;
6
+ /** Deletes a registered type */
7
+ export declare function Delete(kind: string): boolean;
8
+ /** Returns true if this registry contains this kind */
9
+ export declare function Has(kind: string): boolean;
10
+ /** Sets a validation function for a user defined type */
11
+ export declare function Set<TSchema = unknown>(kind: string, func: TypeRegistryValidationFunction<TSchema>): void;
12
+ /** Gets a custom validation function for a user defined type */
13
+ export declare function Get(kind: string): TypeRegistryValidationFunction<any> | undefined;
@@ -0,0 +1,53 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ /** A registry for user defined types */
29
+ const map = new Map();
30
+ /** Returns the entries in this registry */
31
+ export function Entries() {
32
+ return new Map(map);
33
+ }
34
+ /** Clears all user defined types */
35
+ export function Clear() {
36
+ return map.clear();
37
+ }
38
+ /** Deletes a registered type */
39
+ export function Delete(kind) {
40
+ return map.delete(kind);
41
+ }
42
+ /** Returns true if this registry contains this kind */
43
+ export function Has(kind) {
44
+ return map.has(kind);
45
+ }
46
+ /** Sets a validation function for a user defined type */
47
+ export function Set(kind, func) {
48
+ map.set(kind, func);
49
+ }
50
+ /** Gets a custom validation function for a user defined type */
51
+ export function Get(kind) {
52
+ return map.get(kind);
53
+ }
@@ -0,0 +1 @@
1
+ export * from './required.mjs';
@@ -0,0 +1,28 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ export * from './required.mjs';
@@ -0,0 +1,23 @@
1
+ import type { TSchema, SchemaOptions } from '../schema/index.mjs';
2
+ import type { Evaluate } from '../helpers/index.mjs';
3
+ import { type TReadonlyOptional } from '../readonly-optional/index.mjs';
4
+ import { type TOptional } from '../optional/index.mjs';
5
+ import { type TReadonly } from '../readonly/index.mjs';
6
+ import { type TRecursive } from '../recursive/index.mjs';
7
+ import { type TIntersect } from '../intersect/index.mjs';
8
+ import { type TUnion } from '../union/index.mjs';
9
+ import { type TObject, type TProperties } from '../object/index.mjs';
10
+ type FromIntersect<T extends TSchema[]> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? [RequiredResolve<L>, ...FromIntersect<R>] : []);
11
+ declare function FromIntersect<T extends TSchema[]>(T: [...T]): FromIntersect<T>;
12
+ type FromUnion<T extends TSchema[]> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? [RequiredResolve<L>, ...FromUnion<R>] : []);
13
+ declare function FromUnion<T extends TSchema[]>(T: [...T]): FromUnion<T>;
14
+ type FromProperties<T extends TProperties> = Evaluate<{
15
+ [K in keyof T]: T[K] extends (TReadonlyOptional<infer S>) ? TReadonly<S> : T[K] extends (TReadonly<infer S>) ? TReadonly<S> : T[K] extends (TOptional<infer S>) ? S : T[K];
16
+ }>;
17
+ declare function FromProperties<T extends TProperties>(T: T): TProperties;
18
+ export type RequiredResolve<T extends TSchema> = (T extends TRecursive<infer S> ? TRecursive<RequiredResolve<S>> : T extends TIntersect<infer S> ? TIntersect<FromIntersect<S>> : T extends TUnion<infer S> ? TUnion<FromUnion<S>> : T extends TObject<infer S> ? TObject<FromProperties<S>> : TObject<{}>);
19
+ export declare function RequiredResolve<T extends TSchema>(T: T): RequiredResolve<T>;
20
+ export type TRequired<T extends TSchema> = RequiredResolve<T>;
21
+ /** `[Json]` Constructs a type where all properties are required */
22
+ export declare function Required<T extends TSchema>(T: T, options?: SchemaOptions): TRequired<T>;
23
+ export {};
@@ -0,0 +1,67 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ import { Intersect } from '../intersect/index.mjs';
29
+ import { Union } from '../union/index.mjs';
30
+ import { Object } from '../object/index.mjs';
31
+ import { OptionalKind, TransformKind } from '../symbols/index.mjs';
32
+ import { CloneType } from '../clone/type.mjs';
33
+ import { Discard } from '../discard/index.mjs';
34
+ import { TIntersect as IsIntersectType, TUnion as IsUnionType, TObject as IsObjectType } from '../guard/type.mjs';
35
+ // prettier-ignore
36
+ function FromIntersect(T) {
37
+ const [L, ...R] = T;
38
+ return (T.length > 0
39
+ ? [RequiredResolve(L), ...FromIntersect(R)]
40
+ : []);
41
+ }
42
+ // prettier-ignore
43
+ function FromUnion(T) {
44
+ const [L, ...R] = T;
45
+ return (T.length > 0
46
+ ? [RequiredResolve(L), ...FromUnion(R)]
47
+ : []);
48
+ }
49
+ // prettier-ignore
50
+ function FromProperties(T) {
51
+ return globalThis.Object.getOwnPropertyNames(T).reduce((Acc, K) => {
52
+ return { ...Acc, [K]: Discard(T[K], [OptionalKind]) };
53
+ }, {});
54
+ }
55
+ // prettier-ignore
56
+ export function RequiredResolve(T) {
57
+ return (IsIntersectType(T) ? Intersect(FromIntersect(T.allOf)) :
58
+ IsUnionType(T) ? Union(FromUnion(T.anyOf)) :
59
+ IsObjectType(T) ? Object(FromProperties(T.properties)) :
60
+ Object({}));
61
+ }
62
+ /** `[Json]` Constructs a type where all properties are required */
63
+ export function Required(T, options = {}) {
64
+ const D = Discard(T, [TransformKind, '$id', 'required']);
65
+ const R = CloneType(RequiredResolve(T), options);
66
+ return { ...D, ...R };
67
+ }
@@ -0,0 +1 @@
1
+ export * from './rest.mjs';