@sinclair/typebox 0.32.0-dev-16 → 0.32.0-dev-18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/build/import/compiler/compiler.d.mts +9 -0
  2. package/build/import/compiler/compiler.mjs +60 -6
  3. package/build/import/errors/errors.d.mts +3 -0
  4. package/build/import/errors/errors.mjs +28 -3
  5. package/build/import/errors/function.d.mts +3 -0
  6. package/build/import/errors/function.mjs +4 -0
  7. package/build/import/index.mjs +9 -0
  8. package/build/import/system/policy.d.mts +10 -0
  9. package/build/import/system/policy.mjs +13 -0
  10. package/build/import/system/system.d.mts +3 -0
  11. package/build/import/system/system.mjs +9 -0
  12. package/build/import/type/any/any.d.mts +1 -0
  13. package/build/import/type/any/any.mjs +1 -0
  14. package/build/import/type/array/array.d.mts +7 -0
  15. package/build/import/type/array/array.mjs +1 -0
  16. package/build/import/type/async-iterator/async-iterator.d.mts +1 -0
  17. package/build/import/type/async-iterator/async-iterator.mjs +1 -0
  18. package/build/import/type/awaited/awaited.d.mts +7 -6
  19. package/build/import/type/awaited/awaited.mjs +23 -13
  20. package/build/import/type/bigint/bigint.d.mts +1 -0
  21. package/build/import/type/bigint/bigint.mjs +1 -0
  22. package/build/import/type/boolean/boolean.d.mts +1 -0
  23. package/build/import/type/boolean/boolean.mjs +1 -0
  24. package/build/import/type/clone/type.d.mts +2 -0
  25. package/build/import/type/clone/type.mjs +2 -0
  26. package/build/import/type/clone/value.d.mts +1 -0
  27. package/build/import/type/clone/value.mjs +2 -0
  28. package/build/import/type/composite/composite.d.mts +1 -0
  29. package/build/import/type/composite/composite.mjs +1 -0
  30. package/build/import/type/const/const.d.mts +2 -1
  31. package/build/import/type/const/const.mjs +5 -1
  32. package/build/import/type/constructor/constructor.d.mts +1 -0
  33. package/build/import/type/constructor/constructor.mjs +1 -0
  34. package/build/import/type/constructor-parameters/constructor-parameters.d.mts +1 -0
  35. package/build/import/type/constructor-parameters/constructor-parameters.mjs +1 -0
  36. package/build/import/type/date/date.d.mts +6 -0
  37. package/build/import/type/date/date.mjs +1 -0
  38. package/build/import/type/deref/deref.d.mts +1 -0
  39. package/build/import/type/deref/deref.mjs +18 -0
  40. package/build/import/type/enum/enum.d.mts +1 -0
  41. package/build/import/type/enum/enum.mjs +1 -0
  42. package/build/import/type/exclude/exclude-from-mapped-result.mjs +3 -0
  43. package/build/import/type/exclude/exclude.d.mts +2 -0
  44. package/build/import/type/exclude/exclude.mjs +3 -0
  45. package/build/import/type/extends/extends-check.mjs +173 -1
  46. package/build/import/type/extends/extends-from-mapped-key.mjs +4 -0
  47. package/build/import/type/extends/extends-from-mapped-result.mjs +3 -0
  48. package/build/import/type/extends/extends-undefined.d.mts +1 -0
  49. package/build/import/type/extends/extends-undefined.mjs +3 -0
  50. package/build/import/type/extends/extends.d.mts +3 -0
  51. package/build/import/type/extends/extends.mjs +7 -0
  52. package/build/import/type/extract/extract-from-mapped-result.mjs +3 -0
  53. package/build/import/type/extract/extract.d.mts +2 -0
  54. package/build/import/type/extract/extract.mjs +3 -0
  55. package/build/import/type/function/function.d.mts +1 -0
  56. package/build/import/type/function/function.mjs +1 -0
  57. package/build/import/type/guard/type.d.mts +46 -0
  58. package/build/import/type/guard/type.mjs +84 -1
  59. package/build/import/type/guard/value.d.mts +14 -0
  60. package/build/import/type/guard/value.mjs +14 -0
  61. package/build/import/type/helpers/helpers.d.mts +1 -0
  62. package/build/import/type/helpers/helpers.mjs +1 -0
  63. package/build/import/type/indexed/index.d.mts +0 -1
  64. package/build/import/type/indexed/index.mjs +0 -1
  65. package/build/import/type/indexed/indexed-from-mapped-key.d.mts +2 -2
  66. package/build/import/type/indexed/indexed-from-mapped-key.mjs +10 -3
  67. package/build/import/type/indexed/indexed-property-keys.d.mts +1 -0
  68. package/build/import/type/indexed/indexed-property-keys.mjs +9 -0
  69. package/build/import/type/indexed/indexed.d.mts +40 -4
  70. package/build/import/type/indexed/indexed.mjs +84 -5
  71. package/build/import/type/instance-type/instance-type.d.mts +1 -0
  72. package/build/import/type/instance-type/instance-type.mjs +1 -0
  73. package/build/import/type/integer/integer.d.mts +1 -0
  74. package/build/import/type/integer/integer.mjs +1 -0
  75. package/build/import/type/intersect/intersect-create.mjs +8 -0
  76. package/build/import/type/intersect/intersect-evaluated.d.mts +1 -0
  77. package/build/import/type/intersect/intersect-evaluated.mjs +9 -0
  78. package/build/import/type/intersect/intersect.d.mts +1 -0
  79. package/build/import/type/intersect/intersect.mjs +5 -0
  80. package/build/import/type/intrinsic/capitalize.d.mts +1 -0
  81. package/build/import/type/intrinsic/capitalize.mjs +1 -0
  82. package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +4 -0
  83. package/build/import/type/intrinsic/intrinsic.d.mts +2 -0
  84. package/build/import/type/intrinsic/intrinsic.mjs +16 -1
  85. package/build/import/type/intrinsic/lowercase.d.mts +1 -0
  86. package/build/import/type/intrinsic/lowercase.mjs +1 -0
  87. package/build/import/type/intrinsic/uncapitalize.d.mts +1 -0
  88. package/build/import/type/intrinsic/uncapitalize.mjs +1 -0
  89. package/build/import/type/intrinsic/uppercase.d.mts +1 -0
  90. package/build/import/type/intrinsic/uppercase.mjs +1 -0
  91. package/build/import/type/iterator/iterator.d.mts +1 -0
  92. package/build/import/type/iterator/iterator.mjs +1 -0
  93. package/build/import/type/keyof/keyof-from-mapped-result.mjs +3 -0
  94. package/build/import/type/keyof/keyof-property-keys.d.mts +2 -0
  95. package/build/import/type/keyof/keyof-property-keys.mjs +20 -0
  96. package/build/import/type/keyof/keyof.d.mts +2 -0
  97. package/build/import/type/keyof/keyof.mjs +6 -0
  98. package/build/import/type/literal/literal.d.mts +1 -0
  99. package/build/import/type/literal/literal.mjs +1 -0
  100. package/build/import/type/mapped/mapped-key.mjs +1 -0
  101. package/build/import/type/mapped/mapped-result.mjs +1 -0
  102. package/build/import/type/mapped/mapped.d.mts +2 -0
  103. package/build/import/type/mapped/mapped.mjs +19 -1
  104. package/build/import/type/modifiers/modifiers.mjs +10 -0
  105. package/build/import/type/never/never.d.mts +1 -0
  106. package/build/import/type/never/never.mjs +1 -0
  107. package/build/import/type/not/not.d.mts +1 -0
  108. package/build/import/type/not/not.mjs +1 -0
  109. package/build/import/type/null/null.d.mts +1 -0
  110. package/build/import/type/null/null.mjs +1 -0
  111. package/build/import/type/number/number.d.mts +1 -0
  112. package/build/import/type/number/number.mjs +1 -0
  113. package/build/import/type/object/object.d.mts +5 -0
  114. package/build/import/type/object/object.mjs +6 -0
  115. package/build/import/type/omit/omit-from-mapped-key.mjs +4 -0
  116. package/build/import/type/omit/omit.d.mts +3 -0
  117. package/build/import/type/omit/omit.mjs +12 -0
  118. package/build/import/type/operators/operators.d.mts +8 -0
  119. package/build/import/type/operators/operators.mjs +15 -0
  120. package/build/import/type/optional/optional.d.mts +1 -0
  121. package/build/import/type/optional/optional.mjs +1 -0
  122. package/build/import/type/parameters/parameters.d.mts +1 -0
  123. package/build/import/type/parameters/parameters.mjs +1 -0
  124. package/build/import/type/partial/partial-from-mapped-result.mjs +3 -0
  125. package/build/import/type/partial/partial.d.mts +2 -0
  126. package/build/import/type/partial/partial.mjs +9 -0
  127. package/build/import/type/pick/pick-from-mapped-key.mjs +4 -0
  128. package/build/import/type/pick/pick.d.mts +3 -0
  129. package/build/import/type/pick/pick.mjs +7 -0
  130. package/build/import/type/promise/promise.d.mts +1 -0
  131. package/build/import/type/promise/promise.mjs +1 -0
  132. package/build/import/type/readonly/readonly.d.mts +1 -0
  133. package/build/import/type/readonly/readonly.mjs +1 -0
  134. package/build/import/type/readonly-optional/readonly-optional.d.mts +1 -0
  135. package/build/import/type/readonly-optional/readonly-optional.mjs +1 -0
  136. package/build/import/type/record/record.d.mts +11 -9
  137. package/build/import/type/record/record.mjs +53 -28
  138. package/build/import/type/recursive/recursive.d.mts +1 -0
  139. package/build/import/type/recursive/recursive.mjs +3 -0
  140. package/build/import/type/ref/ref.d.mts +2 -0
  141. package/build/import/type/ref/ref.mjs +1 -0
  142. package/build/import/type/regexp/regexp.d.mts +2 -0
  143. package/build/import/type/regexp/regexp.mjs +1 -0
  144. package/build/import/type/registry/format.d.mts +6 -0
  145. package/build/import/type/registry/format.mjs +7 -0
  146. package/build/import/type/registry/type.d.mts +6 -0
  147. package/build/import/type/registry/type.mjs +7 -0
  148. package/build/import/type/required/required-from-mapped-result.mjs +3 -0
  149. package/build/import/type/required/required.d.mts +2 -0
  150. package/build/import/type/required/required.mjs +9 -0
  151. package/build/import/type/rest/rest.d.mts +1 -0
  152. package/build/import/type/rest/rest.mjs +5 -0
  153. package/build/import/type/return-type/return-type.d.mts +1 -0
  154. package/build/import/type/return-type/return-type.mjs +1 -0
  155. package/build/import/type/schema/schema.d.mts +7 -0
  156. package/build/import/type/static/static.d.mts +3 -0
  157. package/build/import/type/strict/strict.d.mts +1 -0
  158. package/build/import/type/strict/strict.mjs +1 -0
  159. package/build/import/type/string/string.d.mts +7 -0
  160. package/build/import/type/string/string.mjs +1 -0
  161. package/build/import/type/symbol/symbol.d.mts +1 -0
  162. package/build/import/type/symbol/symbol.mjs +1 -0
  163. package/build/import/type/symbols/symbols.d.mts +5 -0
  164. package/build/import/type/symbols/symbols.mjs +5 -0
  165. package/build/import/type/template-literal/finite.mjs +10 -0
  166. package/build/import/type/template-literal/generate.mjs +10 -0
  167. package/build/import/type/template-literal/parser.d.mts +2 -0
  168. package/build/import/type/template-literal/parser.mjs +17 -0
  169. package/build/import/type/template-literal/pattern.mjs +11 -0
  170. package/build/import/type/template-literal/syntax.d.mts +1 -0
  171. package/build/import/type/template-literal/syntax.mjs +8 -0
  172. package/build/import/type/template-literal/template-literal.d.mts +2 -0
  173. package/build/import/type/template-literal/template-literal.mjs +2 -0
  174. package/build/import/type/template-literal/union.d.mts +1 -0
  175. package/build/import/type/template-literal/union.mjs +4 -0
  176. package/build/import/type/transform/transform.d.mts +1 -0
  177. package/build/import/type/transform/transform.mjs +9 -0
  178. package/build/import/type/tuple/tuple.d.mts +1 -0
  179. package/build/import/type/tuple/tuple.mjs +3 -0
  180. package/build/import/type/type/index.d.mts +1 -0
  181. package/build/import/type/type/index.mjs +7 -0
  182. package/build/import/type/type/javascript.d.mts +19 -0
  183. package/build/import/type/type/javascript.mjs +18 -0
  184. package/build/import/type/type/json.d.mts +64 -3
  185. package/build/import/type/type/json.mjs +55 -1
  186. package/build/import/type/type/type.mjs +3 -0
  187. package/build/import/type/uint8array/uint8array.d.mts +1 -0
  188. package/build/import/type/uint8array/uint8array.mjs +1 -0
  189. package/build/import/type/undefined/undefined.d.mts +1 -0
  190. package/build/import/type/undefined/undefined.mjs +1 -0
  191. package/build/import/type/union/union-evaluated.d.mts +1 -0
  192. package/build/import/type/union/union-evaluated.mjs +10 -0
  193. package/build/import/type/union/union.d.mts +1 -0
  194. package/build/import/type/union/union.mjs +2 -0
  195. package/build/import/type/unknown/unknown.d.mts +1 -0
  196. package/build/import/type/unknown/unknown.mjs +1 -0
  197. package/build/import/type/unsafe/unsafe.d.mts +1 -0
  198. package/build/import/type/unsafe/unsafe.mjs +1 -0
  199. package/build/import/type/void/void.d.mts +1 -0
  200. package/build/import/type/void/void.mjs +1 -0
  201. package/build/import/value/cast/cast.d.mts +2 -0
  202. package/build/import/value/cast/cast.mjs +28 -0
  203. package/build/import/value/check/check.d.mts +2 -0
  204. package/build/import/value/check/check.mjs +19 -1
  205. package/build/import/value/clean/clean.d.mts +2 -0
  206. package/build/import/value/clean/clean.mjs +12 -1
  207. package/build/import/value/clone/clone.d.mts +1 -0
  208. package/build/import/value/clone/clone.mjs +7 -0
  209. package/build/import/value/convert/convert.d.mts +2 -0
  210. package/build/import/value/convert/convert.mjs +30 -1
  211. package/build/import/value/create/create.d.mts +2 -0
  212. package/build/import/value/create/create.mjs +17 -0
  213. package/build/import/value/default/default.d.mts +2 -0
  214. package/build/import/value/default/default.mjs +19 -0
  215. package/build/import/value/delta/delta.mjs +15 -0
  216. package/build/import/value/deref/deref.d.mts +1 -0
  217. package/build/import/value/deref/deref.mjs +1 -0
  218. package/build/import/value/equal/equal.d.mts +1 -0
  219. package/build/import/value/equal/equal.mjs +7 -0
  220. package/build/import/value/guard/guard.d.mts +20 -0
  221. package/build/import/value/guard/guard.mjs +30 -0
  222. package/build/import/value/hash/hash.d.mts +1 -0
  223. package/build/import/value/hash/hash.mjs +19 -0
  224. package/build/import/value/index.mjs +12 -0
  225. package/build/import/value/mutate/mutate.d.mts +1 -0
  226. package/build/import/value/mutate/mutate.mjs +11 -0
  227. package/build/import/value/pointer/pointer.d.mts +5 -0
  228. package/build/import/value/pointer/pointer.mjs +18 -0
  229. package/build/import/value/transform/decode.d.mts +5 -0
  230. package/build/import/value/transform/decode.mjs +23 -0
  231. package/build/import/value/transform/encode.d.mts +6 -0
  232. package/build/import/value/transform/encode.mjs +25 -0
  233. package/build/import/value/transform/has.d.mts +1 -0
  234. package/build/import/value/transform/has.mjs +16 -0
  235. package/build/import/value/value/value.d.mts +24 -0
  236. package/build/import/value/value/value.mjs +15 -0
  237. package/build/require/compiler/compiler.d.ts +9 -0
  238. package/build/require/compiler/compiler.js +61 -6
  239. package/build/require/compiler/index.js +1 -0
  240. package/build/require/errors/errors.d.ts +3 -0
  241. package/build/require/errors/errors.js +29 -3
  242. package/build/require/errors/function.d.ts +3 -0
  243. package/build/require/errors/function.js +5 -0
  244. package/build/require/errors/index.js +1 -0
  245. package/build/require/index.js +10 -0
  246. package/build/require/system/index.js +1 -0
  247. package/build/require/system/policy.d.ts +10 -0
  248. package/build/require/system/policy.js +14 -0
  249. package/build/require/system/system.d.ts +3 -0
  250. package/build/require/system/system.js +10 -0
  251. package/build/require/type/any/any.d.ts +1 -0
  252. package/build/require/type/any/any.js +2 -0
  253. package/build/require/type/any/index.js +1 -0
  254. package/build/require/type/array/array.d.ts +7 -0
  255. package/build/require/type/array/array.js +2 -0
  256. package/build/require/type/array/index.js +1 -0
  257. package/build/require/type/async-iterator/async-iterator.d.ts +1 -0
  258. package/build/require/type/async-iterator/async-iterator.js +2 -0
  259. package/build/require/type/async-iterator/index.js +1 -0
  260. package/build/require/type/awaited/awaited.d.ts +7 -6
  261. package/build/require/type/awaited/awaited.js +25 -15
  262. package/build/require/type/awaited/index.js +1 -0
  263. package/build/require/type/bigint/bigint.d.ts +1 -0
  264. package/build/require/type/bigint/bigint.js +2 -0
  265. package/build/require/type/bigint/index.js +1 -0
  266. package/build/require/type/boolean/boolean.d.ts +1 -0
  267. package/build/require/type/boolean/boolean.js +2 -0
  268. package/build/require/type/boolean/index.js +1 -0
  269. package/build/require/type/clone/index.js +1 -0
  270. package/build/require/type/clone/type.d.ts +2 -0
  271. package/build/require/type/clone/type.js +3 -0
  272. package/build/require/type/clone/value.d.ts +1 -0
  273. package/build/require/type/clone/value.js +3 -0
  274. package/build/require/type/composite/composite.d.ts +1 -0
  275. package/build/require/type/composite/composite.js +2 -0
  276. package/build/require/type/composite/index.js +1 -0
  277. package/build/require/type/const/const.d.ts +2 -1
  278. package/build/require/type/const/const.js +6 -1
  279. package/build/require/type/const/index.js +1 -0
  280. package/build/require/type/constructor/constructor.d.ts +1 -0
  281. package/build/require/type/constructor/constructor.js +2 -0
  282. package/build/require/type/constructor/index.js +1 -0
  283. package/build/require/type/constructor-parameters/constructor-parameters.d.ts +1 -0
  284. package/build/require/type/constructor-parameters/constructor-parameters.js +2 -0
  285. package/build/require/type/constructor-parameters/index.js +1 -0
  286. package/build/require/type/date/date.d.ts +6 -0
  287. package/build/require/type/date/date.js +2 -0
  288. package/build/require/type/date/index.js +1 -0
  289. package/build/require/type/deref/deref.d.ts +1 -0
  290. package/build/require/type/deref/deref.js +19 -0
  291. package/build/require/type/deref/index.js +1 -0
  292. package/build/require/type/discard/discard.js +1 -0
  293. package/build/require/type/discard/index.js +1 -0
  294. package/build/require/type/enum/enum.d.ts +1 -0
  295. package/build/require/type/enum/enum.js +2 -0
  296. package/build/require/type/enum/index.js +1 -0
  297. package/build/require/type/exclude/exclude-from-mapped-result.js +4 -0
  298. package/build/require/type/exclude/exclude.d.ts +2 -0
  299. package/build/require/type/exclude/exclude.js +4 -0
  300. package/build/require/type/exclude/index.js +1 -0
  301. package/build/require/type/extends/extends-check.js +174 -1
  302. package/build/require/type/extends/extends-from-mapped-key.js +5 -0
  303. package/build/require/type/extends/extends-from-mapped-result.js +4 -0
  304. package/build/require/type/extends/extends-undefined.d.ts +1 -0
  305. package/build/require/type/extends/extends-undefined.js +4 -0
  306. package/build/require/type/extends/extends.d.ts +3 -0
  307. package/build/require/type/extends/extends.js +8 -0
  308. package/build/require/type/extends/index.js +1 -0
  309. package/build/require/type/extract/extract-from-mapped-result.js +4 -0
  310. package/build/require/type/extract/extract.d.ts +2 -0
  311. package/build/require/type/extract/extract.js +4 -0
  312. package/build/require/type/extract/index.js +1 -0
  313. package/build/require/type/function/function.d.ts +1 -0
  314. package/build/require/type/function/function.js +2 -0
  315. package/build/require/type/function/index.js +1 -0
  316. package/build/require/type/guard/index.js +1 -0
  317. package/build/require/type/guard/type.d.ts +46 -0
  318. package/build/require/type/guard/type.js +85 -1
  319. package/build/require/type/guard/value.d.ts +14 -0
  320. package/build/require/type/guard/value.js +15 -0
  321. package/build/require/type/helpers/helpers.d.ts +1 -0
  322. package/build/require/type/helpers/helpers.js +2 -0
  323. package/build/require/type/helpers/index.js +1 -0
  324. package/build/require/type/index.js +1 -0
  325. package/build/require/type/indexed/index.d.ts +0 -1
  326. package/build/require/type/indexed/index.js +1 -1
  327. package/build/require/type/indexed/indexed-from-mapped-key.d.ts +2 -2
  328. package/build/require/type/indexed/indexed-from-mapped-key.js +11 -3
  329. package/build/require/type/indexed/indexed-property-keys.d.ts +1 -0
  330. package/build/require/type/indexed/indexed-property-keys.js +10 -0
  331. package/build/require/type/indexed/indexed.d.ts +40 -4
  332. package/build/require/type/indexed/indexed.js +84 -4
  333. package/build/require/type/instance-type/index.js +1 -0
  334. package/build/require/type/instance-type/instance-type.d.ts +1 -0
  335. package/build/require/type/instance-type/instance-type.js +2 -0
  336. package/build/require/type/integer/index.js +1 -0
  337. package/build/require/type/integer/integer.d.ts +1 -0
  338. package/build/require/type/integer/integer.js +2 -0
  339. package/build/require/type/intersect/index.js +1 -0
  340. package/build/require/type/intersect/intersect-create.js +9 -0
  341. package/build/require/type/intersect/intersect-evaluated.d.ts +1 -0
  342. package/build/require/type/intersect/intersect-evaluated.js +10 -0
  343. package/build/require/type/intersect/intersect-type.js +1 -0
  344. package/build/require/type/intersect/intersect.d.ts +1 -0
  345. package/build/require/type/intersect/intersect.js +6 -0
  346. package/build/require/type/intrinsic/capitalize.d.ts +1 -0
  347. package/build/require/type/intrinsic/capitalize.js +2 -0
  348. package/build/require/type/intrinsic/index.js +1 -0
  349. package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +5 -0
  350. package/build/require/type/intrinsic/intrinsic.d.ts +2 -0
  351. package/build/require/type/intrinsic/intrinsic.js +17 -1
  352. package/build/require/type/intrinsic/lowercase.d.ts +1 -0
  353. package/build/require/type/intrinsic/lowercase.js +2 -0
  354. package/build/require/type/intrinsic/uncapitalize.d.ts +1 -0
  355. package/build/require/type/intrinsic/uncapitalize.js +2 -0
  356. package/build/require/type/intrinsic/uppercase.d.ts +1 -0
  357. package/build/require/type/intrinsic/uppercase.js +2 -0
  358. package/build/require/type/iterator/index.js +1 -0
  359. package/build/require/type/iterator/iterator.d.ts +1 -0
  360. package/build/require/type/iterator/iterator.js +2 -0
  361. package/build/require/type/keyof/index.js +1 -0
  362. package/build/require/type/keyof/keyof-from-mapped-result.js +4 -0
  363. package/build/require/type/keyof/keyof-property-keys.d.ts +2 -0
  364. package/build/require/type/keyof/keyof-property-keys.js +21 -0
  365. package/build/require/type/keyof/keyof.d.ts +2 -0
  366. package/build/require/type/keyof/keyof.js +7 -0
  367. package/build/require/type/literal/index.js +1 -0
  368. package/build/require/type/literal/literal.d.ts +1 -0
  369. package/build/require/type/literal/literal.js +2 -0
  370. package/build/require/type/mapped/index.js +1 -0
  371. package/build/require/type/mapped/mapped-key.js +2 -0
  372. package/build/require/type/mapped/mapped-result.js +2 -0
  373. package/build/require/type/mapped/mapped.d.ts +2 -0
  374. package/build/require/type/mapped/mapped.js +20 -1
  375. package/build/require/type/modifiers/index.js +1 -0
  376. package/build/require/type/modifiers/modifiers.js +11 -0
  377. package/build/require/type/never/index.js +1 -0
  378. package/build/require/type/never/never.d.ts +1 -0
  379. package/build/require/type/never/never.js +2 -0
  380. package/build/require/type/not/index.js +1 -0
  381. package/build/require/type/not/not.d.ts +1 -0
  382. package/build/require/type/not/not.js +2 -0
  383. package/build/require/type/null/index.js +1 -0
  384. package/build/require/type/null/null.d.ts +1 -0
  385. package/build/require/type/null/null.js +2 -0
  386. package/build/require/type/number/index.js +1 -0
  387. package/build/require/type/number/number.d.ts +1 -0
  388. package/build/require/type/number/number.js +2 -0
  389. package/build/require/type/object/index.js +1 -0
  390. package/build/require/type/object/object.d.ts +5 -0
  391. package/build/require/type/object/object.js +7 -0
  392. package/build/require/type/omit/index.js +1 -0
  393. package/build/require/type/omit/omit-from-mapped-key.js +5 -0
  394. package/build/require/type/omit/omit.d.ts +3 -0
  395. package/build/require/type/omit/omit.js +13 -0
  396. package/build/require/type/operators/index.js +1 -0
  397. package/build/require/type/operators/operators.d.ts +8 -0
  398. package/build/require/type/operators/operators.js +16 -0
  399. package/build/require/type/optional/index.js +1 -0
  400. package/build/require/type/optional/optional.d.ts +1 -0
  401. package/build/require/type/optional/optional.js +2 -0
  402. package/build/require/type/parameters/index.js +1 -0
  403. package/build/require/type/parameters/parameters.d.ts +1 -0
  404. package/build/require/type/parameters/parameters.js +2 -0
  405. package/build/require/type/partial/index.js +1 -0
  406. package/build/require/type/partial/partial-from-mapped-result.js +4 -0
  407. package/build/require/type/partial/partial.d.ts +2 -0
  408. package/build/require/type/partial/partial.js +10 -0
  409. package/build/require/type/patterns/index.js +1 -0
  410. package/build/require/type/patterns/patterns.js +1 -0
  411. package/build/require/type/pick/index.js +1 -0
  412. package/build/require/type/pick/pick-from-mapped-key.js +5 -0
  413. package/build/require/type/pick/pick.d.ts +3 -0
  414. package/build/require/type/pick/pick.js +8 -0
  415. package/build/require/type/promise/index.js +1 -0
  416. package/build/require/type/promise/promise.d.ts +1 -0
  417. package/build/require/type/promise/promise.js +2 -0
  418. package/build/require/type/readonly/index.js +1 -0
  419. package/build/require/type/readonly/readonly.d.ts +1 -0
  420. package/build/require/type/readonly/readonly.js +2 -0
  421. package/build/require/type/readonly-optional/index.js +1 -0
  422. package/build/require/type/readonly-optional/readonly-optional.d.ts +1 -0
  423. package/build/require/type/readonly-optional/readonly-optional.js +2 -0
  424. package/build/require/type/record/index.js +1 -0
  425. package/build/require/type/record/record.d.ts +11 -9
  426. package/build/require/type/record/record.js +54 -28
  427. package/build/require/type/recursive/index.js +1 -0
  428. package/build/require/type/recursive/recursive.d.ts +1 -0
  429. package/build/require/type/recursive/recursive.js +4 -0
  430. package/build/require/type/ref/index.js +1 -0
  431. package/build/require/type/ref/ref.d.ts +2 -0
  432. package/build/require/type/ref/ref.js +2 -0
  433. package/build/require/type/regexp/index.js +1 -0
  434. package/build/require/type/regexp/regexp.d.ts +2 -0
  435. package/build/require/type/regexp/regexp.js +2 -0
  436. package/build/require/type/registry/format.d.ts +6 -0
  437. package/build/require/type/registry/format.js +8 -0
  438. package/build/require/type/registry/index.js +1 -0
  439. package/build/require/type/registry/type.d.ts +6 -0
  440. package/build/require/type/registry/type.js +8 -0
  441. package/build/require/type/required/index.js +1 -0
  442. package/build/require/type/required/required-from-mapped-result.js +4 -0
  443. package/build/require/type/required/required.d.ts +2 -0
  444. package/build/require/type/required/required.js +10 -0
  445. package/build/require/type/rest/index.js +1 -0
  446. package/build/require/type/rest/rest.d.ts +1 -0
  447. package/build/require/type/rest/rest.js +6 -0
  448. package/build/require/type/return-type/index.js +1 -0
  449. package/build/require/type/return-type/return-type.d.ts +1 -0
  450. package/build/require/type/return-type/return-type.js +2 -0
  451. package/build/require/type/schema/anyschema.js +1 -0
  452. package/build/require/type/schema/index.js +1 -0
  453. package/build/require/type/schema/schema.d.ts +7 -0
  454. package/build/require/type/schema/schema.js +1 -0
  455. package/build/require/type/static/index.js +1 -0
  456. package/build/require/type/static/static.d.ts +3 -0
  457. package/build/require/type/static/static.js +1 -0
  458. package/build/require/type/strict/index.js +1 -0
  459. package/build/require/type/strict/strict.d.ts +1 -0
  460. package/build/require/type/strict/strict.js +2 -0
  461. package/build/require/type/string/index.js +1 -0
  462. package/build/require/type/string/string.d.ts +7 -0
  463. package/build/require/type/string/string.js +2 -0
  464. package/build/require/type/symbol/index.js +1 -0
  465. package/build/require/type/symbol/symbol.d.ts +1 -0
  466. package/build/require/type/symbol/symbol.js +2 -0
  467. package/build/require/type/symbols/index.js +1 -0
  468. package/build/require/type/symbols/symbols.d.ts +5 -0
  469. package/build/require/type/symbols/symbols.js +6 -0
  470. package/build/require/type/template-literal/finite.js +11 -0
  471. package/build/require/type/template-literal/generate.js +11 -0
  472. package/build/require/type/template-literal/index.js +1 -0
  473. package/build/require/type/template-literal/parser.d.ts +2 -0
  474. package/build/require/type/template-literal/parser.js +18 -0
  475. package/build/require/type/template-literal/pattern.js +12 -0
  476. package/build/require/type/template-literal/syntax.d.ts +1 -0
  477. package/build/require/type/template-literal/syntax.js +9 -0
  478. package/build/require/type/template-literal/template-literal.d.ts +2 -0
  479. package/build/require/type/template-literal/template-literal.js +3 -0
  480. package/build/require/type/template-literal/union.d.ts +1 -0
  481. package/build/require/type/template-literal/union.js +5 -0
  482. package/build/require/type/transform/index.js +1 -0
  483. package/build/require/type/transform/transform.d.ts +1 -0
  484. package/build/require/type/transform/transform.js +10 -0
  485. package/build/require/type/tuple/index.js +1 -0
  486. package/build/require/type/tuple/tuple.d.ts +1 -0
  487. package/build/require/type/tuple/tuple.js +4 -0
  488. package/build/require/type/type/index.d.ts +1 -0
  489. package/build/require/type/type/index.js +8 -0
  490. package/build/require/type/type/javascript.d.ts +19 -0
  491. package/build/require/type/type/javascript.js +19 -0
  492. package/build/require/type/type/json.d.ts +64 -3
  493. package/build/require/type/type/json.js +56 -1
  494. package/build/require/type/type/type.js +4 -0
  495. package/build/require/type/uint8array/index.js +1 -0
  496. package/build/require/type/uint8array/uint8array.d.ts +1 -0
  497. package/build/require/type/uint8array/uint8array.js +2 -0
  498. package/build/require/type/undefined/index.js +1 -0
  499. package/build/require/type/undefined/undefined.d.ts +1 -0
  500. package/build/require/type/undefined/undefined.js +2 -0
  501. package/build/require/type/union/index.js +1 -0
  502. package/build/require/type/union/union-create.js +1 -0
  503. package/build/require/type/union/union-evaluated.d.ts +1 -0
  504. package/build/require/type/union/union-evaluated.js +11 -0
  505. package/build/require/type/union/union-type.js +1 -0
  506. package/build/require/type/union/union.d.ts +1 -0
  507. package/build/require/type/union/union.js +3 -0
  508. package/build/require/type/unknown/index.js +1 -0
  509. package/build/require/type/unknown/unknown.d.ts +1 -0
  510. package/build/require/type/unknown/unknown.js +2 -0
  511. package/build/require/type/unsafe/index.js +1 -0
  512. package/build/require/type/unsafe/unsafe.d.ts +1 -0
  513. package/build/require/type/unsafe/unsafe.js +2 -0
  514. package/build/require/type/void/index.js +1 -0
  515. package/build/require/type/void/void.d.ts +1 -0
  516. package/build/require/type/void/void.js +2 -0
  517. package/build/require/value/cast/cast.d.ts +2 -0
  518. package/build/require/value/cast/cast.js +29 -0
  519. package/build/require/value/cast/index.js +1 -0
  520. package/build/require/value/check/check.d.ts +2 -0
  521. package/build/require/value/check/check.js +20 -1
  522. package/build/require/value/check/index.js +1 -0
  523. package/build/require/value/clean/clean.d.ts +2 -0
  524. package/build/require/value/clean/clean.js +13 -1
  525. package/build/require/value/clean/index.js +1 -0
  526. package/build/require/value/clone/clone.d.ts +1 -0
  527. package/build/require/value/clone/clone.js +8 -0
  528. package/build/require/value/clone/index.js +1 -0
  529. package/build/require/value/convert/convert.d.ts +2 -0
  530. package/build/require/value/convert/convert.js +31 -1
  531. package/build/require/value/convert/index.js +1 -0
  532. package/build/require/value/create/create.d.ts +2 -0
  533. package/build/require/value/create/create.js +18 -0
  534. package/build/require/value/create/index.js +1 -0
  535. package/build/require/value/default/default.d.ts +2 -0
  536. package/build/require/value/default/default.js +20 -0
  537. package/build/require/value/default/index.js +1 -0
  538. package/build/require/value/delta/delta.js +16 -0
  539. package/build/require/value/delta/index.js +1 -0
  540. package/build/require/value/deref/deref.d.ts +1 -0
  541. package/build/require/value/deref/deref.js +2 -0
  542. package/build/require/value/deref/index.js +1 -0
  543. package/build/require/value/equal/equal.d.ts +1 -0
  544. package/build/require/value/equal/equal.js +8 -0
  545. package/build/require/value/equal/index.js +1 -0
  546. package/build/require/value/guard/guard.d.ts +20 -0
  547. package/build/require/value/guard/guard.js +31 -0
  548. package/build/require/value/guard/index.js +1 -0
  549. package/build/require/value/hash/hash.d.ts +1 -0
  550. package/build/require/value/hash/hash.js +20 -0
  551. package/build/require/value/hash/index.js +1 -0
  552. package/build/require/value/index.js +13 -0
  553. package/build/require/value/mutate/index.js +1 -0
  554. package/build/require/value/mutate/mutate.d.ts +1 -0
  555. package/build/require/value/mutate/mutate.js +12 -0
  556. package/build/require/value/pointer/index.js +1 -0
  557. package/build/require/value/pointer/pointer.d.ts +5 -0
  558. package/build/require/value/pointer/pointer.js +19 -0
  559. package/build/require/value/transform/decode.d.ts +5 -0
  560. package/build/require/value/transform/decode.js +24 -0
  561. package/build/require/value/transform/encode.d.ts +6 -0
  562. package/build/require/value/transform/encode.js +26 -0
  563. package/build/require/value/transform/has.d.ts +1 -0
  564. package/build/require/value/transform/has.js +17 -0
  565. package/build/require/value/transform/index.js +1 -0
  566. package/build/require/value/value/index.js +1 -0
  567. package/build/require/value/value/value.d.ts +24 -0
  568. package/build/require/value/value/value.js +16 -0
  569. package/license +3 -1
  570. package/package.json +1 -1
  571. package/readme.md +4 -5
  572. package/build/import/type/indexed/indexed-result.d.mts +0 -33
  573. package/build/import/type/indexed/indexed-result.mjs +0 -65
  574. package/build/require/type/indexed/indexed-result.d.ts +0 -33
  575. package/build/require/type/indexed/indexed-result.js +0 -69
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Clean = void 0;
4
5
  const index_1 = require("../guard/index");
