@sinclair/typebox 0.32.0-dev-15 → 0.32.0-dev-17

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 (682) hide show
  1. package/build/import/compiler/compiler.d.mts +9 -0
  2. package/build/import/compiler/compiler.mjs +87 -6
  3. package/build/import/compiler/index.mjs +27 -0
  4. package/build/import/errors/errors.d.mts +3 -0
  5. package/build/import/errors/errors.mjs +55 -3
  6. package/build/import/errors/function.d.mts +3 -0
  7. package/build/import/errors/function.mjs +31 -0
  8. package/build/import/errors/index.mjs +27 -0
  9. package/build/import/index.d.mts +2 -2
  10. package/build/import/index.mjs +38 -2
  11. package/build/import/system/index.mjs +27 -0
  12. package/build/import/system/policy.d.mts +10 -0
  13. package/build/import/system/policy.mjs +40 -0
  14. package/build/import/system/system.d.mts +3 -0
  15. package/build/import/system/system.mjs +36 -0
  16. package/build/import/type/any/any.d.mts +1 -0
  17. package/build/import/type/any/any.mjs +28 -0
  18. package/build/import/type/any/index.mjs +27 -0
  19. package/build/import/type/array/array.d.mts +8 -1
  20. package/build/import/type/array/array.mjs +28 -0
  21. package/build/import/type/array/index.mjs +27 -0
  22. package/build/import/type/async-iterator/async-iterator.d.mts +1 -0
  23. package/build/import/type/async-iterator/async-iterator.mjs +28 -0
  24. package/build/import/type/async-iterator/index.mjs +27 -0
  25. package/build/import/type/awaited/awaited.d.mts +1 -0
  26. package/build/import/type/awaited/awaited.mjs +37 -0
  27. package/build/import/type/awaited/index.mjs +27 -0
  28. package/build/import/type/bigint/bigint.d.mts +1 -0
  29. package/build/import/type/bigint/bigint.mjs +28 -0
  30. package/build/import/type/bigint/index.mjs +27 -0
  31. package/build/import/type/boolean/boolean.d.mts +1 -0
  32. package/build/import/type/boolean/boolean.mjs +28 -0
  33. package/build/import/type/boolean/index.mjs +27 -0
  34. package/build/import/type/clone/index.mjs +27 -0
  35. package/build/import/type/clone/type.d.mts +2 -0
  36. package/build/import/type/clone/type.mjs +29 -0
  37. package/build/import/type/clone/value.d.mts +1 -0
  38. package/build/import/type/clone/value.mjs +29 -0
  39. package/build/import/type/composite/composite.d.mts +1 -0
  40. package/build/import/type/composite/composite.mjs +28 -0
  41. package/build/import/type/composite/index.mjs +27 -0
  42. package/build/import/type/const/const.d.mts +2 -1
  43. package/build/import/type/const/const.mjs +32 -1
  44. package/build/import/type/const/index.mjs +27 -0
  45. package/build/import/type/constructor/constructor.d.mts +5 -4
  46. package/build/import/type/constructor/constructor.mjs +28 -0
  47. package/build/import/type/constructor/index.mjs +27 -0
  48. package/build/import/type/constructor-parameters/constructor-parameters.d.mts +1 -0
  49. package/build/import/type/constructor-parameters/constructor-parameters.mjs +28 -0
  50. package/build/import/type/constructor-parameters/index.mjs +27 -0
  51. package/build/import/type/date/date.d.mts +6 -0
  52. package/build/import/type/date/date.mjs +28 -0
  53. package/build/import/type/date/index.mjs +27 -0
  54. package/build/import/type/deref/deref.d.mts +1 -0
  55. package/build/import/type/deref/deref.mjs +45 -0
  56. package/build/import/type/deref/index.mjs +27 -0
  57. package/build/import/type/discard/discard.mjs +27 -0
  58. package/build/import/type/discard/index.mjs +27 -0
  59. package/build/import/type/enum/enum.d.mts +1 -0
  60. package/build/import/type/enum/enum.mjs +28 -0
  61. package/build/import/type/enum/index.mjs +27 -0
  62. package/build/import/type/exclude/exclude-from-mapped-result.mjs +30 -0
  63. package/build/import/type/exclude/exclude.d.mts +5 -3
  64. package/build/import/type/exclude/exclude.mjs +30 -0
  65. package/build/import/type/exclude/index.mjs +27 -0
  66. package/build/import/type/extends/extends-check.mjs +200 -1
  67. package/build/import/type/extends/extends-from-mapped-key.mjs +31 -0
  68. package/build/import/type/extends/extends-from-mapped-result.mjs +30 -0
  69. package/build/import/type/extends/extends-undefined.d.mts +1 -0
  70. package/build/import/type/extends/extends-undefined.mjs +30 -0
  71. package/build/import/type/extends/extends.d.mts +3 -0
  72. package/build/import/type/extends/extends.mjs +35 -1
  73. package/build/import/type/extends/index.mjs +27 -0
  74. package/build/import/type/extract/extract-from-mapped-result.mjs +30 -0
  75. package/build/import/type/extract/extract.d.mts +5 -3
  76. package/build/import/type/extract/extract.mjs +30 -0
  77. package/build/import/type/extract/index.mjs +27 -0
  78. package/build/import/type/function/function.d.mts +5 -4
  79. package/build/import/type/function/function.mjs +28 -0
  80. package/build/import/type/function/index.mjs +27 -0
  81. package/build/import/type/guard/index.mjs +27 -0
  82. package/build/import/type/guard/type.d.mts +46 -0
  83. package/build/import/type/guard/type.mjs +111 -1
  84. package/build/import/type/guard/value.d.mts +14 -0
  85. package/build/import/type/guard/value.mjs +41 -0
  86. package/build/import/type/helpers/helpers.d.mts +1 -0
  87. package/build/import/type/helpers/helpers.mjs +28 -0
  88. package/build/import/type/helpers/index.mjs +27 -0
  89. package/build/import/type/index.mjs +27 -0
  90. package/build/import/type/indexed/index.mjs +27 -0
  91. package/build/import/type/indexed/indexed-from-mapped-key.mjs +35 -1
  92. package/build/import/type/indexed/indexed-property-keys.d.mts +1 -0
  93. package/build/import/type/indexed/indexed-property-keys.mjs +36 -0
  94. package/build/import/type/indexed/indexed-result.d.mts +6 -6
  95. package/build/import/type/indexed/indexed-result.mjs +49 -7
  96. package/build/import/type/indexed/indexed.d.mts +3 -0
  97. package/build/import/type/indexed/indexed.mjs +34 -1
  98. package/build/import/type/instance-type/index.mjs +27 -0
  99. package/build/import/type/instance-type/instance-type.d.mts +1 -0
  100. package/build/import/type/instance-type/instance-type.mjs +28 -0
  101. package/build/import/type/integer/index.mjs +27 -0
  102. package/build/import/type/integer/integer.d.mts +1 -0
  103. package/build/import/type/integer/integer.mjs +28 -0
  104. package/build/import/type/intersect/index.d.mts +2 -0
  105. package/build/import/type/intersect/index.mjs +29 -0
  106. package/build/import/type/intersect/intersect-create.d.mts +3 -0
  107. package/build/import/type/intersect/intersect-create.mjs +47 -0
  108. package/build/import/type/intersect/intersect-evaluated.d.mts +17 -0
  109. package/build/import/type/intersect/intersect-evaluated.mjs +71 -0
  110. package/build/import/type/intersect/intersect-type.d.mts +15 -0
  111. package/build/import/type/intersect/intersect-type.mjs +28 -0
  112. package/build/import/type/intersect/intersect.d.mts +5 -20
  113. package/build/import/type/intersect/intersect.mjs +37 -17
  114. package/build/import/type/intrinsic/capitalize.d.mts +1 -0
  115. package/build/import/type/intrinsic/capitalize.mjs +28 -0
  116. package/build/import/type/intrinsic/index.mjs +27 -0
  117. package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +31 -0
  118. package/build/import/type/intrinsic/intrinsic.d.mts +2 -0
  119. package/build/import/type/intrinsic/intrinsic.mjs +43 -1
  120. package/build/import/type/intrinsic/lowercase.d.mts +1 -0
  121. package/build/import/type/intrinsic/lowercase.mjs +28 -0
  122. package/build/import/type/intrinsic/uncapitalize.d.mts +1 -0
  123. package/build/import/type/intrinsic/uncapitalize.mjs +28 -0
  124. package/build/import/type/intrinsic/uppercase.d.mts +1 -0
  125. package/build/import/type/intrinsic/uppercase.mjs +28 -0
  126. package/build/import/type/iterator/index.mjs +27 -0
  127. package/build/import/type/iterator/iterator.d.mts +1 -0
  128. package/build/import/type/iterator/iterator.mjs +28 -0
  129. package/build/import/type/keyof/index.mjs +27 -0
  130. package/build/import/type/keyof/keyof-from-mapped-result.mjs +30 -0
  131. package/build/import/type/keyof/keyof-property-keys.d.mts +2 -0
  132. package/build/import/type/keyof/keyof-property-keys.mjs +47 -0
  133. package/build/import/type/keyof/keyof.d.mts +4 -2
  134. package/build/import/type/keyof/keyof.mjs +35 -2
  135. package/build/import/type/literal/index.mjs +27 -0
  136. package/build/import/type/literal/literal.d.mts +1 -0
  137. package/build/import/type/literal/literal.mjs +28 -0
  138. package/build/import/type/mapped/index.mjs +27 -0
  139. package/build/import/type/mapped/mapped-key.mjs +28 -0
  140. package/build/import/type/mapped/mapped-result.mjs +28 -0
  141. package/build/import/type/mapped/mapped.d.mts +2 -0
  142. package/build/import/type/mapped/mapped.mjs +47 -3
  143. package/build/import/type/modifiers/index.mjs +27 -0
  144. package/build/import/type/modifiers/modifiers.mjs +37 -0
  145. package/build/import/type/never/index.mjs +27 -0
  146. package/build/import/type/never/never.d.mts +1 -0
  147. package/build/import/type/never/never.mjs +28 -0
  148. package/build/import/type/not/index.mjs +27 -0
  149. package/build/import/type/not/not.d.mts +1 -0
  150. package/build/import/type/not/not.mjs +28 -0
  151. package/build/import/type/null/index.mjs +27 -0
  152. package/build/import/type/null/null.d.mts +1 -0
  153. package/build/import/type/null/null.mjs +28 -0
  154. package/build/import/type/number/index.mjs +27 -0
  155. package/build/import/type/number/number.d.mts +1 -0
  156. package/build/import/type/number/number.mjs +28 -0
  157. package/build/import/type/object/index.mjs +27 -0
  158. package/build/import/type/object/object.d.mts +10 -5
  159. package/build/import/type/object/object.mjs +33 -0
  160. package/build/import/type/omit/index.mjs +27 -0
  161. package/build/import/type/omit/omit-from-mapped-key.mjs +31 -0
  162. package/build/import/type/omit/omit.d.mts +3 -0
  163. package/build/import/type/omit/omit.mjs +39 -0
  164. package/build/import/type/operators/index.mjs +27 -0
  165. package/build/import/type/operators/operators.d.mts +8 -0
  166. package/build/import/type/operators/operators.mjs +42 -0
  167. package/build/import/type/optional/index.mjs +27 -0
  168. package/build/import/type/optional/optional.d.mts +1 -0
  169. package/build/import/type/optional/optional.mjs +28 -0
  170. package/build/import/type/parameters/index.mjs +27 -0
  171. package/build/import/type/parameters/parameters.d.mts +1 -0
  172. package/build/import/type/parameters/parameters.mjs +28 -0
  173. package/build/import/type/partial/index.mjs +27 -0
  174. package/build/import/type/partial/partial-from-mapped-result.mjs +30 -0
  175. package/build/import/type/partial/partial.d.mts +2 -0
  176. package/build/import/type/partial/partial.mjs +36 -0
  177. package/build/import/type/patterns/index.mjs +27 -0
  178. package/build/import/type/patterns/patterns.mjs +27 -0
  179. package/build/import/type/pick/index.mjs +27 -0
  180. package/build/import/type/pick/pick-from-mapped-key.mjs +31 -0
  181. package/build/import/type/pick/pick.d.mts +3 -0
  182. package/build/import/type/pick/pick.mjs +34 -0
  183. package/build/import/type/promise/index.mjs +27 -0
  184. package/build/import/type/promise/promise.d.mts +1 -0
  185. package/build/import/type/promise/promise.mjs +28 -0
  186. package/build/import/type/readonly/index.mjs +27 -0
  187. package/build/import/type/readonly/readonly.d.mts +1 -0
  188. package/build/import/type/readonly/readonly.mjs +28 -0
  189. package/build/import/type/readonly-optional/index.mjs +27 -0
  190. package/build/import/type/readonly-optional/readonly-optional.d.mts +1 -0
  191. package/build/import/type/readonly-optional/readonly-optional.mjs +28 -0
  192. package/build/import/type/record/index.mjs +27 -0
  193. package/build/import/type/record/record.d.mts +1 -1
  194. package/build/import/type/record/record.mjs +49 -1
  195. package/build/import/type/recursive/index.mjs +27 -0
  196. package/build/import/type/recursive/recursive.d.mts +4 -2
  197. package/build/import/type/recursive/recursive.mjs +31 -5
  198. package/build/import/type/ref/index.mjs +27 -0
  199. package/build/import/type/ref/ref.d.mts +2 -0
  200. package/build/import/type/ref/ref.mjs +28 -0
  201. package/build/import/type/regexp/index.mjs +27 -0
  202. package/build/import/type/regexp/regexp.d.mts +2 -0
  203. package/build/import/type/regexp/regexp.mjs +28 -0
  204. package/build/import/type/registry/format.d.mts +6 -0
  205. package/build/import/type/registry/format.mjs +34 -0
  206. package/build/import/type/registry/index.mjs +27 -0
  207. package/build/import/type/registry/type.d.mts +6 -0
  208. package/build/import/type/registry/type.mjs +34 -0
  209. package/build/import/type/required/index.mjs +27 -0
  210. package/build/import/type/required/required-from-mapped-result.mjs +30 -0
  211. package/build/import/type/required/required.d.mts +2 -0
  212. package/build/import/type/required/required.mjs +36 -0
  213. package/build/import/type/rest/index.mjs +27 -0
  214. package/build/import/type/rest/rest.d.mts +1 -0
  215. package/build/import/type/rest/rest.mjs +32 -0
  216. package/build/import/type/return-type/index.mjs +27 -0
  217. package/build/import/type/return-type/return-type.d.mts +1 -0
  218. package/build/import/type/return-type/return-type.mjs +28 -0
  219. package/build/import/type/schema/anyschema.mjs +27 -0
  220. package/build/import/type/schema/index.mjs +27 -0
  221. package/build/import/type/schema/schema.d.mts +7 -0
  222. package/build/import/type/schema/schema.mjs +27 -0
  223. package/build/import/type/static/index.mjs +27 -0
  224. package/build/import/type/static/static.d.mts +3 -0
  225. package/build/import/type/static/static.mjs +27 -0
  226. package/build/import/type/strict/index.mjs +27 -0
  227. package/build/import/type/strict/strict.d.mts +1 -0
  228. package/build/import/type/strict/strict.mjs +28 -0
  229. package/build/import/type/string/index.mjs +27 -0
  230. package/build/import/type/string/string.d.mts +7 -0
  231. package/build/import/type/string/string.mjs +28 -0
  232. package/build/import/type/symbol/index.mjs +27 -0
  233. package/build/import/type/symbol/symbol.d.mts +1 -0
  234. package/build/import/type/symbol/symbol.mjs +28 -0
  235. package/build/import/type/symbols/index.mjs +27 -0
  236. package/build/import/type/symbols/symbols.d.mts +5 -0
  237. package/build/import/type/symbols/symbols.mjs +32 -0
  238. package/build/import/type/template-literal/finite.mjs +37 -0
  239. package/build/import/type/template-literal/generate.mjs +37 -0
  240. package/build/import/type/template-literal/index.mjs +27 -0
  241. package/build/import/type/template-literal/parser.d.mts +2 -0
  242. package/build/import/type/template-literal/parser.mjs +44 -0
  243. package/build/import/type/template-literal/pattern.mjs +38 -0
  244. package/build/import/type/template-literal/syntax.d.mts +5 -4
  245. package/build/import/type/template-literal/syntax.mjs +35 -0
  246. package/build/import/type/template-literal/template-literal.d.mts +6 -4
  247. package/build/import/type/template-literal/template-literal.mjs +29 -0
  248. package/build/import/type/template-literal/union.d.mts +1 -0
  249. package/build/import/type/template-literal/union.mjs +31 -0
  250. package/build/import/type/transform/index.mjs +27 -0
  251. package/build/import/type/transform/transform.d.mts +4 -2
  252. package/build/import/type/transform/transform.mjs +37 -1
  253. package/build/import/type/tuple/index.mjs +27 -0
  254. package/build/import/type/tuple/tuple.d.mts +4 -3
  255. package/build/import/type/tuple/tuple.mjs +30 -0
  256. package/build/import/type/type/index.d.mts +1 -0
  257. package/build/import/type/type/index.mjs +34 -0
  258. package/build/import/type/type/javascript.d.mts +19 -0
  259. package/build/import/type/type/javascript.mjs +45 -0
  260. package/build/import/type/type/json.d.mts +66 -5
  261. package/build/import/type/type/json.mjs +82 -1
  262. package/build/import/type/type/type.mjs +30 -0
  263. package/build/import/type/uint8array/index.mjs +27 -0
  264. package/build/import/type/uint8array/uint8array.d.mts +1 -0
  265. package/build/import/type/uint8array/uint8array.mjs +28 -0
  266. package/build/import/type/undefined/index.mjs +27 -0
  267. package/build/import/type/undefined/undefined.d.mts +1 -0
  268. package/build/import/type/undefined/undefined.mjs +28 -0
  269. package/build/import/type/union/index.d.mts +2 -0
  270. package/build/import/type/union/index.mjs +29 -0
  271. package/build/import/type/union/union-create.d.mts +3 -0
  272. package/build/import/type/union/union-create.mjs +32 -0
  273. package/build/import/type/union/union-evaluated.d.mts +17 -0
  274. package/build/import/type/union/union-evaluated.mjs +68 -0
  275. package/build/import/type/union/union-type.d.mts +12 -0
  276. package/build/import/type/union/union-type.mjs +28 -0
  277. package/build/import/type/union/union.d.mts +4 -13
  278. package/build/import/type/union/union.mjs +32 -10
  279. package/build/import/type/unknown/index.mjs +27 -0
  280. package/build/import/type/unknown/unknown.d.mts +1 -0
  281. package/build/import/type/unknown/unknown.mjs +28 -0
  282. package/build/import/type/unsafe/index.mjs +27 -0
  283. package/build/import/type/unsafe/unsafe.d.mts +1 -0
  284. package/build/import/type/unsafe/unsafe.mjs +28 -0
  285. package/build/import/type/void/index.mjs +27 -0
  286. package/build/import/type/void/void.d.mts +1 -0
  287. package/build/import/type/void/void.mjs +28 -0
  288. package/build/import/value/cast/cast.d.mts +2 -0
  289. package/build/import/value/cast/cast.mjs +55 -0
  290. package/build/import/value/cast/index.mjs +27 -0
  291. package/build/import/value/check/check.d.mts +2 -0
  292. package/build/import/value/check/check.mjs +46 -1
  293. package/build/import/value/check/index.mjs +27 -0
  294. package/build/import/value/clean/clean.d.mts +2 -0
  295. package/build/import/value/clean/clean.mjs +39 -1
  296. package/build/import/value/clean/index.mjs +27 -0
  297. package/build/import/value/clone/clone.d.mts +1 -0
  298. package/build/import/value/clone/clone.mjs +34 -0
  299. package/build/import/value/clone/index.mjs +27 -0
  300. package/build/import/value/convert/convert.d.mts +2 -0
  301. package/build/import/value/convert/convert.mjs +57 -1
  302. package/build/import/value/convert/index.mjs +27 -0
  303. package/build/import/value/create/create.d.mts +2 -0
  304. package/build/import/value/create/create.mjs +44 -0
  305. package/build/import/value/create/index.mjs +27 -0
  306. package/build/import/value/default/default.d.mts +2 -0
  307. package/build/import/value/default/default.mjs +46 -0
  308. package/build/import/value/default/index.mjs +27 -0
  309. package/build/import/value/delta/delta.d.mts +1 -1
  310. package/build/import/value/delta/delta.mjs +42 -0
  311. package/build/import/value/delta/index.mjs +27 -0
  312. package/build/import/value/deref/deref.d.mts +1 -0
  313. package/build/import/value/deref/deref.mjs +28 -0
  314. package/build/import/value/deref/index.mjs +27 -0
  315. package/build/import/value/equal/equal.d.mts +1 -0
  316. package/build/import/value/equal/equal.mjs +34 -0
  317. package/build/import/value/equal/index.mjs +27 -0
  318. package/build/import/value/guard/guard.d.mts +20 -0
  319. package/build/import/value/guard/guard.mjs +57 -0
  320. package/build/import/value/guard/index.mjs +27 -0
  321. package/build/import/value/hash/hash.d.mts +1 -0
  322. package/build/import/value/hash/hash.mjs +46 -0
  323. package/build/import/value/hash/index.mjs +27 -0
  324. package/build/import/value/index.mjs +39 -0
  325. package/build/import/value/mutate/index.mjs +27 -0
  326. package/build/import/value/mutate/mutate.d.mts +1 -0
  327. package/build/import/value/mutate/mutate.mjs +38 -0
  328. package/build/import/value/pointer/index.mjs +27 -0
  329. package/build/import/value/pointer/pointer.d.mts +5 -0
  330. package/build/import/value/pointer/pointer.mjs +45 -0
  331. package/build/import/value/transform/decode.d.mts +5 -0
  332. package/build/import/value/transform/decode.mjs +50 -0
  333. package/build/import/value/transform/encode.d.mts +6 -0
  334. package/build/import/value/transform/encode.mjs +52 -0
  335. package/build/import/value/transform/has.d.mts +1 -0
  336. package/build/import/value/transform/has.mjs +43 -0
  337. package/build/import/value/transform/index.mjs +27 -0
  338. package/build/import/value/value/index.mjs +27 -0
  339. package/build/import/value/value/value.d.mts +24 -0
  340. package/build/import/value/value/value.mjs +42 -0
  341. package/build/require/compiler/compiler.d.ts +9 -0
  342. package/build/require/compiler/compiler.js +87 -6
  343. package/build/require/compiler/index.js +27 -0
  344. package/build/require/errors/errors.d.ts +3 -0
  345. package/build/require/errors/errors.js +55 -3
  346. package/build/require/errors/function.d.ts +3 -0
  347. package/build/require/errors/function.js +31 -0
  348. package/build/require/errors/index.js +27 -0
  349. package/build/require/index.d.ts +2 -2
  350. package/build/require/index.js +41 -2
  351. package/build/require/system/index.js +27 -0
  352. package/build/require/system/policy.d.ts +10 -0
  353. package/build/require/system/policy.js +40 -0
  354. package/build/require/system/system.d.ts +3 -0
  355. package/build/require/system/system.js +36 -0
  356. package/build/require/type/any/any.d.ts +1 -0
  357. package/build/require/type/any/any.js +28 -0
  358. package/build/require/type/any/index.js +27 -0
  359. package/build/require/type/array/array.d.ts +8 -1
  360. package/build/require/type/array/array.js +28 -0
  361. package/build/require/type/array/index.js +27 -0
  362. package/build/require/type/async-iterator/async-iterator.d.ts +1 -0
  363. package/build/require/type/async-iterator/async-iterator.js +28 -0
  364. package/build/require/type/async-iterator/index.js +27 -0
  365. package/build/require/type/awaited/awaited.d.ts +1 -0
  366. package/build/require/type/awaited/awaited.js +37 -0
  367. package/build/require/type/awaited/index.js +27 -0
  368. package/build/require/type/bigint/bigint.d.ts +1 -0
  369. package/build/require/type/bigint/bigint.js +28 -0
  370. package/build/require/type/bigint/index.js +27 -0
  371. package/build/require/type/boolean/boolean.d.ts +1 -0
  372. package/build/require/type/boolean/boolean.js +28 -0
  373. package/build/require/type/boolean/index.js +27 -0
  374. package/build/require/type/clone/index.js +27 -0
  375. package/build/require/type/clone/type.d.ts +2 -0
  376. package/build/require/type/clone/type.js +29 -0
  377. package/build/require/type/clone/value.d.ts +1 -0
  378. package/build/require/type/clone/value.js +29 -0
  379. package/build/require/type/composite/composite.d.ts +1 -0
  380. package/build/require/type/composite/composite.js +28 -0
  381. package/build/require/type/composite/index.js +27 -0
  382. package/build/require/type/const/const.d.ts +2 -1
  383. package/build/require/type/const/const.js +32 -1
  384. package/build/require/type/const/index.js +27 -0
  385. package/build/require/type/constructor/constructor.d.ts +5 -4
  386. package/build/require/type/constructor/constructor.js +28 -0
  387. package/build/require/type/constructor/index.js +27 -0
  388. package/build/require/type/constructor-parameters/constructor-parameters.d.ts +1 -0
  389. package/build/require/type/constructor-parameters/constructor-parameters.js +28 -0
  390. package/build/require/type/constructor-parameters/index.js +27 -0
  391. package/build/require/type/date/date.d.ts +6 -0
  392. package/build/require/type/date/date.js +28 -0
  393. package/build/require/type/date/index.js +27 -0
  394. package/build/require/type/deref/deref.d.ts +1 -0
  395. package/build/require/type/deref/deref.js +45 -0
  396. package/build/require/type/deref/index.js +27 -0
  397. package/build/require/type/discard/discard.js +27 -0
  398. package/build/require/type/discard/index.js +27 -0
  399. package/build/require/type/enum/enum.d.ts +1 -0
  400. package/build/require/type/enum/enum.js +28 -0
  401. package/build/require/type/enum/index.js +27 -0
  402. package/build/require/type/exclude/exclude-from-mapped-result.js +30 -0
  403. package/build/require/type/exclude/exclude.d.ts +5 -3
  404. package/build/require/type/exclude/exclude.js +30 -0
  405. package/build/require/type/exclude/index.js +27 -0
  406. package/build/require/type/extends/extends-check.js +200 -1
  407. package/build/require/type/extends/extends-from-mapped-key.js +31 -0
  408. package/build/require/type/extends/extends-from-mapped-result.js +30 -0
  409. package/build/require/type/extends/extends-undefined.d.ts +1 -0
  410. package/build/require/type/extends/extends-undefined.js +30 -0
  411. package/build/require/type/extends/extends.d.ts +3 -0
  412. package/build/require/type/extends/extends.js +39 -5
  413. package/build/require/type/extends/index.js +27 -0
  414. package/build/require/type/extract/extract-from-mapped-result.js +30 -0
  415. package/build/require/type/extract/extract.d.ts +5 -3
  416. package/build/require/type/extract/extract.js +30 -0
  417. package/build/require/type/extract/index.js +27 -0
  418. package/build/require/type/function/function.d.ts +5 -4
  419. package/build/require/type/function/function.js +28 -0
  420. package/build/require/type/function/index.js +27 -0
  421. package/build/require/type/guard/index.js +27 -0
  422. package/build/require/type/guard/type.d.ts +46 -0
  423. package/build/require/type/guard/type.js +111 -1
  424. package/build/require/type/guard/value.d.ts +14 -0
  425. package/build/require/type/guard/value.js +41 -0
  426. package/build/require/type/helpers/helpers.d.ts +1 -0
  427. package/build/require/type/helpers/helpers.js +28 -0
  428. package/build/require/type/helpers/index.js +27 -0
  429. package/build/require/type/index.js +27 -0
  430. package/build/require/type/indexed/index.js +27 -0
  431. package/build/require/type/indexed/indexed-from-mapped-key.js +35 -1
  432. package/build/require/type/indexed/indexed-property-keys.d.ts +1 -0
  433. package/build/require/type/indexed/indexed-property-keys.js +36 -0
  434. package/build/require/type/indexed/indexed-result.d.ts +6 -6
  435. package/build/require/type/indexed/indexed-result.js +46 -4
  436. package/build/require/type/indexed/indexed.d.ts +3 -0
  437. package/build/require/type/indexed/indexed.js +37 -4
  438. package/build/require/type/instance-type/index.js +27 -0
  439. package/build/require/type/instance-type/instance-type.d.ts +1 -0
  440. package/build/require/type/instance-type/instance-type.js +28 -0
  441. package/build/require/type/integer/index.js +27 -0
  442. package/build/require/type/integer/integer.d.ts +1 -0
  443. package/build/require/type/integer/integer.js +28 -0
  444. package/build/require/type/intersect/index.d.ts +2 -0
  445. package/build/require/type/intersect/index.js +29 -0
  446. package/build/require/type/intersect/intersect-create.d.ts +3 -0
  447. package/build/require/type/intersect/intersect-create.js +51 -0
  448. package/build/require/type/intersect/intersect-evaluated.d.ts +17 -0
  449. package/build/require/type/intersect/intersect-evaluated.js +75 -0
  450. package/build/require/type/intersect/intersect-type.d.ts +15 -0
  451. package/build/require/type/intersect/intersect-type.js +30 -0
  452. package/build/require/type/intersect/intersect.d.ts +5 -20
  453. package/build/require/type/intersect/intersect.js +37 -18
  454. package/build/require/type/intrinsic/capitalize.d.ts +1 -0
  455. package/build/require/type/intrinsic/capitalize.js +28 -0
  456. package/build/require/type/intrinsic/index.js +27 -0
  457. package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +31 -0
  458. package/build/require/type/intrinsic/intrinsic.d.ts +2 -0
  459. package/build/require/type/intrinsic/intrinsic.js +43 -1
  460. package/build/require/type/intrinsic/lowercase.d.ts +1 -0
  461. package/build/require/type/intrinsic/lowercase.js +28 -0
  462. package/build/require/type/intrinsic/uncapitalize.d.ts +1 -0
  463. package/build/require/type/intrinsic/uncapitalize.js +28 -0
  464. package/build/require/type/intrinsic/uppercase.d.ts +1 -0
  465. package/build/require/type/intrinsic/uppercase.js +28 -0
  466. package/build/require/type/iterator/index.js +27 -0
  467. package/build/require/type/iterator/iterator.d.ts +1 -0
  468. package/build/require/type/iterator/iterator.js +28 -0
  469. package/build/require/type/keyof/index.js +27 -0
  470. package/build/require/type/keyof/keyof-from-mapped-result.js +30 -0
  471. package/build/require/type/keyof/keyof-property-keys.d.ts +2 -0
  472. package/build/require/type/keyof/keyof-property-keys.js +47 -0
  473. package/build/require/type/keyof/keyof.d.ts +4 -2
  474. package/build/require/type/keyof/keyof.js +34 -1
  475. package/build/require/type/literal/index.js +27 -0
  476. package/build/require/type/literal/literal.d.ts +1 -0
  477. package/build/require/type/literal/literal.js +28 -0
  478. package/build/require/type/mapped/index.js +27 -0
  479. package/build/require/type/mapped/mapped-key.js +28 -0
  480. package/build/require/type/mapped/mapped-result.js +28 -0
  481. package/build/require/type/mapped/mapped.d.ts +2 -0
  482. package/build/require/type/mapped/mapped.js +63 -19
  483. package/build/require/type/modifiers/index.js +27 -0
  484. package/build/require/type/modifiers/modifiers.js +37 -0
  485. package/build/require/type/never/index.js +27 -0
  486. package/build/require/type/never/never.d.ts +1 -0
  487. package/build/require/type/never/never.js +28 -0
  488. package/build/require/type/not/index.js +27 -0
  489. package/build/require/type/not/not.d.ts +1 -0
  490. package/build/require/type/not/not.js +28 -0
  491. package/build/require/type/null/index.js +27 -0
  492. package/build/require/type/null/null.d.ts +1 -0
  493. package/build/require/type/null/null.js +28 -0
  494. package/build/require/type/number/index.js +27 -0
  495. package/build/require/type/number/number.d.ts +1 -0
  496. package/build/require/type/number/number.js +28 -0
  497. package/build/require/type/object/index.js +27 -0
  498. package/build/require/type/object/object.d.ts +10 -5
  499. package/build/require/type/object/object.js +33 -0
  500. package/build/require/type/omit/index.js +27 -0
  501. package/build/require/type/omit/omit-from-mapped-key.js +31 -0
  502. package/build/require/type/omit/omit.d.ts +3 -0
  503. package/build/require/type/omit/omit.js +39 -0
  504. package/build/require/type/operators/index.js +27 -0
  505. package/build/require/type/operators/operators.d.ts +8 -0
  506. package/build/require/type/operators/operators.js +42 -0
  507. package/build/require/type/optional/index.js +27 -0
  508. package/build/require/type/optional/optional.d.ts +1 -0
  509. package/build/require/type/optional/optional.js +28 -0
  510. package/build/require/type/parameters/index.js +27 -0
  511. package/build/require/type/parameters/parameters.d.ts +1 -0
  512. package/build/require/type/parameters/parameters.js +28 -0
  513. package/build/require/type/partial/index.js +27 -0
  514. package/build/require/type/partial/partial-from-mapped-result.js +30 -0
  515. package/build/require/type/partial/partial.d.ts +2 -0
  516. package/build/require/type/partial/partial.js +36 -0
  517. package/build/require/type/patterns/index.js +27 -0
  518. package/build/require/type/patterns/patterns.js +27 -0
  519. package/build/require/type/pick/index.js +27 -0
  520. package/build/require/type/pick/pick-from-mapped-key.js +31 -0
  521. package/build/require/type/pick/pick.d.ts +3 -0
  522. package/build/require/type/pick/pick.js +34 -0
  523. package/build/require/type/promise/index.js +27 -0
  524. package/build/require/type/promise/promise.d.ts +1 -0
  525. package/build/require/type/promise/promise.js +28 -0
  526. package/build/require/type/readonly/index.js +27 -0
  527. package/build/require/type/readonly/readonly.d.ts +1 -0
  528. package/build/require/type/readonly/readonly.js +28 -0
  529. package/build/require/type/readonly-optional/index.js +27 -0
  530. package/build/require/type/readonly-optional/readonly-optional.d.ts +1 -0
  531. package/build/require/type/readonly-optional/readonly-optional.js +28 -0
  532. package/build/require/type/record/index.js +27 -0
  533. package/build/require/type/record/record.d.ts +1 -1
  534. package/build/require/type/record/record.js +49 -2
  535. package/build/require/type/recursive/index.js +27 -0
  536. package/build/require/type/recursive/recursive.d.ts +4 -2
  537. package/build/require/type/recursive/recursive.js +31 -5
  538. package/build/require/type/ref/index.js +27 -0
  539. package/build/require/type/ref/ref.d.ts +2 -0
  540. package/build/require/type/ref/ref.js +28 -0
  541. package/build/require/type/regexp/index.js +27 -0
  542. package/build/require/type/regexp/regexp.d.ts +2 -0
  543. package/build/require/type/regexp/regexp.js +28 -0
  544. package/build/require/type/registry/format.d.ts +6 -0
  545. package/build/require/type/registry/format.js +34 -0
  546. package/build/require/type/registry/index.js +27 -0
  547. package/build/require/type/registry/type.d.ts +6 -0
  548. package/build/require/type/registry/type.js +34 -0
  549. package/build/require/type/required/index.js +27 -0
  550. package/build/require/type/required/required-from-mapped-result.js +30 -0
  551. package/build/require/type/required/required.d.ts +2 -0
  552. package/build/require/type/required/required.js +36 -0
  553. package/build/require/type/rest/index.js +27 -0
  554. package/build/require/type/rest/rest.d.ts +1 -0
  555. package/build/require/type/rest/rest.js +32 -0
  556. package/build/require/type/return-type/index.js +27 -0
  557. package/build/require/type/return-type/return-type.d.ts +1 -0
  558. package/build/require/type/return-type/return-type.js +28 -0
  559. package/build/require/type/schema/anyschema.js +27 -0
  560. package/build/require/type/schema/index.js +27 -0
  561. package/build/require/type/schema/schema.d.ts +7 -0
  562. package/build/require/type/schema/schema.js +27 -0
  563. package/build/require/type/static/index.js +27 -0
  564. package/build/require/type/static/static.d.ts +3 -0
  565. package/build/require/type/static/static.js +27 -0
  566. package/build/require/type/strict/index.js +27 -0
  567. package/build/require/type/strict/strict.d.ts +1 -0
  568. package/build/require/type/strict/strict.js +28 -0
  569. package/build/require/type/string/index.js +27 -0
  570. package/build/require/type/string/string.d.ts +7 -0
  571. package/build/require/type/string/string.js +28 -0
  572. package/build/require/type/symbol/index.js +27 -0
  573. package/build/require/type/symbol/symbol.d.ts +1 -0
  574. package/build/require/type/symbol/symbol.js +28 -0
  575. package/build/require/type/symbols/index.js +27 -0
  576. package/build/require/type/symbols/symbols.d.ts +5 -0
  577. package/build/require/type/symbols/symbols.js +32 -0
  578. package/build/require/type/template-literal/finite.js +37 -0
  579. package/build/require/type/template-literal/generate.js +37 -0
  580. package/build/require/type/template-literal/index.js +27 -0
  581. package/build/require/type/template-literal/parser.d.ts +2 -0
  582. package/build/require/type/template-literal/parser.js +44 -0
  583. package/build/require/type/template-literal/pattern.js +38 -0
  584. package/build/require/type/template-literal/syntax.d.ts +5 -4
  585. package/build/require/type/template-literal/syntax.js +35 -0
  586. package/build/require/type/template-literal/template-literal.d.ts +6 -4
  587. package/build/require/type/template-literal/template-literal.js +29 -0
  588. package/build/require/type/template-literal/union.d.ts +1 -0
  589. package/build/require/type/template-literal/union.js +31 -0
  590. package/build/require/type/transform/index.js +27 -0
  591. package/build/require/type/transform/transform.d.ts +4 -2
  592. package/build/require/type/transform/transform.js +40 -4
  593. package/build/require/type/tuple/index.js +27 -0
  594. package/build/require/type/tuple/tuple.d.ts +4 -3
  595. package/build/require/type/tuple/tuple.js +30 -0
  596. package/build/require/type/type/index.d.ts +1 -0
  597. package/build/require/type/type/index.js +34 -0
  598. package/build/require/type/type/javascript.d.ts +19 -0
  599. package/build/require/type/type/javascript.js +45 -0
  600. package/build/require/type/type/json.d.ts +66 -5
  601. package/build/require/type/type/json.js +82 -1
  602. package/build/require/type/type/type.js +30 -0
  603. package/build/require/type/uint8array/index.js +27 -0
  604. package/build/require/type/uint8array/uint8array.d.ts +1 -0
  605. package/build/require/type/uint8array/uint8array.js +28 -0
  606. package/build/require/type/undefined/index.js +27 -0
  607. package/build/require/type/undefined/undefined.d.ts +1 -0
  608. package/build/require/type/undefined/undefined.js +28 -0
  609. package/build/require/type/union/index.d.ts +2 -0
  610. package/build/require/type/union/index.js +29 -0
  611. package/build/require/type/union/union-create.d.ts +3 -0
  612. package/build/require/type/union/union-create.js +36 -0
  613. package/build/require/type/union/union-evaluated.d.ts +17 -0
  614. package/build/require/type/union/union-evaluated.js +72 -0
  615. package/build/require/type/union/union-type.d.ts +12 -0
  616. package/build/require/type/union/union-type.js +30 -0
  617. package/build/require/type/union/union.d.ts +4 -13
  618. package/build/require/type/union/union.js +32 -11
  619. package/build/require/type/unknown/index.js +27 -0
  620. package/build/require/type/unknown/unknown.d.ts +1 -0
  621. package/build/require/type/unknown/unknown.js +28 -0
  622. package/build/require/type/unsafe/index.js +27 -0
  623. package/build/require/type/unsafe/unsafe.d.ts +1 -0
  624. package/build/require/type/unsafe/unsafe.js +28 -0
  625. package/build/require/type/void/index.js +27 -0
  626. package/build/require/type/void/void.d.ts +1 -0
  627. package/build/require/type/void/void.js +28 -0
  628. package/build/require/value/cast/cast.d.ts +2 -0
  629. package/build/require/value/cast/cast.js +55 -0
  630. package/build/require/value/cast/index.js +27 -0
  631. package/build/require/value/check/check.d.ts +2 -0
  632. package/build/require/value/check/check.js +46 -1
  633. package/build/require/value/check/index.js +27 -0
  634. package/build/require/value/clean/clean.d.ts +2 -0
  635. package/build/require/value/clean/clean.js +39 -1
  636. package/build/require/value/clean/index.js +27 -0
  637. package/build/require/value/clone/clone.d.ts +1 -0
  638. package/build/require/value/clone/clone.js +34 -0
  639. package/build/require/value/clone/index.js +27 -0
  640. package/build/require/value/convert/convert.d.ts +2 -0
  641. package/build/require/value/convert/convert.js +57 -1
  642. package/build/require/value/convert/index.js +27 -0
  643. package/build/require/value/create/create.d.ts +2 -0
  644. package/build/require/value/create/create.js +44 -0
  645. package/build/require/value/create/index.js +27 -0
  646. package/build/require/value/default/default.d.ts +2 -0
  647. package/build/require/value/default/default.js +46 -0
  648. package/build/require/value/default/index.js +27 -0
  649. package/build/require/value/delta/delta.d.ts +1 -1
  650. package/build/require/value/delta/delta.js +42 -0
  651. package/build/require/value/delta/index.js +27 -0
  652. package/build/require/value/deref/deref.d.ts +1 -0
  653. package/build/require/value/deref/deref.js +28 -0
  654. package/build/require/value/deref/index.js +27 -0
  655. package/build/require/value/equal/equal.d.ts +1 -0
  656. package/build/require/value/equal/equal.js +34 -0
  657. package/build/require/value/equal/index.js +27 -0
  658. package/build/require/value/guard/guard.d.ts +20 -0
  659. package/build/require/value/guard/guard.js +57 -0
  660. package/build/require/value/guard/index.js +27 -0
  661. package/build/require/value/hash/hash.d.ts +1 -0
  662. package/build/require/value/hash/hash.js +46 -0
  663. package/build/require/value/hash/index.js +27 -0
  664. package/build/require/value/index.js +39 -0
  665. package/build/require/value/mutate/index.js +27 -0
  666. package/build/require/value/mutate/mutate.d.ts +1 -0
  667. package/build/require/value/mutate/mutate.js +38 -0
  668. package/build/require/value/pointer/index.js +27 -0
  669. package/build/require/value/pointer/pointer.d.ts +5 -0
  670. package/build/require/value/pointer/pointer.js +45 -0
  671. package/build/require/value/transform/decode.d.ts +5 -0
  672. package/build/require/value/transform/decode.js +50 -0
  673. package/build/require/value/transform/encode.d.ts +6 -0
  674. package/build/require/value/transform/encode.js +52 -0
  675. package/build/require/value/transform/has.d.ts +1 -0
  676. package/build/require/value/transform/has.js +43 -0
  677. package/build/require/value/transform/index.js +27 -0
  678. package/build/require/value/value/index.js +27 -0
  679. package/build/require/value/value/value.d.ts +24 -0
  680. package/build/require/value/value/value.js +42 -0
  681. package/package.json +1 -1
  682. package/readme.md +27 -20
