@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,5 +1,6 @@
1
1
  import { CloneType, CloneRest } from '../clone/type.mjs';
2
2
  import { Kind } from '../symbols/index.mjs';
3
+ /** `[JavaScript]` Creates a Function type */
3
4
  export function Function(parameters, returns, options) {
4
5
  return {
5
6
  ...options,
@@ -37,57 +37,103 @@ import type { TDate } from '../date/index.mjs';
37
37
  import type { TThis } from '../recursive/index.mjs';
38
38
  export declare class TypeGuardUnknownTypeError extends Error {
39
39
  }
40
+ /** Returns true if this value has a Readonly symbol */
40
41
  export declare function TReadonly<T extends TSchema>(value: T): value is TReadonly<T>;
42
+ /** Returns true if this value has a Optional symbol */
41
43
  export declare function TOptional<T extends TSchema>(value: T): value is TOptional<T>;
44
+ /** Returns true if the given value is TAny */
42
45
  export declare function TAny(value: unknown): value is TAny;
46
+ /** Returns true if the given value is TArray */
43
47
  export declare function TArray(value: unknown): value is TArray;
48
+ /** Returns true if the given value is TAsyncIterator */
44
49
  export declare function TAsyncIterator(value: unknown): value is TAsyncIterator;
50
+ /** Returns true if the given value is TBigInt */
45
51
  export declare function TBigInt(value: unknown): value is TBigInt;
52
+ /** Returns true if the given value is TBoolean */
46
53
  export declare function TBoolean(value: unknown): value is TBoolean;
54
+ /** Returns true if the given value is TConstructor */
47
55
  export declare function TConstructor(value: unknown): value is TConstructor;
56
+ /** Returns true if the given value is TDate */
48
57
  export declare function TDate(value: unknown): value is TDate;
58
+ /** Returns true if the given value is TFunction */
49
59
  export declare function TFunction(value: unknown): value is TFunction;
60
+ /** Returns true if the given value is TInteger */
50
61
  export declare function TInteger(value: unknown): value is TInteger;
62
+ /** Returns true if the given schema is TProperties */
51
63
  export declare function TProperties(value: unknown): value is TProperties;
64
+ /** Returns true if the given value is TIntersect */
52
65
  export declare function TIntersect(value: unknown): value is TIntersect;
66
+ /** Returns true if the given value is TIterator */
53
67
  export declare function TIterator(value: unknown): value is TIterator;
68
+ /** Returns true if the given value is a TKind with the given name. */
54
69
  export declare function TKindOf<T extends string>(value: unknown, kind: T): value is Record<PropertyKey, unknown> & {
55
70
  [Kind]: T;
56
71
  };
72
+ /** Returns true if the given value is TLiteral<string> */
57
73
  export declare function TLiteralString(value: unknown): value is TLiteral<string>;
74
+ /** Returns true if the given value is TLiteral<number> */
58
75
  export declare function TLiteralNumber(value: unknown): value is TLiteral<number>;
76
+ /** Returns true if the given value is TLiteral<boolean> */
59
77
  export declare function TLiteralBoolean(value: unknown): value is TLiteral<boolean>;
78
+ /** Returns true if the given value is TLiteral */
60
79
  export declare function TLiteral(value: unknown): value is TLiteral;
80
+ /** Returns true if the given value is a TLiteralValue */
61
81
  export declare function TLiteralValue(value: unknown): value is TLiteralValue;
82
+ /** Returns true if the given value is a TMappedKey */
62
83
  export declare function TMappedKey(value: unknown): value is TMappedKey;
84
+ /** Returns true if the given value is TMappedResult */
63
85
  export declare function TMappedResult(value: unknown): value is TMappedResult;
86
+ /** Returns true if the given value is TNever */
64
87
  export declare function TNever(value: unknown): value is TNever;
88
+ /** Returns true if the given value is TNot */
65
89
  export declare function TNot(value: unknown): value is TNot;
90
+ /** Returns true if the given value is TNull */
66
91
  export declare function TNull(value: unknown): value is TNull;
92
+ /** Returns true if the given value is TNumber */
67
93
  export declare function TNumber(value: unknown): value is TNumber;
94
+ /** Returns true if the given value is TObject */
68
95
  export declare function TObject(value: unknown): value is TObject;
96
+ /** Returns true if the given value is TPromise */
69
97
  export declare function TPromise(value: unknown): value is TPromise;
98
+ /** Returns true if the given value is TRecord */
70
99
  export declare function TRecord(value: unknown): value is TRecord;
100
+ /** Returns true if this value is TRecursive */
71
101
  export declare function TRecursive(value: unknown): value is {
72
102
  [Hint]: 'Recursive';
73
103
  };
104
+ /** Returns true if the given value is TRef */
74
105
  export declare function TRef(value: unknown): value is TRef;
106
+ /** Returns true if the given value is TString */
75
107
  export declare function TString(value: unknown): value is TString;
108
+ /** Returns true if the given value is TSymbol */
76
109
  export declare function TSymbol(value: unknown): value is TSymbol;
110
+ /** Returns true if the given value is TTemplateLiteral */
77
111
  export declare function TTemplateLiteral(value: unknown): value is TTemplateLiteral<TTemplateLiteralKind[]>;
112
+ /** Returns true if the given value is TThis */
78
113
  export declare function TThis(value: unknown): value is TThis;
114
+ /** Returns true of this value is TTransform */
79
115
  export declare function TTransform(value: unknown): value is {
80
116
  [TransformKind]: TransformOptions;
81
117
  };
118
+ /** Returns true if the given value is TTuple */
82
119
  export declare function TTuple(value: unknown): value is TTuple;
120
+ /** Returns true if the given value is TUndefined */
83
121
  export declare function TUndefined(value: unknown): value is TUndefined;
122
+ /** Returns true if the given value is TUnion<Literal<string | number>[]> */
84
123
  export declare function TUnionLiteral(value: unknown): value is TUnion<TLiteral[]>;
124
+ /** Returns true if the given value is TUnion */
85
125
  export declare function TUnion(value: unknown): value is TUnion;
126
+ /** Returns true if the given value is TUint8Array */
86
127
  export declare function TUint8Array(value: unknown): value is TUint8Array;
128
+ /** Returns true if the given value is TUnknown */
87
129
  export declare function TUnknown(value: unknown): value is TUnknown;
130
+ /** Returns true if the given value is a raw TUnsafe */
88
131
  export declare function TUnsafe(value: unknown): value is TUnsafe<unknown>;
132
+ /** Returns true if the given value is TVoid */
89
133
  export declare function TVoid(value: unknown): value is TVoid;
134
+ /** Returns true if the given value is TKind */
90
135
  export declare function TKind(value: unknown): value is Record<PropertyKey, unknown> & {
91
136
  [Kind]: string;
92
137
  };
138
+ /** Returns true if the given value is TSchema */
93
139
  export declare function TSchema(value: unknown): value is TSchema;
@@ -80,16 +80,27 @@ function IsOptionalFormat(value) {
80
80
  function IsOptionalSchema(value) {
81
81
  return ValueGuard.IsUndefined(value) || TSchema(value);
82
82
  }
83
+ // ------------------------------------------------------------------
84
+ // Modifiers
85
+ // ------------------------------------------------------------------
86
+ /** Returns true if this value has a Readonly symbol */
83
87
  export function TReadonly(value) {
84
88
  return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly';
85
89
  }
90
+ /** Returns true if this value has a Optional symbol */
86
91
  export function TOptional(value) {
87
92
  return ValueGuard.IsObject(value) && value[OptionalKind] === 'Optional';
88
93
  }
94
+ // ------------------------------------------------------------------
95
+ // Types
96
+ // ------------------------------------------------------------------
97
+ /** Returns true if the given value is TAny */
89
98
  export function TAny(value) {
99
+ // prettier-ignore
90
100
  return (TKindOf(value, 'Any') &&
91
101
  IsOptionalString(value.$id));
92
102
  }
103
+ /** Returns true if the given value is TArray */
93
104
  export function TArray(value) {
94
105
  return (TKindOf(value, 'Array') &&
95
106
  value.type === 'array' &&
@@ -102,13 +113,17 @@ export function TArray(value) {
102
113
  IsOptionalNumber(value.minContains) &&
103
114
  IsOptionalNumber(value.maxContains));
104
115
  }
116
+ /** Returns true if the given value is TAsyncIterator */
105
117
  export function TAsyncIterator(value) {
118
+ // prettier-ignore
106
119
  return (TKindOf(value, 'AsyncIterator') &&
107
120
  value.type === 'AsyncIterator' &&
108
121
  IsOptionalString(value.$id) &&
109
122
  TSchema(value.items));
110
123
  }
124
+ /** Returns true if the given value is TBigInt */
111
125
  export function TBigInt(value) {
126
+ // prettier-ignore
112
127
  return (TKindOf(value, 'BigInt') &&
113
128
  value.type === 'bigint' &&
114
129
  IsOptionalString(value.$id) &&
@@ -118,12 +133,16 @@ export function TBigInt(value) {
118
133
  IsOptionalBigInt(value.minimum) &&
119
134
  IsOptionalBigInt(value.multipleOf));
120
135
  }
136
+ /** Returns true if the given value is TBoolean */
121
137
  export function TBoolean(value) {
138
+ // prettier-ignore
122
139
  return (TKindOf(value, 'Boolean') &&
123
140
  value.type === 'boolean' &&
124
141
  IsOptionalString(value.$id));
125
142
  }
143
+ /** Returns true if the given value is TConstructor */
126
144
  export function TConstructor(value) {
145
+ // prettier-ignore
127
146
  return (TKindOf(value, 'Constructor') &&
128
147
  value.type === 'Constructor' &&
129
148
  IsOptionalString(value.$id) &&
@@ -131,6 +150,7 @@ export function TConstructor(value) {
131
150
  value.parameters.every(schema => TSchema(schema)) &&
132
151
  TSchema(value.returns));
133
152
  }
153
+ /** Returns true if the given value is TDate */
134
154
  export function TDate(value) {
135
155
  return (TKindOf(value, 'Date') &&
136
156
  value.type === 'Date' &&
@@ -141,7 +161,9 @@ export function TDate(value) {
141
161
  IsOptionalNumber(value.minimumTimestamp) &&
142
162
  IsOptionalNumber(value.multipleOfTimestamp));
143
163
  }
164
+ /** Returns true if the given value is TFunction */
144
165
  export function TFunction(value) {
166
+ // prettier-ignore
145
167
  return (TKindOf(value, 'Function') &&
146
168
  value.type === 'Function' &&
147
169
  IsOptionalString(value.$id) &&
@@ -149,6 +171,7 @@ export function TFunction(value) {
149
171
  value.parameters.every(schema => TSchema(schema)) &&
150
172
  TSchema(value.returns));
151
173
  }
174
+ /** Returns true if the given value is TInteger */
152
175
  export function TInteger(value) {
153
176
  return (TKindOf(value, 'Integer') &&
154
177
  value.type === 'integer' &&
@@ -159,11 +182,15 @@ export function TInteger(value) {
159
182
  IsOptionalNumber(value.minimum) &&
160
183
  IsOptionalNumber(value.multipleOf));
161
184
  }
185
+ /** Returns true if the given schema is TProperties */
162
186
  export function TProperties(value) {
187
+ // prettier-ignore
163
188
  return (ValueGuard.IsObject(value) &&
164
189
  Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && TSchema(schema)));
165
190
  }
191
+ /** Returns true if the given value is TIntersect */
166
192
  export function TIntersect(value) {
193
+ // prettier-ignore
167
194
  return (TKindOf(value, 'Intersect') &&
168
195
  (ValueGuard.IsString(value.type) && value.type !== 'object' ? false : true) &&
169
196
  ValueGuard.IsArray(value.allOf) &&
@@ -172,54 +199,74 @@ export function TIntersect(value) {
172
199
  (IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) &&
173
200
  IsOptionalString(value.$id));
174
201
  }
202
+ /** Returns true if the given value is TIterator */
175
203
  export function TIterator(value) {
204
+ // prettier-ignore
176
205
  return (TKindOf(value, 'Iterator') &&
177
206
  value.type === 'Iterator' &&
178
207
  IsOptionalString(value.$id) &&
179
208
  TSchema(value.items));
180
209
  }
210
+ /** Returns true if the given value is a TKind with the given name. */
181
211
  export function TKindOf(value, kind) {
182
212
  return ValueGuard.IsObject(value) && Kind in value && value[Kind] === kind;
183
213
  }
214
+ /** Returns true if the given value is TLiteral<string> */
184
215
  export function TLiteralString(value) {
185
216
  return TLiteral(value) && ValueGuard.IsString(value.const);
186
217
  }
218
+ /** Returns true if the given value is TLiteral<number> */
187
219
  export function TLiteralNumber(value) {
188
220
  return TLiteral(value) && ValueGuard.IsNumber(value.const);
189
221
  }
222
+ /** Returns true if the given value is TLiteral<boolean> */
190
223
  export function TLiteralBoolean(value) {
191
224
  return TLiteral(value) && ValueGuard.IsBoolean(value.const);
192
225
  }
226
+ /** Returns true if the given value is TLiteral */
193
227
  export function TLiteral(value) {
228
+ // prettier-ignore
194
229
  return (TKindOf(value, 'Literal') &&
195
230
  IsOptionalString(value.$id) && TLiteralValue(value.const));
196
231
  }
232
+ /** Returns true if the given value is a TLiteralValue */
197
233
  export function TLiteralValue(value) {
198
234
  return ValueGuard.IsBoolean(value) || ValueGuard.IsNumber(value) || ValueGuard.IsString(value);
199
235
  }
236
+ /** Returns true if the given value is a TMappedKey */
200
237
  export function TMappedKey(value) {
238
+ // prettier-ignore
201
239
  return (TKindOf(value, 'MappedKey') &&
202
240
  ValueGuard.IsArray(value.keys) &&
203
241
  value.keys.every(key => ValueGuard.IsNumber(key) || ValueGuard.IsString(key)));
204
242
  }
243
+ /** Returns true if the given value is TMappedResult */
205
244
  export function TMappedResult(value) {
245
+ // prettier-ignore
206
246
  return (TKindOf(value, 'MappedResult') &&
207
247
  TProperties(value.properties));
208
248
  }
249
+ /** Returns true if the given value is TNever */
209
250
  export function TNever(value) {
251
+ // prettier-ignore
210
252
  return (TKindOf(value, 'Never') &&
211
253
  ValueGuard.IsObject(value.not) &&
212
254
  Object.getOwnPropertyNames(value.not).length === 0);
213
255
  }
256
+ /** Returns true if the given value is TNot */
214
257
  export function TNot(value) {
258
+ // prettier-ignore
215
259
  return (TKindOf(value, 'Not') &&
216
260
  TSchema(value.not));
217
261
  }
262
+ /** Returns true if the given value is TNull */
218
263
  export function TNull(value) {
264
+ // prettier-ignore
219
265
  return (TKindOf(value, 'Null') &&
220
266
  value.type === 'null' &&
221
267
  IsOptionalString(value.$id));
222
268
  }
269
+ /** Returns true if the given value is TNumber */
223
270
  export function TNumber(value) {
224
271
  return (TKindOf(value, 'Number') &&
225
272
  value.type === 'number' &&
@@ -230,7 +277,9 @@ export function TNumber(value) {
230
277
  IsOptionalNumber(value.minimum) &&
231
278
  IsOptionalNumber(value.multipleOf));
232
279
  }
280
+ /** Returns true if the given value is TObject */
233
281
  export function TObject(value) {
282
+ // prettier-ignore
234
283
  return (TKindOf(value, 'Object') &&
235
284
  value.type === 'object' &&
236
285
  IsOptionalString(value.$id) &&
@@ -239,13 +288,17 @@ export function TObject(value) {
239
288
  IsOptionalNumber(value.minProperties) &&
240
289
  IsOptionalNumber(value.maxProperties));
241
290
  }
291
+ /** Returns true if the given value is TPromise */
242
292
  export function TPromise(value) {
293
+ // prettier-ignore
243
294
  return (TKindOf(value, 'Promise') &&
244
295
  value.type === 'Promise' &&
245
296
  IsOptionalString(value.$id) &&
246
297
  TSchema(value.item));
247
298
  }
299
+ /** Returns true if the given value is TRecord */
248
300
  export function TRecord(value) {
301
+ // prettier-ignore
249
302
  return (TKindOf(value, 'Record') &&
250
303
  value.type === 'object' &&
251
304
  IsOptionalString(value.$id) &&
@@ -259,15 +312,20 @@ export function TRecord(value) {
259
312
  TSchema(schema.patternProperties[keys[0]]));
260
313
  })(value));
261
314
  }
315
+ /** Returns true if this value is TRecursive */
262
316
  export function TRecursive(value) {
263
317
  return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive';
264
318
  }
319
+ /** Returns true if the given value is TRef */
265
320
  export function TRef(value) {
321
+ // prettier-ignore
266
322
  return (TKindOf(value, 'Ref') &&
267
323
  IsOptionalString(value.$id) &&
268
324
  ValueGuard.IsString(value.$ref));
269
325
  }
326
+ /** Returns true if the given value is TString */
270
327
  export function TString(value) {
328
+ // prettier-ignore
271
329
  return (TKindOf(value, 'String') &&
272
330
  value.type === 'string' &&
273
331
  IsOptionalString(value.$id) &&
@@ -276,76 +334,101 @@ export function TString(value) {
276
334
  IsOptionalPattern(value.pattern) &&
277
335
  IsOptionalFormat(value.format));
278
336
  }
337
+ /** Returns true if the given value is TSymbol */
279
338
  export function TSymbol(value) {
339
+ // prettier-ignore
280
340
  return (TKindOf(value, 'Symbol') &&
281
341
  value.type === 'symbol' &&
282
342
  IsOptionalString(value.$id));
283
343
  }
344
+ /** Returns true if the given value is TTemplateLiteral */
284
345
  export function TTemplateLiteral(value) {
346
+ // prettier-ignore
285
347
  return (TKindOf(value, 'TemplateLiteral') &&
286
348
  value.type === 'string' &&
287
349
  ValueGuard.IsString(value.pattern) &&
288
350
  value.pattern[0] === '^' &&
289
351
  value.pattern[value.pattern.length - 1] === '$');
290
352
  }
353
+ /** Returns true if the given value is TThis */
291
354
  export function TThis(value) {
355
+ // prettier-ignore
292
356
  return (TKindOf(value, 'This') &&
293
357
  IsOptionalString(value.$id) &&
294
358
  ValueGuard.IsString(value.$ref));
295
359
  }
360
+ /** Returns true of this value is TTransform */
296
361
  export function TTransform(value) {
297
362
  return ValueGuard.IsObject(value) && TransformKind in value;
298
363
  }
364
+ /** Returns true if the given value is TTuple */
299
365
  export function TTuple(value) {
366
+ // prettier-ignore
300
367
  return (TKindOf(value, 'Tuple') &&
301
368
  value.type === 'array' &&
302
369
  IsOptionalString(value.$id) &&
303
370
  ValueGuard.IsNumber(value.minItems) &&
304
371
  ValueGuard.IsNumber(value.maxItems) &&
305
372
  value.minItems === value.maxItems &&
306
- ((ValueGuard.IsUndefined(value.items) &&
373
+ (( // empty
374
+ ValueGuard.IsUndefined(value.items) &&
307
375
  ValueGuard.IsUndefined(value.additionalItems) &&
308
376
  value.minItems === 0) || (ValueGuard.IsArray(value.items) &&
309
377
  value.items.every(schema => TSchema(schema)))));
310
378
  }
379
+ /** Returns true if the given value is TUndefined */
311
380
  export function TUndefined(value) {
381
+ // prettier-ignore
312
382
  return (TKindOf(value, 'Undefined') &&
313
383
  value.type === 'undefined' &&
314
384
  IsOptionalString(value.$id));
315
385
  }
386
+ /** Returns true if the given value is TUnion<Literal<string | number>[]> */
316
387
  export function TUnionLiteral(value) {
317
388
  return TUnion(value) && value.anyOf.every((schema) => TLiteralString(schema) || TLiteralNumber(schema));
318
389
  }
390
+ /** Returns true if the given value is TUnion */
319
391
  export function TUnion(value) {
392
+ // prettier-ignore
320
393
  return (TKindOf(value, 'Union') &&
321
394
  IsOptionalString(value.$id) &&
322
395
  ValueGuard.IsObject(value) &&
323
396
  ValueGuard.IsArray(value.anyOf) &&
324
397
  value.anyOf.every(schema => TSchema(schema)));
325
398
  }
399
+ /** Returns true if the given value is TUint8Array */
326
400
  export function TUint8Array(value) {
401
+ // prettier-ignore
327
402
  return (TKindOf(value, 'Uint8Array') &&
328
403
  value.type === 'Uint8Array' &&
329
404
  IsOptionalString(value.$id) &&
330
405
  IsOptionalNumber(value.minByteLength) &&
331
406
  IsOptionalNumber(value.maxByteLength));
332
407
  }
408
+ /** Returns true if the given value is TUnknown */
333
409
  export function TUnknown(value) {
410
+ // prettier-ignore
334
411
  return (TKindOf(value, 'Unknown') &&
335
412
  IsOptionalString(value.$id));
336
413
  }
414
+ /** Returns true if the given value is a raw TUnsafe */
337
415
  export function TUnsafe(value) {
338
416
  return TKindOf(value, 'Unsafe');
339
417
  }
418
+ /** Returns true if the given value is TVoid */
340
419
  export function TVoid(value) {
420
+ // prettier-ignore
341
421
  return (TKindOf(value, 'Void') &&
342
422
  value.type === 'void' &&
343
423
  IsOptionalString(value.$id));
344
424
  }
425
+ /** Returns true if the given value is TKind */
345
426
  export function TKind(value) {
346
427
  return ValueGuard.IsObject(value) && Kind in value && ValueGuard.IsString(value[Kind]) && !KnownTypes.includes(value[Kind]);
347
428
  }
429
+ /** Returns true if the given value is TSchema */
348
430
  export function TSchema(value) {
431
+ // prettier-ignore
349
432
  return (ValueGuard.IsObject(value)) && (TAny(value) ||
350
433
  TArray(value) ||
351
434
  TBoolean(value) ||
@@ -1,14 +1,28 @@
1
+ /** Returns true if this value is an async iterator */
1
2
  export declare function IsAsyncIterator(value: unknown): value is AsyncIterableIterator<unknown>;
3
+ /** Returns true if this value is an array */
2
4
  export declare function IsArray(value: unknown): value is unknown[];
5
+ /** Returns true if this value is bigint */
3
6
  export declare function IsBigInt(value: unknown): value is bigint;
7
+ /** Returns true if this value is a boolean */
4
8
  export declare function IsBoolean(value: unknown): value is boolean;
9
+ /** Returns true if this value is a Date object */
5
10
  export declare function IsDate(value: unknown): value is Date;
11
+ /** Returns true if this value is a function */
6
12
  export declare function IsFunction(value: unknown): value is Function;
13
+ /** Returns true if this value is an iterator */
7
14
  export declare function IsIterator(value: unknown): value is IterableIterator<unknown>;
15
+ /** Returns true if this value is null */
8
16
  export declare function IsNull(value: unknown): value is null;
17
+ /** Returns true if this value is number */
9
18
  export declare function IsNumber(value: unknown): value is number;
19
+ /** Returns true if this value is an object */
10
20
  export declare function IsObject(value: unknown): value is Record<PropertyKey, unknown>;
21
+ /** Returns true if this value is string */
11
22
  export declare function IsString(value: unknown): value is string;
23
+ /** Returns true if this value is symbol */
12
24
  export declare function IsSymbol(value: unknown): value is symbol;
25
+ /** Returns true if this value is a Uint8Array */
13
26
  export declare function IsUint8Array(value: unknown): value is Uint8Array;
27
+ /** Returns true if this value is undefined */
14
28
  export declare function IsUndefined(value: unknown): value is undefined;
@@ -1,42 +1,56 @@
1
+ /** Returns true if this value is an async iterator */
1
2
  export function IsAsyncIterator(value) {
2
3
  return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.asyncIterator in value;
3
4
  }
5
+ /** Returns true if this value is an array */
4
6
  export function IsArray(value) {
5
7
  return Array.isArray(value);
6
8
  }
9
+ /** Returns true if this value is bigint */
7
10
  export function IsBigInt(value) {
8
11
  return typeof value === 'bigint';
9
12
  }
13
+ /** Returns true if this value is a boolean */
10
14
  export function IsBoolean(value) {
11
15
  return typeof value === 'boolean';
12
16
  }
17
+ /** Returns true if this value is a Date object */
13
18
  export function IsDate(value) {
14
19
  return value instanceof globalThis.Date;
15
20
  }
21
+ /** Returns true if this value is a function */
16
22
  export function IsFunction(value) {
17
23
  return typeof value === 'function';
18
24
  }
25
+ /** Returns true if this value is an iterator */
19
26
  export function IsIterator(value) {
20
27
  return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.iterator in value;
21
28
  }
29
+ /** Returns true if this value is null */
22
30
  export function IsNull(value) {
23
31
  return value === null;
24
32
  }
33
+ /** Returns true if this value is number */
25
34
  export function IsNumber(value) {
26
35
  return typeof value === 'number';
27
36
  }
37
+ /** Returns true if this value is an object */
28
38
  export function IsObject(value) {
29
39
  return typeof value === 'object' && value !== null;
30
40
  }
41
+ /** Returns true if this value is string */
31
42
  export function IsString(value) {
32
43
  return typeof value === 'string';
33
44
  }
45
+ /** Returns true if this value is symbol */
34
46
  export function IsSymbol(value) {
35
47
  return typeof value === 'symbol';
36
48
  }
49
+ /** Returns true if this value is a Uint8Array */
37
50
  export function IsUint8Array(value) {
38
51
  return value instanceof globalThis.Uint8Array;
39
52
  }
53
+ /** Returns true if this value is undefined */
40
54
  export function IsUndefined(value) {
41
55
  return value === undefined;
42
56
  }
@@ -34,6 +34,7 @@ type IncrementTake<T extends keyof IncrementBase> = IncrementBase[T];
34
34
  type IncrementStep<T extends string> = T extends IncrementBase['m'] ? IncrementBase['t'] : T extends `${infer L extends keyof IncrementBase}${infer R}` ? L extends IncrementBase['m'] ? `${IncrementTake<L>}${IncrementStep<R>}` : `${IncrementTake<L>}${R}` : never;
35
35
  type IncrementReverse<T extends string> = T extends `${infer L}${infer R}` ? `${IncrementReverse<R>}${L}` : T;
36
36
  export type Increment<T extends string> = IncrementReverse<IncrementStep<IncrementReverse<T>>>;
37
+ /** Increments the given string value + 1 */
37
38
  export declare function Increment<T extends string>(T: T): Increment<T>;
38
39
  export type AssertProperties<T> = T extends TProperties ? T : TProperties;
39
40
  export type AssertRest<T, E extends TSchema[] = TSchema[]> = T extends E ? T : [];
@@ -1,3 +1,4 @@
1
+ /** Increments the given string value + 1 */
1
2
  export function Increment(T) {
2
3
  return (parseInt(T) + 1).toString();
3
4
  }
@@ -1,4 +1,3 @@
1
1
  export * from './indexed-from-mapped-key.mjs';
2
2
  export * from './indexed-property-keys.mjs';
3
- export * from './indexed-result.mjs';
4
3
  export * from './indexed.mjs';
@@ -1,4 +1,3 @@
1
1
  export * from './indexed-from-mapped-key.mjs';
2
2
  export * from './indexed-property-keys.mjs';
3
- export * from './indexed-result.mjs';
4
3
  export * from './indexed.mjs';
@@ -1,10 +1,10 @@
1
1
  import type { TSchema, SchemaOptions } from '../schema/index.mjs';
2
2
  import { type TProperties } from '../object/index.mjs';
3
- import { type TIndexResult } from './indexed-result.mjs';
3
+ import { type TIndex } from './indexed.mjs';
4
4
  import { type TMappedResult, type TMappedKey } from '../mapped/index.mjs';
5
5
  import { Evaluate } from '../helpers/index.mjs';
6
6
  type MappedIndexPropertyKey<T extends TSchema, K extends PropertyKey> = {
7
- [_ in K]: TIndexResult<T, [K]>;
7
+ [_ in K]: TIndex<T, [K]>;
8
8
  };
9
9
  declare function MappedIndexPropertyKey<T extends TSchema, K extends PropertyKey>(T: T, K: K, options: SchemaOptions): MappedIndexPropertyKey<T, K>;
10
10
  type MappedIndexPropertyKeys<T extends TSchema, K extends PropertyKey[]> = (K extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? MappedIndexPropertyKey<T, L> & MappedIndexPropertyKeys<T, R> : {});
@@ -1,17 +1,24 @@
1
- import { IndexResult } from './indexed-result.mjs';
1
+ import { Index } from './indexed.mjs';
2
2
  import { MappedResult } from '../mapped/index.mjs';
3
+ // prettier-ignore
3
4
  function MappedIndexPropertyKey(T, K, options) {
4
- return { [K]: IndexResult(T, [K], options) };
5
+ // todo: propogate options into index result. This type looks like it
6
+ // could use a clean up, possibly inlining it into indexed.ts to
7
+ // bring it inline with other mapping types.
8
+ return { [K]: Index(T, [K], options) };
5
9
  }
10
+ // prettier-ignore
6
11
  function MappedIndexPropertyKeys(T, K, options) {
7
12
  const [L, ...R] = K;
8
13
  return (K.length > 0
9
- ? { ...MappedIndexPropertyKey(T, L, options), ...MappedIndexPropertyKeys(T, R, options) }
14
+ ? { ...MappedIndexPropertyKey(T, L, options), ...MappedIndexPropertyKeys(T, R, options) } // TS 5.4-dev
10
15
  : {});
11
16
  }
17
+ // prettier-ignore
12
18
  function MappedIndexProperties(T, K, options) {
13
19
  return MappedIndexPropertyKeys(T, K.keys, options);
14
20
  }
21
+ // prettier-ignore
15
22
  export function IndexFromMappedKey(T, K, options) {
16
23
  const P = MappedIndexProperties(T, K, options);
17
24
  return MappedResult(P);
@@ -12,5 +12,6 @@ type FromLiteral<T extends TLiteralValue> = (T extends PropertyKey ? [`${T}`] :
12
12
  declare function FromLiteral<T extends TLiteralValue>(T: T): FromLiteral<T>;
13
13
  export type TIndexPropertyKeys<T extends TSchema> = (T extends TTemplateLiteral ? FromTemplateLiteral<T> : T extends TUnion<infer S> ? FromUnion<S> : T extends TLiteral<infer S> ? FromLiteral<S> : T extends TNumber ? ['[number]'] : T extends TInteger ? ['[number]'] : [
14
14
  ]);
15
+ /** Returns a tuple of PropertyKeys derived from the given TSchema */
15
16
  export declare function IndexPropertyKeys<T extends TSchema>(T: T): TIndexPropertyKeys<T>;
16
17
  export {};
@@ -1,5 +1,10 @@
1
1
  import { TemplateLiteralParseExact, IsTemplateLiteralFinite, TemplateLiteralToUnion } from '../template-literal/index.mjs';
2
+ // ------------------------------------------------------------------
3
+ // TypeGuard
4
+ // ------------------------------------------------------------------
5
+ // prettier-ignore
2
6
  import { TTemplateLiteral as IsTemplateLiteralType, TUnionLiteral as IsUnionLiteralType, TUnion as IsUnionType, TLiteral as IsLiteralType, TNumber as IsNumberType, TInteger as IsIntegerType } from '../guard/type.mjs';
7
+ // prettier-ignore
3
8
  function FromTemplateLiteral(T) {
4
9
  const E = TemplateLiteralParseExact(T.pattern);
5
10
  const F = IsTemplateLiteralFinite(E);
@@ -10,15 +15,19 @@ function FromTemplateLiteral(T) {
10
15
  : []
11
16
  : []);
12
17
  }
18
+ // prettier-ignore
13
19
  function FromUnion(T) {
14
20
  const [L, ...R] = T;
15
21
  return (T.length > 0
16
22
  ? [...IndexPropertyKeys(L), ...FromUnion(R)]
17
23
  : []);
18
24
  }
25
+ // prettier-ignore
19
26
  function FromLiteral(T) {
20
27
  return ([T.toString()]);
21
28
  }
29
+ /** Returns a tuple of PropertyKeys derived from the given TSchema */
30
+ // prettier-ignore
22
31
  export function IndexPropertyKeys(T) {
23
32
  return [...new Set((IsTemplateLiteralType(T) ? FromTemplateLiteral(T) :
24
33
  IsUnionType(T) ? FromUnion(T.anyOf) :