Socket
Socket
Sign inDemoInstall

@sinclair/typebox

Package Overview
Dependencies
Maintainers
1
Versions
324
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sinclair/typebox - npm Package Compare versions

Comparing version 0.32.8 to 0.32.9

5

build/require/index.d.ts

@@ -7,2 +7,4 @@ export { Kind, Hint, ReadonlyKind, OptionalKind, TransformKind } from './type/symbols/index';

export { TypeBoxError } from './type/error/index';
export { SetComplement, SetDistinct, SetIncludes, SetIntersect, SetIntersectMany, SetIsSubset, SetUnion, SetUnionMany, type TSetComplement, type TSetDistinct, type TSetIncludes, type TSetIntersect, type TSetIntersectMany, type TSetIsSubset, type TSetUnion, type TSetUnionMany, } from './type/sets/index';
export { Increment, type TIncrement, type Assert, type AssertType, type AssertRest, type AssertProperties, type Ensure, type Evaluate, type TupleToIntersect, type TupleToUnion, type UnionToTuple } from './type/helpers/index';
export { Any, type TAny } from './type/any/index';

@@ -25,3 +27,2 @@ export { Array, type TArray, type ArrayOptions } from './type/array/index';

export { Function, type TFunction } from './type/function/index';
export { Increment, type Assert, type AssertType, type AssertRest, type AssertProperties, type Ensure, type Evaluate, type TupleToIntersect, type TupleToUnion, type UnionToTuple } from './type/helpers/index';
export { Index, IndexPropertyKeys, IndexFromPropertyKeys, IndexFromPropertyKey, IndexFromMappedKey, IndexFromMappedResult, type TIndex, type TIndexPropertyKeys, type TIndexFromPropertyKeys, type TIndexFromPropertyKey, type TIndexFromMappedKey, type TIndexFromMappedResult, } from './type/indexed/index';

@@ -60,3 +61,3 @@ export { InstanceType, type TInstanceType } from './type/instance-type/index';

export { String, type TString, type StringOptions, type StringFormatOption, type StringContentEncodingOption } from './type/string/index';
export { Symbol, type TSymbol, type TSymbolValue as SymbolValue } from './type/symbol/index';
export { Symbol, type TSymbol, type TSymbolValue } from './type/symbol/index';
export { TemplateLiteral, TemplateLiteralSyntax, TemplateLiteralGenerate, TemplateLiteralParse, TemplateLiteralParseExact, IsTemplateLiteralFinite, TemplateLiteralExpressionGenerate, IsTemplateLiteralExpressionFinite, type TTemplateLiteral, type TTemplateLiteralSyntax, type TTemplateLiteralGenerate, type TTemplateLiteralKind, type TIsTemplateLiteralFinite, } from './type/template-literal/index';

@@ -63,0 +64,0 @@ export { Transform, TransformDecodeBuilder, TransformEncodeBuilder, type TTransform, type TransformOptions, type TransformFunction } from './type/transform/index';

338

build/require/index.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Iterator = exports.IntersectEvaluated = exports.Intersect = exports.Integer = exports.InstanceType = exports.IndexFromMappedResult = exports.IndexFromMappedKey = exports.IndexFromPropertyKey = exports.IndexFromPropertyKeys = exports.IndexPropertyKeys = exports.Index = exports.Increment = exports.Function = exports.Extract = exports.ExtendsUndefinedCheck = exports.ExtendsResult = exports.ExtendsCheck = exports.Extends = exports.Exclude = exports.Enum = exports.Deref = exports.Date = exports.ConstructorParameters = exports.Constructor = exports.Const = exports.Composite = exports.Boolean = exports.BigInt = exports.Awaited = exports.AsyncIterator = exports.Array = exports.Any = exports.TypeBoxError = exports.CloneRest = exports.CloneType = exports.ValueGuard = exports.TypeGuard = exports.FormatRegistry = exports.TypeRegistry = exports.PatternStringExact = exports.PatternString = exports.PatternNumberExact = exports.PatternNumber = exports.PatternBooleanExact = exports.PatternBoolean = exports.TransformKind = exports.OptionalKind = exports.ReadonlyKind = exports.Hint = exports.Kind = void 0;
exports.IsTemplateLiteralExpressionFinite = exports.TemplateLiteralExpressionGenerate = exports.IsTemplateLiteralFinite = exports.TemplateLiteralParseExact = exports.TemplateLiteralParse = exports.TemplateLiteralGenerate = exports.TemplateLiteralSyntax = exports.TemplateLiteral = exports.Symbol = exports.String = exports.Strict = exports.ReturnType = exports.Rest = exports.Required = exports.RegExp = exports.Ref = exports.Recursive = exports.Record = exports.ReadonlyOptional = exports.ReadonlyFromMappedResult = exports.Readonly = exports.Promise = exports.Pick = exports.PartialFromMappedResult = exports.Partial = exports.Parameters = exports.OptionalFromMappedResult = exports.Optional = exports.Omit = exports.Object = exports.Number = exports.Null = exports.Not = exports.Never = exports.MappedFunctionReturnType = exports.MappedResult = exports.MappedKey = exports.Mapped = exports.Literal = exports.KeyOfPattern = exports.KeyOfFromMappedResult = exports.KeyOfPropertyKeysToRest = exports.KeyOfPropertyKeys = exports.KeyOf = exports.Uppercase = exports.Uncapitalize = exports.Lowercase = exports.Capitalize = exports.IntrinsicFromMappedKey = exports.Intrinsic = void 0;
exports.JavaScriptTypeBuilder = exports.JsonTypeBuilder = exports.Type = exports.Void = exports.Unsafe = exports.Unknown = exports.UnionEvaluated = exports.Union = exports.Undefined = exports.Uint8Array = exports.Tuple = exports.TransformEncodeBuilder = exports.TransformDecodeBuilder = exports.Transform = void 0;
exports.IndexFromPropertyKeys = exports.IndexPropertyKeys = exports.Index = exports.Function = exports.Extract = exports.ExtendsUndefinedCheck = exports.ExtendsResult = exports.ExtendsCheck = exports.Extends = exports.Exclude = exports.Enum = exports.Deref = exports.Date = exports.ConstructorParameters = exports.Constructor = exports.Const = exports.Composite = exports.Boolean = exports.BigInt = exports.Awaited = exports.AsyncIterator = exports.Array = exports.Any = exports.Increment = exports.SetUnionMany = exports.SetUnion = exports.SetIsSubset = exports.SetIntersectMany = exports.SetIntersect = exports.SetIncludes = exports.SetDistinct = exports.SetComplement = exports.TypeBoxError = exports.CloneRest = exports.CloneType = exports.ValueGuard = exports.TypeGuard = exports.FormatRegistry = exports.TypeRegistry = exports.PatternStringExact = exports.PatternString = exports.PatternNumberExact = exports.PatternNumber = exports.PatternBooleanExact = exports.PatternBoolean = exports.TransformKind = exports.OptionalKind = exports.ReadonlyKind = exports.Hint = exports.Kind = void 0;
exports.Symbol = exports.String = exports.Strict = exports.ReturnType = exports.Rest = exports.Required = exports.RegExp = exports.Ref = exports.Recursive = exports.Record = exports.ReadonlyOptional = exports.ReadonlyFromMappedResult = exports.Readonly = exports.Promise = exports.Pick = exports.PartialFromMappedResult = exports.Partial = exports.Parameters = exports.OptionalFromMappedResult = exports.Optional = exports.Omit = exports.Object = exports.Number = exports.Null = exports.Not = exports.Never = exports.MappedFunctionReturnType = exports.MappedResult = exports.MappedKey = exports.Mapped = exports.Literal = exports.KeyOfPattern = exports.KeyOfFromMappedResult = exports.KeyOfPropertyKeysToRest = exports.KeyOfPropertyKeys = exports.KeyOf = exports.Uppercase = exports.Uncapitalize = exports.Lowercase = exports.Capitalize = exports.IntrinsicFromMappedKey = exports.Intrinsic = exports.Iterator = exports.IntersectEvaluated = exports.Intersect = exports.Integer = exports.InstanceType = exports.IndexFromMappedResult = exports.IndexFromMappedKey = exports.IndexFromPropertyKey = void 0;
exports.JavaScriptTypeBuilder = exports.JsonTypeBuilder = exports.Type = exports.Void = exports.Unsafe = exports.Unknown = exports.UnionEvaluated = exports.Union = exports.Undefined = exports.Uint8Array = exports.Tuple = exports.TransformEncodeBuilder = exports.TransformDecodeBuilder = exports.Transform = exports.IsTemplateLiteralExpressionFinite = exports.TemplateLiteralExpressionGenerate = exports.IsTemplateLiteralFinite = exports.TemplateLiteralParseExact = exports.TemplateLiteralParse = exports.TemplateLiteralGenerate = exports.TemplateLiteralSyntax = exports.TemplateLiteral = void 0;
// ------------------------------------------------------------------

