@sinclair/typebox 0.32.0-dev-16 → 0.32.0-dev-18

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 (575) hide show
  1. package/build/import/compiler/compiler.d.mts +9 -0
  2. package/build/import/compiler/compiler.mjs +60 -6
  3. package/build/import/errors/errors.d.mts +3 -0
  4. package/build/import/errors/errors.mjs +28 -3
  5. package/build/import/errors/function.d.mts +3 -0
  6. package/build/import/errors/function.mjs +4 -0
  7. package/build/import/index.mjs +9 -0
  8. package/build/import/system/policy.d.mts +10 -0
  9. package/build/import/system/policy.mjs +13 -0
  10. package/build/import/system/system.d.mts +3 -0
  11. package/build/import/system/system.mjs +9 -0
  12. package/build/import/type/any/any.d.mts +1 -0
  13. package/build/import/type/any/any.mjs +1 -0
  14. package/build/import/type/array/array.d.mts +7 -0
  15. package/build/import/type/array/array.mjs +1 -0
  16. package/build/import/type/async-iterator/async-iterator.d.mts +1 -0
  17. package/build/import/type/async-iterator/async-iterator.mjs +1 -0
  18. package/build/import/type/awaited/awaited.d.mts +7 -6
  19. package/build/import/type/awaited/awaited.mjs +23 -13
  20. package/build/import/type/bigint/bigint.d.mts +1 -0
  21. package/build/import/type/bigint/bigint.mjs +1 -0
  22. package/build/import/type/boolean/boolean.d.mts +1 -0
  23. package/build/import/type/boolean/boolean.mjs +1 -0
  24. package/build/import/type/clone/type.d.mts +2 -0
  25. package/build/import/type/clone/type.mjs +2 -0
  26. package/build/import/type/clone/value.d.mts +1 -0
  27. package/build/import/type/clone/value.mjs +2 -0
  28. package/build/import/type/composite/composite.d.mts +1 -0
  29. package/build/import/type/composite/composite.mjs +1 -0
  30. package/build/import/type/const/const.d.mts +2 -1
  31. package/build/import/type/const/const.mjs +5 -1
  32. package/build/import/type/constructor/constructor.d.mts +1 -0
  33. package/build/import/type/constructor/constructor.mjs +1 -0
  34. package/build/import/type/constructor-parameters/constructor-parameters.d.mts +1 -0
  35. package/build/import/type/constructor-parameters/constructor-parameters.mjs +1 -0
  36. package/build/import/type/date/date.d.mts +6 -0
  37. package/build/import/type/date/date.mjs +1 -0
  38. package/build/import/type/deref/deref.d.mts +1 -0
  39. package/build/import/type/deref/deref.mjs +18 -0
  40. package/build/import/type/enum/enum.d.mts +1 -0
  41. package/build/import/type/enum/enum.mjs +1 -0
  42. package/build/import/type/exclude/exclude-from-mapped-result.mjs +3 -0
  43. package/build/import/type/exclude/exclude.d.mts +2 -0
  44. package/build/import/type/exclude/exclude.mjs +3 -0
  45. package/build/import/type/extends/extends-check.mjs +173 -1
  46. package/build/import/type/extends/extends-from-mapped-key.mjs +4 -0
  47. package/build/import/type/extends/extends-from-mapped-result.mjs +3 -0
  48. package/build/import/type/extends/extends-undefined.d.mts +1 -0
  49. package/build/import/type/extends/extends-undefined.mjs +3 -0
  50. package/build/import/type/extends/extends.d.mts +3 -0
  51. package/build/import/type/extends/extends.mjs +7 -0
  52. package/build/import/type/extract/extract-from-mapped-result.mjs +3 -0
  53. package/build/import/type/extract/extract.d.mts +2 -0
  54. package/build/import/type/extract/extract.mjs +3 -0
  55. package/build/import/type/function/function.d.mts +1 -0
  56. package/build/import/type/function/function.mjs +1 -0
  57. package/build/import/type/guard/type.d.mts +46 -0
  58. package/build/import/type/guard/type.mjs +84 -1
  59. package/build/import/type/guard/value.d.mts +14 -0
  60. package/build/import/type/guard/value.mjs +14 -0
  61. package/build/import/type/helpers/helpers.d.mts +1 -0
  62. package/build/import/type/helpers/helpers.mjs +1 -0
  63. package/build/import/type/indexed/index.d.mts +0 -1
  64. package/build/import/type/indexed/index.mjs +0 -1
  65. package/build/import/type/indexed/indexed-from-mapped-key.d.mts +2 -2
  66. package/build/import/type/indexed/indexed-from-mapped-key.mjs +10 -3
  67. package/build/import/type/indexed/indexed-property-keys.d.mts +1 -0
  68. package/build/import/type/indexed/indexed-property-keys.mjs +9 -0
  69. package/build/import/type/indexed/indexed.d.mts +40 -4
  70. package/build/import/type/indexed/indexed.mjs +84 -5
  71. package/build/import/type/instance-type/instance-type.d.mts +1 -0
  72. package/build/import/type/instance-type/instance-type.mjs +1 -0
  73. package/build/import/type/integer/integer.d.mts +1 -0
  74. package/build/import/type/integer/integer.mjs +1 -0
  75. package/build/import/type/intersect/intersect-create.mjs +8 -0
  76. package/build/import/type/intersect/intersect-evaluated.d.mts +1 -0
  77. package/build/import/type/intersect/intersect-evaluated.mjs +9 -0
  78. package/build/import/type/intersect/intersect.d.mts +1 -0
  79. package/build/import/type/intersect/intersect.mjs +5 -0
  80. package/build/import/type/intrinsic/capitalize.d.mts +1 -0
  81. package/build/import/type/intrinsic/capitalize.mjs +1 -0
  82. package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +4 -0
  83. package/build/import/type/intrinsic/intrinsic.d.mts +2 -0
  84. package/build/import/type/intrinsic/intrinsic.mjs +16 -1
  85. package/build/import/type/intrinsic/lowercase.d.mts +1 -0
  86. package/build/import/type/intrinsic/lowercase.mjs +1 -0
  87. package/build/import/type/intrinsic/uncapitalize.d.mts +1 -0
  88. package/build/import/type/intrinsic/uncapitalize.mjs +1 -0
  89. package/build/import/type/intrinsic/uppercase.d.mts +1 -0
  90. package/build/import/type/intrinsic/uppercase.mjs +1 -0
  91. package/build/import/type/iterator/iterator.d.mts +1 -0
  92. package/build/import/type/iterator/iterator.mjs +1 -0
  93. package/build/import/type/keyof/keyof-from-mapped-result.mjs +3 -0
  94. package/build/import/type/keyof/keyof-property-keys.d.mts +2 -0
  95. package/build/import/type/keyof/keyof-property-keys.mjs +20 -0
  96. package/build/import/type/keyof/keyof.d.mts +2 -0
  97. package/build/import/type/keyof/keyof.mjs +6 -0
  98. package/build/import/type/literal/literal.d.mts +1 -0
  99. package/build/import/type/literal/literal.mjs +1 -0
  100. package/build/import/type/mapped/mapped-key.mjs +1 -0
  101. package/build/import/type/mapped/mapped-result.mjs +1 -0
  102. package/build/import/type/mapped/mapped.d.mts +2 -0
  103. package/build/import/type/mapped/mapped.mjs +19 -1
  104. package/build/import/type/modifiers/modifiers.mjs +10 -0
  105. package/build/import/type/never/never.d.mts +1 -0
  106. package/build/import/type/never/never.mjs +1 -0
  107. package/build/import/type/not/not.d.mts +1 -0
  108. package/build/import/type/not/not.mjs +1 -0
  109. package/build/import/type/null/null.d.mts +1 -0
  110. package/build/import/type/null/null.mjs +1 -0
  111. package/build/import/type/number/number.d.mts +1 -0
  112. package/build/import/type/number/number.mjs +1 -0
  113. package/build/import/type/object/object.d.mts +5 -0
  114. package/build/import/type/object/object.mjs +6 -0
  115. package/build/import/type/omit/omit-from-mapped-key.mjs +4 -0
  116. package/build/import/type/omit/omit.d.mts +3 -0
  117. package/build/import/type/omit/omit.mjs +12 -0
  118. package/build/import/type/operators/operators.d.mts +8 -0
  119. package/build/import/type/operators/operators.mjs +15 -0
  120. package/build/import/type/optional/optional.d.mts +1 -0
  121. package/build/import/type/optional/optional.mjs +1 -0
  122. package/build/import/type/parameters/parameters.d.mts +1 -0
  123. package/build/import/type/parameters/parameters.mjs +1 -0
  124. package/build/import/type/partial/partial-from-mapped-result.mjs +3 -0
  125. package/build/import/type/partial/partial.d.mts +2 -0
  126. package/build/import/type/partial/partial.mjs +9 -0
  127. package/build/import/type/pick/pick-from-mapped-key.mjs +4 -0
  128. package/build/import/type/pick/pick.d.mts +3 -0
  129. package/build/import/type/pick/pick.mjs +7 -0
  130. package/build/import/type/promise/promise.d.mts +1 -0
  131. package/build/import/type/promise/promise.mjs +1 -0
  132. package/build/import/type/readonly/readonly.d.mts +1 -0
  133. package/build/import/type/readonly/readonly.mjs +1 -0
  134. package/build/import/type/readonly-optional/readonly-optional.d.mts +1 -0
  135. package/build/import/type/readonly-optional/readonly-optional.mjs +1 -0
  136. package/build/import/type/record/record.d.mts +11 -9
  137. package/build/import/type/record/record.mjs +53 -28
  138. package/build/import/type/recursive/recursive.d.mts +1 -0
  139. package/build/import/type/recursive/recursive.mjs +3 -0
  140. package/build/import/type/ref/ref.d.mts +2 -0
  141. package/build/import/type/ref/ref.mjs +1 -0
  142. package/build/import/type/regexp/regexp.d.mts +2 -0
  143. package/build/import/type/regexp/regexp.mjs +1 -0
  144. package/build/import/type/registry/format.d.mts +6 -0
  145. package/build/import/type/registry/format.mjs +7 -0
  146. package/build/import/type/registry/type.d.mts +6 -0
  147. package/build/import/type/registry/type.mjs +7 -0
  148. package/build/import/type/required/required-from-mapped-result.mjs +3 -0
  149. package/build/import/type/required/required.d.mts +2 -0
  150. package/build/import/type/required/required.mjs +9 -0
  151. package/build/import/type/rest/rest.d.mts +1 -0
  152. package/build/import/type/rest/rest.mjs +5 -0
  153. package/build/import/type/return-type/return-type.d.mts +1 -0
  154. package/build/import/type/return-type/return-type.mjs +1 -0
  155. package/build/import/type/schema/schema.d.mts +7 -0
  156. package/build/import/type/static/static.d.mts +3 -0
  157. package/build/import/type/strict/strict.d.mts +1 -0
  158. package/build/import/type/strict/strict.mjs +1 -0
  159. package/build/import/type/string/string.d.mts +7 -0
  160. package/build/import/type/string/string.mjs +1 -0
  161. package/build/import/type/symbol/symbol.d.mts +1 -0
  162. package/build/import/type/symbol/symbol.mjs +1 -0
  163. package/build/import/type/symbols/symbols.d.mts +5 -0
  164. package/build/import/type/symbols/symbols.mjs +5 -0
  165. package/build/import/type/template-literal/finite.mjs +10 -0
  166. package/build/import/type/template-literal/generate.mjs +10 -0
  167. package/build/import/type/template-literal/parser.d.mts +2 -0
  168. package/build/import/type/template-literal/parser.mjs +17 -0
  169. package/build/import/type/template-literal/pattern.mjs +11 -0
  170. package/build/import/type/template-literal/syntax.d.mts +1 -0
  171. package/build/import/type/template-literal/syntax.mjs +8 -0
  172. package/build/import/type/template-literal/template-literal.d.mts +2 -0
  173. package/build/import/type/template-literal/template-literal.mjs +2 -0
  174. package/build/import/type/template-literal/union.d.mts +1 -0
  175. package/build/import/type/template-literal/union.mjs +4 -0
  176. package/build/import/type/transform/transform.d.mts +1 -0
  177. package/build/import/type/transform/transform.mjs +9 -0
  178. package/build/import/type/tuple/tuple.d.mts +1 -0
  179. package/build/import/type/tuple/tuple.mjs +3 -0
  180. package/build/import/type/type/index.d.mts +1 -0
  181. package/build/import/type/type/index.mjs +7 -0
  182. package/build/import/type/type/javascript.d.mts +19 -0
  183. package/build/import/type/type/javascript.mjs +18 -0
  184. package/build/import/type/type/json.d.mts +64 -3
  185. package/build/import/type/type/json.mjs +55 -1
  186. package/build/import/type/type/type.mjs +3 -0
  187. package/build/import/type/uint8array/uint8array.d.mts +1 -0
  188. package/build/import/type/uint8array/uint8array.mjs +1 -0
  189. package/build/import/type/undefined/undefined.d.mts +1 -0
  190. package/build/import/type/undefined/undefined.mjs +1 -0
  191. package/build/import/type/union/union-evaluated.d.mts +1 -0
  192. package/build/import/type/union/union-evaluated.mjs +10 -0
  193. package/build/import/type/union/union.d.mts +1 -0
  194. package/build/import/type/union/union.mjs +2 -0
  195. package/build/import/type/unknown/unknown.d.mts +1 -0
  196. package/build/import/type/unknown/unknown.mjs +1 -0
  197. package/build/import/type/unsafe/unsafe.d.mts +1 -0
  198. package/build/import/type/unsafe/unsafe.mjs +1 -0
  199. package/build/import/type/void/void.d.mts +1 -0
  200. package/build/import/type/void/void.mjs +1 -0
  201. package/build/import/value/cast/cast.d.mts +2 -0
  202. package/build/import/value/cast/cast.mjs +28 -0
  203. package/build/import/value/check/check.d.mts +2 -0
  204. package/build/import/value/check/check.mjs +19 -1
  205. package/build/import/value/clean/clean.d.mts +2 -0
  206. package/build/import/value/clean/clean.mjs +12 -1
  207. package/build/import/value/clone/clone.d.mts +1 -0
  208. package/build/import/value/clone/clone.mjs +7 -0
  209. package/build/import/value/convert/convert.d.mts +2 -0
  210. package/build/import/value/convert/convert.mjs +30 -1
  211. package/build/import/value/create/create.d.mts +2 -0
  212. package/build/import/value/create/create.mjs +17 -0
  213. package/build/import/value/default/default.d.mts +2 -0
  214. package/build/import/value/default/default.mjs +19 -0
  215. package/build/import/value/delta/delta.mjs +15 -0
  216. package/build/import/value/deref/deref.d.mts +1 -0
  217. package/build/import/value/deref/deref.mjs +1 -0
  218. package/build/import/value/equal/equal.d.mts +1 -0
  219. package/build/import/value/equal/equal.mjs +7 -0
  220. package/build/import/value/guard/guard.d.mts +20 -0
  221. package/build/import/value/guard/guard.mjs +30 -0
  222. package/build/import/value/hash/hash.d.mts +1 -0
  223. package/build/import/value/hash/hash.mjs +19 -0
  224. package/build/import/value/index.mjs +12 -0
  225. package/build/import/value/mutate/mutate.d.mts +1 -0
  226. package/build/import/value/mutate/mutate.mjs +11 -0
  227. package/build/import/value/pointer/pointer.d.mts +5 -0
  228. package/build/import/value/pointer/pointer.mjs +18 -0
  229. package/build/import/value/transform/decode.d.mts +5 -0
  230. package/build/import/value/transform/decode.mjs +23 -0
  231. package/build/import/value/transform/encode.d.mts +6 -0
  232. package/build/import/value/transform/encode.mjs +25 -0
  233. package/build/import/value/transform/has.d.mts +1 -0
  234. package/build/import/value/transform/has.mjs +16 -0
  235. package/build/import/value/value/value.d.mts +24 -0
  236. package/build/import/value/value/value.mjs +15 -0
  237. package/build/require/compiler/compiler.d.ts +9 -0
  238. package/build/require/compiler/compiler.js +61 -6
  239. package/build/require/compiler/index.js +1 -0
  240. package/build/require/errors/errors.d.ts +3 -0
  241. package/build/require/errors/errors.js +29 -3
  242. package/build/require/errors/function.d.ts +3 -0
  243. package/build/require/errors/function.js +5 -0
  244. package/build/require/errors/index.js +1 -0
  245. package/build/require/index.js +10 -0
  246. package/build/require/system/index.js +1 -0
  247. package/build/require/system/policy.d.ts +10 -0
  248. package/build/require/system/policy.js +14 -0
  249. package/build/require/system/system.d.ts +3 -0
  250. package/build/require/system/system.js +10 -0
  251. package/build/require/type/any/any.d.ts +1 -0
  252. package/build/require/type/any/any.js +2 -0
  253. package/build/require/type/any/index.js +1 -0
  254. package/build/require/type/array/array.d.ts +7 -0
  255. package/build/require/type/array/array.js +2 -0
  256. package/build/require/type/array/index.js +1 -0
  257. package/build/require/type/async-iterator/async-iterator.d.ts +1 -0
  258. package/build/require/type/async-iterator/async-iterator.js +2 -0
  259. package/build/require/type/async-iterator/index.js +1 -0
  260. package/build/require/type/awaited/awaited.d.ts +7 -6
  261. package/build/require/type/awaited/awaited.js +25 -15
  262. package/build/require/type/awaited/index.js +1 -0
  263. package/build/require/type/bigint/bigint.d.ts +1 -0
  264. package/build/require/type/bigint/bigint.js +2 -0
  265. package/build/require/type/bigint/index.js +1 -0
  266. package/build/require/type/boolean/boolean.d.ts +1 -0
  267. package/build/require/type/boolean/boolean.js +2 -0
  268. package/build/require/type/boolean/index.js +1 -0
  269. package/build/require/type/clone/index.js +1 -0
  270. package/build/require/type/clone/type.d.ts +2 -0
  271. package/build/require/type/clone/type.js +3 -0
  272. package/build/require/type/clone/value.d.ts +1 -0
  273. package/build/require/type/clone/value.js +3 -0
  274. package/build/require/type/composite/composite.d.ts +1 -0
  275. package/build/require/type/composite/composite.js +2 -0
  276. package/build/require/type/composite/index.js +1 -0
  277. package/build/require/type/const/const.d.ts +2 -1
  278. package/build/require/type/const/const.js +6 -1
  279. package/build/require/type/const/index.js +1 -0
  280. package/build/require/type/constructor/constructor.d.ts +1 -0
  281. package/build/require/type/constructor/constructor.js +2 -0
  282. package/build/require/type/constructor/index.js +1 -0
  283. package/build/require/type/constructor-parameters/constructor-parameters.d.ts +1 -0
  284. package/build/require/type/constructor-parameters/constructor-parameters.js +2 -0
  285. package/build/require/type/constructor-parameters/index.js +1 -0
  286. package/build/require/type/date/date.d.ts +6 -0
  287. package/build/require/type/date/date.js +2 -0
  288. package/build/require/type/date/index.js +1 -0
  289. package/build/require/type/deref/deref.d.ts +1 -0
  290. package/build/require/type/deref/deref.js +19 -0
  291. package/build/require/type/deref/index.js +1 -0
  292. package/build/require/type/discard/discard.js +1 -0
  293. package/build/require/type/discard/index.js +1 -0
  294. package/build/require/type/enum/enum.d.ts +1 -0
  295. package/build/require/type/enum/enum.js +2 -0
  296. package/build/require/type/enum/index.js +1 -0
  297. package/build/require/type/exclude/exclude-from-mapped-result.js +4 -0
  298. package/build/require/type/exclude/exclude.d.ts +2 -0
  299. package/build/require/type/exclude/exclude.js +4 -0
  300. package/build/require/type/exclude/index.js +1 -0
  301. package/build/require/type/extends/extends-check.js +174 -1
  302. package/build/require/type/extends/extends-from-mapped-key.js +5 -0
  303. package/build/require/type/extends/extends-from-mapped-result.js +4 -0
  304. package/build/require/type/extends/extends-undefined.d.ts +1 -0
  305. package/build/require/type/extends/extends-undefined.js +4 -0
  306. package/build/require/type/extends/extends.d.ts +3 -0
  307. package/build/require/type/extends/extends.js +8 -0
  308. package/build/require/type/extends/index.js +1 -0
  309. package/build/require/type/extract/extract-from-mapped-result.js +4 -0
  310. package/build/require/type/extract/extract.d.ts +2 -0
  311. package/build/require/type/extract/extract.js +4 -0
  312. package/build/require/type/extract/index.js +1 -0
  313. package/build/require/type/function/function.d.ts +1 -0
  314. package/build/require/type/function/function.js +2 -0
  315. package/build/require/type/function/index.js +1 -0
  316. package/build/require/type/guard/index.js +1 -0
  317. package/build/require/type/guard/type.d.ts +46 -0
  318. package/build/require/type/guard/type.js +85 -1
  319. package/build/require/type/guard/value.d.ts +14 -0
  320. package/build/require/type/guard/value.js +15 -0
  321. package/build/require/type/helpers/helpers.d.ts +1 -0
  322. package/build/require/type/helpers/helpers.js +2 -0
  323. package/build/require/type/helpers/index.js +1 -0
  324. package/build/require/type/index.js +1 -0
  325. package/build/require/type/indexed/index.d.ts +0 -1
  326. package/build/require/type/indexed/index.js +1 -1
  327. package/build/require/type/indexed/indexed-from-mapped-key.d.ts +2 -2
  328. package/build/require/type/indexed/indexed-from-mapped-key.js +11 -3
  329. package/build/require/type/indexed/indexed-property-keys.d.ts +1 -0
  330. package/build/require/type/indexed/indexed-property-keys.js +10 -0
  331. package/build/require/type/indexed/indexed.d.ts +40 -4
  332. package/build/require/type/indexed/indexed.js +84 -4
  333. package/build/require/type/instance-type/index.js +1 -0
  334. package/build/require/type/instance-type/instance-type.d.ts +1 -0
  335. package/build/require/type/instance-type/instance-type.js +2 -0
  336. package/build/require/type/integer/index.js +1 -0
  337. package/build/require/type/integer/integer.d.ts +1 -0
  338. package/build/require/type/integer/integer.js +2 -0
  339. package/build/require/type/intersect/index.js +1 -0
  340. package/build/require/type/intersect/intersect-create.js +9 -0
  341. package/build/require/type/intersect/intersect-evaluated.d.ts +1 -0
  342. package/build/require/type/intersect/intersect-evaluated.js +10 -0
  343. package/build/require/type/intersect/intersect-type.js +1 -0
  344. package/build/require/type/intersect/intersect.d.ts +1 -0
  345. package/build/require/type/intersect/intersect.js +6 -0
  346. package/build/require/type/intrinsic/capitalize.d.ts +1 -0
  347. package/build/require/type/intrinsic/capitalize.js +2 -0
  348. package/build/require/type/intrinsic/index.js +1 -0
  349. package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +5 -0
  350. package/build/require/type/intrinsic/intrinsic.d.ts +2 -0
  351. package/build/require/type/intrinsic/intrinsic.js +17 -1
  352. package/build/require/type/intrinsic/lowercase.d.ts +1 -0
  353. package/build/require/type/intrinsic/lowercase.js +2 -0
  354. package/build/require/type/intrinsic/uncapitalize.d.ts +1 -0
  355. package/build/require/type/intrinsic/uncapitalize.js +2 -0
  356. package/build/require/type/intrinsic/uppercase.d.ts +1 -0
  357. package/build/require/type/intrinsic/uppercase.js +2 -0
  358. package/build/require/type/iterator/index.js +1 -0
  359. package/build/require/type/iterator/iterator.d.ts +1 -0
  360. package/build/require/type/iterator/iterator.js +2 -0
  361. package/build/require/type/keyof/index.js +1 -0
  362. package/build/require/type/keyof/keyof-from-mapped-result.js +4 -0
  363. package/build/require/type/keyof/keyof-property-keys.d.ts +2 -0
  364. package/build/require/type/keyof/keyof-property-keys.js +21 -0
  365. package/build/require/type/keyof/keyof.d.ts +2 -0
  366. package/build/require/type/keyof/keyof.js +7 -0
  367. package/build/require/type/literal/index.js +1 -0
  368. package/build/require/type/literal/literal.d.ts +1 -0
  369. package/build/require/type/literal/literal.js +2 -0
  370. package/build/require/type/mapped/index.js +1 -0
  371. package/build/require/type/mapped/mapped-key.js +2 -0
  372. package/build/require/type/mapped/mapped-result.js +2 -0
  373. package/build/require/type/mapped/mapped.d.ts +2 -0
  374. package/build/require/type/mapped/mapped.js +20 -1
  375. package/build/require/type/modifiers/index.js +1 -0
  376. package/build/require/type/modifiers/modifiers.js +11 -0
  377. package/build/require/type/never/index.js +1 -0
  378. package/build/require/type/never/never.d.ts +1 -0
  379. package/build/require/type/never/never.js +2 -0
  380. package/build/require/type/not/index.js +1 -0
  381. package/build/require/type/not/not.d.ts +1 -0
  382. package/build/require/type/not/not.js +2 -0
  383. package/build/require/type/null/index.js +1 -0
  384. package/build/require/type/null/null.d.ts +1 -0
  385. package/build/require/type/null/null.js +2 -0
  386. package/build/require/type/number/index.js +1 -0
  387. package/build/require/type/number/number.d.ts +1 -0
  388. package/build/require/type/number/number.js +2 -0
  389. package/build/require/type/object/index.js +1 -0
  390. package/build/require/type/object/object.d.ts +5 -0
  391. package/build/require/type/object/object.js +7 -0
  392. package/build/require/type/omit/index.js +1 -0
  393. package/build/require/type/omit/omit-from-mapped-key.js +5 -0
  394. package/build/require/type/omit/omit.d.ts +3 -0
  395. package/build/require/type/omit/omit.js +13 -0
  396. package/build/require/type/operators/index.js +1 -0
  397. package/build/require/type/operators/operators.d.ts +8 -0
  398. package/build/require/type/operators/operators.js +16 -0
  399. package/build/require/type/optional/index.js +1 -0
  400. package/build/require/type/optional/optional.d.ts +1 -0
  401. package/build/require/type/optional/optional.js +2 -0
  402. package/build/require/type/parameters/index.js +1 -0
  403. package/build/require/type/parameters/parameters.d.ts +1 -0
  404. package/build/require/type/parameters/parameters.js +2 -0
  405. package/build/require/type/partial/index.js +1 -0
  406. package/build/require/type/partial/partial-from-mapped-result.js +4 -0
  407. package/build/require/type/partial/partial.d.ts +2 -0
  408. package/build/require/type/partial/partial.js +10 -0
  409. package/build/require/type/patterns/index.js +1 -0
  410. package/build/require/type/patterns/patterns.js +1 -0
  411. package/build/require/type/pick/index.js +1 -0
  412. package/build/require/type/pick/pick-from-mapped-key.js +5 -0
  413. package/build/require/type/pick/pick.d.ts +3 -0
  414. package/build/require/type/pick/pick.js +8 -0
  415. package/build/require/type/promise/index.js +1 -0
  416. package/build/require/type/promise/promise.d.ts +1 -0
  417. package/build/require/type/promise/promise.js +2 -0
  418. package/build/require/type/readonly/index.js +1 -0
  419. package/build/require/type/readonly/readonly.d.ts +1 -0
  420. package/build/require/type/readonly/readonly.js +2 -0
  421. package/build/require/type/readonly-optional/index.js +1 -0
  422. package/build/require/type/readonly-optional/readonly-optional.d.ts +1 -0
  423. package/build/require/type/readonly-optional/readonly-optional.js +2 -0
  424. package/build/require/type/record/index.js +1 -0
  425. package/build/require/type/record/record.d.ts +11 -9
  426. package/build/require/type/record/record.js +54 -28
  427. package/build/require/type/recursive/index.js +1 -0
  428. package/build/require/type/recursive/recursive.d.ts +1 -0
  429. package/build/require/type/recursive/recursive.js +4 -0
  430. package/build/require/type/ref/index.js +1 -0
  431. package/build/require/type/ref/ref.d.ts +2 -0
  432. package/build/require/type/ref/ref.js +2 -0
  433. package/build/require/type/regexp/index.js +1 -0
  434. package/build/require/type/regexp/regexp.d.ts +2 -0
  435. package/build/require/type/regexp/regexp.js +2 -0
  436. package/build/require/type/registry/format.d.ts +6 -0
  437. package/build/require/type/registry/format.js +8 -0
  438. package/build/require/type/registry/index.js +1 -0
  439. package/build/require/type/registry/type.d.ts +6 -0
  440. package/build/require/type/registry/type.js +8 -0
  441. package/build/require/type/required/index.js +1 -0
  442. package/build/require/type/required/required-from-mapped-result.js +4 -0
  443. package/build/require/type/required/required.d.ts +2 -0
  444. package/build/require/type/required/required.js +10 -0
  445. package/build/require/type/rest/index.js +1 -0
  446. package/build/require/type/rest/rest.d.ts +1 -0
  447. package/build/require/type/rest/rest.js +6 -0
  448. package/build/require/type/return-type/index.js +1 -0
  449. package/build/require/type/return-type/return-type.d.ts +1 -0
  450. package/build/require/type/return-type/return-type.js +2 -0
  451. package/build/require/type/schema/anyschema.js +1 -0
  452. package/build/require/type/schema/index.js +1 -0
  453. package/build/require/type/schema/schema.d.ts +7 -0
  454. package/build/require/type/schema/schema.js +1 -0
  455. package/build/require/type/static/index.js +1 -0
  456. package/build/require/type/static/static.d.ts +3 -0
  457. package/build/require/type/static/static.js +1 -0
  458. package/build/require/type/strict/index.js +1 -0
  459. package/build/require/type/strict/strict.d.ts +1 -0
  460. package/build/require/type/strict/strict.js +2 -0
  461. package/build/require/type/string/index.js +1 -0
  462. package/build/require/type/string/string.d.ts +7 -0
  463. package/build/require/type/string/string.js +2 -0
  464. package/build/require/type/symbol/index.js +1 -0
  465. package/build/require/type/symbol/symbol.d.ts +1 -0
  466. package/build/require/type/symbol/symbol.js +2 -0
  467. package/build/require/type/symbols/index.js +1 -0
  468. package/build/require/type/symbols/symbols.d.ts +5 -0
  469. package/build/require/type/symbols/symbols.js +6 -0
  470. package/build/require/type/template-literal/finite.js +11 -0
  471. package/build/require/type/template-literal/generate.js +11 -0
  472. package/build/require/type/template-literal/index.js +1 -0
  473. package/build/require/type/template-literal/parser.d.ts +2 -0
  474. package/build/require/type/template-literal/parser.js +18 -0
  475. package/build/require/type/template-literal/pattern.js +12 -0
  476. package/build/require/type/template-literal/syntax.d.ts +1 -0
  477. package/build/require/type/template-literal/syntax.js +9 -0
  478. package/build/require/type/template-literal/template-literal.d.ts +2 -0
  479. package/build/require/type/template-literal/template-literal.js +3 -0
  480. package/build/require/type/template-literal/union.d.ts +1 -0
  481. package/build/require/type/template-literal/union.js +5 -0
  482. package/build/require/type/transform/index.js +1 -0
  483. package/build/require/type/transform/transform.d.ts +1 -0
  484. package/build/require/type/transform/transform.js +10 -0
  485. package/build/require/type/tuple/index.js +1 -0
  486. package/build/require/type/tuple/tuple.d.ts +1 -0
  487. package/build/require/type/tuple/tuple.js +4 -0
  488. package/build/require/type/type/index.d.ts +1 -0
  489. package/build/require/type/type/index.js +8 -0
  490. package/build/require/type/type/javascript.d.ts +19 -0
  491. package/build/require/type/type/javascript.js +19 -0
  492. package/build/require/type/type/json.d.ts +64 -3
  493. package/build/require/type/type/json.js +56 -1
  494. package/build/require/type/type/type.js +4 -0
  495. package/build/require/type/uint8array/index.js +1 -0
  496. package/build/require/type/uint8array/uint8array.d.ts +1 -0
  497. package/build/require/type/uint8array/uint8array.js +2 -0
  498. package/build/require/type/undefined/index.js +1 -0
  499. package/build/require/type/undefined/undefined.d.ts +1 -0
  500. package/build/require/type/undefined/undefined.js +2 -0
  501. package/build/require/type/union/index.js +1 -0
  502. package/build/require/type/union/union-create.js +1 -0
  503. package/build/require/type/union/union-evaluated.d.ts +1 -0
  504. package/build/require/type/union/union-evaluated.js +11 -0
  505. package/build/require/type/union/union-type.js +1 -0
  506. package/build/require/type/union/union.d.ts +1 -0
  507. package/build/require/type/union/union.js +3 -0
  508. package/build/require/type/unknown/index.js +1 -0
  509. package/build/require/type/unknown/unknown.d.ts +1 -0
  510. package/build/require/type/unknown/unknown.js +2 -0
  511. package/build/require/type/unsafe/index.js +1 -0
  512. package/build/require/type/unsafe/unsafe.d.ts +1 -0
  513. package/build/require/type/unsafe/unsafe.js +2 -0
  514. package/build/require/type/void/index.js +1 -0
  515. package/build/require/type/void/void.d.ts +1 -0
  516. package/build/require/type/void/void.js +2 -0
  517. package/build/require/value/cast/cast.d.ts +2 -0
  518. package/build/require/value/cast/cast.js +29 -0
  519. package/build/require/value/cast/index.js +1 -0
  520. package/build/require/value/check/check.d.ts +2 -0
  521. package/build/require/value/check/check.js +20 -1
  522. package/build/require/value/check/index.js +1 -0
  523. package/build/require/value/clean/clean.d.ts +2 -0
  524. package/build/require/value/clean/clean.js +13 -1
  525. package/build/require/value/clean/index.js +1 -0
  526. package/build/require/value/clone/clone.d.ts +1 -0
  527. package/build/require/value/clone/clone.js +8 -0
  528. package/build/require/value/clone/index.js +1 -0
  529. package/build/require/value/convert/convert.d.ts +2 -0
  530. package/build/require/value/convert/convert.js +31 -1
  531. package/build/require/value/convert/index.js +1 -0
  532. package/build/require/value/create/create.d.ts +2 -0
  533. package/build/require/value/create/create.js +18 -0
  534. package/build/require/value/create/index.js +1 -0
  535. package/build/require/value/default/default.d.ts +2 -0
  536. package/build/require/value/default/default.js +20 -0
  537. package/build/require/value/default/index.js +1 -0
  538. package/build/require/value/delta/delta.js +16 -0
  539. package/build/require/value/delta/index.js +1 -0
  540. package/build/require/value/deref/deref.d.ts +1 -0
  541. package/build/require/value/deref/deref.js +2 -0
  542. package/build/require/value/deref/index.js +1 -0
  543. package/build/require/value/equal/equal.d.ts +1 -0
  544. package/build/require/value/equal/equal.js +8 -0
  545. package/build/require/value/equal/index.js +1 -0
  546. package/build/require/value/guard/guard.d.ts +20 -0
  547. package/build/require/value/guard/guard.js +31 -0
  548. package/build/require/value/guard/index.js +1 -0
  549. package/build/require/value/hash/hash.d.ts +1 -0
  550. package/build/require/value/hash/hash.js +20 -0
  551. package/build/require/value/hash/index.js +1 -0
  552. package/build/require/value/index.js +13 -0
  553. package/build/require/value/mutate/index.js +1 -0
  554. package/build/require/value/mutate/mutate.d.ts +1 -0
  555. package/build/require/value/mutate/mutate.js +12 -0
  556. package/build/require/value/pointer/index.js +1 -0
  557. package/build/require/value/pointer/pointer.d.ts +5 -0
  558. package/build/require/value/pointer/pointer.js +19 -0
  559. package/build/require/value/transform/decode.d.ts +5 -0
  560. package/build/require/value/transform/decode.js +24 -0
  561. package/build/require/value/transform/encode.d.ts +6 -0
  562. package/build/require/value/transform/encode.js +26 -0
  563. package/build/require/value/transform/has.d.ts +1 -0
  564. package/build/require/value/transform/has.js +17 -0
  565. package/build/require/value/transform/index.js +1 -0
  566. package/build/require/value/value/index.js +1 -0
  567. package/build/require/value/value/value.d.ts +24 -0
  568. package/build/require/value/value/value.js +16 -0
  569. package/license +3 -1
  570. package/package.json +1 -1
  571. package/readme.md +4 -5
  572. package/build/import/type/indexed/indexed-result.d.mts +0 -33
  573. package/build/import/type/indexed/indexed-result.mjs +0 -65
  574. package/build/require/type/indexed/indexed-result.d.ts +0 -33
  575. package/build/require/type/indexed/indexed-result.js +0 -69
