@sinclair/typebox 0.32.0-dev-26 → 0.32.0-dev-28

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 (256) hide show
  1. package/build/import/compiler/compiler.mjs +7 -0
  2. package/build/import/errors/errors.d.mts +16 -15
  3. package/build/import/errors/errors.mjs +24 -15
  4. package/build/import/errors/function.mjs +2 -0
  5. package/build/import/index.d.mts +2 -2
  6. package/build/import/type/awaited/awaited.mjs +2 -6
  7. package/build/import/type/clone/value.mjs +6 -2
  8. package/build/import/type/composite/composite.d.mts +1 -2
  9. package/build/import/type/composite/composite.mjs +2 -2
  10. package/build/import/type/const/const.mjs +6 -6
  11. package/build/import/type/constructor/constructor.d.mts +1 -1
  12. package/build/import/type/constructor/constructor.mjs +1 -1
  13. package/build/import/type/deref/deref.mjs +1 -2
  14. package/build/import/type/discard/discard.mjs +2 -2
  15. package/build/import/type/enum/enum.mjs +3 -0
  16. package/build/import/type/exclude/exclude-from-mapped-result.d.mts +5 -5
  17. package/build/import/type/exclude/exclude-from-mapped-result.mjs +7 -7
  18. package/build/import/type/exclude/exclude.mjs +0 -1
  19. package/build/import/type/extends/extends-check.mjs +137 -125
  20. package/build/import/type/extends/extends-from-mapped-key.d.mts +1 -1
  21. package/build/import/type/extends/extends-from-mapped-key.mjs +4 -5
  22. package/build/import/type/extends/extends-from-mapped-result.d.mts +5 -5
  23. package/build/import/type/extends/extends-from-mapped-result.mjs +7 -7
  24. package/build/import/type/extends/extends.mjs +0 -1
  25. package/build/import/type/extract/extract-from-mapped-result.d.mts +5 -5
  26. package/build/import/type/extract/extract-from-mapped-result.mjs +7 -7
  27. package/build/import/type/extract/extract.d.mts +1 -2
  28. package/build/import/type/extract/extract.mjs +4 -2
  29. package/build/import/type/guard/type.d.mts +3 -0
  30. package/build/import/type/guard/type.mjs +10 -0
  31. package/build/import/type/guard/value.d.mts +2 -0
  32. package/build/import/type/guard/value.mjs +4 -0
  33. package/build/import/type/index.d.mts +1 -1
  34. package/build/import/type/index.mjs +1 -1
  35. package/build/import/type/indexed/indexed-from-mapped-key.d.mts +2 -2
  36. package/build/import/type/indexed/indexed-from-mapped-key.mjs +4 -5
  37. package/build/import/type/indexed/indexed-from-mapped-result.d.mts +1 -1
  38. package/build/import/type/indexed/indexed-property-keys.d.mts +6 -6
  39. package/build/import/type/indexed/indexed-property-keys.mjs +3 -5
  40. package/build/import/type/indexed/indexed.d.mts +1 -1
  41. package/build/import/type/indexed/indexed.mjs +9 -27
  42. package/build/import/type/intersect/intersect-evaluated.mjs +3 -13
  43. package/build/import/type/intrinsic/capitalize.d.mts +2 -2
  44. package/build/import/type/intrinsic/intrinsic-from-mapped-key.d.mts +1 -1
  45. package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +4 -5
  46. package/build/import/type/intrinsic/intrinsic.d.mts +2 -3
  47. package/build/import/type/intrinsic/intrinsic.mjs +2 -5
  48. package/build/import/type/intrinsic/lowercase.d.mts +2 -2
  49. package/build/import/type/intrinsic/uncapitalize.d.mts +2 -2
  50. package/build/import/type/intrinsic/uppercase.d.mts +2 -2
  51. package/build/import/type/iterator/iterator.mjs +1 -1
  52. package/build/import/type/keyof/keyof-from-mapped-result.d.mts +3 -3
  53. package/build/import/type/keyof/keyof-from-mapped-result.mjs +4 -4
  54. package/build/import/type/keyof/keyof-property-keys.d.mts +3 -3
  55. package/build/import/type/keyof/keyof-property-keys.mjs +9 -15
  56. package/build/import/type/keyof/keyof.mjs +2 -8
  57. package/build/import/type/mapped/mapped.d.mts +6 -1
  58. package/build/import/type/mapped/mapped.mjs +21 -14
  59. package/build/import/type/not/not.mjs +1 -1
  60. package/build/import/type/object/object.d.mts +1 -1
  61. package/build/import/type/object/object.mjs +0 -1
  62. package/build/import/type/omit/index.d.mts +1 -0
  63. package/build/import/type/omit/index.mjs +1 -0
  64. package/build/import/type/omit/omit-from-mapped-key.mjs +4 -5
  65. package/build/import/type/omit/omit-from-mapped-result.d.mts +11 -0
  66. package/build/import/type/omit/omit-from-mapped-result.mjs +17 -0
  67. package/build/import/type/omit/omit.d.mts +6 -3
  68. package/build/import/type/omit/omit.mjs +11 -9
  69. package/build/import/type/optional/optional-from-mapped-result.d.mts +5 -5
  70. package/build/import/type/optional/optional-from-mapped-result.mjs +7 -7
  71. package/build/import/type/partial/partial-from-mapped-result.d.mts +5 -5
  72. package/build/import/type/partial/partial-from-mapped-result.mjs +4 -4
  73. package/build/import/type/partial/partial.d.mts +2 -3
  74. package/build/import/type/partial/partial.mjs +8 -21
  75. package/build/import/type/pick/index.d.mts +1 -0
  76. package/build/import/type/pick/index.mjs +1 -0
  77. package/build/import/type/pick/pick-from-mapped-key.mjs +4 -5
  78. package/build/import/type/pick/pick-from-mapped-result.d.mts +11 -0
  79. package/build/import/type/pick/pick-from-mapped-result.mjs +17 -0
  80. package/build/import/type/pick/pick.d.mts +5 -2
  81. package/build/import/type/pick/pick.mjs +11 -10
  82. package/build/import/type/promise/promise.mjs +1 -1
  83. package/build/import/type/readonly/readonly-from-mapped-result.d.mts +5 -5
  84. package/build/import/type/readonly/readonly-from-mapped-result.mjs +4 -4
  85. package/build/import/type/record/record.d.mts +5 -3
  86. package/build/import/type/record/record.mjs +13 -5
  87. package/build/import/type/ref/ref.mjs +1 -1
  88. package/build/import/type/regexp/regexp.d.mts +11 -4
  89. package/build/import/type/regexp/regexp.mjs +3 -3
  90. package/build/import/type/required/required-from-mapped-result.d.mts +5 -5
  91. package/build/import/type/required/required-from-mapped-result.mjs +7 -7
  92. package/build/import/type/required/required.d.mts +2 -3
  93. package/build/import/type/required/required.mjs +4 -14
  94. package/build/import/type/rest/rest.d.mts +2 -2
  95. package/build/import/type/rest/rest.mjs +1 -2
  96. package/build/import/type/schema/anyschema.d.mts +2 -1
  97. package/build/import/type/sets/index.d.mts +1 -0
  98. package/build/import/type/sets/index.mjs +1 -0
  99. package/build/import/type/sets/set.d.mts +24 -0
  100. package/build/import/type/sets/set.mjs +35 -0
  101. package/build/import/type/strict/strict.d.mts +1 -1
  102. package/build/import/type/strict/strict.mjs +1 -1
  103. package/build/import/type/template-literal/syntax.d.mts +1 -1
  104. package/build/import/type/template-literal/template-literal.d.mts +1 -1
  105. package/build/import/type/transform/transform.mjs +1 -1
  106. package/build/import/type/type/javascript.d.mts +2 -2
  107. package/build/import/type/type/javascript.mjs +1 -1
  108. package/build/import/type/type/json.d.mts +6 -2
  109. package/build/import/type/union/union-evaluated.mjs +3 -14
  110. package/build/import/value/cast/cast.d.mts +2 -15
  111. package/build/import/value/cast/cast.mjs +5 -28
  112. package/build/import/value/check/check.mjs +6 -1
  113. package/build/import/value/convert/convert.d.mts +0 -5
  114. package/build/import/value/convert/convert.mjs +0 -12
  115. package/build/import/value/create/create.d.mts +2 -23
  116. package/build/import/value/create/create.mjs +30 -53
  117. package/build/import/value/default/default.mjs +0 -2
  118. package/build/import/value/delta/delta.d.mts +4 -4
  119. package/build/import/value/delta/delta.mjs +12 -12
  120. package/build/import/value/index.d.mts +7 -7
  121. package/build/import/value/index.mjs +6 -6
  122. package/build/import/value/mutate/mutate.d.mts +2 -5
  123. package/build/import/value/mutate/mutate.mjs +5 -10
  124. package/build/require/compiler/compiler.js +7 -0
  125. package/build/require/errors/errors.d.ts +16 -15
  126. package/build/require/errors/errors.js +24 -15
  127. package/build/require/errors/function.js +2 -0
  128. package/build/require/index.d.ts +2 -2
  129. package/build/require/type/awaited/awaited.js +2 -6
  130. package/build/require/type/clone/value.js +6 -2
  131. package/build/require/type/composite/composite.d.ts +1 -2
  132. package/build/require/type/composite/composite.js +5 -6
  133. package/build/require/type/const/const.js +6 -6
  134. package/build/require/type/constructor/constructor.d.ts +1 -1
  135. package/build/require/type/constructor/constructor.js +1 -1
  136. package/build/require/type/deref/deref.js +0 -1
  137. package/build/require/type/discard/discard.js +2 -2
  138. package/build/require/type/enum/enum.js +3 -0
  139. package/build/require/type/exclude/exclude-from-mapped-result.d.ts +5 -5
  140. package/build/require/type/exclude/exclude-from-mapped-result.js +7 -7
  141. package/build/require/type/exclude/exclude.js +0 -1
  142. package/build/require/type/extends/extends-check.js +137 -125
  143. package/build/require/type/extends/extends-from-mapped-key.d.ts +1 -1
  144. package/build/require/type/extends/extends-from-mapped-key.js +4 -5
  145. package/build/require/type/extends/extends-from-mapped-result.d.ts +5 -5
  146. package/build/require/type/extends/extends-from-mapped-result.js +7 -7
  147. package/build/require/type/extends/extends.js +0 -1
  148. package/build/require/type/extract/extract-from-mapped-result.d.ts +5 -5
  149. package/build/require/type/extract/extract-from-mapped-result.js +7 -7
  150. package/build/require/type/extract/extract.d.ts +1 -2
  151. package/build/require/type/extract/extract.js +4 -3
  152. package/build/require/type/guard/type.d.ts +3 -0
  153. package/build/require/type/guard/type.js +12 -1
  154. package/build/require/type/guard/value.d.ts +2 -0
  155. package/build/require/type/guard/value.js +6 -1
  156. package/build/require/type/index.d.ts +1 -1
  157. package/build/require/type/index.js +1 -1
  158. package/build/require/type/indexed/indexed-from-mapped-key.d.ts +2 -2
  159. package/build/require/type/indexed/indexed-from-mapped-key.js +4 -5
  160. package/build/require/type/indexed/indexed-from-mapped-result.d.ts +1 -1
  161. package/build/require/type/indexed/indexed-property-keys.d.ts +6 -6
  162. package/build/require/type/indexed/indexed-property-keys.js +3 -5
  163. package/build/require/type/indexed/indexed.d.ts +1 -1
  164. package/build/require/type/indexed/indexed.js +9 -27
  165. package/build/require/type/intersect/intersect-evaluated.js +3 -13
  166. package/build/require/type/intrinsic/capitalize.d.ts +2 -2
  167. package/build/require/type/intrinsic/intrinsic-from-mapped-key.d.ts +1 -1
  168. package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +4 -5
  169. package/build/require/type/intrinsic/intrinsic.d.ts +2 -3
  170. package/build/require/type/intrinsic/intrinsic.js +2 -5
  171. package/build/require/type/intrinsic/lowercase.d.ts +2 -2
  172. package/build/require/type/intrinsic/uncapitalize.d.ts +2 -2
  173. package/build/require/type/intrinsic/uppercase.d.ts +2 -2
  174. package/build/require/type/iterator/iterator.js +1 -1
  175. package/build/require/type/keyof/keyof-from-mapped-result.d.ts +3 -3
  176. package/build/require/type/keyof/keyof-from-mapped-result.js +4 -4
  177. package/build/require/type/keyof/keyof-property-keys.d.ts +3 -3
  178. package/build/require/type/keyof/keyof-property-keys.js +9 -15
  179. package/build/require/type/keyof/keyof.js +2 -8
  180. package/build/require/type/mapped/mapped.d.ts +6 -1
  181. package/build/require/type/mapped/mapped.js +21 -14
  182. package/build/require/type/not/not.js +1 -1
  183. package/build/require/type/object/object.d.ts +1 -1
  184. package/build/require/type/object/object.js +0 -1
  185. package/build/require/type/omit/index.d.ts +1 -0
  186. package/build/require/type/omit/index.js +1 -0
  187. package/build/require/type/omit/omit-from-mapped-key.js +4 -5
  188. package/build/require/type/omit/omit-from-mapped-result.d.ts +11 -0
  189. package/build/require/type/omit/omit-from-mapped-result.js +22 -0
  190. package/build/require/type/omit/omit.d.ts +6 -3
  191. package/build/require/type/omit/omit.js +10 -8
  192. package/build/require/type/optional/optional-from-mapped-result.d.ts +5 -5
  193. package/build/require/type/optional/optional-from-mapped-result.js +7 -7
  194. package/build/require/type/partial/partial-from-mapped-result.d.ts +5 -5
  195. package/build/require/type/partial/partial-from-mapped-result.js +4 -4
  196. package/build/require/type/partial/partial.d.ts +2 -3
  197. package/build/require/type/partial/partial.js +8 -21
  198. package/build/require/type/pick/index.d.ts +1 -0
  199. package/build/require/type/pick/index.js +1 -0
  200. package/build/require/type/pick/pick-from-mapped-key.js +4 -5
  201. package/build/require/type/pick/pick-from-mapped-result.d.ts +11 -0
  202. package/build/require/type/pick/pick-from-mapped-result.js +22 -0
  203. package/build/require/type/pick/pick.d.ts +5 -2
  204. package/build/require/type/pick/pick.js +10 -9
  205. package/build/require/type/promise/promise.js +1 -1
  206. package/build/require/type/readonly/readonly-from-mapped-result.d.ts +5 -5
  207. package/build/require/type/readonly/readonly-from-mapped-result.js +4 -4
  208. package/build/require/type/record/record.d.ts +5 -3
  209. package/build/require/type/record/record.js +12 -4
  210. package/build/require/type/ref/ref.js +1 -1
  211. package/build/require/type/regexp/regexp.d.ts +11 -4
  212. package/build/require/type/regexp/regexp.js +3 -3
  213. package/build/require/type/required/required-from-mapped-result.d.ts +5 -5
  214. package/build/require/type/required/required-from-mapped-result.js +7 -7
  215. package/build/require/type/required/required.d.ts +2 -3
  216. package/build/require/type/required/required.js +4 -14
  217. package/build/require/type/rest/rest.d.ts +2 -2
  218. package/build/require/type/rest/rest.js +1 -3
  219. package/build/require/type/schema/anyschema.d.ts +2 -1
  220. package/build/require/type/sets/index.d.ts +1 -0
  221. package/build/require/type/{operators → sets}/index.js +1 -1
  222. package/build/require/type/sets/set.d.ts +24 -0
  223. package/build/require/type/sets/set.js +47 -0
  224. package/build/require/type/strict/strict.d.ts +1 -1
  225. package/build/require/type/strict/strict.js +1 -1
  226. package/build/require/type/template-literal/parse.js +1 -1
  227. package/build/require/type/template-literal/syntax.d.ts +1 -1
  228. package/build/require/type/template-literal/template-literal.d.ts +1 -1
  229. package/build/require/type/transform/transform.js +1 -1
  230. package/build/require/type/type/javascript.d.ts +2 -2
  231. package/build/require/type/type/javascript.js +1 -1
  232. package/build/require/type/type/json.d.ts +6 -2
  233. package/build/require/type/union/union-evaluated.js +3 -14
  234. package/build/require/value/cast/cast.d.ts +2 -15
  235. package/build/require/value/cast/cast.js +7 -29
  236. package/build/require/value/check/check.js +6 -1
  237. package/build/require/value/convert/convert.d.ts +0 -5
  238. package/build/require/value/convert/convert.js +31 -43
  239. package/build/require/value/create/create.d.ts +2 -23
  240. package/build/require/value/create/create.js +32 -54
  241. package/build/require/value/default/default.js +0 -2
  242. package/build/require/value/delta/delta.d.ts +4 -4
  243. package/build/require/value/delta/delta.js +14 -14
  244. package/build/require/value/index.d.ts +7 -7
  245. package/build/require/value/index.js +8 -19
  246. package/build/require/value/mutate/mutate.d.ts +2 -5
  247. package/build/require/value/mutate/mutate.js +7 -13
  248. package/package.json +1 -1
  249. package/readme.md +68 -67
  250. package/build/import/type/operators/index.d.mts +0 -1
  251. package/build/import/type/operators/index.mjs +0 -1
  252. package/build/import/type/operators/operators.d.mts +0 -24
  253. package/build/import/type/operators/operators.mjs +0 -77
  254. package/build/require/type/operators/index.d.ts +0 -1
  255. package/build/require/type/operators/operators.d.ts +0 -24
  256. package/build/require/type/operators/operators.js +0 -89
