alepha 0.11.7 → 0.11.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -17
- package/dist/index.cjs +15805 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +15804 -0
- package/dist/index.js.map +1 -0
- package/package.json +36 -372
- package/src/assets/biomeJson.ts +33 -0
- package/src/assets/tsconfigJson.ts +17 -0
- package/src/assets/viteConfigTs.ts +14 -0
- package/src/commands/BiomeCommands.ts +60 -0
- package/src/commands/CoreCommands.ts +266 -0
- package/src/commands/DrizzleCommands.ts +403 -0
- package/src/commands/VerifyCommands.ts +48 -0
- package/src/commands/ViteCommands.ts +152 -0
- package/src/index.ts +35 -0
- package/src/services/ProcessRunner.ts +89 -0
- package/src/version.ts +7 -0
- package/api/files.cjs +0 -8
- package/api/files.d.ts +0 -438
- package/api/files.js +0 -1
- package/api/jobs.cjs +0 -8
- package/api/jobs.d.ts +0 -327
- package/api/jobs.js +0 -1
- package/api/notifications.cjs +0 -8
- package/api/notifications.d.ts +0 -263
- package/api/notifications.js +0 -1
- package/api/users.cjs +0 -8
- package/api/users.d.ts +0 -923
- package/api/users.js +0 -1
- package/api/verifications.cjs +0 -8
- package/api/verifications.d.ts +0 -1
- package/api/verifications.js +0 -1
- package/batch.cjs +0 -8
- package/batch.d.ts +0 -154
- package/batch.js +0 -1
- package/bucket.cjs +0 -8
- package/bucket.d.ts +0 -520
- package/bucket.js +0 -1
- package/cache/redis.cjs +0 -8
- package/cache/redis.d.ts +0 -40
- package/cache/redis.js +0 -1
- package/cache.cjs +0 -8
- package/cache.d.ts +0 -288
- package/cache.js +0 -1
- package/command.cjs +0 -8
- package/command.d.ts +0 -269
- package/command.js +0 -1
- package/core.cjs +0 -8
- package/core.d.ts +0 -1904
- package/core.js +0 -1
- package/datetime.cjs +0 -8
- package/datetime.d.ts +0 -144
- package/datetime.js +0 -1
- package/devtools.cjs +0 -8
- package/devtools.d.ts +0 -252
- package/devtools.js +0 -1
- package/email.cjs +0 -8
- package/email.d.ts +0 -187
- package/email.js +0 -1
- package/fake.cjs +0 -8
- package/fake.d.ts +0 -73
- package/fake.js +0 -1
- package/file.cjs +0 -8
- package/file.d.ts +0 -528
- package/file.js +0 -1
- package/lock/redis.cjs +0 -8
- package/lock/redis.d.ts +0 -24
- package/lock/redis.js +0 -1
- package/lock.cjs +0 -8
- package/lock.d.ts +0 -552
- package/lock.js +0 -1
- package/logger.cjs +0 -8
- package/logger.d.ts +0 -287
- package/logger.js +0 -1
- package/postgres.cjs +0 -8
- package/postgres.d.ts +0 -2143
- package/postgres.js +0 -1
- package/queue/redis.cjs +0 -8
- package/queue/redis.d.ts +0 -29
- package/queue/redis.js +0 -1
- package/queue.cjs +0 -8
- package/queue.d.ts +0 -760
- package/queue.js +0 -1
- package/react/auth.cjs +0 -8
- package/react/auth.d.ts +0 -504
- package/react/auth.js +0 -1
- package/react/form.cjs +0 -8
- package/react/form.d.ts +0 -211
- package/react/form.js +0 -1
- package/react/head.cjs +0 -8
- package/react/head.d.ts +0 -120
- package/react/head.js +0 -1
- package/react/i18n.cjs +0 -8
- package/react/i18n.d.ts +0 -168
- package/react/i18n.js +0 -1
- package/react.cjs +0 -8
- package/react.d.ts +0 -1263
- package/react.js +0 -1
- package/redis.cjs +0 -8
- package/redis.d.ts +0 -82
- package/redis.js +0 -1
- package/retry.cjs +0 -8
- package/retry.d.ts +0 -162
- package/retry.js +0 -1
- package/router.cjs +0 -8
- package/router.d.ts +0 -45
- package/router.js +0 -1
- package/scheduler.cjs +0 -8
- package/scheduler.d.ts +0 -145
- package/scheduler.js +0 -1
- package/security.cjs +0 -8
- package/security.d.ts +0 -586
- package/security.js +0 -1
- package/server/cache.cjs +0 -8
- package/server/cache.d.ts +0 -163
- package/server/cache.js +0 -1
- package/server/compress.cjs +0 -8
- package/server/compress.d.ts +0 -38
- package/server/compress.js +0 -1
- package/server/cookies.cjs +0 -8
- package/server/cookies.d.ts +0 -144
- package/server/cookies.js +0 -1
- package/server/cors.cjs +0 -8
- package/server/cors.d.ts +0 -45
- package/server/cors.js +0 -1
- package/server/health.cjs +0 -8
- package/server/health.d.ts +0 -58
- package/server/health.js +0 -1
- package/server/helmet.cjs +0 -8
- package/server/helmet.d.ts +0 -98
- package/server/helmet.js +0 -1
- package/server/links.cjs +0 -8
- package/server/links.d.ts +0 -322
- package/server/links.js +0 -1
- package/server/metrics.cjs +0 -8
- package/server/metrics.d.ts +0 -35
- package/server/metrics.js +0 -1
- package/server/multipart.cjs +0 -8
- package/server/multipart.d.ts +0 -42
- package/server/multipart.js +0 -1
- package/server/proxy.cjs +0 -8
- package/server/proxy.d.ts +0 -234
- package/server/proxy.js +0 -1
- package/server/security.cjs +0 -8
- package/server/security.d.ts +0 -92
- package/server/security.js +0 -1
- package/server/static.cjs +0 -8
- package/server/static.d.ts +0 -119
- package/server/static.js +0 -1
- package/server/swagger.cjs +0 -8
- package/server/swagger.d.ts +0 -161
- package/server/swagger.js +0 -1
- package/server.cjs +0 -8
- package/server.d.ts +0 -849
- package/server.js +0 -1
- package/topic/redis.cjs +0 -8
- package/topic/redis.d.ts +0 -42
- package/topic/redis.js +0 -1
- package/topic.cjs +0 -8
- package/topic.d.ts +0 -819
- package/topic.js +0 -1
- package/ui.cjs +0 -8
- package/ui.d.ts +0 -813
- package/ui.js +0 -1
- package/vite.cjs +0 -8
- package/vite.d.ts +0 -186
- package/vite.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["KIND: unique symbol","MODULE: unique symbol","OPTIONS: unique symbol","Module","alepha","__alephaRef: {\n alepha?: Alepha;\n service?: Service & {\n [MODULE]?: Service;\n };\n parent?: Service;\n}","alepha","alepha","Json","Json","Match","IsArray","IsAsyncIterator","IsObject","IsBigInt","IsBoolean","IsConstructor","IsUndefined","IsFunction","IsInteger","IsIterator","IsNull","IsNumber","IsObjectNotArray","IsString","IsSymbol","IsGreaterThan","IsLessThan","IsLessEqualThan","IsGreaterEqualThan","IsMultipleOf","StringGraphemeCount","Every","index","HasPropertyKey","Keys","Entries","IsDeepEqual","IsIdentifier","IsArray","IsAsyncIterator","IsBigInt","IsBoolean","IsInteger","IsIterator","IsNull","IsNumber","IsObject","IsString","IsSymbol","IsUndefined","IsFunction","IsConstructor","IsEqual","G.IsEqual","Entries","Call","G.IsString","identifier","If","IsBoolean","IsNumber","IsString","IsDate","Guard.IsObject","Guard.HasPropertyKey","Guard.IsFunction","IsGuard","IsRefine","Guard.HasPropertyKey","Guard.IsArray","Guard.Every","Guard.IsObject","value","Guard.IsFunction","Guard.IsString","Guard.IsObject","Guard.IsArray","Guard.IsBoolean","IsSchema","Guard.HasPropertyKey","IsSchema","Guard.HasPropertyKey","IsSchema","Guard.HasPropertyKey","Guard.IsArray","IsSchema","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsArray","IsSchema","Guard.HasPropertyKey","Guard.HasPropertyKey","IsSchema","Guard.HasPropertyKey","Guard.HasPropertyKey","Guard.IsObject","IsSchema","Guard.IsArray","Guard.IsString","value","Guard.HasPropertyKey","Guard.IsObject","Guard.IsArray","Guard.IsString","value","Guard.HasPropertyKey","Guard.IsObject","IsSchema","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","IsSchema","IsEnum","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","IsSchema","Guard.HasPropertyKey","IsSchema","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","IsSchema","Guard.HasPropertyKey","Guard.IsArray","IsSchema","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsObject","IsSchema","Guard.HasPropertyKey","Guard.IsArray","IsSchema","schema","Guard.HasPropertyKey","Guard.IsObject","IsSchema","Guard.HasPropertyKey","Guard.IsObject","IsSchema","Guard.HasPropertyKey","Guard.IsBoolean","Guard.IsEqual","Guard.HasPropertyKey","Guard.IsString","IsRef","Guard.HasPropertyKey","Guard.IsString","Guard.HasPropertyKey","Guard.IsArray","Guard.IsString","Guard.HasPropertyKey","IsSchema","Guard.HasPropertyKey","Guard.IsString","Guard.IsArray","Guard.HasPropertyKey","Guard.IsBoolean","Guard.HasPropertyKey","IsSchema","Guard.HasPropertyKey","IsSchema","Schema.IsUnevaluatedItems","Schema.IsUnevaluatedProperties","G.Keys","value","G.IsArray","G.IsObject","E.Call","E.Member","index","E.Call","E.Member","Externals.CreateVariable","FromArray","FromBigInt","FromBoolean","FromConstructor","FromFunction","FromNull","FromNumber","FromObject","FromRegExp","FromString","FromSymbol","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","V.CreateVariable","E.Every","E.Constant","E.Call","E.Member","G.Every","G.EveryAll","IsValid","Schema.IsItems","G.IsArray","E.Constant","index","E.IsLessThan","E.Or","E.And","E.Call","E.Member","E.ArrowFunction","G.IsLessThan","S.IsPatternProperties","G.Keys","S.IsProperties","G.IsEqual","S.IsRequired","E.IsEqual","E.Member","E.Call","E.Constant","V.CreateVariable","E.Or","E.And","E.Every","E.Keys","G.Every","G.EveryAll","E.ConstDeclaration","index","E.New","E.Call","E.ArrowFunction","E.If","E.Member","E.Return","E.And","E.Statements","E.IsEqual","E.Member","E.Constant","E.ReduceAnd","schema","G.IsEqual","index","E.IsGreaterThan","E.Member","E.Constant","E.ReduceOr","schema","G.IsGreaterThan","index","E.Constant","G.IsValueLike","E.IsEqual","E.Constant","E.IsDeepEqual","Externals.CreateVariable","G.IsEqual","G.IsDeepEqual","IsValid","Schema.IsMinContains","G.IsEqual","E.Constant","E.Not","E.IsEqual","E.Member","E.Call","E.ArrowFunction","E.And","E.IsEqual","E.Member","E.Keys","E.Constant","E.ReduceAnd","G.Entries","schema","E.Not","E.HasPropertyKey","key","E.Or","G.IsArray","G.IsEqual","G.Keys","G.Every","G.HasPropertyKey","G.EveryAll","E.IsEqual","E.Member","E.Keys","E.Constant","E.ReduceAnd","G.Entries","E.Not","E.HasPropertyKey","key","E.Or","G.IsEqual","G.Keys","G.Every","G.HasPropertyKey","G.EveryAll","E.IsEqual","E.Member","E.Keys","E.Constant","E.ReduceAnd","G.Entries","schema","E.Not","E.HasPropertyKey","E.Or","G.IsEqual","G.Keys","G.Every","G.HasPropertyKey","G.EveryAll","E.ReduceOr","G.IsValueLike","E.IsEqual","E.Constant","Externals.CreateVariable","E.IsDeepEqual","G.IsEqual","G.IsDeepEqual","E.IsLessThan","E.Constant","G.IsLessThan","E.IsGreaterThan","E.Constant","G.IsGreaterThan","Set","Get","Reset","Format","E.Call","E.Member","E.Constant","Format.Test","Schema.IsThen","Schema.IsElse","E.Ternary","E.ReduceAnd","E.IsLessEqualThan","E.Member","E.Constant","index","schema","E.And","E.Or","G.Every","G.IsLessEqualThan","G.EveryAll","Schema.IsPrefixItems","E.Every","Schema.IsItemsSized","IsValid","Schema.IsContains","E.Constant","E.Call","E.Member","E.ArrowFunction","E.Ternary","E.PrefixIncrement","E.IsLessEqualThan","G.IsLessEqualThan","Schema.IsMinContains","E.IsLessEqualThan","E.Constant","G.IsLessEqualThan","E.IsLessEqualThan","E.Member","E.Constant","G.IsLessEqualThan","E.IsLessEqualThan","E.StringGraphemeCount","E.Constant","G.IsLessEqualThan","G.StringGraphemeCount","E.IsLessEqualThan","E.Member","E.Keys","E.Constant","G.IsLessEqualThan","G.Keys","IsValid","Schema.IsContains","E.Constant","E.Call","E.Member","E.ArrowFunction","E.Ternary","E.PrefixIncrement","E.IsGreaterEqualThan","G.IsGreaterEqualThan","E.IsGreaterEqualThan","E.Constant","G.IsGreaterEqualThan","E.IsGreaterEqualThan","E.Member","E.Constant","G.IsGreaterEqualThan","E.IsGreaterEqualThan","E.StringGraphemeCount","E.Constant","G.IsGreaterEqualThan","G.StringGraphemeCount","E.IsGreaterEqualThan","E.Member","E.Keys","E.Constant","G.IsGreaterEqualThan","G.Keys","E.MultipleOf","E.Constant","G.IsMultipleOf","E.Not","E.IsEqual","E.Member","E.Constant","E.IsEqual","E.Member","E.Constant","E.ArrayLiteral","schema","E.Call","E.ArrowFunction","E.Ternary","E.PrefixIncrement","G.IsEqual","index","Externals.CreateVariable","G.IsString","E.Call","E.Member","E.ReduceAnd","G.Entries","schema","Externals.CreateVariable","E.Not","E.Call","E.Member","E.Or","E.And","E.Every","E.Entries","E.Constant","G.Every","G.EveryAll","value","E.ReduceAnd","E.IsLessEqualThan","E.Member","E.Constant","index","schema","E.And","E.Or","G.IsEqual","G.Every","G.IsLessEqualThan","G.EveryAll","Get","Settings.Get","E.IsUndefined","E.Member","G.IsUndefined","Schema.IsRequired","G.Entries","schema","E.Not","E.HasPropertyKey","E.Constant","E.Member","E.And","E.Or","E.ReduceAnd","G.Every","G.HasPropertyKey","G.EveryAll","E.Every","E.Keys","E.Constant","G.Every","G.Keys","G.EveryAll","Functions.CreateFunction","Schema.IsSchema","E.ArrowFunction","Functions.CreateFunction","E.Statements","E.ConstDeclaration","E.New","E.Call","E.If","E.Return","Schema.IsSchema","E.ReduceAnd","E.HasPropertyKey","E.Constant","G.Every","G.HasPropertyKey","G.EveryAll","G.IsEqual","E.IsObjectNotArray","E.IsArray","E.IsBoolean","E.IsInteger","E.IsNumber","E.IsNull","E.IsString","E.IsAsyncIterator","E.IsBigInt","E.IsConstructor","E.IsFunction","E.IsIterator","E.IsSymbol","E.IsUndefined","E.Constant","G.IsObjectNotArray","G.IsArray","G.IsBoolean","G.IsInteger","G.IsNumber","G.IsNull","G.IsString","G.IsAsyncIterator","G.IsBigInt","G.IsConstructor","G.IsFunction","G.IsIterator","G.IsSymbol","G.IsUndefined","E.ReduceOr","index","E.Call","E.Member","E.Every","E.Constant","E.And","E.Or","E.ArrowFunction","E.Statements","E.ConstDeclaration","E.Return","G.Every","G.EveryAll","E.Call","E.Member","E.Every","E.Entries","E.Constant","E.Or","E.And","E.ArrowFunction","E.Statements","E.ConstDeclaration","E.Return","G.Every","G.Entries","G.EveryAll","G.IsEqual","E.Constant","E.Member","E.New","E.Call","E.IsEqual","Hashing.Hash","value","index","Schema.IsType","G.IsArray","G.IsEqual","Schema.IsSchemaObject","Schema.IsAdditionalProperties","Schema.IsDependencies","Schema.IsDependentRequired","Schema.IsDependentSchemas","Schema.IsProperties","Schema.IsPatternProperties","Schema.IsPropertyNames","Schema.IsMinProperties","Schema.IsMaxProperties","Schema.IsRequired","Schema.IsUnevaluatedProperties","Schema.IsAdditionalItems","Schema.IsItems","Schema.IsContains","Schema.IsMaxContains","Schema.IsMaxItems","Schema.IsMinContains","Schema.IsMinItems","Schema.IsPrefixItems","Schema.IsUnevaluatedItems","Schema.IsUniqueItems","Schema.IsMinLength","Schema.IsMaxLength","Schema.IsFormat","Schema.IsPattern","Schema.IsMinimum","Schema.IsMaximum","Schema.IsExclusiveMaximum","Schema.IsExclusiveMinimum","Schema.IsMultipleOf","Schema.IsBooleanSchema","E.ReduceAnd","E.Or","E.Not","E.IsObjectNotArray","E.IsArray","E.IsString","E.IsNumber","E.IsBigInt","Schema.IsRecursiveRef","Schema.IsRef","Schema.IsGuard","Schema.IsConst","Schema.IsEnum","Schema.IsIf","Schema.IsNot","Schema.IsAllOf","Schema.IsAnyOf","Schema.IsOneOf","E.IsObject","Schema.IsRefine","G.IsObject","G.IsString","G.IsNumber","G.IsBigInt","E.Call","E.ConstDeclaration","E.ArrowFunction","Schema.IsSchemaObject","Hashing.Hash","Guard.IsObject","index","value","Guard.IsEqual","Get","Guard.IsEqual","Pointer.Get","Schema.IsId","Guard.IsUndefined","Schema.IsAnchor","FromArray","FromValue","FromObject","Guard.Keys","Schema.IsSchemaObject","Guard.IsArray","Guard.IsObject","Ref","Schema.IsSchemaObject","Schema.IsId","Schema.IsAnchor","Schema.IsRecursiveAnchorTrue","Schema.IsDynamicAnchor","G.HasPropertyKey","Resolve.Ref","Guard.IsUndefined","Settings.Get","Engine.CheckContext","Guard","Format","Hashing","Engine.Stack","Engine.CheckSchema","Environment.CanEvaluate","functions","Check","Arguments.Match","context","schema","Engine.BuildContext","Engine.HasUnevaluated","Engine.CreateFunction","Engine.GetFunctions","Engine.GetExternal","Check","Arguments.Match","context","schema","value","Engine.Stack","Engine.CheckContext","Engine.CheckSchema","Set","Errors","Arguments.Match","context","schema","value","settings","Settings.Get","locale","LocaleGet","Engine.Stack","Engine.ErrorContext","Guard.IsGreaterEqualThan","Engine.ErrorSchema","Guard.IsObject","Guard.HasPropertyKey","FromArray","FromValue","value","FromObject","Guard.IsArray","Clone","Create","settings","Settings.Get","Clone","Update","settings","Settings.Get","Clone","Guard.IsObject","Guard.HasPropertyKey","Guard.IsEqual","Memory.Create","Guard.IsObject","Guard.HasPropertyKey","Guard.IsEqual","Memory.Create","Guard.IsObject","Guard.HasPropertyKey","Guard.IsEqual","Memory.Create","Memory.Update","Guard.HasPropertyKey","Memory.Discard","Memory.Update","Guard.HasPropertyKey","Memory.Discard","Memory.Update","Guard.HasPropertyKey","Array","Memory.Create","Memory.Discard","Memory.Create","Memory.Discard","Settings.Get","Memory.Create","Memory.Discard","Function","Memory.Create","Memory.Discard","Memory.Create","Memory.Create","Memory.Create","FromRef","FromType","Guard.Keys","Memory.Update","Memory.Create","Memory.Create","Arguments.Match","name","extends_","Memory.Create","Memory.Create","Guard.IsObjectNotArray","Guard.Keys","Memory.Create","Memory.Create","Memory.Discard","Memory.Update","Guard.HasPropertyKey","Guard.IsObject","Memory.Update","Guard.HasPropertyKey","BigInt","Memory.Create","Boolean","Memory.Create","Memory.Create","Memory.Create","Memory.Create","Memory.Discard","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsString","Memory.Create","Memory.Create","Number","Memory.Create","Symbol","Memory.Create","Guard.Keys","Guard.Values","_Object_","Memory.Create","Object","Memory.Discard","Arguments.Match","name","extends_","equals","Memory.Create","Promise","Memory.Create","Memory.Discard","String","Memory.Create","Memory.Create","Guard.Keys","Guard.IsEqual","Number","String","Memory.Create","Memory.Create","Memory.Create","Memory.Discard","Memory.Create","Memory.Create","Memory.Discard","Memory.Create","Memory.Create","Guard.IsEqual","T.Array","T.AsyncIterator","T.Iterator","T.Promise","C.AwaitedDeferred","C.CapitalizeDeferred","C.ConstructorParametersDeferred","C.EvaluateDeferred","C.ExcludeDeferred","C.ExtractDeferred","C.IndexDeferred","C.InstanceTypeDeferred","C.LowercaseDeferred","C.NonNullableDeferred","C.OmitDeferred","C.OptionsDeferred","C.ParametersDeferred","C.PartialDeferred","C.PickDeferred","C.ReadonlyTypeDeferred","C.KeyOfDeferred","T.RecordDeferred","C.RequiredDeferred","C.ReturnTypeDeferred","C.UncapitalizeDeferred","C.UppercaseDeferred","T.CallConstruct","T.Ref","Unreachable","input","Guard.IsArray","result","T.Parameter","T.Unknown","T.String","T.Number","T.Boolean","T.Undefined","T.Null","T.Integer","T.BigInt","T.Any","T.Object","T.Never","T.Symbol","T.Void","T.This","T.Literal","T.TemplateLiteralDeferred","Type","C.ConditionalDeferred","T.IsIntersect","T.Intersect","T.IsUnion","T.Union","T.ImmutableAdd","T.Generic","T.Infer","T.IsInteger","T.IntegerKey","T.IsNumber","T.NumberKey","T.IsSymbol","T.StringKey","T.IsString","T.ReadonlyAdd","T.OptionalAdd","Guard.HasPropertyKey","Memory.Assign","Guard.Keys","T.Rest","T.Tuple","T.Function","T.Constructor","ApplyReadonly","state","C.ReadonlyRemoveAction","C.ReadonlyAddAction","ApplyOptional","C.OptionalRemoveAction","C.OptionalAddAction","C.MappedDeferred","T.Identifier","C.InterfaceDeferred","C.ModuleDeferred","IsArray","input","IsString","index","input","Char.NewLine","input","Optional","input","TakeSign","Optional","input","AllowedDigits","Integer","Integer","input","BigInt","input","TakeInitial","input","Optional","input","Integer","Number","IsString","input","input","input","String","input","Token.Ident","input","Token.Const","S.GenericParameterExtendsEqualsMapping","S.GenericParameterExtendsMapping","S.GenericParameterEqualsMapping","S.GenericParameterIdentifierMapping","S.GenericParameterMapping","_0","S.GenericParameterListMapping","S.GenericParametersMapping","S.GenericCallArgumentListMapping","S.GenericCallArgumentsMapping","S.GenericCallMapping","S.OptionalSemiColonMapping","S.KeywordStringMapping","S.KeywordNumberMapping","S.KeywordBooleanMapping","S.KeywordUndefinedMapping","S.KeywordNullMapping","S.KeywordIntegerMapping","S.KeywordBigIntMapping","S.KeywordUnknownMapping","S.KeywordAnyMapping","S.KeywordObjectMapping","S.KeywordNeverMapping","S.KeywordSymbolMapping","S.KeywordVoidMapping","S.KeywordThisMapping","S.KeywordMapping","S.TemplateInterpolateMapping","Token.Until","S.TemplateSpanMapping","S.TemplateBodyMapping","S.TemplateLiteralTypesMapping","TemplateLiteral","S.TemplateLiteralMapping","Token.BigInt","S.LiteralBigIntMapping","S.LiteralBooleanMapping","Token.Number","S.LiteralNumberMapping","Token.String","S.LiteralStringMapping","Literal","S.LiteralMapping","KeyOf","S.KeyOfMapping","S.IndexArrayMapping","Extends","S.ExtendsMapping","Base","Tuple","Constructor","Mapped","Options","S.BaseMapping","S.FactorMapping","S.ExprTermTailMapping","S.ExprTermMapping","S.ExprTailMapping","S.ExprMapping","S.ExprReadonlyMapping","S.ExprPipeMapping","S.GenericTypeMapping","S.InferTypeMapping","S.TypeMapping","S.PropertyKeyNumberMapping","S.PropertyKeyIdentMapping","S.PropertyKeyQuotedMapping","S.PropertyKeyIndexMapping","S.PropertyKeyMapping","Readonly","S.ReadonlyMapping","Optional","S.OptionalMapping","S.PropertyMapping","S.PropertyDelimiterMapping","S.PropertyListMapping","S.PropertiesMapping","S._Object_Mapping","S.ElementNamedMapping","S.ElementReadonlyOptionalMapping","S.ElementReadonlyMapping","S.ElementOptionalMapping","S.ElementBaseMapping","S.ElementMapping","S.ElementListMapping","S.TupleMapping","S.ParameterReadonlyOptionalMapping","S.ParameterReadonlyMapping","S.ParameterOptionalMapping","S.ParameterTypeMapping","S.ParameterBaseMapping","Parameter","S.ParameterMapping","S.ParameterListMapping","S._Function_Mapping","S.ConstructorMapping","S.MappedReadonlyMapping","S.MappedOptionalMapping","S.MappedAsMapping","S.MappedMapping","S.ReferenceMapping","S.OptionsMapping","S.JsonNumberMapping","S.JsonBooleanMapping","S.JsonStringMapping","S.JsonNullMapping","S.JsonPropertyMapping","S.JsonPropertyListMapping","S.JsonObjectMapping","S.JsonElementListMapping","S.JsonArrayMapping","S.JsonMapping","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","S.InterfaceDeclarationHeritageListMapping","S.InterfaceDeclarationHeritageMapping","S.InterfaceDeclarationGenericMapping","S.InterfaceDeclarationMapping","S.TypeAliasDeclarationGenericMapping","S.TypeAliasDeclarationMapping","S.ExportKeywordMapping","S.ModuleDeclarationDelimiterMapping","S.ModuleDeclarationListMapping","S.ModuleDeclarationMapping","Module","S.ModuleMapping","Script","S.ScriptMapping","Guard.IsEqual","Guard.IsString","input","Memory.Update","ExtendsUnion","Memory.Create","Guard.IsObject","Guard.HasPropertyKey","Guard.IsEqual","Guard.IsEqual","FromLiteral","FromType","FromTypes","Guard.IsEqual","Guard.IsString","FromLiteral","Guard.IsEqual","FromUnion","FromType","String","Guard.IsString","Guard.IsNumber","Guard.IsNull","Result.IsExtendsTrueLike","Result.ExtendsTrue","Memory.Assign","Result.ExtendsFalse","Result.ExtendsTrue","Result.ExtendsUnion","Result.ExtendsFalse","Result.ExtendsTrue","Result.ExtendsTrue","Result.ExtendsFalse","Result.IsExtendsTrueLike","Result.ExtendsTrue","Result.ExtendsTrue","Result.IsExtendsTrueLike","Result.ExtendsFalse","Result.IsExtendsTrueLike","Result.ExtendsFalse","Result.ExtendsTrue","ExtendsResult.ExtendsFalse","ExtendsResult.ExtendsTrue","ExtendsResult.IsExtendsTrueLike","ExtendsResult.IsExtendsFalse","index","Object","Guard.Keys","Object","Guard.IsEqual","Guard.IsUndefined","result","Guard.IsEqual","state","Memory.Update","Result.ExtendsTrue","Result.ExtendsFalse","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsString","Result.ExtendsTrue","Result.ExtendsTrue","Result.ExtendsTrue","Result.ExtendsTrue","Result.ExtendsFalse","Result.IsExtendsTrueLike","Guard.Keys","Memory.Assign","Guard.Values","Object","Promise","Result.ExtendsTrue","Result.ExtendsTrue","Memory.Create","Guard.IsObject","Guard.HasPropertyKey","Guard.IsEqual","Guard.IsString","Result.IsExtendsTrueLike","Guard.IsArray","Result.ExtendsTrue","Memory.Assign","Result.ExtendsFalse","Result.IsExtendsTrueLike","Result.ExtendsFalse","Guard.IsEqual","Result.ExtendsTrue","Result.ExtendsTrue","Result.IsExtendsTrueLike","Result.ExtendsTrue","Result.ExtendsFalse","Result.ExtendsTrue","Result.ExtendsFalse","Result.ExtendsTrue","Result.ExtendsFalse","Guard.HasPropertyKey","Guard.IsEqual","FromRef","FromType","FromProperties","FromTypes","FromRef","FromType","FromProperties","FromTypes","result","FromRef","FromProperties","Guard.Keys","FromType","Array","_Function","Object","Promise","Object","Guard.Keys","ExtendsResult.IsExtendsTrueLike","state","Memory.Assign","Guard.IsGreaterThan","state","Guard.IsEqual","Memory.Create","state","Memory.Update","FromLiteral","Guard.IsString","FromTemplateLiteral","FromType","FromUnion","FromType","FromType","FromLiteral","FromTemplateLiteral","FromUnion","input","state","Memory.Update","FromType","state","Memory.Update","ExtendsResult.IsExtendsUnion","ExtendsResult.IsExtendsTrue","state","Memory.Update","ExtendsResult.IsExtendsTrueLike","state","Memory.Update","ExtendsResult.IsExtendsTrueLike","state","Memory.Update","FromArray","Number","ExtendsResult.IsExtendsTrueLike","FromCyclic","FromType","FromUnion","FromType","FromEnum","FromUnion","FromIntersect","FromType","FromLiteral","FromTemplateLiteral","FromType","FromType","FromCyclic","FromEnum","FromIntersect","FromLiteral","FromTemplateLiteral","FromUnion","FromType","FromObject","index","ExtendsResult.IsExtendsTrueLike","FromTuple","Guard.IsArray","FromCyclic","FromType","Guard.Keys","Guard.HasPropertyKey","Memory.Assign","FromIntersect","FromType","FromObject","FromTuple","FromType","Guard.Keys","FromType","FromUnion","FromType","FromCyclic","FromIntersect","FromUnion","FromTuple","FromObject","Object","FromType","NormalizeType","FromArray","FromObject","FromTuple","state","Memory.Update","state","Memory.Update","Object","Memory.Update","state","Number","String","Symbol","FromArray","Number","FromObject","Guard.Keys","FromRecord","FromTuple","index","FromArray","FromObject","FromRecord","FromTuple","state","Memory.Update","FromTemplateLiteral","FromType","FromUnion","identifier","Memory.Assign","identifier","state","Object","Memory.Update","Guard.Keys","Memory.Update","Memory.Assign","state","Memory.Update","Guard.IsArray","FromKeys","Guard.Keys","Object","state","Memory.Update","state","Memory.Update","state","Memory.Update","FromCyclic","FromType","Memory.Assign","FromIntersect","FromType","FromUnion","FromType","FromObject","Object","Guard.Keys","FromType","FromCyclic","FromIntersect","FromUnion","FromObject","Object","state","Memory.Update","FromType","Guard.IsArray","Guard.Keys","Memory.Assign","Object","state","Memory.Update","FromArray","Array","FromCyclic","FromType","Memory.Assign","FromIntersect","FromType","FromObject","Object","Guard.Keys","FromTuple","FromUnion","FromType","FromType","FromArray","FromCyclic","FromIntersect","FromObject","FromTuple","FromUnion","state","Memory.Update","FromType","Object","Guard.IsString","Guard.IsNumber","Object","Guard.IsEqual","Guard.HasPropertyKey","Guard.IsString","Guard.IsEqual","Guard.IsString","Guard.IsNumber","Object","Object","state","Memory.Update","state","FromCyclic","FromType","Memory.Assign","FromIntersect","FromType","FromUnion","FromType","FromObject","Object","Guard.Keys","FromType","FromCyclic","FromIntersect","FromUnion","FromObject","Object","state","Memory.Update","FromType","state","Memory.Update","Memory.Create","input","state","Memory.Update","Guard.IsEqual","Guard.Keys","state","input","Array","_Function","Object","Promise","input","Arguments.Match","Guard.IsString","options","context","Parser.Script","Guard.IsArray","Guard.IsEqual","Memory.Update","Arguments.Match","context","type","value","SchemaCheck","Arguments.Match","context","type","value","SchemaErrors","FromArray","Guard.IsArray","FromType","value","FromBase","FromCyclic","FromType","Guard.HasPropertyKey","FromIntersect","FromType","Guard.HasPropertyKey","FromObject","Guard.IsObject","Guard.IsArray","Guard.Keys","Guard.HasPropertyKey","FromType","Guard.IsBoolean","Guard.IsEqual","FromRecord","Guard.IsObject","Guard.Keys","FromType","Guard.IsBoolean","Guard.IsEqual","FromRef","Guard.HasPropertyKey","FromType","FromTuple","Guard.IsArray","index","FromType","Guard.IsGreaterThan","FromObject","Guard.IsClassInstance","FromArray","GlobalsGuard.IsTypeArray","GlobalsGuard.IsMap","GlobalsGuard.IsSet","Guard.IsArray","Guard.IsObject","FromUnion","FromType","FromType","T.IsArray","FromArray","T.IsBase","FromBase","T.IsCyclic","FromCyclic","T.IsIntersect","FromIntersect","T.IsObject","FromObject","T.IsRecord","FromRecord","T.IsRef","FromRef","T.IsTuple","FromTuple","T.IsUnion","FromUnion","Arguments.Match","context","type","value","FromType","FromArray","Guard.IsArray","FromType","value","FromBase","Guard.IsObject","Guard.HasPropertyKey","FromBigInt","FromBoolean","Guard.IsEqual","FromNumber","FromNull","FromString","FromUndefined","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","Guard.IsEqual","FromBoolean","FromNumber","FromNull","FromString","FromUndefined","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","Guard.IsEqual","FromBoolean","FromNumber","FromNull","FromString","FromUndefined","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","FromBoolean","FromNumber","FromNull","FromString","Guard.IsNumber","Guard.IsEqual","FromUndefined","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","FromBoolean","FromNumber","FromNull","FromString","FromUndefined","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","Guard.IsEqual","FromBoolean","FromNumber","FromNull","FromString","FromUndefined","Guard.IsBigInt","Guard.IsBoolean","Guard.IsNumber","Guard.IsNull","Guard.IsString","Guard.IsUndefined","FromBigInt","Guard.IsBigInt","Try.TryBigInt","Try.IsOk","FromBoolean","Guard.IsBoolean","Try.TryBoolean","Try.IsOk","FromCyclic","FromType","FromUnion","type","FromType","value","Guard.IsUndefined","FromEnum","FromUnion","FromInteger","Guard.IsInteger","Try.TryNumber","Try.IsOk","FromIntersect","FromType","Try.TryBigInt","Try.IsOk","Guard.IsEqual","Try.TryBoolean","Try.TryNumber","Try.TryString","FromLiteral","FromNull","Guard.IsNull","Try.TryNull","Try.IsOk","FromNumber","Guard.IsNumber","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","FromString","Guard.IsString","Try.TryString","Try.IsOk","FromTemplateLiteral","FromType","FromTuple","Guard.IsArray","index","FromType","FromUndefined","Guard.IsUndefined","Try.TryUndefined","Try.IsOk","FromVoid","Guard.IsUndefined","Try.TryUndefined","Try.IsOk","FromType","T.IsArray","FromArray","T.IsBase","FromBase","T.IsBigInt","FromBigInt","T.IsBoolean","FromBoolean","T.IsCyclic","FromCyclic","T.IsEnum","FromEnum","T.IsInteger","FromInteger","T.IsIntersect","FromIntersect","T.IsLiteral","FromLiteral","T.IsNull","FromNull","T.IsNumber","FromNumber","T.IsObject","FromObject","T.IsRecord","FromRecord","T.IsRef","FromRef","T.IsString","FromString","T.IsTemplateLiteral","FromTemplateLiteral","T.IsTuple","FromTuple","T.IsUndefined","FromUndefined","T.IsUnion","FromUnion","T.IsVoid","FromVoid","Arguments.Match","context","type","value","FromType","FromArray","Guard.IsArray","FromType","FromBase","FromCyclic","FromType","FromDefault","Guard.IsUndefined","Guard.IsFunction","FromIntersect","FromType","FromObject","Guard.IsObject","Guard.Keys","FromType","Guard.IsUndefined","FromRecord","Guard.IsObject","Guard.Keys","FromType","FromRef","Guard.HasPropertyKey","FromType","FromTuple","Guard.IsArray","FromType","FromUnion","FromType","FromType","FromDefault","T.IsArray","FromArray","T.IsBase","FromBase","T.IsCyclic","FromCyclic","T.IsIntersect","FromIntersect","T.IsObject","FromObject","T.IsRecord","FromRecord","T.IsRef","FromRef","T.IsTuple","FromTuple","T.IsUnion","FromUnion","Arguments.Match","context","type","value","FromType","Arguments.Match","context","type","value","pipeline","Decode","Encode","Guard.IsEqual","Decode","Guard.IsArray","FromType","Encode","FromArray","Guard.IsEqual","FromCyclic","FromType","Decode","FromType","Encode","FromIntersect","Guard.IsEqual","Decode","Guard.IsObjectNotArray","Guard.Keys","Guard.HasPropertyKey","FromType","Encode","FromObject","Guard.IsEqual","Decode","Guard.IsObjectNotArray","Guard.Keys","FromType","Encode","FromRecord","Guard.IsEqual","FromRef","Guard.HasPropertyKey","FromType","Decode","Guard.IsArray","FromType","Encode","FromTuple","Guard.IsEqual","Decode","FromType","Encode","FromUnion","Guard.IsEqual","FromType","Type.IsArray","FromArray","Type.IsCyclic","FromCyclic","Type.IsIntersect","FromIntersect","Type.IsObject","FromObject","Type.IsRecord","FromRecord","Type.IsRef","FromRef","Type.IsTuple","FromTuple","Type.IsUnion","FromUnion","Assert","FromType","Decode","Arguments.Match","context","type","value","Assert","FromType","Encode","Arguments.Match","context","type","value","FromArray","FromType","FromCyclic","FromRef","FromIntersect","type","FromObject","Guard.Keys","FromRecord","Guard.HasPropertyKey","FromTuple","FromUnion","Arguments.Match","context","Guard.IsFunction","Guard.IsObject","Guard.IsNumber","Guard.IsNumber","Guard.IsUndefined","Guard.HasPropertyKey","Guard.IsEqual","S.IsDefault","T.IsArray","T.IsAsyncIterator","T.IsBase","T.IsBigInt","T.IsBoolean","T.IsConstructor","T.IsCyclic","T.IsEnum","T.IsFunction","T.IsInteger","T.IsIntersect","T.IsIterator","T.IsLiteral","T.IsNever","T.IsNull","T.IsNumber","T.IsObject","T.IsPromise","T.IsRecord","T.IsRef","T.IsString","T.IsSymbol","T.IsTemplateLiteral","T.IsTuple","T.IsUndefined","T.IsUnion","T.IsVoid","Arguments.Match","context","type","T.Object","T.Literal","T.String","T.Unknown","T.Union","Arguments.Match","Environment.CanEvaluate","Decode","Encode","Arguments.Match","context","type","error: any","obj: any","index","ctx: any","atoms: Array<AtomWithValue>","state","alepha","entry: ServiceEntry<T>","index","module","instance: T","definition: ServiceDefinition<T>","Module","parent","graph: Record<\n string,\n { from: string[]; as?: string[]; module?: string }\n >","list: Array<T>","match: RegExpExecArray | null","TypeBoxFormat","TypeBox.IsString","TypeBox.IsObject","TypeBox.IsNumber","TypeBox.IsBoolean","TypeBox.IsAny","TypeBox.IsArray","TypeBox.IsOptional","TypeBox.IsUnion","TypeBox.IsInteger","TypeBox.IsNull","TypeBox.IsUndefined","TypeBox.IsUnsafe","TypeBox.IsRecord","TypeBox.IsTuple","TypeBox.IsVoid","TypeBox.IsLiteral","TypeBox.IsSchema","locale","Locale","Type","Type.Any","Type.Void","Type.Undefined","Type.Record","Type.Union","Type.Tuple","Type.Null","Type.Literal","Type.Options","Type.Interface","Type.Pick","Type.Omit","Type.Partial","Type.Object","Type.Array","Type.String","Type.Boolean","Type.Number","Type.Integer","Type.Optional","Type.Mapped","Type.Identifier","Type.KeyOf","Type.Ref","Type.Index","Type.Unsafe","t: TypeProvider","alepha","alepha","alepha","AsyncLocalStorage","cluster","r","e","t","o","i","d","n","t","n","s","l","i","e","r","y","o","u","d","a","h","t","e","i","n","s","f","u","r","o","t","i","o","n","r","e","u","f","s","a","t","o","n","i","r","t","e","n","r","i","s","u","a","M","m","f","l","$","y","v","g","D","o","d","c","h","t","e","e","t","DayjsApi","dayjsDuration","dayjsRelativeTime","dayjsUtc","dayjsTimezone","dayjsLocalizedFormat","locale","clearTimeout: any","callback: any","clearTimeout","interval: Interval","timeout: Timeout","module","_data: object | Error | undefined","logEntry: LogEntry","module","alepha","json: Record<string, any>","output","envSchema","output","module","alepha","envSchema","output","askFn: AskMethod","value: any","runFn: RunnerMethod","t","allGlobalFlags: Record<\n string,\n { aliases: string[]; description?: string; schema: TSchema }\n >","result: Record<string, any>","result: any[]","typeName","index","command","run","dependencies: Record<string, string>","devDependencies: Record<string, string>","packageJson","Readable","models: any[]","alepha","config: Record<string, any>","g: any","run","env: Record<string, string>","packageJson"],"sources":["../../core/src/constants/KIND.ts","../../core/src/constants/MODULE.ts","../../core/src/constants/OPTIONS.ts","../../core/src/errors/AlephaError.ts","../../core/src/descriptors/$module.ts","../../core/src/errors/CircularDependencyError.ts","../../core/src/errors/ContainerLockedError.ts","../../core/src/errors/TooLateSubstitutionError.ts","../../core/src/errors/MissingContextError.ts","../../core/src/helpers/ref.ts","../../core/src/descriptors/$context.ts","../../core/src/helpers/descriptor.ts","../../core/src/interfaces/Service.ts","../../core/src/providers/AlsProvider.ts","../../core/src/descriptors/$inject.ts","../../core/src/providers/Json.ts","../../core/src/providers/SchemaCodec.ts","../../core/src/providers/JsonSchemaCodec.ts","../../../node_modules/typebox/build/system/arguments/arguments.mjs","../../../node_modules/typebox/build/guard/guard.mjs","../../../node_modules/typebox/build/guard/emit.mjs","../../../node_modules/typebox/build/guard/globals.mjs","../../../node_modules/typebox/build/schema/types/_guard.mjs","../../../node_modules/typebox/build/schema/types/_refine.mjs","../../../node_modules/typebox/build/schema/types/schema.mjs","../../../node_modules/typebox/build/schema/types/additionalItems.mjs","../../../node_modules/typebox/build/schema/types/additionalProperties.mjs","../../../node_modules/typebox/build/schema/types/allOf.mjs","../../../node_modules/typebox/build/schema/types/anchor.mjs","../../../node_modules/typebox/build/schema/types/anyOf.mjs","../../../node_modules/typebox/build/schema/types/const.mjs","../../../node_modules/typebox/build/schema/types/contains.mjs","../../../node_modules/typebox/build/schema/types/default.mjs","../../../node_modules/typebox/build/schema/types/dependencies.mjs","../../../node_modules/typebox/build/schema/types/dependentRequired.mjs","../../../node_modules/typebox/build/schema/types/dependentSchemas.mjs","../../../node_modules/typebox/build/schema/types/dynamicAnchor.mjs","../../../node_modules/typebox/build/schema/types/else.mjs","../../../node_modules/typebox/build/schema/types/enum.mjs","../../../node_modules/typebox/build/schema/types/exclusiveMaximum.mjs","../../../node_modules/typebox/build/schema/types/exclusiveMinimum.mjs","../../../node_modules/typebox/build/schema/types/format.mjs","../../../node_modules/typebox/build/schema/types/id.mjs","../../../node_modules/typebox/build/schema/types/if.mjs","../../../node_modules/typebox/build/schema/types/items.mjs","../../../node_modules/typebox/build/schema/types/maximum.mjs","../../../node_modules/typebox/build/schema/types/maxContains.mjs","../../../node_modules/typebox/build/schema/types/maxItems.mjs","../../../node_modules/typebox/build/schema/types/maxLength.mjs","../../../node_modules/typebox/build/schema/types/maxProperties.mjs","../../../node_modules/typebox/build/schema/types/minimum.mjs","../../../node_modules/typebox/build/schema/types/minContains.mjs","../../../node_modules/typebox/build/schema/types/minItems.mjs","../../../node_modules/typebox/build/schema/types/minLength.mjs","../../../node_modules/typebox/build/schema/types/minProperties.mjs","../../../node_modules/typebox/build/schema/types/multipleOf.mjs","../../../node_modules/typebox/build/schema/types/not.mjs","../../../node_modules/typebox/build/schema/types/oneOf.mjs","../../../node_modules/typebox/build/schema/types/pattern.mjs","../../../node_modules/typebox/build/schema/types/patternProperties.mjs","../../../node_modules/typebox/build/schema/types/prefixItems.mjs","../../../node_modules/typebox/build/schema/types/properties.mjs","../../../node_modules/typebox/build/schema/types/propertyNames.mjs","../../../node_modules/typebox/build/schema/types/recursiveAnchor.mjs","../../../node_modules/typebox/build/schema/types/recursiveRef.mjs","../../../node_modules/typebox/build/schema/types/ref.mjs","../../../node_modules/typebox/build/schema/types/required.mjs","../../../node_modules/typebox/build/schema/types/then.mjs","../../../node_modules/typebox/build/schema/types/type.mjs","../../../node_modules/typebox/build/schema/types/uniqueItems.mjs","../../../node_modules/typebox/build/schema/types/unevaluatedItems.mjs","../../../node_modules/typebox/build/schema/types/unevaluatedProperties.mjs","../../../node_modules/typebox/build/schema/engine/_context.mjs","../../../node_modules/typebox/build/schema/engine/_externals.mjs","../../../node_modules/typebox/build/schema/engine/_guard.mjs","../../../node_modules/typebox/build/system/unreachable/unreachable.mjs","../../../node_modules/typebox/build/system/hashing/hash.mjs","../../../node_modules/typebox/build/schema/engine/_refine.mjs","../../../node_modules/typebox/build/schema/engine/_unique.mjs","../../../node_modules/typebox/build/schema/engine/additionalItems.mjs","../../../node_modules/typebox/build/schema/engine/additionalProperties.mjs","../../../node_modules/typebox/build/schema/engine/_reducer.mjs","../../../node_modules/typebox/build/schema/engine/allOf.mjs","../../../node_modules/typebox/build/schema/engine/anyOf.mjs","../../../node_modules/typebox/build/schema/engine/boolean.mjs","../../../node_modules/typebox/build/schema/engine/const.mjs","../../../node_modules/typebox/build/schema/engine/contains.mjs","../../../node_modules/typebox/build/schema/engine/dependencies.mjs","../../../node_modules/typebox/build/schema/engine/dependentRequired.mjs","../../../node_modules/typebox/build/schema/engine/dependentSchemas.mjs","../../../node_modules/typebox/build/schema/engine/enum.mjs","../../../node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs","../../../node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs","../../../node_modules/typebox/build/format/date.mjs","../../../node_modules/typebox/build/format/time.mjs","../../../node_modules/typebox/build/format/date-time.mjs","../../../node_modules/typebox/build/format/duration.mjs","../../../node_modules/typebox/build/format/email.mjs","../../../node_modules/typebox/build/format/hostname.mjs","../../../node_modules/typebox/build/format/idn-email.mjs","../../../node_modules/typebox/build/format/idn-hostname.mjs","../../../node_modules/typebox/build/format/ipv4.mjs","../../../node_modules/typebox/build/format/ipv6.mjs","../../../node_modules/typebox/build/format/iri-reference.mjs","../../../node_modules/typebox/build/format/iri.mjs","../../../node_modules/typebox/build/format/json-pointer-uri-fragment.mjs","../../../node_modules/typebox/build/format/json-pointer.mjs","../../../node_modules/typebox/build/format/regex.mjs","../../../node_modules/typebox/build/format/relative-json-pointer.mjs","../../../node_modules/typebox/build/format/uri-reference.mjs","../../../node_modules/typebox/build/format/uri-template.mjs","../../../node_modules/typebox/build/format/uri.mjs","../../../node_modules/typebox/build/format/url.mjs","../../../node_modules/typebox/build/format/uuid.mjs","../../../node_modules/typebox/build/format/_registry.mjs","../../../node_modules/typebox/build/format/format.mjs","../../../node_modules/typebox/build/format/index.mjs","../../../node_modules/typebox/build/schema/engine/format.mjs","../../../node_modules/typebox/build/schema/engine/if.mjs","../../../node_modules/typebox/build/schema/engine/items.mjs","../../../node_modules/typebox/build/schema/engine/maxContains.mjs","../../../node_modules/typebox/build/schema/engine/maximum.mjs","../../../node_modules/typebox/build/schema/engine/maxItems.mjs","../../../node_modules/typebox/build/schema/engine/maxLength.mjs","../../../node_modules/typebox/build/schema/engine/maxProperties.mjs","../../../node_modules/typebox/build/schema/engine/minContains.mjs","../../../node_modules/typebox/build/schema/engine/minimum.mjs","../../../node_modules/typebox/build/schema/engine/minItems.mjs","../../../node_modules/typebox/build/schema/engine/minLength.mjs","../../../node_modules/typebox/build/schema/engine/minProperties.mjs","../../../node_modules/typebox/build/schema/engine/multipleOf.mjs","../../../node_modules/typebox/build/schema/engine/not.mjs","../../../node_modules/typebox/build/schema/engine/oneOf.mjs","../../../node_modules/typebox/build/schema/engine/pattern.mjs","../../../node_modules/typebox/build/schema/engine/patternProperties.mjs","../../../node_modules/typebox/build/schema/engine/prefixItems.mjs","../../../node_modules/typebox/build/system/settings/settings.mjs","../../../node_modules/typebox/build/schema/engine/_exact_optional.mjs","../../../node_modules/typebox/build/schema/engine/properties.mjs","../../../node_modules/typebox/build/schema/engine/propertyNames.mjs","../../../node_modules/typebox/build/schema/engine/recursiveRef.mjs","../../../node_modules/typebox/build/schema/engine/ref.mjs","../../../node_modules/typebox/build/schema/engine/required.mjs","../../../node_modules/typebox/build/schema/engine/type.mjs","../../../node_modules/typebox/build/schema/engine/unevaluatedItems.mjs","../../../node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs","../../../node_modules/typebox/build/schema/engine/uniqueItems.mjs","../../../node_modules/typebox/build/schema/engine/schema.mjs","../../../node_modules/typebox/build/schema/engine/_functions.mjs","../../../node_modules/typebox/build/schema/pointer/pointer.mjs","../../../node_modules/typebox/build/schema/resolve/ref.mjs","../../../node_modules/typebox/build/schema/engine/_stack.mjs","../../../node_modules/typebox/build/system/environment/can-evaluate.mjs","../../../node_modules/typebox/build/schema/build.mjs","../../../node_modules/typebox/build/schema/check.mjs","../../../node_modules/typebox/build/system/locale/en_US.mjs","../../../node_modules/typebox/build/system/locale/_config.mjs","../../../node_modules/typebox/build/schema/errors.mjs","../../../node_modules/typebox/build/system/memory/metrics.mjs","../../../node_modules/typebox/build/system/memory/assign.mjs","../../../node_modules/typebox/build/system/memory/clone.mjs","../../../node_modules/typebox/build/system/memory/create.mjs","../../../node_modules/typebox/build/system/memory/discard.mjs","../../../node_modules/typebox/build/system/memory/update.mjs","../../../node_modules/typebox/build/type/types/schema.mjs","../../../node_modules/typebox/build/type/action/_optional.mjs","../../../node_modules/typebox/build/type/action/_readonly.mjs","../../../node_modules/typebox/build/type/types/deferred.mjs","../../../node_modules/typebox/build/type/types/_immutable.mjs","../../../node_modules/typebox/build/type/types/_optional.mjs","../../../node_modules/typebox/build/type/types/_readonly.mjs","../../../node_modules/typebox/build/type/types/array.mjs","../../../node_modules/typebox/build/type/types/async-iterator.mjs","../../../node_modules/typebox/build/type/types/base.mjs","../../../node_modules/typebox/build/type/types/constructor.mjs","../../../node_modules/typebox/build/type/types/function.mjs","../../../node_modules/typebox/build/type/types/ref.mjs","../../../node_modules/typebox/build/type/types/generic.mjs","../../../node_modules/typebox/build/type/types/never.mjs","../../../node_modules/typebox/build/type/engine/call/resolve-target.mjs","../../../node_modules/typebox/build/type/types/cyclic.mjs","../../../node_modules/typebox/build/type/types/unknown.mjs","../../../node_modules/typebox/build/type/types/infer.mjs","../../../node_modules/typebox/build/type/types/any.mjs","../../../node_modules/typebox/build/type/engine/enum/typescript-enum-to-enum-values.mjs","../../../node_modules/typebox/build/type/types/enum.mjs","../../../node_modules/typebox/build/type/types/intersect.mjs","../../../node_modules/typebox/build/system/locale/ar_001.mjs","../../../node_modules/typebox/build/system/locale/bn_BD.mjs","../../../node_modules/typebox/build/system/locale/cs_CZ.mjs","../../../node_modules/typebox/build/system/locale/de_DE.mjs","../../../node_modules/typebox/build/system/locale/el_GR.mjs","../../../node_modules/typebox/build/system/locale/es_419.mjs","../../../node_modules/typebox/build/system/locale/es_AR.mjs","../../../node_modules/typebox/build/system/locale/es_ES.mjs","../../../node_modules/typebox/build/system/locale/es_MX.mjs","../../../node_modules/typebox/build/system/locale/fa_IR.mjs","../../../node_modules/typebox/build/system/locale/fil_PH.mjs","../../../node_modules/typebox/build/system/locale/fr_CA.mjs","../../../node_modules/typebox/build/system/locale/fr_FR.mjs","../../../node_modules/typebox/build/system/locale/ha_NG.mjs","../../../node_modules/typebox/build/system/locale/hi_IN.mjs","../../../node_modules/typebox/build/system/locale/hu_HU.mjs","../../../node_modules/typebox/build/system/locale/id_ID.mjs","../../../node_modules/typebox/build/system/locale/it_IT.mjs","../../../node_modules/typebox/build/system/locale/ja_JP.mjs","../../../node_modules/typebox/build/system/locale/ko_KR.mjs","../../../node_modules/typebox/build/system/locale/ms_MY.mjs","../../../node_modules/typebox/build/system/locale/nl_NL.mjs","../../../node_modules/typebox/build/system/locale/pl_PL.mjs","../../../node_modules/typebox/build/system/locale/pt_BR.mjs","../../../node_modules/typebox/build/system/locale/pt_PT.mjs","../../../node_modules/typebox/build/system/locale/ro_RO.mjs","../../../node_modules/typebox/build/system/locale/ru_RU.mjs","../../../node_modules/typebox/build/system/locale/sv_SE.mjs","../../../node_modules/typebox/build/system/locale/sw_TZ.mjs","../../../node_modules/typebox/build/system/locale/th_TH.mjs","../../../node_modules/typebox/build/system/locale/tr_TR.mjs","../../../node_modules/typebox/build/system/locale/uk_UA.mjs","../../../node_modules/typebox/build/system/locale/ur_PK.mjs","../../../node_modules/typebox/build/system/locale/vi_VN.mjs","../../../node_modules/typebox/build/system/locale/yo_NG.mjs","../../../node_modules/typebox/build/system/locale/zh_Hans.mjs","../../../node_modules/typebox/build/system/locale/zh_Hant.mjs","../../../node_modules/typebox/build/system/locale/_locale.mjs","../../../node_modules/typebox/build/type/types/_codec.mjs","../../../node_modules/typebox/build/type/types/_refine.mjs","../../../node_modules/typebox/build/type/types/bigint.mjs","../../../node_modules/typebox/build/type/types/boolean.mjs","../../../node_modules/typebox/build/type/types/identifier.mjs","../../../node_modules/typebox/build/type/types/integer.mjs","../../../node_modules/typebox/build/type/types/iterator.mjs","../../../node_modules/typebox/build/type/types/literal.mjs","../../../node_modules/typebox/build/type/types/null.mjs","../../../node_modules/typebox/build/type/types/number.mjs","../../../node_modules/typebox/build/type/types/symbol.mjs","../../../node_modules/typebox/build/type/types/properties.mjs","../../../node_modules/typebox/build/type/types/object.mjs","../../../node_modules/typebox/build/type/types/parameter.mjs","../../../node_modules/typebox/build/type/types/promise.mjs","../../../node_modules/typebox/build/type/types/string.mjs","../../../node_modules/typebox/build/type/engine/record/record-create.mjs","../../../node_modules/typebox/build/type/types/record.mjs","../../../node_modules/typebox/build/type/types/rest.mjs","../../../node_modules/typebox/build/type/types/this.mjs","../../../node_modules/typebox/build/type/types/tuple.mjs","../../../node_modules/typebox/build/type/types/undefined.mjs","../../../node_modules/typebox/build/type/types/union.mjs","../../../node_modules/typebox/build/type/types/unsafe.mjs","../../../node_modules/typebox/build/type/types/void.mjs","../../../node_modules/typebox/build/type/script/mapping.mjs","../../../node_modules/typebox/build/type/script/token/internal/result.mjs","../../../node_modules/typebox/build/type/script/token/internal/take.mjs","../../../node_modules/typebox/build/type/script/token/internal/char.mjs","../../../node_modules/typebox/build/type/script/token/internal/trim.mjs","../../../node_modules/typebox/build/type/script/token/internal/many.mjs","../../../node_modules/typebox/build/type/script/token/internal/optional.mjs","../../../node_modules/typebox/build/type/script/token/integer.mjs","../../../node_modules/typebox/build/type/script/token/bigint.mjs","../../../node_modules/typebox/build/type/script/token/const.mjs","../../../node_modules/typebox/build/type/script/token/ident.mjs","../../../node_modules/typebox/build/type/script/token/number.mjs","../../../node_modules/typebox/build/type/script/token/until.mjs","../../../node_modules/typebox/build/type/script/token/span.mjs","../../../node_modules/typebox/build/type/script/token/string.mjs","../../../node_modules/typebox/build/type/script/token/until_1.mjs","../../../node_modules/typebox/build/type/script/parser.mjs","../../../node_modules/typebox/build/type/engine/patterns/template.mjs","../../../node_modules/typebox/build/type/types/template-literal.mjs","../../../node_modules/typebox/build/type/extends/result.mjs","../../../node_modules/typebox/build/type/engine/patterns/pattern.mjs","../../../node_modules/typebox/build/type/engine/template-literal/finite.mjs","../../../node_modules/typebox/build/type/engine/template-literal/decode.mjs","../../../node_modules/typebox/build/type/engine/enum/enum-to-union.mjs","../../../node_modules/typebox/build/type/extends/extends-right.mjs","../../../node_modules/typebox/build/type/extends/any.mjs","../../../node_modules/typebox/build/type/extends/array.mjs","../../../node_modules/typebox/build/type/extends/async-iterator.mjs","../../../node_modules/typebox/build/type/extends/bigint.mjs","../../../node_modules/typebox/build/type/extends/boolean.mjs","../../../node_modules/typebox/build/type/extends/parameters.mjs","../../../node_modules/typebox/build/type/extends/return-type.mjs","../../../node_modules/typebox/build/type/extends/constructor.mjs","../../../node_modules/typebox/build/type/extends/enum.mjs","../../../node_modules/typebox/build/type/extends/function.mjs","../../../node_modules/typebox/build/type/extends/integer.mjs","../../../node_modules/typebox/build/type/engine/evaluate/compare.mjs","../../../node_modules/typebox/build/type/engine/evaluate/flatten.mjs","../../../node_modules/typebox/build/type/engine/tuple/to-object.mjs","../../../node_modules/typebox/build/type/engine/evaluate/composite.mjs","../../../node_modules/typebox/build/type/engine/evaluate/narrow.mjs","../../../node_modules/typebox/build/type/engine/evaluate/distribute.mjs","../../../node_modules/typebox/build/type/engine/evaluate/evaluate.mjs","../../../node_modules/typebox/build/type/engine/evaluate/broaden.mjs","../../../node_modules/typebox/build/type/engine/evaluate/instantiate.mjs","../../../node_modules/typebox/build/type/extends/intersect.mjs","../../../node_modules/typebox/build/type/extends/iterator.mjs","../../../node_modules/typebox/build/type/extends/literal.mjs","../../../node_modules/typebox/build/type/extends/never.mjs","../../../node_modules/typebox/build/type/extends/null.mjs","../../../node_modules/typebox/build/type/extends/number.mjs","../../../node_modules/typebox/build/type/extends/object.mjs","../../../node_modules/typebox/build/type/extends/promise.mjs","../../../node_modules/typebox/build/type/extends/string.mjs","../../../node_modules/typebox/build/type/extends/symbol.mjs","../../../node_modules/typebox/build/type/extends/template-literal.mjs","../../../node_modules/typebox/build/type/extends/inference.mjs","../../../node_modules/typebox/build/type/extends/tuple.mjs","../../../node_modules/typebox/build/type/extends/undefined.mjs","../../../node_modules/typebox/build/type/extends/union.mjs","../../../node_modules/typebox/build/type/extends/unknown.mjs","../../../node_modules/typebox/build/type/extends/void.mjs","../../../node_modules/typebox/build/type/extends/extends-left.mjs","../../../node_modules/typebox/build/type/action/interface.mjs","../../../node_modules/typebox/build/type/engine/cyclic/check.mjs","../../../node_modules/typebox/build/type/engine/cyclic/candidates.mjs","../../../node_modules/typebox/build/type/engine/cyclic/dependencies.mjs","../../../node_modules/typebox/build/type/engine/cyclic/extends.mjs","../../../node_modules/typebox/build/type/engine/cyclic/instantiate.mjs","../../../node_modules/typebox/build/type/engine/cyclic/target.mjs","../../../node_modules/typebox/build/type/extends/extends.mjs","../../../node_modules/typebox/build/type/engine/call/resolve-arguments.mjs","../../../node_modules/typebox/build/type/engine/call/instantiate.mjs","../../../node_modules/typebox/build/type/types/call.mjs","../../../node_modules/typebox/build/type/engine/awaited/instantiate.mjs","../../../node_modules/typebox/build/type/engine/intrinsics/mapping.mjs","../../../node_modules/typebox/build/type/engine/intrinsics/from-literal.mjs","../../../node_modules/typebox/build/type/engine/intrinsics/from-template-literal.mjs","../../../node_modules/typebox/build/type/engine/intrinsics/from-union.mjs","../../../node_modules/typebox/build/type/engine/intrinsics/from-type.mjs","../../../node_modules/typebox/build/type/action/capitalize.mjs","../../../node_modules/typebox/build/type/action/lowercase.mjs","../../../node_modules/typebox/build/type/action/uncapitalize.mjs","../../../node_modules/typebox/build/type/action/uppercase.mjs","../../../node_modules/typebox/build/type/engine/intrinsics/instantiate.mjs","../../../node_modules/typebox/build/type/action/conditional.mjs","../../../node_modules/typebox/build/type/engine/conditional/instantiate.mjs","../../../node_modules/typebox/build/type/action/constructor-parameters.mjs","../../../node_modules/typebox/build/type/engine/constructor-parameters/instantiate.mjs","../../../node_modules/typebox/build/type/action/exclude.mjs","../../../node_modules/typebox/build/type/engine/exclude/instantiate.mjs","../../../node_modules/typebox/build/type/action/extract.mjs","../../../node_modules/typebox/build/type/engine/extract/instantiate.mjs","../../../node_modules/typebox/build/type/engine/helpers/keys.mjs","../../../node_modules/typebox/build/type/engine/indexed/from-array.mjs","../../../node_modules/typebox/build/type/engine/indexable/from-cyclic.mjs","../../../node_modules/typebox/build/type/engine/indexable/from-union.mjs","../../../node_modules/typebox/build/type/engine/indexable/from-enum.mjs","../../../node_modules/typebox/build/type/engine/indexable/from-intersect.mjs","../../../node_modules/typebox/build/type/engine/indexable/from-literal.mjs","../../../node_modules/typebox/build/type/engine/indexable/from-template-literal.mjs","../../../node_modules/typebox/build/type/engine/indexable/from-type.mjs","../../../node_modules/typebox/build/type/engine/indexable/to-indexable-keys.mjs","../../../node_modules/typebox/build/type/engine/indexed/from-object.mjs","../../../node_modules/typebox/build/type/engine/indexed/array-indexer.mjs","../../../node_modules/typebox/build/type/engine/indexed/from-tuple.mjs","../../../node_modules/typebox/build/type/engine/helpers/keys-to-indexer.mjs","../../../node_modules/typebox/build/type/action/indexed.mjs","../../../node_modules/typebox/build/type/engine/object/from-cyclic.mjs","../../../node_modules/typebox/build/type/engine/object/from-intersect.mjs","../../../node_modules/typebox/build/type/engine/object/from-object.mjs","../../../node_modules/typebox/build/type/engine/object/from-tuple.mjs","../../../node_modules/typebox/build/type/engine/object/from-union.mjs","../../../node_modules/typebox/build/type/engine/object/from-type.mjs","../../../node_modules/typebox/build/type/engine/object/collapse.mjs","../../../node_modules/typebox/build/type/engine/indexed/instantiate.mjs","../../../node_modules/typebox/build/type/action/instance-type.mjs","../../../node_modules/typebox/build/type/engine/instance-type/instantiate.mjs","../../../node_modules/typebox/build/type/engine/interface/instantiate.mjs","../../../node_modules/typebox/build/type/action/keyof.mjs","../../../node_modules/typebox/build/type/engine/keyof/from-any.mjs","../../../node_modules/typebox/build/type/engine/keyof/from-array.mjs","../../../node_modules/typebox/build/type/engine/keyof/from-object.mjs","../../../node_modules/typebox/build/type/engine/keyof/from-record.mjs","../../../node_modules/typebox/build/type/engine/keyof/from-tuple.mjs","../../../node_modules/typebox/build/type/engine/keyof/instantiate.mjs","../../../node_modules/typebox/build/type/engine/mapped/mapped-keys.mjs","../../../node_modules/typebox/build/type/action/mapped.mjs","../../../node_modules/typebox/build/type/engine/mapped/instantiate.mjs","../../../node_modules/typebox/build/type/engine/module/instantiate.mjs","../../../node_modules/typebox/build/type/action/non-nullable.mjs","../../../node_modules/typebox/build/type/engine/non-nullable/instantiate.mjs","../../../node_modules/typebox/build/type/engine/indexable/to-indexable.mjs","../../../node_modules/typebox/build/type/action/omit.mjs","../../../node_modules/typebox/build/type/engine/omit/instantiate.mjs","../../../node_modules/typebox/build/type/action/options.mjs","../../../node_modules/typebox/build/type/engine/options/instantiate.mjs","../../../node_modules/typebox/build/type/action/parameters.mjs","../../../node_modules/typebox/build/type/engine/parameters/instantiate.mjs","../../../node_modules/typebox/build/type/action/partial.mjs","../../../node_modules/typebox/build/type/engine/partial/from-cyclic.mjs","../../../node_modules/typebox/build/type/engine/partial/from-intersect.mjs","../../../node_modules/typebox/build/type/engine/partial/from-union.mjs","../../../node_modules/typebox/build/type/engine/partial/from-object.mjs","../../../node_modules/typebox/build/type/engine/partial/from-type.mjs","../../../node_modules/typebox/build/type/engine/partial/instantiate.mjs","../../../node_modules/typebox/build/type/action/pick.mjs","../../../node_modules/typebox/build/type/engine/pick/instantiate.mjs","../../../node_modules/typebox/build/type/action/readonly-type.mjs","../../../node_modules/typebox/build/type/engine/readonly-type/from-array.mjs","../../../node_modules/typebox/build/type/engine/readonly-type/from-cyclic.mjs","../../../node_modules/typebox/build/type/engine/readonly-type/from-intersect.mjs","../../../node_modules/typebox/build/type/engine/readonly-type/from-object.mjs","../../../node_modules/typebox/build/type/engine/readonly-type/from-tuple.mjs","../../../node_modules/typebox/build/type/engine/readonly-type/from-union.mjs","../../../node_modules/typebox/build/type/engine/readonly-type/from-type.mjs","../../../node_modules/typebox/build/type/engine/readonly-type/instantiate.mjs","../../../node_modules/typebox/build/type/engine/record/from-key-any.mjs","../../../node_modules/typebox/build/type/engine/record/from-key-boolean.mjs","../../../node_modules/typebox/build/type/engine/record/from-key-enum.mjs","../../../node_modules/typebox/build/type/engine/record/from-key-integer.mjs","../../../node_modules/typebox/build/type/engine/record/from-key-intersect.mjs","../../../node_modules/typebox/build/type/engine/record/from-key-literal.mjs","../../../node_modules/typebox/build/type/engine/record/from-key-number.mjs","../../../node_modules/typebox/build/type/engine/record/from-key-string.mjs","../../../node_modules/typebox/build/type/engine/record/from-key-template-literal.mjs","../../../node_modules/typebox/build/type/engine/record/from-key-union.mjs","../../../node_modules/typebox/build/type/engine/record/from-key.mjs","../../../node_modules/typebox/build/type/engine/record/instantiate.mjs","../../../node_modules/typebox/build/type/engine/ref/instantiate.mjs","../../../node_modules/typebox/build/type/engine/required/from-cyclic.mjs","../../../node_modules/typebox/build/type/engine/required/from-intersect.mjs","../../../node_modules/typebox/build/type/engine/required/from-union.mjs","../../../node_modules/typebox/build/type/engine/required/from-object.mjs","../../../node_modules/typebox/build/type/engine/required/from-type.mjs","../../../node_modules/typebox/build/type/action/required.mjs","../../../node_modules/typebox/build/type/engine/required/instantiate.mjs","../../../node_modules/typebox/build/type/action/return-type.mjs","../../../node_modules/typebox/build/type/engine/return-type/instantiate.mjs","../../../node_modules/typebox/build/type/engine/template-literal/create.mjs","../../../node_modules/typebox/build/type/engine/template-literal/encode.mjs","../../../node_modules/typebox/build/type/engine/template-literal/instantiate.mjs","../../../node_modules/typebox/build/type/engine/rest/spread.mjs","../../../node_modules/typebox/build/type/engine/instantiate.mjs","../../../node_modules/typebox/build/type/action/awaited.mjs","../../../node_modules/typebox/build/type/action/evaluate.mjs","../../../node_modules/typebox/build/type/action/module.mjs","../../../node_modules/typebox/build/type/script/script.mjs","../../../node_modules/typebox/build/value/check/check.mjs","../../../node_modules/typebox/build/value/errors/errors.mjs","../../../node_modules/typebox/build/value/assert/assert.mjs","../../../node_modules/typebox/build/value/clean/from-array.mjs","../../../node_modules/typebox/build/value/clean/from-base.mjs","../../../node_modules/typebox/build/value/clean/from-cyclic.mjs","../../../node_modules/typebox/build/value/clean/from-intersect.mjs","../../../node_modules/typebox/build/value/clean/additional.mjs","../../../node_modules/typebox/build/value/clean/from-object.mjs","../../../node_modules/typebox/build/value/clean/from-record.mjs","../../../node_modules/typebox/build/value/clean/from-ref.mjs","../../../node_modules/typebox/build/value/clean/from-tuple.mjs","../../../node_modules/typebox/build/value/clone/clone.mjs","../../../node_modules/typebox/build/value/clean/from-union.mjs","../../../node_modules/typebox/build/value/clean/from-type.mjs","../../../node_modules/typebox/build/value/clean/clean.mjs","../../../node_modules/typebox/build/value/convert/from-array.mjs","../../../node_modules/typebox/build/value/convert/from-base.mjs","../../../node_modules/typebox/build/value/convert/try/try-result.mjs","../../../node_modules/typebox/build/value/convert/try/try-bigint.mjs","../../../node_modules/typebox/build/value/convert/try/try-boolean.mjs","../../../node_modules/typebox/build/value/convert/try/try-null.mjs","../../../node_modules/typebox/build/value/convert/try/try-number.mjs","../../../node_modules/typebox/build/value/convert/try/try-string.mjs","../../../node_modules/typebox/build/value/convert/try/try-undefined.mjs","../../../node_modules/typebox/build/value/convert/from-bigint.mjs","../../../node_modules/typebox/build/value/convert/from-boolean.mjs","../../../node_modules/typebox/build/value/convert/from-cyclic.mjs","../../../node_modules/typebox/build/value/convert/from-union.mjs","../../../node_modules/typebox/build/value/convert/from-enum.mjs","../../../node_modules/typebox/build/value/convert/from-integer.mjs","../../../node_modules/typebox/build/value/convert/from-intersect.mjs","../../../node_modules/typebox/build/value/convert/from-literal.mjs","../../../node_modules/typebox/build/value/convert/from-null.mjs","../../../node_modules/typebox/build/value/convert/from-number.mjs","../../../node_modules/typebox/build/value/convert/from-additional.mjs","../../../node_modules/typebox/build/value/shared/optional-undefined.mjs","../../../node_modules/typebox/build/value/convert/from-object.mjs","../../../node_modules/typebox/build/value/convert/from-record.mjs","../../../node_modules/typebox/build/value/convert/from-ref.mjs","../../../node_modules/typebox/build/value/convert/from-string.mjs","../../../node_modules/typebox/build/value/convert/from-template-literal.mjs","../../../node_modules/typebox/build/value/convert/from-tuple.mjs","../../../node_modules/typebox/build/value/convert/from-undefined.mjs","../../../node_modules/typebox/build/value/convert/from-void.mjs","../../../node_modules/typebox/build/value/convert/from-type.mjs","../../../node_modules/typebox/build/value/convert/convert.mjs","../../../node_modules/typebox/build/value/default/from-array.mjs","../../../node_modules/typebox/build/value/default/from-base.mjs","../../../node_modules/typebox/build/value/default/from-cyclic.mjs","../../../node_modules/typebox/build/value/default/from-default.mjs","../../../node_modules/typebox/build/value/default/from-intersect.mjs","../../../node_modules/typebox/build/value/default/from-object.mjs","../../../node_modules/typebox/build/value/default/from-record.mjs","../../../node_modules/typebox/build/value/default/from-ref.mjs","../../../node_modules/typebox/build/value/default/from-tuple.mjs","../../../node_modules/typebox/build/value/default/from-union.mjs","../../../node_modules/typebox/build/value/default/from-type.mjs","../../../node_modules/typebox/build/value/default/default.mjs","../../../node_modules/typebox/build/value/pipeline/pipeline.mjs","../../../node_modules/typebox/build/value/codec/callback.mjs","../../../node_modules/typebox/build/value/codec/from-array.mjs","../../../node_modules/typebox/build/value/codec/from-cyclic.mjs","../../../node_modules/typebox/build/value/codec/from-intersect.mjs","../../../node_modules/typebox/build/value/codec/from-object.mjs","../../../node_modules/typebox/build/value/codec/from-record.mjs","../../../node_modules/typebox/build/value/codec/from-ref.mjs","../../../node_modules/typebox/build/value/codec/from-tuple.mjs","../../../node_modules/typebox/build/value/codec/from-union.mjs","../../../node_modules/typebox/build/value/codec/from-type.mjs","../../../node_modules/typebox/build/value/codec/decode.mjs","../../../node_modules/typebox/build/value/codec/encode.mjs","../../../node_modules/typebox/build/value/codec/has.mjs","../../../node_modules/typebox/build/value/create/error.mjs","../../../node_modules/typebox/build/value/create/from-default.mjs","../../../node_modules/typebox/build/value/create/from-array.mjs","../../../node_modules/typebox/build/value/create/from-async-iterator.mjs","../../../node_modules/typebox/build/value/create/from-base.mjs","../../../node_modules/typebox/build/value/create/from-bigint.mjs","../../../node_modules/typebox/build/value/create/from-boolean.mjs","../../../node_modules/typebox/build/value/create/from-constructor.mjs","../../../node_modules/typebox/build/value/create/from-cyclic.mjs","../../../node_modules/typebox/build/value/create/from-enum.mjs","../../../node_modules/typebox/build/value/create/from-function.mjs","../../../node_modules/typebox/build/value/create/from-integer.mjs","../../../node_modules/typebox/build/value/create/from-intersect.mjs","../../../node_modules/typebox/build/value/create/from-iterator.mjs","../../../node_modules/typebox/build/value/create/from-literal.mjs","../../../node_modules/typebox/build/value/create/from-never.mjs","../../../node_modules/typebox/build/value/create/from-null.mjs","../../../node_modules/typebox/build/value/create/from-number.mjs","../../../node_modules/typebox/build/value/create/from-object.mjs","../../../node_modules/typebox/build/value/create/from-promise.mjs","../../../node_modules/typebox/build/value/create/from-record.mjs","../../../node_modules/typebox/build/value/create/from-ref.mjs","../../../node_modules/typebox/build/value/create/from-string.mjs","../../../node_modules/typebox/build/value/create/from-symbol.mjs","../../../node_modules/typebox/build/value/create/from-template-literal.mjs","../../../node_modules/typebox/build/value/create/from-tuple.mjs","../../../node_modules/typebox/build/value/create/from-undefined.mjs","../../../node_modules/typebox/build/value/create/from-union.mjs","../../../node_modules/typebox/build/value/create/from-void.mjs","../../../node_modules/typebox/build/value/create/from-type.mjs","../../../node_modules/typebox/build/value/create/create.mjs","../../../node_modules/typebox/build/value/parse/parse.mjs","../../../node_modules/typebox/build/value/delta/edit.mjs","../../../node_modules/typebox/build/compile/validator.mjs","../../../node_modules/typebox/build/compile/compile.mjs","../../core/src/errors/TypeBoxError.ts","../../core/src/providers/SchemaValidator.ts","../../core/src/providers/CodecManager.ts","../../core/src/providers/EventManager.ts","../../core/src/descriptors/$atom.ts","../../core/src/providers/StateManager.ts","../../core/src/Alepha.ts","../../core/src/helpers/boot.ts","../../../node_modules/typebox/build/typebox.mjs","../../core/src/helpers/FileLike.ts","../../core/src/providers/TypeProvider.ts","../../core/src/descriptors/$env.ts","../../core/src/descriptors/$hook.ts","../../core/src/descriptors/$use.ts","../../core/src/schemas/pageQuerySchema.ts","../../core/src/schemas/pageSchema.ts","../../core/src/index.ts","../../command/src/descriptors/$command.ts","../../../node_modules/dayjs/plugin/relativeTime.js","../../../node_modules/dayjs/plugin/duration.js","../../../node_modules/dayjs/plugin/utc.js","../../../node_modules/dayjs/plugin/timezone.js","../../../node_modules/dayjs/plugin/localizedFormat.js","../../../node_modules/dayjs/dayjs.min.js","../../../node_modules/dayjs/locale/ar.js","../../../node_modules/dayjs/locale/fr.js","../../datetime/src/providers/DateTimeProvider.ts","../../datetime/src/descriptors/$interval.ts","../../datetime/src/index.ts","../../logger/src/providers/LogDestinationProvider.ts","../../logger/src/providers/LogFormatterProvider.ts","../../logger/src/services/Logger.ts","../../logger/src/descriptors/$logger.ts","../../logger/src/providers/ConsoleDestinationProvider.ts","../../logger/src/providers/JsonFormatterProvider.ts","../../logger/src/providers/MemoryDestinationProvider.ts","../../logger/src/providers/RawFormatterProvider.ts","../../logger/src/providers/ConsoleColorProvider.ts","../../logger/src/providers/SimpleFormatterProvider.ts","../../logger/src/schemas/logEntrySchema.ts","../../logger/src/index.ts","../../command/src/helpers/Asker.ts","../../command/src/helpers/PrettyPrint.ts","../../command/src/errors/CommandError.ts","../../command/src/helpers/Runner.ts","../../command/src/providers/CliProvider.ts","../../command/src/index.ts","../src/assets/biomeJson.ts","../src/services/ProcessRunner.ts","../src/commands/BiomeCommands.ts","../src/assets/tsconfigJson.ts","../src/version.ts","../src/commands/CoreCommands.ts","../src/commands/DrizzleCommands.ts","../src/commands/VerifyCommands.ts","../src/assets/viteConfigTs.ts","../src/commands/ViteCommands.ts","../src/index.ts"],"sourcesContent":["/**\n * Used for identifying descriptors.\n *\n * @internal\n */\nexport const KIND: unique symbol = Symbol.for(\"Alepha.Kind\");\n","/**\n * Used for identifying modules.\n *\n * @internal\n */\nexport const MODULE: unique symbol = Symbol.for(\"Alepha.Module\");\n","/**\n * Used for descriptors options.\n *\n * @internal\n */\nexport const OPTIONS: unique symbol = Symbol.for(\"Alepha.Options\");\n","// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Default error class for Alepha.\n */\nexport class AlephaError extends Error {\n name = \"AlephaError\";\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n","import type { Alepha } from \"../Alepha.ts\";\nimport { KIND } from \"../constants/KIND.ts\";\nimport { MODULE } from \"../constants/MODULE.ts\";\nimport { AlephaError } from \"../errors/AlephaError.ts\";\nimport type { DescriptorFactoryLike } from \"../helpers/descriptor.ts\";\nimport type { Service } from \"../interfaces/Service.ts\";\n\n/**\n * Wrap Services and Descriptors into a Module.\n *\n * - A module is just a Service with some extra {@link Module}.\n * - You must attach a `name` to it.\n * - Name must follow the pattern: `project.module.submodule`. (e.g. `myapp.users.auth`).\n *\n * @example\n * ```ts\n * import { $module } from \"alepha\";\n * import { MyService } from \"./MyService.ts\";\n *\n * // export MyService, so it can be used everywhere (optional)\n * export * from \"./MyService.ts\";\n *\n * export default $module({\n * name: \"my.project.module\",\n * // MyService will have a module context \"my.project.module\"\n * services: [MyService],\n * });\n * ```\n *\n * ### Why Modules?\n *\n * #### Logging\n *\n * By default, AlephaLogger will log the module name in the logs.\n * This helps to identify where the logs are coming from.\n *\n * You can also set different log levels for different modules.\n * It means you can set 'some.very.specific.module' to 'debug' and keep the rest of the application to 'info'.\n *\n * #### Modulith\n *\n * Force to structure your application in modules, even if it's a single deployable unit.\n * It helps to keep a clean architecture and avoid monolithic applications.\n *\n * A strict mode flag will probably come to enforce module boundaries.\n * -> Throwing errors when a service from another module is injected.\n * But it's not implemented yet.\n *\n * ### When not to use Modules?\n *\n * Small applications does not need modules. It's better to keep it simple.\n * Modules are more useful when the application grows and needs to be structured.\n * If we speak with number of `$actions`, a module should be used when you have more than 30 actions in a single module.\n * Meaning that if you have 100 actions, you should have at least 3 modules.\n */\nexport const $module = <T extends object = {}>(\n options: ModuleDescriptorOptions,\n): Service<Module> => {\n const { services = [], descriptors = [], name } = options;\n\n // ensure name is valid\n if (!name || !Module.NAME_REGEX.test(name)) {\n throw new AlephaError(\n `Invalid module name '${name}'. It should be in the format of 'project.module.submodule'`,\n );\n }\n\n const $ = class extends Module {\n options = options;\n\n register(alepha: Alepha): void {\n if (typeof options.register === \"function\") {\n options.register(alepha);\n return;\n }\n\n for (const service of services) {\n alepha.inject(service, {\n parent: this.constructor as Service<Module>,\n });\n }\n }\n };\n\n // force name property\n Object.defineProperty($, \"name\", {\n value: name,\n writable: false,\n });\n\n for (const service of services) {\n if (!Module.is(service)) {\n (service as WithModule)[MODULE] = $;\n }\n }\n\n for (const factory of descriptors) {\n if (typeof factory[KIND] === \"function\") {\n factory[KIND][MODULE] = $;\n }\n }\n\n return $; // module as Service<Module<T>>;\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface ModuleDescriptorOptions {\n /**\n * Name of the module.\n *\n * It should be in the format of `project.module.submodule`.\n */\n name: string;\n\n /**\n * List all services related to this module.\n *\n * If you don't declare 'register' function, all services will be registered automatically.\n * If you declare 'register' function, you must handle the registration of ALL services manually.\n */\n services?: Array<Service>;\n\n /**\n * List of $descriptors to register in the module.\n */\n descriptors?: Array<DescriptorFactoryLike>;\n\n /**\n * By default, module will register ALL services.\n * You can override this behavior by providing a register function.\n * It's useful when you want to register services conditionally or in a specific order.\n *\n * Again, if you declare 'register', you must handle the registration of ALL services manually.\n */\n register?: (alepha: Alepha) => void;\n}\n\n/**\n * Base class for all modules.\n */\nexport abstract class Module {\n public abstract readonly options: ModuleDescriptorOptions;\n\n public abstract register(alepha: Alepha): void;\n\n static NAME_REGEX = /^[a-z]+(\\.[a-z][a-z0-9-]*)*$/;\n\n /**\n * Check if a Service is a Module.\n */\n static is(ctor: Service): boolean {\n return ctor.prototype instanceof Module;\n }\n\n /**\n * Get the Module of a Service.\n *\n * Returns undefined if the Service is not part of a Module.\n */\n static of(ctor: Service): Service<Module> | undefined {\n return (ctor as WithModule)[MODULE];\n }\n}\n\n/**\n * Helper type to add Module metadata to a Service.\n */\nexport type WithModule<T extends object = any> = T & {\n [MODULE]?: Service;\n};\n","import { AlephaError } from \"./AlephaError.ts\";\n\nexport class CircularDependencyError extends AlephaError {\n readonly name = \"CircularDependencyError\";\n\n constructor(provider: string, parents?: string[]) {\n super(\n `Instance not available. Looks like a circular dependency. ? -> ${parents?.map((name) => `${name} -> `).join(\"\")}${provider} -> ?`,\n );\n }\n}\n","import { AlephaError } from \"./AlephaError.ts\";\n\nexport class ContainerLockedError extends AlephaError {\n readonly name = \"ContainerLockedError\";\n\n constructor(\n message = \"Container is locked. No more providers can be added.\",\n ) {\n super(message);\n }\n}\n","import { AlephaError } from \"./AlephaError.ts\";\n\nexport class TooLateSubstitutionError extends AlephaError {\n readonly name = \"TooLateSubstitutionError\";\n\n constructor(original: string, substitution: string) {\n super(\n `Service already substituted. Please, substitute Service '${original}' with Service '${substitution}' before using it.`,\n );\n }\n}\n","import { AlephaError } from \"./AlephaError.ts\";\n\nexport class MissingContextError extends AlephaError {\n readonly name = \"MissingContextError\";\n\n constructor() {\n super(\"Missing context. Did you forget to call Alepha.create()?\");\n this.name = \"MissingContextError\";\n }\n}\n","import type { Alepha } from \"../Alepha.ts\";\nimport { MODULE } from \"../constants/MODULE.ts\";\nimport type { Service } from \"../interfaces/Service.ts\";\n\n/**\n * Store the current context and definition during injection phase.\n *\n * @internal\n */\nexport const __alephaRef: {\n alepha?: Alepha;\n service?: Service & {\n [MODULE]?: Service;\n };\n parent?: Service;\n} = {};\n\n/**\n * Note:\n *\n * This file is used to share context between $descriptors and the Alepha core during the injection phase.\n *\n * There is no side effect as long as Alepha is not used concurrently in multiple contexts (which is not the case).\n *\n * // __alephaRef === undefined\n * // begin alepha.with()\n * // __alephaRef.context = alepha\n * // ... injection phase ...\n * // __alephaRef.context = undefined\n * // end alepha.with()\n * // __alephaRef === undefined\n *\n * As .with() is synchronous, there is no risk of context leakage.\n *\n * ---------------------------------------------------------------------------------------------------------------------\n *\n * Why this helper?\n *\n * It allows to avoid passing Alepha instance to every $hook, $inject, etc. calls. It's a beautiful syntactic sugar.\n *\n * With sugar:\n *\n * class A {\n * on = $hook( ... ) // <- __alephaRef is set here\n * }\n *\n * Without sugar:\n *\n * class A {\n * constructor(alepha: Alepha) {\n * this.on = $hook(alepha, ... ) // <- no need of __alephaRef\n * }\n * }\n *\n * One main goal of Alepha is working with classes but without the class verbosity.\n * Forcing to pass Alepha instance in constructors would be a step back in that direction!\n */\n","import type { Alepha } from \"../Alepha.ts\";\nimport { MODULE } from \"../constants/MODULE.ts\";\nimport { MissingContextError } from \"../errors/MissingContextError.ts\";\nimport { __alephaRef } from \"../helpers/ref.ts\";\nimport type { Service } from \"../interfaces/Service.ts\";\n\n/**\n * Get Alepha instance and current service from the current context.\n *\n * It can only be used inside $descriptor functions.\n *\n * ```ts\n * import { $context } from \"alepha\";\n *\n * const $hello = () => {\n * const { alepha, service, module } = $context();\n *\n * // alepha - alepha instance\n * // service - class which is creating this descriptor, this is NOT the instance but the service definition\n * // module - module definition, if any\n *\n * return {};\n * }\n *\n * class MyService {\n * hello = $hello();\n * }\n *\n * const alepha = new Alepha().with(MyService);\n * ```\n *\n * @internal\n */\nexport const $context = (): ContextDescriptor => {\n if (!__alephaRef.alepha) {\n throw new MissingContextError();\n }\n\n return {\n alepha: __alephaRef.alepha,\n service: __alephaRef.service,\n module: __alephaRef.service?.[MODULE],\n };\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface ContextDescriptor {\n /**\n * Alepha instance.\n */\n alepha: Alepha;\n /**\n * Service definition which is creating this descriptor.\n * This is NOT the instance but the service definition.\n */\n service?: Service;\n /**\n * Module definition, if any.\n */\n module?: Service;\n}\n","import { Alepha } from \"../Alepha.ts\";\nimport { KIND } from \"../constants/KIND.ts\";\nimport { MODULE } from \"../constants/MODULE.ts\";\nimport { $context } from \"../descriptors/$context.ts\";\nimport type { InstantiableClass, Service } from \"../interfaces/Service.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface DescriptorArgs<T extends object = {}> {\n options: T;\n alepha: Alepha;\n service: InstantiableClass<Service>;\n module?: Service;\n}\n\nexport interface DescriptorConfig {\n propertyKey: string;\n service: InstantiableClass<Service>;\n module?: Service;\n}\n\nexport abstract class Descriptor<T extends object = {}> {\n protected readonly alepha: Alepha;\n\n public readonly options: T;\n public readonly config: DescriptorConfig;\n\n constructor(args: DescriptorArgs<T>) {\n this.alepha = args.alepha;\n this.options = args.options;\n this.config = {\n propertyKey: \"\",\n service: args.service,\n module: args.module,\n };\n }\n\n /**\n * Called automatically by Alepha after the descriptor is created.\n */\n protected onInit(): void {\n // this method can be overridden by subclasses to perform initialization logic.\n // - use onInit instead of the constructor when you need to access `config.propertyKey`\n // - onInit must be synchronous\n }\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport type DescriptorFactory<TDescriptor extends Descriptor = Descriptor> = {\n (options: TDescriptor[\"options\"]): TDescriptor;\n [KIND]: InstantiableClass<TDescriptor>;\n};\n\nexport type DescriptorFactoryLike<T extends object = any> = {\n (options: T): any;\n [KIND]: any;\n};\n\nexport const createDescriptor = <TDescriptor extends Descriptor>(\n descriptor: InstantiableClass<TDescriptor> & { [MODULE]?: Service },\n options: TDescriptor[\"options\"],\n): TDescriptor => {\n const { alepha, service } = $context();\n\n if (MODULE in descriptor && descriptor[MODULE]) {\n alepha.with(descriptor[MODULE]);\n }\n\n return alepha.inject(descriptor, {\n lifetime: \"transient\",\n args: [\n {\n options,\n alepha: alepha,\n service: service ?? Alepha,\n },\n ],\n });\n};\n","// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * In Alepha, a service is a class that can be instantiated or an abstract class. Nothing more, nothing less...\n */\nexport type Service<T extends object = any> =\n | InstantiableClass<T>\n | AbstractClass<T>\n | RunFunction<T>;\n\nexport type RunFunction<T extends object = any> = (...args: any[]) => T | void;\n\nexport type InstantiableClass<T extends object = any> = new (\n ...args: any[]\n) => T;\n\n/**\n * Abstract class is a class that cannot be instantiated directly!\n * It widely used for defining interfaces.\n */\nexport type AbstractClass<T extends object = any> = abstract new (\n ...args: any[]\n) => T;\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Service substitution allows you to register a class as a different class.\n * Providing class A, but using class B instead.\n * This is useful for testing, mocking, or providing a different implementation of a service.\n *\n * class A is mostly an AbstractClass, while class B is an InstantiableClass.\n */\nexport interface ServiceSubstitution<T extends object = any> {\n /**\n * Every time someone asks for this class, it will be provided with the 'use' class.\n */\n provide: Service<T>;\n\n /**\n * Service to use instead of the 'provide' service.\n *\n * Syntax is inspired by Angular's DI system.\n */\n use: Service<T>;\n\n /**\n * If true, if the service already exists -> just ignore the substitution and do not throw an error.\n * Mostly used for plugins to enforce a substitution without throwing an error.\n */\n optional?: boolean;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Every time you register a service, you can use this type to define it.\n *\n * alepha.with( ServiceEntry )\n * or\n * alepha.with( provide: ServiceEntry, use: MyOwnServiceEntry )\n *\n * And yes, you declare the *type* of the service, not the *instance*.\n */\nexport type ServiceEntry<T extends object = any> =\n | Service<T>\n | ServiceSubstitution<T>;\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport function isClass(func: any): func is InstantiableClass {\n // Classes have a non-writable prototype.constructor\n if (typeof func !== \"function\") return false;\n\n const descriptor = Object.getOwnPropertyDescriptor(func, \"prototype\");\n return !!descriptor && !descriptor.writable;\n}\n","import type { AsyncLocalStorage } from \"node:async_hooks\";\n\nexport type AsyncLocalStorageData = any;\n\nexport class AlsProvider {\n static create = (): AsyncLocalStorage<AsyncLocalStorageData> | undefined => {\n return undefined;\n };\n\n public als?: AsyncLocalStorage<AsyncLocalStorageData>;\n\n constructor() {\n this.als = AlsProvider.create();\n }\n\n public createContextId(): string {\n return crypto.randomUUID();\n }\n\n public run<R>(callback: () => R, data: Record<string, any> = {}): R {\n if (!this.als) {\n return callback();\n }\n\n data.registry ??= new Map();\n data.context ??= this.createContextId();\n\n return this.als.run(data, callback);\n }\n\n public exists(): boolean {\n return !!this.get(\"context\");\n }\n\n public get<T>(key: string): T | undefined {\n if (!this.als) {\n return undefined;\n }\n\n const store = this.als.getStore();\n if (store) {\n return store[key] as T;\n }\n\n return undefined;\n }\n\n public set<T>(key: string, value: T): void {\n if (!this.als) {\n return;\n }\n\n const store = this.als.getStore();\n if (store) {\n store[key] = value;\n }\n }\n}\n","import { Descriptor } from \"../helpers/descriptor.ts\";\nimport type { InstantiableClass, Service } from \"../interfaces/Service.ts\";\nimport { $context } from \"./$context.ts\";\n\n/**\n * Get the instance of the specified type from the context.\n *\n * ```ts\n * class A { }\n * class B {\n * a = $inject(A);\n * }\n * ```\n */\nexport const $inject = <T extends object>(\n type: Service<T>,\n opts: InjectOptions<T> = {},\n): T => {\n const { alepha, service } = $context();\n\n // _ = $inject(Alepha)\n if (type === alepha.constructor) {\n return alepha as T;\n }\n\n return alepha.inject(type, {\n // keep the parent for better error messages and circular dependencies detection\n parent: service ?? (alepha.constructor as Service),\n ...opts,\n });\n};\n\nexport class InjectDescriptor extends Descriptor {}\n\nexport interface InjectOptions<T extends object = any> {\n /**\n * - 'transient' → Always a new instance on every inject. Zero caching.\n * - 'singleton' → One instance per Alepha runtime (per-thread). Never disposed until Alepha shuts down. (default)\n * - 'scoped' → One instance per AsyncLocalStorage context.\n * - A new scope is created when Alepha handles a request, a scheduled job, a queue worker task...\n * - You can also start a manual scope via alepha.context.run(() => { ... }).\n * - When the scope ends, the scoped registry is discarded.\n *\n * @default \"singleton\"\n */\n lifetime?: \"transient\" | \"singleton\" | \"scoped\";\n\n /**\n * Constructor arguments to pass when creating a new instance.\n */\n args?: ConstructorParameters<InstantiableClass<T>>;\n\n /**\n * Parent that requested the instance.\n *\n * @internal\n */\n parent?: Service | null;\n}\n","/**\n * Mimics the JSON global object with stringify and parse methods.\n *\n * Used across the codebase via dependency injection.\n */\nexport class Json {\n public stringify(\n value: any,\n replacer?: (this: any, key: string, value: any) => any,\n space?: string | number,\n ): string {\n return JSON.stringify(value, replacer, space);\n }\n\n public parse(\n text: string,\n reviver?: (this: any, key: string, value: any) => any,\n ) {\n return JSON.parse(text, reviver);\n }\n}\n","import type { Static, TSchema } from \"./TypeProvider.ts\";\n\nexport abstract class SchemaCodec {\n /**\n * Encode the value to a string format.\n */\n public abstract encodeToString<T extends TSchema>(\n schema: T,\n value: Static<T>,\n ): string;\n\n /**\n * Encode the value to a binary format.\n */\n public abstract encodeToBinary<T extends TSchema>(\n schema: T,\n value: Static<T>,\n ): Uint8Array;\n\n /**\n * Decode string, binary, or other formats to the schema type.\n */\n public abstract decode<T>(schema: TSchema, value: unknown): T;\n}\n","import type { TSchema } from \"typebox\";\nimport { $inject } from \"../descriptors/$inject.ts\";\nimport { Json } from \"./Json.ts\";\nimport { SchemaCodec } from \"./SchemaCodec.ts\";\nimport type { Static } from \"./TypeProvider.ts\";\n\nexport class JsonSchemaCodec extends SchemaCodec {\n protected readonly json = $inject(Json);\n protected readonly encoder = new TextEncoder();\n protected readonly decoder = new TextDecoder();\n\n public encodeToString<T extends TSchema>(\n schema: T,\n value: Static<T>,\n ): string {\n return this.json.stringify(value);\n }\n\n public encodeToBinary<T extends TSchema>(\n schema: T,\n value: Static<T>,\n ): Uint8Array {\n return this.encoder.encode(this.encodeToString(schema, value));\n }\n\n public decode<T>(schema: TSchema, value: unknown): T {\n if (value instanceof Uint8Array) {\n const text = this.decoder.decode(value);\n return this.json.parse(text);\n }\n\n if (typeof value === \"string\") {\n // Only parse if it looks like JSON (starts with { or [)\n const trimmed = value.trim();\n if (trimmed.startsWith(\"{\") || trimmed.startsWith(\"[\")) {\n return this.json.parse(value);\n }\n // Return plain strings as-is\n return value as T;\n }\n\n return value as T;\n }\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","// --------------------------------------------------------------------------\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 an async iterator */\nexport function IsAsyncIterator(value) {\n return IsObject(value) && Symbol.asyncIterator in 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 an iterator */\nexport function IsIterator(value) {\n return IsObject(value) && Symbol.iterator in 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)) < 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 Unicode Grapheme Clusters */\nexport function StringGraphemeCount(value) {\n return Array.from(value).length;\n}\n// --------------------------------------------------------------------------\n// Array\n// --------------------------------------------------------------------------\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}\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// --------------------------------------------------------------------------\n// Object\n// --------------------------------------------------------------------------\n/** Returns true if this value has this property key */\nexport function HasPropertyKey(value, key) {\n return Object.prototype.hasOwnProperty.call(value, key);\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 the property keys for this object via `Object.getOwnPropertyKeys({ ... })` */\nexport function Keys(value) {\n return Object.getOwnPropertyNames(value);\n}\n/** Returns the property keys for this object via `Object.getOwnPropertyKeys({ ... })` */\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/** Tests values for deep equality */\nexport function IsDeepEqual(left, right) {\n return (IsArray(left) ? DeepEqualArray(left, right) : IsObject(left) ? DeepEqualObject(left, right) : IsEqual(left, right));\n}\n","import * as G from './guard.mjs';\n// ------------------------------------------------------------------\n// Identifier\n// ------------------------------------------------------------------\nconst identifierRegExp = /^[\\p{ID_Start}_$][\\p{ID_Continue}_$\\u200C\\u200D]*$/u;\n/** Returns true if this value is a valid JavaScript identifier */\nfunction IsIdentifier(value) {\n return identifierRegExp.test(value);\n}\n// ------------------------------------------------------------------\n// Logical\n// ------------------------------------------------------------------\nexport function And(left, right) {\n return `(${left} && ${right})`;\n}\nexport function Or(left, right) {\n return `(${left} || ${right})`;\n}\nexport function Not(expr) {\n return `!(${expr})`;\n}\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 an async iterator */\nexport function IsAsyncIterator(value) {\n return `Guard.IsAsyncIterator(${value})`;\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return `typeof ${value} === \"bigint\"`;\n}\n/** Returns true if this value is a boolean */\nexport function IsBoolean(value) {\n return `typeof ${value} === \"boolean\"`;\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 an iterator */\nexport function IsIterator(value) {\n return `Guard.IsIterator(${value})`;\n}\n/** Returns true if this value is null */\nexport function IsNull(value) {\n return `${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 And(IsObject(value), Not(IsArray(value)));\n}\n/** Returns true if this value is an object */\nexport function IsObject(value) {\n return `typeof ${value} === \"object\" && ${value} !== null`;\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return `typeof ${value} === \"string\"`;\n}\n/** Returns true if this value is symbol */\nexport function IsSymbol(value) {\n return `typeof ${value} === \"symbol\"`;\n}\n/** Returns true if this value is undefined */\nexport function IsUndefined(value) {\n return `${value} === undefined`;\n}\n// ------------------------------------------------------------------\n// Functions and Constructors\n// ------------------------------------------------------------------\nexport function IsFunction(value) {\n return `typeof ${value} === \"function\"`;\n}\nexport function IsConstructor(value) {\n return `Guard.IsConstructor(${value})`;\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// String\n// --------------------------------------------------------------------------\nexport function StringGraphemeCount(value) {\n return `Guard.StringGraphemeCount(${value})`;\n}\n// --------------------------------------------------------------------------\n// Array\n// --------------------------------------------------------------------------\nexport function Every(value, offset, params, expression) {\n return G.IsEqual(offset, '0')\n ? `${value}.every((${params[0]}, ${params[1]}) => ${expression})`\n : `((value, callback) => { for(let index = ${offset}; index < value.length; index++) if (!callback(value[index], index)) return false; return true })(${value}, (${params[0]}, ${params[1]}) => ${expression})`;\n}\n// --------------------------------------------------------------------------\n// Objects\n// --------------------------------------------------------------------------\nexport function Entries(value) {\n return `Object.entries(${value})`;\n}\nexport function Keys(value) {\n return `Object.getOwnPropertyNames(${value})`;\n}\nexport function HasPropertyKey(value, key) {\n const isProtoField = G.IsEqual(key, '\"__proto__\"') || G.IsEqual(key, '\"toString\"') || G.IsEqual(key, '\"constructor\"');\n return isProtoField ? `Object.prototype.hasOwnProperty.call(${value}, ${key})` : `${key} in ${value}`;\n}\nexport function IsDeepEqual(left, right) {\n return `Guard.IsDeepEqual(${left}, ${right})`;\n}\n// ------------------------------------------------------------------\n// Expressions\n// ------------------------------------------------------------------\nexport function ArrayLiteral(elements) {\n return `[${elements.join(', ')}]`;\n}\nexport function ArrowFunction(parameters, body) {\n return `((${parameters.join(', ')}) => ${body})`;\n}\nexport function Call(value, arguments_) {\n return `${value}(${arguments_.join(', ')})`;\n}\nexport function New(value, arguments_) {\n return `new ${value}(${arguments_.join(', ')})`;\n}\nexport function Member(left, right) {\n return `${left}${IsIdentifier(right) ? `.${right}` : `[${Constant(right)}]`}`;\n}\nexport function Constant(value) {\n return G.IsString(value) ? JSON.stringify(value) : `${value}`;\n}\nexport function Ternary(condition, true_, false_) {\n return `(${condition} ? ${true_} : ${false_})`;\n}\n// ------------------------------------------------------------------\n// Statements\n// ------------------------------------------------------------------\nexport function Statements(statements) {\n return `{ ${statements.join('; ')}; }`;\n}\nexport function ConstDeclaration(identifier, expression) {\n return `const ${identifier} = ${expression}`;\n}\nexport function If(condition, then) {\n return `if(${condition}) { ${then} }`;\n}\nexport function Return(expression) {\n return `return ${expression}`;\n}\n// ------------------------------------------------------------------\n// Logical\n// ------------------------------------------------------------------\nexport function ReduceAnd(operands) {\n return G.IsEqual(operands.length, 0) ? 'true' : operands.reduce((left, right) => And(left, right));\n}\nexport function ReduceOr(operands) {\n // deno-coverage-ignore - we never observe 0 operands\n return G.IsEqual(operands.length, 0) ? 'false' : operands.reduce((left, right) => Or(left, right));\n}\n// --------------------------------------------------------------------------\n// Arithmatic\n// --------------------------------------------------------------------------\nexport function PrefixIncrement(expression) {\n return `++${expression}`;\n}\nexport function MultipleOf(dividend, divisor) {\n return `Guard.IsMultipleOf(${dividend}, ${divisor})`;\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","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nexport function IsGuardInterface(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, 'check')\n && Guard.HasPropertyKey(value, 'errors')\n && Guard.IsFunction(value.check)\n && Guard.IsFunction(value.errors);\n}\nexport function IsGuard(value) {\n return Guard.HasPropertyKey(value, '~guard')\n && IsGuardInterface(value['~guard']);\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, 'refine')\n && Guard.HasPropertyKey(value, 'message')\n && Guard.IsFunction(value.refine)\n && Guard.IsString(value.message));\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 IsBooleanSchema(value) {\n return Guard.IsBoolean(value);\n}\n/** Returns true if this value is schema like */\nexport function IsSchema(value) {\n return IsSchemaObject(value) || IsBooleanSchema(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';\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 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 this.indices = new Set();\n this.keys = new Set();\n }\n AddIndex(index) {\n this.indices.add(index);\n return true;\n }\n AddKey(key) {\n this.keys.add(key);\n return true;\n }\n GetIndices() {\n return this.indices;\n }\n GetKeys() {\n return this.keys;\n }\n Merge(results) {\n for (const context of results) {\n context.indices.forEach(value => this.indices.add(value));\n context.keys.forEach(value => this.keys.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\nconst identifier = 'external_';\nlet resetCount = 0;\nconst state = {\n identifier: `${identifier}${resetCount}`,\n variables: []\n};\n// ------------------------------------------------------------------\n// ResetExternals\n//\n// Each reset results in a new external group identifier. This is done \n// to prevent variable name overlap when generating and evaluating\n// multiple types in the same scope.\n//\n// ------------------------------------------------------------------\nexport function ResetExternal() {\n state.identifier = `${identifier}${resetCount}`;\n state.variables = [];\n resetCount += 1;\n}\n// ------------------------------------------------------------------\n// CreateVariable\n// ------------------------------------------------------------------\nexport function CreateVariable(value) {\n const call = `${state.identifier}[${state.variables.length}]`;\n state.variables.push(value);\n return call;\n}\n// ------------------------------------------------------------------\n// GetExternals\n// ------------------------------------------------------------------\nexport function GetExternal() {\n return state;\n}\n","// deno-fmt-ignore-file\nimport * as Externals from './_externals.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// Build\n// ------------------------------------------------------------------\nexport function BuildGuard(stack, context, schema, value) {\n return E.Call(E.Member(E.Member(Externals.CreateVariable(schema), '~guard'), 'check'), [value]);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckGuard(stack, context, schema, value) {\n return schema['~guard'].check(value);\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorGuard(stack, context, schemaPath, instancePath, schema, value) {\n return schema['~guard'].check(value) || context.AddError({\n keyword: '~guard',\n schemaPath,\n instancePath,\n params: { errors: schema['~guard'].errors(value) },\n });\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\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', 'refine'), [value]));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckRefine(stack, context, schema, value) {\n return G.Every(schema['~refine'], 0, (refinement, _) => refinement.refine(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.refine(value) || context.AddError({\n keyword: '~refine',\n schemaPath,\n instancePath,\n params: { index, message: refinement.message },\n });\n });\n}\n","let index = 0;\n/** Returns a Unique Variable Name */\nexport function Unique() {\n return `var_${index++}`;\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, ErrorSchema } 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 = BuildSchema(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 || (CheckSchema(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 (ErrorSchema(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 { BuildSchema, CheckSchema, ErrorSchema } 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 = BuildSchema(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 (CheckSchema(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 (ErrorSchema(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: instancePath,\n params: { additionalProperties },\n });\n}\n","// deno-fmt-ignore-file\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema } from './schema.mjs';\n// ------------------------------------------------------------------\n// Reducer\n//\n// This function is used to generate an reducer evaluation context \n// for the allOf, anyOf, oneOf and not keywords. The reducer mechansism\n// is required from 2019-09 onwards to gather evaluated keys and indices\n// for the unevaluatedItems and unevaluatedProperties keywords.\n//\n// ------------------------------------------------------------------\n//\n// const context = new Context() // exterior\n//\n// (() => {\n// const results = []\n//\n// const context_0 = context.Clone()\n// const context_1 = context.Clone()\n// const context_2 = context.Clone()\n// const context_3 = context.Clone()\n// \n// const condition_0 = ((context) => <subschema>)(context_0)\n// const condition_1 = ((context) => <subschema>)(context_1)\n// const condition_2 = ((context) => <subschema>)(context_2)\n// const condition_3 = ((context) => <subschema>)(context_3)\n// \n// if(condition_0) results.push(context_0)\n// if(condition_1) results.push(context_1)\n// if(condition_2) results.push(context_2)\n// if(condition_3) results.push(context_3)\n//\n// return <check> && context.Merge(results)\n// })()\n//\n// ------------------------------------------------------------------\nexport function Reducer(stack, context, schemas, value, check) {\n const results = E.ConstDeclaration('results', '[]');\n const context_n = schemas.map((_schema, index) => E.ConstDeclaration(`context_${index}`, E.New('CheckContext', [])));\n const condition_n = schemas.map((schema, index) => E.ConstDeclaration(`condition_${index}`, E.Call(E.ArrowFunction(['context'], BuildSchema(stack, context, schema, value)), [`context_${index}`])));\n const checks = schemas.map((_schema, index) => E.If(`condition_${index}`, E.Call(E.Member('results', 'push'), [`context_${index}`])));\n const returns = E.Return(E.And(check, context.Merge('results')));\n return E.Call(E.ArrowFunction([], E.Statements([results, ...context_n, ...condition_n, ...checks, returns])), []);\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, index) => {\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 BuildBooleanSchema(stack, context, schema, value) {\n return schema ? E.Constant(true) : E.Constant(false);\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckBooleanSchema(stack, context, schema, value) {\n return schema;\n}\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport function ErrorBooleanSchema(stack, context, schemaPath, instancePath, schema, value) {\n return CheckBooleanSchema(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 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)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/;\n/**\n * Returns true if the value is a Duration string\n * @source ajv-formats\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/** Returns true if the value is an Email */\nexport function IsEmail(value) {\n return Email.test(value);\n}\n","const Hostname = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\n/** Returns true if the value is a Hostname */\nexport function IsHostname(value) {\n return Hostname.test(value);\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/** Returns true if the value is a Idn Email */\nexport function IsIdnEmail(value) {\n return IdnEmail.test(value);\n}\n","function IsValidAdjacentForKatakanaMiddleDot(char) {\n const codePoint = char.codePointAt(0);\n // deno-coverage-ignore - internal condition never reached\n if (codePoint === undefined)\n return false;\n return ((codePoint >= 0x3040 && codePoint <= 0x309F) || // Hiragana\n (codePoint >= 0x30A0 && codePoint <= 0x30FF && codePoint !== 0x30FB) || // Katakana (excluding U+30FB)\n (codePoint >= 0x4E00 && codePoint <= 0x9FFF) // Han (CJK Unified Ideographs)\n );\n}\n/**\n * Returns true if the value is a Hostname\n * @specification\n */\nexport function IsIdnHostname(value) {\n if (value.length === 0)\n return false;\n if (value.includes(' '))\n return false;\n // Allowed label separators per RFC3490: U+002E, U+3002, U+FF0E, U+FF61.\n const separators = /[\\u002E\\u3002\\uFF0E\\uFF61]/g;\n // Normalize (NFC) and replace allowed separators with a dot.\n const normalized = value.normalize('NFC').replace(separators, '.');\n if (normalized.length > 253)\n return false;\n // Split into labels; disallow empty labels.\n const labels = normalized.split('.');\n if (labels.some((label) => label.length === 0))\n return false;\n for (const label of labels) {\n // Each label must be ≤ 63 characters.\n if (label.length > 63)\n return false;\n // Labels must not begin or end with a hyphen.\n if (label.startsWith('-') || label.endsWith('-'))\n return false;\n // A-label (punycode) checks.\n if (/^xn--/i.test(label)) {\n const punycodePart = label.slice(4);\n if (punycodePart.length < 2)\n return false;\n if (punycodePart.includes('---'))\n return false;\n continue;\n }\n // U-label: Reject if any disallowed code points occur.\n // Disallowed: U+302E, U+302F, U+3031, U+3032, U+3033, U+3034, U+3035, U+303B, U+0640, U+07FA.\n if (/[\\u302E\\u302F\\u3031\\u3032\\u3033\\u3034\\u3035\\u303B\\u0640\\u07FA]/.test(label)) {\n return false;\n }\n // Disallow labels starting with certain combining marks.\n const firstChar = label.charAt(0);\n if (/[\\u0903\\u0300\\u0488]/.test(firstChar))\n return false;\n // Check each character within the label.\n for (let i = 0; i < label.length; i++) {\n const char = label.charAt(i);\n // --- MIDDLE DOT (U+00B7) ---\n // Must be flanked on both sides by \"l\" or \"L\".\n if (char === '\\u00B7') {\n if (i === 0 || i === label.length - 1)\n return false;\n const prev = label.charAt(i - 1);\n const next = label.charAt(i + 1);\n if (!/^[lL]$/.test(prev) || !/^[lL]$/.test(next))\n return false;\n }\n // --- KATAKANA MIDDLE DOT (U+30FB) ---\n if (char === '\\u30FB') {\n // If label is a single character, it's invalid.\n if (label.length === 1)\n return false;\n if (i === 0) {\n // At beginning: check following character.\n const next = label.charAt(i + 1);\n if (!IsValidAdjacentForKatakanaMiddleDot(next))\n return false;\n }\n else {\n // In the middle: check both adjacent characters.\n const prev = label.charAt(i - 1);\n const next = label.charAt(i + 1);\n if (!IsValidAdjacentForKatakanaMiddleDot(prev) || !IsValidAdjacentForKatakanaMiddleDot(next)) {\n return false;\n }\n }\n }\n // --- Greek Keraia (U+0375) ---\n if (char === '\\u0375') {\n if (i === label.length - 1)\n return false;\n const next = label.charAt(i + 1);\n if (!/[\\u0370-\\u03FF]/.test(next))\n return false;\n }\n // --- Hebrew GERESH (U+05F3) and GERSHAYIM (U+05F4) ---\n if (char === '\\u05F3' || char === '\\u05F4') {\n if (i === 0)\n return false;\n const prev = label.charAt(i - 1);\n if (!/[\\u05D0-\\u05EA]/.test(prev))\n return false;\n }\n // --- ZERO WIDTH JOINER (U+200D) ---\n if (char === '\\u200D') {\n if (i === 0)\n return false;\n const prev = label.charAt(i - 1);\n if (prev !== '\\u094D')\n return false;\n }\n // ZERO WIDTH NON-JOINER (U+200C) is allowed.\n }\n // --- Arabic-Indic digits vs. Extended Arabic-Indic digits ---\n let hasArabicIndic = false;\n let hasExtendedArabicIndic = false;\n for (let i = 0; i < label.length; i++) {\n const char = label.charAt(i);\n if (/[\\u0660-\\u0669]/.test(char))\n hasArabicIndic = true;\n if (/[\\u06F0-\\u06F9]/.test(char))\n hasExtendedArabicIndic = true;\n }\n if (hasArabicIndic && hasExtendedArabicIndic)\n return false;\n }\n return true;\n}\n","const IPv4 = /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/;\n/**\n * Returns true if the value is a IPV4 address\n * @source ajv-formats\n * @specification http://tools.ietf.org/html/rfc2673#section-3.2\n */\nexport function IsIPv4(value) {\n return IPv4.test(value);\n}\n","const IPv6 = /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i;\n/**\n * Returns true if the value is a IPV6 address\n * @source ajv-formats\n * @specification http://tools.ietf.org/html/rfc2373#section-2.2\n */\nexport function IsIPv6(value) {\n return IPv6.test(value);\n}\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","const UriReference = /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i;\n/**\n * Returns true if the value is a uri reference\n * @specification\n * @source ajv-formats\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","const Uri = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i;\n/**\n * Returns true if the value is a uri\n * @specification\n * @source ajv-formats\n */\nexport function IsUri(value) {\n return Uri.test(value);\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 = /^(?:urn: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\n * @source ajv-formats\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","export * from './_registry.mjs';\nexport * from './date-time.mjs';\nexport * from './date.mjs';\nexport * from './duration.mjs';\nexport * from './email.mjs';\nexport * from './hostname.mjs';\nexport * from './idn-email.mjs';\nexport * from './idn-hostname.mjs';\nexport * from './ipv4.mjs';\nexport * from './ipv6.mjs';\nexport * from './iri-reference.mjs';\nexport * from './iri.mjs';\nexport * from './json-pointer-uri-fragment.mjs';\nexport * from './json-pointer.mjs';\nexport * from './regex.mjs';\nexport * from './relative-json-pointer.mjs';\nexport * from './time.mjs';\nexport * from './uri-reference.mjs';\nexport * from './uri-template.mjs';\nexport * from './uri.mjs';\nexport * from './url.mjs';\nexport * from './uuid.mjs';\n","export * from './format.mjs';\nexport * as Format from './format.mjs';\nimport * as Format from './format.mjs';\nexport default Format;\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 { BuildSchema, CheckSchema, ErrorSchema } 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 = BuildSchema(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 || (CheckSchema(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 || (ErrorSchema(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 = BuildSchema(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 CheckSchema(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 ErrorSchema(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.IsLessEqualThan(E.StringGraphemeCount(value), E.Constant(schema.maxLength));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMaxLength(stack, context, schema, value) {\n return G.IsLessEqualThan(G.StringGraphemeCount(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.IsGreaterEqualThan(E.StringGraphemeCount(value), E.Constant(schema.minLength));\n}\n// ------------------------------------------------------------------\n// Check\n// ------------------------------------------------------------------\nexport function CheckMinLength(stack, context, schema, value) {\n return G.IsGreaterEqualThan(G.StringGraphemeCount(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) : 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) : 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 { BuildSchema, CheckSchema, ErrorSchema } 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));\n const notKey = E.Not(E.Call(E.Member(regexp, 'test'), [key]));\n const isSchema = BuildSchema(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);\n return G.Every(G.Entries(value), 0, ([key, prop]) => {\n return !regexp.test(key) || CheckSchema(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);\n return G.EveryAll(G.Entries(value), 0, ([key, value]) => {\n const nextInstancePath = `${instancePath}/${key}`;\n const notKey = !regexp.test(key);\n return notKey || ErrorSchema(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 { BuildSchema, CheckSchema, ErrorSchema } 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 = BuildSchema(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 || (CheckSchema(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 || (ErrorSchema(stack, context, nextSchemaPath, nextInstancePath, schema, value[index]) && context.AddIndex(index));\n });\n}\n","import { Guard } from '../../guard/index.mjs';\n// Internal mutable state\nconst settings = {\n immutableTypes: false,\n maxErrors: 8,\n useEval: true,\n exactOptionalPropertyTypes: false,\n enumerableKind: false\n};\n/** Resets system settings to defaults */\nexport function Reset() {\n settings.immutableTypes = false;\n settings.maxErrors = 8;\n settings.useEval = true;\n settings.exactOptionalPropertyTypes = false;\n settings.enumerableKind = false;\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","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 { BuildSchema, CheckSchema, ErrorSchema } 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 = BuildSchema(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) || (CheckSchema(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) || (ErrorSchema(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.$recursiveRef) ?? 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.$recursiveRef) ?? 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.$recursiveRef) ?? 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.$ref) ?? 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.$ref) ?? 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.$ref) ?? 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, 'asyncIterator') ? E.IsAsyncIterator(value) :\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, 'iterator') ? E.IsIterator(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, 'asyncIterator') ? G.IsAsyncIterator(value) :\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, 'iterator') ? G.IsIterator(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 { BuildGuard, CheckGuard, ErrorGuard } from './_guard.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 { BuildBooleanSchema, CheckBooleanSchema, ErrorBooleanSchema } 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 { 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 BuildSchema(stack, context, schema, value) {\n stack.Push(schema);\n const conditions = [];\n if (Schema.IsBooleanSchema(schema))\n return BuildBooleanSchema(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.IsFormat(schema))\n constraints.push(BuildFormat(stack, context, schema, value));\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.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.IsRecursiveRef(schema))\n conditions.push(BuildRecursiveRef(stack, context, schema, value));\n if (Schema.IsRef(schema))\n conditions.push(BuildRef(stack, context, schema, value));\n if (Schema.IsGuard(schema))\n conditions.push(BuildGuard(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 CheckSchema(stack, context, schema, value) {\n stack.Push(schema);\n const result = Schema.IsBooleanSchema(schema) ? CheckBooleanSchema(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.IsFormat(schema) || CheckFormat(stack, context, schema, value)) &&\n (!Schema.IsMaxLength(schema) || CheckMaxLength(stack, context, schema, value)) &&\n (!Schema.IsMinLength(schema) || CheckMinLength(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.IsRecursiveRef(schema) || CheckRecursiveRef(stack, context, schema, value)) &&\n (!Schema.IsRef(schema) || CheckRef(stack, context, schema, value)) &&\n (!Schema.IsGuard(schema) || CheckGuard(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 ErrorSchema(stack, context, schemaPath, instancePath, schema, value) {\n stack.Push(schema);\n const result = (Schema.IsBooleanSchema(schema)) ? ErrorBooleanSchema(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.IsFormat(schema) || ErrorFormat(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMaxLength(schema) || ErrorMaxLength(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsMinLength(schema) || ErrorMinLength(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.IsRecursiveRef(schema) || ErrorRecursiveRef(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsRef(schema) || ErrorRef(stack, context, schemaPath, instancePath, schema, value)) &\n +(!Schema.IsGuard(schema) || ErrorGuard(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 * as Schema from '../types/index.mjs';\nimport { Hashing } from '../../system/hashing/index.mjs';\nimport { EmitGuard as E } from '../../guard/index.mjs';\nimport { BuildSchema } from './schema.mjs';\nconst functions = new Map();\n// ------------------------------------------------------------------\n// CreateCallExpression\n// ------------------------------------------------------------------\nfunction CreateCallExpression(context, schema, hash, value) {\n return context.UseUnevaluated()\n ? E.Call(`check_${hash}`, ['context', value])\n : E.Call(`check_${hash}`, [value]);\n}\n// ------------------------------------------------------------------\n// CreateFunctionExpression\n// ------------------------------------------------------------------\nfunction CreateFunctionExpression(stack, context, schema, hash) {\n const expression = BuildSchema(stack, context, schema, 'value');\n return context.UseUnevaluated()\n ? E.ConstDeclaration(`check_${hash}`, E.ArrowFunction(['context', 'value'], expression))\n : E.ConstDeclaration(`check_${hash}`, E.ArrowFunction(['value'], expression));\n}\n// ------------------------------------------------------------------\n// ResetFunctions\n// ------------------------------------------------------------------\nexport function ResetFunctions() {\n functions.clear();\n}\n// ------------------------------------------------------------------\n// GetFunctions\n// ------------------------------------------------------------------\nexport function GetFunctions() {\n return [...functions.values()];\n}\n// ------------------------------------------------------------------\n// CreateFunction\n// ------------------------------------------------------------------\nexport function CreateFunction(stack, context, schema, value) {\n const hash = Schema.IsSchemaObject(schema) ? Hashing.Hash({ __baseURL: stack.BaseURL().href, ...schema }) : Hashing.Hash(schema);\n const call = CreateCallExpression(context, schema, hash, value);\n if (functions.has(hash))\n return call;\n functions.set(hash, '');\n functions.set(hash, CreateFunctionExpression(stack, context, schema, hash));\n return call;\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}\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) ? 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 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 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 if (Guard.IsEqual(absoluteAnchor.href, absoluteRef.href))\n return schema;\n return undefined;\n}\n// ------------------------------------------------------------------\n// Match: Hash\n// ------------------------------------------------------------------\nfunction MatchHash(schema, base, ref) {\n if (ref.href.endsWith('#'))\n return schema;\n return ref.hash.startsWith('#')\n ? Pointer.Get(schema, decodeURIComponent(ref.hash.slice(1)))\n : undefined;\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 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 base = Schema.IsSchemaObject(schema) && Schema.IsId(schema) ? new URL(schema.$id, base.href) : base;\n if (Schema.IsSchemaObject(schema)) {\n const result = Match(schema, base, ref);\n if (!Guard.IsUndefined(result))\n return result;\n }\n if (Guard.IsArray(schema))\n return FromArray(schema, base, ref);\n if (Guard.IsObject(schema))\n return FromObject(schema, base, ref);\n return undefined;\n}\n// ------------------------------------------------------------------\n// Ref\n// ------------------------------------------------------------------\nexport function Ref(schema, ref) {\n const defaultBase = new URL('memory://root');\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","// deno-fmt-ignore-file\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 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('root', 'memory://'));\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 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 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 // ----------------------------------------------------------------\n // Ref\n // ----------------------------------------------------------------\n FromContext(ref) {\n return G.HasPropertyKey(this.context, ref) ? this.context[ref] : undefined;\n }\n FromRef(ref) {\n return !ref.startsWith('#')\n ? Resolve.Ref(this.schema, ref)\n : Resolve.Ref(this.Base(), ref);\n }\n Ref(ref) {\n return this.FromContext(ref) ?? this.FromRef(ref);\n }\n // ----------------------------------------------------------------\n // RecursiveRef\n // ----------------------------------------------------------------\n RecursiveRef(recursiveRef) {\n if (Schema.IsRecursiveAnchorTrue(this.Base())) {\n return Resolve.Ref(this.recursiveAnchors[0], recursiveRef);\n }\n return Resolve.Ref(this.Base(), recursiveRef);\n }\n}\n","import { Settings } from '../settings/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nlet supported = undefined;\n// ------------------------------------------------------------------\n// TryEval\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - catch is environment dependent\nfunction TryEval() {\n try {\n new globalThis.Function('null')();\n return true;\n }\n catch {\n return false;\n }\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// CanEvaluate\n// ------------------------------------------------------------------\n/** Returns true if the environment supports dynamic JavaScript evaluation */\nexport function CanEvaluate() {\n if (Guard.IsUndefined(supported))\n supported = TryEval();\n return supported && Settings.Get().useEval;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Environment } from '../system/environment/index.mjs';\nimport { Hashing } from '../system/hashing/index.mjs';\nimport { Guard } from '../guard/index.mjs';\nimport { Format } from '../format/index.mjs';\nimport * as Engine from './engine/index.mjs';\n// ------------------------------------------------------------------\n// CreateCode\n// ------------------------------------------------------------------\nfunction CreateCode(build) {\n const functions = build.Functions().join(';\\n');\n const statements = build.UseUnevaluated()\n ? ['const context = new CheckContext({}, {})', `return ${build.Call()}`]\n : [`return ${build.Call()}`];\n return `${functions}; return (value) => { ${statements.join('; ')} }`;\n}\n// ------------------------------------------------------------------\n// CreateEvaluatedCheck\n// ------------------------------------------------------------------\nfunction CreateEvaluatedCheck(build, code) {\n const factory = new globalThis.Function('CheckContext', 'Guard', 'Format', 'Hashing', build.External().identifier, code);\n return factory(Engine.CheckContext, Guard, Format, Hashing, build.External().variables);\n}\n// ------------------------------------------------------------------\n// CreateDynamicCheck\n// ------------------------------------------------------------------\nfunction CreateDynamicCheck(build) {\n const stack = new Engine.Stack(build.Context(), build.Schema());\n const context = new Engine.CheckContext();\n return (value) => Engine.CheckSchema(stack, context, build.Schema(), value);\n}\n// ------------------------------------------------------------------\n// CreateCheck\n// ------------------------------------------------------------------\nfunction CreateCheck(build, code) {\n return Environment.CanEvaluate()\n ? CreateEvaluatedCheck(build, code)\n : CreateDynamicCheck(build);\n}\n// ------------------------------------------------------------------\n// BuildResult\n// ------------------------------------------------------------------\nexport class BuildResult {\n constructor(context, schema, external, functions, call, useUnevaluated) {\n this.context = context;\n this.schema = schema;\n this.external = external;\n this.functions = functions;\n this.call = call;\n this.useUnevaluated = useUnevaluated;\n }\n /** Returns the Context used for this build */\n Context() {\n return this.context;\n }\n /** Returns the Schema used for this build */\n Schema() {\n return this.schema;\n }\n /** Returns true if this build requires a Unevaluated context */\n UseUnevaluated() {\n return this.useUnevaluated;\n }\n /** Returns external variables */\n External() {\n return this.external;\n }\n /** Returns check functions */\n Functions() {\n return this.functions;\n }\n /** Return entry function call. */\n Call() {\n return this.call;\n }\n /** Evaluates the build into a validation function */\n Evaluate() {\n const Code = CreateCode(this);\n const Check = CreateCheck(this, Code);\n return { IsEvaluated: Environment.CanEvaluate(), Code, Check };\n }\n}\n/** Builds a schema into a optimized runtime validator */\nexport function Build(...args) {\n const [context, schema] = Arguments.Match(args, {\n 2: (context, schema) => [context, schema],\n 1: (schema) => [{}, schema]\n });\n Engine.ResetExternal();\n Engine.ResetFunctions();\n const stack = new Engine.Stack(context, schema);\n const build = new Engine.BuildContext(Engine.HasUnevaluated(context, schema));\n const call = Engine.CreateFunction(stack, build, schema, 'value');\n const functions = Engine.GetFunctions();\n const externals = Engine.GetExternal();\n return new BuildResult(context, schema, externals, functions, call, build.UseUnevaluated());\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\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 '~guard': return `must match check function`;\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 { 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","/** TypeBox instantiation metrics */\nexport const Metrics = {\n assign: 0,\n create: 0,\n clone: 0,\n discard: 0,\n update: 0\n};\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","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Metrics } from './metrics.mjs';\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\nfunction IsGuard(value) {\n return Guard.IsObject(value) && Guard.HasPropertyKey(value, '~guard');\n}\nfunction FromGuard(value) {\n return value; // non-clonable\n}\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\nfunction FromArray(value) {\n return value.map((value) => FromValue(value));\n}\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\nfunction FromObject(value) {\n const result = {};\n const descriptors = Object.getOwnPropertyDescriptors(value);\n for (const key of Object.keys(descriptors)) {\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// RegExp\n// ------------------------------------------------------------------\nfunction FromRegExp(value) {\n return new RegExp(value.source, value.flags);\n}\n// ------------------------------------------------------------------\n// RegExp\n// ------------------------------------------------------------------\nfunction FromUnknown(value) {\n return value;\n}\n// ------------------------------------------------------------------\n// Value\n// ------------------------------------------------------------------\nfunction FromValue(value) {\n return (value instanceof RegExp ? FromRegExp(value) :\n IsGuard(value) ? FromGuard(value) :\n Guard.IsArray(value) ? FromArray(value) :\n Guard.IsObject(value) ? FromObject(value) :\n FromUnknown(value));\n}\n/**\n * Clones a value using the TypeBox type cloning strategy. This function preserves non-enumerable\n * properties from the source value. This is to ensure cloned types retain discriminable\n * hidden properties.\n */\nexport function Clone(value) {\n Metrics.clone += 1;\n return FromValue(value);\n}\n","// deno-fmt-ignore-file\nimport { Settings } from '../settings/index.mjs';\nimport { Metrics } from './metrics.mjs';\nfunction Merge(left, right, configuration = {}) {\n const descriptor = { configurable: true, writable: true, enumerable: true, ...configuration };\n for (const key of Object.keys(right)) {\n Object.defineProperty(left, key, { ...descriptor, value: right[key] });\n }\n return left;\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 withHidden = Merge({}, hidden, { enumerable: settings.enumerableKind });\n const withEnumerable = Merge(withHidden, enumerable);\n const withOptions = Merge(withEnumerable, options);\n return settings.immutableTypes ? Object.freeze(withOptions) : withOptions;\n}\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","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Action\n// ------------------------------------------------------------------\n/** Creates an OptionalAddAction. */\nexport function OptionalAddAction(type) {\n return Memory.Create({ ['~kind']: 'OptionalAddAction' }, { type }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if this value is a OptionalAddAction. */\nexport function IsOptionalAddAction(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, '~kind')\n && Guard.HasPropertyKey(value, 'type')\n && Guard.IsEqual(value['~kind'], 'OptionalAddAction')\n && IsSchema(value.type);\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a OptionalRemoveAction. */\nexport function OptionalRemoveAction(type) {\n return Memory.Create({ ['~kind']: 'OptionalRemoveAction' }, { type }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if this value is a OptionalRemoveAction. */\nexport function IsOptionalRemoveAction(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, '~kind')\n && Guard.HasPropertyKey(value, 'type')\n && Guard.IsEqual(value['~kind'], 'OptionalRemoveAction')\n && IsSchema(value.type);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Action\n// ------------------------------------------------------------------\n/** Creates a ReadonlyAddAction. */\nexport function ReadonlyAddAction(type) {\n return Memory.Create({ ['~kind']: 'ReadonlyAddAction' }, { type }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if this value is a ReadonlyAddAction. */\nexport function IsReadonlyAddAction(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, '~kind')\n && Guard.HasPropertyKey(value, 'type')\n && Guard.IsEqual(value['~kind'], 'ReadonlyAddAction')\n && IsSchema(value.type);\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a ReadonlyRemoveAction. */\nexport function ReadonlyRemoveAction(type) {\n return Memory.Create({ ['~kind']: 'ReadonlyRemoveAction' }, { type }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if this value is a ReadonlyRemoveAction. */\nexport function IsReadonlyRemoveAction(value) {\n return Guard.IsObject(value)\n && Guard.HasPropertyKey(value, '~kind')\n && Guard.HasPropertyKey(value, 'type')\n && Guard.IsEqual(value['~kind'], 'ReadonlyRemoveAction')\n && IsSchema(value.type);\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' }, { 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 { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n/** Removes Immutable from the given type. */\nexport function ImmutableRemove(type) {\n return Memory.Discard(type, ['~immutable']);\n}\n/** Adds Immutable to the given type. */\nexport function ImmutableAdd(type) {\n return Memory.Update(type, { '~immutable': true }, {});\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Applies an Immutable modifier to the given type. */\nexport function Immutable(type) {\n return ImmutableAdd(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 { Guard } from '../../guard/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsSchema } from './schema.mjs';\n/** Removes Optional from the given type. */\nexport function OptionalRemove(type) {\n const result = Memory.Discard(type, ['~optional']);\n return result;\n}\n/** Adds Optional to the given type. */\nexport function OptionalAdd(type) {\n return Memory.Update(type, { '~optional': true }, {});\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Applies an Optional modifier to the given type. */\nexport function Optional(type) {\n return OptionalAdd(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 { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n/** Removes a Readonly property modifier from the given type. */\nexport function ReadonlyRemove(type) {\n return Memory.Discard(type, ['~readonly']);\n}\n/** Adds a Readonly property modifier to the given type. */\nexport function ReadonlyAdd(type) {\n return Memory.Update(type, { '~readonly': true }, {});\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Applies an Readonly property modifier to the given type. */\nexport function Readonly(type) {\n return ReadonlyAdd(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// Factory\n// ------------------------------------------------------------------\n/** Creates an Array type. */\nexport function Array(items, options) {\n return Memory.Create({ '~kind': 'Array' }, { type: 'array', items }, options);\n}\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 AsyncIterator type. */\nexport function AsyncIterator(iteratorItems, options) {\n return Memory.Create({ '~kind': 'AsyncIterator' }, { type: 'asyncIterator', iteratorItems }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TAsyncIterator */\nexport function IsAsyncIterator(value) {\n return IsKind(value, 'AsyncIterator');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TAsyncIterator. */\nexport function AsyncIteratorOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'iteratorItems']);\n}\n","// deno-fmt-ignore-file\nimport { Settings } from '../../system/settings/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Type.Base<...>\n// ------------------------------------------------------------------\nfunction BaseProperty(value) {\n return {\n enumerable: Settings.Get().enumerableKind,\n writable: false,\n configurable: false,\n value\n };\n}\n/** Base class for creating extension types. */\nexport class Base {\n constructor() {\n globalThis.Object.defineProperty(this, '~kind', BaseProperty('Base'));\n globalThis.Object.defineProperty(this, '~guard', BaseProperty({\n check: (value) => this.Check(value),\n errors: (value) => this.Errors(value)\n }));\n }\n /** Checks a value or returns false if invalid */\n Check(value) {\n return true;\n }\n /** Returns errors for a value. Return an empty array if valid. */\n Errors(value) {\n return [];\n }\n /** Converts a value into this type */\n Convert(value) {\n return value;\n }\n /** Cleans a value according to this type */\n Clean(value) {\n return value;\n }\n /** Returns a default value for this type */\n Default(value) {\n return value;\n }\n /** Creates a new instance of this type */\n Create() {\n throw new Error('Create not implemented');\n }\n /** Clones this type */\n Clone() {\n throw Error('Clone not implemented');\n }\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a Base type. */\nexport function IsBase(value) {\n return IsKind(value, 'Base');\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}\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-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\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 { 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 { 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\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 { 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\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-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nexport function IsTypeScriptEnumLike(value) {\n return Guard.IsObjectNotArray(value);\n}\nexport function TypeScriptEnumToEnumValues(type) {\n const keys = Guard.Keys(type).filter((key) => isNaN(key));\n return keys.reduce((result, key) => [...result, type[key]], []);\n}\n","// deno-fmt-ignore-file\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/** 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-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Arabic (World) - ISO 639-1 language code 'ar' with UN M.49 region code '001' for World. */\nexport function ar_001(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'يجب ألا يحتوي على خصائص إضافية';\n case 'anyOf': return 'يجب أن يتطابق مع مخطط في أيٍ مما يلي';\n case 'boolean': return 'المخطط خاطئ';\n case 'const': return 'يجب أن يكون مساويًا للثابت';\n case 'contains': return 'يجب أن يحتوي على عنصر واحد صحيح على الأقل';\n case 'dependencies': return `يجب أن يحتوي على الخصائص ${error.params.dependencies.join(', ')} عندما تكون الخاصية ${error.params.property} موجودة`;\n case 'dependentRequired': return `يجب أن يحتوي على الخصائص ${error.params.dependencies.join(', ')} عندما تكون الخاصية ${error.params.property} موجودة`;\n case 'enum': return 'يجب أن يكون مساويًا لإحدى القيم المسموح بها';\n case 'exclusiveMaximum': return `يجب أن يكون ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `يجب أن يكون ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `يجب أن يتطابق مع التنسيق \"${error.params.format}\"`;\n case 'if': return `يجب أن يتطابق مع مخطط \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `يجب ألا يحتوي على أكثر من ${error.params.limit} عناصر`;\n case 'maxLength': return `يجب ألا يحتوي على أكثر من ${error.params.limit} أحرف`;\n case 'maxProperties': return `يجب ألا يحتوي على أكثر من ${error.params.limit} خصائص`;\n case 'maximum': return `يجب أن يكون ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `يجب ألا يحتوي على أقل من ${error.params.limit} عناصر`;\n case 'minLength': return `يجب ألا يحتوي على أقل من ${error.params.limit} أحرف`;\n case 'minProperties': return `يجب ألا يحتوي على أقل من ${error.params.limit} خصائص`;\n case 'minimum': return `يجب أن يكون ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `يجب أن يكون مضاعفًا لـ ${error.params.multipleOf}`;\n case 'not': return 'يجب ألا يكون صالحًا';\n case 'oneOf': return 'يجب أن يتطابق مع مخطط واحد بالضبط في واحد مما يلي';\n case 'pattern': return `يجب أن يتطابق مع النمط \"${error.params.pattern}\"`;\n case 'propertyNames': return `أسماء الخصائص ${error.params.propertyNames.join(', ')} غير صالحة`;\n case 'required': return `يجب أن يحتوي على الخصائص المطلوبة ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `يجب أن يكون ${error.params.type}` : `يجب أن يكون إما ${error.params.type.join(' أو ')}`;\n case 'unevaluatedItems': return 'يجب ألا يحتوي على عناصر غير مقيمة';\n case 'unevaluatedProperties': return 'يجب ألا يحتوي على خصائص غير مقيمة';\n case 'uniqueItems': return `يجب ألا يحتوي على عناصر مكررة`;\n case '~guard': return `يجب أن يتطابق مع دالة الفحص`;\n case '~refine': return error.params.message;\n default: return 'حدث خطأ غير معروف في التحقق من الصحة';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Bengali (Bangladesh) - ISO 639-1 language code 'bn' with ISO 3166-1 alpha-2 country code 'BD' for Bangladesh. */\nexport function bn_BD(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'অতিরিক্ত বৈশিষ্ট্য থাকতে পারবে না';\n case 'anyOf': return 'anyOf-এর একটি স্কিমার সাথে মিলতে হবে';\n case 'boolean': return 'স্কিমা মিথ্যা';\n case 'const': return 'ধ্রুবকের সমান হতে হবে';\n case 'contains': return 'অন্তত 1টি বৈধ আইটেম থাকতে হবে';\n case 'dependencies': return `যখন ${error.params.property} বৈশিষ্ট্য বিদ্যমান থাকে, তখন ${error.params.dependencies.join(', ')} বৈশিষ্ট্য থাকতে হবে`;\n case 'dependentRequired': return `যখন ${error.params.property} বৈশিষ্ট্য বিদ্যমান থাকে, তখন ${error.params.dependencies.join(', ')} বৈশিষ্ট্য থাকতে হবে`;\n case 'enum': return 'অনুমোদিত মানগুলির একটির সমান হতে হবে';\n case 'exclusiveMaximum': return `অবশ্যই ${error.params.comparison} ${error.params.limit} হতে হবে`;\n case 'exclusiveMinimum': return `অবশ্যই ${error.params.comparison} ${error.params.limit} হতে হবে`;\n case 'format': return `অবশ্যই \"${error.params.format}\" ফরম্যাটের সাথে মিলতে হবে`;\n case 'if': return `অবশ্যই \"${error.params.failingKeyword}\" স্কিমার সাথে মিলতে হবে`;\n case 'maxItems': return `${error.params.limit}টির বেশি আইটেম থাকতে পারবে না`;\n case 'maxLength': return `${error.params.limit}টির বেশি অক্ষর থাকতে পারবে না`;\n case 'maxProperties': return `${error.params.limit}টির বেশি বৈশিষ্ট্য থাকতে পারবে না`;\n case 'maximum': return `অবশ্যই ${error.params.comparison} ${error.params.limit} হতে হবে`;\n case 'minItems': return `${error.params.limit}টির কম আইটেম থাকতে পারবে না`;\n case 'minLength': return `${error.params.limit}টির কম অক্ষর থাকতে পারবে না`;\n case 'minProperties': return `${error.params.limit}টির কম বৈশিষ্ট্য থাকতে পারবে না`;\n case 'minimum': return `অবশ্যই ${error.params.comparison} ${error.params.limit} হতে হবে`;\n case 'multipleOf': return `${error.params.multipleOf}-এর গুণিতক হতে হবে`;\n case 'not': return 'বৈধ হতে পারবে না';\n case 'oneOf': return 'oneOf-এর শুধুমাত্র একটি স্কিমার সাথে মিলতে হবে';\n case 'pattern': return `অবশ্যই \"${error.params.pattern}\" প্যাটার্নের সাথে মিলতে হবে`;\n case 'propertyNames': return `বৈশিষ্ট্য নাম ${error.params.propertyNames.join(', ')} অবৈধ`;\n case 'required': return `প্রয়োজনীয় বৈশিষ্ট্য ${error.params.requiredProperties.join(', ')} থাকতে হবে`;\n case 'type': return typeof error.params.type === 'string' ? `অবশ্যই ${error.params.type} হতে হবে` : `অবশ্যই ${error.params.type.join(' অথবা ')} হতে হবে`;\n case 'unevaluatedItems': return 'অবমূল্যায়িত আইটেম থাকতে পারবে না';\n case 'unevaluatedProperties': return 'অবমূল্যায়িত বৈশিষ্ট্য থাকতে পারবে না';\n case 'uniqueItems': return `অনুলিপি আইটেম থাকতে পারবে না`;\n case '~guard': return `চেক ফাংশনের সাথে মেলাতে হবে`;\n case '~refine': return error.params.message;\n default: return 'একটি অজানা বৈধকরণ ত্রুটি ঘটেছে';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Czech (Czech Republic) - ISO 639-1 language code 'cs' with ISO 3166-1 alpha-2 country code 'CZ' for Czech Republic. */\nexport function cs_CZ(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'nesmí mít další vlastnosti';\n case 'anyOf': return 'musí odpovídat schématu v anyOf';\n case 'boolean': return 'schéma je nepravdivé';\n case 'const': return 'musí být rovno konstantě';\n case 'contains': return 'musí obsahovat alespoň 1 platnou položku';\n case 'dependencies': return `musí mít vlastnosti ${error.params.dependencies.join(', ')}, pokud je vlastnost ${error.params.property} přítomna`;\n case 'dependentRequired': return `musí mít vlastnosti ${error.params.dependencies.join(', ')}, pokud je vlastnost ${error.params.property} přítomna`;\n case 'enum': return 'musí být rovno jedné z povolených hodnot';\n case 'exclusiveMaximum': return `musí být ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `musí být ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `musí odpovídat formátu \"${error.params.format}\"`;\n case 'if': return `musí odpovídat schématu \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `nesmí mít více než ${error.params.limit} položek`;\n case 'maxLength': return `nesmí mít více než ${error.params.limit} znaků`;\n case 'maxProperties': return `nesmí mít více než ${error.params.limit} vlastností`;\n case 'maximum': return `musí být ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `nesmí mít méně než ${error.params.limit} položek`;\n case 'minLength': return `nesmí mít méně než ${error.params.limit} znaků`;\n case 'minProperties': return `nesmí mít méně než ${error.params.limit} vlastností`;\n case 'minimum': return `musí být ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `musí být násobkem ${error.params.multipleOf}`;\n case 'not': return 'nesmí být platné';\n case 'oneOf': return 'musí odpovídat přesně jednomu schématu v oneOf';\n case 'pattern': return `musí odpovídat vzoru \"${error.params.pattern}\"`;\n case 'propertyNames': return `názvy vlastností ${error.params.propertyNames.join(', ')} jsou neplatné`;\n case 'required': return `musí mít povinné vlastnosti ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `musí být ${error.params.type}` : `musí být ${error.params.type.join(' nebo ')}`;\n case 'unevaluatedItems': return 'nesmí mít nevyhodnocené položky';\n case 'unevaluatedProperties': return 'nesmí mít nevyhodnocené vlastnosti';\n case 'uniqueItems': return `nesmí mít duplicitní položky`;\n case '~guard': return `musí odpovídat kontrolní funkci`;\n case '~refine': return error.params.message;\n default: return 'došlo k neznámé chybě ověření';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** German (Germany) - ISO 639-1 language code 'de' with ISO 3166-1 alpha-2 country code 'DE' for Germany. */\nexport function de_DE(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'darf keine zusätzlichen Eigenschaften haben';\n case 'anyOf': return 'muss einem Schema in „anyOf“ entsprechen';\n case 'boolean': return 'Schema ist falsch';\n case 'const': return 'muss gleich der Konstante sein';\n case 'contains': return 'muss mindestens 1 gültiges Element enthalten';\n case 'dependencies': return `muss die Eigenschaften ${error.params.dependencies.join(', ')} haben, wenn Eigenschaft ${error.params.property} vorhanden ist`;\n case 'dependentRequired': return `muss die Eigenschaften ${error.params.dependencies.join(', ')} haben, wenn Eigenschaft ${error.params.property} vorhanden ist`;\n case 'enum': return 'muss einem der erlaubten Werte entsprechen';\n case 'exclusiveMaximum': return `muss ${error.params.comparison} ${error.params.limit} sein`;\n case 'exclusiveMinimum': return `muss ${error.params.comparison} ${error.params.limit} sein`;\n case 'format': return `muss dem Format \"${error.params.format}\" entsprechen`;\n case 'if': return `muss dem Schema \"${error.params.failingKeyword}\" entsprechen`;\n case 'maxItems': return `darf nicht mehr als ${error.params.limit} Elemente haben`;\n case 'maxLength': return `darf nicht mehr als ${error.params.limit} Zeichen haben`;\n case 'maxProperties': return `darf nicht mehr als ${error.params.limit} Eigenschaften haben`;\n case 'maximum': return `muss ${error.params.comparison} ${error.params.limit} sein`;\n case 'minItems': return `darf nicht weniger als ${error.params.limit} Elemente haben`;\n case 'minLength': return `darf nicht weniger als ${error.params.limit} Zeichen haben`;\n case 'minProperties': return `darf nicht weniger als ${error.params.limit} Eigenschaften haben`;\n case 'minimum': return `muss ${error.params.comparison} ${error.params.limit} sein`;\n case 'multipleOf': return `muss ein Vielfaches von ${error.params.multipleOf} sein`;\n case 'not': return 'darf nicht gültig sein';\n case 'oneOf': return 'muss genau einem Schema in „oneOf“ entsprechen';\n case 'pattern': return `muss dem Muster \"${error.params.pattern}\" entsprechen`;\n case 'propertyNames': return `Eigenschaftsnamen ${error.params.propertyNames.join(', ')} sind ungültig`;\n case 'required': return `muss die erforderlichen Eigenschaften ${error.params.requiredProperties.join(', ')} haben`;\n case 'type': return typeof error.params.type === 'string' ? `muss ${error.params.type} sein` : `muss entweder ${error.params.type.join(' oder ')} sein`;\n case 'unevaluatedItems': return 'darf keine unbewerteten Elemente haben';\n case 'unevaluatedProperties': return 'darf keine unbewerteten Eigenschaften haben';\n case 'uniqueItems': return `darf keine doppelten Elemente haben`;\n case '~guard': return `muss der Prüffunktion entsprechen`;\n case '~refine': return error.params.message;\n default: return 'ein unbekannter Validierungsfehler ist aufgetreten';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Greek (Greece) - ISO 639-1 language code 'el' with ISO 3166-1 alpha-2 country code 'GR' for Greece. */\nexport function el_GR(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'δεν πρέπει να έχει επιπλέον ιδιότητες';\n case 'anyOf': return 'πρέπει να ταιριάζει με ένα σχήμα στο anyOf';\n case 'boolean': return 'το σχήμα είναι ψευδές';\n case 'const': return 'πρέπει να είναι ίσο με τη σταθερά';\n case 'contains': return 'πρέπει να περιέχει τουλάχιστον 1 έγκυρο στοιχείο';\n case 'dependencies': return `πρέπει να έχει ιδιότητες ${error.params.dependencies.join(', ')} όταν υπάρχει η ιδιότητα ${error.params.property}`;\n case 'dependentRequired': return `πρέπει να έχει ιδιότητες ${error.params.dependencies.join(', ')} όταν υπάρχει η ιδιότητα ${error.params.property}`;\n case 'enum': return 'πρέπει να είναι ίσο με μία από τις επιτρεπόμενες τιμές';\n case 'exclusiveMaximum': return `πρέπει να είναι ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `πρέπει να είναι ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `πρέπει να ταιριάζει με τη μορφή \"${error.params.format}\"`;\n case 'if': return `πρέπει να ταιριάζει με το σχήμα \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `δεν πρέπει να έχει περισσότερα από ${error.params.limit} στοιχεία`;\n case 'maxLength': return `δεν πρέπει να έχει περισσότερους από ${error.params.limit} χαρακτήρες`;\n case 'maxProperties': return `δεν πρέπει να έχει περισσότερες από ${error.params.limit} ιδιότητες`;\n case 'maximum': return `πρέπει να είναι ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `δεν πρέπει να έχει λιγότερα από ${error.params.limit} στοιχεία`;\n case 'minLength': return `δεν πρέπει να έχει λιγότερους από ${error.params.limit} χαρακτήρες`;\n case 'minProperties': return `δεν πρέπει να έχει λιγότερες από ${error.params.limit} ιδιότητες`;\n case 'minimum': return `πρέπει να είναι ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `πρέπει να είναι πολλαπλάσιο του ${error.params.multipleOf}`;\n case 'not': return 'δεν πρέπει να είναι έγκυρο';\n case 'oneOf': return 'πρέπει να ταιριάζει με ένα μόνο σχήμα στο oneOf';\n case 'pattern': return `πρέπει να ταιριάζει με το μοτίβο \"${error.params.pattern}\"`;\n case 'propertyNames': return `τα ονόματα ιδιοτήτων ${error.params.propertyNames.join(', ')} είναι μη έγκυρα`;\n case 'required': return `πρέπει να έχει τις απαιτούμενες ιδιότητες ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `πρέπει να είναι ${error.params.type}` : `πρέπει να είναι είτε ${error.params.type.join(' ή ')}`;\n case 'unevaluatedItems': return 'δεν πρέπει να έχει μη αξιολογημένα στοιχεία';\n case 'unevaluatedProperties': return 'δεν πρέπει να έχει μη αξιολογημένες ιδιότητες';\n case 'uniqueItems': return `δεν πρέπει να έχει διπλά στοιχεία`;\n case '~guard': return `πρέπει να αντιστοιχεί στη συνάρτηση ελέγχου`;\n case '~refine': return error.params.message;\n default: return 'προέκυψε ένα άγνωστο σφάλμα επικύρωσης';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Spanish (Latin America) - ISO 639-1 language code 'es' with UN M.49 region code '419' for Latin America and the Caribbean. */\nexport function es_419(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'no debe tener propiedades adicionales';\n case 'anyOf': return 'debe coincidir con un esquema en cualquiera de';\n case 'boolean': return 'el esquema es falso';\n case 'const': return 'debe ser igual a la constante';\n case 'contains': return 'debe contener al menos 1 elemento válido';\n case 'dependencies': return `debe tener las propiedades ${error.params.dependencies.join(', ')} cuando la propiedad ${error.params.property} está presente`;\n case 'dependentRequired': return `debe tener las propiedades ${error.params.dependencies.join(', ')} cuando la propiedad ${error.params.property} está presente`;\n case 'enum': return 'debe ser igual a uno de los valores permitidos';\n case 'exclusiveMaximum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `debe coincidir con el formato \"${error.params.format}\"`;\n case 'if': return `debe coincidir con el esquema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `no debe tener más de ${error.params.limit} elementos`;\n case 'maxLength': return `no debe tener más de ${error.params.limit} caracteres`;\n case 'maxProperties': return `no debe tener más de ${error.params.limit} propiedades`;\n case 'maximum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `no debe tener menos de ${error.params.limit} elementos`;\n case 'minLength': return `no debe tener menos de ${error.params.limit} caracteres`;\n case 'minProperties': return `no debe tener menos de ${error.params.limit} propiedades`;\n case 'minimum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `debe ser múltiplo de ${error.params.multipleOf}`;\n case 'not': return 'no debe ser válido';\n case 'oneOf': return 'debe coincidir exactamente con un esquema en uno de';\n case 'pattern': return `debe coincidir con el patrón \"${error.params.pattern}\"`;\n case 'propertyNames': return `los nombres de las propiedades ${error.params.propertyNames.join(', ')} no son válidos`;\n case 'required': return `debe tener las propiedades requeridas ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `debe ser ${error.params.type}` : `debe ser ${error.params.type.join(' o ')}`;\n case 'unevaluatedItems': return 'no debe tener elementos no evaluados';\n case 'unevaluatedProperties': return 'no debe tener propiedades no evaluadas';\n case 'uniqueItems': return `no debe tener elementos duplicados`;\n case '~guard': return `debe coincidir con la función de verificación`;\n case '~refine': return error.params.message;\n default: return 'ocurrió un error de validación desconocido';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Spanish (Argentina) - ISO 639-1 language code 'es' with ISO 3166-1 alpha-2 country code 'AR' for Argentina. */\nexport function es_AR(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'no debe tener propiedades adicionales';\n case 'anyOf': return 'debe coincidir con un esquema en cualquiera de';\n case 'boolean': return 'el esquema es falso';\n case 'const': return 'debe ser igual a la constante';\n case 'contains': return 'debe contener al menos 1 elemento válido';\n case 'dependencies': return `debe tener las propiedades ${error.params.dependencies.join(', ')} cuando la propiedad ${error.params.property} está presente`;\n case 'dependentRequired': return `debe tener las propiedades ${error.params.dependencies.join(', ')} cuando la propiedad ${error.params.property} está presente`;\n case 'enum': return 'debe ser igual a uno de los valores permitidos';\n case 'exclusiveMaximum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `debe coincidir con el formato \"${error.params.format}\"`;\n case 'if': return `debe coincidir con el esquema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `no debe tener más de ${error.params.limit} elementos`;\n case 'maxLength': return `no debe tener más de ${error.params.limit} caracteres`;\n case 'maxProperties': return `no debe tener más de ${error.params.limit} propiedades`;\n case 'maximum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `no debe tener menos de ${error.params.limit} elementos`;\n case 'minLength': return `no debe tener menos de ${error.params.limit} caracteres`;\n case 'minProperties': return `no debe tener menos de ${error.params.limit} propiedades`;\n case 'minimum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `debe ser múltiplo de ${error.params.multipleOf}`;\n case 'not': return 'no debe ser válido';\n case 'oneOf': return 'debe coincidir exactamente con un esquema en uno de';\n case 'pattern': return `debe coincidir con el patrón \"${error.params.pattern}\"`;\n case 'propertyNames': return `los nombres de las propiedades ${error.params.propertyNames.join(', ')} son inválidos`;\n case 'required': return `debe tener las propiedades requeridas ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `debe ser ${error.params.type}` : `debe ser ${error.params.type.join(' o ')}`;\n case 'unevaluatedItems': return 'no debe tener elementos no evaluados';\n case 'unevaluatedProperties': return 'no debe tener propiedades no evaluadas';\n case 'uniqueItems': return `no debe tener elementos duplicados`;\n case '~guard': return `debe coincidir con la función de verificación`;\n case '~refine': return error.params.message;\n default: return 'ocurrió un error de validación desconocido';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Spanish (Spain) - ISO 639-1 language code 'es' with ISO 3166-1 alpha-2 country code 'ES' for Spain. */\nexport function es_ES(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'no debe tener propiedades adicionales';\n case 'anyOf': return 'debe coincidir con un esquema en cualquiera de';\n case 'boolean': return 'el esquema es falso';\n case 'const': return 'debe ser igual a la constante';\n case 'contains': return 'debe contener al menos 1 elemento válido';\n case 'dependencies': return `debe tener las propiedades ${error.params.dependencies.join(', ')} cuando la propiedad ${error.params.property} está presente`;\n case 'dependentRequired': return `debe tener las propiedades ${error.params.dependencies.join(', ')} cuando la propiedad ${error.params.property} está presente`;\n case 'enum': return 'debe ser igual a uno de los valores permitidos';\n case 'exclusiveMaximum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `debe coincidir con el formato \"${error.params.format}\"`;\n case 'if': return `debe coincidir con el esquema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `no debe tener más de ${error.params.limit} elementos`;\n case 'maxLength': return `no debe tener más de ${error.params.limit} caracteres`;\n case 'maxProperties': return `no debe tener más de ${error.params.limit} propiedades`;\n case 'maximum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `no debe tener menos de ${error.params.limit} elementos`;\n case 'minLength': return `no debe tener menos de ${error.params.limit} caracteres`;\n case 'minProperties': return `no debe tener menos de ${error.params.limit} propiedades`;\n case 'minimum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `debe ser múltiplo de ${error.params.multipleOf}`;\n case 'not': return 'no debe ser válido';\n case 'oneOf': return 'debe coincidir exactamente con un esquema en uno de';\n case 'pattern': return `debe coincidir con el patrón \"${error.params.pattern}\"`;\n case 'propertyNames': return `los nombres de las propiedades ${error.params.propertyNames.join(', ')} no son válidos`;\n case 'required': return `debe tener las propiedades requeridas ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `debe ser ${error.params.type}` : `debe ser ${error.params.type.join(' o ')}`;\n case 'unevaluatedItems': return 'no debe tener elementos no evaluados';\n case 'unevaluatedProperties': return 'no debe tener propiedades no evaluadas';\n case 'uniqueItems': return `no debe tener elementos duplicados`;\n case '~guard': return `debe coincidir con la función de verificación`;\n case '~refine': return error.params.message;\n default: return 'ha ocurrido un error de validación desconocido';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Spanish (Mexico) - ISO 639-1 language code 'es' with ISO 3166-1 alpha-2 country code 'MX' for Mexico. */\nexport function es_MX(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'no debe tener propiedades adicionales';\n case 'anyOf': return 'debe coincidir con un esquema en cualquiera de';\n case 'boolean': return 'el esquema es falso';\n case 'const': return 'debe ser igual a la constante';\n case 'contains': return 'debe contener al menos 1 elemento válido';\n case 'dependencies': return `debe tener las propiedades ${error.params.dependencies.join(', ')} cuando la propiedad ${error.params.property} está presente`;\n case 'dependentRequired': return `debe tener las propiedades ${error.params.dependencies.join(', ')} cuando la propiedad ${error.params.property} está presente`;\n case 'enum': return 'debe ser igual a uno de los valores permitidos';\n case 'exclusiveMaximum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `debe coincidir con el formato \"${error.params.format}\"`;\n case 'if': return `debe coincidir con el esquema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `no debe tener más de ${error.params.limit} elementos`;\n case 'maxLength': return `no debe tener más de ${error.params.limit} caracteres`;\n case 'maxProperties': return `no debe tener más de ${error.params.limit} propiedades`;\n case 'maximum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `no debe tener menos de ${error.params.limit} elementos`;\n case 'minLength': return `no debe tener menos de ${error.params.limit} caracteres`;\n case 'minProperties': return `no debe tener menos de ${error.params.limit} propiedades`;\n case 'minimum': return `debe ser ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `debe ser múltiplo de ${error.params.multipleOf}`;\n case 'not': return 'no debe ser válido';\n case 'oneOf': return 'debe coincidir exactamente con un esquema en uno de';\n case 'pattern': return `debe coincidir con el patrón \"${error.params.pattern}\"`;\n case 'propertyNames': return `los nombres de las propiedades ${error.params.propertyNames.join(', ')} no son válidos`;\n case 'required': return `debe tener las propiedades requeridas ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `debe ser ${error.params.type}` : `debe ser ${error.params.type.join(' o ')}`;\n case 'unevaluatedItems': return 'no debe tener elementos no evaluados';\n case 'unevaluatedProperties': return 'no debe tener propiedades no evaluadas';\n case 'uniqueItems': return `no debe tener elementos duplicados`;\n case '~guard': return `debe coincidir con la función de verificación`;\n case '~refine': return error.params.message;\n default: return 'ocurrió un error de validación desconocido';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Persian (Iran) - ISO 639-1 language code 'fa' with ISO 3166-1 alpha-2 country code 'IR' for Iran. */\nexport function fa_IR(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'نباید ویژگیهای اضافی داشته باشد';\n case 'anyOf': return 'باید با یکی از طرحوارههای anyOf مطابقت داشته باشد';\n case 'boolean': return 'طرحواره نادرست است';\n case 'const': return 'باید برابر با ثابت باشد';\n case 'contains': return 'باید حداقل 1 مورد معتبر داشته باشد';\n case 'dependencies': return `باید دارای ویژگیهای ${error.params.dependencies.join(', ')} باشد زمانی که ویژگی ${error.params.property} وجود دارد`;\n case 'dependentRequired': return `باید دارای ویژگیهای ${error.params.dependencies.join(', ')} باشد زمانی که ویژگی ${error.params.property} وجود دارد`;\n case 'enum': return 'باید برابر با یکی از مقادیر مجاز باشد';\n case 'exclusiveMaximum': return `باید ${error.params.comparison} ${error.params.limit} باشد`;\n case 'exclusiveMinimum': return `باید ${error.params.comparison} ${error.params.limit} باشد`;\n case 'format': return `باید با فرمت \"${error.params.format}\" مطابقت داشته باشد`;\n case 'if': return `باید با طرحواره \"${error.params.failingKeyword}\" مطابقت داشته باشد`;\n case 'maxItems': return `نباید بیشتر از ${error.params.limit} آیتم داشته باشد`;\n case 'maxLength': return `نباید بیشتر از ${error.params.limit} کاراکتر داشته باشد`;\n case 'maxProperties': return `نباید بیشتر از ${error.params.limit} ویژگی داشته باشد`;\n case 'maximum': return `باید ${error.params.comparison} ${error.params.limit} باشد`;\n case 'minItems': return `نباید کمتر از ${error.params.limit} آیتم داشته باشد`;\n case 'minLength': return `نباید کمتر از ${error.params.limit} کاراکتر داشته باشد`;\n case 'minProperties': return `نباید کمتر از ${error.params.limit} ویژگی داشته باشد`;\n case 'minimum': return `باید ${error.params.comparison} ${error.params.limit} باشد`;\n case 'multipleOf': return `باید مضربی از ${error.params.multipleOf} باشد`;\n case 'not': return 'نباید معتبر باشد';\n case 'oneOf': return 'باید دقیقاً با یک طرحواره در oneOf مطابقت داشته باشد';\n case 'pattern': return `باید با الگوی \"${error.params.pattern}\" مطابقت داشته باشد`;\n case 'propertyNames': return `نام ویژگیها ${error.params.propertyNames.join(', ')} نامعتبر است`;\n case 'required': return `باید ویژگیهای الزامی ${error.params.requiredProperties.join(', ')} را داشته باشد`;\n case 'type': return typeof error.params.type === 'string' ? `باید ${error.params.type} باشد` : `باید یکی از این دو باشد: ${error.params.type.join(' یا ')}`;\n case 'unevaluatedItems': return 'نباید آیتمهای ارزیابی نشده داشته باشد';\n case 'unevaluatedProperties': return 'نباید ویژگیهای ارزیابی نشده داشته باشد';\n case 'uniqueItems': return `نباید آیتمهای تکراری داشته باشد`;\n case '~guard': return `باید با تابع بررسی مطابقت داشته باشد`;\n case '~refine': return error.params.message;\n default: return 'یک خطای اعتبارسنجی ناشناخته رخ داده است';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Filipino (Philippines) - ISO 639-1 language code 'fil' with ISO 3166-1 */\nexport function fil_PH(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'hindi dapat magkaroon ng karagdagang mga katangian';\n case 'anyOf': return 'dapat tumugma sa isang schema sa anyOf';\n case 'boolean': return 'mali ang schema';\n case 'const': return 'dapat katumbas ng konstante';\n case 'contains': return 'dapat maglaman ng hindi bababa sa 1 wastong item';\n case 'dependencies': return `dapat magkaroon ng mga katangian ${error.params.dependencies.join(', ')} kapag naroroon ang katangian ${error.params.property}`;\n case 'dependentRequired': return `dapat magkaroon ng mga katangian ${error.params.dependencies.join(', ')} kapag naroroon ang katangian ${error.params.property}`;\n case 'enum': return 'dapat katumbas ng isa sa mga pinapayagang halaga';\n case 'exclusiveMaximum': return `dapat ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `dapat ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `dapat tumugma sa format na \"${error.params.format}\"`;\n case 'if': return `dapat tumugma sa \"${error.params.failingKeyword}\" schema`;\n case 'maxItems': return `hindi dapat magkaroon ng higit sa ${error.params.limit} item`;\n case 'maxLength': return `hindi dapat magkaroon ng higit sa ${error.params.limit} karakter`;\n case 'maxProperties': return `hindi dapat magkaroon ng higit sa ${error.params.limit} katangian`;\n case 'maximum': return `dapat ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `hindi dapat magkaroon ng mas kaunti sa ${error.params.limit} item`;\n case 'minLength': return `hindi dapat magkaroon ng mas kaunti sa ${error.params.limit} karakter`;\n case 'minProperties': return `hindi dapat magkaroon ng mas kaunti sa ${error.params.limit} katangian`;\n case 'minimum': return `dapat ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `dapat maramihan ng ${error.params.multipleOf}`;\n case 'not': return 'hindi dapat wasto';\n case 'oneOf': return 'dapat tumugma nang eksakto sa isang schema sa oneOf';\n case 'pattern': return `dapat tumugma sa pattern na \"${error.params.pattern}\"`;\n case 'propertyNames': return `ang mga pangalan ng katangian na ${error.params.propertyNames.join(', ')} ay hindi wasto`;\n case 'required': return `dapat magkaroon ng mga kinakailangang katangian ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `dapat ${error.params.type}` : `dapat ay ${error.params.type.join(' o ')}`;\n case 'unevaluatedItems': return 'hindi dapat magkaroon ng mga hindi pa nasusuring item';\n case 'unevaluatedProperties': return 'hindi dapat magkaroon ng mga hindi pa nasusuring katangian';\n case 'uniqueItems': return `hindi dapat magkaroon ng mga duplicate na item`;\n case '~guard': return `dapat tumugma sa function ng pagsusuri`;\n case '~refine': return error.params.message;\n default: return 'nagkaroon ng hindi kilalang error sa pagpapatunay';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** French (Canada) - ISO 639-1 language code 'fr' with ISO 3166-1 alpha-2 country code 'CA' for Canada. */\nexport function fr_CA(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'ne doit pas avoir de propriétés additionnelles';\n case 'anyOf': return 'doit correspondre à un schéma dans anyOf';\n case 'boolean': return 'le schéma est faux';\n case 'const': return 'doit être égal à la constante';\n case 'contains': return 'doit contenir au moins 1 élément valide';\n case 'dependencies': return `doit avoir les propriétés ${error.params.dependencies.join(', ')} lorsque la propriété ${error.params.property} est présente`;\n case 'dependentRequired': return `doit avoir les propriétés ${error.params.dependencies.join(', ')} lorsque la propriété ${error.params.property} est présente`;\n case 'enum': return 'doit être égal à l\\'une des valeurs autorisées';\n case 'exclusiveMaximum': return `doit être ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `doit être ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `doit correspondre au format \"${error.params.format}\"`;\n case 'if': return `doit correspondre au schéma \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `ne doit pas avoir plus de ${error.params.limit} éléments`;\n case 'maxLength': return `ne doit pas avoir plus de ${error.params.limit} caractères`;\n case 'maxProperties': return `ne doit pas avoir plus de ${error.params.limit} propriétés`;\n case 'maximum': return `doit être ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `ne doit pas avoir moins de ${error.params.limit} éléments`;\n case 'minLength': return `ne doit pas avoir moins de ${error.params.limit} caractères`;\n case 'minProperties': return `ne doit pas avoir moins de ${error.params.limit} propriétés`;\n case 'minimum': return `doit être ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `doit être un multiple de ${error.params.multipleOf}`;\n case 'not': return 'ne doit pas être valide';\n case 'oneOf': return 'doit correspondre exactement à un schéma dans oneOf';\n case 'pattern': return `doit correspondre au motif \"${error.params.pattern}\"`;\n case 'propertyNames': return `les noms de propriété ${error.params.propertyNames.join(', ')} sont invalides`;\n case 'required': return `doit avoir les propriétés requises ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `doit être ${error.params.type}` : `doit être l'un des types suivants : ${error.params.type.join(' ou ')}`;\n case 'unevaluatedItems': return 'ne doit pas avoir d\\'éléments non évalués';\n case 'unevaluatedProperties': return 'ne doit pas avoir de propriétés non évaluées';\n case 'uniqueItems': return `ne doit pas avoir d'éléments en double`;\n case '~guard': return `doit correspondre à la fonction de vérification`;\n case '~refine': return error.params.message;\n default: return 'une erreur de validation inconnue est survenue';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** French (France) - ISO 639-1 language code 'fr' with ISO 3166-1 alpha-2 country code 'FR' for France. */\nexport function fr_FR(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'ne doit pas avoir de propriétés additionnelles';\n case 'anyOf': return 'doit correspondre à un schéma dans anyOf';\n case 'boolean': return 'le schéma est faux';\n case 'const': return 'doit être égal à la constante';\n case 'contains': return 'doit contenir au moins 1 élément valide';\n case 'dependencies': return `doit avoir les propriétés ${error.params.dependencies.join(', ')} lorsque la propriété ${error.params.property} est présente`;\n case 'dependentRequired': return `doit avoir les propriétés ${error.params.dependencies.join(', ')} lorsque la propriété ${error.params.property} est présente`;\n case 'enum': return 'doit être égal à l\\'une des valeurs autorisées';\n case 'exclusiveMaximum': return `doit être ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `doit être ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `doit correspondre au format \"${error.params.format}\"`;\n case 'if': return `doit correspondre au schéma \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `ne doit pas avoir plus de ${error.params.limit} éléments`;\n case 'maxLength': return `ne doit pas avoir plus de ${error.params.limit} caractères`;\n case 'maxProperties': return `ne doit pas avoir plus de ${error.params.limit} propriétés`;\n case 'maximum': return `doit être ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `ne doit pas avoir moins de ${error.params.limit} éléments`;\n case 'minLength': return `ne doit pas avoir moins de ${error.params.limit} caractères`;\n case 'minProperties': return `ne doit pas avoir moins de ${error.params.limit} propriétés`;\n case 'minimum': return `doit être ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `doit être un multiple de ${error.params.multipleOf}`;\n case 'not': return 'ne doit pas être valide';\n case 'oneOf': return 'doit correspondre exactement à un schéma dans oneOf';\n case 'pattern': return `doit correspondre au motif \"${error.params.pattern}\"`;\n case 'propertyNames': return `les noms de propriété ${error.params.propertyNames.join(', ')} sont invalides`;\n case 'required': return `doit avoir les propriétés requises ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `doit être ${error.params.type}` : `doit être l'un des types suivants : ${error.params.type.join(' ou ')}`;\n case 'unevaluatedItems': return 'ne doit pas avoir d\\'éléments non évalués';\n case 'unevaluatedProperties': return 'ne doit pas avoir de propriétés non évaluées';\n case 'uniqueItems': return `ne doit pas avoir d'éléments en double`;\n case '~guard': return `doit correspondre à la fonction de vérification`;\n case '~refine': return error.params.message;\n default: return 'une erreur de validation inconnue est survenue';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Hausa (Nigeria) - ISO 639-1 language code 'ha' with ISO 3166-1 alpha-2 country code 'NG' for Nigeria. */\nexport function ha_NG(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'kada ya kasance yana da ƙarin kaddarori';\n case 'anyOf': return 'dole ne ya dace da wani tsari a cikin anyOf';\n case 'boolean': return 'tsarin yana da karya';\n case 'const': return 'dole ne ya zama daidai da madaidaicin';\n case 'contains': return 'dole ne ya ƙunshi aƙalla abu 1 mai inganci';\n case 'dependencies': return `dole ne ya kasance yana da kaddarori ${error.params.dependencies.join(', ')} idan kadara ${error.params.property} tana nan`;\n case 'dependentRequired': return `dole ne ya kasance yana da kaddarori ${error.params.dependencies.join(', ')} idan kadara ${error.params.property} tana nan`;\n case 'enum': return 'dole ne ya zama daidai da ɗayan ƙimar da aka yarda';\n case 'exclusiveMaximum': return `dole ne ya zama ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `dole ne ya zama ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `dole ne ya dace da tsarin \"${error.params.format}\"`;\n case 'if': return `dole ne ya dace da tsarin \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `kada ya kasance yana da fiye da abubuwa ${error.params.limit}`;\n case 'maxLength': return `kada ya kasance yana da fiye da haruffa ${error.params.limit}`;\n case 'maxProperties': return `kada ya kasance yana da fiye da kaddarori ${error.params.limit}`;\n case 'maximum': return `dole ne ya zama ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `kada ya kasance yana da ƙasa da abubuwa ${error.params.limit}`;\n case 'minLength': return `kada ya kasance yana da ƙasa da haruffa ${error.params.limit}`;\n case 'minProperties': return `kada ya kasance yana da ƙasa da kaddarori ${error.params.limit}`;\n case 'minimum': return `dole ne ya zama ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `dole ne ya zama ninki na ${error.params.multipleOf}`;\n case 'not': return 'kada ya zama mai inganci';\n case 'oneOf': return 'dole ne ya dace da tsari ɗaya kawai a cikin oneOf';\n case 'pattern': return `dole ne ya dace da tsari \"${error.params.pattern}\"`;\n case 'propertyNames': return `sunayen kaddarori ${error.params.propertyNames.join(', ')} ba su da inganci`;\n case 'required': return `dole ne ya kasance yana da kaddarori masu mahimmanci ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `dole ne ya zama ${error.params.type}` : `dole ne ya zama ɗaya daga cikin ${error.params.type.join(' ko ')}`;\n case 'unevaluatedItems': return 'kada ya kasance yana da abubuwan da ba a kimanta su ba';\n case 'unevaluatedProperties': return 'kada ya kasance yana da kaddarorin da ba a kimanta su ba';\n case 'uniqueItems': return `kada ya kasance yana da abubuwan da suka yi kama`;\n case '~guard': return `dole ne ya dace da aikin duba`;\n case '~refine': return error.params.message;\n default: return 'an sami kuskuren tabbatarwa da ba a sani ba';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Hindi (India) - ISO 639-1 language code 'hi' with ISO 3166-1 alpha-2 country code 'IN' for India. */\nexport function hi_IN(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'में अतिरिक्त गुण नहीं होने चाहिए';\n case 'anyOf': return 'anyOf में एक स्कीमा से मेल खाना चाहिए';\n case 'boolean': return 'स्कीमा गलत है';\n case 'const': return 'स्थिरांक के बराबर होना चाहिए';\n case 'contains': return 'में कम से कम 1 वैध आइटम होना चाहिए';\n case 'dependencies': return `जब गुण ${error.params.property} मौजूद हो तो उसमें ${error.params.dependencies.join(', ')} गुण होने चाहिए`;\n case 'dependentRequired': return `जब गुण ${error.params.property} मौजूद हो तो उसमें ${error.params.dependencies.join(', ')} गुण होने चाहिए`;\n case 'enum': return 'अनुमत मानों में से एक के बराबर होना चाहिए';\n case 'exclusiveMaximum': return `${error.params.comparison} ${error.params.limit} होना चाहिए`;\n case 'exclusiveMinimum': return `${error.params.comparison} ${error.params.limit} होना चाहिए`;\n case 'format': return `\"${error.params.format}\" प्रारूप से मेल खाना चाहिए`;\n case 'if': return `\"${error.params.failingKeyword}\" स्कीमा से मेल खाना चाहिए`;\n case 'maxItems': return `में ${error.params.limit} से अधिक आइटम नहीं होने चाहिए`;\n case 'maxLength': return `में ${error.params.limit} से अधिक वर्ण नहीं होने चाहिए`;\n case 'maxProperties': return `में ${error.params.limit} से अधिक गुण नहीं होने चाहिए`;\n case 'maximum': return `${error.params.comparison} ${error.params.limit} होना चाहिए`;\n case 'minItems': return `में ${error.params.limit} से कम आइटम नहीं होने चाहिए`;\n case 'minLength': return `में ${error.params.limit} से कम वर्ण नहीं होने चाहिए`;\n case 'minProperties': return `में ${error.params.limit} से कम गुण नहीं होने चाहिए`;\n case 'minimum': return `${error.params.comparison} ${error.params.limit} होना चाहिए`;\n case 'multipleOf': return `${error.params.multipleOf} का गुणज होना चाहिए`;\n case 'not': return 'वैध नहीं होना चाहिए';\n case 'oneOf': return 'oneOf में ठीक एक स्कीमा से मेल खाना चाहिए';\n case 'pattern': return `पैटर्न \"${error.params.pattern}\" से मेल खाना चाहिए`;\n case 'propertyNames': return `गुण नाम ${error.params.propertyNames.join(', ')} अमान्य हैं`;\n case 'required': return `में आवश्यक गुण ${error.params.requiredProperties.join(', ')} होने चाहिए`;\n case 'type': return typeof error.params.type === 'string' ? `${error.params.type} होना चाहिए` : `या तो ${error.params.type.join(' या ')} होना चाहिए`;\n case 'unevaluatedItems': return 'में अप्रयुक्त आइटम नहीं होने चाहिए';\n case 'unevaluatedProperties': return 'में अप्रयुक्त गुण नहीं होने चाहिए';\n case 'uniqueItems': return `में डुप्लिकेट आइटम नहीं होने चाहिए`;\n case '~guard': return `चेक फ़ंक्शन से मेल खाना चाहिए`;\n case '~refine': return error.params.message;\n default: return 'एक अज्ञात सत्यापन त्रुटि हुई';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Hungarian (Hungary) - ISO 639-1 language code 'hu' with ISO 3166-1 alpha-2 country code 'HU' for Hungary. */\nexport function hu_HU(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'nem lehetnek további tulajdonságai';\n case 'anyOf': return 'meg kell egyeznie az anyOf-ban található sémák egyikével';\n case 'boolean': return 'a séma hamis';\n case 'const': return 'egyenlőnek kell lennie az állandóval';\n case 'contains': return 'legalább 1 érvényes elemet kell tartalmaznia';\n case 'dependencies': return `rendelkeznie kell a(z) ${error.params.dependencies.join(', ')} tulajdonságokkal, ha a(z) ${error.params.property} tulajdonság jelen van`;\n case 'dependentRequired': return `rendelkeznie kell a(z) ${error.params.dependencies.join(', ')} tulajdonságokkal, ha a(z) ${error.params.property} tulajdonság jelen van`;\n case 'enum': return 'egyenlőnek kell lennie az engedélyezett értékek egyikével';\n case 'exclusiveMaximum': return `${error.params.comparison} ${error.params.limit} kell lennie`;\n case 'exclusiveMinimum': return `${error.params.comparison} ${error.params.limit} kell lennie`;\n case 'format': return `meg kell egyeznie a(z) \"${error.params.format}\" formátummal`;\n case 'if': return `meg kell egyeznie a(z) \"${error.params.failingKeyword}\" sémával`;\n case 'maxItems': return `nem lehet több, mint ${error.params.limit} eleme`;\n case 'maxLength': return `nem lehet több, mint ${error.params.limit} karaktere`;\n case 'maxProperties': return `nem lehet több, mint ${error.params.limit} tulajdonsága`;\n case 'maximum': return `${error.params.comparison} ${error.params.limit} kell lennie`;\n case 'minItems': return `nem lehet kevesebb, mint ${error.params.limit} eleme`;\n case 'minLength': return `nem lehet kevesebb, mint ${error.params.limit} karaktere`;\n case 'minProperties': return `nem lehet kevesebb, mint ${error.params.limit} tulajdonsága`;\n case 'minimum': return `${error.params.comparison} ${error.params.limit} kell lennie`;\n case 'multipleOf': return `a(z) ${error.params.multipleOf} többszörösének kell lennie`;\n case 'not': return 'nem lehet érvényes';\n case 'oneOf': return 'pontosan egy sémának kell megfelelnie a oneOf-ban';\n case 'pattern': return `meg kell egyeznie a(z) \"${error.params.pattern}\" mintával`;\n case 'propertyNames': return `a tulajdonságnevek (${error.params.propertyNames.join(', ')}) érvénytelenek`;\n case 'required': return `rendelkeznie kell a(z) ${error.params.requiredProperties.join(', ')} kötelező tulajdonságokkal`;\n case 'type': return typeof error.params.type === 'string' ? `típusának ${error.params.type} kell lennie` : `típusának ${error.params.type.join(' vagy ')} kell lennie`;\n case 'unevaluatedItems': return 'nem lehetnek nem értékelt elemei';\n case 'unevaluatedProperties': return 'nem lehetnek nem értékelt tulajdonságai';\n case 'uniqueItems': return `nem lehetnek ismétlődő elemei`;\n case '~guard': return `meg kell felelnie az ellenőrző függvénynek`;\n case '~refine': return error.params.message;\n default: return 'ismeretlen validációs hiba történt';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Indonesian (Indonesia) - ISO 639-1 language code 'id' with ISO 3166-1 alpha-2 country code 'ID' for Indonesia. */\nexport function id_ID(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'tidak boleh memiliki properti tambahan';\n case 'anyOf': return 'harus cocok dengan skema di anyOf';\n case 'boolean': return 'skema salah';\n case 'const': return 'harus sama dengan konstanta';\n case 'contains': return 'harus mengandung setidaknya 1 item yang valid';\n case 'dependencies': return `harus memiliki properti ${error.params.dependencies.join(', ')} ketika properti ${error.params.property} ada`;\n case 'dependentRequired': return `harus memiliki properti ${error.params.dependencies.join(', ')} ketika properti ${error.params.property} ada`;\n case 'enum': return 'harus sama dengan salah satu nilai yang diizinkan';\n case 'exclusiveMaximum': return `harus ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `harus ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `harus cocok dengan format \"${error.params.format}\"`;\n case 'if': return `harus cocok dengan skema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `tidak boleh memiliki lebih dari ${error.params.limit} item`;\n case 'maxLength': return `tidak boleh memiliki lebih dari ${error.params.limit} karakter`;\n case 'maxProperties': return `tidak boleh memiliki lebih dari ${error.params.limit} properti`;\n case 'maximum': return `harus ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `tidak boleh memiliki kurang dari ${error.params.limit} item`;\n case 'minLength': return `tidak boleh memiliki kurang dari ${error.params.limit} karakter`;\n case 'minProperties': return `tidak boleh memiliki kurang dari ${error.params.limit} properti`;\n case 'minimum': return `harus ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `harus kelipatan dari ${error.params.multipleOf}`;\n case 'not': return 'tidak boleh valid';\n case 'oneOf': return 'harus cocok persis dengan satu skema di oneOf';\n case 'pattern': return `harus cocok dengan pola \"${error.params.pattern}\"`;\n case 'propertyNames': return `nama properti ${error.params.propertyNames.join(', ')} tidak valid`;\n case 'required': return `harus memiliki properti yang wajib diisi ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `harus berupa ${error.params.type}` : `harus berupa ${error.params.type.join(' atau ')}`;\n case 'unevaluatedItems': return 'tidak boleh memiliki item yang belum dievaluasi';\n case 'unevaluatedProperties': return 'tidak boleh memiliki properti yang belum dievaluasi';\n case 'uniqueItems': return `tidak boleh memiliki item duplikat`;\n case '~guard': return `harus sesuai dengan fungsi pemeriksaan`;\n case '~refine': return error.params.message;\n default: return 'terjadi kesalahan validasi yang tidak diketahui';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Italian (Italy) - ISO 639-1 language code 'it' with ISO 3166-1 alpha-2 country code 'IT' for Italy. */\nexport function it_IT(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'non deve avere proprietà aggiuntive';\n case 'anyOf': return 'deve corrispondere a uno schema in anyOf';\n case 'boolean': return 'lo schema è falso';\n case 'const': return 'deve essere uguale alla costante';\n case 'contains': return 'deve contenere almeno 1 elemento valido';\n case 'dependencies': return `deve avere le proprietà ${error.params.dependencies.join(', ')} quando la proprietà ${error.params.property} è presente`;\n case 'dependentRequired': return `deve avere le proprietà ${error.params.dependencies.join(', ')} quando la proprietà ${error.params.property} è presente`;\n case 'enum': return 'deve essere uguale a uno dei valori consentiti';\n case 'exclusiveMaximum': return `deve essere ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `deve essere ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `deve corrispondere al formato \"${error.params.format}\"`;\n case 'if': return `deve corrispondere allo schema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `non deve avere più di ${error.params.limit} elementi`;\n case 'maxLength': return `non deve avere più di ${error.params.limit} caratteri`;\n case 'maxProperties': return `non deve avere più di ${error.params.limit} proprietà`;\n case 'maximum': return `deve essere ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `non deve avere meno di ${error.params.limit} elementi`;\n case 'minLength': return `non deve avere meno di ${error.params.limit} caratteri`;\n case 'minProperties': return `non deve avere meno di ${error.params.limit} proprietà`;\n case 'minimum': return `deve essere ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `deve essere un multiplo di ${error.params.multipleOf}`;\n case 'not': return 'non deve essere valido';\n case 'oneOf': return 'deve corrispondere esattamente a uno schema in oneOf';\n case 'pattern': return `deve corrispondere al pattern \"${error.params.pattern}\"`;\n case 'propertyNames': return `i nomi delle proprietà ${error.params.propertyNames.join(', ')} non sono validi`;\n case 'required': return `deve avere le proprietà richieste ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `deve essere ${error.params.type}` : `deve essere ${error.params.type.join(' o ')}`;\n case 'unevaluatedItems': return 'non deve avere elementi non valutati';\n case 'unevaluatedProperties': return 'non deve avere proprietà non valutate';\n case 'uniqueItems': return `non deve avere elementi duplicati`;\n case '~guard': return `deve corrispondere alla funzione di controllo`;\n case '~refine': return error.params.message;\n default: return 'si è verificato un errore di validazione sconosciuto';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Japanese (Japan) - ISO 639-1 language code 'ja' with ISO 3166-1 alpha-2 country code 'JP' for Japan. */\nexport function ja_JP(error) {\n switch (error.keyword) {\n case 'additionalProperties': return '追加のプロパティを持つことはできません';\n case 'anyOf': return 'anyOf のスキーマと一致する必要があります';\n case 'boolean': return 'スキーマが false です';\n case 'const': return '定数と等しい必要があります';\n case 'contains': return '少なくとも1つの有効なアイテムを含む必要があります';\n case 'dependencies': return `プロパティ ${error.params.property} が存在する場合、プロパティ ${error.params.dependencies.join(', ')} を持つ必要があります`;\n case 'dependentRequired': return `プロパティ ${error.params.property} が存在する場合、プロパティ ${error.params.dependencies.join(', ')} を持つ必要があります`;\n case 'enum': return '許可された値のいずれかと等しい必要があります';\n case 'exclusiveMaximum': return `${error.params.comparison} ${error.params.limit} である必要があります`;\n case 'exclusiveMinimum': return `${error.params.comparison} ${error.params.limit} である必要があります`;\n case 'format': return `フォーマット \"${error.params.format}\" と一致する必要があります`;\n case 'if': return `\"${error.params.failingKeyword}\" スキーマと一致する必要があります`;\n case 'maxItems': return `${error.params.limit} 個を超えるアイテムを持つことはできません`;\n case 'maxLength': return `${error.params.limit} 文字を超えることはできません`;\n case 'maxProperties': return `${error.params.limit} 個を超えるプロパティを持つことはできません`;\n case 'maximum': return `${error.params.comparison} ${error.params.limit} である必要があります`;\n case 'minItems': return `${error.params.limit} 個未満のアイテムを持つことはできません`;\n case 'minLength': return `${error.params.limit} 文字未満であることはできません`;\n case 'minProperties': return `${error.params.limit} 個未満のプロパティを持つことはできません`;\n case 'minimum': return `${error.params.comparison} ${error.params.limit} である必要があります`;\n case 'multipleOf': return `${error.params.multipleOf} の倍数である必要があります`;\n case 'not': return '有効であってはなりません';\n case 'oneOf': return 'oneOf のいずれか1つのスキーマと正確に一致する必要があります';\n case 'pattern': return `パターン \"${error.params.pattern}\" と一致する必要があります`;\n case 'propertyNames': return `プロパティ名 ${error.params.propertyNames.join(', ')} は無効です`;\n case 'required': return `必須プロパティ ${error.params.requiredProperties.join(', ')} を持つ必要があります`;\n case 'type': return typeof error.params.type === 'string' ? `${error.params.type} である必要があります` : `${error.params.type.join(' または ')} のいずれかである必要があります`;\n case 'unevaluatedItems': return '未評価のアイテムを持つことはできません';\n case 'unevaluatedProperties': return '未評価のプロパティを持つことはできません';\n case 'uniqueItems': return `重複するアイテムを持つことはできません`;\n case '~guard': return `チェック関数と一致する必要があります`;\n case '~refine': return error.params.message;\n default: return '不明なバリデーションエラーが発生しました';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Korean (South Korea) - ISO 639-1 language code 'ko' with ISO 3166-1 alpha-2 country code 'KR' for South Korea. */\nexport function ko_KR(error) {\n switch (error.keyword) {\n case 'additionalProperties': return '추가 속성을 가질 수 없습니다';\n case 'anyOf': return 'anyOf의 스키마와 일치해야 합니다';\n case 'boolean': return '스키마가 잘못되었습니다';\n case 'const': return '상수와 같아야 합니다';\n case 'contains': return '최소 1개의 유효한 항목을 포함해야 합니다';\n case 'dependencies': return `속성 ${error.params.property}이(가) 존재할 때 속성 ${error.params.dependencies.join(', ')}을(를) 가지고 있어야 합니다`;\n case 'dependentRequired': return `속성 ${error.params.property}이(가) 존재할 때 속성 ${error.params.dependencies.join(', ')}을(를) 가지고 있어야 합니다`;\n case 'enum': return '허용된 값 중 하나와 같아야 합니다';\n case 'exclusiveMaximum': return `${error.params.comparison} ${error.params.limit}이어야 합니다`;\n case 'exclusiveMinimum': return `${error.params.comparison} ${error.params.limit}이어야 합니다`;\n case 'format': return `\"${error.params.format}\" 형식과 일치해야 합니다`;\n case 'if': return `\"${error.params.failingKeyword}\" 스키마와 일치해야 합니다`;\n case 'maxItems': return `항목이 ${error.params.limit}개보다 많을 수 없습니다`;\n case 'maxLength': return `글자 수가 ${error.params.limit}개보다 많을 수 없습니다`;\n case 'maxProperties': return `속성이 ${error.params.limit}개보다 많을 수 없습니다`;\n case 'maximum': return `${error.params.comparison} ${error.params.limit}이어야 합니다`;\n case 'minItems': return `항목이 ${error.params.limit}개보다 적을 수 없습니다`;\n case 'minLength': return `글자 수가 ${error.params.limit}개보다 적을 수 없습니다`;\n case 'minProperties': return `속성이 ${error.params.limit}개보다 적을 수 없습니다`;\n case 'minimum': return `${error.params.comparison} ${error.params.limit}이어야 합니다`;\n case 'multipleOf': return `${error.params.multipleOf}의 배수여야 합니다`;\n case 'not': return '유효하지 않아야 합니다';\n case 'oneOf': return 'oneOf의 스키마 중 정확히 하나와 일치해야 합니다';\n case 'pattern': return `패턴 \"${error.params.pattern}\"과 일치해야 합니다`;\n case 'propertyNames': return `속성 이름 ${error.params.propertyNames.join(', ')}이(가) 유효하지 않습니다`;\n case 'required': return `필수 속성 ${error.params.requiredProperties.join(', ')}을(를) 가지고 있어야 합니다`;\n case 'type': return typeof error.params.type === 'string' ? `${error.params.type}이어야 합니다` : `${error.params.type.join(' 또는 ')} 중 하나여야 합니다`;\n case 'unevaluatedItems': return '평가되지 않은 항목을 가질 수 없습니다';\n case 'unevaluatedProperties': return '평가되지 않은 속성을 가질 수 없습니다';\n case 'uniqueItems': return `중복 항목을 가질 수 없습니다`;\n case '~guard': return `체크 함수와 일치해야 합니다`;\n case '~refine': return error.params.message;\n default: return '알 수 없는 유효성 검사 오류가 발생했습니다';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Malay (Malaysia) - ISO 639-1 language code 'ms' with ISO 3166-1 alpha-2 country code 'MY' for Malaysia. */\nexport function ms_MY(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'tidak boleh mempunyai sifat tambahan';\n case 'anyOf': return 'mesti sepadan dengan skema dalam anyOf';\n case 'boolean': return 'skema adalah palsu';\n case 'const': return 'mesti sama dengan pemalar';\n case 'contains': return 'mesti mengandungi sekurang-kurangnya 1 item yang sah';\n case 'dependencies': return `mesti mempunyai sifat ${error.params.dependencies.join(', ')} apabila sifat ${error.params.property} hadir`;\n case 'dependentRequired': return `mesti mempunyai sifat ${error.params.dependencies.join(', ')} apabila sifat ${error.params.property} hadir`;\n case 'enum': return 'mesti sama dengan salah satu nilai yang dibenarkan';\n case 'exclusiveMaximum': return `mesti ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `mesti ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `mesti sepadan dengan format \"${error.params.format}\"`;\n case 'if': return `mesti sepadan dengan skema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `tidak boleh mempunyai lebih daripada ${error.params.limit} item`;\n case 'maxLength': return `tidak boleh mempunyai lebih daripada ${error.params.limit} aksara`;\n case 'maxProperties': return `tidak boleh mempunyai lebih daripada ${error.params.limit} sifat`;\n case 'maximum': return `mesti ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `tidak boleh mempunyai kurang daripada ${error.params.limit} item`;\n case 'minLength': return `tidak boleh mempunyai kurang daripada ${error.params.limit} aksara`;\n case 'minProperties': return `tidak boleh mempunyai kurang daripada ${error.params.limit} sifat`;\n case 'minimum': return `mesti ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `mesti gandaan ${error.params.multipleOf}`;\n case 'not': return 'tidak boleh sah';\n case 'oneOf': return 'mesti sepadan dengan tepat satu skema dalam oneOf';\n case 'pattern': return `mesti sepadan dengan corak \"${error.params.pattern}\"`;\n case 'propertyNames': return `nama sifat ${error.params.propertyNames.join(', ')} tidak sah`;\n case 'required': return `mesti mempunyai sifat yang diperlukan ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `mesti ${error.params.type}` : `mesti sama ada ${error.params.type.join(' atau ')}`;\n case 'unevaluatedItems': return 'tidak boleh mempunyai item yang tidak dinilai';\n case 'unevaluatedProperties': return 'tidak boleh mempunyai sifat yang tidak dinilai';\n case 'uniqueItems': return `tidak boleh mempunyai item pendua`;\n case '~guard': return `mestilah sepadan dengan fungsi semak`;\n case '~refine': return error.params.message;\n default: return 'ralat pengesahan yang tidak diketahui berlaku';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Dutch (Netherlands) - ISO 639-1 language code 'nl' with ISO 3166-1 alpha-2 country code 'NL' for Netherlands. */\nexport function nl_NL(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'mag geen aanvullende eigenschappen hebben';\n case 'anyOf': return 'moet overeenkomen met een schema in anyOf';\n case 'boolean': return 'schema is onwaar';\n case 'const': return 'moet gelijk zijn aan constante';\n case 'contains': return 'moet ten minste 1 geldig item bevatten';\n case 'dependencies': return `moet eigenschappen ${error.params.dependencies.join(', ')} hebben wanneer eigenschap ${error.params.property} aanwezig is`;\n case 'dependentRequired': return `moet eigenschappen ${error.params.dependencies.join(', ')} hebben wanneer eigenschap ${error.params.property} aanwezig is`;\n case 'enum': return 'moet gelijk zijn aan een van de toegestane waarden';\n case 'exclusiveMaximum': return `moet ${error.params.comparison} ${error.params.limit} zijn`;\n case 'exclusiveMinimum': return `moet ${error.params.comparison} ${error.params.limit} zijn`;\n case 'format': return `moet overeenkomen met formaat \"${error.params.format}\"`;\n case 'if': return `moet overeenkomen met \"${error.params.failingKeyword}\" schema`;\n case 'maxItems': return `mag niet meer dan ${error.params.limit} items hebben`;\n case 'maxLength': return `mag niet meer dan ${error.params.limit} tekens hebben`;\n case 'maxProperties': return `mag niet meer dan ${error.params.limit} eigenschappen hebben`;\n case 'maximum': return `moet ${error.params.comparison} ${error.params.limit} zijn`;\n case 'minItems': return `mag niet minder dan ${error.params.limit} items hebben`;\n case 'minLength': return `mag niet minder dan ${error.params.limit} tekens hebben`;\n case 'minProperties': return `mag niet minder dan ${error.params.limit} eigenschappen hebben`;\n case 'minimum': return `moet ${error.params.comparison} ${error.params.limit} zijn`;\n case 'multipleOf': return `moet een veelvoud zijn van ${error.params.multipleOf}`;\n case 'not': return 'mag niet geldig zijn';\n case 'oneOf': return 'moet precies één schema in oneOf overeenkomen';\n case 'pattern': return `moet overeenkomen met patroon \"${error.params.pattern}\"`;\n case 'propertyNames': return `eigenschapsnamen ${error.params.propertyNames.join(', ')} zijn ongeldig`;\n case 'required': return `moet de vereiste eigenschappen ${error.params.requiredProperties.join(', ')} hebben`;\n case 'type': return typeof error.params.type === 'string' ? `moet ${error.params.type} zijn` : `moet ${error.params.type.join(' of ')} zijn`;\n case 'unevaluatedItems': return 'mag geen onbeoordeelde items hebben';\n case 'unevaluatedProperties': return 'mag geen onbeoordeelde eigenschappen hebben';\n case 'uniqueItems': return `mag geen dubbele items hebben`;\n case '~guard': return `moet overeenkomen met de controlefunctie`;\n case '~refine': return error.params.message;\n default: return 'er is een onbekende validatiefout opgetreden';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Polish (Poland) - ISO 639-1 language code 'pl' with ISO 3166-1 alpha-2 country code 'PL' for Poland. */\nexport function pl_PL(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'nie może mieć dodatkowych właściwości';\n case 'anyOf': return 'musi pasować do schematu w anyOf';\n case 'boolean': return 'schemat jest fałszywy';\n case 'const': return 'musi być równy stałej';\n case 'contains': return 'musi zawierać co najmniej 1 prawidłowy element';\n case 'dependencies': return `musi mieć właściwości ${error.params.dependencies.join(', ')}, gdy właściwość ${error.params.property} jest obecna`;\n case 'dependentRequired': return `musi mieć właściwości ${error.params.dependencies.join(', ')}, gdy właściwość ${error.params.property} jest obecna`;\n case 'enum': return 'musi być równy jednej z dozwolonych wartości';\n case 'exclusiveMaximum': return `musi być ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `musi być ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `musi pasować do formatu \"${error.params.format}\"`;\n case 'if': return `musi pasować do schematu \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `nie może mieć więcej niż ${error.params.limit} elementów`;\n case 'maxLength': return `nie może mieć więcej niż ${error.params.limit} znaków`;\n case 'maxProperties': return `nie może mieć więcej niż ${error.params.limit} właściwości`;\n case 'maximum': return `musi być ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `nie może mieć mniej niż ${error.params.limit} elementów`;\n case 'minLength': return `nie może mieć mniej niż ${error.params.limit} znaków`;\n case 'minProperties': return `nie może mieć mniej niż ${error.params.limit} właściwości`;\n case 'minimum': return `musi być ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `musi być wielokrotnością ${error.params.multipleOf}`;\n case 'not': return 'nie może być ważne';\n case 'oneOf': return 'musi pasować dokładnie do jednego schematu w oneOf';\n case 'pattern': return `musi pasować do wzorca \"${error.params.pattern}\"`;\n case 'propertyNames': return `nazwy właściwości ${error.params.propertyNames.join(', ')} są nieprawidłowe`;\n case 'required': return `musi mieć wymagane właściwości ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `musi być typu ${error.params.type}` : `musi być typu ${error.params.type.join(' lub ')}`;\n case 'unevaluatedItems': return 'nie może mieć nieewaluowanych elementów';\n case 'unevaluatedProperties': return 'nie może mieć nieewaluowanych właściwości';\n case 'uniqueItems': return `nie może zawierać zduplikowanych elementów`;\n case '~guard': return `musi pasować do funkcji sprawdzającej`;\n case '~refine': return error.params.message;\n default: return 'wystąpił nieznany błąd walidacji';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Portuguese (Brazil) - ISO 639-1 language code 'pt' with ISO 3166-1 alpha-2 country code 'BR' for Brazil. */\nexport function pt_BR(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'não deve ter propriedades adicionais';\n case 'anyOf': return 'deve corresponder a um esquema em anyOf';\n case 'boolean': return 'o esquema é falso';\n case 'const': return 'deve ser igual à constante';\n case 'contains': return 'deve conter pelo menos 1 item válido';\n case 'dependencies': return `deve ter as propriedades ${error.params.dependencies.join(', ')} quando a propriedade ${error.params.property} estiver presente`;\n case 'dependentRequired': return `deve ter as propriedades ${error.params.dependencies.join(', ')} quando a propriedade ${error.params.property} estiver presente`;\n case 'enum': return 'deve ser igual a um dos valores permitidos';\n case 'exclusiveMaximum': return `deve ser ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `deve ser ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `deve corresponder ao formato \"${error.params.format}\"`;\n case 'if': return `deve corresponder ao esquema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `não deve ter mais de ${error.params.limit} itens`;\n case 'maxLength': return `não deve ter mais de ${error.params.limit} caracteres`;\n case 'maxProperties': return `não deve ter mais de ${error.params.limit} propriedades`;\n case 'maximum': return `deve ser ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `não deve ter menos de ${error.params.limit} itens`;\n case 'minLength': return `não deve ter menos de ${error.params.limit} caracteres`;\n case 'minProperties': return `não deve ter menos de ${error.params.limit} propriedades`;\n case 'minimum': return `deve ser ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `deve ser múltiplo de ${error.params.multipleOf}`;\n case 'not': return 'não deve ser válido';\n case 'oneOf': return 'deve corresponder exatamente a um esquema em oneOf';\n case 'pattern': return `deve corresponder ao padrão \"${error.params.pattern}\"`;\n case 'propertyNames': return `os nomes das propriedades ${error.params.propertyNames.join(', ')} são inválidos`;\n case 'required': return `deve ter as propriedades obrigatórias ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `deve ser ${error.params.type}` : `deve ser ${error.params.type.join(' ou ')}`;\n case 'unevaluatedItems': return 'não deve ter itens não avaliados';\n case 'unevaluatedProperties': return 'não deve ter propriedades não avaliadas';\n case 'uniqueItems': return `não deve ter itens duplicados`;\n case '~guard': return `deve corresponder à função de verificação`;\n case '~refine': return error.params.message;\n default: return 'ocorreu um erro de validação desconhecido';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Portuguese (Portugal) - ISO 639-1 language code 'pt' with ISO 3166-1 alpha-2 country code 'PT' for Portugal. */\nexport function pt_PT(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'não deve ter propriedades adicionais';\n case 'anyOf': return 'deve corresponder a um esquema em anyOf';\n case 'boolean': return 'o esquema é falso';\n case 'const': return 'deve ser igual à constante';\n case 'contains': return 'deve conter pelo menos 1 item válido';\n case 'dependencies': return `deve ter as propriedades ${error.params.dependencies.join(', ')} quando a propriedade ${error.params.property} estiver presente`;\n case 'dependentRequired': return `deve ter as propriedades ${error.params.dependencies.join(', ')} quando a propriedade ${error.params.property} estiver presente`;\n case 'enum': return 'deve ser igual a um dos valores permitidos';\n case 'exclusiveMaximum': return `deve ser ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `deve ser ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `deve corresponder ao formato \"${error.params.format}\"`;\n case 'if': return `deve corresponder ao esquema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `não deve ter mais de ${error.params.limit} itens`;\n case 'maxLength': return `não deve ter mais de ${error.params.limit} carateres`;\n case 'maxProperties': return `não deve ter mais de ${error.params.limit} propriedades`;\n case 'maximum': return `deve ser ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `não deve ter menos de ${error.params.limit} itens`;\n case 'minLength': return `não deve ter menos de ${error.params.limit} carateres`;\n case 'minProperties': return `não deve ter menos de ${error.params.limit} propriedades`;\n case 'minimum': return `deve ser ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `deve ser múltiplo de ${error.params.multipleOf}`;\n case 'not': return 'não deve ser válido';\n case 'oneOf': return 'deve corresponder exatamente a um esquema em oneOf';\n case 'pattern': return `deve corresponder ao padrão \"${error.params.pattern}\"`;\n case 'propertyNames': return `os nomes das propriedades ${error.params.propertyNames.join(', ')} são inválidos`;\n case 'required': return `deve ter as propriedades obrigatórias ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `deve ser ${error.params.type}` : `deve ser ${error.params.type.join(' ou ')}`;\n case 'unevaluatedItems': return 'não deve ter itens não avaliados';\n case 'unevaluatedProperties': return 'não deve ter propriedades não avaliadas';\n case 'uniqueItems': return `não deve ter itens duplicados`;\n case '~guard': return `deve corresponder à função de verificação`;\n case '~refine': return error.params.message;\n default: return 'ocorreu um erro de validação desconhecido';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Romanian (Romania) - ISO 639-1 language code 'ro' with ISO 3166-1 alpha-2 country code 'RO' for Romania. */\nexport function ro_RO(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'nu trebuie să aibă proprietăți suplimentare';\n case 'anyOf': return 'trebuie să se potrivească cu o schemă din anyOf';\n case 'boolean': return 'schema este falsă';\n case 'const': return 'trebuie să fie egal cu constanta';\n case 'contains': return 'trebuie să conțină cel puțin 1 element valid';\n case 'dependencies': return `trebuie să aibă proprietățile ${error.params.dependencies.join(', ')} când proprietatea ${error.params.property} este prezentă`;\n case 'dependentRequired': return `trebuie să aibă proprietățile ${error.params.dependencies.join(', ')} când proprietatea ${error.params.property} este prezentă`;\n case 'enum': return 'trebuie să fie egal cu una dintre valorile permise';\n case 'exclusiveMaximum': return `trebuie să fie ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `trebuie să fie ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `trebuie să se potrivească formatului \"${error.params.format}\"`;\n case 'if': return `trebuie să se potrivească cu schema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `nu trebuie să aibă mai mult de ${error.params.limit} elemente`;\n case 'maxLength': return `nu trebuie să aibă mai mult de ${error.params.limit} caractere`;\n case 'maxProperties': return `nu trebuie să aibă mai mult de ${error.params.limit} proprietăți`;\n case 'maximum': return `trebuie să fie ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `nu trebuie să aibă mai puțin de ${error.params.limit} elemente`;\n case 'minLength': return `nu trebuie să aibă mai puțin de ${error.params.limit} caractere`;\n case 'minProperties': return `nu trebuie să aibă mai puțin de ${error.params.limit} proprietăți`;\n case 'minimum': return `trebuie să fie ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `trebuie să fie multiplu de ${error.params.multipleOf}`;\n case 'not': return 'nu trebuie să fie valid';\n case 'oneOf': return 'trebuie să se potrivească exact unei scheme din oneOf';\n case 'pattern': return `trebuie să se potrivească cu modelul \"${error.params.pattern}\"`;\n case 'propertyNames': return `numele proprietăților ${error.params.propertyNames.join(', ')} sunt invalide`;\n case 'required': return `trebuie să aibă proprietățile obligatorii ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `trebuie să fie ${error.params.type}` : `trebuie să fie ${error.params.type.join(' sau ')}`;\n case 'unevaluatedItems': return 'nu trebuie să aibă elemente neevaluate';\n case 'unevaluatedProperties': return 'nu trebuie să aibă proprietăți neevaluate';\n case 'uniqueItems': return `nu trebuie să aibă elemente duplicate`;\n case '~guard': return `trebuie să corespundă funcției de verificare`;\n case '~refine': return error.params.message;\n default: return 'a apărut o eroare de validare necunoscută';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Russian (Russia) - ISO 639-1 language code 'ru' with ISO 3166-1 alpha-2 country code 'RU' for Russia. */\nexport function ru_RU(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'не должно быть дополнительных свойств';\n case 'anyOf': return 'должен соответствовать одной из схем в anyOf';\n case 'boolean': return 'схема является ложной';\n case 'const': return 'должно быть равно константе';\n case 'contains': return 'должен содержать хотя бы 1 допустимый элемент';\n case 'dependencies': return `должен иметь свойства ${error.params.dependencies.join(', ')}, когда свойство ${error.params.property} присутствует`;\n case 'dependentRequired': return `должен иметь свойства ${error.params.dependencies.join(', ')}, когда свойство ${error.params.property} присутствует`;\n case 'enum': return 'должно быть равно одному из разрешенных значений';\n case 'exclusiveMaximum': return `должно быть ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `должно быть ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `должен соответствовать формату \"${error.params.format}\"`;\n case 'if': return `должен соответствовать схеме \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `не должно быть более ${error.params.limit} элементов`;\n case 'maxLength': return `не должно быть более ${error.params.limit} символов`;\n case 'maxProperties': return `не должно быть более ${error.params.limit} свойств`;\n case 'maximum': return `должно быть ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `не должно быть менее ${error.params.limit} элементов`;\n case 'minLength': return `не должно быть менее ${error.params.limit} символов`;\n case 'minProperties': return `не должно быть менее ${error.params.limit} свойств`;\n case 'minimum': return `должно быть ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `должно быть кратно ${error.params.multipleOf}`;\n case 'not': return 'не должно быть действительным';\n case 'oneOf': return 'должен соответствовать ровно одной схеме в oneOf';\n case 'pattern': return `должен соответствовать шаблону \"${error.params.pattern}\"`;\n case 'propertyNames': return `имена свойств ${error.params.propertyNames.join(', ')} недопустимы`;\n case 'required': return `должен иметь обязательные свойства ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `должен быть ${error.params.type}` : `должен быть либо ${error.params.type.join(' или ')}`;\n case 'unevaluatedItems': return 'не должно быть нерассмотренных элементов';\n case 'unevaluatedProperties': return 'не должно быть нерассмотренных свойств';\n case 'uniqueItems': return `не должно быть повторяющихся элементов`;\n case '~guard': return `должно соответствовать проверочной функции`;\n case '~refine': return error.params.message;\n default: return 'произошла неизвестная ошибка валидации';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Swedish (Sweden) - ISO 639-1 language code 'sv' with ISO 3166-1 alpha-2 country code 'SE' for Sweden. */\nexport function sv_SE(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'får inte ha ytterligare egenskaper';\n case 'anyOf': return 'måste matcha ett schema i anyOf';\n case 'boolean': return 'schemat är falskt';\n case 'const': return 'måste vara lika med konstanten';\n case 'contains': return 'måste innehålla minst 1 giltigt objekt';\n case 'dependencies': return `måste ha egenskaperna ${error.params.dependencies.join(', ')} när egenskapen ${error.params.property} finns`;\n case 'dependentRequired': return `måste ha egenskaperna ${error.params.dependencies.join(', ')} när egenskapen ${error.params.property} finns`;\n case 'enum': return 'måste vara lika med ett av de tillåtna värdena';\n case 'exclusiveMaximum': return `måste vara ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `måste vara ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `måste matcha formatet \"${error.params.format}\"`;\n case 'if': return `måste matcha \"${error.params.failingKeyword}\" schema`;\n case 'maxItems': return `får inte ha fler än ${error.params.limit} objekt`;\n case 'maxLength': return `får inte ha fler än ${error.params.limit} tecken`;\n case 'maxProperties': return `får inte ha fler än ${error.params.limit} egenskaper`;\n case 'maximum': return `måste vara ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `får inte ha färre än ${error.params.limit} objekt`;\n case 'minLength': return `får inte ha färre än ${error.params.limit} tecken`;\n case 'minProperties': return `får inte ha färre än ${error.params.limit} egenskaper`;\n case 'minimum': return `måste vara ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `måste vara en multipel av ${error.params.multipleOf}`;\n case 'not': return 'får inte vara giltigt';\n case 'oneOf': return 'måste matcha exakt ett schema i oneOf';\n case 'pattern': return `måste matcha mönstret \"${error.params.pattern}\"`;\n case 'propertyNames': return `egenskapernas namn ${error.params.propertyNames.join(', ')} är ogiltiga`;\n case 'required': return `måste ha obligatoriska egenskaper ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `måste vara ${error.params.type}` : `måste vara antingen ${error.params.type.join(' eller ')}`;\n case 'unevaluatedItems': return 'får inte ha oidentifierade objekt';\n case 'unevaluatedProperties': return 'får inte ha oidentifierade egenskaper';\n case 'uniqueItems': return `får inte ha dubbletter`;\n case '~guard': return `måste matcha kontrollfunktionen`;\n case '~refine': return error.params.message;\n default: return 'ett okänt valideringsfel uppstod';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Swahili (Tanzania) - ISO 639-1 language code 'sw' with ISO 3166-1 alpha-2 country code 'TZ' for Tanzania (as a common representative). */\nexport function sw_TZ(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'haipaswi kuwa na sifa za ziada';\n case 'anyOf': return 'lazima ilingane na schema katika anyOf';\n case 'boolean': return 'schema si sahihi';\n case 'const': return 'lazima iwe sawa na nambari isiyobadilika';\n case 'contains': return 'lazima iwe na angalau kipengee 1 halali';\n case 'dependencies': return `lazima iwe na sifa ${error.params.dependencies.join(', ')} wakati sifa ${error.params.property} ipo`;\n case 'dependentRequired': return `lazima iwe na sifa ${error.params.dependencies.join(', ')} wakati sifa ${error.params.property} ipo`;\n case 'enum': return 'lazima iwe sawa na mojawapo ya thamani zinazoruhusiwa';\n case 'exclusiveMaximum': return `lazima iwe ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `lazima iwe ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `lazima ilingane na muundo \"${error.params.format}\"`;\n case 'if': return `lazima ilingane na schema ya \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `haipaswi kuwa na vitu zaidi ya ${error.params.limit}`;\n case 'maxLength': return `haipaswi kuwa na herufi zaidi ya ${error.params.limit}`;\n case 'maxProperties': return `haipaswi kuwa na sifa zaidi ya ${error.params.limit}`;\n case 'maximum': return `lazima iwe ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `haipaswi kuwa na vitu pungufu ya ${error.params.limit}`;\n case 'minLength': return `haipaswi kuwa na herufi pungufu ya ${error.params.limit}`;\n case 'minProperties': return `haipaswi kuwa na sifa pungufu ya ${error.params.limit}`;\n case 'minimum': return `lazima iwe ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `lazima iwe zao la ${error.params.multipleOf}`;\n case 'not': return 'haipaswi kuwa halali';\n case 'oneOf': return 'lazima ilingane na schema moja tu katika oneOf';\n case 'pattern': return `lazima ilingane na muundo \"${error.params.pattern}\"`;\n case 'propertyNames': return `majina ya sifa ${error.params.propertyNames.join(', ')} si halali`;\n case 'required': return `lazima iwe na sifa zinazohitajika ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `lazima iwe ${error.params.type}` : `lazima iwe ${error.params.type.join(' au ')}`;\n case 'unevaluatedItems': return 'haipaswi kuwa na vitu visivyotathminiwa';\n case 'unevaluatedProperties': return 'haipaswi kuwa na sifa zisizotathminiwa';\n case 'uniqueItems': return `haipaswi kuwa na vitu vilivyofanana`;\n case '~guard': return `inapaswa kulingana na kipengele cha ukaguzi`;\n case '~refine': return error.params.message;\n default: return 'hitilafu isiyojulikana ya uthibitishaji imetokea';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Thai (Thailand) - ISO 639-1 language code 'th' with ISO 3166-1 alpha-2 country code 'TH' for Thailand. */\nexport function th_TH(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'ต้องไม่มีคุณสมบัติเพิ่มเติม';\n case 'anyOf': return 'ต้องตรงกับ Schema ใน anyOf';\n case 'boolean': return 'Schema เป็นเท็จ';\n case 'const': return 'ต้องเท่ากับค่าคงที่';\n case 'contains': return 'ต้องมีอย่างน้อย 1 รายการที่ถูกต้อง';\n case 'dependencies': return `ต้องมีคุณสมบัติ ${error.params.dependencies.join(', ')} เมื่อมีคุณสมบัติ ${error.params.property} อยู่`;\n case 'dependentRequired': return `ต้องมีคุณสมบัติ ${error.params.dependencies.join(', ')} เมื่อมีคุณสมบัติ ${error.params.property} อยู่`;\n case 'enum': return 'ต้องเท่ากับหนึ่งในค่าที่อนุญาต';\n case 'exclusiveMaximum': return `ต้องเป็น ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `ต้องเป็น ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `ต้องตรงกับรูปแบบ \"${error.params.format}\"`;\n case 'if': return `ต้องตรงกับ Schema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `ต้องไม่มีมากกว่า ${error.params.limit} รายการ`;\n case 'maxLength': return `ต้องไม่มีมากกว่า ${error.params.limit} ตัวอักษร`;\n case 'maxProperties': return `ต้องไม่มีมากกว่า ${error.params.limit} คุณสมบัติ`;\n case 'maximum': return `ต้องเป็น ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `ต้องไม่มีน้อยกว่า ${error.params.limit} รายการ`;\n case 'minLength': return `ต้องไม่มีน้อยกว่า ${error.params.limit} ตัวอักษร`;\n case 'minProperties': return `ต้องไม่มีน้อยกว่า ${error.params.limit} คุณสมบัติ`;\n case 'minimum': return `ต้องเป็น ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `ต้องเป็นพหุคูณของ ${error.params.multipleOf}`;\n case 'not': return 'ต้องไม่ถูกต้อง';\n case 'oneOf': return 'ต้องตรงกับ Schema เพียงหนึ่งเดียวใน oneOf';\n case 'pattern': return `ต้องตรงกับรูปแบบ \"${error.params.pattern}\"`;\n case 'propertyNames': return `ชื่อคุณสมบัติ ${error.params.propertyNames.join(', ')} ไม่ถูกต้อง`;\n case 'required': return `ต้องมีคุณสมบัติที่จำเป็น ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `ต้องเป็น ${error.params.type}` : `ต้องเป็นอย่างใดอย่างหนึ่ง ${error.params.type.join(' หรือ ')}`;\n case 'unevaluatedItems': return 'ต้องไม่มีรายการที่ยังไม่ได้ประเมิน';\n case 'unevaluatedProperties': return 'ต้องไม่มีคุณสมบัติที่ยังไม่ได้ประเมิน';\n case 'uniqueItems': return `ต้องไม่มีรายการที่ซ้ำกัน`;\n case '~guard': return `ต้องตรงกับฟังก์ชันตรวจสอบ`;\n case '~refine': return error.params.message;\n default: return 'เกิดข้อผิดพลาดในการตรวจสอบที่ไม่รู้จัก';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Turkish (Turkey) - ISO 639-1 language code 'tr' with ISO 3166-1 alpha-2 country code 'TR' for Turkey. */\nexport function tr_TR(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'ek özelliklere sahip olmamalıdır';\n case 'anyOf': return 'anyOf içindeki bir şemayla eşleşmelidir';\n case 'boolean': return 'şema yanlış';\n case 'const': return 'sabit değere eşit olmalıdır';\n case 'contains': return 'en az 1 geçerli öğe içermelidir';\n case 'dependencies': return `${error.params.property} özelliği mevcutken ${error.params.dependencies.join(', ')} özelliklerine sahip olmalıdır`;\n case 'dependentRequired': return `${error.params.property} özelliği mevcutken ${error.params.dependencies.join(', ')} özelliklerine sahip olmalıdır`;\n case 'enum': return 'izin verilen değerlerden birine eşit olmalıdır';\n case 'exclusiveMaximum': return `${error.params.comparison} ${error.params.limit} olmalıdır`;\n case 'exclusiveMinimum': return `${error.params.comparison} ${error.params.limit} olmalıdır`;\n case 'format': return `\"${error.params.format}\" formatıyla eşleşmelidir`;\n case 'if': return `\"${error.params.failingKeyword}\" şemasıyla eşleşmelidir`;\n case 'maxItems': return `${error.params.limit} öğeden fazla olmamalıdır`;\n case 'maxLength': return `${error.params.limit} karakterden fazla olmamalıdır`;\n case 'maxProperties': return `${error.params.limit} özellikten fazla olmamalıdır`;\n case 'maximum': return `${error.params.comparison} ${error.params.limit} olmalıdır`;\n case 'minItems': return `${error.params.limit} öğeden az olmamalıdır`;\n case 'minLength': return `${error.params.limit} karakterden az olmamalıdır`;\n case 'minProperties': return `${error.params.limit} özellikten az olmamalıdır`;\n case 'minimum': return `${error.params.comparison} ${error.params.limit} olmalıdır`;\n case 'multipleOf': return `${error.params.multipleOf} sayısının katı olmalıdır`;\n case 'not': return 'geçerli olmamalıdır';\n case 'oneOf': return 'oneOf içindeki tam olarak bir şemayla eşleşmelidir';\n case 'pattern': return `\"${error.params.pattern}\" deseniyle eşleşmelidir`;\n case 'propertyNames': return `özellik adları ${error.params.propertyNames.join(', ')} geçersiz`;\n case 'required': return `gerekli özelliklere sahip olmalıdır: ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `${error.params.type} türünde olmalıdır` : `${error.params.type.join(' veya ')} türlerinden biri olmalıdır`;\n case 'unevaluatedItems': return 'değerlendirilmemiş öğelere sahip olmamalıdır';\n case 'unevaluatedProperties': return 'değerlendirilmemiş özelliklere sahip olmamalıdır';\n case 'uniqueItems': return `yinelenen öğelere sahip olmamalıdır`;\n case '~guard': return `kontrol fonksiyonuyla eşleşmelidir`;\n case '~refine': return error.params.message;\n default: return 'bilinmeyen bir doğrulama hatası oluştu';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Ukrainian (Ukraine) - ISO 639-1 language code 'uk' with ISO 3166-1 alpha-2 country code 'UA' for Ukraine. */\nexport function uk_UA(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'не повинно мати додаткових властивостей';\n case 'anyOf': return 'має відповідати одній зі схем у anyOf';\n case 'boolean': return 'схема хибна';\n case 'const': return 'має дорівнювати константі';\n case 'contains': return 'має містити щонайменше 1 дійсний елемент';\n case 'dependencies': return `повинно мати властивості ${error.params.dependencies.join(', ')}, якщо властивість ${error.params.property} присутня`;\n case 'dependentRequired': return `повинно мати властивості ${error.params.dependencies.join(', ')}, якщо властивість ${error.params.property} присутня`;\n case 'enum': return 'має дорівнювати одному з дозволених значень';\n case 'exclusiveMaximum': return `має бути ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `має бути ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `має відповідати формату \"${error.params.format}\"`;\n case 'if': return `має відповідати схемі \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `не повинно мати більше ніж ${error.params.limit} елементів`;\n case 'maxLength': return `не повинно мати більше ніж ${error.params.limit} символів`;\n case 'maxProperties': return `не повинно мати більше ніж ${error.params.limit} властивостей`;\n case 'maximum': return `має бути ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `не повинно мати менше ніж ${error.params.limit} елементів`;\n case 'minLength': return `не повинно мати менше ніж ${error.params.limit} символів`;\n case 'minProperties': return `не повинно мати менше ніж ${error.params.limit} властивостей`;\n case 'minimum': return `має бути ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `має бути кратним ${error.params.multipleOf}`;\n case 'not': return 'не повинно бути дійсним';\n case 'oneOf': return 'має відповідати рівно одній схемі в oneOf';\n case 'pattern': return `має відповідати шаблону \"${error.params.pattern}\"`;\n case 'propertyNames': return `імена властивостей ${error.params.propertyNames.join(', ')} є недійсними`;\n case 'required': return `має містити обов'язкові властивості ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `має бути ${error.params.type}` : `має бути ${error.params.type.join(' або ')}`;\n case 'unevaluatedItems': return 'не повинно мати неперевірених елементів';\n case 'unevaluatedProperties': return 'не повинно мати неперевірених властивостей';\n case 'uniqueItems': return `не повинно мати повторюваних елементів`;\n case '~guard': return `повинно відповідати функції перевірки`;\n case '~refine': return error.params.message;\n default: return 'виникла невідома помилка валідації';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Urdu (Pakistan) - ISO 639-1 language code 'ur' with ISO 3166-1 alpha-2 country code 'PK' for Pakistan. */\nexport function ur_PK(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'اضافی خصوصیات نہیں ہونی چاہیے';\n case 'anyOf': return 'anyOf میں کسی اسکیم سے مماثل ہونا چاہیے';\n case 'boolean': return 'اسکیما غلط ہے';\n case 'const': return 'مستقل کے برابر ہونا چاہیے';\n case 'contains': return 'کم از کم 1 درست آئٹم ہونا چاہیے';\n case 'dependencies': return `اگر خصوصیت ${error.params.property} موجود ہو تو خصوصیات ${error.params.dependencies.join(', ')} ہونی چاہیے`;\n case 'dependentRequired': return `اگر خصوصیت ${error.params.property} موجود ہو تو خصوصیات ${error.params.dependencies.join(', ')} ہونی چاہیے`;\n case 'enum': return 'اجازت یافتہ اقدار میں سے کسی ایک کے برابر ہونا چاہیے';\n case 'exclusiveMaximum': return `ضروری ہے کہ ${error.params.comparison} ${error.params.limit} ہو`;\n case 'exclusiveMinimum': return `ضروری ہے کہ ${error.params.comparison} ${error.params.limit} ہو`;\n case 'format': return `فارمیٹ \"${error.params.format}\" سے مماثل ہونا چاہیے`;\n case 'if': return `\"${error.params.failingKeyword}\" اسکیما سے مماثل ہونا چاہیے`;\n case 'maxItems': return `${error.params.limit} سے زیادہ آئٹمز نہیں ہونے چاہئیں`;\n case 'maxLength': return `${error.params.limit} سے زیادہ حروف نہیں ہونے چاہئیں`;\n case 'maxProperties': return `${error.params.limit} سے زیادہ خصوصیات نہیں ہونی چاہئیں`;\n case 'maximum': return `ضروری ہے کہ ${error.params.comparison} ${error.params.limit} ہو`;\n case 'minItems': return `${error.params.limit} سے کم آئٹمز نہیں ہونے چاہئیں`;\n case 'minLength': return `${error.params.limit} سے کم حروف نہیں ہونے چاہئیں`;\n case 'minProperties': return `${error.params.limit} سے کم خصوصیات نہیں ہونی چاہئیں`;\n case 'minimum': return `ضروری ہے کہ ${error.params.comparison} ${error.params.limit} ہو`;\n case 'multipleOf': return `${error.params.multipleOf} کا گنا ہونا چاہیے`;\n case 'not': return 'درست نہیں ہونا چاہیے';\n case 'oneOf': return 'oneOf میں بالکل ایک اسکیم سے مماثل ہونا چاہیے';\n case 'pattern': return `پیٹرن \"${error.params.pattern}\" سے مماثل ہونا چاہیے`;\n case 'propertyNames': return `خصوصیات کے نام ${error.params.propertyNames.join(', ')} غلط ہیں`;\n case 'required': return `مطلوبہ خصوصیات ${error.params.requiredProperties.join(', ')} ہونی چاہئیں`;\n case 'type': return typeof error.params.type === 'string' ? `ضروری ہے کہ ${error.params.type} ہو` : `ضروری ہے کہ ${error.params.type.join(' یا ')} ہو`;\n case 'unevaluatedItems': return 'غیر تشخیص شدہ آئٹمز نہیں ہونے چاہئیں';\n case 'unevaluatedProperties': return 'غیر تشخیص شدہ خصوصیات نہیں ہونی چاہئیں';\n case 'uniqueItems': return `ڈپلیکیٹ آئٹمز نہیں ہونے چاہئیں`;\n case '~guard': return `چیک فنکشن سے مطابقت ہونی چاہیے`;\n case '~refine': return error.params.message;\n default: return 'تصدیق میں ایک نامعلوم خرابی پیش آئی';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Vietnamese (Vietnam) - ISO 639-1 language code 'vi' with ISO 3166-1 alpha-2 country code 'VN' for Vietnam. */\nexport function vi_VN(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'không được có các thuộc tính bổ sung';\n case 'anyOf': return 'phải khớp với một schema trong bất kỳ trường hợp nào';\n case 'boolean': return 'schema là sai';\n case 'const': return 'phải bằng hằng số';\n case 'contains': return 'phải chứa ít nhất 1 mục hợp lệ';\n case 'dependencies': return `phải có các thuộc tính ${error.params.dependencies.join(', ')} khi thuộc tính ${error.params.property} hiện diện`;\n case 'dependentRequired': return `phải có các thuộc tính ${error.params.dependencies.join(', ')} khi thuộc tính ${error.params.property} hiện diện`;\n case 'enum': return 'phải bằng một trong các giá trị được phép';\n case 'exclusiveMaximum': return `phải là ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `phải là ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `phải khớp với định dạng \"${error.params.format}\"`;\n case 'if': return `phải khớp với schema \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `không được có nhiều hơn ${error.params.limit} mục`;\n case 'maxLength': return `không được có nhiều hơn ${error.params.limit} ký tự`;\n case 'maxProperties': return `không được có nhiều hơn ${error.params.limit} thuộc tính`;\n case 'maximum': return `phải là ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `không được có ít hơn ${error.params.limit} mục`;\n case 'minLength': return `không được có ít hơn ${error.params.limit} ký tự`;\n case 'minProperties': return `không được có ít hơn ${error.params.limit} thuộc tính`;\n case 'minimum': return `phải là ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `phải là bội số của ${error.params.multipleOf}`;\n case 'not': return 'không được hợp lệ';\n case 'oneOf': return 'phải khớp chính xác một schema trong oneOf';\n case 'pattern': return `phải khớp với mẫu \"${error.params.pattern}\"`;\n case 'propertyNames': return `tên thuộc tính ${error.params.propertyNames.join(', ')} không hợp lệ`;\n case 'required': return `phải có các thuộc tính bắt buộc ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `phải là ${error.params.type}` : `phải là một trong ${error.params.type.join(' hoặc ')}`;\n case 'unevaluatedItems': return 'không được có các mục chưa được đánh giá';\n case 'unevaluatedProperties': return 'không được có các thuộc tính chưa được đánh giá';\n case 'uniqueItems': return `không được có các mục trùng lặp`;\n case '~guard': return `phải khớp với hàm kiểm tra`;\n case '~refine': return error.params.message;\n default: return 'đã xảy ra lỗi xác thực không xác định';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Yoruba (Nigeria) - ISO 639-1 language code 'yo' with ISO 3166-1 alpha-2 country code 'NG' for Nigeria. */\nexport function yo_NG(error) {\n switch (error.keyword) {\n case 'additionalProperties': return 'ko gbọdọ ni awọn ohun-ini afikun';\n case 'anyOf': return 'gbọdọ baramu àlàyé kan ninu anyOf';\n case 'boolean': return 'àlàyé jẹ eke';\n case 'const': return 'gbọdọ dọgba pẹlu ifura';\n case 'contains': return 'gbọdọ ni o kere ju nkan 1 ti o wulo';\n case 'dependencies': return `gbọdọ ni awọn ohun-ini ${error.params.dependencies.join(', ')} nigbati ohun-ini ${error.params.property} ba wa`;\n case 'dependentRequired': return `gbọdọ ni awọn ohun-ini ${error.params.dependencies.join(', ')} nigbati ohun-ini ${error.params.property} ba wa`;\n case 'enum': return 'gbọdọ dọgba pẹlu ọkan ninu awọn iye ti a gba laaye';\n case 'exclusiveMaximum': return `gbọdọ jẹ ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `gbọdọ jẹ ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `gbọdọ baramu kika \"${error.params.format}\"`;\n case 'if': return `gbọdọ baramu àlàyé \"${error.params.failingKeyword}\"`;\n case 'maxItems': return `ko gbọdọ ni ju ${error.params.limit} nkan lọ`;\n case 'maxLength': return `ko gbọdọ ni ju ${error.params.limit} ohun kikọ lọ`;\n case 'maxProperties': return `ko gbọdọ ni ju ${error.params.limit} ohun-ini lọ`;\n case 'maximum': return `gbọdọ jẹ ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `ko gbọdọ ni o kere ju ${error.params.limit} nkan lọ`;\n case 'minLength': return `ko gbọdọ ni o kere ju ${error.params.limit} ohun kikọ lọ`;\n case 'minProperties': return `ko gbọdọ ni o kere ju ${error.params.limit} ohun-ini lọ`;\n case 'minimum': return `gbọdọ jẹ ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `gbọdọ jẹ isodipupo ti ${error.params.multipleOf}`;\n case 'not': return 'ko gbọdọ wulo';\n case 'oneOf': return 'gbọdọ baramu àlàyé kan ṣoṣo ninu oneOf';\n case 'pattern': return `gbọdọ baramu apẹrẹ \"${error.params.pattern}\"`;\n case 'propertyNames': return `awọn orukọ ohun-ini ${error.params.propertyNames.join(', ')} ko wulo`;\n case 'required': return `gbọdọ ni awọn ohun-ini ti a beere ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `gbọdọ jẹ ${error.params.type}` : `gbọdọ jẹ boya ${error.params.type.join(' tabi ')}`;\n case 'unevaluatedItems': return 'ko gbọdọ ni awọn ohun ti ko ṣe iṣiro';\n case 'unevaluatedProperties': return 'ko gbọdọ ni awọn ohun-ini ti ko ṣe iṣiro';\n case 'uniqueItems': return `ko gbọdọ ni awọn ohun elo ẹda`;\n case '~guard': return `gbogbo yẹ ki o ba iṣẹ́ ṣàyẹ̀wò mu`;\n case '~refine': return error.params.message;\n default: return 'aṣiṣe ijẹrisi aimọ waye';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Chinese (Simplified) - ISO 639-1 language code 'zh' with script code 'Hans' for Simplified Chinese. */\nexport function zh_Hans(error) {\n switch (error.keyword) {\n case 'additionalProperties': return '不得有额外属性';\n case 'anyOf': return '必须匹配 anyOf 中的一个模式';\n case 'boolean': return '模式为假';\n case 'const': return '必须等于常量';\n case 'contains': return '必须至少包含一个有效项';\n case 'dependencies': return `当属性 ${error.params.property} 存在时,必须具有属性 ${error.params.dependencies.join(', ')}`;\n case 'dependentRequired': return `当属性 ${error.params.property} 存在时,必须具有属性 ${error.params.dependencies.join(', ')}`;\n case 'enum': return '必须等于允许值中的一个';\n case 'exclusiveMaximum': return `必须 ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `必须 ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `必须匹配格式 \"${error.params.format}\"`;\n case 'if': return `必须匹配 \"${error.params.failingKeyword}\" 模式`;\n case 'maxItems': return `不得多于 ${error.params.limit} 项`;\n case 'maxLength': return `不得多于 ${error.params.limit} 个字符`;\n case 'maxProperties': return `不得多于 ${error.params.limit} 个属性`;\n case 'maximum': return `必须 ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `不得少于 ${error.params.limit} 项`;\n case 'minLength': return `不得少于 ${error.params.limit} 个字符`;\n case 'minProperties': return `不得少于 ${error.params.limit} 个属性`;\n case 'minimum': return `必须 ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `必须是 ${error.params.multipleOf} 的倍数`;\n case 'not': return '不得有效';\n case 'oneOf': return '必须精确匹配 oneOf 中的一个模式';\n case 'pattern': return `必须匹配模式 \"${error.params.pattern}\"`;\n case 'propertyNames': return `属性名 ${error.params.propertyNames.join(', ')} 无效`;\n case 'required': return `必须具有必需属性 ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `必须是 ${error.params.type}` : `必须是 ${error.params.type.join(' 或 ')} 之一`;\n case 'unevaluatedItems': return '不得有未评估的项';\n case 'unevaluatedProperties': return '不得有未评估的属性';\n case 'uniqueItems': return `不得有重复项`;\n case '~guard': return `必须与检查函数匹配`;\n case '~refine': return error.params.message;\n default: return '发生未知验证错误';\n }\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-coverage-ignore-start\n/** Chinese (Traditional) - ISO 639-1 language code 'zh' with script code 'Hant' for Traditional Chinese. */\nexport function zh_Hant(error) {\n switch (error.keyword) {\n case 'additionalProperties': return '不得有額外屬性';\n case 'anyOf': return '必須匹配 anyOf 中的一個模式';\n case 'boolean': return '模式為假';\n case 'const': return '必須等於常數';\n case 'contains': return '必須至少包含 1 個有效項目';\n case 'dependencies': return `當屬性 ${error.params.property} 存在時,必須具有屬性 ${error.params.dependencies.join(', ')}`;\n case 'dependentRequired': return `當屬性 ${error.params.property} 存在時,必須具有屬性 ${error.params.dependencies.join(', ')}`;\n case 'enum': return '必須等於允許值中的一個';\n case 'exclusiveMaximum': return `必須 ${error.params.comparison} ${error.params.limit}`;\n case 'exclusiveMinimum': return `必須 ${error.params.comparison} ${error.params.limit}`;\n case 'format': return `必須匹配格式 \"${error.params.format}\"`;\n case 'if': return `必須匹配 \"${error.params.failingKeyword}\" 模式`;\n case 'maxItems': return `不得多於 ${error.params.limit} 個項目`;\n case 'maxLength': return `不得多於 ${error.params.limit} 個字元`;\n case 'maxProperties': return `不得多於 ${error.params.limit} 個屬性`;\n case 'maximum': return `必須 ${error.params.comparison} ${error.params.limit}`;\n case 'minItems': return `不得少於 ${error.params.limit} 個項目`;\n case 'minLength': return `不得少於 ${error.params.limit} 個字元`;\n case 'minProperties': return `不得少於 ${error.params.limit} 個屬性`;\n case 'minimum': return `必須 ${error.params.comparison} ${error.params.limit}`;\n case 'multipleOf': return `必須是 ${error.params.multipleOf} 的倍數`;\n case 'not': return '不得有效';\n case 'oneOf': return '必須精確匹配 oneOf 中的一個模式';\n case 'pattern': return `必須匹配模式 \"${error.params.pattern}\"`;\n case 'propertyNames': return `屬性名稱 ${error.params.propertyNames.join(', ')} 無效`;\n case 'required': return `必須具有必需屬性 ${error.params.requiredProperties.join(', ')}`;\n case 'type': return typeof error.params.type === 'string' ? `必須是 ${error.params.type}` : `必須是 ${error.params.type.join(' 或 ')} 之一`;\n case 'unevaluatedItems': return '不得有未評估的項目';\n case 'unevaluatedProperties': return '不得有未評估的屬性';\n case 'uniqueItems': return `不得有重複項目`;\n case '~guard': return `必須與檢查函數匹配`;\n case '~refine': return error.params.message;\n default: return '發生未知驗證錯誤';\n }\n}\n// deno-coverage-ignore-stop\n","export * from './_config.mjs';\nexport * from './ar_001.mjs';\nexport * from './bn_BD.mjs';\nexport * from './cs_CZ.mjs';\nexport * from './de_DE.mjs';\nexport * from './el_GR.mjs';\nexport * from './en_US.mjs';\nexport * from './es_419.mjs';\nexport * from './es_AR.mjs';\nexport * from './es_ES.mjs';\nexport * from './es_MX.mjs';\nexport * from './fa_IR.mjs';\nexport * from './fil_PH.mjs';\nexport * from './fr_CA.mjs';\nexport * from './fr_CA.mjs';\nexport * from './fr_FR.mjs';\nexport * from './ha_NG.mjs';\nexport * from './hi_IN.mjs';\nexport * from './hu_HU.mjs';\nexport * from './id_ID.mjs';\nexport * from './it_IT.mjs';\nexport * from './ja_JP.mjs';\nexport * from './ko_KR.mjs';\nexport * from './ms_MY.mjs';\nexport * from './nl_NL.mjs';\nexport * from './pl_PL.mjs';\nexport * from './pt_BR.mjs';\nexport * from './pt_PT.mjs';\nexport * from './ro_RO.mjs';\nexport * from './ru_RU.mjs';\nexport * from './sv_SE.mjs';\nexport * from './sw_TZ.mjs';\nexport * from './th_TH.mjs';\nexport * from './tr_TR.mjs';\nexport * from './uk_UA.mjs';\nexport * from './ur_PK.mjs';\nexport * from './vi_VN.mjs';\nexport * from './yo_NG.mjs';\nexport * from './zh_Hans.mjs';\nexport * from './zh_Hant.mjs';\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 { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from './schema.mjs';\n/** Applies a Refine check to the given type. */\nexport function RefineAdd(type, refinement) {\n const refinements = IsRefine(type) ? [...type['~refine'], refinement] : [refinement];\n return Memory.Update(type, { '~refine': refinements }, {});\n}\n/** Applies a Refine check to the given type. */\nexport function Refine(type, refine, message = 'error') {\n return RefineAdd(type, { refine, message });\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TRefine. */\nexport function IsRefine(value) {\n return IsSchema(value) && Guard.HasPropertyKey(value, '~refine');\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 '../types/schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates an Identifier. */\nexport function Identifier(name) {\n return Memory.Create({ '~kind': 'Identifier' }, { name });\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is a TIdentifier. */\nexport function IsIdentifier(value) {\n return IsKind(value, 'Identifier');\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 { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Iterator type. */\nexport function Iterator(iteratorItems, options) {\n return Memory.Create({ '~kind': 'Iterator' }, { type: 'iterator', iteratorItems }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TIterator. */\nexport function IsIterator(value) {\n return IsKind(value, 'Iterator');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TIterator. */\nexport function IteratorOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'iteratorItems']);\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 no-array-constructor\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. */\nfunction _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}\n/** `[Json]` Creates an Object type */\nexport var Object = _Object_; // Required for CommonJS ES Interop\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 { Arguments } from '../../system/arguments/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { Unknown } from './unknown.mjs';\n/** Creates a Parameter type. */\nexport function Parameter(...args) {\n const [name, extends_, equals] = Arguments.Match(args, {\n 3: (name, extends_, equals) => [name, extends_, equals],\n 2: (name, extends_) => [name, extends_, extends_],\n 1: (name) => [name, Unknown(), Unknown()],\n });\n return Memory.Create({ '~kind': 'Parameter' }, { name, extends: extends_, equals }, {});\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TParameter. */\nexport function IsParameter(value) {\n return IsKind(value, 'Parameter');\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 Promise type. */\nexport function Promise(item, options) {\n return Memory.Create({ ['~kind']: 'Promise' }, { type: 'promise', item }, options);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given type is TPromise. */\nexport function IsPromise(value) {\n return IsKind(value, 'Promise');\n}\n// ------------------------------------------------------------------\n// Options\n// ------------------------------------------------------------------\n/** Extracts options from a TPromise. */\nexport function PromiseOptions(type) {\n return Memory.Discard(type, ['~kind', 'type', 'item']);\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';\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 { 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 { Instantiate } from '../engine/instantiate.mjs';\nimport { CreateRecord } from '../engine/record/record-create.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}\nexport function RecordConstruct(key, value, options = {}) {\n return Instantiate({}, RecordDeferred(key, value, options));\n}\n// -------------------------------------------------------------------\n// Factory\n// -------------------------------------------------------------------\n/** Creates a Record type. */\nexport function Record(key, value, options = {}) {\n return RecordConstruct(key, value, options);\n}\n// -------------------------------------------------------------------\n// FromPattern\n// -------------------------------------------------------------------\n/** Creates a Record type from regular expression pattern. */\nexport function RecordFromPattern(key, value) {\n return CreateRecord(key, value);\n}\n/** Returns the raw string pattern used for the Record key */\nexport function RecordPattern(type) {\n return Guard.Keys(type.patternProperties)[0];\n}\n/** Returns the Record key as a TypeBox type */\nexport function RecordKey(type) {\n const pattern = RecordPattern(type);\n const result = (Guard.IsEqual(pattern, IntegerKey) ? Integer() :\n Guard.IsEqual(pattern, NumberKey) ? Number() :\n String());\n return result;\n}\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 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 { 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 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\n// deno-lint-ignore-file \nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Unsafe type. */\nexport function Unsafe(schema) {\n return Memory.Create({ ['~kind']: 'Unsafe' }, {}, schema);\n}\n// ------------------------------------------------------------------\n// Guard\n// ------------------------------------------------------------------\n/** Returns true if the given value is TUnsafe. */\nexport function IsUnsafe(value) {\n return IsKind(value, 'Unsafe');\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 C from '../action/index.mjs';\nimport * as T from '../types/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, 'AsyncIterator') ? T.AsyncIterator(parameters[0]) :\n Guard.IsEqual(ref, 'Iterator') ? T.Iterator(parameters[0]) :\n Guard.IsEqual(ref, 'Promise') ? T.Promise(parameters[0]) :\n Guard.IsEqual(ref, 'Awaited') ? C.AwaitedDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Capitalize') ? C.CapitalizeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'ConstructorParameters') ? C.ConstructorParametersDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Evaluate') ? C.EvaluateDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Exclude') ? C.ExcludeDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Extract') ? C.ExtractDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Index') ? C.IndexDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'InstanceType') ? C.InstanceTypeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Lowercase') ? C.LowercaseDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'NonNullable') ? C.NonNullableDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Omit') ? C.OmitDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Options') ? C.OptionsDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Parameters') ? C.ParametersDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Partial') ? C.PartialDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Pick') ? C.PickDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Readonly') ? C.ReadonlyTypeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'KeyOf') ? C.KeyOfDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Record') ? T.RecordDeferred(parameters[0], parameters[1]) :\n Guard.IsEqual(ref, 'Required') ? C.RequiredDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'ReturnType') ? C.ReturnTypeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Uncapitalize') ? C.UncapitalizeDeferred(parameters[0]) :\n Guard.IsEqual(ref, 'Uppercase') ? C.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 KeywordMapping(input) {\n return 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 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 LiteralMapping(input) {\n return input;\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}\n// deno-coverage-ignore-start\n// ...\nconst FactorIndexArray = (Type, indexArray) => {\n return indexArray.reduceRight((result, right) => {\n const _right = right;\n return (Guard.IsEqual(_right.length, 1) ? C.IndexDeferred(result, _right[0]) :\n Guard.IsEqual(_right.length, 0) ? T.Array(result) :\n Unreachable());\n }, Type);\n};\n// deno-coverage-ignore-stop\nconst FactorExtends = (type, extend) => {\n return Guard.IsEqual(extend.length, 3)\n ? C.ConditionalDeferred(type, extend[0], extend[1], extend[2])\n : type;\n};\nexport function FactorMapping(input) {\n const [keyOf, type, indexArray, extend] = input;\n return keyOf\n ? FactorExtends(C.KeyOfDeferred(FactorIndexArray(type, indexArray)), extend)\n : FactorExtends(FactorIndexArray(type, indexArray), extend);\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 T.ImmutableAdd(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 ? T.ReadonlyAdd(T.OptionalAdd(type)) :\n isReadonly && !isOptional ? T.ReadonlyAdd(type) :\n !isReadonly && isOptional ? T.OptionalAdd(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) ? T.ReadonlyAdd(T.OptionalAdd(input[4])) :\n Guard.IsEqual(input.length, 3) ? input[2] :\n Guard.IsEqual(input.length, 4) ? (Guard.IsEqual(input[2], 'readonly') ? T.ReadonlyAdd(input[3]) : T.OptionalAdd(input[3])) :\n Unreachable());\n}\nexport function ElementReadonlyOptionalMapping(input) {\n return T.ReadonlyAdd(T.OptionalAdd(input[1]));\n}\nexport function ElementReadonlyMapping(input) {\n return T.ReadonlyAdd(input[1]);\n}\nexport function ElementOptionalMapping(input) {\n return T.OptionalAdd(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 TupleMapping(input) {\n return T.Tuple(input[1]);\n}\nexport function ParameterReadonlyOptionalMapping(input) {\n return T.ReadonlyAdd(T.OptionalAdd(input[4]));\n}\nexport function ParameterReadonlyMapping(input) {\n return T.ReadonlyAdd(input[3]);\n}\nexport function ParameterOptionalMapping(input) {\n return T.OptionalAdd(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 ConstructorMapping(input) {\n return T.Constructor(input[2], input[5]);\n}\nfunction ApplyReadonly(state, type) {\n return (Guard.IsEqual(state, 'remove') ? C.ReadonlyRemoveAction(type) :\n Guard.IsEqual(state, 'add') ? C.ReadonlyAddAction(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') ? C.OptionalRemoveAction(type) :\n Guard.IsEqual(state, 'add') ? C.OptionalAddAction(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 MappedMapping(input) {\n return (Guard.IsArray(input[6]) && Guard.IsEqual(input[6].length, 1)\n ? C.MappedDeferred(T.Identifier(input[3]), input[5], input[6][0], ApplyReadonly(input[1], ApplyOptional(input[8], input[10])))\n : C.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 OptionsMapping(input) {\n return C.OptionsDeferred(input[2], input[4]);\n}\nexport function JsonNumberMapping(input) {\n return parseFloat(input);\n}\nexport function JsonBooleanMapping(input) {\n return Guard.IsEqual(input, 'true');\n}\nexport function JsonStringMapping(input) {\n return input;\n}\nexport function JsonNullMapping(input) {\n return null;\n}\nexport function JsonPropertyMapping(input) {\n return { [input[0]]: input[2] };\n}\nexport function JsonPropertyListMapping(input) {\n return Delimited(input);\n}\nfunction JsonObjectMappingReduce(propertyList) {\n return propertyList.reduce((result, left) => {\n return Memory.Assign(result, left);\n }, {});\n}\nexport function JsonObjectMapping(input) {\n return JsonObjectMappingReduce(input[1]);\n}\nexport function JsonElementListMapping(input) {\n return Delimited(input);\n}\nexport function JsonArrayMapping(input) {\n return input[1];\n}\nexport function JsonMapping(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, C.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]]: C.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 C.ModuleDeferred(Memory.Assign(moduleDeclaration, moduleDeclarationList[0]));\n}\nexport function ScriptMapping(input) {\n return input;\n}\n","// deno-coverage-ignore-start - parsebox tested\nimport { IsArray, IsEqual } from './guard.mjs';\n/** Checks the value is a Tuple-2 [string, string] result */\nexport function IsResult(value) {\n return IsArray(value) && IsEqual(value.length, 2);\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual, IsString } 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 const [left, ...right] = variants;\n return (IsString(left)\n ? (() => {\n const result = TakeVariant(left, input);\n return IsEqual(result.length, 2) ? result : Take(right, input);\n })()\n : []);\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 { IsResult } from './result.mjs';\nimport { Take } from './take.mjs';\nfunction IsDiscard(discard, input) {\n return discard.includes(input);\n}\n/** Takes characters from the Input until no-match. The Discard set is used to omit characters from the match */\nexport function Many(allowed, discard, input, result = '') {\n const takeResult = Take(allowed, input);\n return (IsResult(takeResult)\n ? IsDiscard(discard, takeResult[0])\n ? Many(allowed, discard, takeResult[1], result)\n : Many(allowed, discard, takeResult[1], `${result}${takeResult[0]}`)\n : [result, input]);\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './result.mjs';\nimport { Take } from './take.mjs';\n/** Matches the given Value or empty string if no match. This function never fails */\nexport function Optional(value, input) {\n const result = Take([value], input);\n return (IsResult(result)\n ? result\n : ['', input]);\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './internal/result.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Many } from './internal/many.mjs';\nimport { Optional } from './internal/optional.mjs';\nimport { Digit } from './internal/char.mjs';\nimport { Hyphen } from './internal/char.mjs';\nimport { Zero } from './internal/char.mjs';\nimport { NonZero } from './internal/char.mjs';\nimport { UnderScore } from './internal/char.mjs';\nfunction TakeSign(input) {\n return Optional(Hyphen, input);\n}\nfunction TakeNonZero(input) {\n return Take(NonZero, input);\n}\nconst AllowedDigits = [...Digit, UnderScore];\nfunction TakeDigits(input) {\n return Many(AllowedDigits, [UnderScore], input);\n}\nfunction TakeInteger(input) {\n const sign = TakeSign(input);\n return (IsResult(sign) ? (() => {\n const zero = Take([Zero], sign[1]);\n return IsResult(zero)\n ? [`${sign[0]}${zero[0]}`, zero[1]]\n : (() => {\n const nonZero = TakeNonZero(sign[1]);\n return IsResult(nonZero) ? (() => {\n const digits = TakeDigits(nonZero[1]);\n return IsResult(digits)\n ? [`${sign[0]}${nonZero[0]}${digits[0]}`, digits[1]]\n : []; // fail: did not match Digits\n })() : []; // fail: did not match NonZero\n })();\n })() : [] // fail: did not match Sign\n );\n}\n/** Matches if next is a Integer */\nexport function Integer(input) {\n return TakeInteger(Trim(input));\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './internal/result.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Integer } from './integer.mjs';\nfunction TakeBigInt(input) {\n const integer = Integer(input);\n return (IsResult(integer) ? (() => {\n const n = Take(['n'], integer[1]);\n return IsResult(n)\n ? [`${integer[0]}`, n[1]]\n : []; // fail: did not match 'n'\n })() : [] // fail: did not match Integer\n );\n}\n/** Matches if next is a Integer literal with trailing 'n'. Trailing 'n' is omitted in result. */\nexport function BigInt(input) {\n return TakeBigInt(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 { IsResult } from './internal/result.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 const remaining = Take(Remaining, input);\n return (IsResult(remaining)\n ? TakeRemaining(remaining[1], `${result}${remaining[0]}`)\n : [result, input]);\n}\nfunction TakeIdent(input) {\n const initial = TakeInitial(input);\n return (IsResult(initial) ? (() => {\n const remaining = TakeRemaining(initial[1]);\n return IsResult(remaining)\n ? [`${initial[0]}${remaining[0]}`, remaining[1]]\n : []; // fail: did not match Remaining\n })() : [] // fail: did not match Initial\n );\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 { IsResult } from './internal/result.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Many } from './internal/many.mjs';\nimport { Optional } from './internal/optional.mjs';\nimport { Digit, UnderScore } from './internal/char.mjs';\nimport { Dot } from './internal/char.mjs';\nimport { Hyphen } from './internal/char.mjs';\nimport { Integer } from './integer.mjs';\nconst AllowedDigits = [...Digit, UnderScore];\nfunction TakeSign(input) {\n return Optional(Hyphen, input);\n}\nfunction IsLeadingDot(input) {\n return IsResult(Take([Dot], input));\n}\nfunction TakeFractional(input) {\n const digits = Many(AllowedDigits, [UnderScore], input);\n return (IsResult(digits)\n ? IsEqual(digits[0], '')\n ? [] // fail: no Digits\n : [digits[0], digits[1]]\n : [] // fail: did not match Digits\n );\n}\nfunction LeadingDot(sign, input) {\n const dot = Take([Dot], input);\n return (IsResult(dot) ? (() => {\n const fractional = TakeFractional(dot[1]);\n return IsResult(fractional)\n ? [`${sign}0${dot[0]}${fractional[0]}`, fractional[1]]\n : []; // fail: did not match Fractional\n })() : [] // fail: did not match Dot\n );\n}\nfunction LeadingInteger(sign, input) {\n const integer = Integer(input);\n return (IsResult(integer) ? (() => {\n const dot = Take([Dot], integer[1]);\n return IsResult(dot) ? (() => {\n const fractional = TakeFractional(dot[1]);\n return IsResult(fractional)\n ? [`${sign}${integer[0]}${dot[0]}${fractional[0]}`, fractional[1]]\n : [`${sign}${integer[0]}`, dot[1]]; // fail: did not match Fractional, use Integer\n })() : [`${sign}${integer[0]}`, integer[1]]; // fail: did not match Dot, use Integer\n })() : [] // fail: did not match Integer\n );\n}\nfunction TakeNumber(input) {\n const sign = TakeSign(input);\n return (IsResult(sign)\n ? IsLeadingDot(sign[1])\n ? LeadingDot(sign[0], sign[1])\n : LeadingInteger(sign[0], sign[1])\n : [] // fail: did not match Sign\n );\n}\n/** Matches if next is a literal Number */\nexport function Number(input) {\n return TakeNumber(Trim(input));\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsEqual, IsString } from './internal/guard.mjs';\nfunction IsEnd(end, input) {\n const [left, ...right] = end;\n return (IsString(left)\n ? input.startsWith(left)\n ? true\n : IsEnd(right, input)\n : false);\n}\n/** Match Input until but not including End. No match if End not found. */\nexport function Until(end, input, result = '') {\n return (IsEqual(input, '')\n ? [] // fail: Input is empty\n : IsEnd(end, input) ? [result, input] : (() => {\n const [left, right] = [input.slice(0, 1), input.slice(1)];\n return Until(end, right, `${result}${left}`);\n })());\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './internal/result.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { NewLine } from './internal/char.mjs';\nimport { Until } from './until.mjs';\nfunction MultiLine(start, end, input) {\n return (input.startsWith(start) ? (() => {\n const until = Until([end], input.slice(start.length));\n return IsResult(until) ? (() => {\n return until[1].startsWith(end)\n ? [`${until[0]}`, until[1].slice(end.length)]\n : []; // fail: did not match End\n })() : []; // fail: did not match Until\n })() : [] // fail: did not match Start\n );\n}\nfunction SingleLine(start, end, input) {\n return (input.startsWith(start) ? (() => {\n const until = Until([NewLine, end], input.slice(start.length));\n return IsResult(until) ? (() => {\n return until[1].startsWith(end)\n ? [`${until[0]}`, until[1].slice(end.length)]\n : []; // fail: did not match End\n })() : []; // fail: did not match Until\n })() : [] // fail: not match Start\n );\n}\n/** Matches from Start and End capturing everything in-between. Start and End are consumed. */\nexport function Span(start, end, multiLine, input) {\n return (multiLine\n ? MultiLine(start, end, Trim(input))\n : SingleLine(start, end, Trim(input)));\n}\n// deno-coverage-ignore-stop\n","// deno-coverage-ignore-start - parsebox tested\n// deno-fmt-ignore-file\nimport { IsResult } from './internal/result.mjs';\nimport { Take } from './internal/take.mjs';\nimport { Trim } from './internal/trim.mjs';\nimport { Span } from './span.mjs';\nfunction TakeInitial(quotes, input) {\n return Take(quotes, input);\n}\nfunction TakeSpan(quote, input) {\n return Span(quote, quote, false, input);\n}\nfunction TakeString(quotes, input) {\n const initial = TakeInitial(quotes, input);\n return (IsResult(initial)\n ? TakeSpan(initial[0], `${initial[0]}${initial[1]}`)\n : [] // fail: did not match Initial\n );\n}\n/** Matches a literal String with the given quotes */\nexport function String(quotes, input) {\n return TakeString(quotes, 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 { IsResult } from './internal/result.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 const until = Until(end, input);\n return (IsResult(until)\n ? IsEqual(until[0], '')\n ? [] // fail: match has no characters\n : until\n : [] // fail: did not match Until\n );\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\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 Keyword = (input) => If(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], () => [])))))))))))))), ([_0, input]) => [S.KeywordMapping(_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 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 Literal = (input) => If(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], () => [])))), ([_0, input]) => [S.LiteralMapping(_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(Keyword(input), ([_0, input]) => [_0, input], () => If(_Object_(input), ([_0, input]) => [_0, input], () => If(Tuple(input), ([_0, input]) => [_0, input], () => If(TemplateLiteral(input), ([_0, input]) => [_0, input], () => If(Literal(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(Options(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 Factor = (input) => If(If(KeyOf(input), ([_0, input]) => If(Base(input), ([_1, input]) => If(IndexArray(input), ([_2, input]) => If(Extends(input), ([_3, input]) => [[_0, _1, _2, _3], 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.TupleMapping(_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.ConstructorMapping(_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.MappedMapping(_0), input]);\nexport const Reference = (input) => If(Token.Ident(input), ([_0, input]) => [S.ReferenceMapping(_0), input]);\nexport const Options = (input) => If(If(Token.Const('Options', input), ([_0, input]) => If(Token.Const('<', input), ([_1, input]) => If(Type(input), ([_2, input]) => If(Token.Const(',', input), ([_3, input]) => If(JsonObject(input), ([_4, input]) => If(Token.Const('>', input), ([_5, input]) => [[_0, _1, _2, _3, _4, _5], input])))))), ([_0, input]) => [S.OptionsMapping(_0), input]);\nexport const JsonNumber = (input) => If(Token.Number(input), ([_0, input]) => [S.JsonNumberMapping(_0), input]);\nexport const JsonBoolean = (input) => If(If(Token.Const('true', input), ([_0, input]) => [_0, input], () => If(Token.Const('false', input), ([_0, input]) => [_0, input], () => [])), ([_0, input]) => [S.JsonBooleanMapping(_0), input]);\nexport const JsonString = (input) => If(Token.String(['\\\"', '\\''], input), ([_0, input]) => [S.JsonStringMapping(_0), input]);\nexport const JsonNull = (input) => If(Token.Const('null', input), ([_0, input]) => [S.JsonNullMapping(_0), input]);\nexport const JsonProperty = (input) => If(If(PropertyKey(input), ([_0, input]) => If(Token.Const(':', input), ([_1, input]) => If(Json(input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.JsonPropertyMapping(_0), input]);\nexport const JsonPropertyList_0 = (input, result = []) => If(If(JsonProperty(input), ([_0, input]) => If(PropertyDelimiter(input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => JsonPropertyList_0(input, [...result, _0]), () => [result, input]);\nexport const JsonPropertyList = (input) => If(If(JsonPropertyList_0(input), ([_0, input]) => If(If(If(JsonProperty(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.JsonPropertyListMapping(_0), input]);\nexport const JsonObject = (input) => If(If(Token.Const('{', input), ([_0, input]) => If(JsonPropertyList(input), ([_1, input]) => If(Token.Const('}', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.JsonObjectMapping(_0), input]);\nexport const JsonElementList_0 = (input, result = []) => If(If(Json(input), ([_0, input]) => If(Token.Const(',', input), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => JsonElementList_0(input, [...result, _0]), () => [result, input]);\nexport const JsonElementList = (input) => If(If(JsonElementList_0(input), ([_0, input]) => If(If(If(Json(input), ([_0, input]) => [[_0], input]), ([_0, input]) => [_0, input], () => If([[], input], ([_0, input]) => [_0, input], () => [])), ([_1, input]) => [[_0, _1], input])), ([_0, input]) => [S.JsonElementListMapping(_0), input]);\nexport const JsonArray = (input) => If(If(Token.Const('[', input), ([_0, input]) => If(JsonElementList(input), ([_1, input]) => If(Token.Const(']', input), ([_2, input]) => [[_0, _1, _2], input]))), ([_0, input]) => [S.JsonArrayMapping(_0), input]);\nexport const Json = (input) => If(If(JsonNumber(input), ([_0, input]) => [_0, input], () => If(JsonBoolean(input), ([_0, input]) => [_0, input], () => If(JsonString(input), ([_0, input]) => [_0, input], () => If(JsonNull(input), ([_0, input]) => [_0, input], () => If(JsonObject(input), ([_0, input]) => [_0, input], () => If(JsonArray(input), ([_0, input]) => [_0, input], () => [])))))), ([_0, input]) => [S.JsonMapping(_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 { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { TemplateLiteralTypes } from '../../script/parser.mjs';\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - symmetric unreachable\n//\n// Parser is parsing regular expression for strings and will return \n// at least 1 TLiteral at a minumum.\n//\n// ------------------------------------------------------------------\n/** Parses a Template into a TemplateLiteral types */\nexport function ParseTemplateIntoTypes(template) {\n const parsed = TemplateLiteralTypes(`\\`${template}\\``);\n const result = Guard.IsEqual(parsed.length, 2)\n ? parsed[0]\n : Unreachable(); // []\n return result;\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { Deferred } from './deferred.mjs';\nimport { ParseTemplateIntoTypes } from '../engine/patterns/template.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\nimport { Memory } from '../../system/system.mjs';\n/** Creates a deferred TemplateLiteral action. */\nexport function TemplateLiteralDeferred(types, options = {}) {\n return Deferred('TemplateLiteral', [types], options);\n}\nexport function TemplateLiteralFromTypes(types) {\n return Instantiate({}, TemplateLiteralDeferred(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}\n","// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { Pattern } from '../../script/parser.mjs';\n/** Parses a Pattern into a sequence of TemplateLiteral types */\nexport function ParsePatternIntoTypes(pattern) {\n const parsed = Pattern(pattern);\n const result = Guard.IsEqual(parsed.length, 2)\n ? parsed[0]\n : Unreachable(); // []\n return result;\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { IsLiteral } from '../../types/literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nfunction FromLiteral(value) {\n return true;\n}\nfunction FromTypesReduce(types) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? FromType(left)\n ? FromTypesReduce(right)\n : false\n : 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 TemplateLiteralFinite(types) {\n const result = FromTypes(types);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { String } from '../../types/string.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { ParsePatternIntoTypes } from '../patterns/pattern.mjs';\nimport { TemplateLiteralFinite } from './finite.mjs';\nfunction FromLiteralPush(variants, value, result = []) {\n const [left, ...right] = variants;\n return (Guard.IsString(left) ? 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 const [left, ...right] = types;\n return (IsSchema(left)\n ? FromUnion(variants, right, [...result, ...FromType(variants, left)])\n : 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 const [left, ...right] = types;\n return (IsSchema(left) ? 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/** Decodes a TemplateLiteral into a Type. If the TemplateLiteral yields a non-finite set, the return value is TString */\nexport function TemplateLiteralDecode(pattern) {\n const types = ParsePatternIntoTypes(pattern);\n const finite = TemplateLiteralFinite(types);\n const result = finite\n ? DecodeTypes(types)\n : String();\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Union } from '../../types/union.mjs';\nimport { Literal } from '../../types/literal.mjs';\nimport { Null } from '../../types/null.mjs';\nimport { Never } from '../../types/never.mjs';\nfunction FromEnumValue(value) {\n return (Guard.IsString(value) || Guard.IsNumber(value) ? Literal(value) :\n Guard.IsNull(value) ? Null() :\n Never());\n}\nexport function EnumValuesToVariants(values) {\n const result = values.map(value => FromEnumValue(value));\n return result;\n}\nexport function EnumValuesToUnion(values) {\n const variants = EnumValuesToVariants(values);\n const result = Union(variants);\n return result;\n}\nexport function EnumToUnion(type) {\n const result = EnumValuesToUnion(type.enum);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\nimport { IsAny } from '../types/any.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 { TemplateLiteralDecode } from '../engine/template-literal/decode.mjs';\nimport { EnumValuesToUnion } from '../engine/enum/index.mjs';\nfunction ExtendsRightInfer(inferred, name, left, right) {\n const check = ExtendsLeft(inferred, left, right);\n return (Result.IsExtendsTrueLike(check)\n ? Result.ExtendsTrue(Memory.Assign(Memory.Assign(inferred, check.inferred), { [name]: left }))\n : Result.ExtendsFalse());\n}\nfunction ExtendsRightAny(inferred, left) {\n return Result.ExtendsTrue(inferred);\n}\nfunction ExtendsRightEnum(inferred, left, right) {\n const union = EnumValuesToUnion(right);\n return ExtendsLeft(inferred, left, union);\n}\nfunction ExtendsRightIntersect(inferred, left, right) {\n const [head, ...tail] = right;\n return (IsSchema(head) ? (() => {\n const check = ExtendsLeft(inferred, left, head);\n return Result.IsExtendsTrueLike(check)\n ? ExtendsRightIntersect(check.inferred, left, tail)\n : Result.ExtendsFalse();\n })() : Result.ExtendsTrue(inferred));\n}\nfunction ExtendsRightTemplateLiteral(inferred, left, right) {\n const decoded = TemplateLiteralDecode(right);\n return ExtendsLeft(inferred, left, decoded);\n}\nfunction ExtendsRightUnion(inferred, left, right) {\n const [head, ...tail] = right;\n return (IsSchema(head) ? (() => {\n const check = ExtendsLeft(inferred, left, head);\n return Result.IsExtendsTrueLike(check)\n ? Result.ExtendsTrue(check.inferred)\n : ExtendsRightUnion(inferred, left, tail);\n })() : Result.ExtendsFalse());\n}\nexport function ExtendsRight(inferred, left, right) {\n return (IsAny(right) ? ExtendsRightAny(inferred, left) :\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 { AsyncIterator, IsAsyncIterator } from '../types/async-iterator.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nexport function ExtendsAsyncIterator(inferred, left, right) {\n return (IsAsyncIterator(right)\n ? ExtendsLeft(inferred, left, right.iteratorItems)\n : ExtendsRight(inferred, AsyncIterator(left), 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 { IsInfer } from '../types/infer.mjs';\nimport { IsSchema } from '../types/schema.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 const check = ExtendsLeft(inferred, checkLeft, checkRight);\n return (!isLeftOptional && isRightOptional\n ? Result.ExtendsFalse()\n : Result.IsExtendsTrueLike(check)\n ? ExtendsParameters(check.inferred, leftRest, rightRest)\n : Result.ExtendsFalse());\n}\nfunction ParameterRight(inferred, left, leftRest, rightRest) {\n const [head, ...tail] = rightRest;\n return (IsSchema(head)\n ? ParameterCompare(inferred, left, leftRest, head, tail)\n : IsOptional(left) // 'right-did-not-have-enough-elements'\n ? Result.ExtendsTrue(inferred) // 'ok: left was optional'\n : Result.ExtendsFalse() // 'fail: left was required'\n );\n}\nfunction ParametersLeft(inferred, left, rightRest) {\n const [head, ...tail] = left;\n return (IsSchema(head)\n ? ParameterRight(inferred, head, tail, rightRest)\n : Result.ExtendsTrue(inferred));\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 { IsConstructor } from '../types/constructor.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 (IsConstructor(right) ? (() => {\n const check = ExtendsParameters(inferred, parameters, right.parameters);\n return Result.IsExtendsTrueLike(check)\n ? ExtendsReturnType(check.inferred, returnType, right.instanceType)\n : Result.ExtendsFalse();\n })() : Result.ExtendsFalse());\n}\n","// deno-fmt-ignore-file\nimport { ExtendsLeft } from './extends-left.mjs';\nimport { EnumToUnion } from '../engine/enum/index.mjs';\nexport function ExtendsEnum(inferred, left, right) {\n return ExtendsLeft(inferred, EnumToUnion(left), right);\n}\n","// deno-fmt-ignore-file\nimport { IsFunction } from '../types/function.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 (IsFunction(right) ? (() => {\n const check = ExtendsParameters(inferred, parameters, right.parameters);\n return Result.IsExtendsTrueLike(check)\n ? ExtendsReturnType(check.inferred, returnType, right.returnType)\n : Result.ExtendsFalse();\n })() : Result.ExtendsFalse());\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 { 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 { 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\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 { ReadonlyAdd, ReadonlyRemove, IsReadonly } from '../../types/_readonly.mjs';\nimport { OptionalAdd, OptionalRemove, 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 { 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 = ReadonlyRemove(OptionalRemove(evaluated));\n return (isReadonly && isOptional ? ReadonlyAdd(OptionalAdd(property)) :\n isReadonly && !isOptional ? ReadonlyAdd(property) :\n !isReadonly && isOptional ? OptionalAdd(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 { IsSchema } from '../../types/schema.mjs';\nimport { IsIntersect } from '../../types/intersect.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 CanDistribute(type) {\n return IsObject(type) || IsTuple(type);\n}\nfunction DistributeNormalize(type) {\n return (IsIntersect(type)\n ? EvaluateIntersect(type.allOf)\n : type);\n}\nfunction DistributeOperation(left, right) {\n const normalLeft = DistributeNormalize(left);\n const normalRight = DistributeNormalize(right);\n const isObjectLeft = CanDistribute(normalLeft);\n const IsObjectRight = CanDistribute(normalRight);\n const result = (isObjectLeft && IsObjectRight ? Composite(EvaluateType(normalLeft), normalRight) :\n isObjectLeft && !IsObjectRight ? EvaluateType(normalLeft) :\n !isObjectLeft && IsObjectRight ? normalRight :\n Narrow(EvaluateType(normalLeft), normalRight));\n return result;\n}\nfunction DistributeType(type, types, result = []) {\n const [left, ...right] = types;\n return (!Guard.IsUndefined(left) // TSchema[]\n ? DistributeType(type, right, [...result, DistributeOperation(type, left)])\n : result.length === 0\n ? [type]\n : result);\n}\nfunction DistributeUnion(types, distribution, result = []) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? DistributeUnion(right, distribution, [...result, ...Distribute([left], distribution)])\n : result);\n}\nexport function Distribute(types, result = []) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? IsUnion(left)\n ? Distribute(right, DistributeUnion(left.anyOf, result))\n : Distribute(right, DistributeType(left, result))\n : result);\n}\n","// deno-fmt-ignore-file\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { Distribute } from './distribute.mjs';\nimport { Broaden } from './broaden.mjs';\nexport function EvaluateIntersect(types) {\n const distribution = Distribute(types);\n const result = Broaden(distribution);\n return result;\n}\nexport function EvaluateUnion(types) {\n const result = Broaden(types);\n return result;\n}\nexport function EvaluateType(type) {\n return (IsIntersect(type) ? EvaluateIntersect(type.allOf) :\n IsUnion(type) ? EvaluateUnion(type.anyOf) :\n type);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.mjs';\nimport { IsAny } from '../../types/any.mjs';\nimport { Never } from '../../types/never.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { Union } from '../../types/union.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, result = []) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? IsObject(left)\n ? BroadenTypes(right, [...result, left]) // special: push object type\n : BroadenTypes(right, BroadenType(left, result))\n : result);\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 const result = (flattened.length === 0 ? Never() :\n flattened.length === 1 ? flattened[0] :\n Union(flattened));\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nimport { EvaluateType } from './evaluate.mjs';\nfunction EvaluateImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(EvaluateType(instantiatedType), {}, options);\n}\nexport function EvaluateInstantiate(context, state, type, options) {\n return (\n // [instantiation-rule]\n //\n // Evaluate instantiation should never defer on instantiate as the caller is specifically \n // requesting that the type be evaluated in whatever context is available. However, actions \n // embedded in the Evaluate call may defer local to themselves.\n EvaluateImmediate(context, state, type, options));\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 { Iterator, IsIterator } from '../types/iterator.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nexport function ExtendsIterator(inferred, left, right) {\n return (IsIterator(right)\n ? ExtendsLeft(inferred, left, right.iteratorItems)\n : ExtendsRight(inferred, Iterator(left), right));\n}\n","// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/unreachable.mjs';\nimport { Guard } from '../../guard/index.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-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 { 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) ? Result.ExtendsFalse() : (() => {\n const check = ExtendsLeft(inferred, left, right);\n return (Result.IsExtendsTrueLike(check)\n ? ExtendsPropertyOptional(check.inferred, left, right)\n : Result.ExtendsFalse());\n })());\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}\nexport function ExtendsObject(inferred, left, right) {\n return (IsObject(right)\n ? ExtendsObjectToObject(inferred, left, right.properties)\n : ExtendsRight(inferred, Object(left), right));\n}\n","// deno-fmt-ignore-file\nimport { Promise, IsPromise } from '../types/promise.mjs';\nimport { ExtendsRight } from './extends-right.mjs';\nimport { ExtendsLeft } from './extends-left.mjs';\nexport function ExtendsPromise(inferred, left, right) {\n return (IsPromise(right)\n ? ExtendsLeft(inferred, left, right.item)\n : ExtendsRight(inferred, Promise(left), right));\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 { TemplateLiteralDecode } from '../engine/template-literal/decode.mjs';\nexport function ExtendsTemplateLiteral(inferred, left, right) {\n const decoded = TemplateLiteralDecode(left);\n return ExtendsLeft(inferred, decoded, right);\n}\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';\n// ----------------------------------------------------------------------------\n// Schematics\n// ----------------------------------------------------------------------------\nimport { IsSchema } from '../types/schema.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 const [head, ...tail] = rest;\n return (IsSchema(head)\n ? (() => {\n const check = ExtendsLeft({}, head, right);\n return Result.IsExtendsTrueLike(check)\n ? TryInferResults(tail, right, [...result, head])\n : undefined;\n })() : 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';\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 const check = ExtendsLeft(inferred, left, right);\n return (Result.IsExtendsTrueLike(check)\n ? Elements(check.inferred, reversed, leftRest, rightRest)\n : Result.ExtendsFalse() // 'left-and-right-not-compared'\n );\n}\nfunction ElementsLeft(inferred, reversed, leftRest, right, rightRest) {\n const inferable = TryRestInferable(right);\n return (IsInferable(inferable)\n ? InferTupleResult(inferred, inferable.name, ApplyReverse(leftRest, reversed), inferable.type)\n : (() => {\n const [head, ...tail] = leftRest;\n return IsSchema(head)\n ? ElementsCompare(inferred, reversed, head, tail, right, rightRest)\n : Result.ExtendsFalse();\n })());\n}\nfunction ElementsRight(inferred, reversed, leftRest, rightRest) {\n const [head, ...tail] = rightRest;\n return (IsSchema(head)\n ? ElementsLeft(inferred, reversed, leftRest, head, tail)\n : 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 );\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, { callstack: [] }, 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 // @ts-ignore 4.9.5 fails to see `type` property on inferrable\n ? InferUnionResult(inferred, inferrable.name, left, inferrable.type)\n : (() => {\n const [head, ...tail] = left;\n return IsSchema(head)\n ? (() => {\n const check = ExtendsLeft(inferred, head, right);\n return Result.IsExtendsTrueLike(check)\n ? ExtendsTupleToArray(check.inferred, tail, right)\n : Result.ExtendsFalse();\n })()\n : Result.ExtendsTrue(inferred);\n })());\n}\nexport function ExtendsTuple(inferred, left, right) {\n const instantiatedLeft = InstantiateElements(inferred, { callstack: [] }, 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 { IsSchema } from '../types/schema.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 const [head, ...tail] = unionTypes;\n return (IsSchema(head) ? (() => {\n const check = ExtendsLeft(inferred, type, head);\n return Result.IsExtendsTrueLike(check)\n ? Result.ExtendsTrue(check.inferred)\n : ExtendsUnionSome(inferred, type, tail);\n })() : Result.ExtendsFalse());\n}\nfunction ExtendsUnionLeft(inferred, left, right) {\n const [head, ...tail] = left;\n return (IsSchema(head) ? (() => {\n const check = ExtendsUnionSome(inferred, head, right);\n return Result.IsExtendsTrueLike(check)\n ? ExtendsUnionLeft(check.inferred, tail, right)\n : Result.ExtendsFalse();\n })() : 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 { ExtendsAsyncIterator } from './async-iterator.mjs';\nimport { ExtendsBigInt } from './bigint.mjs';\nimport { ExtendsBoolean } from './boolean.mjs';\nimport { ExtendsConstructor } from './constructor.mjs';\nimport { ExtendsEnum } from './enum.mjs';\nimport { ExtendsFunction } from './function.mjs';\nimport { ExtendsInteger } from './integer.mjs';\nimport { ExtendsIntersect } from './intersect.mjs';\nimport { ExtendsIterator } from './iterator.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 { ExtendsPromise } from './promise.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 { IsAsyncIterator } from '../types/async-iterator.mjs';\nimport { IsBigInt } from '../types/bigint.mjs';\nimport { IsBoolean } from '../types/boolean.mjs';\nimport { IsConstructor } from '../types/constructor.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 { IsIterator } from '../types/iterator.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 { IsPromise } from '../types/promise.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 IsAsyncIterator(left) ? ExtendsAsyncIterator(inferred, left.iteratorItems, 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 IsEnum(left) ? ExtendsEnum(inferred, left, 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 IsIterator(left) ? ExtendsIterator(inferred, left.iteratorItems, 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 IsPromise(left) ? ExtendsPromise(inferred, left.item, 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 { Guard } from '../../guard/index.mjs';\nimport { IsSchema } from '../types/schema.mjs';\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Interface action. */\nexport function InterfaceDeferred(heritage, properties, options = {}) {\n return Deferred('Interface', [heritage, properties], options);\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 Instantiate({}, InterfaceDeferred(heritage, properties, options));\n}\n","// deno-fmt-ignore-file\nimport { IsSchema } from '../../types/schema.mjs';\nimport { IsArray } from '../../types/array.mjs';\nimport { IsAsyncIterator } from '../../types/async-iterator.mjs';\nimport { IsConstructor } from '../../types/constructor.mjs';\nimport { IsFunction } from '../../types/function.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsIterator } from '../../types/iterator.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsPromise } from '../../types/promise.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 const [left, ...right] = types;\n return (IsSchema(left)\n ? FromType(stack, context, left)\n ? true\n : FromTypes(stack, context, right)\n : 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 IsAsyncIterator(type) ? FromType(stack, context, type.iteratorItems) :\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 IsIterator(type) ? FromType(stack, context, type.iteratorItems) :\n IsObject(type) ? FromProperties(stack, context, type.properties) :\n IsPromise(type) ? FromType(stack, context, type.item) :\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 { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { PropertyKeys } from '../../types/properties.mjs';\nimport { CyclicCheck } from './check.mjs';\nfunction ResolveCandidateKeys(context, keys) {\n return keys.reduce((result, left) => {\n return left in context\n ? CyclicCheck([left], context, context[left])\n ? [...result, left]\n : result\n : Unreachable();\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 { IsAsyncIterator } from '../../types/async-iterator.mjs';\nimport { IsConstructor } from '../../types/constructor.mjs';\nimport { IsFunction } from '../../types/function.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { IsIterator } from '../../types/iterator.mjs';\nimport { IsObject } from '../../types/object.mjs';\nimport { IsPromise } from '../../types/promise.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 IsAsyncIterator(type) ? FromType(context, type.iteratorItems, 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 IsIterator(type) ? FromType(context, type.iteratorItems, result) :\n IsObject(type) ? FromProperties(context, type.properties, result) :\n IsPromise(type) ? FromType(context, type.item, 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, IsArray, ArrayOptions } from '../../types/array.mjs';\nimport { AsyncIterator, IsAsyncIterator } from '../../types/async-iterator.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 { Iterator, IsIterator } from '../../types/iterator.mjs';\nimport { Object, IsObject } from '../../types/object.mjs';\nimport { Promise, IsPromise } from '../../types/promise.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 IsAsyncIterator(type) ? AsyncIterator(FromType(type.iteratorItems)) :\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 IsIterator(type) ? Iterator(FromType(type.iteratorItems)) :\n IsObject(type) ? Object(FromProperties(type.properties)) :\n IsPromise(type) ? Promise(FromType(type.item)) :\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-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 { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nfunction CyclicInterface(context, heritage, properties) {\n const instantiatedHeritage = InstantiateTypes(context, { callstack: [] }, heritage);\n const instantiatedProperties = InstantiateProperties({}, { callstack: [] }, 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 { ExtendsLeft } from './extends-left.mjs';\nimport { CyclicExtends } from '../engine/cyclic/index.mjs';\nfunction Normal(type) {\n return (IsCyclic(type)\n ? CyclicExtends(type)\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 normalLeft = Normal(left);\n const normalRight = Normal(right);\n return ExtendsLeft(inferred, normalLeft, normalRight);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsSchema } from '../../types/schema.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, extends: extends_, received: type };\n // @ts-ignore - no definition for { cause } options \n throw new Error('Generic argument does not satify 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 const [left, ...right] = arguments_;\n return (IsSchema(left)\n ? BindParameters(BindArgument(context, state, parameterLeft['name'], instantiatedExtends, left), state, parameterRight, right)\n : BindParameters(BindArgument(context, state, parameterLeft['name'], instantiatedExtends, instantiatedEquals), state, parameterRight, []));\n}\nfunction BindParameters(context, state, parameters, arguments_) {\n const [left, ...right] = parameters;\n return (IsSchema(left)\n ? BindArguments(context, state, left, right, arguments_)\n : 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 { InstantiateType } from '../instantiate.mjs';\nimport { InstantiateTypes } from '../instantiate.mjs';\n// ----------------------------------------------------------------------------\n// Call: Infrastructure\n// ----------------------------------------------------------------------------\nimport { ResolveTarget } from './resolve-target.mjs';\nimport { ResolveArgumentsContext } from './resolve-arguments.mjs';\nfunction Peek(callstack) {\n return (Guard.IsGreaterThan(callstack.length, 0) ? callstack[0] : '');\n}\nfunction DeferredCall(context, state, target, arguments_) {\n const instantiatedArguments = InstantiateTypes(context, state, arguments_);\n const deferredCall = CallConstruct(target, instantiatedArguments);\n return deferredCall;\n}\nfunction TailCall(context, state, name, arguments_) {\n const deferredCall = DeferredCall(context, state, Ref(name), arguments_);\n return deferredCall;\n}\nfunction HeadCall(context, state, name, parameters, expression, arguments_) {\n const instantiatedArguments = InstantiateTypes(context, state, arguments_);\n const argumentsContext = ResolveArgumentsContext(context, state, parameters, instantiatedArguments);\n const returnType = InstantiateType(argumentsContext, { callstack: [...state.callstack, name] }, expression);\n return InstantiateType(context, state, returnType);\n}\nexport function CallInstantiate(context, state, target, arguments_) {\n const [name, type] = ResolveTarget(context, target, arguments_);\n return (IsGeneric(type)\n ? Guard.IsEqual(Peek(state.callstack), name)\n ? TailCall(context, state, name, arguments_)\n : HeadCall(context, state, name, type.parameters, type.expression, arguments_)\n : DeferredCall(context, state, target, arguments_));\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../system/memory/index.mjs';\nimport { IsKind } from './schema.mjs';\nimport { CallInstantiate } from '../engine/call/instantiate.mjs';\nexport function CallConstruct(target, arguments_) {\n return Memory.Create({ ['~kind']: 'Call' }, { target, arguments: arguments_ }, {});\n}\n// ------------------------------------------------------------------\n// Factory\n// ------------------------------------------------------------------\n/** Creates a Call type. */\nexport function Call(target, arguments_) {\n return CallInstantiate({}, { callstack: [] }, 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 { IsPromise } from '../../types/promise.mjs';\nimport { AwaitedDeferred } from '../../action/awaited.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction AwaitedAction(type) {\n return (IsPromise(type)\n ? AwaitedAction(type.item)\n : type);\n}\nfunction AwaitedImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(AwaitedAction(instantiatedType), {}, options);\n}\nexport function AwaitedInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? AwaitedImmediate(context, state, type, options)\n : AwaitedDeferred(type, 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 { TemplateLiteralDecode } from '../template-literal/decode.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromTemplateLiteral(mapping, pattern) {\n const decoded = TemplateLiteralDecode(pattern);\n const result = FromType(mapping, decoded);\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 { Instantiate } from '../engine/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 Instantiate({}, CapitalizeDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, LowercaseDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, UncapitalizeDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, UppercaseDeferred(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();\nfunction CapitalizeImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(CapitalizeMapping, instantiatedType), {}, options);\n}\nexport function CapitalizeInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? CapitalizeImmediate(context, state, type, options)\n : CapitalizeDeferred(type, options));\n}\nfunction LowercaseImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(LowercaseMapping, instantiatedType), {}, options);\n}\nexport function LowercaseInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? LowercaseImmediate(context, state, type, options)\n : LowercaseDeferred(type, options));\n}\nfunction UncapitalizeImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(UncapitalizeMapping, instantiatedType), {}, options);\n}\nexport function UncapitalizeInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? UncapitalizeImmediate(context, state, type, options)\n : UncapitalizeDeferred(type, options));\n}\nfunction UppercaseImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(UppercaseMapping, instantiatedType), {}, options);\n}\nexport function UppercaseInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? UppercaseImmediate(context, state, type, options)\n : UppercaseDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } 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 Instantiate({}, ConditionalDeferred(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 ConditionalImmediate(context, state, left, right, true_, false_, options) {\n const instantiatedLeft = InstantiateType(context, state, left);\n const instantiatedRight = InstantiateType(context, state, right);\n const extendsResult = Extends(context, instantiatedLeft, instantiatedRight);\n return Memory.Update((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_)), {}, options);\n}\nexport function ConditionalInstantiate(context, state, left, right, true_, false_, options) {\n return (CanInstantiate(context, [left, right])\n ? ConditionalImmediate(context, state, left, right, true_, false_, options)\n : ConditionalDeferred(left, right, true_, false_, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, ConstructorParametersDeferred(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 { Tuple } from '../../types/tuple.mjs';\nimport { ConstructorParametersDeferred } from '../../action/constructor-parameters.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction ConstructorParametersAction(type) {\n return (IsConstructor(type)\n ? InstantiateType({}, { callstack: [] }, Tuple(type.parameters))\n : Never());\n}\nfunction ConstructorParametersImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(ConstructorParametersAction(instantiatedType), {}, options);\n}\nexport function ConstructorParametersInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? ConstructorParametersImmediate(context, state, type, options)\n : ConstructorParametersDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, ExcludeDeferred(left, right, options));\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { EnumValuesToVariants } from '../enum/index.mjs';\nimport { EvaluateUnion, Flatten } from '../evaluate/index.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { ExcludeDeferred } from '../../action/exclude.mjs';\nfunction ExcludeUnion(types, right) {\n return types.reduce((result, head) => {\n return [...result, ...ExcludeType(head, right)];\n }, []);\n}\nfunction ExcludeType(left, right) {\n const check = Extends({}, left, right);\n const result = ExtendsResult.IsExtendsTrueLike(check) ? [] : [left];\n return result;\n}\nfunction ExcludeAction(left, right) {\n const remaining = (IsEnum(left) ? ExcludeUnion(EnumValuesToVariants(left.enum), right) :\n IsUnion(left) ? ExcludeUnion(Flatten(left.anyOf), right) :\n ExcludeType(left, right));\n const result = EvaluateUnion(remaining);\n return result;\n}\nfunction ExcludeImmediate(context, state, left, right, options) {\n const instantiatedLeft = InstantiateType(context, state, left);\n const instantiatedRight = InstantiateType(context, state, right);\n return Memory.Update(ExcludeAction(instantiatedLeft, instantiatedRight), {}, options);\n}\nexport function ExcludeInstantiate(context, state, left, right, options) {\n return (CanInstantiate(context, [left, right])\n ? ExcludeImmediate(context, state, left, right, options)\n : ExcludeDeferred(left, right, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, ExtractDeferred(left, right, options));\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { Extends, ExtendsResult } from '../../extends/index.mjs';\nimport { EnumValuesToVariants } from '../enum/index.mjs';\nimport { EvaluateUnion, Flatten } from '../evaluate/index.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { ExtractDeferred } from '../../action/extract.mjs';\nfunction ExtractUnion(types, right) {\n return types.reduce((result, head) => {\n return [...result, ...ExtractType(head, right)];\n }, []);\n}\nfunction ExtractType(left, right) {\n const check = Extends({}, left, right);\n const result = ExtendsResult.IsExtendsTrueLike(check) ? [left] : [];\n return result;\n}\nfunction ExtractAction(left, right) {\n const remaining = (IsEnum(left) ? ExtractUnion(EnumValuesToVariants(left.enum), right) :\n IsUnion(left) ? ExtractUnion(Flatten(left.anyOf), right) :\n ExtractType(left, right));\n const result = EvaluateUnion(remaining);\n return result;\n}\nfunction ExtractImmediate(context, state, left, right, options) {\n const instantiatedLeft = InstantiateType(context, state, left);\n const instantiatedRight = InstantiateType(context, state, right);\n return Memory.Update(ExtractAction(instantiatedLeft, instantiatedRight), {}, options);\n}\nexport function ExtractInstantiate(context, state, left, right, options) {\n return (CanInstantiate(context, [left, right])\n ? ExtractImmediate(context, state, left, right, options)\n : ExtractDeferred(left, right, options));\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-fmt-ignore-file\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 = ExtendsResult.IsExtendsTrueLike(check) ? type : 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';\nexport function FromUnion(types) {\n return types.reduce((result, left) => {\n return [...result, ...FromType(left)];\n }, []);\n}\n","// deno-fmt-ignore-file\nimport { EnumValuesToVariants } from '../enum/enum-to-union.mjs';\nimport { FromUnion } from './from-union.mjs';\nexport function FromEnum(values) {\n const variants = EnumValuesToVariants(values);\n const result = FromUnion(variants);\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 { TemplateLiteralDecode } from '../template-literal/decode.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromTemplateLiteral(pattern) {\n const decoded = TemplateLiteralDecode(pattern);\n const result = FromType(decoded);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.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 { 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 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 { EvaluateUnion } from '../evaluate/evaluate.mjs';\nimport { ToIndexableKeys } from '../indexable/to-indexable-keys.mjs';\nfunction SelectProperty(properties, indexer) {\n const result = indexer in properties ? [properties[indexer]] : [];\n return result;\n}\nfunction SelectProperties(properties, indexer) {\n return indexer.reduce((result, left) => {\n return [...result, ...SelectProperty(properties, left)];\n }, []);\n}\nexport function FromObject(properties, indexer) {\n const keys = ToIndexableKeys(indexer);\n const variants = SelectProperties(properties, keys);\n const result = EvaluateUnion(variants);\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-fmt-ignore-file\nimport { Literal } from '../../types/literal.mjs';\nimport { IsNumber } from '../../types/number.mjs';\nimport { IsInteger } from '../../types/integer.mjs';\nimport { EvaluateUnion } 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 EvaluateUnion(elements);\n}\nfunction FromTupleWithoutIndexer(types) {\n return EvaluateUnion(types);\n}\nexport function FromTuple(types, indexer) {\n return (IsNumber(indexer) || IsInteger(indexer)\n ? FromTupleWithoutIndexer(types)\n : FromTupleWithIndexer(types, indexer));\n}\n","// deno-fmt-ignore-file\nimport { Literal, IsLiteralValue } from '../../types/literal.mjs';\nimport { Union } from '../../types/union.mjs';\nfunction KeysToLiterals(keys) {\n return keys.reduce((result, left) => {\n return IsLiteralValue(left)\n ? [...result, Literal(left)]\n : result;\n }, []);\n}\nexport function KeysToIndexer(keys) {\n const literals = KeysToLiterals(keys);\n const result = Union(literals);\n return result;\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 { Instantiate } from '../engine/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 Instantiate({}, IndexDeferred(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 { 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 { Unreachable } from '../../../system/unreachable/index.mjs';\nimport { Guard } from '../../../guard/index.mjs';\nimport { IsSchema } from '../../types/schema.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 const [left, ...right] = types;\n return (IsSchema(left)\n ? ReduceVariants(right, CollapseUnionProperties(result, FromType(left)))\n : result);\n}\nexport function FromUnion(types) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? ReduceVariants(right, FromType(left))\n : Unreachable());\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.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 { 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 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\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsArray } from '../../types/array.mjs';\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsIntersect } from '../../types/intersect.mjs';\nimport { Never } from '../../types/never.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 { FromObject } from './from-object.mjs';\nimport { FromTuple } from './from-tuple.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nimport { IndexDeferred } from '../../action/indexed.mjs';\nimport { CollapseToObject } from '../object/index.mjs';\nfunction NormalizeType(type) {\n const result = (IsCyclic(type) || IsIntersect(type) || IsUnion(type) ? CollapseToObject(type) :\n type);\n return result;\n}\nfunction IndexAction(type, indexer) {\n const normal = NormalizeType(type);\n return (IsArray(normal) ? FromArray(normal.items, indexer) :\n IsObject(normal) ? FromObject(normal.properties, indexer) :\n IsTuple(normal) ? FromTuple(normal.items, indexer) :\n Never());\n}\nfunction IndexImmediate(context, state, type, indexer, options) {\n const instantiatedType = InstantiateType(context, state, type);\n const instantiatedIndexer = InstantiateType(context, state, indexer);\n return Memory.Update(IndexAction(instantiatedType, instantiatedIndexer), {}, options);\n}\nexport function IndexInstantiate(context, state, type, indexer, options) {\n return (CanInstantiate(context, [type, indexer])\n ? IndexImmediate(context, state, type, indexer, options)\n : IndexDeferred(type, indexer, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, InstanceTypeDeferred(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 InstanceTypeAction(type) {\n return (IsConstructor(type)\n ? type.instanceType\n : Never());\n}\nexport function InstanceTypeImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(InstanceTypeAction(instantiatedType), {}, options);\n}\nexport function InstanceTypeInstantiate(context, state, type, options = {}) {\n return (CanInstantiate(context, [type])\n ? InstanceTypeImmediate(context, state, type, options)\n : InstanceTypeDeferred(type, options));\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 InterfaceImmediate(context, state, heritage, properties, options) {\n const instantiatedHeritage = InstantiateTypes(context, { callstack: [] }, heritage);\n const instantiatedProperties = InstantiateProperties(context, { callstack: [] }, properties);\n const evaluatedInterface = EvaluateIntersect([...instantiatedHeritage, Object(instantiatedProperties)]);\n return Memory.Update(evaluatedInterface, {}, options);\n}\nexport function InterfaceInstantiate(context, state, heritage, properties, options) {\n return (CanInstantiate(context, heritage)\n ? InterfaceImmediate(context, state, heritage, properties, options)\n : InterfaceDeferred(heritage, properties, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, KeyOfDeferred(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 { EvaluateUnion } 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 = EvaluateUnion(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 { EvaluateUnion } from '../evaluate/evaluate.mjs';\nexport function FromTuple(types) {\n const result = types.map((_, index) => Literal(index));\n return EvaluateUnion(result);\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { IsAny } from '../../types/any.mjs';\nimport { IsArray } from '../../types/array.mjs';\nimport { IsCyclic } from '../../types/cyclic.mjs';\nimport { IsIntersect } from '../../types/intersect.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';\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 { 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';\nfunction NormalizeType(type) {\n const result = (IsCyclic(type) || IsIntersect(type) || IsUnion(type) ? CollapseToObject(type) :\n type);\n return result;\n}\nexport function KeyOfAction(type) {\n const normal = NormalizeType(type);\n return (IsAny(normal) ? FromAny() :\n IsArray(normal) ? FromArray(normal.items) :\n IsObject(normal) ? FromObject(normal.properties) :\n IsRecord(normal) ? FromRecord(normal) :\n IsTuple(normal) ? FromTuple(normal.items) :\n Never());\n}\nexport function KeyOfImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(KeyOfAction(instantiatedType), {}, options);\n}\nexport function KeyOfInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? KeyOfImmediate(context, state, type, options)\n : KeyOfDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { IsLiteralNumber, IsLiteralString } from '../../types/literal.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { IsTemplateLiteral } from '../../types/template-literal.mjs';\nimport { IsUnion } from '../../types/union.mjs';\nimport { EnumValuesToVariants } from '../enum/index.mjs';\nimport { TemplateLiteralDecode } from '../template-literal/decode.mjs';\nfunction FromTemplateLiteral(pattern) {\n const decoded = TemplateLiteralDecode(pattern);\n const result = FromType(decoded);\n return result;\n}\nfunction FromUnion(types) {\n return types.reduce((result, left) => {\n return [...result, ...FromType(left)];\n }, []);\n}\nfunction FromType(type) {\n const result = (IsEnum(type) ? FromUnion(EnumValuesToVariants(type.enum)) :\n IsLiteralString(type) || IsLiteralNumber(type) ? [type] :\n IsTemplateLiteral(type) ? FromTemplateLiteral(type.pattern) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n []);\n return result;\n}\nexport function MappedKeys(type) {\n const result = FromType(type);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Mapped action. */\nexport function MappedDeferred(identifier, key, as, property, options = {}) {\n return Deferred('Mapped', [identifier, key, as, property], options);\n}\n/** Applies a Mapped action using the given types. */\nexport function Mapped(identifier, key, as, property, options = {}) {\n return Instantiate({}, MappedDeferred(identifier, key, as, property, options));\n}\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 { MappedKeys } from './mapped-keys.mjs';\nimport { IsTemplateLiteral } from '../../types/template-literal.mjs';\nimport { MappedDeferred } from '../../action/mapped.mjs';\nimport { TemplateLiteralDecode } from '../template-literal/decode.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction InstantiateKeyAs(context, state, identifier, key, as) {\n const contextWithKey = Memory.Assign(context, { [identifier['name']]: key });\n const instantiatedKeyAs = InstantiateType(contextWithKey, state, as);\n const result = IsTemplateLiteral(instantiatedKeyAs) ? TemplateLiteralDecode(instantiatedKeyAs.pattern) : instantiatedKeyAs;\n return result;\n}\nfunction InstantiateProperty(context, state, identifier, key, property) {\n const contextWithKey = Memory.Assign(context, { [identifier['name']]: key });\n const instantiatedProperty = InstantiateType(contextWithKey, state, property);\n return instantiatedProperty;\n}\nfunction MappedProperty(context, state, identifier, key, as, property) {\n const instantiatedProperty = InstantiateProperty(context, state, identifier, key, property);\n const instantiatedKeyAs = InstantiateKeyAs(context, state, identifier, key, as);\n return (IsLiteralString(instantiatedKeyAs) || IsLiteralNumber(instantiatedKeyAs)\n ? { [instantiatedKeyAs.const]: instantiatedProperty }\n : {});\n}\nfunction MappedProperties(context, state, identifier, keys, as, type) {\n return keys.reduce((result, left) => {\n return { ...result, ...MappedProperty(context, state, identifier, left, as, type) };\n }, {});\n}\nfunction MappedAction(context, state, identifier, key, as, type) {\n const keys = MappedKeys(key);\n const mapped = MappedProperties(context, state, identifier, keys, as, type);\n const result = Object(mapped);\n return result;\n}\nfunction MappedImmediate(context, state, identifier, key, as, property, options) {\n const instantiatedKey = InstantiateType(context, state, key);\n return Memory.Update(MappedAction(context, state, identifier, instantiatedKey, as, property), {}, options);\n}\nexport function MappedInstantiate(context, state, identifier, key, as, property, options) {\n return (CanInstantiate(context, [key])\n ? MappedImmediate(context, state, identifier, key, as, property, options)\n : MappedDeferred(identifier, key, as, property, options));\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Memory } from '../../../system/memory/index.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, cyclicKeys) {\n const keys = Guard.Keys(context).filter(key => cyclicKeys.includes(key));\n return keys.reduce((result, key) => {\n return { ...result, [key]: InstantiateCyclic(context, key, context[key]) };\n }, {});\n}\nfunction InstantiateNonCyclics(context, cyclicKeys) {\n const keys = Guard.Keys(context).filter(key => !cyclicKeys.includes(key));\n return keys.reduce((result, key) => {\n return { ...result, [key]: InstantiateType(context, { callstack: [] }, context[key]) };\n }, {});\n}\nfunction InstantiateModule(context, options) {\n const cyclicCandidates = CyclicCandidates(context);\n const instantiatedCyclics = InstantiateCyclics(context, cyclicCandidates);\n const instantiatedNonCyclics = InstantiateNonCyclics(context, cyclicCandidates);\n const instantiatedModule = { ...instantiatedCyclics, ...instantiatedNonCyclics };\n return Memory.Update(instantiatedModule, {}, options);\n}\nexport function ModuleInstantiate(context, _state, properties, options) {\n const moduleContext = Memory.Assign(context, properties);\n const instantiatedModule = InstantiateModule(moduleContext, options);\n return instantiatedModule;\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, NonNullableDeferred(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 { ExcludeInstantiate } from '../exclude/instantiate.mjs';\nimport { NonNullableDeferred } from '../../action/non-nullable.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction NonNullableAction(type) {\n const excluded = Union([Null(), Undefined()]);\n return ExcludeInstantiate({}, { callstack: [] }, type, excluded, {});\n}\nfunction NonNullableImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(NonNullableAction(instantiatedType), {}, options);\n}\nexport function NonNullableInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? NonNullableImmediate(context, state, type, options)\n : NonNullableDeferred(type, 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 { Deferred } from '../types/deferred.mjs';\nimport { KeysToIndexer } from '../engine/helpers/keys-to-indexer.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, OmitDeferred(type, indexer, options));\n}\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';\nimport { OmitDeferred } from '../../action/omit.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.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}\nfunction OmitAction(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}\nfunction OmitImmediate(context, state, type, indexer, options) {\n const instantiatedType = InstantiateType(context, state, type);\n const instantiatedIndexer = InstantiateType(context, state, indexer);\n return Memory.Update(OmitAction(instantiatedType, instantiatedIndexer), {}, options);\n}\nexport function OmitInstantiate(context, state, type, indexer, options) {\n return (CanInstantiate(context, [type, indexer])\n ? OmitImmediate(context, state, type, indexer, options)\n : OmitDeferred(type, indexer, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Options action. */\nexport function OptionsDeferred(type, options) {\n return Deferred('Options', [type, options], {});\n}\n/** Applies an Options action to the given type. */\nexport function Options(type, options) {\n return Instantiate({}, OptionsDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Memory } from '../../../system/memory/index.mjs';\nimport { CanInstantiate, InstantiateType } from '../instantiate.mjs';\nimport { OptionsDeferred } from '../../action/options.mjs';\nfunction OptionsImmediate(context, state, type, options) {\n const instaniatedType = InstantiateType(context, state, type);\n return Memory.Update(instaniatedType, {}, options);\n}\nexport function OptionsInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? OptionsImmediate(context, state, type, options)\n : OptionsDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, ParametersDeferred(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 { Tuple } from '../../types/tuple.mjs';\nimport { ParametersDeferred } from '../../action/parameters.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction ParametersAction(type) {\n return (IsFunction(type)\n ? InstantiateType({}, { callstack: [] }, Tuple(type.parameters)) // spread-rest\n : Never());\n}\nfunction ParametersImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(ParametersAction(instantiatedType), {}, options);\n}\nexport function ParametersInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? ParametersImmediate(context, state, type, options)\n : ParametersDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, PartialDeferred(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 { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nexport function FromIntersect(types) {\n const result = types.map(type => FromType(type));\n return EvaluateIntersect(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 { Optional } from '../../types/_optional.mjs';\nexport function FromObject(properties) {\n const mapped = Guard.Keys(properties).reduce((result, left) => {\n return { ...result, [left]: Optional(properties[left]) };\n }, {});\n const result = Object(mapped);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.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 { 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 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';\nfunction PartialImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(instantiatedType), {}, options);\n}\nexport function PartialInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? PartialImmediate(context, state, type, options)\n : PartialDeferred(type, 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 { Instantiate } from '../engine/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 Instantiate({}, PickDeferred(type, indexer, options));\n}\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';\nimport { PickDeferred } from '../../action/pick.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.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}\nfunction PickAction(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}\nfunction PickImmediate(context, state, type, indexer, options) {\n const instantiatedType = InstantiateType(context, state, type);\n const instantiatedIndexer = InstantiateType(context, state, indexer);\n return Memory.Update(PickAction(instantiatedType, instantiatedIndexer), {}, options);\n}\nexport function PickInstantiate(context, state, type, indexer, options) {\n return (CanInstantiate(context, [type, indexer])\n ? PickImmediate(context, state, type, indexer, options)\n : PickDeferred(type, indexer, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred ReadonlyType action. */\nexport function ReadonlyTypeDeferred(type, options = {}) {\n return Deferred('ReadonlyType', [type], options);\n}\n/** This type is an alias for the TypeScript `Readonly<T>` utility type. */\nexport function ReadonlyType(type, options = {}) {\n return Instantiate({}, ReadonlyTypeDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Array } from '../../types/array.mjs';\nimport { Immutable } from '../../types/_immutable.mjs';\nexport function FromArray(type) {\n const result = Immutable(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 { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nexport function FromIntersect(types) {\n const result = types.map(type => FromType(type));\n return EvaluateIntersect(result);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Object } from '../../types/object.mjs';\nimport { Readonly } from '../../types/_readonly.mjs';\nexport function FromObject(properties) {\n const mapped = Guard.Keys(properties).reduce((result, left) => {\n return { ...result, [left]: Readonly(properties[left]) };\n }, {});\n const result = Object(mapped);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { Tuple } from '../../types/tuple.mjs';\nimport { Immutable } from '../../types/_immutable.mjs';\nexport function FromTuple(types) {\n const result = Immutable(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 { 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 { 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 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 { ReadonlyTypeDeferred } from '../../action/readonly-type.mjs';\nimport { FromType } from './from-type.mjs';\nimport { InstantiateType, CanInstantiate } from '../instantiate.mjs';\nfunction ReadonlyTypeImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(instantiatedType), {}, options);\n}\nexport function ReadonlyTypeInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? ReadonlyTypeImmediate(context, state, type, options)\n : ReadonlyTypeDeferred(type, options));\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 { EnumValuesToUnion } from '../enum/enum-to-union.mjs';\nimport { FromKey } from './from-key.mjs';\nexport function FromEnumKey(values, value) {\n const unionKey = EnumValuesToUnion(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 { TemplateLiteralFinite } from '../template-literal/finite.mjs';\nimport { TemplateLiteralDecode } from '../template-literal/decode.mjs';\nimport { CreateRecord } from './record-create.mjs';\nexport function FromTemplateKey(pattern, value) {\n const types = ParsePatternIntoTypes(pattern);\n const finite = TemplateLiteralFinite(types);\n const result = finite ? FromKey(TemplateLiteralDecode(pattern), value) : CreateRecord(pattern, value);\n return result;\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';\nfunction RecordImmediate(context, state, key, value, options) {\n const instanstiatedKey = InstantiateType(context, state, key);\n const instantiatedValue = InstantiateType(context, state, value);\n return Memory.Update(FromKey(instanstiatedKey, instantiatedValue), {}, options);\n}\nexport function RecordInstantiate(context, state, key, value, options) {\n return (CanInstantiate(context, [key])\n ? RecordImmediate(context, state, key, value, options)\n : RecordDeferred(key, value, options));\n}\n","// deno-fmt-ignore-file\nimport { Ref } from '../../types/ref.mjs';\nimport { InstantiateType } from '../instantiate.mjs';\nimport { CyclicCheck } from '../cyclic/check.mjs';\nexport function RefInstantiate(context, state, ref) {\n return (ref in context\n ? CyclicCheck([ref], context, context[ref])\n ? Ref(ref)\n : InstantiateType(context, state, context[ref])\n : Ref(ref));\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 { EvaluateIntersect } from '../evaluate/evaluate.mjs';\nexport function FromIntersect(types) {\n const result = types.map(type => FromType(type));\n return EvaluateIntersect(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 { OptionalRemove } from '../../types/_optional.mjs';\nexport function FromObject(properties) {\n const mapped = Guard.Keys(properties).reduce((result, left) => {\n return { ...result, [left]: OptionalRemove(properties[left]) };\n }, {});\n const result = Object(mapped);\n return result;\n}\n","// deno-fmt-ignore-file\nimport { IsCyclic } from '../../types/cyclic.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 { 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 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 { Instantiate } from '../engine/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 Instantiate({}, RequiredDeferred(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';\nfunction RequiredImmediate(context, state, type, options) {\n const instaniatedType = InstantiateType(context, state, type);\n return Memory.Update(FromType(instaniatedType), {}, options);\n}\nexport function RequiredInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? RequiredImmediate(context, state, type, options)\n : RequiredDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, ReturnTypeDeferred(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 ReturnTypeAction(type) {\n return (IsFunction(type) ? type.returnType : Never());\n}\nfunction ReturnTypeImmediate(context, state, type, options) {\n const instantiatedType = InstantiateType(context, state, type);\n return Memory.Update(ReturnTypeAction(instantiatedType), {}, options);\n}\nexport function ReturnTypeInstantiate(context, state, type, options) {\n return (CanInstantiate(context, [type])\n ? ReturnTypeImmediate(context, state, type, options)\n : ReturnTypeDeferred(type, options));\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 { IsSchema } from '../../types/schema.mjs';\nimport { IsEnum } from '../../types/enum.mjs';\nimport { Literal, IsLiteral } from '../../types/literal.mjs';\nimport { Union, IsUnion } from '../../types/union.mjs';\nimport { IsTemplateLiteral } 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 { EnumValuesToVariants } from '../enum/enum-to-union.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 EncodeEnum(types, right, pattern, result = []) {\n const variants = EnumValuesToVariants(types);\n return EncodeUnion(variants, right, pattern);\n}\nfunction EncodeUnion(types, right, pattern, result = []) {\n const [head, ...tail] = types;\n return (IsSchema(head)\n ? EncodeUnion(tail, right, pattern, [...result, EncodeType(head, [], '')])\n : 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 IsUnion(type) ? EncodeUnion(type.anyOf, right, pattern) :\n NeverPattern);\n}\nfunction EncodeTypes(types, pattern) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? EncodeType(left, right, pattern)\n : 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';\nfunction TemplateLiteralImmediate(context, state, types, options) {\n const instaniatedTypes = InstantiateTypes(context, state, types);\n return Memory.Update(TemplateLiteralEncode(instaniatedTypes), {}, options);\n}\nexport function TemplateLiteralInstantiate(context, state, types, options) {\n return (CanInstantiate(context, types)\n ? TemplateLiteralImmediate(context, state, types, options)\n : TemplateLiteralDeferred(types, 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 { IsImmutable, Immutable } from '../types/_immutable.mjs';\nimport { IsOptional, OptionalAdd, OptionalRemove } from '../types/_optional.mjs';\nimport { IsReadonly, ReadonlyAdd, ReadonlyRemove } from '../types/_readonly.mjs';\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\nimport { IsSchema } from '../types/schema.mjs';\nimport { Array, IsArray, ArrayOptions } from '../types/array.mjs';\nimport { AsyncIterator, IsAsyncIterator, AsyncIteratorOptions } from '../types/async-iterator.mjs';\nimport { IsBase } from '../types/base.mjs';\nimport { Constructor, IsConstructor, ConstructorOptions } from '../types/constructor.mjs';\nimport { Deferred, IsDeferred } from '../types/deferred.mjs';\nimport { Function as _Function, IsFunction, FunctionOptions } from '../types/function.mjs';\nimport { IsCall } from '../types/call.mjs';\nimport { Intersect, IsIntersect, IntersectOptions } from '../types/intersect.mjs';\nimport { Iterator, IsIterator, IteratorOptions } from '../types/iterator.mjs';\nimport { Object, IsObject, ObjectOptions } from '../types/object.mjs';\nimport { Promise, IsPromise, PromiseOptions } from '../types/promise.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 Actions\n// ------------------------------------------------------------------\nimport { IsReadonlyAddAction, IsReadonlyRemoveAction } from '../action/_readonly.mjs';\nimport { IsOptionalAddAction, IsOptionalRemoveAction } from '../action/_optional.mjs';\n// ------------------------------------------------------------------\n// Instantiate\n// ------------------------------------------------------------------\nimport { AwaitedInstantiate } from './awaited/instantiate.mjs';\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 { OptionsInstantiate } from './options/instantiate.mjs';\nimport { ParametersInstantiate } from './parameters/instantiate.mjs';\nimport { PartialInstantiate } from './partial/instantiate.mjs';\nimport { PickInstantiate } from './pick/instantiate.mjs';\nimport { ReadonlyTypeInstantiate } from './readonly-type/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 { RestSpread } from './rest/index.mjs';\nfunction CanInstantiateRef(context, ref) {\n return (ref in context);\n}\nfunction CanInstantiateType(context, type) {\n return (IsIntersect(type) ? CanInstantiate(context, type.allOf) :\n IsUnion(type) ? CanInstantiate(context, type.anyOf) :\n IsRef(type) ? CanInstantiateRef(context, type.$ref) :\n true);\n}\nexport function CanInstantiate(context, types) {\n const [left, ...right] = types;\n return (IsSchema(left)\n ? CanInstantiateType(context, left)\n ? CanInstantiate(context, right)\n : false\n : true);\n}\nfunction ModifierActions(type, readonly, optional) {\n return (IsReadonlyRemoveAction(type) ? ModifierActions(type.type, 'remove', optional) :\n IsOptionalRemoveAction(type) ? ModifierActions(type.type, readonly, 'remove') :\n IsReadonlyAddAction(type) ? ModifierActions(type.type, 'add', optional) :\n IsOptionalAddAction(type) ? ModifierActions(type.type, readonly, 'add') :\n [type, readonly, optional]);\n}\nfunction ApplyReadonly(action, type) {\n return (Guard.IsEqual(action, 'remove') ? ReadonlyRemove(type) :\n Guard.IsEqual(action, 'add') ? ReadonlyAdd(type) :\n type);\n}\nfunction ApplyOptional(action, type) {\n return (Guard.IsEqual(action, 'remove') ? OptionalRemove(type) :\n Guard.IsEqual(action, 'add') ? OptionalAdd(type) :\n type);\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 InstantiateDeferred(context, state, action, parameters, options) {\n return (Guard.IsEqual(action, 'Awaited') ? AwaitedInstantiate(context, state, parameters[0], options) :\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, 'Options') ? OptionsInstantiate(context, state, parameters[0], parameters[1]) :\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, 'ReadonlyType') ? ReadonlyTypeInstantiate(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 Deferred(action, parameters, options));\n}\nexport function InstantiateType(context, state, input) {\n const immutable = IsImmutable(input);\n const modifiers = ModifierActions(input, IsReadonly(input) ? 'add' : 'none', IsOptional(input) ? 'add' : 'none');\n const type = IsBase(modifiers[0]) ? modifiers[0].Clone() : modifiers[0];\n const instantiated = (IsRef(type) ? RefInstantiate(context, state, type.$ref) :\n IsArray(type) ? Array(InstantiateType(context, state, type.items), ArrayOptions(type)) :\n IsAsyncIterator(type) ? AsyncIterator(InstantiateType(context, state, type.iteratorItems), AsyncIteratorOptions(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 IsDeferred(type) ? InstantiateDeferred(context, state, type.action, type.parameters, type.options) :\n IsFunction(type) ? _Function(InstantiateTypes(context, state, type.parameters), InstantiateType(context, state, type.returnType), FunctionOptions(type)) :\n IsIntersect(type) ? Intersect(InstantiateTypes(context, state, type.allOf), IntersectOptions(type)) :\n IsIterator(type) ? Iterator(InstantiateType(context, state, type.iteratorItems), IteratorOptions(type)) :\n IsObject(type) ? Object(InstantiateProperties(context, state, type.properties), ObjectOptions(type)) :\n IsPromise(type) ? Promise(InstantiateType(context, state, type.item), PromiseOptions(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 withImmutable = immutable ? Immutable(instantiated) : instantiated;\n const withModifiers = ApplyReadonly(modifiers[1], ApplyOptional(modifiers[2], withImmutable));\n return withModifiers;\n}\n/** Instantiates computed schematics using the given context and type. */\nexport function Instantiate(context, type) {\n return InstantiateType(context, { callstack: [] }, type);\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Awaited action. */\nexport function AwaitedDeferred(type, options = {}) {\n return Deferred('Awaited', [type], options);\n}\n/** Applies an Awaited action to a type. */\nexport function Awaited(type, options = {}) {\n return Instantiate({}, AwaitedDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/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 Instantiate({}, EvaluateDeferred(type, options));\n}\n","// deno-fmt-ignore-file\nimport { Deferred } from '../types/deferred.mjs';\nimport { Instantiate } from '../engine/instantiate.mjs';\n/** Creates a deferred Module action. */\nexport function ModuleDeferred(context, options = {}) {\n return Deferred('Module', [context], options);\n}\n/** Applies a Module transformation action to the embedded property types. */\nexport function Module(context, options = {}) {\n return Instantiate({}, ModuleDeferred(context, options));\n}\n","// deno-lint-ignore-file\n// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { Memory } from '../../system/memory/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { InstantiateType } from '../engine/instantiate.mjs';\nimport { Never } from '../types/index.mjs';\nimport * as Parser from './parser.mjs';\n/** Parses a type from a TypeScript type expression */\nexport function Script(...args) {\n const [context, input, options] = Arguments.Match(args, {\n 2: (script, options) => Guard.IsString(script) ? [{}, script, options] : [script, options, {}],\n 3: (context, script, options) => [context, script, options],\n 1: (script) => [{}, script, {}],\n });\n const result = Parser.Script(input);\n const parsed = Guard.IsArray(result) && Guard.IsEqual(result.length, 2)\n ? InstantiateType(context, { callstack: [] }, result[0])\n : Never();\n return Memory.Update(parsed, {}, options);\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","import { 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\nexport function FromBase(context, type, value) {\n return type.Clean(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, IsObject, Options } from '../../type/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\n// ------------------------------------------------------------------\n// EvaluateIntersection\n// ------------------------------------------------------------------\nfunction EvaluateIntersection(type) {\n // Note: reinterpret unevaluatedProperties as additionalProperties\n const additionalProperties = Guard.HasPropertyKey(type, 'unevaluatedProperties')\n ? { additionalProperties: type.unevaluatedProperties }\n : {};\n const evaluated = Evaluate(type);\n return IsObject(evaluated)\n ? Options(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(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 { Guard, GlobalsGuard } from '../../guard/index.mjs';\n// ------------------------------------------------------------------\n// ClassInstance\n//\n// TypeBox does not support cloning arbitrary class instances. It treats\n// class instances as atomic values, similar to number, boolean, and\n// string. In the future, an implementation could detect the presence of\n// a .clone() method, but no formal specification for this behavior\n// exists, so we don't.\n//\n// ------------------------------------------------------------------\nfunction FromClassInstance(value) {\n return value; // atomic\n}\n// ------------------------------------------------------------------\n// ObjectInstance\n// ------------------------------------------------------------------\nfunction FromObjectInstance(value) {\n const result = {};\n for (const key of Object.getOwnPropertyNames(value)) {\n result[key] = Clone(value[key]);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n result[key] = Clone(value[key]);\n }\n return result;\n}\nObject.create({});\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\nfunction FromObject(value) {\n return (Guard.IsClassInstance(value)\n ? FromClassInstance(value)\n : FromObjectInstance(value));\n}\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\nfunction FromArray(value) {\n return value.map((element) => Clone(element));\n}\n// ------------------------------------------------------------------\n// TypeArray\n// ------------------------------------------------------------------\nfunction FromTypedArray(value) {\n return value.slice();\n}\n// ------------------------------------------------------------------\n// Map\n// ------------------------------------------------------------------\nfunction FromMap(value) {\n return new Map(Clone([...value.entries()]));\n}\n// ------------------------------------------------------------------\n// Set\n// ------------------------------------------------------------------\nfunction FromSet(value) {\n return new Set(Clone([...value.values()]));\n}\n// ------------------------------------------------------------------\n// Value\n// ------------------------------------------------------------------\nfunction FromValue(value) {\n return 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 return (GlobalsGuard.IsTypeArray(value) ? FromTypedArray(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 FromValue(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 { FromBase } from './from-base.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.IsBase(type) ? FromBase(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","import { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from-type.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 return FromType(context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nimport { Guard } from '../../guard/index.mjs';\nexport function FromArray(context, type, value) {\n return Guard.IsArray(value)\n ? value.map(value => FromType(context, type.items, value))\n : value;\n}\n","// deno-fmt-ignore-file\nexport function FromBase(context, type, value) {\n return type.Convert(value);\n}\n","// deno-fmt-ignore-file\n// deno-lint-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\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try-result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromBigInt(value) {\n return Ok(value);\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Guard.IsEqual(value, true) ? Ok(BigInt(1)) : Ok(BigInt(0));\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return Ok(BigInt(Math.trunc(value)));\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\nfunction FromNull(value) {\n return 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// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(value) {\n return Ok(BigInt(0));\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nexport function TryBigInt(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-lint-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// Boolean\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromBoolean(value) {\n return Ok(value);\n}\n// deno-coverage-ignore-stop\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// Null\n// ------------------------------------------------------------------\nfunction FromNull(value) {\n return Ok(false);\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// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(value) {\n return Ok(false);\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nexport function TryBoolean(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-lint-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// Null\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromNull(value) {\n return Ok(null);\n}\n// deno-coverage-ignore-stop\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// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(value) {\n return Ok(null);\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\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) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail, IsOk } from './try-result.mjs';\n// ------------------------------------------------------------------\n// Two-Phase\n// ------------------------------------------------------------------\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 CanBigIntDowncast(value) {\n return (value <= maxBigInt && value >= minBigInt);\n}\nfunction FromBigInt(value) {\n return CanBigIntDowncast(value) ? Ok(Number(value)) : Fail();\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return value ? Ok(1) : Ok(0);\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromNumber(value) {\n return Ok(value);\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\nfunction FromNull(value) {\n return Ok(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 FromBigInt(result.value);\n return Fail();\n}\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(value) {\n return Ok(0);\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nexport function TryNumber(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\nimport { Guard } from '../../../guard/index.mjs';\nimport { Ok, Fail } from './try-result.mjs';\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\nfunction FromBigInt(value) {\n return Ok(value.toString());\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\nfunction FromBoolean(value) {\n return Ok(value.toString());\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\nfunction FromNumber(value) {\n return Ok(value.toString());\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\nfunction FromNull(value) {\n return Ok('null');\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromString(value) {\n return Ok(value);\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\nfunction FromUndefined(value) {\n return Ok('');\n}\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nexport function TryString(value) {\n return (Guard.IsBigInt(value) ? FromBigInt(value) :\n Guard.IsBoolean(value) ? FromBoolean(value) :\n Guard.IsNumber(value) ? FromNumber(value) :\n Guard.IsNull(value) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\n// deno-lint-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// Null\n// ------------------------------------------------------------------\nfunction FromNull(value) {\n return Ok(undefined);\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// Undefined\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\nfunction FromUndefined(value) {\n return Ok(undefined);\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Try\n// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | guarded\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) ? FromNull(value) :\n Guard.IsString(value) ? FromString(value) :\n Guard.IsUndefined(value) ? FromUndefined(value) :\n Fail());\n}\n// deno-coverage-ignore-stop\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromBigInt(context, type, value) {\n if (Guard.IsBigInt(value))\n return value;\n const result = Try.TryBigInt(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromBoolean(context, type, value) {\n if (Guard.IsBoolean(value))\n return 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 { 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 { EnumToUnion } from '../../type/engine/enum/index.mjs';\nimport { FromUnion } from './from-union.mjs';\nexport function FromEnum(context, type, value) {\n const union = EnumToUnion(type);\n return FromUnion(context, union, value);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromInteger(context, type, value) {\n if (Guard.IsInteger(value))\n return 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 } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromIntersect(context, type, value) {\n const evaluatedType = Evaluate(type);\n return FromType(context, evaluatedType, 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 { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromNull(context, type, value) {\n if (Guard.IsNull(value))\n return value;\n const result = Try.TryNull(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromNumber(context, type, value) {\n if (Guard.IsNumber(value))\n return 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/index.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 { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromString(context, type, value) {\n if (Guard.IsString(value))\n return value;\n const result = Try.TryString(value);\n return Try.IsOk(result) ? result.value : value;\n}\n","// deno-fmt-ignore-file\nimport { TemplateLiteralDecode } from '../../type/engine/template-literal/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromTemplateLiteral(context, type, value) {\n const decoded = TemplateLiteralDecode(type.pattern);\n return FromType(context, decoded, 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 { Guard } from '../../guard/index.mjs';\nimport { Try } from './try/index.mjs';\nexport function FromUndefined(context, type, value) {\n if (Guard.IsUndefined(value))\n return 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 { Try } from './try/index.mjs';\nexport function FromVoid(context, type, value) {\n if (Guard.IsUndefined(value))\n return value;\n const result = Try.TryUndefined(value);\n return Try.IsOk(result) ? (void 0) : value;\n}\n","// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nimport { FromArray } from './from-array.mjs';\nimport { FromBase } from './from-base.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 (T.IsArray(type) ? FromArray(context, type, value) :\n T.IsBase(type) ? FromBase(context, type, value) :\n T.IsBigInt(type) ? FromBigInt(context, type, value) :\n T.IsBoolean(type) ? FromBoolean(context, type, value) :\n T.IsCyclic(type) ? FromCyclic(context, type, value) :\n T.IsEnum(type) ? FromEnum(context, type, value) :\n T.IsInteger(type) ? FromInteger(context, type, value) :\n T.IsIntersect(type) ? FromIntersect(context, type, value) :\n T.IsLiteral(type) ? FromLiteral(context, type, value) :\n T.IsNull(type) ? FromNull(context, type, value) :\n T.IsNumber(type) ? FromNumber(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.IsString(type) ? FromString(context, type, value) :\n T.IsTemplateLiteral(type) ? FromTemplateLiteral(context, type, value) :\n T.IsTuple(type) ? FromTuple(context, type, value) :\n T.IsUndefined(type) ? FromUndefined(context, type, value) :\n T.IsUnion(type) ? FromUnion(context, type, value) :\n T.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 \nexport function FromBase(context, type, value) {\n return type.Default(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 } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromIntersect(context, type, value) {\n const evaluted = Evaluate(type);\n return FromType(context, evaluted, value);\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\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 // note: we need to traverse into the object and test if the return value\n // yielded a non undefined result. Here we interpret an undefined result as\n // a non assignable property and continue.\n const propertyValue = FromType(context, type.properties[key], value[key]);\n if (Guard.IsUndefined(propertyValue))\n continue;\n value[key] = FromType(context, type.properties[key], value[key]);\n }\n // return if not additional properties\n if (!IsAdditionalProperties(type))\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 { FromBase } from './from-base.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.IsBase(type) ? FromBase(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 { Unreachable } from '../../system/unreachable/index.mjs';\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 // deno-coverage-ignore-start - unreachable | checked\n if (!Guard.IsArray(value))\n return Unreachable();\n // deno-coverage-ignore-stop\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';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n for (const schema of type.allOf) {\n value = FromType(direction, context, schema, value);\n }\n return Callback(direction, context, type, value);\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n let exterior = Callback(direction, context, type, value);\n for (const schema of type.allOf) {\n exterior = FromType(direction, context, schema, exterior);\n }\n return exterior;\n}\nexport function FromIntersect(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 { Unreachable } from '../../system/unreachable/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { Callback } from './callback.mjs';\nimport { IsOptionalUndefined } from '../shared/index.mjs';\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\nfunction Decode(direction, context, type, value) {\n // deno-coverage-ignore-start - unreachable | checked\n if (!Guard.IsObjectNotArray(value))\n return Unreachable();\n // deno-coverage-ignore-stop\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 { Unreachable } from '../../system/unreachable/index.mjs';\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 // deno-coverage-ignore-start - unreachable | checked\n if (!Guard.IsObjectNotArray(value))\n return Unreachable();\n // deno-coverage-ignore-stop\n const regexp = new RegExp(RecordPattern(type));\n for (const key of Guard.Keys(value)) {\n // deno-coverage-ignore-start - unreachable | checked\n if (!regexp.test(key))\n Unreachable();\n // deno-coverage-ignore-stop\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';\nexport function FromRef(direction, context, type, value) {\n value = Guard.HasPropertyKey(context, type.$ref)\n ? FromType(direction, context, context[type.$ref], value)\n : value;\n return Callback(direction, context, type, value);\n}\n","// deno-fmt-ignore-file\nimport { Unreachable } from '../../system/unreachable/index.mjs';\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 // deno-coverage-ignore-start - unreachable | checked\n if (!Guard.IsArray(value))\n return Unreachable();\n // deno-coverage-ignore-stop\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 { Unreachable } from '../../system/unreachable/index.mjs';\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// ------------------------------------------------------------------\n// deno-coverage-ignore-start - unreachable | checked\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 Unreachable();\n}\n// deno-coverage-ignore-stop\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\nfunction Encode(direction, context, type, value) {\n let 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 } 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';\nimport { FromType } from './from-type.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 return FromType('Decode', context, type, 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/**\n * Decodes a value against the given type by applying a sequence of Clone,\n * Default, Convert, and Clone operations, then executing any embedded Decode\n * callbacks. If the processing sequence fails to produce a value matching the\n * provided type, a DecodeError is thrown.\n */\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 } 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';\nimport { FromType } from './from-type.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 return FromType('Encode', context, type, 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. */\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 { Arguments } from '../../system/arguments/index.mjs';\nimport { Guard } from '../../guard/index.mjs';\nimport { IsCodec } from '../../type/index.mjs';\nimport { IsArray } from '../../type/index.mjs';\nimport { IsCyclic } from '../../type/index.mjs';\nimport { IsIntersect } from '../../type/index.mjs';\nimport { IsObject } from '../../type/index.mjs';\nimport { IsRecord, RecordValue } from '../../type/index.mjs';\nimport { IsRef, Ref } from '../../type/index.mjs';\nimport { IsTuple } from '../../type/index.mjs';\nimport { IsUnion } from '../../type/index.mjs';\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\nfunction FromArray(context, type) {\n return IsCodec(type) || FromType(context, type.items);\n}\n// ------------------------------------------------------------------\n// Cyclic\n// ------------------------------------------------------------------\nfunction FromCyclic(context, type) {\n return IsCodec(type) || FromRef({ ...context, ...type.$defs }, Ref(type.$ref));\n}\n// ------------------------------------------------------------------\n// Intersect\n// ------------------------------------------------------------------\nfunction FromIntersect(context, type) {\n return IsCodec(type) || type.allOf.some((type) => FromType(context, type));\n}\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\nfunction FromObject(context, type) {\n return IsCodec(type) || Guard.Keys(type.properties).some(key => {\n return FromType(context, type.properties[key]);\n });\n}\n// ------------------------------------------------------------------\n// Record\n// ------------------------------------------------------------------\nfunction FromRecord(context, type) {\n return IsCodec(type) || FromType(context, RecordValue(type));\n}\n// ------------------------------------------------------------------\n// Ref\n// ------------------------------------------------------------------\nfunction FromRef(context, type) {\n if (visited.has(type.$ref))\n return false;\n visited.add(type.$ref);\n return IsCodec(type) || (Guard.HasPropertyKey(context, type.$ref)\n && FromType(context, context[type.$ref]));\n}\n// ------------------------------------------------------------------\n// Tuple\n// ------------------------------------------------------------------\nfunction FromTuple(context, type) {\n return IsCodec(type) || type.items.some(type => FromType(context, type));\n}\n// ------------------------------------------------------------------\n// Union\n// ------------------------------------------------------------------\nfunction FromUnion(context, type) {\n return IsCodec(type) || type.anyOf.some(type => FromType(context, type));\n}\n// ------------------------------------------------------------------\n// Type\n// ------------------------------------------------------------------\nfunction FromType(context, type) {\n return (IsArray(type) ? FromArray(context, type) :\n IsCyclic(type) ? FromCyclic(context, type) :\n IsIntersect(type) ? FromIntersect(context, type) :\n IsObject(type) ? FromObject(context, type) :\n IsRecord(type) ? FromRecord(context, type) :\n IsRef(type) ? FromRef(context, type) :\n IsTuple(type) ? FromTuple(context, type) :\n IsUnion(type) ? FromUnion(context, type) :\n IsCodec(type));\n}\n// ------------------------------------------------------------------\n// Visited\n// ------------------------------------------------------------------\nconst visited = new Set();\n/** Returns true if this type contains a Codec */\nexport function HasCodec(...args) {\n const [context, type] = Arguments.Match(args, {\n 2: (context, type) => [context, type],\n 1: (type) => [{}, type]\n });\n visited.clear();\n return FromType(context, type);\n}\n","// deno-fmt-ignore-file\nexport class CreateError extends Error {\n constructor(type, message) {\n super(message);\n this.type = type;\n }\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nexport function FromDefault(context, schema) {\n return Guard.IsFunction(schema.default)\n ? schema.default(schema)\n : Guard.IsObject(schema.default)\n ? Clone(schema.default)\n : schema.default;\n}\n","// deno-fmt-ignore-file\nimport { IsUniqueItems, IsDefault, IsMinItems } from '../../schema/types/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromArray(context, type) {\n if (IsUniqueItems(type) && !IsDefault(type))\n throw new CreateError(type, 'Arrays with uniqueItems constraints must specify a default annotation');\n const length = IsMinItems(type) ? type.minItems : 0;\n return Array.from({ length }, () => FromType(context, type.items));\n}\n","// deno-fmt-ignore-file\nasync function* CreateAsyncIterator() { }\nexport function FromAsyncIterator(context, type) {\n return CreateAsyncIterator();\n}\n","// deno-fmt-ignore-file\nexport function FromBase(context, type) {\n return type.Create();\n}\n","// deno-fmt-ignore-file\nimport { IsExclusiveMinimum, IsMinimum } from '../../schema/types/index.mjs';\nexport function FromBigInt(context, type) {\n return (IsExclusiveMinimum(type) ? BigInt(type.exclusiveMinimum) + BigInt(1) :\n IsMinimum(type) ? BigInt(type.minimum) :\n BigInt(0));\n}\n","// deno-fmt-ignore-file\nexport function FromBoolean(context, type) {\n return false;\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nexport function FromConstructor(context, type) {\n const instanceType = FromType(context, type.instanceType);\n return class {\n constructor() {\n Object.assign(this, instanceType);\n }\n };\n}\n","// deno-fmt-ignore-file\nimport { Ref } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromCyclic(context, type) {\n return FromType({ ...context, ...type.$defs }, Ref(type.$ref));\n}\n","// deno-fmt-ignore-file\nimport { EnumToUnion } from '../../type/engine/enum/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromEnum(context, type) {\n return FromType(context, EnumToUnion(type));\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nexport function FromFunction(context, type) {\n const returnType = FromType(context, type.returnType);\n return () => returnType;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsExclusiveMinimum, IsMinimum } from '../../schema/types/index.mjs';\nexport function FromInteger(context, type) {\n return ((IsExclusiveMinimum(type) && Guard.IsNumber(type.exclusiveMinimum)) ? type.exclusiveMinimum + 1 :\n IsMinimum(type) ? type.minimum :\n 0);\n}\n","// deno-fmt-ignore-file\nimport { Evaluate } from '../../type/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromIntersect(context, type) {\n return FromType(context, Evaluate(type));\n}\n","// deno-fmt-ignore-file\nfunction* CreateIterator() { }\nexport function FromIterator(context, type) {\n return CreateIterator();\n}\n","// deno-fmt-ignore-file\nexport function FromLiteral(context, type) {\n return type.const;\n}\n","// deno-fmt-ignore-file\nimport { CreateError } from './error.mjs';\nexport function FromNever(context, type) {\n throw new CreateError(type, 'Cannot create TNever types');\n}\n","// deno-fmt-ignore-file\nexport function FromNull(context, type) {\n return null;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { IsExclusiveMinimum, IsMinimum } from '../../schema/types/index.mjs';\nexport function FromNumber(context, type) {\n return (IsExclusiveMinimum(type) && Guard.IsNumber(type.exclusiveMinimum) ? type.exclusiveMinimum + 1 :\n IsMinimum(type) ? type.minimum :\n 0);\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromObject(context, type) {\n const required = Guard.IsUndefined(type.required) ? [] : type.required;\n return required.reduce((result, key) => {\n return { ...result, [key]: FromType(context, type.properties[key]) };\n }, {});\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nexport function FromPromise(context, type) {\n return Promise.resolve(FromType(context, type.item));\n}\n","// deno-fmt-ignore-file\nimport { IsMinProperties, IsDefault } from '../../schema/types/index.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromRecord(context, type) {\n if (IsMinProperties(type) && !IsDefault(type))\n throw new CreateError(type, 'Record with the minProperties constraint must have a default annotation');\n return {};\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromRef(context, type) {\n return Guard.HasPropertyKey(context, type.$ref)\n ? FromType(context, context[type.$ref])\n : (() => { throw new CreateError(type, 'Unable to deref Ref'); })();\n}\n","// deno-fmt-ignore-file\nimport { IsPattern, IsFormat, IsDefault, IsMinLength } from '../../schema/types/index.mjs';\nexport function FromString(context, type) {\n const needsDefault = (IsPattern(type) || IsFormat(type)) && !IsDefault(type);\n if (needsDefault)\n throw Error('Strings with format or pattern constraints must specify default');\n const minLength = IsMinLength(type) ? type.minLength : 0;\n return ''.padEnd(minLength);\n}\n","// deno-fmt-ignore-file\nexport function FromSymbol(context, type) {\n return Symbol();\n}\n","// deno-fmt-ignore-file\nimport { IsString } from '../../type/index.mjs';\nimport { TemplateLiteralDecode } from '../../type/engine/template-literal/index.mjs';\nimport { FromType } from './from-type.mjs';\nimport { CreateError } from './error.mjs';\nexport function FromTemplateLiteral(context, type) {\n const decoded = TemplateLiteralDecode(type.pattern);\n if (IsString(decoded))\n throw new CreateError(type, 'Unable to create TemplateLiteral due to infinite type expansion');\n return FromType(context, decoded);\n}\n","// deno-fmt-ignore-file\nimport { FromType } from './from-type.mjs';\nexport function FromTuple(context, type) {\n return Array.from({ length: type.minItems }, (_, i) => FromType(context, type.items[i]));\n}\n","// deno-fmt-ignore-file\nexport function FromUndefined(context, type) {\n return undefined;\n}\n","// deno-fmt-ignore-file\nimport { Guard } from '../../guard/index.mjs';\nimport { FromType } from './from-type.mjs';\nexport function FromUnion(context, type) {\n if (Guard.IsEqual(type.anyOf.length, 0)) {\n throw Error('Unable to create Union with no variants');\n }\n return FromType(context, type.anyOf[0]);\n}\n","// deno-fmt-ignore-file\nexport function FromVoid(context, type) {\n return void 0;\n}\n","// deno-fmt-ignore-file\nimport * as T from '../../type/index.mjs';\nimport * as S from '../../schema/types/index.mjs';\nimport { FromDefault } from './from-default.mjs';\nimport { FromArray } from './from-array.mjs';\nimport { FromAsyncIterator } from './from-async-iterator.mjs';\nimport { FromBase } from './from-base.mjs';\nimport { FromBigInt } from './from-bigint.mjs';\nimport { FromBoolean } from './from-boolean.mjs';\nimport { FromConstructor } from './from-constructor.mjs';\nimport { FromCyclic } from './from-cyclic.mjs';\nimport { FromEnum } from './from-enum.mjs';\nimport { FromFunction } from './from-function.mjs';\nimport { FromInteger } from './from-integer.mjs';\nimport { FromIntersect } from './from-intersect.mjs';\nimport { FromIterator } from './from-iterator.mjs';\nimport { FromLiteral } from \"./from-literal.mjs\";\nimport { FromNever } from './from-never.mjs';\nimport { FromNull } from './from-null.mjs';\nimport { FromNumber } from './from-number.mjs';\nimport { FromObject } from './from-object.mjs';\nimport { FromPromise } from './from-promise.mjs';\nimport { FromRecord } from './from-record.mjs';\nimport { FromRef } from './from-ref.mjs';\nimport { FromString } from './from-string.mjs';\nimport { FromSymbol } from './from-symbol.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) {\n return (\n // -----------------------------------------------------\n // Default\n // -----------------------------------------------------\n S.IsDefault(type) ? FromDefault(context, type) :\n // -----------------------------------------------------\n // Types\n // -----------------------------------------------------\n T.IsArray(type) ? FromArray(context, type) :\n T.IsAsyncIterator(type) ? FromAsyncIterator(context, type) :\n T.IsBase(type) ? FromBase(context, type) :\n T.IsBigInt(type) ? FromBigInt(context, type) :\n T.IsBoolean(type) ? FromBoolean(context, type) :\n T.IsConstructor(type) ? FromConstructor(context, type) :\n T.IsCyclic(type) ? FromCyclic(context, type) :\n T.IsEnum(type) ? FromEnum(context, type) :\n T.IsFunction(type) ? FromFunction(context, type) :\n T.IsInteger(type) ? FromInteger(context, type) :\n T.IsIntersect(type) ? FromIntersect(context, type) :\n T.IsIterator(type) ? FromIterator(context, type) :\n T.IsLiteral(type) ? FromLiteral(context, type) :\n T.IsNever(type) ? FromNever(context, type) :\n T.IsNull(type) ? FromNull(context, type) :\n T.IsNumber(type) ? FromNumber(context, type) :\n T.IsObject(type) ? FromObject(context, type) :\n T.IsPromise(type) ? FromPromise(context, type) :\n T.IsRecord(type) ? FromRecord(context, type) :\n T.IsRef(type) ? FromRef(context, type) :\n T.IsString(type) ? FromString(context, type) :\n T.IsSymbol(type) ? FromSymbol(context, type) :\n T.IsTemplateLiteral(type) ? FromTemplateLiteral(context, type) :\n T.IsTuple(type) ? FromTuple(context, type) :\n T.IsUndefined(type) ? FromUndefined(context, type) :\n T.IsUnion(type) ? FromUnion(context, type) :\n T.IsVoid(type) ? FromVoid(context, type) :\n undefined);\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../../system/arguments/index.mjs';\nimport { FromType } from './from-type.mjs';\n/** Creates a value from the provided type. This function will use `default` annotations if present. */\nexport function Create(...args) {\n const [context, type] = Arguments.Match(args, {\n 2: (context, type) => [context, type],\n 1: (type) => [{}, type],\n });\n return FromType(context, type);\n}\n","// deno-fmt-ignore-file\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/**\n * Parses a value with the given type. The function will Check the value and return\n * early if it matches the provided type. If the value does not match, it is processed\n * through a sequence of Clone, Default, Convert, and Clean operations and checked again.\n * A `ParseError` is thrown if the value fails to match after the processing sequence.\n */\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 result = Check(context, type, value) ? value : Parser(context, type, value);\n return result;\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","// deno-fmt-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Environment } from '../system/environment/index.mjs';\nimport { Base } from '../type/index.mjs';\nimport { Errors, Clean, Convert, Create, Default, Decode, Encode, HasCodec, Parser } from '../value/index.mjs';\nimport { Build } from '../schema/index.mjs';\n// ------------------------------------------------------------------\n// Validator<...>\n// ------------------------------------------------------------------\nexport class Validator extends Base {\n /** Constructs a Validator. */\n constructor(...args) {\n super();\n const matched = Arguments.Match(args, {\n 6: (context, type, isEvalulated, hasCodec, code, check) => [context, type, isEvalulated, hasCodec, code, check],\n 2: (context, type) => [context, type]\n });\n if (matched.length === 6) {\n const [context, type, isEvaluated, hasCodec, code, check] = matched;\n this.context = context;\n this.type = type;\n this.isEvaluated = isEvaluated;\n this.hasCodec = hasCodec;\n this.code = code;\n this.check = check;\n }\n else {\n const [context, type] = matched;\n const result = Build(context, type).Evaluate();\n this.hasCodec = HasCodec(context, type);\n this.context = context;\n this.type = type;\n this.isEvaluated = result.IsEvaluated;\n this.code = result.Code;\n this.check = result.Check;\n }\n }\n // ----------------------------------------------------------------\n // IsEvaluated\n // ----------------------------------------------------------------\n /** Returns true if this validator is using runtime eval optimizations. */\n IsEvaluated() {\n return this.isEvaluated;\n }\n // ----------------------------------------------------------------\n // Context | Type\n // ----------------------------------------------------------------\n /** Returns the Context for this validator. */\n Context() {\n return this.context;\n }\n /** Returns the Type for this validator. */\n Type() {\n return this.type;\n }\n // ----------------------------------------------------------------\n // Code\n // ----------------------------------------------------------------\n /** Returns the generated code for this validator. */\n Code() {\n return this.code;\n }\n // ----------------------------------------------------------------\n // Base<...>\n // ----------------------------------------------------------------\n /** Checks a value matches the Validator type. */\n Check(value) {\n return this.check(value);\n }\n /** Returns errors for the given value. */\n Errors(value) {\n if (Environment.CanEvaluate() && this.check(value))\n return [];\n return Errors(this.context, this.type, value);\n }\n /** Cleans a value using the Validator type. */\n Clean(value) {\n return Clean(this.context, this.type, value);\n }\n /** Converts a value using the Validator type. */\n Convert(value) {\n return Convert(this.context, this.type, value);\n }\n /** Creates a value using the Validator type. */\n Create() {\n return Create(this.context, this.type);\n }\n /** Creates defaults using the Validator type. */\n Default(value) {\n return Default(this.context, this.type, value);\n }\n /** Clones this validator. */\n Clone() {\n return new Validator(this.context, this.type, this.isEvaluated, this.hasCodec, this.code, this.check);\n }\n // ----------------------------------------------------------------\n // Parse | Decode | Encode\n // ----------------------------------------------------------------\n /** Parses a value */\n Parse(value) {\n const result = this.Check(value) ? value : Parser(this.context, this.type, value);\n return result;\n }\n /** Decodes a value */\n Decode(value) {\n const result = this.hasCodec ? Decode(this.context, this.type, value) : this.Parse(value);\n return result;\n }\n /** Encodes a value */\n Encode(value) {\n const result = this.hasCodec ? Encode(this.context, this.type, value) : this.Parse(value);\n return result;\n }\n}\n","// deno-fmt-ignore-file\nimport { Arguments } from '../system/arguments/index.mjs';\nimport { Validator } from './validator.mjs';\n/** Compiles a type into a high performance Validator */\nexport function Compile(...args) {\n const [context, type] = Arguments.Match(args, {\n 2: (context, type) => [context, type],\n 1: (type) => [{}, type]\n });\n return new Validator(context, type);\n}\n","import type { TLocalizedValidationError } from \"typebox/error\";\nimport { AlephaError } from \"./AlephaError.ts\";\n\nexport class TypeBoxError extends AlephaError {\n readonly name = \"TypeBoxError\";\n\n public readonly cause: TLocalizedValidationError;\n public readonly value: {\n path: string;\n message: string;\n };\n\n constructor(error: TLocalizedValidationError) {\n super(\n `Invalid input: ${error.message}${error.instancePath ? ` at ${error.instancePath}` : \"\"}`,\n {\n cause: error,\n },\n );\n const params = error.params as TypeBoxErrorParams;\n if (params?.requiredProperties) {\n this.value = {\n path: `/${params.requiredProperties[0]}`,\n message: \"must be defined\",\n };\n } else {\n this.value = {\n path: error.instancePath,\n message: error.message,\n };\n }\n\n this.cause = error;\n }\n}\n\nexport interface TypeBoxErrorParams {\n requiredProperties?: string[];\n}\n","import type { TSchema } from \"typebox\";\nimport { Compile, type Validator } from \"typebox/compile\";\nimport { TypeBoxError } from \"../errors/TypeBoxError.ts\";\nimport type { Static } from \"./TypeProvider.ts\";\n\nexport class SchemaValidator {\n protected cache = new Map<TSchema, Validator>();\n\n /**\n * Validate the value against the provided schema.\n *\n * Validation create a new value by applying some preprocessing. (e.g., trimming text)\n */\n public validate<T extends TSchema>(\n schema: T,\n value: unknown,\n options: ValidateOptions = {},\n ): Static<T> {\n const newValue = this.beforeParse(schema, value, {\n trim: options.trim ?? true,\n nullToUndefined: options.nullToUndefined ?? true,\n deleteUndefined: options.deleteUndefined ?? true,\n });\n\n try {\n return this.getValidator(schema).Parse(newValue);\n } catch (error: any) {\n if (error.cause?.errors?.[0]) {\n throw new TypeBoxError(error.cause.errors[0]);\n }\n throw error;\n }\n }\n\n protected getValidator<T extends TSchema>(schema: T): Validator<{}, T> {\n if (this.cache.has(schema)) {\n return this.cache.get(schema) as Validator<{}, T>;\n }\n\n const validator = Compile(schema);\n this.cache.set(schema, validator);\n return validator as Validator<{}, T>;\n }\n\n /**\n * Preprocess the value based on the schema before validation.\n *\n * - If the value is `null` and the schema does not allow `null`, it converts it to `undefined`.\n * - If the value is a string and the schema has a `~options.trim` flag, it trims whitespace from the string.\n */\n public beforeParse(schema: any, value: any, options: ValidateOptions): any {\n if (!schema) {\n return value;\n }\n\n if (\n value === null &&\n !this.isSchemaNullable(schema) &&\n options.nullToUndefined\n ) {\n return undefined;\n }\n\n if (Array.isArray(value)) {\n return value.map((it) => this.beforeParse(schema.items, it, options));\n }\n\n if (\n options.trim &&\n typeof value === \"string\" &&\n schema.type === \"string\" &&\n schema[\"~options\"]?.trim\n ) {\n return String(value).trim();\n }\n\n if (\n typeof value === \"object\" &&\n value !== null &&\n schema.type === \"object\"\n ) {\n const obj: any = {};\n\n for (const key in value) {\n const newValue = this.beforeParse(\n schema.properties?.[key],\n value[key],\n options,\n );\n\n if (newValue === undefined && options.deleteUndefined) {\n continue;\n }\n\n obj[key] = newValue;\n }\n\n return obj;\n }\n\n return value;\n }\n\n /**\n * Used by `beforeParse` to determine if a schema allows null values.\n */\n protected isSchemaNullable = (schema: any): boolean => {\n if (!schema) {\n return false;\n }\n if (schema.type === \"null\") {\n return true;\n }\n if (Array.isArray(schema.type) && schema.type.includes(\"null\")) {\n return true;\n }\n if (schema.anyOf) {\n return schema.anyOf.some((it: any) => this.isSchemaNullable(it));\n }\n if (schema.oneOf) {\n return schema.oneOf.some((it: any) => this.isSchemaNullable(it));\n }\n if (schema.allOf) {\n return schema.allOf.some((it: any) => this.isSchemaNullable(it));\n }\n return false;\n };\n}\n\nexport interface ValidateOptions {\n trim?: boolean;\n nullToUndefined?: boolean;\n deleteUndefined?: boolean;\n}\n","import type { StaticEncode, TSchema } from \"typebox\";\nimport { $inject } from \"../descriptors/$inject.ts\";\nimport { AlephaError } from \"../errors/AlephaError.ts\";\nimport { JsonSchemaCodec } from \"./JsonSchemaCodec.ts\";\nimport type { SchemaCodec } from \"./SchemaCodec.ts\";\nimport { SchemaValidator, type ValidateOptions } from \"./SchemaValidator.ts\";\nimport type { Static } from \"./TypeProvider.ts\";\n\nexport type Encoding = \"object\" | \"string\" | \"binary\";\n\nexport interface EncodeOptions<T extends Encoding = Encoding> {\n /**\n * The output encoding format:\n * - 'string': Returns JSON string\n * - 'binary': Returns Uint8Array (for protobuf, msgpack, etc.)\n *\n * @default \"string\"\n */\n as?: T;\n\n /**\n * The encoder to use (e.g., 'json', 'protobuf', 'msgpack')\n *\n * @default \"json\"\n */\n encoder?: string;\n\n /**\n * Validation options to apply before encoding.\n */\n validation?: ValidateOptions | false;\n}\n\nexport type EncodeResult<\n T extends TSchema,\n E extends Encoding,\n> = E extends \"string\"\n ? string\n : E extends \"binary\"\n ? Uint8Array\n : StaticEncode<T>;\n\nexport interface DecodeOptions {\n /**\n * The encoder to use (e.g., 'json', 'protobuf', 'msgpack')\n *\n * @default \"json\"\n */\n encoder?: string;\n\n /**\n * Validation options to apply before encoding.\n */\n validation?: ValidateOptions | false;\n}\n\n/**\n * CodecManager manages multiple codec formats and provides a unified interface\n * for encoding and decoding data with different formats.\n */\nexport class CodecManager {\n protected readonly codecs: Map<string, SchemaCodec> = new Map();\n protected readonly jsonCodec = $inject(JsonSchemaCodec);\n protected readonly schemaValidator = $inject(SchemaValidator);\n\n public default = \"json\";\n\n constructor() {\n // Register default JSON codec\n this.register(this.default, this.jsonCodec);\n }\n\n /**\n * Register a new codec format.\n *\n * @param name - The name of the codec (e.g., 'json', 'protobuf')\n * @param codec - The codec implementation\n */\n public register(name: string, codec: SchemaCodec): void {\n this.codecs.set(name, codec);\n }\n\n /**\n * Get a specific codec by name.\n *\n * @param name - The name of the codec\n * @returns The codec instance\n * @throws {AlephaError} If the codec is not found\n */\n public getCodec(name: string): SchemaCodec {\n const codec = this.codecs.get(name);\n if (!codec) {\n throw new AlephaError(\n `Codec \"${name}\" not found. Available codecs: ${Array.from(this.codecs.keys()).join(\", \")}`,\n );\n }\n return codec;\n }\n\n /**\n * Encode data using the specified codec and output format.\n */\n public encode<T extends TSchema, E extends Encoding = \"object\">(\n schema: T,\n value: unknown,\n options?: EncodeOptions<E>,\n ): EncodeResult<T, E> {\n const codec = this.getCodec(options?.encoder ?? this.default);\n const as = options?.as ?? \"object\";\n\n if (options?.validation !== false) {\n value = this.schemaValidator.validate(schema, value, options?.validation);\n }\n\n if (as === \"object\") {\n // Return the validated object as-is\n return value as EncodeResult<T, E>;\n }\n\n if (as === \"binary\") {\n // not used by JSON, but for other codecs like Protobuf, MsgPack, etc.\n return codec.encodeToBinary(schema, value as Static<T>) as EncodeResult<\n T,\n E\n >;\n }\n\n // encode directly to string\n return codec.encodeToString(schema, value as Static<T>) as EncodeResult<\n T,\n E\n >;\n }\n\n /**\n * Decode data using the specified codec.\n */\n public decode<T extends TSchema>(\n schema: T,\n data: any,\n options?: DecodeOptions,\n ): Static<T> {\n const encoderName = options?.encoder ?? this.default;\n const codec = this.getCodec(encoderName);\n let value = codec.decode(schema, data);\n\n if (options?.validation !== false) {\n value = this.schemaValidator.validate(schema, value, options?.validation);\n }\n\n return value as Static<T>;\n }\n\n /**\n * Validate decoded data against the schema.\n *\n * This is automatically called before encoding or after decoding.\n */\n public validate<T extends TSchema>(\n schema: T,\n value: unknown,\n options?: ValidateOptions,\n ): Static<T> {\n return this.schemaValidator.validate(schema, value, options);\n }\n}\n","import type { Hook, Hooks } from \"../Alepha.ts\";\nimport { AlephaError } from \"../errors/AlephaError.ts\";\nimport type { Async } from \"../interfaces/Async.ts\";\nimport type { LoggerInterface } from \"../interfaces/LoggerInterface.ts\";\n\nexport class EventManager {\n protected logFn?: () => LoggerInterface | undefined;\n\n /**\n * List of events that can be triggered. Powered by $hook().\n */\n protected events: Record<string, Array<Hook>> = {};\n\n constructor(logFn?: () => LoggerInterface | undefined) {\n this.logFn = logFn;\n }\n\n protected get log(): LoggerInterface | undefined {\n return this.logFn?.();\n }\n\n /**\n * Registers a hook for the specified event.\n */\n public on<T extends keyof Hooks>(\n event: T,\n hookOrFunc: Hook<T> | ((payload: Hooks[T]) => Async<void>),\n ): () => void {\n if (!this.events[event]) {\n this.events[event] = [];\n }\n\n const hook =\n typeof hookOrFunc === \"function\" ? { callback: hookOrFunc } : hookOrFunc;\n\n if (hook.priority === \"first\") {\n this.events[event].unshift(hook);\n } else if (hook.priority === \"last\") {\n this.events[event].push(hook);\n } else {\n const index = this.events[event].findIndex(\n (it) => it.priority === \"last\",\n );\n if (index !== -1) {\n this.events[event].splice(index, 0, hook);\n } else {\n this.events[event].push(hook);\n }\n }\n\n return () => {\n this.events[event] = this.events[event].filter(\n (it) => it.callback !== hook.callback,\n );\n };\n }\n\n /**\n * Emits the specified event with the given payload.\n */\n public async emit<T extends keyof Hooks>(\n func: T,\n payload: Hooks[T],\n options: {\n /**\n * If true, the hooks will be executed in reverse order.\n * This is useful for \"stop\" hooks that should be executed in reverse order.\n *\n * @default false\n */\n reverse?: boolean;\n /**\n * If true, the hooks will be logged with their execution time.\n *\n * @default false\n */\n log?: boolean;\n /**\n * If true, errors will be caught and logged instead of throwing.\n *\n * @default false\n */\n catch?: boolean;\n } = {},\n ): Promise<void> {\n const ctx: any = {};\n\n if (options.log) {\n ctx.now = Date.now();\n this.log?.trace(`${func} ...`);\n }\n\n let events = this.events[func] ?? [];\n\n if (options.reverse) {\n events = events.toReversed();\n }\n\n for (const hook of events) {\n const name = hook.caller?.name ?? \"unknown\";\n if (options.log) {\n ctx.now2 = Date.now();\n this.log?.trace(`${func}(${name}) ...`);\n }\n\n try {\n await hook.callback(payload);\n } catch (error) {\n if (options.catch) {\n this.log?.error(`${func}(${name}) ERROR`, error);\n continue;\n }\n if (options.log) {\n throw new AlephaError(\n `Failed during '${func}()' hook for service: ${name}`,\n { cause: error },\n );\n }\n throw error;\n }\n\n if (options.log) {\n this.log?.debug(`${func}(${name}) OK [${Date.now() - ctx.now2}ms]`);\n }\n }\n\n if (options.log) {\n this.log?.debug(`${func} OK [${Date.now() - ctx.now}ms]`);\n }\n }\n}\n","import type { TArray } from \"typebox\";\nimport { KIND } from \"../constants/KIND.ts\";\nimport type {\n Static,\n TObject,\n TOptionalAdd,\n} from \"../providers/TypeProvider.ts\";\n\n/**\n * Define an atom for state management.\n *\n * Atom lets you define a piece of state with a name, schema, and default value.\n *\n * By default, Alepha state is just a simple key-value store.\n * Using atoms allows you to have type safety, validation, and default values for your state.\n *\n * You control how state is structured and validated.\n *\n * Features:\n * - Set a schema for validation\n * - Set a default value for initial state\n * - Rules, like read-only, custom validation, etc.\n * - Automatic getter access in services with {@link $use}\n * - SSR support (server state automatically serialized and hydrated on client)\n * - React integration (useAtom hook for automatic component re-renders)\n * - Middleware\n * - Persistence adapters (localStorage, Redis, database, file system, cookie, etc.)\n * - State migrations (version upgrades when schema changes)\n * - Documentation generation & devtools integration\n *\n * Common use cases:\n * - user preferences\n * - feature flags\n * - configuration options\n * - session data\n *\n * Atom must contain only serializable data.\n * Avoid storing complex objects like class instances, functions, or DOM elements.\n * If you need to store complex data, consider using identifiers or references instead.\n */\nexport const $atom = <\n T extends TObject<TProperties> | TArray,\n N extends string,\n>(\n options: AtomOptions<T, N>,\n): Atom<T, N> => {\n return new Atom<T, N>(options);\n};\n\nexport type AtomOptions<T extends TAtomObject, N extends string> = {\n name: N;\n schema: T;\n description?: string;\n} & (T extends TOptionalAdd<T>\n ? {\n default?: Static<T>;\n }\n : {\n default: Static<T>;\n });\n\nexport class Atom<T extends TAtomObject = TObject, N extends string = string> {\n public readonly options: AtomOptions<T, N>;\n\n public get schema(): T {\n return this.options.schema;\n }\n\n public get key(): N {\n return this.options.name;\n }\n\n constructor(options: AtomOptions<T, N>) {\n this.options = options;\n }\n}\n\n$atom[KIND] = \"atom\";\n\ntype TProperties = any; // it's required to avoid required [ string ] error, ...\n\nexport type TAtomObject = TObject<any> | TArray;\nexport type AtomStatic<T extends TAtomObject> = T extends TOptionalAdd<T>\n ? Static<T> | undefined\n : Static<T>;\n","import type { TObject } from \"typebox\";\nimport type { State as AlephaState } from \"../Alepha.ts\";\nimport {\n Atom,\n type AtomStatic,\n type TAtomObject,\n} from \"../descriptors/$atom.ts\";\nimport { $inject } from \"../descriptors/$inject.ts\";\nimport { AlsProvider } from \"./AlsProvider.ts\";\nimport { EventManager } from \"./EventManager.ts\";\nimport { JsonSchemaCodec } from \"./JsonSchemaCodec.ts\";\nimport type { Static } from \"./TypeProvider.ts\";\n\nexport interface AtomWithValue {\n atom: Atom;\n value: unknown;\n}\n\nexport class StateManager<State extends object = AlephaState> {\n protected readonly als = $inject(AlsProvider);\n protected readonly events = $inject(EventManager);\n protected readonly codec = $inject(JsonSchemaCodec);\n protected readonly atoms = new Map<keyof State, Atom>();\n\n protected store: Partial<State> = {};\n\n constructor(store: Partial<State> = {}) {\n this.store = store;\n }\n\n public getAtoms(context = true): Array<AtomWithValue> {\n const atoms: Array<AtomWithValue> = [];\n\n if (context && this.als?.exists()) {\n // for each this.atoms, check if key is present in als, if yes, add to new map\n for (const atom of this.atoms.values()) {\n const value = this.als.get(atom.key);\n if (value !== undefined) {\n atoms.push({ atom, value });\n }\n }\n } else {\n for (const [key, atom] of this.atoms.entries()) {\n atoms.push({ atom, value: this.store[key] as unknown });\n }\n }\n\n return atoms;\n }\n\n public register(atom: Atom<any>): this {\n const key = atom.key as keyof State;\n\n if (!this.atoms.has(key)) {\n this.atoms.set(key, atom);\n if (!(key in this.store)) {\n this.set(key, atom.options.default as State[keyof State]);\n }\n }\n\n return this;\n }\n\n /**\n * Get a value from the state with proper typing\n */\n public get<T extends TAtomObject>(target: Atom<T>): Static<T>;\n public get<Key extends keyof State>(target: Key): State[Key] | undefined;\n public get(target: string | object): any {\n if (target instanceof Atom) {\n this.register(target);\n }\n\n const key = target instanceof Atom ? target.key : target;\n const store = this.store as Record<string, any>;\n\n return this.als?.exists()\n ? (this.als.get(key as string) ?? store[key])\n : store[key];\n }\n\n /**\n * Set a value in the state\n */\n public set<T extends TAtomObject>(\n target: Atom<T>,\n value: AtomStatic<T>,\n ): this;\n public set<Key extends keyof State>(\n target: Key,\n value: State[Key] | undefined,\n ): this;\n public set(target: any, value: any): this {\n if (target instanceof Atom) {\n this.register(target);\n }\n\n const key = target instanceof Atom ? target.key : target;\n const store = this.store as Record<string, any>;\n\n const prevValue = this.get(key);\n if (prevValue === value) {\n return this;\n }\n\n if (this.als?.exists()) {\n this.als.set(key as string, value);\n } else {\n store[key] = value;\n }\n\n this.events\n ?.emit(\n \"state:mutate\",\n { key: key as keyof AlephaState, value, prevValue },\n { catch: true },\n )\n .catch(() => null);\n\n return this;\n }\n\n /**\n * Mutate a value in the state.\n */\n public mut<T extends TObject>(\n target: Atom<T>,\n mutator: (current: Static<T>) => Static<T>,\n ): this;\n public mut<Key extends keyof State>(\n target: Key,\n mutator: (current: State[Key] | undefined) => State[Key] | undefined,\n ): this;\n public mut(target: any, mutator: (current: any) => any): this {\n const current = this.get(target);\n const updated = mutator(current);\n return this.set(target, updated);\n }\n\n /**\n * Check if a key exists in the state\n */\n public has<Key extends keyof State>(key: Key): boolean {\n return key in this.store;\n }\n\n /**\n * Delete a key from the state (set to undefined)\n */\n public del<Key extends keyof State>(key: Key): this {\n return this.set(key, undefined);\n }\n\n /**\n * Push a value to an array in the state\n */\n public push<Key extends keyof OnlyArray<State>>(\n key: Key,\n value: NonNullable<State[Key]> extends Array<infer U> ? U : never,\n ): this {\n const current = (this.get(key) ?? []) as Array<any>; // default to empty array\n if (Array.isArray(current)) {\n this.set(key, [...current, value] as State[Key]);\n }\n return this;\n }\n\n /**\n * Clear all state\n */\n public clear(): this {\n this.store = {};\n return this;\n }\n\n /**\n * Get all keys that exist in the state\n */\n public keys(): (keyof State)[] {\n return Object.keys(this.store) as (keyof State)[];\n }\n}\n\ntype OnlyArray<T extends object> = {\n [K in keyof T]: NonNullable<T[K]> extends Array<any> ? K : never;\n};\n","import type { Static, TObject } from \"typebox\";\nimport { KIND } from \"./constants/KIND.ts\";\nimport { MODULE } from \"./constants/MODULE.ts\";\nimport { OPTIONS } from \"./constants/OPTIONS.ts\";\nimport type { InjectOptions } from \"./descriptors/$inject.ts\";\nimport { Module, type WithModule } from \"./descriptors/$module.ts\";\nimport { AlephaError } from \"./errors/AlephaError.ts\";\nimport { CircularDependencyError } from \"./errors/CircularDependencyError.ts\";\nimport { ContainerLockedError } from \"./errors/ContainerLockedError.ts\";\nimport { TooLateSubstitutionError } from \"./errors/TooLateSubstitutionError.ts\";\nimport { Descriptor } from \"./helpers/descriptor.ts\";\nimport { __alephaRef } from \"./helpers/ref.ts\";\nimport type { Async } from \"./interfaces/Async.ts\";\nimport type { LoggerInterface } from \"./interfaces/LoggerInterface.ts\";\nimport {\n type InstantiableClass,\n isClass,\n type RunFunction,\n type Service,\n type ServiceEntry,\n} from \"./interfaces/Service.ts\";\nimport { AlsProvider } from \"./providers/AlsProvider.ts\";\nimport { CodecManager } from \"./providers/CodecManager.ts\";\nimport { EventManager } from \"./providers/EventManager.ts\";\nimport { StateManager } from \"./providers/StateManager.ts\";\nimport type { TSchema } from \"./providers/TypeProvider.ts\";\n\n/**\n * Core container of the Alepha framework.\n *\n * It is responsible for managing the lifecycle of services,\n * handling dependency injection,\n * and providing a unified interface for the application.\n *\n * @example\n * ```ts\n * import { Alepha, run } from \"alepha\";\n *\n * class MyService {\n * // business logic here\n * }\n *\n * const alepha = Alepha.create({\n * // state, env, and other properties\n * })\n *\n * alepha.with(MyService);\n *\n * run(alepha); // trigger .start (and .stop) automatically\n * ```\n *\n * ### Alepha Factory\n *\n * Alepha.create() is an enhanced version of new Alepha().\n * - It merges `process.env` with the provided state.env when available.\n * - It populates the test hooks for Vitest or Jest environments when available.\n *\n * new Alepha() is fine if you don't need these helpers.\n *\n * ### Platforms & Environments\n *\n * Alepha is designed to work in various environments:\n * - **Browser**: Runs in the browser, using the global `window` object.\n * - **Serverless**: Runs in serverless environments like Vercel or Vite.\n * - **Test**: Runs in test environments like Jest or Vitest.\n * - **Production**: Runs in production environments, typically with NODE_ENV set to \"production\".\n * * You can check the current environment using the following methods:\n *\n * - `isBrowser()`: Returns true if the App is running in a browser environment.\n * - `isServerless()`: Returns true if the App is running in a serverless environment.\n * - `isTest()`: Returns true if the App is running in a test environment.\n * - `isProduction()`: Returns true if the App is running in a production environment.\n *\n * ### State & Environment\n *\n * The state of the Alepha container is stored in the `store` property.\n * Most important property is `store.env`, which contains the environment variables.\n *\n * ```ts\n * const alepha = Alepha.create({ env: { MY_VAR: \"value\" } });\n *\n * // You can access the environment variables using alepha.env\n * console.log(alepha.env.MY_VAR); // \"value\"\n *\n * // But you should use $env() descriptor to get typed values from the environment.\n * class App {\n * env = $env(\n * t.object({\n * \t MY_VAR: t.text(),\n * })\n * );\n * }\n * ```\n *\n * ### Modules\n *\n * Modules are a way to group services together.\n * You can register a module using the `$module` descriptor.\n *\n * ```ts\n * import { $module } from \"alepha\";\n *\n * class MyLib {}\n *\n * const myModule = $module({\n * name: \"my.project.module\",\n * services: [MyLib],\n * });\n * ```\n *\n * Do not use modules for small applications.\n *\n * ### Hooks\n *\n * Hooks are a way to run async functions from all registered providers/services.\n * You can register a hook using the `$hook` descriptor.\n *\n * ```ts\n * import { $hook } from \"alepha\";\n *\n * class App {\n * \t log = $logger();\n * \t onCustomerHook = $hook({\n * \t\t\ton: \"my:custom:hook\",\n * \t\t\thandler: () => {\n * \t\t \t this.log?.info(\"App is being configured\");\n * \t \t\t},\n * \t });\n * \t}\n *\n * Alepha.create()\n * \t .with(App)\n * \t .start()\n * \t .then(alepha => alepha.events.emit(\"my:custom:hook\"));\n * ```\n *\n * \tHooks are fully typed. You can create your own hooks by using module augmentation:\n *\n * \t```ts\n * \tdeclare module \"alepha\" {\n * \t\tinterface Hooks {\n * \t\t \"my:custom:hook\": {\n * \t\t\t\targ1: string;\n * \t\t }\n * \t\t}\n * \t}\n * \t```\n *\n * \t@module alepha\n */\nexport class Alepha {\n /**\n * Creates a new instance of the Alepha container with some helpers:\n *\n * - merges `process.env` with the provided state.env when available.\n * - populates the test hooks for Vitest or Jest environments when available.\n *\n * If you are not interested about these helpers, you can use the constructor directly.\n */\n public static create(state: Partial<State> = {}): Alepha {\n // merge process.env with the state.env\n if (typeof process === \"object\" && typeof process.env === \"object\") {\n state.env = {\n ...state.env,\n ...process.env,\n };\n }\n\n const alepha = new Alepha(state);\n\n if (alepha.isTest()) {\n // inject global hooks for testing purposes\n // > for vitest, { globals: true } is required in the config\n const g = globalThis as any;\n const beforeAll = state[\"alepha.test.beforeAll\"] ?? g.beforeAll;\n const afterAll = state[\"alepha.test.afterAll\"] ?? g.afterAll;\n const afterEach = state[\"alepha.test.afterEach\"] ?? g.afterEach;\n const onTestFinished =\n state[\"alepha.test.onTestFinished\"] ?? g.onTestFinished;\n\n beforeAll?.(() => alepha.start());\n afterAll?.(() => alepha.stop());\n\n try {\n onTestFinished?.(() => alepha.stop());\n } catch (_error) {\n // ignore\n }\n\n alepha.state\n .set(\"alepha.test.beforeAll\", beforeAll)\n .set(\"alepha.test.afterAll\", afterAll)\n .set(\"alepha.test.afterEach\", afterEach)\n .set(\"alepha.test.onTestFinished\", onTestFinished);\n }\n\n return alepha;\n }\n\n /**\n * Flag indicating whether the App won't accept any further changes.\n * Pass to true when #start() is called.\n */\n protected locked = false;\n\n /**\n * True if the App has been configured.\n */\n protected configured = false;\n\n /**\n * True if the App has started.\n */\n protected started = false;\n\n /**\n * True if the App is ready.\n */\n protected ready = false;\n\n /**\n * A promise that resolves when the App has started.\n */\n protected starting?: PromiseWithResolvers<this>;\n\n /**\n * Initial state of the container.\n *\n * > Used to initialize the StateManager.\n */\n protected init: Partial<State>;\n\n /**\n * During the instantiation process, we keep a list of pending instantiations.\n * > It allows us to detect circular dependencies.\n */\n protected pendingInstantiations: Service[] = [];\n\n /**\n * Cache for environment variables.\n * > It allows us to avoid parsing the same schema multiple times.\n */\n protected cacheEnv: Map<TSchema, any> = new Map();\n\n /**\n * List of modules that are registered in the container.\n *\n * Modules are used to group services and provide a way to register them in the container.\n */\n protected modules: Array<Module> = [];\n\n /**\n * List of service substitutions.\n *\n * Services registered here will be replaced by the specified service when injected.\n */\n protected substitutions = new Map<Service, { use: Service }>();\n\n /**\n * Registry of descriptors.\n */\n protected descriptorRegistry = new Map<\n Service<Descriptor>,\n Array<Descriptor>\n >();\n\n /**\n * List of all services + how they are provided.\n */\n protected registry: Map<Service, ServiceDefinition> = new Map();\n\n // -------------------------------------------------------------------------------------------------------------------\n\n /**\n * Node.js feature that allows to store context across asynchronous calls.\n *\n * This is used for logging, tracing, and other context-related features.\n *\n * Mocked for browser environments.\n */\n public get context(): AlsProvider {\n return this.inject(AlsProvider);\n }\n\n /**\n * Event manager to handle lifecycle events and custom events.\n */\n public get events(): EventManager {\n return this.inject(EventManager, {\n args: [() => this.log],\n });\n }\n\n /**\n * State manager to store arbitrary values.\n */\n public get state(): StateManager<State> {\n this.events; // ensure events is initialized first (TODO: move this to constructor?)\n return this.inject(StateManager, {\n args: [this.init],\n });\n }\n\n /**\n * Codec manager for encoding and decoding data with different formats.\n *\n * Supports multiple codec formats (JSON, Protobuf, etc.) with a unified interface.\n */\n public get codec(): CodecManager {\n return this.inject(CodecManager);\n }\n\n /**\n * Get logger instance.\n */\n public get log(): LoggerInterface | undefined {\n return this.state.get(\"alepha.logger\");\n }\n\n /**\n * The environment variables for the App.\n */\n public get env(): Readonly<Env> {\n return this.state.get(\"env\") ?? {};\n }\n\n constructor(init: Partial<State> = {}) {\n this.init = init;\n }\n\n /**\n * True when start() is called.\n *\n * -> No more services can be added, it's over, bye!\n */\n public isLocked(): boolean {\n return this.locked;\n }\n\n /**\n * Returns whether the App is configured.\n *\n * It means that Alepha#configure() has been called.\n *\n * > By default, configure() is called automatically when start() is called, but you can also call it manually.\n */\n public isConfigured(): boolean {\n return this.configured;\n }\n\n /**\n * Returns whether the App has started.\n *\n * It means that #start() has been called but maybe not all services are ready.\n */\n public isStarted(): boolean {\n return this.started;\n }\n\n /**\n * True if the App is ready. It means that Alepha is started AND ready() hook has beed called.\n */\n public isReady(): boolean {\n return this.ready;\n }\n\n /**\n * True if the App is running in a browser environment.\n */\n public isBrowser(): boolean {\n return typeof window !== \"undefined\"; // pretty cheap check\n }\n\n /**\n * Returns whether the App is running in Vite dev mode.\n */\n public isViteDev(): boolean {\n if (this.isBrowser()) {\n return false;\n }\n\n return !!this.env.VITE_ALEPHA_DEV;\n }\n\n /**\n * Returns whether the App is running in a serverless environment.\n */\n public isServerless(): boolean {\n if (this.isBrowser()) {\n return false;\n }\n\n if (this.env.VERCEL_REGION) {\n return true;\n }\n\n if (this.env.ALEPHA_SERVERLESS) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Returns whether the App is in test mode. (Running in a test environment)\n *\n * > This is automatically set when running tests with Jest or Vitest.\n */\n public isTest(): boolean {\n const env = this.env.NODE_ENV;\n return env === \"test\";\n }\n\n /**\n * Returns whether the App is in production mode. (Running in a production environment)\n *\n * > This is automatically set by Vite or Vercel. However, you have to set it manually when running Docker apps.\n */\n public isProduction(): boolean {\n const env = this.env.NODE_ENV;\n return env === \"production\";\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n /**\n * Starts the App.\n *\n * - Lock any further changes to the container.\n * - Run \"configure\" hook for all services. Descriptors will be processed.\n * - Run \"start\" hook for all services. Providers will connect/listen/...\n * - Run \"ready\" hook for all services. This is the point where the App is ready to serve requests.\n *\n * @return A promise that resolves when the App has started.\n */\n public async start(): Promise<this> {\n if (this.ready) {\n this.log?.debug(\"App is already started, skipping...\");\n return this;\n }\n\n // make sure that start is called only once\n if (this.starting) {\n this.log?.warn(\"App is already starting, waiting for it to finish...\");\n return this.starting.promise;\n }\n\n this.codec; // ensure codec is initialized\n\n this.starting = Promise.withResolvers();\n\n const now = Date.now();\n\n this.log?.info(\"Starting App...\");\n\n for (const [key] of this.substitutions.entries()) {\n this.inject(key);\n }\n\n const target = this.state.get(\"alepha.target\");\n if (target) {\n this.registry = new Map();\n this.descriptorRegistry = new Map();\n this.with(target);\n }\n\n this.locked = true;\n\n await this.events.emit(\"configure\", this, { log: true });\n\n this.configured = true;\n\n await this.events.emit(\"start\", this, { log: true });\n\n this.started = true;\n\n await this.events.emit(\"ready\", this, { log: true });\n\n this.log?.info(`App is now ready [${Date.now() - now}ms]`);\n\n this.ready = true;\n\n this.starting.resolve(this);\n this.starting = undefined;\n\n return this;\n }\n\n /**\n * Stops the App.\n *\n * - Run \"stop\" hook for all services.\n *\n * Stop will NOT reset the container.\n * Stop will NOT unlock the container.\n *\n * > Stop is used to gracefully shut down the application, nothing more. There is no \"restart\".\n *\n * @return A promise that resolves when the App has stopped.\n */\n public async stop(): Promise<void> {\n if (!this.started) {\n return;\n }\n\n this.log?.info(\"Stopping App...\");\n await this.events.emit(\"stop\", this, { reverse: true, log: true });\n this.log?.info(\"App is now off\");\n\n this.started = false;\n this.ready = false;\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n /**\n * Check if entry is registered in the container.\n */\n public has(\n entry: ServiceEntry,\n opts: {\n /**\n * Check if the entry is registered in the pending instantiation stack.\n *\n * @default true\n */\n inStack?: boolean;\n /**\n * Check if the entry is registered in the container registry.\n *\n * @default true\n */\n inRegistry?: boolean;\n /**\n * Check if the entry is registered in the substitutions.\n *\n * @default true\n */\n inSubstitutions?: boolean;\n /**\n * Where to look for registered services.\n *\n * @default this.registry\n */\n registry?: Map<Service, ServiceDefinition>;\n } = {},\n ): boolean {\n if (entry === Alepha) {\n return true;\n }\n\n const {\n inStack = true,\n inRegistry = true,\n inSubstitutions = true,\n registry = this.registry,\n } = opts;\n\n const { provide } =\n typeof entry === \"object\" && \"provide\" in entry\n ? entry\n : { provide: entry };\n\n if (inSubstitutions) {\n const substitute = this.substitutions.get(provide);\n if (substitute) {\n return true;\n }\n }\n\n if (inRegistry) {\n const match = registry.get(provide);\n if (match) {\n return true;\n }\n }\n\n if (inStack) {\n const substitute = this.substitutions.get(provide)?.use;\n if (substitute && this.pendingInstantiations.includes(substitute)) {\n return true;\n }\n\n return this.pendingInstantiations.includes(provide);\n }\n\n return false;\n }\n\n /**\n * Registers the specified service in the container.\n *\n * - If the service is ALREADY registered, the method does nothing.\n * - If the service is NOT registered, a new instance is created and registered.\n *\n * Method is chainable, so you can register multiple services in a single call.\n *\n * > ServiceEntry allows to provide a service **substitution** feature.\n *\n * @example\n * ```ts\n * class A { value = \"a\"; }\n * class B { value = \"b\"; }\n * class M { a = $inject(A); }\n *\n * Alepha.create().with({ provide: A, use: B }).get(M).a.value; // \"b\"\n * ```\n *\n * > **Substitution** is an advanced feature that allows you to replace a service with another service.\n * > It's useful for testing or for providing different implementations of a service.\n * > If you are interested in configuring a service, use Alepha#configure() instead.\n *\n * @param serviceEntry - The service to register in the container.\n * @return Current instance of Alepha.\n */\n public with<T extends object>(\n serviceEntry: ServiceEntry<T> | { default: ServiceEntry<T> },\n ): this {\n const entry: ServiceEntry<T> =\n \"default\" in serviceEntry ? serviceEntry.default : serviceEntry;\n\n // just check if the entry is not present in the pending instantiation stack\n // Alepha#get will handle the rest\n if (\n this.has(entry, {\n inSubstitutions: false,\n inRegistry: false,\n })\n ) {\n return this;\n }\n\n const isSubstitution = typeof entry === \"object\";\n if (isSubstitution) {\n if (!this.substitutions.has(entry.provide) && !this.has(entry.provide)) {\n if (this.started) {\n throw new ContainerLockedError();\n }\n\n // inherit of module, if service has no module\n if (\n MODULE in entry.provide &&\n typeof entry.provide[MODULE] === \"function\"\n ) {\n (entry.use as WithModule)[MODULE] ??= entry.provide[MODULE];\n }\n\n this.substitutions.set(entry.provide, {\n use: entry.use,\n });\n } else if (!entry.optional) {\n throw new TooLateSubstitutionError(entry.provide.name, entry.use.name);\n }\n return this;\n }\n\n this.inject(entry);\n\n return this;\n }\n\n /**\n * Get an instance of the specified service from the container.\n *\n * @see {@link InjectOptions} for the available options.\n */\n public inject<T extends object>(\n service: Service<T> | string,\n opts: InjectOptions<T> = {},\n ): T {\n const lifetime = opts.lifetime ?? \"singleton\";\n const parent =\n opts.parent !== undefined ? opts.parent : (__alephaRef?.parent ?? Alepha);\n\n const transient = lifetime === \"transient\";\n const registry =\n lifetime === \"scoped\"\n ? (this.context.get<Map<Service, ServiceDefinition>>(\"registry\") ??\n this.registry)\n : this.registry;\n\n // If the requested type is the container, the current instance is returned.\n if ((service as any) === Alepha) {\n return this as any;\n }\n\n if (typeof service === \"string\") {\n for (const [key, value] of registry.entries()) {\n if (key.name === service) {\n return value.instance as T;\n }\n }\n throw new AlephaError(`Service not found: ${service}`);\n }\n\n const substitute = this.substitutions.get(service);\n if (substitute) {\n return this.inject(substitute.use, {\n parent,\n lifetime,\n });\n }\n\n const index = this.pendingInstantiations.indexOf(service);\n if (index !== -1 && !transient) {\n throw new CircularDependencyError(\n service.name,\n this.pendingInstantiations.slice(0, index).map((it) => it.name),\n );\n }\n\n if (!transient) {\n // the requested type is searched in the container\n const match = registry.get(service);\n if (match) {\n if (!match.parents.includes(parent) && parent !== service) {\n match.parents.push(parent);\n }\n\n return match.instance;\n }\n\n if (this.started) {\n throw new ContainerLockedError(\n `Container is locked. No more services can be added. ${parent?.name} -> ${service.name}`,\n );\n }\n }\n\n const module = (service as WithModule)[MODULE];\n if (module && typeof module === \"function\") {\n this.with(module);\n }\n\n // check if service has been registered by a module\n if (this.has(service, { registry }) && !transient) {\n // if the service is already registered, we just return the instance\n return this.inject(service, { parent, lifetime });\n }\n\n const instance: T = this.new(service, opts.args);\n\n const definition: ServiceDefinition<T> = {\n parents: [parent],\n instance,\n };\n\n if (!transient) {\n registry.set(service, definition);\n }\n\n // [feature]: modules - it's just a way to group services together\n if (instance instanceof Module) {\n this.modules.push(instance);\n\n const parent = __alephaRef.parent;\n\n // propagate the current module\n __alephaRef.parent = instance.constructor as Service;\n\n instance.register(this);\n\n // restore the previous $get context\n __alephaRef.parent = parent;\n }\n\n return instance;\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n /**\n * Applies environment variables to the provided schema and state object.\n *\n * It replaces also all templated $ENV inside string values.\n *\n * @param schema - The schema object to apply environment variables to.\n * @return The schema object with environment variables applied.\n */\n public parseEnv<T extends TObject>(schema: T): Static<T> {\n if (this.cacheEnv.has(schema)) {\n return this.cacheEnv.get(schema) as Static<T>;\n }\n\n const config = this.codec.validate(schema, this.env) as Record<string, any>;\n\n for (const key in config) {\n if (typeof config[key] === \"string\") {\n for (const env in config) {\n config[key] = config[key].replace(\n new RegExp(`\\\\$${env}`, \"gim\"),\n config[env],\n );\n }\n }\n }\n\n this.cacheEnv.set(schema, config);\n\n return config as Static<T>;\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n /**\n * Dump the current dependency graph of the App.\n *\n * This method returns a record where the keys are the names of the services.\n */\n public graph(): Record<\n string,\n { from: string[]; as?: string[]; module?: string }\n > {\n for (const [key] of this.substitutions.entries()) {\n if (!this.has(key)) {\n this.inject(key);\n }\n }\n\n const graph: Record<\n string,\n { from: string[]; as?: string[]; module?: string }\n > = {};\n\n for (const [provide, { parents }] of this.registry.entries()) {\n graph[provide.name] = {\n from: parents.filter((it) => !!it).map((it) => it.name),\n };\n\n const aliases = this.substitutions\n .entries()\n .filter((it) => it[1].use === provide)\n .map((it) => it[0].name)\n .toArray();\n\n if (aliases.length) {\n graph[provide.name].as = aliases;\n }\n\n const module = Module.of(provide);\n if (module) {\n graph[provide.name].module = module.name;\n }\n }\n\n return graph;\n }\n\n public services<T extends object>(base: Service<T>): Array<T> {\n const list: Array<T> = [];\n for (const [key, value] of this.registry.entries()) {\n if (value.instance instanceof base) {\n list.push(value.instance as T);\n }\n }\n return list;\n }\n\n /**\n * Get all descriptors of the specified type.\n */\n public descriptors<TDescriptor extends Descriptor>(\n factory:\n | {\n [KIND]: InstantiableClass<TDescriptor>;\n }\n | string,\n ): Array<TDescriptor> {\n if (typeof factory === \"string\") {\n const key1 = factory.toLowerCase().replace(\"$\", \"\");\n const key2 = `${key1}descriptor`;\n for (const [key, value] of this.descriptorRegistry.entries()) {\n const name = key.name.toLowerCase();\n if (name === key1 || name === key2) {\n return value as Array<TDescriptor>;\n }\n }\n return [];\n }\n return (this.descriptorRegistry.get(factory[KIND]) ??\n []) as Array<TDescriptor>;\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n protected new<T extends object>(service: Service<T>, args: any[] = []): T {\n // we keep a tree of dependencies to detect circular dependencies\n // it's also useful for cleaning are global cursor\n this.pendingInstantiations.push(service);\n\n //\n // we use a global cursor to store the current context and definition\n // as new() is synchronous, there is no worry to do that\n //\n __alephaRef.alepha = this;\n __alephaRef.service = service;\n\n const instance: T = isClass(service)\n ? new service(...args)\n : (((service as RunFunction)(...args) ?? {}) as T);\n\n const obj = instance as unknown as Record<string, any>;\n for (const [key, value] of Object.entries(obj)) {\n if (value instanceof Descriptor) {\n this.processDescriptor(value, key);\n }\n if (\n typeof value === \"object\" &&\n value !== null &&\n typeof value[OPTIONS] === \"object\" &&\n \"getter\" in value[OPTIONS]\n ) {\n const getter = value[OPTIONS].getter as keyof State;\n Object.defineProperty(obj, key, {\n get: () => this.state.get(getter),\n });\n }\n }\n\n this.pendingInstantiations.pop();\n\n // tree is empty, now we can clean the global cursor\n if (this.pendingInstantiations.length === 0) {\n __alephaRef.alepha = undefined;\n }\n\n __alephaRef.service =\n this.pendingInstantiations[this.pendingInstantiations.length - 1];\n\n return instance;\n }\n\n protected processDescriptor(value: Descriptor, propertyKey = \"\") {\n value.config.propertyKey = propertyKey;\n (value as any).onInit();\n\n const kind = value.constructor as Service;\n const list = this.descriptorRegistry.get(kind) ?? [];\n this.descriptorRegistry.set(kind, [...list, value]);\n }\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface Hook<T extends keyof Hooks = any> {\n caller?: Service;\n priority?: \"first\" | \"last\";\n callback: (payload: Hooks[T]) => Async<void>;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * This is how we store services in the Alepha container.\n */\ninterface ServiceDefinition<T extends object = any> {\n /**\n * The instance of the class or type definition.\n * Mostly used for caching / singleton but can be used for other purposes like forcing the instance.\n */\n instance: T;\n\n /**\n * List of classes which use this class.\n */\n parents: Array<Service | null>;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface Env {\n [key: string]: string | boolean | number | undefined;\n\n /**\n * Optional environment variable that indicates the current environment.\n */\n NODE_ENV?: \"dev\" | \"test\" | \"production\";\n\n /**\n * Optional name of the application.\n */\n APP_NAME?: string;\n\n /**\n * Optional root module name.\n */\n MODULE_NAME?: string;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface State {\n /**\n * Environment variables for the application.\n */\n env?: Readonly<Env>;\n\n /**\n * Logger instance to be used by the Alepha container.\n *\n * @internal\n */\n \"alepha.logger\"?: LoggerInterface;\n\n /**\n * If defined, the Alepha container will only register this service and its dependencies.\n */\n \"alepha.target\"?: Service;\n\n // test hooks\n\n /**\n * Bind to Vitest 'beforeAll' hook.\n * Used for testing purposes.\n * This is automatically attached if Alepha#create() detects a test environment and global 'beforeAll' is available.\n */\n \"alepha.test.beforeAll\"?: (run: any) => any;\n\n /**\n * Bind to Vitest 'afterAll' hook.\n * Used for testing purposes.\n * This is automatically attached if Alepha#create() detects a test environment and global 'afterAll' is available.\n */\n \"alepha.test.afterAll\"?: (run: any) => any;\n\n /**\n * Bind to Vitest 'afterEach' hook.\n * Used for testing purposes.\n * This is automatically attached if Alepha#create() detects a test environment and global 'afterEach' is available.\n */\n \"alepha.test.afterEach\"?: (run: any) => any;\n\n /**\n * Bind to Vitest 'onTestFinished' hook.\n * Used for testing purposes.\n * This is automatically attached if Alepha#create() detects a test environment and global 'onTestFinished' is available.\n */\n \"alepha.test.onTestFinished\"?: (run: any) => any;\n\n /**\n * List of static assets to be copied to the output directory during the build process.\n *\n * Used for Alepha-based applications that require static assets.\n *\n * See @alepha/vite for more details.\n */\n \"alepha.build.assets\"?: Array<string>;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface Hooks {\n /**\n * Used for testing purposes.\n */\n echo: unknown;\n\n /**\n * Triggered during the configuration phase. Before the start phase.\n */\n configure: Alepha;\n\n /**\n * Triggered during the start phase. When `Alepha#start()` is called.\n */\n start: Alepha;\n\n /**\n * Triggered during the ready phase. After the start phase.\n */\n ready: Alepha;\n\n /**\n * Triggered during the stop phase.\n *\n * - Stop should be called after a SIGINT or SIGTERM signal in order to gracefully shutdown the application. (@see `run()` method)\n *\n */\n stop: Alepha;\n\n /**\n * Triggered when a state value is mutated.\n */\n \"state:mutate\": {\n /**\n * The key of the state that was mutated.\n */\n key: keyof State;\n\n /**\n * The new value of the state.\n */\n value: any;\n\n /**\n * The previous value of the state.\n */\n prevValue: any;\n };\n}\n","import { access, readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { AlephaError } from \"../errors/AlephaError.ts\";\n\n/**\n * Remember:\n * At first, functions was inside alepha/vite package, but it's now used in alepha too.\n * For avoiding cli -> vite, all code moved here.\n */\n\n/**\n * Find browser/client entry file path.\n */\nconst getClientEntry = async (\n root = process.cwd(),\n): Promise<string | undefined> => {\n const indexPath = join(root, \"index.html\");\n try {\n const html = await readFile(indexPath, \"utf8\");\n return extractFirstModuleScriptSrc(html).replace(/\\\\/g, \"/\");\n } catch {\n return undefined;\n }\n};\n\n/**\n * Find server entry file path.\n */\nconst getServerEntry = async (\n root = process.cwd(),\n explicitEntry?: string,\n): Promise<string> => {\n if (explicitEntry) {\n const explicitPath = join(root, explicitEntry);\n try {\n await access(explicitPath);\n return explicitPath.replace(/\\\\/g, \"/\");\n } catch {\n throw new AlephaError(\n `Explicit server entry file \"${explicitEntry}\" not found.`,\n );\n }\n }\n\n const maybeEntry = [\n \"src/index.server.ts\",\n \"src/main.server.ts\",\n \"src/server-entry.ts\",\n \"src/index.server.tsx\",\n \"src/main.server.tsx\",\n \"src/server-entry.tsx\",\n \"src/main.ts\",\n \"src/main.tsx\",\n ];\n\n for (const entry of maybeEntry) {\n try {\n await access(entry);\n return join(root, entry).replace(/\\\\/g, \"/\");\n } catch {\n // continue to next entry\n }\n }\n\n const clientEntry = await getClientEntry(root);\n if (clientEntry) {\n return clientEntry;\n }\n\n throw new AlephaError(`Could not find a server entry file.`);\n};\n\n/**\n * Extract first module script src from HTML.\n */\nfunction extractFirstModuleScriptSrc(html: string): string {\n const scriptRegex = /<script\\b[^>]*>[\\s\\S]*?<\\/script>/gi;\n let match: RegExpExecArray | null = scriptRegex.exec(html);\n\n while (match) {\n const tag = match[0];\n\n // Check for type=\"module\"\n if (/type=[\"']module[\"']/i.test(tag)) {\n // Extract the src value\n const srcMatch = tag.match(/\\bsrc=[\"']([^\"']+)[\"']/i);\n const entry = srcMatch?.[1];\n if (entry) {\n if (entry.startsWith(\"/\")) {\n return entry.substring(1); // Remove leading slash\n }\n return entry;\n }\n }\n\n match = scriptRegex.exec(html);\n }\n\n throw new AlephaError(`No module script found in the provided HTML.`);\n}\n\nexport const boot = {\n getClientEntry,\n getServerEntry,\n};\n","// ------------------------------------------------------------------\n// Engine\n// ------------------------------------------------------------------\nexport { Instantiate } from './type/engine/instantiate.mjs';\n// ------------------------------------------------------------------\n// Extends\n// ------------------------------------------------------------------\nexport { Extends, ExtendsResult } from './type/extends/index.mjs';\n// ------------------------------------------------------------------\n// Script\n// ------------------------------------------------------------------\nexport { Script } from './type/script/index.mjs';\n// ------------------------------------------------------------------\n// Actions\n// ------------------------------------------------------------------\nexport { Awaited } from './type/action/awaited.mjs';\nexport { Capitalize } from './type/action/capitalize.mjs';\nexport { Conditional } from './type/action/conditional.mjs';\nexport { ConstructorParameters } from './type/action/constructor-parameters.mjs';\nexport { Evaluate } from './type/action/evaluate.mjs';\nexport { Exclude } from './type/action/exclude.mjs';\nexport { Extract } from './type/action/extract.mjs';\nexport { Index } from './type/action/index.mjs';\nexport { InstanceType } from './type/action/instance-type.mjs';\nexport { Interface } from './type/action/interface.mjs';\nexport { KeyOf } from './type/action/keyof.mjs';\nexport { Lowercase } from './type/action/lowercase.mjs';\nexport { Mapped } from './type/action/mapped.mjs';\nexport { Module } from './type/action/module.mjs';\nexport { NonNullable } from './type/action/non-nullable.mjs';\nexport { Omit } from './type/action/omit.mjs';\nexport { Options } from './type/action/options.mjs';\nexport { Parameters } from './type/action/parameters.mjs';\nexport { Partial } from './type/action/partial.mjs';\nexport { Pick } from './type/action/pick.mjs';\nexport { ReadonlyType } from './type/action/readonly-type.mjs';\nexport { Required } from './type/action/required.mjs';\nexport { ReturnType } from './type/action/return-type.mjs';\nexport { Uncapitalize } from './type/action/uncapitalize.mjs';\nexport { Uppercase } from './type/action/uppercase.mjs';\n// ------------------------------------------------------------------\n// Extension\n// ------------------------------------------------------------------\nexport { Codec, Decode, DecodeBuilder, Encode, EncodeBuilder, IsCodec } from './type/types/_codec.mjs';\nexport { Immutable, IsImmutable } from './type/types/_immutable.mjs';\nexport { IsOptional, Optional } from './type/types/_optional.mjs';\nexport { IsReadonly, Readonly } from './type/types/_readonly.mjs';\nexport { IsRefine, Refine } from './type/types/_refine.mjs';\n// ------------------------------------------------------------------\n// Standard\n// ------------------------------------------------------------------\nexport { Any, IsAny } from './type/types/any.mjs';\nexport { Array, IsArray } from './type/types/array.mjs';\nexport { AsyncIterator, IsAsyncIterator } from './type/types/async-iterator.mjs';\nexport { Base, IsBase } from './type/types/base.mjs';\nexport { BigInt, IsBigInt } from './type/types/bigint.mjs';\nexport { Boolean, IsBoolean } from './type/types/boolean.mjs';\nexport { Call, IsCall } from './type/types/call.mjs';\nexport { Constructor, IsConstructor } from './type/types/constructor.mjs';\nexport { Cyclic, IsCyclic } from './type/types/cyclic.mjs';\nexport { Enum, IsEnum } from './type/types/enum.mjs';\nexport { Function, IsFunction } from './type/types/function.mjs';\nexport { Generic, IsGeneric } from './type/types/generic.mjs';\nexport { Identifier, IsIdentifier } from './type/types/identifier.mjs';\nexport { Infer, IsInfer } from './type/types/infer.mjs';\nexport { Integer, IsInteger } from './type/types/integer.mjs';\nexport { Intersect, IsIntersect } from './type/types/intersect.mjs';\nexport { IsIterator, Iterator } from './type/types/iterator.mjs';\nexport { IsLiteral, Literal } from './type/types/literal.mjs';\nexport { IsNever, Never } from './type/types/never.mjs';\nexport { IsNull, Null } from './type/types/null.mjs';\nexport { IsNumber, Number } from './type/types/number.mjs';\nexport { IsObject, Object } from './type/types/object.mjs';\nexport { IsParameter, Parameter } from './type/types/parameter.mjs';\nexport { IsPromise, Promise } from './type/types/promise.mjs';\nexport { IsRecord, Record, RecordKey, RecordPattern as RecordKeyAsPattern, RecordValue } from './type/types/record.mjs';\nexport { IsRef, Ref } from './type/types/ref.mjs';\nexport { IsRest, Rest } from './type/types/rest.mjs';\nexport { IsKind, IsSchema } from './type/types/schema.mjs';\nexport { IsString, String } from './type/types/string.mjs';\nexport { IsSymbol, Symbol } from './type/types/symbol.mjs';\nexport { IsTemplateLiteral, TemplateLiteral } from './type/types/template-literal.mjs';\nexport { IsThis, This } from './type/types/this.mjs';\nexport { IsTuple, Tuple } from './type/types/tuple.mjs';\nexport { IsUndefined, Undefined } from './type/types/undefined.mjs';\nexport { IsUnion, Union } from './type/types/union.mjs';\nexport { IsUnknown, Unknown } from './type/types/unknown.mjs';\nexport { IsUnsafe, Unsafe } from './type/types/unsafe.mjs';\nexport { IsVoid, Void } from './type/types/void.mjs';\n","import type { Readable } from \"node:stream\";\nimport type { ReadableStream as WebReadableStream } from \"node:stream/web\";\nimport type { TSchema, TUnsafe } from \"typebox\";\n\nexport interface FileLike {\n /**\n * Filename.\n * @default \"file\"\n */\n name: string;\n\n /**\n * Mandatory MIME type of the file.\n * @default \"application/octet-stream\"\n */\n type: string;\n\n /**\n * Size of the file in bytes.\n *\n * Always 0 for streams, as the size is not known until the stream is fully read.\n *\n * @default 0\n */\n size: number;\n\n /**\n * Last modified timestamp in milliseconds since epoch.\n *\n * Always the current timestamp for streams, as the last modified time is not known.\n * We use this field to ensure compatibility with File API.\n *\n * @default Date.now()\n */\n lastModified: number;\n\n /**\n * Returns a ReadableStream or Node.js Readable stream of the file content.\n *\n * For streams, this is the original stream.\n */\n stream(): StreamLike;\n\n /**\n * Returns the file content as an ArrayBuffer.\n *\n * For streams, this reads the entire stream into memory.\n */\n arrayBuffer(): Promise<ArrayBuffer>;\n\n /**\n * Returns the file content as a string.\n *\n * For streams, this reads the entire stream into memory and converts it to a string.\n */\n text(): Promise<string>;\n\n // -- node specific fields --\n\n /**\n * Optional file path, if the file is stored on disk.\n *\n * This is not from the File API, but rather a custom field to indicate where the file is stored.\n */\n filepath?: string;\n}\n\n/**\n * TypeBox view of FileLike.\n */\nexport type TFile = TUnsafe<FileLike>;\n\nexport const isTypeFile = (value: TSchema): value is TFile => {\n return (\n value &&\n typeof value === \"object\" &&\n \"format\" in value &&\n value.format === \"binary\"\n );\n};\n\nexport const isFileLike = (value: any): value is FileLike => {\n return (\n !!value &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n typeof value.name === \"string\" &&\n typeof value.type === \"string\" &&\n typeof value.size === \"number\" &&\n typeof value.stream.bind(value) === \"function\"\n );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport type StreamLike =\n | ReadableStream\n | WebReadableStream\n | Readable\n | NodeJS.ReadableStream;\n\nexport type TStream = TUnsafe<StreamLike>;\n","import type {\n TAny,\n TArray,\n TArrayOptions,\n TBoolean,\n TInteger,\n TInterface,\n TKeysToIndexer,\n TNull,\n TNumber,\n TNumberOptions,\n TObject,\n TObjectOptions,\n TOmit,\n TOptionalAdd,\n TPartial,\n TPick,\n TProperties,\n TRecord,\n TSchema,\n TSchemaOptions,\n TString,\n TStringOptions,\n TUnion,\n TUnsafe,\n} from \"typebox\";\nimport * as TypeBox from \"typebox\";\nimport { Type } from \"typebox\";\nimport type {\n TLocalizedValidationError,\n TLocalizedValidationMessageCallback,\n} from \"typebox/error\";\nimport TypeBoxFormat from \"typebox/format\";\nimport { Locale } from \"typebox/system\";\nimport * as TypeBoxValue from \"typebox/value\";\nimport { OPTIONS } from \"../constants/OPTIONS.ts\";\nimport { AlephaError } from \"../errors/AlephaError.ts\";\nimport type { TypeBoxError } from \"../errors/TypeBoxError.ts\";\nimport { isTypeFile, type TFile, type TStream } from \"../helpers/FileLike.ts\";\n\nexport { TypeBox, TypeBoxValue, TypeBoxFormat };\n\nexport const isUUID = TypeBoxFormat.IsUuid;\nexport const isEmail = TypeBoxFormat.IsEmail;\nexport const isURL = TypeBoxFormat.IsUrl;\nexport const isDateTime = TypeBoxFormat.IsDateTime;\nexport const isDate = TypeBoxFormat.IsDate;\nexport const isTime = TypeBoxFormat.IsTime;\nexport const isDuration = TypeBoxFormat.IsDuration;\n\nexport type {\n StaticDecode,\n StaticDecode as Static,\n StaticEncode,\n TAny,\n TArray,\n TBigInt,\n TBoolean,\n TInteger,\n TKeysToIndexer,\n TNull,\n TNumber,\n TNumberOptions,\n TObject,\n TObjectOptions,\n TOptional,\n TOptionalAdd,\n TPick,\n TProperties,\n TRecord,\n TSchema,\n TString,\n TStringOptions,\n TTuple,\n TUnion,\n TUnsafe,\n TVoid,\n} from \"typebox\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport class TypeGuard {\n // -------------------------------------------------------------------------------------------------------------------\n isBigInt = (value: TSchema): value is TString =>\n TypeBox.IsString(value) && \"format\" in value && value.format === \"bigint\";\n isUUID = (value: TSchema): value is TString =>\n TypeBox.IsString(value) && \"format\" in value && value.format === \"uuid\";\n isObject = TypeBox.IsObject;\n isNumber = TypeBox.IsNumber;\n isString = TypeBox.IsString;\n isBoolean = TypeBox.IsBoolean;\n isAny = TypeBox.IsAny;\n isArray = TypeBox.IsArray;\n isOptional = TypeBox.IsOptional;\n isUnion = TypeBox.IsUnion;\n isInteger = TypeBox.IsInteger;\n isNull = TypeBox.IsNull;\n isUndefined = TypeBox.IsUndefined;\n isUnsafe = TypeBox.IsUnsafe;\n isRecord = TypeBox.IsRecord;\n isTuple = TypeBox.IsTuple;\n isVoid = TypeBox.IsVoid;\n isLiteral = TypeBox.IsLiteral;\n isSchema = TypeBox.IsSchema;\n // -------------------------------------------------------------------------------------------------------------------\n isFile = isTypeFile;\n isDateTime = (schema: unknown) => {\n return t.schema.isString(schema) && schema.format === \"date-time\";\n };\n isDate = (schema: unknown) => {\n return t.schema.isString(schema) && schema.format === \"date\";\n };\n isTime = (schema: unknown) => {\n return t.schema.isString(schema) && schema.format === \"time\";\n };\n isDuration = (schema: unknown) => {\n return t.schema.isString(schema) && schema.format === \"duration\";\n };\n}\n\ndeclare module \"typebox\" {\n interface TString {\n format?: string;\n minLength?: number;\n maxLength?: number;\n }\n\n interface TNumber {\n format?: \"int64\";\n }\n}\n\nexport class TypeProvider {\n static format = TypeBoxFormat;\n\n static {\n TypeBoxFormat.Set(\"bigint\", (value: string | number) =>\n TypeProvider.isValidBigInt(value),\n );\n }\n\n static translateError(error: TypeBoxError, locale?: string): string {\n if (!locale) {\n return error.cause.message;\n }\n\n for (const [key, value] of Object.entries(Locale)) {\n if (key === \"Set\" || key === \"Get\" || key === \"Reset\") continue;\n if (key === locale || key.startsWith(`${locale}_`)) {\n return (value as (error: TLocalizedValidationError) => string)(\n error.cause,\n );\n }\n }\n return error.cause.message;\n }\n\n static setLocale(locale: string) {\n for (const [key, value] of Object.entries(Locale)) {\n if (key === \"Set\" || key === \"Get\" || key === \"Reset\") continue;\n if (key === locale || key.startsWith(`${locale}_`)) {\n Locale.Set(value as TLocalizedValidationMessageCallback);\n return;\n }\n }\n throw new AlephaError(`Locale not found: ${locale}`);\n }\n\n static isValidBigInt(value: string | number) {\n if (typeof value === \"number\") {\n return Number.isInteger(value);\n }\n\n // Reject empty or whitespace-only strings\n if (!value.trim()) return false;\n // Regex: optional minus, then digits only\n if (!/^-?\\d+$/.test(value)) return false;\n\n try {\n BigInt(value); // Will throw if invalid\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Default maximum length for strings.\n *\n * It can be set to a larger value:\n * ```ts\n * TypeProvider.DEFAULT_STRING_MAX_LENGTH = 1000000;\n * TypeProvider.DEFAULT_STRING_MAX_LENGTH = undefined; // no limit (not recommended)\n * ```\n */\n static DEFAULT_STRING_MAX_LENGTH: number | undefined = 255;\n\n /**\n * Maximum length for short strings, such as names or titles.\n */\n static DEFAULT_SHORT_STRING_MAX_LENGTH: number | undefined = 64;\n\n /**\n * Maximum length for long strings, such as descriptions or comments.\n * It can be overridden in the string options.\n *\n * It can be set to a larger value:\n * ```ts\n * TypeProvider.DEFAULT_LONG_STRING_MAX_LENGTH = 2048;\n * ```\n */\n static DEFAULT_LONG_STRING_MAX_LENGTH: number | undefined = 1024;\n\n /**\n * Maximum length for rich strings, such as HTML or Markdown.\n * This is a large value to accommodate rich text content.\n * > It's also the maximum length of PG's TEXT type.\n *\n * It can be overridden in the string options.\n *\n * It can be set to a larger value:\n * ```ts\n * TypeProvider.DEFAULT_RICH_STRING_MAX_LENGTH = 1000000;\n * ```\n */\n static DEFAULT_RICH_STRING_MAX_LENGTH: number | undefined = 65535;\n\n /**\n * Maximum number of items in an array.\n * This is a default value to prevent excessive memory usage.\n * It can be overridden in the array options.\n */\n static DEFAULT_ARRAY_MAX_ITEMS = 1000;\n\n // -------------------------------------------------------------------------------------------------------------------\n public raw = Type; // typebox reference\n public any = Type.Any;\n public void = Type.Void;\n public undefined = Type.Undefined;\n public record = Type.Record;\n public union = Type.Union;\n public tuple = Type.Tuple;\n public null = Type.Null;\n public const = Type.Literal;\n public options = Type.Options;\n // -------------------------------------------------------------------------------------------------------------------\n\n /**\n * Type guards to check the type of schema.\n * This is not a runtime type check, but a compile-time type guard.\n *\n * @example\n * ```ts\n * if (t.schema.isString(schema)) {\n * // schema is TString\n * }\n * ```\n */\n public readonly schema = new TypeGuard();\n\n // -------------------------------------------------------------------------------------------------------------------\n\n public extend<T extends TSchema[], U extends TProperties>(\n schema: [...T],\n properties: U,\n options?: TSchemaOptions,\n ): TInterface<T, U>;\n public extend<T extends TObject, U extends TProperties>(\n schema: T,\n properties: U,\n options?: TSchemaOptions,\n ): TInterface<[T], U>;\n public extend(\n schema: TSchema | TSchema[],\n properties: Record<string, any>,\n options?: TSchemaOptions,\n ): any {\n return Type.Interface(\n Array.isArray(schema) ? schema : [schema],\n properties,\n {\n additionalProperties: false,\n ...options,\n },\n );\n }\n\n public pick<T extends TObject, Indexer extends PropertyKey[]>(\n schema: T,\n keys: [...Indexer],\n options?: TObjectOptions,\n ): TPick<T, TKeysToIndexer<Indexer>> {\n return Type.Pick(schema, keys, {\n additionalProperties: false,\n ...options,\n });\n }\n\n public omit<T extends TObject, Indexer extends PropertyKey[]>(\n schema: T,\n keys: [...Indexer],\n options?: TObjectOptions,\n ): TOmit<T, TKeysToIndexer<Indexer>> {\n return Type.Omit(schema, keys, {\n additionalProperties: false,\n ...options,\n });\n }\n\n public partial<T extends TSchema>(\n schema: T,\n options?: TSchemaOptions,\n ): TPartial<T> {\n return Type.Partial(schema, {\n additionalProperties: false,\n ...options,\n });\n }\n\n /**\n * Create a schema for an object.\n * By default, additional properties are not allowed.\n *\n * @example\n * ```ts\n * const userSchema = t.object({\n * id: t.int(),\n * name: t.string(),\n * });\n * ```\n */\n public object<T extends TProperties>(\n properties: T,\n options?: TObjectOptions,\n ): TObject<T> {\n return Type.Object(properties, {\n additionalProperties: false,\n ...options,\n });\n }\n\n /**\n * Create a schema for an array.\n * By default, the maximum number of items is limited to prevent excessive memory usage.\n *\n * @see TypeProvider.DEFAULT_ARRAY_MAX_ITEMS\n */\n public array<T extends TSchema>(\n schema: T,\n options?: TArrayOptions,\n ): TArray<T> {\n return Type.Array(schema, {\n maxItems: TypeProvider.DEFAULT_ARRAY_MAX_ITEMS,\n ...options,\n });\n }\n\n /**\n * Create a schema for a string.\n * For db or input fields, consider using `t.text()` instead, which has length limits.\n *\n * If you need a string with specific format (e.g. email, uuid), consider using the corresponding method (e.g. `t.email()`, `t.uuid()`).\n */\n public string(options: TStringOptions = {}): TString {\n return Type.String({\n ...options,\n });\n }\n\n /**\n * Create a schema for a string with length limits.\n * For internal strings without length limits, consider using `t.string()` instead.\n *\n * Default size is \"regular\", which has a max length of 255 characters.\n */\n public text(options: TTextOptions = {}): TString {\n const { size, ...rest } = options;\n const maxLength =\n size === \"short\"\n ? TypeProvider.DEFAULT_SHORT_STRING_MAX_LENGTH\n : size === \"long\"\n ? TypeProvider.DEFAULT_LONG_STRING_MAX_LENGTH\n : size === \"rich\"\n ? TypeProvider.DEFAULT_RICH_STRING_MAX_LENGTH\n : TypeProvider.DEFAULT_STRING_MAX_LENGTH;\n\n return Type.String({\n maxLength,\n \"~options\": {\n trim: options.trim ?? true,\n },\n ...rest,\n });\n }\n\n /**\n * Create a schema for a JSON object.\n * This is a record with string keys and any values.\n */\n public json(options?: TSchemaOptions): TRecord<string, TAny> {\n return t.record(t.text(), t.any(), options);\n }\n\n /**\n * Create a schema for a boolean.\n */\n public boolean(options?: TSchemaOptions): TBoolean {\n return Type.Boolean({\n ...options,\n });\n }\n\n /**\n * Create a schema for a number.\n */\n public number(options?: TNumberOptions): TNumber {\n return Type.Number({\n ...options,\n });\n }\n\n /**\n * Create a schema for a signed 32-bit integer.\n */\n public int(options?: TNumberOptions): TInteger {\n return Type.Integer({\n minimum: -2147483647,\n maximum: 2147483647,\n ...options,\n });\n }\n\n /**\n * @alias `t.int()`\n */\n public integer(options?: TNumberOptions): TInteger {\n return this.int(options);\n }\n\n /**\n * Mimic a signed 64-bit integer.\n *\n * This is NOT a true int64, as JavaScript cannot represent all int64 values.\n * It is a number that is an integer and between -9007199254740991 and 9007199254740991.\n * Use `t.bigint()` for true int64 values represented as strings.\n */\n public int64(options?: TNumberOptions): TNumber {\n return Type.Number({\n format: \"int64\",\n multipleOf: 1,\n minimum: -9007199254740991,\n maximum: 9007199254740991,\n ...options,\n });\n }\n\n /**\n * Make a schema optional.\n */\n public optional<T extends TSchema>(schema: T): TOptionalAdd<T> {\n return Type.Optional(schema);\n }\n\n /**\n * Make a schema nullable.\n */\n public nullable<T extends TSchema>(\n schema: T,\n options?: TObjectOptions,\n ): TUnion<[TNull, T]> {\n return Type.Union([Type.Null(), schema], options);\n }\n\n /**\n * Create a schema that maps all properties of an object schema to nullable.\n */\n public nullify = <T extends TSchema>(schema: T, options?: TObjectOptions) =>\n Type.Mapped(\n Type.Identifier(\"K\"),\n Type.KeyOf(schema),\n Type.Ref(\"K\"),\n Type.Union([Type.Index(schema, Type.Ref(\"K\")), Type.Null()]),\n options,\n );\n\n /**\n * Create a schema for a string enum.\n */\n public enum<T extends string[]>(\n values: [...T],\n options?: TStringOptions,\n ): TUnsafe<T[number]> {\n return Type.Unsafe<T[number]>(\n t.text({\n enum: values,\n pattern: values.map((v) => `^${v}$`).join(\"|\"),\n ...options,\n }),\n );\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n // Codec types\n\n /**\n * Create a schema for a bigint represented as a string.\n * This is a string that validates bigint format (e.g. \"123456789\").\n */\n public bigint(options?: TStringOptions) {\n return t.string({\n ...options,\n format: \"bigint\",\n });\n }\n\n /**\n * Create a schema for a URL represented as a string.\n */\n public url(options?: TStringOptions) {\n return this.string({\n ...options,\n format: \"url\",\n });\n }\n\n /**\n * Create a schema for binary data represented as a base64 string.\n */\n public binary(options: TStringOptions) {\n return this.string({\n ...options,\n format: \"binary\",\n });\n }\n\n /**\n * Create a schema for uuid.\n */\n public uuid(options?: TStringOptions): TString {\n return this.string({\n ...options,\n format: \"uuid\",\n });\n }\n\n /**\n * Create a schema for a file-like object.\n *\n * File like mimics the File API in browsers, but is adapted to work in Node.js as well.\n *\n * Implementation of file-like objects is handled by \"alepha/file\" package.\n */\n public file(options?: { maxSize?: number }): TFile {\n return Type.Unsafe(\n Type.Any({\n [OPTIONS]: options,\n format: \"binary\",\n }),\n );\n }\n\n /**\n * @experimental\n */\n public stream(): TStream {\n return Type.Unsafe(\n Type.Any({\n format: \"stream\",\n type: \"string\",\n }),\n );\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n // Exotic types\n\n public email(options?: TStringOptions): TString {\n return this.text({\n ...options,\n format: \"email\",\n });\n }\n\n public e164(options?: TStringOptions): TString {\n return this.text({\n ...options,\n description: \"Phone number in E.164 format, e.g. +1234567890.\",\n pattern: \"^\\\\+[1-9]\\\\d{1,14}$\",\n });\n }\n\n public bcp47(options?: TStringOptions): TString {\n return this.text({\n ...options,\n description: \"BCP 47 language tag, e.g. en, en-US, fr, fr-CA.\",\n pattern: \"^[a-z]{2,3}(?:-[A-Z]{2})?$\",\n });\n }\n\n /**\n * Create a schema for short text, such as names or titles.\n * Default max length is 64 characters.\n */\n public shortText(options?: TStringOptions): TString {\n return this.text({\n size: \"short\",\n ...options,\n });\n }\n\n /**\n * Create a schema for long text, such as descriptions or comments.\n * Default max length is 1024 characters.\n */\n public longText(options?: TStringOptions): TString {\n return this.text({\n size: \"long\",\n ...options,\n });\n }\n\n /**\n * Create a schema for rich text, such as HTML or Markdown.\n * Default max length is 65535 characters.\n */\n public richText(options?: TStringOptions): TString {\n return this.text({\n size: \"rich\",\n ...options,\n });\n }\n\n /**\n * Create a schema for a string enum e.g. LIKE_THIS.\n */\n public snakeCase = (options?: TStringOptions) =>\n this.text({\n pattern: \"^[A-Z_-]+$\",\n ...options,\n });\n\n /**\n * Create a schema for an object with a value and label.\n */\n public valueLabel = (options?: TObjectOptions) =>\n this.object(\n {\n value: this.snakeCase({\n description: \"Machine-readable value.\",\n }),\n label: this.text({\n description: \"Human-readable label.\",\n }),\n description: this.optional(\n this.text({\n description: \"Description of the value.\",\n size: \"long\",\n }),\n ),\n },\n options,\n );\n\n public datetime = (options?: TStringOptions) =>\n t.text({\n ...options,\n format: \"date-time\",\n });\n\n public date = (options?: TStringOptions) =>\n t.text({\n ...options,\n format: \"date\",\n });\n\n public time = (options?: TStringOptions) =>\n t.text({\n ...options,\n format: \"time\",\n });\n\n public duration = (options?: TStringOptions) =>\n t.text({\n ...options,\n format: \"duration\",\n });\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport type TextLength = \"short\" | \"regular\" | \"long\" | \"rich\";\n\nexport interface TTextOptions extends TStringOptions {\n /**\n * Predefined size of the text.\n *\n * - `short` - short text, such as names or titles. Default max length is 64 characters.\n * - `regular` - regular text, such as single-line input. Default max length is 255 characters.\n * - `long` - long text, such as descriptions or comments. Default max length is 1024 characters.\n * - `rich` - rich text, such as HTML or Markdown. Default max length is 65535 characters.\n *\n * You can override the default max length by specifying `maxLength` in the options.\n *\n * @default \"regular\"\n */\n size?: TextLength;\n\n /**\n * Trim whitespace from both ends of the string.\n *\n * @default true\n */\n trim?: boolean;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport const t: TypeProvider = new TypeProvider();\n","import type { Static, TObject } from \"typebox\";\nimport { AlephaError } from \"../errors/AlephaError.ts\";\nimport { t } from \"../providers/TypeProvider.ts\";\nimport { $context } from \"./$context.ts\";\n\n/**\n * Get typed values from environment variables.\n *\n * @example\n * ```ts\n * const alepha = Alepha.create({\n * env: {\n * // Alepha.create() will also use process.env when running on Node.js\n * HELLO: \"world\",\n * }\n * });\n *\n * class App {\n * log = $logger();\n *\n * // program expect a var env \"HELLO\" as string to works\n * env = $env(t.object({\n * HELLO: t.text()\n * }));\n *\n * sayHello = () => this.log.info(\"Hello ${this.env.HELLO}\")\n * }\n *\n * run(alepha.with(App));\n * ```\n */\nexport const $env = <T extends TObject>(type: T): Static<T> => {\n const { alepha } = $context();\n\n // allow to inject TypeBox schemas\n if (!t.schema.isObject(type)) {\n throw new AlephaError(\"Type must be an TObject\");\n }\n\n return alepha.parseEnv(type) as Static<T>;\n};\n","import type { Hooks } from \"../Alepha.ts\";\nimport { KIND } from \"../constants/KIND.ts\";\nimport { createDescriptor, Descriptor } from \"../helpers/descriptor.ts\";\nimport type { Async } from \"../interfaces/Async.ts\";\n\n/**\n * Registers a new hook.\n *\n * ```ts\n * import { $hook } from \"alepha\";\n *\n * class MyProvider {\n * onStart = $hook({\n * name: \"start\", // or \"configure\", \"ready\", \"stop\", ...\n * handler: async (app) => {\n * // await db.connect(); ...\n * }\n * });\n * }\n * ```\n *\n * Hooks are used to run async functions from all registered providers/services.\n *\n * You can't register a hook after the App has started.\n *\n * It's used under the hood by the `configure`, `start`, and `stop` methods.\n * Some modules also use hooks to run their own logic. (e.g. `@alepha/server`).\n *\n * You can create your own hooks by using module augmentation:\n *\n * ```ts\n * declare module \"@alepha/core\" {\n *\n * interface Hooks {\n * \"my:custom:hook\": {\n * arg1: string;\n * }\n * }\n * }\n *\n * await alepha.events.emit(\"my:custom:hook\", { arg1: \"value\" });\n * ```\n *\n */\nexport const $hook = <T extends keyof Hooks>(options: HookOptions<T>) =>\n createDescriptor(HookDescriptor<T>, options);\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface HookOptions<T extends keyof Hooks> {\n /**\n * The name of the hook. \"configure\", \"start\", \"ready\", \"stop\", ...\n */\n on: T;\n\n /**\n * The handler to run when the hook is triggered.\n */\n handler: (args: Hooks[T]) => Async<any>;\n\n /**\n * Force the hook to run first or last on the list of hooks.\n */\n priority?: \"first\" | \"last\";\n\n /**\n * Empty placeholder, not implemented yet. :-)\n */\n before?: object | Array<object>;\n\n /**\n * Empty placeholder, not implemented yet. :-)\n */\n after?: object | Array<object>;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport class HookDescriptor<T extends keyof Hooks> extends Descriptor<\n HookOptions<T>\n> {\n public called = 0;\n\n protected onInit() {\n this.alepha.events.on(this.options.on, {\n caller: this.config.service,\n priority: this.options.priority,\n callback: async (args: any) => {\n this.called += 1;\n await this.options.handler(args);\n },\n });\n }\n}\n\n$hook[KIND] = HookDescriptor;\n","import type { State } from \"../Alepha.ts\";\nimport { OPTIONS } from \"../constants/OPTIONS.ts\";\nimport type { Static, TObject } from \"../providers/TypeProvider.ts\";\nimport type { Atom } from \"./$atom.ts\";\nimport { $context } from \"./$context.ts\";\n\nexport const $use = <T extends TObject, N extends string>(\n atom: Atom<T, N>,\n): Readonly<Static<T>> => {\n const { alepha } = $context();\n\n // register atom in state if not already registered\n alepha.state.register(atom);\n\n const init = alepha.state.get(atom.key as keyof State) as object;\n\n return {\n [OPTIONS]: { getter: atom.key }, // alepha will replace this with by a real 'get prop()'\n ...init,\n } as Static<T>;\n};\n","import { type Static, t } from \"../providers/TypeProvider.ts\";\n\nexport const pageQuerySchema = t.object({\n page: t.optional(\n t.int({\n description: \"The page number to retrieve.\",\n minimum: 0,\n default: 0,\n }),\n ),\n size: t.optional(\n t.int({\n description: \"The number of items per page.\",\n minimum: 1,\n maximum: 100,\n default: 10,\n }),\n ),\n sort: t.optional(\n t.text({\n description:\n \"Sort by field(s). Multiple columns separated by comma. Prefix with '-' for DESC. Examples: 'name' (ASC), '-createdAt' (DESC), 'role,-name' (role ASC, name DESC)\",\n }),\n ),\n});\n\nexport type PageQuery = Static<typeof pageQuerySchema>;\n","import {\n type Static,\n type TArray,\n type TObject,\n type TObjectOptions,\n type TRecord,\n TypeProvider,\n t,\n} from \"../providers/TypeProvider.ts\";\n\nexport const pageMetadataSchema = t.object({\n number: t.int({ description: \"Page number, starting from 0\" }),\n size: t.int({\n description: \"Number of items per page (requested page size)\",\n }),\n offset: t.int({\n description: \"Offset in the dataset (page × size)\",\n }),\n numberOfElements: t.int({\n description:\n \"Number of elements in THIS page (content.length). Different from totalElements which is the total across all pages.\",\n }),\n totalElements: t.optional(\n t.int({\n description:\n \"Total number of elements across all pages. Only available when counting is enabled.\",\n }),\n ),\n totalPages: t.optional(\n t.int({\n description:\n \"Total number of pages. Only available when `totalElements` is present.\",\n }),\n ),\n isEmpty: t.boolean({\n description:\n \"Indicates if the current page has no items (numberOfElements === 0)\",\n }),\n isFirst: t.boolean({\n description: \"Indicates if this is the first page (number === 0)\",\n }),\n isLast: t.boolean({\n description:\n \"Indicates if this is the last page (no more pages after this)\",\n }),\n sort: t.optional(\n t.object({\n sorted: t.boolean({\n description: \"Whether the results are sorted\",\n }),\n fields: t.array(\n t.object({\n field: t.text({\n description: \"The field used for sorting\",\n }),\n direction: t.enum([\"asc\", \"desc\"], {\n description: \"The direction of the sort. Either 'asc' or 'desc'\",\n }),\n }),\n ),\n }),\n ),\n});\n\n/**\n * Create a pagination schema for the given object schema.\n *\n * Provides a standardized pagination response format compatible with Spring Data's Page interface.\n * This schema can be used across any data source (databases, APIs, caches, etc.).\n *\n * @example\n * ```ts\n * const userSchema = t.object({ id: t.int(), name: t.text() });\n * const userPageSchema = pageSchema(userSchema);\n * ```\n *\n * @example In an API endpoint\n * ```ts\n * $action({\n * output: pageSchema(UserSchema),\n * handler: async () => {\n * return await userRepo.paginate();\n * }\n * })\n * ```\n */\nexport const pageSchema = <T extends TObject | TRecord>(\n objectSchema: T,\n options?: TObjectOptions,\n): TPage<T> =>\n t.object(\n {\n content: t.array(objectSchema),\n page: pageMetadataSchema,\n },\n options,\n );\n\nexport type TPage<T extends TObject | TRecord> = TObject<{\n content: TArray<T>;\n page: typeof pageMetadataSchema;\n}>;\n\n/**\n * Opinionated type definition for a paginated response.\n *\n * Inspired by Spring Data's Page interface with all essential pagination metadata.\n * This generic type can be used with any data source.\n *\n * @example\n * ```ts\n * const page: Page<User> = {\n * content: [user1, user2, ...],\n * page: {\n * number: 0,\n * size: 10,\n * offset: 0,\n * numberOfElements: 10,\n * totalElements: 1200,\n * totalPages: 120,\n * isEmpty: false,\n * isFirst: true,\n * isLast: false,\n * sort: {\n * sorted: true,\n * fields: [\n * { field: \"name\", direction: \"asc\" }\n * ]\n * }\n * }\n * }\n * ```\n */\nexport type Page<T> = {\n /**\n * Array of items on the current page.\n */\n content: T[];\n page: Static<typeof pageMetadataSchema>;\n};\n\nexport type PageMetadata = Static<typeof pageMetadataSchema>;\n\n// ---------------------------------------------------------------------------------------------------------------------\n\ndeclare module \"@alepha/core\" {\n interface TypeProvider {\n /**\n * Create a schema for a paginated response.\n */\n page<T extends TObject | TRecord>(itemSchema: T): TPage<T>;\n }\n}\n\nTypeProvider.prototype.page = (itemSchema) => pageSchema(itemSchema);\n","/// <reference types=\"vite/client\" />\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport cluster from \"node:cluster\";\nimport { cpus } from \"node:os\";\nimport { Alepha } from \"./Alepha.ts\";\nimport type { RunOptions } from \"./interfaces/Run.ts\";\nimport type { Service } from \"./interfaces/Service.ts\";\nimport { AlsProvider } from \"./providers/AlsProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./helpers/boot.ts\";\nexport * from \"./index.shared.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Run Alepha application, trigger start lifecycle.\n *\n * ```ts\n * import { Alepha, run } from \"@alepha/core\";\n * import { MyService } from \"./services/MyService.ts\";\n *\n * const alepha = new Alepha({ env: { APP_NAME: \"MyAlephaApp\" } });\n *\n * alepha.with(MyService);\n *\n * export default run(alepha);\n * ```\n */\nexport const run = (\n entry: Alepha | Service | Array<Service>,\n opts?: RunOptions,\n): Alepha => {\n const env = typeof process === \"object\" ? process.env : {};\n\n const alepha =\n entry instanceof Alepha\n ? entry\n : Alepha.create({ env: { ...env, ...opts?.env } });\n\n if (!(entry instanceof Alepha)) {\n const entries = Array.isArray(entry) ? entry : [entry];\n for (const e of entries) {\n alepha.with(e);\n }\n }\n\n // make alepha globally accessible (for serverless functions, etc...)\n // it's not recommended, we should force 'export default run(alepha)'\n (globalThis as any).__alepha = alepha;\n\n if (alepha.isServerless() || alepha.isViteDev() || env.ALEPHA_SKIP_START) {\n return alepha;\n }\n\n if (opts?.cluster) {\n withCluster(entry, opts);\n return alepha;\n }\n\n // default runner\n (async () => {\n try {\n await opts?.configure?.(alepha);\n\n await alepha.start();\n\n if (opts?.ready) {\n await opts.ready(alepha);\n }\n\n if (opts?.once) {\n await alepha.stop();\n return alepha;\n }\n\n if (typeof process === \"object\") {\n const traps = [\"SIGTERM\", \"SIGINT\", \"SIGUSR2\", \"uncaughtException\"];\n\n for (const trap of traps) {\n process.once(trap, async (err) => {\n if (trap === \"uncaughtException\") {\n alepha.log?.error(\"Uncaught Exception\", err);\n } else {\n alepha.log?.info(\"Received signal\", { trap });\n }\n try {\n await alepha.stop();\n console.log(\" \");\n process.exit(0);\n } catch (error) {\n alepha.log?.error(\"Alepha failed to stop\", error);\n process.exit(1);\n }\n });\n }\n }\n } catch (error) {\n alepha.log?.error(\"Alepha failed to start\", error);\n if (typeof process === \"object\") {\n process.exit(1);\n }\n }\n })();\n\n return alepha;\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n// only for node.js environment\nAlsProvider.create = () => new AsyncLocalStorage();\n\n/**\n * Run Alepha in cluster mode, forking workers based on the number of CPU cores.\n */\nconst withCluster = (\n entry: Alepha | Service | Array<Service>,\n opts?: RunOptions,\n) => {\n const numCPUs = cpus().length;\n if (cluster.isPrimary) {\n for (let i = 0; i < numCPUs; i++) {\n cluster.fork();\n }\n } else {\n run(entry, {\n ...opts,\n env: {\n ...opts?.env,\n APP_NAME: `${opts?.env?.APP_NAME || \"P\"}-${cluster.worker?.id}`,\n },\n cluster: false,\n });\n }\n};\n","import type * as fs from \"node:fs/promises\";\nimport type { glob } from \"node:fs/promises\";\nimport {\n type Async,\n createDescriptor,\n Descriptor,\n KIND,\n type Static,\n type TObject,\n type TSchema,\n t,\n} from \"@alepha/core\";\nimport type { AskMethod } from \"../helpers/Asker.ts\";\nimport type { RunnerMethod } from \"../helpers/Runner.ts\";\n\n/**\n * Declares a CLI command.\n *\n * This descriptor allows you to define a command, its flags, and its handler\n * within your Alepha application structure.\n */\nexport const $command = <T extends TObject, A extends TSchema>(\n options: CommandDescriptorOptions<T, A>,\n) => createDescriptor(CommandDescriptor<T, A>, options);\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface CommandDescriptorOptions<\n T extends TObject,\n A extends TSchema,\n> {\n /**\n * The handler function to execute when the command is matched.\n */\n handler: (args: CommandHandlerArgs<T, A>) => Async<void>;\n\n /**\n * The name of the command. If omitted, the property key is used.\n *\n * An empty string \"\" denotes the root command.\n */\n name?: string;\n\n /**\n * A short description of the command, shown in the help message.\n */\n description?: string;\n\n /**\n * An array of alternative names for the command.\n */\n aliases?: string[];\n\n /**\n * A TypeBox object schema defining the flags for the command.\n */\n flags?: T;\n\n /**\n * An optional TypeBox schema defining the arguments for the command.\n *\n * @example\n * args: t.text()\n * my-cli command <arg1: string>\n *\n * args: t.optional(t.text())\n * my-cli command [arg1: string]\n *\n * args: t.tuple([t.text(), t.number()])\n * my-cli command <arg1: string> <arg2: number>\n *\n * args: t.tuple([t.text(), t.optional(t.number())])\n * my-cli command <arg1: string> [arg2: number]\n */\n args?: A;\n\n /**\n * If false, skip summary message at the end of the command execution.\n * Summary will display only if ({ run }) method calls were made.\n */\n summary?: boolean;\n\n /**\n * Marks this command as the root command.\n * Equivalent to setting name to an empty string \"\".\n */\n root?: boolean;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport class CommandDescriptor<\n T extends TObject = TObject,\n A extends TSchema = TSchema,\n> extends Descriptor<CommandDescriptorOptions<T, A>> {\n public readonly flags = this.options.flags ?? t.object({});\n public readonly aliases = this.options.aliases ?? [];\n\n public get name(): string {\n if (this.options.root) {\n return \"\";\n }\n return this.options.name ?? `${this.config.propertyKey}`;\n }\n}\n\n$command[KIND] = CommandDescriptor;\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface CommandHandlerArgs<\n T extends TObject,\n A extends TSchema = TSchema,\n> {\n flags: Static<T>;\n args: A extends TSchema ? Static<A> : Array<string>;\n run: RunnerMethod;\n ask: AskMethod;\n glob: typeof glob;\n fs: typeof fs;\n}\n","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c<m;c+=1){var y=h[c];y.d&&(f=d?t(e).diff(i,y.d,!0):i.diff(e,y.d,!0));var p=(r.rounding||Math.round)(Math.abs(f));if(s=f>0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,u=31536e6,d=2628e6,a=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,h={years:u,months:d,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/d),t%=d,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,\"Y\"),s=v(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,\"D\"),e=v(this.$d.hours,\"H\"),r=v(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,\"S\"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",h=(d?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===h||\"-P\"===h?\"P0D\":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}(),p=function(t,s,n){return t.add(s.years()*n,\"y\").add(s.months()*n,\"M\").add(s.days()*n,\"d\").add(s.hours()*n,\"h\").add(s.minutes()*n,\"m\").add(s.seconds()*n,\"s\").add(s.milliseconds()*n,\"ms\")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var r=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),r.call(this,t)};var o=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else o.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s;if(0===u)return this.utc(f);var r=this.clone();if(f)return r.$offset=u,r.$u=!1,r;var o=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(r=this.local().add(u+o,t)).$offset=u,r.$x.$localOffset=o,r};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_ar=t(e.dayjs)}(this,(function(e){\"use strict\";function t(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var n=t(e),r=\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),d={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},_={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"},o=/[١٢٣٤٥٦٧٨٩٠]/g,i=/،/g,a=/\\d/g,s=/,/g,u={name:\"ar\",weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),months:r,monthsShort:r,weekStart:6,meridiem:function(e){return e>12?\"م\":\"ص\"},relativeTime:{future:\"بعد %s\",past:\"منذ %s\",s:\"ثانية واحدة\",m:\"دقيقة واحدة\",mm:\"%d دقائق\",h:\"ساعة واحدة\",hh:\"%d ساعات\",d:\"يوم واحد\",dd:\"%d أيام\",M:\"شهر واحد\",MM:\"%d أشهر\",y:\"عام واحد\",yy:\"%d أعوام\"},preparse:function(e){return e.replace(o,(function(e){return _[e]})).replace(i,\",\")},postformat:function(e){return e.replace(a,(function(e){return d[e]})).replace(s,\"،\")},ordinal:function(e){return e},formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/M/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"}};return n.default.locale(u,null,!0),u}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_fr=n(e.dayjs)}(this,(function(e){\"use strict\";function n(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=n(e),i={name:\"fr\",weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"di_lu_ma_me_je_ve_sa\".split(\"_\"),months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinal:function(e){return\"\"+e+(1===e?\"er\":\"\")}};return t.default.locale(i,null,!0),i}));","import \"dayjs/plugin/relativeTime.js\";\nimport \"dayjs/plugin/duration.js\";\nimport \"dayjs/plugin/utc.js\";\nimport \"dayjs/plugin/timezone.js\";\nimport \"dayjs/plugin/localizedFormat.js\";\nimport \"dayjs/locale/ar.js\";\nimport \"dayjs/locale/fr.js\";\nimport { $hook, $inject, Alepha } from \"@alepha/core\";\nimport DayjsApi, {\n type Dayjs,\n type ManipulateType,\n type PluginFunc,\n} from \"dayjs\";\nimport dayjsDuration from \"dayjs/plugin/duration.js\";\nimport dayjsLocalizedFormat from \"dayjs/plugin/localizedFormat.js\";\nimport dayjsRelativeTime from \"dayjs/plugin/relativeTime.js\";\nimport dayjsTimezone from \"dayjs/plugin/timezone.js\";\nimport dayjsUtc from \"dayjs/plugin/utc.js\";\n\nexport type DateTime = DayjsApi.Dayjs;\nexport type Duration = dayjsDuration.Duration;\nexport type DurationLike =\n | number\n | dayjsDuration.Duration\n | [number, ManipulateType];\n\nexport const dayjs = DayjsApi;\nexport const isDateTime = (value: unknown): value is DateTime => {\n return dayjs.isDayjs(value);\n};\n\nexport class DateTimeProvider {\n public static PLUGINS: Array<PluginFunc<any>> = [\n dayjsDuration,\n dayjsRelativeTime,\n dayjsUtc,\n dayjsTimezone,\n dayjsLocalizedFormat,\n ];\n\n protected alepha = $inject(Alepha);\n protected ref: DateTime | null = null;\n protected readonly timeouts: Timeout[] = [];\n protected readonly intervals: Interval[] = [];\n\n constructor() {\n for (const plugin of DateTimeProvider.PLUGINS) {\n dayjs.extend(plugin);\n }\n }\n\n protected readonly onStart = $hook({\n on: \"start\",\n handler: async () => {\n // we start intervals now but first tick will be rejected as App is not ready yet\n await Promise.all(\n this.intervals.map(async (interval) => {\n if (interval.timer != null) {\n return;\n }\n await interval.run();\n interval.timer = setInterval(interval.run, interval.duration);\n }),\n );\n },\n });\n\n protected readonly onStop = $hook({\n on: \"stop\",\n handler: () => {\n for (const timeout of this.timeouts) {\n this.clearTimeout(timeout);\n }\n\n for (const interval of this.intervals) {\n clearInterval(interval.timer);\n interval.duration = 0;\n interval.timer = null;\n }\n },\n });\n\n public setLocale(locale: string): void {\n dayjs.locale(locale);\n }\n\n public isDateTime(value: unknown): value is DateTime {\n return dayjs.isDayjs(value);\n }\n\n /**\n * Create a new UTC DateTime instance.\n */\n public utc(\n date: string | number | Date | Dayjs | null | undefined,\n ): DateTime {\n return dayjs.utc(date);\n }\n\n /**\n * Create a new DateTime instance.\n */\n public of(date: string | number | Date | Dayjs | null | undefined): DateTime {\n return dayjs(date);\n }\n\n /**\n * Get the current date.\n */\n public now(): DateTime {\n return this.of(this.getCurrentDate());\n }\n\n /**\n * Get the current date as a string.\n *\n * @param date\n */\n public toISOString(date: Date | string | DateTime = this.now()): string {\n return this.of(date).toISOString();\n }\n\n /**\n * Get the current date as a string.\n */\n public nowISOString(): string {\n return this.toISOString();\n }\n\n /**\n * Get the current date as a string.\n *\n * @protected\n */\n protected getCurrentDate(): DateTime {\n if (this.ref) {\n return this.ref;\n }\n\n return dayjs();\n }\n\n /**\n * Create a new Duration instance.\n */\n public duration = (\n duration: DurationLike,\n unit?: ManipulateType,\n ): Duration => {\n if (Array.isArray(duration)) {\n return dayjs.duration(duration[0], duration[1]);\n }\n\n if (typeof duration === \"number\") {\n return dayjs.duration(duration, unit || \"milliseconds\");\n }\n\n return duration;\n };\n\n public isDurationLike(value: unknown): value is DurationLike {\n return dayjs.isDuration(this.duration(value as DurationLike));\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n // Timer Management\n\n /**\n * Return a promise that resolves after the next tick.\n * It uses `setTimeout` with 0 ms delay.\n */\n public async tick(): Promise<void> {\n await new Promise((resolve) => setTimeout(resolve, 0));\n }\n\n /**\n * Wait for a certain duration.\n *\n * You can clear the timeout by using the `AbortSignal` API.\n * Aborted signal will resolve the promise immediately, it does not reject it.\n */\n public wait(\n duration: DurationLike,\n options: {\n signal?: AbortSignal;\n now?: number;\n } = {},\n ): Promise<void> {\n return new Promise((resolve) => {\n let clearTimeout: any;\n let callback: any;\n\n const timeout = this.createTimeout(\n () => {\n if (options.signal && clearTimeout) {\n options.signal.removeEventListener(\"abort\", callback);\n }\n resolve();\n },\n duration,\n options.now,\n );\n\n if (options.signal) {\n clearTimeout = () => this.clearTimeout(timeout);\n callback = () => {\n clearTimeout();\n resolve();\n };\n options.signal.addEventListener(\"abort\", callback);\n }\n });\n }\n\n public createInterval(\n run: () => unknown,\n distance: DurationLike,\n start = false,\n ): Interval {\n const interval: Interval = {\n run,\n duration: this.duration(distance).asMilliseconds(),\n };\n\n this.intervals.push(interval);\n\n if (start) {\n interval.timer = setInterval(interval.run, interval.duration);\n }\n\n return interval;\n }\n\n /**\n * Run a callback after a certain duration.\n */\n public createTimeout(\n callback: () => void,\n duration: DurationLike,\n now?: number,\n ): Timeout {\n if (this.ref && now) {\n const next = this.of(now).add(this.duration(duration));\n if (next < this.now()) {\n callback();\n }\n return {\n now,\n duration: 0,\n callback: () => {},\n clear: () => {},\n };\n }\n\n const timeout: Timeout = {\n now: now ?? this.now().valueOf(),\n duration: this.duration(duration).asMilliseconds(),\n callback,\n clear: () => this.clearTimeout(timeout),\n };\n\n timeout.timer = setTimeout(() => {\n timeout.callback();\n }, timeout.duration);\n\n this.timeouts.push(timeout);\n\n return timeout;\n }\n\n public clearTimeout(timeout: Timeout): void {\n clearTimeout(timeout.timer);\n timeout.duration = 0;\n timeout.timer = null;\n }\n\n public clearInterval(interval: Interval): void {\n clearInterval(interval.timer);\n interval.duration = 0;\n interval.timer = null;\n }\n\n /**\n * Run a function with a deadline.\n */\n public async deadline<T>(\n fn: (signal: AbortSignal) => Promise<T>,\n duration: DurationLike,\n ): Promise<T> {\n const abort = new AbortController();\n const timeout = this.createTimeout(() => abort.abort(), duration);\n try {\n return await fn(abort.signal);\n } finally {\n this.clearTimeout(timeout);\n }\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n // Testing\n\n /**\n * Add time to the current date.\n */\n public async travel(\n duration: DurationLike,\n unit?: ManipulateType,\n ): Promise<void> {\n this.ref = this.ref || this.now();\n this.ref = this.ref.add(this.duration(duration, unit));\n const ms = this.duration(duration, unit).asMilliseconds();\n const now = Date.now();\n\n for (const timeout of this.timeouts) {\n if (!timeout.timer) {\n continue;\n }\n\n clearTimeout(timeout.timer);\n timeout.timer = null;\n\n const spent = now - timeout.now;\n timeout.duration = timeout.duration - spent - ms;\n\n if (timeout.duration <= 0) {\n timeout.callback();\n } else {\n timeout.timer = setTimeout(() => {\n timeout.callback();\n }, timeout.duration);\n }\n }\n\n for (const interval of this.intervals) {\n if (!interval.timer) {\n continue;\n }\n\n clearInterval(interval.timer);\n interval.timer = null;\n\n const repeat = Math.floor(ms / interval.duration);\n for (let i = 0; i < repeat; i++) {\n await interval.run();\n }\n }\n\n await this.tick();\n }\n\n /**\n * Stop the time.\n */\n public pause(): DateTime {\n this.ref = this.ref || this.now();\n return this.ref;\n }\n\n /**\n * Reset the reference date.\n */\n public reset(): void {\n this.ref = null;\n }\n}\n\nexport interface Interval {\n timer?: any;\n duration: number;\n run: () => unknown;\n}\n\nexport interface Timeout {\n now: number;\n timer?: any;\n duration: number;\n callback: () => void;\n clear: () => void;\n}\n","import { $inject, createDescriptor, Descriptor, KIND } from \"@alepha/core\";\nimport {\n DateTimeProvider,\n type DurationLike,\n} from \"../providers/DateTimeProvider.ts\";\n\n/**\n * Run a function periodically.\n * It uses the `setInterval` internally.\n * It starts by default when the context starts and stops when the context stops.\n */\nexport const $interval = (options: IntervalDescriptorOptions) =>\n createDescriptor(IntervalDescriptor, options);\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface IntervalDescriptorOptions {\n /**\n * The interval handler.\n */\n handler: () => unknown;\n\n /**\n * The interval duration.\n */\n duration: DurationLike;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport class IntervalDescriptor extends Descriptor<IntervalDescriptorOptions> {\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n\n public called = 0;\n\n protected onInit() {\n this.dateTimeProvider.createInterval(async () => {\n await this.options.handler();\n this.called += 1;\n }, this.options.duration);\n }\n}\n\n$interval[KIND] = IntervalDescriptor;\n","import { $module } from \"@alepha/core\";\nimport { $interval } from \"./descriptors/$interval.ts\";\nimport { DateTimeProvider } from \"./providers/DateTimeProvider.ts\";\n\nexport * from \"./descriptors/$interval.ts\";\nexport * from \"./providers/DateTimeProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport const AlephaDateTime = $module({\n name: \"alepha.datetime\",\n descriptors: [$interval],\n services: [DateTimeProvider],\n});\n","import type { LogEntry } from \"../schemas/logEntrySchema.ts\";\n\nexport abstract class LogDestinationProvider {\n public abstract write(message: string, entry: LogEntry): void;\n}\n","import type { LogEntry } from \"../schemas/logEntrySchema.ts\";\n\nexport abstract class LogFormatterProvider {\n public abstract format(entry: LogEntry): string;\n}\n","import {\n $inject,\n Alepha,\n AlephaError,\n type LoggerInterface,\n type LogLevel,\n} from \"@alepha/core\";\nimport { DateTimeProvider } from \"@alepha/datetime\";\nimport { LogDestinationProvider } from \"../providers/LogDestinationProvider.ts\";\nimport { LogFormatterProvider } from \"../providers/LogFormatterProvider.ts\";\nimport type { LogEntry } from \"../schemas/logEntrySchema.ts\";\n\nexport class Logger implements LoggerInterface {\n protected readonly alepha = $inject(Alepha);\n protected readonly formatter = $inject(LogFormatterProvider);\n protected readonly destination = $inject(LogDestinationProvider);\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n\n protected readonly levels: Record<string, number> = {\n SILENT: -1,\n ERROR: 0,\n WARN: 1,\n INFO: 2,\n DEBUG: 3,\n TRACE: 4,\n };\n\n protected readonly service: string;\n protected readonly module: string;\n protected readonly app?: string;\n\n protected appLogLevel: string = \"INFO\";\n protected logLevel: LogLevel = \"INFO\";\n\n constructor(service: string, module: string) {\n this.service = service;\n this.module = module;\n this.app = this.alepha.env.APP_NAME;\n }\n\n public get context(): string | undefined {\n return this.alepha.context.get<string>(\"context\");\n }\n\n public get level(): string {\n const stateLogLevel = this.alepha.state.get(\"alepha.logger.level\");\n if (stateLogLevel && stateLogLevel !== this.appLogLevel) {\n this.appLogLevel = stateLogLevel;\n this.logLevel = this.parseLevel(this.appLogLevel, this.module);\n }\n return this.logLevel;\n }\n\n public parseLevel(level: string, app: string): LogLevel {\n const parts = level.toLowerCase().split(/[,;]/);\n\n // First pass: check for module-specific configurations\n for (const part of parts) {\n const trimmedPart = part.trim();\n if (!trimmedPart) continue; // Skip empty parts\n\n if (trimmedPart.includes(\":\") || trimmedPart.includes(\"=\")) {\n const [modulePattern, levelValue] = trimmedPart.split(/[:=]/);\n const trimmedModule = modulePattern.trim();\n const trimmedLevel = levelValue?.trim();\n\n if (!trimmedLevel) continue; // Skip if no level specified\n\n if (this.matchesPattern(app, trimmedModule)) {\n try {\n return this.asLogLevel(trimmedLevel);\n } catch (error) {\n throw new AlephaError(\n `Invalid log level '${levelValue?.trim()}' for module pattern '${trimmedModule}'`,\n );\n }\n }\n }\n }\n\n // Second pass: look for global level\n for (const part of parts) {\n const trimmedPart = part.trim();\n if (!trimmedPart) continue; // Skip empty parts\n\n if (!trimmedPart.includes(\":\") && !trimmedPart.includes(\"=\")) {\n try {\n return this.asLogLevel(trimmedPart);\n } catch (error) {\n throw new Error(`Invalid global log level \"${trimmedPart}\"`);\n }\n }\n }\n\n return \"INFO\";\n }\n\n private matchesPattern(moduleName: string, pattern: string): boolean {\n if (pattern.includes(\"*\")) {\n // Convert wildcard pattern to regex\n const regexPattern = pattern.replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\");\n return new RegExp(`^${regexPattern}`).test(moduleName);\n }\n\n // Exact prefix match (existing behavior)\n return moduleName.startsWith(pattern);\n }\n\n public asLogLevel(something: string): LogLevel {\n const level = something.trim().toUpperCase();\n if (this.levels[level] !== undefined) {\n return level as LogLevel;\n }\n\n throw new AlephaError(`Invalid log level: ${something}`);\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n public error(message: string, data?: unknown): void {\n this.log(\"ERROR\", message, data);\n }\n\n public warn(message: string, data?: unknown): void {\n this.log(\"WARN\", message, data);\n }\n\n public info(message: string, data?: unknown): void {\n this.log(\"INFO\", message, data);\n }\n\n public debug(message: string, data?: unknown): void {\n this.log(\"DEBUG\", message, data);\n }\n\n public trace(message: string, data?: unknown): void {\n this.log(\"TRACE\", message, data);\n }\n\n protected log(level: LogLevel, message: string, data?: unknown): void {\n let _message = \"\";\n if (typeof message === \"string\") {\n _message = message;\n } else if (typeof data === \"string\") {\n _message = data;\n }\n\n let _data: object | Error | undefined;\n if (typeof data === \"object\" && !!data) {\n _data = data;\n } else if (typeof message === \"object\" && message) {\n _data = message;\n }\n\n const logEntry: LogEntry = {\n level,\n message: _message,\n data: _data,\n context: this.context,\n service: this.service,\n module: this.module,\n app: this.app,\n timestamp: this.dateTimeProvider.nowISOString(),\n };\n\n if (this.levels[level] > this.levels[this.level]) {\n this.emit(logEntry);\n return;\n }\n\n const formatted = this.formatter.format(logEntry);\n\n this.emit(logEntry, formatted);\n\n this.destination.write(formatted, logEntry);\n }\n\n protected emit(entry: LogEntry, message?: string) {\n this.alepha.events\n .emit(\n \"log\",\n {\n message,\n entry,\n },\n {\n catch: true,\n },\n )\n .catch(() => null);\n }\n}\n","import { $context, $inject, KIND } from \"@alepha/core\";\nimport { Logger } from \"../services/Logger.ts\";\n\n/**\n * Create a logger.\n *\n * `name` is optional, by default it will use the name of the service.\n *\n * @example\n * ```ts\n * import { $logger } from \"alepha\";\n *\n * class MyService {\n * \tlog = $logger();\n *\n * constructor() {\n * this.log.info(\"Service initialized\");\n * // print something like '[23:45:53.326] INFO <app.MyService>: Service initialized'\n * }\n * }\n * ```\n */\nexport const $logger = (options: LoggerDescriptorOptions = {}): Logger => {\n const { alepha, service, module } = $context();\n\n return $inject(Logger, {\n lifetime: \"transient\",\n args: [\n options.name ?? service?.name,\n module?.name ?? alepha.env.MODULE_NAME ?? \"app\",\n ],\n });\n};\n\nexport interface LoggerDescriptorOptions {\n name?: string;\n}\n\n$logger[KIND] = Logger;\n","import { LogDestinationProvider } from \"./LogDestinationProvider.ts\";\n\nexport class ConsoleDestinationProvider extends LogDestinationProvider {\n public write(message: string): void {\n console.log(message);\n }\n}\n","import type { LogEntry } from \"../schemas/logEntrySchema.ts\";\nimport { LogFormatterProvider } from \"./LogFormatterProvider.ts\";\n\nexport class JsonFormatterProvider extends LogFormatterProvider {\n public format(entry: LogEntry): string {\n const json: Record<string, any> = {\n level: entry.level,\n message: entry.message,\n context: entry.context,\n service: entry.service,\n module: entry.module,\n app: entry.app,\n date: entry.timestamp,\n };\n\n if (entry.data instanceof Error) {\n json.error = this.formatJsonError(entry.data);\n } else {\n Object.assign(json, entry.data);\n }\n\n return JSON.stringify(json);\n }\n\n public formatJsonError(error: Error): object {\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n cause:\n error.cause instanceof Error\n ? this.formatJsonError(error.cause)\n : undefined,\n };\n }\n}\n","import type { LogEntry } from \"../schemas/logEntrySchema.ts\";\nimport { LogDestinationProvider } from \"./LogDestinationProvider.ts\";\n\nexport class MemoryDestinationProvider extends LogDestinationProvider {\n protected entries: Array<LogEntry & { formatted: string }> = [];\n\n public readonly options = {\n maxEntries: 1000,\n };\n\n public write(formatted: string, entry: LogEntry): void {\n this.entries.push({ ...entry, formatted });\n\n if (this.entries.length > this.options.maxEntries) {\n this.entries = this.entries.slice(\n -Math.floor(this.options.maxEntries * 0.8),\n );\n }\n }\n\n public get logs() {\n return [...this.entries];\n }\n\n public clear(): void {\n this.entries = [];\n }\n}\n","import type { LogEntry } from \"../schemas/logEntrySchema.ts\";\nimport { LogFormatterProvider } from \"./LogFormatterProvider.ts\";\n\nexport class RawFormatterProvider extends LogFormatterProvider {\n public format(entry: LogEntry): string {\n let output = \"\";\n\n output += `${entry.message}`;\n\n if (entry.data instanceof Error) {\n output += `\\n${entry.data.message}`;\n let cause = entry.data.cause;\n while (cause instanceof Error) {\n output += `\\nCaused by: ${cause.message}`;\n cause = cause.cause;\n }\n }\n\n return output;\n }\n}\n","import { $env, $inject, Alepha, t } from \"@alepha/core\";\n\nconst envSchema = t.object({\n /**\n * Disable colors in the console output.\n */\n NO_COLOR: t.optional(t.text()),\n\n /**\n * Force color output for the application.\n */\n FORCE_COLOR: t.optional(t.text()),\n});\n\nexport class ConsoleColorProvider {\n static readonly COLORS = {\n RESET: \"\\x1b[0m\",\n BLACK: \"\\x1b[30m\",\n RED: \"\\x1b[31m\",\n GREEN: \"\\x1b[32m\",\n ORANGE: \"\\x1b[33m\", // using yellow for orange-ish\n BLUE: \"\\x1b[34m\",\n PURPLE: \"\\x1b[35m\",\n CYAN: \"\\x1b[36m\",\n GREY_LIGHT: \"\\x1b[37m\",\n GREY_LIGHT_BOLD: \"\\x1b[1;37m\",\n GREY_DARK: \"\\x1b[90m\",\n GREY_DARK_BOLD: \"\\x1b[1;90m\",\n WHITE: \"\\x1b[97m\",\n WHITE_BOLD: \"\\x1b[1;97m\",\n // levels\n SILENT: \"\",\n ERROR: \"\\x1b[31m\",\n WARN: \"\\x1b[33m\",\n INFO: \"\\x1b[32m\",\n DEBUG: \"\\x1b[34m\",\n TRACE: \"\\x1b[90m\",\n };\n\n protected readonly env = $env(envSchema);\n protected readonly alepha = $inject(Alepha);\n\n protected enabled = true;\n\n constructor() {\n this.enabled = this.isEnabled();\n }\n\n public isEnabled(): boolean {\n if (this.env.NO_COLOR) {\n return false;\n }\n\n if (this.env.FORCE_COLOR) {\n return true;\n }\n\n return !this.alepha.isProduction();\n }\n\n public set(\n color: keyof typeof ConsoleColorProvider.COLORS,\n text: string,\n reset: string = ConsoleColorProvider.COLORS.RESET,\n ): string {\n if (!this.enabled) {\n return text;\n }\n\n return `${ConsoleColorProvider.COLORS[color]}${text}${reset}`;\n }\n}\n","import { $inject, Alepha } from \"@alepha/core\";\nimport type { LogEntry } from \"../schemas/logEntrySchema.ts\";\nimport { ConsoleColorProvider } from \"./ConsoleColorProvider.ts\";\nimport { LogFormatterProvider } from \"./LogFormatterProvider.ts\";\n\nexport class SimpleFormatterProvider extends LogFormatterProvider {\n protected color = $inject(ConsoleColorProvider);\n protected alepha = $inject(Alepha);\n\n public format(entry: LogEntry): string {\n const { data, timestamp } = entry;\n\n let output = \"\";\n let details = \"\";\n\n const isError = data instanceof Error;\n if (isError) {\n details = this.formatError(data);\n } else if (data) {\n try {\n details = JSON.stringify(data);\n } catch {\n details = \"[Unserializable Object]\";\n }\n }\n\n output += this.color.set(\n \"GREY_DARK\",\n `[${this.formatTimestamp(timestamp)}]`,\n );\n output += \" \";\n\n output += this.color.set(entry.level, entry.level.toUpperCase());\n output += \" \";\n\n if (entry.app) {\n output += this.color.set(\"GREY_DARK\", `${entry.app}`);\n output += \" \";\n }\n\n if (entry.context) {\n output += this.color.set(\n \"GREY_DARK\",\n `(${this.formatContext(entry.context)})`,\n );\n output += \" \";\n }\n\n const module = this.color.set(\"GREY_LIGHT\", `${entry.module}.`);\n const service = this.color.set(\n this.alepha.isBrowser() ? \"RESET\" : \"WHITE\",\n entry.service,\n );\n\n output += `<${module}${service}>`;\n\n if (entry.message) {\n output += `: ${this.color.set(\"CYAN\", entry.message)}`;\n } else {\n output += \":\";\n }\n\n if (details) {\n if (isError) {\n output += ` \\n${details}`;\n } else {\n output += ` ${this.color.set(\"GREY_DARK\", details)}`;\n }\n }\n\n return output;\n }\n\n public formatTimestamp(iso: string): string {\n const d = new Date(iso);\n const h = d.getHours();\n const m = d.getMinutes();\n const s = d.getSeconds();\n const ms = d.getMilliseconds();\n\n return `${this.pad2(h)}:${this.pad2(m)}:${this.pad2(s)}.${this.pad3(ms)}`;\n }\n\n protected pad2 = (n: number) => (n < 10 ? \"0\" : \"\") + n;\n protected pad3 = (n: number) =>\n n < 10 ? `00${n}` : n < 100 ? `0${n}` : `${n}`;\n\n /**\n * Avoid to display the whole UUID in development mode\n */\n protected formatContext(context: string): string {\n if (this.alepha.isProduction()) {\n return context;\n }\n\n return context.slice(0, 8);\n }\n\n protected formatError(error: Error): string {\n // Chrome does not like stack traces with ASCII colors\n // so we remove the stack trace from log and just print with console.error\n if (this.alepha.isBrowser()) {\n // call console.error in a separate tick to avoid messing with log order\n setTimeout(() => {\n console.error(error);\n });\n return \"\";\n }\n\n let str = error.stack ?? error.message;\n\n const anyError = error as any;\n while (anyError.cause && anyError.cause instanceof Error) {\n str += `\\nCaused by: ${anyError.cause.stack ?? anyError.cause.message}`;\n anyError.cause = anyError.cause.cause;\n }\n\n return str;\n }\n}\n","import { type Static, t } from \"@alepha/core\";\n\nexport const logEntrySchema = t.object({\n level: t.enum([\"SILENT\", \"TRACE\", \"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n message: t.text({\n size: \"rich\",\n }),\n service: t.text(),\n module: t.text(),\n context: t.optional(t.text()),\n app: t.optional(t.text()),\n data: t.optional(t.any()),\n timestamp: t.datetime(),\n});\n\nexport type LogEntry = Static<typeof logEntrySchema>;\n","import { $module, type Static, t } from \"@alepha/core\";\nimport { $logger } from \"./descriptors/$logger.ts\";\nimport { ConsoleDestinationProvider } from \"./providers/ConsoleDestinationProvider.ts\";\nimport { JsonFormatterProvider } from \"./providers/JsonFormatterProvider.ts\";\nimport { LogDestinationProvider } from \"./providers/LogDestinationProvider.ts\";\nimport { LogFormatterProvider } from \"./providers/LogFormatterProvider.ts\";\nimport { MemoryDestinationProvider } from \"./providers/MemoryDestinationProvider.ts\";\nimport { RawFormatterProvider } from \"./providers/RawFormatterProvider.ts\";\nimport { SimpleFormatterProvider } from \"./providers/SimpleFormatterProvider.ts\";\nimport type { LogEntry } from \"./schemas/logEntrySchema.ts\";\nimport { Logger } from \"./services/Logger.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./descriptors/$logger.ts\";\nexport * from \"./providers/ConsoleColorProvider.ts\";\nexport * from \"./providers/ConsoleDestinationProvider.ts\";\nexport * from \"./providers/JsonFormatterProvider.ts\";\nexport * from \"./providers/LogDestinationProvider.ts\";\nexport * from \"./providers/LogFormatterProvider.ts\";\nexport * from \"./providers/MemoryDestinationProvider.ts\";\nexport * from \"./providers/SimpleFormatterProvider.ts\";\nexport * from \"./schemas/logEntrySchema.ts\";\nexport * from \"./services/Logger.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Minimalist logger module for Alepha.\n *\n * It offers a global logger interface (info, warn, ...) via the `$logger` descriptor.\n *\n * ```ts\n * import { $logger } from \"alepha/logger\";\n *\n * class App {\n * log = $logger();\n * }\n * ```\n *\n * ### Formatting and Destinations\n *\n * `AlephaLogger` is **extensible**, destinations and formatters can be added or replaced.\n *\n * Default log destinations are:\n * - ConsoleDestinationProvider: logs to the console.\n * - MemoryDestinationProvider: stores logs in memory for later retrieval.\n *\n * Default log formatters are:\n * - JsonFormatterProvider: formats logs as JSON.\n * - SimpleFormatterProvider: formats logs as simple text (with colors when possible).\n * - RawFormatterProvider: formats logs as raw text without any formatting.\n *\n * ### Event Emission\n *\n * The logger emits 'log' events that can be listened to by external code, allowing for custom log processing and destinations.\n *\n * ```ts\n * class CustomDestination {\n * onLog = $hook({\n * on: \"log\",\n * handler: (ev) => {\n * // ev.message (formatted message)\n * // ev.entry (level, raw message, ...)\n * }\n * });\n * }\n * ```\n *\n * ### Log Level\n *\n * You can configure the log level and format via environment variables:\n *\n * - `LOG_LEVEL`: Sets the default log level for the application.\n * - `LOG_FORMAT`: Sets the default log format for the application.\n *\n * ```bash\n * LOG_LEVEL=debug LOG_FORMAT=json node src/index.ts\n * ```\n *\n * Log level is also available in the state as `logLevel`, which can be used to dynamically change the log level at runtime.\n * ```ts\n * alepha.state.set(\"alepha.logger.level\", \"debug\");\n * ```\n *\n * Log level is $module aware, meaning you can set different log levels for different modules.\n *\n * **Module-specific configuration:**\n * - `LOG_LEVEL=my.module.name:debug,info` - debug for `my.module.name` (and submodules), info for others\n * - `LOG_LEVEL=alepha:trace,my.app:error,info` - trace for alepha modules, error for my.app modules, info for others\n *\n * **Wildcard patterns (NEW):**\n * - `LOG_LEVEL=alepha.*:debug,info` - debug for all alepha submodules\n * - `LOG_LEVEL=*.test:silent,*.core:trace,info` - silent for test modules, trace for core modules\n *\n * **Robust parsing:**\n * - Empty parts are gracefully skipped: `LOG_LEVEL=\",,debug,,\"` works fine\n * - Better error messages: \"Invalid log level 'bad' for module pattern 'alepha'\"\n */\nexport const AlephaLogger = $module({\n name: \"alepha.logger\",\n descriptors: [$logger],\n services: [\n Logger,\n ConsoleDestinationProvider,\n MemoryDestinationProvider,\n JsonFormatterProvider,\n SimpleFormatterProvider,\n RawFormatterProvider,\n ],\n register: (alepha) => {\n const env = alepha.parseEnv(envSchema);\n\n const getLogDestinationProvider = () => {\n // in test mode, if no LOG_LEVEL is set, use MemoryDestinationProvider to capture logs for inspection.\n // logs will be printed to console only if the test fails.\n if (alepha.isTest() && !env.LOG_LEVEL) {\n const printOnError = (ev: any) => {\n if (ev.task?.result?.state === \"fail\") {\n const output = alepha.inject(MemoryDestinationProvider);\n for (const log of output.logs) {\n console.log(log.formatted);\n }\n }\n };\n\n try {\n alepha.state.get(\"alepha.test.afterEach\")?.(printOnError);\n alepha.state.get(\"alepha.test.onTestFinished\")?.(printOnError);\n } catch {\n // ignore\n }\n\n return MemoryDestinationProvider;\n }\n\n return ConsoleDestinationProvider;\n };\n\n const getLogFormatterProvider = () => {\n if (env.LOG_FORMAT) {\n if (env.LOG_FORMAT === \"json\") {\n return JsonFormatterProvider;\n }\n if (env.LOG_FORMAT === \"raw\") {\n return RawFormatterProvider;\n }\n return SimpleFormatterProvider;\n }\n\n if (alepha.isProduction() && !alepha.isBrowser()) {\n return JsonFormatterProvider;\n }\n\n return SimpleFormatterProvider;\n };\n\n alepha.with({\n optional: true,\n provide: LogDestinationProvider,\n use: getLogDestinationProvider(),\n });\n\n alepha.with({\n optional: true,\n provide: LogFormatterProvider,\n use: getLogFormatterProvider(),\n });\n\n alepha.state.set(\n \"alepha.logger\",\n alepha.inject(Logger, {\n lifetime: \"transient\",\n args: [\"Alepha\", \"alepha.core\"],\n }),\n );\n\n alepha.state.set(\n \"alepha.logger.level\",\n env.LOG_LEVEL ?? (alepha.isTest() ? \"trace\" : \"info\"),\n );\n },\n});\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nconst envSchema = t.object({\n /**\n * Default log level for the application.\n *\n * Default by environment:\n * - dev = info\n * - prod = info\n * - test = error\n *\n * Levels are: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"silent\"\n *\n * Level can be set for a specific module:\n *\n * @example\n * LOG_LEVEL=my.module.name:debug,info # Set debug level for my.module.name and info for all other modules\n * LOG_LEVEL=alepha:trace, info # Set trace level for all alepha modules and info for all other modules\n */\n LOG_LEVEL: t.optional(t.text()),\n\n /**\n * Built-in log formats.\n * - \"json\" - JSON format, useful for structured logging and log aggregation. {@link JsonFormatterProvider}\n * - \"text\" - Simple text format, human-readable, with colors. {@link SimpleFormatterProvider}\n * - \"raw\" - Raw format, no formatting, just the message. {@link RawFormatterProvider}\n */\n LOG_FORMAT: t.optional(t.enum([\"json\", \"text\", \"raw\"])),\n});\n\n// ---------------------------------------------------------------------------------------------------------------------\n\ndeclare module \"@alepha/core\" {\n export interface Env extends Partial<Static<typeof envSchema>> {}\n\n export interface State {\n /**\n * Current log level for the application or specific modules.\n */\n \"alepha.logger.level\"?: string;\n }\n\n export interface Hooks {\n log: {\n message?: string;\n entry: LogEntry;\n };\n }\n}\n","import { stdin as input, stdout as output } from \"node:process\";\nimport { createInterface as createPromptInterface } from \"node:readline/promises\";\nimport {\n $inject,\n Alepha,\n AlephaError,\n type Static,\n type TSchema,\n type TString,\n} from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\n\nexport interface AskOptions<T extends TSchema = TString> {\n /**\n * Response schema expected.\n *\n * Recommended schemas:\n * - t.text() - for free text input\n * - t.number() - for numeric input\n * - t.boolean() - for yes/no input (accepts \"true\", \"false\", \"1\", \"0\")\n * - t.enum([\"option1\", \"option2\"]) - for predefined options\n *\n * You can use schema.default to provide a default value.\n *\n * @example\n * ```ts\n * ask(\"What is your name?\", { schema: t.text({ default: \"John Doe\" }) })\n * ```\n *\n * @default TString\n */\n schema?: T;\n\n /**\n * Custom validation function.\n * Throws an AlephaError in case of validation failure.\n */\n validate?: (value: Static<T>) => void;\n}\n\nexport interface AskMethod {\n // biome-ignore lint/style/useShorthandFunctionType: .\n <T extends TSchema = TString>(\n question: string,\n options?: AskOptions<T>,\n ): Promise<Static<T>>;\n}\n\nexport class Asker {\n protected readonly log = $logger();\n public readonly ask: AskMethod;\n protected readonly alepha = $inject(Alepha);\n\n constructor() {\n this.ask = this.createAskMethod();\n }\n\n protected createAskMethod(): AskMethod {\n const askFn: AskMethod = async <T extends TSchema = TString>(\n question: string,\n options: AskOptions<T> = {},\n ) => {\n return await this.prompt<T>(question, options);\n };\n\n return askFn;\n }\n\n protected async prompt<T extends TSchema = TString>(\n question: string,\n options: AskOptions<T>,\n ): Promise<Static<T>> {\n const rl = this.createPromptInterface();\n let value: any;\n try {\n do {\n try {\n const answer = await rl.question(`${question}\\n> `);\n if (options.schema) {\n value = this.alepha.codec.decode(\n options.schema,\n answer ? answer.trim() : undefined,\n );\n } else {\n value = String(answer.trim());\n }\n if (options.validate) {\n options.validate(value);\n }\n } catch (error) {\n if (error instanceof AlephaError) {\n this.log.error(`${error.message}\\n`);\n value = undefined;\n } else {\n throw error;\n }\n }\n } while (value === undefined);\n } finally {\n rl.close();\n }\n\n return value;\n }\n\n protected createPromptInterface() {\n return createPromptInterface({ input, output });\n }\n}\n","export class PrettyPrint {\n private spinnerInterval?: NodeJS.Timeout;\n private readonly frames = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"];\n private frameIndex = 0;\n\n // ANSI color codes\n private readonly colors = {\n reset: \"\\x1b[0m\",\n cyan: \"\\x1b[36m\",\n green: \"\\x1b[32m\",\n red: \"\\x1b[31m\",\n dim: \"\\x1b[2m\",\n };\n\n /**\n * Start an animated spinner with a task name\n */\n public startSpinner(taskName: string): void {\n const updateSpinner = () => {\n process.stdout.write(\n `\\r${this.colors.cyan}${this.frames[this.frameIndex]}${this.colors.reset} ${this.colors.dim}${taskName}${this.colors.reset}`,\n );\n this.frameIndex = (this.frameIndex + 1) % this.frames.length;\n };\n\n updateSpinner();\n this.spinnerInterval = setInterval(updateSpinner, 80);\n }\n\n /**\n * Stop the spinner and show success with a tick\n */\n public success(taskName: string, duration?: string): void {\n this.stopSpinner();\n const durationStr = duration\n ? ` ${this.colors.dim}${duration}${this.colors.reset}`\n : \"\";\n process.stdout.write(\n `\\r${this.colors.green}✓${this.colors.reset} ${taskName}${durationStr}\\n`,\n );\n }\n\n /**\n * Stop the spinner and show error with a cross\n */\n public error(taskName: string): void {\n this.stopSpinner();\n process.stdout.write(\n `\\r${this.colors.red}✗${this.colors.reset} ${taskName}\\n`,\n );\n }\n\n /**\n * Stop the spinner without showing any symbol\n */\n public stopSpinner(): void {\n if (this.spinnerInterval) {\n clearInterval(this.spinnerInterval);\n this.spinnerInterval = undefined;\n this.frameIndex = 0;\n }\n }\n}\n","import { AlephaError } from \"@alepha/core\";\n\nexport class CommandError extends AlephaError {\n readonly name = \"CommandError\";\n}\n","import { exec } from \"node:child_process\";\nimport { cp, glob, rm } from \"node:fs/promises\";\nimport { $inject, Alepha } from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\nimport { CommandError } from \"../errors/CommandError.ts\";\nimport { PrettyPrint } from \"./PrettyPrint.ts\";\n\nexport type Task = {\n name: string;\n handler: () => any;\n};\n\ninterface Timer {\n name: string;\n duration: string;\n}\n\nexport interface RunOptions {\n /**\n * Rename the command for logging purposes.\n */\n alias?: string;\n}\n\nexport interface RunnerMethod {\n (\n cmd: string | Task | Array<string | Task>,\n options?: RunOptions | (() => any),\n ): Promise<string>;\n rm: (glob: string | string[], options?: RunOptions) => Promise<string>;\n cp: (source: string, dest: string, options?: RunOptions) => Promise<string>;\n}\n\nexport class Runner {\n protected readonly log = $logger();\n protected readonly timers: Timer[] = [];\n protected readonly startTime: number = Date.now();\n protected readonly prettyPrint = $inject(PrettyPrint);\n protected readonly alepha = $inject(Alepha);\n public readonly run: RunnerMethod;\n\n constructor() {\n this.run = this.createRunMethod();\n }\n\n protected get useDynamicLogger() {\n return this.alepha.env.LOG_FORMAT === \"raw\";\n }\n\n protected createRunMethod() {\n const runFn: RunnerMethod = async (\n cmd: string | Task | Array<string | Task>,\n options?: RunOptions | (() => any),\n ) => {\n if (Array.isArray(cmd)) {\n return await this.execute(\n cmd.map((it) =>\n typeof it === \"string\"\n ? { name: it, handler: () => this.exec(it) }\n : it,\n ),\n );\n }\n\n const alias = typeof options === \"object\" ? options.alias : undefined;\n const name = alias ?? (typeof cmd === \"string\" ? cmd : cmd.name);\n const handler =\n typeof options === \"function\"\n ? options\n : typeof cmd === \"string\"\n ? () => this.exec(cmd)\n : cmd.handler;\n\n return await this.execute({\n name,\n handler,\n });\n };\n\n runFn.rm = async (\n files: string | string[],\n options: RunOptions = {},\n ): Promise<string> => {\n if (Array.isArray(files) || files.includes(\"*\")) {\n return runFn({\n name:\n options.alias ??\n `rm -rf ${Array.isArray(files) ? files.join(\" \") : files}`,\n handler: async () => {\n for await (const file of glob(files)) {\n this.log.trace(`Removing ${file}`);\n await rm(file, { recursive: true, force: true });\n }\n },\n });\n }\n this.log.trace(`Removing ${files}`);\n return runFn({\n name: `rm -rf ${files}`,\n handler: () => rm(files, { recursive: true, force: true }),\n });\n };\n\n runFn.cp = async (\n source: string,\n dist: string,\n options: RunOptions = {},\n ): Promise<string> => {\n this.log.trace(`Copying ${source} to ${dist}`);\n return runFn(\n {\n name: options.alias ?? `cp -r ${source} ${dist}`,\n handler: () => cp(source, dist, { recursive: true }),\n },\n options,\n );\n };\n\n return runFn;\n }\n\n protected async exec(cmd: string): Promise<string> {\n return await new Promise<string>((resolve, reject) => {\n exec(cmd, (err, stdout) => {\n if (err) {\n err.stdout = stdout;\n reject(err);\n } else {\n resolve(stdout);\n }\n });\n });\n }\n\n /**\n * Executes one or more tasks.\n *\n * @param task - A single task or an array of tasks to run in parallel.\n */\n protected async execute(task: Task | Task[]): Promise<string> {\n if (Array.isArray(task)) {\n await Promise.all(task.map((t) => this.executeTask(t)));\n return \"\"; // not supported for now\n } else {\n return await this.executeTask(task);\n }\n }\n\n /**\n * Prints a summary of all executed tasks and their durations.\n */\n public summary(): void {\n if (this.timers.length === 0) return;\n\n this.log.info(\"\");\n //this.renderTable(this.timers.map((t) => [t.name, t.duration]));\n const totalTime = ((Date.now() - this.startTime) / 1000).toFixed(2);\n this.log.info(`Total time: ${totalTime} s`);\n this.log.info(``);\n }\n\n protected async executeTask(task: Task): Promise<string> {\n const now = Date.now();\n\n // Setup dynamic logger\n if (this.useDynamicLogger) {\n this.prettyPrint.startSpinner(task.name);\n } else {\n this.log.info(`Starting '${task.name}' ...`);\n }\n\n let stdout = \"\";\n\n try {\n stdout = String((await task.handler()) ?? \"\");\n } catch (error) {\n // Clear spinner and show error\n if (this.useDynamicLogger) {\n this.prettyPrint.error(task.name);\n }\n if (error instanceof Error && \"stdout\" in error) {\n this.log.info(`\\n\\n${error.stdout}`);\n }\n throw new CommandError(`Task '${task.name}' failed`, { cause: error });\n }\n\n this.log.trace(stdout);\n\n const duration = ((Date.now() - now) / 1000).toFixed(2);\n\n // Clear spinner and show completion\n if (this.useDynamicLogger) {\n this.prettyPrint.success(task.name, `${duration}s`);\n } else {\n this.log.info(`Finished '${task.name}' after ${duration}s`);\n }\n\n this.timers.push({\n name: task.name,\n duration: `${duration} s`,\n });\n\n return stdout;\n }\n\n protected renderTable(data: string[][]): void {\n if (data.length === 0) return;\n\n const col1Width = Math.max(...data.map(([col1]) => col1.length), 7);\n const col2Width = Math.max(...data.map(([, col2]) => col2.length), 8);\n\n const divider = `+${\"-\".repeat(col1Width + 2)}+${\"-\".repeat(\n col2Width + 2,\n )}+`;\n this.log.info(divider);\n this.log.info(\n `| ${\"Command\".padEnd(col1Width)} | ${\"Duration\".padEnd(col2Width)} |`,\n );\n this.log.info(divider);\n for (const [col1, col2] of data) {\n this.log.info(\n `| ${col1.padEnd(col1Width)} | ${col2.padEnd(col2Width)} |`,\n );\n }\n this.log.info(divider);\n }\n}\n","import * as fs from \"node:fs/promises\";\nimport { glob } from \"node:fs/promises\";\nimport {\n $atom,\n $env,\n $hook,\n $inject,\n $use,\n Alepha,\n type Static,\n type TObject,\n type TSchema,\n TypeBoxError,\n t,\n} from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\nimport {\n $command,\n type CommandDescriptor,\n type CommandHandlerArgs,\n} from \"../descriptors/$command.ts\";\nimport { CommandError } from \"../errors/CommandError.ts\";\nimport { Asker } from \"../helpers/Asker.ts\";\nimport { Runner } from \"../helpers/Runner.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nconst envSchema = t.object({\n CLI_NAME: t.text({\n default: \"cli\",\n description: \"Name of the CLI application.\",\n }),\n CLI_DESCRIPTION: t.text({\n default: \"\",\n description: \"Description of the CLI application.\",\n }),\n});\n\ndeclare module \"@alepha/core\" {\n interface Env extends Partial<Static<typeof envSchema>> {}\n}\n\n/**\n * CLI provider configuration atom\n */\nexport const cliOptions = $atom({\n name: \"alepha.command.cli.options\",\n schema: t.object({\n name: t.optional(\n t.string({\n description: \"Name of the CLI application.\",\n }),\n ),\n description: t.optional(\n t.string({\n description: \"Description of the CLI application.\",\n }),\n ),\n argv: t.optional(\n t.array(t.string(), {\n description: \"Command line arguments to parse.\",\n }),\n ),\n }),\n default: {},\n});\n\nexport type CliProviderOptions = Static<typeof cliOptions.schema>;\n\ndeclare module \"@alepha/core\" {\n interface State {\n [cliOptions.key]: CliProviderOptions;\n }\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport class CliProvider {\n protected readonly env = $env(envSchema);\n protected readonly alepha = $inject(Alepha);\n protected readonly log = $logger();\n protected readonly runner = $inject(Runner);\n protected readonly asker = $inject(Asker);\n\n protected readonly options = $use(cliOptions);\n\n protected get name(): string {\n return this.options.name || this.env.CLI_NAME;\n }\n\n protected get description(): string {\n return this.options.description || this.env.CLI_DESCRIPTION;\n }\n\n protected get argv(): string[] {\n return (\n this.options.argv ||\n (typeof process !== \"undefined\" ? process.argv.slice(2) : [])\n );\n }\n\n protected readonly globalFlags = {\n help: {\n aliases: [\"h\", \"help\"],\n description: \"Show this help message\",\n schema: t.boolean(),\n },\n };\n\n protected readonly onReady = $hook({\n on: \"ready\",\n handler: async () => {\n const argv = [...this.argv];\n const commandName = argv.find((arg) => !arg.startsWith(\"-\")) ?? \"\";\n const command = this.findCommand(commandName);\n\n const globalFlags = this.parseFlags(\n argv,\n Object.entries(this.getAllGlobalFlags()).map(([key, value]) => ({\n key,\n ...value,\n })),\n );\n\n if (globalFlags.help) {\n this.printHelp(command);\n return;\n }\n\n if (!command) {\n if (commandName !== \"\") {\n this.log.error(`Unknown command: '${commandName}'`);\n this.printHelp();\n }\n return;\n }\n\n const commandFlags = this.parseCommandFlags(argv, command.flags);\n const commandArgs = this.parseCommandArgs(argv, command.options.args);\n\n await this.alepha.context.run(async () => {\n this.log.debug(`Executing command '${command.name}'...`, {\n flags: commandFlags,\n args: commandArgs,\n });\n\n const runner = this.runner;\n\n const args = {\n flags: commandFlags,\n args: commandArgs,\n run: runner.run,\n ask: this.asker.ask,\n fs,\n glob,\n };\n\n await command.options.handler(args as CommandHandlerArgs<TObject>);\n\n if (command.options.summary !== false) {\n runner.summary();\n }\n\n this.log.debug(`Command '${command.name}' executed successfully.`);\n });\n },\n });\n\n public get commands(): CommandDescriptor<any>[] {\n return this.alepha.descriptors($command);\n }\n\n private findCommand(name: string): CommandDescriptor<TObject> | undefined {\n return this.commands.find(\n (command) => command.name === name || command.aliases.includes(name),\n );\n }\n\n /**\n * Get all global flags including those from the root command (name === \"\")\n */\n protected getAllGlobalFlags(): Record<\n string,\n { aliases: string[]; description?: string; schema: TSchema }\n > {\n const rootCommand = this.commands.find((cmd) => cmd.name === \"\");\n const allGlobalFlags: Record<\n string,\n { aliases: string[]; description?: string; schema: TSchema }\n > = { ...this.globalFlags };\n\n if (rootCommand) {\n // Add root command flags to global flags\n for (const [key, value] of Object.entries(rootCommand.flags.properties)) {\n allGlobalFlags[key] = {\n aliases: [\n key,\n ...((value as any).aliases ??\n ((value as any).alias ? [(value as any).alias] : undefined) ??\n []),\n ],\n description: (value as any).description,\n schema: value as TSchema,\n };\n }\n }\n\n return allGlobalFlags;\n }\n\n protected parseCommandFlags(\n argv: string[],\n schema: TObject,\n ): Record<string, any> {\n const flagDefs = Object.entries(schema.properties).map(([key, value]) => ({\n key,\n aliases: [\n key,\n ...((value as any).aliases ??\n ((value as any).alias ? [(value as any).alias] : undefined) ??\n []),\n ],\n description: (value as any).description,\n schema: value,\n }));\n\n const parsed = this.parseFlags(argv, flagDefs);\n\n // apply manually defaults for optional properties that have defaults\n for (const [key, value] of Object.entries(schema.properties)) {\n if (!(key in parsed) && t.schema.isOptional(value)) {\n const innerSchema = value;\n if (innerSchema && \"default\" in innerSchema) {\n parsed[key] = innerSchema.default;\n }\n }\n }\n\n try {\n return this.alepha.codec.decode(schema, parsed);\n } catch (error) {\n if (error instanceof TypeBoxError) {\n throw new CommandError(\n `Invalid flag: ${error.cause.instancePath || \"command\"} ${error.cause.message}`,\n );\n }\n throw error;\n }\n }\n\n protected parseFlags(\n argv: string[],\n flagDefs: { key: string; aliases: string[]; schema: TSchema }[],\n ): Record<string, any> {\n const result: Record<string, any> = {};\n\n for (const arg of argv.filter((a) => a.startsWith(\"-\"))) {\n const [rawKey, ...valueParts] = arg.replace(/^-{1,2}/, \"\").split(\"=\");\n const value = valueParts.join(\"=\");\n\n const def = flagDefs.find((d) => d.aliases.includes(rawKey));\n if (!def) continue;\n\n if (t.schema.isBoolean(def.schema)) {\n result[def.key] = true;\n } else if (value) {\n try {\n if (t.schema.isObject(def.schema) || t.schema.isArray(def.schema)) {\n result[def.key] = JSON.parse(value);\n } else {\n result[def.key] = value;\n }\n } catch {\n throw new CommandError(`Invalid JSON value for flag --${rawKey}`);\n }\n } else {\n throw new CommandError(`Flag --${rawKey} requires a value.`);\n }\n }\n\n return result;\n }\n\n protected parseCommandArgs(argv: string[], schema?: TSchema): any {\n if (!schema) {\n return undefined;\n }\n\n // Extract positional arguments (non-flag arguments)\n const positionalArgs = argv.filter((arg) => !arg.startsWith(\"-\"));\n // Remove the command name from the positional args\n const argsOnly = positionalArgs.slice(1);\n\n try {\n if (t.schema.isOptional(schema)) {\n // Handle optional args: t.optional(t.text())\n if (argsOnly.length === 0) {\n return undefined;\n }\n return this.parseArgumentValue(argsOnly[0], schema);\n } else if (t.schema.isTuple(schema) && schema.items) {\n // Handle tuple args: t.tuple([t.text(), t.number()])\n const result: any[] = [];\n const items = schema.items;\n for (let i = 0; i < items.length; i++) {\n const itemSchema = items[i];\n if (i < argsOnly.length) {\n result.push(this.parseArgumentValue(argsOnly[i], itemSchema));\n } else if (t.schema.isOptional(itemSchema)) {\n result.push(undefined);\n } else {\n throw new CommandError(\n `Missing required argument at position ${i + 1}`,\n );\n }\n }\n return result;\n } else {\n // Handle single arg: t.text(), t.number(), etc.\n if (argsOnly.length === 0) {\n throw new CommandError(\"Missing required argument\");\n }\n return this.parseArgumentValue(argsOnly[0], schema);\n }\n } catch (error) {\n if (error instanceof TypeBoxError) {\n throw new CommandError(`Invalid argument: ${error.value.message}`);\n }\n throw error;\n }\n }\n\n protected parseArgumentValue(value: string, schema: TSchema): any {\n if (t.schema.isString(schema)) {\n return value;\n }\n\n if (t.schema.isNumber(schema) || t.schema.isInteger(schema)) {\n const num = Number(value);\n if (Number.isNaN(num)) {\n throw new CommandError(`Expected number, got \"${value}\"`);\n }\n if (t.schema.isInteger(schema) && !Number.isInteger(num)) {\n throw new CommandError(`Expected integer, got \"${value}\"`);\n }\n return num;\n }\n\n if (t.schema.isBoolean(schema)) {\n const lower = value.toLowerCase();\n if (lower === \"true\" || lower === \"1\") return true;\n if (lower === \"false\" || lower === \"0\") return false;\n throw new CommandError(`Expected boolean, got \"${value}\"`);\n }\n\n // For other types, return the string value and let TypeBox validate it\n return value;\n }\n\n protected generateArgsUsage(schema?: TSchema): string {\n if (!schema) {\n return \"\";\n }\n\n if (t.schema.isOptional(schema)) {\n const typeName = this.getTypeName(schema);\n const key = \"title\" in schema ? (schema as any).title : \"arg1\";\n return ` [${key}${typeName}]`;\n }\n\n if (t.schema.isTuple(schema) && schema.items) {\n const items = schema.items;\n const args = items.map((item, index) => {\n const argName = `arg${index + 1}`;\n const typeName = this.getTypeName(item);\n if (t.schema.isOptional(item)) {\n return `[${argName}${typeName}]`;\n }\n return `<${argName}${typeName}>`;\n });\n return ` ${args.join(\" \")}`;\n }\n\n const typeName = this.getTypeName(schema);\n const key = \"title\" in schema ? (schema as any).title : \"arg1\";\n return ` <${key}${typeName}>`;\n }\n\n protected getTypeName(schema: TSchema): string {\n if (!schema) return \"\";\n\n // Check TypeBox type guards first\n if (t.schema.isString(schema)) return \"\";\n if (t.schema.isNumber(schema)) return \": number\";\n if (t.schema.isInteger(schema)) return \": integer\";\n if (t.schema.isBoolean(schema)) return \": boolean\";\n\n return \"\";\n }\n\n public printHelp(command?: CommandDescriptor<any>): void {\n const cliName = this.name || \"cli\";\n this.log.info(\"\"); // Newline\n\n if (command?.name) {\n // Command-specific help\n const argsUsage = this.generateArgsUsage(command.options.args);\n const usage = `${cliName} ${command.name}${argsUsage}`.trim();\n this.log.info(`Usage: \\`${usage}\\``);\n\n if (command.options.description) {\n this.log.info(``);\n this.log.info(`\\t${command.options.description}`);\n }\n\n this.log.info(\"\");\n this.log.info(\"Flags:\");\n\n const flags = [\n ...Object.entries(command.flags.properties).map(([key, value]) => ({\n key,\n schema: value,\n aliases: (value as any).alias ?? [key],\n description: (value as any).description,\n })),\n ...Object.entries(this.getAllGlobalFlags()).map(([key, value]) => ({\n key,\n ...value,\n })),\n ];\n\n const maxFlagLength = this.getMaxFlagLength(flags);\n for (const { aliases, description } of flags) {\n const flagStr = (Array.isArray(aliases) ? aliases : [aliases])\n .map((a: string) => (a.length === 1 ? `-${a}` : `--${a}`))\n .join(\", \");\n this.log.info(\n ` ${flagStr.padEnd(maxFlagLength)} # ${description ?? \"\"}`,\n );\n }\n } else {\n // general help\n this.log.info(this.description || \"Available commands:\");\n this.log.info(\"\");\n this.log.info(\"Commands:\");\n const maxCmdLength = this.getMaxCmdLength(this.commands);\n\n for (const command of this.commands) {\n // skip root command in list\n if (command.name === \"\") {\n continue;\n }\n\n const cmdStr = [command.name, ...command.aliases].join(\", \");\n const argsUsage = this.generateArgsUsage(command.options.args);\n const fullCmdStr = `${cmdStr}${argsUsage}`;\n this.log.info(\n ` ${cliName} ${fullCmdStr.padEnd(maxCmdLength)} # ${command.options.description ?? \"\"}`,\n );\n }\n\n this.log.info(\"\");\n this.log.info(\"Flags:\");\n const globalFlags = Object.values(this.getAllGlobalFlags());\n const maxFlagLength = this.getMaxFlagLength(globalFlags);\n for (const { aliases, description } of globalFlags) {\n const flagStr = aliases\n .map((a) => (a.length === 1 ? `-${a}` : `--${a}`))\n .join(\", \");\n this.log.info(\n ` ${flagStr.padEnd(maxFlagLength)} # ${description ?? \"\"}`,\n );\n }\n }\n this.log.info(\"\"); // Newline\n }\n\n private getMaxCmdLength(commands: CommandDescriptor[]): number {\n return Math.max(\n ...commands.map((c) => {\n const cmdStr = [c.name, ...c.aliases].join(\", \");\n const argsUsage = this.generateArgsUsage(c.options.args);\n return `${cmdStr}${argsUsage}`.length;\n }),\n );\n }\n\n private getMaxFlagLength(flags: { aliases: string[] }[]): number {\n return Math.max(\n ...flags.map((f) => {\n const aliases = Array.isArray(f.aliases) ? f.aliases : [f.aliases];\n return aliases\n .map((a) => (a.length === 1 ? `-${a}` : `--${a}`))\n .join(\", \").length;\n }),\n );\n }\n}\n","import { $module } from \"@alepha/core\";\nimport { $command } from \"./descriptors/$command.ts\";\nimport { Asker } from \"./helpers/Asker.ts\";\nimport { PrettyPrint } from \"./helpers/PrettyPrint.ts\";\nimport { Runner } from \"./helpers/Runner.ts\";\nimport { CliProvider } from \"./providers/CliProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./descriptors/$command.ts\";\nexport * from \"./errors/CommandError.ts\";\nexport * from \"./helpers/Asker.ts\";\nexport * from \"./helpers/PrettyPrint.ts\";\nexport * from \"./helpers/Runner.ts\";\nexport * from \"./providers/CliProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * This module provides a powerful way to build command-line interfaces\n * directly within your Alepha application, using declarative descriptors.\n *\n * It allows you to define commands using the `$command` descriptor.\n *\n * @see {@link $command}\n * @module alepha.command\n */\nexport const AlephaCommand = $module({\n name: \"alepha.command\",\n descriptors: [$command],\n services: [CliProvider, Runner, Asker, PrettyPrint],\n});\n\n// ---------------------------------------------------------------------------------------------------------------------\n\ndeclare module \"typebox\" {\n interface StringOptions {\n /**\n * Additional aliases for the flags.\n *\n * @module alepha.command\n */\n aliases?: string[];\n }\n}\n","export const biomeJson = `\n{\n \"$schema\": \"https://biomejs.dev/schemas/latest/schema.json\",\n \"vcs\": {\n \"enabled\": true,\n \"clientKind\": \"git\"\n },\n \"files\": {\n \"ignoreUnknown\": true,\n \"includes\": [\"**\", \"!node_modules\", \"!dist\"]\n },\n \"formatter\": {\n \"enabled\": true,\n \"indentStyle\": \"space\"\n },\n \"linter\": {\n \"enabled\": true,\n \"rules\": {\n \"recommended\": true\n },\n \"domains\": {\n \"react\": \"recommended\"\n }\n },\n \"assist\": {\n \"actions\": {\n \"source\": {\n \"organizeImports\": \"on\"\n }\n }\n }\n}\n`.trim()\n","import { spawn } from \"node:child_process\";\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { $logger } from \"@alepha/logger\";\n\n/**\n * Service for running external processes with logging support.\n *\n * This service wraps Node.js child_process functionality and provides:\n * - Automatic logging of executed commands\n * - Promise-based execution\n * - Inherited stdio for seamless output\n * - Working directory context\n * - Config file management in node_modules/.alepha\n */\nexport class ProcessRunner {\n protected readonly log = $logger();\n\n /**\n * Execute a command using npx with inherited stdio.\n *\n * @param command - The command to execute (will be passed to npx)\n * @param env - Optional environment variables to set for the command\n * @returns Promise that resolves when the process exits\n *\n * @example\n * ```ts\n * const runner = alepha.inject(ProcessRunner);\n * await runner.exec(\"tsx watch src/index.ts\");\n * ```\n */\n public async exec(\n command: string,\n env: Record<string, string> = {},\n ): Promise<void> {\n this.log.debug(`Executing command: npx ${command}`, { cwd: process.cwd() });\n\n const prog = spawn(\"npx\", command.split(\" \"), {\n stdio: \"inherit\",\n cwd: process.cwd(),\n env: {\n ...process.env,\n ...env,\n NODE_OPTIONS: \"--import tsx\",\n },\n });\n\n await new Promise<void>((resolve) =>\n prog.on(\"exit\", () => {\n resolve();\n }),\n );\n }\n\n /**\n * Write a configuration file to node_modules/.alepha directory.\n *\n * Creates the .alepha directory if it doesn't exist and writes the file with the given content.\n *\n * @param name - The name of the config file to create\n * @param content - The content to write to the file\n * @param root - The root directory (defaults to process.cwd())\n * @returns The absolute path to the created file\n *\n * @example\n * ```ts\n * const runner = alepha.inject(ProcessRunner);\n * const configPath = await runner.writeConfigFile(\"biome.json\", biomeConfig);\n * ```\n */\n public async writeConfigFile(\n name: string,\n content: string,\n root = process.cwd(),\n ): Promise<string> {\n const dir = join(root, \"node_modules\", \".alepha\");\n\n await mkdir(dir, {\n recursive: true,\n }).catch(() => null);\n\n const path = join(dir, name);\n await writeFile(path, content);\n\n this.log.debug(`Config file written: ${path}`);\n\n return path;\n }\n}\n","import { access } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { $command } from \"@alepha/command\";\nimport { $inject, t } from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\nimport { biomeJson } from \"../assets/biomeJson.ts\";\nimport { ProcessRunner } from \"../services/ProcessRunner.ts\";\n\nexport class BiomeCommands {\n protected readonly log = $logger();\n protected readonly runner = $inject(ProcessRunner);\n protected readonly biomeFlags = t.object({\n config: t.optional(\n t.text({\n aliases: [\"c\"],\n }),\n ),\n });\n\n public readonly format = $command({\n name: \"format\",\n description: \"Format the codebase using Biome\",\n flags: this.biomeFlags,\n handler: async ({ flags }) => {\n const configPath = await this.configPath(flags.config);\n await this.runner.exec(`biome format --fix --config-path=${configPath}`);\n },\n });\n\n public readonly lint = $command({\n name: \"lint\",\n description: \"Run linter across the codebase using Biome\",\n flags: this.biomeFlags,\n handler: async ({ flags }) => {\n const configPath = await this.configPath(flags.config);\n await this.runner.exec(\n `biome check --formatter-enabled=false --fix --config-path=${configPath}`,\n );\n },\n });\n\n protected async configPath(maybePath?: string): Promise<string> {\n const root = process.cwd();\n if (maybePath) {\n try {\n const path = join(root, maybePath);\n await access(path);\n return path;\n } catch {}\n }\n\n try {\n const path = join(root, \"biome.json\");\n await access(path);\n return path;\n } catch {\n return await this.runner.writeConfigFile(\"biome.json\", biomeJson);\n }\n }\n}\n","export const tsconfigJson = `\n{\n \"compilerOptions\": {\n \"module\": \"nodenext\",\n \"target\": \"esnext\",\n \"strict\": true,\n \"jsx\": \"react-jsx\",\n \"verbatimModuleSyntax\": true,\n \"isolatedModules\": true,\n \"moduleDetection\": \"force\",\n \"skipLibCheck\": true,\n \"resolveJsonModule\": true,\n \"allowImportingTsExtensions\": true\n },\n \"exclude\": [\"node_modules\", \"dist\"]\n}\n`.trim();\n","import { readFileSync } from \"node:fs\";\n\nconst packageJson = JSON.parse(\n readFileSync(new URL(\"../package.json\", import.meta.url), \"utf-8\"),\n);\n\nexport const version = packageJson.version;\n","import { access, mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { Readable } from \"node:stream\";\nimport { $command, CliProvider } from \"@alepha/command\";\nimport { $inject, AlephaError, t } from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\nimport { pipeline } from \"stream/promises\";\nimport * as tar from \"tar\";\nimport { tsconfigJson } from \"../assets/tsconfigJson.ts\";\nimport { version } from \"../version.ts\";\n\nexport class CoreCommands {\n protected readonly log = $logger();\n protected readonly cli = $inject(CliProvider);\n\n public readonly root = $command({\n root: true,\n flags: t.object({\n version: t.optional(\n t.boolean({\n description: \"Show Alepha CLI version\",\n aliases: [\"v\"],\n }),\n ),\n }),\n handler: async ({ flags }) => {\n if (flags.version) {\n this.log.info(version);\n return;\n }\n\n this.cli.printHelp();\n },\n });\n\n public readonly create = $command({\n name: \"create\",\n description: \"Create a new Alepha project\",\n aliases: [\"new\"],\n args: t.text({\n title: \"name\",\n }),\n flags: t.object({\n yarn: t.optional(t.boolean({ description: \"Use Yarn package manager\" })),\n pnpm: t.optional(t.boolean({ description: \"Use pnpm package manager\" })),\n }),\n summary: false,\n handler: async ({ run, args, flags }) => {\n const name = args;\n const root = process.cwd();\n const dest = join(root, name);\n\n try {\n await access(dest);\n this.log.error(\n `Directory \"${name}\" already exists. Please choose a different project name.`,\n );\n return;\n } catch {\n // Directory does not exist, proceed\n }\n\n let installCmd = \"npm install\";\n let execCmd = \"npx\";\n if (flags.yarn) {\n installCmd = \"yarn\";\n execCmd = \"yarn\";\n } else if (flags.pnpm) {\n installCmd = \"pnpm install\";\n execCmd = \"pnpm\";\n }\n\n await mkdir(dest, { recursive: true }).catch(() => null);\n\n await run(\"Downloading sample project\", () =>\n this.downloadSampleProject(dest),\n );\n\n if (flags.yarn) {\n await this.ensureYarn(dest);\n await run(`cd ${name} && yarn set version stable`, {\n alias: \"Setting Yarn to stable version\",\n });\n }\n\n await run(`cd ${name} && ${installCmd}`, {\n alias: \"Installing dependencies\",\n });\n\n await run(`cd ${name} && npx alepha lint`, {\n alias: \"Linting code\",\n });\n\n await run(`cd ${name} && npx alepha typecheck`, {\n alias: \"Type checking\",\n });\n\n await run(`cd ${name} && npx alepha test`, {\n alias: \"Running tests\",\n });\n\n await run(`cd ${name} && npx alepha build`, {\n alias: \"Building project\",\n });\n\n this.log.info(\"\");\n this.log.info(`$ cd ${name} && ${execCmd} alepha dev`.trim());\n this.log.info(\"\");\n },\n });\n\n public readonly clean = $command({\n name: \"clean\",\n description: \"Clean the project\",\n handler: async ({ run }) => {\n await run.rm(\"./dist\");\n },\n });\n\n public readonly init = $command({\n name: \"init\",\n description: \"Add missing Alepha configuration files to the project\",\n flags: t.object({\n // TODO:\n // force: t.boolean({\n // description: \"If true, all config files will be overwritten\",\n // }),\n yarn: t.boolean({ description: \"Use Yarn package manager\" }),\n api: t.boolean({ description: \"Include Alepha Server dependencies\" }),\n react: t.boolean({ description: \"Include Alepha React dependencies\" }),\n }),\n handler: async ({ run, flags }) => {\n const root = process.cwd();\n\n await this.ensureTsConfig(root);\n await this.ensurePackageJson(root, flags);\n\n if (flags.yarn) {\n await this.ensureYarn(root);\n } else {\n await run(\"npm install\", {\n alias: \"Installing dependencies with npm\",\n });\n }\n },\n });\n\n public async ensureYarn(root: string) {\n const tsconfigPath = join(root, \".yarnrc.yml\");\n try {\n await access(tsconfigPath);\n } catch {\n await writeFile(tsconfigPath, \"nodeLinker: node-modules\");\n }\n }\n\n public generatePackageJsonContent(modes: { api?: boolean; react?: boolean }) {\n const dependencies: Record<string, string> = {\n \"@alepha/core\": `^${version}`,\n \"@alepha/logger\": `^${version}`,\n \"@alepha/datetime\": `^${version}`,\n };\n\n const devDependencies: Record<string, string> = {\n alepha: `^${version}`,\n \"@alepha/vite\": `^${version}`,\n };\n\n if (modes.api) {\n dependencies[\"@alepha/server\"] = `^${version}`;\n dependencies[\"@alepha/server-swagger\"] = `^${version}`;\n dependencies[\"@alepha/server-multipart\"] = `^${version}`;\n }\n\n if (modes.react) {\n dependencies[\"@alepha/server\"] = `^${version}`;\n dependencies[\"@alepha/server-links\"] = `^${version}`;\n dependencies[\"@alepha/react\"] = `^${version}`;\n dependencies.react = \"^19.2.0\";\n devDependencies[\"@types/react\"] = \"^19.0.0\";\n }\n\n return {\n dependencies,\n devDependencies,\n scripts: {\n dev: \"alepha dev\",\n build: \"alepha build\",\n },\n };\n }\n\n public async ensurePackageJson(\n root: string,\n modes: { api?: boolean; react?: boolean },\n ) {\n const packageJsonPath = join(root, \"package.json\");\n try {\n await access(packageJsonPath);\n } catch (error) {\n this.log.info(\"No package.json found. Creating one...\");\n await writeFile(\n packageJsonPath,\n JSON.stringify(this.generatePackageJsonContent(modes), null, 2),\n );\n return;\n }\n\n const content = await readFile(packageJsonPath, \"utf8\");\n const packageJson = JSON.parse(content);\n if (!packageJson.type || packageJson.type !== \"module\") {\n packageJson.type = \"module\";\n }\n const newPackageJson = this.generatePackageJsonContent(modes);\n\n packageJson.type = \"module\";\n packageJson.dependencies ??= {};\n packageJson.devDependencies ??= {};\n packageJson.scripts ??= {};\n\n Object.assign(packageJson.dependencies, newPackageJson.dependencies);\n Object.assign(packageJson.devDependencies, newPackageJson.devDependencies);\n Object.assign(packageJson.scripts, newPackageJson.scripts);\n\n await writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));\n }\n\n public async ensureTsConfig(root = process.cwd()) {\n const tsconfigPath = join(root, \"tsconfig.json\");\n try {\n await access(tsconfigPath);\n } catch {\n this.log.info(\"Missing tsconfig.json detected. Creating one...\");\n await writeFile(tsconfigPath, tsconfigJson);\n }\n }\n\n public async downloadSampleProject(targetDir: string) {\n const url = \"https://api.github.com/repos/feunard/alepha/tarball/main\";\n const response = await fetch(url, {\n headers: {\n \"User-Agent\": \"Alepha-CLI\", // GitHub API requires User-Agent\n },\n });\n\n if (!response.ok) {\n throw new AlephaError(`Failed to download: ${response.statusText}`);\n }\n\n const tarStream = Readable.fromWeb(response.body as any);\n await pipeline(\n tarStream,\n tar.extract({\n cwd: targetDir, // Extract to target directory\n strip: 3, // Remove feunard-alepha-<hash>/apps/starter prefix\n filter: (path) => {\n // Only extract files from apps/starter/\n const parts = path.split(\"/\");\n return (\n parts.length >= 3 && parts[1] === \"apps\" && parts[2] === \"starter\"\n );\n },\n }),\n );\n }\n}\n","import { readFile } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport { join } from \"node:path\";\nimport { $command } from \"@alepha/command\";\nimport { $inject, Alepha, AlephaError, boot, t } from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\nimport type { RepositoryProvider } from \"@alepha/postgres\";\nimport { tsImport } from \"tsx/esm/api\";\nimport { ProcessRunner } from \"../services/ProcessRunner.ts\";\n\nexport class DrizzleCommands {\n log = $logger();\n runner = $inject(ProcessRunner);\n\n flags = t.object({\n root: t.text({ description: \"Project root\", default: \".\" }),\n });\n\n /**\n * Check if database migrations are up to date\n *\n * - Loads the Alepha instance from the specified entry file.\n * - Retrieves all repository descriptors to gather database models.\n * - Reads the last migration snapshot from the migration journal.\n * - Generates the current database schema representation.\n * - Compares the current schema with the last snapshot to detect changes.\n * - If changes are detected, prompts the user to run the migration generation command!\n */\n check = $command({\n name: \"db:check-migrations\",\n description: \"Verify database migration files are up to date\",\n flags: this.flags,\n args: t.optional(\n t.text({\n title: \"path\",\n description: \"Path to the Alepha server entry file\",\n }),\n ),\n handler: async ({ flags, args }) => {\n const rootDir = join(process.cwd(), flags.root);\n this.log.debug(`Using project root: ${rootDir}`);\n const { alepha } = await this.loadAlephaFromServerEntryFile(\n rootDir,\n args,\n );\n\n const models: any[] = [];\n const repositories = alepha.descriptors(\"repository\") as any[];\n const kit = createRequire(import.meta.url)(\"drizzle-kit/api\");\n const migrationDir = join(rootDir, \"migrations\");\n\n const journalFile = await readFile(\n `${migrationDir}/meta/_journal.json`,\n \"utf-8\",\n ).catch(() => null);\n\n if (!journalFile) {\n this.log.info(`No migration journal found.`);\n return;\n }\n\n const journal = JSON.parse(journalFile);\n\n const lastMigration = journal.entries[journal.entries.length - 1];\n\n const lastSnapshot = JSON.parse(\n await readFile(\n `${migrationDir}/meta/${String(lastMigration.idx).padStart(4, \"0\")}_snapshot.json`,\n \"utf-8\",\n ),\n );\n\n for (const repository of repositories) {\n if (!models.includes(repository.table)) {\n models.push(repository.table);\n }\n }\n\n const now = kit.generateDrizzleJson(models, lastSnapshot.id);\n\n const migrationStatements = await new Promise<Array<any>>((resolve) => {\n (async () => {\n const timer = setTimeout(() => {\n resolve([{ message: \"Migration generation timed out.\" }]);\n }, 5000);\n const statements = await kit.generateMigration(lastSnapshot, now);\n clearTimeout(timer);\n resolve(statements);\n })();\n });\n\n if (migrationStatements.length === 0) {\n this.log.info(\"No changes detected.\");\n return;\n }\n\n this.log.info(\"\");\n this.log.info(\"Detected migration statements:\");\n this.log.info(\"\");\n for (const stmt of migrationStatements) {\n this.log.info(stmt);\n }\n this.log.info(\"\");\n\n this.log.info(\n `At least ${migrationStatements.length} change(s) detected.`,\n );\n this.log.info(\n \"Please, run 'alepha db:generate' to update the migration files.\",\n );\n this.log.info(\"\");\n\n throw new AlephaError(\"Database migrations are not up to date.\");\n },\n });\n\n /**\n * Generate database migration files\n *\n * - Loads the Alepha instance from the specified entry file.\n * - Retrieves all repository descriptors to gather database models.\n * - Creates temporary entity definitions based on the current database schema.\n * - Writes these definitions to a temporary schema file. (node_modules/.db/entities.ts)\n * - Invokes Drizzle Kit's CLI to generate migration files based on the current schema.\n */\n generate = $command({\n name: \"db:generate\",\n description: \"Generate migration files based on current database schema\",\n summary: false,\n flags: this.flags,\n args: t.optional(\n t.text({\n title: \"path\",\n description: \"Path to the Alepha server entry file\",\n }),\n ),\n handler: async ({ flags, args }) => {\n await this.runDrizzleKitCommand({\n flags,\n args,\n command: \"generate\",\n logMessage: (providerName, dialect) =>\n `Generate '${providerName}' migrations (${dialect}) ...`,\n });\n },\n });\n\n /**\n * Push database schema changes directly to the database\n *\n * - Loads the Alepha instance from the specified entry file.\n * - Retrieves all repository descriptors to gather database models.\n * - Creates temporary entity definitions and Drizzle config.\n * - Invokes Drizzle Kit's push command to apply schema changes directly.\n */\n push = $command({\n name: \"db:push\",\n description: \"Push database schema changes directly to the database\",\n summary: false,\n flags: this.flags,\n args: t.optional(\n t.text({\n title: \"path\",\n description: \"Path to the Alepha server entry file\",\n }),\n ),\n handler: async ({ flags, args }) => {\n await this.runDrizzleKitCommand({\n flags,\n args,\n command: \"push\",\n logMessage: (providerName, dialect) =>\n `Push '${providerName}' schema (${dialect}) ...`,\n });\n },\n });\n\n /**\n * Apply pending database migrations\n *\n * - Loads the Alepha instance from the specified entry file.\n * - Retrieves all repository descriptors to gather database models.\n * - Creates temporary entity definitions and Drizzle config.\n * - Invokes Drizzle Kit's migrate command to apply pending migrations.\n */\n migrate = $command({\n name: \"db:migrate\",\n description: \"Apply pending database migrations\",\n summary: false,\n flags: this.flags,\n args: t.optional(\n t.text({\n title: \"path\",\n description: \"Path to the Alepha server entry file\",\n }),\n ),\n handler: async ({ flags, args }) => {\n await this.runDrizzleKitCommand({\n flags,\n args,\n command: \"migrate\",\n logMessage: (providerName, dialect) =>\n `Migrate '${providerName}' database (${dialect}) ...`,\n });\n },\n });\n\n /**\n * Launch Drizzle Studio database browser\n *\n * - Loads the Alepha instance from the specified entry file.\n * - Retrieves all repository descriptors to gather database models.\n * - Creates temporary entity definitions and Drizzle config.\n * - Invokes Drizzle Kit's studio command to launch the web-based database browser.\n */\n studio = $command({\n name: \"db:studio\",\n description: \"Launch Drizzle Studio database browser\",\n summary: false,\n flags: this.flags,\n args: t.optional(\n t.text({\n title: \"path\",\n description: \"Path to the Alepha server entry file\",\n }),\n ),\n handler: async ({ flags, args }) => {\n await this.runDrizzleKitCommand({\n flags,\n args,\n command: \"studio\",\n logMessage: (providerName, dialect) =>\n `Launch Studio for '${providerName}' (${dialect}) ...`,\n });\n },\n });\n\n /**\n * Run a drizzle-kit command for all database providers\n */\n protected async runDrizzleKitCommand(options: {\n flags: { root: string };\n args?: string;\n command: string;\n logMessage: (providerName: string, dialect: string) => string;\n }): Promise<void> {\n const rootDir = join(process.cwd(), options.flags.root);\n this.log.debug(`Using project root: ${rootDir}`);\n\n const { alepha, entry } = await this.loadAlephaFromServerEntryFile(\n rootDir,\n options.args,\n );\n\n const kit = this.getKitFromAlepha(alepha);\n const repositoryProvider =\n alepha.inject<RepositoryProvider>(\"RepositoryProvider\");\n const accepted = new Set<string>([]);\n\n for (const descriptor of repositoryProvider.getRepositories()) {\n const provider = descriptor.provider;\n const providerName = provider.name;\n const dialect = provider.dialect;\n\n if (accepted.has(providerName)) {\n continue;\n }\n accepted.add(providerName);\n\n this.log.info(\"\");\n this.log.info(options.logMessage(providerName, dialect));\n\n const drizzleConfigJsPath = await this.prepareDrizzleConfig({\n kit,\n provider,\n providerName,\n providerUrl: provider.url,\n dialect,\n entry,\n rootDir,\n });\n\n await this.runner.exec(\n `drizzle-kit ${options.command} --config=${drizzleConfigJsPath}`,\n );\n }\n }\n\n /**\n * Prepare Drizzle configuration files for a provider\n */\n protected async prepareDrizzleConfig(options: {\n kit: any;\n provider: any;\n providerName: string;\n providerUrl: string;\n dialect: string;\n entry: string;\n rootDir: string;\n }): Promise<string> {\n const models = Object.keys(options.kit.getModels(options.provider));\n const entitiesJs = this.generateEntitiesJs(\n options.entry,\n options.providerName,\n models,\n );\n\n const entitiesJsPath = await this.runner.writeConfigFile(\n \"entities.js\",\n entitiesJs,\n options.rootDir,\n );\n\n const config: Record<string, any> = {\n schema: entitiesJsPath,\n out: `./migrations/${options.providerName}`,\n dialect: options.dialect,\n dbCredentials: {\n url: options.providerUrl,\n },\n };\n\n if (options.providerName === \"pglite\") {\n config.driver = \"pglite\";\n }\n\n const drizzleConfigJs = \"export default \" + JSON.stringify(config, null, 2);\n\n return await this.runner.writeConfigFile(\n \"drizzle.config.js\",\n drizzleConfigJs,\n options.rootDir,\n );\n }\n\n /**\n * Get DrizzleKitProvider from Alepha instance\n */\n protected getKitFromAlepha(alepha: Alepha): any {\n // biome-ignore lint/complexity/useLiteralKeys: private key\n return alepha[\"registry\"]\n .values()\n .find((it: any) => it.instance.constructor.name === \"DrizzleKitProvider\")\n ?.instance;\n }\n\n public async loadAlephaFromServerEntryFile(\n rootDir?: string,\n explicitEntry?: string,\n ): Promise<{\n alepha: Alepha;\n entry: string;\n }> {\n process.env.ALEPHA_SKIP_START = \"true\";\n\n const entry = await boot.getServerEntry(rootDir, explicitEntry);\n const mod = await tsImport(entry, {\n parentURL: import.meta.url,\n });\n\n this.log.debug(`Load entry: ${entry}`);\n\n // check if alepha is correctly exported\n if (mod.default instanceof Alepha) {\n return {\n alepha: mod.default,\n entry,\n };\n }\n\n // else, try with global variable\n const g: any = global;\n if (g.__alepha) {\n return {\n alepha: g.__alepha,\n entry,\n };\n }\n\n throw new AlephaError(\n `Could not find Alepha instance in entry file: ${entry}`,\n );\n }\n\n protected generateEntitiesJs(\n entry: string,\n provider: string,\n models: string[] = [],\n ) {\n return `\nimport \"${entry}\";\nimport { DrizzleKitProvider, Repository } from \"@alepha/postgres\";\n\nconst alepha = globalThis.__alepha;\nconst kit = alepha.inject(DrizzleKitProvider);\nconst provider = alepha.services(Repository).find((it) => it.provider.name === \"${provider}\").provider;\nconst models = kit.getModels(provider);\n\n${models.map((it: string) => `export const ${it} = models[\"${it}\"];`).join(\"\\n\")}\n\n`.trim();\n }\n}\n","import { $command } from \"@alepha/command\";\nimport { $inject } from \"@alepha/core\";\nimport { ProcessRunner } from \"../services/ProcessRunner.ts\";\n\nexport class VerifyCommands {\n runner = $inject(ProcessRunner);\n\n /**\n * Run a series of verification commands to ensure code quality and correctness.\n *\n * This command runs the following checks in order:\n * 1. Clean the project\n * 2. Format the code\n * 3. Lint the code\n * 4. Run tests\n * 5. Type check the code\n * 8. Build the project\n * 9. Clean the project again\n */\n public readonly verify = $command({\n name: \"verify\",\n description: \"Verify the Alepha project\",\n handler: async ({ run }) => {\n await run(\"alepha clean\");\n await run(\"alepha format\");\n await run(\"alepha lint\");\n await run(\"alepha test\");\n await run(\"alepha typecheck\");\n\n // run only if migrations dir is present ?\n //await run(\"alepha db:check-migrations\");\n\n await run(\"alepha build\");\n await run(\"alepha clean\");\n },\n });\n\n /**\n * Run TypeScript type checking across the codebase with no emit.\n */\n public readonly typecheck = $command({\n name: \"typecheck\",\n description: \"Check TypeScript types across the codebase\",\n handler: async () => {\n await this.runner.exec(\"tsc --noEmit\");\n },\n });\n}\n","export const viteConfigTs = (\n serverEntry?: string,\n) => `\nimport { viteAlepha } from \"@alepha/vite\";\n\nexport default {\n plugins: [\n viteAlepha(${serverEntry ? `{ serverEntry: \"${serverEntry}\" }` : \"\"}),\n ],\n test: {\n globals: true,\n },\n};\n`.trim()\n","import { access, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { $command } from \"@alepha/command\";\nimport { $inject, AlephaError, boot, t } from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\nimport { viteConfigTs } from \"../assets/viteConfigTs.ts\";\nimport { ProcessRunner } from \"../services/ProcessRunner.ts\";\nimport { CoreCommands } from \"./CoreCommands.ts\";\n\nexport class ViteCommands {\n protected readonly log = $logger();\n protected readonly runner = $inject(ProcessRunner);\n protected readonly core = $inject(CoreCommands);\n\n public readonly run = $command({\n name: \"run\",\n description: \"Run a TypeScript file directly\",\n flags: t.object({\n watch: t.optional(\n t.boolean({ description: \"Watch file for changes\", alias: \"w\" }),\n ),\n }),\n summary: false,\n args: t.text({ title: \"path\", description: \"Filepath to run\" }),\n handler: async ({ args, flags }) => {\n await this.core.ensureTsConfig();\n await this.runner.exec(`tsx ${flags.watch ? \"watch \" : \"\"}${args}`);\n },\n });\n\n /**\n * Will run the project in watch mode.\n *\n * - If an index.html file is found in the project root, it will run Vite in dev mode.\n * - Otherwise, it will look for a server entry file and run it with tsx in watch mode.\n */\n public readonly dev = $command({\n name: \"dev\",\n description: \"Run the project in development mode\",\n args: t.optional(t.text({ title: \"path\", description: \"Filepath to run\" })),\n handler: async ({ args }) => {\n const root = process.cwd();\n await this.core.ensureTsConfig(root);\n await this.ensurePackageJson(root);\n const entry = await boot.getServerEntry(root, args);\n this.log.trace(\"Entry file found\", { entry });\n\n try {\n await access(join(root, \"index.html\"));\n } catch {\n this.log.trace(\"No index.html found, running entry file with tsx\");\n //await this.runner.exec(`tsx watch ${entry}`);\n //return;\n }\n\n const configPath = await this.configPath(root, args ? entry : undefined);\n this.log.trace(\"Vite config found\", { configPath });\n await this.runner.exec(`vite -c=${configPath}`);\n },\n });\n\n public readonly build = $command({\n name: \"build\",\n description: \"Build the project for production\",\n args: t.optional(\n t.text({ title: \"path\", description: \"Filepath to build\" }),\n ),\n flags: t.object({\n config: t.optional(\n t.text({ aliases: [\"c\"], description: \"Path to config file\" }),\n ),\n stats: t.optional(\n t.boolean({\n description: \"Generate build stats report\",\n }),\n ),\n }),\n handler: async ({ flags, args }) => {\n const root = process.cwd();\n await this.core.ensureTsConfig(root);\n await this.ensurePackageJson(root);\n const entry = await boot.getServerEntry(root, args);\n this.log.trace(\"Entry file found\", { entry });\n\n await rm(\"dist\", { recursive: true, force: true });\n\n // DISABLED FOR NOW (waiting for vite-rolldown)\n // if (flags.lib) {\n // await this.runner.exec(\n // `tsdown${flags.config ? ` -c=${flags.config}` : \"\"}`,\n // );\n // return;\n // }\n\n const configPath = await this.configPath(root, args ? entry : undefined);\n\n const env: Record<string, string> = {};\n if (flags.stats) {\n env.ALEPHA_BUILD_STATS = \"true\";\n }\n\n await this.runner.exec(`vite build -c=${configPath}`, env);\n },\n });\n\n public readonly test = $command({\n name: \"test\",\n description: \"Run tests using Vitest\",\n handler: async () => {\n await this.core.ensureTsConfig();\n\n const configPath = await this.configPath();\n await this.runner.exec(`vitest run -c=${configPath}`);\n },\n });\n\n // -------------------------------------------------------------------------------------------------------------------\n\n protected async configPath(\n root = process.cwd(),\n serverEntry?: string,\n ): Promise<string> {\n try {\n const viteConfigPath = join(root, \"vite.config.ts\");\n await access(viteConfigPath);\n return viteConfigPath;\n } catch {\n return this.runner.writeConfigFile(\n \"vite.config.ts\",\n viteConfigTs(serverEntry),\n );\n }\n }\n\n protected async ensurePackageJson(root = process.cwd()) {\n const packageJsonPath = join(root, \"package.json\");\n try {\n await access(packageJsonPath);\n } catch (error) {\n throw new AlephaError(\n \"No package.json found in project root. Run 'npx alepha init' to create one.\",\n );\n }\n\n const content = await readFile(packageJsonPath, \"utf8\");\n const packageJson = JSON.parse(content);\n if (!packageJson.type || packageJson.type !== \"module\") {\n packageJson.type = \"module\";\n await writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));\n }\n }\n}\n","#!/usr/bin/env node\nimport \"tsx\";\nimport { $module, Alepha, run } from \"@alepha/core\";\nimport { BiomeCommands } from \"./commands/BiomeCommands.ts\";\nimport { CoreCommands } from \"./commands/CoreCommands.ts\";\nimport { DrizzleCommands } from \"./commands/DrizzleCommands.ts\";\nimport { VerifyCommands } from \"./commands/VerifyCommands.ts\";\nimport { ViteCommands } from \"./commands/ViteCommands.ts\";\nimport { ProcessRunner } from \"./services/ProcessRunner.ts\";\nimport { version } from \"./version.ts\";\n\nconst AlephaCli = $module({\n name: \"alepha.cli\",\n services: [\n ProcessRunner,\n CoreCommands,\n DrizzleCommands,\n VerifyCommands,\n ViteCommands,\n BiomeCommands,\n ],\n});\n\nconst alepha = Alepha.create({\n env: {\n LOG_LEVEL: \"alepha.core:warn,info\",\n LOG_FORMAT: \"raw\",\n CLI_NAME: \"alepha\",\n CLI_DESCRIPTION: `Alepha CLI v${version} - Create and manage Alepha projects.`,\n },\n});\n\nalepha.with(AlephaCli);\n\nrun(alepha);\n"],"x_google_ignoreList":[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,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,554,564,565,566,567,568,569,570,571],"mappings":"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"}
|