@udohjeremiah/moniq 0.3.2 → 0.3.3

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dist-DVPiOZCC.js","names":["IsCombiningMark","GraphemeCount","IsMinLength","IsMaxLength","IsArray","IsBigInt","IsBoolean","IsConstructor","IsUndefined","IsFunction","IsInteger","IsNull","IsNumber","IsObject","IsString","IsSymbol","IsMultipleOf","String.GraphemeCount","IsMaxLength","String.IsMaxLengthFast","IsMinLength","String.IsMinLengthFast","IsBoolean","IsNumber","IsString","IsDate","Guard","Guard.HasPropertyKey","Guard.IsUnsafePropertyKey","FromValue","Guard.Keys","Guard.Symbols","FromObject","Guard.IsClassInstance","FromArray","FromRegExp","GlobalsGuard.IsTypeArray","GlobalsGuard.IsRegExp","GlobalsGuard.IsMap","GlobalsGuard.IsSet","Guard.IsArray","Guard.IsObject","Clone","Get","Settings.Get","Clone","Update","Settings.Get","Clone","Guard.IsObject","Guard.HasPropertyKey","Guard.IsEqual","IsSchema","Memory.Create","Memory.Update","Memory.Update","Memory.Create","Memory.Discard","Memory.Create","Memory.Discard","Memory.Create","Memory.Discard","Ref","Memory.Create","IsRef","Memory.Create","Memory.Create","Memory.Create","IsSchema","Guard.HasPropertyKey","Guard.Keys","Guard.Values","Memory.Create","Memory.Discard","Memory.Create","Guard.Keys","Memory.Update","Memory.Create","Guard.IsObjectNotArray","Guard.HasPropertyKey","Guard.IsNull","Match","Memory.Create","Memory.Discard","IsEnum","Memory.Create","Memory.Discard","FromArray","FromBigInt","FromBoolean","FromNull","FromNumber","FromObject","FromString","FromUndefined","FromValue","GlobalsGuard.IsTypeArray","GlobalsGuard.IsDate","GlobalsGuard.IsRegExp","GlobalsGuard.IsBoolean","GlobalsGuard.IsString","GlobalsGuard.IsNumber","Guard.IsArray","Guard.IsBoolean","Guard.IsBigInt","Guard.IsConstructor","Guard.IsNull","Guard.IsObject","Guard.IsString","Guard.IsSymbol","Guard.IsUndefined","Guard.IsFunction","Get","IsSchema","Guard.HasPropertyKey","Guard.IsObject","IsSchema","Guard.HasPropertyKey","IsSchema","Guard.HasPropertyKey","BigInt","Memory.Create","Boolean","Memory.Create","Memory.Create","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsString","Memory.Create","Memory.Create","Number","Memory.Create","Symbol","Memory.Create","String","Memory.Create","Memory.Create","Memory.Discard","Guard.IsEqual","FromLiteral","Guard.ShiftLeft","FromType","FromTypes","Guard.IsEqual","Memory.Create","Guard.ShiftLeft","FromLiteral","Guard.IsEqual","FromUnion","FromType","String","Memory.Create","Object","Memory.Create","Memory.Discard","Memory.Discard","Memory.Update","Memory.Discard","Memory.Update","Object","Guard.Keys","Object","Guard.IsEqual","Guard.ShiftLeft","Guard.IsEqual","Distribute","ExtendsResult.IsExtendsTrueLike","Distribute","IsEnum","Guard.IsEqual","Guard.IsString","Guard.IsNumber","Object","Guard.IsEqual","Guard.HasPropertyKey","Guard.IsString","Guard.IsEqual","Guard.IsString","Guard.IsNumber","Object","IsSchema","IsEnum","Object","Memory.Update","Guard.IsEqual","String","Number","Guard.Keys","Memory.Create","Memory.Create","T.BigInt","T.String","T.Number","T.Integer","T.Never","T.Literal","T.Union","Match","AllowedDigits","Match","Match","Token.Const","S.PatternBigIntMapping","S.PatternStringMapping","S.PatternNumberMapping","S.PatternIntegerMapping","S.PatternNeverMapping","Token.Until_1","S.PatternTextMapping","S.PatternBaseMapping","S.PatternGroupMapping","S.PatternUnionMapping","S.PatternTermMapping","S.PatternBodyMapping","S.PatternMapping","Guard.ShiftLeft","IsEnum","Memory.Update","IsSchema","Guard.HasPropertyKey","Guard.IsEqual","ExtendsUnion","Memory.Create","Guard.IsObject","Guard.HasPropertyKey","Guard.IsEqual","Match","Result.Match","Result.ExtendsTrue","Memory.Assign","Result.ExtendsFalse","Guard.ShiftLeft","IsEnum","Result.ExtendsTrue","Result.ExtendsUnion","Result.ExtendsFalse","Result.ExtendsTrue","Result.ExtendsTrue","Result.ExtendsFalse","Result.Match","Guard.ShiftLeft","Result.ExtendsTrue","Result.ExtendsTrue","Result.ExtendsTrue","Result.Match","Result.ExtendsFalse","Result.Match","Result.ExtendsTrue","Result.Match","Result.ExtendsFalse","Result.ExtendsTrue","Result.ExtendsTrue","Result.ExtendsFalse","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsString","Result.ExtendsTrue","Result.ExtendsTrue","Result.ExtendsTrue","Result.ExtendsTrue","Result.ExtendsFalse","Result.Match","Result.IsExtendsTrueLike","Guard.Keys","Memory.Assign","Guard.Values","Guard.HasPropertyKey","Guard.ShiftLeft","Object","FromObject","Guard.IsEqual","Guard.Keys","Result.ExtendsTrue","Result.ExtendsFalse","FromRecord","Result.ExtendsTrue","Result.ExtendsTrue","Memory.Create","Guard.IsObject","Guard.HasPropertyKey","Guard.IsEqual","Guard.IsString","Guard.ShiftLeft","Result.Match","Guard.IsArray","Result.ExtendsTrue","Memory.Assign","Result.ExtendsFalse","IsSchema","Result.Match","Result.ExtendsFalse","Guard.ShiftLeft","Guard.IsEqual","Result.ExtendsTrue","Result.ExtendsTrue","Guard.ShiftLeft","Result.Match","Result.ExtendsTrue","Result.ExtendsFalse","Result.ExtendsTrue","Result.ExtendsFalse","Result.ExtendsTrue","IsEnum","Result.ExtendsFalse","Object","Memory.Update","IsSchema","Guard.HasPropertyKey","Guard.IsEqual","FromRef","FromType","FromProperties","FromTypes","Guard.ShiftLeft","IsRef","FromRef","FromType","FromProperties","FromTypes","IsRef","FromRef","FromProperties","Guard.Keys","FromType","FromTypes","IsRef","Object","Object","Guard.Keys","IsRef","ExtendsResult.ExtendsFalse","ExtendsResult.ExtendsTrue","ExtendsResult.IsExtendsTrueLike","ExtendsResult.IsExtendsFalse","Guard.IsEqual","Memory.Update","Guard.IsEqual","IsRef","Guard.ShiftLeft","FromRef","FromType","IsRef","ExtendsResult.IsExtendsTrueLike","Memory.Assign","Guard.ShiftLeft","Guard.IsGreaterThan","Guard.IsEqual","Ref","Memory.Create","Memory.Discard","Memory.Update","FromLiteral","Guard.IsString","FromTemplateLiteral","FromType","FromUnion","FromType","FromType","FromLiteral","FromTemplateLiteral","FromUnion","Memory.Update","FromType","ExtendsResult.IsExtendsUnion","ExtendsResult.IsExtendsTrue","Memory.Update","Memory.Update","Memory.Update","ExtendsResult.IsExtendsTrueLike","Memory.Update","FromCyclic","FromType","FromDependent","FromType","Guard.Keys","Guard.HasPropertyKey","Memory.Assign","FromIntersect","FromType","FromObject","FromTuple","FromType","Guard.Keys","Guard.ShiftLeft","FromType","FromUnion","FromType","FromCyclic","FromDependent","FromIntersect","FromUnion","FromTuple","FromObject","Object","FromType","FromArray","Number","ExtendsResult.IsExtendsTrueLike","Guard.IsEqual","FromCyclic","FromType","FromDependent","FromType","FromEnum","FromType","FromIntersect","FromType","FromLiteral","FromTemplateLiteral","FromType","FromUnion","FromType","FromType","FromCyclic","FromDependent","IsEnum","FromEnum","FromIntersect","FromLiteral","FromTemplateLiteral","FromUnion","FromType","FromTypes","FromType","FromObject","ExtendsResult.IsExtendsTrueLike","FromTuple","Guard.IsEqual","FromType","FromArray","FromObject","FromTuple","NormalizeType","Memory.Update","FromType","Memory.Update","Number","String","Symbol","FromArray","Number","FromObject","Guard.Keys","FromRecord","FromTuple","FromType","FromArray","FromObject","FromRecord","FromTuple","Memory.Update","FromType","FromTemplateLiteral","FromType","FromUnion","FromEnum","FromLiteral","Guard.IsNumber","IsEnum","Memory.Assign","Object","Memory.Update","Memory.Assign","Guard.Keys","Memory.Update","Memory.Update","FromKeys","Guard.Keys","FromType","Object","Memory.Update","FromType","Memory.Update","FromCyclic","FromType","Memory.Assign","FromDependent","FromType","FromIntersect","FromType","FromUnion","FromType","FromObject","Object","Guard.Keys","FromType","FromCyclic","FromDependent","FromIntersect","FromUnion","FromObject","Object","Memory.Update","FromType","Guard.Keys","Memory.Assign","FromType","Object","Memory.Update","FromType","FromArray","Array","FromCyclic","FromType","Memory.Assign","FromDependent","FromType","FromIntersect","FromType","FromObject","Object","Guard.Keys","FromTuple","FromUnion","FromType","FromType","FromArray","FromCyclic","FromDependent","FromIntersect","FromObject","FromTuple","FromUnion","Memory.Update","FromType","FromCyclic","FromType","Memory.Assign","FromType","FromIntersect","FromType","FromUnion","FromType","FromObject","Object","Guard.Keys","FromType","FromCyclic","FromIntersect","FromUnion","FromObject","Object","Memory.Update","FromType","Memory.Update","Memory.Update","IsRef","Guard.ShiftLeft","IsRef","Guard.Keys","Guard.IsEqual","Object","Memory.Update","Guard.IsEqual","Insert","Guard.ShiftLeft","Guard.HasPropertyKey","Guard.IsArray","Guard.Every","Guard.IsObject","Guard.IsFunction","Guard.IsObject","Guard.IsArray","Guard.IsBoolean","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsObject","Guard.IsArray","Guard.IsString","Guard.HasPropertyKey","Guard.IsObject","Guard.IsArray","Guard.IsString","Guard.HasPropertyKey","Guard.IsObject","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.IsNumber","Guard.IsBigInt","Guard.HasPropertyKey","Guard.IsNumber","Guard.IsBigInt","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.IsNumber","Guard.IsBigInt","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.IsBigInt","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.HasPropertyKey","Guard.IsNumber","Guard.IsBigInt","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsObject","Guard.HasPropertyKey","Guard.IsArray","Guard.HasPropertyKey","Guard.IsObject","Guard.HasPropertyKey","Guard.IsObject","Guard.HasPropertyKey","Guard.IsBoolean","Guard.IsEqual","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsArray","Guard.IsString","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsString","Guard.IsArray","Guard.HasPropertyKey","Guard.IsBoolean","Guard.HasPropertyKey","Guard.HasPropertyKey","G.Every","G.EveryAll","IsValid","Schema.IsItems","G.IsArray","G.IsLessThan","S.IsPatternProperties","G.Keys","S.IsProperties","G.IsEqual","G.Every","G.EveryAll","G.IsEqual","G.IsGreaterThan","G.IsValueLike","G.IsEqual","G.IsDeepEqual","IsValid","Schema.IsMinContains","G.IsEqual","G.IsEqual","G.Keys","G.Every","G.Entries","G.HasPropertyKey","G.IsArray","G.EveryAll","G.IsEqual","G.Keys","G.Every","G.Entries","G.HasPropertyKey","G.EveryAll","G.IsEqual","G.Keys","G.Every","G.Entries","G.HasPropertyKey","G.EveryAll","Schema.IsSchema","G.IsValueLike","G.IsEqual","G.IsDeepEqual","G.IsLessThan","G.IsGreaterThan","Decode","Puny.Decode","Idna.IsLabel","Format.Test","Schema.IsThen","Schema.IsElse","G.Every","G.IsLessEqualThan","G.EveryAll","Schema.IsPrefixItems","Schema.IsItemsSized","IsValid","Schema.IsContains","G.IsLessEqualThan","Schema.IsMinContains","G.IsLessEqualThan","G.IsLessEqualThan","G.IsMaxLength","G.IsLessEqualThan","G.Keys","IsValid","Schema.IsContains","G.IsGreaterEqualThan","G.IsGreaterEqualThan","G.IsGreaterEqualThan","G.IsMinLength","G.IsGreaterEqualThan","G.Keys","G.IsMultipleOf","G.IsEqual","G.IsString","G.Every","G.Entries","G.EveryAll","G.IsEqual","G.Every","G.IsLessEqualThan","G.EveryAll","Settings.Get","G.IsUndefined","Schema.IsRequired","G.Every","G.Entries","G.HasPropertyKey","G.EveryAll","G.Every","G.Keys","G.EveryAll","Schema.IsSchema","Schema.IsSchema","G.Every","G.HasPropertyKey","G.EveryAll","G.IsEqual","G.IsObjectNotArray","G.IsArray","G.IsBoolean","G.IsInteger","G.IsNumber","G.IsNull","G.IsString","G.IsBigInt","G.IsConstructor","G.IsFunction","G.IsSymbol","G.IsUndefined","G.Every","G.EveryAll","G.Every","G.Entries","G.EveryAll","G.IsEqual","Hashing.Hash","Schema.IsSchemaBoolean","Schema.IsType","G.IsObject","G.IsArray","Schema.IsRequired","Schema.IsAdditionalProperties","Schema.IsDependencies","Schema.IsDependentRequired","Schema.IsDependentSchemas","Schema.IsPatternProperties","Schema.IsProperties","Schema.IsPropertyNames","Schema.IsMinProperties","Schema.IsMaxProperties","Schema.IsAdditionalItems","Schema.IsContains","Schema.IsItems","Schema.IsMaxContains","Schema.IsMaxItems","Schema.IsMinContains","Schema.IsMinItems","Schema.IsPrefixItems","Schema.IsUniqueItems","G.IsString","Schema.IsMaxLength","Schema.IsMinLength","Schema.IsFormat","Schema.IsPattern","G.IsNumber","G.IsBigInt","Schema.IsExclusiveMaximum","Schema.IsExclusiveMinimum","Schema.IsMaximum","Schema.IsMinimum","Schema.IsMultipleOf","Schema.IsRef","Schema.IsRecursiveRef","Schema.IsDynamicRef","Schema.IsConst","Schema.IsEnum","Schema.IsIf","Schema.IsNot","Schema.IsAllOf","Schema.IsAnyOf","Schema.IsOneOf","Schema.IsUnevaluatedItems","Schema.IsUnevaluatedProperties","Schema.IsRefine","Guard.IsObject","Guard.IsUnsafePropertyKey","Guard.IsEqual","Guard.IsEqual","Pointer.Get","Schema.IsId","Guard.IsUndefined","Schema.IsAnchor","Schema.IsDynamicAnchor","FromArray","FromObject","Guard.Keys","Schema.IsSchemaObject","Guard.IsArray","Guard.IsObject","Schema.IsSchemaObject","Schema.IsId","Schema.IsAnchor","Schema.IsRecursiveAnchorTrue","Schema.IsDynamicAnchor","Resolve.Ref","Resolve.DynamicRef","G.Keys","G.HasPropertyKey","Errors","Arguments.Match","Settings.Get","LocaleGet","Engine.Stack","Engine.ErrorContext","Guard.IsGreaterEqualThan","Engine.ErrorSchema","Check","Arguments.Match","Engine.Stack","Engine.CheckContext","Engine.CheckSchema","Arguments.Match","SchemaCheck","Arguments.Match","SchemaErrors","FromArray","Guard.IsArray","FromType","FromCyclic","FromType","Ref","Guard.HasPropertyKey","FromIntersect","FromType","Guard.HasPropertyKey","FromObject","Guard.IsObject","Guard.IsArray","Guard.Keys","Guard.HasPropertyKey","FromType","Guard.IsBoolean","Guard.IsEqual","IsSchema","FromRecord","Guard.IsObject","Guard.Keys","FromType","Guard.IsBoolean","Guard.IsEqual","IsSchema","FromRef","Guard.HasPropertyKey","FromType","FromTuple","Guard.IsArray","FromType","Guard.IsGreaterThan","SystemClone","FromUnion","FromType","FromType","T.IsArray","FromArray","T.IsCyclic","FromCyclic","T.IsIntersect","FromIntersect","T.IsObject","FromObject","T.IsRecord","FromRecord","T.IsRef","FromRef","T.IsTuple","FromTuple","T.IsUnion","FromUnion","Guard","FromProperties","FromType","Arguments.Match","FromType","Settings.Get","Guard.IsObject","Guard.HasPropertyKey","Guard.IsArray","FromBoolean","Guard.IsEqual","FromString","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","Guard.IsEqual","FromNumber","FromString","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","Guard.IsEqual","FromBoolean","FromNumber","FromString","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","FromBoolean","FromString","Guard.IsNumber","Guard.IsEqual","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNull","Guard.IsString","Guard.IsUndefined","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","Guard.IsEqual","FromBoolean","FromNumber","FromString","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromArray","Try.TryArray","FromType","Try.TryBigInt","Try.IsOk","Try.TryBoolean","Try.IsOk","FromCyclic","FromType","Ref","FromType","Try.TryNumber","Try.IsOk","FromIntersect","FromType","Try.TryBigInt","Try.IsOk","Guard.IsEqual","Try.TryBoolean","Try.TryNumber","Try.TryString","Try.TryNull","Try.IsOk","Try.TryNumber","Try.IsOk","Guard.Keys","FromType","Guard.IsUndefined","Guard.EntriesRegExp","Guard.Keys","FromType","Guard.HasPropertyKey","Guard.IsObject","FromObject","Guard.IsObjectNotArray","Guard.EntriesRegExp","Guard.Keys","FromType","Guard.HasPropertyKey","Guard.IsObject","FromRecord","Guard.IsObjectNotArray","FromRef","Guard.HasPropertyKey","FromType","Try.TryString","Try.IsOk","FromType","FromTuple","Guard.IsArray","FromType","Try.TryUndefined","Try.IsOk","FromUnion","FromType","Guard.IsUndefined","Try.TryUndefined","Try.IsOk","FromType","Type.IsArray","FromArray","Type.IsBigInt","Type.IsBoolean","Type.IsCyclic","FromCyclic","Type.IsEnum","Type.IsInteger","Type.IsIntersect","FromIntersect","Type.IsLiteral","Type.IsNull","Type.IsNumber","Type.IsObject","FromObject","Type.IsRecord","FromRecord","Type.IsRef","FromRef","Type.IsString","Type.IsTemplateLiteral","Type.IsTuple","FromTuple","Type.IsUndefined","Type.IsUnion","FromUnion","Type.IsVoid","Arguments.Match","FromType","FromArray","Guard.IsArray","FromType","FromCyclic","FromType","Ref","Guard.IsUndefined","Guard.IsFunction","FromIntersect","FromType","FromObject","Guard.IsObject","Guard.Keys","FromType","Guard.IsUndefined","Guard.HasPropertyKey","Guard.IsBoolean","FromRecord","Guard.IsObject","Guard.Keys","FromType","FromRef","Guard.HasPropertyKey","FromType","FromTuple","Guard.IsArray","FromType","FromUnion","FromType","FromType","T.IsArray","FromArray","T.IsCyclic","FromCyclic","T.IsIntersect","FromIntersect","T.IsObject","FromObject","T.IsRecord","FromRecord","T.IsRef","FromRef","T.IsTuple","FromTuple","T.IsUnion","FromUnion","Arguments.Match","FromType","Arguments.Match","Decode","Encode","Guard.IsEqual","Decode","Guard.IsArray","Encode","Guard.IsEqual","Ref","Guard.IsDeepEqual","Decode","Guard.IsEqual","Guard.IsObject","Encode","Decode","Guard.IsObjectNotArray","Guard.Keys","Guard.HasPropertyKey","Encode","Guard.IsEqual","Decode","Guard.IsObjectNotArray","Guard.Keys","Encode","Guard.IsEqual","Guard.HasPropertyKey","Guard.IsEqual","Decode","Guard.IsArray","Encode","Guard.IsEqual","Guard.IsEqual","Type.IsArray","Type.IsCyclic","Type.IsIntersect","Type.IsObject","Type.IsRecord","Type.IsRef","Type.IsTuple","Type.IsUnion","Assert","Settings.Get","Assert","Settings.Get","Arguments.Match","Settings.Get","T.Object","T.Literal","T.String","T.Unknown","T.Union","Type.Array","Type.String","Type.Union","Type.Literal","Type.Object","Type.Optional","Type.Boolean","Type.Unknown","Type.Record"],"sources":["../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/memory/metrics.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/memory/assign.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/guard/string.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/guard/guard.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/guard/globals.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/guard/index.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/memory/clone.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/settings/settings.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/memory/create.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/memory/discard.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/memory/update.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/schema.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/deferred.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly/instantiate_add.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/optional/instantiate_add.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/array.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/constructor.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/function.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/ref.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/generic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/any.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/never.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/_add_optional.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/_optional.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/properties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/unknown.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/cyclic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/unsafe.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/arguments/arguments.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/infer.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/dependent.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/enum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/unreachable/unreachable.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/hashing/hash.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/locale/en_US.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/system/locale/_config.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/_codec.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/_immutable.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/_add_readonly.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/_readonly.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/bigint.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/boolean.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/integer.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/null.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/number.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/symbol.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/string.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/patterns/pattern.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/template_literal/is_finite.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/template_literal/create.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/template_literal/decode.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/record_create.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key_any.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key_boolean.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/tuple.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly/instantiate_remove.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/_remove_readonly.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/optional/instantiate_remove.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/_remove_optional.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/tuple/to_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/evaluate/composite.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/evaluate/narrow.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/evaluate/distribute.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/exclude/operation.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key_enum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key_integer.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key_intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key_literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key_number.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key_string.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key_template_literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/evaluate/flatten.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/from_key.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/record/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/record.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/rest.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/this.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/undefined.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/void.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/mapping.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/token/internal/match.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/token/internal/take.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/token/internal/char.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/token/internal/trim.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/token/unsigned_integer.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/token/const.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/token/ident.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/token/unsigned_number.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/token/until.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/token/until_1.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/script/parser.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/template_literal/encode.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/template_literal/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/template_literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/result.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/extends_right.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/any.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/array.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/bigint.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/boolean.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/parameters.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/return_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/constructor.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/dependent.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/enum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/function.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/integer.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/never.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/null.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/number.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/record.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/string.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/symbol.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/template_literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/inference.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/tuple.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/undefined.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/unknown.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/void.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/extends_left.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/interface/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/interface.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/cyclic/check.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/cyclic/candidates.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/cyclic/dependencies.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/cyclic/extends.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/cyclic/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/cyclic/target.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/extends/extends.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/evaluate/compare.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/evaluate/broaden.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/evaluate/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/call/resolve_target.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/call/resolve_arguments.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/call/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/types/call.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/immutable/instantiate_remove.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/intrinsics/mapping.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/intrinsics/from_literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/intrinsics/from_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/intrinsics/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/capitalize.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/lowercase.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/uncapitalize.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/uppercase.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/intrinsics/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/conditional.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/conditional/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/constructor_parameters.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/exclude.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/exclude/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/extract.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/extract/operation.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/extract/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/indexed.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/object/from_cyclic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/object/from_dependent.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/object/from_intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/object/from_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/object/from_tuple.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/object/from_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/object/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/object/collapse.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/helpers/keys.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexed/from_array.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexable/from_cyclic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexable/from_dependent.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexable/from_enum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexable/from_intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexable/from_literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexable/from_template_literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexable/from_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexable/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexable/to_indexable_keys.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/this/expand_this.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexed/from_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexed/array_indexer.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexed/from_tuple.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexed/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexed/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/instance_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/instance_type/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/keyof.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/keyof/from_any.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/keyof/from_array.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/keyof/from_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/keyof/from_record.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/keyof/from_tuple.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/keyof/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/keyof/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/mapped.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/mapped/mapped_variants.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/mapped/mapped_operation.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/mapped/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/module/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/non_nullable.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/non_nullable/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/omit.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/indexable/to_indexable.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/omit/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/omit/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/parameters.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/parameters/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/partial.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/partial/from_cyclic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/partial/from_dependent.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/partial/from_intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/partial/from_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/partial/from_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/partial/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/partial/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/pick.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/pick/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/pick/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/readonly_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly_object/from_array.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly_object/from_cyclic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly_object/from_dependent.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly_object/from_intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly_object/from_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly_object/from_tuple.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly_object/from_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly_object/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/readonly_object/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/ref/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/required/from_cyclic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/required/from_dependent.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/required/from_intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/required/from_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/required/from_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/required/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/required.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/required/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/return_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/return_type/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/with.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/with/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/rest/spread.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/instantiate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/immutable/instantiate_add.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/_add_immutable.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/action/evaluate.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/type/engine/priority/priority.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/_refine.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/schema.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/additionalItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/additionalProperties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/allOf.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/anchor.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/anyOf.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/const.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/contains.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/default.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/dependencies.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/dependentRequired.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/dependentSchemas.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/dynamicAnchor.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/dynamicRef.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/else.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/enum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/exclusiveMaximum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/exclusiveMinimum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/format.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/id.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/if.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/items.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/maximum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/maxContains.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/maxItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/maxLength.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/maxProperties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/minimum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/minContains.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/minItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/minLength.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/minProperties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/multipleOf.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/not.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/oneOf.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/pattern.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/patternProperties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/prefixItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/properties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/propertyNames.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/recursiveAnchor.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/recursiveRef.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/ref.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/required.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/then.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/uniqueItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/unevaluatedItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/types/unevaluatedProperties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/_context.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/_refine.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/additionalItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/additionalProperties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/allOf.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/anyOf.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/boolean.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/const.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/contains.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/dependencies.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/dependentRequired.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/dependentSchemas.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/dynamicRef.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/enum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/date.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/time.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/date_time.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/duration.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/email.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/_puny.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/_idna.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/hostname.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/idn_email.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/idn_hostname.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/ipv4.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/ipv6.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/iri_reference.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/iri.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/json_pointer_uri_fragment.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/json_pointer.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/regex.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/relative_json_pointer.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/uri_reference.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/uri_template.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/uri.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/url.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/uuid.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/format/_registry.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/format.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/if.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/items.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/maxContains.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/maximum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/maxItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/maxLength.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/maxProperties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/minContains.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/minimum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/minItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/minLength.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/minProperties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/multipleOf.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/not.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/oneOf.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/pattern.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/patternProperties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/prefixItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/_exact_optional.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/properties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/propertyNames.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/recursiveRef.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/ref.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/required.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/uniqueItems.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/schema.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/pointer/pointer.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/resolve/ref.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/engine/_stack.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/errors.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/schema/check.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/check/check.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/errors/errors.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/assert/assert.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/from_array.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/from_cyclic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/from_intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/additional.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/from_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/from_record.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/from_ref.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/from_tuple.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clone/clone.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/from_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/shared/union_priority_sort.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/clean/clean.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/try/try_result.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/try/try_array.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/try/try_bigint.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/try/try_boolean.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/try/try_null.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/try/try_number.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/try/try_string.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/try/try_undefined.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_array.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_bigint.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_boolean.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_cyclic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_enum.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_integer.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_null.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_number.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_additional.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/shared/optional_undefined.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_record.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_ref.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_string.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_template_literal.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_tuple.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_undefined.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_void.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/convert/convert.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/from_array.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/from_cyclic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/from_default.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/from_intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/from_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/from_record.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/from_ref.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/from_tuple.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/from_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/default/default.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/pipeline/pipeline.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/callback.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/from_array.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/from_cyclic.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/from_intersect.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/from_object.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/from_record.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/from_ref.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/from_tuple.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/from_union.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/from_type.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/decode.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/codec/encode.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/parse/parse.mjs","../../../node_modules/.pnpm/typebox@1.3.6/node_modules/typebox/build/value/delta/edit.mjs","../../config/dist/index.js"],"sourcesContent":["/** TypeBox instantiation metrics */\nexport const Metrics = {\n assign: 0,\n create: 0,\n clone: 0,\n discard: 0,\n update: 0\n};\n","// deno-lint-ignore-file ban-types no-explicit-any\n// deno-fmt-ignore-file\nimport { Metrics } from './metrics.mjs';\n/**\n * Performs an Object assign using the Left and Right object types. We track this operation as it\n * creates a new GC handle per assignment.\n */\nexport function Assign(left, right) {\n Metrics.assign += 1;\n return { ...left, ...right };\n}\n","// --------------------------------------------------------------------------\n// IsBetween\n// --------------------------------------------------------------------------\nfunction IsBetween(value, min, max) {\n return value >= min && value <= max;\n}\n// --------------------------------------------------------------------------\n// IsZeroWidthJoiner\n// --------------------------------------------------------------------------\nfunction IsZeroWidthJoiner(value) {\n return (value === 0x200D);\n}\n// --------------------------------------------------------------------------\n// IsHighSurrogate\n// --------------------------------------------------------------------------\nfunction IsHighSurrogate(value) {\n return IsBetween(value, 0xD800, 0xDBFF);\n}\n// --------------------------------------------------------------------------\n// IsRegionalIndicator\n// --------------------------------------------------------------------------\nfunction IsRegionalIndicator(value) {\n return IsBetween(value, 0x1F1E6, 0x1F1FF);\n}\n// --------------------------------------------------------------------------\n// IsVariationSelector\n// --------------------------------------------------------------------------\nfunction IsVariationSelector(value) {\n return IsBetween(value, 0xFE00, 0xFE0F);\n}\n// --------------------------------------------------------------------------\n// IsCombiningMark\n// --------------------------------------------------------------------------\nfunction IsCombiningMark(value) {\n return (IsBetween(value, 0x0300, 0x036F) ||\n IsBetween(value, 0x1AB0, 0x1AFF) ||\n IsBetween(value, 0x1DC0, 0x1DFF) ||\n IsBetween(value, 0xFE20, 0xFE2F));\n}\n// --------------------------------------------------------------------------\n// CodePointLength\n// --------------------------------------------------------------------------\nfunction CodePointLength(value) {\n return value > 0xFFFF ? 2 : 1;\n}\n// --------------------------------------------------------------------------\n// ConsumeModifiers (helper)\n// --------------------------------------------------------------------------\nfunction ConsumeModifiers(value, index) {\n while (index < value.length) {\n const point = value.codePointAt(index);\n if (IsCombiningMark(point) || IsVariationSelector(point)) {\n index += CodePointLength(point);\n }\n else {\n break;\n }\n }\n return index;\n}\n// --------------------------------------------------------------------------\n// NextGraphemeClusterIndex\n// --------------------------------------------------------------------------\nfunction NextGraphemeClusterIndex(value, clusterStart) {\n const startCP = value.codePointAt(clusterStart);\n let clusterEnd = clusterStart + CodePointLength(startCP);\n // Consume combining marks & variation selectors\n clusterEnd = ConsumeModifiers(value, clusterEnd);\n // Handle multi-ZWJ sequences\n while (clusterEnd < value.length - 1 && value[clusterEnd] === '\\u200D') {\n const nextCP = value.codePointAt(clusterEnd + 1);\n clusterEnd += 1 + CodePointLength(nextCP);\n clusterEnd = ConsumeModifiers(value, clusterEnd);\n }\n // Handle regional indicator pairs (flags)\n if (IsRegionalIndicator(startCP) &&\n clusterEnd < value.length &&\n IsRegionalIndicator(value.codePointAt(clusterEnd))) {\n clusterEnd += CodePointLength(value.codePointAt(clusterEnd));\n }\n return clusterEnd;\n}\n// --------------------------------------------------------------------------\n// IsGraphemeCodePoint\n// --------------------------------------------------------------------------\nfunction IsGraphemeCodePoint(value) {\n return (IsHighSurrogate(value) ||\n IsCombiningMark(value) ||\n IsVariationSelector(value) ||\n IsZeroWidthJoiner(value));\n}\n// --------------------------------------------------------------------------\n// GraphemeCount\n// --------------------------------------------------------------------------\n/** Returns the number of grapheme clusters in a string */\nexport function GraphemeCount(value) {\n let count = 0;\n let index = 0;\n while (index < value.length) {\n index = NextGraphemeClusterIndex(value, index);\n count++;\n }\n return count;\n}\n// --------------------------------------------------------------------------\n// IsMinLength\n// --------------------------------------------------------------------------\n/** Checks if a string has at least a minimum number of grapheme clusters */\nfunction IsMinLength(value, minLength) {\n // ----------------------------------------------------------------\n // Inaccessible via public interface (review)\n //\n // deno-coverage-ignore-start\n // ----------------------------------------------------------------\n if (minLength === 0)\n return true; // 0-length\n // deno-coverage-ignore-stop\n let count = 0;\n let index = 0;\n while (index < value.length) {\n index = NextGraphemeClusterIndex(value, index);\n count++;\n if (count >= minLength)\n return true;\n }\n return false;\n}\n// --------------------------------------------------------------------------\n// IsMaxLength\n// --------------------------------------------------------------------------\n/** Checks if a string has at most a maximum number of grapheme clusters */\nfunction IsMaxLength(value, maxLength) {\n let count = 0;\n let index = 0;\n while (index < value.length) {\n index = NextGraphemeClusterIndex(value, index);\n count++;\n if (count > maxLength)\n return false;\n }\n return true;\n}\n// --------------------------------------------------------------------------\n// IsMinLengthFast\n// --------------------------------------------------------------------------\n/** Fast check for minimum grapheme length, falls back to full check if needed */\nexport function IsMinLengthFast(value, minLength) {\n if (minLength === 0)\n return true; // 0-length\n let index = 0;\n while (index < value.length) {\n if (IsGraphemeCodePoint(value.charCodeAt(index))) {\n return IsMinLength(value, minLength);\n }\n index++;\n if (index >= minLength)\n return true;\n }\n return false;\n}\n// --------------------------------------------------------------------------\n// IsMaxLengthFast\n// --------------------------------------------------------------------------\n/** Fast check for maximum grapheme length, falls back to full check if needed */\nexport function IsMaxLengthFast(value, maxLength) {\n let index = 0;\n while (index < value.length) {\n if (IsGraphemeCodePoint(value.charCodeAt(index))) {\n return IsMaxLength(value, maxLength);\n }\n index++;\n if (index > maxLength)\n return false;\n }\n return true;\n}\n","// deno-fmt-ignore-file\nimport * as String from './string.mjs';\n// --------------------------------------------------------------------------\n// Guards\n// --------------------------------------------------------------------------\n/** Returns true if this value is an array */\nexport function IsArray(value) {\n return Array.isArray(value);\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return IsEqual(typeof value, 'bigint');\n}\n/** Returns true if this value is a boolean */\nexport function IsBoolean(value) {\n return IsEqual(typeof value, 'boolean');\n}\n/** Returns true if this value is a constructor */\nexport function IsConstructor(value) {\n if (IsUndefined(value) || !IsFunction(value))\n return false;\n const result = Function.prototype.toString.call(value);\n if (/^class\\s/.test(result))\n return true;\n if (/\\[native code\\]/.test(result))\n return true;\n return false;\n}\n/** Returns true if this value is a function */\nexport function IsFunction(value) {\n return IsEqual(typeof value, 'function');\n}\n/** Returns true if this value is integer */\nexport function IsInteger(value) {\n return Number.isInteger(value);\n}\n/** Returns true if this value is null */\nexport function IsNull(value) {\n return IsEqual(value, null);\n}\n/** Returns true if this value is number */\nexport function IsNumber(value) {\n return Number.isFinite(value);\n}\n/** Returns true if this value is an object but not an array */\nexport function IsObjectNotArray(value) {\n return IsObject(value) && !IsArray(value);\n}\n/** Returns true if this value is an object */\nexport function IsObject(value) {\n return IsEqual(typeof value, 'object') && !(IsNull(value));\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return IsEqual(typeof value, 'string');\n}\n/** Returns true if this value is symbol */\nexport function IsSymbol(value) {\n return IsEqual(typeof value, 'symbol');\n}\n/** Returns true if this value is undefined */\nexport function IsUndefined(value) {\n return IsEqual(value, undefined);\n}\n// --------------------------------------------------------------------------\n// Relational\n// --------------------------------------------------------------------------\nexport function IsEqual(left, right) {\n return left === right;\n}\nexport function IsGreaterThan(left, right) {\n return left > right;\n}\nexport function IsLessThan(left, right) {\n return left < right;\n}\nexport function IsLessEqualThan(left, right) {\n return left <= right;\n}\nexport function IsGreaterEqualThan(left, right) {\n return left >= right;\n}\n// --------------------------------------------------------------------------\n// MultipleOf\n// --------------------------------------------------------------------------\nexport function IsMultipleOf(dividend, divisor) {\n if (IsBigInt(dividend) || IsBigInt(divisor)) {\n return BigInt(dividend) % BigInt(divisor) === 0n;\n }\n const tolerance = 1e-10;\n if (!IsNumber(dividend))\n return true;\n if (IsInteger(dividend) && (1 / divisor) % 1 === 0)\n return true;\n const mod = dividend % divisor;\n return Math.min(Math.abs(mod), Math.abs(mod - divisor), Math.abs(mod + divisor)) < tolerance;\n}\n// ------------------------------------------------------------------\n// IsClassInstance\n// ------------------------------------------------------------------\n/** Returns true if the value appears to be an instance of a class. */\nexport function IsClassInstance(value) {\n if (!IsObject(value))\n return false;\n const proto = globalThis.Object.getPrototypeOf(value);\n if (IsNull(proto))\n return false;\n return IsEqual(typeof proto.constructor, 'function') &&\n !(IsEqual(proto.constructor, globalThis.Object) ||\n IsEqual(proto.constructor.name, 'Object'));\n}\n// ------------------------------------------------------------------\n// IsValueLike\n// ------------------------------------------------------------------\nexport function IsValueLike(value) {\n return IsBigInt(value) ||\n IsBoolean(value) ||\n IsNull(value) ||\n IsNumber(value) ||\n IsString(value) ||\n IsUndefined(value);\n}\n// --------------------------------------------------------------------------\n// String\n// --------------------------------------------------------------------------\n/** Returns the number of grapheme clusters in the string */\nexport function GraphemeCount(value) {\n return String.GraphemeCount(value);\n}\n/** Returns true if the string has at most the given number of graphemes */\nexport function IsMaxLength(value, length) {\n return String.IsMaxLengthFast(value, length);\n}\n/** Returns true if the string has at least the given number of graphemes */\nexport function IsMinLength(value, length) {\n return String.IsMinLengthFast(value, length);\n}\n// --------------------------------------------------------------------------\n// Array\n// --------------------------------------------------------------------------\n/** Returns true if all elements from offset satisfy the callback, short-circuiting on the first failure */\nexport function Every(value, offset, callback) {\n for (let index = offset; index < value.length; index++) {\n if (!callback(value[index], index))\n return false;\n }\n return true;\n}\n/** Returns true if all elements from offset satisfy the callback, visiting every element regardless of failure */\nexport function EveryAll(value, offset, callback) {\n let result = true;\n for (let index = offset; index < value.length; index++) {\n if (!callback(value[index], index))\n result = false;\n }\n return result;\n}\n/** Shifts the left-most element from an array and dispatches to the true arm, or the false arm if empty */\nexport function ShiftLeft(array, true_, false_) {\n return (IsEqual(array.length, 0) ? false_() : true_(array[0], array.slice(1)));\n}\n// --------------------------------------------------------------------------\n// Object\n// --------------------------------------------------------------------------\n/** Returns true if the PropertyKey is Unsafe (ref: prototype-pollution). */\nexport function IsUnsafePropertyKey(key) {\n return IsEqual(key, '__proto__') || IsEqual(key, 'constructor') || IsEqual(key, 'prototype');\n}\n/** Returns true if this value has this property key */\nexport function HasPropertyKey(value, key) {\n return IsUnsafePropertyKey(key) ? Object.prototype.hasOwnProperty.call(value, key) : key in value;\n}\n/** Returns object entries as `[RegExp, Value][]` */\nexport function EntriesRegExp(value) {\n return Keys(value).map((key) => [new RegExp(`^${key}$`), value[key]]);\n}\n/** Returns object entries as `[string, Value][]` */\nexport function Entries(value) {\n return Object.entries(value);\n}\n/** Returns property keys for this object via `Object.getOwnPropertyNames({ ... })` */\nexport function Keys(value) {\n return Object.getOwnPropertyNames(value);\n}\n/** Returns the property keys for this object via `Object.getOwnPropertySymbols({ ... })` */\nexport function Symbols(value) {\n return Object.getOwnPropertySymbols(value);\n}\n/** Returns the property values for the given object via `Object.values()` */\nexport function Values(value) {\n return Object.values(value);\n}\n// ------------------------------------------------------------------\n// IsDeepEqual\n// ------------------------------------------------------------------\nfunction DeepEqualObject(left, right) {\n if (!IsObject(right))\n return false;\n const keys = Keys(left);\n return IsEqual(keys.length, Keys(right).length) &&\n keys.every((key) => IsDeepEqual(left[key], right[key]));\n}\nfunction DeepEqualArray(left, right) {\n return IsArray(right) && IsEqual(left.length, right.length) &&\n left.every((_, index) => IsDeepEqual(left[index], right[index]));\n}\n/** Returns true if left and right values are structurally equal */\nexport function IsDeepEqual(left, right) {\n return (IsArray(left) ? DeepEqualArray(left, right) :\n IsObject(left) ? DeepEqualObject(left, right) :\n IsEqual(left, right));\n}\n","// --------------------------------------------------------------------------\n// Primitives\n// --------------------------------------------------------------------------\nexport function IsBoolean(value) {\n return value instanceof Boolean;\n}\nexport function IsNumber(value) {\n return value instanceof Number;\n}\nexport function IsString(value) {\n return value instanceof String;\n}\n// --------------------------------------------------------------------------\n// TypeArray\n// --------------------------------------------------------------------------\nexport function IsTypeArray(value) {\n return globalThis.ArrayBuffer.isView(value);\n}\n/** Returns true if the value is a Int8Array */\nexport function IsInt8Array(value) {\n return value instanceof globalThis.Int8Array;\n}\n/** Returns true if the value is a Uint8Array */\nexport function IsUint8Array(value) {\n return value instanceof globalThis.Uint8Array;\n}\n/** Returns true if the value is a Uint8ClampedArray */\nexport function IsUint8ClampedArray(value) {\n return value instanceof globalThis.Uint8ClampedArray;\n}\n/** Returns true if the value is a Int16Array */\nexport function IsInt16Array(value) {\n return value instanceof globalThis.Int16Array;\n}\n/** Returns true if the value is a Uint16Array */\nexport function IsUint16Array(value) {\n return value instanceof globalThis.Uint16Array;\n}\n/** Returns true if the value is a Int32Array */\nexport function IsInt32Array(value) {\n return value instanceof globalThis.Int32Array;\n}\n/** Returns true if the value is a Uint32Array */\nexport function IsUint32Array(value) {\n return value instanceof globalThis.Uint32Array;\n}\n/** Returns true if the value is a Float32Array */\nexport function IsFloat32Array(value) {\n return value instanceof globalThis.Float32Array;\n}\n/** Returns true if the value is a Float64Array */\nexport function IsFloat64Array(value) {\n return value instanceof globalThis.Float64Array;\n}\n/** Returns true if the value is a BigInt64Array */\nexport function IsBigInt64Array(value) {\n return value instanceof globalThis.BigInt64Array;\n}\n/** Returns true if the value is a BigUint64Array */\nexport function IsBigUint64Array(value) {\n return value instanceof globalThis.BigUint64Array;\n}\n// ------------------------------------------------------------------\n// RegExp\n// ------------------------------------------------------------------\n/** Returns true if the value is a RegExp */\nexport function IsRegExp(value) {\n return value instanceof globalThis.RegExp;\n}\n// ------------------------------------------------------------------\n// Date\n// ------------------------------------------------------------------\n/** Returns true if the value is a Date */\nexport function IsDate(value) {\n return value instanceof globalThis.Date;\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\n/** Returns true if the value is a Set */\nexport function IsSet(value) {\n return value instanceof globalThis.Set;\n}\n// ------------------------------------------------------------------\n// Map\n// ------------------------------------------------------------------\n/** Returns true if the value is a Map */\nexport function IsMap(value) {\n return value instanceof globalThis.Map;\n}\n","export * as EmitGuard from './emit.mjs';\nexport * as GlobalsGuard from './globals.mjs';\nexport * as NativeGuard from './native.mjs';\nimport * as Guard from './guard.mjs';\nexport * as Guard from './guard.mjs';\nexport default Guard;\n","// deno-fmt-ignore-file\nimport { Guard, GlobalsGuard } from '../../guard/index.mjs';\nimport { Metrics } from './metrics.mjs';\n// ------------------------------------------------------------------\n// ClassInstance\n//\n// TypeBox does not clone arbitrary class instances. Class instances\n// cannot be safely cloned without potentially breaking private\n// members of the instance.\n//\n// ------------------------------------------------------------------\nfunction FromClassInstance(value) {\n return value; // atomic\n}\n// ------------------------------------------------------------------\n// TypeObject\n//\n// Types have non-enumerable properties that MUST be preserved on Clone. \n// The following is the optimal path for TypeBox types.\n// ------------------------------------------------------------------\nfunction IsTypeObject(value) {\n return (Guard.HasPropertyKey(value, '~kind') ||\n Guard.HasPropertyKey(value, '~unsafe'));\n}\nfunction FromTypeObject(value) {\n const result = {};\n const descriptors = Object.getOwnPropertyDescriptors(value);\n for (const key of Object.keys(descriptors)) {\n if (Guard.IsUnsafePropertyKey(key))\n continue; // (ignore: prototype-pollution)\n const descriptor = descriptors[key];\n if (Guard.HasPropertyKey(descriptor, 'value')) {\n Object.defineProperty(result, key, { ...descriptor, value: FromValue(descriptor.value) });\n }\n }\n return result;\n}\n// ------------------------------------------------------------------\n// PlainObject\n// ------------------------------------------------------------------\nfunction FromPlainObject(value) {\n const result = {};\n for (const key of Guard.Keys(value)) {\n if (Guard.IsUnsafePropertyKey(key))\n continue; // (ignore: prototype-pollution)\n result[key] = FromValue(value[key]);\n }\n for (const key of Guard.Symbols(value)) {\n result[key] = FromValue(value[key]);\n }\n return result;\n}\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\nfunction FromObject(value) {\n return (Guard.IsClassInstance(value) ? FromClassInstance(value) :\n IsTypeObject(value) ? FromTypeObject(value) :\n FromPlainObject(value));\n}\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\nfunction FromArray(value) {\n return value.map((element) => FromValue(element));\n}\n// ------------------------------------------------------------------\n// TypeArray\n// ------------------------------------------------------------------\nfunction FromTypedArray(value) {\n return value.slice();\n}\n// ------------------------------------------------------------------\n// RegExp\n// ------------------------------------------------------------------\nfunction FromRegExp(value) {\n return new RegExp(value.source, value.flags);\n}\n// ------------------------------------------------------------------\n// Map\n// ------------------------------------------------------------------\nfunction FromMap(value) {\n return new Map(FromValue([...value.entries()]));\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\nfunction FromSet(value) {\n return new Set(FromValue([...value.values()]));\n}\nfunction FromValue(value) {\n return (GlobalsGuard.IsTypeArray(value) ? FromTypedArray(value) :\n GlobalsGuard.IsRegExp(value) ? FromRegExp(value) :\n GlobalsGuard.IsMap(value) ? FromMap(value) :\n GlobalsGuard.IsSet(value) ? FromSet(value) :\n Guard.IsArray(value) ? FromArray(value) :\n Guard.IsObject(value) ? FromObject(value) :\n value);\n}\n// ------------------------------------------------------------------\n// Clone\n// ------------------------------------------------------------------\n/**\n * Returns a Clone of the given value. This function is similar to structuredClone()\n * but also supports deep cloning instances of Map, Set and TypeArray.\n */\nexport function Clone(value) {\n Metrics.clone += 1;\n return FromValue(value);\n}\n","import { Guard } from '../../guard/index.mjs';\n// Internal mutable state\nconst settings = {\n immutableTypes: false,\n maxErrors: 8,\n useAcceleration: true,\n exactOptionalPropertyTypes: false,\n enumerableKind: false,\n correctiveParse: false,\n unionPrioritySort: true\n};\n/** Resets system settings to defaults */\nexport function Reset() {\n settings.immutableTypes = false;\n settings.maxErrors = 8;\n settings.useAcceleration = true;\n settings.exactOptionalPropertyTypes = false;\n settings.enumerableKind = false;\n settings.correctiveParse = false;\n settings.unionPrioritySort = true;\n}\n/** Sets system settings */\nexport function Set(options) {\n for (const key of Guard.Keys(options)) {\n const value = options[key];\n if (value !== undefined) {\n Object.defineProperty(settings, key, { value });\n }\n }\n}\n/** Gets current system settings */\nexport function Get() {\n return settings;\n}\n","// deno-lint-ignore-file no-explicit-any\n// deno-fmt-ignore-file\nimport { Settings } from '../settings/index.mjs';\nimport { Metrics } from './metrics.mjs';\nfunction MergeHidden(left, right) {\n for (const key of Object.keys(right)) {\n Object.defineProperty(left, key, {\n configurable: true,\n writable: true,\n enumerable: false,\n value: right[key]\n });\n }\n return left;\n}\nfunction Merge(left, right) {\n return { ...left, ...right };\n}\n/**\n * Creates an object with hidden, enumerable, and optional property sets. This function\n * ensures types are instantiated according to configuration rules for enumerable and\n * non-enumerable properties.\n */\nexport function Create(hidden, enumerable, options = {}) {\n Metrics.create += 1;\n const settings = Settings.Get();\n const withOptions = Merge(enumerable, options);\n const withHidden = settings.enumerableKind ? Merge(withOptions, hidden) : MergeHidden(withOptions, hidden);\n return settings.immutableTypes ? Object.freeze(withHidden) : withHidden;\n}\n","// deno-lint-ignore-file no-explicit-any\n// deno-fmt-ignore-file\nimport { Metrics } from './metrics.mjs';\nimport { Clone } from './clone.mjs';\n/** Discards multiple property keys from the given object value */\nexport function Discard(value, propertyKeys) {\n Metrics.discard += 1;\n const result = {};\n const descriptors = Object.getOwnPropertyDescriptors(Clone(value));\n const keysToDiscard = new Set(propertyKeys);\n for (const key of Object.keys(descriptors)) {\n if (keysToDiscard.has(key))\n continue;\n Object.defineProperty(result, key, descriptors[key]);\n }\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Settings } from '../settings/index.mjs';\nimport { Metrics } from './metrics.mjs';\nimport { Clone } from './clone.mjs';\n/**\n * Updates a value with new properties while preserving property enumerability. Use this function to modify\n * existing types without altering their configuration.\n */\nexport function Update(current, hidden, enumerable) {\n Metrics.update += 1;\n const settings = Settings.Get();\n const result = Clone(current);\n // hidden\n for (const key of Object.keys(hidden)) {\n Object.defineProperty(result, key, {\n configurable: true,\n writable: true,\n enumerable: settings.enumerableKind,\n value: hidden[key]\n });\n }\n // enumerable\n for (const key of Object.keys(enumerable)) {\n Object.defineProperty(result, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: enumerable[key]\n });\n }\n return result;\n}\n","// deno-lint-ignore-file\n// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Kind\n// ------------------------------------------------------------------\nexport function IsKind(value, kind) {\n return Guard.IsObject(value) && Guard.HasPropertyKey(value, '~kind') && Guard.IsEqual(value[\"~kind\"], kind);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nexport function IsSchema(value) {\n return Guard.IsObject(value);\n}\n","import { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Deferred action. */\nexport function Deferred(action, parameters, options) {\n return Memory.Create({ '~kind': 'Deferred' }, { type: 'deferred', action, parameters, options }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TDeferred. */\nexport function IsDeferred(value) {\n return IsKind(value, 'Deferred');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nfunction AddReadonlyOperation(type) {\n return Memory.Update(type, { '~readonly': true }, {});\n}\nexport function AddReadonlyAction(type, options) {\n const result = Memory.Update(AddReadonlyOperation(type), {}, options);\n return result;\n}\nexport function AddReadonlyInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return AddReadonlyAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nfunction AddOptionalOperation(type) {\n return Memory.Update(type, { '~optional': true }, {});\n}\nexport function AddOptionalAction(type, options) {\n const result = Memory.Update(AddOptionalOperation(type), {}, options);\n return result;\n}\nexport function AddOptionalInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return AddOptionalAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates an Array type. */\nexport function _Array_(items, options) {\n return Memory.Create({ '~kind': 'Array' }, { type: 'array', items }, options);\n}\nexport { _Array_ as Array }; // Prevent Collision With Global Scope\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TArray. */\nexport function IsArray(value) {\n return IsKind(value, 'Array');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TArray. */\nexport function ArrayOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'items']);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Constructor type. */\nexport function Constructor(parameters, instanceType, options = {}) {\n return Memory.Create({ '~kind': 'Constructor' }, { type: 'constructor', parameters, instanceType }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TConstructor. */\nexport function IsConstructor(value) {\n return IsKind(value, 'Constructor');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TConstructor. */\nexport function ConstructorOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'parameters', 'instanceType']);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Function type. */\nexport function _Function_(parameters, returnType, options = {}) {\n return Memory.Create({ ['~kind']: 'Function' }, { type: 'function', parameters, returnType }, options);\n}\nexport { _Function_ as Function }; // Prevent Collision With Global Scope\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TFunction. */\nexport function IsFunction(value) {\n return IsKind(value, 'Function');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TFunction. */\nexport function FunctionOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'parameters', 'returnType']);\n}\n","// deno-lint-ignore-file no-explicit-any\n// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Ref type. */\nexport function Ref(ref, options) {\n return Memory.Create({ ['~kind']: 'Ref' }, { $ref: ref }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TRef. */\nexport function IsRef(value) {\n return IsKind(value, 'Ref');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\n/** Creates a Generic type. */\nexport function Generic(parameters, expression) {\n return Memory.Create({ '~kind': 'Generic' }, { type: 'generic', parameters, expression });\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TGeneric. */\nexport function IsGeneric(value) {\n return IsKind(value, 'Generic');\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file \nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Any type. */\nexport function Any(options) {\n return Memory.Create({ ['~kind']: 'Any' }, {}, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TAny. */\nexport function IsAny(value) {\n return IsKind(value, 'Any');\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Pattern\n// ------------------------------------------------------------------\nexport const NeverPattern = '(?!)';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Never type. */\nexport function Never(options) {\n return Memory.Create({ '~kind': 'Never' }, { not: {} }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TNever. */\nexport function IsNever(value) {\n return IsKind(value, 'Never');\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { AddOptionalAction } from '../engine/optional/instantiate_add.mjs';\n/** Creates a deferred AddOptional action. */\nexport function AddOptionalDeferred(type, options = {}) {\n return Deferred('AddOptional', [type], options);\n}\n/** Applies an AddOptional action to a type. */\nexport function AddOptional(type, options = {}) {\n return AddOptionalAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\nimport { AddOptional } from '../action/_add_optional.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Applies an Optional modifier to the given type. */\nexport function Optional(type) {\n return AddOptional(type);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TOptional */\nexport function IsOptional(value) {\n return IsSchema(value) && Guard.HasPropertyKey(value, '~optional');\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsOptional } from './_optional.mjs';\n/** Creates a RequiredArray derived from the given TProperties value. */\nexport function RequiredArray(properties) {\n return Guard.Keys(properties).filter((key) => !IsOptional(properties[key]));\n}\n/** Extracts a tuple of keys from a TProperties value. */\nexport function PropertyKeys(properties) {\n return Guard.Keys(properties);\n}\n/** Extracts a tuple of property values from a TProperties value. */\nexport function PropertyValues(properties) {\n return Guard.Values(properties);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { RequiredArray } from './properties.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates an Object type. */\nexport function _Object_(properties, options = {}) {\n const requiredKeys = RequiredArray(properties);\n const required = requiredKeys.length > 0 ? { required: requiredKeys } : {};\n return Memory.Create({ '~kind': 'Object' }, { type: 'object', ...required, properties }, options);\n}\nexport { _Object_ as Object }; // Prevent Collision With Global Scope\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TObject. */\nexport function IsObject(value) {\n return IsKind(value, 'Object');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TObject. */\nexport function ObjectOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'properties', 'required']);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates an Unknown type. */\nexport function Unknown(options) {\n return Memory.Create({ ['~kind']: 'Unknown' }, {}, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TUnknown. */\nexport function IsUnknown(value) {\n return IsKind(value, 'Unknown');\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Cyclic type. */\nexport function Cyclic($defs, $ref, options) {\n // $defs require an $id per definition to enable Ajv to resolve correctly\n const defs = Guard.Keys($defs).reduce((result, key) => {\n return { ...result, [key]: Memory.Update($defs[key], {}, { $id: key }) };\n }, {});\n return Memory.Create({ ['~kind']: 'Cyclic' }, { $defs: defs, $ref }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TCyclic. */\nexport function IsCyclic(value) {\n return IsKind(value, 'Cyclic');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TCyclic. */\nexport function CyclicOptions(type) {\n return Memory.Discard(type, ['~kind', '$defs', '$ref']);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file \nimport { Guard } from '../../guard/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Unsafe type. */\nexport function Unsafe(schema) {\n return Memory.Update(schema, { ['~unsafe']: null }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TUnsafe. */\nexport function IsUnsafe(value) {\n return Guard.IsObjectNotArray(value)\n && Guard.HasPropertyKey(value, '~unsafe')\n && Guard.IsNull(value['~unsafe']);\n}\n","/**\n * Match arguments for overloaded functions that use the `...args: unknown[]` pattern. Arguments\n * are parsed using argument length only.\n */\nexport function Match(args, match) {\n return (match[args.length]?.(...args) ?? (() => {\n throw Error('Invalid Arguments');\n })());\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from '../types/schema.mjs';\nimport { Unknown } from '../types/unknown.mjs';\n/** Creates an Infer instruction. */\nexport function Infer(...args) {\n const [name, extends_] = Arguments.Match(args, {\n 2: (name, extends_) => [name, extends_, extends_],\n 1: (name) => [name, Unknown(), Unknown()],\n });\n return Memory.Create({ ['~kind']: 'Infer' }, { type: 'infer', name, extends: extends_ }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TInfer. */\nexport function IsInfer(value) {\n return IsKind(value, 'Infer');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Dependent type */\nexport function Dependent(if_, then_, else_, options = {}) {\n return Memory.Create({ '~kind': 'Dependent' }, { if: if_, then: then_, else: else_ }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TDependent. */\nexport function IsDependent(value) {\n return IsKind(value, 'Dependent');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a IsDependent. */\nexport function DependentOptions(type) {\n return Memory.Discard(type, ['~kind', 'if', 'then', 'else']);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { IsTypeScriptEnumLike } from '../engine/enum/typescript_enum_to_enum_values.mjs';\nimport { TypeScriptEnumToEnumValues } from '../engine/enum/typescript_enum_to_enum_values.mjs';\n/** Returns true if the given value is a EnumValue */\nexport function IsEnumValue(value) {\n return Guard.IsString(value) || Guard.IsNumber(value);\n}\n/** Creates an Enum type. */\nexport function Enum(value, options) {\n const values = IsTypeScriptEnumLike(value) ? TypeScriptEnumToEnumValues(value) : value;\n return Memory.Create({ '~kind': 'Enum' }, { enum: values }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TEnum. */\nexport function IsEnum(value) {\n return IsKind(value, 'Enum');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Intersect type. */\nexport function Intersect(types, options = {}) {\n return Memory.Create({ '~kind': 'Intersect' }, { allOf: types }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TIntersect. */\nexport function IsIntersect(value) {\n return IsKind(value, 'Intersect');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TIntersect. */\nexport function IntersectOptions(type) {\n return Memory.Discard(type, ['~kind', 'allOf']);\n}\n","// deno-coverage-ignore-start - unreachable by definition\n/** Used for unreachable logic */\nexport function Unreachable() {\n throw new Error('Unreachable');\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\nimport { Unreachable } from '../unreachable/index.mjs';\nimport { Guard, GlobalsGuard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// InstanceKeys\n//\n// Retrieves all enumerable and non-enumerable own property keys \n// and inherited prototype keys (excluding symbols and the 'constructor') \n// from an object instance.\n//\n// This function is useful for differentiating between class instances \n// based on their structural keys rather than relying on the \n// constructor name. It provides a more reliable structural comparison \n// by capturing both own and prototype properties.\n//\n// ------------------------------------------------------------------\nfunction InstanceKeys(value) {\n const propertyKeys = new Set();\n let current = value;\n while (current && current !== Object.prototype) {\n for (const key of Reflect.ownKeys(current)) {\n if (key !== 'constructor' && typeof key !== 'symbol')\n propertyKeys.add(key);\n }\n current = Object.getPrototypeOf(current);\n }\n return [...propertyKeys];\n}\n// ------------------------------------------------------------------\n// IsIEEE754\n//\n// TypeBox guards do not consider +/- Infinity or NaN as valid\n// numbers, but they are valid IEEE754 numbers. We use a special\n// guard to ensure these numbers are considered for hashing.\n//\n// ------------------------------------------------------------------\nfunction IsIEEE754(value) {\n return typeof value === 'number';\n}\n// ------------------------------------------------------------------\n// ByteMarker\n// ------------------------------------------------------------------\nvar ByteMarker;\n(function (ByteMarker) {\n ByteMarker[ByteMarker[\"Array\"] = 0] = \"Array\";\n ByteMarker[ByteMarker[\"BigInt\"] = 1] = \"BigInt\";\n ByteMarker[ByteMarker[\"Boolean\"] = 2] = \"Boolean\";\n ByteMarker[ByteMarker[\"Date\"] = 3] = \"Date\";\n ByteMarker[ByteMarker[\"Constructor\"] = 4] = \"Constructor\";\n ByteMarker[ByteMarker[\"Function\"] = 5] = \"Function\";\n ByteMarker[ByteMarker[\"Null\"] = 6] = \"Null\";\n ByteMarker[ByteMarker[\"Number\"] = 7] = \"Number\";\n ByteMarker[ByteMarker[\"Object\"] = 8] = \"Object\";\n ByteMarker[ByteMarker[\"RegExp\"] = 9] = \"RegExp\";\n ByteMarker[ByteMarker[\"String\"] = 10] = \"String\";\n ByteMarker[ByteMarker[\"Symbol\"] = 11] = \"Symbol\";\n ByteMarker[ByteMarker[\"TypeArray\"] = 12] = \"TypeArray\";\n ByteMarker[ByteMarker[\"Undefined\"] = 13] = \"Undefined\";\n})(ByteMarker || (ByteMarker = {}));\n// ------------------------------------------------------------------\n// State\n// ------------------------------------------------------------------\nlet Accumulator = BigInt('14695981039346656037');\nconst [Prime, Size] = [BigInt('1099511628211'), BigInt('18446744073709551616' /* 2 ^ 64 */)];\nconst Bytes = Array.from({ length: 256 }).map((_, i) => BigInt(i));\nconst F64 = new Float64Array(1);\nconst F64In = new DataView(F64.buffer);\nconst F64Out = new Uint8Array(F64.buffer);\n// ------------------------------------------------------------------\n// Operation\n// ------------------------------------------------------------------\nfunction FNV1A64_OP(byte) {\n Accumulator = Accumulator ^ Bytes[byte];\n Accumulator = (Accumulator * Prime) % Size;\n}\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\nfunction FromArray(value) {\n FNV1A64_OP(ByteMarker.Array);\n for (const item of value) {\n FromValue(item);\n }\n}\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n FNV1A64_OP(ByteMarker.BigInt);\n F64In.setBigInt64(0, value);\n for (const byte of F64Out) {\n FNV1A64_OP(byte);\n }\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n FNV1A64_OP(ByteMarker.Boolean);\n FNV1A64_OP(value ? 1 : 0);\n}\n// ------------------------------------------------------------------\n// Constructor\n// ------------------------------------------------------------------\nfunction FromConstructor(value) {\n FNV1A64_OP(ByteMarker.Constructor);\n FromValue(value.toString());\n}\n// ------------------------------------------------------------------\n// Date\n// ------------------------------------------------------------------\nfunction FromDate(value) {\n FNV1A64_OP(ByteMarker.Date);\n FromValue(value.getTime());\n}\n// ------------------------------------------------------------------\n// Function\n// ------------------------------------------------------------------\nfunction FromFunction(value) {\n FNV1A64_OP(ByteMarker.Function);\n FromValue(value.toString());\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\nfunction FromNull(_value) {\n FNV1A64_OP(ByteMarker.Null);\n}\n// ------------------------------------------------------------------\n// Number | IEEE754\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n FNV1A64_OP(ByteMarker.Number);\n F64In.setFloat64(0, value, true /* little-endian */);\n for (const byte of F64Out) {\n FNV1A64_OP(byte);\n }\n}\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\nfunction FromObject(value) {\n FNV1A64_OP(ByteMarker.Object);\n for (const key of InstanceKeys(value).sort()) {\n FromValue(key);\n FromValue(value[key]);\n }\n}\n// ------------------------------------------------------------------\n// RegExp\n// ------------------------------------------------------------------\nfunction FromRegExp(value) {\n FNV1A64_OP(ByteMarker.RegExp);\n FromString(value.toString());\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nconst encoder = new TextEncoder();\nfunction FromString(value) {\n FNV1A64_OP(ByteMarker.String);\n for (const byte of encoder.encode(value)) {\n FNV1A64_OP(byte);\n }\n}\n// ------------------------------------------------------------------\n// Symbol\n// ------------------------------------------------------------------\nfunction FromSymbol(value) {\n FNV1A64_OP(ByteMarker.Symbol);\n FromValue(value.toString());\n}\n// ------------------------------------------------------------------\n// TypeArray\n// ------------------------------------------------------------------\nfunction FromTypeArray(value) {\n FNV1A64_OP(ByteMarker.TypeArray);\n const buffer = new Uint8Array(value.buffer);\n for (let i = 0; i < buffer.length; i++) {\n FNV1A64_OP(buffer[i]);\n }\n}\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(_value) {\n return FNV1A64_OP(ByteMarker.Undefined);\n}\n// ------------------------------------------------------------------\n// Hash\n//\n// deno-coverage-ignore-start - unreachable\n//\n// This function should all JavaScript values so we can't reach the\n// fall-through. We use Unreachable to assert that no values pass\n// through. We will need to handle these should they arise.\n//\n// ------------------------------------------------------------------\nfunction FromValue(value) {\n return (GlobalsGuard.IsTypeArray(value) ? FromTypeArray(value) :\n GlobalsGuard.IsDate(value) ? FromDate(value) :\n GlobalsGuard.IsRegExp(value) ? FromRegExp(value) :\n GlobalsGuard.IsBoolean(value) ? FromBoolean(value.valueOf()) :\n GlobalsGuard.IsString(value) ? FromString(value.valueOf()) :\n GlobalsGuard.IsNumber(value) ? FromNumber(value.valueOf()) :\n IsIEEE754(value) ? FromNumber(value) :\n Guard.IsArray(value) ? FromArray(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsConstructor(value) ? FromConstructor(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsObject(value) ? FromObject(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsSymbol(value) ? FromSymbol(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Guard.IsFunction(value) ? FromFunction(value) :\n Unreachable());\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Hash\n// ------------------------------------------------------------------\n/** Generates a FNV1A-64 non cryptographic hash of the given value */\nexport function HashCode(value) {\n Accumulator = BigInt('14695981039346656037');\n FromValue(value);\n return Accumulator;\n}\n/** Generates a FNV1A-64 non cryptographic hash of the given value */\nexport function Hash(value) {\n return HashCode(value).toString(16).padStart(16, '0');\n}\n","// deno-fmt-ignore-file\n/** en_US: English (United States) - ISO 639-1 language code 'en' with ISO 3166-1 alpha-2 country code 'US' for United States. */\nexport function en_US(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'must not have additional properties';\n case 'anyOf': return 'must match a schema in anyOf';\n case 'boolean': return 'schema is false';\n case 'const': return 'must be equal to constant';\n case 'contains': return 'must contain at least 1 valid item';\n case 'dependencies': return `must have properties ${error.params.dependencies.join(', ')} when property ${error.params.property} is present`;\n case 'dependentRequired': return `must have properties ${error.params.dependencies.join(', ')} when property ${error.params.property} is present`;\n case 'enum': return 'must be equal to one of the allowed values';\n case 'exclusiveMaximum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `must match format \"${error.params.format}\"`;\n case 'if': return `must match \"${error.params.failingKeyword}\" schema`;\n case 'maxItems': return `must not have more than ${error.params.limit} items`;\n case 'maxLength': return `must not have more than ${error.params.limit} characters`;\n case 'maxProperties': return `must not have more than ${error.params.limit} properties`;\n case 'maximum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `must not have fewer than ${error.params.limit} items`;\n case 'minLength': return `must not have fewer than ${error.params.limit} characters`;\n case 'minProperties': return `must not have fewer than ${error.params.limit} properties`;\n case 'minimum': return `must be ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `must be multiple of ${error.params.multipleOf}`;\n case 'not': return 'must not be valid';\n case 'oneOf': return 'must match exactly one schema in oneOf';\n case 'pattern': return `must match pattern \"${error.params.pattern}\"`;\n case 'propertyNames': return `property names ${error.params.propertyNames.join(', ')} are invalid`;\n case 'required': return `must have required properties ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `must be ${error.params.type}` : `must be either ${error.params.type.join(' or ')}`;\n case 'unevaluatedItems': return 'must not have unevaluated items';\n case 'unevaluatedProperties': return 'must not have unevaluated properties';\n case 'uniqueItems': return `must not have duplicate items`;\n case '~refine': return error.params.message;\n // deno-coverage-ignore - unreachable\n default: return 'an unknown validation error occurred';\n }\n}\n","// deno-fmt-ignore-file\nimport { en_US } from './en_US.mjs';\nlet locale = en_US;\n/** Sets the locale */\nexport function Set(callback) {\n locale = callback;\n}\n/** Gets the locale */\nexport function Get() {\n return locale;\n}\n/** Resets the locale to `en_US` */\nexport function Reset() {\n Set(en_US);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\nexport class EncodeBuilder {\n constructor(type, decode) {\n this.type = type;\n this.decode = decode;\n }\n Encode(callback) {\n const type = this.type;\n const decode = IsCodec(type) ? (value) => this.decode(type['~codec'].decode(value)) : this.decode;\n const encode = IsCodec(type) ? (value) => type['~codec'].encode(callback(value)) : callback;\n const codec = { decode, encode };\n return Memory.Update(this.type, { '~codec': codec }, {});\n }\n}\nexport class DecodeBuilder {\n constructor(type) {\n this.type = type;\n }\n Decode(callback) {\n return new EncodeBuilder(this.type, callback);\n }\n}\n// ------------------------------------------------------------------\n// Bidirectional\n// ------------------------------------------------------------------\n/** Creates a bi-directional Codec. Codec functions are called on Value.Decode and Value.Encode. */\nexport function Codec(type) {\n return new DecodeBuilder(type);\n}\n// ------------------------------------------------------------------\n// Unidirectional\n// ------------------------------------------------------------------\n/** Createsa uni-directional Codec with Decode only. The Decode function is called on Value.Decode */\nexport function Decode(type, callback) {\n return Codec(type).Decode(callback).Encode(() => {\n throw Error('Encode not implemented');\n });\n}\n/** Creates a uni-directional Codec with Encode only. The Encode function is called on Value.Encode */\nexport function Encode(type, callback) {\n return Codec(type).Decode(() => {\n throw Error('Decode not implemented');\n }).Encode(callback);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nexport function IsCodec(value) {\n return IsSchema(value) &&\n Guard.HasPropertyKey(value, '~codec') &&\n Guard.IsObject(value['~codec']) &&\n Guard.HasPropertyKey(value['~codec'], 'encode') &&\n Guard.HasPropertyKey(value['~codec'], 'decode');\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\nimport { AddImmutable } from '../action/_add_immutable.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Applies an Immutable modifier to the given type. */\nexport function Immutable(type) {\n return AddImmutable(type);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TImmutable */\nexport function IsImmutable(value) {\n return IsSchema(value) && Guard.HasPropertyKey(value, '~immutable');\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { AddReadonlyAction } from '../engine/readonly/instantiate_add.mjs';\n/** Creates a deferred AddReadonly action. */\nexport function AddReadonlyDeferred(type, options = {}) {\n return Deferred('AddReadonly', [type], options);\n}\n/** Applies an AddReadonly action to a type. */\nexport function AddReadonly(type, options = {}) {\n return AddReadonlyAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\nimport { AddReadonly } from '../action/_add_readonly.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Applies an Readonly property modifier to the given type. */\nexport function Readonly(type) {\n return AddReadonly(type);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TReadonly */\nexport function IsReadonly(value) {\n return IsSchema(value) && Guard.HasPropertyKey(value, '~readonly');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Pattern\n// ------------------------------------------------------------------\nexport const BigIntPattern = '-?(?:0|[1-9][0-9]*)n';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a BigInt type. */\nexport function BigInt(options) {\n return Memory.Create({ '~kind': 'BigInt' }, { type: 'bigint' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TBigInt. */\nexport function IsBigInt(value) {\n return IsKind(value, 'BigInt');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Boolean type. */\nexport function Boolean(options) {\n return Memory.Create({ '~kind': 'Boolean' }, { type: 'boolean' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TBoolean. */\nexport function IsBoolean(value) {\n return IsKind(value, 'Boolean');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Pattern\n// ------------------------------------------------------------------\nexport const IntegerPattern = '-?(?:0|[1-9][0-9]*)';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Integer type. */\nexport function Integer(options) {\n return Memory.Create({ '~kind': 'Integer' }, { type: 'integer' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TInteger. */\nexport function IsInteger(value) {\n return IsKind(value, 'Integer');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// InvalidLiteralValue\n// ------------------------------------------------------------------\nexport class InvalidLiteralValue extends Error {\n constructor(value) {\n super(`Invalid Literal value`);\n Object.defineProperty(this, 'cause', {\n value: { value },\n writable: false,\n configurable: false,\n enumerable: false\n });\n }\n}\nexport function LiteralTypeName(value) {\n return (Guard.IsBigInt(value) ? 'bigint' :\n Guard.IsBoolean(value) ? 'boolean' :\n Guard.IsNumber(value) ? 'number' :\n Guard.IsString(value) ? 'string' :\n (() => { throw new InvalidLiteralValue(value); })());\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Literal type. */\nexport function Literal(value, options) {\n return Memory.Create({ '~kind': 'Literal' }, { type: LiteralTypeName(value), const: value }, options);\n}\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TLiteralValue. */\nexport function IsLiteralValue(value) {\n return Guard.IsBigInt(value)\n || Guard.IsBoolean(value)\n || Guard.IsNumber(value)\n || Guard.IsString(value);\n}\n/** Returns true if the given value is TLiteral<bigint>. */\nexport function IsLiteralBigInt(value) {\n return IsLiteral(value) && Guard.IsBigInt(value.const);\n}\n/** Returns true if the given value is TLiteral<boolean>. */\nexport function IsLiteralBoolean(value) {\n return IsLiteral(value) && Guard.IsBoolean(value.const);\n}\n/** Returns true if the given value is TLiteral<number>. */\nexport function IsLiteralNumber(value) {\n return IsLiteral(value) && Guard.IsNumber(value.const);\n}\n/** Returns true if the given value is TLiteral<string>. */\nexport function IsLiteralString(value) {\n return IsLiteral(value) && Guard.IsString(value.const);\n}\n/** Returns true if the given value is TLiteral. */\nexport function IsLiteral(value) {\n return IsKind(value, 'Literal');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Null type. */\nexport function Null(options) {\n return Memory.Create({ '~kind': 'Null' }, { type: 'null' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TNull. */\nexport function IsNull(value) {\n return IsKind(value, 'Null');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Pattern\n// ------------------------------------------------------------------\nexport const NumberPattern = '-?(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Number type. */\nexport function Number(options) {\n return Memory.Create({ '~kind': 'Number' }, { type: 'number' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TNumber. */\nexport function IsNumber(value) {\n return IsKind(value, 'Number');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Symbol type. */\nexport function Symbol(options) {\n return Memory.Create({ '~kind': 'Symbol' }, { type: 'symbol' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TSymbol. */\nexport function IsSymbol(value) {\n return IsKind(value, 'Symbol');\n}\n","// deno-lint-ignore-file\n// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// StringPattern\n// ------------------------------------------------------------------\nexport const StringPattern = '.*';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a String type. */\nexport function String(options) {\n return Memory.Create({ '~kind': 'String' }, { type: 'string' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TString. */\nexport function IsString(value) {\n return IsKind(value, 'String');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Union type. */\nexport function Union(anyOf, options = {}) {\n return Memory.Create({ '~kind': 'Union' }, { anyOf }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TUnion. */\nexport function IsUnion(value) {\n return IsKind(value, 'Union');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TUnion. */\nexport function UnionOptions(type) {\n return Memory.Discard(type, ['~kind', 'anyOf']);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Pattern } from '../../script/parser.mjs';\n/** Parses a Pattern into a sequence of TemplateLiteral types. A result of [] indicates failure to parse. */\nexport function ParsePatternIntoTypes(pattern) {\n const parsed = Pattern(pattern);\n const result = Guard.IsEqual(parsed.length, 2)\n ? parsed[0]\n : []; // Failed to Parse\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nfunction FromLiteral(_value) {\n return true;\n}\nfunction FromTypesReduce(types) {\n return Guard.ShiftLeft(types, (left, right) => FromType(left)\n ? FromTypesReduce(right)\n : false, () => true);\n}\nfunction FromTypes(types) {\n const result = Guard.IsEqual(types.length, 0) ? false : FromTypesReduce(types);\n return result;\n}\nfunction FromType(type) {\n return (IsUnion(type) ? FromTypes(type.anyOf) :\n IsLiteral(type) ? FromLiteral(type.const) :\n false);\n}\n/** Returns true if the given TemplateLiteral types yields a finite variant set */\nexport function IsTemplateLiteralFinite(types) {\n const result = FromTypes(types);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nexport function TemplateLiteralCreate(pattern) {\n return Memory.Create({ ['~kind']: 'TemplateLiteral' }, { type: 'string', pattern }, {});\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { String } from '../../types/string.mjs';\nimport { IsTemplateLiteral } from '../../types/template_literal.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { ParsePatternIntoTypes } from '../patterns/pattern.mjs';\nimport { IsTemplateLiteralFinite } from './is_finite.mjs';\nimport { TemplateLiteralCreate } from './create.mjs';\nfunction FromLiteralPush(variants, value, result = []) {\n return Guard.ShiftLeft(variants, (left, right) => FromLiteralPush(right, value, [...result, `${left}${value}`]), () => result);\n}\nfunction FromLiteral(variants, value) {\n return (Guard.IsEqual(variants.length, 0) ? [`${value}`] : FromLiteralPush(variants, value));\n}\nfunction FromUnion(variants, types, result = []) {\n return Guard.ShiftLeft(types, (left, right) => FromUnion(variants, right, [...result, ...FromType(variants, left)]), () => result);\n}\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - symmetric unreachable | internal\n// \n// Parsed TemplateLiteral patterns only yield Literal or Union but\n// we keep the fall-through to assert that no other types can reach \n// here without error.\n//\n// ------------------------------------------------------------------\nfunction FromType(variants, type) {\n const result = (IsUnion(type) ? FromUnion(variants, type.anyOf) :\n IsLiteral(type) ? FromLiteral(variants, type.const) :\n Unreachable() // []\n );\n return result;\n}\nfunction DecodeFromSpan(variants, types) {\n return Guard.ShiftLeft(types, (left, right) => DecodeFromSpan(FromType(variants, left), right), () => variants);\n}\nfunction VariantsToLiterals(variants) {\n return variants.map(variant => Literal(variant));\n}\nfunction DecodeTypesAsUnion(types) {\n const variants = DecodeFromSpan([], types);\n const literals = VariantsToLiterals(variants);\n const result = Union(literals);\n return result;\n}\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - internal\n// \n// Cannot invoke the 0-length condition as the TemplateLiteral \n// parsers always return at least 1 TLiteral or TUnion. We would \n// return a empty string TLiteral for this case, but will use \n// Unreachable to catch parse inputs that trigger 0-length.\n//\n// ------------------------------------------------------------------\nfunction DecodeTypes(types) {\n return (Guard.IsEqual(types.length, 0) ? Unreachable() : // Literal('') :\n Guard.IsEqual(types.length, 1) && IsLiteral(types[0]) ? types[0] :\n DecodeTypesAsUnion(types));\n}\n/**\n * (Internal) Decodes a TemplateLiteral pattern into a Type. This function is unsafe. Decoding a non-finite\n * TemplateLiteral pattern may produce another TemplateLiteral pattern. During enumeration, this\n * TemplateLiteral -> TemplateLiteral behavior can cause a StackOverflow. A better in-flight template-literal\n * decoding algorithm is needed. (for review)\n */\nexport function TemplateLiteralDecodeUnsafe(pattern) {\n const types = ParsePatternIntoTypes(pattern);\n const result = Guard.IsEqual(types.length, 0) // Failed to Parse | IsTemplateLiteralPattern\n ? String() // ... Pattern cannot be typed, so discard\n : IsTemplateLiteralFinite(types)\n ? DecodeTypes(types)\n : TemplateLiteralCreate(pattern);\n return result;\n}\n/** Decodes a TemplateLiteral pattern but returns TString if the pattern in non-finite. */\nexport function TemplateLiteralDecode(pattern) {\n const decoded = TemplateLiteralDecodeUnsafe(pattern);\n const result = IsTemplateLiteral(decoded) ? String() : decoded;\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nexport function CreateRecord(key, value) {\n const type = 'object';\n const patternProperties = { [key]: value };\n return Memory.Create({ ['~kind']: 'Record' }, { type, patternProperties });\n}\n","// deno-fmt-ignore-file\nimport { StringKey } from '../../types/record.mjs';\nimport { CreateRecord } from './record_create.mjs';\nexport function FromAnyKey(value) {\n return CreateRecord(StringKey, value);\n}\n","// deno-fmt-ignore-file\nimport { Object } from '../../types/object.mjs';\nexport function FromBooleanKey(value) {\n return Object({ true: value, false: value });\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Tuple type. */\nexport function Tuple(types, options = {}) {\n const [items, minItems, additionalItems] = [types, types.length, false];\n return Memory.Create({ ['~kind']: 'Tuple' }, { type: 'array', additionalItems, items, minItems }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TTuple. */\nexport function IsTuple(value) {\n return IsKind(value, 'Tuple');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TTuple. */\nexport function TupleOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'items', 'minItems', 'additionalItems']);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nfunction RemoveReadonlyOperation(type) {\n return Memory.Discard(type, ['~readonly']);\n}\nexport function RemoveReadonlyAction(type, options) {\n const result = Memory.Update(RemoveReadonlyOperation(type), {}, options);\n return result;\n}\nexport function RemoveReadonlyInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return RemoveReadonlyAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { RemoveReadonlyAction } from '../engine/readonly/instantiate_remove.mjs';\n/** Creates a deferred RemoveReadonly action. */\nexport function RemoveReadonlyDeferred(type, options = {}) {\n return Deferred('RemoveReadonly', [type], options);\n}\n/** Applies an RemoveReadonly action to a type. */\nexport function RemoveReadonly(type, options = {}) {\n return RemoveReadonlyAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nfunction RemoveOptionalOperation(type) {\n return Memory.Discard(type, ['~optional']);\n}\nexport function RemoveOptionalAction(type, options) {\n const result = Memory.Update(RemoveOptionalOperation(type), {}, options);\n return result;\n}\nexport function RemoveOptionalInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return RemoveOptionalAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { RemoveOptionalAction } from '../engine/optional/instantiate_remove.mjs';\n/** Creates a deferred RemoveOptional action. */\nexport function RemoveOptionalDeferred(type, options = {}) {\n return Deferred('RemoveOptional', [type], options);\n}\n/** Applies an RemoveOptional action to a type. */\nexport function RemoveOptional(type, options = {}) {\n return RemoveOptionalAction(type, options);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Object } from '../../types/object.mjs';\nexport function TupleElementsToProperties(types) {\n const result = types.reduceRight((result, right, index) => {\n return { [index]: right, ...result };\n }, {});\n return result;\n}\nexport function TupleToObject(type) {\n const properties = TupleElementsToProperties(type.items);\n const result = Object(properties);\n return result;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsReadonly } from '../../types/_readonly.mjs';\nimport { IsOptional } from '../../types/_optional.mjs';\nimport { Object, IsObject } from '../../types/object.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { AddReadonly } from '../../action/_add_readonly.mjs';\nimport { AddOptional } from '../../action/_add_optional.mjs';\nimport { RemoveReadonly } from '../../action/_remove_readonly.mjs';\nimport { RemoveOptional } from '../../action/_remove_optional.mjs';\nimport { TupleElementsToProperties } from '../tuple/to_object.mjs';\nimport { EvaluateIntersect } from './evaluate.mjs';\nfunction IsReadonlyProperty(left, right) {\n return (IsReadonly(left) ? IsReadonly(right) ? true : false : false);\n}\nfunction IsOptionalProperty(left, right) {\n return (IsOptional(left) ? IsOptional(right) ? true : false : false);\n}\nfunction CompositeProperty(left, right) {\n const isReadonly = IsReadonlyProperty(left, right);\n const isOptional = IsOptionalProperty(left, right);\n const evaluated = EvaluateIntersect([left, right]);\n // Modifiers need to be discarded and re-applied\n const property = RemoveReadonly(RemoveOptional(evaluated));\n return (isReadonly && isOptional ? AddReadonly(AddOptional(property)) :\n isReadonly && !isOptional ? AddReadonly(property) :\n !isReadonly && isOptional ? AddOptional(property) :\n property);\n}\nfunction CompositePropertyKey(left, right, key) {\n return (key in left\n ? key in right\n ? CompositeProperty(left[key], right[key])\n : left[key]\n : key in right\n ? right[key]\n : Never());\n}\nfunction CompositeProperties(left, right) {\n const keys = new Set([...Guard.Keys(right), ...Guard.Keys(left)]);\n return [...keys].reduce((result, key) => {\n return { ...result, [key]: CompositePropertyKey(left, right, key) };\n }, {});\n}\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - symmetric unreachable | internal\n//\n// Composite is called by Distribute which provisions the type as\n// either TObject ot TTuple. Fall-through unreachable.\n//\n// ------------------------------------------------------------------\nfunction GetProperties(type) {\n const result = (IsObject(type) ? type.properties :\n IsTuple(type) ? TupleElementsToProperties(type.items) :\n Unreachable() // {}\n );\n return result;\n}\nexport function Composite(left, right) {\n const leftProperties = GetProperties(left);\n const rightProperties = GetProperties(right);\n const properties = CompositeProperties(leftProperties, rightProperties);\n return Object(properties);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { Compare, ResultLeftInside, ResultRightInside, ResultEqual } from './compare.mjs';\nexport function Narrow(left, right) {\n const result = Compare(left, right);\n return (Guard.IsEqual(result, ResultLeftInside) ? left :\n Guard.IsEqual(result, ResultRightInside) ? right :\n Guard.IsEqual(result, ResultEqual) ? right :\n Never());\n}\n","// deno-fmt-ignore-file\n// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { Composite } from './composite.mjs';\nimport { Narrow } from './narrow.mjs';\nimport { EvaluateType } from './evaluate.mjs';\nimport { EvaluateIntersect } from './evaluate.mjs';\nfunction IsObjectLike(type) {\n return IsObject(type) || IsTuple(type);\n}\nfunction IsUnionOperand(left, right) {\n const isUnionLeft = IsUnion(left);\n const isUnionRight = IsUnion(right);\n const result = isUnionLeft || isUnionRight;\n return result;\n}\nfunction DistributeOperation(left, right) {\n const evaluatedLeft = EvaluateType(left);\n const evaluatedRight = EvaluateType(right);\n const isUnionOperand = IsUnionOperand(evaluatedLeft, evaluatedRight);\n const isObjectLeft = IsObjectLike(evaluatedLeft);\n const IsObjectRight = IsObjectLike(evaluatedRight);\n const result = (isUnionOperand ? EvaluateIntersect([evaluatedLeft, evaluatedRight]) :\n isObjectLeft && IsObjectRight ? Composite(evaluatedLeft, evaluatedRight) :\n isObjectLeft && !IsObjectRight ? evaluatedLeft :\n !isObjectLeft && IsObjectRight ? evaluatedRight :\n Narrow(evaluatedLeft, evaluatedRight));\n return result;\n}\nfunction DistributeType(type, types, result = []) {\n return Guard.ShiftLeft(types, (left, right) => DistributeType(type, right, [...result, DistributeOperation(type, left)]), () => Guard.IsEqual(result.length, 0)\n ? [type]\n : result);\n}\nfunction DistributeUnion(types, distribution, result = []) {\n return Guard.ShiftLeft(types, (left, right) => DistributeUnion(right, distribution, [...result, ...Distribute([left], distribution)]), () => result);\n}\nexport function Distribute(types, result = []) {\n return Guard.ShiftLeft(types, (left, right) => IsUnion(left)\n ? Distribute(right, DistributeUnion(left.anyOf, result))\n : Distribute(right, DistributeType(left, result)), () => result);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { IsUnion } from '../../types/union.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { EvaluateType } from '../evaluate/evaluate.mjs';\nimport { EvaluateUnion } from '../evaluate/evaluate.mjs';\nfunction ExcludeType(left, right) {\n const check = Extends({}, left, right);\n const result = ExtendsResult.IsExtendsTrueLike(check) ? [] : [left];\n return result;\n}\nfunction ExcludeUnion(types, right) {\n return types.reduce((result, head) => {\n return [...result, ...ExcludeType(head, right)];\n }, []);\n}\nexport function ExcludeOperation(left, right) {\n const evaluated = EvaluateType(left);\n const canonical = IsUnion(evaluated) ? evaluated.anyOf : [evaluated];\n const remaining = ExcludeUnion(canonical, right);\n const result = EvaluateUnion(remaining);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsDependent } from '../../types/dependent.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { Literal } from '../../types/literal.mjs';\nimport { IsIntersect, Intersect } from '../../types/intersect.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsTemplateLiteral } from '../../types/template_literal.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { Distribute } from './distribute.mjs';\nimport { Broaden } from './broaden.mjs';\nimport { ExcludeOperation } from '../exclude/operation.mjs';\nimport { TemplateLiteralDecode } from '../template_literal/decode.mjs';\nexport function EvaluateDependent(if_, then_, else_) {\n const intersect = Intersect([if_, then_]);\n const excluded = ExcludeOperation(else_, if_);\n const result = EvaluateUnion([intersect, excluded]);\n return result;\n}\nexport function EvaluateEnum(values) {\n const result = values.map(value => Literal(value));\n return EvaluateUnion(result);\n}\nexport function EvaluateIntersect(types) {\n const distribution = Distribute(types);\n const broadend = Broaden(distribution);\n const result = EvaluateUnionFast(broadend);\n return result;\n}\nexport function EvaluateTemplateLiteral(pattern) {\n const evaluated = TemplateLiteralDecode(pattern);\n const result = EvaluateType(evaluated);\n return result;\n}\nexport function EvaluateUnion(types) {\n const broadend = Broaden(types);\n const result = EvaluateUnionFast(broadend);\n return result;\n}\nexport function EvaluateType(type) {\n return (IsDependent(type) ? EvaluateDependent(type.if, type.then, type.else) :\n IsEnum(type) ? EvaluateEnum(type.enum) :\n IsIntersect(type) ? EvaluateIntersect(type.allOf) :\n IsTemplateLiteral(type) ? EvaluateTemplateLiteral(type.pattern) :\n IsUnion(type) ? EvaluateUnion(type.anyOf) :\n type);\n}\nexport function EvaluateUnionFast(types) {\n const result = (Guard.IsEqual(types.length, 1) ? types[0] :\n Guard.IsEqual(types.length, 0) ? Never() :\n Union(types));\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromKey } from './from_key.mjs';\nimport { EvaluateEnum } from '../evaluate/evaluate.mjs';\nexport function FromEnumKey(values, value) {\n const unionKey = EvaluateEnum(values);\n const result = FromKey(unionKey, value);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { IntegerKey } from '../../types/record.mjs';\nimport { CreateRecord } from './record_create.mjs';\nexport function FromIntegerKey(_key, value) {\n const result = CreateRecord(IntegerKey, value);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nimport { FromKey } from './from_key.mjs';\nexport function FromIntersectKey(types, value) {\n const evaluatedKey = EvaluateIntersect(types);\n const result = FromKey(evaluatedKey, value);\n return result;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nexport function FromLiteralKey(key, value) {\n return (Guard.IsString(key) || Guard.IsNumber(key) ? Object({ [key]: value }) :\n Guard.IsEqual(key, false) ? Object({ false: value }) :\n Guard.IsEqual(key, true) ? Object({ true: value }) :\n Object({}));\n}\n","// deno-fmt-ignore-file\nimport { NumberKey } from '../../types/record.mjs';\nimport { CreateRecord } from './record_create.mjs';\nexport function FromNumberKey(_key, value) {\n const result = CreateRecord(NumberKey, value);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { StringKey } from '../../types/record.mjs';\nimport { CreateRecord } from './record_create.mjs';\nexport function FromStringKey(key, value) {\n // special case: override for string with raw pattern. We do not observe inference for the\n // raw string patterns, but as a pattern (assuming non-never) is in the set of string, we\n // allow overriding. Callers will need to narrow to the pattern manually. TB legacy.\n return (Guard.HasPropertyKey(key, 'pattern') && (Guard.IsString(key.pattern) || key.pattern instanceof RegExp)\n ? CreateRecord(key.pattern.toString(), value)\n : CreateRecord(StringKey, value));\n}\n","// deno-fmt-ignore-file\nimport { FromKey } from './from_key.mjs';\nimport { ParsePatternIntoTypes } from '../patterns/pattern.mjs';\nimport { IsTemplateLiteralFinite } from '../template_literal/is_finite.mjs';\nimport { EvaluateTemplateLiteral } from '../evaluate/evaluate.mjs';\nimport { CreateRecord } from './record_create.mjs';\nexport function FromTemplateKey(pattern, value) {\n const types = ParsePatternIntoTypes(pattern);\n const finite = IsTemplateLiteralFinite(types);\n const result = finite ? FromKey(EvaluateTemplateLiteral(pattern), value) : CreateRecord(pattern, value);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { IsUnion } from '../../types/union.mjs';\nfunction FlattenType(type) {\n const result = IsUnion(type) ? Flatten(type.anyOf) : [type];\n return result;\n}\nexport function Flatten(types) {\n return types.reduce((result, type) => {\n return [...result, ...FlattenType(type)];\n }, []);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsNumber } from '../../types/number.mjs';\nimport { IsInteger } from '../../types/integer.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { IsString } from '../../types/string.mjs';\nimport { StringKey } from '../../types/record.mjs';\nimport { Flatten } from '../evaluate/flatten.mjs';\nimport { CreateRecord } from './record_create.mjs';\nfunction StringOrNumberCheck(types) {\n return types.some(type => IsString(type) || IsNumber(type) || IsInteger(type));\n}\nfunction TryBuildRecord(types, value) {\n return (Guard.IsEqual(StringOrNumberCheck(types), true)\n ? CreateRecord(StringKey, value)\n : undefined);\n}\nfunction CreateProperties(types, value) {\n return types.reduce((result, left) => {\n return IsLiteral(left) && (Guard.IsString(left.const) || Guard.IsNumber(left.const))\n ? { ...result, [left.const]: value }\n : result;\n }, {});\n}\nfunction CreateObject(types, value) {\n const properties = CreateProperties(types, value);\n const result = Object(properties);\n return result;\n}\nexport function FromUnionKey(types, value) {\n const flattened = Flatten(types);\n const record = TryBuildRecord(flattened, value);\n return (IsSchema(record) // maybe IsRecord?\n ? record\n : CreateObject(flattened, value));\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { IsAny } from '../../types/any.mjs';\nimport { IsBoolean } from '../../types/boolean.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsInteger } from '../../types/integer.mjs';\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsNumber } from '../../types/number.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { IsString } from '../../types/string.mjs';\nimport { IsTemplateLiteral } from '../../types/template_literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\n// ------------------------------------------------------------------\n// Keys and Deferred\n// ------------------------------------------------------------------\nimport { FromAnyKey } from './from_key_any.mjs';\nimport { FromBooleanKey } from './from_key_boolean.mjs';\nimport { FromEnumKey } from './from_key_enum.mjs';\nimport { FromIntegerKey } from './from_key_integer.mjs';\nimport { FromIntersectKey } from './from_key_intersect.mjs';\nimport { FromLiteralKey } from './from_key_literal.mjs';\nimport { FromNumberKey } from './from_key_number.mjs';\nimport { FromStringKey } from './from_key_string.mjs';\nimport { FromTemplateKey } from './from_key_template_literal.mjs';\nimport { FromUnionKey } from './from_key_union.mjs';\nexport function FromKey(key, value) {\n const result = (IsAny(key) ? FromAnyKey(value) :\n IsBoolean(key) ? FromBooleanKey(value) :\n IsEnum(key) ? FromEnumKey(key.enum, value) :\n IsInteger(key) ? FromIntegerKey(key, value) :\n IsIntersect(key) ? FromIntersectKey(key.allOf, value) :\n IsLiteral(key) ? FromLiteralKey(key.const, value) :\n IsNumber(key) ? FromNumberKey(key, value) :\n IsUnion(key) ? FromUnionKey(key.anyOf, value) :\n IsString(key) ? FromStringKey(key, value) :\n IsTemplateLiteral(key) ? FromTemplateKey(key.pattern, value) :\n Object({}));\n return result;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { RecordDeferred } from '../../types/record.mjs';\nimport { FromKey } from './from_key.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nexport function RecordAction(key, value, options) {\n const result = CanInstantiate([key])\n ? Memory.Update(FromKey(key, value), {}, options)\n : RecordDeferred(key, value, options);\n return result;\n}\nexport function RecordInstantiate(context, state, key, value, options) {\n const instantiatedKey = InstantiateType(context, state, key);\n const instantiatedValue = InstantiateType(context, state, value);\n return RecordAction(instantiatedKey, instantiatedValue, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { Integer, IntegerPattern } from './integer.mjs';\nimport { Number, NumberPattern } from './number.mjs';\nimport { String, StringPattern } from './string.mjs';\nimport { Deferred } from './deferred.mjs';\nimport { TemplateLiteralDecodeUnsafe } from '../engine/template_literal/decode.mjs';\nimport { CreateRecord } from '../engine/record/record_create.mjs';\nimport { RecordAction } from '../engine/record/instantiate.mjs';\nexport const IntegerKey = `^${IntegerPattern}$`;\nexport const NumberKey = `^${NumberPattern}$`;\nexport const StringKey = `^${StringPattern}$`;\n/** Represents a deferred Record action. */\nexport function RecordDeferred(key, value, options = {}) {\n return Deferred('Record', [key, value], options);\n}\n// -------------------------------------------------------------------\n// Factory\n// -------------------------------------------------------------------\n/** Creates a Record type. */\nexport function Record(key, value, options = {}) {\n return RecordAction(key, value, options);\n}\n// -------------------------------------------------------------------\n// RecordFromPattern\n// -------------------------------------------------------------------\n/** Creates a Record type from regular expression pattern. */\nexport function RecordFromPattern(pattern, value) {\n return CreateRecord(pattern, value);\n}\n/** Transforms a Record Pattern to a Type */\nexport function RecordPatternToType(pattern) {\n const result = (Guard.IsEqual(pattern, StringKey) ? String() :\n Guard.IsEqual(pattern, IntegerKey) ? Integer() :\n Guard.IsEqual(pattern, NumberKey) ? Number() :\n TemplateLiteralDecodeUnsafe(pattern));\n return result;\n}\n/** Extracts the Pattern from a Record type */\nexport function RecordPattern(type) {\n return Guard.Keys(type.patternProperties)[0];\n}\n/** Extracts the Key from a Record type */\nexport function RecordKey(type) {\n const pattern = RecordPattern(type);\n const result = RecordPatternToType(pattern);\n return result;\n}\n/** Extracts the Value from a Record type */\nexport function RecordValue(type) {\n return type.patternProperties[RecordPattern(type)];\n}\n// -------------------------------------------------------------------\n// Guard\n// -------------------------------------------------------------------\nexport function IsRecord(value) {\n return IsKind(value, 'Record');\n}\n// -------------------------------------------------------------------\n// Options\n// -------------------------------------------------------------------\nexport function RecordOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'patternProperties']);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\n/** Creates a Rest instruction type. */\nexport function Rest(type) {\n return Memory.Create({ '~kind': 'Rest' }, { type: 'rest', items: type }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TRest. */\nexport function IsRest(value) {\n return IsKind(value, 'Rest');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a This type. */\nexport function This(options) {\n return Memory.Create({ ['~kind']: 'This' }, { $ref: '#' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TThis. */\nexport function IsThis(value) {\n return IsKind(value, 'This');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Undefined type. */\nexport function Undefined(options) {\n return Memory.Create({ '~kind': 'Undefined' }, { type: 'undefined' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TUndefined. */\nexport function IsUndefined(value) {\n return IsKind(value, 'Undefined');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Void type. */\nexport function Void(options) {\n return Memory.Create({ '~kind': 'Void' }, { type: 'void' }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TVoid. */\nexport function IsVoid(value) {\n return IsKind(value, 'Void');\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport * as T from '../types/index.mjs';\nimport * as S from '../action/index.mjs';\nfunction IntrinsicOrCall(ref, parameters) {\n // deno-coverage-ignore-start\n //\n // Have extensively tested but reports show no Omit coverage (review)\n return (Guard.IsEqual(ref, 'Array') ? T.Array(parameters[0]) :\n Guard.IsEqual(ref, 'Capitalize') ? S.CapitalizeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'ConstructorParameters') ? S.ConstructorParametersDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Evaluate') ? S.EvaluateDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Exclude') ? S.ExcludeDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Extract') ? S.ExtractDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Index') ? S.IndexDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'InstanceType') ? S.InstanceTypeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Lowercase') ? S.LowercaseDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'NonNullable') ? S.NonNullableDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Omit') ? S.OmitDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Parameters') ? S.ParametersDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Partial') ? S.PartialDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Pick') ? S.PickDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Readonly') ? S.ReadonlyObjectDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'KeyOf') ? S.KeyOfDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Record') ? T.RecordDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Required') ? S.RequiredDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'ReturnType') ? S.ReturnTypeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Uncapitalize') ? S.UncapitalizeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Uppercase') ? S.UppercaseDeferred(parameters[0]) :\n T.CallConstruct(T.Ref(ref), parameters));\n // deno-coverage-ignore-stop\n}\n// ------------------------------------------------------------------\n// Unreachable\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start\nfunction Unreachable() {\n throw Error('Unreachable');\n}\nconst DelimitedDecode = (input, result = []) => {\n return input.reduce((result, left) => {\n return Guard.IsArray(left) && Guard.IsEqual(left.length, 2)\n ? [...result, left[0]]\n : [...result, left];\n }, []);\n};\nconst Delimited = (input) => {\n const [left, right] = input;\n return DelimitedDecode([...left, ...right]);\n};\nexport function GenericParameterExtendsEqualsMapping(input) {\n return T.Parameter(input[0], input[2], input[4]);\n}\nexport function GenericParameterExtendsMapping(input) {\n return T.Parameter(input[0], input[2], input[2]);\n}\nexport function GenericParameterEqualsMapping(input) {\n return T.Parameter(input[0], T.Unknown(), input[2]);\n}\nexport function GenericParameterIdentifierMapping(input) {\n return T.Parameter(input, T.Unknown(), T.Unknown());\n}\nexport function GenericParameterMapping(input) {\n return input;\n}\nexport function GenericParameterListMapping(input) {\n return Delimited(input);\n}\nexport function GenericParametersMapping(input) {\n return input[1];\n}\nexport function GenericCallArgumentListMapping(input) {\n return Delimited(input);\n}\nexport function GenericCallArgumentsMapping(input) {\n return input[1];\n}\nexport function GenericCallMapping(input) {\n return IntrinsicOrCall(input[0], input[1]);\n}\nexport function OptionalSemiColonMapping(input) {\n return null;\n}\nexport function KeywordStringMapping(input) {\n return T.String();\n}\nexport function KeywordNumberMapping(input) {\n return T.Number();\n}\nexport function KeywordBooleanMapping(input) {\n return T.Boolean();\n}\nexport function KeywordUndefinedMapping(input) {\n return T.Undefined();\n}\nexport function KeywordNullMapping(input) {\n return T.Null();\n}\nexport function KeywordIntegerMapping(input) {\n return T.Integer();\n}\nexport function KeywordBigIntMapping(input) {\n return T.BigInt();\n}\nexport function KeywordUnknownMapping(input) {\n return T.Unknown();\n}\nexport function KeywordAnyMapping(input) {\n return T.Any();\n}\nexport function KeywordObjectMapping(input) {\n return T.Object({});\n}\nexport function KeywordNeverMapping(input) {\n return T.Never();\n}\nexport function KeywordSymbolMapping(input) {\n return T.Symbol();\n}\nexport function KeywordVoidMapping(input) {\n return T.Void();\n}\nexport function KeywordThisMapping(input) {\n return T.This();\n}\nexport function LiteralBigIntMapping(input) {\n return T.Literal(BigInt(input));\n}\nexport function LiteralBooleanMapping(input) {\n return T.Literal(Guard.IsEqual(input, 'true'));\n}\nexport function LiteralNumberMapping(input) {\n return T.Literal(parseFloat(input));\n}\nexport function LiteralStringMapping(input) {\n return T.Literal(input);\n}\nexport function TemplateInterpolateMapping(input) {\n return input[1];\n}\nexport function TemplateSpanMapping(input) {\n return T.Literal(input);\n}\nexport function TemplateBodyMapping(input) {\n return (Guard.IsEqual(input.length, 3)\n ? [input[0], input[1], ...input[2]]\n : [input[0]]);\n}\nexport function TemplateLiteralTypesMapping(input) {\n return input[1];\n}\nexport function TemplateLiteralMapping(input) {\n return T.TemplateLiteralDeferred(input);\n}\nexport function DependentMapping(input) {\n return (Guard.IsEqual(input.length, 6) ? T.Dependent(input[1], input[3], input[5]) :\n T.Dependent(input[1], input[3], T.Unknown()));\n}\nexport function KeyOfMapping(input) {\n return input.length > 0;\n}\nexport function IndexArrayMapping(input) {\n return input.reduce((result, current) => {\n return Guard.IsEqual(current.length, 3)\n ? [...result, [current[1]]]\n : [...result, []];\n }, []);\n}\nexport function ExtendsMapping(input) {\n return Guard.IsEqual(input.length, 6)\n ? [input[1], input[3], input[5]]\n : [];\n}\nexport function BaseMapping(input) {\n return Guard.IsArray(input) && Guard.IsEqual(input.length, 3)\n ? input[1]\n : input;\n}\nexport function WithMapping(input) {\n return Guard.IsEqual(input.length, 2) ? input[1] : [];\n}\n// deno-coverage-ignore-start\nfunction FactorIndexArray(Type, indexArray) {\n return indexArray.reduce((result, left) => {\n const _left = left;\n return (Guard.IsEqual(_left.length, 1) ? S.IndexDeferred(result, _left[0]) :\n Guard.IsEqual(_left.length, 0) ? T.Array(result) :\n Unreachable());\n }, Type);\n}\n// deno-coverage-ignore-stop\nfunction FactorExtends(type, extend) {\n return Guard.IsEqual(extend.length, 3)\n ? S.ConditionalDeferred(type, extend[0], extend[1], extend[2])\n : type;\n}\nfunction FactorWith(type, withClause) {\n return Guard.IsArray(withClause) && Guard.IsEqual(withClause.length, 0)\n ? type\n : S.WithDeferred(type, withClause);\n}\nexport function FactorMapping(input) {\n const [keyOf, type, indexArray, extend, withClause] = input;\n return FactorWith(keyOf\n ? FactorExtends(S.KeyOfDeferred(FactorIndexArray(type, indexArray)), extend)\n : FactorExtends(FactorIndexArray(type, indexArray), extend), withClause);\n}\n// deno-coverage-ignore-start\nfunction ExprBinaryMapping(left, rest) {\n return (Guard.IsEqual(rest.length, 3) ? (() => {\n const [operator, right, next] = rest;\n const Schema = ExprBinaryMapping(right, next);\n if (Guard.IsEqual(operator, '&')) {\n return T.IsIntersect(Schema)\n ? T.Intersect([left, ...Schema.allOf])\n : T.Intersect([left, Schema]);\n }\n if (Guard.IsEqual(operator, '|')) {\n return T.IsUnion(Schema)\n ? T.Union([left, ...Schema.anyOf])\n : T.Union([left, Schema]);\n }\n Unreachable();\n })() : left);\n}\nexport function ExprTermTailMapping(input) {\n return input;\n}\nexport function ExprTermMapping(input) {\n const [left, rest] = input;\n return ExprBinaryMapping(left, rest);\n}\nexport function ExprTailMapping(input) {\n return input;\n}\nexport function ExprMapping(input) {\n const [left, rest] = input;\n return ExprBinaryMapping(left, rest);\n}\nexport function ExprReadonlyMapping(input) {\n return S.AddImmutableDeferred(input[1]);\n}\nexport function ExprPipeMapping(input) {\n return input[1];\n}\nexport function GenericTypeMapping(input) {\n return T.Generic(input[0], input[2]);\n}\n// deno-coverage-ignore-start\nexport function InferTypeMapping(input) {\n return (Guard.IsEqual(input.length, 4) ? T.Infer(input[1], input[3]) :\n Guard.IsEqual(input.length, 2) ? T.Infer(input[1], T.Unknown()) :\n Unreachable());\n}\nexport function TypeMapping(input) {\n return input;\n}\nexport function PropertyKeyNumberMapping(input) {\n return `${input}`;\n}\nexport function PropertyKeyIdentMapping(input) {\n return input;\n}\nexport function PropertyKeyQuotedMapping(input) {\n return input;\n}\n// deno-coverage-ignore-start\nexport function PropertyKeyIndexMapping(input) {\n return (T.IsInteger(input[3]) ? T.IntegerKey :\n T.IsNumber(input[3]) ? T.NumberKey :\n T.IsSymbol(input[3]) ? T.StringKey :\n T.IsString(input[3]) ? T.StringKey :\n Unreachable());\n}\nexport function PropertyKeyMapping(input) {\n return input;\n}\nexport function ReadonlyMapping(input) {\n return input.length > 0;\n}\nexport function OptionalMapping(input) {\n return input.length > 0;\n}\nexport function PropertyMapping(input) {\n const [isReadonly, key, isOptional, _colon, type] = input;\n return {\n [key]: (isReadonly && isOptional ? S.AddReadonlyDeferred(S.AddOptionalDeferred(type)) :\n isReadonly && !isOptional ? S.AddReadonlyDeferred(type) :\n !isReadonly && isOptional ? S.AddOptionalDeferred(type) :\n type)\n };\n}\nexport function PropertyDelimiterMapping(input) {\n return input;\n}\nexport function PropertyListMapping(input) {\n return Delimited(input);\n}\nfunction PropertiesReduce(propertyList) {\n return propertyList.reduce((result, left) => {\n const isPatternProperties = (Guard.HasPropertyKey(left, T.IntegerKey) || Guard.HasPropertyKey(left, T.NumberKey) || Guard.HasPropertyKey(left, T.StringKey));\n // @ts-ignore 5.0.4 - unable to observe ...left on right arm\n return (isPatternProperties\n ? [result[0], Memory.Assign(result[1], left)]\n : [Memory.Assign(result[0], left), result[1]]);\n }, [{}, {}]);\n}\nexport function PropertiesMapping(input) {\n return PropertiesReduce(input[1]);\n}\nexport function _Object_Mapping(input) {\n const [properties, patternProperties] = input;\n const options = Guard.IsEqual(Guard.Keys(patternProperties).length, 0) ? {} : { patternProperties };\n return T.Object(properties, options);\n}\n// deno-coverage-ignore-start\nexport function ElementNamedMapping(input) {\n return (Guard.IsEqual(input.length, 5) ? S.AddReadonlyDeferred(S.AddOptionalDeferred(input[4])) :\n Guard.IsEqual(input.length, 3) ? input[2] :\n Guard.IsEqual(input.length, 4) ? (Guard.IsEqual(input[2], 'readonly') ? S.AddReadonlyDeferred(input[3]) : S.AddOptionalDeferred(input[3])) :\n Unreachable());\n}\nexport function ElementReadonlyOptionalMapping(input) {\n return S.AddReadonlyDeferred(S.AddOptionalDeferred(input[1]));\n}\nexport function ElementReadonlyMapping(input) {\n return S.AddReadonlyDeferred(input[1]);\n}\nexport function ElementOptionalMapping(input) {\n return S.AddOptionalDeferred(input[0]);\n}\nexport function ElementBaseMapping(input) {\n return input;\n}\n// deno-coverage-ignore-start\nexport function ElementMapping(input) {\n return (Guard.IsEqual(input.length, 2) ? T.Rest(input[1]) :\n Guard.IsEqual(input.length, 1) ? input[0] :\n Unreachable());\n}\nexport function ElementListMapping(input) {\n return Delimited(input);\n}\nexport function _Tuple_Mapping(input) {\n return T.Tuple(input[1]);\n}\nexport function ParameterReadonlyOptionalMapping(input) {\n return S.AddReadonlyDeferred(S.AddOptionalDeferred(input[4]));\n}\nexport function ParameterReadonlyMapping(input) {\n return S.AddReadonlyDeferred(input[3]);\n}\nexport function ParameterOptionalMapping(input) {\n return S.AddOptionalDeferred(input[3]);\n}\nexport function ParameterTypeMapping(input) {\n return input[2];\n}\nexport function ParameterBaseMapping(input) {\n return input;\n}\n// deno-coverage-ignore-start\nexport function ParameterMapping(input) {\n return (Guard.IsEqual(input.length, 2) ? T.Rest(input[1]) :\n Guard.IsEqual(input.length, 1) ? input[0] :\n Unreachable());\n}\nexport function ParameterListMapping(input) {\n return Delimited(input);\n}\nexport function _Function_Mapping(input) {\n return T._Function_(input[1], input[4]);\n}\nexport function _Constructor_Mapping(input) {\n return T.Constructor(input[2], input[5]);\n}\nfunction ApplyReadonly(state, type) {\n return (Guard.IsEqual(state, 'remove') ? S.RemoveReadonlyDeferred(type) :\n Guard.IsEqual(state, 'add') ? S.AddReadonlyDeferred(type) :\n type);\n}\nexport function MappedReadonlyMapping(input) {\n return (Guard.IsEqual(input.length, 2) && Guard.IsEqual(input[0], '-') ? 'remove' :\n Guard.IsEqual(input.length, 2) && Guard.IsEqual(input[0], '+') ? 'add' :\n Guard.IsEqual(input.length, 1) ? 'add' :\n 'none');\n}\nfunction ApplyOptional(state, type) {\n return (Guard.IsEqual(state, 'remove') ? S.RemoveOptionalDeferred(type) :\n Guard.IsEqual(state, 'add') ? S.AddOptionalDeferred(type) :\n type);\n}\nexport function MappedOptionalMapping(input) {\n return (Guard.IsEqual(input.length, 2) && Guard.IsEqual(input[0], '-') ? 'remove' :\n Guard.IsEqual(input.length, 2) && Guard.IsEqual(input[0], '+') ? 'add' :\n Guard.IsEqual(input.length, 1) ? 'add' :\n 'none');\n}\nexport function MappedAsMapping(input) {\n return Guard.IsEqual(input.length, 2) ? [input[1]] : [];\n}\nexport function _Mapped_Mapping(input) {\n return (Guard.IsArray(input[6]) && Guard.IsEqual(input[6].length, 1)\n ? S.MappedDeferred(T.Identifier(input[3]), input[5], input[6][0], ApplyReadonly(input[1], ApplyOptional(input[8], input[10])))\n : S.MappedDeferred(T.Identifier(input[3]), input[5], T.Ref(input[3]), ApplyReadonly(input[1], ApplyOptional(input[8], input[10]))));\n}\nexport function ReferenceMapping(input) {\n return T.Ref(input);\n}\nexport function WithBigIntMapping(input) {\n return BigInt(input);\n}\nexport function WithNumberMapping(input) {\n return parseFloat(input);\n}\nexport function WithBooleanMapping(input) {\n return Guard.IsEqual(input, 'true');\n}\nexport function WithStringMapping(input) {\n return input;\n}\nexport function WithNullMapping(input) {\n return null;\n}\nexport function WithUndefinedMapping(input) {\n return undefined;\n}\nexport function WithPropertyMapping(input) {\n return { [input[0]]: input[2] };\n}\nexport function WithPropertyListMapping(input) {\n return Delimited(input);\n}\nfunction WithObjectMappingReduce(propertyList) {\n return propertyList.reduce((result, left) => {\n return Memory.Assign(result, left);\n }, {});\n}\nexport function WithObjectMapping(input) {\n return WithObjectMappingReduce(input[1]);\n}\nexport function WithElementListMapping(input) {\n return Delimited(input);\n}\nexport function WithArrayMapping(input) {\n return input[1];\n}\nexport function WithValueMapping(input) {\n return input;\n}\nexport function PatternBigIntMapping(input) {\n return T.BigInt();\n}\nexport function PatternStringMapping(input) {\n return T.String();\n}\nexport function PatternNumberMapping(input) {\n return T.Number();\n}\nexport function PatternIntegerMapping(input) {\n return T.Integer();\n}\nexport function PatternNeverMapping(input) {\n return T.Never();\n}\nexport function PatternTextMapping(input) {\n return T.Literal(input);\n}\nexport function PatternBaseMapping(input) {\n return input;\n}\nexport function PatternGroupMapping(input) {\n return T.Union(input[1]);\n}\nexport function PatternUnionMapping(input) {\n return (input.length === 3 ? [...input[0], ...input[2]] :\n input.length === 1 ? [...input[0]] :\n []);\n}\nexport function PatternTermMapping(input) {\n return [input[0], ...input[1]];\n}\nexport function PatternBodyMapping(input) {\n return input;\n}\nexport function PatternMapping(input) {\n return input[1];\n}\nexport function InterfaceDeclarationHeritageListMapping(input) {\n return Delimited(input);\n}\nexport function InterfaceDeclarationHeritageMapping(input) {\n return Guard.IsEqual(input.length, 2) ? input[1] : [];\n}\nexport function InterfaceDeclarationGenericMapping(input) {\n const parameters = input[2];\n const heritage = input[3];\n const [properties, patternProperties] = input[4];\n const options = Guard.IsEqual(Guard.Keys(patternProperties).length, 0) ? {} : { patternProperties };\n return { [input[1]]: T.Generic(parameters, S.InterfaceDeferred(heritage, properties, options)) };\n}\nexport function InterfaceDeclarationMapping(input) {\n const heritage = input[2];\n const [properties, patternProperties] = input[3];\n const options = Guard.IsEqual(Guard.Keys(patternProperties).length, 0) ? {} : { patternProperties };\n return { [input[1]]: S.InterfaceDeferred(heritage, properties, options) };\n}\nexport function TypeAliasDeclarationGenericMapping(input) {\n return { [input[1]]: T.Generic(input[2], input[4]) };\n}\nexport function TypeAliasDeclarationMapping(input) {\n return { [input[1]]: input[3] };\n}\nexport function ExportKeywordMapping(input) {\n return null; // ignored-dont-care\n}\nexport function ModuleDeclarationDelimiterMapping(input) {\n return input;\n}\nexport function ModuleDeclarationListMapping(input) {\n return PropertiesReduce(Delimited(input));\n}\nexport function ModuleDeclarationMapping(input) {\n return input[1];\n}\nexport function ModuleMapping(input) {\n const moduleDeclaration = input[0];\n const moduleDeclarationList = input[1];\n return S.ModuleDeferred(Memory.Assign(moduleDeclaration, moduleDeclarationList[0]));\n}\nexport function ScriptMapping(input) {\n return input;\n}\n","// deno-coverage-ignore-start - parsebox tested\nimport { IsEqual } from './guard.mjs';\n/** Checks the value is a Tuple-2 [string, string] result */\nexport function IsMatch(value) {\n return IsEqual(value.length, 2);\n}\n/** Matches on a result and dispatches either left or right arm */\nexport function Match(input, ok, fail) {\n return IsMatch(input) ? ok(input[0], input[1]) : fail();\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsMatch } from './match.mjs';\nimport { IsEqual } from './guard.mjs';\nfunction TakeVariant(variant, input) {\n return (IsEqual(input.indexOf(variant), 0)\n ? [variant, input.slice(variant.length)]\n : []);\n}\n/** Takes one of the given variants or fail */\nexport function Take(variants, input) {\n // ----------------------------------------------------------------\n // Symmetric\n // ----------------------------------------------------------------\n // return Guard.ShiftLeft(variants, (valueLeft, valueRight) => \n // Match(TakeVariant(valueLeft, input), (take, rest) => \n // [take, rest],\n // () => Take(valueRight, input)),\n // () => []) as never\n // ----------------------------------------------------------------\n // Inline\n // ----------------------------------------------------------------\n for (let i = 0; i < variants.length; i++) {\n const result = TakeVariant(variants[i], input);\n if (IsMatch(result))\n return result;\n }\n return [];\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\n// ------------------------------------------------------------------\n// Range\n// ------------------------------------------------------------------\nfunction Range(start, end) {\n return Array.from({ length: end - start + 1 }, (_, i) => String.fromCharCode(start + i));\n}\nexport const Alpha = [\n ...Range(97, 122), // Lowercase\n ...Range(65, 90) // Uppercase\n];\nexport const Zero = '0';\nexport const NonZero = Range(49, 57); // 1 - 9\nexport const Digit = [Zero, ...NonZero];\n// ------------------------------------------------------------------\n// Characters\n// ------------------------------------------------------------------\nexport const WhiteSpace = ' ';\nexport const NewLine = '\\n';\nexport const TabSpace = '\\t';\nexport const UnderScore = '_';\nexport const Dot = '.';\nexport const DollarSign = '$';\nexport const Hyphen = '-';\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual } from './guard.mjs';\nimport * as Char from './char.mjs';\nconst LineComment = '//';\nconst OpenComment = '/*';\nconst CloseComment = '*/';\nfunction DiscardMultilineComment(input) {\n const index = input.indexOf(CloseComment);\n const result = IsEqual(index, -1) ? '' : input.slice(index + 2);\n return result;\n}\nfunction DiscardLineComment(input) {\n const index = input.indexOf(Char.NewLine);\n const result = IsEqual(index, -1) ? '' : input.slice(index);\n return result;\n}\n// ...\nfunction TrimStartUntilNewline(input) {\n return input.replace(/^[ \\t\\r\\f\\v]+/, '');\n}\nexport function TrimWhitespace(input) {\n const trimmed = TrimStartUntilNewline(input);\n return (trimmed.startsWith(OpenComment) ? TrimWhitespace(DiscardMultilineComment(trimmed.slice(2))) :\n trimmed.startsWith(LineComment) ? TrimWhitespace(DiscardLineComment(trimmed.slice(2))) :\n trimmed);\n}\nexport function Trim(input) {\n const trimmed = input.trimStart();\n return (trimmed.startsWith(OpenComment) ? Trim(DiscardMultilineComment(trimmed.slice(2))) :\n trimmed.startsWith(LineComment) ? Trim(DiscardLineComment(trimmed.slice(2))) :\n trimmed);\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { Match } from './internal/match.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Many } from './internal/many.mjs';\nimport { Digit } from './internal/char.mjs';\nimport { Zero } from './internal/char.mjs';\nimport { NonZero } from './internal/char.mjs';\nimport { UnderScore } from './internal/char.mjs';\nfunction TakeNonZero(input) {\n return Take(NonZero, input);\n}\nconst AllowedDigits = [...Digit, UnderScore];\nfunction TakeDigits(input) {\n return Many(AllowedDigits, [UnderScore], input);\n}\nfunction TakeUnsignedInteger(input) {\n return Match(Take([Zero], input), (Zero, ZeroRest) => [Zero, ZeroRest], () => Match(TakeNonZero(input), (NonZero, NonZeroRest) => Match(TakeDigits(NonZeroRest), (Digits, DigitsRest) => [`${NonZero}${Digits}`, DigitsRest], () => []), // fail: did not match Digits\n () => [])); // fail: did not match NonZero\n}\n/** Matches if next is a UnsignedInteger */\nexport function UnsignedInteger(input) {\n return TakeUnsignedInteger(Trim(input));\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual } from './internal/guard.mjs';\nimport { TrimWhitespace } from './internal/trim.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Take } from './internal/take.mjs';\nimport { NewLine } from './internal/char.mjs';\nimport { WhiteSpace } from './internal/char.mjs';\nfunction TakeConst(const_, input) {\n return Take([const_], input);\n}\n/** Matches if next is the given Const value */\nexport function Const(const_, input) {\n return (IsEqual(const_, '') ? ['', input] : (const_.startsWith(NewLine) ? TakeConst(const_, TrimWhitespace(input)) :\n const_.startsWith(WhiteSpace) ? TakeConst(const_, input) :\n TakeConst(const_, Trim(input))));\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { Match } from './internal/match.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Alpha } from './internal/char.mjs';\nimport { Digit } from './internal/char.mjs';\nimport { UnderScore } from './internal/char.mjs';\nimport { DollarSign } from './internal/char.mjs';\nconst Initial = [...Alpha, UnderScore, DollarSign];\nfunction TakeInitial(input) {\n return Take(Initial, input);\n}\nconst Remaining = [...Initial, ...Digit];\nfunction TakeRemaining(input, result = '') {\n return Match(Take(Remaining, input), (Remaining, RemainingRest) => TakeRemaining(RemainingRest, `${result}${Remaining}`), () => [result, input]);\n}\nfunction TakeIdent(input) {\n return Match(TakeInitial(input), (Initial, InitialRest) => Match(TakeRemaining(InitialRest), (Remaining, RemainingRest) => [`${Initial}${Remaining}`, RemainingRest], () => []), // fail: did not match Remaining\n () => []); // fail: did not match Initial\n}\n/** Matches if next is an Ident */\nexport function Ident(input) {\n return TakeIdent(Trim(input));\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual } from './internal/guard.mjs';\nimport { IsMatch, Match } from './internal/match.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Many } from './internal/many.mjs';\nimport { Digit, UnderScore } from './internal/char.mjs';\nimport { Dot } from './internal/char.mjs';\nimport { UnsignedInteger } from './unsigned_integer.mjs';\nconst AllowedDigits = [...Digit, UnderScore];\nfunction IsLeadingDot(input) {\n return IsMatch(Take([Dot], input));\n}\nfunction TakeFractional(input) {\n return Match(Many(AllowedDigits, [UnderScore], input), (Digits, DigitsRest) => IsEqual(Digits, '')\n ? [] // fail: no Digits\n : [Digits, DigitsRest], () => []); // fail: did not match Digits\n}\nfunction LeadingDot(input) {\n return Match(Take([Dot], input), (Dot, DotRest) => Match(TakeFractional(DotRest), (Fractional, FractionalRest) => [`0${Dot}${Fractional}`, FractionalRest], () => []), // fail: did not match Fractional\n () => []); // fail: did not match Dot\n}\nfunction LeadingInteger(input) {\n return Match(UnsignedInteger(input), (Integer, IntegerRest) => Match(Take([Dot], IntegerRest), (Dot, DotRest) => Match(TakeFractional(DotRest), (Fractional, FractionalRest) => [`${Integer}${Dot}${Fractional}`, FractionalRest], () => [`${Integer}`, DotRest]), // fail: did not match Fractional, use Integer\n () => [`${Integer}`, IntegerRest]), // fail: did not match Dot, use Integer\n () => []); // fail: did not match Integer\n}\nfunction TakeUnsignedNumber(input) {\n return (IsLeadingDot(input)\n ? LeadingDot(input)\n : LeadingInteger(input));\n}\n/** Matches if next is a UnsignedNumber */\nexport function UnsignedNumber(input) {\n return TakeUnsignedNumber(Trim(input));\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { Match } from './internal/match.mjs';\nimport { IsEqual, ShiftLeft } from './internal/guard.mjs';\nfunction TakeOne(input) {\n const result = IsEqual(input, '') ? [] : [input.slice(0, 1), input.slice(1)];\n return result;\n}\nfunction IsInputMatchSentinal(end, input) {\n return ShiftLeft(end, (left, right) => input.startsWith(left)\n ? true\n : IsInputMatchSentinal(right, input), () => false);\n}\n/** Match Input until but not including End. No match if End not found. */\nexport function Until(end, input, result = '') {\n return Match(TakeOne(input), (One, Rest) => IsInputMatchSentinal(end, input)\n ? [result, input] // ok: at sentinal \n : Until(end, Rest, `${result}${One}`) // fail: advance + 1\n , () => []);\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual } from './internal/guard.mjs';\nimport { Match } from './internal/match.mjs';\nimport { Until } from './until.mjs';\n/** Match Input until but not including End. No match if End not found or match is zero-length. */\nexport function Until_1(end, input) {\n return Match(Until(end, input), (Until, UntilRest) => IsEqual(Until, '')\n ? [] // fail: match has no characters\n : [Until, UntilRest], () => []); // fail: did not match Until\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\n// auto-generated: design/syntax/syntax.ts\nimport * as S from './mapping.mjs';\nimport * as Token from './token/index.mjs';\nconst If = (result, left, right = () => []) => result.length === 2 ? left(result) : right();\nexport const GenericParameterExtendsEquals = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('extends', input), ([_1, input]) => If(Type(input), ([_2, input]) => If(Token.Const('=', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.GenericParameterExtendsEqualsMapping(_0), input]);\nexport const GenericParameterExtends = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('extends', input), ([_1, input]) => If(Type(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.GenericParameterExtendsMapping(_0), input]);\nexport const GenericParameterEquals = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('=', input), ([_1, input]) => If(Type(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.GenericParameterEqualsMapping(_0), input]);\nexport const GenericParameterIdentifier = (input) => If(Token.Ident(input), ([_0, input]) => [S.GenericParameterIdentifierMapping(_0), input]);\nexport const GenericParameter = (input) => If(If(GenericParameterExtendsEquals(input), ([_0, input]) => [_0, input], () => If(GenericParameterExtends(input), ([_0, input]) => [_0, input], () => If(GenericParameterEquals(input), ([_0, input]) => [_0, input], () => If(GenericParameterIdentifier(input), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.GenericParameterMapping(_0), input]);\nexport const GenericParameterList_0 = (input, result = []) => If(If(GenericParameter(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => GenericParameterList_0(input, [...result, _0]), () => [result, input]);\nexport const GenericParameterList = (input) => If(If(GenericParameterList_0(input), ([_0, input]) => If(If(If(GenericParameter(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.GenericParameterListMapping(_0), input]);\nexport const GenericParameters = (input) => If(If(Token.Const('<', input), ([_0, input]) => If(GenericParameterList(input), ([_1, input]) => If(Token.Const('>', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.GenericParametersMapping(_0), input]);\nexport const GenericCallArgumentList_0 = (input, result = []) => If(If(Type(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => GenericCallArgumentList_0(input, [...result, _0]), () => [result, input]);\nexport const GenericCallArgumentList = (input) => If(If(GenericCallArgumentList_0(input), ([_0, input]) => If(If(If(Type(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.GenericCallArgumentListMapping(_0), input]);\nexport const GenericCallArguments = (input) => If(If(Token.Const('<', input), ([_0, input]) => If(GenericCallArgumentList(input), ([_1, input]) => If(Token.Const('>', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.GenericCallArgumentsMapping(_0), input]);\nexport const GenericCall = (input) => If(If(Token.Ident(input), ([_0, input]) => If(GenericCallArguments(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.GenericCallMapping(_0), input]);\nexport const OptionalSemiColon = (input) => If(If(If(Token.Const(';', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.OptionalSemiColonMapping(_0), input]);\nexport const KeywordString = (input) => If(Token.Const('string', input), ([_0, input]) => [S.KeywordStringMapping(_0), input]);\nexport const KeywordNumber = (input) => If(Token.Const('number', input), ([_0, input]) => [S.KeywordNumberMapping(_0), input]);\nexport const KeywordBoolean = (input) => If(Token.Const('boolean', input), ([_0, input]) => [S.KeywordBooleanMapping(_0), input]);\nexport const KeywordUndefined = (input) => If(Token.Const('undefined', input), ([_0, input]) => [S.KeywordUndefinedMapping(_0), input]);\nexport const KeywordNull = (input) => If(Token.Const('null', input), ([_0, input]) => [S.KeywordNullMapping(_0), input]);\nexport const KeywordInteger = (input) => If(Token.Const('integer', input), ([_0, input]) => [S.KeywordIntegerMapping(_0), input]);\nexport const KeywordBigInt = (input) => If(Token.Const('bigint', input), ([_0, input]) => [S.KeywordBigIntMapping(_0), input]);\nexport const KeywordUnknown = (input) => If(Token.Const('unknown', input), ([_0, input]) => [S.KeywordUnknownMapping(_0), input]);\nexport const KeywordAny = (input) => If(Token.Const('any', input), ([_0, input]) => [S.KeywordAnyMapping(_0), input]);\nexport const KeywordObject = (input) => If(Token.Const('object', input), ([_0, input]) => [S.KeywordObjectMapping(_0), input]);\nexport const KeywordNever = (input) => If(Token.Const('never', input), ([_0, input]) => [S.KeywordNeverMapping(_0), input]);\nexport const KeywordSymbol = (input) => If(Token.Const('symbol', input), ([_0, input]) => [S.KeywordSymbolMapping(_0), input]);\nexport const KeywordVoid = (input) => If(Token.Const('void', input), ([_0, input]) => [S.KeywordVoidMapping(_0), input]);\nexport const KeywordThis = (input) => If(Token.Const('this', input), ([_0, input]) => [S.KeywordThisMapping(_0), input]);\nexport const TemplateInterpolate = (input) => If(If(Token.Const('${', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const('}', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.TemplateInterpolateMapping(_0), input]);\nexport const TemplateSpan = (input) => If(Token.Until(['${', '`'], input), ([_0, input]) => [S.TemplateSpanMapping(_0), input]);\nexport const TemplateBody = (input) => If(If(If(TemplateSpan(input), ([_0, input]) => If(TemplateInterpolate(input), ([_1, input]) => If(TemplateBody(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If(If(TemplateSpan(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If(If(TemplateSpan(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => []))), ([_0, input]) => [S.TemplateBodyMapping(_0), input]);\nexport const TemplateLiteralTypes = (input) => If(If(Token.Const('`', input), ([_0, input]) => If(TemplateBody(input), ([_1, input]) => If(Token.Const('`', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.TemplateLiteralTypesMapping(_0), input]);\nexport const TemplateLiteral = (input) => If(TemplateLiteralTypes(input), ([_0, input]) => [S.TemplateLiteralMapping(_0), input]);\nexport const Dependent = (input) => If(If(If(Token.Const('if', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const('then', input), ([_2, input]) => If(Type(input), ([_3, input]) => If(Token.Const('else', input), ([_4, input]) => If(Type(input), ([_5, input]) => [[_0, _1, _2, _3, _4, _5], input])))))), ([_0, input]) => [_0, input], () => If(If(Token.Const('if', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const('then', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.DependentMapping(_0), input]);\nexport const LiteralBigInt = (input) => If(Token.BigInt(input), ([_0, input]) => [S.LiteralBigIntMapping(_0), input]);\nexport const LiteralBoolean = (input) => If(If(Token.Const('true', input), ([_0, input]) => [_0, input], () => If(Token.Const('false', input), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.LiteralBooleanMapping(_0), input]);\nexport const LiteralNumber = (input) => If(Token.Number(input), ([_0, input]) => [S.LiteralNumberMapping(_0), input]);\nexport const LiteralString = (input) => If(Token.String(['\\'', '\\\"'], input), ([_0, input]) => [S.LiteralStringMapping(_0), input]);\nexport const KeyOf = (input) => If(If(If(Token.Const('keyof', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.KeyOfMapping(_0), input]);\nexport const IndexArray_0 = (input, result = []) => If(If(If(Token.Const('[', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const(']', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If(If(Token.Const('[', input), ([_0, input]) => If(Token.Const(']', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => IndexArray_0(input, [...result, _0]), () => [result, input]);\nexport const IndexArray = (input) => If(IndexArray_0(input), ([_0, input]) => [S.IndexArrayMapping(_0), input]);\nexport const Extends = (input) => If(If(If(Token.Const('extends', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const('?', input), ([_2, input]) => If(Type(input), ([_3, input]) => If(Token.Const(':', input), ([_4, input]) => If(Type(input), ([_5, input]) => [[_0, _1, _2, _3, _4, _5], input])))))), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExtendsMapping(_0), input]);\nexport const Base = (input) => If(If(If(Token.Const('(', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const(')', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If(KeywordString(input), ([_0, input]) => [_0, input], () => If(KeywordNumber(input), ([_0, input]) => [_0, input], () => If(KeywordBoolean(input), ([_0, input]) => [_0, input], () => If(KeywordUndefined(input), ([_0, input]) => [_0, input], () => If(KeywordNull(input), ([_0, input]) => [_0, input], () => If(KeywordInteger(input), ([_0, input]) => [_0, input], () => If(KeywordBigInt(input), ([_0, input]) => [_0, input], () => If(KeywordUnknown(input), ([_0, input]) => [_0, input], () => If(KeywordAny(input), ([_0, input]) => [_0, input], () => If(KeywordObject(input), ([_0, input]) => [_0, input], () => If(KeywordNever(input), ([_0, input]) => [_0, input], () => If(KeywordSymbol(input), ([_0, input]) => [_0, input], () => If(KeywordVoid(input), ([_0, input]) => [_0, input], () => If(KeywordThis(input), ([_0, input]) => [_0, input], () => If(LiteralBigInt(input), ([_0, input]) => [_0, input], () => If(LiteralBoolean(input), ([_0, input]) => [_0, input], () => If(LiteralNumber(input), ([_0, input]) => [_0, input], () => If(LiteralString(input), ([_0, input]) => [_0, input], () => If(TemplateLiteral(input), ([_0, input]) => [_0, input], () => If(Dependent(input), ([_0, input]) => [_0, input], () => If(_Object_(input), ([_0, input]) => [_0, input], () => If(_Tuple_(input), ([_0, input]) => [_0, input], () => If(_Constructor_(input), ([_0, input]) => [_0, input], () => If(_Function_(input), ([_0, input]) => [_0, input], () => If(_Mapped_(input), ([_0, input]) => [_0, input], () => If(GenericCall(input), ([_0, input]) => [_0, input], () => If(Reference(input), ([_0, input]) => [_0, input], () => [])))))))))))))))))))))))))))), ([_0, input]) => [S.BaseMapping(_0), input]);\nexport const With = (input) => If(If(If(Token.Const('with', input), ([_0, input]) => If(WithObject(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.WithMapping(_0), input]);\nexport const Factor = (input) => If(If(KeyOf(input), ([_0, input]) => If(Base(input), ([_1, input]) => If(IndexArray(input), ([_2, input]) => If(Extends(input), ([_3, input]) => If(With(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.FactorMapping(_0), input]);\nexport const ExprTermTail = (input) => If(If(If(Token.Const('&', input), ([_0, input]) => If(Factor(input), ([_1, input]) => If(ExprTermTail(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExprTermTailMapping(_0), input]);\nexport const ExprTerm = (input) => If(If(Factor(input), ([_0, input]) => If(ExprTermTail(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ExprTermMapping(_0), input]);\nexport const ExprTail = (input) => If(If(If(Token.Const('|', input), ([_0, input]) => If(ExprTerm(input), ([_1, input]) => If(ExprTail(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExprTailMapping(_0), input]);\nexport const Expr = (input) => If(If(ExprTerm(input), ([_0, input]) => If(ExprTail(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ExprMapping(_0), input]);\nexport const ExprReadonly = (input) => If(If(Token.Const('readonly', input), ([_0, input]) => If(Expr(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ExprReadonlyMapping(_0), input]);\nexport const ExprPipe = (input) => If(If(Token.Const('|', input), ([_0, input]) => If(Expr(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ExprPipeMapping(_0), input]);\nexport const GenericType = (input) => If(If(GenericParameters(input), ([_0, input]) => If(Token.Const('=', input), ([_1, input]) => If(Type(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.GenericTypeMapping(_0), input]);\nexport const InferType = (input) => If(If(If(Token.Const('infer', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(Token.Const('extends', input), ([_2, input]) => If(Expr(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [_0, input], () => If(If(Token.Const('infer', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.InferTypeMapping(_0), input]);\nexport const Type = (input) => If(If(InferType(input), ([_0, input]) => [_0, input], () => If(ExprPipe(input), ([_0, input]) => [_0, input], () => If(ExprReadonly(input), ([_0, input]) => [_0, input], () => If(Expr(input), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.TypeMapping(_0), input]);\nexport const PropertyKeyNumber = (input) => If(Token.Number(input), ([_0, input]) => [S.PropertyKeyNumberMapping(_0), input]);\nexport const PropertyKeyIdent = (input) => If(Token.Ident(input), ([_0, input]) => [S.PropertyKeyIdentMapping(_0), input]);\nexport const PropertyKeyQuoted = (input) => If(Token.String(['\\'', '\\\"'], input), ([_0, input]) => [S.PropertyKeyQuotedMapping(_0), input]);\nexport const PropertyKeyIndex = (input) => If(If(Token.Const('[', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(Token.Const(':', input), ([_2, input]) => If(If(KeywordInteger(input), ([_0, input]) => [_0, input], () => If(KeywordNumber(input), ([_0, input]) => [_0, input], () => If(KeywordString(input), ([_0, input]) => [_0, input], () => If(KeywordSymbol(input), ([_0, input]) => [_0, input], () => [])))), ([_3, input]) => If(Token.Const(']', input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.PropertyKeyIndexMapping(_0), input]);\nexport const PropertyKey = (input) => If(If(PropertyKeyNumber(input), ([_0, input]) => [_0, input], () => If(PropertyKeyIdent(input), ([_0, input]) => [_0, input], () => If(PropertyKeyQuoted(input), ([_0, input]) => [_0, input], () => If(PropertyKeyIndex(input), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.PropertyKeyMapping(_0), input]);\nexport const Readonly = (input) => If(If(If(Token.Const('readonly', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ReadonlyMapping(_0), input]);\nexport const Optional = (input) => If(If(If(Token.Const('?', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.OptionalMapping(_0), input]);\nexport const Property = (input) => If(If(Readonly(input), ([_0, input]) => If(PropertyKey(input), ([_1, input]) => If(Optional(input), ([_2, input]) => If(Token.Const(':', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.PropertyMapping(_0), input]);\nexport const PropertyDelimiter = (input) => If(If(If(Token.Const(',', input), ([_0, input]) => If(Token.Const('\\n', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const(';', input), ([_0, input]) => If(Token.Const('\\n', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const(',', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If(If(Token.Const(';', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If(If(Token.Const('\\n', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => []))))), ([_0, input]) => [S.PropertyDelimiterMapping(_0), input]);\nexport const PropertyList_0 = (input, result = []) => If(If(Property(input), ([_0, input]) => If(PropertyDelimiter(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => PropertyList_0(input, [...result, _0]), () => [result, input]);\nexport const PropertyList = (input) => If(If(PropertyList_0(input), ([_0, input]) => If(If(If(Property(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.PropertyListMapping(_0), input]);\nexport const Properties = (input) => If(If(Token.Const('{', input), ([_0, input]) => If(PropertyList(input), ([_1, input]) => If(Token.Const('}', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.PropertiesMapping(_0), input]);\nexport const _Object_ = (input) => If(Properties(input), ([_0, input]) => [S._Object_Mapping(_0), input]);\nexport const ElementNamed = (input) => If(If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => If(Token.Const(':', input), ([_2, input]) => If(Token.Const('readonly', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [_0, input], () => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(Token.Const('readonly', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [_0, input], () => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => If(Token.Const(':', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [_0, input], () => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(Type(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.ElementNamedMapping(_0), input]);\nexport const ElementReadonlyOptional = (input) => If(If(Token.Const('readonly', input), ([_0, input]) => If(Type(input), ([_1, input]) => If(Token.Const('?', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.ElementReadonlyOptionalMapping(_0), input]);\nexport const ElementReadonly = (input) => If(If(Token.Const('readonly', input), ([_0, input]) => If(Type(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ElementReadonlyMapping(_0), input]);\nexport const ElementOptional = (input) => If(If(Type(input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ElementOptionalMapping(_0), input]);\nexport const ElementBase = (input) => If(If(ElementNamed(input), ([_0, input]) => [_0, input], () => If(ElementReadonlyOptional(input), ([_0, input]) => [_0, input], () => If(ElementReadonly(input), ([_0, input]) => [_0, input], () => If(ElementOptional(input), ([_0, input]) => [_0, input], () => If(Type(input), ([_0, input]) => [_0, input], () => []))))), ([_0, input]) => [S.ElementBaseMapping(_0), input]);\nexport const Element = (input) => If(If(If(Token.Const('...', input), ([_0, input]) => If(ElementBase(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(ElementBase(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ElementMapping(_0), input]);\nexport const ElementList_0 = (input, result = []) => If(If(Element(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => ElementList_0(input, [...result, _0]), () => [result, input]);\nexport const ElementList = (input) => If(If(ElementList_0(input), ([_0, input]) => If(If(If(Element(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ElementListMapping(_0), input]);\nexport const _Tuple_ = (input) => If(If(Token.Const('[', input), ([_0, input]) => If(ElementList(input), ([_1, input]) => If(Token.Const(']', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S._Tuple_Mapping(_0), input]);\nexport const ParameterReadonlyOptional = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => If(Token.Const(':', input), ([_2, input]) => If(Token.Const('readonly', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.ParameterReadonlyOptionalMapping(_0), input]);\nexport const ParameterReadonly = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(Token.Const('readonly', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [S.ParameterReadonlyMapping(_0), input]);\nexport const ParameterOptional = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => If(Token.Const(':', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [S.ParameterOptionalMapping(_0), input]);\nexport const ParameterType = (input) => If(If(Token.Ident(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(Type(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.ParameterTypeMapping(_0), input]);\nexport const ParameterBase = (input) => If(If(ParameterReadonlyOptional(input), ([_0, input]) => [_0, input], () => If(ParameterReadonly(input), ([_0, input]) => [_0, input], () => If(ParameterOptional(input), ([_0, input]) => [_0, input], () => If(ParameterType(input), ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.ParameterBaseMapping(_0), input]);\nexport const Parameter = (input) => If(If(If(Token.Const('...', input), ([_0, input]) => If(ParameterBase(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(ParameterBase(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ParameterMapping(_0), input]);\nexport const ParameterList_0 = (input, result = []) => If(If(Parameter(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => ParameterList_0(input, [...result, _0]), () => [result, input]);\nexport const ParameterList = (input) => If(If(ParameterList_0(input), ([_0, input]) => If(If(If(Parameter(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ParameterListMapping(_0), input]);\nexport const _Function_ = (input) => If(If(Token.Const('(', input), ([_0, input]) => If(ParameterList(input), ([_1, input]) => If(Token.Const(')', input), ([_2, input]) => If(Token.Const('=>', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S._Function_Mapping(_0), input]);\nexport const _Constructor_ = (input) => If(If(Token.Const('new', input), ([_0, input]) => If(Token.Const('(', input), ([_1, input]) => If(ParameterList(input), ([_2, input]) => If(Token.Const(')', input), ([_3, input]) => If(Token.Const('=>', input), ([_4, input]) => If(Type(input), ([_5, input]) => [[_0, _1, _2, _3, _4, _5], input])))))), ([_0, input]) => [S._Constructor_Mapping(_0), input]);\nexport const MappedReadonly = (input) => If(If(If(Token.Const('+', input), ([_0, input]) => If(Token.Const('readonly', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const('-', input), ([_0, input]) => If(Token.Const('readonly', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const('readonly', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.MappedReadonlyMapping(_0), input]);\nexport const MappedOptional = (input) => If(If(If(Token.Const('+', input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const('-', input), ([_0, input]) => If(Token.Const('?', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const('?', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])))), ([_0, input]) => [S.MappedOptionalMapping(_0), input]);\nexport const MappedAs = (input) => If(If(If(Token.Const('as', input), ([_0, input]) => If(Type(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.MappedAsMapping(_0), input]);\nexport const _Mapped_ = (input) => If(If(Token.Const('{', input), ([_0, input]) => If(MappedReadonly(input), ([_1, input]) => If(Token.Const('[', input), ([_2, input]) => If(Token.Ident(input), ([_3, input]) => If(Token.Const('in', input), ([_4, input]) => If(Type(input), ([_5, input]) => If(MappedAs(input), ([_6, input]) => If(Token.Const(']', input), ([_7, input]) => If(MappedOptional(input), ([_8, input]) => If(Token.Const(':', input), ([_9, input]) => If(Type(input), ([_10, input]) => If(OptionalSemiColon(input), ([_11, input]) => If(Token.Const('}', input), ([_12, input]) => [[_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12], input]))))))))))))), ([_0, input]) => [S._Mapped_Mapping(_0), input]);\nexport const Reference = (input) => If(Token.Ident(input), ([_0, input]) => [S.ReferenceMapping(_0), input]);\nexport const WithBigInt = (input) => If(Token.BigInt(input), ([_0, input]) => [S.WithBigIntMapping(_0), input]);\nexport const WithNumber = (input) => If(Token.Number(input), ([_0, input]) => [S.WithNumberMapping(_0), input]);\nexport const WithBoolean = (input) => If(If(Token.Const('true', input), ([_0, input]) => [_0, input], () => If(Token.Const('false', input), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.WithBooleanMapping(_0), input]);\nexport const WithString = (input) => If(Token.String(['\\\"', '\\''], input), ([_0, input]) => [S.WithStringMapping(_0), input]);\nexport const WithNull = (input) => If(Token.Const('null', input), ([_0, input]) => [S.WithNullMapping(_0), input]);\nexport const WithUndefined = (input) => If(Token.Const('undefined', input), ([_0, input]) => [S.WithUndefinedMapping(_0), input]);\nexport const WithProperty = (input) => If(If(PropertyKey(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(WithValue(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.WithPropertyMapping(_0), input]);\nexport const WithPropertyList_0 = (input, result = []) => If(If(WithProperty(input), ([_0, input]) => If(PropertyDelimiter(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => WithPropertyList_0(input, [...result, _0]), () => [result, input]);\nexport const WithPropertyList = (input) => If(If(WithPropertyList_0(input), ([_0, input]) => If(If(If(WithProperty(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.WithPropertyListMapping(_0), input]);\nexport const WithObject = (input) => If(If(Token.Const('{', input), ([_0, input]) => If(WithPropertyList(input), ([_1, input]) => If(Token.Const('}', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.WithObjectMapping(_0), input]);\nexport const WithElementList_0 = (input, result = []) => If(If(WithValue(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => WithElementList_0(input, [...result, _0]), () => [result, input]);\nexport const WithElementList = (input) => If(If(WithElementList_0(input), ([_0, input]) => If(If(If(WithValue(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.WithElementListMapping(_0), input]);\nexport const WithArray = (input) => If(If(Token.Const('[', input), ([_0, input]) => If(WithElementList(input), ([_1, input]) => If(Token.Const(']', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.WithArrayMapping(_0), input]);\nexport const WithValue = (input) => If(If(WithBigInt(input), ([_0, input]) => [_0, input], () => If(WithNumber(input), ([_0, input]) => [_0, input], () => If(WithBoolean(input), ([_0, input]) => [_0, input], () => If(WithString(input), ([_0, input]) => [_0, input], () => If(WithNull(input), ([_0, input]) => [_0, input], () => If(WithUndefined(input), ([_0, input]) => [_0, input], () => If(WithObject(input), ([_0, input]) => [_0, input], () => If(WithArray(input), ([_0, input]) => [_0, input], () => [])))))))), ([_0, input]) => [S.WithValueMapping(_0), input]);\nexport const PatternBigInt = (input) => If(Token.Const('-?(?:0|[1-9][0-9]*)n', input), ([_0, input]) => [S.PatternBigIntMapping(_0), input]);\nexport const PatternString = (input) => If(Token.Const('.*', input), ([_0, input]) => [S.PatternStringMapping(_0), input]);\nexport const PatternNumber = (input) => If(Token.Const('-?(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?', input), ([_0, input]) => [S.PatternNumberMapping(_0), input]);\nexport const PatternInteger = (input) => If(Token.Const('-?(?:0|[1-9][0-9]*)', input), ([_0, input]) => [S.PatternIntegerMapping(_0), input]);\nexport const PatternNever = (input) => If(Token.Const('(?!)', input), ([_0, input]) => [S.PatternNeverMapping(_0), input]);\nexport const PatternText = (input) => If(Token.Until_1(['-?(?:0|[1-9][0-9]*)n', '.*', '-?(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?', '-?(?:0|[1-9][0-9]*)', '(?!)', '(', ')', '$', '|'], input), ([_0, input]) => [S.PatternTextMapping(_0), input]);\nexport const PatternBase = (input) => If(If(PatternBigInt(input), ([_0, input]) => [_0, input], () => If(PatternString(input), ([_0, input]) => [_0, input], () => If(PatternNumber(input), ([_0, input]) => [_0, input], () => If(PatternInteger(input), ([_0, input]) => [_0, input], () => If(PatternNever(input), ([_0, input]) => [_0, input], () => If(PatternGroup(input), ([_0, input]) => [_0, input], () => If(PatternText(input), ([_0, input]) => [_0, input], () => []))))))), ([_0, input]) => [S.PatternBaseMapping(_0), input]);\nexport const PatternGroup = (input) => If(If(Token.Const('(', input), ([_0, input]) => If(PatternBody(input), ([_1, input]) => If(Token.Const(')', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.PatternGroupMapping(_0), input]);\nexport const PatternUnion = (input) => If(If(If(PatternTerm(input), ([_0, input]) => If(Token.Const('|', input), ([_1, input]) => If(PatternUnion(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [_0, input], () => If(If(PatternTerm(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => []))), ([_0, input]) => [S.PatternUnionMapping(_0), input]);\nexport const PatternTerm = (input) => If(If(PatternBase(input), ([_0, input]) => If(PatternBody(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.PatternTermMapping(_0), input]);\nexport const PatternBody = (input) => If(If(PatternUnion(input), ([_0, input]) => [_0, input], () => If(PatternTerm(input), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.PatternBodyMapping(_0), input]);\nexport const Pattern = (input) => If(If(Token.Const('^', input), ([_0, input]) => If(PatternBody(input), ([_1, input]) => If(Token.Const('$', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.PatternMapping(_0), input]);\nexport const InterfaceDeclarationHeritageList_0 = (input, result = []) => If(If(Type(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => InterfaceDeclarationHeritageList_0(input, [...result, _0]), () => [result, input]);\nexport const InterfaceDeclarationHeritageList = (input) => If(If(InterfaceDeclarationHeritageList_0(input), ([_0, input]) => If(If(If(Type(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.InterfaceDeclarationHeritageListMapping(_0), input]);\nexport const InterfaceDeclarationHeritage = (input) => If(If(If(Token.Const('extends', input), ([_0, input]) => If(InterfaceDeclarationHeritageList(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.InterfaceDeclarationHeritageMapping(_0), input]);\nexport const InterfaceDeclarationGeneric = (input) => If(If(Token.Const('interface', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(GenericParameters(input), ([_2, input]) => If(InterfaceDeclarationHeritage(input), ([_3, input]) => If(Properties(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.InterfaceDeclarationGenericMapping(_0), input]);\nexport const InterfaceDeclaration = (input) => If(If(Token.Const('interface', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(InterfaceDeclarationHeritage(input), ([_2, input]) => If(Properties(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [S.InterfaceDeclarationMapping(_0), input]);\nexport const TypeAliasDeclarationGeneric = (input) => If(If(Token.Const('type', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(GenericParameters(input), ([_2, input]) => If(Token.Const('=', input), ([_3, input]) => If(Type(input), ([_4, input]) => [[_0, _1, _2, _3, _4], input]))))), ([_0, input]) => [S.TypeAliasDeclarationGenericMapping(_0), input]);\nexport const TypeAliasDeclaration = (input) => If(If(Token.Const('type', input), ([_0, input]) => If(Token.Ident(input), ([_1, input]) => If(Token.Const('=', input), ([_2, input]) => If(Type(input), ([_3, input]) => [[_0, _1, _2, _3], input])))), ([_0, input]) => [S.TypeAliasDeclarationMapping(_0), input]);\nexport const ExportKeyword = (input) => If(If(If(Token.Const('export', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.ExportKeywordMapping(_0), input]);\nexport const ModuleDeclarationDelimiter = (input) => If(If(If(Token.Const(';', input), ([_0, input]) => If(Token.Const('\\n', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [_0, input], () => If(If(Token.Const(';', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If(If(Token.Const('\\n', input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => []))), ([_0, input]) => [S.ModuleDeclarationDelimiterMapping(_0), input]);\nexport const ModuleDeclarationList_0 = (input, result = []) => If(If(ModuleDeclaration(input), ([_0, input]) => If(ModuleDeclarationDelimiter(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => ModuleDeclarationList_0(input, [...result, _0]), () => [result, input]);\nexport const ModuleDeclarationList = (input) => If(If(ModuleDeclarationList_0(input), ([_0, input]) => If(If(If(ModuleDeclaration(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ModuleDeclarationListMapping(_0), input]);\nexport const ModuleDeclaration = (input) => If(If(ExportKeyword(input), ([_0, input]) => If(If(InterfaceDeclarationGeneric(input), ([_0, input]) => [_0, input], () => If(InterfaceDeclaration(input), ([_0, input]) => [_0, input], () => If(TypeAliasDeclarationGeneric(input), ([_0, input]) => [_0, input], () => If(TypeAliasDeclaration(input), ([_0, input]) => [_0, input], () => [])))), ([_1, input]) => If(OptionalSemiColon(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.ModuleDeclarationMapping(_0), input]);\nexport const Module = (input) => If(If(ModuleDeclaration(input), ([_0, input]) => If(ModuleDeclarationList(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.ModuleMapping(_0), input]);\nexport const Script = (input) => If(If(Module(input), ([_0, input]) => [_0, input], () => If(GenericType(input), ([_0, input]) => [_0, input], () => If(Type(input), ([_0, input]) => [_0, input], () => []))), ([_0, input]) => [S.ScriptMapping(_0), input]);\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { IsTemplateLiteral, IsTemplateLiteralDeferred } from '../../types/template_literal.mjs';\nimport { IsBigInt, BigIntPattern } from '../../types/bigint.mjs';\nimport { IsString, StringPattern } from '../../types/string.mjs';\nimport { IsNumber, NumberPattern } from '../../types/number.mjs';\nimport { IsInteger, IntegerPattern } from '../../types/integer.mjs';\nimport { IsBoolean } from '../../types/boolean.mjs';\nimport { NeverPattern } from '../../types/never.mjs';\nimport { TemplateLiteralCreate } from './create.mjs';\nimport { EvaluateEnum } from '../evaluate/evaluate.mjs';\nimport { TemplateLiteralAction } from './instantiate.mjs';\nfunction JoinString(input) {\n return input.join('|');\n}\nfunction UnwrapTemplateLiteralPattern(pattern) {\n return pattern.slice(1, pattern.length - 1);\n}\nfunction EncodeLiteral(value, right, pattern) {\n return EncodeTypes(right, `${pattern}${value}`);\n}\nfunction EncodeBigInt(right, pattern) {\n return EncodeTypes(right, `${pattern}${BigIntPattern}`);\n}\nfunction EncodeInteger(right, pattern) {\n return EncodeTypes(right, `${pattern}${IntegerPattern}`);\n}\nfunction EncodeNumber(right, pattern) {\n return EncodeTypes(right, `${pattern}${NumberPattern}`);\n}\nfunction EncodeBoolean(right, pattern) {\n return EncodeType(Union([Literal('false'), Literal('true')]), right, pattern);\n}\nfunction EncodeString(right, pattern) {\n return EncodeTypes(right, `${pattern}${StringPattern}`);\n}\nfunction EncodeTemplateLiteral(templatePattern, right, pattern) {\n return EncodeTypes(right, `${pattern}${UnwrapTemplateLiteralPattern(templatePattern)}`);\n}\nfunction EncodeTemplateLiteralDeferred(types, right, pattern) {\n const templateLiteral = TemplateLiteralAction(types, {});\n const result = EncodeType(templateLiteral, right, pattern);\n return result;\n}\nfunction EncodeEnum(values, right, pattern) {\n const evaluated = EvaluateEnum(values);\n return EncodeType(evaluated, right, pattern);\n}\nfunction EncodeUnion(types, right, pattern, result = []) {\n return Guard.ShiftLeft(types, (head, tail) => EncodeUnion(tail, right, pattern, [...result, EncodeType(head, [], '')]), () => EncodeTypes(right, `${pattern}(${JoinString(result)})`));\n}\nfunction EncodeType(type, right, pattern) {\n return (IsEnum(type) ? EncodeEnum(type.enum, right, pattern) :\n IsInteger(type) ? EncodeInteger(right, pattern) :\n IsLiteral(type) ? EncodeLiteral(type.const, right, pattern) :\n IsBigInt(type) ? EncodeBigInt(right, pattern) :\n IsBoolean(type) ? EncodeBoolean(right, pattern) :\n IsNumber(type) ? EncodeNumber(right, pattern) :\n IsString(type) ? EncodeString(right, pattern) :\n IsTemplateLiteral(type) ? EncodeTemplateLiteral(type.pattern, right, pattern) :\n IsTemplateLiteralDeferred(type) ? EncodeTemplateLiteralDeferred(type.parameters[0], right, pattern) :\n IsUnion(type) ? EncodeUnion(type.anyOf, right, pattern) :\n NeverPattern);\n}\nfunction EncodeTypes(types, pattern) {\n return Guard.ShiftLeft(types, (left, right) => EncodeType(left, right, pattern), () => pattern);\n}\nfunction EncodePattern(types) {\n const encoded = EncodeTypes(types, '');\n const result = `^${encoded}$`;\n return result;\n}\n/** Encodes a TemplateLiteral type sequence into a TemplateLiteral */\nexport function TemplateLiteralEncode(types) {\n const pattern = EncodePattern(types);\n const result = TemplateLiteralCreate(pattern);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { TemplateLiteralDeferred } from '../../types/template_literal.mjs';\nimport { TemplateLiteralEncode } from './encode.mjs';\nimport { InstantiateTypes, CanInstantiate } from '../instantiate.mjs';\nexport function TemplateLiteralAction(types, options) {\n const result = CanInstantiate(types)\n ? Memory.Update(TemplateLiteralEncode(types), {}, options)\n : TemplateLiteralDeferred(types, options);\n return result;\n}\nexport function TemplateLiteralInstantiate(context, state, types, options) {\n const instantiatedTypes = InstantiateTypes(context, state, types);\n return TemplateLiteralAction(instantiatedTypes, options);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Memory } from '../../system/system.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema, IsKind } from './schema.mjs';\nimport { Deferred } from './deferred.mjs';\nimport { ParseTemplateIntoTypes } from '../engine/patterns/template.mjs';\nimport { TemplateLiteralAction } from '../engine/template_literal/instantiate.mjs';\n/** Creates a deferred TemplateLiteral action. */\nexport function TemplateLiteralDeferred(types, options = {}) {\n return Deferred('TemplateLiteral', [types], options);\n}\n/** Returns true if this value is a deferred Interface action. */\nexport function IsTemplateLiteralDeferred(value) {\n return IsSchema(value)\n && Guard.HasPropertyKey(value, 'action')\n && Guard.IsEqual(value.action, 'TemplateLiteral');\n}\nexport function TemplateLiteralFromTypes(types) {\n return TemplateLiteralAction(types, {});\n}\nexport function TemplateLiteralFromString(template) {\n const types = ParseTemplateIntoTypes(template);\n return TemplateLiteralFromTypes(types);\n}\n/** Creates a TemplateLiteral type. */\nexport function TemplateLiteral(input, options = {}) {\n const type = Guard.IsString(input) ? TemplateLiteralFromString(input) : TemplateLiteralFromTypes(input);\n return Memory.Update(type, {}, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TTemplateLiteral. */\nexport function IsTemplateLiteral(value) {\n return IsKind(value, 'TemplateLiteral');\n}\n","import { Guard } from '../../guard/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nexport function ExtendsUnion(inferred) {\n return Memory.Create({ ['~kind']: 'ExtendsUnion' }, { inferred });\n}\nexport function IsExtendsUnion(value) {\n return Guard.IsObject(value) &&\n Guard.HasPropertyKey(value, '~kind') &&\n Guard.HasPropertyKey(value, 'inferred') &&\n Guard.IsEqual(value['~kind'], 'ExtendsUnion') &&\n Guard.IsObject(value.inferred);\n}\nexport function ExtendsTrue(inferred) {\n return Memory.Create({ ['~kind']: 'ExtendsTrue' }, { inferred });\n}\nexport function IsExtendsTrue(value) {\n return Guard.IsObject(value) &&\n Guard.HasPropertyKey(value, '~kind') &&\n Guard.HasPropertyKey(value, 'inferred') &&\n Guard.IsEqual(value['~kind'], 'ExtendsTrue') &&\n Guard.IsObject(value.inferred);\n}\nexport function ExtendsFalse() {\n return Memory.Create({ ['~kind']: 'ExtendsFalse' }, {});\n}\nexport function IsExtendsFalse(value) {\n return Guard.IsObject(value) &&\n Guard.HasPropertyKey(value, '~kind') &&\n Guard.IsEqual(value['~kind'], 'ExtendsFalse');\n}\nexport function IsExtendsTrueLike(value) {\n return IsExtendsUnion(value) || IsExtendsTrue(value);\n}\nexport function Match(result, true_, false_) {\n return IsExtendsTrueLike(result) ? true_(result.inferred) : false_();\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsAny } from '../types/any.mjs';\nimport { IsDependent } from '../types/dependent.mjs';\nimport { IsEnum } from '../types/enum.mjs';\nimport { IsInfer } from '../types/infer.mjs';\nimport { IsIntersect } from '../types/intersect.mjs';\nimport { IsTemplateLiteral } from '../types/template_literal.mjs';\nimport { IsUnion } from '../types/union.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { ExtendsLeft } from './extends_left.mjs';\nimport * as Result from './result.mjs';\nimport { EvaluateEnum } from '../engine/evaluate/evaluate.mjs';\nimport { EvaluateTemplateLiteral } from '../engine/evaluate/evaluate.mjs';\nfunction ExtendsRightInfer(inferred, name, left, right) {\n return Result.Match(ExtendsLeft(inferred, left, right), checkInferred => Result.ExtendsTrue(Memory.Assign(Memory.Assign(inferred, checkInferred), { [name]: left })), () => Result.ExtendsFalse());\n}\nfunction ExtendsRightAny(inferred, _left) {\n return Result.ExtendsTrue(inferred);\n}\nfunction ExtendsRightDependent(inferred, left, if_, then_, else_) {\n return Result.Match(ExtendsLeft(inferred, left, if_), inferred => Result.Match(ExtendsLeft(inferred, left, then_), inferred => Result.ExtendsTrue(inferred), () => Result.ExtendsFalse()), () => Result.Match(ExtendsLeft(inferred, left, else_), inferred => Result.ExtendsTrue(inferred), () => Result.ExtendsFalse()));\n}\nfunction ExtendsRightEnum(inferred, left, right) {\n const evaluated = EvaluateEnum(right);\n return ExtendsLeft(inferred, left, evaluated);\n}\nfunction ExtendsRightIntersect(inferred, left, right) {\n return Guard.ShiftLeft(right, (head, tail) => Result.Match(ExtendsLeft(inferred, left, head), inferred => ExtendsRightIntersect(inferred, left, tail), () => Result.ExtendsFalse()), () => Result.ExtendsTrue(inferred));\n}\nfunction ExtendsRightTemplateLiteral(inferred, left, right) {\n const evaluated = EvaluateTemplateLiteral(right);\n return ExtendsLeft(inferred, left, evaluated);\n}\nfunction ExtendsRightUnion(inferred, left, right) {\n return Guard.ShiftLeft(right, (head, tail) => Result.Match(ExtendsLeft(inferred, left, head), inferred => Result.ExtendsTrue(inferred), () => ExtendsRightUnion(inferred, left, tail)), () => Result.ExtendsFalse());\n}\nexport function ExtendsRight(inferred, left, right) {\n return (IsAny(right) ? ExtendsRightAny(inferred, left) :\n IsDependent(right) ? ExtendsRightDependent(inferred, left, right.if, right.then, right.else) :\n IsEnum(right) ? ExtendsRightEnum(inferred, left, right.enum) :\n IsInfer(right) ? ExtendsRightInfer(inferred, right.name, left, right.extends) :\n IsIntersect(right) ? ExtendsRightIntersect(inferred, left, right.allOf) :\n IsTemplateLiteral(right) ? ExtendsRightTemplateLiteral(inferred, left, right.pattern) :\n IsUnion(right) ? ExtendsRightUnion(inferred, left, right.anyOf) :\n IsUnknown(right) ? Result.ExtendsTrue(inferred) :\n Result.ExtendsFalse());\n}\n","// deno-fmt-ignore-file\nimport { IsInfer } from '../types/infer.mjs';\nimport { IsAny } from '../types/any.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsAny(inferred, left, right) {\n return (IsInfer(right) ? ExtendsRight(inferred, left, right) :\n IsAny(right) ? Result.ExtendsTrue(inferred) :\n IsUnknown(right) ? Result.ExtendsTrue(inferred) :\n Result.ExtendsUnion(inferred));\n}\n","// deno-fmt-ignore-file\nimport { IsArray } from '../types/array.mjs';\nimport { IsImmutable } from '../types/_immutable.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport { ExtendsLeft } from './extends_left.mjs';\nimport * as Result from './result.mjs';\nfunction ExtendsImmutable(left, right) {\n const isImmutableLeft = IsImmutable(left);\n const isImmutableRight = IsImmutable(right);\n return (isImmutableLeft && isImmutableRight ? true :\n !isImmutableLeft && isImmutableRight ? true :\n isImmutableLeft && !isImmutableRight ? false :\n true);\n}\nexport function ExtendsArray(inferred, arrayLeft, left, right) {\n return (IsArray(right)\n ? ExtendsImmutable(arrayLeft, right)\n ? ExtendsLeft(inferred, left, right.items)\n : Result.ExtendsFalse()\n : ExtendsRight(inferred, arrayLeft, right));\n}\n","// deno-fmt-ignore-file\nimport { IsBigInt } from '../types/bigint.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsBigInt(inferred, left, right) {\n return (IsBigInt(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n","// deno-fmt-ignore-file\nimport { IsBoolean } from '../types/boolean.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsBoolean(inferred, left, right) {\n return (IsBoolean(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsInfer } from '../types/infer.mjs';\nimport { IsOptional } from '../types/_optional.mjs';\nimport { ExtendsLeft } from './extends_left.mjs';\nimport * as Result from './result.mjs';\nfunction ParameterCompare(inferred, left, leftRest, right, rightRest) {\n // Parameter extends Right on Left, except when infer Right \n const checkLeft = IsInfer(right) ? left : right;\n const checkRight = IsInfer(right) ? right : left;\n const isLeftOptional = IsOptional(left);\n const isRightOptional = IsOptional(right);\n return ((!isLeftOptional && isRightOptional)\n ? Result.ExtendsFalse() // 'fail: left-required-but-right-is-optional'\n : Result.Match(ExtendsLeft(inferred, checkLeft, checkRight), inferred => ExtendsParameters(inferred, leftRest, rightRest), () => Result.ExtendsFalse()) // 'fail: left-and-right-did-not-match'\n );\n}\nfunction ParameterRight(inferred, left, leftRest, rightRest) {\n return Guard.ShiftLeft(rightRest, (head, tail) => ParameterCompare(inferred, left, leftRest, head, tail), () => IsOptional(left) // 'right-did-not-have-enough-elements'\n ? Result.ExtendsTrue(inferred) // 'ok: left was optional'\n : Result.ExtendsFalse()); // 'fail: left was required'\n}\nfunction ParametersLeft(inferred, left, rightRest) {\n return Guard.ShiftLeft(left, (head, tail) => ParameterRight(inferred, head, tail, rightRest), () => Result.ExtendsTrue(inferred)); // 'ok: no-more-elements-in-left'\n}\nexport function ExtendsParameters(inferred, left, right) {\n return ParametersLeft(inferred, left, right);\n}\n","// deno-fmt-ignore-file\nimport { IsVoid } from '../types/void.mjs';\nimport { ExtendsLeft } from './extends_left.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsReturnType(inferred, left, right) {\n return (IsVoid(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsLeft(inferred, left, right));\n}\n","// deno-fmt-ignore-file\nimport { IsAny } from '../types/any.mjs';\nimport { IsConstructor } from '../types/constructor.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport * as Result from './result.mjs';\n// ------------------------------------------------------------------\n// Parameters | ReturnType\n// ------------------------------------------------------------------ \nimport { ExtendsParameters } from './parameters.mjs';\nimport { ExtendsReturnType } from './return_type.mjs';\nexport function ExtendsConstructor(inferred, parameters, returnType, right) {\n return (IsAny(right) ? Result.ExtendsTrue(inferred) :\n IsUnknown(right) ? Result.ExtendsTrue(inferred) :\n IsConstructor(right) ? Result.Match(ExtendsParameters(inferred, parameters, right['parameters']), inferred => ExtendsReturnType(inferred, returnType, right['instanceType']), () => Result.ExtendsFalse()) // 'not-a-parameter-match'\n : Result.ExtendsFalse() // 'not-a-constructor'\n );\n}\n","// deno-fmt-ignore-file\nimport { ExtendsLeft } from './extends_left.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsDependent(inferred, if_, then_, else_, right) {\n return Result.Match(ExtendsLeft(inferred, if_, right), () => ExtendsLeft(inferred, then_, right), () => ExtendsLeft(inferred, else_, right));\n}\n","// deno-fmt-ignore-file\nimport { ExtendsLeft } from './extends_left.mjs';\nimport { EvaluateEnum } from '../engine/evaluate/evaluate.mjs';\nexport function ExtendsEnum(inferred, left, right) {\n const evaluated = EvaluateEnum(left);\n return ExtendsLeft(inferred, evaluated, right);\n}\n","// deno-fmt-ignore-file\nimport { IsAny } from '../types/any.mjs';\nimport { IsFunction } from '../types/function.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport * as Result from './result.mjs';\n// ------------------------------------------------------------------\n// Parameters | ReturnType\n// ------------------------------------------------------------------ \nimport { ExtendsParameters } from './parameters.mjs';\nimport { ExtendsReturnType } from './return_type.mjs';\nexport function ExtendsFunction(inferred, parameters, returnType, right) {\n return (IsAny(right) ? Result.ExtendsTrue(inferred) :\n IsUnknown(right) ? Result.ExtendsTrue(inferred) :\n IsFunction(right) ? Result.Match(ExtendsParameters(inferred, parameters, right['parameters']), inferred => ExtendsReturnType(inferred, returnType, right['returnType']), () => Result.ExtendsFalse()) // 'not-a-parameter-match'\n : Result.ExtendsFalse() // 'not-a-function'\n );\n}\n","// deno-fmt-ignore-file\nimport { IsInteger } from '../types/integer.mjs';\nimport { IsNumber } from '../types/number.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsInteger(inferred, left, right) {\n return (IsInteger(right) ? Result.ExtendsTrue(inferred) :\n IsNumber(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, left, right));\n}\n","// deno-fmt-ignore-file\nimport { ExtendsLeft } from './extends_left.mjs';\n// ----------------------------------------------------------------------------\n// ExtendsIntersect\n//\n// This function evaluates the intersection and continues. This is different\n// to IntersectRight which MUST enumerate each type to derive Inferred. Left \n// side types do not infer so it should be ok to do this.\n//\n// ----------------------------------------------------------------------------\nimport { EvaluateIntersect } from '../engine/evaluate/index.mjs';\nexport function ExtendsIntersect(inferred, left, right) {\n const evaluated = EvaluateIntersect(left);\n return ExtendsLeft(inferred, evaluated, right);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Unreachable } from '../../system/unreachable/unreachable.mjs';\nimport { IsLiteral, Literal } from '../types/literal.mjs';\nimport { IsBigInt } from '../types/bigint.mjs';\nimport { IsBoolean } from '../types/boolean.mjs';\nimport { IsNumber } from '../types/number.mjs';\nimport { IsString } from '../types/string.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nfunction ExtendsLiteralValue(inferred, left, right) {\n return (left === right\n ? Result.ExtendsTrue(inferred)\n : Result.ExtendsFalse());\n}\nfunction ExtendsLiteralBigInt(inferred, left, right) {\n return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :\n IsBigInt(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, Literal(left), right));\n}\nfunction ExtendsLiteralBoolean(inferred, left, right) {\n return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :\n IsBoolean(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, Literal(left), right));\n}\nfunction ExtendsLiteralNumber(inferred, left, right) {\n return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :\n IsNumber(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, Literal(left), right));\n}\nfunction ExtendsLiteralString(inferred, left, right) {\n return (IsLiteral(right) ? ExtendsLiteralValue(inferred, left, right.const) :\n IsString(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, Literal(left), right));\n}\nexport function ExtendsLiteral(inferred, left, right) {\n return (Guard.IsBigInt(left.const) ? ExtendsLiteralBigInt(inferred, left.const, right) :\n Guard.IsBoolean(left.const) ? ExtendsLiteralBoolean(inferred, left.const, right) :\n Guard.IsNumber(left.const) ? ExtendsLiteralNumber(inferred, left.const, right) :\n Guard.IsString(left.const) ? ExtendsLiteralString(inferred, left.const, right) :\n Unreachable() // ExtendsRight(inferred, left, right)\n );\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\nimport { IsInfer } from '../types/infer.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsNever(inferred, left, right) {\n return (IsInfer(right)\n ? ExtendsRight(inferred, left, right)\n : Result.ExtendsTrue(inferred));\n}\n","// deno-fmt-ignore-file\nimport { IsNull } from '../types/null.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsNull(inferred, left, right) {\n return (IsNull(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n","// deno-fmt-ignore-file\nimport { IsNumber } from '../types/number.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsNumber(inferred, left, right) {\n return (IsNumber(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsOptional } from '../types/_optional.mjs';\nimport { IsInfer } from '../types/infer.mjs';\nimport { IsNever } from '../types/never.mjs';\nimport { IsObject, Object } from '../types/object.mjs';\nimport { IsRecord, RecordPattern, RecordValue } from '../types/record.mjs';\nimport { Union, IsUnion } from '../types/union.mjs';\nimport { ExtendsLeft } from './extends_left.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nfunction ExtendsPropertyOptional(inferred, left, right) {\n return (IsOptional(left)\n ? IsOptional(right)\n ? Result.ExtendsTrue(inferred)\n : Result.ExtendsFalse()\n : Result.ExtendsTrue(inferred));\n}\nfunction ExtendsProperty(inferred, left, right) {\n return (\n // Right TInfer<TNever> is TExtendsFalse\n (IsInfer(right) && IsNever(right.extends))\n ? Result.ExtendsFalse()\n : Result.Match(ExtendsLeft(inferred, left, right), inferred => ExtendsPropertyOptional(inferred, left, right), () => Result.ExtendsFalse()));\n}\nfunction ExtractInferredProperties(keys, properties) {\n return keys.reduce((result, key) => {\n return key in properties\n ? Result.IsExtendsTrueLike(properties[key])\n // @ts-ignore 5.0.4 cannot see `.inferred`\n ? { ...result, ...properties[key].inferred }\n : Unreachable() // result\n : Unreachable(); // result\n }, {});\n}\nfunction ExtendsPropertiesComparer(inferred, left, right) {\n const properties = {};\n for (const rightKey of Guard.Keys(right)) {\n properties[rightKey] = (rightKey in left\n // We don't consider the exterior Inferred as part of the property check as\n // we don't want the exterior Context to override the Inferred Context for\n // the Property Key. This override behavior is observed in the following\n // case we want the inferred A to shadow the exterior A.\n //\n // const A = Type.Script(`{ x: 1, y: 1 }`)\n // const S = Type.Script({ A }, `{\n // [K in keyof A]: A extends { \n // x: infer A, \n // y: infer B \n // } ? [A, B] <-- inferred 'A' shadows the exterior 'A'\n // : never\n // }`)\n ? ExtendsProperty({}, left[rightKey], right[rightKey])\n // If the right key K is not in left, but the right property is optional\n // then we say this property is permissable. This is because an optional\n // property on right is the same as property missing in left. If the\n // right is infer, then we just assign the extend type to inferred.\n : IsOptional(right[rightKey])\n ? IsInfer(right[rightKey])\n // @ts-ignore 5.0.1 - cannot observe extend in right[rightKey].extends\n ? Result.ExtendsTrue(Memory.Assign(inferred, { [right[rightKey].name]: right[rightKey].extends }))\n : Result.ExtendsTrue(inferred)\n : Result.ExtendsFalse());\n }\n // Check if all properties are ExtendsTrueLike\n const checked = Guard.Values(properties).every(result => Result.IsExtendsTrueLike(result));\n // Extract inferred results from properties, but only if the check is true.\n const extracted = checked ? ExtractInferredProperties(Guard.Keys(properties), properties) : {};\n return (checked\n ? Result.ExtendsTrue(extracted)\n : Result.ExtendsFalse());\n}\nfunction ExtendsProperties(inferred, left, right) {\n const compared = ExtendsPropertiesComparer(inferred, left, right);\n return (Result.IsExtendsTrueLike(compared)\n ? Result.ExtendsTrue(Memory.Assign(inferred, compared.inferred))\n : Result.ExtendsFalse());\n}\nfunction ExtendsObjectToObject(inferred, left, right) {\n return ExtendsProperties(inferred, left, right);\n}\nfunction RecordMergeInferred(left, right) {\n return Guard.Keys(right).reduce((result, key) => {\n return {\n ...result, [key]: Guard.HasPropertyKey(left, key)\n ? IsUnion(result[key])\n // @ts-ignore 5.0.4 cannot see `.anyOf`\n ? Union([...result[key].anyOf, right[key]])\n : Union([left[key], right[key]])\n : right[key]\n };\n }, left);\n}\nfunction ExtendsRecordComparer(properties, keys, type, result) {\n return Guard.ShiftLeft(keys, (left, right) => Result.Match(ExtendsLeft({}, properties[left], type), inferred => ExtendsRecordComparer(properties, right, type, RecordMergeInferred(result, inferred)), () => Result.ExtendsFalse()), () => Result.ExtendsTrue(result));\n}\nfunction ExtendsObjectToRecord(inferred, properties, _pattern, value) {\n const keys = Guard.Keys(properties);\n const result = ExtendsRecordComparer(properties, keys, value, inferred);\n return result;\n}\nexport function ExtendsObject(inferred, left, right) {\n return (IsRecord(right) ? ExtendsObjectToRecord(inferred, left, RecordPattern(right), RecordValue(right)) :\n IsObject(right) ? ExtendsObjectToObject(inferred, left, right.properties) :\n ExtendsRight(inferred, Object(left), right));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsAny } from '../types/any.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { IsObject } from '../types/object.mjs';\nimport { IsRecord, RecordPatternToType, RecordPattern, RecordValue } from '../types/record.mjs';\nimport { ExtendsLeft } from './extends_left.mjs';\nimport * as Result from './result.mjs';\nfunction FromObject(inferred, properties) {\n return (Guard.IsEqual(Guard.Keys(properties).length, 0)\n ? Result.ExtendsTrue(inferred)\n : Result.ExtendsFalse());\n}\nfunction FromRecord(inferred, _leftKey, leftValue, _rightKey, rightValue) {\n return ExtendsLeft(inferred, leftValue, rightValue);\n}\nexport function ExtendsRecord(inferred, leftPattern, leftValue, right) {\n return (IsRecord(right) ? FromRecord(inferred, RecordPatternToType(leftPattern), leftValue, RecordPatternToType(RecordPattern(right)), RecordValue(right)) :\n IsObject(right) ? FromObject(inferred, right.properties) :\n IsAny(right) ? Result.ExtendsTrue(inferred) :\n IsUnknown(right) ? Result.ExtendsTrue(inferred) :\n Result.ExtendsFalse());\n}\n","// deno-fmt-ignore-file\nimport { IsString } from '../types/string.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsString(inferred, left, right) {\n return (IsString(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n","// deno-fmt-ignore-file\nimport { IsSymbol } from '../types/symbol.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsSymbol(inferred, left, right) {\n return (IsSymbol(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n","// deno-fmt-ignore-file\nimport { ExtendsLeft } from './extends_left.mjs';\nimport { EvaluateTemplateLiteral } from '../engine/evaluate/evaluate.mjs';\nexport function ExtendsTemplateLiteral(inferred, left, right) {\n const evaluated = EvaluateTemplateLiteral(left);\n return ExtendsLeft(inferred, evaluated, right);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsArray } from '../types/array.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { Tuple } from '../types/tuple.mjs';\nimport { ExtendsLeft } from './extends_left.mjs';\nimport { Union } from '../types/union.mjs';\n// ----------------------------------------------------------------------------\n// Operator\n// ----------------------------------------------------------------------------\nimport { IsInfer } from '../types/infer.mjs';\nimport { IsRest } from '../types/rest.mjs';\nimport * as Result from './result.mjs';\n// ----------------------------------------------------------------------------\n// Factory\n// ----------------------------------------------------------------------------\nexport function Inferrable(name, type) {\n return Memory.Create({ '~kind': 'Inferrable' }, { name, type }, {});\n}\n// ----------------------------------------------------------------------------\n// Guard\n// ----------------------------------------------------------------------------\nexport function IsInferable(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, '~kind')\n && Guard.HasPropertyKey(value, 'name')\n && Guard.HasPropertyKey(value, 'type')\n && Guard.IsEqual(value[\"~kind\"], 'Inferrable')\n && Guard.IsString(value.name)\n && Guard.IsObject(value.type);\n}\nexport function TryRestInferable(type) {\n return (IsRest(type)\n ? IsInfer(type.items)\n ? IsArray(type.items.extends) ? Inferrable(type.items.name, type.items.extends.items) :\n IsUnknown(type.items.extends) ? Inferrable(type.items.name, type.items.extends) :\n undefined\n : Unreachable() // undefined\n : undefined);\n}\nexport function TryInferable(type) {\n return (IsInfer(type) ? Inferrable(type.name, type.extends) :\n undefined);\n}\nfunction TryInferResults(rest, right, result = []) {\n return Guard.ShiftLeft(rest, (head, tail) => Result.Match(ExtendsLeft({}, head, right), () => TryInferResults(tail, right, [...result, head]), () => undefined), () => result);\n}\nexport function InferTupleResult(inferred, name, left, right) {\n const results = TryInferResults(left, right);\n return (Guard.IsArray(results)\n ? Result.ExtendsTrue(Memory.Assign(inferred, { [name]: Tuple(results) }))\n : Result.ExtendsFalse());\n}\nexport function InferUnionResult(inferred, name, left, right) {\n const results = TryInferResults(left, right);\n return (Guard.IsArray(results)\n ? Result.ExtendsTrue(Memory.Assign(inferred, { [name]: Union(results) }))\n : Result.ExtendsFalse());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\nimport { IsArray } from '../types/array.mjs';\nimport { IsTuple, Tuple } from '../types/tuple.mjs';\nimport { ExtendsLeft } from './extends_left.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nimport { InstantiateElements } from '../engine/instantiate.mjs';\nimport { State } from '../engine/instantiate.mjs';\n// ----------------------------------------------------------------------------\n// Inference\n// ----------------------------------------------------------------------------\nimport { TryRestInferable, TryInferable, IsInferable, InferTupleResult, InferUnionResult } from './inference.mjs';\nfunction Reverse(types) {\n return [...types].reverse();\n}\nfunction ApplyReverse(types, reversed) {\n return (reversed ? Reverse(types) : types);\n}\nfunction Reversed(types) {\n const first = types.length > 0 ? types[0] : undefined;\n const inferrable = IsSchema(first) ? TryRestInferable(first) : undefined;\n return IsSchema(inferrable);\n}\nfunction ElementsCompare(inferred, reversed, left, leftRest, right, rightRest) {\n return Result.Match(ExtendsLeft(inferred, left, right), checkInferred => Elements(checkInferred, reversed, leftRest, rightRest), () => Result.ExtendsFalse()); // 'left-and-right-not-compared'\n}\nfunction ElementsLeft(inferred, reversed, leftRest, right, rightRest) {\n const inferable = TryRestInferable(right);\n return (\n // Rest Inferrable Right Means we delegate to TInferTupleResult to Generate a Result\n IsInferable(inferable)\n ? InferTupleResult(inferred, inferable['name'], ApplyReverse(leftRest, reversed), inferable['type'])\n : Guard.ShiftLeft(leftRest, (head, tail) => ElementsCompare(inferred, reversed, head, tail, right, rightRest), () => Result.ExtendsFalse()));\n}\nfunction ElementsRight(inferred, reversed, leftRest, rightRest) {\n return Guard.ShiftLeft(rightRest, (head, tail) => ElementsLeft(inferred, reversed, leftRest, head, tail), () => Guard.IsEqual(leftRest.length, 0)\n ? Result.ExtendsTrue(inferred) // 'Ok: right-empty-and-left-empty'\n : Result.ExtendsFalse()); // 'Fail: right-empty-and-left-not-empty'\n}\nfunction Elements(inferred, reversed, leftRest, rightRest) {\n return ElementsRight(inferred, reversed, leftRest, rightRest);\n}\nfunction ExtendsTupleToTuple(inferred, left, right) {\n const instantiatedRight = InstantiateElements(inferred, State([], []), right);\n const reversed = Reversed(instantiatedRight);\n return Elements(inferred, reversed, ApplyReverse(left, reversed), ApplyReverse(instantiatedRight, reversed));\n}\nfunction ExtendsTupleToArray(inferred, left, right) {\n const inferrable = TryInferable(right);\n return (IsInferable(inferrable)\n ? InferUnionResult(inferred, inferrable['name'], left, inferrable['type'])\n : Guard.ShiftLeft(left, (head, tail) => Result.Match(ExtendsLeft(inferred, head, right), inferred => ExtendsTupleToArray(inferred, tail, right), () => Result.ExtendsFalse()), () => Result.ExtendsTrue(inferred)));\n}\nexport function ExtendsTuple(inferred, left, right) {\n const instantiatedLeft = InstantiateElements(inferred, State([], []), left);\n return (IsTuple(right) ? ExtendsTupleToTuple(inferred, instantiatedLeft, right.items) :\n IsArray(right) ? ExtendsTupleToArray(inferred, instantiatedLeft, right.items) :\n ExtendsRight(inferred, Tuple(instantiatedLeft), right));\n}\n","// deno-fmt-ignore-file\nimport { IsUndefined } from '../types/undefined.mjs';\nimport { IsVoid } from '../types/void.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsUndefined(inferred, left, right) {\n return (IsVoid(right) ? Result.ExtendsTrue(inferred) :\n IsUndefined(right) ? Result.ExtendsTrue(inferred) :\n ExtendsRight(inferred, left, right));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsUnion } from '../types/union.mjs';\nimport { ExtendsLeft } from './extends_left.mjs';\nimport * as Result from './result.mjs';\n// ----------------------------------------------------------------------------\n// Inference\n// ----------------------------------------------------------------------------\nimport { IsInferable, TryInferable, InferUnionResult } from './inference.mjs';\nfunction ExtendsUnionSome(inferred, type, unionTypes) {\n return Guard.ShiftLeft(unionTypes, (head, tail) => Result.Match(ExtendsLeft(inferred, type, head), inferred => Result.ExtendsTrue(inferred), () => ExtendsUnionSome(inferred, type, tail)), () => Result.ExtendsFalse());\n}\nfunction ExtendsUnionLeft(inferred, left, right) {\n return Guard.ShiftLeft(left, (head, tail) => Result.Match(ExtendsUnionSome(inferred, head, right), inferred => ExtendsUnionLeft(inferred, tail, right), () => Result.ExtendsFalse()), () => Result.ExtendsTrue(inferred));\n}\nexport function ExtendsUnion(inferred, left, right) {\n const inferrable = TryInferable(right);\n return (IsInferable(inferrable)\n // @ts-ignore 4.9.5 fails to see `type` property on inferrable\n ? InferUnionResult(inferred, inferrable.name, left, inferrable.type)\n : IsUnion(right)\n ? ExtendsUnionLeft(inferred, left, right.anyOf)\n : ExtendsUnionLeft(inferred, left, [right]));\n}\n","// deno-fmt-ignore-file\nimport { IsAny } from '../types/any.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { IsInfer } from '../types/infer.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsUnknown(inferred, left, right) {\n return (IsInfer(right) ? ExtendsRight(inferred, left, right) :\n IsAny(right) ? Result.ExtendsTrue(inferred) :\n IsUnknown(right) ? Result.ExtendsTrue(inferred) :\n Result.ExtendsFalse());\n}\n","// deno-fmt-ignore-file\nimport { IsVoid } from '../types/void.mjs';\nimport { ExtendsRight } from './extends_right.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsVoid(inferred, left, right) {\n return (IsVoid(right)\n ? Result.ExtendsTrue(inferred)\n : ExtendsRight(inferred, left, right));\n}\n","// deno-fmt-ignore-file\nimport { ExtendsAny } from './any.mjs';\nimport { ExtendsArray } from './array.mjs';\nimport { ExtendsBigInt } from './bigint.mjs';\nimport { ExtendsBoolean } from './boolean.mjs';\nimport { ExtendsConstructor } from './constructor.mjs';\nimport { ExtendsDependent } from './dependent.mjs';\nimport { ExtendsEnum } from './enum.mjs';\nimport { ExtendsFunction } from './function.mjs';\nimport { ExtendsInteger } from './integer.mjs';\nimport { ExtendsIntersect } from './intersect.mjs';\nimport { ExtendsLiteral } from './literal.mjs';\nimport { ExtendsNever } from './never.mjs';\nimport { ExtendsNull } from './null.mjs';\nimport { ExtendsNumber } from './number.mjs';\nimport { ExtendsObject } from './object.mjs';\nimport { ExtendsRecord } from './record.mjs';\nimport { ExtendsString } from './string.mjs';\nimport { ExtendsSymbol } from './symbol.mjs';\nimport { ExtendsTemplateLiteral } from './template_literal.mjs';\nimport { ExtendsTuple } from './tuple.mjs';\nimport { ExtendsUndefined } from './undefined.mjs';\nimport { ExtendsUnion } from './union.mjs';\nimport { ExtendsUnknown } from './unknown.mjs';\nimport { ExtendsVoid } from './void.mjs';\n// ----------------------------------------------------------------------------\n// Types\n// ----------------------------------------------------------------------------\nimport { IsAny } from '../types/any.mjs';\nimport { IsArray } from '../types/array.mjs';\nimport { IsBigInt } from '../types/bigint.mjs';\nimport { IsBoolean } from '../types/boolean.mjs';\nimport { IsConstructor } from '../types/constructor.mjs';\nimport { IsDependent } from '../types/dependent.mjs';\nimport { IsEnum } from '../types/enum.mjs';\nimport { IsFunction } from '../types/function.mjs';\nimport { IsInteger } from '../types/integer.mjs';\nimport { IsIntersect } from '../types/intersect.mjs';\nimport { IsLiteral } from '../types/literal.mjs';\nimport { IsNever } from '../types/never.mjs';\nimport { IsNull } from '../types/null.mjs';\nimport { IsNumber } from '../types/number.mjs';\nimport { IsObject } from '../types/object.mjs';\nimport { IsRecord, RecordPattern, RecordValue } from '../types/record.mjs';\nimport { IsString } from '../types/string.mjs';\nimport { IsSymbol } from '../types/symbol.mjs';\nimport { IsTemplateLiteral } from '../types/template_literal.mjs';\nimport { IsTuple } from '../types/tuple.mjs';\nimport { IsUndefined } from '../types/undefined.mjs';\nimport { IsUnknown } from '../types/unknown.mjs';\nimport { IsUnion } from '../types/union.mjs';\nimport { IsVoid } from '../types/void.mjs';\nimport * as Result from './result.mjs';\nexport function ExtendsLeft(inferred, left, right) {\n return (IsAny(left) ? ExtendsAny(inferred, left, right) :\n IsArray(left) ? ExtendsArray(inferred, left, left.items, right) :\n IsBigInt(left) ? ExtendsBigInt(inferred, left, right) :\n IsBoolean(left) ? ExtendsBoolean(inferred, left, right) :\n IsConstructor(left) ? ExtendsConstructor(inferred, left.parameters, left.instanceType, right) :\n IsDependent(left) ? ExtendsDependent(inferred, left.if, left.then, left.else, right) :\n IsEnum(left) ? ExtendsEnum(inferred, left.enum, right) :\n IsFunction(left) ? ExtendsFunction(inferred, left.parameters, left.returnType, right) :\n IsInteger(left) ? ExtendsInteger(inferred, left, right) :\n IsIntersect(left) ? ExtendsIntersect(inferred, left.allOf, right) :\n IsLiteral(left) ? ExtendsLiteral(inferred, left, right) :\n IsNever(left) ? ExtendsNever(inferred, left, right) :\n IsNull(left) ? ExtendsNull(inferred, left, right) :\n IsNumber(left) ? ExtendsNumber(inferred, left, right) :\n IsObject(left) ? ExtendsObject(inferred, left.properties, right) :\n IsRecord(left) ? ExtendsRecord(inferred, RecordPattern(left), RecordValue(left), right) :\n IsString(left) ? ExtendsString(inferred, left, right) :\n IsSymbol(left) ? ExtendsSymbol(inferred, left, right) :\n IsTemplateLiteral(left) ? ExtendsTemplateLiteral(inferred, left.pattern, right) :\n IsTuple(left) ? ExtendsTuple(inferred, left.items, right) :\n IsUndefined(left) ? ExtendsUndefined(inferred, left, right) :\n IsUnion(left) ? ExtendsUnion(inferred, left.anyOf, right) :\n IsUnknown(left) ? ExtendsUnknown(inferred, left, right) :\n IsVoid(left) ? ExtendsVoid(inferred, left, right) :\n Result.ExtendsFalse());\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nimport { InterfaceDeferred } from '../../action/index.mjs';\nimport { CanInstantiate } from '../instantiate.mjs';\nimport { InstantiateProperties } from '../instantiate.mjs';\nimport { InstantiateTypes } from '../instantiate.mjs';\nfunction InterfaceOperation(heritage, properties) {\n const result = EvaluateIntersect([...heritage, Object(properties)]);\n return result;\n}\nexport function InterfaceAction(heritage, properties, options) {\n const result = CanInstantiate(heritage)\n ? Memory.Update(InterfaceOperation(heritage, properties), {}, options)\n : InterfaceDeferred(heritage, properties, options);\n return result;\n}\nexport function InterfaceInstantiate(context, state, heritage, properties, options) {\n const instantiatedHeritage = InstantiateTypes(context, state, heritage);\n const instantiatedProperties = InstantiateProperties(context, state, properties);\n return InterfaceAction(instantiatedHeritage, instantiatedProperties, options);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\nimport { Deferred } from '../types/deferred.mjs';\nimport { InterfaceAction } from '../engine/interface/instantiate.mjs';\n/** Creates a deferred Interface action. */\nexport function InterfaceDeferred(heritage, properties, options = {}) {\n return Deferred('Interface', [heritage, properties], options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if this value is a deferred Interface action. */\nexport function IsInterfaceDeferred(value) {\n return IsSchema(value)\n && Guard.HasPropertyKey(value, 'action')\n && Guard.IsEqual(value.action, 'Interface');\n}\n/** Creates an Interface using the given heritage and properties. */\nexport function Interface(heritage, properties, options = {}) {\n return InterfaceAction(heritage, properties, options);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsArray } from '../../types/array.mjs';\nimport { IsConstructor } from '../../types/constructor.mjs';\nimport { IsFunction } from '../../types/function.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { PropertyValues } from '../../types/properties.mjs';\nimport { IsRecord, RecordValue } from '../../types/record.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nimport { IsInterfaceDeferred } from '../../action/interface.mjs';\nfunction FromRef(stack, context, ref) {\n return (stack.includes(ref)\n ? true\n : FromType([...stack, ref], context, context[ref]));\n}\nfunction FromProperties(stack, context, properties) {\n const types = PropertyValues(properties);\n return FromTypes(stack, context, types);\n}\nfunction FromTypes(stack, context, types) {\n return Guard.ShiftLeft(types, (left, right) => FromType(stack, context, left)\n ? true\n : FromTypes(stack, context, right), () => false);\n}\nfunction FromType(stack, context, type) {\n return (IsRef(type) ? FromRef(stack, context, type.$ref) :\n IsArray(type) ? FromType(stack, context, type.items) :\n IsConstructor(type) ? FromTypes(stack, context, [...type.parameters, type.instanceType]) :\n IsFunction(type) ? FromTypes(stack, context, [...type.parameters, type.returnType]) :\n IsInterfaceDeferred(type) ? FromProperties(stack, context, type.parameters[1]) :\n IsIntersect(type) ? FromTypes(stack, context, type.allOf) :\n IsObject(type) ? FromProperties(stack, context, type.properties) :\n IsUnion(type) ? FromTypes(stack, context, type.anyOf) :\n IsTuple(type) ? FromTypes(stack, context, type.items) :\n IsRecord(type) ? FromType(stack, context, RecordValue(type)) :\n false);\n}\n/** Performs a cyclic check on the given type. Initial key stack can be empty, but faster if specified */\nexport function CyclicCheck(stack, context, type) {\n const result = FromType(stack, context, type);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { PropertyKeys } from '../../types/properties.mjs';\nimport { CyclicCheck } from './check.mjs';\nfunction ResolveCandidateKeys(context, keys) {\n return keys.reduce((result, left) => {\n return CyclicCheck([left], context, context[left])\n ? [...result, left]\n : result;\n }, []);\n}\n/** Returns keys for context types that need to be transformed to TCyclic. */\nexport function CyclicCandidates(context) {\n const keys = PropertyKeys(context);\n const result = ResolveCandidateKeys(context, keys);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { IsArray } from '../../types/array.mjs';\nimport { IsConstructor } from '../../types/constructor.mjs';\nimport { IsFunction } from '../../types/function.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { PropertyValues } from '../../types/properties.mjs';\nimport { IsRecord, RecordValue } from '../../types/record.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nimport { IsInterfaceDeferred } from '../../action/interface.mjs';\nfunction FromRef(context, ref, result) {\n return (result.includes(ref)\n ? result\n : ref in context\n ? FromType(context, context[ref], [...result, ref])\n : Unreachable());\n}\nfunction FromProperties(context, properties, result) {\n const types = PropertyValues(properties);\n return FromTypes(context, types, result);\n}\nfunction FromTypes(context, types, result) {\n return types.reduce((result, left) => {\n return FromType(context, left, result);\n }, result);\n}\nfunction FromType(context, type, result) {\n return (IsRef(type) ? FromRef(context, type.$ref, result) :\n IsArray(type) ? FromType(context, type.items, result) :\n IsConstructor(type) ? FromTypes(context, [...type.parameters, type.instanceType], result) :\n IsFunction(type) ? FromTypes(context, [...type.parameters, type.returnType], result) :\n IsInterfaceDeferred(type) ? FromProperties(context, type.parameters[1], result) :\n IsIntersect(type) ? FromTypes(context, type.allOf, result) :\n IsObject(type) ? FromProperties(context, type.properties, result) :\n IsUnion(type) ? FromTypes(context, type.anyOf, result) :\n IsTuple(type) ? FromTypes(context, type.items, result) :\n IsRecord(type) ? FromType(context, RecordValue(type), result) :\n result);\n}\n/** Returns dependent cyclic keys for the given type. This function is used to dead-type-eliminate (DTE) for initializing TCyclic types. */\nexport function CyclicDependencies(context, key, type) {\n const result = FromType(context, type, [key]);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Any } from '../../types/any.mjs';\nimport { Array as _Array_, IsArray, ArrayOptions } from '../../types/array.mjs';\nimport { Constructor, IsConstructor } from '../../types/constructor.mjs';\nimport { Function as _Function_, IsFunction } from '../../types/function.mjs';\nimport { Intersect, IsIntersect } from '../../types/intersect.mjs';\nimport { Object, IsObject } from '../../types/object.mjs';\nimport { IsRecord, Record, RecordKey, RecordValue } from '../../types/record.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nimport { Tuple, IsTuple } from '../../types/tuple.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { Unknown } from '../../types/unknown.mjs';\nfunction FromRef(_ref) {\n return Any();\n}\nfunction FromProperties(properties) {\n return Guard.Keys(properties).reduce((result, key) => {\n return { ...result, [key]: FromType(properties[key]) };\n }, {});\n}\nfunction FromTypes(types) {\n return types.reduce((result, left) => {\n return [...result, FromType(left)];\n }, []);\n}\nfunction FromType(type) {\n return (IsRef(type) ? FromRef(type.$ref) :\n IsArray(type) ? _Array_(FromType(type.items), ArrayOptions(type)) :\n IsConstructor(type) ? Constructor(FromTypes(type.parameters), FromType(type.instanceType)) :\n IsFunction(type) ? _Function_(FromTypes(type.parameters), FromType(type.returnType)) :\n IsIntersect(type) ? Intersect(FromTypes(type.allOf)) :\n IsObject(type) ? Object(FromProperties(type.properties)) :\n IsRecord(type) ? Record(RecordKey(type), FromType(RecordValue(type))) :\n IsUnion(type) ? Union(FromTypes(type.anyOf)) :\n IsTuple(type) ? Tuple(FromTypes(type.items)) :\n type);\n}\nfunction CyclicAnyFromParameters(defs, ref) {\n return (ref in defs\n ? FromType(defs[ref])\n : Unknown());\n}\n/** Transforms TCyclic TRef's into TAny's. This function is used prior to TExtends checks to enable cyclics to be structurally checked and terminated (with TAny) at first point of recursion, what would otherwise be a recursive TRef.*/\nexport function CyclicExtends(type) {\n return CyclicAnyFromParameters(type.$defs, type.$ref);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Cyclic } from '../../types/cyclic.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { CyclicDependencies } from '../cyclic/dependencies.mjs';\nimport { IsInterfaceDeferred } from '../../action/index.mjs';\nimport { InstantiateProperties } from '../instantiate.mjs';\nimport { InstantiateTypes } from '../instantiate.mjs';\nimport { State } from '../instantiate.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nfunction CyclicInterface(context, heritage, properties) {\n const instantiatedHeritage = InstantiateTypes(context, State([], []), heritage);\n const instantiatedProperties = InstantiateProperties({}, State([], []), properties);\n const evaluatedInterface = EvaluateIntersect([...instantiatedHeritage, Object(instantiatedProperties)]);\n return evaluatedInterface;\n}\nfunction CyclicDefinitions(context, dependencies) {\n const keys = Guard.Keys(context).filter(key => dependencies.includes(key));\n return keys.reduce((result, key) => {\n const type = context[key];\n const instantiatedType = IsInterfaceDeferred(type) ? CyclicInterface(context, type.parameters[0], type.parameters[1]) : type;\n return { ...result, [key]: instantiatedType };\n }, {});\n}\nexport function InstantiateCyclic(context, ref, type) {\n const dependencies = CyclicDependencies(context, ref, type);\n const definitions = CyclicDefinitions(context, dependencies);\n const result = Cyclic(definitions, ref);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Never } from '../../types/never.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nfunction Resolve(defs, ref) {\n return (ref in defs\n ? IsRef(defs[ref])\n // @ts-ignore 5.0.4 - does not see $ref\n ? Resolve(defs, defs[ref].$ref)\n : defs[ref]\n : Never());\n}\n/** Returns the target Type from the Defs or Never if target is non-resolvable */\nexport function CyclicTarget(defs, ref) {\n const result = Resolve(defs, ref);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { IsCyclic } from '../types/cyclic.mjs';\nimport { Unknown } from '../types/unknown.mjs';\nimport { IsUnsafe } from '../types/unsafe.mjs';\nimport { ExtendsLeft } from './extends_left.mjs';\nimport { CyclicExtends } from '../engine/cyclic/index.mjs';\nfunction Canonical(type) {\n return (IsCyclic(type) ? CyclicExtends(type) :\n IsUnsafe(type) ? Unknown() :\n type);\n}\n/** Performs a structural extends check on left and right types and yields inferred types on right if specified. */\nexport function Extends(inferred, left, right) {\n const canonicalLeft = Canonical(left);\n const canonicalRight = Canonical(right);\n return ExtendsLeft(inferred, canonicalLeft, canonicalRight);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { IsUnknown } from '../../types/unknown.mjs';\nimport { Extends, ExtendsResult } from \"../../extends/index.mjs\";\n// ------------------------------------------------------------------\n// TCompare\n// ------------------------------------------------------------------\nexport const ResultEqual = 'equal';\nexport const ResultDisjoint = 'disjoint';\nexport const ResultLeftInside = 'left-inside';\nexport const ResultRightInside = 'right-inside';\n/** Compares left and right types and determines their set relationship. */\nexport function Compare(left, right) {\n const extendsCheck = [\n IsUnknown(left) ? ExtendsResult.ExtendsFalse() : Extends({}, left, right),\n IsUnknown(left) ? ExtendsResult.ExtendsTrue({}) : Extends({}, right, left),\n ];\n return (ExtendsResult.IsExtendsTrueLike(extendsCheck[0]) && ExtendsResult.IsExtendsTrueLike(extendsCheck[1]) ? ResultEqual :\n ExtendsResult.IsExtendsTrueLike(extendsCheck[0]) && ExtendsResult.IsExtendsFalse(extendsCheck[1]) ? ResultLeftInside :\n ExtendsResult.IsExtendsFalse(extendsCheck[0]) && ExtendsResult.IsExtendsTrueLike(extendsCheck[1]) ? ResultRightInside :\n ResultDisjoint);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsAny } from '../../types/any.mjs';\nimport { IsNever } from '../../types/never.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { Compare, ResultRightInside, ResultLeftInside, ResultEqual } from './compare.mjs';\nimport { Flatten } from './flatten.mjs';\nimport { EvaluateType } from './evaluate.mjs';\nfunction BroadFilter(type, types) {\n return types.filter(left => {\n return Compare(type, left) === ResultRightInside\n ? false\n : true;\n });\n}\nfunction IsBroadestType(type, types) {\n const result = types.some(left => {\n const result = Compare(type, left);\n return Guard.IsEqual(result, ResultLeftInside) || Guard.IsEqual(result, ResultEqual);\n });\n return Guard.IsEqual(result, false);\n}\nfunction BroadenType(type, types) {\n const evaluated = EvaluateType(type);\n return (IsAny(evaluated) ? [evaluated] :\n IsBroadestType(evaluated, types)\n ? [...BroadFilter(evaluated, types), evaluated]\n : types);\n}\nfunction BroadenTypes(types) {\n return types.reduce((result, left) => {\n return (IsObject(left) ? [...result, left] : // push\n IsNever(left) ? result : // ignore\n BroadenType(left, result) // broaden\n );\n }, []);\n}\n/** Broadens a set of types and returns either the most broad type, or union or disjoint types. */\nexport function Broaden(types) {\n const broadened = BroadenTypes(types);\n const flattened = Flatten(broadened);\n return flattened;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nimport { EvaluateType } from './evaluate.mjs';\nexport function EvaluateAction(type, options) {\n const result = Memory.Update(EvaluateType(type), {}, options);\n return result;\n}\nexport function EvaluateInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return EvaluateAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { IsDeferred } from '../../types/deferred.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nfunction CollectDistributionNames(expression, result = []) {\n return (\n // Conditional\n IsDeferred(expression) && Guard.IsEqual(expression.action, 'Conditional')\n ? IsRef(expression.parameters[0])\n ? CollectDistributionNames(expression.parameters[2], CollectDistributionNames(expression.parameters[3], [...result, expression.parameters[0]['$ref']]))\n : CollectDistributionNames(expression.parameters[2], CollectDistributionNames(expression.parameters[3], result))\n // Mapped\n : IsDeferred(expression) && Guard.IsEqual(expression.action, 'Mapped')\n ? (IsDeferred(expression.parameters[1]) && Guard.IsEqual(expression.parameters[1].action, 'KeyOf') && IsRef(expression.parameters[1].parameters[0]) ? [...result, expression.parameters[1].parameters[0]['$ref']] :\n result) : result);\n}\nfunction BuildDistributionArray(parameters, names) {\n return parameters.reduce((result, left) => [...result, names.includes(left.name)], []);\n}\nfunction ZipDistributionArray(arguments_, distributionArray, result = []) {\n return Guard.ShiftLeft(arguments_, (argumentLeft, argumentRight) => Guard.ShiftLeft(distributionArray, (booleanLeft, booleanRight) => ZipDistributionArray(argumentRight, booleanRight, [...result, [booleanLeft, argumentLeft]]), () => result), () => result);\n}\nfunction Expand(type) {\n return (IsUnion(type)\n ? [...type.anyOf]\n : [type]);\n}\nfunction Append(current, type) {\n return current.reduce((result, left) => [...result, [...left, type]], []);\n}\nfunction Cross(current, variants) {\n return variants.reduce((result, left) => {\n return [...result, ...Append(current, left)];\n }, []);\n}\nfunction Distribute(zipped) {\n return zipped.reduce((result, left) => {\n return Guard.IsEqual(left[0], true)\n ? Cross(result, Expand(left[1]))\n : Cross(result, [left[1]]); // - no-expansion\n }, [[]]);\n}\nexport function DistributeArguments(parameters, arguments_, expression) {\n const distributionNames = CollectDistributionNames(expression);\n const distributionArray = BuildDistributionArray(parameters, distributionNames);\n const zippedArguments = ZipDistributionArray(arguments_, distributionArray);\n return (IsDeferred(expression) && Guard.IsEqual(expression.action, 'Conditional')\n ? Distribute(zippedArguments)\n : IsDeferred(expression) && Guard.IsEqual(expression.action, 'Mapped')\n ? Distribute(zippedArguments)\n : [arguments_]);\n}\n","// deno-fmt-ignore-file\nimport { Generic, IsGeneric } from '../../types/generic.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nimport { Never } from '../../types/never.mjs';\nfunction FromNotResolvable() {\n return ['(not-resolvable)', Never()];\n}\nfunction FromNotGeneric() {\n return ['(not-generic)', Never()];\n}\nfunction FromGeneric(name, parameters, expression) {\n return [name, Generic(parameters, expression)];\n}\nfunction FromRef(context, ref, arguments_) {\n return (ref in context\n ? FromType(context, ref, context[ref], arguments_)\n : FromNotResolvable());\n}\nfunction FromType(context, name, target, arguments_) {\n return (IsGeneric(target) ? FromGeneric(name, target.parameters, target.expression) :\n IsRef(target) ? FromRef(context, target.$ref, arguments_) :\n FromNotGeneric());\n}\n/** Resolves a named generic target from the context, or returns TNever if it cannot be resolved or is not generic. */\nexport function ResolveTarget(context, target, arguments_) {\n return FromType(context, '(anonymous)', target, arguments_);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { IsInfer } from '../../types/infer.mjs';\nimport { IsCall } from '../../types/call.mjs';\n// ------------------------------------------------------------------\n// AssertArgument\n// ------------------------------------------------------------------\nfunction AssertArgumentExtends(name, type, extends_) {\n if (IsInfer(type) || IsCall(type) || ExtendsResult.IsExtendsTrueLike(Extends({}, type, extends_)))\n return;\n const cause = { parameter: name, expect: extends_, actual: type };\n // @ts-ignore - no definition for { cause } options \n throw new Error(`Argument for parameter ${name} does not satisfy constraint`, { cause });\n}\nfunction BindArgument(context, state, name, extends_, type) {\n const instantiatedArgument = InstantiateType(context, state, type);\n AssertArgumentExtends(name, instantiatedArgument, extends_);\n return Memory.Assign(context, { [name]: instantiatedArgument });\n}\nfunction BindArguments(context, state, parameterLeft, parameterRight, arguments_) {\n const instantiatedExtends = InstantiateType(context, state, parameterLeft.extends);\n const instantiatedEquals = InstantiateType(context, state, parameterLeft.equals);\n return Guard.ShiftLeft(arguments_, (left, right) => BindParameters(BindArgument(context, state, parameterLeft['name'], instantiatedExtends, left), state, parameterRight, right), () => BindParameters(BindArgument(context, state, parameterLeft['name'], instantiatedExtends, instantiatedEquals), state, parameterRight, []));\n}\nfunction BindParameters(context, state, parameters, arguments_) {\n return Guard.ShiftLeft(parameters, (left, right) => BindArguments(context, state, left, right, arguments_), () => context);\n}\nexport function ResolveArgumentsContext(context, state, parameters, arguments_) {\n return BindParameters(context, state, parameters, arguments_);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { CallConstruct } from '../../types/call.mjs';\nimport { Ref } from '../../types/ref.mjs';\nimport { IsGeneric } from '../../types/generic.mjs';\nimport { EvaluateUnion } from '../evaluate/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nimport { InstantiateTypes } from '../instantiate.mjs';\nimport { State } from '../instantiate.mjs';\n// ------------------------------------------------------------------\n// Infrastructure\n// ------------------------------------------------------------------\nimport { DistributeArguments } from './distribute_arguments.mjs';\nimport { ResolveTarget } from './resolve_target.mjs';\nimport { ResolveArgumentsContext } from './resolve_arguments.mjs';\nfunction Peek(state) {\n const result = Guard.IsGreaterThan(state.callstack.length, 0) ? state.callstack[state.callstack.length - 1] : '';\n return result;\n}\nfunction IsTailCall(state, name) {\n const result = Guard.IsEqual(Peek(state), name);\n return result;\n}\nfunction CallDispatch(context, state, target, parameters, expression, arguments_) {\n const argumentsContext = ResolveArgumentsContext(context, state, parameters, arguments_);\n const returnType = InstantiateType(argumentsContext, State([...state['callstack'], target['$ref']], state['visited']), expression);\n return InstantiateType(argumentsContext, State([], []), returnType);\n}\nfunction CallDistributed(context, state, target, parameters, expression, distributedArguments) {\n return distributedArguments.reduce((result, arguments_) => [...result, CallDispatch(context, state, target, parameters, expression, arguments_)], []);\n}\nfunction CallImmediate(context, state, target, parameters, expression, arguments_) {\n const distributedArguments = DistributeArguments(parameters, arguments_, expression);\n const returnTypes = CallDistributed(context, state, target, parameters, expression, distributedArguments);\n const result = Guard.IsEqual(returnTypes.length, 1) ? returnTypes[0] : EvaluateUnion(returnTypes);\n return result;\n}\nexport function CallInstantiate(context, state, target, arguments_) {\n const instantiatedArguments = InstantiateTypes(context, state, arguments_);\n const resolved = ResolveTarget(context, target, arguments_);\n const name = resolved[0];\n const type = resolved[1];\n const result = (IsGeneric(type)\n ? IsTailCall(state, name)\n ? CallConstruct(Ref(name), instantiatedArguments)\n : CallImmediate(context, state, Ref(name), type.parameters, type.expression, instantiatedArguments)\n : CallConstruct(target, instantiatedArguments));\n return result;\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { CallInstantiate } from '../engine/call/instantiate.mjs';\nimport { State } from '../engine/instantiate.mjs';\nexport function CallConstruct(target, arguments_) {\n return Memory.Create({ ['~kind']: 'Call' }, { type: 'call', target, arguments: arguments_ }, {});\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Call type. */\nexport function Call(target, arguments_) {\n return CallInstantiate({}, State([], []), target, arguments_);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given type is a TCall. */\nexport function IsCall(value) {\n return IsKind(value, 'Call');\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nfunction RemoveImmutableOperation(type) {\n return Memory.Discard(type, ['~immutable']);\n}\nexport function RemoveImmutableAction(type, options) {\n const result = Memory.Update(RemoveImmutableOperation(type), {}, options);\n return result;\n}\nexport function RemoveImmutableInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return RemoveImmutableAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nexport function ApplyMapping(mapping, value) {\n return mapping(value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Literal } from '../../types/literal.mjs';\nimport { ApplyMapping } from './mapping.mjs';\nexport function FromLiteral(mapping, value) {\n return (Guard.IsString(value)\n ? Literal(ApplyMapping(mapping, value))\n : Literal(value));\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateTemplateLiteral } from '../evaluate/index.mjs';\nexport function FromTemplateLiteral(mapping, pattern) {\n const evaluated = EvaluateTemplateLiteral(pattern);\n const result = FromType(mapping, evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Union } from '../../types/union.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(mapping, types) {\n const result = types.map(type => FromType(mapping, type));\n return Union(result);\n}\n","// deno-fmt-ignore-file\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsTemplateLiteral } from '../../types/template_literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromLiteral } from './from_literal.mjs';\nimport { FromTemplateLiteral } from './from_template_literal.mjs';\nimport { FromUnion } from './from_union.mjs';\nexport function FromType(mapping, type) {\n return (IsLiteral(type) ? FromLiteral(mapping, type.const) :\n IsTemplateLiteral(type) ? FromTemplateLiteral(mapping, type.pattern) :\n IsUnion(type) ? FromUnion(mapping, type.anyOf) :\n type);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { CapitalizeAction } from '../engine/intrinsics/instantiate.mjs';\n/** Creates a deferred Capitalize action. */\nexport function CapitalizeDeferred(type, options = {}) {\n return Deferred('Capitalize', [type], options);\n}\n/** Applies a Capitalize action to the given type. */\nexport function Capitalize(type, options = {}) {\n return CapitalizeAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { LowercaseAction } from '../engine/intrinsics/instantiate.mjs';\n/** Creates a deferred Lowercase action. */\nexport function LowercaseDeferred(type, options = {}) {\n return Deferred('Lowercase', [type], options);\n}\n/** Applies a Lowercase action to the given type. */\nexport function Lowercase(type, options = {}) {\n return LowercaseAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { UncapitalizeAction } from '../engine/intrinsics/instantiate.mjs';\n/** Creates a deferred Uncapitalize action. */\nexport function UncapitalizeDeferred(type, options = {}) {\n return Deferred('Uncapitalize', [type], options);\n}\n/** Applies a Uncapitalize action to the given type. */\nexport function Uncapitalize(type, options = {}) {\n return UncapitalizeAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { UppercaseAction } from '../engine/intrinsics/instantiate.mjs';\n/** Creates a deferred Uppercase action. */\nexport function UppercaseDeferred(type, options = {}) {\n return Deferred('Uppercase', [type], options);\n}\n/** Applies a Uppercase action to the given type. */\nexport function Uppercase(type, options = {}) {\n return UppercaseAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { CapitalizeDeferred } from '../../action/capitalize.mjs';\nimport { LowercaseDeferred } from '../../action/lowercase.mjs';\nimport { UncapitalizeDeferred } from '../../action/uncapitalize.mjs';\nimport { UppercaseDeferred } from '../../action/uppercase.mjs';\nconst CapitalizeMapping = (input) => input[0].toUpperCase() + input.slice(1);\nconst LowercaseMapping = (input) => input.toLowerCase();\nconst UncapitalizeMapping = (input) => input[0].toLowerCase() + input.slice(1);\nconst UppercaseMapping = (input) => input.toUpperCase();\nexport function CapitalizeAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(FromType(CapitalizeMapping, type), {}, options)\n : CapitalizeDeferred(type, options);\n return result;\n}\nexport function LowercaseAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(FromType(LowercaseMapping, type), {}, options)\n : LowercaseDeferred(type, options);\n return result;\n}\nexport function UncapitalizeAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(FromType(UncapitalizeMapping, type), {}, options)\n : UncapitalizeDeferred(type, options);\n return result;\n}\nexport function UppercaseAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(FromType(UppercaseMapping, type), {}, options)\n : UppercaseDeferred(type, options);\n return result;\n}\nexport function CapitalizeInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return CapitalizeAction(instantiatedType, options);\n}\nexport function LowercaseInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return LowercaseAction(instantiatedType, options);\n}\nexport function UncapitalizeInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return UncapitalizeAction(instantiatedType, options);\n}\nexport function UppercaseInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return UppercaseAction(instantiatedType, options);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { ConditionalAction } from '../engine/conditional/instantiate.mjs';\nimport { State } from '../engine/instantiate.mjs';\n/** Creates a deferred Conditional action. */\nexport function ConditionalDeferred(left, right, true_, false_, options = {}) {\n return Deferred('Conditional', [left, right, true_, false_], options);\n}\n/** Applies a Conditional action to the given types. */\nexport function Conditional(left, right, true_, false_, options = {}) {\n return ConditionalAction({}, State([], []), left, right, true_, false_, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Union } from '../../types/union.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { ConditionalDeferred } from '../../action/conditional.mjs';\nfunction ConditionalOperation(context, state, left, right, true_, false_) {\n const extendsResult = Extends(context, left, right);\n return (ExtendsResult.IsExtendsUnion(extendsResult) ? Union([InstantiateType(extendsResult.inferred, state, true_), InstantiateType(context, state, false_)]) :\n ExtendsResult.IsExtendsTrue(extendsResult) ? InstantiateType(extendsResult.inferred, state, true_) :\n InstantiateType(context, state, false_));\n}\nexport function ConditionalAction(context, state, left, right, true_, false_, options) {\n const result = CanInstantiate([left, right])\n ? Memory.Update(ConditionalOperation(context, state, left, right, true_, false_), {}, options)\n : ConditionalDeferred(left, right, true_, false_, options);\n return result;\n}\nexport function ConditionalInstantiate(context, state, left, right, true_, false_, options) {\n const instantiatedLeft = InstantiateType(context, state, left);\n const instantiatedRight = InstantiateType(context, state, right);\n return ConditionalAction(context, state, instantiatedLeft, instantiatedRight, true_, false_, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { ConstructorParametersAction } from '../engine/constructor_parameters/instantiate.mjs';\n/** Creates a deferred ConstructorParameters action. */\nexport function ConstructorParametersDeferred(type, options = {}) {\n return Deferred('ConstructorParameters', [type], options);\n}\n/** Applies a ConstructorParameters action to a type. */\nexport function ConstructorParameters(type, options = {}) {\n return ConstructorParametersAction(type, options);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsConstructor } from '../../types/constructor.mjs';\nimport { Tuple } from '../../types/tuple.mjs';\nimport { ConstructorParametersDeferred } from '../../action/constructor_parameters.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { InstantiateElements } from '../instantiate.mjs';\nimport { State } from '../instantiate.mjs';\nfunction ConstructorParametersOperation(type) {\n const parameters = IsConstructor(type) ? type['parameters'] : [];\n const instantiatedParameters = InstantiateElements({}, State([], []), parameters);\n const result = Tuple(instantiatedParameters);\n return result;\n}\nexport function ConstructorParametersAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(ConstructorParametersOperation(type), {}, options)\n : ConstructorParametersDeferred(type, options);\n return result;\n}\nexport function ConstructorParametersInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return ConstructorParametersAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { ExcludeAction } from '../engine/exclude/instantiate.mjs';\n/** Creates a deferred Exclude action. */\nexport function ExcludeDeferred(left, right, options = {}) {\n return Deferred('Exclude', [left, right], options);\n}\n/** Applies a Exclude action using the given types */\nexport function Exclude(left, right, options = {}) {\n return ExcludeAction(left, right, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { ExcludeDeferred } from '../../action/exclude.mjs';\nimport { ExcludeOperation } from './operation.mjs';\nexport function ExcludeAction(left, right, options) {\n const result = CanInstantiate([left, right])\n ? Memory.Update(ExcludeOperation(left, right), {}, options)\n : ExcludeDeferred(left, right, options);\n return result;\n}\nexport function ExcludeInstantiate(context, state, left, right, options) {\n const instantiatedLeft = InstantiateType(context, state, left);\n const instantiatedRight = InstantiateType(context, state, right);\n return ExcludeAction(instantiatedLeft, instantiatedRight, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { ExtractAction } from '../engine/extract/instantiate.mjs';\n/** Creates a deferred Extract action. */\nexport function ExtractDeferred(left, right, options = {}) {\n return Deferred('Extract', [left, right], options);\n}\n/** Applies an Extract action using the given types. */\nexport function Extract(left, right, options = {}) {\n return ExtractAction(left, right, options);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { IsUnion } from '../../types/union.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { EvaluateType } from '../evaluate/evaluate.mjs';\nimport { EvaluateUnion } from '../evaluate/evaluate.mjs';\nfunction ExtractType(left, right) {\n const check = Extends({}, left, right);\n const result = ExtendsResult.IsExtendsTrueLike(check) ? [left] : [];\n return result;\n}\nfunction ExtractUnion(types, right) {\n return types.reduce((result, head) => {\n return [...result, ...ExtractType(head, right)];\n }, []);\n}\nexport function ExtractOperation(left, right) {\n const evaluated = EvaluateType(left);\n const canonical = IsUnion(evaluated) ? evaluated.anyOf : [evaluated];\n const remaining = ExtractUnion(canonical, right);\n const result = EvaluateUnion(remaining);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { ExtractDeferred } from '../../action/extract.mjs';\nimport { ExtractOperation } from './operation.mjs';\nexport function ExtractAction(left, right, options) {\n const result = CanInstantiate([left, right])\n ? Memory.Update(ExtractOperation(left, right), {}, options)\n : ExtractDeferred(left, right, options);\n return result;\n}\nexport function ExtractInstantiate(context, state, left, right, options) {\n const instantiatedLeft = InstantiateType(context, state, left);\n const instantiatedRight = InstantiateType(context, state, right);\n return ExtractAction(instantiatedLeft, instantiatedRight, options);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Deferred } from '../types/deferred.mjs';\nimport { KeysToIndexer } from '../engine/helpers/keys_to_indexer.mjs';\nimport { IndexAction } from '../engine/indexed/instantiate.mjs';\n/** Creates a deferred Index action. */\nexport function IndexDeferred(type, indexer, options = {}) {\n return Deferred('Index', [type, indexer], options);\n}\n/** Applies a Index action using the given types. */\nexport function Index(type, indexer_or_keys, options = {}) {\n const indexer = Guard.IsArray(indexer_or_keys) ? KeysToIndexer(indexer_or_keys) : indexer_or_keys;\n return IndexAction(type, indexer, options);\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { CyclicTarget } from '../cyclic/target.mjs';\nexport function FromCyclic(defs, ref) {\n const target = CyclicTarget(defs, ref);\n const result = FromType(target);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateDependent } from '../evaluate/evaluate.mjs';\nexport function FromDependent(if_, then_, else_) {\n const evaluated = EvaluateDependent(if_, then_, else_);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nfunction CollapseIntersectProperties(left, right) {\n const leftKeys = Guard.Keys(left).filter((key) => !Guard.HasPropertyKey(right, key));\n const rightKeys = Guard.Keys(right).filter((key) => !Guard.HasPropertyKey(left, key));\n const sharedKeys = Guard.Keys(left).filter((key) => Guard.HasPropertyKey(right, key));\n const leftProperties = leftKeys.reduce((result, key) => ({ ...result, [key]: left[key] }), {});\n const rightProperties = rightKeys.reduce((result, key) => ({ ...result, [key]: right[key] }), {});\n const sharedProperties = sharedKeys.reduce((result, key) => ({ ...result, [key]: EvaluateIntersect([left[key], right[key]]) }), {});\n const unique = Memory.Assign(leftProperties, rightProperties);\n const shared = Memory.Assign(unique, sharedProperties);\n return shared;\n}\nexport function FromIntersect(types) {\n return types.reduce((result, left) => {\n return CollapseIntersectProperties(result, FromType(left));\n }, {});\n}\n","// deno-fmt-ignore-file\nexport function FromObject(properties) {\n return properties;\n}\n","// deno-fmt-ignore-file\nimport { Tuple } from '../../types/tuple.mjs';\nimport { TupleToObject } from '../tuple/to_object.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromTuple(types) {\n const object = TupleToObject(Tuple(types));\n const result = FromType(object);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { EvaluateUnion } from '../evaluate/evaluate.mjs';\nimport { FromType } from './from_type.mjs';\nfunction CollapseUnionProperties(left, right) {\n const sharedKeys = Guard.Keys(left).filter((key) => key in right);\n const result = sharedKeys.reduce((result, key) => {\n return { ...result, [key]: EvaluateUnion([left[key], right[key]]) };\n }, {});\n return result;\n}\nfunction ReduceVariants(types, result) {\n return Guard.ShiftLeft(types, (left, right) => ReduceVariants(right, CollapseUnionProperties(result, FromType(left))), () => result);\n}\nexport function FromUnion(types) {\n return Guard.ShiftLeft(types, (left, right) => ReduceVariants(right, FromType(left)), () => Unreachable());\n}\n// deno-coverage-ignore-stop\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsDependent } from '../../types/dependent.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromDependent } from './from_dependent.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUnion } from './from_union.mjs';\nexport function FromType(type) {\n return (IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :\n IsDependent(type) ? FromDependent(type.if, type.then, type.else) :\n IsIntersect(type) ? FromIntersect(type.allOf) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsTuple(type) ? FromTuple(type.items) :\n IsObject(type) ? FromObject(type.properties) :\n {});\n}\n","// deno-fmt-ignore-file\nimport { Object } from '../../types/object.mjs';\nimport { FromType } from './from_type.mjs';\n/**\n * Collapses a type into a TObject schema. This is a lossy fast path used to\n * normalize arbitrary TSchema types into a TObject structure. This function is\n * primarily used in indexing operations where a normalized object structure\n * is required. If the type cannot be collapsed, an empty object schema is returned.\n */\nexport function CollapseToObject(type) {\n const properties = FromType(type);\n const result = Object(properties);\n return result;\n}\n","// deno-fmt-ignore-file\nconst integerKeyPattern = new RegExp('^(?:0|[1-9][0-9]*)$');\nexport function ConvertToIntegerKey(value) {\n const normal = `${value}`;\n return (integerKeyPattern.test(normal)\n ? parseInt(normal)\n : value);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Intersect, IsIntersect } from '../../types/intersect.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { Number } from '../../types/number.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { ConvertToIntegerKey } from '../helpers/keys.mjs';\nfunction NormalizeLiteral(value) {\n return Literal(ConvertToIntegerKey(value));\n}\nfunction NormalizeIndexerTypes(types) {\n return types.map(type => NormalizeIndexer(type));\n}\nexport function NormalizeIndexer(type) {\n return (IsIntersect(type) ? Intersect(NormalizeIndexerTypes(type.allOf)) :\n IsUnion(type) ? Union(NormalizeIndexerTypes(type.anyOf)) :\n IsLiteral(type) ? NormalizeLiteral(type.const) :\n type);\n}\nexport function FromArray(type, indexer) {\n const normalizedIndexer = NormalizeIndexer(indexer);\n const check = Extends({}, normalizedIndexer, Number());\n const result = (\n // indexer\n ExtendsResult.IsExtendsTrueLike(check)\n ? type\n // length (intrinsic)\n : IsLiteral(indexer) && Guard.IsEqual(indexer.const, 'length')\n ? Number()\n : Never());\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { CyclicTarget } from '../cyclic/target.mjs';\nexport function FromCyclic(defs, ref) {\n const target = CyclicTarget(defs, ref);\n const result = FromType(target);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateDependent } from '../evaluate/evaluate.mjs';\nexport function FromDependent(if_, then_, else_) {\n const evaluated = EvaluateDependent(if_, then_, else_);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateEnum } from '../evaluate/evaluate.mjs';\nexport function FromEnum(values) {\n const evaluated = EvaluateEnum(values);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromIntersect(types) {\n const evaluated = EvaluateIntersect(types);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nexport function FromLiteral(value) {\n const result = [`${value}`];\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateTemplateLiteral } from '../evaluate/evaluate.mjs';\nexport function FromTemplateLiteral(pattern) {\n const evaluated = EvaluateTemplateLiteral(pattern);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(types) {\n return types.reduce((result, left) => {\n return [...result, ...FromType(left)];\n }, []);\n}\n","// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsDependent } from '../../types/dependent.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsTemplateLiteral } from '../../types/template_literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromDependent } from './from_dependent.mjs';\nimport { FromEnum } from './from_enum.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromLiteral } from './from_literal.mjs';\nimport { FromTemplateLiteral } from './from_template_literal.mjs';\nimport { FromUnion } from './from_union.mjs';\nexport function FromType(type) {\n return (IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :\n IsDependent(type) ? FromDependent(type.if, type.then, type.else) :\n IsEnum(type) ? FromEnum(type.enum) :\n IsIntersect(type) ? FromIntersect(type.allOf) :\n IsLiteral(type) ? FromLiteral(type.const) :\n IsTemplateLiteral(type) ? FromTemplateLiteral(type.pattern) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n []);\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\n/**\n * Transforms a type meant as an Indexer into string[] array which is used by Indexable types\n * like Index, Pick and Omit to select from property keys. This function should only be used\n * for Object key selection, and not for Array / Tuple key selection as Array-Like structures\n * require TNumber indexing support.\n */\nexport function ToIndexableKeys(type) {\n const result = FromType(type);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { IsArray, _Array_ } from '../../types/array.mjs';\nimport { IsConstructor, Constructor } from '../../types/constructor.mjs';\nimport { IsFunction, _Function_ } from '../../types/function.mjs';\nimport { IsIntersect, Intersect } from '../../types/intersect.mjs';\nimport { _Object_ } from '../../types/object.mjs';\nimport { IsTuple, Tuple } from '../../types/tuple.mjs';\nimport { IsThis } from '../../types/this.mjs';\nimport { IsUnion, Union } from '../../types/union.mjs';\nfunction FromTypes(properties, types) {\n return types.map(type => FromType(properties, type));\n}\nexport function FromType(properties, type) {\n return (IsArray(type) ? _Array_(FromType(properties, type.items)) :\n IsConstructor(type) ? Constructor(FromTypes(properties, type.parameters), FromType(properties, type.instanceType)) :\n IsFunction(type) ? _Function_(FromTypes(properties, type.parameters), FromType(properties, type.returnType)) :\n IsTuple(type) ? Tuple(FromTypes(properties, type.items)) :\n IsUnion(type) ? Union(FromTypes(properties, type.anyOf)) :\n IsIntersect(type) ? Intersect(FromTypes(properties, type.allOf)) :\n IsThis(type) ? _Object_(properties) :\n type);\n}\nexport function ExpandThis(properties, type) {\n const result = FromType(properties, type);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { IsNumber } from '../../types/number.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { PropertyKeys } from '../../types/properties.mjs';\nimport { EvaluateUnion } from '../evaluate/evaluate.mjs';\nimport { ToIndexableKeys } from '../indexable/to_indexable_keys.mjs';\nimport { IntegerKey } from '../../types/record.mjs';\nimport { ExpandThis } from '../this/expand_this.mjs';\nfunction IndexProperty(properties, key) {\n const selectedType = key in properties ? properties[key] : Never();\n const result = ExpandThis(properties, selectedType);\n return result;\n}\nfunction IndexProperties(properties, keys) {\n return keys.reduce((result, left) => {\n return [...result, IndexProperty(properties, left)];\n }, []);\n}\nfunction FromIndexer(properties, indexer) {\n const keys = ToIndexableKeys(indexer);\n const variants = IndexProperties(properties, keys);\n const result = EvaluateUnion(variants);\n return result;\n}\nconst NumericKeyPattern = new RegExp(IntegerKey);\nfunction NumericKeys(keys) {\n const result = keys.filter(key => NumericKeyPattern.test(key));\n return result;\n}\nfunction FromIndexerNumber(properties) {\n const keys = PropertyKeys(properties);\n const numericKeys = NumericKeys(keys);\n const variants = IndexProperties(properties, numericKeys);\n const result = EvaluateUnion(variants);\n return result;\n}\nexport function FromObject(properties, indexer) {\n const result = IsNumber(indexer) ? FromIndexerNumber(properties) : FromIndexer(properties, indexer);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { Intersect, IsIntersect } from '../../types/intersect.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { ConvertToIntegerKey } from '../helpers/keys.mjs';\nfunction ConvertLiteral(value) {\n return Literal(ConvertToIntegerKey(value));\n}\nfunction ArrayIndexerTypes(types) {\n return types.map(type => FormatArrayIndexer(type));\n}\n/** Formats embedded integer-like strings on an Indexer to be number values inline with TS indexing | coercion behaviors. */\nexport function FormatArrayIndexer(type) {\n return (IsIntersect(type) ? Intersect(ArrayIndexerTypes(type.allOf)) :\n IsUnion(type) ? Union(ArrayIndexerTypes(type.anyOf)) :\n IsLiteral(type) ? ConvertLiteral(type.const) :\n type);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { IsNumber } from '../../types/number.mjs';\nimport { IsInteger } from '../../types/integer.mjs';\nimport { EvaluateUnionFast } from '../evaluate/evaluate.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { FormatArrayIndexer } from './array_indexer.mjs';\nfunction IndexElementsWithIndexer(types, indexer) {\n return types.reduceRight((result, right, index) => {\n const check = Extends({}, Literal(index), indexer);\n return ExtendsResult.IsExtendsTrueLike(check)\n ? [right, ...result]\n : result;\n }, []);\n}\nfunction FromTupleWithIndexer(types, indexer) {\n const formattedArrayIndexer = FormatArrayIndexer(indexer);\n const elements = IndexElementsWithIndexer(types, formattedArrayIndexer);\n return EvaluateUnionFast(elements);\n}\nfunction FromTupleWithoutIndexer(types) {\n return EvaluateUnionFast(types);\n}\nexport function FromTuple(types, indexer) {\n return (\n // length (intrinsic)\n IsLiteral(indexer) && Guard.IsEqual(indexer.const, 'length')\n ? Literal(types.length)\n // indexer\n : IsNumber(indexer) || IsInteger(indexer)\n ? FromTupleWithoutIndexer(types)\n : FromTupleWithIndexer(types, indexer));\n}\n","// deno-fmt-ignore-file\nimport { IsArray } from '../../types/array.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nexport function FromType(type, indexer) {\n return (IsArray(type) ? FromArray(type.items, indexer) :\n IsObject(type) ? FromObject(type.properties, indexer) :\n IsTuple(type) ? FromTuple(type.items, indexer) :\n Never());\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsDependent } from '../../types/dependent.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { IndexDeferred } from '../../action/indexed.mjs';\nimport { CollapseToObject } from '../object/index.mjs';\nimport { FromType } from './from_type.mjs';\nfunction NormalizeType(type) {\n const result = (IsCyclic(type) ||\n IsDependent(type) ||\n IsIntersect(type) ||\n IsUnion(type)) ? CollapseToObject(type) : type;\n return result;\n}\nexport function IndexAction(type, indexer, options) {\n const result = CanInstantiate([type, indexer])\n ? Memory.Update(FromType(NormalizeType(type), indexer), {}, options)\n : IndexDeferred(type, indexer, options);\n return result;\n}\nexport function IndexInstantiate(context, state, type, indexer, options) {\n const instantiatedType = InstantiateType(context, state, type);\n const instantiatedIndexer = InstantiateType(context, state, indexer);\n return IndexAction(instantiatedType, instantiatedIndexer, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { InstanceTypeAction } from '../engine/instance_type/instantiate.mjs';\n/** Creates a deferred InstanceType action. */\nexport function InstanceTypeDeferred(type, options = {}) {\n return Deferred('InstanceType', [type], options);\n}\n/** Applies a InstanceType action to the given type. */\nexport function InstanceType(type, options = {}) {\n return InstanceTypeAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsConstructor } from '../../types/constructor.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { InstanceTypeDeferred } from '../../action/instance_type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction InstanceTypeOperation(type) {\n return (IsConstructor(type)\n ? type['instanceType']\n : Never());\n}\nexport function InstanceTypeAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(InstanceTypeOperation(type), {}, options)\n : InstanceTypeDeferred(type, options);\n return result;\n}\nexport function InstanceTypeInstantiate(context, state, type, options = {}) {\n const instantiatedType = InstantiateType(context, state, type);\n return InstanceTypeAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { KeyOfAction } from '../engine/keyof/instantiate.mjs';\n/** Creates a deferred KeyOf action. */\nexport function KeyOfDeferred(type, options = {}) {\n return Deferred('KeyOf', [type], options);\n}\n/** Applies a KeyOf action to the given type. */\nexport function KeyOf(type, options = {}) {\n return KeyOfAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Number } from '../../types/number.mjs';\nimport { String } from '../../types/string.mjs';\nimport { Symbol } from '../../types/symbol.mjs';\nimport { Union } from '../../types/union.mjs';\nexport function FromAny() {\n return Union([Number(), String(), Symbol()]);\n}\n","// deno-fmt-ignore-file\nimport { Number } from '../../types/number.mjs';\nexport function FromArray(_type) {\n return Number();\n}\n","// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { Literal, IsLiteralValue } from '../../types/literal.mjs';\nimport { ConvertToIntegerKey } from '../helpers/keys.mjs';\nimport { EvaluateUnionFast } from '../evaluate/evaluate.mjs';\nfunction FromPropertyKeys(keys) {\n const result = keys.reduce((result, left) => {\n return IsLiteralValue(left)\n ? [...result, Literal(ConvertToIntegerKey(left))]\n : Unreachable();\n }, []);\n return result;\n}\nexport function FromObject(properties) {\n const propertyKeys = Guard.Keys(properties);\n const variants = FromPropertyKeys(propertyKeys);\n const result = EvaluateUnionFast(variants);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { RecordKey } from '../../types/record.mjs';\nexport function FromRecord(type) {\n return RecordKey(type);\n}\n","// deno-fmt-ignore-file\nimport { Literal } from '../../types/literal.mjs';\nimport { EvaluateUnionFast } from '../evaluate/evaluate.mjs';\nexport function FromTuple(types) {\n const result = types.map((_, index) => Literal(index));\n return EvaluateUnionFast(result);\n}\n","// deno-fmt-ignore-file\nimport { IsAny } from '../../types/any.mjs';\nimport { IsArray } from '../../types/array.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsRecord } from '../../types/record.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\n// ------------------------------------------------------------------\n// Computed\n// ------------------------------------------------------------------\nimport { FromAny } from './from_any.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromRecord } from './from_record.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nexport function FromType(type) {\n return (IsAny(type) ? FromAny() :\n IsArray(type) ? FromArray(type.items) :\n IsObject(type) ? FromObject(type.properties) :\n IsRecord(type) ? FromRecord(type) :\n IsTuple(type) ? FromTuple(type.items) :\n Never());\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsDependent } from '../../types/dependent.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { KeyOfDeferred } from '../../action/keyof.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { CollapseToObject } from '../object/index.mjs';\n// ------------------------------------------------------------------\n// Computed\n// ------------------------------------------------------------------\nimport { FromType } from './from_type.mjs';\nfunction NormalizeType(type) {\n const result = (IsCyclic(type) ||\n IsDependent(type) ||\n IsIntersect(type) ||\n IsUnion(type)) ? CollapseToObject(type) : type;\n return result;\n}\nexport function KeyOfAction(type, options) {\n return (CanInstantiate([type])\n ? Memory.Update(FromType(NormalizeType(type)), {}, options)\n : KeyOfDeferred(type, options));\n}\nexport function KeyOfInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return KeyOfAction(instantiatedType, options);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { MappedAction } from '../engine/mapped/instantiate.mjs';\nimport { State } from '../engine/instantiate.mjs';\n/** Creates a deferred Mapped action. */\nexport function MappedDeferred(identifier, type, as, property, options = {}) {\n return Deferred('Mapped', [identifier, type, as, property], options);\n}\n/** Applies a Mapped action using the given types. */\nexport function Mapped(identifier, type, as, property, options = {}) {\n return MappedAction({}, State([], []), identifier, type, as, property, options);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsTemplateLiteral } from '../../types/template_literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { EvaluateEnum } from '../evaluate/evaluate.mjs';\nimport { EvaluateTemplateLiteral } from '../evaluate/evaluate.mjs';\nfunction FromTemplateLiteral(pattern) {\n const evaluated = EvaluateTemplateLiteral(pattern);\n const result = FromType(evaluated);\n return result;\n}\nfunction FromUnion(types) {\n return types.reduce((result, left) => {\n return [...result, ...FromType(left)];\n }, []);\n}\nfunction FromEnum(values) {\n const evaluated = EvaluateEnum(values);\n const result = FromType(evaluated);\n return result;\n}\nfunction FromLiteral(value) {\n const result = Guard.IsNumber(value) ? [Literal(`${value}`)] : [Literal(value)];\n return result;\n}\nfunction FromType(type) {\n const result = (IsEnum(type) ? FromEnum(type.enum) :\n IsLiteral(type) ? FromLiteral(type.const) :\n IsTemplateLiteral(type) ? FromTemplateLiteral(type.pattern) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n [type]);\n return result;\n}\nexport function MappedVariants(type) {\n const result = FromType(type);\n return result;\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsLiteralNumber, IsLiteralString } from '../../types/literal.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { IsTemplateLiteral } from '../../types/template_literal.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nimport { EvaluateTemplateLiteral } from '../evaluate/evaluate.mjs';\nimport { MappedVariants } from './mapped_variants.mjs';\nfunction CanonicalAs(instantiatedAs) {\n const result = IsTemplateLiteral(instantiatedAs)\n ? EvaluateTemplateLiteral(instantiatedAs.pattern)\n : instantiatedAs;\n return result;\n}\nfunction MappedVariant(context, state, identifier, variant, as, property) {\n const variantContext = Memory.Assign(context, { [identifier['name']]: variant });\n const instantiatedAs = InstantiateType(variantContext, state, as);\n const canonicalAs = CanonicalAs(instantiatedAs);\n const instantiatedProperty = InstantiateType(variantContext, state, property);\n return (IsLiteralNumber(canonicalAs) || IsLiteralString(canonicalAs)\n ? { [canonicalAs.const]: instantiatedProperty }\n : {});\n}\nfunction MappedProperties(context, state, identifier, variants, as, property) {\n return variants.reduce((result, left) => {\n return [...result, MappedVariant(context, state, identifier, left, as, property)];\n }, []);\n}\nfunction MappedObjects(properties) {\n return properties.reduce((result, left) => {\n return [...result, Object(left)];\n }, []);\n}\nexport function MappedOperation(context, state, identifier, type, as, property) {\n const variants = MappedVariants(type);\n const mappedProperties = MappedProperties(context, state, identifier, variants, as, property);\n const mappedObjects = MappedObjects(mappedProperties);\n const result = EvaluateIntersect(mappedObjects);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { MappedDeferred } from '../../action/mapped.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { MappedOperation } from './mapped_operation.mjs';\nexport function MappedAction(context, state, identifier, type, as, property, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(MappedOperation(context, state, identifier, type, as, property), {}, options)\n : MappedDeferred(identifier, type, as, property, options);\n return result;\n}\nexport function MappedInstantiate(context, state, identifier, type, as, property, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return MappedAction(context, state, identifier, instantiatedType, as, property, options);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { State } from '../instantiate.mjs';\n// ------------------------------------------------------------------\n// Module: Instantiation Infrastructure\n// ------------------------------------------------------------------\nimport { CyclicCandidates } from '../cyclic/candidates.mjs';\nimport { InstantiateCyclic } from '../cyclic/instantiate.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nfunction InstantiateCyclics(context, declarations, cyclicKeys) {\n const declarationContext = Memory.Assign(context, declarations);\n const declarationKeys = Guard.Keys(declarations).filter(key => cyclicKeys.includes(key));\n return declarationKeys.reduce((result, key) => {\n return { ...result, [key]: InstantiateCyclic(declarationContext, key, declarations[key]) };\n }, {});\n}\nfunction InstantiateNonCyclics(context, declarations, cyclicKeys) {\n const declarationContext = Memory.Assign(context, declarations);\n const declarationKeys = Guard.Keys(declarations).filter(key => !cyclicKeys.includes(key));\n return declarationKeys.reduce((result, key) => {\n return { ...result, [key]: InstantiateType(declarationContext, State([], []), declarations[key]) };\n }, {});\n}\nfunction InstantiateModule(context, declarations, options) {\n const cyclicCandidates = CyclicCandidates(declarations);\n const instantiatedCyclics = InstantiateCyclics(context, declarations, cyclicCandidates);\n const instantiatedNonCyclics = InstantiateNonCyclics(context, declarations, cyclicCandidates);\n const instantiatedModule = { ...instantiatedCyclics, ...instantiatedNonCyclics };\n return Memory.Update(instantiatedModule, {}, options);\n}\nexport function ModuleInstantiate(context, _state, declarations, options) {\n const instantiatedModule = InstantiateModule(context, declarations, options);\n return instantiatedModule;\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { NonNullableAction } from '../engine/non_nullable/instantiate.mjs';\n/** Creates a deferred NonNullable action. */\nexport function NonNullableDeferred(type, options = {}) {\n return Deferred('NonNullable', [type], options);\n}\n/** Applies a NonNullable action to the given type. */\nexport function NonNullable(type, options = {}) {\n return NonNullableAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Null } from '../../types/null.mjs';\nimport { Undefined } from '../../types/undefined.mjs';\nimport { Union } from '../../types/union.mjs';\nimport { ExcludeAction } from '../exclude/instantiate.mjs';\nimport { NonNullableDeferred } from '../../action/non_nullable.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction NonNullableOperation(type) {\n const excluded = Union([Null(), Undefined()]);\n return ExcludeAction(type, excluded, {});\n}\nexport function NonNullableAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(NonNullableOperation(type), {}, options)\n : NonNullableDeferred(type, options);\n return result;\n}\nexport function NonNullableInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return NonNullableAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Deferred } from '../types/deferred.mjs';\nimport { KeysToIndexer } from '../engine/helpers/keys_to_indexer.mjs';\nimport { OmitAction } from '../engine/omit/instantiate.mjs';\n/** Creates a deferred Omit action. */\nexport function OmitDeferred(type, indexer, options = {}) {\n return Deferred('Omit', [type, indexer], options);\n}\n/** Applies a Omit action using the given types. */\nexport function Omit(type, indexer_or_keys, options = {}) {\n const indexer = Guard.IsArray(indexer_or_keys) ? KeysToIndexer(indexer_or_keys) : indexer_or_keys;\n return OmitAction(type, indexer, options);\n}\n","// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { CollapseToObject } from '../object/index.mjs';\n// deno-coverage-ignore-start - symmetric unreachable\n/** Transforms a type into a TProperties used for indexing operations */\nexport function ToIndexable(type) {\n const collapsed = CollapseToObject(type);\n const result = IsObject(collapsed)\n ? collapsed.properties\n : Unreachable();\n return result;\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { ToIndexableKeys } from '../indexable/to_indexable_keys.mjs';\nimport { ToIndexable } from '../indexable/to_indexable.mjs';\nfunction FromKeys(properties, keys) {\n const result = Guard.Keys(properties).reduce((result, key) => {\n return keys.includes(key) ? result : { ...result, [key]: properties[key] };\n }, {});\n return result;\n}\nexport function FromType(type, indexer) {\n const indexable = ToIndexable(type);\n const indexableKeys = ToIndexableKeys(indexer);\n const omitted = FromKeys(indexable, indexableKeys);\n const result = Object(omitted);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { OmitDeferred } from '../../action/omit.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { FromType } from './from_type.mjs';\nexport function OmitAction(type, indexer, options) {\n const result = CanInstantiate([type, indexer])\n ? Memory.Update(FromType(type, indexer), {}, options)\n : OmitDeferred(type, indexer, options);\n return result;\n}\nexport function OmitInstantiate(context, state, type, indexer, options) {\n const instantiatedType = InstantiateType(context, state, type);\n const instantiatedIndexer = InstantiateType(context, state, indexer);\n return OmitAction(instantiatedType, instantiatedIndexer, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { ParametersAction } from '../engine/parameters/instantiate.mjs';\n/** Creates a deferred Parameters action. */\nexport function ParametersDeferred(type, options = {}) {\n return Deferred('Parameters', [type], options);\n}\n/** Applies a Parameters action to the given type. */\nexport function Parameters(type, options = {}) {\n return ParametersAction(type, options);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsFunction } from '../../types/function.mjs';\nimport { Tuple } from '../../types/tuple.mjs';\nimport { ParametersDeferred } from '../../action/parameters.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { InstantiateElements } from '../instantiate.mjs';\nimport { State } from '../instantiate.mjs';\nfunction ParametersOperation(type) {\n const parameters = IsFunction(type) ? type['parameters'] : [];\n const instantiatedParameters = InstantiateElements({}, State([], []), parameters);\n const result = Tuple(instantiatedParameters);\n return result;\n}\nexport function ParametersAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(ParametersOperation(type), {}, options)\n : ParametersDeferred(type, options);\n return result;\n}\nexport function ParametersInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return ParametersAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { PartialAction } from '../engine/partial/instantiate.mjs';\n/** Creates a deferred Partial action. */\nexport function PartialDeferred(type, options = {}) {\n return Deferred('Partial', [type], options);\n}\n/** Applies a Partial action to the given type. */\nexport function Partial(type, options = {}) {\n return PartialAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Cyclic } from '../../types/cyclic.mjs';\nimport { FromType } from './from_type.mjs';\nimport { CyclicTarget } from '../cyclic/target.mjs';\nexport function FromCyclic(defs, ref) {\n const target = CyclicTarget(defs, ref);\n const partial = FromType(target);\n const result = Cyclic(Memory.Assign(defs, { [ref]: partial }), ref);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateDependent } from '../evaluate/evaluate.mjs';\nexport function FromDependent(if_, then_, else_) {\n const evaluated = EvaluateDependent(if_, then_, else_);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nexport function FromIntersect(types) {\n const evaluated = EvaluateIntersect(types);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Union } from '../../types/union.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(types) {\n const result = types.map(type => FromType(type));\n return Union(result);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { AddOptional } from '../../action/_add_optional.mjs';\nexport function FromObject(properties) {\n const mapped = Guard.Keys(properties).reduce((result, left) => {\n return { ...result, [left]: AddOptional(properties[left]) };\n }, {});\n const result = Object(mapped);\n return result;\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsDependent } from '../../types/dependent.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { Object, IsObject } from '../../types/object.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromDependent } from './from_dependent.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromUnion } from './from_union.mjs';\nimport { FromObject } from './from_object.mjs';\nexport function FromType(type) {\n return (IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :\n IsDependent(type) ? FromDependent(type.if, type.then, type.else) :\n IsIntersect(type) ? FromIntersect(type.allOf) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsObject(type) ? FromObject(type.properties) :\n Object({}));\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { PartialDeferred } from '../../action/partial.mjs';\nimport { FromType } from './from_type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nexport function PartialAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(FromType(type), {}, options)\n : PartialDeferred(type, options);\n return result;\n}\nexport function PartialInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return PartialAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Deferred } from '../types/deferred.mjs';\nimport { KeysToIndexer } from '../engine/helpers/keys_to_indexer.mjs';\nimport { PickAction } from '../engine/pick/instantiate.mjs';\n/** Creates a deferred Pick action. */\nexport function PickDeferred(type, indexer, options = {}) {\n return Deferred('Pick', [type, indexer], options);\n}\n/** Applies a Pick action using the given types. */\nexport function Pick(type, indexer_or_keys, options = {}) {\n const indexer = Guard.IsArray(indexer_or_keys) ? KeysToIndexer(indexer_or_keys) : indexer_or_keys;\n return PickAction(type, indexer, options);\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { ToIndexableKeys } from '../indexable/to_indexable_keys.mjs';\nimport { ToIndexable } from '../indexable/to_indexable.mjs';\nfunction FromKeys(properties, keys) {\n const result = Guard.Keys(properties).reduce((result, key) => {\n return keys.includes(key) ? Memory.Assign(result, { [key]: properties[key] }) : result;\n }, {});\n return result;\n}\nexport function FromType(type, indexer) {\n const indexable = ToIndexable(type);\n const keys = ToIndexableKeys(indexer);\n const applied = FromKeys(indexable, keys);\n const result = Object(applied);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { PickDeferred } from '../../action/pick.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { FromType } from './from_type.mjs';\nexport function PickAction(type, indexer, options) {\n const result = CanInstantiate([type, indexer])\n ? Memory.Update(FromType(type, indexer), {}, options)\n : PickDeferred(type, indexer, options);\n return result;\n}\nexport function PickInstantiate(context, state, type, indexer, options) {\n const instantiatedType = InstantiateType(context, state, type);\n const instantiatedIndexer = InstantiateType(context, state, indexer);\n return PickAction(instantiatedType, instantiatedIndexer, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { ReadonlyObjectAction } from '../engine/readonly_object/instantiate.mjs';\n/** Creates a deferred ReadonlyType action. */\nexport function ReadonlyObjectDeferred(type, options = {}) {\n return Deferred('ReadonlyObject', [type], options);\n}\n/** This type is an alias for TypeScript's `Readonly<T>` utility type. It will make all properties of a TObject readonly or marks an TArray or TTuple as immutable `readonly T[]`. */\nexport function ReadonlyObject(type, options = {}) {\n return ReadonlyObjectAction(type, options);\n}\n// ------------------------------------------------------------------\n// Alias\n// ------------------------------------------------------------------\n/**\n * This type has been renamed to ReadonlyObject.\n * @deprecated\n*/\nexport const ReadonlyType = ReadonlyObject;\n","// deno-fmt-ignore-file\nimport { Array } from '../../types/array.mjs';\nimport { AddImmutable } from '../../action/_add_immutable.mjs';\nexport function FromArray(type) {\n const result = AddImmutable(Array(type));\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Cyclic } from '../../types/cyclic.mjs';\nimport { FromType } from './from_type.mjs';\nimport { CyclicTarget } from '../cyclic/target.mjs';\nexport function FromCyclic(defs, ref) {\n const target = CyclicTarget(defs, ref);\n const partial = FromType(target);\n const result = Cyclic(Memory.Assign(defs, { [ref]: partial }), ref);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateDependent } from '../evaluate/evaluate.mjs';\nexport function FromDependent(if_, then_, else_) {\n const evaluated = EvaluateDependent(if_, then_, else_);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nexport function FromIntersect(types) {\n const evaluated = EvaluateIntersect(types);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { AddReadonly } from '../../action/_add_readonly.mjs';\nexport function FromObject(properties) {\n const mapped = Guard.Keys(properties).reduce((result, left) => {\n return { ...result, [left]: AddReadonly(properties[left]) };\n }, {});\n const result = Object(mapped);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Tuple } from '../../types/tuple.mjs';\nimport { AddImmutable } from '../../action/_add_immutable.mjs';\nexport function FromTuple(types) {\n const result = AddImmutable(Tuple(types));\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Union } from '../../types/union.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(types) {\n const result = types.map(type => FromType(type));\n return Union(result);\n}\n","// deno-fmt-ignore-file\nimport { IsArray } from '../../types/array.mjs';\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsDependent } from '../../types/dependent.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromDependent } from './from_dependent.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUnion } from './from_union.mjs';\nexport function FromType(type) {\n return (IsArray(type) ? FromArray(type.items) :\n IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :\n IsDependent(type) ? FromDependent(type.if, type.then, type.else) :\n IsIntersect(type) ? FromIntersect(type.allOf) :\n IsObject(type) ? FromObject(type.properties) :\n IsTuple(type) ? FromTuple(type.items) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n type);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { ReadonlyObjectDeferred } from '../../action/readonly_object.mjs';\nimport { FromType } from './from_type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nexport function ReadonlyObjectAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(FromType(type), {}, options)\n : ReadonlyObjectDeferred(type);\n return result;\n}\nexport function ReadonlyObjectInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return ReadonlyObjectAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { InstantiateType } from '../instantiate.mjs';\nimport { State } from '../instantiate.mjs';\nexport function RefInstantiate(context, state, type, ref) {\n return (state.visited.includes(ref)\n ? type\n : ref in context\n ? InstantiateType(context, State(state['callstack'], [...state['visited'], ref]), context[ref])\n : type);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { Cyclic } from '../../types/cyclic.mjs';\nimport { FromType } from './from_type.mjs';\nimport { CyclicTarget } from '../cyclic/target.mjs';\nexport function FromCyclic(defs, ref) {\n const target = CyclicTarget(defs, ref);\n const partial = FromType(target);\n const result = Cyclic(Memory.Assign(defs, { [ref]: partial }), ref);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateDependent } from '../evaluate/evaluate.mjs';\nexport function FromDependent(if_, then_, else_) {\n const evaluated = EvaluateDependent(if_, then_, else_);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nexport function FromIntersect(types) {\n const evaluated = EvaluateIntersect(types);\n const result = FromType(evaluated);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Union } from '../../types/union.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(types) {\n const result = types.map(type => FromType(type));\n return Union(result);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { RemoveOptional } from '../../action/_remove_optional.mjs';\nexport function FromObject(properties) {\n const mapped = Guard.Keys(properties).reduce((result, left) => {\n return { ...result, [left]: RemoveOptional(properties[left]) };\n }, {});\n const result = Object(mapped);\n return result;\n}\n","// deno-lint-ignore-file ban-types\n// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsDependent } from '../../types/dependent.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { Object, IsObject } from '../../types/object.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromDependent } from './from_dependent.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromUnion } from './from_union.mjs';\nimport { FromObject } from './from_object.mjs';\nexport function FromType(type) {\n return (IsCyclic(type) ? FromCyclic(type.$defs, type.$ref) :\n IsDependent(type) ? FromDependent(type.if, type.then, type.else) :\n IsIntersect(type) ? FromIntersect(type.allOf) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsObject(type) ? FromObject(type.properties) :\n Object({}));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { RequiredAction } from '../engine/required/instantiate.mjs';\n/** Creates a deferred Required action. */\nexport function RequiredDeferred(type, options = {}) {\n return Deferred('Required', [type], options);\n}\n/** Applies a Required action to the given type. */\nexport function Required(type, options = {}) {\n return RequiredAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { RequiredDeferred } from '../../action/required.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nexport function RequiredAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(FromType(type), {}, options)\n : RequiredDeferred(type, options);\n return result;\n}\nexport function RequiredInstantiate(context, state, type, options) {\n const instaniatedType = InstantiateType(context, state, type);\n return RequiredAction(instaniatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { ReturnTypeAction } from '../engine/return_type/instantiate.mjs';\n/** Creates a deferred ReturnType action. */\nexport function ReturnTypeDeferred(type, options = {}) {\n return Deferred('ReturnType', [type], options);\n}\n/** Applies a ReturnType action to the given type. */\nexport function ReturnType(type, options = {}) {\n return ReturnTypeAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsFunction } from '../../types/function.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { ReturnTypeDeferred } from '../../action/return_type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction ReturnTypeOperation(type) {\n return (IsFunction(type)\n ? type['returnType']\n : Never());\n}\nexport function ReturnTypeAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(ReturnTypeOperation(type), {}, options)\n : ReturnTypeDeferred(type, options);\n return result;\n}\nexport function ReturnTypeInstantiate(context, state, type, options = {}) {\n const instantiatedType = InstantiateType(context, state, type);\n return ReturnTypeAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { WithAction } from '../engine/with/instantiate.mjs';\n/** Creates a deferred With action. */\nexport function WithDeferred(type, options) {\n return Deferred('With', [type, options], {});\n}\n/** Applies annotation options to the given type. */\nexport function With(type, options) {\n return WithAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { WithDeferred } from '../../action/with.mjs';\nexport function WithAction(type, options) {\n const result = CanInstantiate([type])\n ? Memory.Update(type, {}, options)\n : WithDeferred(type, options);\n return result;\n}\nexport function WithInstantiate(context, state, type, options) {\n const instaniatedType = InstantiateType(context, state, type);\n return WithAction(instaniatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { IsInfer } from '../../types/infer.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsRest } from '../../types/rest.mjs';\nimport { IsRef } from '../../types/ref.mjs';\nimport { IsTuple } from '../../types/tuple.mjs';\nfunction SpreadElement(type) {\n const result = (IsRest(type) ? (IsTuple(type.items) ? RestSpread(type.items.items) :\n IsInfer(type.items) ? [type] :\n IsRef(type.items) ? [type] :\n [Never()]) : [type]);\n return result;\n}\nexport function RestSpread(types) {\n const result = types.reduce((result, left) => {\n return [...result, ...SpreadElement(left)];\n }, []);\n return result;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Modifiers\n// ------------------------------------------------------------------\nimport { AddImmutableAction } from './immutable/instantiate_add.mjs';\nimport { AddReadonlyAction } from './readonly/instantiate_add.mjs';\nimport { AddOptionalAction } from './optional/instantiate_add.mjs';\nimport { _Array_, IsArray, ArrayOptions } from '../types/array.mjs';\nimport { Constructor, IsConstructor, ConstructorOptions } from '../types/constructor.mjs';\nimport { Deferred, IsDeferred } from '../types/deferred.mjs';\nimport { _Function_, IsFunction, FunctionOptions } from '../types/function.mjs';\nimport { IsCall } from '../types/call.mjs';\nimport { Dependent, IsDependent, DependentOptions } from '../types/dependent.mjs';\nimport { Intersect, IsIntersect, IntersectOptions } from '../types/intersect.mjs';\nimport { Object, IsObject, ObjectOptions } from '../types/object.mjs';\nimport { RecordFromPattern, IsRecord, RecordPattern, RecordValue } from '../types/record.mjs';\nimport { Tuple, IsTuple, TupleOptions } from '../types/tuple.mjs';\nimport { Union, IsUnion, UnionOptions } from '../types/union.mjs';\nimport { IsRef } from '../types/ref.mjs';\nimport { Rest, IsRest } from '../types/rest.mjs';\n// ------------------------------------------------------------------\n// Modifier Instantiate\n// ------------------------------------------------------------------\nimport { AddImmutableInstantiate } from './immutable/instantiate_add.mjs';\nimport { RemoveImmutableInstantiate } from './immutable/instantiate_remove.mjs';\nimport { AddReadonlyInstantiate } from './readonly/instantiate_add.mjs';\nimport { RemoveReadonlyInstantiate } from './readonly/instantiate_remove.mjs';\nimport { AddOptionalInstantiate } from './optional/instantiate_add.mjs';\nimport { RemoveOptionalInstantiate } from './optional/instantiate_remove.mjs';\nimport { IsOptional } from '../types/_optional.mjs';\nimport { IsImmutable } from '../types/_immutable.mjs';\nimport { IsReadonly } from '../types/_readonly.mjs';\n// ------------------------------------------------------------------\n// Instantiate\n// ------------------------------------------------------------------\nimport { CallInstantiate } from './call/instantiate.mjs';\nimport { CapitalizeInstantiate } from './intrinsics/instantiate.mjs';\nimport { ConditionalInstantiate } from './conditional/index.mjs';\nimport { ConstructorParametersInstantiate } from './constructor_parameters/instantiate.mjs';\nimport { EvaluateInstantiate } from './evaluate/instantiate.mjs';\nimport { ExcludeInstantiate } from './exclude/instantiate.mjs';\nimport { ExtractInstantiate } from './extract/instantiate.mjs';\nimport { IndexInstantiate } from './indexed/instantiate.mjs';\nimport { InstanceTypeInstantiate } from './instance_type/instantiate.mjs';\nimport { InterfaceInstantiate } from './interface/instantiate.mjs';\nimport { KeyOfInstantiate } from './keyof/instantiate.mjs';\nimport { LowercaseInstantiate } from './intrinsics/instantiate.mjs';\nimport { MappedInstantiate } from './mapped/instantiate.mjs';\nimport { ModuleInstantiate } from './module/instantiate.mjs';\nimport { NonNullableInstantiate } from './non_nullable/instantiate.mjs';\nimport { OmitInstantiate } from './omit/instantiate.mjs';\nimport { ParametersInstantiate } from './parameters/instantiate.mjs';\nimport { PartialInstantiate } from './partial/instantiate.mjs';\nimport { PickInstantiate } from './pick/instantiate.mjs';\nimport { ReadonlyObjectInstantiate } from './readonly_object/instantiate.mjs';\nimport { RecordInstantiate } from './record/instantiate.mjs';\nimport { RefInstantiate } from './ref/instantiate.mjs';\nimport { RequiredInstantiate } from './required/instantiate.mjs';\nimport { ReturnTypeInstantiate } from './return_type/instantiate.mjs';\nimport { TemplateLiteralInstantiate } from './template_literal/instantiate.mjs';\nimport { UncapitalizeInstantiate } from './intrinsics/instantiate.mjs';\nimport { UppercaseInstantiate } from './intrinsics/instantiate.mjs';\nimport { WithInstantiate } from './with/instantiate.mjs';\nimport { RestSpread } from './rest/index.mjs';\nexport function State(callstack, visited) {\n return { callstack, visited };\n}\nexport function CanInstantiate(types) {\n return Guard.ShiftLeft(types, (left, right) => IsRef(left)\n ? false\n : CanInstantiate(right), () => true);\n}\nexport function InstantiateProperties(context, state, properties) {\n return Guard.Keys(properties).reduce((result, key) => {\n return { ...result, [key]: InstantiateType(context, state, properties[key]) };\n }, {});\n}\nexport function InstantiateElements(context, state, types) {\n const elements = InstantiateTypes(context, state, types);\n const result = RestSpread(elements);\n return result;\n}\nexport function InstantiateTypes(context, state, types) {\n return types.map(type => InstantiateType(context, state, type));\n}\nfunction WithModifiers(type, instantiatedType) {\n const withOptional = IsOptional(type) ? AddOptionalAction(instantiatedType, {}) : instantiatedType;\n const withReadonly = IsReadonly(type) ? AddReadonlyAction(withOptional, {}) : withOptional;\n const withImmutable = IsImmutable(type) ? AddImmutableAction(withReadonly, {}) : withReadonly;\n return withImmutable;\n}\nfunction InstantiateDeferred(context, state, action, parameters, options) {\n return (\n // Modifiers\n Guard.IsEqual(action, 'AddImmutable') ? AddImmutableInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'RemoveImmutable') ? RemoveImmutableInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'AddReadonly') ? AddReadonlyInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'RemoveReadonly') ? RemoveReadonlyInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'AddOptional') ? AddOptionalInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'RemoveOptional') ? RemoveOptionalInstantiate(context, state, parameters[0], options) :\n // Actions\n Guard.IsEqual(action, 'Capitalize') ? CapitalizeInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Conditional') ? ConditionalInstantiate(context, state, parameters[0], parameters[1], parameters[2], parameters[3], options) :\n Guard.IsEqual(action, 'ConstructorParameters') ? ConstructorParametersInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Evaluate') ? EvaluateInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Exclude') ? ExcludeInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'Extract') ? ExtractInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'Index') ? IndexInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'InstanceType') ? InstanceTypeInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Interface') ? InterfaceInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'KeyOf') ? KeyOfInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Lowercase') ? LowercaseInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Mapped') ? MappedInstantiate(context, state, parameters[0], parameters[1], parameters[2], parameters[3], options) :\n Guard.IsEqual(action, 'Module') ? ModuleInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'NonNullable') ? NonNullableInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Pick') ? PickInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'Parameters') ? ParametersInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Partial') ? PartialInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Omit') ? OmitInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'ReadonlyObject') ? ReadonlyObjectInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Record') ? RecordInstantiate(context, state, parameters[0], parameters[1], options) :\n Guard.IsEqual(action, 'Required') ? RequiredInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'ReturnType') ? ReturnTypeInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'TemplateLiteral') ? TemplateLiteralInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Uncapitalize') ? UncapitalizeInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'Uppercase') ? UppercaseInstantiate(context, state, parameters[0], options) :\n Guard.IsEqual(action, 'With') ? WithInstantiate(context, state, parameters[0], parameters[1]) :\n Deferred(action, parameters, options));\n}\nfunction InstantiateImmediate(context, state, type) {\n const instantiatedType = (IsRef(type) ? RefInstantiate(context, state, type, type.$ref) :\n IsArray(type) ? _Array_(InstantiateType(context, state, type.items), ArrayOptions(type)) :\n IsCall(type) ? CallInstantiate(context, state, type.target, type.arguments) :\n IsConstructor(type) ? Constructor(InstantiateTypes(context, state, type.parameters), InstantiateType(context, state, type.instanceType), ConstructorOptions(type)) :\n IsFunction(type) ? _Function_(InstantiateTypes(context, state, type.parameters), InstantiateType(context, state, type.returnType), FunctionOptions(type)) :\n IsDependent(type) ? Dependent(InstantiateType(context, state, type.if), InstantiateType(context, state, type.then), InstantiateType(context, state, type.else), DependentOptions(type)) :\n IsIntersect(type) ? Intersect(InstantiateTypes(context, state, type.allOf), IntersectOptions(type)) :\n IsObject(type) ? Object(InstantiateProperties(context, state, type.properties), ObjectOptions(type)) :\n IsRecord(type) ? RecordFromPattern(RecordPattern(type), InstantiateType(context, state, RecordValue(type))) :\n IsRest(type) ? Rest(InstantiateType(context, state, type.items)) :\n IsTuple(type) ? Tuple(InstantiateElements(context, state, type.items), TupleOptions(type)) :\n IsUnion(type) ? Union(InstantiateTypes(context, state, type.anyOf), UnionOptions(type)) :\n type);\n const withModifiers = WithModifiers(type, instantiatedType);\n return withModifiers;\n}\nexport function InstantiateType(context, state, type) {\n const result = IsDeferred(type)\n ? InstantiateDeferred(context, state, type.action, type.parameters, type.options)\n : InstantiateImmediate(context, state, type);\n return result;\n}\n/** Instantiates computed schematics using the given context and type. */\nexport function Instantiate(context, type) {\n return InstantiateType(context, State([], []), type);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nfunction AddImmutableOperation(type) {\n return Memory.Update(type, { '~immutable': true }, {});\n}\nexport function AddImmutableAction(type, options) {\n const result = Memory.Update(AddImmutableOperation(type), {}, options);\n return result;\n}\nexport function AddImmutableInstantiate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return AddImmutableAction(instantiatedType, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { AddImmutableAction } from '../engine/immutable/instantiate_add.mjs';\n/** Creates a deferred AddImmutable action. */\nexport function AddImmutableDeferred(type, options = {}) {\n return Deferred('AddImmutable', [type], options);\n}\n/** Applies an AddImmutable action to a type. */\nexport function AddImmutable(type, options = {}) {\n return AddImmutableAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { EvaluateAction } from '../engine/evaluate/instantiate.mjs';\n/** Creates a deferred Evaluate action. */\nexport function EvaluateDeferred(type, options = {}) {\n return Deferred('Evaluate', [type], options);\n}\n/** Applies an Evaluate action to a type. */\nexport function Evaluate(type, options = {}) {\n return EvaluateAction(type, options);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Compare } from '../evaluate/compare.mjs';\nfunction Comparer(left, right) {\n const compareResult = Compare(left, right);\n const result = (Guard.IsEqual(compareResult, 'right-inside') ? 1 :\n Guard.IsEqual(compareResult, 'disjoint') ? 1 :\n 0);\n return result;\n}\nfunction Insert(type, types, result = []) {\n return Guard.ShiftLeft(types, (left, right) => Guard.IsEqual(Comparer(type, left), 1)\n ? Insert(type, right, [...result, left])\n : [...result, type, ...types], () => [...result, type]);\n}\nfunction Sort(types, result = []) {\n return Guard.ShiftLeft(types, (left, right) => Sort(right, Insert(left, result)), () => result);\n}\n/**\n * Priority sorts types in sequence of narrowest to broadest using an Insertion Sort\n * algorithm. This function is typically used to sequence types for union variant\n * checks to ensure that values are checked against the most narrow types before\n * the broadest, which in turn helps ensure order-independent Union checking.\n */\nexport function Priority(types) {\n const result = Sort(types);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains an '~refine` keyword\n * @specification None\n */\nexport function IsRefine(value) {\n return Guard.HasPropertyKey(value, '~refine')\n && Guard.IsArray(value[\"~refine\"])\n && Guard.Every(value['~refine'], 0, value => Guard.IsObject(value)\n && Guard.HasPropertyKey(value, 'check')\n && Guard.HasPropertyKey(value, 'error')\n && Guard.IsFunction(value.check)\n && Guard.IsFunction(value.error));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n/** Returns true if this value is object like */\nexport function IsSchemaObject(value) {\n return Guard.IsObject(value) && !Guard.IsArray(value);\n}\n/** Returns true if this value is a boolean */\nexport function IsSchemaBoolean(value) {\n return Guard.IsBoolean(value);\n}\n/** Returns true if this value is schema like */\nexport function IsSchema(value) {\n return IsSchemaObject(value) || IsSchemaBoolean(value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid additionalItems property\n * @specification Json Schema 7\n */\nexport function IsAdditionalItems(schema) {\n return Guard.HasPropertyKey(schema, 'additionalItems')\n && IsSchema(schema.additionalItems);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid additionalProperties property\n * @specification Json Schema 7\n */\nexport function IsAdditionalProperties(schema) {\n return Guard.HasPropertyKey(schema, 'additionalProperties')\n && IsSchema(schema.additionalProperties);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid allOf property\n * @specification Json Schema 7\n */\nexport function IsAllOf(schema) {\n return Guard.HasPropertyKey(schema, 'allOf')\n && Guard.IsArray(schema.allOf)\n && schema.allOf.every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $anchor property\n */\nexport function IsAnchor(schema) {\n return Guard.HasPropertyKey(schema, '$anchor')\n && Guard.IsString(schema.$anchor);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid anyOf property\n * @specification Json Schema 7\n */\nexport function IsAnyOf(schema) {\n return Guard.HasPropertyKey(schema, 'anyOf')\n && Guard.IsArray(schema.anyOf)\n && schema.anyOf.every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid const property\n * @specification Json Schema 7\n */\nexport function IsConst(value) {\n return Guard.HasPropertyKey(value, 'const');\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid contains property\n * @specification Json Schema 7\n */\nexport function IsContains(schema) {\n return Guard.HasPropertyKey(schema, 'contains')\n && IsSchema(schema.contains);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid contentMediaType property\n * @specification Json Schema 7\n */\nexport function IsDefault(schema) {\n return Guard.HasPropertyKey(schema, 'default');\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid dependencies property\n * @specification Json Schema 7\n */\nexport function IsDependencies(schema) {\n return Guard.HasPropertyKey(schema, 'dependencies')\n && Guard.IsObject(schema.dependencies)\n && Object.values(schema.dependencies).every(value => IsSchema(value)\n || (Guard.IsArray(value) && value.every(value => Guard.IsString(value))));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid dependentRequired property\n * @specification Json Schema 2019-09\n */\nexport function IsDependentRequired(schema) {\n return Guard.HasPropertyKey(schema, 'dependentRequired')\n && Guard.IsObject(schema.dependentRequired)\n && Object.values(schema.dependentRequired).every(value => Guard.IsArray(value)\n && value.every(value => Guard.IsString(value)));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid dependentRequired property\n * @specification Json Schema 2019-09\n */\nexport function IsDependentSchemas(schema) {\n return Guard.HasPropertyKey(schema, 'dependentSchemas')\n && Guard.IsObject(schema.dependentSchemas)\n && Object.values(schema.dependentSchemas).every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $dynamicAnchor property\n */\nexport function IsDynamicAnchor(schema) {\n return Guard.HasPropertyKey(schema, '$dynamicAnchor')\n && Guard.IsString(schema.$dynamicAnchor);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $dynamicRef property\n */\nexport function IsDynamicRef(schema) {\n return Guard.HasPropertyKey(schema, '$dynamicRef')\n && Guard.IsString(schema.$dynamicRef);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid else property\n * @specification Json Schema 7\n */\nexport function IsElse(schema) {\n return Guard.HasPropertyKey(schema, 'else')\n && IsSchema(schema.else);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid enum property\n * @specification Json Schema 7\n */\nexport function IsEnum(schema) {\n return Guard.HasPropertyKey(schema, 'enum')\n && Guard.IsArray(schema.enum);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid exclusiveMaximum property\n * @specification Json Schema 7\n */\nexport function IsExclusiveMaximum(schema) {\n return Guard.HasPropertyKey(schema, 'exclusiveMaximum')\n && (Guard.IsNumber(schema.exclusiveMaximum) || Guard.IsBigInt(schema.exclusiveMaximum));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid exclusiveMinimum property\n * @specification Json Schema 7\n */\nexport function IsExclusiveMinimum(schema) {\n return Guard.HasPropertyKey(schema, 'exclusiveMinimum')\n && (Guard.IsNumber(schema.exclusiveMinimum) || Guard.IsBigInt(schema.exclusiveMinimum));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid format property\n * @specification Json Schema 7\n */\nexport function IsFormat(schema) {\n return Guard.HasPropertyKey(schema, 'format')\n && Guard.IsString(schema.format);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $id property\n * @specification Json Schema 7\n */\nexport function IsId(schema) {\n return Guard.HasPropertyKey(schema, '$id')\n && Guard.IsString(schema.$id);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $id property\n * @specification Json Schema 7\n */\nexport function IsIf(schema) {\n return Guard.HasPropertyKey(schema, 'if')\n && IsSchema(schema.if);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid items property\n * @specification Json Schema 7\n */\nexport function IsItems(schema) {\n return Guard.HasPropertyKey(schema, 'items')\n && (IsSchema(schema.items)\n || (Guard.IsArray(schema.items)\n && schema.items.every(value => {\n return IsSchema(value);\n })));\n}\n/** Returns true if this schema is a sized items variant */\nexport function IsItemsSized(schema) {\n return IsItems(schema) && Guard.IsArray(schema.items);\n}\n/** Returns true if this schema is a unsized items variant */\nexport function IsItemsUnsized(schema) {\n return IsItems(schema) && !Guard.IsArray(schema.items);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maximum property\n * @specification Json Schema 7\n */\nexport function IsMaximum(schema) {\n return Guard.HasPropertyKey(schema, 'maximum')\n && (Guard.IsNumber(schema.maximum) || Guard.IsBigInt(schema.maximum));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxContains property\n * @specification Json Schema 2019-09\n */\nexport function IsMaxContains(schema) {\n return Guard.HasPropertyKey(schema, 'maxContains')\n && Guard.IsNumber(schema.maxContains);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxItems property\n * @specification Json Schema 7\n */\nexport function IsMaxItems(schema) {\n return Guard.HasPropertyKey(schema, 'maxItems')\n && Guard.IsNumber(schema.maxItems);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxLength property\n * @specification Json Schema 7\n */\nexport function IsMaxLength(schema) {\n return Guard.HasPropertyKey(schema, 'maxLength')\n && Guard.IsNumber(schema.maxLength);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxProperties property\n * @specification Json Schema 7\n */\nexport function IsMaxProperties(schema) {\n return Guard.HasPropertyKey(schema, 'maxProperties')\n && Guard.IsNumber(schema.maxProperties);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minimum property\n * @specification Json Schema 7\n */\nexport function IsMinimum(schema) {\n return Guard.HasPropertyKey(schema, 'minimum')\n && (Guard.IsNumber(schema.minimum) || Guard.IsBigInt(schema.minimum));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid maxContains property\n * @specification Json Schema 2019-09\n */\nexport function IsMinContains(schema) {\n return Guard.HasPropertyKey(schema, 'minContains')\n && Guard.IsNumber(schema.minContains);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minItems property\n * @specification Json Schema 7\n */\nexport function IsMinItems(schema) {\n return Guard.HasPropertyKey(schema, 'minItems')\n && Guard.IsNumber(schema.minItems);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minLength property\n * @specification Json Schema 7\n */\nexport function IsMinLength(schema) {\n return Guard.HasPropertyKey(schema, 'minLength')\n && Guard.IsNumber(schema.minLength);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid minProperties property\n * @specification Json Schema 7\n */\nexport function IsMinProperties(schema) {\n return Guard.HasPropertyKey(schema, 'minProperties')\n && Guard.IsNumber(schema.minProperties);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid multipleOf property\n * @specification Json Schema 7\n */\nexport function IsMultipleOf(schema) {\n return Guard.HasPropertyKey(schema, 'multipleOf')\n && (Guard.IsNumber(schema.multipleOf) || Guard.IsBigInt(schema.multipleOf));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid not property\n * @specification Json Schema 7\n */\nexport function IsNot(schema) {\n return Guard.HasPropertyKey(schema, 'not')\n && IsSchema(schema.not);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid oneOf property\n * @specification Json Schema 7\n */\nexport function IsOneOf(schema) {\n return Guard.HasPropertyKey(schema, 'oneOf')\n && Guard.IsArray(schema.oneOf)\n && schema.oneOf.every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid pattern property\n * @specification Json Schema 7\n */\nexport function IsPattern(schema) {\n return Guard.HasPropertyKey(schema, 'pattern')\n && (Guard.IsString(schema.pattern)\n || schema.pattern instanceof RegExp);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid patternProperties property\n * @specification Json Schema 7\n */\nexport function IsPatternProperties(schema) {\n return Guard.HasPropertyKey(schema, 'patternProperties')\n && Guard.IsObject(schema.patternProperties)\n && Object.values(schema.patternProperties).every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid prefixItems property\n */\nexport function IsPrefixItems(schema) {\n return Guard.HasPropertyKey(schema, 'prefixItems')\n && Guard.IsArray(schema.prefixItems)\n && schema.prefixItems.every(schema => IsSchema(schema));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid properties property\n * @specification Json Schema 7\n */\nexport function IsProperties(schema) {\n return Guard.HasPropertyKey(schema, 'properties')\n && Guard.IsObject(schema.properties)\n && Object.values(schema.properties).every(value => IsSchema(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid propertyNames property\n * @specification Json Schema 7\n */\nexport function IsPropertyNames(schema) {\n return Guard.HasPropertyKey(schema, 'propertyNames')\n && (Guard.IsObject(schema.propertyNames)\n || IsSchema(schema.propertyNames));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $recursiveAnchor property\n */\nexport function IsRecursiveAnchor(schema) {\n return Guard.HasPropertyKey(schema, '$recursiveAnchor')\n && Guard.IsBoolean(schema.$recursiveAnchor);\n}\n/**\n * Returns true if the schema contains a valid $recursiveAnchor property that is true\n */\nexport function IsRecursiveAnchorTrue(schema) {\n return IsRecursiveAnchor(schema)\n && Guard.IsEqual(schema.$recursiveAnchor, true);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $recursiveRef property\n */\nexport function IsRecursiveRef(schema) {\n return Guard.HasPropertyKey(schema, '$recursiveRef')\n && Guard.IsString(schema.$recursiveRef);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid $ref property\n * @specification Json Schema 7\n */\nexport function IsRef(schema) {\n return Guard.HasPropertyKey(schema, '$ref')\n && Guard.IsString(schema.$ref);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid required property\n * @specification Json Schema 7\n */\nexport function IsRequired(schema) {\n return Guard.HasPropertyKey(schema, 'required')\n && Guard.IsArray(schema.required)\n && schema.required.every(value => Guard.IsString(value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid then property\n * @specification Json Schema 7\n */\nexport function IsThen(schema) {\n return Guard.HasPropertyKey(schema, 'then')\n && IsSchema(schema.then);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid type property\n * @specification Json Schema 7\n */\nexport function IsType(schema) {\n return Guard.HasPropertyKey(schema, 'type')\n && (Guard.IsString(schema.type)\n || (Guard.IsArray(schema.type)\n && schema.type.every(value => Guard.IsString(value))));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid uniqueItems property\n * @specification Json Schema 7\n */\nexport function IsUniqueItems(schema) {\n return Guard.HasPropertyKey(schema, 'uniqueItems')\n && Guard.IsBoolean(schema.uniqueItems);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid unevaluatedItems property\n * @specification Json Schema 2019-09\n */\nexport function IsUnevaluatedItems(schema) {\n return Guard.HasPropertyKey(schema, 'unevaluatedItems')\n && IsSchema(schema.unevaluatedItems);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/**\n * Returns true if the schema contains a valid unevaluatedProperties property\n * @specification Json Schema 2019-09\n */\nexport function IsUnevaluatedProperties(schema) {\n return Guard.HasPropertyKey(schema, 'unevaluatedProperties')\n && IsSchema(schema.unevaluatedProperties);\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// HasUnevaluated\n// ------------------------------------------------------------------\nfunction HasUnevaluatedFromObject(value) {\n return (Schema.IsUnevaluatedItems(value)\n || Schema.IsUnevaluatedProperties(value)\n || G.Keys(value).some(key => HasUnevaluatedFromUnknown(value[key])));\n}\nfunction HasUnevaluatedFromArray(value) {\n return value.some(value => HasUnevaluatedFromUnknown(value));\n}\nfunction HasUnevaluatedFromUnknown(value) {\n return (G.IsArray(value) ? HasUnevaluatedFromArray(value) :\n G.IsObject(value) ? HasUnevaluatedFromObject(value) :\n false);\n}\nexport function HasUnevaluated(context, schema) {\n return HasUnevaluatedFromUnknown(schema) || G.Keys(context).some(key => HasUnevaluatedFromUnknown(context[key]));\n}\n// ------------------------------------------------------------------\n// BuildContext\n// ------------------------------------------------------------------\nexport class BuildContext {\n constructor(hasUnevaluated) {\n this.hasUnevaluated = hasUnevaluated;\n }\n UseUnevaluated() {\n return this.hasUnevaluated;\n }\n // ----------------------------------------------------------------\n // Stack\n // ----------------------------------------------------------------\n Push() {\n return E.Call(E.Member('context', 'Push'), []);\n }\n Pop() {\n return E.Call(E.Member('context', 'Pop'), []);\n }\n // ----------------------------------------------------------------\n // Top\n // ----------------------------------------------------------------\n AddIndex(index) {\n return E.Call(E.Member('context', 'AddIndex'), [index]);\n }\n AddKey(key) {\n return E.Call(E.Member('context', 'AddKey'), [key]);\n }\n Merge(results) {\n return E.Call(E.Member('context', 'Merge'), [results]);\n }\n}\n// ------------------------------------------------------------------\n// CheckContext\n// ------------------------------------------------------------------\nexport class CheckContext {\n constructor() {\n const indices = new Set();\n const keys = new Set();\n this.stack = [{ indices, keys }];\n }\n // ----------------------------------------------------------------\n // Stack\n // ----------------------------------------------------------------\n Push() {\n const indices = new Set();\n const keys = new Set();\n this.stack.push({ indices, keys });\n return true;\n }\n Pop() {\n this.stack.pop();\n return true;\n }\n // ----------------------------------------------------------------\n // Top\n // ----------------------------------------------------------------\n AddIndex(index) {\n this.GetIndices().add(index);\n return true;\n }\n AddKey(key) {\n this.GetKeys().add(key);\n return true;\n }\n GetIndices() {\n const top = this.stack[this.stack.length - 1];\n return top.indices;\n }\n GetKeys() {\n const top = this.stack[this.stack.length - 1];\n return top.keys;\n }\n Merge(results) {\n for (const context of results) {\n context.GetIndices().forEach(value => this.GetIndices().add(value));\n context.GetKeys().forEach(value => this.GetKeys().add(value));\n }\n return true;\n }\n}\nexport class ErrorContext extends CheckContext {\n constructor(callback) {\n super();\n this.callback = callback;\n }\n AddError(error) {\n this.callback(error);\n return false;\n }\n}\n// ------------------------------------------------------------------\n// AccumulatedErrorContext\n// ------------------------------------------------------------------\nexport class AccumulatedErrorContext extends ErrorContext {\n constructor() {\n super(error => this.errors.push(error));\n this.errors = [];\n }\n AddError(error) {\n this.errors.push(error);\n return false;\n }\n GetErrors() {\n return this.errors;\n }\n}\n","// deno-fmt-ignore-file\nimport * as V from './_externals.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildRefine(_stack, _context, schema, value) {\n const refinements = V.CreateVariable(schema['~refine'].map((refinement) => refinement));\n return E.Every(refinements, E.Constant(0), ['refinement', '_'], E.Call(E.Member('refinement', 'check'), [value]));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRefine(_stack, _context, schema, value) {\n return G.Every(schema['~refine'], 0, (refinement, _) => refinement.check(value));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRefine(_stack, context, schemaPath, instancePath, schema, value) {\n return G.EveryAll(schema['~refine'], 0, (refinement, index) => {\n return refinement.check(value) || context.AddError({\n keyword: '~refine',\n schemaPath,\n instancePath,\n params: { index, message: refinement.error(value) },\n });\n });\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return Schema.IsItems(schema) && G.IsArray(schema.items);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildAdditionalItems(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const [item, index] = [Unique(), Unique()];\n const isSchema = BuildSchemaPushStack(stack, context, schema.additionalItems, item);\n const isLength = E.IsLessThan(index, E.Constant(schema.items.length));\n const addIndex = context.AddIndex(index);\n const guarded = context.UseUnevaluated() ? E.Or(isLength, E.And(isSchema, addIndex)) : E.Or(isLength, isSchema);\n return E.Call(E.Member(value, 'every'), [E.ArrowFunction([item, index], guarded)]);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAdditionalItems(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n const isAdditionalItems = value.every((item, index) => {\n return G.IsLessThan(index, schema.items.length)\n || (CheckSchemaPushStack(stack, context, schema.additionalItems, item) && context.AddIndex(index));\n });\n return isAdditionalItems;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAdditionalItems(stack, context, schemaPath, instancePath, schema, value) {\n if (!IsValid(schema))\n return true;\n const isAdditionalItems = value.every((item, index) => {\n const nextSchemaPath = `${schemaPath}/additionalItems`;\n const nextInstancePath = `${instancePath}/${index}`;\n return G.IsLessThan(index, schema.items.length) ||\n (ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema.additionalItems, item) && context.AddIndex(index));\n });\n return isAdditionalItems;\n}\n","// deno-fmt-ignore-file\nimport * as S from '../types/index.mjs';\nimport * as V from './_externals.mjs';\nimport { Unique } from './_unique.mjs';\nimport { AccumulatedErrorContext } from './_context.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\n// ------------------------------------------------------------------\n// Common: GetPropertiesPattern\n//\n// Constructs a regular expression that matches all property keys\n// and pattern properties defined in a schema. This approach unifies\n// handling of both property types, avoiding separate logic paths.\n//\n// If no keys or patterns are present, it returns a pattern that\n// matches nothing: '(?!)'.\n//\n// ------------------------------------------------------------------\nfunction GetPropertyKeyAsPattern(key) {\n const escaped = key.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return `^${escaped}$`;\n}\nfunction GetPropertiesPattern(schema) {\n const patterns = [];\n if (S.IsPatternProperties(schema))\n patterns.push(...G.Keys(schema.patternProperties));\n if (S.IsProperties(schema))\n patterns.push(...G.Keys(schema.properties).map(GetPropertyKeyAsPattern));\n return G.IsEqual(patterns.length, 0) ? '(?!)' : `(${patterns.join('|')})`;\n}\n// ------------------------------------------------------------------\n// BuildAdditionalPropertiesFast\n//\n// Optimized logic for schemas with `additionalProperties: false`.\n//\n// This fast-path applies only when:\n// - `additionalProperties` is explicitly set to false,\n// - the schema uses only `properties` (no `patternProperties`),\n// - and all defined properties are required (i.e., no optional keys).\n//\n// This constraint is common when enforcing strict object shapes\n// with only known, fixed keys. When all these conditions are met,\n// we can generate a simplified and efficient runtime check.\n//\n// ------------------------------------------------------------------\nexport function CanAdditionalPropertiesFast(_context, schema, _value) {\n return S.IsRequired(schema)\n && S.IsProperties(schema)\n && !S.IsPatternProperties(schema)\n && G.IsEqual(schema.additionalProperties, false)\n && G.IsEqual(G.Keys(schema.properties).length, schema.required.length);\n}\nexport function BuildAdditionalPropertiesFast(_context, schema, value) {\n return E.IsEqual(E.Member(E.Call(E.Member('Object', 'getOwnPropertyNames'), [value]), 'length'), E.Constant(schema.required.length));\n}\n// ------------------------------------------------------------------\n// BuildAdditionalPropertiesStandard\n// ------------------------------------------------------------------\nexport function BuildAdditionalPropertiesStandard(stack, context, schema, value) {\n const [key, _index] = [Unique(), Unique()];\n const regexp = V.CreateVariable(new RegExp(GetPropertiesPattern(schema)));\n const isSchema = BuildSchemaPushStack(stack, context, schema.additionalProperties, `${value}[${key}]`);\n const isKey = E.Call(E.Member(regexp, 'test'), [key]);\n const addKey = context.AddKey(key);\n const guarded = context.UseUnevaluated() ? E.Or(isKey, E.And(isSchema, addKey)) : E.Or(isKey, isSchema);\n const result = E.Every(E.Keys(value), E.Constant(0), [key, _index], guarded);\n return result;\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildAdditionalProperties(stack, context, schema, value) {\n return CanAdditionalPropertiesFast(context, schema, value)\n ? BuildAdditionalPropertiesFast(context, schema, value)\n : BuildAdditionalPropertiesStandard(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAdditionalProperties(stack, context, schema, value) {\n const regexp = new RegExp(GetPropertiesPattern(schema));\n const isAdditionalProperties = G.Every(G.Keys(value), 0, (key, _index) => {\n return regexp.test(key) ||\n (CheckSchemaPushStack(stack, context, schema.additionalProperties, value[key]) && context.AddKey(key));\n });\n return isAdditionalProperties;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAdditionalProperties(stack, context, schemaPath, instancePath, schema, value) {\n const regexp = new RegExp(GetPropertiesPattern(schema));\n const additionalProperties = [];\n const isAdditionalProperties = G.EveryAll(G.Keys(value), 0, (key, _index) => {\n const nextSchemaPath = `${schemaPath}/additionalProperties`;\n const nextInstancePath = `${instancePath}/${key}`;\n const nextContext = new AccumulatedErrorContext();\n const isAdditionalProperty = regexp.test(key) ||\n (ErrorSchemaPushStack(stack, nextContext, nextSchemaPath, nextInstancePath, schema.additionalProperties, value[key]) && context.AddKey(key));\n if (!isAdditionalProperty)\n additionalProperties.push(key);\n return isAdditionalProperty;\n });\n return isAdditionalProperties || context.AddError({\n keyword: 'additionalProperties',\n schemaPath,\n instancePath,\n params: { additionalProperties },\n });\n}\n","// deno-fmt-ignore-file\nimport { CheckContext, AccumulatedErrorContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildAllOfStandard(stack, context, schema, value) {\n return Reducer(stack, context, schema.allOf, value, E.IsEqual(E.Member('results', 'length'), E.Constant(schema.allOf.length)));\n}\nfunction BuildAllOfFast(stack, context, schema, value) {\n return E.ReduceAnd(schema.allOf.map((schema) => BuildSchema(stack, context, schema, value)));\n}\nexport function BuildAllOf(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? BuildAllOfStandard(stack, context, schema, value)\n : BuildAllOfFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAllOf(stack, context, schema, value) {\n const results = schema.allOf.reduce((result, schema) => {\n const nextContext = new CheckContext();\n return CheckSchema(stack, nextContext, schema, value) ? [...result, nextContext] : result;\n }, []);\n return G.IsEqual(results.length, schema.allOf.length) && context.Merge(results);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAllOf(stack, context, schemaPath, instancePath, schema, value) {\n const failedContexts = [];\n const results = schema.allOf.reduce((result, schema, index) => {\n const nextSchemaPath = `${schemaPath}/allOf/${index}`;\n const nextContext = new AccumulatedErrorContext();\n const isSchema = ErrorSchema(stack, nextContext, nextSchemaPath, instancePath, schema, value);\n if (!isSchema)\n failedContexts.push(nextContext);\n return isSchema ? [...result, nextContext] : result;\n }, []);\n const isAllOf = G.IsEqual(results.length, schema.allOf.length) && context.Merge(results);\n if (!isAllOf)\n failedContexts.forEach(failed => failed.GetErrors().forEach(error => context.AddError(error)));\n return isAllOf;\n}\n","// deno-fmt-ignore-file\nimport { CheckContext, AccumulatedErrorContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildAnyOfStandard(stack, context, schema, value) {\n return Reducer(stack, context, schema.anyOf, value, E.IsGreaterThan(E.Member('results', 'length'), E.Constant(0)));\n}\nfunction BuildAnyOfFast(stack, context, schema, value) {\n return E.ReduceOr(schema.anyOf.map((schema) => BuildSchema(stack, context, schema, value)));\n}\nexport function BuildAnyOf(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? BuildAnyOfStandard(stack, context, schema, value)\n : BuildAnyOfFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckAnyOf(stack, context, schema, value) {\n const results = schema.anyOf.reduce((result, schema) => {\n const nextContext = new CheckContext();\n return CheckSchema(stack, nextContext, schema, value) ? [...result, nextContext] : result;\n }, []);\n return G.IsGreaterThan(results.length, 0) && context.Merge(results);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorAnyOf(stack, context, schemaPath, instancePath, schema, value) {\n const failedContexts = [];\n const results = schema.anyOf.reduce((result, schema, index) => {\n const nextContext = new AccumulatedErrorContext();\n const nextSchemaPath = `${schemaPath}/anyOf/${index}`;\n const isSchema = ErrorSchema(stack, nextContext, nextSchemaPath, instancePath, schema, value);\n if (!isSchema)\n failedContexts.push(nextContext);\n return isSchema ? [...result, nextContext] : result;\n }, []);\n const isAnyOf = G.IsGreaterThan(results.length, 0) && context.Merge(results);\n if (!isAnyOf)\n failedContexts.forEach(failed => failed.GetErrors().forEach(error => context.AddError(error)));\n return isAnyOf || context.AddError({\n keyword: 'anyOf',\n schemaPath,\n instancePath,\n params: {}\n });\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildSchemaBoolean(_stack, _context, schema, _value) {\n return schema ? E.Constant(true) : E.Constant(false);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckSchemaBoolean(_stack, _context, schema, _value) {\n return schema;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorSchemaBoolean(stack, context, schemaPath, instancePath, schema, value) {\n return CheckSchemaBoolean(stack, context, schema, value) || context.AddError({\n keyword: 'boolean',\n schemaPath,\n instancePath,\n params: {}\n });\n}\n","// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildConst(_stack, _context, schema, value) {\n return G.IsValueLike(schema.const)\n ? E.IsEqual(value, E.Constant(schema.const))\n : E.IsDeepEqual(value, Externals.CreateVariable(schema.const));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckConst(_stack, _context, schema, value) {\n return G.IsValueLike(schema.const)\n ? G.IsEqual(value, schema.const)\n : G.IsDeepEqual(value, schema.const);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function ErrorConst(stack, context, schemaPath, instancePath, schema, value) {\n return CheckConst(stack, context, schema, value) || context.AddError({\n keyword: 'const',\n schemaPath,\n instancePath,\n params: { allowedValue: schema.const },\n });\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Invalid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return !(Schema.IsMinContains(schema) && G.IsEqual(schema.minContains, 0));\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const item = Unique();\n const isLength = E.Not(E.IsEqual(E.Member(value, 'length'), E.Constant(0)));\n const isSome = E.Call(E.Member(value, 'some'), [E.ArrowFunction([item], BuildSchema(stack, context, schema.contains, item))]);\n return E.And(isLength, isSome);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n return !G.IsEqual(value.length, 0) &&\n value.some((item) => CheckSchema(stack, context, schema.contains, item));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorContains(stack, context, schemaPath, instancePath, schema, value) {\n return CheckContains(stack, context, schema, value) || context.AddError({\n keyword: 'contains',\n schemaPath,\n instancePath,\n params: { minContains: 1 },\n });\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDependencies(stack, context, schema, value) {\n const isLength = E.IsEqual(E.Member(E.Keys(value), 'length'), E.Constant(0));\n const isEveryDependency = E.ReduceAnd(G.Entries(schema.dependencies).map(([key, schema]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const isSchema = BuildSchema(stack, context, schema, value);\n const isEveryKey = (schema) => E.ReduceAnd(schema.map((key) => E.HasPropertyKey(value, E.Constant(key))));\n return E.Or(notKey, G.IsArray(schema) ? isEveryKey(schema) : isSchema);\n }));\n return E.Or(isLength, isEveryDependency);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDependencies(stack, context, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.Every(G.Entries(schema.dependencies), 0, ([key, schema]) => {\n return !G.HasPropertyKey(value, key) || (G.IsArray(schema)\n ? schema.every((key) => G.HasPropertyKey(value, key))\n : CheckSchema(stack, context, schema, value));\n });\n return isLength || isEvery;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDependencies(stack, context, schemaPath, instancePath, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.EveryAll(G.Entries(schema.dependencies), 0, ([key, schema]) => {\n const nextSchemaPath = `${schemaPath}/dependencies/${key}`;\n return !G.HasPropertyKey(value, key) || (G.IsArray(schema)\n ? schema.every((dependency) => G.HasPropertyKey(value, dependency) || context.AddError({\n keyword: 'dependencies',\n schemaPath,\n instancePath,\n params: { property: key, dependencies: schema },\n })) : ErrorSchema(stack, context, nextSchemaPath, instancePath, schema, value));\n });\n return isLength || isEvery;\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDependentRequired(_stack, _context, schema, value) {\n const isLength = E.IsEqual(E.Member(E.Keys(value), 'length'), E.Constant(0));\n const isEvery = E.ReduceAnd(G.Entries(schema.dependentRequired).map(([key, keys]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const everyKey = E.ReduceAnd(keys.map((key) => E.HasPropertyKey(value, E.Constant(key))));\n return E.Or(notKey, everyKey);\n }));\n return E.Or(isLength, isEvery);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDependentRequired(_stack, _context, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.Every(G.Entries(schema.dependentRequired), 0, ([key, keys]) => {\n return !G.HasPropertyKey(value, key) ||\n keys.every((key) => G.HasPropertyKey(value, key));\n });\n return isLength || isEvery;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDependentRequired(_stack, context, schemaPath, instancePath, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEveryEntry = G.EveryAll(G.Entries(schema.dependentRequired), 0, ([key, keys]) => {\n return !G.HasPropertyKey(value, key) || G.EveryAll(keys, 0, (dependency) => G.HasPropertyKey(value, dependency) || context.AddError({\n keyword: 'dependentRequired',\n schemaPath,\n instancePath,\n params: { property: key, dependencies: keys },\n }));\n });\n return isLength || isEveryEntry;\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDependentSchemas(stack, context, schema, value) {\n const isLength = E.IsEqual(E.Member(E.Keys(value), 'length'), E.Constant(0));\n const isEvery = E.ReduceAnd(G.Entries(schema.dependentSchemas).map(([key, schema]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const isSchema = BuildSchema(stack, context, schema, value);\n return E.Or(notKey, isSchema);\n }));\n return E.Or(isLength, isEvery);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDependentSchemas(stack, context, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.Every(G.Entries(schema.dependentSchemas), 0, ([key, schema]) => {\n return !G.HasPropertyKey(value, key) ||\n CheckSchema(stack, context, schema, value);\n });\n return isLength || isEvery;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDependentSchemas(stack, context, schemaPath, instancePath, schema, value) {\n const isLength = G.IsEqual(G.Keys(value).length, 0);\n const isEvery = G.EveryAll(G.Entries(schema.dependentSchemas), 0, ([key, schema]) => {\n const nextSchemaPath = `${schemaPath}/dependentSchemas/${key}`;\n return !G.HasPropertyKey(value, key) ||\n ErrorSchema(stack, context, nextSchemaPath, instancePath, schema, value);\n });\n return isLength || isEvery;\n}\n","// deno-fmt-ignore-file\nimport * as Functions from './_functions.mjs';\nimport * as Schema from '../types/index.mjs';\nimport { CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildDynamicRef(stack, context, schema, value) {\n const target = stack.DynamicRef(schema) ?? false;\n return Functions.CreateFunction(stack, context, target, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckDynamicRef(stack, context, schema, value) {\n const target = stack.DynamicRef(schema) ?? false;\n return (Schema.IsSchema(target) && CheckSchema(stack, context, target, value));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorDynamicRef(stack, context, _schemaPath, instancePath, schema, value) {\n const target = stack.DynamicRef(schema) ?? false;\n return (Schema.IsSchema(target) && ErrorSchema(stack, context, '#', instancePath, target, value));\n}\n","// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildEnum(_stack, _context, schema, value) {\n return E.ReduceOr(schema.enum.map(option => {\n if (G.IsValueLike(option))\n return E.IsEqual(value, E.Constant(option));\n const variable = Externals.CreateVariable(option);\n return E.IsDeepEqual(value, variable);\n }));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckEnum(_stack, _context, schema, value) {\n return schema.enum.some(option => G.IsValueLike(option)\n ? G.IsEqual(value, option)\n : G.IsDeepEqual(value, option));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorEnum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckEnum(stack, context, schema, value) || context.AddError({\n keyword: 'enum',\n schemaPath,\n instancePath,\n params: { allowedValues: schema.enum }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildExclusiveMaximum(_stack, _context, schema, value) {\n return E.IsLessThan(value, E.Constant(schema.exclusiveMaximum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckExclusiveMaximum(_stack, _context, schema, value) {\n return G.IsLessThan(value, schema.exclusiveMaximum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorExclusiveMaximum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckExclusiveMaximum(stack, context, schema, value) || context.AddError({\n keyword: 'exclusiveMaximum',\n schemaPath,\n instancePath,\n params: { comparison: '<', limit: schema.exclusiveMaximum }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildExclusiveMinimum(_stack, _context, schema, value) {\n return E.IsGreaterThan(value, E.Constant(schema.exclusiveMinimum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckExclusiveMinimum(_stack, _context, schema, value) {\n return G.IsGreaterThan(value, schema.exclusiveMinimum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorExclusiveMinimum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckExclusiveMinimum(stack, context, schema, value) || context.AddError({\n keyword: 'exclusiveMinimum',\n schemaPath,\n instancePath,\n params: { comparison: '>', limit: schema.exclusiveMinimum }\n });\n}\n","const DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nfunction IsLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n/**\n * Returns true if the value is a ISO8601 Date component string\n * @source ajv-formats\n * @example `2020-12-12`\n */\nexport function IsDate(value) {\n const matches = DATE.exec(value);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return month >= 1 && month <= 12 && day >= 1 && day <= (month === 2 && IsLeapYear(year) ? 29 : DAYS[month]);\n}\n","const TIME = /^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(?:Z|([+-])(\\d\\d):(\\d\\d))?$/i;\n/**\n * Returns true if the value is a ISO time string\n * @specification\n */\nexport function IsTime(value, strictTimeZone = true) {\n const matches = TIME.exec(value);\n if (!matches)\n return false;\n const hr = +matches[1];\n const min = +matches[2];\n const sec = +matches[3];\n const tzSign = matches[4] === '-' ? -1 : 1; // Use matches[4] for sign\n const tzH = +(matches[5] || 0); // tzH is now matches[5]\n const tzM = +(matches[6] || 0); // tzM is now matches[6]\n if (tzH > 23 || tzM > 59)\n return false; // Check for valid hour/minute range in offset\n if (strictTimeZone && !matches[4] && value.toLowerCase().indexOf('z') === -1) {\n // If strictTimeZone is true, and neither 'Z' nor a '+/-' offset was found\n return false;\n }\n if (hr <= 23 && min <= 59 && sec < 60)\n return true;\n const utcMin = min - tzM * tzSign;\n const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0);\n return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61;\n}\n","import { IsDate } from './date.mjs';\nimport { IsTime } from './time.mjs';\n/**\n * Returns true if the value is a ISO8601 DateTime string\n * @source ajv-formats\n * @example `2020-12-12T20:20:40+00:00`\n */\nexport function IsDateTime(value, strictTimeZone = true) {\n const dateTime = value.split(/T/i);\n return dateTime.length === 2 && IsDate(dateTime[0]) && IsTime(dateTime[1], strictTimeZone);\n}\n","const Duration = /^P((\\d+Y(\\d+M(\\d+D)?)?|\\d+M(\\d+D)?|\\d+D)(T(\\d+H(\\d+M(\\d+S)?)?|\\d+M(\\d+S)?|\\d+S))?|T(\\d+H(\\d+M(\\d+S)?)?|\\d+M(\\d+S)?|\\d+S)|\\d+W)$/;\n/**\n * Returns true if the value is a valid ISO-8601 duration.\n * @specification https://tools.ietf.org/html/rfc3339\n */\nexport function IsDuration(value) {\n return Duration.test(value);\n}\n","const Email = /^(?!.*\\.\\.)[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n/**\n * Returns true if the value is an Email\n * @specification ajv-formats\n */\nexport function IsEmail(value) {\n return Email.test(value);\n}\n","import { Unreachable } from '../system/unreachable/index.mjs';\n// ------------------------------------------------------------------\n// PunyCode (RFC 3492)\n// ------------------------------------------------------------------\nconst PUNYCODE_BASE = 36;\nconst PUNYCODE_TMIN = 1;\nconst PUNYCODE_TMAX = 26;\nconst PUNYCODE_SKEW = 38;\nconst PUNYCODE_DAMP = 700;\nconst PUNYCODE_INITIAL_BIAS = 72;\nconst PUNYCODE_INITIAL_N = 128;\n// ------------------------------------------------------------------\n// Adapt\n// ------------------------------------------------------------------\nfunction Adapt(delta, numPoints, firstTime) {\n delta = firstTime ? Math.floor(delta / PUNYCODE_DAMP) : delta >> 1;\n delta += Math.floor(delta / numPoints);\n let k = 0;\n while (delta > (((PUNYCODE_BASE - PUNYCODE_TMIN) * PUNYCODE_TMAX) >> 1)) {\n delta = Math.floor(delta / (PUNYCODE_BASE - PUNYCODE_TMIN));\n k += PUNYCODE_BASE;\n }\n return k + Math.floor(((PUNYCODE_BASE - PUNYCODE_TMIN + 1) * delta) / (delta + PUNYCODE_SKEW));\n}\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nexport function Decode(value) {\n const output = [];\n let n = PUNYCODE_INITIAL_N;\n let i = 0;\n let bias = PUNYCODE_INITIAL_BIAS;\n const delimIdx = value.lastIndexOf('-');\n if (delimIdx > 0) {\n for (let j = 0; j < delimIdx; j++) {\n const cp = value.charCodeAt(j);\n if (cp >= 128)\n throw new Error('Invalid punycode: non-basic before delimiter');\n output.push(cp);\n }\n }\n let inIdx = delimIdx < 0 ? 0 : delimIdx + 1;\n while (inIdx < value.length) {\n const oldi = i;\n let w = 1;\n let k = PUNYCODE_BASE;\n while (true) {\n if (inIdx >= value.length)\n throw new Error('Invalid punycode: unexpected end of input');\n const ch = value.charCodeAt(inIdx++);\n let digit;\n if (ch >= 0x61 && ch <= 0x7a)\n digit = ch - 0x61; // a-z => 0-25\n else if (ch >= 0x30 && ch <= 0x39)\n digit = ch - 0x30 + 26; // 0-9 => 26-35\n // deno-coverage-ignore-start - _idna.ts maps input to lowercase, so we can't reach here\n else if (ch >= 0x41 && ch <= 0x5a)\n Unreachable(); // digit = ch - 0x41 // A-Z => 0-25\n // deno-coverage-ignore-stop\n else\n throw new Error('Invalid punycode: bad digit character');\n i += digit * w;\n const t = k <= bias ? PUNYCODE_TMIN : k >= bias + PUNYCODE_TMAX ? PUNYCODE_TMAX : k - bias;\n if (digit < t)\n break;\n w *= PUNYCODE_BASE - t;\n k += PUNYCODE_BASE;\n }\n const outLen = output.length + 1;\n bias = Adapt(i - oldi, outLen, oldi === 0);\n n += Math.floor(i / outLen);\n i %= outLen;\n output.splice(i, 0, n);\n i++;\n }\n return globalThis.String.fromCodePoint(...output);\n}\n","import { Unreachable } from '../system/unreachable/index.mjs';\nimport * as Puny from './_puny.mjs';\n// ------------------------------------------------------------------\n// Unicode General Category Helper (RFC 5892)\n// ------------------------------------------------------------------\nfunction IsNonspacingMark(cp) {\n return /\\p{Mn}/u.test(String.fromCodePoint(cp));\n}\nfunction IsSpacingCombiningMark(cp) {\n return /\\p{Mc}/u.test(String.fromCodePoint(cp));\n}\nfunction IsEnclosingMark(cp) {\n return /\\p{Me}/u.test(String.fromCodePoint(cp));\n}\nfunction IsCombiningMark(cp) {\n return IsNonspacingMark(cp) || IsSpacingCombiningMark(cp) || IsEnclosingMark(cp);\n}\n// ------------------------------------------------------------------\n// RFC 5892 §2.6 DISALLOWED exceptions\n//\n// https://tools.ietf.org/html/rfc5892#section-2.6\n// ------------------------------------------------------------------\nconst RFC5892_DISALLOWED = new Set([\n 0x0640, // ARABIC TATWEEL\n 0x07fa, // NKO LAJANYALAN\n 0x302e, // HANGUL SINGLE DOT TONE MARK\n 0x302f, // HANGUL DOUBLE DOT TONE MARK\n 0x3031, // VERTICAL KANA REPEAT MARK\n 0x3032, // VERTICAL KANA REPEAT WITH VOICED ITERATION MARK\n 0x3033, // VERTICAL KANA REPEAT MARK UPPER HALF\n 0x3034, // VERTICAL KANA REPEAT WITH VOICED ITERATION MARK UPPER HALF\n 0x3035, // VERTICAL KANA REPEAT MARK LOWER HALF\n 0x303b // VERTICAL IDEOGRAPHIC ITERATION MARK\n]);\n// ------------------------------------------------------------------\n// A set of Virama (halant) code points used to validate CONTEXTJ\n// rules (RFC 5892 Appendix A.1). These characters allow a subsequent\n// Zero Width Non-Joiner (U+200C) or Zero Width Joiner (U+200D) to\n// be valid in a label.\n// ------------------------------------------------------------------\nconst VIRAMA_CPS = new Set([\n 0x094d,\n 0x09cd,\n 0x0a4d,\n 0x0acd,\n 0x0b4d,\n 0x0bcd,\n 0x0c4d,\n 0x0ccd,\n 0x0d3b,\n 0x0d3c,\n 0x0d4d,\n 0x0dca,\n 0x1b44,\n 0x1baa,\n 0x1bab,\n 0xa9c0,\n 0x11046,\n 0x1107f,\n 0x110b9,\n 0x11133,\n 0x11134,\n 0x111c0,\n 0x11235,\n 0x1134d,\n 0x11442,\n 0x114c2,\n 0x115bf,\n 0x1163f,\n 0x116b6,\n 0x11c3f,\n 0x11d44,\n 0x11d45\n]);\n// ------------------------------------------------------------------\n// Guards for CONTEXTO rules (RFC 5892 Appendix A)\n// ------------------------------------------------------------------\nfunction IsGreek(cp) {\n return /\\p{Script=Greek}/u.test(String.fromCodePoint(cp));\n}\nfunction IsHebrew(cp) {\n return /\\p{Script=Hebrew}/u.test(String.fromCodePoint(cp));\n}\nfunction IsHiragana(cp) {\n return /\\p{Script=Hiragana}/u.test(String.fromCodePoint(cp));\n}\nfunction IsKatakana(cp) {\n return /\\p{Script=Katakana}/u.test(String.fromCodePoint(cp));\n}\nfunction IsHan(cp) {\n return /\\p{Script=Han}/u.test(String.fromCodePoint(cp));\n}\nfunction IsArabicIndicDigit(cp) {\n return cp >= 0x0660 && cp <= 0x0669;\n}\nfunction IsExtendedArabicIndicDigit(cp) {\n return cp >= 0x06f0 && cp <= 0x06f9;\n}\nfunction IsVirama(cp) {\n return VIRAMA_CPS.has(cp);\n}\n// ------------------------------------------------------------------\n// IsUnicodeLabel\n// ------------------------------------------------------------------\nfunction IsUnicodeLabel(value) {\n // deno-coverage-ignore-start - unable to reach via format guards\n if (value.length === 0)\n return Unreachable(); // false\n // deno-coverage-ignore-stop\n // Use spread to handle surrogate pairs and provide O(1) neighbor access\n const cps = [...value].map((c) => c.codePointAt(0));\n const len = cps.length;\n // RFC 5891 §4.2.3.2: Hyphen rules\n if (cps[0] === 0x2d || cps[len - 1] === 0x2d)\n return false;\n if (len >= 4 && cps[2] === 0x2d && cps[3] === 0x2d)\n return false;\n // RFC 5891 §4.2.3.2 - Must not begin with a combining mark\n if (IsCombiningMark(cps[0]))\n return false;\n let hasJapanese = false;\n let hasArabicIndic = false;\n let hasExtendedArabicIndic = false;\n for (let i = 0; i < len; i++) {\n const cp = cps[i];\n // 1. DISALLOWED exceptions\n if (RFC5892_DISALLOWED.has(cp))\n return false;\n // 2. Collect Flags\n if (IsHiragana(cp) || IsKatakana(cp) || IsHan(cp))\n hasJapanese = true;\n if (IsArabicIndicDigit(cp))\n hasArabicIndic = true;\n if (IsExtendedArabicIndicDigit(cp))\n hasExtendedArabicIndic = true;\n // 3. CONTEXTO / CONTEXTJ Neighbor Rules\n const prev = cps[i - 1], next = cps[i + 1];\n switch (cp) {\n case 0x00b7:\n if (prev !== 0x006c || next !== 0x006c)\n return false;\n break; // MIDDLE DOT (Catalan)\n case 0x0375:\n if (next === undefined || !IsGreek(next))\n return false;\n break; // Greek KERAIA\n case 0x05f3:\n case 0x05f4:\n if (prev === undefined || !IsHebrew(prev))\n return false;\n break; // Hebrew GERESH\n case 0x200c: // ZWNJ - RFC 5892 Appendix A.1\n // Note: Full validation requires a Unicode joining type table. We reject\n // only when preceded by ASCII (U+0000-U+007F), which can never satisfy\n // the Virama or cursive-joining rules.\n if (prev === undefined || (prev < 0x0080 && !IsVirama(prev)))\n return false;\n break;\n case 0x200d: // ZWJ - RFC 5892 Appendix A.2\n if (prev === undefined || !IsVirama(prev))\n return false;\n break;\n case 0x30fb: /* Checked at end via hasJapanese */\n break; // KATAKANA MIDDLE DOT\n }\n }\n // 4. Global Context Validations (Post-loop)\n // RFC 5892 Appendix A.7 - Katakana Middle Dot requirement\n if (value.includes('\\u30fb') && !hasJapanese)\n return false;\n // RFC 5892 Appendix A.8/A.9 - Mixing Arabic Digits\n if (hasArabicIndic && hasExtendedArabicIndic)\n return false;\n return true;\n}\n// ------------------------------------------------------------------\n// IsAsciiLabel\n// ------------------------------------------------------------------\nfunction IsAsciiLabel(value) {\n // Must not start or end with a hyphen\n if (value.charCodeAt(0) === 45 || value.charCodeAt(value.length - 1) === 45)\n return false;\n // RFC 5891 §4.2.3.1 : \"--\" at positions 3-4 is reserved for A-labels only\n if (value.length >= 4 && value.charCodeAt(2) === 45 && value.charCodeAt(3) === 45)\n return false;\n // All characters must be alphanumeric or hyphen\n for (let i = 0; i < value.length; i++) {\n const ch = value.charCodeAt(i);\n if (!((ch >= 97 && ch <= 122) || // a-z\n (ch >= 65 && ch <= 90) || // A-Z\n (ch >= 48 && ch <= 57) || // 0-9\n ch === 45 // '-'\n ))\n return false;\n }\n return true;\n}\n// ------------------------------------------------------------------\n// IsPunyLabel\n// ------------------------------------------------------------------\nfunction IsPuny(value) {\n return value.toLowerCase().startsWith('xn--');\n}\nfunction IsPunyLabel(value) {\n try {\n const payload = value.slice(4).toLowerCase();\n // 1. Structural Validation (RFC 3492 syntax)\n //\n // If the payload contains a hyphen, it MUST be a delimiter separating basic\n // ASCII characters from the variable-length integers. A payload consisting\n // of ONLY a hyphen or starting with multiple hyphens without basic ASCII\n // characters (like \"-9uc\") is fundamentally malformed.\n //\n const lastHyphen = payload.lastIndexOf('-');\n if (lastHyphen === 0) {\n // Catches \"-9uc\" right here because the delimiter is at index 0, meaning 0\n // basic ASCII characters preceded it, which is non-canonical.\n return false;\n }\n // 2. Decode the payload\n const decoded = Puny.Decode(payload);\n if (!decoded)\n return false;\n // 3. Validate the output rules against RFC 5892\n return IsUnicodeLabel(decoded);\n }\n catch {\n return false;\n }\n}\n// ------------------------------------------------------------------\n// IsIdnLabel\n// ------------------------------------------------------------------\nexport function IsIdnLabel(value) {\n if (value.length === 0 || value.length > 63)\n return false;\n return IsPuny(value) ? IsPunyLabel(value) : IsUnicodeLabel(value);\n}\n// ------------------------------------------------------------------\n// IsLabel\n// ------------------------------------------------------------------\nexport function IsLabel(value) {\n if (value.length === 0 || value.length > 63)\n return false;\n return IsPuny(value) ? IsPunyLabel(value) : IsAsciiLabel(value);\n}\n","import * as Idna from './_idna.mjs';\n/**\n * Returns true if the value is a valid hostname.\n * @specification https://tools.ietf.org/html/rfc1123\n * @specification https://tools.ietf.org/html/rfc5891\n * @specification https://tools.ietf.org/html/rfc5892\n */\nexport function IsHostname(value) {\n if (value.length === 0 || value.length > 253)\n return false;\n if (value.charCodeAt(value.length - 1) === 46)\n return false;\n for (const label of value.split('.')) {\n if (!Idna.IsLabel(label))\n return false;\n }\n return true;\n}\n","const IdnEmail = /^(?!.*\\.\\.)[\\p{L}\\p{N}!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\p{L}\\p{N}!#$%&'*+/=?^_`{|}~-]+)*@[\\p{L}\\p{N}](?:[\\p{L}\\p{N}-]{0,61}[\\p{L}\\p{N}])?(?:\\.[\\p{L}\\p{N}](?:[\\p{L}\\p{N}-]{0,61}[\\p{L}\\p{N}])?)*$/iu;\n/**\n * Returns true if the value is an IdnEmail\n * @specification ajv-formats (unicode-extension)\n */\nexport function IsIdnEmail(value) {\n return IdnEmail.test(value);\n}\n","import { IsIdnLabel } from './_idna.mjs';\n/**\n * Returns true if the value is a valid internationalized (IDN) hostname.\n * @specification https://tools.ietf.org/html/rfc3490\n * @specification https://tools.ietf.org/html/rfc5891\n * @specification https://tools.ietf.org/html/rfc5892\n */\nexport function IsIdnHostname(value) {\n if (value.length === 0 || value.includes(' '))\n return false;\n const canonical = value.normalize('NFC').replace(/[\\u002E\\u3002\\uFF0E\\uFF61]/g, '.');\n if (canonical.length > 253)\n return false;\n for (const label of canonical.split('.')) {\n if (!IsIdnLabel(label))\n return false;\n }\n return true;\n}\n","// ------------------------------------------------------------------\n// Ranged Fast Path\n// ------------------------------------------------------------------\n/* Returns true if the value is a IPV4 address from index range offsets */\nexport function IsIPv4Internal(value, start, end) {\n let dots = 0;\n let num = 0;\n let digits = 0;\n let leading = 0;\n for (let i = start; i < end; i++) {\n const ch = value.charCodeAt(i);\n if (ch === 46) { // '.'\n if (digits === 0 || num > 255 || (leading === 48 && digits > 1))\n return false;\n dots++;\n num = 0;\n digits = 0;\n leading = 0;\n }\n else if (ch >= 48 && ch <= 57) { // '0'-'9'\n if (digits === 0)\n leading = ch;\n num = num * 10 + (ch - 48);\n digits++;\n }\n else {\n return false;\n }\n }\n return dots === 3 && digits > 0 && num <= 255 && !(leading === 48 && digits > 1);\n}\n/**\n * Returns true if the value is a IPV4 address\n * @specification http://tools.ietf.org/html/rfc2673#section-3.2\n */\nexport function IsIPv4(value) {\n return IsIPv4Internal(value, 0, value.length);\n}\n","import { IsIPv4Internal } from './ipv4.mjs';\nfunction InRange(ch) {\n return (ch >= 48 && ch <= 57) || // 0-9\n (ch >= 65 && ch <= 70) || // A-F\n (ch >= 97 && ch <= 102); // a-f\n}\n/**\n * Returns true if the value is an IPv6 address\n * @specification http://tools.ietf.org/html/rfc2373#section-2.2\n */\nexport function IsIPv6(value) {\n const length = value.length;\n if (length === 0)\n return false;\n let groups = 0;\n let compressed = false;\n let i = 0;\n // handle leading '::'\n if (value.charCodeAt(0) === 58 && value.charCodeAt(1) === 58) {\n if (length === 2)\n return true; // '::' is valid\n compressed = true;\n i = 2;\n }\n while (i < length) {\n // read hex digits\n let digits = 0;\n const start = i;\n while (i < length && InRange(value.charCodeAt(i))) {\n i++;\n digits++;\n }\n if (digits === 0)\n return false;\n const next = value.charCodeAt(i);\n // check for embedded IPv4 at the end\n if (next === 46) { // '.'\n if (!IsIPv4Internal(value, start, length))\n return false;\n groups += 2;\n i = length;\n break;\n }\n if (digits > 4)\n return false;\n groups++;\n if (i === length)\n break;\n // expect ':' separator\n if (next !== 58)\n return false;\n i++;\n // check for '::' compression\n if (value.charCodeAt(i) === 58) {\n if (compressed)\n return false; // only one '::' allowed\n // check for ':::'\n if (value.charCodeAt(i + 1) === 58)\n return false;\n compressed = true;\n i++;\n if (i === length)\n break; // trailing '::'\n }\n }\n return compressed ? groups <= 7 : groups === 8;\n}\n","// deno-lint-ignore-file no-control-regex\n// deno-coverage-ignore-start\nfunction TryUrl(value) {\n try {\n new URL(value, 'http://example.com'); // This handles relative paths correctly\n return true;\n }\n catch {\n return false;\n }\n}\n// deno-coverage-ignore-stop\n/**\n * Returns true if the value is a Iri reference\n * @specification\n */\nexport function IsIriReference(value) {\n // 1. Basic forbidden character checks (must be percent-encoded or not exist)\n // RFC 3987 excludes space, backslash, and control characters from being unencoded.\n if (value.includes(' ')) { // Unencoded space (U+0020)\n return false;\n }\n if (value.includes('\\\\')) { // Backslash (U+005C)\n return false;\n }\n // ASCII control characters (U+0000-U+001F and U+007F)\n if (/[\\x00-\\x1F\\x7F]/.test(value)) {\n return false;\n }\n // 2. Check for invalid percent-encoding\n // A percent sign '%' must always be followed by exactly two hexadecimal characters.\n // This regex finds a '%' that is NOT followed by two hexadecimal characters.\n // - `%` matches a literal percent sign.\n // - `(?!...)` is a negative lookahead, asserting that what follows is NOT.\n // - `[0-9a-fA-F]{2}` matches exactly two hexadecimal digits.\n // So, if a '%' is found that is not immediately followed by two hex digits, this regex will match.\n if (/%(?![0-9a-fA-F]{2})/.test(value)) {\n return false;\n }\n // 3. Handle empty string (valid relative reference to the current document)\n if (value === '') {\n return true;\n }\n // 4. Determine if it's attempting to be an absolute IRI or a relative IRI, and parse.\n const colonIndex = value.indexOf(':');\n const hasValidSchemePrefix = colonIndex > 0 && // Colon must not be at the very beginning (e.g., \":foo\")\n /^[a-zA-Z][a-zA-Z0-9+\\-.]*$/.test(value.substring(0, colonIndex));\n if (hasValidSchemePrefix) {\n return TryUrl(value);\n }\n else {\n // This handles cases like `httpx//example.com/path` which look like malformed absolute URIs.\n const looksLikeMalformedSchemeAndAuthority = value.match(/^([a-zA-Z][a-zA-Z0-9+\\-.]*)(\\/\\/)/);\n if (looksLikeMalformedSchemeAndAuthority && colonIndex === -1) {\n return false;\n }\n // Otherwise, it's a relative IRI reference.\n return TryUrl(value);\n }\n}\n","/**\n * Returns true if the value is a Iri\n * @specification\n */\nexport function IsIri(value) {\n try {\n new URL(value);\n return true;\n }\n catch {\n return false;\n }\n}\n","const JsonPointerUriFragment = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\n/**\n * Returns true if the value is a json pointer uri fragment\n * @specification\n * @source ajv-formats\n */\nexport function IsJsonPointerUriFragment(value) {\n return JsonPointerUriFragment.test(value);\n}\n","const JsonPointer = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\n/**\n * Returns true if the value is a json pointer\n * @specification\n * @source ajv-formats\n */\nexport function IsJsonPointer(value) {\n return JsonPointer.test(value);\n}\n","/**\n * Returns true if the value is a regular expression string pattern\n * @specification\n * @source ajv-formats\n */\nexport function IsRegex(value) {\n if (value.length === 0) {\n return false;\n }\n try {\n new RegExp(value);\n return true;\n }\n catch {\n return false;\n }\n}\n","const RelativeJsonPointer = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n/**\n * Returns true if the value is a relative json pointer\n * @specification\n * @source ajv-formats\n */\nexport function IsRelativeJsonPointer(value) {\n return RelativeJsonPointer.test(value);\n}\n","// deno-lint-ignore-file no-control-regex\nconst UriReference = /^(?!.*[^\\x00-\\x7F])(?!.*\\\\)(?:(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/\\/[^\\s[\\]{}<>^`|]*)?|[^\\s[\\]{}<>^`|]*)(?:\\?[^\\s[\\]{}<>^`|]*)?(?:#[^\\s[\\]{}<>^`|]*)?$/i;\n/**\n * Returns true if the value is a valid URI Reference.\n * @specification https://tools.ietf.org/html/rfc3986\n */\nexport function IsUriReference(value) {\n return UriReference.test(value);\n}\n","// deno-lint-ignore-file\nconst UriTemplate = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n/**\n * Returns true if the value is a uri template\n * @specification\n * @source ajv-formats\n */\nexport function IsUriTemplate(value) {\n return UriTemplate.test(value);\n}\n","function IsAlpha(ch) {\n return (ch >= 97 && ch <= 122) || (ch >= 65 && ch <= 90); // a-z, A-Z\n}\nfunction IsAlphaNumeric(ch) {\n return IsAlpha(ch) || (ch >= 48 && ch <= 57); // a-z, A-Z, 0-9\n}\nfunction IsHex(ch) {\n return (ch >= 48 && ch <= 57) || // 0-9\n (ch >= 65 && ch <= 70) || // A-F\n (ch >= 97 && ch <= 102); // a-f\n}\nfunction IsSchemeChar(ch) {\n return IsAlphaNumeric(ch) ||\n ch === 43 || ch === 45 || ch === 46; // '+', '-', '.'\n}\nfunction IsUnreserved(ch) {\n return IsAlphaNumeric(ch) ||\n ch === 45 || ch === 46 || // '-', '.'\n ch === 95 || ch === 126; // '_', '~'\n}\nfunction IsSubDelim(ch) {\n return ch === 33 || ch === 36 || ch === 38 || ch === 39 ||\n ch === 40 || ch === 41 || ch === 42 || ch === 43 ||\n ch === 44 || ch === 59 || ch === 61; // ! $ & ' ( ) * + , ; =\n}\nfunction IsPchar(ch) {\n return IsUnreserved(ch) || IsSubDelim(ch) || ch === 58 || ch === 64; // ':', '@'\n}\n/**\n * Returns true if the value matches RFC 3986 URI syntax.\n * @specification https://tools.ietf.org/html/rfc3986\n */\nexport function IsUri(value) {\n const length = value.length;\n if (length === 0)\n return false;\n // Scheme: must start with a letter\n if (!IsAlpha(value.charCodeAt(0)))\n return false;\n // Scheme: continues until ':'\n let i = 1;\n while (i < length) {\n const ch = value.charCodeAt(i);\n if (ch === 58)\n break; // ':'\n if (!IsSchemeChar(ch))\n return false;\n i++;\n }\n // Ensure scheme is terminated by ':'\n if (value.charCodeAt(i) !== 58)\n return false;\n i++;\n // Authority: optional '//'\n if (value.charCodeAt(i) === 47 && value.charCodeAt(i + 1) === 47) {\n i += 2;\n // Userinfo: check for '@' before path/query/fragment delimiters\n const authorityStart = i;\n let atPos = -1;\n for (let j = i; j < length; j++) {\n const ch = value.charCodeAt(j);\n if (ch === 64) {\n atPos = j;\n break;\n } // '@'\n if (ch === 47 || ch === 63 || ch === 35)\n break; // '/', '?', '#'\n }\n if (atPos !== -1) {\n // Userinfo: validate allowed chars and percent-encoding\n for (let j = authorityStart; j < atPos; j++) {\n const ch = value.charCodeAt(j);\n if (ch === 91 || ch === 93)\n return false; // No '[' or ']' in userinfo\n if (ch === 37) { // '%' percent-encoding\n if (j + 2 >= atPos || !IsHex(value.charCodeAt(j + 1)) || !IsHex(value.charCodeAt(j + 2)))\n return false;\n j += 2;\n }\n else if (!IsUnreserved(ch) && !IsSubDelim(ch) && ch !== 58)\n return false;\n }\n i = atPos + 1;\n }\n // Host: IP-literal [addr] or reg-name\n if (value.charCodeAt(i) === 91) { // '['\n i++;\n while (i < length && value.charCodeAt(i) !== 93)\n i++;\n if (value.charCodeAt(i) !== 93)\n return false; // ']'\n i++;\n }\n else {\n // Host: validate ASCII; skip validation for non-ASCII (Unicode hosts)\n while (i < length) {\n const ch = value.charCodeAt(i);\n if (ch === 47 || ch === 63 || ch === 35 || ch === 58)\n break;\n if (ch < 128 && !IsUnreserved(ch) && !IsSubDelim(ch))\n return false;\n i++;\n }\n }\n // Port: optional digits after ':'\n if (value.charCodeAt(i) === 58) { // ':'\n i++;\n while (i < length) {\n const ch = value.charCodeAt(i);\n if (ch === 47 || ch === 63 || ch === 35)\n break;\n if (ch < 48 || ch > 57)\n return false; // 0-9\n i++;\n }\n }\n }\n // Path, Query, and Fragment\n while (i < length) {\n const ch = value.charCodeAt(i);\n if (ch === 37) { // '%' percent-encoding\n if (i + 2 >= length || !IsHex(value.charCodeAt(i + 1)) || !IsHex(value.charCodeAt(i + 2)))\n return false;\n i += 2;\n }\n else if (ch > 127) {\n return false; // URI is ASCII-only\n }\n else if (!(IsPchar(ch) || ch === 47 || ch === 63 || ch === 35)) {\n return false; // '/', '?', '#'\n }\n i++;\n }\n return true;\n}\n","const Url = /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\n/**\n * Returns true if the value is a Url\n * @specification\n * @source ajv-formats\n */\nexport function IsUrl(value) {\n return Url.test(value);\n}\n","const Uuid = /^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\n/**\n * Returns true if the value is a uuid\n * @specification https://www.rfc-editor.org/info/rfc4122/\n * @specification https://www.rfc-editor.org/info/rfc9562/\n */\nexport function IsUuid(value) {\n return Uuid.test(value);\n}\n","import { IsDateTime } from './date_time.mjs';\nimport { IsDate } from './date.mjs';\nimport { IsDuration } from './duration.mjs';\nimport { IsEmail } from './email.mjs';\nimport { IsHostname } from './hostname.mjs';\nimport { IsIdnEmail } from './idn_email.mjs';\nimport { IsIdnHostname } from './idn_hostname.mjs';\nimport { IsIPv4 } from './ipv4.mjs';\nimport { IsIPv6 } from './ipv6.mjs';\nimport { IsIriReference } from './iri_reference.mjs';\nimport { IsIri } from './iri.mjs';\nimport { IsJsonPointerUriFragment } from './json_pointer_uri_fragment.mjs';\nimport { IsJsonPointer } from './json_pointer.mjs';\nimport { IsRegex } from './regex.mjs';\nimport { IsRelativeJsonPointer } from './relative_json_pointer.mjs';\nimport { IsTime } from './time.mjs';\nimport { IsUriReference } from './uri_reference.mjs';\nimport { IsUriTemplate } from './uri_template.mjs';\nimport { IsUri } from './uri.mjs';\nimport { IsUrl } from './url.mjs';\nimport { IsUuid } from './uuid.mjs';\n// ------------------------------------------------------------------\n// Formats\n// ------------------------------------------------------------------\nconst formats = new Map();\n// ------------------------------------------------------------------\n// Clear\n// ------------------------------------------------------------------\n/** Clears all entries */\nexport function Clear() {\n formats.clear();\n}\n// ------------------------------------------------------------------\n// Entries\n// ------------------------------------------------------------------\n/** Returns format entries in this registry */\nexport function Entries() {\n return [...formats.entries()];\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\n/** Sets a format */\nexport function Set(format, check) {\n formats.set(format, check);\n}\n// ------------------------------------------------------------------\n// Has\n// ------------------------------------------------------------------\n/** Returns true if the registry has this format */\nexport function Has(format) {\n return formats.has(format);\n}\n// ------------------------------------------------------------------\n// Get\n// ------------------------------------------------------------------\n/** Gets a format or undefined if not exists */\nexport function Get(format) {\n return formats.get(format);\n}\n// ------------------------------------------------------------------\n// Test\n// ------------------------------------------------------------------\n/** Tests a value against a format, if the format is not registered, true */\nexport function Test(format, value) {\n return formats.get(format)?.(value) ?? true;\n}\n// ------------------------------------------------------------------\n// Reset\n// ------------------------------------------------------------------\n/** Resets all formats to defaults */\nexport function Reset() {\n Clear();\n formats.set('date-time', IsDateTime);\n formats.set('date', IsDate);\n formats.set('duration', IsDuration);\n formats.set('email', IsEmail);\n formats.set('hostname', IsHostname);\n formats.set('idn-email', IsIdnEmail);\n formats.set('idn-hostname', IsIdnHostname);\n formats.set('ipv4', IsIPv4);\n formats.set('ipv6', IsIPv6);\n formats.set('iri-reference', IsIriReference);\n formats.set('iri', IsIri);\n formats.set('json-pointer-uri-fragment', IsJsonPointerUriFragment);\n formats.set('json-pointer', IsJsonPointer);\n formats.set('regex', IsRegex);\n formats.set('relative-json-pointer', IsRelativeJsonPointer);\n formats.set('time', IsTime);\n formats.set('uri-reference', IsUriReference);\n formats.set('uri-template', IsUriTemplate);\n formats.set('uri', IsUri);\n formats.set('url', IsUrl);\n formats.set('uuid', IsUuid);\n}\nReset();\n","// deno-fmt-ignore-file\nimport { Format } from '../../format/index.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildFormat(_stack, _context, schema, value) {\n return E.Call(E.Member('Format', 'Test'), [E.Constant(schema.format), value]);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckFormat(_stack, _context, schema, value) {\n return Format.Test(schema.format, value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorFormat(stack, context, schemaPath, instancePath, schema, value) {\n return CheckFormat(stack, context, schema, value) || context.AddError({\n keyword: 'format',\n schemaPath,\n instancePath,\n params: { format: schema.format },\n });\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { AccumulatedErrorContext } from './_context.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildIf(stack, context, schema, value) {\n const thenSchema = Schema.IsThen(schema) ? schema.then : true;\n const elseSchema = Schema.IsElse(schema) ? schema.else : true;\n return E.Ternary(BuildSchema(stack, context, schema.if, value), BuildSchema(stack, context, thenSchema, value), BuildSchema(stack, context, elseSchema, value));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckIf(stack, context, schema, value) {\n const thenSchema = Schema.IsThen(schema) ? schema.then : true;\n const elseSchema = Schema.IsElse(schema) ? schema.else : true;\n return CheckSchema(stack, context, schema.if, value)\n ? CheckSchema(stack, context, thenSchema, value)\n : CheckSchema(stack, context, elseSchema, value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorIf(stack, context, schemaPath, instancePath, schema, value) {\n const thenSchema = Schema.IsThen(schema) ? schema.then : true;\n const elseSchema = Schema.IsElse(schema) ? schema.else : true;\n const trueContext = new AccumulatedErrorContext();\n const isIf = ErrorSchema(stack, trueContext, `${schemaPath}/if`, instancePath, schema.if, value)\n ? ErrorSchema(stack, trueContext, `${schemaPath}/then`, instancePath, thenSchema, value) || context.AddError({\n keyword: 'if',\n schemaPath,\n instancePath,\n params: { failingKeyword: 'then' },\n })\n : ErrorSchema(stack, context, `${schemaPath}/else`, instancePath, elseSchema, value) || context.AddError({\n keyword: 'if',\n schemaPath,\n instancePath,\n params: { failingKeyword: 'else' },\n });\n if (isIf)\n context.Merge([trueContext]);\n return isIf;\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\n// ------------------------------------------------------------------\n// ItemsSized\n// ------------------------------------------------------------------\nfunction BuildItemsSized(stack, context, schema, value) {\n return E.ReduceAnd(schema.items.map((schema, index) => {\n const isLength = E.IsLessEqualThan(E.Member(value, 'length'), E.Constant(index));\n const isSchema = BuildSchemaPushStack(stack, context, schema, `${value}[${index}]`);\n const addIndex = context.AddIndex(E.Constant(index));\n const guarded = context.UseUnevaluated() ? E.And(isSchema, addIndex) : isSchema;\n return E.Or(isLength, guarded);\n }));\n}\nfunction CheckItemsSized(stack, context, schema, value) {\n return G.Every(schema.items, 0, (schema, index) => {\n return G.IsLessEqualThan(value.length, index)\n || (CheckSchemaPushStack(stack, context, schema, value[index]) && context.AddIndex(index));\n });\n}\nfunction ErrorItemsSized(stack, context, schemaPath, instancePath, schema, value) {\n return G.EveryAll(schema.items, 0, (schema, index) => {\n const nextSchemaPath = `${schemaPath}/items/${index}`;\n const nextInstancePath = `${instancePath}/${index}`;\n return G.IsLessEqualThan(value.length, index)\n || (ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema, value[index]) && context.AddIndex(index));\n });\n}\n// ------------------------------------------------------------------\n// ItemsUnsized\n// ------------------------------------------------------------------\nfunction BuildItemsUnsized(stack, context, schema, value) {\n const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;\n const isSchema = BuildSchemaPushStack(stack, context, schema.items, 'element');\n const addIndex = context.AddIndex('index');\n const guarded = context.UseUnevaluated() ? E.And(isSchema, addIndex) : isSchema;\n return E.Every(value, E.Constant(offset), ['element', 'index'], guarded);\n}\nfunction CheckItemsUnsized(stack, context, schema, value) {\n const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;\n return G.Every(value, offset, (element, index) => {\n return CheckSchemaPushStack(stack, context, schema.items, element)\n && context.AddIndex(index);\n });\n}\nfunction ErrorItemsUnsized(stack, context, schemaPath, instancePath, schema, value) {\n const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;\n return G.EveryAll(value, offset, (element, index) => {\n const nextSchemaPath = `${schemaPath}/items`;\n const nextInstancePath = `${instancePath}/${index}`;\n return ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema.items, element)\n && context.AddIndex(index);\n });\n}\n// ------------------------------------------------------------------\n// Items\n// ------------------------------------------------------------------\nexport function BuildItems(stack, context, schema, value) {\n return Schema.IsItemsSized(schema) ? BuildItemsSized(stack, context, schema, value) : BuildItemsUnsized(stack, context, schema, value);\n}\nexport function CheckItems(stack, context, schema, value) {\n return Schema.IsItemsSized(schema) ? CheckItemsSized(stack, context, schema, value) : CheckItemsUnsized(stack, context, schema, value);\n}\nexport function ErrorItems(stack, context, schemaPath, instancePath, schema, value) {\n return Schema.IsItemsSized(schema) ? ErrorItemsSized(stack, context, schemaPath, instancePath, schema, value) : ErrorItemsUnsized(stack, context, schemaPath, instancePath, schema, value);\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return Schema.IsContains(schema);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const [result, item] = [Unique(), Unique()];\n const count = E.Call(E.Member(value, 'reduce'), [E.ArrowFunction([result, item], E.Ternary(BuildSchema(stack, context, schema.contains, item), E.PrefixIncrement(result), result)), E.Constant(0)]);\n return E.IsLessEqualThan(count, E.Constant(schema.maxContains));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n const count = value.reduce((result, item) => CheckSchema(stack, context, schema.contains, item) ? ++result : result, 0);\n return G.IsLessEqualThan(count, schema.maxContains);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaxContains(stack, context, schemaPath, instancePath, schema, value) {\n const minContains = Schema.IsMinContains(schema) ? schema.minContains : 1;\n return CheckMaxContains(stack, context, schema, value) || context.AddError({\n keyword: 'contains',\n schemaPath,\n instancePath,\n params: { minContains, maxContains: schema.maxContains },\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaximum(_stack, _context, schema, value) {\n return E.IsLessEqualThan(value, E.Constant(schema.maximum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaximum(_stack, _context, schema, value) {\n return G.IsLessEqualThan(value, schema.maximum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaximum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaximum(stack, context, schema, value) || context.AddError({\n keyword: 'maximum',\n schemaPath,\n instancePath,\n params: { comparison: '<=', limit: schema.maximum }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxItems(_stack, _context, schema, value) {\n return E.IsLessEqualThan(E.Member(value, 'length'), E.Constant(schema.maxItems));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxItems(_stack, _context, schema, value) {\n return G.IsLessEqualThan(value.length, schema.maxItems);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaxItems(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaxItems(stack, context, schema, value) || context.AddError({\n keyword: 'maxItems',\n schemaPath,\n instancePath,\n params: { limit: schema.maxItems }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxLength(_stack, _context, schema, value) {\n return E.IsMaxLength(value, E.Constant(schema.maxLength));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxLength(_stack, _context, schema, value) {\n return G.IsMaxLength(value, schema.maxLength);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMaxLength(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaxLength(stack, context, schema, value) || context.AddError({\n keyword: 'maxLength',\n schemaPath,\n instancePath,\n params: { limit: schema.maxLength }\n });\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMaxProperties(_stack, _context, schema, value) {\n return E.IsLessEqualThan(E.Member(E.Keys(value), 'length'), E.Constant(schema.maxProperties));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxProperties(_stack, _context, schema, value) {\n return G.IsLessEqualThan(G.Keys(value).length, schema.maxProperties);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function ErrorMaxProperties(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMaxProperties(stack, context, schema, value) || context.AddError({\n keyword: 'maxProperties',\n schemaPath,\n instancePath,\n params: { limit: schema.maxProperties },\n });\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return Schema.IsContains(schema);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const [result, item] = [Unique(), Unique()];\n const count = E.Call(E.Member(value, 'reduce'), [E.ArrowFunction([result, item], E.Ternary(BuildSchema(stack, context, schema.contains, item), E.PrefixIncrement(result), result)), E.Constant(0)]);\n return E.IsGreaterEqualThan(count, E.Constant(schema.minContains));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinContains(stack, context, schema, value) {\n if (!IsValid(schema))\n return true;\n const count = value.reduce((result, item) => CheckSchema(stack, context, schema.contains, item) ? ++result : result, 0);\n return G.IsGreaterEqualThan(count, schema.minContains);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinContains(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinContains(stack, context, schema, value) || context.AddError({\n keyword: 'contains',\n schemaPath,\n instancePath,\n params: { minContains: schema.minContains }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinimum(_stack, _context, schema, value) {\n return E.IsGreaterEqualThan(value, E.Constant(schema.minimum));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinimum(_stack, _context, schema, value) {\n return G.IsGreaterEqualThan(value, schema.minimum);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinimum(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinimum(stack, context, schema, value) || context.AddError({\n keyword: 'minimum',\n schemaPath,\n instancePath,\n params: { comparison: '>=', limit: schema.minimum }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinItems(_stack, _context, schema, value) {\n return E.IsGreaterEqualThan(E.Member(value, 'length'), E.Constant(schema.minItems));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinItems(_stack, _context, schema, value) {\n return G.IsGreaterEqualThan(value.length, schema.minItems);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinItems(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinItems(stack, context, schema, value) || context.AddError({\n keyword: 'minItems',\n schemaPath,\n instancePath,\n params: { limit: schema.minItems }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinLength(_stack, _context, schema, value) {\n return E.IsMinLength(value, E.Constant(schema.minLength));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinLength(_stack, _context, schema, value) {\n return G.IsMinLength(value, schema.minLength);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinLength(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinLength(stack, context, schema, value) || context.AddError({\n keyword: 'minLength',\n schemaPath,\n instancePath,\n params: { limit: schema.minLength }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMinProperties(_stack, _context, schema, value) {\n return E.IsGreaterEqualThan(E.Member(E.Keys(value), 'length'), E.Constant(schema.minProperties));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinProperties(_stack, _context, schema, value) {\n return G.IsGreaterEqualThan(G.Keys(value).length, schema.minProperties);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMinProperties(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMinProperties(stack, context, schema, value) || context.AddError({\n keyword: 'minProperties',\n schemaPath,\n instancePath,\n params: { limit: schema.minProperties },\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildMultipleOf(_stack, _context, schema, value) {\n return E.MultipleOf(value, E.Constant(schema.multipleOf));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMultipleOf(_stack, _context, schema, value) {\n return G.IsMultipleOf(value, schema.multipleOf);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorMultipleOf(stack, context, schemaPath, instancePath, schema, value) {\n return CheckMultipleOf(stack, context, schema, value) || context.AddError({\n keyword: 'multipleOf',\n schemaPath,\n instancePath,\n params: { multipleOf: schema.multipleOf }\n });\n}\n","// deno-fmt-ignore-file\nimport { CheckContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildNotUnevaluated(stack, context, schema, value) {\n return Reducer(stack, context, [schema.not], value, E.Not(E.IsEqual(E.Member('results', 'length'), E.Constant(1))));\n}\nfunction BuildNotFast(stack, context, schema, value) {\n return E.Not(BuildSchema(stack, context, schema.not, value));\n}\nexport function BuildNot(stack, context, schema, value) {\n return context.UseUnevaluated() ? BuildNotUnevaluated(stack, context, schema, value) : BuildNotFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckNot(stack, context, schema, value) {\n const nextContext = new CheckContext();\n const isSchema = !CheckSchema(stack, nextContext, schema.not, value);\n const isNot = isSchema && context.Merge([nextContext]);\n return isNot;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorNot(stack, context, schemaPath, instancePath, schema, value) {\n return CheckNot(stack, context, schema, value) || context.AddError({\n keyword: 'not',\n schemaPath,\n instancePath,\n params: {},\n });\n}\n","// deno-fmt-ignore-file\nimport { CheckContext, AccumulatedErrorContext } from './_context.mjs';\nimport { Reducer } from './_reducer.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nfunction BuildOneOfUnevaluated(stack, context, schema, value) {\n return Reducer(stack, context, schema.oneOf, value, E.IsEqual(E.Member('results', 'length'), E.Constant(1)));\n}\nfunction BuildOneOfFast(stack, context, schema, value) {\n const results = E.ArrayLiteral(schema.oneOf.map((schema) => BuildSchema(stack, context, schema, value)));\n const count = E.Call(E.Member(results, 'reduce'), [\n E.ArrowFunction(['count', 'result'], E.Ternary(E.IsEqual('result', E.Constant(true)), E.PrefixIncrement('count'), 'count')),\n E.Constant(0),\n ]);\n return E.IsEqual(count, E.Constant(1));\n}\nexport function BuildOneOf(stack, context, schema, value) {\n return context.UseUnevaluated() ? BuildOneOfUnevaluated(stack, context, schema, value) : BuildOneOfFast(stack, context, schema, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckOneOf(stack, context, schema, value) {\n const passedContexts = schema.oneOf.reduce((result, schema) => {\n const nextContext = new CheckContext();\n return CheckSchema(stack, nextContext, schema, value) ? [...result, nextContext] : result;\n }, []);\n return G.IsEqual(passedContexts.length, 1) && context.Merge(passedContexts);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorOneOf(stack, context, schemaPath, instancePath, schema, value) {\n const failedContexts = [];\n const passingSchemas = [];\n const passedContexts = schema.oneOf.reduce((result, schema, index) => {\n const nextContext = new AccumulatedErrorContext();\n const nextSchemaPath = `${schemaPath}/oneOf/${index}`;\n const isSchema = ErrorSchema(stack, nextContext, nextSchemaPath, instancePath, schema, value);\n if (isSchema)\n passingSchemas.push(index);\n if (!isSchema)\n failedContexts.push(nextContext);\n return isSchema ? [...result, nextContext] : result;\n }, []);\n const isOneOf = G.IsEqual(passedContexts.length, 1) && context.Merge(passedContexts);\n if (!isOneOf && G.IsEqual(passingSchemas.length, 0))\n failedContexts.forEach(failed => failed.GetErrors().forEach(error => context.AddError(error)));\n return isOneOf || context.AddError({\n keyword: 'oneOf',\n schemaPath,\n instancePath,\n params: { passingSchemas },\n });\n}\n","// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPattern(_stack, _context, schema, value) {\n const regexp = Externals.CreateVariable(G.IsString(schema.pattern) ? new RegExp(schema.pattern, 'u') : schema.pattern);\n return E.Call(E.Member(regexp, 'test'), [value]);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPattern(_stack, _context, schema, value) {\n const regexp = G.IsString(schema.pattern) ? new RegExp(schema.pattern, 'u') : schema.pattern;\n return regexp.test(value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPattern(stack, context, schemaPath, instancePath, schema, value) {\n return CheckPattern(stack, context, schema, value) || context.AddError({\n keyword: 'pattern',\n schemaPath,\n instancePath,\n params: { pattern: schema.pattern }\n });\n}\n","// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { Unique } from './_unique.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPatternProperties(stack, context, schema, value) {\n return E.ReduceAnd(G.Entries(schema.patternProperties).map(([pattern, schema]) => {\n const [key, prop] = [Unique(), Unique()];\n const regexp = Externals.CreateVariable(new RegExp(pattern, 'u'));\n const notKey = E.Not(E.Call(E.Member(regexp, 'test'), [key]));\n const isSchema = BuildSchemaPushStack(stack, context, schema, prop);\n const addKey = context.AddKey(key);\n const guarded = context.UseUnevaluated() ? E.Or(notKey, E.And(isSchema, addKey)) : E.Or(notKey, isSchema);\n return E.Every(E.Entries(value), E.Constant(0), [`[${key}, ${prop}]`, '_'], guarded);\n }));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPatternProperties(stack, context, schema, value) {\n return G.Every(G.Entries(schema.patternProperties), 0, ([pattern, schema]) => {\n const regexp = new RegExp(pattern, 'u');\n return G.Every(G.Entries(value), 0, ([key, prop]) => {\n return !regexp.test(key) || CheckSchemaPushStack(stack, context, schema, prop) && context.AddKey(key);\n });\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPatternProperties(stack, context, schemaPath, instancePath, schema, value) {\n return G.EveryAll(G.Entries(schema.patternProperties), 0, ([pattern, schema]) => {\n const nextSchemaPath = `${schemaPath}/patternProperties/${pattern}`;\n const regexp = new RegExp(pattern, 'u');\n return G.EveryAll(G.Entries(value), 0, ([key, value]) => {\n const nextInstancePath = `${instancePath}/${key}`;\n const notKey = !regexp.test(key);\n return notKey || ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema, value) && context.AddKey(key);\n });\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPrefixItems(stack, context, schema, value) {\n return E.ReduceAnd(schema.prefixItems.map((schema, index) => {\n const isLength = E.IsLessEqualThan(E.Member(value, 'length'), E.Constant(index));\n const isSchema = BuildSchemaPushStack(stack, context, schema, `${value}[${index}]`);\n const addIndex = context.AddIndex(E.Constant(index));\n const guarded = context.UseUnevaluated() ? E.And(isSchema, addIndex) : isSchema;\n return E.Or(isLength, guarded);\n }));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPrefixItems(stack, context, schema, value) {\n return G.IsEqual(value.length, 0) || G.Every(schema.prefixItems, 0, (schema, index) => {\n return G.IsLessEqualThan(value.length, index)\n || (CheckSchemaPushStack(stack, context, schema, value[index]) && context.AddIndex(index));\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPrefixItems(stack, context, schemaPath, instancePath, schema, value) {\n return G.IsEqual(value.length, 0) || G.EveryAll(schema.prefixItems, 0, (schema, index) => {\n const nextSchemaPath = `${schemaPath}/prefixItems/${index}`;\n const nextInstancePath = `${instancePath}/${index}`;\n return G.IsLessEqualThan(value.length, index)\n || (ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema, value[index]) && context.AddIndex(index));\n });\n}\n","import { Settings } from '../../system/settings/index.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// IsExactOptional\n// ------------------------------------------------------------------\nexport function IsExactOptional(required, key) {\n return required.includes(key) || Settings.Get().exactOptionalPropertyTypes;\n}\n// ------------------------------------------------------------------\n// ExactOptionalBuild\n// ------------------------------------------------------------------\nexport function InexactOptionalBuild(value, key) {\n return E.IsUndefined(E.Member(value, key));\n}\n// ------------------------------------------------------------------\n// ExactOptionalCheck\n// ------------------------------------------------------------------\nexport function InexactOptionalCheck(value, key) {\n return G.IsUndefined(value[key]);\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';\nimport { InexactOptionalCheck, InexactOptionalBuild, IsExactOptional } from './_exact_optional.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildProperties(stack, context, schema, value) {\n const required = Schema.IsRequired(schema) ? schema.required : [];\n const everyKey = G.Entries(schema.properties).map(([key, schema]) => {\n const notKey = E.Not(E.HasPropertyKey(value, E.Constant(key)));\n const isSchema = BuildSchemaPushStack(stack, context, schema, E.Member(value, key));\n const addKey = context.AddKey(E.Constant(key));\n const guarded = context.UseUnevaluated() ? E.And(isSchema, addKey) : isSchema;\n // --------------------------------------------------------------\n // Optimization\n //\n // If a key is required, we can skip the `notKey` check since this\n // condition is already enforced by Required. This optimization is\n // only valid when Required is evaluated before Properties.\n //\n // --------------------------------------------------------------\n const isProperty = required.includes(key) ? guarded : E.Or(notKey, guarded);\n // --------------------------------------------------------------\n // ExactOptionalProperties\n //\n // By default, TypeScript allows optional properties to be assigned\n // undefined. This is a bit misleading, since 'optional' is usually\n // understood to mean 'the key may be absent', not 'the key may be\n // present with an undefined value'.\n //\n // The 'IsExactOptional' check returns false by default, matching\n // TypeScript's behavior. When exactOptionalPropertyTypes is enabled\n // in tsconfig.json, TypeBox can be configured to use the stricter \n // semantics via System settings:\n //\n // Settings.Set({ exactOptionalPropertyTypes: true })\n //\n // --------------------------------------------------------------\n return IsExactOptional(required, key)\n ? isProperty\n : E.Or(InexactOptionalBuild(value, key), isProperty);\n });\n return E.ReduceAnd(everyKey);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckProperties(stack, context, schema, value) {\n const required = Schema.IsRequired(schema) ? schema.required : [];\n const isProperties = G.Every(G.Entries(schema.properties), 0, ([key, schema]) => {\n const isProperty = !G.HasPropertyKey(value, key) || (CheckSchemaPushStack(stack, context, schema, value[key]) && context.AddKey(key));\n return IsExactOptional(required, key)\n ? isProperty\n : InexactOptionalCheck(value, key) || isProperty;\n });\n return isProperties;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorProperties(stack, context, schemaPath, instancePath, schema, value) {\n const required = Schema.IsRequired(schema) ? schema.required : [];\n const isProperties = G.EveryAll(G.Entries(schema.properties), 0, ([key, schema]) => {\n const nextSchemaPath = `${schemaPath}/properties/${key}`;\n const nextInstancePath = `${instancePath}/${key}`;\n // Defer error generation for IsExactOptional\n const isProperty = () => (!G.HasPropertyKey(value, key) || (ErrorSchemaPushStack(stack, context, nextSchemaPath, nextInstancePath, schema, value[key]) && context.AddKey(key)));\n return IsExactOptional(required, key)\n ? isProperty()\n : InexactOptionalCheck(value, key) || isProperty();\n });\n return isProperties;\n}\n","// deno-fmt-ignore-file\nimport { Unique } from './_unique.mjs';\nimport { AccumulatedErrorContext } from './_context.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildPropertyNames(stack, context, schema, value) {\n const [key, _index] = [Unique(), Unique()];\n return E.Every(E.Keys(value), E.Constant(0), [key, _index], BuildSchema(stack, context, schema.propertyNames, key));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckPropertyNames(stack, context, schema, value) {\n return G.Every(G.Keys(value), 0, (key, _index) => CheckSchema(stack, context, schema.propertyNames, key));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorPropertyNames(stack, context, schemaPath, instancePath, schema, value) {\n const propertyNames = [];\n const isPropertyNames = G.EveryAll(G.Keys(value), 0, (key, _index) => {\n const nextInstancePath = `${instancePath}/${key}`;\n const nextSchemaPath = `${schemaPath}/propertyNames`;\n const nextContext = new AccumulatedErrorContext();\n const isPropertyName = ErrorSchema(stack, nextContext, nextSchemaPath, nextInstancePath, schema.propertyNames, key);\n if (!isPropertyName)\n propertyNames.push(key);\n return isPropertyName;\n });\n return isPropertyNames || context.AddError({\n keyword: 'propertyNames',\n schemaPath,\n instancePath,\n params: { propertyNames }\n });\n}\n","// deno-fmt-ignore-file\nimport * as Functions from './_functions.mjs';\nimport * as Schema from '../types/index.mjs';\nimport { CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildRecursiveRef(stack, context, schema, value) {\n const target = stack.RecursiveRef(schema) ?? false;\n return Functions.CreateFunction(stack, context, target, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRecursiveRef(stack, context, schema, value) {\n const target = stack.RecursiveRef(schema) ?? false;\n return (Schema.IsSchema(target) && CheckSchema(stack, context, target, value));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRecursiveRef(stack, context, _schemaPath, instancePath, schema, value) {\n const target = stack.RecursiveRef(schema) ?? false;\n return (Schema.IsSchema(target) && ErrorSchema(stack, context, '#', instancePath, target, value));\n}\n","// deno-fmt-ignore-file\nimport * as Functions from './_functions.mjs';\nimport * as Schema from '../types/index.mjs';\nimport { CheckContext, AccumulatedErrorContext } from './_context.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// BuildRefStandard\n// ------------------------------------------------------------------\nfunction BuildRefStandard(stack, context, target, value) {\n const interior = E.ArrowFunction(['context', 'value'], Functions.CreateFunction(stack, context, target, 'value'));\n const exterior = E.ArrowFunction(['context', 'value'], E.Statements([\n E.ConstDeclaration('nextContext', E.New('CheckContext', [])),\n E.ConstDeclaration('result', E.Call(interior, ['nextContext', 'value'])),\n E.If('result', context.Merge('[nextContext]')),\n E.Return('result')\n ]));\n return E.Call(exterior, ['context', value]);\n}\n// ------------------------------------------------------------------\n// BuildRefStandard\n// ------------------------------------------------------------------\nfunction BuildRefFast(stack, context, target, value) {\n return Functions.CreateFunction(stack, context, target, value);\n}\n// ------------------------------------------------------------------\n// BuildRef\n// ------------------------------------------------------------------\nexport function BuildRef(stack, context, schema, value) {\n const target = stack.Ref(schema) ?? false;\n return context.UseUnevaluated()\n ? BuildRefStandard(stack, context, target, value)\n : BuildRefFast(stack, context, target, value);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRef(stack, context, schema, value) {\n const target = stack.Ref(schema) ?? false;\n const nextContext = new CheckContext();\n const result = (Schema.IsSchema(target) && CheckSchema(stack, nextContext, target, value));\n if (result)\n context.Merge([nextContext]);\n return result;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRef(stack, context, _schemaPath, instancePath, schema, value) {\n const target = stack.Ref(schema) ?? false;\n const nextContext = new AccumulatedErrorContext();\n const result = (Schema.IsSchema(target) && ErrorSchema(stack, nextContext, '#', instancePath, target, value));\n if (result)\n context.Merge([nextContext]);\n if (!result)\n nextContext.GetErrors().forEach(error => context.AddError(error));\n return result;\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildRequired(_stack, _context, schema, value) {\n return E.ReduceAnd(schema.required.map((key) => E.HasPropertyKey(value, E.Constant(key))));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRequired(_stack, _context, schema, value) {\n return G.Every(schema.required, 0, (key) => G.HasPropertyKey(value, key));\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorRequired(_stack, context, schemaPath, instancePath, schema, value) {\n const requiredProperties = [];\n const isRequired = G.EveryAll(schema.required, 0, (key) => {\n const hasKey = G.HasPropertyKey(value, key);\n if (!hasKey)\n requiredProperties.push(key);\n return hasKey;\n });\n return isRequired || context.AddError({\n keyword: 'required',\n schemaPath,\n instancePath,\n params: { requiredProperties }\n });\n}\n","// deno-fmt-ignore-file\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// TypeName\n// ------------------------------------------------------------------\nfunction BuildTypeName(_stack, _context, type, value) {\n return (\n // jsonschema\n G.IsEqual(type, 'object') ? E.IsObjectNotArray(value) :\n G.IsEqual(type, 'array') ? E.IsArray(value) :\n G.IsEqual(type, 'boolean') ? E.IsBoolean(value) :\n G.IsEqual(type, 'integer') ? E.IsInteger(value) :\n G.IsEqual(type, 'number') ? E.IsNumber(value) :\n G.IsEqual(type, 'null') ? E.IsNull(value) :\n G.IsEqual(type, 'string') ? E.IsString(value) :\n // xschema\n G.IsEqual(type, 'bigint') ? E.IsBigInt(value) :\n G.IsEqual(type, 'constructor') ? E.IsConstructor(value) :\n G.IsEqual(type, 'function') ? E.IsFunction(value) :\n G.IsEqual(type, 'symbol') ? E.IsSymbol(value) :\n G.IsEqual(type, 'undefined') ? E.IsUndefined(value) :\n G.IsEqual(type, 'void') ? E.IsUndefined(value) :\n E.Constant(true));\n}\nfunction CheckTypeName(_stack, _context, type, _schema, value) {\n return (\n // jsonschema\n G.IsEqual(type, 'object') ? G.IsObjectNotArray(value) :\n G.IsEqual(type, 'array') ? G.IsArray(value) :\n G.IsEqual(type, 'boolean') ? G.IsBoolean(value) :\n G.IsEqual(type, 'integer') ? G.IsInteger(value) :\n G.IsEqual(type, 'number') ? G.IsNumber(value) :\n G.IsEqual(type, 'null') ? G.IsNull(value) :\n G.IsEqual(type, 'string') ? G.IsString(value) :\n // xschema\n G.IsEqual(type, 'bigint') ? G.IsBigInt(value) :\n G.IsEqual(type, 'constructor') ? G.IsConstructor(value) :\n G.IsEqual(type, 'function') ? G.IsFunction(value) :\n G.IsEqual(type, 'symbol') ? G.IsSymbol(value) :\n G.IsEqual(type, 'undefined') ? G.IsUndefined(value) :\n G.IsEqual(type, 'void') ? G.IsUndefined(value) :\n true);\n}\n// ------------------------------------------------------------------\n// TypeNames\n// ------------------------------------------------------------------\nfunction BuildTypeNames(stack, context, typenames, value) {\n return E.ReduceOr(typenames.map(type => BuildTypeName(stack, context, type, value)));\n}\nfunction CheckTypeNames(stack, context, types, schema, value) {\n return types.some(type => CheckTypeName(stack, context, type, schema, value));\n}\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\nexport function BuildType(stack, context, schema, value) {\n return G.IsArray(schema.type) ? BuildTypeNames(stack, context, schema.type, value) : BuildTypeName(stack, context, schema.type, value);\n}\nexport function CheckType(stack, context, schema, value) {\n return G.IsArray(schema.type) ? CheckTypeNames(stack, context, schema.type, schema, value) : CheckTypeName(stack, context, schema.type, schema, value);\n}\nexport function ErrorType(stack, context, schemaPath, instancePath, schema, value) {\n const isType = G.IsArray(schema.type) ? CheckTypeNames(stack, context, schema.type, schema, value) : CheckTypeName(stack, context, schema.type, schema, value);\n return isType || context.AddError({\n keyword: 'type',\n schemaPath,\n instancePath,\n params: { type: schema.type }\n });\n}\n","// deno-fmt-ignore-file\nimport { Unique } from './_unique.mjs';\nimport { AccumulatedErrorContext } from './_context.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildUnevaluatedItems(stack, context, schema, value) {\n const [index, item] = [Unique(), Unique()];\n const indices = E.Call(E.Member('context', 'GetIndices'), []);\n const hasIndex = E.Call(E.Member('indices', 'has'), [index]);\n const isSchema = BuildSchema(stack, context, schema.unevaluatedItems, item);\n const addIndex = E.Call(E.Member('context', 'AddIndex'), [index]);\n const isEvery = E.Every(value, E.Constant(0), [item, index], E.And(E.Or(hasIndex, isSchema), addIndex));\n return E.Call(E.ArrowFunction(['context'], E.Statements([\n E.ConstDeclaration('indices', indices),\n E.Return(isEvery)\n ])), ['context']);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckUnevaluatedItems(stack, context, schema, value) {\n const indices = context.GetIndices();\n return G.Every(value, 0, (item, index) => {\n return (indices.has(index) || CheckSchema(stack, context, schema.unevaluatedItems, item))\n && context.AddIndex(index);\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorUnevaluatedItems(stack, context, schemaPath, instancePath, schema, value) {\n const indices = context.GetIndices();\n const unevaluatedItems = [];\n const isUnevaluatedItems = G.EveryAll(value, 0, (item, index) => {\n const nextContext = new AccumulatedErrorContext();\n const isEvaluatedItem = (indices.has(index) || ErrorSchema(stack, nextContext, schemaPath, instancePath, schema.unevaluatedItems, item))\n && context.AddIndex(index);\n if (!isEvaluatedItem)\n unevaluatedItems.push(index);\n return isEvaluatedItem;\n });\n return isUnevaluatedItems || context.AddError({\n keyword: 'unevaluatedItems',\n schemaPath,\n instancePath,\n params: { unevaluatedItems }\n });\n}\n","// deno-fmt-ignore-file\nimport { Unique } from './_unique.mjs';\nimport { AccumulatedErrorContext } from './_context.mjs';\nimport { Guard as G, EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildUnevaluatedProperties(stack, context, schema, value) {\n const [key, prop] = [Unique(), Unique()];\n const keys = E.Call(E.Member('context', 'GetKeys'), []);\n const hasKey = E.Call(E.Member('keys', 'has'), [key]);\n const addKey = E.Call(E.Member('context', 'AddKey'), [key]);\n const isSchema = BuildSchema(stack, context, schema.unevaluatedProperties, prop);\n const isEvery = E.Every(E.Entries(value), E.Constant(0), [`[${key}, ${prop}]`, '_'], E.Or(hasKey, E.And(isSchema, addKey)));\n return E.Call(E.ArrowFunction(['context'], E.Statements([\n E.ConstDeclaration('keys', keys),\n E.Return(isEvery)\n ])), ['context']);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckUnevaluatedProperties(stack, context, schema, value) {\n const keys = context.GetKeys();\n return G.Every(G.Entries(value), 0, ([key, prop]) => {\n return keys.has(key)\n || (CheckSchema(stack, context, schema.unevaluatedProperties, prop) && context.AddKey(key));\n });\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorUnevaluatedProperties(stack, context, schemaPath, instancePath, schema, value) {\n const keys = context.GetKeys();\n const unevaluatedProperties = [];\n const isUnevaluatedProperties = G.EveryAll(G.Entries(value), 0, ([key, prop]) => {\n const nextContext = new AccumulatedErrorContext();\n const isEvaluatedProperty = keys.has(key)\n || (ErrorSchema(stack, nextContext, schemaPath, instancePath, schema.unevaluatedProperties, prop) && context.AddKey(key));\n if (!isEvaluatedProperty)\n unevaluatedProperties.push(key);\n return isEvaluatedProperty;\n });\n return isUnevaluatedProperties || context.AddError({\n keyword: 'unevaluatedProperties',\n schemaPath,\n instancePath,\n params: { unevaluatedProperties }\n });\n}\n","// deno-fmt-ignore-file\nimport { Hashing } from '../../system/hashing/index.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Valid\n// ------------------------------------------------------------------\nfunction IsValid(schema) {\n return !G.IsEqual(schema.uniqueItems, false);\n}\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildUniqueItems(_stack, _context, schema, value) {\n if (!IsValid(schema))\n return E.Constant(true);\n const set = E.Member(E.New('Set', [E.Call(E.Member(value, 'map'), [E.Member('Hashing', 'Hash')])]), 'size');\n const isLength = E.Member(value, 'length');\n return E.IsEqual(set, isLength);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckUniqueItems(_stack, _context, schema, value) {\n if (!IsValid(schema))\n return true;\n const set = new Set(value.map(Hashing.Hash)).size;\n const isLength = value.length;\n return G.IsEqual(set, isLength);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorUniqueItems(_stack, context, schemaPath, instancePath, schema, value) {\n if (!IsValid(schema))\n return true;\n const set = new Set();\n const duplicateItems = value.reduce((result, value, index) => {\n const hash = Hashing.Hash(value);\n if (set.has(hash))\n return [...result, index];\n set.add(hash);\n return result;\n }, []);\n const isUniqueItems = G.IsEqual(duplicateItems.length, 0);\n return isUniqueItems || context.AddError({\n keyword: 'uniqueItems',\n schemaPath,\n instancePath,\n params: { duplicateItems },\n });\n}\n","// deno-fmt-ignore-file\nimport * as Schema from '../types/index.mjs';\nimport { BuildRefine, CheckRefine, ErrorRefine } from './_refine.mjs';\nimport { EmitGuard as E, Guard as G } from '../../guard/index.mjs';\nimport { BuildAdditionalItems, CheckAdditionalItems, ErrorAdditionalItems } from './additionalItems.mjs';\nimport { BuildAdditionalProperties, CheckAdditionalProperties, ErrorAdditionalProperties } from './additionalProperties.mjs';\nimport { BuildAllOf, CheckAllOf, ErrorAllOf } from './allOf.mjs';\nimport { BuildAnyOf, CheckAnyOf, ErrorAnyOf } from './anyOf.mjs';\nimport { BuildSchemaBoolean, CheckSchemaBoolean, ErrorSchemaBoolean } from './boolean.mjs';\nimport { BuildConst, CheckConst, ErrorConst } from './const.mjs';\nimport { BuildContains, CheckContains, ErrorContains } from './contains.mjs';\nimport { BuildDependencies, CheckDependencies, ErrorDependencies } from './dependencies.mjs';\nimport { BuildDependentRequired, CheckDependentRequired, ErrorDependentRequired } from './dependentRequired.mjs';\nimport { BuildDependentSchemas, CheckDependentSchemas, ErrorDependentSchemas } from './dependentSchemas.mjs';\nimport { BuildDynamicRef, CheckDynamicRef, ErrorDynamicRef } from './dynamicRef.mjs';\nimport { BuildEnum, CheckEnum, ErrorEnum } from './enum.mjs';\nimport { BuildExclusiveMaximum, CheckExclusiveMaximum, ErrorExclusiveMaximum } from './exclusiveMaximum.mjs';\nimport { BuildExclusiveMinimum, CheckExclusiveMinimum, ErrorExclusiveMinimum } from './exclusiveMinimum.mjs';\nimport { BuildFormat, CheckFormat, ErrorFormat } from './format.mjs';\nimport { BuildIf, CheckIf, ErrorIf } from './if.mjs';\nimport { BuildItems, CheckItems, ErrorItems } from './items.mjs';\nimport { BuildMaxContains, CheckMaxContains, ErrorMaxContains } from './maxContains.mjs';\nimport { BuildMaximum, CheckMaximum, ErrorMaximum } from './maximum.mjs';\nimport { BuildMaxItems, CheckMaxItems, ErrorMaxItems } from './maxItems.mjs';\nimport { BuildMaxLength, CheckMaxLength, ErrorMaxLength } from './maxLength.mjs';\nimport { BuildMaxProperties, CheckMaxProperties, ErrorMaxProperties } from './maxProperties.mjs';\nimport { BuildMinContains, CheckMinContains, ErrorMinContains } from './minContains.mjs';\nimport { BuildMinimum, CheckMinimum, ErrorMinimum } from './minimum.mjs';\nimport { BuildMinItems, CheckMinItems, ErrorMinItems } from './minItems.mjs';\nimport { BuildMinLength, CheckMinLength, ErrorMinLength } from './minLength.mjs';\nimport { BuildMinProperties, CheckMinProperties, ErrorMinProperties } from './minProperties.mjs';\nimport { BuildMultipleOf, CheckMultipleOf, ErrorMultipleOf } from './multipleOf.mjs';\nimport { BuildNot, CheckNot, ErrorNot } from './not.mjs';\nimport { BuildOneOf, CheckOneOf, ErrorOneOf } from './oneOf.mjs';\nimport { BuildPattern, CheckPattern, ErrorPattern } from './pattern.mjs';\nimport { BuildPatternProperties, CheckPatternProperties, ErrorPatternProperties } from './patternProperties.mjs';\nimport { BuildPrefixItems, CheckPrefixItems, ErrorPrefixItems } from './prefixItems.mjs';\nimport { BuildProperties, CheckProperties, ErrorProperties } from './properties.mjs';\nimport { BuildPropertyNames, CheckPropertyNames, ErrorPropertyNames } from './propertyNames.mjs';\nimport { BuildRecursiveRef, CheckRecursiveRef, ErrorRecursiveRef } from './recursiveRef.mjs';\nimport { BuildRef, CheckRef, ErrorRef } from './ref.mjs';\nimport { BuildRequired, CheckRequired, ErrorRequired } from './required.mjs';\nimport { BuildType, CheckType, ErrorType } from './type.mjs';\nimport { BuildUnevaluatedItems, CheckUnevaluatedItems, ErrorUnevaluatedItems } from './unevaluatedItems.mjs';\nimport { BuildUnevaluatedProperties, CheckUnevaluatedProperties, ErrorUnevaluatedProperties } from './unevaluatedProperties.mjs';\nimport { BuildUniqueItems, CheckUniqueItems, ErrorUniqueItems } from './uniqueItems.mjs';\n// ----------------------------------------------------------------\n// HasTypeName\n// ----------------------------------------------------------------\nfunction HasTypeName(schema, typename) {\n return Schema.IsType(schema) &&\n (G.IsArray(schema.type) && schema.type.includes(typename) ||\n G.IsEqual(schema.type, typename));\n}\n// ----------------------------------------------------------------\n// HasObject\n// ----------------------------------------------------------------\nfunction HasObjectType(schema) {\n return HasTypeName(schema, 'object');\n}\nfunction HasObjectKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsAdditionalProperties(schema) ||\n Schema.IsDependencies(schema) ||\n Schema.IsDependentRequired(schema) ||\n Schema.IsDependentSchemas(schema) ||\n Schema.IsProperties(schema) ||\n Schema.IsPatternProperties(schema) ||\n Schema.IsPropertyNames(schema) ||\n Schema.IsMinProperties(schema) ||\n Schema.IsMaxProperties(schema) ||\n Schema.IsRequired(schema) ||\n Schema.IsUnevaluatedProperties(schema));\n}\n// ----------------------------------------------------------------\n// HasArray\n// ----------------------------------------------------------------\nfunction HasArrayType(schema) {\n return HasTypeName(schema, 'array');\n}\nfunction HasArrayKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsAdditionalItems(schema) ||\n Schema.IsItems(schema) ||\n Schema.IsContains(schema) ||\n Schema.IsMaxContains(schema) ||\n Schema.IsMaxItems(schema) ||\n Schema.IsMinContains(schema) ||\n Schema.IsMinItems(schema) ||\n Schema.IsPrefixItems(schema) ||\n Schema.IsUnevaluatedItems(schema) ||\n Schema.IsUniqueItems(schema));\n}\n// ----------------------------------------------------------------\n// HasString\n// ----------------------------------------------------------------\nfunction HasStringType(schema) {\n return HasTypeName(schema, 'string');\n}\nfunction HasStringKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsMinLength(schema) ||\n Schema.IsMaxLength(schema) ||\n Schema.IsFormat(schema) ||\n Schema.IsPattern(schema));\n}\n// ----------------------------------------------------------------\n// HasNumber\n// ----------------------------------------------------------------\nfunction HasNumberType(schema) {\n return HasTypeName(schema, 'number') || HasTypeName(schema, 'bigint');\n}\nfunction HasNumberKeywords(schema) {\n return Schema.IsSchemaObject(schema) && (Schema.IsMinimum(schema) ||\n Schema.IsMaximum(schema) ||\n Schema.IsExclusiveMaximum(schema) ||\n Schema.IsExclusiveMinimum(schema) ||\n Schema.IsMultipleOf(schema));\n}\n// ----------------------------------------------------------------\n// Build\n// ----------------------------------------------------------------\nexport function BuildSchemaPushStack(stack, context, schema, value) {\n return context.UseUnevaluated()\n ? E.And(E.And(context.Push(), BuildSchema(stack, context, schema, value)), context.Pop())\n : BuildSchema(stack, context, schema, value);\n}\nexport function BuildSchema(stack, context, schema, value) {\n stack.Push(schema);\n const conditions = [];\n if (Schema.IsSchemaBoolean(schema))\n return BuildSchemaBoolean(stack, context, schema, value);\n if (Schema.IsType(schema))\n conditions.push(BuildType(stack, context, schema, value));\n if (HasObjectKeywords(schema)) {\n const constraints = [];\n if (Schema.IsRequired(schema))\n constraints.push(BuildRequired(stack, context, schema, value));\n if (Schema.IsAdditionalProperties(schema))\n constraints.push(BuildAdditionalProperties(stack, context, schema, value));\n if (Schema.IsDependencies(schema))\n constraints.push(BuildDependencies(stack, context, schema, value));\n if (Schema.IsDependentRequired(schema))\n constraints.push(BuildDependentRequired(stack, context, schema, value));\n if (Schema.IsDependentSchemas(schema))\n constraints.push(BuildDependentSchemas(stack, context, schema, value));\n if (Schema.IsPatternProperties(schema))\n constraints.push(BuildPatternProperties(stack, context, schema, value));\n if (Schema.IsProperties(schema))\n constraints.push(BuildProperties(stack, context, schema, value));\n if (Schema.IsPropertyNames(schema))\n constraints.push(BuildPropertyNames(stack, context, schema, value));\n if (Schema.IsMinProperties(schema))\n constraints.push(BuildMinProperties(stack, context, schema, value));\n if (Schema.IsMaxProperties(schema))\n constraints.push(BuildMaxProperties(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.IsObjectNotArray(value)), reduced);\n conditions.push(HasObjectType(schema) ? reduced : guarded);\n }\n if (HasArrayKeywords(schema)) {\n const constraints = [];\n if (Schema.IsAdditionalItems(schema))\n constraints.push(BuildAdditionalItems(stack, context, schema, value));\n if (Schema.IsContains(schema))\n constraints.push(BuildContains(stack, context, schema, value));\n if (Schema.IsItems(schema))\n constraints.push(BuildItems(stack, context, schema, value));\n if (Schema.IsMaxContains(schema))\n constraints.push(BuildMaxContains(stack, context, schema, value));\n if (Schema.IsMaxItems(schema))\n constraints.push(BuildMaxItems(stack, context, schema, value));\n if (Schema.IsMinContains(schema))\n constraints.push(BuildMinContains(stack, context, schema, value));\n if (Schema.IsMinItems(schema))\n constraints.push(BuildMinItems(stack, context, schema, value));\n if (Schema.IsPrefixItems(schema))\n constraints.push(BuildPrefixItems(stack, context, schema, value));\n if (Schema.IsUniqueItems(schema))\n constraints.push(BuildUniqueItems(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.IsArray(value)), reduced);\n conditions.push(HasArrayType(schema) ? reduced : guarded);\n }\n if (HasStringKeywords(schema)) {\n const constraints = [];\n if (Schema.IsMaxLength(schema))\n constraints.push(BuildMaxLength(stack, context, schema, value));\n if (Schema.IsMinLength(schema))\n constraints.push(BuildMinLength(stack, context, schema, value));\n if (Schema.IsFormat(schema))\n constraints.push(BuildFormat(stack, context, schema, value));\n if (Schema.IsPattern(schema))\n constraints.push(BuildPattern(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.IsString(value)), reduced);\n conditions.push(HasStringType(schema) ? reduced : guarded);\n }\n if (HasNumberKeywords(schema)) {\n const constraints = [];\n if (Schema.IsExclusiveMaximum(schema))\n constraints.push(BuildExclusiveMaximum(stack, context, schema, value));\n if (Schema.IsExclusiveMinimum(schema))\n constraints.push(BuildExclusiveMinimum(stack, context, schema, value));\n if (Schema.IsMaximum(schema))\n constraints.push(BuildMaximum(stack, context, schema, value));\n if (Schema.IsMinimum(schema))\n constraints.push(BuildMinimum(stack, context, schema, value));\n if (Schema.IsMultipleOf(schema))\n constraints.push(BuildMultipleOf(stack, context, schema, value));\n const reduced = E.ReduceAnd(constraints);\n const guarded = E.Or(E.Not(E.Or(E.IsNumber(value), E.IsBigInt(value))), reduced);\n conditions.push(HasNumberType(schema) ? reduced : guarded);\n }\n if (Schema.IsRef(schema))\n conditions.push(BuildRef(stack, context, schema, value));\n if (Schema.IsRecursiveRef(schema))\n conditions.push(BuildRecursiveRef(stack, context, schema, value));\n if (Schema.IsDynamicRef(schema))\n conditions.push(BuildDynamicRef(stack, context, schema, value));\n if (Schema.IsConst(schema))\n conditions.push(BuildConst(stack, context, schema, value));\n if (Schema.IsEnum(schema))\n conditions.push(BuildEnum(stack, context, schema, value));\n if (Schema.IsIf(schema))\n conditions.push(BuildIf(stack, context, schema, value));\n if (Schema.IsNot(schema))\n conditions.push(BuildNot(stack, context, schema, value));\n if (Schema.IsAllOf(schema))\n conditions.push(BuildAllOf(stack, context, schema, value));\n if (Schema.IsAnyOf(schema))\n conditions.push(BuildAnyOf(stack, context, schema, value));\n if (Schema.IsOneOf(schema))\n conditions.push(BuildOneOf(stack, context, schema, value));\n if (Schema.IsUnevaluatedItems(schema))\n conditions.push(E.Or(E.Not(E.IsArray(value)), BuildUnevaluatedItems(stack, context, schema, value)));\n if (Schema.IsUnevaluatedProperties(schema))\n conditions.push(E.Or(E.Not(E.IsObject(value)), BuildUnevaluatedProperties(stack, context, schema, value)));\n if (Schema.IsRefine(schema))\n conditions.push(BuildRefine(stack, context, schema, value));\n const result = E.ReduceAnd(conditions);\n stack.Pop(schema);\n return result;\n}\n// ----------------------------------------------------------------\n// Check\n// ----------------------------------------------------------------\nexport function CheckSchemaPushStack(stack, context, schema, value) {\n return (context.Push() && CheckSchema(stack, context, schema, value)) && context.Pop();\n}\nexport function CheckSchema(stack, context, schema, value) {\n stack.Push(schema);\n const result = Schema.IsSchemaBoolean(schema) ? CheckSchemaBoolean(stack, context, schema, value) : ((!Schema.IsType(schema) || CheckType(stack, context, schema, value)) &&\n (!(G.IsObject(value) && !G.IsArray(value)) || ((!Schema.IsRequired(schema) || CheckRequired(stack, context, schema, value)) &&\n (!Schema.IsAdditionalProperties(schema) || CheckAdditionalProperties(stack, context, schema, value)) &&\n (!Schema.IsDependencies(schema) || CheckDependencies(stack, context, schema, value)) &&\n (!Schema.IsDependentRequired(schema) || CheckDependentRequired(stack, context, schema, value)) &&\n (!Schema.IsDependentSchemas(schema) || CheckDependentSchemas(stack, context, schema, value)) &&\n (!Schema.IsPatternProperties(schema) || CheckPatternProperties(stack, context, schema, value)) &&\n (!Schema.IsProperties(schema) || CheckProperties(stack, context, schema, value)) &&\n (!Schema.IsPropertyNames(schema) || CheckPropertyNames(stack, context, schema, value)) &&\n (!Schema.IsMinProperties(schema) || CheckMinProperties(stack, context, schema, value)) &&\n (!Schema.IsMaxProperties(schema) || CheckMaxProperties(stack, context, schema, value)))) &&\n (!G.IsArray(value) || ((!Schema.IsAdditionalItems(schema) || CheckAdditionalItems(stack, context, schema, value)) &&\n (!Schema.IsContains(schema) || CheckContains(stack, context, schema, value)) &&\n (!Schema.IsItems(schema) || CheckItems(stack, context, schema, value)) &&\n (!Schema.IsMaxContains(schema) || CheckMaxContains(stack, context, schema, value)) &&\n (!Schema.IsMaxItems(schema) || CheckMaxItems(stack, context, schema, value)) &&\n (!Schema.IsMinContains(schema) || CheckMinContains(stack, context, schema, value)) &&\n (!Schema.IsMinItems(schema) || CheckMinItems(stack, context, schema, value)) &&\n (!Schema.IsPrefixItems(schema) || CheckPrefixItems(stack, context, schema, value)) &&\n (!Schema.IsUniqueItems(schema) || CheckUniqueItems(stack, context, schema, value)))) &&\n (!G.IsString(value) || ((!Schema.IsMaxLength(schema) || CheckMaxLength(stack, context, schema, value)) &&\n (!Schema.IsMinLength(schema) || CheckMinLength(stack, context, schema, value)) &&\n (!Schema.IsFormat(schema) || CheckFormat(stack, context, schema, value)) &&\n (!Schema.IsPattern(schema) || CheckPattern(stack, context, schema, value)))) &&\n (!(G.IsNumber(value) || G.IsBigInt(value)) || ((!Schema.IsExclusiveMaximum(schema) || CheckExclusiveMaximum(stack, context, schema, value)) &&\n (!Schema.IsExclusiveMinimum(schema) || CheckExclusiveMinimum(stack, context, schema, value)) &&\n (!Schema.IsMaximum(schema) || CheckMaximum(stack, context, schema, value)) &&\n (!Schema.IsMinimum(schema) || CheckMinimum(stack, context, schema, value)) &&\n (!Schema.IsMultipleOf(schema) || CheckMultipleOf(stack, context, schema, value)))) &&\n (!Schema.IsRef(schema) || CheckRef(stack, context, schema, value)) &&\n (!Schema.IsRecursiveRef(schema) || CheckRecursiveRef(stack, context, schema, value)) &&\n (!Schema.IsDynamicRef(schema) || CheckDynamicRef(stack, context, schema, value)) &&\n (!Schema.IsConst(schema) || CheckConst(stack, context, schema, value)) &&\n (!Schema.IsEnum(schema) || CheckEnum(stack, context, schema, value)) &&\n (!Schema.IsIf(schema) || CheckIf(stack, context, schema, value)) &&\n (!Schema.IsNot(schema) || CheckNot(stack, context, schema, value)) &&\n (!Schema.IsAllOf(schema) || CheckAllOf(stack, context, schema, value)) &&\n (!Schema.IsAnyOf(schema) || CheckAnyOf(stack, context, schema, value)) &&\n (!Schema.IsOneOf(schema) || CheckOneOf(stack, context, schema, value)) &&\n (!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || CheckUnevaluatedItems(stack, context, schema, value))) &&\n (!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || CheckUnevaluatedProperties(stack, context, schema, value))) &&\n (!Schema.IsRefine(schema) || CheckRefine(stack, context, schema, value)));\n stack.Pop(schema);\n return result;\n}\n// ----------------------------------------------------------------\n// Error\n// ----------------------------------------------------------------\nexport function ErrorSchemaPushStack(stack, context, schemaPath, instancePath, schema, value) {\n return (context.Push() && ErrorSchema(stack, context, schemaPath, instancePath, schema, value)) && context.Pop();\n}\nexport function ErrorSchema(stack, context, schemaPath, instancePath, schema, value) {\n stack.Push(schema);\n const result = (Schema.IsSchemaBoolean(schema)) ? ErrorSchemaBoolean(stack, context, schemaPath, instancePath, schema, value) : (!!(+(!Schema.IsType(schema) || ErrorType(stack, context, schemaPath, instancePath, schema, value)) &\n +(!(G.IsObject(value) && !G.IsArray(value)) || !!(+(!Schema.IsRequired(schema) || ErrorRequired(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsAdditionalProperties(schema) || ErrorAdditionalProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDependencies(schema) || ErrorDependencies(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDependentRequired(schema) || ErrorDependentRequired(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDependentSchemas(schema) || ErrorDependentSchemas(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPatternProperties(schema) || ErrorPatternProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsProperties(schema) || ErrorProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPropertyNames(schema) || ErrorPropertyNames(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinProperties(schema) || ErrorMinProperties(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxProperties(schema) || ErrorMaxProperties(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!G.IsArray(value) || !!(+(!Schema.IsAdditionalItems(schema) || ErrorAdditionalItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsContains(schema) || ErrorContains(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsItems(schema) || ErrorItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxContains(schema) || ErrorMaxContains(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxItems(schema) || ErrorMaxItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinContains(schema) || ErrorMinContains(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinItems(schema) || ErrorMinItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPrefixItems(schema) || ErrorPrefixItems(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsUniqueItems(schema) || ErrorUniqueItems(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!G.IsString(value) || !!(+(!Schema.IsMaxLength(schema) || ErrorMaxLength(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinLength(schema) || ErrorMinLength(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsFormat(schema) || ErrorFormat(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsPattern(schema) || ErrorPattern(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!(G.IsNumber(value) || G.IsBigInt(value)) || !!(+(!Schema.IsExclusiveMaximum(schema) || ErrorExclusiveMaximum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsExclusiveMinimum(schema) || ErrorExclusiveMinimum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaximum(schema) || ErrorMaximum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinimum(schema) || ErrorMinimum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMultipleOf(schema) || ErrorMultipleOf(stack, context, schemaPath, instancePath, schema, value)))) &\n +(!Schema.IsRef(schema) || ErrorRef(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsRecursiveRef(schema) || ErrorRecursiveRef(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsDynamicRef(schema) || ErrorDynamicRef(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsConst(schema) || ErrorConst(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsEnum(schema) || ErrorEnum(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsIf(schema) || ErrorIf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsNot(schema) || ErrorNot(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsAllOf(schema) || ErrorAllOf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsAnyOf(schema) || ErrorAnyOf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsOneOf(schema) || ErrorOneOf(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsUnevaluatedItems(schema) || (!G.IsArray(value) || ErrorUnevaluatedItems(stack, context, schemaPath, instancePath, schema, value))) &\n +(!Schema.IsUnevaluatedProperties(schema) || (!G.IsObject(value) || ErrorUnevaluatedProperties(stack, context, schemaPath, instancePath, schema, value)))) &&\n (!Schema.IsRefine(schema) || ErrorRefine(stack, context, schemaPath, instancePath, schema, value)));\n stack.Pop(schema);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Asserts\n// ------------------------------------------------------------------\nfunction AssertNotRoot(indices) {\n if (indices.length === 0)\n throw Error('Cannot set root');\n}\nfunction AssertCanSet(value) {\n if (!Guard.IsObject(value))\n throw Error('Cannot set value');\n}\nfunction AssertIndex(index) {\n if (Guard.IsUnsafePropertyKey(index))\n throw Error('Pointer contains unsafe property key');\n}\nfunction AssertIndices(indices) {\n for (const index of indices)\n AssertIndex(index);\n}\n// ------------------------------------------------------------------\n// Indices\n// ------------------------------------------------------------------\nfunction IsNumericIndex(index) {\n return /^(0|[1-9]\\d*)$/.test(index);\n}\nfunction TakeIndexRight(indices) {\n return [\n indices.slice(0, indices.length - 1),\n indices.slice(indices.length - 1)[0]\n ];\n}\nfunction HasIndex(index, value) {\n return Guard.IsObject(value) && Guard.HasPropertyKey(value, index);\n}\nfunction GetIndex(index, value) {\n return Guard.IsObject(value) && !Guard.IsUnsafePropertyKey(index) ? value[index] : undefined;\n}\nfunction GetIndices(indices, value) {\n return indices.reduce((value, index) => GetIndex(index, value), value);\n}\n// ------------------------------------------------------------------\n// Indices\n// ------------------------------------------------------------------\n/** Returns an array of path indices for the given pointer */\nexport function Indices(pointer) {\n if (Guard.IsEqual(pointer.length, 0))\n return [];\n const indices = pointer.split(\"/\").map(index => index.replace(/~1/g, \"/\").replace(/~0/g, \"~\"));\n return (indices.length > 0 && indices[0] === '') ? indices.slice(1) : indices;\n}\n// ------------------------------------------------------------------\n// Has\n// ------------------------------------------------------------------\n/** Returns true if a value exists at the current pointer */\nexport function Has(value, pointer) {\n let current = value;\n return Indices(pointer).every(index => {\n if (!HasIndex(index, current))\n return false;\n current = current[index];\n return true;\n });\n}\n// ------------------------------------------------------------------\n// Get\n// ------------------------------------------------------------------\n/** Gets a value at the pointer, or undefined if not exists */\nexport function Get(value, pointer) {\n const indices = Indices(pointer);\n return GetIndices(indices, value);\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\n/** Sets a value at the given pointer. May throw if the target value is not indexable */\nexport function Set(value, pointer, next) {\n const indices = Indices(pointer);\n AssertNotRoot(indices);\n AssertIndices(indices);\n const [head, index] = TakeIndexRight(indices);\n const parent = GetIndices(head, value);\n AssertCanSet(parent);\n parent[index] = next;\n return value;\n}\n// ------------------------------------------------------------------\n// Delete\n// ------------------------------------------------------------------\n/** Deletes the value at the given pointer. May throw if the target value is not indexable */\nexport function Delete(value, pointer) {\n const indices = Indices(pointer);\n AssertNotRoot(indices);\n AssertIndices(indices);\n const [head, index] = TakeIndexRight(indices);\n const parent = GetIndices(head, value);\n AssertCanSet(parent);\n if (Guard.IsArray(parent) && IsNumericIndex(index)) {\n parent.splice(+index, 1);\n }\n else {\n delete parent[index];\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Pointer } from '../pointer/index.mjs';\nimport * as Schema from '../types/index.mjs';\n// ------------------------------------------------------------------\n// Match: Id\n// ------------------------------------------------------------------\nfunction MatchId(schema, base, ref) {\n if (schema.$id === ref.hash)\n return schema;\n const absoluteId = new URL(schema.$id, base.href);\n const absoluteRef = new URL(ref.href, base.href);\n if (Guard.IsEqual(absoluteId.pathname, absoluteRef.pathname)) {\n return ref.hash.startsWith('#') ? MatchHash(schema, base, ref) : schema;\n }\n return undefined;\n}\n// ------------------------------------------------------------------\n// Match: Anchor\n// ------------------------------------------------------------------\nfunction MatchAnchor(schema, base, ref) {\n const absoluteAnchor = new URL(`#${schema.$anchor}`, base.href);\n const absoluteRef = new URL(ref.href, base.href);\n return Guard.IsEqual(absoluteAnchor.href, absoluteRef.href) ? schema : undefined;\n}\n// ------------------------------------------------------------------\n// Match: DynamicAnchor\n// ------------------------------------------------------------------\nfunction MatchDynamicAnchor(schema, base, ref) {\n const absoluteAnchor = new URL(`#${schema.$dynamicAnchor}`, base.href);\n const absoluteRef = new URL(ref.href, base.href);\n return Guard.IsEqual(absoluteAnchor.href, absoluteRef.href) ? schema : undefined;\n}\n// ------------------------------------------------------------------\n// Match: Hash\n//\n// Resolves JSON Pointer fragments only. Plain anchor-style fragments\n// (no leading '/') are handled exclusively by MatchAnchor and\n// MatchDynamicAnchor to prevent accidentally resolving an anchor name\n// as a pointer into the schema tree.\n//\n// ------------------------------------------------------------------\nfunction MatchHash(schema, _base, ref) {\n if (ref.href.endsWith('#'))\n return schema;\n if (!ref.hash.startsWith('#'))\n return undefined;\n const fragment = decodeURIComponent(ref.hash.slice(1));\n if (!fragment.startsWith('/'))\n return undefined;\n return Pointer.Get(schema, fragment);\n}\n// ------------------------------------------------------------------\n// Match\n// ------------------------------------------------------------------\nfunction Match(schema, base, ref) {\n if (Schema.IsId(schema)) {\n const result = MatchId(schema, base, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n if (Schema.IsAnchor(schema)) {\n const result = MatchAnchor(schema, base, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n if (Schema.IsDynamicAnchor(schema)) {\n const result = MatchDynamicAnchor(schema, base, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n return MatchHash(schema, base, ref);\n}\n// ------------------------------------------------------------------\n// FromArray\n// ------------------------------------------------------------------\nfunction FromArray(schema, base, ref) {\n return schema.reduce((result, item) => {\n const match = FromValue(item, base, ref);\n return !Guard.IsUndefined(match) ? match : result;\n }, undefined);\n}\n// ------------------------------------------------------------------\n// FromObject\n// ------------------------------------------------------------------\nfunction FromObject(schema, base, ref) {\n return Guard.Keys(schema).reduce((result, key) => {\n const match = FromValue(schema[key], base, ref);\n return !Guard.IsUndefined(match) ? match : result;\n }, undefined);\n}\n// ------------------------------------------------------------------\n// FromValue\n// ------------------------------------------------------------------\nfunction FromValue(schema, base, ref) {\n const nextBase = Schema.IsSchemaObject(schema) && Schema.IsId(schema)\n ? new URL(schema.$id, base.href)\n : base;\n if (Schema.IsSchemaObject(schema)) {\n const result = Match(schema, nextBase, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n if (Guard.IsArray(schema))\n return FromArray(schema, nextBase, ref);\n if (Guard.IsObject(schema))\n return FromObject(schema, nextBase, ref);\n return undefined;\n}\n// ------------------------------------------------------------------\n// Ref\n// ------------------------------------------------------------------\nexport function Ref(schema, ref) {\n const defaultBase = new URL('http://unknown/');\n const initialBase = Schema.IsId(schema) ? new URL(schema.$id, defaultBase.href) : defaultBase;\n const initialRef = new URL(ref, initialBase.href);\n return FromValue(schema, initialBase, initialRef);\n}\n// ------------------------------------------------------------------\n// DynamicRef\n// ------------------------------------------------------------------\nexport function DynamicRef(root, base, dynamicRef, dynamicAnchors) {\n // Resolve the static target using either the local base (for fragment‑only references)\n // or the document root (for absolute URI references).\n const fragmentTarget = dynamicRef.$dynamicRef.startsWith('#')\n ? Ref(base, dynamicRef.$dynamicRef)\n : Ref(root, dynamicRef.$dynamicRef);\n if (Guard.IsUndefined(fragmentTarget))\n return undefined;\n // Dynamic override only applies if the resolved target itself declares a $dynamicAnchor.\n // If it does not, return the static target unchanged.\n if (!Schema.IsSchemaObject(fragmentTarget) || !Schema.IsDynamicAnchor(fragmentTarget))\n return fragmentTarget;\n // Extract the fragment portion of the reference. According to the test suite,\n // only plain fragment names (e.g., \"#foo\") trigger the dynamic scope; JSON \n // Pointer fragments (e.g., \"#/definitions/foo\") bypass dynamic resolution.\n const fragment = new URL(dynamicRef.$dynamicRef, 'http://unknown/').hash;\n if (fragment.startsWith('#/'))\n return fragmentTarget;\n // Search the live dynamic anchor stack for a schema whose $dynamicAnchor matches the\n // target's $dynamicAnchor. The stack reflects the current evaluation path, and\n // find() returns the outermost (first encountered) match, which is the correct\n // lexical scope per the specification.\n const anchorTarget = dynamicAnchors.find(anchor => anchor.$dynamicAnchor === fragmentTarget.$dynamicAnchor);\n return anchorTarget ?? fragmentTarget;\n}\n","// deno-fmt-ignore-file\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Stack_instances, _Stack_PushResourceAnchors, _Stack_PopResourceAnchors, _Stack_FromContext, _Stack_FromRef;\nimport * as Schema from '../types/index.mjs';\nimport { Guard as G } from '../../guard/index.mjs';\nimport { Resolve } from '../resolve/index.mjs';\nexport class Stack {\n constructor(context, schema) {\n _Stack_instances.add(this);\n this.context = context;\n this.schema = schema;\n this.ids = [];\n this.anchors = [];\n this.recursiveAnchors = [];\n this.dynamicAnchors = [];\n }\n // ----------------------------------------------------------------\n // Base\n // ----------------------------------------------------------------\n BaseURL() {\n return this.ids.reduce((result, schema) => new URL(schema.$id, result), new URL('http://unknown'));\n }\n Base() {\n return this.ids[this.ids.length - 1] ?? this.schema;\n }\n // ----------------------------------------------------------------\n // Stack\n // ----------------------------------------------------------------\n Push(schema) {\n if (!Schema.IsSchemaObject(schema))\n return;\n if (Schema.IsId(schema)) {\n this.ids.push(schema);\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_PushResourceAnchors).call(this, schema);\n }\n if (Schema.IsAnchor(schema))\n this.anchors.push(schema);\n if (Schema.IsRecursiveAnchorTrue(schema))\n this.recursiveAnchors.push(schema);\n if (Schema.IsDynamicAnchor(schema))\n this.dynamicAnchors.push(schema);\n }\n Pop(schema) {\n if (!Schema.IsSchemaObject(schema))\n return;\n if (Schema.IsId(schema)) {\n this.ids.pop();\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_PopResourceAnchors).call(this, schema);\n }\n if (Schema.IsAnchor(schema))\n this.anchors.pop();\n if (Schema.IsRecursiveAnchorTrue(schema))\n this.recursiveAnchors.pop();\n if (Schema.IsDynamicAnchor(schema))\n this.dynamicAnchors.pop();\n }\n Ref(ref) {\n return __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_FromContext).call(this, ref) ?? __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_FromRef).call(this, ref);\n }\n // ----------------------------------------------------------------\n // RecursiveRef\n // ----------------------------------------------------------------\n RecursiveRef(recursiveRef) {\n return Schema.IsRecursiveAnchorTrue(this.Base())\n ? Resolve.Ref(this.recursiveAnchors[0], recursiveRef.$recursiveRef)\n : Resolve.Ref(this.Base(), recursiveRef.$recursiveRef);\n }\n // ----------------------------------------------------------------\n // DynamicRef\n // ----------------------------------------------------------------\n DynamicRef(dynamicRef) {\n const root = this.schema;\n return Resolve.DynamicRef(root, this.Base(), dynamicRef, this.dynamicAnchors);\n }\n}\n_Stack_instances = new WeakSet(), _Stack_PushResourceAnchors = function _Stack_PushResourceAnchors(schema, isRoot = true) {\n if (!Schema.IsSchemaObject(schema))\n return;\n const current = schema;\n if (!isRoot && Schema.IsId(current))\n return;\n if (!isRoot && Schema.IsDynamicAnchor(current))\n this.dynamicAnchors.push(current);\n for (const key of G.Keys(current))\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_PushResourceAnchors).call(this, current[key], false);\n}, _Stack_PopResourceAnchors = function _Stack_PopResourceAnchors(schema, isRoot = true) {\n if (!Schema.IsSchemaObject(schema))\n return;\n const current = schema;\n if (!isRoot && Schema.IsId(current))\n return;\n if (!isRoot && Schema.IsDynamicAnchor(current))\n this.dynamicAnchors.pop();\n for (const key of G.Keys(current))\n __classPrivateFieldGet(this, _Stack_instances, \"m\", _Stack_PopResourceAnchors).call(this, current[key], false);\n}, _Stack_FromContext = function _Stack_FromContext(ref) {\n return G.HasPropertyKey(this.context, ref.$ref) ? this.context[ref.$ref] : undefined;\n}, _Stack_FromRef = function _Stack_FromRef(ref) {\n const root = this.schema;\n return !ref.$ref.startsWith('#')\n ? Resolve.Ref(root, ref.$ref)\n : Resolve.Ref(this.Base(), ref.$ref);\n};\n","// deno-fmt-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Settings } from '../system/settings/index.mjs';\nimport { Get as LocaleGet } from '../system/locale/_config.mjs';\nimport { Guard } from '../guard/index.mjs';\nimport * as Engine from './engine/index.mjs';\n/** Checks a value and returns validation errors */\nexport function Errors(...args) {\n const [context, schema, value] = Arguments.Match(args, {\n 3: (context, schema, value) => [context, schema, value],\n 2: (schema, value) => [{}, schema, value]\n });\n const settings = Settings.Get();\n const locale = LocaleGet();\n const errors = [];\n const stack = new Engine.Stack(context, schema);\n const errorContext = new Engine.ErrorContext(error => {\n if (Guard.IsGreaterEqualThan(errors.length, settings.maxErrors))\n return;\n return errors.push({ ...error, message: locale(error) });\n });\n const result = Engine.ErrorSchema(stack, errorContext, '#', '', schema, value);\n return [result, errors];\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport * as Engine from './engine/index.mjs';\n/** Checks a value against the provided schema */\nexport function Check(...args) {\n const [context, schema, value] = Arguments.Match(args, {\n 3: (context, schema, value) => [context, schema, value],\n 2: (schema, value) => [{}, schema, value]\n });\n const stack = new Engine.Stack(context, schema);\n const checkContext = new Engine.CheckContext();\n return Engine.CheckSchema(stack, checkContext, schema, value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Check as SchemaCheck } from '../../schema/index.mjs';\n/** Checks a value matches the provided type. */\nexport function Check(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value]\n });\n return SchemaCheck(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Errors as SchemaErrors, } from '../../schema/index.mjs';\n/**\n * Performs an exhaustive Check on the specified value and reports any errors found.\n * If no errors are found, an empty array is returned. Unlike Check, this function\n * does not terminate at the first occurance of an error. For best performance, call\n * Check first and call Errors only if Check returns false.\n */\nexport function Errors(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n const [_, errors] = SchemaErrors(context, type, value);\n return errors;\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\n// ------------------------------------------------------------------\n// AssertError\n// ------------------------------------------------------------------\nexport class AssertError extends Error {\n constructor(source, value, errors) {\n super(source);\n Object.defineProperty(this, 'cause', {\n value: { source, errors, value },\n writable: false,\n configurable: false,\n enumerable: false\n });\n }\n}\n/** Asserts the a value matches the given type. This function returns a TypeScript type asserts predicate and will throw AssertError if value does not match. */\nexport function Assert(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value]\n });\n const check = Check(context, type, value);\n if (!check)\n throw new AssertError('Assert', value, Errors(context, type, value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromArray(context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n return value.map((value) => FromType(context, type.items, value));\n}\n","// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromCyclic(context, type, value) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref), value);\n}\n","// deno-fmt-ignore-file\nimport { Evaluate, Instantiate, IsObject, With } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\n// ------------------------------------------------------------------\n// EvaluateIntersection\n// ------------------------------------------------------------------\nfunction EvaluateIntersection(context, type) {\n // Note: reinterpret unevaluatedProperties as additionalProperties\n const additionalProperties = Guard.HasPropertyKey(type, 'unevaluatedProperties')\n ? { additionalProperties: type.unevaluatedProperties }\n : {};\n const instantiated = Instantiate(context, type);\n const evaluated = Evaluate(instantiated);\n return IsObject(evaluated)\n ? With(evaluated, additionalProperties)\n : evaluated;\n}\n// ------------------------------------------------------------------\n// FromIntersection\n// ------------------------------------------------------------------\nexport function FromIntersect(context, type, value) {\n // Note: Evaluate and route back to FromType in evaluated form (likely an Object)\n const evaluated = EvaluateIntersection(context, type);\n return FromType(context, evaluated, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nexport function GetAdditionalProperties(type) {\n const additionalProperties = Guard.HasPropertyKey(type, 'additionalProperties') ? type.additionalProperties : undefined;\n return additionalProperties;\n}\n","// deno-fmt-ignore-file\nimport { IsSchema } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Check } from '../check/index.mjs';\nimport { GetAdditionalProperties } from './additional.mjs';\n// ------------------------------------------------------------------\n// FromObject\n// ------------------------------------------------------------------\nexport function FromObject(context, type, value) {\n if (!Guard.IsObject(value) || Guard.IsArray(value))\n return value;\n const additionalProperties = GetAdditionalProperties(type);\n for (const key of Guard.Keys(value)) {\n if (Guard.HasPropertyKey(type.properties, key)) {\n value[key] = FromType(context, type.properties[key], value[key]);\n continue;\n }\n const unknownCheck = \n // 1. additionalProperties: true\n (Guard.IsBoolean(additionalProperties) && Guard.IsEqual(additionalProperties, true))\n // 2. additionalProperties: TSchema\n || IsSchema(additionalProperties) && Check(context, additionalProperties, value[key]);\n if (unknownCheck) {\n value[key] = FromType(context, additionalProperties, value[key]);\n continue;\n }\n delete value[key];\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport { IsSchema, RecordPattern, RecordValue } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Check } from '../check/index.mjs';\nimport { GetAdditionalProperties } from './additional.mjs';\n// ------------------------------------------------------------------\n// FromRecord\n// ------------------------------------------------------------------\nexport function FromRecord(context, type, value) {\n if (!Guard.IsObject(value))\n return value;\n const additionalProperties = GetAdditionalProperties(type);\n const [recordPattern, recordValue] = [new RegExp(RecordPattern(type)), RecordValue(type)];\n for (const key of Guard.Keys(value)) {\n if (recordPattern.test(key)) {\n value[key] = FromType(context, recordValue, value[key]);\n continue;\n }\n const unknownCheck = \n // 1. additionalProperties: true\n (Guard.IsBoolean(additionalProperties) && Guard.IsEqual(additionalProperties, true))\n // 2. additionalProperties: TSchema\n || IsSchema(additionalProperties) && Check(context, additionalProperties, value[key]);\n if (unknownCheck) {\n value[key] = FromType(context, additionalProperties, value[key]);\n continue;\n }\n delete value[key];\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromRef(context, type, value) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref], value)\n : value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromTuple(context, schema, value) {\n if (!Guard.IsArray(value))\n return value;\n const length = Math.min(value.length, schema.items.length);\n for (let index = 0; index < length; index++) {\n value[index] = FromType(context, schema.items[index], value[index]);\n }\n return Guard.IsGreaterThan(value.length, length)\n ? value.slice(0, length)\n : value;\n}\n","// deno-fmt-ignore-file\nimport { Clone as SystemClone } from '../../system/memory/clone.mjs';\n// ------------------------------------------------------------------\n// Clone\n// ------------------------------------------------------------------\n/**\n * Returns a Clone of the given value. This function is similar to structuredClone()\n * but also supports deep cloning instances of Map, Set and TypeArray.\n */\nexport function Clone(value) {\n return SystemClone(value);\n}\n","// deno-fmt-ignore-file\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(context, type, value) {\n for (const schema of type.anyOf) {\n const clean = FromType(context, schema, Clone(value));\n if (Check(context, schema, clean))\n return clean;\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromRecord } from './from_record.mjs';\nimport { FromRef } from './from_ref.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUnion } from './from_union.mjs';\nexport function FromType(context, type, value) {\n return (T.IsArray(type) ? FromArray(context, type, value) :\n T.IsCyclic(type) ? FromCyclic(context, type, value) :\n T.IsIntersect(type) ? FromIntersect(context, type, value) :\n T.IsObject(type) ? FromObject(context, type, value) :\n T.IsRecord(type) ? FromRecord(context, type, value) :\n T.IsRef(type) ? FromRef(context, type, value) :\n T.IsTuple(type) ? FromTuple(context, type, value) :\n T.IsUnion(type) ? FromUnion(context, type, value) :\n value);\n}\n","// deno-fmt-ignore-file\nimport Guard from '../../guard/index.mjs';\nimport { IsArray, Array as _Array_, ArrayOptions } from '../../type/index.mjs';\nimport { IsUnion, Union } from '../../type/index.mjs';\nimport { IsObject, Object as _Object_ } from '../../type/index.mjs';\nimport { IsRecord, Record, RecordKey, RecordValue } from '../../type/index.mjs';\nimport { IsTuple, Tuple } from '../../type/index.mjs';\nimport { IsIntersect, Intersect } from '../../type/index.mjs';\nimport { Priority } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// Modifiers (Mutable)\n//\n// Prioritized types lose `~modifier` properties and additional constraints\n// (e.g. additionalProperties) during the mapping phase and need to be\n// reassigned afterward. This is a fast mutable assignment to handle that,\n// but we should consider a more general solution. (review)\n//\n// ------------------------------------------------------------------\nfunction Modifiers(type, next) {\n for (const key of Guard.Keys(type)) {\n if (Guard.HasPropertyKey(next, key))\n continue;\n next[key] = type[key];\n }\n return next;\n}\n// ------------------------------------------------------------------\n// Properties\n// ------------------------------------------------------------------\nfunction FromProperties(properties) {\n const result = {};\n for (const key of Guard.Keys(properties))\n result[key] = FromType(properties[key]);\n return result;\n}\n// ------------------------------------------------------------------\n// PriorityTypes\n// ------------------------------------------------------------------\nfunction FromPriorityTypes(types) {\n return FromTypes(Priority(types));\n}\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\nfunction FromTypes(types) {\n return types.map(type => FromType(type));\n}\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\nfunction FromType(type) {\n const next = (IsArray(type) ? _Array_(FromType(type.items), ArrayOptions(type)) :\n IsIntersect(type) ? Intersect(FromTypes(type.allOf)) :\n IsUnion(type) ? Union(FromPriorityTypes(type.anyOf)) :\n IsObject(type) ? _Object_(FromProperties(type.properties)) :\n IsRecord(type) ? Record(RecordKey(type), FromType(RecordValue(type))) :\n IsTuple(type) ? Tuple(FromTypes(type.items)) :\n type);\n return Modifiers(type, next);\n}\n// ------------------------------------------------------------------\n// UnionPrioritySort\n// ------------------------------------------------------------------\n/**\n * (Type-Preprocessor) Recursively reorders Union variants from narrowest to broadest, ensuring\n * more specific types (e.g. Literal) are evaluated before broader types (e.g. String). Used\n * prior to Clean, Decode, and Encode operations.\n */\nexport function UnionPrioritySort(type) {\n const result = FromType(type);\n return result;\n}\n","import { Arguments, Settings } from '../../system/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { UnionPrioritySort } from '../shared/union_priority_sort.mjs';\n/**\n * Cleans a value by removing non-evaluated properties and elements as derived from the provided type.\n * This function returns unknown so callers should Check the return value before use. This function\n * mutates the provided value. If mutation is not wanted, you should Clone the value before passing\n * to this function.\n */\nexport function Clean(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value]\n });\n const sorted = Settings.Get().unionPrioritySort ? UnionPrioritySort(type) : type;\n return FromType(context, sorted, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nexport function IsOk(value) {\n return Guard.IsObject(value) && Guard.HasPropertyKey(value, 'value');\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\nexport function Ok(value) {\n return { value };\n}\nexport function Fail() {\n return undefined;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok } from './try_result.mjs';\nexport function TryArray(value) {\n return Guard.IsArray(value) ? Ok(value) : Ok([value]);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try_result.mjs';\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Guard.IsEqual(value, true) ? Ok(BigInt(1)) : Ok(BigInt(0));\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nconst bigintPattern = /^-?(0|[1-9]\\d*)n$/;\nconst decimalPattern = /^-?(0|[1-9]\\d*)\\.\\d+$/;\nconst integerPattern = /^-?(0|[1-9]\\d*)$/;\nfunction IsStringBigIntLike(value) {\n return bigintPattern.test(value);\n}\nfunction IsStringDecimalLike(value) {\n return decimalPattern.test(value);\n}\nfunction IsStringIntegerLike(value) {\n return integerPattern.test(value);\n}\nfunction FromString(value) {\n const lowercase = value.toLowerCase();\n return (IsStringBigIntLike(value) ? Ok(BigInt(value.slice(0, value.length - 1))) :\n IsStringDecimalLike(value) ? Ok(BigInt(value.split('.')[0])) :\n IsStringIntegerLike(value) ? Ok(BigInt(value)) :\n Guard.IsEqual(lowercase, 'false') ? Ok(BigInt(0)) :\n Guard.IsEqual(lowercase, 'true') ? Ok(BigInt(1)) :\n Fail());\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\nexport function TryBigInt(value) {\n return (Guard.IsBigInt(value) ? Ok(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? Ok(BigInt(Math.trunc(value))) :\n Guard.IsNull(value) ? Ok(BigInt(0)) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? Ok(BigInt(0)) :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try_result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return (Guard.IsEqual(value, BigInt(0)) ? Ok(false) :\n Guard.IsEqual(value, BigInt(1)) ? Ok(true) :\n Fail());\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return (Guard.IsEqual(value, 0) ? Ok(false) :\n Guard.IsEqual(value, 1) ? Ok(true) :\n Fail());\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n return (Guard.IsEqual(value.toLowerCase(), 'false') ? Ok(false) :\n Guard.IsEqual(value.toLowerCase(), 'true') ? Ok(true) :\n Guard.IsEqual(value, '0') ? Ok(false) :\n Guard.IsEqual(value, '1') ? Ok(true) :\n Fail());\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\nexport function TryBoolean(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? Ok(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? Ok(false) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? Ok(false) :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try_result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return Guard.IsEqual(value, BigInt(0)) ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Guard.IsEqual(value, false) ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return Guard.IsEqual(value, 0) ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n const lowercase = value.toLowerCase();\n const predicate = Guard.IsEqual(lowercase, 'undefined')\n || Guard.IsEqual(lowercase, 'null')\n || Guard.IsEqual(value, '')\n || Guard.IsEqual(value, '0');\n return predicate ? Ok(null) : Fail();\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\nexport function TryNull(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? Ok(null) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? Ok(null) :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail, IsOk } from './try_result.mjs';\nimport { TryBigInt } from './try_bigint.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nconst maxBigInt = BigInt(Number.MAX_SAFE_INTEGER);\nconst minBigInt = BigInt(Number.MIN_SAFE_INTEGER);\nfunction FromBigInt(value) {\n return (value <= maxBigInt && value >= minBigInt) ? Ok(Number(value)) : Fail();\n}\nfunction FromBoolean(value) {\n return Ok(value ? 1 : 0);\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n const coerced = +value;\n if (Guard.IsNumber(coerced))\n return Ok(coerced);\n const lowercase = value.toLowerCase();\n if (Guard.IsEqual(lowercase, 'false'))\n return Ok(0);\n if (Guard.IsEqual(lowercase, 'true'))\n return Ok(1);\n const result = TryBigInt(value);\n if (IsOk(result))\n return (result.value <= maxBigInt && result.value >= minBigInt) ? Ok(Number(result.value)) : Fail();\n return Fail();\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\nexport function TryNumber(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? Ok(value) :\n Guard.IsNull(value) ? Ok(0) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? Ok(0) :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try_result.mjs';\nexport function TryString(value) {\n return (Guard.IsBigInt(value) ? Ok(value.toString()) :\n Guard.IsBoolean(value) ? Ok(value.toString()) :\n Guard.IsNumber(value) ? Ok(value.toString()) :\n Guard.IsNull(value) ? Ok('null') :\n Guard.IsString(value) ? Ok(value) :\n Guard.IsUndefined(value) ? Ok('') :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try_result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return Guard.IsEqual(value, BigInt(0)) ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Guard.IsEqual(value, false) ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return Guard.IsEqual(value, 0) ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromString(value) {\n const lowercase = value.toLowerCase();\n const predicate = Guard.IsEqual(lowercase, 'undefined')\n || Guard.IsEqual(lowercase, 'null')\n || Guard.IsEqual(value, '')\n || Guard.IsEqual(value, '0');\n return predicate ? Ok(undefined) : Fail();\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\nexport function TryUndefined(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? Ok(undefined) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? Ok(value) :\n Fail());\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromArray(context, type, value) {\n const result = Try.TryArray(value);\n return result.value.map(value => FromType(context, type.items, value));\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromBigInt(_context, _type, value) {\n const result = Try.TryBigInt(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromBoolean(_context, _type, value) {\n const result = Try.TryBoolean(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromCyclic(context, type, value) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref), value);\n}\n","// deno-fmt-ignore-file\nimport { Evaluate } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromEnum(context, type, value) {\n return FromType(context, Evaluate(type), value);\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromInteger(_context, _type, value) {\n const result = Try.TryNumber(value);\n return Try.IsOk(result) ? Math.trunc(result.value) : value;\n}\n","// deno-fmt-ignore-file\nimport { Evaluate, Instantiate } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromIntersect(context, type, value) {\n const instantiated = Instantiate(context, type);\n const evaluated = Evaluate(instantiated);\n return FromType(context, evaluated, value);\n}\n","// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsLiteralBigInt, IsLiteralBoolean, IsLiteralNumber, IsLiteralString } from '../../type/index.mjs';\nimport { Try } from './try/index.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromLiteralBigInt(_context, type, value) {\n const result = Try.TryBigInt(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromLiteralBoolean(_context, type, value) {\n const result = Try.TryBoolean(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromLiteralNumber(_context, type, value) {\n const result = Try.TryNumber(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\nfunction FromLiteralString(_context, type, value) {\n const result = Try.TryString(value);\n return Try.IsOk(result) && Guard.IsEqual(type.const, result.value) ? result.value : value;\n}\n// deno-coverage-ignore-start - unreachable | guarded\nexport function FromLiteral(context, type, value) {\n if (Guard.IsEqual(type.const, value))\n return value;\n return (IsLiteralBigInt(type) ? FromLiteralBigInt(context, type, value) :\n IsLiteralBoolean(type) ? FromLiteralBoolean(context, type, value) :\n IsLiteralNumber(type) ? FromLiteralNumber(context, type, value) :\n IsLiteralString(type) ? FromLiteralString(context, type, value) :\n Unreachable());\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromNull(_context, _type, value) {\n const result = Try.TryNull(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromNumber(_context, _type, value) {\n const result = Try.TryNumber(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\n/**\n * Used by Object and Record Types. The entries are derived from the known\n * properties obtained from 'properties' and 'patternProperties' respectively.\n */\nexport function FromAdditionalProperties(context, entries, additionalProperties, value) {\n const keys = Guard.Keys(value);\n for (const [regexp, _] of entries) {\n for (const key of keys) {\n if (!regexp.test(key)) {\n value[key] = FromType(context, additionalProperties, value[key]);\n }\n }\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsOptional } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// IsOptionalUndefined\n//\n// Indicates whether a key should be excluded from processing when it is \n// defined as optional in the schema and its corresponding value is undefined. \n// This case cannot be reliably distinguished from an omitted key, and therefore \n// introduces ambiguity between a key that is not provided and one that is \n// explicitly assigned an undefined value.\n// ------------------------------------------------------------------\nexport function IsOptionalUndefined(property, key, value) {\n return IsOptional(property) && Guard.IsUndefined(value[key]);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { FromAdditionalProperties } from './from_additional.mjs';\nimport { IsOptionalUndefined } from '../shared/optional_undefined.mjs';\n// ------------------------------------------------------------------\n// FromProperties\n// ------------------------------------------------------------------\nfunction FromProperties(context, type, value) {\n const entries = Guard.EntriesRegExp(type.properties);\n const keys = Guard.Keys(value);\n for (const [regexp, property] of entries) {\n for (const key of keys) {\n // Ignore for non-present or optional-undefined\n if (!regexp.test(key) || IsOptionalUndefined(property, key, value))\n continue;\n value[key] = FromType(context, property, value[key]);\n }\n }\n return (Guard.HasPropertyKey(type, 'additionalProperties') && Guard.IsObject(type.additionalProperties)\n ? FromAdditionalProperties(context, entries, type.additionalProperties, value)\n : value);\n}\nexport function FromObject(context, type, value) {\n return Guard.IsObjectNotArray(value)\n ? FromProperties(context, type, value)\n : value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { FromAdditionalProperties } from './from_additional.mjs';\nfunction FromPatternProperties(context, type, value) {\n const entries = Guard.EntriesRegExp(type.patternProperties);\n const keys = Guard.Keys(value);\n for (const [regexp, schema] of entries) {\n for (const key of keys) {\n if (regexp.test(key)) {\n value[key] = FromType(context, schema, value[key]);\n }\n }\n }\n return (Guard.HasPropertyKey(type, 'additionalProperties') && Guard.IsObject(type.additionalProperties)\n ? FromAdditionalProperties(context, entries, type.additionalProperties, value)\n : value);\n}\nexport function FromRecord(context, type, value) {\n return Guard.IsObjectNotArray(value)\n ? FromPatternProperties(context, type, value)\n : value;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from_type.mjs';\nimport { Guard } from '../../guard/index.mjs';\nexport function FromRef(context, type, value) {\n return (Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref], value)\n : value);\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromString(_context, _type, value) {\n const result = Try.TryString(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Evaluate } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromTemplateLiteral(context, type, value) {\n return FromType(context, Evaluate(type), value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromTuple(context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n for (let index = 0; index < Math.min(type.items.length, value.length); index++) {\n value[index] = FromType(context, type.items[index], value[index]);\n }\n return value;\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromUndefined(_context, _type, value) {\n const result = Try.TryUndefined(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(context, type, value) {\n const matched = type.anyOf.some(type => Check(context, type, value));\n if (matched)\n return value;\n const candidates = type.anyOf.map(type => FromType(context, type, Clone(value)));\n const selected = candidates.find(value => Check(context, type, value));\n return Guard.IsUndefined(selected) ? value : selected;\n}\n","// deno-fmt-ignore-file\nimport { Try } from './try/index.mjs';\nexport function FromVoid(_context, _type, value) {\n const result = Try.TryUndefined(value);\n return Try.IsOk(result) ? (void 0) : value;\n}\n","// deno-fmt-ignore-file\nimport * as Type from '../../type/index.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromBigInt } from './from_bigint.mjs';\nimport { FromBoolean } from './from_boolean.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromEnum } from './from_enum.mjs';\nimport { FromInteger } from './from_integer.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromLiteral } from './from_literal.mjs';\nimport { FromNull } from './from_null.mjs';\nimport { FromNumber } from './from_number.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromRecord } from './from_record.mjs';\nimport { FromRef } from './from_ref.mjs';\nimport { FromString } from './from_string.mjs';\nimport { FromTemplateLiteral } from './from_template_literal.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUndefined } from './from_undefined.mjs';\nimport { FromUnion } from './from_union.mjs';\nimport { FromVoid } from './from_void.mjs';\nexport function FromType(context, type, value) {\n return (Type.IsArray(type) ? FromArray(context, type, value) :\n Type.IsBigInt(type) ? FromBigInt(context, type, value) :\n Type.IsBoolean(type) ? FromBoolean(context, type, value) :\n Type.IsCyclic(type) ? FromCyclic(context, type, value) :\n Type.IsEnum(type) ? FromEnum(context, type, value) :\n Type.IsInteger(type) ? FromInteger(context, type, value) :\n Type.IsIntersect(type) ? FromIntersect(context, type, value) :\n Type.IsLiteral(type) ? FromLiteral(context, type, value) :\n Type.IsNull(type) ? FromNull(context, type, value) :\n Type.IsNumber(type) ? FromNumber(context, type, value) :\n Type.IsObject(type) ? FromObject(context, type, value) :\n Type.IsRecord(type) ? FromRecord(context, type, value) :\n Type.IsRef(type) ? FromRef(context, type, value) :\n Type.IsString(type) ? FromString(context, type, value) :\n Type.IsTemplateLiteral(type) ? FromTemplateLiteral(context, type, value) :\n Type.IsTuple(type) ? FromTuple(context, type, value) :\n Type.IsUndefined(type) ? FromUndefined(context, type, value) :\n Type.IsUnion(type) ? FromUnion(context, type, value) :\n Type.IsVoid(type) ? FromVoid(context, type, value) :\n value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from_type.mjs';\n/**\n * Converts a value to the given type, coercing interior values if a reasonable conversion is possible. This\n * function returns unknown so callers should Check the return value before use. This function mutates the\n * provided value. If mutation is not wanted, you should Clone the value before passing to this function.\n */\nexport function Convert(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return FromType(context, type, value);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromArray(context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n for (let i = 0; i < value.length; i++) {\n value[i] = FromType(context, type.items, value[i]);\n }\n return value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromCyclic(context, type, value) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref), value);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Clone } from '../clone/index.mjs';\n// ------------------------------------------------------------------\n// FromDefault\n// ------------------------------------------------------------------\nexport function FromDefault(type, value) {\n // we only use defaults when values are undefined, exit early\n if (!Guard.IsUndefined(value))\n return value;\n return Guard.IsFunction(type.default) ? type.default() : Clone(type.default);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Evaluate, Instantiate } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromIntersect(context, type, value) {\n const instantiated = Instantiate(context, type);\n const evaluated = Evaluate(instantiated);\n return FromType(context, evaluated, value);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { IsOptional } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { IsAdditionalProperties } from '../../schema/types/index.mjs';\nexport function FromObject(context, type, value) {\n if (!Guard.IsObject(value))\n return value;\n const knownPropertyKeys = Guard.Keys(type.properties);\n // Properties\n for (const key of knownPropertyKeys) {\n // Resolve Value for Property\n const propertyValue = FromType(context, type.properties[key], value[key]);\n // Ambiguious Undefined: If the value is undefined, the type is optional there's no default. ignore.\n const isUnassignableUndefined = Guard.IsUndefined(propertyValue) && (IsOptional(type.properties[key]) || !Guard.HasPropertyKey(type.properties[key], 'default'));\n if (isUnassignableUndefined)\n continue;\n // Assign\n value[key] = propertyValue;\n }\n // return if not additional properties\n if (!IsAdditionalProperties(type) || Guard.IsBoolean(type.additionalProperties))\n return value;\n // AdditionalProperties\n for (const key of Guard.Keys(value)) {\n if (knownPropertyKeys.includes(key))\n continue;\n value[key] = FromType(context, type.additionalProperties, value[key]);\n }\n return value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { RecordPattern, RecordValue } from '../../type/index.mjs';\nimport { IsAdditionalProperties, IsDefault } from '../../schema/types/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromRecord(context, type, value) {\n if (!Guard.IsObject(value))\n return value;\n // PatternProperties\n const [recordKey, recordValue] = [new RegExp(RecordPattern(type)), RecordValue(type)];\n for (const key of Guard.Keys(value)) {\n if (!(recordKey.test(key) && IsDefault(recordValue)))\n continue;\n value[key] = FromType(context, recordValue, value[key]);\n }\n // AdditionalProperties\n if (!IsAdditionalProperties(type))\n return value;\n for (const key of Guard.Keys(value)) {\n if (recordKey.test(key))\n continue;\n value[key] = FromType(context, type.additionalProperties, value[key]);\n }\n return value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromRef(context, type, value) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref], value)\n : value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromTuple(context, schema, value) {\n if (!Guard.IsArray(value))\n return value;\n const [items, max] = [schema.items, Math.max(schema.items.length, value.length)];\n for (let i = 0; i < max; i++) {\n if (i < items.length)\n value[i] = FromType(context, items[i], value[i]);\n }\n return value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { FromType } from './from_type.mjs';\nexport function FromUnion(context, schema, value) {\n for (const inner of schema.anyOf) {\n const result = FromType(context, inner, Clone(value));\n if (Check(context, inner, result)) {\n return result;\n }\n }\n return value;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { IsDefault } from '../../schema/index.mjs';\nimport * as T from '../../type/index.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromDefault } from './from_default.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromRecord } from './from_record.mjs';\nimport { FromRef } from './from_ref.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUnion } from './from_union.mjs';\nexport function FromType(context, type, value) {\n const defaulted = IsDefault(type) ? FromDefault(type, value) : value;\n return (T.IsArray(type) ? FromArray(context, type, defaulted) :\n T.IsCyclic(type) ? FromCyclic(context, type, defaulted) :\n T.IsIntersect(type) ? FromIntersect(context, type, defaulted) :\n T.IsObject(type) ? FromObject(context, type, defaulted) :\n T.IsRecord(type) ? FromRecord(context, type, defaulted) :\n T.IsRef(type) ? FromRef(context, type, defaulted) :\n T.IsTuple(type) ? FromTuple(context, type, defaulted) :\n T.IsUnion(type) ? FromUnion(context, type, defaulted) :\n defaulted);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from_type.mjs';\n/**\n * Patches missing properties on the value using default annotations specified on the provided type. This\n * function returns unknown so callers should Check the return value before use. This function mutates the\n * provided value. If mutation is not wanted, you should Clone the value before passing to this function.\n */\nexport function Default(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return FromType(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\n// ------------------------------------------------------------------\n// Pipeline\n// ------------------------------------------------------------------\n/** Creates a value processing pipeline. */\nexport function Pipeline(pipeline) {\n return (...args) => {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return pipeline.reduce((result, func) => func(context, type, result), value);\n };\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsCodec } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(_context, type, value) {\n return type['~codec'].decode(value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(_context, type, value) {\n return type['~codec'].encode(value);\n}\n// ------------------------------------------------------------------\n// Callback\n// ------------------------------------------------------------------\nexport function Callback(direction, context, type, value) {\n if (!IsCodec(type))\n return value;\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(context, type, value)\n : Encode(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n for (let i = 0; i < value.length; i++) {\n value[i] = FromType(direction, context, type.items, value[i]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsArray(exterior))\n return exterior;\n for (let i = 0; i < exterior.length; i++) {\n exterior[i] = FromType(direction, context, type.items, exterior[i]);\n }\n return exterior;\n}\n// ------------------------------------------------------------------\n// FromArray\n// ------------------------------------------------------------------\nexport function FromArray(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\nexport function FromCyclic(direction, context, type, value) {\n value = FromType(direction, { ...context, ...type.$defs }, Ref(type.$ref), value);\n return Callback(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Clean } from '../clean/index.mjs';\n// ------------------------------------------------------------------\n// MergeInteriors\n//\n// Merges all interior operand results into a single object. Each\n// subsequent operand's properties override those of prior operands.\n//\n// ------------------------------------------------------------------\nfunction MergeInteriors(interiors) {\n return interiors.reduce((results, interior) => ({ ...results, ...interior }), {});\n}\n// ------------------------------------------------------------------\n// NonMatchingInterior\n//\n// Used when Intersect operands do not all produce Objects. Returns\n// the first interior result that differs from the original value,\n// indicating a Codec has transformed the data. If no operand\n// produced a change, defaults to the first interior result.\n//\n// ------------------------------------------------------------------\nfunction NonMatchingInterior(value, interiors) {\n for (const interior of interiors)\n if (!Guard.IsDeepEqual(value, interior))\n return interior;\n return value; // value-unchanged\n}\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n if (Guard.IsEqual(type.allOf.length, 0))\n return Callback(direction, context, type, value);\n const interiors = type.allOf.map((schema) => FromType(direction, context, schema, Clean(schema, Clone(value))));\n const structural = interiors.every((result) => Guard.IsObject(result));\n const exterior = structural ? MergeInteriors(interiors) : NonMatchingInterior(value, interiors);\n return Callback(direction, context, type, exterior);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n if (Guard.IsEqual(type.allOf.length, 0))\n return Callback(direction, context, type, value);\n const exterior = Callback(direction, context, type, value);\n const interiors = type.allOf.map((schema) => FromType(direction, context, schema, Clean(schema, Clone(exterior))));\n const structural = interiors.every((result) => Guard.IsObject(result));\n if (structural)\n return MergeInteriors(interiors);\n return NonMatchingInterior(exterior, interiors);\n}\nexport function FromIntersect(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode') ? Decode(direction, context, type, value) : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\nimport { IsOptionalUndefined } from '../shared/optional_undefined.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n if (!Guard.IsObjectNotArray(value))\n return value;\n for (const key of Guard.Keys(type.properties)) {\n // Ignore for non-present or optional-undefined\n if (!Guard.HasPropertyKey(value, key) || IsOptionalUndefined(type.properties[key], key, value))\n continue;\n value[key] = FromType(direction, context, type.properties[key], value[key]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsObjectNotArray(exterior))\n return exterior;\n for (const key of Guard.Keys(type.properties)) {\n // Ignore for non-present or optional-undefined\n if (!Guard.HasPropertyKey(exterior, key) || IsOptionalUndefined(type.properties[key], key, exterior))\n continue;\n exterior[key] = FromType(direction, context, type.properties[key], exterior[key]);\n }\n return exterior;\n}\n// ------------------------------------------------------------------\n// FromObject\n// ------------------------------------------------------------------\nexport function FromObject(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { RecordPattern, RecordValue } from '../../type/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n if (!Guard.IsObjectNotArray(value))\n return value;\n const regexp = new RegExp(RecordPattern(type));\n for (const key of Guard.Keys(value)) {\n if (!regexp.test(key))\n continue;\n value[key] = FromType(direction, context, RecordValue(type), value[key]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsObjectNotArray(exterior))\n return exterior;\n const regexp = new RegExp(RecordPattern(type));\n for (const key of Guard.Keys(exterior)) {\n if (!regexp.test(key))\n continue;\n exterior[key] = FromType(direction, context, RecordValue(type), exterior[key]);\n }\n return exterior;\n}\nexport function FromRecord(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// ResolveRef\n// ------------------------------------------------------------------\nfunction ResolveRef(direction, context, type, value) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(direction, context, context[type.$ref], value)\n : value;\n}\n// ------------------------------------------------------------------\n// FromRef\n//\n// Decode and Encode apply the Callback and the referenced type's\n// codec pipeline in opposite orders, since the two operations are\n// inverses of each other.\n//\n// Decode: referenced type resolves first, Callback runs after.\n// wire value -> resolve $ref -> Callback -> decoded value\n//\n// Encode: Callback runs first, referenced type resolves after.\n// encoded value -> Callback -> resolve $ref -> wire value\n//\n// ------------------------------------------------------------------\nexport function FromRef(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Callback(direction, context, type, ResolveRef(direction, context, type, value))\n : ResolveRef(direction, context, type, Callback(direction, context, type, value));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Callback } from './callback.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n if (!Guard.IsArray(value))\n return value;\n for (let i = 0; i < Math.min(type.items.length, value.length); i++) {\n value[i] = FromType(direction, context, type.items[i], value[i]);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n if (!Guard.IsArray(exterior))\n return value;\n for (let i = 0; i < Math.min(type.items.length, exterior.length); i++) {\n exterior[i] = FromType(direction, context, type.items[i], exterior[i]);\n }\n return exterior;\n}\nexport function FromTuple(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Callback } from './callback.mjs';\nimport { FromType } from './from_type.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Check } from '../check/index.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n for (const schema of type.anyOf) {\n if (!Check(context, schema, value))\n continue;\n const variant = FromType(direction, context, schema, value);\n return Callback(direction, context, type, variant);\n }\n return value;\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n const exterior = Callback(direction, context, type, value);\n for (const schema of type.anyOf) {\n const variant = FromType(direction, context, schema, Clone(exterior));\n if (!Check(context, schema, variant))\n continue;\n return variant;\n }\n return exterior;\n}\n// ------------------------------------------------------------------\n// FromUnion\n// ------------------------------------------------------------------\nexport function FromUnion(direction, context, type, value) {\n return Guard.IsEqual(direction, 'Decode')\n ? Decode(direction, context, type, value)\n : Encode(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport * as Type from '../../type/index.mjs';\nimport { FromArray } from './from_array.mjs';\nimport { FromCyclic } from './from_cyclic.mjs';\nimport { FromIntersect } from './from_intersect.mjs';\nimport { FromObject } from './from_object.mjs';\nimport { FromRecord } from './from_record.mjs';\nimport { FromRef } from './from_ref.mjs';\nimport { FromTuple } from './from_tuple.mjs';\nimport { FromUnion } from './from_union.mjs';\nimport { Callback } from './callback.mjs';\nexport function FromType(direction, context, type, value) {\n return (Type.IsArray(type) ? FromArray(direction, context, type, value) :\n Type.IsCyclic(type) ? FromCyclic(direction, context, type, value) :\n Type.IsIntersect(type) ? FromIntersect(direction, context, type, value) :\n Type.IsObject(type) ? FromObject(direction, context, type, value) :\n Type.IsRecord(type) ? FromRecord(direction, context, type, value) :\n Type.IsRef(type) ? FromRef(direction, context, type, value) :\n Type.IsTuple(type) ? FromTuple(direction, context, type, value) :\n Type.IsUnion(type) ? FromUnion(direction, context, type, value) :\n Callback(direction, context, type, value));\n}\n","// deno-fmt-ignore-file\nimport { Arguments, Settings } from '../../system/index.mjs';\nimport { AssertError } from '../assert/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\nimport { Clean } from '../clean/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Convert } from '../convert/index.mjs';\nimport { Default } from '../default/index.mjs';\nimport { Pipeline } from '../pipeline/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { UnionPrioritySort } from '../shared/union_priority_sort.mjs';\n// ------------------------------------------------------------------\n// Assert\n// ------------------------------------------------------------------\nexport class DecodeError extends AssertError {\n constructor(value, errors) {\n super('Decode', value, errors);\n }\n}\nfunction Assert(context, type, value) {\n if (!Check(context, type, value))\n throw new DecodeError(value, Errors(context, type, value));\n return value;\n}\n// ------------------------------------------------------------------\n// DecodeUnsafe\n// ------------------------------------------------------------------\n/** Executes Decode callbacks only */\nexport function DecodeUnsafe(context, type, value) {\n const sorted = Settings.Get().unionPrioritySort ? UnionPrioritySort(type) : type;\n return FromType('Decode', context, sorted, value);\n}\n// ------------------------------------------------------------------\n// Decoder\n// ------------------------------------------------------------------\nconst Decoder = Pipeline([\n (_context, _type, value) => Clone(value),\n (context, type, value) => Default(context, type, value),\n (context, type, value) => Convert(context, type, value),\n (context, type, value) => Clean(context, type, value),\n (context, type, value) => Assert(context, type, value),\n (context, type, value) => DecodeUnsafe(context, type, value)\n]);\n/** Decodes a value with the given type. */\nexport function Decode(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return Decoder(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Arguments, Settings } from '../../system/index.mjs';\nimport { AssertError } from '../assert/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\nimport { Clean } from '../clean/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Convert } from '../convert/index.mjs';\nimport { Default } from '../default/index.mjs';\nimport { Pipeline } from '../pipeline/index.mjs';\nimport { FromType } from './from_type.mjs';\nimport { UnionPrioritySort } from '../shared/union_priority_sort.mjs';\n// ------------------------------------------------------------------\n// Assert\n// ------------------------------------------------------------------\nexport class EncodeError extends AssertError {\n constructor(value, errors) {\n super('Encode', value, errors);\n }\n}\nfunction Assert(context, type, value) {\n if (!Check(context, type, value))\n throw new EncodeError(value, Errors(context, type, value));\n return value;\n}\n// ------------------------------------------------------------------\n// EncodeUnsafe\n// ------------------------------------------------------------------\n/** Executes Encode callbacks only */\nexport function EncodeUnsafe(context, type, value) {\n const sorted = Settings.Get().unionPrioritySort ? UnionPrioritySort(type) : type;\n return FromType('Encode', context, sorted, value);\n}\n// ------------------------------------------------------------------\n// Encoder\n// ------------------------------------------------------------------\nconst Encoder = Pipeline([\n (_context, _type, value) => Clone(value),\n (context, type, value) => EncodeUnsafe(context, type, value),\n (context, type, value) => Default(context, type, value),\n (context, type, value) => Convert(context, type, value),\n (context, type, value) => Clean(context, type, value),\n (context, type, value) => Assert(context, type, value),\n]);\n/** Encodes a value with the given type. */\nexport function Encode(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n return Encoder(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Settings } from '../../system/system.mjs';\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { AssertError } from '../assert/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../errors/index.mjs';\nimport { Clean } from '../clean/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Convert } from '../convert/index.mjs';\nimport { Default } from '../default/index.mjs';\nimport { Pipeline } from '../pipeline/index.mjs';\n// ------------------------------------------------------------------\n// Assert\n// ------------------------------------------------------------------\nexport class ParseError extends AssertError {\n constructor(value, errors) {\n super('Parse', value, errors);\n }\n}\nfunction Assert(context, type, value) {\n if (!Check(context, type, value))\n throw new ParseError(value, Errors(context, type, value));\n return value;\n}\n// ------------------------------------------------------------------\n// Parser\n// ------------------------------------------------------------------\nexport const Parser = Pipeline([\n (_context, _type, value) => Clone(value),\n (context, type, value) => Default(context, type, value),\n (context, type, value) => Convert(context, type, value),\n (context, type, value) => Clean(context, type, value),\n (context, type, value) => Assert(context, type, value)\n]);\n/** Parses a value with the given type. */\nexport function Parse(...args) {\n const [context, type, value] = Arguments.Match(args, {\n 3: (context, type, value) => [context, type, value],\n 2: (type, value) => [{}, type, value],\n });\n const checked = Check(context, type, value);\n if (checked)\n return value;\n if (Settings.Get().correctiveParse)\n return Parser(context, type, value);\n throw new ParseError(value, Errors(context, type, value));\n}\n","// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nexport const Insert = T.Object({\n type: T.Literal('insert'),\n path: T.String(),\n value: T.Unknown(),\n});\nexport const Update = Object({\n type: T.Literal('update'),\n path: T.String(),\n value: T.Unknown(),\n});\nexport const Delete = T.Object({\n type: T.Literal('delete'),\n path: T.String(),\n});\nexport const Edit = T.Union([Insert, Update, Delete]);\n","import path from \"node:path\";\nimport { Type } from \"typebox\";\nimport { Check, Errors, Parse } from \"typebox/value\";\n//#region src/scripts.ts\nconst stringArrayType = Type.Array(Type.String());\nconst severityType = Type.Union([\n\tType.Literal(\"error\"),\n\tType.Literal(\"off\"),\n\tType.Literal(\"warn\")\n]);\nconst ScriptPolicyType = Type.Object({\n\tallowCustomCommands: Type.Optional(stringArrayType),\n\tautofix: Type.Optional(Type.Boolean()),\n\tcommand: Type.Optional(Type.Unknown()),\n\tdescription: Type.Optional(Type.String()),\n\texclude: Type.Optional(stringArrayType),\n\tinclude: Type.Optional(stringArrayType),\n\trequired: Type.Optional(Type.Boolean()),\n\tseverity: Type.Optional(severityType)\n});\nfunction parseScriptPolicy(data) {\n\tif (!Check(ScriptPolicyType, data)) {\n\t\tconst first = Errors(ScriptPolicyType, data)[0];\n\t\tthrow new TypeError(first?.message ?? \"Invalid ScriptPolicy value\");\n\t}\n\tif (!isCommand(data[\"command\"])) throw new TypeError(\"Invalid command: must be a function, RegExp, or string\");\n\treturn data;\n}\nfunction parseScriptPolicyOrArray(data) {\n\treturn Array.isArray(data) ? data.map((policy) => parseScriptPolicy(policy)) : parseScriptPolicy(data);\n}\nfunction isCommand(value) {\n\treturn value === void 0 || typeof value === \"function\" || value instanceof RegExp || typeof value === \"string\";\n}\n//#endregion\n//#region src/index.ts\nconst ScriptPolicyOrArrayType = Type.Union([ScriptPolicyType, Type.Array(ScriptPolicyType)]);\nconst scriptsRecordType = Type.Record(Type.String(), ScriptPolicyOrArrayType);\nconst ConfigType = Type.Object({ scripts: Type.Optional(scriptsRecordType) });\n/** Identity helper for type inference. Use in your `moniq.config` file to get full type safety. */\nfunction defineConfig(config) {\n\treturn config;\n}\nconst CONFIG_FILENAMES = [\n\t\"moniq.config.ts\",\n\t\"moniq.config.js\",\n\t\"moniq.config.mjs\",\n\t\"moniq.config.cjs\",\n\t\"moniq.config.mts\",\n\t\"moniq.config.cts\"\n];\nasync function loadConfig(cwd) {\n\tconst configPath = await findConfig(cwd);\n\tif (configPath === void 0) throw new Error(`No moniq.config file found in or above ${cwd}. Create one or run \\`moniq init\\` to generate a starter config.`);\n\tconst module_ = await import(configPath);\n\tconst raw = module_[\"default\"] ?? module_;\n\tconst parsed = Parse(ConfigType, raw);\n\tconst scripts = parsed[\"scripts\"];\n\tif (scripts !== void 0 && typeof scripts === \"object\" && scripts !== null) for (const policyOrArray of Object.values(scripts)) parseScriptPolicyOrArray(policyOrArray);\n\treturn parsed;\n}\nasync function exists(filePath) {\n\tconst { existsSync } = await import(\"node:fs\");\n\treturn existsSync(filePath);\n}\nasync function findConfig(startDirectory) {\n\tlet directory = path.resolve(startDirectory);\n\tlet isRootReached = false;\n\twhile (!isRootReached) {\n\t\tconst found = [];\n\t\tfor (const name of CONFIG_FILENAMES) if (await exists(path.join(directory, name))) found.push(name);\n\t\tif (found.length > 1) throw new Error(`Multiple moniq.config files found in ${directory}: ${found.join(\", \")}. Remove all but one.`);\n\t\tif (found.length === 1) {\n\t\t\tconst name = found[0];\n\t\t\tif (name === void 0) continue;\n\t\t\treturn path.join(directory, name);\n\t\t}\n\t\tconst parent = path.dirname(directory);\n\t\tisRootReached = parent === directory;\n\t\tdirectory = parent;\n\t}\n}\n//#endregion\nexport { defineConfig, loadConfig };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453],"mappings":"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"}