@@ -1,7 +1,14 @@
1
1
  import type { SchemaOptions } from '../schema/index.mjs';
2
- import type { TString } from '../string/index.mjs';
3
- export type TRegExp = TString;
4
- /** `[JavaScript]` Creates a String type from a Regular Expression pattern */
2
+ import type { TSchema } from '../schema/index.mjs';
3
+ import { Kind } from '../symbols/index.mjs';
4
+ export interface TRegExp extends TSchema {
5
+ [Kind]: 'RegExp';
6
+ static: `${string}`;
7
+ type: 'RegExp';
8
+ source: string;
9
+ flags: string;
10
+ }
11
+ /** `[JavaScript]` Creates a RegExp type */
5
12
  export declare function RegExp(pattern: string, options?: SchemaOptions): TRegExp;
6
- /** `[JavaScript]` Creates a String type from a Regular Expression */
13
+ /** `[JavaScript]` Creates a RegExp type */
7
14
  export declare function RegExp(regex: RegExp, options?: SchemaOptions): TRegExp;
@@ -1,7 +1,7 @@
1
1
  import { IsString } from '../guard/value.mjs';
2
2
  import { Kind } from '../symbols/index.mjs';
3
- /** `[JavaScript]` Creates a String type */
3
+ /** `[JavaScript]` Creates a RegExp type */
4
4
  export function RegExp(unresolved, options = {}) {
5
- const pattern = IsString(unresolved) ? unresolved : unresolved.source;
6
- return { ...options, [Kind]: 'String', type: 'string', pattern };
5
+ const expr = IsString(unresolved) ? new globalThis.RegExp(unresolved) : unresolved;
6
+ return { ...options, [Kind]: 'RegExp', type: 'RegExp', source: expr.source, flags: expr.flags };
7
7
  }