@@ -1,4 +1,31 @@
1
1
  "use strict";
2
+ /*--------------------------------------------------------------------------
3
+
4
+ @sinclair/typebox/type
5
+
6
+ The MIT License (MIT)
7
+
8
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in
18
+ all copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
+ THE SOFTWARE.
27
+
28
+ ---------------------------------------------------------------------------*/
2
29
  Object.defineProperty(exports, "__esModule", { value: true });
3
30
  exports.ExtendsCheck = exports.ExtendsResult = exports.ExtendsResolverError = void 0;
4
31
  const index_1 = require("../any/index");
@@ -19,12 +46,24 @@ var ExtendsResult;
19
46
  ExtendsResult[ExtendsResult["True"] = 1] = "True";
20
47
  ExtendsResult[ExtendsResult["False"] = 2] = "False";
21
48
  })(ExtendsResult || (exports.ExtendsResult = ExtendsResult = {}));
49
+ // ------------------------------------------------------------------
50
+ // IntoBooleanResult
51
+ // ------------------------------------------------------------------
52
+ // prettier-ignore
22
53
  function IntoBooleanResult(result) {
23
54
  return result === ExtendsResult.False ? result : ExtendsResult.True;
24
55
  }
56
+ // ------------------------------------------------------------------
57
+ // Throw
58
+ // ------------------------------------------------------------------
59
+ // prettier-ignore
25
60
  function Throw(message) {
26
61
  throw new ExtendsResolverError(message);
27
62
  }
