@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
@@ -11,4 +11,9 @@ export declare class TransformDecodeError extends Error {
11
11
  readonly value: unknown;
12
12
  constructor(schema: TSchema, value: unknown, error: any);
13
13
  }
14
+ /**
15
+ * `[Internal]` Decodes the value and returns the result. This function requires that
16
+ * the caller `Check` the value before use. Passing unchecked values may result in
17
+ * undefined behavior. Refer to the `Value.Decode()` for implementation details.
18
+ */
14
19
  export declare function TransformDecode(schema: TSchema, references: TSchema[], value: unknown): unknown;
@@ -5,6 +5,10 @@ import { KeyOfPropertyKeys } from '../../type/keyof/index.mjs';
5
5
  import { Index } from '../../type/indexed/index.mjs';
6
6
  import { Deref } from '../deref/index.mjs';
7
7
  import { Check } from '../check/index.mjs';
8
+ // ------------------------------------------------------------------
9
+ // Errors
10
+ // ------------------------------------------------------------------
11
+ // thrown externally
8
12
  export class TransformDecodeCheckError extends Error {
9
13
  schema;
10
14
  value;
@@ -25,6 +29,10 @@ export class TransformDecodeError extends Error {
25
29
  this.value = value;
26
30
  }
27
31
  }
32
+ // ------------------------------------------------------------------
33
+ // Decode
34
+ // ------------------------------------------------------------------
35
+ // prettier-ignore
28
36
  function Default(schema, value) {
29
37
  try {
30
38
  return IsTransformType(schema) ? schema[TransformKind].Decode(value) : value;
@@ -33,11 +41,13 @@ function Default(schema, value) {
33
41
  throw new TransformDecodeError(schema, value, error);
34
42
  }
35
43
  }
44
+ // prettier-ignore
36
45
  function TArray(schema, references, value) {
37
46
  return (IsArray(value))
38
47
  ? Default(schema, value.map((value) => Visit(schema.items, references, value)))
39
48
  : Default(schema, value);
40
49
  }
50
+ // prettier-ignore
41
51
  function TIntersect(schema, references, value) {
42
52
  if (!IsPlainObject(value) || IsValueType(value))
43
53
  return Default(schema, value);
@@ -62,6 +72,7 @@ function TIntersect(schema, references, value) {
62
72
  function TNot(schema, references, value) {
63
73
  return Default(schema, Visit(schema.not, references, value));
64
74
  }
75
+ // prettier-ignore
65
76
  function TObject(schema, references, value) {
66
77
  if (!IsPlainObject(value))
67
78
  return Default(schema, value);
@@ -83,6 +94,7 @@ function TObject(schema, references, value) {
83
94
  }, knownProperties);
84
95
  return Default(schema, unknownProperties);
85
96
  }
97
+ // prettier-ignore
86
98
  function TRecord(schema, references, value) {
87
99
  if (!IsPlainObject(value))
88
100
  return Default(schema, value);
@@ -105,28 +117,34 @@ function TRecord(schema, references, value) {
105
117
  }, knownProperties);
106
118
  return Default(schema, unknownProperties);
107
119
  }
120
+ // prettier-ignore
108
121
  function TRef(schema, references, value) {
109
122
  const target = Deref(schema, references);
110
123
  return Default(schema, Visit(target, references, value));
111
124
  }
125
+ // prettier-ignore
112
126
  function TThis(schema, references, value) {
113
127
  const target = Deref(schema, references);
114
128
  return Default(schema, Visit(target, references, value));
115
129
  }
130
+ // prettier-ignore
116
131
  function TTuple(schema, references, value) {
117
132
  return (IsArray(value) && IsArray(schema.items))
118
133
  ? Default(schema, schema.items.map((schema, index) => Visit(schema, references, value[index])))
119
134
  : Default(schema, value);
120
135
  }
136
+ // prettier-ignore
121
137
  function TUnion(schema, references, value) {
122
138
  for (const subschema of schema.anyOf) {
123
139
  if (!Check(subschema, references, value))
124
140
  continue;
141
+ // note: ensure interior is decoded first
125
142
  const decoded = Visit(subschema, references, value);
126
143
  return Default(schema, decoded);
127
144
  }
128
145
  return Default(schema, value);
129
146
  }
147
+ // prettier-ignore
130
148
  function Visit(schema, references, value) {
131
149
  const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;
132
150
  const schema_ = schema;
@@ -155,6 +173,11 @@ function Visit(schema, references, value) {
155
173
  return Default(schema_, value);
156
174
  }
157
175
  }
176
+ /**
177
+ * `[Internal]` Decodes the value and returns the result. This function requires that
178
+ * the caller `Check` the value before use. Passing unchecked values may result in
179
+ * undefined behavior. Refer to the `Value.Decode()` for implementation details.
180
+ */
158
181
  export function TransformDecode(schema, references, value) {
159
182
  return Visit(schema, references, value);
160
183
  }
@@ -11,4 +11,10 @@ export declare class TransformEncodeError extends Error {
11
11
  readonly value: unknown;
12
12
  constructor(schema: TSchema, value: unknown, error: any);
13
13
  }
14
+ /**
15
+ * `[Internal]` Encodes the value and returns the result. This function expects the
16
+ * caller to pass a statically checked value. This function does not check the encoded
17
+ * result, meaning the result should be passed to `Check` before use. Refer to the
18
+ * `Value.Encode()` function for implementation details.
19
+ */
14
20
  export declare function TransformEncode(schema: TSchema, references: TSchema[], value: unknown): unknown;
@@ -5,6 +5,9 @@ import { KeyOfPropertyKeys } from '../../type/keyof/index.mjs';
5
5
  import { Index } from '../../type/indexed/index.mjs';
6
6
  import { Deref } from '../deref/index.mjs';
7
7
  import { Check } from '../check/index.mjs';
8
+ // ------------------------------------------------------------------
9
+ // Errors
10
+ // ------------------------------------------------------------------
8
11
  export class TransformEncodeCheckError extends Error {
9
12
  schema;
10
13
  value;
@@ -25,6 +28,10 @@ export class TransformEncodeError extends Error {
25
28
  this.value = value;
26
29
  }
27
30
  }
31
+ // ------------------------------------------------------------------
32
+ // Encode
33
+ // ------------------------------------------------------------------
34
+ // prettier-ignore
28
35
  function Default(schema, value) {
29
36
  try {
30
37
  return IsTransformType(schema) ? schema[TransformKind].Encode(value) : value;
@@ -33,12 +40,14 @@ function Default(schema, value) {
33
40
  throw new TransformEncodeError(schema, value, error);
34
41
  }
35
42
  }
43
+ // prettier-ignore
36
44
  function TArray(schema, references, value) {
37
45
  const defaulted = Default(schema, value);
38
46
  return IsArray(defaulted)
39
47
  ? defaulted.map((value) => Visit(schema.items, references, value))
40
48
  : defaulted;
41
49
  }
50
+ // prettier-ignore
42
51
  function TIntersect(schema, references, value) {
43
52
  const defaulted = Default(schema, value);
44
53
  if (!IsPlainObject(value) || IsValueType(value))
@@ -60,9 +69,11 @@ function TIntersect(schema, references, value) {
60
69
  : value;
61
70
  }, knownProperties);
62
71
  }
72
+ // prettier-ignore
63
73
  function TNot(schema, references, value) {
64
74
  return Default(schema.not, Default(schema, value));
65
75
  }
76
+ // prettier-ignore
66
77
  function TObject(schema, references, value) {
67
78
  const defaulted = Default(schema, value);
68
79
  if (!IsPlainObject(value))
@@ -84,6 +95,7 @@ function TObject(schema, references, value) {
84
95
  : value;
85
96
  }, knownProperties);
86
97
  }