@@ -32,165 +32,183 @@ // Infrastructure

Object.defineProperty(exports, "CloneRest", { enumerable: true, get: function () { return type_1.CloneRest; } });
// ------------------------------------------------------------------
// Error
// ------------------------------------------------------------------
var index_5 = require("./type/error/index");
Object.defineProperty(exports, "TypeBoxError", { enumerable: true, get: function () { return index_5.TypeBoxError; } });
// ------------------------------------------------------------------
// Type
// Sets
// ------------------------------------------------------------------
var index_6 = require("./type/any/index");
Object.defineProperty(exports, "Any", { enumerable: true, get: function () { return index_6.Any; } });
var index_7 = require("./type/array/index");
Object.defineProperty(exports, "Array", { enumerable: true, get: function () { return index_7.Array; } });
var index_8 = require("./type/async-iterator/index");
Object.defineProperty(exports, "AsyncIterator", { enumerable: true, get: function () { return index_8.AsyncIterator; } });
var index_9 = require("./type/awaited/index");
Object.defineProperty(exports, "Awaited", { enumerable: true, get: function () { return index_9.Awaited; } });
var index_10 = require("./type/bigint/index");
Object.defineProperty(exports, "BigInt", { enumerable: true, get: function () { return index_10.BigInt; } });
var index_11 = require("./type/boolean/index");
Object.defineProperty(exports, "Boolean", { enumerable: true, get: function () { return index_11.Boolean; } });
var index_12 = require("./type/composite/index");
Object.defineProperty(exports, "Composite", { enumerable: true, get: function () { return index_12.Composite; } });
var index_13 = require("./type/const/index");
Object.defineProperty(exports, "Const", { enumerable: true, get: function () { return index_13.Const; } });
var index_14 = require("./type/constructor/index");
Object.defineProperty(exports, "Constructor", { enumerable: true, get: function () { return index_14.Constructor; } });
var index_15 = require("./type/constructor-parameters/index");
Object.defineProperty(exports, "ConstructorParameters", { enumerable: true, get: function () { return index_15.ConstructorParameters; } });
var index_16 = require("./type/date/index");
Object.defineProperty(exports, "Date", { enumerable: true, get: function () { return index_16.Date; } });
var index_17 = require("./type/deref/index");
Object.defineProperty(exports, "Deref", { enumerable: true, get: function () { return index_17.Deref; } });
var index_18 = require("./type/enum/index");
Object.defineProperty(exports, "Enum", { enumerable: true, get: function () { return index_18.Enum; } });
var index_19 = require("./type/exclude/index");
Object.defineProperty(exports, "Exclude", { enumerable: true, get: function () { return index_19.Exclude; } });
var index_20 = require("./type/extends/index");
Object.defineProperty(exports, "Extends", { enumerable: true, get: function () { return index_20.Extends; } });
Object.defineProperty(exports, "ExtendsCheck", { enumerable: true, get: function () { return index_20.ExtendsCheck; } });
Object.defineProperty(exports, "ExtendsResult", { enumerable: true, get: function () { return index_20.ExtendsResult; } });
Object.defineProperty(exports, "ExtendsUndefinedCheck", { enumerable: true, get: function () { return index_20.ExtendsUndefinedCheck; } });
var index_21 = require("./type/extract/index");
Object.defineProperty(exports, "Extract", { enumerable: true, get: function () { return index_21.Extract; } });
var index_22 = require("./type/function/index");
Object.defineProperty(exports, "Function", { enumerable: true, get: function () { return index_22.Function; } });
var index_23 = require("./type/helpers/index");
Object.defineProperty(exports, "Increment", { enumerable: true, get: function () { return index_23.Increment; } });
var index_24 = require("./type/indexed/index");
Object.defineProperty(exports, "Index", { enumerable: true, get: function () { return index_24.Index; } });
Object.defineProperty(exports, "IndexPropertyKeys", { enumerable: true, get: function () { return index_24.IndexPropertyKeys; } });
Object.defineProperty(exports, "IndexFromPropertyKeys", { enumerable: true, get: function () { return index_24.IndexFromPropertyKeys; } });
Object.defineProperty(exports, "IndexFromPropertyKey", { enumerable: true, get: function () { return index_24.IndexFromPropertyKey; } });
Object.defineProperty(exports, "IndexFromMappedKey", { enumerable: true, get: function () { return index_24.IndexFromMappedKey; } });
Object.defineProperty(exports, "IndexFromMappedResult", { enumerable: true, get: function () { return index_24.IndexFromMappedResult; } });
var index_25 = require("./type/instance-type/index");
Object.defineProperty(exports, "InstanceType", { enumerable: true, get: function () { return index_25.InstanceType; } });
var index_26 = require("./type/integer/index");
Object.defineProperty(exports, "Integer", { enumerable: true, get: function () { return index_26.Integer; } });
var index_27 = require("./type/intersect/index");
Object.defineProperty(exports, "Intersect", { enumerable: true, get: function () { return index_27.Intersect; } });
Object.defineProperty(exports, "IntersectEvaluated", { enumerable: true, get: function () { return index_27.IntersectEvaluated; } });
var index_28 = require("./type/iterator/index");
Object.defineProperty(exports, "Iterator", { enumerable: true, get: function () { return index_28.Iterator; } });
var index_29 = require("./type/intrinsic/index");
Object.defineProperty(exports, "Intrinsic", { enumerable: true, get: function () { return index_29.Intrinsic; } });
Object.defineProperty(exports, "IntrinsicFromMappedKey", { enumerable: true, get: function () { return index_29.IntrinsicFromMappedKey; } });
Object.defineProperty(exports, "Capitalize", { enumerable: true, get: function () { return index_29.Capitalize; } });
Object.defineProperty(exports, "Lowercase", { enumerable: true, get: function () { return index_29.Lowercase; } });
Object.defineProperty(exports, "Uncapitalize", { enumerable: true, get: function () { return index_29.Uncapitalize; } });
Object.defineProperty(exports, "Uppercase", { enumerable: true, get: function () { return index_29.Uppercase; } });
var index_30 = require("./type/keyof/index");
Object.defineProperty(exports, "KeyOf", { enumerable: true, get: function () { return index_30.KeyOf; } });
Object.defineProperty(exports, "KeyOfPropertyKeys", { enumerable: true, get: function () { return index_30.KeyOfPropertyKeys; } });
Object.defineProperty(exports, "KeyOfPropertyKeysToRest", { enumerable: true, get: function () { return index_30.KeyOfPropertyKeysToRest; } });
Object.defineProperty(exports, "KeyOfFromMappedResult", { enumerable: true, get: function () { return index_30.KeyOfFromMappedResult; } });
Object.defineProperty(exports, "KeyOfPattern", { enumerable: true, get: function () { return index_30.KeyOfPattern; } });
var index_31 = require("./type/literal/index");
Object.defineProperty(exports, "Literal", { enumerable: true, get: function () { return index_31.Literal; } });
var index_32 = require("./type/mapped/index");
Object.defineProperty(exports, "Mapped", { enumerable: true, get: function () { return index_32.Mapped; } });
Object.defineProperty(exports, "MappedKey", { enumerable: true, get: function () { return index_32.MappedKey; } });
Object.defineProperty(exports, "MappedResult", { enumerable: true, get: function () { return index_32.MappedResult; } });
Object.defineProperty(exports, "MappedFunctionReturnType", { enumerable: true, get: function () { return index_32.MappedFunctionReturnType; } });
var index_33 = require("./type/never/index");
Object.defineProperty(exports, "Never", { enumerable: true, get: function () { return index_33.Never; } });
var index_34 = require("./type/not/index");
Object.defineProperty(exports, "Not", { enumerable: true, get: function () { return index_34.Not; } });
var index_35 = require("./type/null/index");
Object.defineProperty(exports, "Null", { enumerable: true, get: function () { return index_35.Null; } });
var index_36 = require("./type/number/index");
Object.defineProperty(exports, "Number", { enumerable: true, get: function () { return index_36.Number; } });
var index_37 = require("./type/object/index");
Object.defineProperty(exports, "Object", { enumerable: true, get: function () { return index_37.Object; } });
var index_38 = require("./type/omit/index");
Object.defineProperty(exports, "Omit", { enumerable: true, get: function () { return index_38.Omit; } });
var index_39 = require("./type/optional/index");
Object.defineProperty(exports, "Optional", { enumerable: true, get: function () { return index_39.Optional; } });
Object.defineProperty(exports, "OptionalFromMappedResult", { enumerable: true, get: function () { return index_39.OptionalFromMappedResult; } });
var index_40 = require("./type/parameters/index");
Object.defineProperty(exports, "Parameters", { enumerable: true, get: function () { return index_40.Parameters; } });
var index_41 = require("./type/partial/index");
Object.defineProperty(exports, "Partial", { enumerable: true, get: function () { return index_41.Partial; } });
Object.defineProperty(exports, "PartialFromMappedResult", { enumerable: true, get: function () { return index_41.PartialFromMappedResult; } });
var index_42 = require("./type/pick/index");
Object.defineProperty(exports, "Pick", { enumerable: true, get: function () { return index_42.Pick; } });
var index_43 = require("./type/promise/index");
Object.defineProperty(exports, "Promise", { enumerable: true, get: function () { return index_43.Promise; } });
var index_44 = require("./type/readonly/index");
Object.defineProperty(exports, "Readonly", { enumerable: true, get: function () { return index_44.Readonly; } });
Object.defineProperty(exports, "ReadonlyFromMappedResult", { enumerable: true, get: function () { return index_44.ReadonlyFromMappedResult; } });
var index_45 = require("./type/readonly-optional/index");
Object.defineProperty(exports, "ReadonlyOptional", { enumerable: true, get: function () { return index_45.ReadonlyOptional; } });
var index_46 = require("./type/record/index");
Object.defineProperty(exports, "Record", { enumerable: true, get: function () { return index_46.Record; } });
var index_47 = require("./type/recursive/index");
Object.defineProperty(exports, "Recursive", { enumerable: true, get: function () { return index_47.Recursive; } });
var index_48 = require("./type/ref/index");
Object.defineProperty(exports, "Ref", { enumerable: true, get: function () { return index_48.Ref; } });
var index_49 = require("./type/regexp/index");
Object.defineProperty(exports, "RegExp", { enumerable: true, get: function () { return index_49.RegExp; } });
var index_50 = require("./type/required/index");
Object.defineProperty(exports, "Required", { enumerable: true, get: function () { return index_50.Required; } });
var index_51 = require("./type/rest/index");
Object.defineProperty(exports, "Rest", { enumerable: true, get: function () { return index_51.Rest; } });
var index_52 = require("./type/return-type/index");
Object.defineProperty(exports, "ReturnType", { enumerable: true, get: function () { return index_52.ReturnType; } });
var index_53 = require("./type/strict/index");
Object.defineProperty(exports, "Strict", { enumerable: true, get: function () { return index_53.Strict; } });
var index_54 = require("./type/string/index");
Object.defineProperty(exports, "String", { enumerable: true, get: function () { return index_54.String; } });
var index_55 = require("./type/symbol/index");
Object.defineProperty(exports, "Symbol", { enumerable: true, get: function () { return index_55.Symbol; } });
var index_56 = require("./type/template-literal/index");
Object.defineProperty(exports, "TemplateLiteral", { enumerable: true, get: function () { return index_56.TemplateLiteral; } });
Object.defineProperty(exports, "TemplateLiteralSyntax", { enumerable: true, get: function () { return index_56.TemplateLiteralSyntax; } });
Object.defineProperty(exports, "TemplateLiteralGenerate", { enumerable: true, get: function () { return index_56.TemplateLiteralGenerate; } });
Object.defineProperty(exports, "TemplateLiteralParse", { enumerable: true, get: function () { return index_56.TemplateLiteralParse; } });
Object.defineProperty(exports, "TemplateLiteralParseExact", { enumerable: true, get: function () { return index_56.TemplateLiteralParseExact; } });
Object.defineProperty(exports, "IsTemplateLiteralFinite", { enumerable: true, get: function () { return index_56.IsTemplateLiteralFinite; } });
Object.defineProperty(exports, "TemplateLiteralExpressionGenerate", { enumerable: true, get: function () { return index_56.TemplateLiteralExpressionGenerate; } });
Object.defineProperty(exports, "IsTemplateLiteralExpressionFinite", { enumerable: true, get: function () { return index_56.IsTemplateLiteralExpressionFinite; } });
var index_57 = require("./type/transform/index");
Object.defineProperty(exports, "Transform", { enumerable: true, get: function () { return index_57.Transform; } });
Object.defineProperty(exports, "TransformDecodeBuilder", { enumerable: true, get: function () { return index_57.TransformDecodeBuilder; } });
Object.defineProperty(exports, "TransformEncodeBuilder", { enumerable: true, get: function () { return index_57.TransformEncodeBuilder; } });
var index_58 = require("./type/tuple/index");
Object.defineProperty(exports, "Tuple", { enumerable: true, get: function () { return index_58.Tuple; } });
var index_59 = require("./type/uint8array/index");
Object.defineProperty(exports, "Uint8Array", { enumerable: true, get: function () { return index_59.Uint8Array; } });
var index_60 = require("./type/undefined/index");
Object.defineProperty(exports, "Undefined", { enumerable: true, get: function () { return index_60.Undefined; } });
var index_61 = require("./type/union/index");
Object.defineProperty(exports, "Union", { enumerable: true, get: function () { return index_61.Union; } });
Object.defineProperty(exports, "UnionEvaluated", { enumerable: true, get: function () { return index_61.UnionEvaluated; } });
var index_62 = require("./type/unknown/index");
Object.defineProperty(exports, "Unknown", { enumerable: true, get: function () { return index_62.Unknown; } });
var index_63 = require("./type/unsafe/index");
Object.defineProperty(exports, "Unsafe", { enumerable: true, get: function () { return index_63.Unsafe; } });
var index_64 = require("./type/void/index");
Object.defineProperty(exports, "Void", { enumerable: true, get: function () { return index_64.Void; } });
var index_6 = require("./type/sets/index");
Object.defineProperty(exports, "SetComplement", { enumerable: true, get: function () { return index_6.SetComplement; } });
Object.defineProperty(exports, "SetDistinct", { enumerable: true, get: function () { return index_6.SetDistinct; } });
Object.defineProperty(exports, "SetIncludes", { enumerable: true, get: function () { return index_6.SetIncludes; } });
Object.defineProperty(exports, "SetIntersect", { enumerable: true, get: function () { return index_6.SetIntersect; } });
Object.defineProperty(exports, "SetIntersectMany", { enumerable: true, get: function () { return index_6.SetIntersectMany; } });
Object.defineProperty(exports, "SetIsSubset", { enumerable: true, get: function () { return index_6.SetIsSubset; } });
Object.defineProperty(exports, "SetUnion", { enumerable: true, get: function () { return index_6.SetUnion; } });
Object.defineProperty(exports, "SetUnionMany", { enumerable: true, get: function () { return index_6.SetUnionMany; } });
// ------------------------------------------------------------------
// Helpers
// ------------------------------------------------------------------
var index_7 = require("./type/helpers/index");
Object.defineProperty(exports, "Increment", { enumerable: true, get: function () { return index_7.Increment; } });
// ------------------------------------------------------------------
// Types
// ------------------------------------------------------------------
var index_8 = require("./type/any/index");
Object.defineProperty(exports, "Any", { enumerable: true, get: function () { return index_8.Any; } });
var index_9 = require("./type/array/index");
Object.defineProperty(exports, "Array", { enumerable: true, get: function () { return index_9.Array; } });
var index_10 = require("./type/async-iterator/index");
Object.defineProperty(exports, "AsyncIterator", { enumerable: true, get: function () { return index_10.AsyncIterator; } });
var index_11 = require("./type/awaited/index");
Object.defineProperty(exports, "Awaited", { enumerable: true, get: function () { return index_11.Awaited; } });
var index_12 = require("./type/bigint/index");
Object.defineProperty(exports, "BigInt", { enumerable: true, get: function () { return index_12.BigInt; } });
var index_13 = require("./type/boolean/index");
Object.defineProperty(exports, "Boolean", { enumerable: true, get: function () { return index_13.Boolean; } });
var index_14 = require("./type/composite/index");
Object.defineProperty(exports, "Composite", { enumerable: true, get: function () { return index_14.Composite; } });
var index_15 = require("./type/const/index");
Object.defineProperty(exports, "Const", { enumerable: true, get: function () { return index_15.Const; } });
var index_16 = require("./type/constructor/index");
Object.defineProperty(exports, "Constructor", { enumerable: true, get: function () { return index_16.Constructor; } });
var index_17 = require("./type/constructor-parameters/index");
Object.defineProperty(exports, "ConstructorParameters", { enumerable: true, get: function () { return index_17.ConstructorParameters; } });
var index_18 = require("./type/date/index");
Object.defineProperty(exports, "Date", { enumerable: true, get: function () { return index_18.Date; } });
var index_19 = require("./type/deref/index");
Object.defineProperty(exports, "Deref", { enumerable: true, get: function () { return index_19.Deref; } });
var index_20 = require("./type/enum/index");
Object.defineProperty(exports, "Enum", { enumerable: true, get: function () { return index_20.Enum; } });
var index_21 = require("./type/exclude/index");
Object.defineProperty(exports, "Exclude", { enumerable: true, get: function () { return index_21.Exclude; } });
var index_22 = require("./type/extends/index");
Object.defineProperty(exports, "Extends", { enumerable: true, get: function () { return index_22.Extends; } });
Object.defineProperty(exports, "ExtendsCheck", { enumerable: true, get: function () { return index_22.ExtendsCheck; } });
Object.defineProperty(exports, "ExtendsResult", { enumerable: true, get: function () { return index_22.ExtendsResult; } });
Object.defineProperty(exports, "ExtendsUndefinedCheck", { enumerable: true, get: function () { return index_22.ExtendsUndefinedCheck; } });
var index_23 = require("./type/extract/index");
Object.defineProperty(exports, "Extract", { enumerable: true, get: function () { return index_23.Extract; } });
var index_24 = require("./type/function/index");
Object.defineProperty(exports, "Function", { enumerable: true, get: function () { return index_24.Function; } });
var index_25 = require("./type/indexed/index");
Object.defineProperty(exports, "Index", { enumerable: true, get: function () { return index_25.Index; } });
Object.defineProperty(exports, "IndexPropertyKeys", { enumerable: true, get: function () { return index_25.IndexPropertyKeys; } });
Object.defineProperty(exports, "IndexFromPropertyKeys", { enumerable: true, get: function () { return index_25.IndexFromPropertyKeys; } });
Object.defineProperty(exports, "IndexFromPropertyKey", { enumerable: true, get: function () { return index_25.IndexFromPropertyKey; } });
Object.defineProperty(exports, "IndexFromMappedKey", { enumerable: true, get: function () { return index_25.IndexFromMappedKey; } });
Object.defineProperty(exports, "IndexFromMappedResult", { enumerable: true, get: function () { return index_25.IndexFromMappedResult; } });
var index_26 = require("./type/instance-type/index");
Object.defineProperty(exports, "InstanceType", { enumerable: true, get: function () { return index_26.InstanceType; } });
var index_27 = require("./type/integer/index");
Object.defineProperty(exports, "Integer", { enumerable: true, get: function () { return index_27.Integer; } });
var index_28 = require("./type/intersect/index");
Object.defineProperty(exports, "Intersect", { enumerable: true, get: function () { return index_28.Intersect; } });
Object.defineProperty(exports, "IntersectEvaluated", { enumerable: true, get: function () { return index_28.IntersectEvaluated; } });
var index_29 = require("./type/iterator/index");
Object.defineProperty(exports, "Iterator", { enumerable: true, get: function () { return index_29.Iterator; } });
var index_30 = require("./type/intrinsic/index");
Object.defineProperty(exports, "Intrinsic", { enumerable: true, get: function () { return index_30.Intrinsic; } });
Object.defineProperty(exports, "IntrinsicFromMappedKey", { enumerable: true, get: function () { return index_30.IntrinsicFromMappedKey; } });
Object.defineProperty(exports, "Capitalize", { enumerable: true, get: function () { return index_30.Capitalize; } });
Object.defineProperty(exports, "Lowercase", { enumerable: true, get: function () { return index_30.Lowercase; } });
Object.defineProperty(exports, "Uncapitalize", { enumerable: true, get: function () { return index_30.Uncapitalize; } });
Object.defineProperty(exports, "Uppercase", { enumerable: true, get: function () { return index_30.Uppercase; } });
var index_31 = require("./type/keyof/index");
Object.defineProperty(exports, "KeyOf", { enumerable: true, get: function () { return index_31.KeyOf; } });
Object.defineProperty(exports, "KeyOfPropertyKeys", { enumerable: true, get: function () { return index_31.KeyOfPropertyKeys; } });
Object.defineProperty(exports, "KeyOfPropertyKeysToRest", { enumerable: true, get: function () { return index_31.KeyOfPropertyKeysToRest; } });
Object.defineProperty(exports, "KeyOfFromMappedResult", { enumerable: true, get: function () { return index_31.KeyOfFromMappedResult; } });
Object.defineProperty(exports, "KeyOfPattern", { enumerable: true, get: function () { return index_31.KeyOfPattern; } });
var index_32 = require("./type/literal/index");
Object.defineProperty(exports, "Literal", { enumerable: true, get: function () { return index_32.Literal; } });
var index_33 = require("./type/mapped/index");
Object.defineProperty(exports, "Mapped", { enumerable: true, get: function () { return index_33.Mapped; } });
Object.defineProperty(exports, "MappedKey", { enumerable: true, get: function () { return index_33.MappedKey; } });
Object.defineProperty(exports, "MappedResult", { enumerable: true, get: function () { return index_33.MappedResult; } });
Object.defineProperty(exports, "MappedFunctionReturnType", { enumerable: true, get: function () { return index_33.MappedFunctionReturnType; } });
var index_34 = require("./type/never/index");
Object.defineProperty(exports, "Never", { enumerable: true, get: function () { return index_34.Never; } });
var index_35 = require("./type/not/index");
Object.defineProperty(exports, "Not", { enumerable: true, get: function () { return index_35.Not; } });
var index_36 = require("./type/null/index");
Object.defineProperty(exports, "Null", { enumerable: true, get: function () { return index_36.Null; } });
var index_37 = require("./type/number/index");
Object.defineProperty(exports, "Number", { enumerable: true, get: function () { return index_37.Number; } });
var index_38 = require("./type/object/index");
Object.defineProperty(exports, "Object", { enumerable: true, get: function () { return index_38.Object; } });
var index_39 = require("./type/omit/index");
Object.defineProperty(exports, "Omit", { enumerable: true, get: function () { return index_39.Omit; } });
var index_40 = require("./type/optional/index");
Object.defineProperty(exports, "Optional", { enumerable: true, get: function () { return index_40.Optional; } });
Object.defineProperty(exports, "OptionalFromMappedResult", { enumerable: true, get: function () { return index_40.OptionalFromMappedResult; } });
var index_41 = require("./type/parameters/index");
Object.defineProperty(exports, "Parameters", { enumerable: true, get: function () { return index_41.Parameters; } });
var index_42 = require("./type/partial/index");
Object.defineProperty(exports, "Partial", { enumerable: true, get: function () { return index_42.Partial; } });
Object.defineProperty(exports, "PartialFromMappedResult", { enumerable: true, get: function () { return index_42.PartialFromMappedResult; } });
var index_43 = require("./type/pick/index");
Object.defineProperty(exports, "Pick", { enumerable: true, get: function () { return index_43.Pick; } });
var index_44 = require("./type/promise/index");
Object.defineProperty(exports, "Promise", { enumerable: true, get: function () { return index_44.Promise; } });
var index_45 = require("./type/readonly/index");
Object.defineProperty(exports, "Readonly", { enumerable: true, get: function () { return index_45.Readonly; } });
Object.defineProperty(exports, "ReadonlyFromMappedResult", { enumerable: true, get: function () { return index_45.ReadonlyFromMappedResult; } });
var index_46 = require("./type/readonly-optional/index");
Object.defineProperty(exports, "ReadonlyOptional", { enumerable: true, get: function () { return index_46.ReadonlyOptional; } });
var index_47 = require("./type/record/index");
Object.defineProperty(exports, "Record", { enumerable: true, get: function () { return index_47.Record; } });
var index_48 = require("./type/recursive/index");
Object.defineProperty(exports, "Recursive", { enumerable: true, get: function () { return index_48.Recursive; } });
var index_49 = require("./type/ref/index");
Object.defineProperty(exports, "Ref", { enumerable: true, get: function () { return index_49.Ref; } });
var index_50 = require("./type/regexp/index");
Object.defineProperty(exports, "RegExp", { enumerable: true, get: function () { return index_50.RegExp; } });
var index_51 = require("./type/required/index");
Object.defineProperty(exports, "Required", { enumerable: true, get: function () { return index_51.Required; } });
var index_52 = require("./type/rest/index");
Object.defineProperty(exports, "Rest", { enumerable: true, get: function () { return index_52.Rest; } });
var index_53 = require("./type/return-type/index");
Object.defineProperty(exports, "ReturnType", { enumerable: true, get: function () { return index_53.ReturnType; } });
var index_54 = require("./type/strict/index");
Object.defineProperty(exports, "Strict", { enumerable: true, get: function () { return index_54.Strict; } });
var index_55 = require("./type/string/index");
Object.defineProperty(exports, "String", { enumerable: true, get: function () { return index_55.String; } });
var index_56 = require("./type/symbol/index");
Object.defineProperty(exports, "Symbol", { enumerable: true, get: function () { return index_56.Symbol; } });
var index_57 = require("./type/template-literal/index");
Object.defineProperty(exports, "TemplateLiteral", { enumerable: true, get: function () { return index_57.TemplateLiteral; } });
Object.defineProperty(exports, "TemplateLiteralSyntax", { enumerable: true, get: function () { return index_57.TemplateLiteralSyntax; } });
Object.defineProperty(exports, "TemplateLiteralGenerate", { enumerable: true, get: function () { return index_57.TemplateLiteralGenerate; } });
Object.defineProperty(exports, "TemplateLiteralParse", { enumerable: true, get: function () { return index_57.TemplateLiteralParse; } });
Object.defineProperty(exports, "TemplateLiteralParseExact", { enumerable: true, get: function () { return index_57.TemplateLiteralParseExact; } });
Object.defineProperty(exports, "IsTemplateLiteralFinite", { enumerable: true, get: function () { return index_57.IsTemplateLiteralFinite; } });
Object.defineProperty(exports, "TemplateLiteralExpressionGenerate", { enumerable: true, get: function () { return index_57.TemplateLiteralExpressionGenerate; } });
Object.defineProperty(exports, "IsTemplateLiteralExpressionFinite", { enumerable: true, get: function () { return index_57.IsTemplateLiteralExpressionFinite; } });
var index_58 = require("./type/transform/index");
Object.defineProperty(exports, "Transform", { enumerable: true, get: function () { return index_58.Transform; } });
Object.defineProperty(exports, "TransformDecodeBuilder", { enumerable: true, get: function () { return index_58.TransformDecodeBuilder; } });
Object.defineProperty(exports, "TransformEncodeBuilder", { enumerable: true, get: function () { return index_58.TransformEncodeBuilder; } });
var index_59 = require("./type/tuple/index");
Object.defineProperty(exports, "Tuple", { enumerable: true, get: function () { return index_59.Tuple; } });
var index_60 = require("./type/uint8array/index");
Object.defineProperty(exports, "Uint8Array", { enumerable: true, get: function () { return index_60.Uint8Array; } });
var index_61 = require("./type/undefined/index");
Object.defineProperty(exports, "Undefined", { enumerable: true, get: function () { return index_61.Undefined; } });
var index_62 = require("./type/union/index");
Object.defineProperty(exports, "Union", { enumerable: true, get: function () { return index_62.Union; } });
Object.defineProperty(exports, "UnionEvaluated", { enumerable: true, get: function () { return index_62.UnionEvaluated; } });
var index_63 = require("./type/unknown/index");
Object.defineProperty(exports, "Unknown", { enumerable: true, get: function () { return index_63.Unknown; } });
var index_64 = require("./type/unsafe/index");
Object.defineProperty(exports, "Unsafe", { enumerable: true, get: function () { return index_64.Unsafe; } });
var index_65 = require("./type/void/index");
Object.defineProperty(exports, "Void", { enumerable: true, get: function () { return index_65.Void; } });
// ------------------------------------------------------------------
// Namespace
// ------------------------------------------------------------------
var index_65 = require("./type/type/index");
Object.defineProperty(exports, "Type", { enumerable: true, get: function () { return index_65.Type; } });
Object.defineProperty(exports, "JsonTypeBuilder", { enumerable: true, get: function () { return index_65.JsonTypeBuilder; } });
Object.defineProperty(exports, "JavaScriptTypeBuilder", { enumerable: true, get: function () { return index_65.JavaScriptTypeBuilder; } });
var index_66 = require("./type/type/index");
Object.defineProperty(exports, "Type", { enumerable: true, get: function () { return index_66.Type; } });
Object.defineProperty(exports, "JsonTypeBuilder", { enumerable: true, get: function () { return index_66.JsonTypeBuilder; } });
Object.defineProperty(exports, "JavaScriptTypeBuilder", { enumerable: true, get: function () { return index_66.JavaScriptTypeBuilder; } });