63
+ // ------------------------------------------------------------------
64
+ // StructuralRight
65
+ // ------------------------------------------------------------------
66
+ // prettier-ignore
28
67
  function IsStructuralRight(right) {
29
68
  return (index_9.TypeGuard.TNever(right) ||
30
69
  index_9.TypeGuard.TIntersect(right) ||
@@ -32,6 +71,7 @@ function IsStructuralRight(right) {
32
71
  index_9.TypeGuard.TUnknown(right) ||
33
72
  index_9.TypeGuard.TAny(right));
34
73
  }
74
+ // prettier-ignore
35
75
  function StructuralRight(left, right) {
36
76
  return (index_9.TypeGuard.TNever(right) ? TNeverRight(left, right) :
37
77
  index_9.TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :
@@ -40,9 +80,14 @@ function StructuralRight(left, right) {
40
80
  index_9.TypeGuard.TAny(right) ? TAnyRight(left, right) :
41
81
  Throw('StructuralRight'));
42
82
  }
83
+ // ------------------------------------------------------------------
84
+ // Any
85
+ // ------------------------------------------------------------------
86
+ // prettier-ignore
43
87
  function TAnyRight(left, right) {
44
88
  return ExtendsResult.True;
45
89
  }
90
+ // prettier-ignore
46
91
  function TAny(left, right) {
47
92
  return (index_9.TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :
48
93
  (index_9.TypeGuard.TUnion(right) && right.anyOf.some((schema) => index_9.TypeGuard.TAny(schema) || index_9.TypeGuard.TUnknown(schema))) ? ExtendsResult.True :
@@ -51,23 +96,36 @@ function TAny(left, right) {
51
96
  index_9.TypeGuard.TAny(right) ? ExtendsResult.True :
52
97
  ExtendsResult.Union);
53
98
  }
99
+ // ------------------------------------------------------------------
100
+ // Array
101
+ // ------------------------------------------------------------------
102
+ // prettier-ignore
54
103
  function TArrayRight(left, right) {
55
104
  return (index_9.TypeGuard.TUnknown(left) ? ExtendsResult.False :
56
105
  index_9.TypeGuard.TAny(left) ? ExtendsResult.Union :
57
106
  index_9.TypeGuard.TNever(left) ? ExtendsResult.True :
58
107
  ExtendsResult.False);
59
108
  }
109
+ // prettier-ignore
60
110
  function TArray(left, right) {
61
111
  return (index_9.TypeGuard.TObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True :
62
112
  IsStructuralRight(right) ? StructuralRight(left, right) :
63
113
  !index_9.TypeGuard.TArray(right) ? ExtendsResult.False :
64
114
  IntoBooleanResult(Visit(left.items, right.items)));
65
115
  }
116
+ // ------------------------------------------------------------------
117
+ // AsyncIterator
118
+ // ------------------------------------------------------------------
119
+ // prettier-ignore
66
120
  function TAsyncIterator(left, right) {
67
121
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
68
122
  !index_9.TypeGuard.TAsyncIterator(right) ? ExtendsResult.False :
69
123
  IntoBooleanResult(Visit(left.items, right.items)));
70
124
  }
125
+ // ------------------------------------------------------------------
126
+ // BigInt
127
+ // ------------------------------------------------------------------
128
+ // prettier-ignore
71
129
  function TBigInt(left, right) {
72
130
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
73
131
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -75,11 +133,16 @@ function TBigInt(left, right) {
75
133
  index_9.TypeGuard.TBigInt(right) ? ExtendsResult.True :
76
134
  ExtendsResult.False);
77
135
  }
136
+ // ------------------------------------------------------------------
137
+ // Boolean
138
+ // ------------------------------------------------------------------
139
+ // prettier-ignore
78
140
  function TBooleanRight(left, right) {
79
141
  return (index_9.TypeGuard.TLiteralBoolean(left) ? ExtendsResult.True :
80
142
  index_9.TypeGuard.TBoolean(left) ? ExtendsResult.True :
81
143
  ExtendsResult.False);
82
144
  }
145
+ // prettier-ignore
83
146
  function TBoolean(left, right) {
84
147
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
85
148
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -87,6 +150,10 @@ function TBoolean(left, right) {
87
150
  index_9.TypeGuard.TBoolean(right) ? ExtendsResult.True :
88
151
  ExtendsResult.False);
89
152
  }
153
+ // ------------------------------------------------------------------
154
+ // Constructor
155
+ // ------------------------------------------------------------------
156
+ // prettier-ignore
90
157
  function TConstructor(left, right) {
91
158
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
92
159
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -95,6 +162,10 @@ function TConstructor(left, right) {
95
162
  (!left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False :
96
163
  IntoBooleanResult(Visit(left.returns, right.returns)));
97
164
  }
165
+ // ------------------------------------------------------------------
166
+ // Date
167
+ // ------------------------------------------------------------------
168
+ // prettier-ignore
98
169
  function TDate(left, right) {
99
170
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
100
171
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -102,6 +173,10 @@ function TDate(left, right) {
102
173
  index_9.TypeGuard.TDate(right) ? ExtendsResult.True :
103
174
  ExtendsResult.False);
104
175
  }
176
+ // ------------------------------------------------------------------
177
+ // Function
178
+ // ------------------------------------------------------------------
179
+ // prettier-ignore
105
180
  function TFunction(left, right) {
106
181
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
107
182
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -110,11 +185,16 @@ function TFunction(left, right) {
110
185
  (!left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False :
111
186
  IntoBooleanResult(Visit(left.returns, right.returns)));
112
187
  }
188
+ // ------------------------------------------------------------------
189
+ // Integer
190
+ // ------------------------------------------------------------------
191
+ // prettier-ignore
113
192
  function TIntegerRight(left, right) {
114
193
  return (index_9.TypeGuard.TLiteral(left) && index_9.ValueGuard.IsNumber(left.const) ? ExtendsResult.True :
115
194
  index_9.TypeGuard.TNumber(left) || index_9.TypeGuard.TInteger(left) ? ExtendsResult.True :
116
195
  ExtendsResult.False);
117
196
  }
197
+ // prettier-ignore
118
198
  function TInteger(left, right) {
119
199
  return (index_9.TypeGuard.TInteger(right) || index_9.TypeGuard.TNumber(right) ? ExtendsResult.True :
120
200
  IsStructuralRight(right) ? StructuralRight(left, right) :
@@ -122,21 +202,34 @@ function TInteger(left, right) {
122
202
  index_9.TypeGuard.TRecord(right) ? TRecordRight(left, right) :
123
203
  ExtendsResult.False);
124
204
  }
205
+ // ------------------------------------------------------------------
206
+ // Intersect
207
+ // ------------------------------------------------------------------
208
+ // prettier-ignore
125
209
  function TIntersectRight(left, right) {
126
210
  return right.allOf.every((schema) => Visit(left, schema) === ExtendsResult.True)
127
211
  ? ExtendsResult.True
128
212
  : ExtendsResult.False;
129
213
  }
214
+ // prettier-ignore
130
215
  function TIntersect(left, right) {
131
216
  return left.allOf.some((schema) => Visit(schema, right) === ExtendsResult.True)
132
217
  ? ExtendsResult.True
133
218
  : ExtendsResult.False;
134
219
  }
220
+ // ------------------------------------------------------------------
221
+ // Iterator
222
+ // ------------------------------------------------------------------
223
+ // prettier-ignore
135
224
  function TIterator(left, right) {
136
225
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
137
226
  !index_9.TypeGuard.TIterator(right) ? ExtendsResult.False :
138
227
  IntoBooleanResult(Visit(left.items, right.items)));
139
228
  }
229
+ // ------------------------------------------------------------------
230
+ // Literal
231
+ // ------------------------------------------------------------------
232
+ // prettier-ignore
140
233
  function TLiteral(left, right) {
141
234
  return (index_9.TypeGuard.TLiteral(right) && right.const === left.const ? ExtendsResult.True :
142
235
  IsStructuralRight(right) ? StructuralRight(left, right) :
@@ -148,12 +241,21 @@ function TLiteral(left, right) {
148
241
  index_9.TypeGuard.TBoolean(right) ? TBooleanRight(left, right) :
149
242
  ExtendsResult.False);
150
243
  }
244
+ // ------------------------------------------------------------------
245
+ // Never
246
+ // ------------------------------------------------------------------
247
+ // prettier-ignore
151
248
  function TNeverRight(left, right) {
152
249
  return ExtendsResult.False;
153
250
  }
251
+ // prettier-ignore
154
252
  function TNever(left, right) {
155
253
  return ExtendsResult.True;
156
254
  }
255
+ // ------------------------------------------------------------------
256
+ // Not
257
+ // ------------------------------------------------------------------
258
+ // prettier-ignore
157
259
  function UnwrapTNot(schema) {
158
260
  let [current, depth] = [schema, 0];
159
261
  while (true) {
@@ -164,11 +266,20 @@ function UnwrapTNot(schema) {
164
266
  }
165
267
  return depth % 2 === 0 ? current : (0, index_5.Unknown)();
166
268
  }
269
+ // prettier-ignore
167
270
  function TNot(left, right) {
271
+ // TypeScript has no concept of negated types, and attempts to correctly check the negated
272
+ // type at runtime would put TypeBox at odds with TypeScripts ability to statically infer
273
+ // the type. Instead we unwrap to either unknown or T and continue evaluating.
274
+ // prettier-ignore
168
275
  return (index_9.TypeGuard.TNot(left) ? Visit(UnwrapTNot(left), right) :
169
276
  index_9.TypeGuard.TNot(right) ? Visit(left, UnwrapTNot(right)) :
170
277
  Throw('Invalid fallthrough for Not'));
171
278
  }
279
+ // ------------------------------------------------------------------
280
+ // Null
281
+ // ------------------------------------------------------------------
282
+ // prettier-ignore
172
283
  function TNull(left, right) {
173
284
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
174
285
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -176,11 +287,16 @@ function TNull(left, right) {
176
287
  index_9.TypeGuard.TNull(right) ? ExtendsResult.True :
177
288
  ExtendsResult.False);
178
289
  }
290
+ // ------------------------------------------------------------------
291
+ // Number
292
+ // ------------------------------------------------------------------
293
+ // prettier-ignore
179
294
  function TNumberRight(left, right) {
180
295
  return (index_9.TypeGuard.TLiteralNumber(left) ? ExtendsResult.True :
181
296
  index_9.TypeGuard.TNumber(left) || index_9.TypeGuard.TInteger(left) ? ExtendsResult.True :
182
297
  ExtendsResult.False);
183
298
  }
299
+ // prettier-ignore
184
300
  function TNumber(left, right) {
185
301
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
186
302
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -188,52 +304,72 @@ function TNumber(left, right) {
188
304
  index_9.TypeGuard.TInteger(right) || index_9.TypeGuard.TNumber(right) ? ExtendsResult.True :
189
305
  ExtendsResult.False);
190
306
  }
307
+ // ------------------------------------------------------------------
308
+ // Object
309
+ // ------------------------------------------------------------------
310
+ // prettier-ignore
191
311
  function IsObjectPropertyCount(schema, count) {
192
312
  return Object.getOwnPropertyNames(schema.properties).length === count;
193
313
  }
314
+ // prettier-ignore
194
315
  function IsObjectStringLike(schema) {
195
316
  return IsObjectArrayLike(schema);
196
317
  }
318
+ // prettier-ignore
197
319
  function IsObjectSymbolLike(schema) {
198
320
  return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'description' in schema.properties && index_9.TypeGuard.TUnion(schema.properties.description) && schema.properties.description.anyOf.length === 2 && ((index_9.TypeGuard.TString(schema.properties.description.anyOf[0]) &&
199
321
  index_9.TypeGuard.TUndefined(schema.properties.description.anyOf[1])) || (index_9.TypeGuard.TString(schema.properties.description.anyOf[1]) &&
200
322
  index_9.TypeGuard.TUndefined(schema.properties.description.anyOf[0]))));
201
323
  }
324
+ // prettier-ignore
202
325
  function IsObjectNumberLike(schema) {
203
326
  return IsObjectPropertyCount(schema, 0);
204
327
  }
328
+ // prettier-ignore
205
329
  function IsObjectBooleanLike(schema) {
206
330
  return IsObjectPropertyCount(schema, 0);
207
331
  }
332
+ // prettier-ignore
208
333
  function IsObjectBigIntLike(schema) {
209
334
  return IsObjectPropertyCount(schema, 0);
210
335
  }
336
+ // prettier-ignore
211
337
  function IsObjectDateLike(schema) {
212
338
  return IsObjectPropertyCount(schema, 0);
213
339
  }
340
+ // prettier-ignore
214
341
  function IsObjectUint8ArrayLike(schema) {
215
342
  return IsObjectArrayLike(schema);
216
343
  }
344
+ // prettier-ignore
217
345
  function IsObjectFunctionLike(schema) {
218
346
  const length = (0, index_3.Number)();
219
347
  return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(Visit(schema.properties['length'], length)) === ExtendsResult.True);
220
348
  }
349
+ // prettier-ignore
221
350
  function IsObjectConstructorLike(schema) {
222
351
  return IsObjectPropertyCount(schema, 0);
223
352
  }
353
+ // prettier-ignore
224
354
  function IsObjectArrayLike(schema) {
225
355
  const length = (0, index_3.Number)();
226
356
  return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(Visit(schema.properties['length'], length)) === ExtendsResult.True);
227
357
  }
358
+ // prettier-ignore
228
359
  function IsObjectPromiseLike(schema) {
229
360
  const then = (0, index_2.Function)([(0, index_1.Any)()], (0, index_1.Any)());
230
361
  return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'then' in schema.properties && IntoBooleanResult(Visit(schema.properties['then'], then)) === ExtendsResult.True);
231
362
  }
363
+ // ------------------------------------------------------------------
364
+ // Property
365
+ // ------------------------------------------------------------------
366
+ // prettier-ignore
232
367
  function Property(left, right) {
233
368
  return (Visit(left, right) === ExtendsResult.False ? ExtendsResult.False :
234
369
  index_9.TypeGuard.TOptional(left) && !index_9.TypeGuard.TOptional(right) ? ExtendsResult.False :
235
370
  ExtendsResult.True);
236
371
  }
372
+ // prettier-ignore
237
373
  function TObjectRight(left, right) {
238
374
  return (index_9.TypeGuard.TUnknown(left) ? ExtendsResult.False :
239
375
  index_9.TypeGuard.TAny(left) ? ExtendsResult.Union : (index_9.TypeGuard.TNever(left) ||
@@ -252,6 +388,8 @@ function TObjectRight(left, right) {
252
388
  (index_9.TypeGuard.TConstructor(left) && IsObjectConstructorLike(right)) ||
253
389
  (index_9.TypeGuard.TFunction(left) && IsObjectFunctionLike(right))) ? ExtendsResult.True :
254
390
  (index_9.TypeGuard.TRecord(left) && index_9.TypeGuard.TString(RecordKey(left))) ? (() => {
391
+ // When expressing a Record with literal key values, the Record is converted into a Object with
392
+ // the Hint assigned as `Record`. This is used to invert the extends logic.
255
393
  return right[index_8.Hint] === 'Record' ? ExtendsResult.True : ExtendsResult.False;
256
394
  })() :
257
395
  (index_9.TypeGuard.TRecord(left) && index_9.TypeGuard.TNumber(RecordKey(left))) ? (() => {
@@ -259,6 +397,7 @@ function TObjectRight(left, right) {
259
397
  })() :
260
398
  ExtendsResult.False);
261
399
  }
400
+ // prettier-ignore
262
401
  function TObject(left, right) {
263
402
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
264
403
  index_9.TypeGuard.TRecord(right) ? TRecordRight(left, right) :
@@ -278,22 +417,32 @@ function TObject(left, right) {
278
417
  return ExtendsResult.True;
279
418
  })());
280
419
  }
420
+ // ------------------------------------------------------------------
421
+ // Promise
422
+ // ------------------------------------------------------------------
423
+ // prettier-ignore
281
424
  function TPromise(left, right) {
282
425
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
283
426
  index_9.TypeGuard.TObject(right) && IsObjectPromiseLike(right) ? ExtendsResult.True :
284
427
  !index_9.TypeGuard.TPromise(right) ? ExtendsResult.False :
285
428
  IntoBooleanResult(Visit(left.item, right.item)));
286
429
  }
430
+ // ------------------------------------------------------------------
431
+ // Record
432
+ // ------------------------------------------------------------------
433
+ // prettier-ignore
287
434
  function RecordKey(schema) {
288
435
  return (index_7.PatternNumberExact in schema.patternProperties ? (0, index_3.Number)() :
289
436
  index_7.PatternStringExact in schema.patternProperties ? (0, index_4.String)() :
290
437
  Throw('Unknown record key pattern'));
291
438
  }
439
+ // prettier-ignore
292
440
  function RecordValue(schema) {
293
441
  return (index_7.PatternNumberExact in schema.patternProperties ? schema.patternProperties[index_7.PatternNumberExact] :
294
442
  index_7.PatternStringExact in schema.patternProperties ? schema.patternProperties[index_7.PatternStringExact] :
295
443
  Throw('Unable to get record value schema'));
296
444
  }
445
+ // prettier-ignore
297
446
  function TRecordRight(left, right) {
298
447
  const [Key, Value] = [RecordKey(right), RecordValue(right)];
299
448
  return ((index_9.TypeGuard.TLiteralString(left) && index_9.TypeGuard.TNumber(Key) && IntoBooleanResult(Visit(left, Value)) === ExtendsResult.True) ? ExtendsResult.True :
@@ -310,17 +459,23 @@ function TRecordRight(left, right) {
310
459
  })() :
311
460
  ExtendsResult.False);
312
461
  }
