@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,8 +1,10 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Iterator = void 0;
4
5
  const index_1 = require("../symbols/index");
5
6
  const type_1 = require("../clone/type");
7
+ /** `[JavaScript]` Creates an Iterator type */
6
8
  function Iterator(items, options = {}) {
7
9
  return {
8
10
  ...options,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1,16 +1,20 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.KeyOfFromMappedResult = void 0;
4
5
  const index_1 = require("../mapped/index");
5
6
  const keyof_1 = require("./keyof");
7
+ // prettier-ignore
6
8
  function FromProperties(K, options) {
7
9
  return globalThis.Object.getOwnPropertyNames(K).reduce((Acc, K2) => {
8
10
  return { ...Acc, [K2]: (0, keyof_1.KeyOf)(K[K2], options) };
9
11
  }, {});
10
12
  }
13
+ // prettier-ignore
11
14
  function FromMappedResult(K, options) {
12
15
  return FromProperties(K.properties, options);
13
16
  }
17
+ // prettier-ignore
14
18
  function KeyOfFromMappedResult(T, options) {
15
19
  const P = FromMappedResult(T, options);
16
20
  return (0, index_1.MappedResult)(P);
@@ -23,6 +23,8 @@ type FromProperties<T extends TProperties> = (UnionToTuple<keyof T>);
23
23
  declare function FromProperties<T extends TProperties>(T: T): FromProperties<T>;
24
24
  export type KeyOfPropertyKeys<T extends TSchema> = (T extends TRecursive<infer S> ? KeyOfPropertyKeys<S> : T extends TIntersect<infer S> ? FromIntersect<S> : T extends TUnion<infer S> ? FromUnion<S> : T extends TTuple<infer S> ? FromTuple<S> : T extends TArray<infer S> ? FromArray<S> : T extends TObject<infer S> ? FromProperties<S> : [
25
25
  ]);
26
+ /** Returns a tuple of PropertyKeys derived from the given TSchema. */
26
27
  export declare function KeyOfPropertyKeys<T extends TSchema>(T: T): KeyOfPropertyKeys<T>;
28
+ /** Returns a regular expression pattern derived from the given TSchema */
27
29
  export declare function KeyOfPattern(schema: TSchema): string;
28
30
  export {};
@@ -1,34 +1,49 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.KeyOfPattern = exports.KeyOfPropertyKeys = void 0;
4
5
  const index_1 = require("../helpers/index");
5
6
  const index_2 = require("../operators/index");
7
+ // ------------------------------------------------------------------
8
+ // TypeGuard
9
+ // ------------------------------------------------------------------
10
+ // prettier-ignore
6
11
  const type_1 = require("../guard/type");
12
+ // prettier-ignore
7
13
  function FromRest(T) {
8
14
  const [L, ...R] = T;
9
15
  return (T.length > 0
10
16
  ? [KeyOfPropertyKeys(L), ...FromRest(R)]
11
17
  : []);
12
18
  }
19
+ // prettier-ignore
13
20
  function FromIntersect(T, C = FromRest(T)) {
14
21
  return (0, index_2.OperatorUnionMany)(C);
15
22
  }
23
+ // prettier-ignore
16
24
  function FromUnion(T) {
17
25
  const C = FromRest(T);
18
26
  return (0, index_2.OperatorIntersectMany)(C);
19
27
  }
28
+ // prettier-ignore
20
29
  function FromTuple(T, I = '0') {
21
30
  const [_, ...R] = T;
22
31
  return (T.length > 0
23
32
  ? [I, ...FromTuple(R, (0, index_1.Increment)(I))]
24
33
  : []);
25
34
  }
35
+ // prettier-ignore
26
36
  function FromArray(_) {
27
37
  return (['[number]']);
28
38
  }
39
+ // prettier-ignore
29
40
  function FromProperties(T) {
30
41
  return (globalThis.Object.getOwnPropertyNames(T));
31
42
  }
43
+ // ------------------------------------------------------------------
44
+ // FromPatternProperties
45
+ // ------------------------------------------------------------------
46
+ // prettier-ignore
32
47
  function FromPatternProperties(patternProperties) {
33
48
  if (!includePatternProperties)
34
49
  return [];
@@ -39,6 +54,8 @@ function FromPatternProperties(patternProperties) {
39
54
  : key;
40
55
  });
41
56
  }
57
+ /** Returns a tuple of PropertyKeys derived from the given TSchema. */
58
+ // prettier-ignore
42
59
  function KeyOfPropertyKeys(T) {
43
60
  return ((0, type_1.TIntersect)(T) ? FromIntersect(T.allOf) :
44
61
  (0, type_1.TUnion)(T) ? FromUnion(T.anyOf) :
@@ -49,7 +66,11 @@ function KeyOfPropertyKeys(T) {
49
66
  []);
50
67
  }
51
68
  exports.KeyOfPropertyKeys = KeyOfPropertyKeys;
69
+ // ----------------------------------------------------------------
70
+ // KeyOfPattern
71
+ // ----------------------------------------------------------------
52
72
  let includePatternProperties = false;
73
+ /** Returns a regular expression pattern derived from the given TSchema */
53
74
  function KeyOfPattern(schema) {
54
75
  includePatternProperties = true;
55
76
  const keys = KeyOfPropertyKeys(schema);
@@ -10,6 +10,8 @@ import { type TKeyOfFromMappedResult } from './keyof-from-mapped-result';
10
10
  type FromLiterals<T extends TLiteralValue[]> = (T extends [infer L extends TLiteralValue, ...infer R extends TLiteralValue[]] ? L extends '[number]' ? [TNumber, ...FromLiterals<R>] : [TLiteral<L>, ...FromLiterals<R>] : []);
11
11
  declare function FromLiterals<T extends TLiteralValue[]>(T: [...T]): FromLiterals<T>;
12
12
  export type TKeyOf<T extends TSchema> = (Ensure<UnionEvaluated<FromLiterals<KeyOfPropertyKeys<T>>>>);
13
+ /** `[Json]` Creates a KeyOf type */
13
14
  export declare function KeyOf<T extends TMappedResult>(T: T, options?: SchemaOptions): TKeyOfFromMappedResult<T>;
15
+ /** `[Json]` Creates a KeyOf type */
14
16
  export declare function KeyOf<T extends TSchema>(T: T, options?: SchemaOptions): TKeyOf<T>;
15
17
  export {};
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.KeyOf = void 0;
4
5
  const index_1 = require("../literal/index");
@@ -7,7 +8,12 @@ const keyof_property_keys_1 = require("./keyof-property-keys");
7
8
  const index_3 = require("../union/index");
8
9
  const type_1 = require("../clone/type");
9
10
  const keyof_from_mapped_result_1 = require("./keyof-from-mapped-result");
11
+ // ------------------------------------------------------------------
12
+ // TypeGuard
13
+ // ------------------------------------------------------------------
14
+ // prettier-ignore
10
15
  const type_2 = require("../guard/type");
16
+ // prettier-ignore
11
17
  function FromLiterals(T) {
12
18
  const [L, ...R] = T;
13
19
  return (T.length > 0
@@ -16,6 +22,7 @@ function FromLiterals(T) {
16
22
  : [(0, index_1.Literal)(L), ...FromLiterals(R)]
17
23
  : []);
18
24
  }
25
+ /** `[Json]` Creates a KeyOf type */
19
26
  function KeyOf(T, options = {}) {
20
27
  if ((0, type_2.TMappedResult)(T)) {
21
28
  return (0, keyof_from_mapped_result_1.KeyOfFromMappedResult)(T, options);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -6,4 +6,5 @@ export interface TLiteral<T extends TLiteralValue = TLiteralValue> extends TSche
6
6
  static: T;
7
7
  const: T;
8
8
  }
9
+ /** `[Json]` Creates a Literal type */
9
10
  export declare function Literal<T extends TLiteralValue>(value: T, options?: SchemaOptions): TLiteral<T>;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Literal = void 0;
4
5
  const index_1 = require("../symbols/index");
6
+ /** `[Json]` Creates a Literal type */
5
7
  function Literal(value, options = {}) {
6
8
  return {
7
9
  ...options,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.MappedKey = void 0;
4
5
  const index_1 = require("../symbols/index");
6
+ // prettier-ignore
5
7
  function MappedKey(T) {
6
8
  return {
7
9
  [index_1.Kind]: 'MappedKey',
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.MappedResult = void 0;
4
5
  const index_1 = require("../symbols/index");
6
+ // prettier-ignore
5
7
  function MappedResult(properties) {
6
8
  return {
7
9
  [index_1.Kind]: 'MappedResult',
@@ -38,6 +38,8 @@ type FromMappedFunctionReturnType<K extends PropertyKey[], T extends TSchema> =
38
38
  declare function FromMappedFunctionReturnType<K extends PropertyKey[], T extends TSchema>(K: [...K], T: T): FromMappedFunctionReturnType<K, T>;
39
39
  export type TMappedFunction<K extends PropertyKey[], I = TMappedKey<K>> = (T: I) => TSchema;
40
40
  export type TMapped<K extends PropertyKey[], F extends TMappedFunction<K>, R extends TProperties = Evaluate<FromMappedFunctionReturnType<K, ReturnType<F>>>> = Ensure<TObject<R>>;
41
+ /** `[Json]` Creates a Mapped object type */
41
42
  export declare function Mapped<K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>, F extends TMappedFunction<I> = TMappedFunction<I>, R extends TMapped<I, F> = TMapped<I, F>>(key: K, map: F, options?: ObjectOptions): R;
43
+ /** `[Json]` Creates a Mapped object type */
42
44
  export declare function Mapped<K extends PropertyKey[], F extends TMappedFunction<K> = TMappedFunction<K>, R extends TMapped<K, F> = TMapped<K, F>>(key: [...K], map: F, options?: ObjectOptions): R;
43
45
  export {};
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Mapped = void 0;
4
5
  const index_1 = require("../symbols/index");
5
6
  const type_1 = require("../clone/type");
6
7
  const index_2 = require("../discard/index");
8
+ // evaluation types
7
9
  const index_3 = require("../array/index");
8
10
  const index_4 = require("../async-iterator/index");
9
11
  const index_5 = require("../constructor/index");
@@ -18,39 +20,54 @@ const index_13 = require("../promise/index");
18
20
  const index_14 = require("../readonly/index");
19
21
  const index_15 = require("../tuple/index");
20
22
  const index_16 = require("../union/index");
23
+ // mapping types
21
24
  const mapped_result_1 = require("./mapped-result");
25
+ // ------------------------------------------------------------------
26
+ // TypeGuard
27
+ // ------------------------------------------------------------------
28
+ // prettier-ignore
22
29
  const type_2 = require("../guard/type");
30
+ // prettier-ignore
23
31
  function FromMappedResult(K, P) {
24
32
  return (K in P
25
33
  ? FromSchemaType(K, P[K])
26
34
  : (0, mapped_result_1.MappedResult)(P));
27
35
  }
36
+ // prettier-ignore
28
37
  function MappedKeyToMappedResultProperties(K, P) {
29
38
  const [L, ...R] = P;
30
39
  return (P.length > 0
31
40
  ? { [L]: (0, index_10.Literal)(L), ...MappedKeyToMappedResultProperties(K, R) }
32
41
  : {});
33
42
  }
43
+ // prettier-ignore
34
44
  function FromMappedKey(K, P) {
35
45
  const R = MappedKeyToMappedResultProperties(K, P);
36
46
  return FromMappedResult(K, R);
37
47
  }
48
+ // prettier-ignore
38
49
  function FromRest(K, T) {
39
50
  const [L, ...R] = T;
40
51
  return (T.length > 0
41
52
  ? [FromSchemaType(K, L), ...FromRest(K, R)]
42
53
  : []);
43
54
  }
55
+ // prettier-ignore
44
56
  function FromProperties(K, T) {
45
57
  return globalThis.Object.getOwnPropertyNames(T).reduce((Acc, K2) => {
46
58
  return { ...Acc, [K2]: FromSchemaType(K, T[K2]) };
47
59
  }, {});
48
60
  }
61
+ // prettier-ignore
49
62
  function FromSchemaType(K, T) {
50
- return ((0, type_2.TOptional)(T) ? (0, index_12.Optional)(FromSchemaType(K, (0, index_2.Discard)(T, [index_1.OptionalKind]))) :
63
+ return (
64
+ // unevaluated modifier types
65
+ (0, type_2.TOptional)(T) ? (0, index_12.Optional)(FromSchemaType(K, (0, index_2.Discard)(T, [index_1.OptionalKind]))) :
51
66
  (0, type_2.TReadonly)(T) ? (0, index_14.Readonly)(FromSchemaType(K, (0, index_2.Discard)(T, [index_1.ReadonlyKind]))) :
67
+ // unevaluated mapped types
52
68
  (0, type_2.TMappedResult)(T) ? FromMappedResult(K, T.properties) :
53
69
  (0, type_2.TMappedKey)(T) ? FromMappedKey(K, T.keys) :
70
+ // unevaluated types
54
71
  (0, type_2.TConstructor)(T) ? (0, index_5.Constructor)(FromRest(K, T.parameters), FromSchemaType(K, T.returns)) :
55
72
  (0, type_2.TFunction)(T) ? (0, index_6.Function)(FromRest(K, T.parameters), FromSchemaType(K, T.returns)) :
56
73
  (0, type_2.TAsyncIterator)(T) ? (0, index_4.AsyncIterator)(FromSchemaType(K, T.items)) :
@@ -63,12 +80,14 @@ function FromSchemaType(K, T) {
63
80
  (0, type_2.TPromise)(T) ? (0, index_13.Promise)(FromSchemaType(K, T.item)) :
64
81
  T);
65
82
  }
83
+ // prettier-ignore
66
84
  function FromMappedFunctionReturnType(K, T) {
67
85
  const [L, ...R] = K;
68
86
  return (K.length > 0
69
87
  ? { [L]: FromSchemaType(L, T), ...FromMappedFunctionReturnType(R, T) }
70
88
  : {});
71
89
  }
90
+ /** `[Json]` Creates a Mapped object type */
72
91
  function Mapped(key, map, options = {}) {
73
92
  const K = (0, type_2.TSchema)(key) ? (0, index_7.IndexPropertyKeys)(key) : key;
74
93
  const RT = map({ [index_1.Kind]: 'MappedKey', keys: K });
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.OptionalFromUnion = exports.OptionalFromIntersect = void 0;
4
5
  const index_1 = require("../intersect/index");
@@ -6,7 +7,12 @@ const index_2 = require("../union/index");
6
7
  const index_3 = require("../optional/index");
7
8
  const index_4 = require("../discard/index");
8
9
  const index_5 = require("../symbols/index");
10
+ // ------------------------------------------------------------------
11
+ // TypeGuard
12
+ // ------------------------------------------------------------------
13
+ // prettier-ignore
9
14
  const type_1 = require("../guard/type");
15
+ // prettier-ignore
10
16
  function IsOptionalFromIntersect(T) {
11
17
  const [L, ...R] = T;
12
18
  return (T.length > 0
@@ -15,6 +21,7 @@ function IsOptionalFromIntersect(T) {
15
21
  : false
16
22
  : true);
17
23
  }
24
+ // prettier-ignore
18
25
  function IsOptionalFromUnion(T) {
19
26
  const [L, ...R] = T;
20
27
  return (T.length > 0
@@ -23,12 +30,15 @@ function IsOptionalFromUnion(T) {
23
30
  : IsOptionalFromUnion(R)
24
31
  : false);
25
32
  }
33
+ // prettier-ignore
26
34
  function RemoveOptionalFromRest(T) {
27
35
  return (T.map(T => RemoveOptionalFromSchema(T)));
28
36
  }
37
+ // prettier-ignore
29
38
  function RemoveOptionalFromSchema(T) {
30
39
  return ((0, index_4.Discard)(T, [index_5.OptionalKind]));
31
40
  }
41
+ // prettier-ignore
32
42
  function OptionalFromIntersect(T) {
33
43
  const D = RemoveOptionalFromRest(T);
34
44
  return (IsOptionalFromIntersect(T)
@@ -36,6 +46,7 @@ function OptionalFromIntersect(T) {
36
46
  : (0, index_1.Intersect)(T));
37
47
  }
38
48
  exports.OptionalFromIntersect = OptionalFromIntersect;
49
+ // prettier-ignore
39
50
  function OptionalFromUnion(T) {
40
51
  const D = RemoveOptionalFromRest(T);
41
52
  return (IsOptionalFromUnion(T)
@@ -14,4 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+
17
18
  __exportStar(require("./never"), exports);
@@ -5,4 +5,5 @@ export interface TNever extends TSchema {
5
5
  static: never;
6
6
  not: {};
7
7
  }
8
+ /** `[Json]` Creates a Never type */
8
9
  export declare function Never(options?: SchemaOptions): TNever;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Never = void 0;
4
5
  const index_1 = require("../symbols/index");
6
+ /** `[Json]` Creates a Never type */
5
7
  function Never(options = {}) {
6
8
  return {
7
9
  ...options,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -6,4 +6,5 @@ export interface TNot<T extends TSchema = TSchema> extends TSchema {
6
6
  static: T extends TNot<infer U> ? Static<U> : unknown;
7
7
  not: T;
8
8
  }
9
+ /** `[Json]` Creates a Not type */
9
10
  export declare function Not<T extends TSchema>(schema: T, options?: SchemaOptions): TNot<T>;
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Not = void 0;
4
5
  const index_1 = require("../symbols/index");
5
6
  const type_1 = require("../clone/type");
7
+ /** `[Json]` Creates a Not type */
6
8
  function Not(schema, options) {
7
9
  return {
8
10
  ...options,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -5,4 +5,5 @@ export interface TNull extends TSchema {
5
5
  static: null;
6
6
  type: 'null';
7
7
  }
8
+ /** `[Json]` Creates a Null type */
8
9
  export declare function Null(options?: SchemaOptions): TNull;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Null = void 0;
4
5
  const index_1 = require("../symbols/index");
6
+ /** `[Json]` Creates a Null type */
5
7
  function Null(options = {}) {
6
8
  return {
7
9
  ...options,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -12,4 +12,5 @@ export interface TNumber extends TSchema, NumberOptions {
12
12
  static: number;
13
13
  type: 'number';
14
14
  }
15
+ /** `[Json]` Creates a Number type */
15
16
  export declare function Number(options?: NumberOptions): TNumber;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Number = void 0;
4
5
  const index_1 = require("../symbols/index");
6
+ /** `[Json]` Creates a Number type */
5
7
  function Number(options = {}) {
6
8
  return {
7
9
  ...options,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -22,8 +22,11 @@ export type TPropertyKey = string | number;
22
22
  export type TProperties = Record<TPropertyKey, TSchema>;
23
23
  export type TAdditionalProperties = undefined | TSchema | boolean;
24
24
  export interface ObjectOptions extends SchemaOptions {
25
+ /** Additional property constraints for this object */
25
26
  additionalProperties?: TAdditionalProperties;
27
+ /** The minimum number of properties allowed on this object */
26
28
  minProperties?: number;
29
+ /** The maximum number of properties allowed on this object */
27
30
  maxProperties?: number;
28
31
  }
29
32
  export interface TObject<T extends TProperties = TProperties> extends TSchema, ObjectOptions {
@@ -34,6 +37,8 @@ export interface TObject<T extends TProperties = TProperties> extends TSchema, O
34
37
  properties: T;
35
38
  required?: string[];
36
39
  }
40
+ /** `[Json]` Creates an Object type */
37
41
  export declare function _Object<T extends TProperties>(properties: T, options?: ObjectOptions): TObject<T>;
42
+ /** `[Json]` Creates an Object type */
38
43
  export declare const Object: typeof _Object;
39
44
  export {};
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Object = exports._Object = void 0;
4
5
  const type_1 = require("../clone/type");
5
6
  const index_1 = require("../symbols/index");
7
+ // ------------------------------------------------------------------
8
+ // TypeGuard
9
+ // ------------------------------------------------------------------
10
+ // prettier-ignore
6
11
  const type_2 = require("../guard/type");
12
+ /** `[Json]` Creates an Object type */
7
13
  function _Object(properties, options = {}) {
8
14
  const propertyKeys = globalThis.Object.getOwnPropertyNames(properties);
9
15
  const optionalKeys = propertyKeys.filter((key) => (0, type_2.TOptional)(properties[key]));
@@ -15,4 +21,5 @@ function _Object(properties, options = {}) {
15
21
  : { ...options, ...clonedAdditionalProperties, [index_1.Kind]: 'Object', type: 'object', properties: clonedProperties });
16
22
  }
17
23
  exports._Object = _Object;
24
+ /** `[Json]` Creates an Object type */
18
25
  exports.Object = _Object;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1,22 +1,27 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.OmitFromMappedKey = void 0;
4
5
  const index_1 = require("../mapped/index");
5
6
  const omit_1 = require("./omit");
7
+ // prettier-ignore
6
8
  function FromPropertyKey(T, K, options) {
7
9
  return {
8
10
  [K]: (0, omit_1.Omit)(T, [K], options)
9
11
  };
10
12
  }
13
+ // prettier-ignore
11
14
  function FromPropertyKeys(T, K, options) {
12
15
  const [LK, ...RK] = K;
13
16
  return (K.length > 0
14
17
  ? { ...FromPropertyKey(T, LK, options), ...FromPropertyKeys(T, RK, options) }
15
18
  : {});
16
19
  }
20
+ // prettier-ignore
17
21
  function FromMappedKey(T, K, options) {
18
22
  return FromPropertyKeys(T, K.keys, options);
19
23
  }
24
+ // prettier-ignore
20
25
  function OmitFromMappedKey(T, K, options) {
21
26
  const P = FromMappedKey(T, K, options);
22
27
  return (0, index_1.MappedResult)(P);
@@ -16,7 +16,10 @@ declare function FromProperties<T extends TProperties, K extends PropertyKey[]>(
16
16
  export type OmitResolve<T extends TProperties, K extends PropertyKey[]> = T extends TRecursive<infer S> ? TRecursive<OmitResolve<S, K>> : T extends TIntersect<infer S> ? TIntersect<FromIntersect<S, K>> : T extends TUnion<infer S> ? TUnion<FromUnion<S, K>> : T extends TObject<infer S> ? TObject<FromProperties<S, K>> : TObject<{}>;
17
17
  export declare function OmitResolve<T extends TSchema, K extends PropertyKey[]>(T: T, K: [...K]): OmitResolve<T, K>;
18
18
  export type TOmit<T extends TSchema, K extends PropertyKey[]> = OmitResolve<T, K>;
19
+ /** `[Json]` Constructs a type whose keys are picked from the given type */
19
20
  export declare function Omit<T extends TSchema, K extends TMappedKey>(T: T, K: K): TOmitFromMappedKey<T, K>;
21
+ /** `[Json]` Constructs a type whose keys are omitted from the given type */
20
22
  export declare function Omit<T extends TSchema, K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>>(T: T, K: K, options?: SchemaOptions): TOmit<T, I>;
23
+ /** `[Json]` Constructs a type whose keys are omitted from the given type */
21
24
  export declare function Omit<T extends TSchema, K extends PropertyKey[]>(T: T, K: readonly [...K], options?: SchemaOptions): TOmit<T, K>;
22
25
  export {};
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Omit = exports.OmitResolve = void 0;
4
5
  const index_1 = require("../intersect/index");
@@ -9,22 +10,34 @@ const index_5 = require("../discard/index");
9
10
  const index_6 = require("../symbols/index");
10
11
  const type_1 = require("../clone/type");
11
12
  const omit_from_mapped_key_1 = require("./omit-from-mapped-key");
13
+ // ------------------------------------------------------------------
14
+ // TypeGuard
15
+ // ------------------------------------------------------------------
16
+ // prettier-ignore
12
17
  const type_2 = require("../guard/type");
18
+ // prettier-ignore
13
19
  function FromIntersect(T, K) {
14
20
  return T.map((T) => OmitResolve(T, K));
15
21
  }
22
+ // prettier-ignore
16
23
  function FromUnion(T, K) {
17
24
  return T.map((T) => OmitResolve(T, K));
18
25
  }
26
+ // ------------------------------------------------------------------
27
+ // FromProperty
28
+ // ------------------------------------------------------------------
29
+ // prettier-ignore
19
30
  function FromProperty(T, K) {
20
31
  const { [K]: _, ...R } = T;
21
32
  return R;
22
33
  }
34
+ // prettier-ignore
23
35
  function FromProperties(T, K) {
24
36
  return K.reduce((T, K2) => {
25
37
  return FromProperty(T, K2);
26
38
  }, T);
27
39
  }
40
+ // prettier-ignore
28
41
  function OmitResolve(T, K) {
29
42
  return ((0, type_2.TIntersect)(T) ? (0, index_1.Intersect)(FromIntersect(T.allOf, K)) :
30
43
  (0, type_2.TUnion)(T) ? (0, index_2.Union)(FromUnion(T.anyOf, K)) :
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1,16 +1,24 @@
1
1
  export type OperatorIncludes<T extends PropertyKey[], S extends PropertyKey> = (T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? S extends L ? true : OperatorIncludes<R, S> : false);
2
+ /** Returns true if element S is in the set of T */
2
3
  export declare function OperatorIncludes<T extends PropertyKey[], S extends PropertyKey>(T: [...T], S: S): OperatorIncludes<T, S>;
3
4
  export type OperatorSubset<T extends PropertyKey[], S extends PropertyKey[]> = T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? OperatorIncludes<S, L> extends true ? OperatorSubset<R, S> : false : true;
5
+ /** Returns true if T is a subset of S */
4
6
  export declare function OperatorSubset<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): OperatorSubset<T, S>;
5
7
  export type OperatorDistinct<T extends PropertyKey[], Acc extends PropertyKey[] = []> = T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? OperatorIncludes<Acc, L> extends false ? OperatorDistinct<R, [...Acc, L]> : OperatorDistinct<R, [...Acc]> : Acc;
8
+ /** Returns a distinct set of elements */
6
9
  export declare function OperatorDistinct<T extends PropertyKey[]>(T: [...T], Acc?: PropertyKey[]): OperatorDistinct<T>;
7
10
  export type OperatorIntersect<T extends PropertyKey[], S extends PropertyKey[]> = (T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? OperatorIncludes<S, L> extends true ? [L, ...OperatorIntersect<R, S>] : [...OperatorIntersect<R, S>] : []);
11
+ /** Returns the Intersect of the given sets */
8
12
  export declare function OperatorIntersect<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): OperatorIntersect<T, S>;
9
13
  export type OperatorUnion<T extends PropertyKey[], S extends PropertyKey[]> = (T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? OperatorIncludes<S, L> extends true ? [...OperatorUnion<R, S>] : [L, ...OperatorUnion<R, S>] : S);
14
+ /** Returns the Union of the given sets */
10
15
  export declare function OperatorUnion<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): OperatorUnion<T, S>;
11
16
  export type OperatorComplement<T extends PropertyKey[], S extends PropertyKey[]> = (T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? OperatorIncludes<S, L> extends true ? [...OperatorComplement<R, S>] : [L, ...OperatorComplement<R, S>] : []);
17
+ /** Returns the Complement by omitting elements in T that are in S */
12
18
  export declare function OperatorComplement<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): OperatorComplement<T, S>;
13
19
  export type OperatorIntersectMany<T extends PropertyKey[][]> = (T extends [infer L extends PropertyKey[]] ? L : T extends [infer L extends PropertyKey[], ...infer R extends PropertyKey[][]] ? OperatorIntersect<L, OperatorIntersectMany<R>> : []);
20
+ /** Returns the Intersect of multiple sets */
14
21
  export declare function OperatorIntersectMany<T extends PropertyKey[][]>(T: [...T]): OperatorIntersectMany<T>;
15
22
  export type OperatorUnionMany<T extends PropertyKey[][]> = (T extends [infer L extends PropertyKey[]] ? L : T extends [infer L extends PropertyKey[], ...infer R extends PropertyKey[][]] ? OperatorUnion<L, OperatorUnionMany<R>> : []);
23
+ /** Returns the Union of multiple sets */
16
24
  export declare function OperatorUnionMany<T extends PropertyKey[][]>(T: [...T]): OperatorUnionMany<T>;