@@ -1,13 +0,18 @@

import type { UnionToTuple, Assert, Ensure, Evaluate } from '../helpers/index';
import type { TSchema } from '../schema/index';
import type { Evaluate } from '../helpers/index';
import { type TIntersectEvaluated } from '../intersect/index';
import { type TIndexFromPropertyKeys } from '../indexed/index';
import { type TKeyOfPropertyKeys } from '../keyof/index';
import { type TNever } from '../never/index';
import { type TObject, type TProperties, type ObjectOptions } from '../object/index';
import { type TIntersect } from '../intersect/index';
import { type TIndex } from '../indexed/index';
type TCompositeKeys<T extends TObject[], Acc extends PropertyKey = never> = T extends [infer L extends TObject, ...infer R extends TObject[]] ? TCompositeKeys<R, Acc | keyof L['properties']> : Acc;
type TCompositeIndex<T extends TIntersect<TObject[]>, K extends string[], Acc extends TProperties = {}> = K extends [infer L extends string, ...infer R extends string[]] ? TCompositeIndex<T, R, Acc & {
[_ in L]: TIndex<T, [L]>;
}> : Acc;
type TCompositeReduce<T extends TObject[]> = UnionToTuple<TCompositeKeys<T>> extends infer K ? Evaluate<TCompositeIndex<TIntersect<T>, Assert<K, string[]>>> : {};
export type TComposite<T extends TObject[]> = TIntersect<T> extends TIntersect ? Ensure<TObject<TCompositeReduce<T>>> : Ensure<TObject<{}>>;
/** `[Json]` Creates a Composite object type */
export declare function Composite<T extends TObject[]>(T: [...T], options?: ObjectOptions): TComposite<T>;
import { TSetDistinct } from '../sets/index';
type TCompositeKeys<T extends TSchema[], Acc extends PropertyKey[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TCompositeKeys<R, TSetDistinct<[...Acc, ...TKeyOfPropertyKeys<L>]>> : Acc);
type TFilterNever<T extends TSchema[], Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? L extends TNever ? Acc : TFilterNever<R, [...Acc, L]> : Acc);
type TCompositeProperty<T extends TSchema[], K extends PropertyKey, Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TCompositeProperty<R, K, TFilterNever<[...Acc, ...TIndexFromPropertyKeys<L, [K]>]>> : Acc);
type TCompositeProperties<T extends TSchema[], K extends PropertyKey[], Acc = {}> = (K extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? TCompositeProperties<T, R, Acc & {
[_ in L]: TIntersectEvaluated<TCompositeProperty<T, L>>;
}> : Acc);
type TCompositeEvaluate<T extends TSchema[], K extends PropertyKey[] = TCompositeKeys<T>, P extends TProperties = Evaluate<TCompositeProperties<T, K>>, R extends TObject = TObject<P>> = R;
export type TComposite<T extends TSchema[]> = TCompositeEvaluate<T>;
export declare function Composite<T extends TSchema[]>(T: [...T], options?: ObjectOptions): TComposite<T>;
export {};