462
+ // prettier-ignore
313
463
  function TRecord(left, right) {
314
464
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
315
465
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
316
466
  !index_9.TypeGuard.TRecord(right) ? ExtendsResult.False :
317
467
  Visit(RecordValue(left), RecordValue(right)));
318
468
  }
469
+ // ------------------------------------------------------------------
470
+ // String
471
+ // ------------------------------------------------------------------
472
+ // prettier-ignore
319
473
  function TStringRight(left, right) {
320
474
  return (index_9.TypeGuard.TLiteral(left) && index_9.ValueGuard.IsString(left.const) ? ExtendsResult.True :
321
475
  index_9.TypeGuard.TString(left) ? ExtendsResult.True :
322
476
  ExtendsResult.False);
323
477
  }
478
+ // prettier-ignore
324
479
  function TString(left, right) {
325
480
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
326
481
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -328,6 +483,10 @@ function TString(left, right) {
328
483
  index_9.TypeGuard.TString(right) ? ExtendsResult.True :
329
484
  ExtendsResult.False);
330
485
  }
486
+ // ------------------------------------------------------------------
487
+ // Symbol
488
+ // ------------------------------------------------------------------
489
+ // prettier-ignore
331
490
  function TSymbol(left, right) {
332
491
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
333
492
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -335,22 +494,35 @@ function TSymbol(left, right) {
335
494
  index_9.TypeGuard.TSymbol(right) ? ExtendsResult.True :
336
495
  ExtendsResult.False);
337
496
  }
