@sinclair/typebox 0.31.5 → 0.31.7

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sinclair/typebox",
3
- "version": "0.31.5",
3
+ "version": "0.31.7",
4
4
  "description": "JSONSchema Type Builder with Static Type Resolution for TypeScript",
5
5
  "keywords": [
6
6
  "typescript",
package/typebox.d.ts CHANGED
@@ -27,7 +27,7 @@ export type Ensure<T> = T extends infer U ? U : never;
27
27
  export type AssertProperties<T> = T extends TProperties ? T : TProperties;
28
28
  export type AssertRest<T, E extends TSchema[] = TSchema[]> = T extends E ? T : [];
29
29
  export type AssertType<T, E extends TSchema = TSchema> = T extends E ? T : TNever;
30
- export type TModifier = TOptional<TSchema> | TReadonly<TSchema>;
30
+ export type TReadonlyOptional<T extends TSchema> = TOptional<T> & TReadonly<T>;
31
31
  export type TReadonly<T extends TSchema> = T & {
32
32
  [Readonly]: 'Readonly';
33
33
  };
@@ -436,12 +436,11 @@ export interface TTemplateLiteral<T extends TTemplateLiteralKind[] = TTemplateLi
436
436
  type: 'string';
437
437
  pattern: string;
438
438
  }
439
- export type DecodeModifier<D extends TSchema, T extends TSchema> = T extends TReadonly<T> & TOptional<T> ? TReadonly<TOptional<D>> : T extends TReadonly<T> ? TReadonly<D> : T extends TOptional<T> ? TOptional<D> : D;
440
439
  export type DecodeProperties<T extends TProperties> = {
441
440
  [K in keyof T]: DecodeType<T[K]>;
442
441
  };
443
- export type DecodeRest<T extends TSchema[]> = T extends [infer L, ...infer R] ? [DecodeType<AssertType<L>>, ...DecodeRest<AssertRest<R>>] : [];
444
- export type DecodeType<T extends TSchema> = T extends TTransform<infer _, infer R> ? DecodeModifier<TUnsafe<R>, T> : T extends TArray<infer S> ? DecodeModifier<TArray<DecodeType<S>>, T> : T extends TAsyncIterator<infer S> ? DecodeModifier<TAsyncIterator<DecodeType<S>>, T> : T extends TConstructor<infer P, infer R> ? DecodeModifier<TConstructor<AssertRest<DecodeRest<P>>, DecodeType<R>>, T> : T extends TFunction<infer P, infer R> ? DecodeModifier<TFunction<AssertRest<DecodeRest<P>>, DecodeType<R>>, T> : T extends TIntersect<infer S> ? DecodeModifier<TIntersect<AssertRest<DecodeRest<S>>>, T> : T extends TIterator<infer S> ? DecodeModifier<TIterator<DecodeType<S>>, T> : T extends TNot<infer S> ? DecodeModifier<TNot<DecodeType<S>>, T> : T extends TObject<infer S> ? DecodeModifier<TObject<Evaluate<DecodeProperties<S>>>, T> : T extends TPromise<infer S> ? DecodeModifier<TPromise<DecodeType<S>>, T> : T extends TRecord<infer K, infer S> ? DecodeModifier<TRecord<K, DecodeType<S>>, T> : T extends TRecursive<infer S> ? DecodeModifier<TRecursive<DecodeType<S>>, T> : T extends TRef<infer S> ? DecodeModifier<TRef<DecodeType<S>>, T> : T extends TTuple<infer S> ? DecodeModifier<TTuple<AssertRest<DecodeRest<S>>>, T> : T extends TUnion<infer S> ? DecodeModifier<TUnion<AssertRest<DecodeRest<S>>>, T> : T;
442
+ export type DecodeRest<T extends TSchema[]> = T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? [DecodeType<L>, ...DecodeRest<R>] : [];
443
+ export type DecodeType<T extends TSchema> = (T extends TOptional<infer S extends TSchema> ? TOptional<DecodeType<S>> : T extends TReadonly<infer S extends TSchema> ? TReadonly<DecodeType<S>> : T extends TTransform<infer _, infer R> ? TUnsafe<R> : T extends TArray<infer S extends TSchema> ? TArray<DecodeType<S>> : T extends TAsyncIterator<infer S extends TSchema> ? TAsyncIterator<DecodeType<S>> : T extends TConstructor<infer P extends TSchema[], infer R extends TSchema> ? TConstructor<P, DecodeType<R>> : T extends TFunction<infer P extends TSchema[], infer R extends TSchema> ? TFunction<P, DecodeType<R>> : T extends TIntersect<infer S extends TSchema[]> ? TIntersect<S> : T extends TIterator<infer S extends TSchema> ? TIterator<DecodeType<S>> : T extends TNot<infer S extends TSchema> ? TNot<DecodeType<S>> : T extends TObject<infer S> ? TObject<Evaluate<DecodeProperties<S>>> : T extends TPromise<infer S extends TSchema> ? TPromise<DecodeType<S>> : T extends TRecord<infer K, infer S> ? TRecord<K, DecodeType<S>> : T extends TRecursive<infer S extends TSchema> ? TRecursive<DecodeType<S>> : T extends TRef<infer S extends TSchema> ? TRef<DecodeType<S>> : T extends TTuple<infer S extends TSchema[]> ? TTuple<S> : T extends TUnion<infer S extends TSchema[]> ? TUnion<S> : T);
445
444
  export type TransformFunction<T = any, U = any> = (value: T) => U;
446
445
  export interface TransformOptions<I extends TSchema = TSchema, O extends unknown = unknown> {
447
446
  Decode: TransformFunction<StaticDecode<I>, O>;
package/value/value.d.ts CHANGED
@@ -23,13 +23,13 @@ export declare namespace Value {
23
23
  /** Returns a structural clone of the given value */
24
24
  function Clone<T>(value: T): T;
25
25
  /** Decodes a value or throws if error */
26
- function Decode<T extends Types.TSchema>(schema: T, references: Types.TSchema[], value: unknown): Types.StaticDecode<T>;
26
+ function Decode<T extends Types.TSchema, D = Types.StaticDecode<T>>(schema: T, references: Types.TSchema[], value: unknown): D;
27
27
  /** Decodes a value or throws if error */
28
- function Decode<T extends Types.TSchema>(schema: T, value: unknown): Types.StaticDecode<T>;
28
+ function Decode<T extends Types.TSchema, D = Types.StaticDecode<T>>(schema: T, value: unknown): D;
29
29
  /** Encodes a value or throws if error */
30
- function Encode<T extends Types.TSchema>(schema: T, references: Types.TSchema[], value: unknown): Types.StaticEncode<T>;
30
+ function Encode<T extends Types.TSchema, E = Types.StaticEncode<T>>(schema: T, references: Types.TSchema[], value: unknown): E;
31
31
  /** Encodes a value or throws if error */
32
- function Encode<T extends Types.TSchema>(schema: T, value: unknown): Types.StaticEncode<T>;
32
+ function Encode<T extends Types.TSchema, E = Types.StaticEncode<T>>(schema: T, value: unknown): E;
33
33
  /** Returns an iterator for each error in this value. */
34
34
  function Errors<T extends Types.TSchema>(schema: T, references: Types.TSchema[], value: unknown): ValueErrors.ValueErrorIterator;
35
35
  /** Returns an iterator for each error in this value. */