@sinclair/typebox 0.32.0-dev-16 → 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 (664) 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.mjs +36 -0
  10. package/build/import/system/index.mjs +27 -0
  11. package/build/import/system/policy.d.mts +10 -0
  12. package/build/import/system/policy.mjs +40 -0
  13. package/build/import/system/system.d.mts +3 -0
  14. package/build/import/system/system.mjs +36 -0
  15. package/build/import/type/any/any.d.mts +1 -0
  16. package/build/import/type/any/any.mjs +28 -0
  17. package/build/import/type/any/index.mjs +27 -0
  18. package/build/import/type/array/array.d.mts +7 -0
  19. package/build/import/type/array/array.mjs +28 -0
  20. package/build/import/type/array/index.mjs +27 -0
  21. package/build/import/type/async-iterator/async-iterator.d.mts +1 -0
  22. package/build/import/type/async-iterator/async-iterator.mjs +28 -0
  23. package/build/import/type/async-iterator/index.mjs +27 -0
  24. package/build/import/type/awaited/awaited.d.mts +1 -0
  25. package/build/import/type/awaited/awaited.mjs +37 -0
  26. package/build/import/type/awaited/index.mjs +27 -0
  27. package/build/import/type/bigint/bigint.d.mts +1 -0
  28. package/build/import/type/bigint/bigint.mjs +28 -0
  29. package/build/import/type/bigint/index.mjs +27 -0
  30. package/build/import/type/boolean/boolean.d.mts +1 -0
  31. package/build/import/type/boolean/boolean.mjs +28 -0
  32. package/build/import/type/boolean/index.mjs +27 -0
  33. package/build/import/type/clone/index.mjs +27 -0
  34. package/build/import/type/clone/type.d.mts +2 -0
  35. package/build/import/type/clone/type.mjs +29 -0
  36. package/build/import/type/clone/value.d.mts +1 -0
  37. package/build/import/type/clone/value.mjs +29 -0
  38. package/build/import/type/composite/composite.d.mts +1 -0
  39. package/build/import/type/composite/composite.mjs +28 -0
  40. package/build/import/type/composite/index.mjs +27 -0
  41. package/build/import/type/const/const.d.mts +2 -1
  42. package/build/import/type/const/const.mjs +32 -1
  43. package/build/import/type/const/index.mjs +27 -0
  44. package/build/import/type/constructor/constructor.d.mts +1 -0
  45. package/build/import/type/constructor/constructor.mjs +28 -0
  46. package/build/import/type/constructor/index.mjs +27 -0
  47. package/build/import/type/constructor-parameters/constructor-parameters.d.mts +1 -0
  48. package/build/import/type/constructor-parameters/constructor-parameters.mjs +28 -0
  49. package/build/import/type/constructor-parameters/index.mjs +27 -0
  50. package/build/import/type/date/date.d.mts +6 -0
  51. package/build/import/type/date/date.mjs +28 -0
  52. package/build/import/type/date/index.mjs +27 -0
  53. package/build/import/type/deref/deref.d.mts +1 -0
  54. package/build/import/type/deref/deref.mjs +45 -0
  55. package/build/import/type/deref/index.mjs +27 -0
  56. package/build/import/type/discard/discard.mjs +27 -0
  57. package/build/import/type/discard/index.mjs +27 -0
  58. package/build/import/type/enum/enum.d.mts +1 -0
  59. package/build/import/type/enum/enum.mjs +28 -0
  60. package/build/import/type/enum/index.mjs +27 -0
  61. package/build/import/type/exclude/exclude-from-mapped-result.mjs +30 -0
  62. package/build/import/type/exclude/exclude.d.mts +2 -0
  63. package/build/import/type/exclude/exclude.mjs +30 -0
  64. package/build/import/type/exclude/index.mjs +27 -0
  65. package/build/import/type/extends/extends-check.mjs +200 -1
  66. package/build/import/type/extends/extends-from-mapped-key.mjs +31 -0
  67. package/build/import/type/extends/extends-from-mapped-result.mjs +30 -0
  68. package/build/import/type/extends/extends-undefined.d.mts +1 -0
  69. package/build/import/type/extends/extends-undefined.mjs +30 -0
  70. package/build/import/type/extends/extends.d.mts +3 -0
  71. package/build/import/type/extends/extends.mjs +34 -0
  72. package/build/import/type/extends/index.mjs +27 -0
  73. package/build/import/type/extract/extract-from-mapped-result.mjs +30 -0
  74. package/build/import/type/extract/extract.d.mts +2 -0
  75. package/build/import/type/extract/extract.mjs +30 -0
  76. package/build/import/type/extract/index.mjs +27 -0
  77. package/build/import/type/function/function.d.mts +1 -0
  78. package/build/import/type/function/function.mjs +28 -0
  79. package/build/import/type/function/index.mjs +27 -0
  80. package/build/import/type/guard/index.mjs +27 -0
  81. package/build/import/type/guard/type.d.mts +46 -0
  82. package/build/import/type/guard/type.mjs +111 -1
  83. package/build/import/type/guard/value.d.mts +14 -0
  84. package/build/import/type/guard/value.mjs +41 -0
  85. package/build/import/type/helpers/helpers.d.mts +1 -0
  86. package/build/import/type/helpers/helpers.mjs +28 -0
  87. package/build/import/type/helpers/index.mjs +27 -0
  88. package/build/import/type/index.mjs +27 -0
  89. package/build/import/type/indexed/index.mjs +27 -0
  90. package/build/import/type/indexed/indexed-from-mapped-key.mjs +35 -1
  91. package/build/import/type/indexed/indexed-property-keys.d.mts +1 -0
  92. package/build/import/type/indexed/indexed-property-keys.mjs +36 -0
  93. package/build/import/type/indexed/indexed-result.mjs +42 -0
  94. package/build/import/type/indexed/indexed.d.mts +3 -0
  95. package/build/import/type/indexed/indexed.mjs +33 -0
  96. package/build/import/type/instance-type/index.mjs +27 -0
  97. package/build/import/type/instance-type/instance-type.d.mts +1 -0
  98. package/build/import/type/instance-type/instance-type.mjs +28 -0
  99. package/build/import/type/integer/index.mjs +27 -0
  100. package/build/import/type/integer/integer.d.mts +1 -0
  101. package/build/import/type/integer/integer.mjs +28 -0
  102. package/build/import/type/intersect/index.mjs +27 -0
  103. package/build/import/type/intersect/intersect-create.mjs +35 -0
  104. package/build/import/type/intersect/intersect-evaluated.d.mts +1 -0
  105. package/build/import/type/intersect/intersect-evaluated.mjs +36 -0
  106. package/build/import/type/intersect/intersect-type.mjs +27 -0
  107. package/build/import/type/intersect/intersect.d.mts +1 -0
  108. package/build/import/type/intersect/intersect.mjs +32 -0
  109. package/build/import/type/intrinsic/capitalize.d.mts +1 -0
  110. package/build/import/type/intrinsic/capitalize.mjs +28 -0
  111. package/build/import/type/intrinsic/index.mjs +27 -0
  112. package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +31 -0
  113. package/build/import/type/intrinsic/intrinsic.d.mts +2 -0
  114. package/build/import/type/intrinsic/intrinsic.mjs +43 -1
  115. package/build/import/type/intrinsic/lowercase.d.mts +1 -0
  116. package/build/import/type/intrinsic/lowercase.mjs +28 -0
  117. package/build/import/type/intrinsic/uncapitalize.d.mts +1 -0
  118. package/build/import/type/intrinsic/uncapitalize.mjs +28 -0
  119. package/build/import/type/intrinsic/uppercase.d.mts +1 -0
  120. package/build/import/type/intrinsic/uppercase.mjs +28 -0
  121. package/build/import/type/iterator/index.mjs +27 -0
  122. package/build/import/type/iterator/iterator.d.mts +1 -0
  123. package/build/import/type/iterator/iterator.mjs +28 -0
  124. package/build/import/type/keyof/index.mjs +27 -0
  125. package/build/import/type/keyof/keyof-from-mapped-result.mjs +30 -0
  126. package/build/import/type/keyof/keyof-property-keys.d.mts +2 -0
  127. package/build/import/type/keyof/keyof-property-keys.mjs +47 -0
  128. package/build/import/type/keyof/keyof.d.mts +2 -0
  129. package/build/import/type/keyof/keyof.mjs +33 -0
  130. package/build/import/type/literal/index.mjs +27 -0
  131. package/build/import/type/literal/literal.d.mts +1 -0
  132. package/build/import/type/literal/literal.mjs +28 -0
  133. package/build/import/type/mapped/index.mjs +27 -0
  134. package/build/import/type/mapped/mapped-key.mjs +28 -0
  135. package/build/import/type/mapped/mapped-result.mjs +28 -0
  136. package/build/import/type/mapped/mapped.d.mts +2 -0
  137. package/build/import/type/mapped/mapped.mjs +46 -1
  138. package/build/import/type/modifiers/index.mjs +27 -0
  139. package/build/import/type/modifiers/modifiers.mjs +37 -0
  140. package/build/import/type/never/index.mjs +27 -0
  141. package/build/import/type/never/never.d.mts +1 -0
  142. package/build/import/type/never/never.mjs +28 -0
  143. package/build/import/type/not/index.mjs +27 -0
  144. package/build/import/type/not/not.d.mts +1 -0
  145. package/build/import/type/not/not.mjs +28 -0
  146. package/build/import/type/null/index.mjs +27 -0
  147. package/build/import/type/null/null.d.mts +1 -0
  148. package/build/import/type/null/null.mjs +28 -0
  149. package/build/import/type/number/index.mjs +27 -0
  150. package/build/import/type/number/number.d.mts +1 -0
  151. package/build/import/type/number/number.mjs +28 -0
  152. package/build/import/type/object/index.mjs +27 -0
  153. package/build/import/type/object/object.d.mts +5 -0
  154. package/build/import/type/object/object.mjs +33 -0
  155. package/build/import/type/omit/index.mjs +27 -0
  156. package/build/import/type/omit/omit-from-mapped-key.mjs +31 -0
  157. package/build/import/type/omit/omit.d.mts +3 -0
  158. package/build/import/type/omit/omit.mjs +39 -0
  159. package/build/import/type/operators/index.mjs +27 -0
  160. package/build/import/type/operators/operators.d.mts +8 -0
  161. package/build/import/type/operators/operators.mjs +42 -0
  162. package/build/import/type/optional/index.mjs +27 -0
  163. package/build/import/type/optional/optional.d.mts +1 -0
  164. package/build/import/type/optional/optional.mjs +28 -0
  165. package/build/import/type/parameters/index.mjs +27 -0
  166. package/build/import/type/parameters/parameters.d.mts +1 -0
  167. package/build/import/type/parameters/parameters.mjs +28 -0
  168. package/build/import/type/partial/index.mjs +27 -0
  169. package/build/import/type/partial/partial-from-mapped-result.mjs +30 -0
  170. package/build/import/type/partial/partial.d.mts +2 -0
  171. package/build/import/type/partial/partial.mjs +36 -0
  172. package/build/import/type/patterns/index.mjs +27 -0
  173. package/build/import/type/patterns/patterns.mjs +27 -0
  174. package/build/import/type/pick/index.mjs +27 -0
  175. package/build/import/type/pick/pick-from-mapped-key.mjs +31 -0
  176. package/build/import/type/pick/pick.d.mts +3 -0
  177. package/build/import/type/pick/pick.mjs +34 -0
  178. package/build/import/type/promise/index.mjs +27 -0
  179. package/build/import/type/promise/promise.d.mts +1 -0
  180. package/build/import/type/promise/promise.mjs +28 -0
  181. package/build/import/type/readonly/index.mjs +27 -0
  182. package/build/import/type/readonly/readonly.d.mts +1 -0
  183. package/build/import/type/readonly/readonly.mjs +28 -0
  184. package/build/import/type/readonly-optional/index.mjs +27 -0
  185. package/build/import/type/readonly-optional/readonly-optional.d.mts +1 -0
  186. package/build/import/type/readonly-optional/readonly-optional.mjs +28 -0
  187. package/build/import/type/record/index.mjs +27 -0
  188. package/build/import/type/record/record.d.mts +1 -0
  189. package/build/import/type/record/record.mjs +48 -0
  190. package/build/import/type/recursive/index.mjs +27 -0
  191. package/build/import/type/recursive/recursive.d.mts +1 -0
  192. package/build/import/type/recursive/recursive.mjs +30 -0
  193. package/build/import/type/ref/index.mjs +27 -0
  194. package/build/import/type/ref/ref.d.mts +2 -0
  195. package/build/import/type/ref/ref.mjs +28 -0
  196. package/build/import/type/regexp/index.mjs +27 -0
  197. package/build/import/type/regexp/regexp.d.mts +2 -0
  198. package/build/import/type/regexp/regexp.mjs +28 -0
  199. package/build/import/type/registry/format.d.mts +6 -0
  200. package/build/import/type/registry/format.mjs +34 -0
  201. package/build/import/type/registry/index.mjs +27 -0
  202. package/build/import/type/registry/type.d.mts +6 -0
  203. package/build/import/type/registry/type.mjs +34 -0
  204. package/build/import/type/required/index.mjs +27 -0
  205. package/build/import/type/required/required-from-mapped-result.mjs +30 -0
  206. package/build/import/type/required/required.d.mts +2 -0
  207. package/build/import/type/required/required.mjs +36 -0
  208. package/build/import/type/rest/index.mjs +27 -0
  209. package/build/import/type/rest/rest.d.mts +1 -0
  210. package/build/import/type/rest/rest.mjs +32 -0
  211. package/build/import/type/return-type/index.mjs +27 -0
  212. package/build/import/type/return-type/return-type.d.mts +1 -0
  213. package/build/import/type/return-type/return-type.mjs +28 -0
  214. package/build/import/type/schema/anyschema.mjs +27 -0
  215. package/build/import/type/schema/index.mjs +27 -0
  216. package/build/import/type/schema/schema.d.mts +7 -0
  217. package/build/import/type/schema/schema.mjs +27 -0
  218. package/build/import/type/static/index.mjs +27 -0
  219. package/build/import/type/static/static.d.mts +3 -0
  220. package/build/import/type/static/static.mjs +27 -0
  221. package/build/import/type/strict/index.mjs +27 -0
  222. package/build/import/type/strict/strict.d.mts +1 -0
  223. package/build/import/type/strict/strict.mjs +28 -0
  224. package/build/import/type/string/index.mjs +27 -0
  225. package/build/import/type/string/string.d.mts +7 -0
  226. package/build/import/type/string/string.mjs +28 -0
  227. package/build/import/type/symbol/index.mjs +27 -0
  228. package/build/import/type/symbol/symbol.d.mts +1 -0
  229. package/build/import/type/symbol/symbol.mjs +28 -0
  230. package/build/import/type/symbols/index.mjs +27 -0
  231. package/build/import/type/symbols/symbols.d.mts +5 -0
  232. package/build/import/type/symbols/symbols.mjs +32 -0
  233. package/build/import/type/template-literal/finite.mjs +37 -0
  234. package/build/import/type/template-literal/generate.mjs +37 -0
  235. package/build/import/type/template-literal/index.mjs +27 -0
  236. package/build/import/type/template-literal/parser.d.mts +2 -0
  237. package/build/import/type/template-literal/parser.mjs +44 -0
  238. package/build/import/type/template-literal/pattern.mjs +38 -0
  239. package/build/import/type/template-literal/syntax.d.mts +1 -0
  240. package/build/import/type/template-literal/syntax.mjs +35 -0
  241. package/build/import/type/template-literal/template-literal.d.mts +2 -0
  242. package/build/import/type/template-literal/template-literal.mjs +29 -0
  243. package/build/import/type/template-literal/union.d.mts +1 -0
  244. package/build/import/type/template-literal/union.mjs +31 -0
  245. package/build/import/type/transform/index.mjs +27 -0
  246. package/build/import/type/transform/transform.d.mts +1 -0
  247. package/build/import/type/transform/transform.mjs +36 -0
  248. package/build/import/type/tuple/index.mjs +27 -0
  249. package/build/import/type/tuple/tuple.d.mts +1 -0
  250. package/build/import/type/tuple/tuple.mjs +30 -0
  251. package/build/import/type/type/index.d.mts +1 -0
  252. package/build/import/type/type/index.mjs +34 -0
  253. package/build/import/type/type/javascript.d.mts +19 -0
  254. package/build/import/type/type/javascript.mjs +45 -0
  255. package/build/import/type/type/json.d.mts +62 -1
  256. package/build/import/type/type/json.mjs +82 -1
  257. package/build/import/type/type/type.mjs +30 -0
  258. package/build/import/type/uint8array/index.mjs +27 -0
  259. package/build/import/type/uint8array/uint8array.d.mts +1 -0
  260. package/build/import/type/uint8array/uint8array.mjs +28 -0
  261. package/build/import/type/undefined/index.mjs +27 -0
  262. package/build/import/type/undefined/undefined.d.mts +1 -0
  263. package/build/import/type/undefined/undefined.mjs +28 -0
  264. package/build/import/type/union/index.mjs +27 -0
  265. package/build/import/type/union/union-create.mjs +27 -0
  266. package/build/import/type/union/union-evaluated.d.mts +1 -0
  267. package/build/import/type/union/union-evaluated.mjs +37 -0
  268. package/build/import/type/union/union-type.mjs +27 -0
  269. package/build/import/type/union/union.d.mts +1 -0
  270. package/build/import/type/union/union.mjs +29 -0
  271. package/build/import/type/unknown/index.mjs +27 -0
  272. package/build/import/type/unknown/unknown.d.mts +1 -0
  273. package/build/import/type/unknown/unknown.mjs +28 -0
  274. package/build/import/type/unsafe/index.mjs +27 -0
  275. package/build/import/type/unsafe/unsafe.d.mts +1 -0
  276. package/build/import/type/unsafe/unsafe.mjs +28 -0
  277. package/build/import/type/void/index.mjs +27 -0
  278. package/build/import/type/void/void.d.mts +1 -0
  279. package/build/import/type/void/void.mjs +28 -0
  280. package/build/import/value/cast/cast.d.mts +2 -0
  281. package/build/import/value/cast/cast.mjs +55 -0
  282. package/build/import/value/cast/index.mjs +27 -0
  283. package/build/import/value/check/check.d.mts +2 -0
  284. package/build/import/value/check/check.mjs +46 -1
  285. package/build/import/value/check/index.mjs +27 -0
  286. package/build/import/value/clean/clean.d.mts +2 -0
  287. package/build/import/value/clean/clean.mjs +39 -1
  288. package/build/import/value/clean/index.mjs +27 -0
  289. package/build/import/value/clone/clone.d.mts +1 -0
  290. package/build/import/value/clone/clone.mjs +34 -0
  291. package/build/import/value/clone/index.mjs +27 -0
  292. package/build/import/value/convert/convert.d.mts +2 -0
  293. package/build/import/value/convert/convert.mjs +57 -1
  294. package/build/import/value/convert/index.mjs +27 -0
  295. package/build/import/value/create/create.d.mts +2 -0
  296. package/build/import/value/create/create.mjs +44 -0
  297. package/build/import/value/create/index.mjs +27 -0
  298. package/build/import/value/default/default.d.mts +2 -0
  299. package/build/import/value/default/default.mjs +46 -0
  300. package/build/import/value/default/index.mjs +27 -0
  301. package/build/import/value/delta/delta.mjs +42 -0
  302. package/build/import/value/delta/index.mjs +27 -0
  303. package/build/import/value/deref/deref.d.mts +1 -0
  304. package/build/import/value/deref/deref.mjs +28 -0
  305. package/build/import/value/deref/index.mjs +27 -0
  306. package/build/import/value/equal/equal.d.mts +1 -0
  307. package/build/import/value/equal/equal.mjs +34 -0
  308. package/build/import/value/equal/index.mjs +27 -0
  309. package/build/import/value/guard/guard.d.mts +20 -0
  310. package/build/import/value/guard/guard.mjs +57 -0
  311. package/build/import/value/guard/index.mjs +27 -0
  312. package/build/import/value/hash/hash.d.mts +1 -0
  313. package/build/import/value/hash/hash.mjs +46 -0
  314. package/build/import/value/hash/index.mjs +27 -0
  315. package/build/import/value/index.mjs +39 -0
  316. package/build/import/value/mutate/index.mjs +27 -0
  317. package/build/import/value/mutate/mutate.d.mts +1 -0
  318. package/build/import/value/mutate/mutate.mjs +38 -0
  319. package/build/import/value/pointer/index.mjs +27 -0
  320. package/build/import/value/pointer/pointer.d.mts +5 -0
  321. package/build/import/value/pointer/pointer.mjs +45 -0
  322. package/build/import/value/transform/decode.d.mts +5 -0
  323. package/build/import/value/transform/decode.mjs +50 -0
  324. package/build/import/value/transform/encode.d.mts +6 -0
  325. package/build/import/value/transform/encode.mjs +52 -0
  326. package/build/import/value/transform/has.d.mts +1 -0
  327. package/build/import/value/transform/has.mjs +43 -0
  328. package/build/import/value/transform/index.mjs +27 -0
  329. package/build/import/value/value/index.mjs +27 -0
  330. package/build/import/value/value/value.d.mts +24 -0
  331. package/build/import/value/value/value.mjs +42 -0
  332. package/build/require/compiler/compiler.d.ts +9 -0
  333. package/build/require/compiler/compiler.js +87 -6
  334. package/build/require/compiler/index.js +27 -0
  335. package/build/require/errors/errors.d.ts +3 -0
  336. package/build/require/errors/errors.js +55 -3
  337. package/build/require/errors/function.d.ts +3 -0
  338. package/build/require/errors/function.js +31 -0
  339. package/build/require/errors/index.js +27 -0
  340. package/build/require/index.js +36 -0
  341. package/build/require/system/index.js +27 -0
  342. package/build/require/system/policy.d.ts +10 -0
  343. package/build/require/system/policy.js +40 -0
  344. package/build/require/system/system.d.ts +3 -0
  345. package/build/require/system/system.js +36 -0
  346. package/build/require/type/any/any.d.ts +1 -0
  347. package/build/require/type/any/any.js +28 -0
  348. package/build/require/type/any/index.js +27 -0
  349. package/build/require/type/array/array.d.ts +7 -0
  350. package/build/require/type/array/array.js +28 -0
  351. package/build/require/type/array/index.js +27 -0
  352. package/build/require/type/async-iterator/async-iterator.d.ts +1 -0
  353. package/build/require/type/async-iterator/async-iterator.js +28 -0
  354. package/build/require/type/async-iterator/index.js +27 -0
  355. package/build/require/type/awaited/awaited.d.ts +1 -0
  356. package/build/require/type/awaited/awaited.js +37 -0
  357. package/build/require/type/awaited/index.js +27 -0
  358. package/build/require/type/bigint/bigint.d.ts +1 -0
  359. package/build/require/type/bigint/bigint.js +28 -0
  360. package/build/require/type/bigint/index.js +27 -0
  361. package/build/require/type/boolean/boolean.d.ts +1 -0
  362. package/build/require/type/boolean/boolean.js +28 -0
  363. package/build/require/type/boolean/index.js +27 -0
  364. package/build/require/type/clone/index.js +27 -0
  365. package/build/require/type/clone/type.d.ts +2 -0
  366. package/build/require/type/clone/type.js +29 -0
  367. package/build/require/type/clone/value.d.ts +1 -0
  368. package/build/require/type/clone/value.js +29 -0
  369. package/build/require/type/composite/composite.d.ts +1 -0
  370. package/build/require/type/composite/composite.js +28 -0
  371. package/build/require/type/composite/index.js +27 -0
  372. package/build/require/type/const/const.d.ts +2 -1
  373. package/build/require/type/const/const.js +32 -1
  374. package/build/require/type/const/index.js +27 -0
  375. package/build/require/type/constructor/constructor.d.ts +1 -0
  376. package/build/require/type/constructor/constructor.js +28 -0
  377. package/build/require/type/constructor/index.js +27 -0
  378. package/build/require/type/constructor-parameters/constructor-parameters.d.ts +1 -0
  379. package/build/require/type/constructor-parameters/constructor-parameters.js +28 -0
  380. package/build/require/type/constructor-parameters/index.js +27 -0
  381. package/build/require/type/date/date.d.ts +6 -0
  382. package/build/require/type/date/date.js +28 -0
  383. package/build/require/type/date/index.js +27 -0
  384. package/build/require/type/deref/deref.d.ts +1 -0
  385. package/build/require/type/deref/deref.js +45 -0
  386. package/build/require/type/deref/index.js +27 -0
  387. package/build/require/type/discard/discard.js +27 -0
  388. package/build/require/type/discard/index.js +27 -0
  389. package/build/require/type/enum/enum.d.ts +1 -0
  390. package/build/require/type/enum/enum.js +28 -0
  391. package/build/require/type/enum/index.js +27 -0
  392. package/build/require/type/exclude/exclude-from-mapped-result.js +30 -0
  393. package/build/require/type/exclude/exclude.d.ts +2 -0
  394. package/build/require/type/exclude/exclude.js +30 -0
  395. package/build/require/type/exclude/index.js +27 -0
  396. package/build/require/type/extends/extends-check.js +200 -1
  397. package/build/require/type/extends/extends-from-mapped-key.js +31 -0
  398. package/build/require/type/extends/extends-from-mapped-result.js +30 -0
  399. package/build/require/type/extends/extends-undefined.d.ts +1 -0
  400. package/build/require/type/extends/extends-undefined.js +30 -0
  401. package/build/require/type/extends/extends.d.ts +3 -0
  402. package/build/require/type/extends/extends.js +34 -0
  403. package/build/require/type/extends/index.js +27 -0
  404. package/build/require/type/extract/extract-from-mapped-result.js +30 -0
  405. package/build/require/type/extract/extract.d.ts +2 -0
  406. package/build/require/type/extract/extract.js +30 -0
  407. package/build/require/type/extract/index.js +27 -0
  408. package/build/require/type/function/function.d.ts +1 -0
  409. package/build/require/type/function/function.js +28 -0
  410. package/build/require/type/function/index.js +27 -0
  411. package/build/require/type/guard/index.js +27 -0
  412. package/build/require/type/guard/type.d.ts +46 -0
  413. package/build/require/type/guard/type.js +111 -1
  414. package/build/require/type/guard/value.d.ts +14 -0
  415. package/build/require/type/guard/value.js +41 -0
  416. package/build/require/type/helpers/helpers.d.ts +1 -0
  417. package/build/require/type/helpers/helpers.js +28 -0
  418. package/build/require/type/helpers/index.js +27 -0
  419. package/build/require/type/index.js +27 -0
  420. package/build/require/type/indexed/index.js +27 -0
  421. package/build/require/type/indexed/indexed-from-mapped-key.js +35 -1
  422. package/build/require/type/indexed/indexed-property-keys.d.ts +1 -0
  423. package/build/require/type/indexed/indexed-property-keys.js +36 -0
  424. package/build/require/type/indexed/indexed-result.js +42 -0
  425. package/build/require/type/indexed/indexed.d.ts +3 -0
  426. package/build/require/type/indexed/indexed.js +33 -0
  427. package/build/require/type/instance-type/index.js +27 -0
  428. package/build/require/type/instance-type/instance-type.d.ts +1 -0
  429. package/build/require/type/instance-type/instance-type.js +28 -0
  430. package/build/require/type/integer/index.js +27 -0
  431. package/build/require/type/integer/integer.d.ts +1 -0
  432. package/build/require/type/integer/integer.js +28 -0
  433. package/build/require/type/intersect/index.js +27 -0
  434. package/build/require/type/intersect/intersect-create.js +35 -0
  435. package/build/require/type/intersect/intersect-evaluated.d.ts +1 -0
  436. package/build/require/type/intersect/intersect-evaluated.js +36 -0
  437. package/build/require/type/intersect/intersect-type.js +27 -0
  438. package/build/require/type/intersect/intersect.d.ts +1 -0
  439. package/build/require/type/intersect/intersect.js +32 -0
  440. package/build/require/type/intrinsic/capitalize.d.ts +1 -0
  441. package/build/require/type/intrinsic/capitalize.js +28 -0
  442. package/build/require/type/intrinsic/index.js +27 -0
  443. package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +31 -0
  444. package/build/require/type/intrinsic/intrinsic.d.ts +2 -0
  445. package/build/require/type/intrinsic/intrinsic.js +43 -1
  446. package/build/require/type/intrinsic/lowercase.d.ts +1 -0
  447. package/build/require/type/intrinsic/lowercase.js +28 -0
  448. package/build/require/type/intrinsic/uncapitalize.d.ts +1 -0
  449. package/build/require/type/intrinsic/uncapitalize.js +28 -0
  450. package/build/require/type/intrinsic/uppercase.d.ts +1 -0
  451. package/build/require/type/intrinsic/uppercase.js +28 -0
  452. package/build/require/type/iterator/index.js +27 -0
  453. package/build/require/type/iterator/iterator.d.ts +1 -0
  454. package/build/require/type/iterator/iterator.js +28 -0
  455. package/build/require/type/keyof/index.js +27 -0
  456. package/build/require/type/keyof/keyof-from-mapped-result.js +30 -0
  457. package/build/require/type/keyof/keyof-property-keys.d.ts +2 -0
  458. package/build/require/type/keyof/keyof-property-keys.js +47 -0
  459. package/build/require/type/keyof/keyof.d.ts +2 -0
  460. package/build/require/type/keyof/keyof.js +33 -0
  461. package/build/require/type/literal/index.js +27 -0
  462. package/build/require/type/literal/literal.d.ts +1 -0
  463. package/build/require/type/literal/literal.js +28 -0
  464. package/build/require/type/mapped/index.js +27 -0
  465. package/build/require/type/mapped/mapped-key.js +28 -0
  466. package/build/require/type/mapped/mapped-result.js +28 -0
  467. package/build/require/type/mapped/mapped.d.ts +2 -0
  468. package/build/require/type/mapped/mapped.js +46 -1
  469. package/build/require/type/modifiers/index.js +27 -0
  470. package/build/require/type/modifiers/modifiers.js +37 -0
  471. package/build/require/type/never/index.js +27 -0
  472. package/build/require/type/never/never.d.ts +1 -0
  473. package/build/require/type/never/never.js +28 -0
  474. package/build/require/type/not/index.js +27 -0
  475. package/build/require/type/not/not.d.ts +1 -0
  476. package/build/require/type/not/not.js +28 -0
  477. package/build/require/type/null/index.js +27 -0
  478. package/build/require/type/null/null.d.ts +1 -0
  479. package/build/require/type/null/null.js +28 -0
  480. package/build/require/type/number/index.js +27 -0
  481. package/build/require/type/number/number.d.ts +1 -0
  482. package/build/require/type/number/number.js +28 -0
  483. package/build/require/type/object/index.js +27 -0
  484. package/build/require/type/object/object.d.ts +5 -0
  485. package/build/require/type/object/object.js +33 -0
  486. package/build/require/type/omit/index.js +27 -0
  487. package/build/require/type/omit/omit-from-mapped-key.js +31 -0
  488. package/build/require/type/omit/omit.d.ts +3 -0
  489. package/build/require/type/omit/omit.js +39 -0
  490. package/build/require/type/operators/index.js +27 -0
  491. package/build/require/type/operators/operators.d.ts +8 -0
  492. package/build/require/type/operators/operators.js +42 -0
  493. package/build/require/type/optional/index.js +27 -0
  494. package/build/require/type/optional/optional.d.ts +1 -0
  495. package/build/require/type/optional/optional.js +28 -0
  496. package/build/require/type/parameters/index.js +27 -0
  497. package/build/require/type/parameters/parameters.d.ts +1 -0
  498. package/build/require/type/parameters/parameters.js +28 -0
  499. package/build/require/type/partial/index.js +27 -0
  500. package/build/require/type/partial/partial-from-mapped-result.js +30 -0
  501. package/build/require/type/partial/partial.d.ts +2 -0
  502. package/build/require/type/partial/partial.js +36 -0
  503. package/build/require/type/patterns/index.js +27 -0
  504. package/build/require/type/patterns/patterns.js +27 -0
  505. package/build/require/type/pick/index.js +27 -0
  506. package/build/require/type/pick/pick-from-mapped-key.js +31 -0
  507. package/build/require/type/pick/pick.d.ts +3 -0
  508. package/build/require/type/pick/pick.js +34 -0
  509. package/build/require/type/promise/index.js +27 -0
  510. package/build/require/type/promise/promise.d.ts +1 -0
  511. package/build/require/type/promise/promise.js +28 -0
  512. package/build/require/type/readonly/index.js +27 -0
  513. package/build/require/type/readonly/readonly.d.ts +1 -0
  514. package/build/require/type/readonly/readonly.js +28 -0
  515. package/build/require/type/readonly-optional/index.js +27 -0
  516. package/build/require/type/readonly-optional/readonly-optional.d.ts +1 -0
  517. package/build/require/type/readonly-optional/readonly-optional.js +28 -0
  518. package/build/require/type/record/index.js +27 -0
  519. package/build/require/type/record/record.d.ts +1 -0
  520. package/build/require/type/record/record.js +48 -0
  521. package/build/require/type/recursive/index.js +27 -0
  522. package/build/require/type/recursive/recursive.d.ts +1 -0
  523. package/build/require/type/recursive/recursive.js +30 -0
  524. package/build/require/type/ref/index.js +27 -0
  525. package/build/require/type/ref/ref.d.ts +2 -0
  526. package/build/require/type/ref/ref.js +28 -0
  527. package/build/require/type/regexp/index.js +27 -0
  528. package/build/require/type/regexp/regexp.d.ts +2 -0
  529. package/build/require/type/regexp/regexp.js +28 -0
  530. package/build/require/type/registry/format.d.ts +6 -0
  531. package/build/require/type/registry/format.js +34 -0
  532. package/build/require/type/registry/index.js +27 -0
  533. package/build/require/type/registry/type.d.ts +6 -0
  534. package/build/require/type/registry/type.js +34 -0
  535. package/build/require/type/required/index.js +27 -0
  536. package/build/require/type/required/required-from-mapped-result.js +30 -0
  537. package/build/require/type/required/required.d.ts +2 -0
  538. package/build/require/type/required/required.js +36 -0
  539. package/build/require/type/rest/index.js +27 -0
  540. package/build/require/type/rest/rest.d.ts +1 -0
  541. package/build/require/type/rest/rest.js +32 -0
  542. package/build/require/type/return-type/index.js +27 -0
  543. package/build/require/type/return-type/return-type.d.ts +1 -0
  544. package/build/require/type/return-type/return-type.js +28 -0
  545. package/build/require/type/schema/anyschema.js +27 -0
  546. package/build/require/type/schema/index.js +27 -0
  547. package/build/require/type/schema/schema.d.ts +7 -0
  548. package/build/require/type/schema/schema.js +27 -0
  549. package/build/require/type/static/index.js +27 -0
  550. package/build/require/type/static/static.d.ts +3 -0
  551. package/build/require/type/static/static.js +27 -0
  552. package/build/require/type/strict/index.js +27 -0
  553. package/build/require/type/strict/strict.d.ts +1 -0
  554. package/build/require/type/strict/strict.js +28 -0
  555. package/build/require/type/string/index.js +27 -0
  556. package/build/require/type/string/string.d.ts +7 -0
  557. package/build/require/type/string/string.js +28 -0
  558. package/build/require/type/symbol/index.js +27 -0
  559. package/build/require/type/symbol/symbol.d.ts +1 -0
  560. package/build/require/type/symbol/symbol.js +28 -0
  561. package/build/require/type/symbols/index.js +27 -0
  562. package/build/require/type/symbols/symbols.d.ts +5 -0
  563. package/build/require/type/symbols/symbols.js +32 -0
  564. package/build/require/type/template-literal/finite.js +37 -0
  565. package/build/require/type/template-literal/generate.js +37 -0
  566. package/build/require/type/template-literal/index.js +27 -0
  567. package/build/require/type/template-literal/parser.d.ts +2 -0
  568. package/build/require/type/template-literal/parser.js +44 -0
  569. package/build/require/type/template-literal/pattern.js +38 -0
  570. package/build/require/type/template-literal/syntax.d.ts +1 -0
  571. package/build/require/type/template-literal/syntax.js +35 -0
  572. package/build/require/type/template-literal/template-literal.d.ts +2 -0
  573. package/build/require/type/template-literal/template-literal.js +29 -0
  574. package/build/require/type/template-literal/union.d.ts +1 -0
  575. package/build/require/type/template-literal/union.js +31 -0
  576. package/build/require/type/transform/index.js +27 -0
  577. package/build/require/type/transform/transform.d.ts +1 -0
  578. package/build/require/type/transform/transform.js +36 -0
  579. package/build/require/type/tuple/index.js +27 -0
  580. package/build/require/type/tuple/tuple.d.ts +1 -0
  581. package/build/require/type/tuple/tuple.js +30 -0
  582. package/build/require/type/type/index.d.ts +1 -0
  583. package/build/require/type/type/index.js +34 -0
  584. package/build/require/type/type/javascript.d.ts +19 -0
  585. package/build/require/type/type/javascript.js +45 -0
  586. package/build/require/type/type/json.d.ts +62 -1
  587. package/build/require/type/type/json.js +82 -1
  588. package/build/require/type/type/type.js +30 -0
  589. package/build/require/type/uint8array/index.js +27 -0
  590. package/build/require/type/uint8array/uint8array.d.ts +1 -0
  591. package/build/require/type/uint8array/uint8array.js +28 -0
  592. package/build/require/type/undefined/index.js +27 -0
  593. package/build/require/type/undefined/undefined.d.ts +1 -0
  594. package/build/require/type/undefined/undefined.js +28 -0
  595. package/build/require/type/union/index.js +27 -0
  596. package/build/require/type/union/union-create.js +27 -0
  597. package/build/require/type/union/union-evaluated.d.ts +1 -0
  598. package/build/require/type/union/union-evaluated.js +37 -0
  599. package/build/require/type/union/union-type.js +27 -0
  600. package/build/require/type/union/union.d.ts +1 -0
  601. package/build/require/type/union/union.js +29 -0
  602. package/build/require/type/unknown/index.js +27 -0
  603. package/build/require/type/unknown/unknown.d.ts +1 -0
  604. package/build/require/type/unknown/unknown.js +28 -0
  605. package/build/require/type/unsafe/index.js +27 -0
  606. package/build/require/type/unsafe/unsafe.d.ts +1 -0
  607. package/build/require/type/unsafe/unsafe.js +28 -0
  608. package/build/require/type/void/index.js +27 -0
  609. package/build/require/type/void/void.d.ts +1 -0
  610. package/build/require/type/void/void.js +28 -0
  611. package/build/require/value/cast/cast.d.ts +2 -0
  612. package/build/require/value/cast/cast.js +55 -0
  613. package/build/require/value/cast/index.js +27 -0
  614. package/build/require/value/check/check.d.ts +2 -0
  615. package/build/require/value/check/check.js +46 -1
  616. package/build/require/value/check/index.js +27 -0
  617. package/build/require/value/clean/clean.d.ts +2 -0
  618. package/build/require/value/clean/clean.js +39 -1
  619. package/build/require/value/clean/index.js +27 -0
  620. package/build/require/value/clone/clone.d.ts +1 -0
  621. package/build/require/value/clone/clone.js +34 -0
  622. package/build/require/value/clone/index.js +27 -0
  623. package/build/require/value/convert/convert.d.ts +2 -0
  624. package/build/require/value/convert/convert.js +57 -1
  625. package/build/require/value/convert/index.js +27 -0
  626. package/build/require/value/create/create.d.ts +2 -0
  627. package/build/require/value/create/create.js +44 -0
  628. package/build/require/value/create/index.js +27 -0
  629. package/build/require/value/default/default.d.ts +2 -0
  630. package/build/require/value/default/default.js +46 -0
  631. package/build/require/value/default/index.js +27 -0
  632. package/build/require/value/delta/delta.js +42 -0
  633. package/build/require/value/delta/index.js +27 -0
  634. package/build/require/value/deref/deref.d.ts +1 -0
  635. package/build/require/value/deref/deref.js +28 -0
  636. package/build/require/value/deref/index.js +27 -0
  637. package/build/require/value/equal/equal.d.ts +1 -0
  638. package/build/require/value/equal/equal.js +34 -0
  639. package/build/require/value/equal/index.js +27 -0
  640. package/build/require/value/guard/guard.d.ts +20 -0
  641. package/build/require/value/guard/guard.js +57 -0
  642. package/build/require/value/guard/index.js +27 -0
  643. package/build/require/value/hash/hash.d.ts +1 -0
  644. package/build/require/value/hash/hash.js +46 -0
  645. package/build/require/value/hash/index.js +27 -0
  646. package/build/require/value/index.js +39 -0
  647. package/build/require/value/mutate/index.js +27 -0
  648. package/build/require/value/mutate/mutate.d.ts +1 -0
  649. package/build/require/value/mutate/mutate.js +38 -0
  650. package/build/require/value/pointer/index.js +27 -0
  651. package/build/require/value/pointer/pointer.d.ts +5 -0
  652. package/build/require/value/pointer/pointer.js +45 -0
  653. package/build/require/value/transform/decode.d.ts +5 -0
  654. package/build/require/value/transform/decode.js +50 -0
  655. package/build/require/value/transform/encode.d.ts +6 -0
  656. package/build/require/value/transform/encode.js +52 -0
  657. package/build/require/value/transform/has.d.ts +1 -0
  658. package/build/require/value/transform/has.js +43 -0
  659. package/build/require/value/transform/index.js +27 -0
  660. package/build/require/value/value/index.js +27 -0
  661. package/build/require/value/value/value.d.ts +24 -0
  662. package/build/require/value/value/value.js +42 -0
  663. package/package.json +1 -1
  664. package/readme.md +2 -3