@@ -2,10 +2,10 @@ import type { SchemaOptions } from '../schema/index.mjs';
2
2
  import type { TProperties } from '../object/index.mjs';
3
3
  import { type TMappedResult } from '../mapped/index.mjs';
4
4
  import { type TRequired } from './required.mjs';
5
- type TFromProperties<K extends TProperties> = ({
6
- [K2 in keyof K]: TRequired<K[K2]>;
5
+ type TFromProperties<P extends TProperties> = ({
6
+ [K2 in keyof P]: TRequired<P[K2]>;
7
7
  });
8
- type TFromMappedResult<K extends TMappedResult> = (TFromProperties<K['properties']>);
9
- export type TRequiredFromMappedResult<T extends TMappedResult, P extends TProperties = TFromMappedResult<T>> = (TMappedResult<P>);
10
- export declare function RequiredFromMappedResult<T extends TMappedResult, P extends TProperties = TFromMappedResult<T>>(T: T, options: SchemaOptions): TMappedResult<P>;
8
+ type TFromMappedResult<R extends TMappedResult> = (TFromProperties<R['properties']>);
9
+ export type TRequiredFromMappedResult<R extends TMappedResult, P extends TProperties = TFromMappedResult<R>> = (TMappedResult<P>);
10
+ export declare function RequiredFromMappedResult<R extends TMappedResult, P extends TProperties = TFromMappedResult<R>>(R: R, options: SchemaOptions): TMappedResult<P>;
11
11
  export {};
@@ -1,17 +1,17 @@
1
1
  import { MappedResult } from '../mapped/index.mjs';
2
2
  import { Required } from './required.mjs';
3
3
  // prettier-ignore
4
- function FromProperties(K, options) {
5
- return globalThis.Object.getOwnPropertyNames(K).reduce((Acc, K2) => {
6
- return { ...Acc, [K2]: Required(K[K2], options) };
4
+ function FromProperties(P, options) {
5
+ return globalThis.Object.getOwnPropertyNames(P).reduce((Acc, K2) => {
6
+ return { ...Acc, [K2]: Required(P[K2], options) };
7
7
  }, {});
8
8
  }
9
9
  // prettier-ignore
10
- function FromMappedResult(K, options) {
11
- return FromProperties(K.properties, options);
10
+ function FromMappedResult(R, options) {
11
+ return FromProperties(R.properties, options);
12
12
  }
13
13
  // prettier-ignore
14
- export function RequiredFromMappedResult(T, options) {
15
- const P = FromMappedResult(T, options);
14
+ export function RequiredFromMappedResult(R, options) {
15
+ const P = FromMappedResult(R, options);
16
16
  return MappedResult(P);
17
17
  }
@@ -9,12 +9,11 @@ import { type TIntersect } from '../intersect/index.mjs';
9
9
  import { type TUnion } from '../union/index.mjs';
10
10
  import { type TObject, type TProperties } from '../object/index.mjs';
11
11
  import { type TRequiredFromMappedResult } from './required-from-mapped-result.mjs';
12
- type TFromIntersect<T extends TSchema[], Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TFromIntersect<R, [...Acc, TRequiredResolve<L>]> : Acc);
13
- type TFromUnion<T extends TSchema[], Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TFromUnion<R, [...Acc, TRequiredResolve<L>]> : Acc);
12
+ type TFromRest<T extends TSchema[], Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TFromRest<R, [...Acc, TRequiredResolve<L>]> : Acc);
14
13
  type TFromProperties<T extends TProperties> = Evaluate<{
15
14
  [K in keyof T]: T[K] extends (TReadonlyOptional<infer S>) ? TReadonly<S> : T[K] extends (TReadonly<infer S>) ? TReadonly<S> : T[K] extends (TOptional<infer S>) ? S : T[K];
16
15
  }>;
17
- type TRequiredResolve<T extends TSchema> = (T extends TRecursive<infer S> ? TRecursive<TRequiredResolve<S>> : T extends TIntersect<infer S> ? TIntersect<TFromIntersect<S>> : T extends TUnion<infer S> ? TUnion<TFromUnion<S>> : T extends TObject<infer S> ? TObject<TFromProperties<S>> : TObject<{}>);
16
+ type TRequiredResolve<T extends TSchema> = (T extends TRecursive<infer S> ? TRecursive<TRequiredResolve<S>> : T extends TIntersect<infer S> ? TIntersect<TFromRest<S>> : T extends TUnion<infer S> ? TUnion<TFromRest<S>> : T extends TObject<infer S> ? TObject<TFromProperties<S>> : TObject<{}>);
18
17
  export type TRequired<T extends TSchema> = TRequiredResolve<T>;
19
18
  /** `[Json]` Constructs a type where all properties are required */
20
19
  export declare function Required<T extends TMappedResult>(T: T, options?: SchemaOptions): TRequiredFromMappedResult<T>;
@@ -10,18 +10,8 @@ import { RequiredFromMappedResult } from './required-from-mapped-result.mjs';
10
10
  // ------------------------------------------------------------------
11
11
  import { IsMappedResult, IsIntersect, IsUnion, IsObject } from '../guard/type.mjs';
12
12
  // prettier-ignore
13
- function FromIntersect(T, Acc = []) {
14
- const [L, ...R] = T;
15
- return (T.length > 0
16
- ? FromIntersect(R, [...Acc, RequiredResolve(L)])
17
- : Acc);
18
- }
19
- // prettier-ignore
20
- function FromUnion(T, Acc = []) {
21
- const [L, ...R] = T;
22
- return (T.length > 0
23
- ? FromUnion(R, [...Acc, RequiredResolve(L)])
24
- : Acc);
13
+ function FromRest(T) {
14
+ return T.map(L => RequiredResolve(L));
25
15
  }
26
16
  // prettier-ignore
27
17
  function FromProperties(T) {
@@ -31,8 +21,8 @@ function FromProperties(T) {
31
21
  }
32
22
  // prettier-ignore
33
23
  function RequiredResolve(T) {
34
- return (IsIntersect(T) ? Intersect(FromIntersect(T.allOf)) :
35
- IsUnion(T) ? Union(FromUnion(T.anyOf)) :
24
+ return (IsIntersect(T) ? Intersect(FromRest(T.allOf)) :
25
+ IsUnion(T) ? Union(FromRest(T.anyOf)) :
36
26
  IsObject(T) ? Object(FromProperties(T.properties)) :
37
27
  Object({}));
38
28
  }
@@ -2,9 +2,9 @@ import type { TSchema } from '../schema/index.mjs';
2
2
  import type { TIntersect } from '../intersect/index.mjs';
3
3
  import type { TUnion } from '../union/index.mjs';
4
4
  import type { TTuple } from '../tuple/index.mjs';
5
- export type TRestResolve<T extends TSchema> = T extends TIntersect<infer S> ? [...S] : T extends TUnion<infer S> ? [...S] : T extends TTuple<infer S> ? [...S] : [
5
+ type TRestResolve<T extends TSchema> = T extends TIntersect<infer S> ? [...S] : T extends TUnion<infer S> ? [...S] : T extends TTuple<infer S> ? [...S] : [
6
6
  ];
7
- export declare function RestResolve<T extends TSchema>(T: T): TRestResolve<T>;
8
7
  export type TRest<T extends TSchema> = TRestResolve<T>;
9
8
  /** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */
10
9
  export declare function Rest<T extends TSchema>(T: T): TRest<T>;
10
+ export {};
@@ -2,10 +2,9 @@ import { CloneRest } from '../clone/type.mjs';
2
2
  // ------------------------------------------------------------------
3
3
  // TypeGuard
4
4
  // ------------------------------------------------------------------
5
- // prettier-ignore
6
5
  import { IsIntersect, IsUnion, IsTuple } from '../guard/type.mjs';
7
6
  // prettier-ignore
8
- export function RestResolve(T) {
7
+ function RestResolve(T) {
9
8
  return (IsIntersect(T) ? [...T.allOf] :
10
9
  IsUnion(T) ? [...T.anyOf] :
11
10
  IsTuple(T) ? [...(T.items ?? [])] :
@@ -19,6 +19,7 @@ import type { TPromise } from '../promise/index.mjs';
19
19
  import type { TRecord } from '../record/index.mjs';
20
20
  import type { TThis } from '../recursive/index.mjs';
21
21
  import type { TRef } from '../ref/index.mjs';
22
+ import type { TRegExp } from '../regexp/index.mjs';
22
23
  import type { TString } from '../string/index.mjs';
23
24
  import type { TSymbol } from '../symbol/index.mjs';
24
25
  import type { TTemplateLiteral } from '../template-literal/index.mjs';
@@ -29,4 +30,4 @@ import type { TUnion } from '../union/index.mjs';
29
30
  import type { TUnknown } from '../unknown/index.mjs';
30
31
  import type { TVoid } from '../void/index.mjs';
31
32
  import type { TSchema } from './schema.mjs';
32
- export type TAnySchema = TSchema | TAny | TArray | TAsyncIterator | TBigInt | TBoolean | TConstructor | TDate | TEnum | TFunction | TInteger | TIntersect | TIterator | TLiteral | TNot | TNull | TNumber | TObject | TPromise | TRecord | TRef | TString | TSymbol | TTemplateLiteral | TThis | TTuple | TUndefined | TUnion | TUint8Array | TUnknown | TVoid;
33
+ export type TAnySchema = TSchema | TAny | TArray | TAsyncIterator | TBigInt | TBoolean | TConstructor | TDate | TEnum | TFunction | TInteger | TIntersect | TIterator | TLiteral | TNot | TNull | TNumber | TObject | TPromise | TRecord | TRef | TRegExp | TString | TSymbol | TTemplateLiteral | TThis | TTuple | TUndefined | TUnion | TUint8Array | TUnknown | TVoid;
@@ -0,0 +1 @@
1
+ export * from './set.mjs';
@@ -0,0 +1 @@
1
+ export * from './set.mjs';
@@ -0,0 +1,24 @@
1
+ export type TSetIncludes<T extends PropertyKey[], S extends PropertyKey> = (T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? S extends L ? true : TSetIncludes<R, S> : false);
2
+ /** Returns true if element S is in the set of T */
3
+ export declare function SetIncludes<T extends PropertyKey[], S extends PropertyKey>(T: [...T], S: S): TSetIncludes<T, S>;
4
+ export type SetIsSubset<T extends PropertyKey[], S extends PropertyKey[]> = (T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? TSetIncludes<S, L> extends true ? SetIsSubset<R, S> : false : true);
5
+ /** Returns true if T is a subset of S */
6
+ export declare function SetIsSubset<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): SetIsSubset<T, S>;
7
+ export type TSetDistinct<T extends PropertyKey[], Acc extends PropertyKey[] = []> = T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? TSetIncludes<Acc, L> extends false ? TSetDistinct<R, [...Acc, L]> : TSetDistinct<R, [...Acc]> : Acc;
8
+ /** Returns a distinct set of elements */
9
+ export declare function SetDistinct<T extends PropertyKey[]>(T: [...T]): TSetDistinct<T>;
10
+ export type TSetIntersect<T extends PropertyKey[], S extends PropertyKey[], Acc extends PropertyKey[] = []> = (T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? TSetIncludes<S, L> extends true ? TSetIntersect<R, S, [L, ...Acc]> : TSetIntersect<R, S, [...Acc]> : Acc);
11
+ /** Returns the Intersect of the given sets */
12
+ export declare function SetIntersect<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): TSetIntersect<T, S>;
13
+ export type TSetUnion<T extends PropertyKey[], S extends PropertyKey[], Acc extends PropertyKey[] = S> = (T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? TSetUnion<R, S, [...Acc, L]> : Acc);
14
+ /** Returns the Union of the given sets */
15
+ export declare function SetUnion<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): TSetUnion<T, S>;
16
+ export type TSetComplement<T extends PropertyKey[], S extends PropertyKey[], Acc extends PropertyKey[] = []> = (T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? TSetIncludes<S, L> extends true ? TSetComplement<R, S, [...Acc]> : TSetComplement<R, S, [...Acc, L]> : Acc);
17
+ /** Returns the Complement by omitting elements in T that are in S */
18
+ export declare function SetComplement<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): TSetComplement<T, S>;
19
+ export type TSetIntersectMany<T extends PropertyKey[][], Acc extends PropertyKey[] = []> = (T extends [infer L extends PropertyKey[]] ? L : T extends [infer L extends PropertyKey[], ...infer R extends PropertyKey[][]] ? TSetIntersectMany<R, TSetIntersect<Acc, L>> : Acc);
20
+ /** Returns the Intersect of multiple sets */
21
+ export declare function SetIntersectMany<T extends PropertyKey[][]>(T: [...T]): TSetIntersectMany<T>;
22
+ export type TSetUnionMany<T extends PropertyKey[][], Acc extends PropertyKey[] = []> = (T extends [infer L extends PropertyKey[], ...infer R extends PropertyKey[][]] ? TSetUnionMany<R, TSetUnion<Acc, L>> : Acc);
23
+ /** Returns the Union of multiple sets */
24
+ export declare function SetUnionMany<T extends PropertyKey[][]>(T: [...T]): TSetUnionMany<T>;
@@ -0,0 +1,35 @@
1
+ /** Returns true if element S is in the set of T */
2
+ // prettier-ignore
3
+ export function SetIncludes(T, S) {
4
+ return T.includes(S);
5
+ }
6
+ /** Returns true if T is a subset of S */
7
+ export function SetIsSubset(T, S) {
8
+ return T.every((L) => SetIncludes(S, L));
9
+ }
10
+ /** Returns a distinct set of elements */
11
+ export function SetDistinct(T) {
12
+ return [...new Set(T)];
13
+ }
14
+ /** Returns the Intersect of the given sets */
15
+ export function SetIntersect(T, S) {
16
+ return T.filter((L) => S.includes(L));
17
+ }
18
+ /** Returns the Union of the given sets */
19
+ export function SetUnion(T, S) {
20
+ return [...T, ...S];
21
+ }
22
+ /** Returns the Complement by omitting elements in T that are in S */
23
+ // prettier-ignore
24
+ export function SetComplement(T, S) {
25
+ return T.filter(L => !S.includes(L));
26
+ }
27
+ /** Returns the Intersect of multiple sets */
28
+ // prettier-ignore
29
+ export function SetIntersectMany(T) {
30
+ return (T.length === 1 ? T[0] : T.reduce((Acc, L) => [...SetIntersect(Acc, L)], []));
31
+ }
32
+ /** Returns the Union of multiple sets */
33
+ export function SetUnionMany(T) {
34
+ return T.reduce((Acc, L) => [...Acc, ...L], []);
35
+ }
@@ -1,3 +1,3 @@
1
1
  import type { TSchema } from '../schema/index.mjs';
2
- /** `[Json]` Omits compositing symbols from this schema */
2
+ /** `[Json]` Omits compositing symbols from this schema. */
3
3
  export declare function Strict<T extends TSchema>(schema: T): T;
@@ -1,4 +1,4 @@
1
- /** `[Json]` Omits compositing symbols from this schema */
1
+ /** `[Json]` Omits compositing symbols from this schema. */
2
2
  export function Strict(schema) {
3
3
  return JSON.parse(JSON.stringify(schema));
4
4
  }
@@ -1,5 +1,5 @@
1
1
  import type { Assert, Trim } from '../helpers/index.mjs';
2
- import type { TTemplateLiteralKind, TTemplateLiteral } from './index.mjs';
2
+ import type { TTemplateLiteral, TTemplateLiteralKind } from './index.mjs';
3
3
  import { type TLiteral } from '../literal/index.mjs';
4
4
  import { type TBoolean } from '../boolean/index.mjs';
5
5
  import { type TBigInt } from '../bigint/index.mjs';
@@ -9,7 +9,7 @@ import type { TString } from '../string/index.mjs';
9
9
  import type { TBoolean } from '../boolean/index.mjs';
10
10
  import type { TNever } from '../never/index.mjs';
11
11
  import type { Static } from '../static/index.mjs';
12
- import { TTemplateLiteralSyntax } from './syntax.mjs';
12
+ import { type TTemplateLiteralSyntax } from './syntax.mjs';
13
13
  import { EmptyString } from '../helpers/index.mjs';
14
14
  import { Kind } from '../symbols/index.mjs';
15
15
  type TemplateLiteralStaticKind<T, Acc extends string> = T extends TUnion<infer U> ? {
@@ -1,5 +1,5 @@
1
- import { CloneType } from '../clone/type.mjs';
2
1
  import { TransformKind } from '../symbols/index.mjs';
2
+ import { CloneType } from '../clone/type.mjs';
3
3
  // ------------------------------------------------------------------
4
4
  // TypeGuard
5
5
  // ------------------------------------------------------------------
@@ -41,9 +41,9 @@ export declare class JavaScriptTypeBuilder extends JsonTypeBuilder {
41
41
  Parameters<T extends TFunction<TSchema[], TSchema>>(schema: T, options?: SchemaOptions): TParameters<T>;
42
42
  /** `[JavaScript]` Creates a Promise type */
43
43
  Promise<T extends TSchema>(item: T, options?: SchemaOptions): TPromise<T>;
44
- /** `[JavaScript]` Creates a String type from a Regular Expression pattern */
44
+ /** `[JavaScript]` Creates a RegExp type */
45
45
  RegExp(pattern: string, options?: SchemaOptions): TRegExp;
46
- /** `[JavaScript]` Creates a String type from a Regular Expression */
46
+ /** `[JavaScript]` Creates a RegExp type */
47
47
  RegExp(regex: RegExp, options?: SchemaOptions): TRegExp;
48
48
  /** `[JavaScript]` Extracts the ReturnType from the given Function type */
49
49
  ReturnType<T extends TFunction<any[], any>>(schema: T, options?: SchemaOptions): TReturnType<T>;
@@ -62,7 +62,7 @@ export class JavaScriptTypeBuilder extends JsonTypeBuilder {
62
62
  Promise(item, options = {}) {
63
63
  return Promise(item, options);
64
64
  }
65
- /** `[JavaScript]` Creates a String type */
65
+ /** `[JavaScript]` Creates a RegExp type */
66
66
  RegExp(unresolved, options = {}) {
67
67
  return RegExp(unresolved, options);
68
68
  }
@@ -21,10 +21,10 @@ import { type TNull } from '../null/index.mjs';
21
21
  import { type TMappedKey } from '../mapped/index.mjs';
22
22
  import { type TNumber, type NumberOptions } from '../number/index.mjs';
23
23
  import { type TObject, type TProperties, type ObjectOptions } from '../object/index.mjs';
24
- import { type TOmit, type TOmitFromMappedKey } from '../omit/index.mjs';
24
+ import { type TOmit, type TOmitFromMappedKey, type TOmitFromMappedResult } from '../omit/index.mjs';
25
25
  import { type TOptionalWithFlag, type TOptionalFromMappedResult } from '../optional/index.mjs';
26
26
  import { type TPartial, type TPartialFromMappedResult } from '../partial/index.mjs';
27
- import { type TPick, type TPickFromMappedKey } from '../pick/index.mjs';
27
+ import { type TPick, type TPickFromMappedKey, type TPickFromMappedResult } from '../pick/index.mjs';
28
28
  import { type TReadonlyWithFlag, type TReadonlyFromMappedResult } from '../readonly/index.mjs';
29
29
  import { type TReadonlyOptional } from '../readonly-optional/index.mjs';
30
30
  import { type TRecordOrObject } from '../record/index.mjs';
@@ -127,6 +127,8 @@ export declare class JsonTypeBuilder {
127
127
  /** `[Json]` Creates an Object type */
128
128
  Object<T extends TProperties>(properties: T, options?: ObjectOptions): TObject<T>;
129
129
  /** `[Json]` Constructs a type whose keys are omitted from the given type */
130
+ Omit<T extends TMappedResult, K extends PropertyKey[]>(T: T, K: [...K], options?: SchemaOptions): TOmitFromMappedResult<T, K>;
131
+ /** `[Json]` Constructs a type whose keys are omitted from the given type */
130
132
  Omit<T extends TSchema, K extends TMappedKey>(T: T, K: K): TOmitFromMappedKey<T, K>;
131
133
  /** `[Json]` Constructs a type whose keys are omitted from the given type */
132
134
  Omit<T extends TSchema, K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>>(T: T, K: K, options?: SchemaOptions): TOmit<T, I>;
@@ -137,6 +139,8 @@ export declare class JsonTypeBuilder {
137
139
  /** `[Json]` Constructs a type where all properties are optional */
138
140
  Partial<T extends TSchema>(schema: T, options?: ObjectOptions): TPartial<T>;
139
141
  /** `[Json]` Constructs a type whose keys are picked from the given type */
142
+ Pick<T extends TMappedResult, K extends PropertyKey[]>(T: T, K: [...K]): TPickFromMappedResult<T, K>;
143
+ /** `[Json]` Constructs a type whose keys are picked from the given type */
140
144
  Pick<T extends TSchema, K extends TMappedKey>(T: T, K: K): TPickFromMappedKey<T, K>;
141
145
  /** `[Json]` Constructs a type whose keys are picked from the given type */
142
146
  Pick<T extends TSchema, K extends TSchema, I extends PropertyKey[] = TIndexPropertyKeys<K>>(T: T, K: K, options?: SchemaOptions): TPick<T, I>;
@@ -7,25 +7,14 @@ import { UnionCreate } from './union-create.mjs';
7
7
  // ------------------------------------------------------------------
8
8
  // TypeGuard
9
9
  // ------------------------------------------------------------------
10
- // prettier-ignore
11
10
  import { IsOptional } from '../guard/type.mjs';
12
11
  // prettier-ignore
13
12
  function IsUnionOptional(T) {
14
- const [L, ...R] = T;
15
- return (T.length > 0
16
- ? IsOptional(L)
17
- ? true
18
- : IsUnionOptional(R)
19
- : false);
13
+ return T.some(L => IsOptional(L));
20
14
  }
21
15
  // prettier-ignore
22
- function RemoveOptionalFromRest(T, Acc = []) {
23
- const [L, ...R] = T;
24
- return (T.length > 0
25
- ? IsOptional(L)
26
- ? RemoveOptionalFromRest(R, [...Acc, RemoveOptionalFromType(L)])
27
- : RemoveOptionalFromRest(R, [...Acc, L])
28
- : Acc);
16
+ function RemoveOptionalFromRest(T) {
17
+ return T.map(L => IsOptional(L) ? RemoveOptionalFromType(L) : L);
29
18
  }
30
19
  // prettier-ignore
31
20
  function RemoveOptionalFromType(T) {
@@ -1,22 +1,9 @@
1
1
  import { TypeBoxError } from '../../type/error/index.mjs';
2
2
  import type { TSchema } from '../../type/schema/index.mjs';
3
3
  import type { Static } from '../../type/static/index.mjs';
4
- export declare class ValueCastArrayUniqueItemsTypeError extends TypeBoxError {
4
+ export declare class ValueCastError extends TypeBoxError {
5
5
  readonly schema: TSchema;
6
- readonly value: unknown;
7
- constructor(schema: TSchema, value: unknown);
8
- }
9
- export declare class ValueCastNeverTypeError extends TypeBoxError {
10
- readonly schema: TSchema;
11
- constructor(schema: TSchema);
12
- }
13
- export declare class ValueCastRecursiveTypeError extends TypeBoxError {
14
- readonly schema: TSchema;
15
- constructor(schema: TSchema);
16
- }
17
- export declare class ValueCastUnknownTypeError extends TypeBoxError {
18
- readonly schema: TSchema;
19
- constructor(schema: TSchema);
6
+ constructor(schema: TSchema, message: string);
20
7
  }
21
8
  /** Casts a value into a given type and references. The return value will retain as much information of the original value as possible. */
22
9
  export declare function Cast<T extends TSchema>(schema: T, references: TSchema[], value: unknown): Static<T>;
@@ -8,33 +8,10 @@ import { Deref } from '../deref/index.mjs';
8
8
  // ------------------------------------------------------------------
9
9
  // Errors
10
10
  // ------------------------------------------------------------------
11
- export class ValueCastArrayUniqueItemsTypeError extends TypeBoxError {
11
+ export class ValueCastError extends TypeBoxError {
12
12
  schema;
13
- value;
14
- constructor(schema, value) {
15
- super('Array cast produced invalid data due to uniqueItems constraint');
16
- this.schema = schema;
17
- this.value = value;
18
- }
19
- }
20
- export class ValueCastNeverTypeError extends TypeBoxError {
21
- schema;
22
- constructor(schema) {
23
- super('Never types cannot be cast');
24
- this.schema = schema;
25
- }
26
- }
27
- export class ValueCastRecursiveTypeError extends TypeBoxError {
28
- schema;
29
- constructor(schema) {
30
- super('Cannot cast recursive schemas');
31
- this.schema = schema;
32
- }
33
- }
34
- export class ValueCastUnknownTypeError extends TypeBoxError {
35
- schema;
36
- constructor(schema) {
37
- super('Unknown type');
13
+ constructor(schema, message) {
14
+ super(message);
38
15
  this.schema = schema;
39
16
  }
40
17
  }
@@ -106,7 +83,7 @@ function FromArray(schema, references, value) {
106
83
  return casted;
107
84
  const unique = [...new Set(casted)];
108
85
  if (!Check(schema, references, unique))
109
- throw new ValueCastArrayUniqueItemsTypeError(schema, unique);
86
+ throw new ValueCastError(schema, 'Array cast produced invalid data due to uniqueItems constraint');
110
87
  return unique;
111
88
  }
112
89
  function FromConstructor(schema, references, value) {
@@ -127,7 +104,7 @@ function FromIntersect(schema, references, value) {
127
104
  return Check(schema, references, mapped) ? mapped : Create(schema, references);
128
105
  }
129
106
  function FromNever(schema, references, value) {
130
- throw new ValueCastNeverTypeError(schema);
107
+ throw new ValueCastError(schema, 'Never types cannot be cast');
131
108
  }
132
109
  function FromObject(schema, references, value) {
133
110
  if (Check(schema, references, value))
@@ -10,7 +10,6 @@ import { Never } from '../../type/never/index.mjs';
10
10
  // ------------------------------------------------------------------
11
11
  // ValueGuard
12
12
  // ------------------------------------------------------------------
13
- // prettier-ignore
14
13
  import { IsArray, IsUint8Array, IsDate, IsPromise, IsFunction, IsAsyncIterator, IsIterator, IsBoolean, IsNumber, IsBigInt, IsString, IsSymbol, IsInteger, IsNull, IsUndefined } from '../guard/index.mjs';
15
14
  // ------------------------------------------------------------------
16
15
  // TypeGuard
@@ -286,6 +285,10 @@ function FromRecord(schema, references, value) {
286
285
  function FromRef(schema, references, value) {
287
286
  return Visit(Deref(schema, references), references, value);
288
287
  }
288
+ function FromRegExp(schema, references, value) {
289
+ const regex = new RegExp(schema.source, schema.flags);
290
+ return regex.test(value);
291
+ }
289
292
  function FromString(schema, references, value) {
290
293
  if (!IsString(value)) {
291
294
  return false;
@@ -413,6 +416,8 @@ function Visit(schema, references, value) {
413
416
  return FromRecord(schema_, references_, value);
414
417
  case 'Ref':
415
418
  return FromRef(schema_, references_, value);
419
+ case 'RegExp':
420
+ return FromRegExp(schema_, references_, value);
416
421
  case 'String':
417
422
  return FromString(schema_, references_, value);
418
423
  case 'Symbol':
@@ -1,9 +1,4 @@
1
- import { TypeBoxError } from '../../type/error/index.mjs';
2
1
  import type { TSchema } from '../../type/schema/index.mjs';
3
- export declare class ValueConvertUnknownTypeError extends TypeBoxError {
4
- readonly schema: TSchema;
5
- constructor(schema: TSchema);
6
- }
7
2
  /** Converts any type mismatched values to their target type if a reasonable conversion is possible. */
8
3
  export declare function Convert<T extends TSchema>(schema: T, references: TSchema[], value: unknown): unknown;
9
4
  /** Converts any type mismatched values to their target type if a reasonable conversion is possible. */
@@ -1,26 +1,14 @@
1
1
  import { Clone } from '../clone/index.mjs';
2
2
  import { Check } from '../check/index.mjs';
3
3
  import { Deref } from '../deref/index.mjs';
4
- import { TypeBoxError } from '../../type/error/index.mjs';
5
4
  import { IsObject as IsObjectType } from '../../type/guard/type.mjs';
6
5
  import { Kind } from '../../type/symbols/index.mjs';
7
6
  import { Composite } from '../../type/composite/index.mjs';
8
7
  // ------------------------------------------------------------------
9
8
  // ValueGuard
10
9
  // ------------------------------------------------------------------
11
- // prettier-ignore
12
10
  import { IsArray, IsObject, IsDate, IsUndefined, IsString, IsNumber, IsBoolean, IsBigInt, IsSymbol } from '../guard/index.mjs';
13
11
  // ------------------------------------------------------------------
14
- // Errors
15
- // ------------------------------------------------------------------
16
- export class ValueConvertUnknownTypeError extends TypeBoxError {
17
- schema;
18
- constructor(schema) {
19
- super('Unknown type');
20
- this.schema = schema;
21
- }
22
- }
23
- // ------------------------------------------------------------------
24
12
  // Conversions
25
13
  // ------------------------------------------------------------------
26
14
  function IsStringNumeric(value) {
@@ -1,30 +1,9 @@
1
1
  import { TypeBoxError } from '../../type/error/index.mjs';
2
2
  import type { TSchema } from '../../type/schema/index.mjs';
3
3
  import type { Static } from '../../type/static/index.mjs';
4
- export declare class ValueCreateUnknownTypeError extends TypeBoxError {
4
+ export declare class ValueCreateError extends TypeBoxError {
5
5
  readonly schema: TSchema;
6
- constructor(schema: TSchema);
7
- }
8
- export declare class ValueCreateNeverTypeError extends TypeBoxError {
9
- readonly schema: TSchema;
10
- constructor(schema: TSchema);
11
- }
12
- export declare class ValueCreateNotTypeError extends TypeBoxError {
13
- readonly schema: TSchema;
14
- constructor(schema: TSchema);
15
- }
16
- export declare class ValueCreateIntersectTypeError extends TypeBoxError {
17
- readonly schema: TSchema;
18
- constructor(schema: TSchema);
19
- }
20
- export declare class ValueCreateTempateLiteralTypeError extends TypeBoxError {
21
- readonly schema: TSchema;
22
- constructor(schema: TSchema);
23
- }
24
- export declare class ValueCreateRecursiveInstantiationError extends TypeBoxError {
25
- readonly schema: TSchema;
26
- readonly recursiveMaxDepth: number;
27
- constructor(schema: TSchema, recursiveMaxDepth: number);
6
+ constructor(schema: TSchema, message: string);
28
7
  }
29
8
  /** Creates a value from the given schema and references */
30
9
  export declare function Create<T extends TSchema>(schema: T, references: TSchema[]): Static<T>;