497
+ // ------------------------------------------------------------------
498
+ // TemplateLiteral
499
+ // ------------------------------------------------------------------
500
+ // prettier-ignore
338
501
  function TTemplateLiteral(left, right) {
502
+ // TemplateLiteral types are resolved to either unions for finite expressions or string
503
+ // for infinite expressions. Here we call to TemplateLiteralResolver to resolve for
504
+ // either type and continue evaluating.
339
505
  return (index_9.TypeGuard.TTemplateLiteral(left) ? Visit((0, index_6.TemplateLiteralToUnion)(left), right) :
340
506
  index_9.TypeGuard.TTemplateLiteral(right) ? Visit(left, (0, index_6.TemplateLiteralToUnion)(right)) :
341
507
  Throw('Invalid fallthrough for TemplateLiteral'));
342
508
  }
509
+ // ------------------------------------------------------------------
510
+ // Tuple
511
+ // ------------------------------------------------------------------
512
+ // prettier-ignore
343
513
  function IsArrayOfTuple(left, right) {
344
514
  return (index_9.TypeGuard.TArray(right) &&
345
515
  left.items !== undefined &&
346
516
  left.items.every((schema) => Visit(schema, right.items) === ExtendsResult.True));
347
517
  }
518
+ // prettier-ignore
348
519
  function TTupleRight(left, right) {
349
520
  return (index_9.TypeGuard.TNever(left) ? ExtendsResult.True :
350
521
  index_9.TypeGuard.TUnknown(left) ? ExtendsResult.False :
351
522
  index_9.TypeGuard.TAny(left) ? ExtendsResult.Union :
352
523
  ExtendsResult.False);
353
524
  }