@@ -1,3 +1,30 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
1
28
  import * as ValueGuard from './value.mjs';
2
29
  import { Kind, Hint, TransformKind, ReadonlyKind, OptionalKind } from '../symbols/index.mjs';
3
30
  export class TypeGuardUnknownTypeError extends Error {
@@ -80,16 +107,27 @@ function IsOptionalFormat(value) {
80
107
  function IsOptionalSchema(value) {
81
108
  return ValueGuard.IsUndefined(value) || TSchema(value);
82
109
  }
110
+ // ------------------------------------------------------------------
111
+ // Modifiers
112
+ // ------------------------------------------------------------------
113
+ /** Returns true if this value has a Readonly symbol */
83
114
  export function TReadonly(value) {
84
115
  return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly';
85
116
  }
117
+ /** Returns true if this value has a Optional symbol */
86
118
  export function TOptional(value) {
87
119
  return ValueGuard.IsObject(value) && value[OptionalKind] === 'Optional';
88
120
  }
121
+ // ------------------------------------------------------------------
122
+ // Types
123
+ // ------------------------------------------------------------------
124
+ /** Returns true if the given value is TAny */
89
125
  export function TAny(value) {
126
+ // prettier-ignore
90
127
  return (TKindOf(value, 'Any') &&
91
128
  IsOptionalString(value.$id));
92
129
  }
130
+ /** Returns true if the given value is TArray */
93
131
  export function TArray(value) {
94
132
  return (TKindOf(value, 'Array') &&
95
133
  value.type === 'array' &&
@@ -102,13 +140,17 @@ export function TArray(value) {
102
140
  IsOptionalNumber(value.minContains) &&
103
141
  IsOptionalNumber(value.maxContains));
104
142
  }
143
+ /** Returns true if the given value is TAsyncIterator */
105
144
  export function TAsyncIterator(value) {
145
+ // prettier-ignore
106
146
  return (TKindOf(value, 'AsyncIterator') &&
107
147
  value.type === 'AsyncIterator' &&
108
148
  IsOptionalString(value.$id) &&
109
149
  TSchema(value.items));
110
150
  }
151
+ /** Returns true if the given value is TBigInt */
111
152
  export function TBigInt(value) {
153
+ // prettier-ignore
112
154
  return (TKindOf(value, 'BigInt') &&
113
155
  value.type === 'bigint' &&
114
156
  IsOptionalString(value.$id) &&
@@ -118,12 +160,16 @@ export function TBigInt(value) {
118
160
  IsOptionalBigInt(value.minimum) &&
119
161
  IsOptionalBigInt(value.multipleOf));
120
162
  }
163
+ /** Returns true if the given value is TBoolean */
121
164
  export function TBoolean(value) {
165
+ // prettier-ignore
122
166
  return (TKindOf(value, 'Boolean') &&
123
167
  value.type === 'boolean' &&
124
168
  IsOptionalString(value.$id));
125
169
  }
170
+ /** Returns true if the given value is TConstructor */
126
171
  export function TConstructor(value) {
172
+ // prettier-ignore
127
173
  return (TKindOf(value, 'Constructor') &&
128
174
  value.type === 'Constructor' &&
129
175
  IsOptionalString(value.$id) &&
@@ -131,6 +177,7 @@ export function TConstructor(value) {
131
177
  value.parameters.every(schema => TSchema(schema)) &&
132
178
  TSchema(value.returns));
133
179
  }
180
+ /** Returns true if the given value is TDate */
134
181
  export function TDate(value) {
135
182
  return (TKindOf(value, 'Date') &&
136
183
  value.type === 'Date' &&
@@ -141,7 +188,9 @@ export function TDate(value) {
141
188
  IsOptionalNumber(value.minimumTimestamp) &&
142
189
  IsOptionalNumber(value.multipleOfTimestamp));
143
190
  }
191
+ /** Returns true if the given value is TFunction */
144
192
  export function TFunction(value) {
193
+ // prettier-ignore
145
194
  return (TKindOf(value, 'Function') &&
146
195
  value.type === 'Function' &&
147
196
  IsOptionalString(value.$id) &&
@@ -149,6 +198,7 @@ export function TFunction(value) {
149
198
  value.parameters.every(schema => TSchema(schema)) &&
150
199
  TSchema(value.returns));
151
200
  }
201
+ /** Returns true if the given value is TInteger */
152
202
  export function TInteger(value) {
153
203
  return (TKindOf(value, 'Integer') &&
154
204
  value.type === 'integer' &&
@@ -159,11 +209,15 @@ export function TInteger(value) {
159
209
  IsOptionalNumber(value.minimum) &&
160
210
  IsOptionalNumber(value.multipleOf));
161
211
  }
212
+ /** Returns true if the given schema is TProperties */
162
213
  export function TProperties(value) {
214
+ // prettier-ignore
163
215
  return (ValueGuard.IsObject(value) &&
164
216
  Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && TSchema(schema)));
165
217
  }
218
+ /** Returns true if the given value is TIntersect */
166
219
  export function TIntersect(value) {
220
+ // prettier-ignore
167
221
  return (TKindOf(value, 'Intersect') &&
168
222
  (ValueGuard.IsString(value.type) && value.type !== 'object' ? false : true) &&
169
223
  ValueGuard.IsArray(value.allOf) &&
@@ -172,54 +226,74 @@ export function TIntersect(value) {
172
226
  (IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) &&
173
227
  IsOptionalString(value.$id));
174
228
  }
229
+ /** Returns true if the given value is TIterator */
175
230
  export function TIterator(value) {
231
+ // prettier-ignore
176
232
  return (TKindOf(value, 'Iterator') &&
177
233
  value.type === 'Iterator' &&
178
234
  IsOptionalString(value.$id) &&
179
235
  TSchema(value.items));
180
236
  }
237
+ /** Returns true if the given value is a TKind with the given name. */
181
238
  export function TKindOf(value, kind) {
182
239
  return ValueGuard.IsObject(value) && Kind in value && value[Kind] === kind;
183
240
  }
241
+ /** Returns true if the given value is TLiteral<string> */
184
242
  export function TLiteralString(value) {
185
243
  return TLiteral(value) && ValueGuard.IsString(value.const);
186
244
  }
245
+ /** Returns true if the given value is TLiteral<number> */
187
246
  export function TLiteralNumber(value) {
188
247
  return TLiteral(value) && ValueGuard.IsNumber(value.const);
189
248
  }
249
+ /** Returns true if the given value is TLiteral<boolean> */
190
250
  export function TLiteralBoolean(value) {
191
251
  return TLiteral(value) && ValueGuard.IsBoolean(value.const);
192
252
  }
253
+ /** Returns true if the given value is TLiteral */
193
254
  export function TLiteral(value) {
255
+ // prettier-ignore
194
256
  return (TKindOf(value, 'Literal') &&
195
257
  IsOptionalString(value.$id) && TLiteralValue(value.const));
196
258
  }
259
+ /** Returns true if the given value is a TLiteralValue */
197
260
  export function TLiteralValue(value) {
198
261
  return ValueGuard.IsBoolean(value) || ValueGuard.IsNumber(value) || ValueGuard.IsString(value);
199
262
  }
263
+ /** Returns true if the given value is a TMappedKey */
200
264
  export function TMappedKey(value) {
265
+ // prettier-ignore
201
266
  return (TKindOf(value, 'MappedKey') &&
202
267
  ValueGuard.IsArray(value.keys) &&
203
268
  value.keys.every(key => ValueGuard.IsNumber(key) || ValueGuard.IsString(key)));
204
269
  }
270
+ /** Returns true if the given value is TMappedResult */
205
271
  export function TMappedResult(value) {
272
+ // prettier-ignore
206
273
  return (TKindOf(value, 'MappedResult') &&
207
274
  TProperties(value.properties));
208
275
  }
276
+ /** Returns true if the given value is TNever */
209
277
  export function TNever(value) {
278
+ // prettier-ignore
210
279
  return (TKindOf(value, 'Never') &&
211
280
  ValueGuard.IsObject(value.not) &&
212
281
  Object.getOwnPropertyNames(value.not).length === 0);
213
282
  }
283
+ /** Returns true if the given value is TNot */
214
284
  export function TNot(value) {
285
+ // prettier-ignore
215
286
  return (TKindOf(value, 'Not') &&
216
287
  TSchema(value.not));
217
288
  }
289
+ /** Returns true if the given value is TNull */
218
290
  export function TNull(value) {
291
+ // prettier-ignore
219
292
  return (TKindOf(value, 'Null') &&
220
293
  value.type === 'null' &&
221
294
  IsOptionalString(value.$id));
222
295
  }
296
+ /** Returns true if the given value is TNumber */
223
297
  export function TNumber(value) {
224
298
  return (TKindOf(value, 'Number') &&
225
299
  value.type === 'number' &&
@@ -230,7 +304,9 @@ export function TNumber(value) {
230
304
  IsOptionalNumber(value.minimum) &&
231
305
  IsOptionalNumber(value.multipleOf));
232
306
  }
307
+ /** Returns true if the given value is TObject */
233
308
  export function TObject(value) {
309
+ // prettier-ignore
234
310
  return (TKindOf(value, 'Object') &&
235
311
  value.type === 'object' &&
236
312
  IsOptionalString(value.$id) &&
@@ -239,13 +315,17 @@ export function TObject(value) {
239
315
  IsOptionalNumber(value.minProperties) &&
240
316
  IsOptionalNumber(value.maxProperties));
241
317
  }
318
+ /** Returns true if the given value is TPromise */
242
319
  export function TPromise(value) {
320
+ // prettier-ignore
243
321
  return (TKindOf(value, 'Promise') &&
244
322
  value.type === 'Promise' &&
245
323
  IsOptionalString(value.$id) &&
246
324
  TSchema(value.item));
247
325
  }
326
+ /** Returns true if the given value is TRecord */
248
327
  export function TRecord(value) {
328
+ // prettier-ignore
249
329
  return (TKindOf(value, 'Record') &&
250
330
  value.type === 'object' &&
251
331
  IsOptionalString(value.$id) &&
@@ -259,15 +339,20 @@ export function TRecord(value) {
259
339
  TSchema(schema.patternProperties[keys[0]]));
260
340
  })(value));
261
341
  }
342
+ /** Returns true if this value is TRecursive */
262
343
  export function TRecursive(value) {
263
344
  return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive';
264
345
  }
346
+ /** Returns true if the given value is TRef */
265
347
  export function TRef(value) {
348
+ // prettier-ignore
266
349
  return (TKindOf(value, 'Ref') &&
267
350
  IsOptionalString(value.$id) &&
268
351
  ValueGuard.IsString(value.$ref));
269
352
  }
353
+ /** Returns true if the given value is TString */
270
354
  export function TString(value) {
355
+ // prettier-ignore
271
356
  return (TKindOf(value, 'String') &&
272
357
  value.type === 'string' &&
273
358
  IsOptionalString(value.$id) &&
@@ -276,76 +361,101 @@ export function TString(value) {
276
361
  IsOptionalPattern(value.pattern) &&
277
362
  IsOptionalFormat(value.format));
278
363
  }
364
+ /** Returns true if the given value is TSymbol */
279
365
  export function TSymbol(value) {
366
+ // prettier-ignore
280
367
  return (TKindOf(value, 'Symbol') &&
281
368
  value.type === 'symbol' &&
282
369
  IsOptionalString(value.$id));
283
370
  }
371
+ /** Returns true if the given value is TTemplateLiteral */
284
372
  export function TTemplateLiteral(value) {
373
+ // prettier-ignore
285
374
  return (TKindOf(value, 'TemplateLiteral') &&
286
375
  value.type === 'string' &&
287
376
  ValueGuard.IsString(value.pattern) &&
288
377
  value.pattern[0] === '^' &&
289
378
  value.pattern[value.pattern.length - 1] === '$');
290
379
  }
380
+ /** Returns true if the given value is TThis */
291
381
  export function TThis(value) {
382
+ // prettier-ignore
292
383
  return (TKindOf(value, 'This') &&
293
384
  IsOptionalString(value.$id) &&
294
385
  ValueGuard.IsString(value.$ref));
295
386
  }
387
+ /** Returns true of this value is TTransform */
296
388
  export function TTransform(value) {
297
389
  return ValueGuard.IsObject(value) && TransformKind in value;
298
390
  }
391
+ /** Returns true if the given value is TTuple */
299
392
  export function TTuple(value) {
393
+ // prettier-ignore
300
394
  return (TKindOf(value, 'Tuple') &&
301
395
  value.type === 'array' &&
302
396
  IsOptionalString(value.$id) &&
303
397
  ValueGuard.IsNumber(value.minItems) &&
304
398
  ValueGuard.IsNumber(value.maxItems) &&
305
399
  value.minItems === value.maxItems &&
306
- ((ValueGuard.IsUndefined(value.items) &&
400
+ (( // empty
401
+ ValueGuard.IsUndefined(value.items) &&
307
402
  ValueGuard.IsUndefined(value.additionalItems) &&
308
403
  value.minItems === 0) || (ValueGuard.IsArray(value.items) &&
309
404
  value.items.every(schema => TSchema(schema)))));
310
405
  }
406
+ /** Returns true if the given value is TUndefined */
311
407
  export function TUndefined(value) {
408
+ // prettier-ignore
312
409
  return (TKindOf(value, 'Undefined') &&
313
410
  value.type === 'undefined' &&
314
411
  IsOptionalString(value.$id));
315
412
  }
413
+ /** Returns true if the given value is TUnion<Literal<string | number>[]> */
316
414
  export function TUnionLiteral(value) {
317
415
  return TUnion(value) && value.anyOf.every((schema) => TLiteralString(schema) || TLiteralNumber(schema));
318
416
  }
417
+ /** Returns true if the given value is TUnion */
319
418
  export function TUnion(value) {
419
+ // prettier-ignore
320
420
  return (TKindOf(value, 'Union') &&
321
421
  IsOptionalString(value.$id) &&
322
422
  ValueGuard.IsObject(value) &&
323
423
  ValueGuard.IsArray(value.anyOf) &&
324
424
  value.anyOf.every(schema => TSchema(schema)));
325
425
  }
426
+ /** Returns true if the given value is TUint8Array */
326
427
  export function TUint8Array(value) {
428
+ // prettier-ignore
327
429
  return (TKindOf(value, 'Uint8Array') &&
328
430
  value.type === 'Uint8Array' &&
329
431
  IsOptionalString(value.$id) &&
330
432
  IsOptionalNumber(value.minByteLength) &&
331
433
  IsOptionalNumber(value.maxByteLength));
332
434
  }
435
+ /** Returns true if the given value is TUnknown */
333
436
  export function TUnknown(value) {
437
+ // prettier-ignore
334
438
  return (TKindOf(value, 'Unknown') &&
335
439
  IsOptionalString(value.$id));
336
440
  }
441
+ /** Returns true if the given value is a raw TUnsafe */
337
442
  export function TUnsafe(value) {
338
443
  return TKindOf(value, 'Unsafe');
339
444
  }
445
+ /** Returns true if the given value is TVoid */
340
446
  export function TVoid(value) {
447
+ // prettier-ignore
341
448
  return (TKindOf(value, 'Void') &&
342
449
  value.type === 'void' &&
343
450
  IsOptionalString(value.$id));
344
451
  }
452
+ /** Returns true if the given value is TKind */
345
453
  export function TKind(value) {
346
454
  return ValueGuard.IsObject(value) && Kind in value && ValueGuard.IsString(value[Kind]) && !KnownTypes.includes(value[Kind]);
347
455
  }
456
+ /** Returns true if the given value is TSchema */
348
457
  export function TSchema(value) {
458
+ // prettier-ignore
349
459
  return (ValueGuard.IsObject(value)) && (TAny(value) ||
350
460
  TArray(value) ||
351
461
  TBoolean(value) ||
@@ -1,14 +1,28 @@
1
+ /** Returns true if this value is an async iterator */
1
2
  export declare function IsAsyncIterator(value: unknown): value is AsyncIterableIterator<unknown>;
3
+ /** Returns true if this value is an array */
2
4
  export declare function IsArray(value: unknown): value is unknown[];
5
+ /** Returns true if this value is bigint */
3
6
  export declare function IsBigInt(value: unknown): value is bigint;
7
+ /** Returns true if this value is a boolean */
4
8
  export declare function IsBoolean(value: unknown): value is boolean;
9
+ /** Returns true if this value is a Date object */
5
10
  export declare function IsDate(value: unknown): value is Date;
11
+ /** Returns true if this value is a function */
6
12
  export declare function IsFunction(value: unknown): value is Function;
13
+ /** Returns true if this value is an iterator */
7
14
  export declare function IsIterator(value: unknown): value is IterableIterator<unknown>;
15
+ /** Returns true if this value is null */
8
16
  export declare function IsNull(value: unknown): value is null;
17
+ /** Returns true if this value is number */
9
18
  export declare function IsNumber(value: unknown): value is number;
19
+ /** Returns true if this value is an object */
10
20
  export declare function IsObject(value: unknown): value is Record<PropertyKey, unknown>;
21
+ /** Returns true if this value is string */
11
22
  export declare function IsString(value: unknown): value is string;
23
+ /** Returns true if this value is symbol */
12
24
  export declare function IsSymbol(value: unknown): value is symbol;
25
+ /** Returns true if this value is a Uint8Array */
13
26
  export declare function IsUint8Array(value: unknown): value is Uint8Array;
27
+ /** Returns true if this value is undefined */
14
28
  export declare function IsUndefined(value: unknown): value is undefined;
@@ -1,42 +1,83 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ /** Returns true if this value is an async iterator */
1
29
  export function IsAsyncIterator(value) {
2
30
  return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.asyncIterator in value;
3
31
  }
32
+ /** Returns true if this value is an array */
4
33
  export function IsArray(value) {
5
34
  return Array.isArray(value);
6
35
  }
36
+ /** Returns true if this value is bigint */
7
37
  export function IsBigInt(value) {
8
38
  return typeof value === 'bigint';
9
39
  }
40
+ /** Returns true if this value is a boolean */
10
41
  export function IsBoolean(value) {
11
42
  return typeof value === 'boolean';
12
43
  }
44
+ /** Returns true if this value is a Date object */
13
45
  export function IsDate(value) {
14
46
  return value instanceof globalThis.Date;
15
47
  }
48
+ /** Returns true if this value is a function */
16
49
  export function IsFunction(value) {
17
50
  return typeof value === 'function';
18
51
  }
52
+ /** Returns true if this value is an iterator */
19
53
  export function IsIterator(value) {
20
54
  return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.iterator in value;
21
55
  }
56
+ /** Returns true if this value is null */
22
57
  export function IsNull(value) {
23
58
  return value === null;
24
59
  }
60
+ /** Returns true if this value is number */
25
61
  export function IsNumber(value) {
26
62
  return typeof value === 'number';
27
63
  }
64
+ /** Returns true if this value is an object */
28
65
  export function IsObject(value) {
29
66
  return typeof value === 'object' && value !== null;
30
67
  }
68
+ /** Returns true if this value is string */
31
69
  export function IsString(value) {
32
70
  return typeof value === 'string';
33
71
  }
72
+ /** Returns true if this value is symbol */
34
73
  export function IsSymbol(value) {
35
74
  return typeof value === 'symbol';
36
75
  }
76
+ /** Returns true if this value is a Uint8Array */
37
77
  export function IsUint8Array(value) {
38
78
  return value instanceof globalThis.Uint8Array;
39
79
  }
80
+ /** Returns true if this value is undefined */
40
81
  export function IsUndefined(value) {
41
82
  return value === undefined;
42
83
  }
@@ -34,6 +34,7 @@ type IncrementTake<T extends keyof IncrementBase> = IncrementBase[T];
34
34
  type IncrementStep<T extends string> = T extends IncrementBase['m'] ? IncrementBase['t'] : T extends `${infer L extends keyof IncrementBase}${infer R}` ? L extends IncrementBase['m'] ? `${IncrementTake<L>}${IncrementStep<R>}` : `${IncrementTake<L>}${R}` : never;
35
35
  type IncrementReverse<T extends string> = T extends `${infer L}${infer R}` ? `${IncrementReverse<R>}${L}` : T;
36
36
  export type Increment<T extends string> = IncrementReverse<IncrementStep<IncrementReverse<T>>>;
37
+ /** Increments the given string value + 1 */
37
38
  export declare function Increment<T extends string>(T: T): Increment<T>;
38
39
  export type AssertProperties<T> = T extends TProperties ? T : TProperties;
39
40
  export type AssertRest<T, E extends TSchema[] = TSchema[]> = T extends E ? T : [];
@@ -1,3 +1,31 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
28
+ /** Increments the given string value + 1 */
1
29
  export function Increment(T) {
2
30
  return (parseInt(T) + 1).toString();
3
31
  }
@@ -1 +1,28 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
1
28
  export * from './helpers.mjs';
@@ -1,3 +1,30 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
1
28
  export * from './any/index.mjs';
2
29
  export * from './array/index.mjs';
3
30
  export * from './async-iterator/index.mjs';
@@ -1,3 +1,30 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
1
28
  export * from './indexed-from-mapped-key.mjs';
2
29
  export * from './indexed-property-keys.mjs';
3
30
  export * from './indexed-result.mjs';
@@ -1,17 +1,51 @@
1
+ /*--------------------------------------------------------------------------
2
+
3
+ @sinclair/typebox/type
4
+
5
+ The MIT License (MIT)
6
+
7
+ Copyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ ---------------------------------------------------------------------------*/
1
28
  import { IndexResult } from './indexed-result.mjs';
2
29
  import { MappedResult } from '../mapped/index.mjs';
30
+ // prettier-ignore
3
31
  function MappedIndexPropertyKey(T, K, options) {
32
+ // todo: propogate options into index result. This type looks like it
33
+ // could use a clean up, possibly inlining it into indexed.ts to
34
+ // bring it inline with other mapping types.
4
35
  return { [K]: IndexResult(T, [K], options) };
5
36
  }
37
+ // prettier-ignore
6
38
  function MappedIndexPropertyKeys(T, K, options) {
7
39
  const [L, ...R] = K;
8
40
  return (K.length > 0
9
- ? { ...MappedIndexPropertyKey(T, L, options), ...MappedIndexPropertyKeys(T, R, options) }
41
+ ? { ...MappedIndexPropertyKey(T, L, options), ...MappedIndexPropertyKeys(T, R, options) } // TS 5.4-dev
10
42
  : {});
11
43
  }
44
+ // prettier-ignore
12
45
  function MappedIndexProperties(T, K, options) {
13
46
  return MappedIndexPropertyKeys(T, K.keys, options);
14
47
  }
48
+ // prettier-ignore
15
49
  export function IndexFromMappedKey(T, K, options) {
16
50
  const P = MappedIndexProperties(T, K, options);
17
51
  return MappedResult(P);
@@ -12,5 +12,6 @@ type FromLiteral<T extends TLiteralValue> = (T extends PropertyKey ? [`${T}`] :
12
12
  declare function FromLiteral<T extends TLiteralValue>(T: T): FromLiteral<T>;
13
13
  export type TIndexPropertyKeys<T extends TSchema> = (T extends TTemplateLiteral ? FromTemplateLiteral<T> : T extends TUnion<infer S> ? FromUnion<S> : T extends TLiteral<infer S> ? FromLiteral<S> : T extends TNumber ? ['[number]'] : T extends TInteger ? ['[number]'] : [
14
14
  ]);
15
+ /** Returns a tuple of PropertyKeys derived from the given TSchema */
15
16
  export declare function IndexPropertyKeys<T extends TSchema>(T: T): TIndexPropertyKeys<T>;
16
17
  export {};