@@ -1,17 +1,25 @@
1
+ // ------------------------------------------------------------------
2
+ // TemplateLiteralParserError
3
+ // ------------------------------------------------------------------
1
4
  export class TemplateLiteralParserError extends Error {
2
5
  }
6
+ // prettier-ignore
3
7
  function IsNonEscaped(pattern, index, char) {
4
8
  return pattern[index] === char && pattern.charCodeAt(index - 1) !== 92;
5
9
  }
10
+ // prettier-ignore
6
11
  function IsOpenParen(pattern, index) {
7
12
  return IsNonEscaped(pattern, index, '(');
8
13
  }
14
+ // prettier-ignore
9
15
  function IsCloseParen(pattern, index) {
10
16
  return IsNonEscaped(pattern, index, ')');
11
17
  }
18
+ // prettier-ignore
12
19
  function IsSeparator(pattern, index) {
13
20
  return IsNonEscaped(pattern, index, '|');
14
21
  }
22
+ // prettier-ignore
15
23
  function IsGroup(pattern) {
16
24
  if (!(IsOpenParen(pattern, 0) && IsCloseParen(pattern, pattern.length - 1)))
17
25
  return false;
@@ -26,9 +34,11 @@ function IsGroup(pattern) {
26
34
  }
27
35
  return true;
28
36
  }