525
+ // prettier-ignore
354
526
  function TTuple(left, right) {
355
527
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
356
528
  index_9.TypeGuard.TObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True :
@@ -361,6 +533,10 @@ function TTuple(left, right) {
361
533
  left.items.every((schema, index) => Visit(schema, right.items[index]) === ExtendsResult.True) ? ExtendsResult.True :
362
534
  ExtendsResult.False);
363
535
  }
536
+ // ------------------------------------------------------------------
537
+ // Uint8Array
538
+ // ------------------------------------------------------------------
539
+ // prettier-ignore
364
540
  function TUint8Array(left, right) {
365
541
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
366
542
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -368,6 +544,10 @@ function TUint8Array(left, right) {
368
544
  index_9.TypeGuard.TUint8Array(right) ? ExtendsResult.True :
369
545
  ExtendsResult.False);
370
546
  }
547
+ // ------------------------------------------------------------------
548
+ // Undefined
549
+ // ------------------------------------------------------------------
550
+ // prettier-ignore
371
551
  function TUndefined(left, right) {
372
552
  return (IsStructuralRight(right) ? StructuralRight(left, right) :
373
553
  index_9.TypeGuard.TObject(right) ? TObjectRight(left, right) :
@@ -376,19 +556,29 @@ function TUndefined(left, right) {
376
556
  index_9.TypeGuard.TUndefined(right) ? ExtendsResult.True :
377
557
  ExtendsResult.False);
378
558
  }
559
+ // ------------------------------------------------------------------
560
+ // Union
561
+ // ------------------------------------------------------------------
562
+ // prettier-ignore
379
563
  function TUnionRight(left, right) {
380
564
  return right.anyOf.some((schema) => Visit(left, schema) === ExtendsResult.True)
381
565
  ? ExtendsResult.True
382
566
  : ExtendsResult.False;
383
567
  }
568
+ // prettier-ignore
384
569
  function TUnion(left, right) {
385
570
  return left.anyOf.every((schema) => Visit(schema, right) === ExtendsResult.True)
386
571
  ? ExtendsResult.True
387
572
  : ExtendsResult.False;
388
573
  }
574
+ // ------------------------------------------------------------------
575
+ // Unknown
576
+ // ------------------------------------------------------------------
577
+ // prettier-ignore
389
578
  function TUnknownRight(left, right) {
390
579
  return ExtendsResult.True;
391
580
  }
581
+ // prettier-ignore
392
582
  function TUnknown(left, right) {
393
583
  return (index_9.TypeGuard.TNever(right) ? TNeverRight(left, right) :
394
584
  index_9.TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :
@@ -404,11 +594,16 @@ function TUnknown(left, right) {
404
594
  index_9.TypeGuard.TUnknown(right) ? ExtendsResult.True :
405
595
  ExtendsResult.False);
406
596
  }
597
+ // ------------------------------------------------------------------
598
+ // Void
599
+ // ------------------------------------------------------------------
600
+ // prettier-ignore
407
601
  function VoidRight(left, right) {
408
602
  return (index_9.TypeGuard.TUndefined(left) ? ExtendsResult.True :
409
603
  index_9.TypeGuard.TUndefined(left) ? ExtendsResult.True :
410
604
  ExtendsResult.False);
411
605
  }
606
+ // prettier-ignore
412
607
  function TVoid(left, right) {
413
608
  return (index_9.TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :
414
609
  index_9.TypeGuard.TUnion(right) ? TUnionRight(left, right) :
@@ -418,9 +613,13 @@ function TVoid(left, right) {
418
613
  index_9.TypeGuard.TVoid(right) ? ExtendsResult.True :
419
614
  ExtendsResult.False);
420
615
  }
616
+ // prettier-ignore
421
617
  function Visit(left, right) {
422
- return ((index_9.TypeGuard.TTemplateLiteral(left) || index_9.TypeGuard.TTemplateLiteral(right)) ? TTemplateLiteral(left, right) :
618
+ return (
619
+ // resolvable
620
+ (index_9.TypeGuard.TTemplateLiteral(left) || index_9.TypeGuard.TTemplateLiteral(right)) ? TTemplateLiteral(left, right) :
423
621
  (index_9.TypeGuard.TNot(left) || index_9.TypeGuard.TNot(right)) ? TNot(left, right) :
622
+ // standard
424
623
  index_9.TypeGuard.TAny(left) ? TAny(left, right) :
425
624
  index_9.TypeGuard.TArray(left) ? TArray(left, right) :
426
625
  index_9.TypeGuard.TBigInt(left) ? TBigInt(left, right) :
@@ -1,23 +1,54 @@
1
1
  "use strict";
2
+ /*--------------------------------------------------------------------------
3
+
4
+ @sinclair/typebox/type
5
+
6
+ The MIT License (MIT)
7
+
8
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in
18
+ all copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
+ THE SOFTWARE.
27
+
28
+ ---------------------------------------------------------------------------*/
2
29
  Object.defineProperty(exports, "__esModule", { value: true });
3
30
  exports.ExtendsFromMappedKey = void 0;
4
31
  const index_1 = require("../mapped/index");
5
32
  const index_2 = require("../literal/index");
6
33
  const extends_1 = require("./extends");
34
+ // prettier-ignore
7
35
  function FromPropertyKey(K, U, L, R, options) {
8
36
  return {
9
37
  [K]: (0, extends_1.Extends)((0, index_2.Literal)(K), U, L, R, options)
10
38
  };
11
39
  }
40
+ // prettier-ignore
12
41
  function FromPropertyKeys(K, U, L, R, options) {
13
42
  const [LK, ...RK] = K;
14
43
  return (K.length > 0
15
44
  ? { ...FromPropertyKey(LK, U, L, R, options), ...FromPropertyKeys(RK, U, L, R, options) }
16
45
  : {});
17
46
  }
47
+ // prettier-ignore
18
48
  function FromMappedKey(K, U, L, R, options) {
19
49
  return FromPropertyKeys(K.keys, U, L, R, options);
20
50
  }
51
+ // prettier-ignore
21
52
  function ExtendsFromMappedKey(T, U, L, R, options) {
22
53
  const P = FromMappedKey(T, U, L, R, options);
23
54
  return (0, index_1.MappedResult)(P);
@@ -1,16 +1,46 @@
1
1
  "use strict";
2
+ /*--------------------------------------------------------------------------
3
+
4
+ @sinclair/typebox/type
5
+
6
+ The MIT License (MIT)
7
+
8
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in
18
+ all copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
+ THE SOFTWARE.
27
+
28
+ ---------------------------------------------------------------------------*/
2
29
  Object.defineProperty(exports, "__esModule", { value: true });
3
30
  exports.ExtendsFromMappedResult = void 0;
4
31
  const index_1 = require("../mapped/index");
5
32
  const extends_1 = require("./extends");
33
+ // prettier-ignore
6
34
  function FromProperties(K, U, L, R, options) {
7
35
  return globalThis.Object.getOwnPropertyNames(K).reduce((Acc, K2) => {
8
36
  return { ...Acc, [K2]: (0, extends_1.Extends)(K[K2], U, L, R, options) };
9
37
  }, {});
10
38
  }
39
+ // prettier-ignore
11
40
  function FromMappedResult(K, U, L, R, options) {
12
41
  return FromProperties(K.properties, U, L, R, options);
13
42
  }
43
+ // prettier-ignore
14
44
  function ExtendsFromMappedResult(T, U, L, R, options) {
15
45
  const P = FromMappedResult(T, U, L, R, options);
16
46
  return (0, index_1.MappedResult)(P);
@@ -1,2 +1,3 @@
1
1
  import type { TSchema } from '../schema/index';
2
+ /** Fast undefined check used for properties of type undefined */
2
3
  export declare function ExtendsUndefinedCheck(schema: TSchema): boolean;