@@ -5,13 +5,40 @@ "use strict";

exports.Composite = void 0;
const index_1 = require("../object/index");
const index_2 = require("../intersect/index");
const index_3 = require("../indexed/index");
const index_4 = require("../keyof/index");
/** `[Json]` Creates a Composite object type */
function Composite(T, options) {
const intersect = (0, index_2.Intersect)(T, {});
const keys = (0, index_4.KeyOfPropertyKeys)(intersect);
const properties = keys.reduce((acc, key) => ({ ...acc, [key]: (0, index_3.Index)(intersect, [key]) }), {});
return (0, index_1.Object)(properties, options);
const index_1 = require("../intersect/index");
const index_2 = require("../indexed/index");
const index_3 = require("../keyof/index");
const index_4 = require("../object/index");
const index_5 = require("../sets/index");
// ------------------------------------------------------------------
// TypeGuard
// ------------------------------------------------------------------
const type_1 = require("../guard/type");
// prettier-ignore
function CompositeKeys(T) {
return T.reduce((Acc, L) => {
return (0, index_5.SetDistinct)([...Acc, ...(0, index_3.KeyOfPropertyKeys)(L)]);
}, []);
}
// prettier-ignore
function FilterNever(T) {
return T.filter(L => !(0, type_1.IsNever)(L));
}
// prettier-ignore
function CompositeProperty(T, K) {
return T.reduce((Acc, L) => {
return FilterNever([...Acc, ...(0, index_2.IndexFromPropertyKeys)(L, [K])]);
}, []);
}
// prettier-ignore
function CompositeProperties(T, K) {
return K.reduce((Acc, L) => {
return { ...Acc, [L]: (0, index_1.IntersectEvaluated)(CompositeProperty(T, L)) };
}, {});
}
// prettier-ignore
function Composite(T, options = {}) {
const K = CompositeKeys(T);
const P = CompositeProperties(T, K);
const R = (0, index_4.Object)(P, options);
return R;
}
exports.Composite = Composite;

@@ -36,5 +36,5 @@ import type { TSchema } from '../schema/index';

type IncrementReverse<T extends string> = T extends `${infer L}${infer R}` ? `${IncrementReverse<R>}${L}` : T;
export type Increment<T extends string> = IncrementReverse<IncrementStep<IncrementReverse<T>>>;
export type TIncrement<T extends string> = IncrementReverse<IncrementStep<IncrementReverse<T>>>;
/** Increments the given string value + 1 */
export declare function Increment<T extends string>(T: T): Increment<T>;
export declare function Increment<T extends string>(T: T): TIncrement<T>;
export type AssertProperties<T> = T extends TProperties ? T : TProperties;

@@ -41,0 +41,0 @@ export type AssertRest<T, E extends TSchema[] = TSchema[]> = T extends E ? T : [];

import type { TSchema } from '../schema/index';
import { type ZeroString, type UnionToTuple, Increment } from '../helpers/index';
import { type ZeroString, type UnionToTuple, type TIncrement } from '../helpers/index';
import type { TRecursive } from '../recursive/index';

@@ -11,7 +11,5 @@ import type { TIntersect } from '../intersect/index';

type TFromRest<T extends TSchema[], Acc extends PropertyKey[][] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TFromRest<R, [...Acc, TKeyOfPropertyKeys<L>]> : Acc);
type FromIntersect<T extends TSchema[], C extends PropertyKey[][] = TFromRest<T>, R extends PropertyKey[] = TSetUnionMany<C>> = R;
declare function FromIntersect<T extends TSchema[]>(T: [...T]): FromIntersect<T>;
type FromUnion<T extends TSchema[], C extends PropertyKey[][] = TFromRest<T>, R extends PropertyKey[] = TSetIntersectMany<C>> = R;
declare function FromUnion<T extends TSchema[]>(T: [...T]): FromUnion<T>;
type TFromTuple<T extends TSchema[], I extends string = ZeroString, Acc extends PropertyKey[] = []> = T extends [infer _ extends TSchema, ...infer R extends TSchema[]] ? TFromTuple<R, Increment<I>, [...Acc, I]> : Acc;
type TFromIntersect<T extends TSchema[], C extends PropertyKey[][] = TFromRest<T>, R extends PropertyKey[] = TSetUnionMany<C>> = R;
type TFromUnion<T extends TSchema[], C extends PropertyKey[][] = TFromRest<T>, R extends PropertyKey[] = TSetIntersectMany<C>> = R;
type TFromTuple<T extends TSchema[], I extends string = ZeroString, Acc extends PropertyKey[] = []> = T extends [infer _ extends TSchema, ...infer R extends TSchema[]] ? TFromTuple<R, TIncrement<I>, [...Acc, I]> : Acc;
type TFromArray<_ extends TSchema> = ([

@@ -21,3 +19,3 @@ '[number]'

type TFromProperties<T extends TProperties> = (UnionToTuple<keyof T>);
export type TKeyOfPropertyKeys<T extends TSchema> = (T extends TRecursive<infer S> ? TKeyOfPropertyKeys<S> : T extends TIntersect<infer S> ? FromIntersect<S> : T extends TUnion<infer S> ? FromUnion<S> : T extends TTuple<infer S> ? TFromTuple<S> : T extends TArray<infer S> ? TFromArray<S> : T extends TObject<infer S> ? TFromProperties<S> : [
export type TKeyOfPropertyKeys<T extends TSchema> = (T extends TRecursive<infer S> ? TKeyOfPropertyKeys<S> : T extends TIntersect<infer S> ? TFromIntersect<S> : T extends TUnion<infer S> ? TFromUnion<S> : T extends TTuple<infer S> ? TFromTuple<S> : T extends TArray<infer S> ? TFromArray<S> : T extends TObject<infer S> ? TFromProperties<S> : [
]);

@@ -24,0 +22,0 @@ /** Returns a tuple of PropertyKeys derived from the given TSchema. */

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);
/** Returns true if element S is in the set of T */
/** Returns true if element right is in the set of left */
export declare function SetIncludes<T extends PropertyKey[], S extends PropertyKey>(T: [...T], S: S): TSetIncludes<T, S>;
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);
/** Returns true if T is a subset of S */
export declare function SetIsSubset<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): SetIsSubset<T, S>;
export type TSetIsSubset<T extends PropertyKey[], S extends PropertyKey[]> = (T extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? TSetIncludes<S, L> extends true ? TSetIsSubset<R, S> : false : true);
/** Returns true if left is a subset of right */
export declare function SetIsSubset<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): TSetIsSubset<T, S>;
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;
/** Returns a distinct set of elements */
export declare function SetDistinct<T extends PropertyKey[]>(T: [...T]): TSetDistinct<T>;
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);
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, [...Acc, L]> : TSetIntersect<R, S, [...Acc]> : Acc);
/** Returns the Intersect of the given sets */
export declare function SetIntersect<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): TSetIntersect<T, S>;
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);
export type TSetUnion<T extends PropertyKey[], S extends PropertyKey[]> = ([
...T,
...S
]);
/** Returns the Union of the given sets */