98
+ // prettier-ignore
87
99
  function TRecord(schema, references, value) {
88
100
  const defaulted = Default(schema, value);
89
101
  if (!IsPlainObject(value))
@@ -106,27 +118,33 @@ function TRecord(schema, references, value) {
106
118
  : value;
107
119
  }, knownProperties);
108
120
  }
121
+ // prettier-ignore
109
122
  function TRef(schema, references, value) {
110
123
  const target = Deref(schema, references);
111
124
  const resolved = Visit(target, references, value);
112
125
  return Default(schema, resolved);
113
126
  }
127
+ // prettier-ignore
114
128
  function TThis(schema, references, value) {
115
129
  const target = Deref(schema, references);
116
130
  const resolved = Visit(target, references, value);
117
131
  return Default(schema, resolved);
118
132
  }
133
+ // prettier-ignore
119
134
  function TTuple(schema, references, value) {
120
135
  const value1 = Default(schema, value);
121
136
  return IsArray(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];
122
137
  }
138
+ // prettier-ignore
123
139
  function TUnion(schema, references, value) {
140
+ // test value against union variants
124
141
  for (const subschema of schema.anyOf) {
125
142
  if (!Check(subschema, references, value))
126
143
  continue;
127
144
  const value1 = Visit(subschema, references, value);
128
145
  return Default(schema, value1);
129
146
  }
147
+ // test transformed value against union variants
130
148
  for (const subschema of schema.anyOf) {
131
149
  const value1 = Visit(subschema, references, value);
132
150
  if (!Check(schema, references, value1))
@@ -135,6 +153,7 @@ function TUnion(schema, references, value) {
135
153
  }
136
154
  return Default(schema, value);
137
155
  }
156
+ // prettier-ignore
138
157
  function Visit(schema, references, value) {
139
158
  const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;
140
159
  const schema_ = schema;
@@ -161,6 +180,12 @@ function Visit(schema, references, value) {
161
180
  return Default(schema_, value);
162
181
  }
163
182
  }
183
+ /**
184
+ * `[Internal]` Encodes the value and returns the result. This function expects the
185
+ * caller to pass a statically checked value. This function does not check the encoded
186
+ * result, meaning the result should be passed to `Check` before use. Refer to the
187
+ * `Value.Encode()` function for implementation details.
188
+ */
164
189
  export function TransformEncode(schema, references, value) {
165
190
  return Visit(schema, references, value);
166
191
  }
@@ -1,2 +1,3 @@
1
1
  import type { TSchema } from '../../type/schema/index.mjs';
2
+ /** Returns true if this schema contains a transform codec */
2
3
  export declare function HasTransform(schema: TSchema, references: TSchema[]): boolean;
@@ -2,56 +2,71 @@ import { TTransform as IsTransformType, TSchema as IsSchemaType } from '../../ty
2
2
  import { IsString, IsUndefined } from '../guard/index.mjs';
3
3
  import { Deref } from '../deref/index.mjs';
4
4
  import { Kind } from '../../type/symbols/index.mjs';
5
+ // prettier-ignore
5
6
  function TArray(schema, references) {
6
7
  return IsTransformType(schema) || Visit(schema.items, references);
7
8
  }
9
+ // prettier-ignore
8
10
  function TAsyncIterator(schema, references) {
9
11
  return IsTransformType(schema) || Visit(schema.items, references);
10
12
  }
13
+ // prettier-ignore
11
14
  function TConstructor(schema, references) {
12
15
  return IsTransformType(schema) || Visit(schema.returns, references) || schema.parameters.some((schema) => Visit(schema, references));
13
16
  }
17
+ // prettier-ignore
14
18
  function TFunction(schema, references) {
15
19
  return IsTransformType(schema) || Visit(schema.returns, references) || schema.parameters.some((schema) => Visit(schema, references));
16
20
  }
21
+ // prettier-ignore
17
22
  function TIntersect(schema, references) {
18
23
  return IsTransformType(schema) || IsTransformType(schema.unevaluatedProperties) || schema.allOf.some((schema) => Visit(schema, references));
19
24
  }
25
+ // prettier-ignore
20
26
  function TIterator(schema, references) {
21
27
  return IsTransformType(schema) || Visit(schema.items, references);
22
28
  }
29
+ // prettier-ignore
23
30
  function TNot(schema, references) {
24
31
  return IsTransformType(schema) || Visit(schema.not, references);
25
32
  }
33
+ // prettier-ignore
26
34
  function TObject(schema, references) {
27
35
  return (IsTransformType(schema) ||
28
36
  Object.values(schema.properties).some((schema) => Visit(schema, references)) ||
29
37
  (IsSchemaType(schema.additionalProperties) && Visit(schema.additionalProperties, references)));
30
38
  }
39
+ // prettier-ignore
31
40
  function TPromise(schema, references) {
32
41
  return IsTransformType(schema) || Visit(schema.item, references);
33
42
  }
43
+ // prettier-ignore
34
44
  function TRecord(schema, references) {
35
45
  const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
36
46
  const property = schema.patternProperties[pattern];
37
47
  return IsTransformType(schema) || Visit(property, references) || (IsSchemaType(schema.additionalProperties) && IsTransformType(schema.additionalProperties));
38
48
  }
49
+ // prettier-ignore
39
50
  function TRef(schema, references) {
40
51
  if (IsTransformType(schema))
41
52
  return true;
42
53
  return Visit(Deref(schema, references), references);
43
54
  }
55
+ // prettier-ignore
44
56
  function TThis(schema, references) {
45
57
  if (IsTransformType(schema))
46
58
  return true;
47
59
  return Visit(Deref(schema, references), references);
48
60
  }
61
+ // prettier-ignore
49
62
  function TTuple(schema, references) {
50
63
  return IsTransformType(schema) || (!IsUndefined(schema.items) && schema.items.some((schema) => Visit(schema, references)));
51
64
  }
65
+ // prettier-ignore
52
66
  function TUnion(schema, references) {
53
67
  return IsTransformType(schema) || schema.anyOf.some((schema) => Visit(schema, references));
54
68
  }
69
+ // prettier-ignore
55
70
  function Visit(schema, references) {
56
71
  const references_ = IsString(schema.$id) ? [...references, schema] : references;
57
72
  const schema_ = schema;
@@ -93,6 +108,7 @@ function Visit(schema, references) {
93
108
  }
94
109
  }
95
110
  const visited = new Set();
111
+ /** Returns true if this schema contains a transform codec */
96
112
  export function HasTransform(schema, references) {
97
113
  visited.clear();
98
114
  return Visit(schema, references);
@@ -3,27 +3,51 @@ import { Edit } from '../delta/index.mjs';
3
3
  import { ValueErrorIterator } from '../../errors/index.mjs';
4
4
  import type { TSchema } from '../../type/schema/index.mjs';
5
5
  import type { Static, StaticDecode, StaticEncode } from '../../type/static/index.mjs';
6
+ /** Casts a value into a given type. The return value will retain as much information of the original value as possible. */
6
7
  export declare function Cast<T extends TSchema>(schema: T, references: TSchema[], value: unknown): Static<T>;
8
+ /** Casts a value into a given type. The return value will retain as much information of the original value as possible. */
7
9
  export declare function Cast<T extends TSchema>(schema: T, value: unknown): Static<T>;
10
+ /** Creates a value from the given type and references */
8
11
  export declare function Create<T extends TSchema>(schema: T, references: TSchema[]): Static<T>;
12
+ /** Creates a value from the given type */
9
13
  export declare function Create<T extends TSchema>(schema: T): Static<T>;
14
+ /** Returns true if the value matches the given type and references */
10
15
  export declare function Check<T extends TSchema>(schema: T, references: TSchema[], value: unknown): value is Static<T>;
16
+ /** Returns true if the value matches the given type */
11
17
  export declare function Check<T extends TSchema>(schema: T, value: unknown): value is Static<T>;
18
+ /** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */
12
19
  export declare function Clean<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
20
+ /** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */
13
21
  export declare function Clean<T extends TSchema>(schema: T, value: unknown): unknown;
22
+ /** Converts any type mismatched values to their target type if a reasonable conversion is possible */
14
23
  export declare function Convert<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
24
+ /** Converts any type mismatched values to their target type if a reasonable conversion is possibl. */
15
25
  export declare function Convert<T extends TSchema>(schema: T, value: unknown): unknown;
26
+ /** Returns a structural clone of the given value */
16
27
  export declare function Clone<T>(value: T): T;
28
+ /** Decodes a value or throws if error */
17
29
  export declare function Decode<T extends TSchema, R = StaticDecode<T>>(schema: T, references: TSchema[], value: unknown): R;
30
+ /** Decodes a value or throws if error */
18
31
  export declare function Decode<T extends TSchema, R = StaticDecode<T>>(schema: T, value: unknown): R;
32
+ /** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */
19
33
  export declare function Default<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
34
+ /** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */
20
35
  export declare function Default<T extends TSchema>(schema: T, value: unknown): unknown;
36
+ /** Encodes a value or throws if error */
21
37
  export declare function Encode<T extends TSchema, R = StaticEncode<T>>(schema: T, references: TSchema[], value: unknown): R;
38
+ /** Encodes a value or throws if error */
22
39
  export declare function Encode<T extends TSchema, R = StaticEncode<T>>(schema: T, value: unknown): R;
40
+ /** Returns an iterator for each error in this value. */
23
41
  export declare function Errors<T extends TSchema>(schema: T, references: TSchema[], value: unknown): ValueErrorIterator;
42
+ /** Returns an iterator for each error in this value. */
24
43
  export declare function Errors<T extends TSchema>(schema: T, value: unknown): ValueErrorIterator;
44
+ /** Returns true if left and right values are structurally equal */
25
45
  export declare function Equal<T>(left: T, right: unknown): right is T;
46
+ /** Returns edits to transform the current value into the next value */
26
47
  export declare function Diff(current: unknown, next: unknown): Edit[];
48
+ /** Returns a FNV1A-64 non cryptographic hash of the given value */
27
49
  export declare function Hash(value: unknown): bigint;
50
+ /** Returns a new value with edits applied to the given value */
28
51
  export declare function Patch<T = any>(current: unknown, edits: Edit[]): T;
52
+ /** `[Mutable]` Performs a deep mutable value assignment while retaining internal references. */
29
53
  export declare function Mutate(current: Mutable, next: Mutable): void;
@@ -11,33 +11,42 @@ import { Check as CheckValue } from '../check/index.mjs';
11
11
  import { Default as DefaultValue } from '../default/index.mjs';
12
12
  import { Diff as DiffValue, Patch as PatchValue } from '../delta/index.mjs';
13
13
  import { Errors as ValueErrors } from '../../errors/index.mjs';
14
+ /** Casts a value into a given type. The return value will retain as much information of the original value as possible. */
14
15
  export function Cast(...args) {
15
16
  return CastValue.apply(CastValue, args);
16
17
  }
18
+ /** Creates a value from the given type */
17
19
  export function Create(...args) {
18
20
  return CreateValue.apply(CreateValue, args);
19
21
  }
22
+ /** Returns true if the value matches the given type */
20
23
  export function Check(...args) {
21
24
  return CheckValue.apply(CheckValue, args);
22
25
  }
26
+ /** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */
23
27
  export function Clean(...args) {
24
28
  return CleanValue.apply(CleanValue, args);
25
29
  }
30
+ /** Converts any type mismatched values to their target type if a reasonable conversion is possible */
26
31
  export function Convert(...args) {
27
32
  return ConvertValue.apply(ConvertValue, args);
28
33
  }
34
+ /** Returns a structural clone of the given value */
29
35
  export function Clone(value) {
30
36
  return CloneValue(value);
31
37
  }
38
+ /** Decodes a value or throws if error */
32
39
  export function Decode(...args) {
33
40
  const [schema, references, value] = args.length === 3 ? [args[0], args[1], args[2]] : [args[0], [], args[1]];
34
41
  if (!Check(schema, references, value))
35
42
  throw new TransformDecodeCheckError(schema, value, Errors(schema, references, value).First());
36
43
  return TransformDecode(schema, references, value);
37
44
  }
45
+ /** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */
38
46
  export function Default(...args) {
39
47
  return DefaultValue.apply(DefaultValue, args);
40
48
  }
49
+ /** Encodes a value or throws if error */
41
50
  export function Encode(...args) {
42
51
  const [schema, references, value] = args.length === 3 ? [args[0], args[1], args[2]] : [args[0], [], args[1]];
43
52
  const encoded = TransformEncode(schema, references, value);
@@ -45,21 +54,27 @@ export function Encode(...args) {
45
54
  throw new TransformEncodeCheckError(schema, value, Errors(schema, references, value).First());
46
55
  return encoded;
47
56
  }
57
+ /** Returns an iterator for each error in this value. */
48
58
  export function Errors(...args) {
49
59
  return ValueErrors.apply(ValueErrors, args);
50
60
  }
61
+ /** Returns true if left and right values are structurally equal */
51
62
  export function Equal(left, right) {
52
63
  return EqualValue(left, right);
53
64
  }
65
+ /** Returns edits to transform the current value into the next value */
54
66
  export function Diff(current, next) {
55
67
  return DiffValue(current, next);
56
68
  }
69
+ /** Returns a FNV1A-64 non cryptographic hash of the given value */
57
70
  export function Hash(value) {
58
71
  return HashValue(value);
59
72
  }
73
+ /** Returns a new value with edits applied to the given value */
60
74
  export function Patch(current, edits) {
61
75
  return PatchValue(current, edits);
62
76
  }
77
+ /** `[Mutable]` Performs a deep mutable value assignment while retaining internal references. */
63
78
  export function Mutate(current, next) {
64
79
  MutateValue(current, next);
65
80
  }
@@ -9,10 +9,15 @@ export declare class TypeCheck<T extends TSchema> {
9
9
  private readonly code;
10
10
  private readonly hasTransform;
11
11
  constructor(schema: T, references: TSchema[], checkFunc: CheckFunction, code: string);
12
+ /** Returns the generated assertion code used to validate this type. */
12
13
  Code(): string;
14
+ /** Returns an iterator for each error in this value. */
13
15
  Errors(value: unknown): ValueErrorIterator;
16
+ /** Returns true if the value matches the compiled type. */
14
17
  Check(value: unknown): value is Static<T>;
18
+ /** Decodes a value or throws if error */
15
19
  Decode(value: unknown): StaticDecode<T>;
20
+ /** Encodes a value or throws if error */
16
21
  Encode(value: unknown): StaticEncode<T>;
17
22
  }
18
23
  export declare class TypeCompilerUnknownTypeError extends Error {
@@ -34,8 +39,12 @@ export type TypeCompilerLanguageOption = 'typescript' | 'javascript';
34
39
  export interface TypeCompilerCodegenOptions {
35
40
  language?: TypeCompilerLanguageOption;
36
41
  }
42
+ /** Compiles Types for Runtime Type Checking */
37
43
  export declare namespace TypeCompiler {
44
+ /** Generates the code used to assert this type and returns it as a string */
38
45
  function Code<T extends TSchema>(schema: T, references: TSchema[], options?: TypeCompilerCodegenOptions): string;
46
+ /** Generates the code used to assert this type and returns it as a string */
39
47
  function Code<T extends TSchema>(schema: T, options?: TypeCompilerCodegenOptions): string;
48
+ /** Compiles a TypeBox type for optimal runtime type checking. Types must be valid TypeBox types of TSchema */
40
49
  function Compile<T extends TSchema>(schema: T, references?: TSchema[]): TypeCheck<T>;
41
50
  }