@@ -8,12 +9,21 @@ const index_3 = require("../check/index");
8
9
  const index_4 = require("../clone/index");
9
10
  const index_5 = require("../deref/index");
10
11
  const index_6 = require("../../type/symbols/index");
12
+ // ------------------------------------------------------------------
13
+ // IsSchema
14
+ // ------------------------------------------------------------------
11
15
  function IsSchema(schema) {
12
16
  return (0, type_1.TSchema)(schema);
13
17
  }
18
+ // ------------------------------------------------------------------
19
+ // IsCheckable
20
+ // ------------------------------------------------------------------
14
21
  function IsCheckable(schema) {
15
22
  return (0, type_1.TSchema)(schema) && schema[index_6.Kind] !== 'Unsafe';
16
23
  }
24
+ // ------------------------------------------------------------------
25
+ // Types
26
+ // ------------------------------------------------------------------
17
27
  function TArray(schema, references, value) {
18
28
  if (!(0, index_1.IsArray)(value))
19
29
  return value;
@@ -37,7 +47,7 @@ function TIntersect(schema, references, value) {
37
47
  }
38
48
  function TObject(schema, references, value) {
39
49
  if (!(0, index_1.IsObject)(value) || (0, index_1.IsArray)(value))
40
- return value;
50
+ return value; // Check IsArray for AllowArrayObject configuration
41
51
  const additionalProperties = schema.additionalProperties;
42
52
  for (const key of Object.getOwnPropertyNames(value)) {
43
53
  if (key in schema.properties) {
@@ -87,6 +97,7 @@ function TTuple(schema, references, value) {
87
97
  for (let i = 0; i < length; i++) {
88
98
  value[i] = Visit(schema.items[i], references, value[i]);
89
99
  }
100
+ // prettier-ignore
90
101
  return value.length > length
91
102
  ? value.slice(0, length)
92
103
  : value;
@@ -123,6 +134,7 @@ function Visit(schema, references, value) {
123
134
  return value;
124
135
  }
125
136
  }
137
+ /** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */
126
138
  function Clean(...args) {
127
139
  return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);
128
140
  }
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1 +1,2 @@
1
+ /** Returns a clone of the given value */
1
2
  export declare function Clone<T extends unknown>(value: T): T;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Clone = void 0;
4
5
  const index_1 = require("../guard/index");
6
+ // --------------------------------------------------------------------------
7
+ // Clonable
8
+ // --------------------------------------------------------------------------
5
9
  function ObjectType(value) {
6
10
  const keys = [...Object.getOwnPropertyNames(value), ...Object.getOwnPropertySymbols(value)];
7
11
  return keys.reduce((acc, key) => ({ ...acc, [key]: Clone(value[key]) }), {});
@@ -18,6 +22,10 @@ function DateType(value) {
18
22
  function ValueType(value) {
19
23
  return value;
20
24
  }
25
+ // --------------------------------------------------------------------------
26
+ // Clone
27
+ // --------------------------------------------------------------------------
28
+ /** Returns a clone of the given value */
21
29
  function Clone(value) {
22
30
  if ((0, index_1.IsArray)(value))
23
31
  return ArrayType(value);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -3,5 +3,7 @@ export declare class ValueConvertUnknownTypeError extends Error {
3
3
  readonly schema: TSchema;
4
4
  constructor(schema: TSchema);
5
5
  }
6
+ /** Converts any type mismatched values to their target type if a reasonable conversion is possible. */
6
7
  export declare function Convert<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
8
+ /** Converts any type mismatched values to their target type if a reasonable conversion is possible. */
7
9
  export declare function Convert<T extends TSchema>(schema: T, value: unknown): unknown;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Convert = exports.ValueConvertUnknownTypeError = void 0;
4
5
  const index_1 = require("../guard/index");
@@ -8,6 +9,9 @@ const index_4 = require("../deref/index");
8
9
  const type_1 = require("../../type/guard/type");
9
10
  const index_5 = require("../../type/symbols/index");
10
11
  const index_6 = require("../../type/composite/index");
12
+ // ------------------------------------------------------------------
13
+ // Errors
14
+ // ------------------------------------------------------------------
11
15
  class ValueConvertUnknownTypeError extends Error {
12
16
  constructor(schema) {
13
17
  super('Unknown type');
@@ -15,6 +19,9 @@ class ValueConvertUnknownTypeError extends Error {
15
19
  }
16
20
  }
17
21
  exports.ValueConvertUnknownTypeError = ValueConvertUnknownTypeError;
22
+ // ------------------------------------------------------------------
23
+ // Conversions
24
+ // ------------------------------------------------------------------
18
25
  function IsStringNumeric(value) {
19
26
  return (0, index_1.IsString)(value) && !isNaN(value) && !isNaN(parseFloat(value));
20
27
  }
@@ -42,6 +49,9 @@ function IsDateTimeStringWithoutTimeZone(value) {
42
49
  function IsDateString(value) {
43
50
  return (0, index_1.IsString)(value) && /^\d\d\d\d-[0-1]\d-[0-3]\d$/i.test(value);
44
51
  }
52
+ // ------------------------------------------------------------------
53
+ // Convert
54
+ // ------------------------------------------------------------------
45
55
  function TryConvertLiteralString(value, target) {
46
56
  const conversion = TryConvertString(value);
47
57
  return conversion === target ? conversion : value;
@@ -54,6 +64,7 @@ function TryConvertLiteralBoolean(value, target) {
54
64
  const conversion = TryConvertBoolean(value);
55
65
  return conversion === target ? conversion : value;
56
66
  }
67
+ // prettier-ignore
57
68
  function TryConvertLiteral(schema, value) {
58
69
  return ((0, index_1.IsString)(schema.const) ? TryConvertLiteralString(value, schema.const) :
59
70
  (0, index_1.IsNumber)(schema.const) ? TryConvertLiteralNumber(value, schema.const) :
@@ -81,6 +92,14 @@ function TryConvertNull(value) {
81
92
  function TryConvertUndefined(value) {
82
93
  return (0, index_1.IsString)(value) && value === 'undefined' ? undefined : value;
83
94
  }
95
+ // ------------------------------------------------------------------
96
+ // note: this function may return an invalid dates for the regex
97
+ // tests above. Invalid dates will however be checked during the
98
+ // casting function and will return a epoch date if invalid.
99
+ // Consider better string parsing for the iso dates in future
100
+ // revisions.
101
+ // ------------------------------------------------------------------
102
+ // prettier-ignore
84
103
  function TryConvertDate(value) {
85
104
  return ((0, index_1.IsDate)(value) ? value :
86
105
  (0, index_1.IsNumber)(value) ? new Date(value) :
@@ -94,9 +113,15 @@ function TryConvertDate(value) {
94
113
  IsDateString(value) ? new Date(`${value}T00:00:00.000Z`) :
95
114
  value);
96
115
  }
116
+ // ------------------------------------------------------------------
117
+ // Default
118
+ // ------------------------------------------------------------------
97
119
  function Default(value) {
98
120
  return value;
99
121
  }
122
+ // ------------------------------------------------------------------
123
+ // Convert
124
+ // ------------------------------------------------------------------
100
125
  function TArray(schema, references, value) {
101
126
  if ((0, index_1.IsArray)(value)) {
102
127
  return value.map((value) => Visit(schema.items, references, value));
@@ -115,11 +140,12 @@ function TDate(schema, references, value) {
115
140
  function TInteger(schema, references, value) {
116
141
  return TryConvertInteger(value);
117
142
  }
143
+ // prettier-ignore
118
144
  function TIntersect(schema, references, value) {
119
145
  const allObjects = schema.allOf.every(schema => (0, type_1.TObject)(schema));
120
146
  if (allObjects)
121
147
  return Visit((0, index_6.Composite)(schema.allOf), references, value);
122
- return Visit(schema.allOf[0], references, value);
148
+ return Visit(schema.allOf[0], references, value); // todo: fix this
123
149
  }
124
150
  function TLiteral(schema, references, value) {
125
151
  return TryConvertLiteral(schema, value);
@@ -130,6 +156,7 @@ function TNull(schema, references, value) {
130
156
  function TNumber(schema, references, value) {
131
157
  return TryConvertNumber(value);
132
158
  }
159
+ // prettier-ignore
133
160
  function TObject(schema, references, value) {
134
161
  const isConvertable = (0, index_1.IsObject)(value);
135
162
  if (!isConvertable)
@@ -161,6 +188,7 @@ function TSymbol(schema, references, value) {
161
188
  function TThis(schema, references, value) {
162
189
  return Visit((0, index_4.Deref)(schema, references), references, value);
163
190
  }
191
+ // prettier-ignore
164
192
  function TTuple(schema, references, value) {
165
193
  const isConvertable = (0, index_1.IsArray)(value) && !(0, index_1.IsUndefined)(schema.items);
166
194
  if (!isConvertable)
@@ -227,6 +255,8 @@ function Visit(schema, references, value) {
227
255
  return Default(value);
228
256
  }
229
257
  }
258
+ /** Converts any type mismatched values to their target type if a reasonable conversion is possible. */
259
+ // prettier-ignore
230
260
  function Convert(...args) {
231
261
  return args.length === 3
232
262
  ? Visit(args[0], args[1], args[2])
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -25,5 +25,7 @@ export declare class ValueCreateRecursiveInstantiationError extends Error {
25
25
  readonly recursiveMaxDepth: number;
26
26
  constructor(schema: TSchema, recursiveMaxDepth: number);
27
27
  }
28
+ /** Creates a value from the given schema and references */
28
29
  export declare function Create<T extends TSchema>(schema: T, references: TSchema[]): Static<T>;
30
+ /** Creates a value from the given schema */
29
31
  export declare function Create<T extends TSchema>(schema: T): Static<T>;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Create = exports.ValueCreateRecursiveInstantiationError = exports.ValueCreateTempateLiteralTypeError = exports.ValueCreateIntersectTypeError = exports.ValueCreateNotTypeError = exports.ValueCreateNeverTypeError = exports.ValueCreateUnknownTypeError = void 0;
4
5
  const index_1 = require("../guard/index");
@@ -8,6 +9,9 @@ const index_4 = require("../../type/template-literal/index");
8
9
  const index_5 = require("../../type/patterns/index");
9
10
  const index_6 = require("../../type/registry/index");
10
11
  const index_7 = require("../../type/symbols/index");
12
+ // ------------------------------------------------------------------
13
+ // Errors
14
+ // ------------------------------------------------------------------
11
15
  class ValueCreateUnknownTypeError extends Error {
12
16
  constructor(schema) {
13
17
  super('Unknown type');
@@ -51,6 +55,9 @@ class ValueCreateRecursiveInstantiationError extends Error {
51
55
  }
52
56
  }
53
57
  exports.ValueCreateRecursiveInstantiationError = ValueCreateRecursiveInstantiationError;
58
+ // ------------------------------------------------------------------
59
+ // Create
60
+ // ------------------------------------------------------------------
54
61
  function TAny(schema, references) {
55
62
  if ((0, index_1.HasPropertyKey)(schema, 'default')) {
56
63
  return schema.default;
@@ -159,6 +166,13 @@ function TIntersect(schema, references) {
159
166
  return schema.default;
160
167
  }
161
168
  else {
169
+ // --------------------------------------------------------------
170
+ // Note: The best we can do here is attempt to instance each
171
+ // sub type and apply through object assign. For non-object
172
+ // sub types, we just escape the assignment and just return
173
+ // the value. In the latter case, this is typically going to
174
+ // be a consequence of an illogical intersection.
175
+ // --------------------------------------------------------------
162
176
  const value = schema.allOf.reduce((acc, schema) => {
163
177
  const next = Visit(schema, references);
164
178
  return typeof next === 'object' ? { ...acc, ...next } : next;
@@ -454,8 +468,12 @@ function Visit(schema, references) {
454
468
  return TKind(schema_, references_);
455
469
  }
456
470
  }
471
+ // ------------------------------------------------------------------
472
+ // State
473
+ // ------------------------------------------------------------------
457
474
  const recursiveMaxDepth = 512;
458
475
  let recursiveDepth = 0;
476
+ /** Creates a value from the given schema */
459
477
  function Create(...args) {
460
478
  recursiveDepth = 0;
461
479
  return args.length === 2 ? Visit(args[0], args[1]) : Visit(args[0], []);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1,3 +1,5 @@
1
1
  import type { TSchema } from '../../type/schema/index';
2
+ /** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */
2
3
  export declare function Default<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
4
+ /** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */
3
5
  export declare function Default<T extends TSchema>(schema: T, value: unknown): unknown;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Default = void 0;
4
5
  const index_1 = require("../guard/index");
@@ -6,15 +7,27 @@ const type_1 = require("../../type/guard/type");
6
7
  const index_2 = require("../check/index");
7
8
  const index_3 = require("../deref/index");
8
9
  const index_4 = require("../../type/symbols/index");
10
+ // ------------------------------------------------------------------
11
+ // ValueOrDefault
12
+ // ------------------------------------------------------------------
9
13
  function ValueOrDefault(schema, value) {
10
14
  return !(value === undefined) || !('default' in schema) ? value : schema.default;
11
15
  }
16
+ // ------------------------------------------------------------------
17
+ // IsCheckable
18
+ // ------------------------------------------------------------------
12
19
  function IsCheckable(schema) {
13
20
  return (0, type_1.TSchema)(schema) && schema[index_4.Kind] !== 'Unsafe';
14
21
  }
22
+ // ------------------------------------------------------------------
23
+ // IsDefaultSchema
24
+ // ------------------------------------------------------------------
15
25
  function IsDefaultSchema(value) {
16
26
  return (0, type_1.TSchema)(value) && 'default' in value;
17
27
  }
28
+ // ------------------------------------------------------------------
29
+ // Types
30
+ // ------------------------------------------------------------------
18
31
  function TArray(schema, references, value) {
19
32
  const defaulted = ValueOrDefault(schema, value);
20
33
  if (!(0, index_1.IsArray)(defaulted))
@@ -37,13 +50,16 @@ function TObject(schema, references, value) {
37
50
  return defaulted;
38
51
  const additionalPropertiesSchema = schema.additionalProperties;
39
52
  const knownPropertyKeys = Object.getOwnPropertyNames(schema.properties);
53
+ // properties
40
54
  for (const key of knownPropertyKeys) {
41
55
  if (!IsDefaultSchema(schema.properties[key]))
42
56
  continue;
43
57
  defaulted[key] = Visit(schema.properties[key], references, defaulted[key]);
44
58
  }
59
+ // return if not additional properties
45
60
  if (!IsDefaultSchema(additionalPropertiesSchema))
46
61
  return defaulted;
62
+ // additional properties
47
63
  for (const key of Object.getOwnPropertyNames(defaulted)) {
48
64
  if (knownPropertyKeys.includes(key))
49
65
  continue;
@@ -58,13 +74,16 @@ function TRecord(schema, references, value) {
58
74
  const additionalPropertiesSchema = schema.additionalProperties;
59
75
  const [propertyKeyPattern, propertySchema] = Object.entries(schema.patternProperties)[0];
60
76
  const knownPropertyKey = new RegExp(propertyKeyPattern);
77
+ // properties
61
78
  for (const key of Object.getOwnPropertyNames(defaulted)) {
62
79
  if (!(knownPropertyKey.test(key) && IsDefaultSchema(propertySchema)))
63
80
  continue;
64
81
  defaulted[key] = Visit(propertySchema, references, defaulted[key]);
65
82
  }
83
+ // return if not additional properties
66
84
  if (!IsDefaultSchema(additionalPropertiesSchema))
67
85
  return defaulted;
86
+ // additional properties
68
87
  for (const key of Object.getOwnPropertyNames(defaulted)) {
69
88
  if (knownPropertyKey.test(key))
70
89
  continue;
@@ -123,6 +142,7 @@ function Visit(schema, references, value) {
123
142
  return ValueOrDefault(schema_, value);
124
143
  }
125
144
  }
145
+ /** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */
126
146
  function Default(...args) {
127
147
  return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);
128
148
  }
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Patch = exports.Diff = exports.ValueDeltaUnableToDiffUnknownValue = exports.ValueDeltaObjectWithSymbolKeyError = exports.Edit = exports.Delete = exports.Update = exports.Insert = void 0;
4
5
  const index_1 = require("../guard/index");
@@ -24,6 +25,9 @@ exports.Delete = (0, index_5.Object)({
24
25
  path: (0, index_6.String)(),
25
26
  });
26
27
  exports.Edit = (0, index_8.Union)([exports.Insert, exports.Update, exports.Delete]);
28
+ // ------------------------------------------------------------------
29
+ // Errors
30
+ // ------------------------------------------------------------------
27
31
  class ValueDeltaObjectWithSymbolKeyError extends Error {
28
32
  constructor(key) {
29
33
  super('Cannot diff objects with symbol keys');
@@ -38,6 +42,9 @@ class ValueDeltaUnableToDiffUnknownValue extends Error {
38
42
  }
39
43
  }
40
44
  exports.ValueDeltaUnableToDiffUnknownValue = ValueDeltaUnableToDiffUnknownValue;
45
+ // ------------------------------------------------------------------
46
+ // Command Factory
47
+ // ------------------------------------------------------------------
41
48
  function CreateUpdate(path, value) {
42
49
  return { type: 'update', path, value };
43
50
  }
@@ -47,6 +54,9 @@ function CreateInsert(path, value) {
47
54
  function CreateDelete(path) {
48
55
  return { type: 'delete', path };
49
56
  }
57
+ // ------------------------------------------------------------------
58
+ // Diffing Generators
59
+ // ------------------------------------------------------------------
50
60
  function* ObjectType(path, current, next) {
51
61
  if (!(0, index_1.IsPlainObject)(next))
52
62
  return yield CreateUpdate(path, next);
@@ -118,10 +128,16 @@ function* Visit(path, current, next) {
118
128
  return yield* ValueType(path, current, next);
119
129
  throw new ValueDeltaUnableToDiffUnknownValue(current);
120
130
  }
131
+ // ------------------------------------------------------------------
132
+ // Diff
133
+ // ------------------------------------------------------------------
121
134
  function Diff(current, next) {
122
135
  return [...Visit('', current, next)];
123
136
  }
124
137
  exports.Diff = Diff;
138
+ // ------------------------------------------------------------------
139
+ // Patch
140
+ // ------------------------------------------------------------------
125
141
  function IsRootUpdate(edits) {
126
142
  return edits.length > 0 && edits[0].path === '' && edits[0].type === 'update';
127
143
  }
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -5,4 +5,5 @@ export declare class TypeDereferenceError extends Error {
5
5
  readonly schema: TRef | TThis;
6
6
  constructor(schema: TRef | TThis);
7
7
  }
8
+ /** Dereferences a schema from the references array or throws if not found */
8
9
  export declare function Deref(schema: TRef | TThis, references: TSchema[]): TSchema;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Deref = exports.TypeDereferenceError = void 0;
4
5
  class TypeDereferenceError extends Error {
@@ -8,6 +9,7 @@ class TypeDereferenceError extends Error {
8
9
  }
9
10
  }
10
11
  exports.TypeDereferenceError = TypeDereferenceError;
12
+ /** Dereferences a schema from the references array or throws if not found */
11
13
  function Deref(schema, references) {
12
14
  const index = references.findIndex((target) => target.$id === schema.$ref);
13
15
  if (index === -1)
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1 +1,2 @@
1
+ /** Returns true if the left value deep-equals the right */
1
2
  export declare function Equal<T>(left: T, right: unknown): right is T;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.Equal = void 0;
4
5
  const index_1 = require("../guard/index");
6
+ // ------------------------------------------------------------------
7
+ // Equality Checks
8
+ // ------------------------------------------------------------------
5
9
  function ObjectType(left, right) {
6
10
  if (!(0, index_1.IsPlainObject)(right))
7
11
  return false;
@@ -27,6 +31,10 @@ function TypedArrayType(left, right) {
27
31
  function ValueType(left, right) {
28
32
  return left === right;
29
33
  }
34
+ // ------------------------------------------------------------------
35
+ // Equal
36
+ // ------------------------------------------------------------------
37
+ /** Returns true if the left value deep-equals the right */
30
38
  function Equal(left, right) {
31
39
  if ((0, index_1.IsPlainObject)(left))
32
40
  return ObjectType(left, right);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -2,23 +2,43 @@ export type ObjectType = Record<PropertyKey, unknown>;
2
2
  export type ArrayType = unknown[];
3
3
  export type ValueType = null | undefined | symbol | bigint | number | boolean | string;
4
4
  export type TypedArrayType = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array;
5
+ /** Returns true if this value is an async iterator */
5
6
  export declare function IsAsyncIterator(value: unknown): value is AsyncIterableIterator<any>;
7
+ /** Returns true if this value is an iterator */
6
8
  export declare function IsIterator(value: unknown): value is IterableIterator<any>;
9
+ /** Returns true if this value is a typed array */
7
10
  export declare function IsTypedArray(value: unknown): value is TypedArrayType;
11
+ /** Returns true if this value is a Promise */
8
12
  export declare function IsPromise(value: unknown): value is Promise<unknown>;
13
+ /** Returns true if the value is a Uint8Array */
9
14
  export declare function IsUint8Array(value: unknown): value is Uint8Array;
15
+ /** Returns true if this value is a Date */
10
16
  export declare function IsDate(value: unknown): value is Date;
17
+ /** Returns true if this value has this property key */
11
18
  export declare function HasPropertyKey<K extends PropertyKey>(value: Record<any, unknown>, key: K): value is ObjectType & Record<K, unknown>;
19
+ /** Returns true if this object is not an instance of any other type */
12
20
  export declare function IsPlainObject(value: unknown): value is ObjectType;
21
+ /** Returns true of this value is an object type */
13
22
  export declare function IsObject(value: unknown): value is ObjectType;
23
+ /** Returns true if this value is an array, but not a typed array */
14
24
  export declare function IsArray(value: unknown): value is ArrayType;
25
+ /** Returns true if this value is an undefined */
15
26
  export declare function IsUndefined(value: unknown): value is undefined;
27
+ /** Returns true if this value is an null */
16
28
  export declare function IsNull(value: unknown): value is null;
29
+ /** Returns true if this value is an boolean */
17
30
  export declare function IsBoolean(value: unknown): value is boolean;
31
+ /** Returns true if this value is an number */
18
32
  export declare function IsNumber(value: unknown): value is number;
33
+ /** Returns true if this value is an integer */
19
34
  export declare function IsInteger(value: unknown): value is number;
35
+ /** Returns true if this value is bigint */
20
36
  export declare function IsBigInt(value: unknown): value is bigint;
37
+ /** Returns true if this value is string */
21
38
  export declare function IsString(value: unknown): value is string;
39
+ /** Returns true if this value is a function */
22
40
  export declare function IsFunction(value: unknown): value is Function;
41
+ /** Returns true if this value is a symbol */
23
42
  export declare function IsSymbol(value: unknown): value is symbol;
43
+ /** Returns true if this value is a value type such as number, string, boolean */
24
44
  export declare function IsValueType(value: unknown): value is ValueType;