37
+ // prettier-ignore
29
38
  function InGroup(pattern) {
30
39
  return pattern.slice(1, pattern.length - 1);
31
40
  }
41
+ // prettier-ignore
32
42
  function IsPrecedenceOr(pattern) {
33
43
  let count = 0;
34
44
  for (let index = 0; index < pattern.length; index++) {
@@ -41,6 +51,7 @@ function IsPrecedenceOr(pattern) {
41
51
  }
42
52
  return false;
43
53
  }
54
+ // prettier-ignore
44
55
  function IsPrecedenceAnd(pattern) {
45
56
  for (let index = 0; index < pattern.length; index++) {
46
57
  if (IsOpenParen(pattern, index))
@@ -48,6 +59,7 @@ function IsPrecedenceAnd(pattern) {
48
59
  }
49
60
  return false;
50
61
  }
62
+ // prettier-ignore
51
63
  function Or(pattern) {
52
64
  let [count, start] = [0, 0];
53
65
  const expressions = [];
@@ -72,6 +84,7 @@ function Or(pattern) {
72
84
  return expressions[0];
73
85
  return { type: 'or', expr: expressions };
74
86
  }
87
+ // prettier-ignore
75
88
  function And(pattern) {
76
89
  function Group(value, index) {
77
90
  if (!IsOpenParen(value, index))
@@ -114,12 +127,16 @@ function And(pattern) {
114
127
  (expressions.length === 1) ? expressions[0] :
115
128
  { type: 'and', expr: expressions });
116
129
  }
130
+ /** Parses a pattern and returns an expression tree */
131
+ // prettier-ignore
117
132
  export function TemplateLiteralParse(pattern) {
118
133
  return (IsGroup(pattern) ? TemplateLiteralParse(InGroup(pattern)) :
119
134
  IsPrecedenceOr(pattern) ? Or(pattern) :
120
135
  IsPrecedenceAnd(pattern) ? And(pattern) :
121
136
  { type: 'const', const: pattern });
122
137
  }
138
+ /** Parses a pattern and strips forward and trailing ^ and $ */
139
+ // prettier-ignore
123
140
  export function TemplateLiteralParseExact(pattern) {
124
141
  return TemplateLiteralParse(pattern.slice(1, pattern.length - 1));
125
142
  }
@@ -1,11 +1,22 @@
1
1
  import { PatternNumber, PatternString, PatternBoolean } from '../patterns/index.mjs';
2
2
  import { Kind } from '../symbols/index.mjs';
3
+ // ------------------------------------------------------------------
4
+ // TypeGuard
5
+ // ------------------------------------------------------------------
6
+ // prettier-ignore
3
7
  import { TTemplateLiteral as IsTemplateLiteralType, TUnion as IsUnionType, TNumber as IsNumberType, TInteger as IsIntegerType, TBigInt as IsBigIntType, TString as IsStringType, TLiteral as IsLiteralType, TBoolean as IsBooleanType, } from '../guard/type.mjs';
8
+ // ------------------------------------------------------------------
9
+ // TemplateLiteralPatternError
10
+ // ------------------------------------------------------------------
4
11
  export class TemplateLiteralPatternError extends Error {
5
12
  }
13
+ // ------------------------------------------------------------------
14
+ // TemplateLiteralPattern
15
+ // ------------------------------------------------------------------
6
16
  function Escape(value) {
7
17
  return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
8
18
  }
19
+ // prettier-ignore
9
20
  function Visit(schema, acc) {
10
21
  return (IsTemplateLiteralType(schema) ? schema.pattern.slice(1, schema.pattern.length - 1) :
11
22
  IsUnionType(schema) ? `(${schema.anyOf.map((schema) => Visit(schema, acc)).join('|')})` :
@@ -15,5 +15,6 @@ type FromTerminal<T extends string> = T extends 'boolean' ? TBoolean : T extends
15
15
  type FromString<T extends string> = T extends `{${infer L}}${infer R}` ? [FromTerminal<L>, ...FromString<R>] : T extends `${infer L}$${infer R}` ? [TLiteral<L>, ...FromString<R>] : T extends `${infer L}` ? [TLiteral<L>] : [
16
16
  ];
17
17
  export type TemplateLiteralSyntax<T extends string> = (TTemplateLiteral<Assert<FromString<T>, TTemplateLiteralKind[]>>);
18
+ /** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */
18
19
  export declare function TemplateLiteralSyntax(syntax: string): TTemplateLiteralKind[];
19
20
  export {};
@@ -5,6 +5,10 @@ import { Number } from '../number/index.mjs';
5
5
  import { String } from '../string/index.mjs';
6
6
  import { Union } from '../union/index.mjs';
7
7
  import { Never } from '../never/index.mjs';
8
+ // ------------------------------------------------------------------
9
+ // SyntaxParsers
10
+ // ------------------------------------------------------------------
11
+ // prettier-ignore
8
12
  function* FromUnion(syntax) {
9
13
  const trim = syntax.trim().replace(/"|'/g, '');
10
14
  return (trim === 'boolean' ? yield Boolean() :
@@ -18,6 +22,7 @@ function* FromUnion(syntax) {
18
22
  Union(literals));
19
23
  })());
20
24
  }
25
+ // prettier-ignore
21
26
  function* FromTerminal(syntax) {
22
27
  if (syntax[1] !== '{') {
23
28
  const L = Literal('$');
@@ -33,6 +38,7 @@ function* FromTerminal(syntax) {
33
38
  }
34
39
  yield Literal(syntax);
35
40
  }
41
+ // prettier-ignore
36
42
  function* FromSyntax(syntax) {
37
43
  for (let i = 0; i < syntax.length; i++) {
38
44
  if (syntax[i] === '$') {
@@ -43,6 +49,8 @@ function* FromSyntax(syntax) {
43
49
  }
44
50
  yield Literal(syntax);
45
51
  }
52
+ // prettier-ignore
53
+ /** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */
46
54
  export function TemplateLiteralSyntax(syntax) {
47
55
  return [...FromSyntax(syntax)];
48
56
  }
@@ -23,6 +23,8 @@ export interface TTemplateLiteral<T extends TTemplateLiteralKind[] = TTemplateLi
23
23
  type: 'string';
24
24
  pattern: string;
25
25
  }
26
+ /** `[Json]` Creates a TemplateLiteral type from template dsl string */
26
27
  export declare function TemplateLiteral<T extends string>(syntax: T, options?: SchemaOptions): TemplateLiteralSyntax<T>;
28
+ /** `[Json]` Creates a TemplateLiteral type */
27
29
  export declare function TemplateLiteral<T extends TTemplateLiteralKind[]>(kinds: [...T], options?: SchemaOptions): TTemplateLiteral<T>;
28
30
  export {};
@@ -2,6 +2,8 @@ import { TemplateLiteralPattern } from './pattern.mjs';
2
2
  import { TemplateLiteralSyntax } from './syntax.mjs';
3
3
  import { IsString } from '../guard/value.mjs';
4
4
  import { Kind } from '../symbols/index.mjs';
5
+ /** `[Json]` Creates a TemplateLiteral type */
6
+ // prettier-ignore
5
7
  export function TemplateLiteral(unresolved, options = {}) {
6
8
  const pattern = IsString(unresolved)
7
9
  ? TemplateLiteralPattern(TemplateLiteralSyntax(unresolved))
@@ -3,4 +3,5 @@ import { type TUnion } from '../union/index.mjs';
3
3
  import { type TLiteral } from '../literal/index.mjs';
4
4
  import { type TString } from '../string/index.mjs';
5
5
  import { type TNever } from '../never/index.mjs';
6
+ /** Resolves a template literal as a TUnion */
6
7
  export declare function TemplateLiteralToUnion(template: TTemplateLiteral): TNever | TString | TUnion<TLiteral[]>;
@@ -4,6 +4,10 @@ import { String } from '../string/index.mjs';
4
4
  import { TemplateLiteralGenerate } from './generate.mjs';
5
5
  import { TemplateLiteralParseExact } from './parser.mjs';
6
6
  import { IsTemplateLiteralFinite } from './finite.mjs';
7
+ // ------------------------------------------------------------------
8
+ // TemplateLiteralToUnion
9
+ // ------------------------------------------------------------------
10
+ /** Resolves a template literal as a TUnion */
7
11
  export function TemplateLiteralToUnion(template) {
8
12
  const expression = TemplateLiteralParseExact(template.pattern);
9
13
  if (!IsTemplateLiteralFinite(expression))
@@ -25,5 +25,6 @@ export interface TTransform<I extends TSchema = TSchema, O extends unknown = unk
25
25
  [TransformKind]: TransformOptions<I, O>;
26
26
  [key: string]: any;
27
27
  }
28
+ /** `[Json]` Creates a Transform type */
28
29
  export declare function Transform<I extends TSchema>(schema: I): TransformDecodeBuilder<I>;
29
30
  export {};
@@ -1,6 +1,13 @@
1
1
  import { CloneType } from '../clone/type.mjs';
2
2
  import { TransformKind } from '../symbols/index.mjs';
3
+ // ------------------------------------------------------------------
4
+ // TypeGuard
5
+ // ------------------------------------------------------------------
6
+ // prettier-ignore
3
7
  import { TTransform as IsTransform } from '../guard/type.mjs';
8
+ // ------------------------------------------------------------------
9
+ // TransformBuilders
10
+ // ------------------------------------------------------------------
4
11
  export class TransformDecodeBuilder {
5
12
  schema;
6
13
  constructor(schema) {
@@ -10,6 +17,7 @@ export class TransformDecodeBuilder {
10
17
  return new TransformEncodeBuilder(this.schema, decode);
11
18
  }
12
19
  }
20
+ // prettier-ignore
13
21
  export class TransformEncodeBuilder {
14
22
  schema;
15
23
  decode;
@@ -32,6 +40,7 @@ export class TransformEncodeBuilder {
32
40
  return (IsTransform(schema) ? this.EncodeTransform(encode, schema) : this.EncodeSchema(encode, schema));
33
41
  }
34
42
  }
43
+ /** `[Json]` Creates a Transform type */
35
44
  export function Transform(schema) {
36
45
  return new TransformDecodeBuilder(schema);
37
46
  }
@@ -12,5 +12,6 @@ export interface TTuple<T extends TSchema[] = TSchema[]> extends TSchema {
12
12
  minItems: number;
13
13
  maxItems: number;
14
14
  }
15
+ /** `[Json]` Creates a Tuple type */
15
16
  export declare function Tuple<T extends TSchema[]>(items: [...T], options?: SchemaOptions): TTuple<T>;
16
17
  export {};
@@ -1,7 +1,10 @@
1
1
  import { CloneRest } from '../clone/type.mjs';
2
2
  import { Kind } from '../symbols/index.mjs';
3
+ /** `[Json]` Creates a Tuple type */
3
4
  export function Tuple(items, options = {}) {
5
+ // return TupleResolver.Resolve(T)
4
6
  const [additionalItems, minItems, maxItems] = [false, items.length, items.length];
7
+ // prettier-ignore
5
8
  return (items.length > 0 ?
6
9
  { ...options, [Kind]: 'Tuple', type: 'array', items: CloneRest(items), additionalItems, minItems, maxItems } :
7
10
  { ...options, [Kind]: 'Tuple', type: 'array', minItems, maxItems });
@@ -1,5 +1,6 @@
1
1
  export { JsonTypeBuilder } from './json.mjs';
2
2
  import { JavaScriptTypeBuilder } from './javascript.mjs';
3
+ /** JavaScript Type Builder with Static Resolution for TypeScript */
3
4
  declare const Type: JavaScriptTypeBuilder;
4
5
  export { JavaScriptTypeBuilder };
5
6
  export { Type };
@@ -1,6 +1,13 @@
1
+ // ------------------------------------------------------------------
2
+ // JsonTypeBuilder
3
+ // ------------------------------------------------------------------
1
4
  export { JsonTypeBuilder } from './json.mjs';
5
+ // ------------------------------------------------------------------
6
+ // JavaScriptTypeBuilder
7
+ // ------------------------------------------------------------------
2
8
  import * as TypeBuilder from './type.mjs';
3
9
  import { JavaScriptTypeBuilder } from './javascript.mjs';
10
+ /** JavaScript Type Builder with Static Resolution for TypeScript */
4
11
  const Type = TypeBuilder;
5
12
  export { JavaScriptTypeBuilder };
6
13
  export { Type };
@@ -17,23 +17,42 @@ import { type TSymbol } from '../symbol/index.mjs';
17
17
  import { type TUint8Array, type Uint8ArrayOptions } from '../uint8array/index.mjs';
18
18
  import { type TUndefined } from '../undefined/index.mjs';
19
19
  import { type TVoid } from '../void/index.mjs';
20
+ /** JavaScript Type Builder with Static Resolution for TypeScript */
20
21
  export declare class JavaScriptTypeBuilder extends JsonTypeBuilder {
22
+ /** `[JavaScript]` Creates a AsyncIterator type */
21
23
  AsyncIterator<T extends TSchema>(items: T, options?: SchemaOptions): TAsyncIterator<T>;
24
+ /** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */
22
25
  Awaited<T extends TSchema>(schema: T, options?: SchemaOptions): TAwaited<T>;
26
+ /** `[JavaScript]` Creates a BigInt type */
23
27
  BigInt(options?: BigIntOptions): TBigInt;
28
+ /** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */
24
29
  ConstructorParameters<T extends TConstructor<TSchema[], TSchema>>(schema: T, options?: SchemaOptions): TConstructorParameters<T>;
30
+ /** `[JavaScript]` Creates a Constructor type */
25
31
  Constructor<T extends TSchema[], U extends TSchema>(parameters: [...T], returns: U, options?: SchemaOptions): TConstructor<T, U>;
32
+ /** `[JavaScript]` Creates a Date type */
26
33
  Date(options?: DateOptions): TDate;
34
+ /** `[JavaScript]` Creates a Function type */
27
35
  Function<T extends TSchema[], U extends TSchema>(parameters: [...T], returns: U, options?: SchemaOptions): TFunction<T, U>;
36
+ /** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
28
37
  InstanceType<T extends TConstructor<any[], any>>(schema: T, options?: SchemaOptions): TInstanceType<T>;
38
+ /** `[JavaScript]` Creates an Iterator type */
29
39
  Iterator<T extends TSchema>(items: T, options?: SchemaOptions): TIterator<T>;
40
+ /** `[JavaScript]` Extracts the Parameters from the given Function type */
30
41
  Parameters<T extends TFunction<TSchema[], TSchema>>(schema: T, options?: SchemaOptions): TParameters<T>;
42
+ /** `[JavaScript]` Creates a Promise type */
31
43
  Promise<T extends TSchema>(item: T, options?: SchemaOptions): TPromise<T>;
44
+ /** `[JavaScript]` Creates a String type from a Regular Expression pattern */
32
45
  RegExp(pattern: string, options?: SchemaOptions): TRegExp;
46
+ /** `[JavaScript]` Creates a String type from a Regular Expression */
33
47
  RegExp(regex: RegExp, options?: SchemaOptions): TRegExp;
48
+ /** `[JavaScript]` Extracts the ReturnType from the given Function type */
34
49
  ReturnType<T extends TFunction<any[], any>>(schema: T, options?: SchemaOptions): TReturnType<T>;
50
+ /** `[JavaScript]` Creates a Symbol type */
35
51
  Symbol(options?: SchemaOptions): TSymbol;
52
+ /** `[JavaScript]` Creates a Undefined type */
36
53
  Undefined(options?: SchemaOptions): TUndefined;
54
+ /** `[JavaScript]` Creates a Uint8Array type */
37
55
  Uint8Array(options?: Uint8ArrayOptions): TUint8Array;
56
+ /** `[JavaScript]` Creates a Void type */
38
57
  Void(options?: SchemaOptions): TVoid;
39
58
  }
@@ -16,55 +16,73 @@ import { Symbol } from '../symbol/index.mjs';
16
16
  import { Uint8Array } from '../uint8array/index.mjs';
17
17
  import { Undefined } from '../undefined/index.mjs';
18
18
  import { Void } from '../void/index.mjs';
19
+ /** JavaScript Type Builder with Static Resolution for TypeScript */
19
20
  export class JavaScriptTypeBuilder extends JsonTypeBuilder {
21
+ /** `[JavaScript]` Creates a AsyncIterator type */
20
22
  AsyncIterator(items, options = {}) {
21
23
  return AsyncIterator(items, options);
22
24
  }
25
+ /** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */
23
26
  Awaited(schema, options = {}) {
24
27
  return Awaited(schema, options);
25
28
  }
29
+ /** `[JavaScript]` Creates a BigInt type */
26
30
  BigInt(options = {}) {
27
31
  return BigInt(options);
28
32
  }
33
+ /** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */
29
34
  ConstructorParameters(schema, options = {}) {
30
35
  return ConstructorParameters(schema, options);
31
36
  }
37
+ /** `[JavaScript]` Creates a Constructor type */
32
38
  Constructor(parameters, returns, options) {
33
39
  return Constructor(parameters, returns, options);
34
40
  }
41
+ /** `[JavaScript]` Creates a Date type */
35
42
  Date(options = {}) {
36
43
  return Date(options);
37
44
  }
45
+ /** `[JavaScript]` Creates a Function type */
38
46
  Function(parameters, returns, options) {
39
47
  return FunctionType(parameters, returns, options);
40
48
  }
49
+ /** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
41
50
  InstanceType(schema, options = {}) {
42
51
  return InstanceType(schema, options);
43
52
  }
53
+ /** `[JavaScript]` Creates an Iterator type */
44
54
  Iterator(items, options = {}) {
45
55
  return Iterator(items, options);
46
56
  }
57
+ /** `[JavaScript]` Extracts the Parameters from the given Function type */
47
58
  Parameters(schema, options = {}) {
48
59
  return Parameters(schema, options);
49
60
  }
61
+ /** `[JavaScript]` Creates a Promise type */
50
62
  Promise(item, options = {}) {
51
63
  return Promise(item, options);
52
64
  }
65
+ /** `[JavaScript]` Creates a String type */
53
66
  RegExp(unresolved, options = {}) {
54
67
  return RegExp(unresolved, options);
55
68
  }
69
+ /** `[JavaScript]` Extracts the ReturnType from the given Function type */
56
70
  ReturnType(schema, options = {}) {
57
71
  return ReturnType(schema, options);
58
72
  }
73
+ /** `[JavaScript]` Creates a Symbol type */
59
74
  Symbol(options) {
60
75
  return Symbol(options);
61
76
  }
77
+ /** `[JavaScript]` Creates a Undefined type */
62
78
  Undefined(options = {}) {
63
79
  return Undefined(options);
64
80
  }
81
+ /** `[JavaScript]` Creates a Uint8Array type */
65
82
  Uint8Array(options = {}) {
66
83
  return Uint8Array(options);
67
84
  }
85
+ /** `[JavaScript]` Creates a Void type */
68
86
  Void(options = {}) {
69
87
  return Void(options);
70
88
  }
@@ -27,7 +27,7 @@ import { type TPartial, type TPartialFromMappedResult } from '../partial/index.m
27
27
  import { type TPick, type TPickFromMappedKey } from '../pick/index.mjs';
28
28
  import { type TReadonly } from '../readonly/index.mjs';
29
29
  import { type TReadonlyOptional } from '../readonly-optional/index.mjs';
30
- import { type RecordResolve } from '../record/index.mjs';
30
+ import { type TRecordOrObject } from '../record/index.mjs';
31
31
  import { type TRecursive, type TThis } from '../recursive/index.mjs';
32
32
  import { type TRef } from '../ref/index.mjs';
33
33
  import { type TRequired, type TRequiredFromMappedResult } from '../required/index.mjs';
@@ -40,65 +40,126 @@ import { type TTuple } from '../tuple/index.mjs';
40
40
  import { Union } from '../union/index.mjs';
41
41
  import { type TUnknown } from '../unknown/index.mjs';
42
42
  import { type TUnsafe, type UnsafeOptions } from '../unsafe/index.mjs';
43
+ /** Json Type Builder with Static Resolution for TypeScript */
43
44
  export declare class JsonTypeBuilder {
45
+ /** `[Json]` Omits compositing symbols from this schema */
44
46
  Strict<T extends TSchema>(schema: T): T;
47
+ /** `[Json]` Creates a Readonly and Optional property */
45
48
  ReadonlyOptional<T extends TSchema>(schema: T): TReadonlyOptional<T>;
49
+ /** `[Json]` Creates a Readonly property */
46
50
  Readonly<T extends TSchema>(schema: T): TReadonly<T>;
51
+ /** `[Json]` Creates an Optional property */
47
52
  Optional<T extends TSchema>(schema: T): TOptional<T>;
53
+ /** `[Json]` Creates an Any type */
48
54
  Any(options?: SchemaOptions): TAny;
55
+ /** `[Json]` Creates an Array type */
49
56
  Array<T extends TSchema>(schema: T, options?: ArrayOptions): TArray<T>;
57
+ /** `[Json]` Creates a Boolean type */
50
58
  Boolean(options?: SchemaOptions): TBoolean;
59
+ /** `[Json]` Intrinsic function to Capitalize LiteralString types */
51
60
  Capitalize<T extends TSchema>(schema: T, options?: SchemaOptions): TCapitalize<T>;
61
+ /** `[Json]` Creates a Composite object type */
52
62
  Composite<T extends TObject[]>(objects: [...T], options?: ObjectOptions): TComposite<T>;
53
- Const<T>(value: T, options?: SchemaOptions): TConst<T>;
63
+ /** `[JavaScript]` Creates a readonly const type from the given value. */
64
+ Const</* const (not supported in 4.0) */ T>(value: T, options?: SchemaOptions): TConst<T>;
65
+ /** `[Json]` Creates a dereferenced type */
54
66
  Deref<T extends TSchema>(schema: T, references: TSchema[]): TDeref<T>;
67
+ /** `[Json]` Creates a Enum type */
55
68
  Enum<V extends TEnumValue, T extends Record<TEnumKey, V>>(item: T, options?: SchemaOptions): TEnum<T>;
69
+ /** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */
56
70
  Exclude<L extends TMappedResult, R extends TSchema>(unionType: L, excludedMembers: R, options?: SchemaOptions): TExcludeFromMappedResult<L, R>;
71
+ /** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */
57
72
  Exclude<L extends TSchema, R extends TSchema>(unionType: L, excludedMembers: R, options?: SchemaOptions): TExclude<L, R>;
73
+ /** `[Json]` Creates a Conditional type */
58
74
  Extends<L extends TMappedResult, R extends TSchema, T extends TSchema, F extends TSchema>(L: L, R: R, T: T, F: F, options?: SchemaOptions): TExtendsFromMappedResult<L, R, T, F>;
75
+ /** `[Json]` Creates a Conditional type */
59
76
  Extends<L extends TMappedKey, R extends TSchema, T extends TSchema, F extends TSchema>(L: L, R: R, T: T, F: F, options?: SchemaOptions): TExtendsFromMappedKey<L, R, T, F>;
77
+ /** `[Json]` Creates a Conditional type */
60
78
  Extends<L extends TSchema, R extends TSchema, T extends TSchema, F extends TSchema>(L: L, R: R, T: T, F: F, options?: SchemaOptions): TExtends<L, R, T, F>;
79
+ /** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */
61
80
  Extract<L extends TMappedResult, R extends TSchema>(type: L, union: R, options?: SchemaOptions): TExtractFromMappedResult<L, R>;
81
+ /** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */
62
82
  Extract<L extends TSchema, R extends TSchema>(type: L, union: R, options?: SchemaOptions): TExtract<L, R>;
83
+ /** `[Json]` Returns an Indexed property type for the given keys */
63
84
  Index<T extends TSchema, K extends TMappedKey>(T: T, K: K, options?: SchemaOptions): TIndexFromMappedKey<T, K>;
85
+ /** `[Json]` Returns an Indexed property type for the given keys */
64
86
  Index<T extends TSchema, K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>>(T: T, K: K, options?: SchemaOptions): TIndex<T, I>;
87
+ /** `[Json]` Returns an Indexed property type for the given keys */
65
88
  Index<T extends TSchema, K extends PropertyKey[]>(T: T, K: readonly [...K], options?: SchemaOptions): TIndex<T, K>;
89
+ /** `[Json]` Creates an Integer type */
66
90
  Integer(options?: IntegerOptions): TInteger;
91
+ /** `[Json]` Creates an Intersect type */
67
92
  Intersect<T extends TSchema[]>(T: [...T], options?: IntersectOptions): Intersect<T>;
93
+ /** `[Json]` Creates a KeyOf type */
68
94
  KeyOf<T extends TMappedResult>(schema: T, options?: SchemaOptions): TKeyOfFromMappedResult<T>;
95
+ /** `[Json]` Creates a KeyOf type */
69
96
  KeyOf<T extends TSchema>(schema: T, options?: SchemaOptions): TKeyOf<T>;
97
+ /** `[Json]` Creates a Literal type */
70
98
  Literal<T extends TLiteralValue>(value: T, options?: SchemaOptions): TLiteral<T>;
99
+ /** `[Json]` Intrinsic function to Lowercase LiteralString types */
71
100
  Lowercase<T extends TSchema>(schema: T, options?: SchemaOptions): TLowercase<T>;
101
+ /** `[Json]` Creates a Mapped object type */
72
102
  Mapped<K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>, F extends TMappedFunction<I> = TMappedFunction<I>, R extends TMapped<I, F> = TMapped<I, F>>(key: K, map: F, options?: ObjectOptions): R;
103
+ /** `[Json]` Creates a Mapped object type */
73
104
  Mapped<K extends PropertyKey[], F extends TMappedFunction<K> = TMappedFunction<K>, R extends TMapped<K, F> = TMapped<K, F>>(key: [...K], map: F, options?: ObjectOptions): R;
105
+ /** `[Json]` Creates a Never type */
74
106
  Never(options?: SchemaOptions): TNever;
107
+ /** `[Json]` Creates a Not type */
75
108
  Not<T extends TSchema>(schema: T, options?: SchemaOptions): TNot<T>;
109
+ /** `[Json]` Creates a Null type */
76
110
  Null(options?: SchemaOptions): TNull;
111
+ /** `[Json]` Creates a Number type */
77
112
  Number(options?: NumberOptions): TNumber;
113
+ /** `[Json]` Creates an Object type */
78
114
  Object<T extends TProperties>(properties: T, options?: ObjectOptions): TObject<T>;
115
+ /** `[Json]` Constructs a type whose keys are omitted from the given type */
79
116
  Omit<T extends TSchema, K extends TMappedKey>(T: T, K: K): TOmitFromMappedKey<T, K>;
117
+ /** `[Json]` Constructs a type whose keys are omitted from the given type */
80
118
  Omit<T extends TSchema, K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>>(T: T, K: K, options?: SchemaOptions): TOmit<T, I>;
119
+ /** `[Json]` Constructs a type whose keys are omitted from the given type */
81
120
  Omit<T extends TSchema, K extends PropertyKey[]>(T: T, K: readonly [...K], options?: SchemaOptions): TOmit<T, K>;
121
+ /** `[Json]` Constructs a type where all properties are optional */
82
122
  Partial<T extends TMappedResult>(T: T, options?: ObjectOptions): TPartialFromMappedResult<T>;
123
+ /** `[Json]` Constructs a type where all properties are optional */
83
124
  Partial<T extends TSchema>(schema: T, options?: ObjectOptions): TPartial<T>;
125
+ /** `[Json]` Constructs a type whose keys are picked from the given type */
84
126
  Pick<T extends TSchema, K extends TMappedKey>(T: T, K: K): TPickFromMappedKey<T, K>;
127
+ /** `[Json]` Constructs a type whose keys are picked from the given type */
85
128
  Pick<T extends TSchema, K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>>(T: T, K: K, options?: SchemaOptions): TPick<T, I>;
129
+ /** `[Json]` Constructs a type whose keys are picked from the given type */
86
130
  Pick<T extends TSchema, K extends PropertyKey[]>(T: T, K: readonly [...K], options?: SchemaOptions): TPick<T, K>;
87
- Record<K extends TSchema, T extends TSchema>(key: K, schema: T, options?: ObjectOptions): RecordResolve<K, T>;
131
+ /** `[Json]` Creates a Record type */
132
+ Record<K extends TSchema, T extends TSchema>(key: K, schema: T, options?: ObjectOptions): TRecordOrObject<K, T>;
133
+ /** `[Json]` Creates a Recursive type */
88
134
  Recursive<T extends TSchema>(callback: (thisType: TThis) => T, options?: SchemaOptions): TRecursive<T>;
135
+ /** `[Json]` Creates a Ref type. The referenced type must contain a $id */
89
136
  Ref<T extends TSchema>(schema: T, options?: SchemaOptions): TRef<T>;
137
+ /** `[Json]` Creates a Ref type. */
90
138
  Ref<T extends TSchema>($ref: string, options?: SchemaOptions): TRef<T>;
139
+ /** `[Json]` Constructs a type where all properties are required */
91
140
  Required<T extends TMappedResult>(T: T, options?: ObjectOptions): TRequiredFromMappedResult<T>;
141
+ /** `[Json]` Constructs a type where all properties are required */
92
142
  Required<T extends TSchema>(schema: T, options?: ObjectOptions): TRequired<T>;
143
+ /** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */
93
144
  Rest<T extends TSchema>(schema: T): TRest<T>;
145
+ /** `[Json]` Creates a String type */
94
146
  String(options?: StringOptions): TString;
147
+ /** `[Json]` Creates a TemplateLiteral type from template dsl string */
95
148
  TemplateLiteral<T extends string>(syntax: T, options?: SchemaOptions): TemplateLiteralSyntax<T>;
149
+ /** `[Json]` Creates a TemplateLiteral type */
96
150
  TemplateLiteral<T extends TTemplateLiteralKind[]>(kinds: [...T], options?: SchemaOptions): TTemplateLiteral<T>;
151
+ /** `[Json]` Creates a Transform type */
97
152
  Transform<I extends TSchema>(schema: I): TransformDecodeBuilder<I>;
153
+ /** `[Json]` Creates a Tuple type */
98
154
  Tuple<T extends TSchema[]>(items: [...T], options?: SchemaOptions): TTuple<T>;
155
+ /** `[Json]` Intrinsic function to Uncapitalize LiteralString types */
99
156
  Uncapitalize<T extends TSchema>(schema: T, options?: SchemaOptions): TUncapitalize<T>;
157
+ /** `[Json]` Creates a Union type */
100
158
  Union<T extends TSchema[]>(schemas: [...T], options?: SchemaOptions): Union<T>;
159
+ /** `[Json]` Creates an Unknown type */
101
160
  Unknown(options?: SchemaOptions): TUnknown;
161
+ /** `[Json]` Creates a Unsafe type that will infers as the generic argument T */
102
162
  Unsafe<T>(options?: UnsafeOptions): TUnsafe<T>;
163
+ /** `[Json]` Intrinsic function to Uppercase LiteralString types */
103
164
  Uppercase<T extends TSchema>(schema: T, options?: SchemaOptions): TUppercase<T>;
104
165
  }