@@ -19,4 +22,4 @@ export declare function SetUnion<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): TSetUnion<T, S>;

export declare function SetComplement<T extends PropertyKey[], S extends PropertyKey[]>(T: [...T], S: [...S]): TSetComplement<T, S>;
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);
/** Returns the Intersect of multiple sets */
type TSetIntersectManyResolve<T extends PropertyKey[][], Acc extends PropertyKey[]> = (T extends [infer L extends PropertyKey[], ...infer R extends PropertyKey[][]] ? TSetIntersectManyResolve<R, TSetIntersect<Acc, L>> : Acc);
export type TSetIntersectMany<T extends PropertyKey[][]> = (T extends [infer L extends PropertyKey[]] ? L : T extends [infer L extends PropertyKey[], ...infer R extends PropertyKey[][]] ? TSetIntersectManyResolve<R, L> : []);
export declare function SetIntersectMany<T extends PropertyKey[][]>(T: [...T]): TSetIntersectMany<T>;

@@ -26,1 +29,2 @@ 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);

export declare function SetUnionMany<T extends PropertyKey[][]>(T: [...T]): TSetUnionMany<T>;
export {};

@@ -5,3 +5,3 @@ "use strict";

exports.SetUnionMany = exports.SetIntersectMany = exports.SetComplement = exports.SetUnion = exports.SetIntersect = exports.SetDistinct = exports.SetIsSubset = exports.SetIncludes = void 0;
/** Returns true if element S is in the set of T */
/** Returns true if element right is in the set of left */
// prettier-ignore

@@ -12,3 +12,3 @@ function SetIncludes(T, S) {

exports.SetIncludes = SetIncludes;
/** Returns true if T is a subset of S */
/** Returns true if left is a subset of right */
function SetIsSubset(T, S) {

@@ -39,6 +39,16 @@ return T.every((L) => SetIncludes(S, L));

exports.SetComplement = SetComplement;
/** Returns the Intersect of multiple sets */
// prettier-ignore
function SetIntersectManyResolve(T, Init) {
return T.reduce((Acc, L) => {
return SetIntersect(Acc, L);
}, Init);
}
// prettier-ignore
function SetIntersectMany(T) {
return (T.length === 1 ? T[0] : T.reduce((Acc, L) => [...SetIntersect(Acc, L)], []));
return (T.length === 1
? T[0]
// Use left to initialize the accumulator for resolve
: T.length > 1
? SetIntersectManyResolve(T.slice(1), T[0])
: []);
}

@@ -45,0 +55,0 @@ exports.SetIntersectMany = SetIntersectMany;

@@ -74,3 +74,3 @@ import { type TAny } from '../any/index';

/** `[Json]` Creates a Composite object type */
Composite<T extends TObject[]>(objects: [...T], options?: ObjectOptions): TComposite<T>;
Composite<T extends TSchema[]>(schemas: [...T], options?: ObjectOptions): TComposite<T>;
/** `[JavaScript]` Creates a readonly const type from the given value. */

@@ -77,0 +77,0 @@ Const</* const (not supported in 4.0) */ T>(value: T, options?: SchemaOptions): TConst<T>;

@@ -90,4 +90,4 @@ "use strict";

/** `[Json]` Creates a Composite object type */
Composite(objects, options) {
return (0, index_4.Composite)(objects, options); // (error) TS 5.4.0-dev - review TComposite implementation
Composite(schemas, options) {
return (0, index_4.Composite)(schemas, options); // (error) TS 5.4.0-dev - review TComposite implementation
}

@@ -94,0 +94,0 @@ /** `[JavaScript]` Creates a readonly const type from the given value. */

{
"name": "@sinclair/typebox",
"version": "0.32.8",
"version": "0.32.9",
"description": "Json Schema Type Builder with Static Type Resolution for TypeScript",

@@ -5,0 +5,0 @@ "keywords": [

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc