@wovin/core 0.0.3-RC2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/applog/applog-helpers.d.ts +1 -1
  2. package/dist/applog/datom-types.d.ts +1 -1
  3. package/dist/applog/datom-types.d.ts.map +1 -1
  4. package/dist/applog.min.js +1 -1
  5. package/dist/chunk-2UCPKUQK.min.js +1256 -0
  6. package/dist/chunk-2UCPKUQK.min.js.map +1 -0
  7. package/dist/chunk-3HUXODLY.min.js +11940 -0
  8. package/dist/chunk-3HUXODLY.min.js.map +1 -0
  9. package/dist/chunk-G3GOAFHU.min.js +8 -0
  10. package/dist/{chunk-KESATLM4.min.js.map → chunk-G3GOAFHU.min.js.map} +1 -1
  11. package/dist/chunk-KBXBNPCO.min.js +2 -0
  12. package/dist/chunk-KBXBNPCO.min.js.map +1 -0
  13. package/dist/chunk-N7GKIL5T.min.js +120 -0
  14. package/dist/chunk-N7GKIL5T.min.js.map +1 -0
  15. package/dist/chunk-PVULNVU2.min.js +49 -0
  16. package/dist/chunk-PVULNVU2.min.js.map +1 -0
  17. package/dist/chunk-UZUBJLQD.min.js +2 -0
  18. package/dist/{chunk-NGPPHX5A.min.js.map → chunk-UZUBJLQD.min.js.map} +1 -1
  19. package/dist/chunk-VTXN7J7O.min.js +66 -0
  20. package/dist/chunk-VTXN7J7O.min.js.map +1 -0
  21. package/dist/chunk-W7B2PDHK.min.js +2 -0
  22. package/dist/chunk-W7B2PDHK.min.js.map +1 -0
  23. package/dist/chunk-WCOT2GIF.min.js +2 -0
  24. package/dist/{chunk-F3MRAJXL.min.js.map → chunk-WCOT2GIF.min.js.map} +1 -1
  25. package/dist/chunk-WNS2N7XB.min.js +45 -0
  26. package/dist/chunk-WNS2N7XB.min.js.map +1 -0
  27. package/dist/chunk-WOD425XV.min.js +4401 -0
  28. package/dist/chunk-WOD425XV.min.js.map +1 -0
  29. package/dist/index.min.js +1 -1
  30. package/dist/index.min.js.map +1 -1
  31. package/dist/ipfs/car.d.ts.map +1 -1
  32. package/dist/ipfs.min.js +1 -1
  33. package/dist/mobx/mobx-utils.d.ts.map +1 -1
  34. package/dist/pubsub/publication.d.ts +14 -6
  35. package/dist/pubsub/publication.d.ts.map +1 -1
  36. package/dist/pubsub/pubsub-types.d.ts +12 -1
  37. package/dist/pubsub/pubsub-types.d.ts.map +1 -1
  38. package/dist/pubsub.min.js +1 -1
  39. package/dist/query.min.js +1 -1
  40. package/dist/stream/basic.d.ts +2 -0
  41. package/dist/stream/basic.d.ts.map +1 -1
  42. package/dist/stream/filters.d.ts +1 -1
  43. package/dist/stream.min.js +1 -1
  44. package/dist/types.min.js +1 -1
  45. package/package.json +5 -3
  46. package/dist/chunk-5R2ELTEJ.min.js +0 -40
  47. package/dist/chunk-5R2ELTEJ.min.js.map +0 -1
  48. package/dist/chunk-F3MRAJXL.min.js +0 -2
  49. package/dist/chunk-HHXZXKNM.min.js +0 -7
  50. package/dist/chunk-HHXZXKNM.min.js.map +0 -1
  51. package/dist/chunk-HNATM27J.min.js +0 -2
  52. package/dist/chunk-HNATM27J.min.js.map +0 -1
  53. package/dist/chunk-KESATLM4.min.js +0 -8
  54. package/dist/chunk-LECZSORU.min.js +0 -2
  55. package/dist/chunk-LECZSORU.min.js.map +0 -1
  56. package/dist/chunk-NGPPHX5A.min.js +0 -2
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/typebox.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/value/guard.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/system/system.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/value/deref.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/value/hash.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/errors/errors.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/errors/index.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/system/index.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/value/check.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/value/transform.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/compiler/compiler.js","../../../../node_modules/.pnpm/@sinclair+typebox@0.31.28/node_modules/@sinclair/typebox/compiler/index.js","../src/query/basic.ts","../src/applog/applog-helpers.ts","../src/applog/datom-types.ts","../src/stream/writeable.ts"],"sourcesContent":["\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Type = exports.JsonType = exports.JavaScriptTypeBuilder = exports.JsonTypeBuilder = exports.TypeBuilder = exports.TypeBuilderError = exports.TransformEncodeBuilder = exports.TransformDecodeBuilder = exports.TemplateLiteralDslParser = exports.TemplateLiteralGenerator = exports.TemplateLiteralGeneratorError = exports.TemplateLiteralFinite = exports.TemplateLiteralFiniteError = exports.TemplateLiteralParser = exports.TemplateLiteralParserError = exports.TemplateLiteralResolver = exports.TemplateLiteralPattern = exports.TemplateLiteralPatternError = exports.UnionResolver = exports.KeyArrayResolver = exports.KeyArrayResolverError = exports.KeyResolver = exports.ObjectMap = exports.Intrinsic = exports.IndexedAccessor = exports.TypeClone = exports.TypeExtends = exports.TypeExtendsResult = exports.TypeExtendsError = exports.ExtendsUndefined = exports.TypeGuard = exports.TypeGuardUnknownTypeError = exports.ValueGuard = exports.FormatRegistry = exports.TypeBoxError = exports.TypeRegistry = exports.PatternStringExact = exports.PatternNumberExact = exports.PatternBooleanExact = exports.PatternString = exports.PatternNumber = exports.PatternBoolean = exports.Kind = exports.Hint = exports.Optional = exports.Readonly = exports.Transform = void 0;\n// --------------------------------------------------------------------------\n// Symbols\n// --------------------------------------------------------------------------\nexports.Transform = Symbol.for('TypeBox.Transform');\nexports.Readonly = Symbol.for('TypeBox.Readonly');\nexports.Optional = Symbol.for('TypeBox.Optional');\nexports.Hint = Symbol.for('TypeBox.Hint');\nexports.Kind = Symbol.for('TypeBox.Kind');\n// --------------------------------------------------------------------------\n// Patterns\n// --------------------------------------------------------------------------\nexports.PatternBoolean = '(true|false)';\nexports.PatternNumber = '(0|[1-9][0-9]*)';\nexports.PatternString = '(.*)';\nexports.PatternBooleanExact = `^${exports.PatternBoolean}$`;\nexports.PatternNumberExact = `^${exports.PatternNumber}$`;\nexports.PatternStringExact = `^${exports.PatternString}$`;\n/** A registry for user defined types */\nvar TypeRegistry;\n(function (TypeRegistry) {\n const map = new Map();\n /** Returns the entries in this registry */\n function Entries() {\n return new Map(map);\n }\n TypeRegistry.Entries = Entries;\n /** Clears all user defined types */\n function Clear() {\n return map.clear();\n }\n TypeRegistry.Clear = Clear;\n /** Deletes a registered type */\n function Delete(kind) {\n return map.delete(kind);\n }\n TypeRegistry.Delete = Delete;\n /** Returns true if this registry contains this kind */\n function Has(kind) {\n return map.has(kind);\n }\n TypeRegistry.Has = Has;\n /** Sets a validation function for a user defined type */\n function Set(kind, func) {\n map.set(kind, func);\n }\n TypeRegistry.Set = Set;\n /** Gets a custom validation function for a user defined type */\n function Get(kind) {\n return map.get(kind);\n }\n TypeRegistry.Get = Get;\n})(TypeRegistry || (exports.TypeRegistry = TypeRegistry = {}));\n// --------------------------------------------------------------------------\n// TypeBoxError\n// --------------------------------------------------------------------------\nclass TypeBoxError extends Error {\n constructor(message) {\n super(message);\n }\n}\nexports.TypeBoxError = TypeBoxError;\n/** A registry for user defined string formats */\nvar FormatRegistry;\n(function (FormatRegistry) {\n const map = new Map();\n /** Returns the entries in this registry */\n function Entries() {\n return new Map(map);\n }\n FormatRegistry.Entries = Entries;\n /** Clears all user defined string formats */\n function Clear() {\n return map.clear();\n }\n FormatRegistry.Clear = Clear;\n /** Deletes a registered format */\n function Delete(format) {\n return map.delete(format);\n }\n FormatRegistry.Delete = Delete;\n /** Returns true if the user defined string format exists */\n function Has(format) {\n return map.has(format);\n }\n FormatRegistry.Has = Has;\n /** Sets a validation function for a user defined string format */\n function Set(format, func) {\n map.set(format, func);\n }\n FormatRegistry.Set = Set;\n /** Gets a validation function for a user defined string format */\n function Get(format) {\n return map.get(format);\n }\n FormatRegistry.Get = Get;\n})(FormatRegistry || (exports.FormatRegistry = FormatRegistry = {}));\n// --------------------------------------------------------------------------\n// ValueGuard\n// --------------------------------------------------------------------------\n/** Provides functions to type guard raw JavaScript values */\nvar ValueGuard;\n(function (ValueGuard) {\n /** Returns true if this value is an array */\n function IsArray(value) {\n return Array.isArray(value);\n }\n ValueGuard.IsArray = IsArray;\n /** Returns true if this value is bigint */\n function IsBigInt(value) {\n return typeof value === 'bigint';\n }\n ValueGuard.IsBigInt = IsBigInt;\n /** Returns true if this value is a boolean */\n function IsBoolean(value) {\n return typeof value === 'boolean';\n }\n ValueGuard.IsBoolean = IsBoolean;\n /** Returns true if this value is a Date object */\n function IsDate(value) {\n return value instanceof globalThis.Date;\n }\n ValueGuard.IsDate = IsDate;\n /** Returns true if this value is null */\n function IsNull(value) {\n return value === null;\n }\n ValueGuard.IsNull = IsNull;\n /** Returns true if this value is number */\n function IsNumber(value) {\n return typeof value === 'number';\n }\n ValueGuard.IsNumber = IsNumber;\n /** Returns true if this value is an object */\n function IsObject(value) {\n return typeof value === 'object' && value !== null;\n }\n ValueGuard.IsObject = IsObject;\n /** Returns true if this value is string */\n function IsString(value) {\n return typeof value === 'string';\n }\n ValueGuard.IsString = IsString;\n /** Returns true if this value is a Uint8Array */\n function IsUint8Array(value) {\n return value instanceof globalThis.Uint8Array;\n }\n ValueGuard.IsUint8Array = IsUint8Array;\n /** Returns true if this value is undefined */\n function IsUndefined(value) {\n return value === undefined;\n }\n ValueGuard.IsUndefined = IsUndefined;\n})(ValueGuard || (exports.ValueGuard = ValueGuard = {}));\n// --------------------------------------------------------------------------\n// TypeGuard\n// --------------------------------------------------------------------------\nclass TypeGuardUnknownTypeError extends TypeBoxError {\n}\nexports.TypeGuardUnknownTypeError = TypeGuardUnknownTypeError;\n/** Provides functions to test if JavaScript values are TypeBox types */\nvar TypeGuard;\n(function (TypeGuard) {\n function IsPattern(value) {\n try {\n new RegExp(value);\n return true;\n }\n catch {\n return false;\n }\n }\n function IsControlCharacterFree(value) {\n if (!ValueGuard.IsString(value))\n return false;\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n if ((code >= 7 && code <= 13) || code === 27 || code === 127) {\n return false;\n }\n }\n return true;\n }\n function IsAdditionalProperties(value) {\n return IsOptionalBoolean(value) || TSchema(value);\n }\n function IsOptionalBigInt(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsBigInt(value);\n }\n function IsOptionalNumber(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsNumber(value);\n }\n function IsOptionalBoolean(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsBoolean(value);\n }\n function IsOptionalString(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsString(value);\n }\n function IsOptionalPattern(value) {\n return ValueGuard.IsUndefined(value) || (ValueGuard.IsString(value) && IsControlCharacterFree(value) && IsPattern(value));\n }\n function IsOptionalFormat(value) {\n return ValueGuard.IsUndefined(value) || (ValueGuard.IsString(value) && IsControlCharacterFree(value));\n }\n function IsOptionalSchema(value) {\n return ValueGuard.IsUndefined(value) || TSchema(value);\n }\n // ----------------------------------------------------------------\n // Types\n // ----------------------------------------------------------------\n /** Returns true if the given value is TAny */\n function TAny(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Any') &&\n IsOptionalString(schema.$id));\n }\n TypeGuard.TAny = TAny;\n /** Returns true if the given value is TArray */\n function TArray(schema) {\n return (TKindOf(schema, 'Array') &&\n schema.type === 'array' &&\n IsOptionalString(schema.$id) &&\n TSchema(schema.items) &&\n IsOptionalNumber(schema.minItems) &&\n IsOptionalNumber(schema.maxItems) &&\n IsOptionalBoolean(schema.uniqueItems) &&\n IsOptionalSchema(schema.contains) &&\n IsOptionalNumber(schema.minContains) &&\n IsOptionalNumber(schema.maxContains));\n }\n TypeGuard.TArray = TArray;\n /** Returns true if the given value is TAsyncIterator */\n function TAsyncIterator(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'AsyncIterator') &&\n schema.type === 'AsyncIterator' &&\n IsOptionalString(schema.$id) &&\n TSchema(schema.items));\n }\n TypeGuard.TAsyncIterator = TAsyncIterator;\n /** Returns true if the given value is TBigInt */\n function TBigInt(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'BigInt') &&\n schema.type === 'bigint' &&\n IsOptionalString(schema.$id) &&\n IsOptionalBigInt(schema.exclusiveMaximum) &&\n IsOptionalBigInt(schema.exclusiveMinimum) &&\n IsOptionalBigInt(schema.maximum) &&\n IsOptionalBigInt(schema.minimum) &&\n IsOptionalBigInt(schema.multipleOf));\n }\n TypeGuard.TBigInt = TBigInt;\n /** Returns true if the given value is TBoolean */\n function TBoolean(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Boolean') &&\n schema.type === 'boolean' &&\n IsOptionalString(schema.$id));\n }\n TypeGuard.TBoolean = TBoolean;\n /** Returns true if the given value is TConstructor */\n function TConstructor(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Constructor') &&\n schema.type === 'Constructor' &&\n IsOptionalString(schema.$id) &&\n ValueGuard.IsArray(schema.parameters) &&\n schema.parameters.every(schema => TSchema(schema)) &&\n TSchema(schema.returns));\n }\n TypeGuard.TConstructor = TConstructor;\n /** Returns true if the given value is TDate */\n function TDate(schema) {\n return (TKindOf(schema, 'Date') &&\n schema.type === 'Date' &&\n IsOptionalString(schema.$id) &&\n IsOptionalNumber(schema.exclusiveMaximumTimestamp) &&\n IsOptionalNumber(schema.exclusiveMinimumTimestamp) &&\n IsOptionalNumber(schema.maximumTimestamp) &&\n IsOptionalNumber(schema.minimumTimestamp) &&\n IsOptionalNumber(schema.multipleOfTimestamp));\n }\n TypeGuard.TDate = TDate;\n /** Returns true if the given value is TFunction */\n function TFunction(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Function') &&\n schema.type === 'Function' &&\n IsOptionalString(schema.$id) &&\n ValueGuard.IsArray(schema.parameters) &&\n schema.parameters.every(schema => TSchema(schema)) &&\n TSchema(schema.returns));\n }\n TypeGuard.TFunction = TFunction;\n /** Returns true if the given value is TInteger */\n function TInteger(schema) {\n return (TKindOf(schema, 'Integer') &&\n schema.type === 'integer' &&\n IsOptionalString(schema.$id) &&\n IsOptionalNumber(schema.exclusiveMaximum) &&\n IsOptionalNumber(schema.exclusiveMinimum) &&\n IsOptionalNumber(schema.maximum) &&\n IsOptionalNumber(schema.minimum) &&\n IsOptionalNumber(schema.multipleOf));\n }\n TypeGuard.TInteger = TInteger;\n /** Returns true if the given value is TIntersect */\n function TIntersect(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Intersect') &&\n (ValueGuard.IsString(schema.type) && schema.type !== 'object' ? false : true) &&\n ValueGuard.IsArray(schema.allOf) &&\n schema.allOf.every(schema => TSchema(schema) && !TTransform(schema)) &&\n IsOptionalString(schema.type) &&\n (IsOptionalBoolean(schema.unevaluatedProperties) || IsOptionalSchema(schema.unevaluatedProperties)) &&\n IsOptionalString(schema.$id));\n }\n TypeGuard.TIntersect = TIntersect;\n /** Returns true if the given value is TIterator */\n function TIterator(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Iterator') &&\n schema.type === 'Iterator' &&\n IsOptionalString(schema.$id) &&\n TSchema(schema.items));\n }\n TypeGuard.TIterator = TIterator;\n /** Returns true if the given value is a TKind with the given name. */\n function TKindOf(schema, kind) {\n return TKind(schema) && schema[exports.Kind] === kind;\n }\n TypeGuard.TKindOf = TKindOf;\n /** Returns true if the given value is TKind */\n function TKind(schema) {\n return ValueGuard.IsObject(schema) && exports.Kind in schema && ValueGuard.IsString(schema[exports.Kind]);\n }\n TypeGuard.TKind = TKind;\n /** Returns true if the given value is TLiteral<string> */\n function TLiteralString(schema) {\n return TLiteral(schema) && ValueGuard.IsString(schema.const);\n }\n TypeGuard.TLiteralString = TLiteralString;\n /** Returns true if the given value is TLiteral<number> */\n function TLiteralNumber(schema) {\n return TLiteral(schema) && ValueGuard.IsNumber(schema.const);\n }\n TypeGuard.TLiteralNumber = TLiteralNumber;\n /** Returns true if the given value is TLiteral<boolean> */\n function TLiteralBoolean(schema) {\n return TLiteral(schema) && ValueGuard.IsBoolean(schema.const);\n }\n TypeGuard.TLiteralBoolean = TLiteralBoolean;\n /** Returns true if the given value is TLiteral */\n function TLiteral(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Literal') &&\n IsOptionalString(schema.$id) && (ValueGuard.IsBoolean(schema.const) ||\n ValueGuard.IsNumber(schema.const) ||\n ValueGuard.IsString(schema.const)));\n }\n TypeGuard.TLiteral = TLiteral;\n /** Returns true if the given value is TNever */\n function TNever(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Never') &&\n ValueGuard.IsObject(schema.not) &&\n Object.getOwnPropertyNames(schema.not).length === 0);\n }\n TypeGuard.TNever = TNever;\n /** Returns true if the given value is TNot */\n function TNot(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Not') &&\n TSchema(schema.not));\n }\n TypeGuard.TNot = TNot;\n /** Returns true if the given value is TNull */\n function TNull(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Null') &&\n schema.type === 'null' &&\n IsOptionalString(schema.$id));\n }\n TypeGuard.TNull = TNull;\n /** Returns true if the given value is TNumber */\n function TNumber(schema) {\n return (TKindOf(schema, 'Number') &&\n schema.type === 'number' &&\n IsOptionalString(schema.$id) &&\n IsOptionalNumber(schema.exclusiveMaximum) &&\n IsOptionalNumber(schema.exclusiveMinimum) &&\n IsOptionalNumber(schema.maximum) &&\n IsOptionalNumber(schema.minimum) &&\n IsOptionalNumber(schema.multipleOf));\n }\n TypeGuard.TNumber = TNumber;\n /** Returns true if the given value is TObject */\n function TObject(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Object') &&\n schema.type === 'object' &&\n IsOptionalString(schema.$id) &&\n ValueGuard.IsObject(schema.properties) &&\n IsAdditionalProperties(schema.additionalProperties) &&\n IsOptionalNumber(schema.minProperties) &&\n IsOptionalNumber(schema.maxProperties) &&\n Object.entries(schema.properties).every(([key, schema]) => IsControlCharacterFree(key) && TSchema(schema)));\n }\n TypeGuard.TObject = TObject;\n /** Returns true if the given value is TPromise */\n function TPromise(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Promise') &&\n schema.type === 'Promise' &&\n IsOptionalString(schema.$id) &&\n TSchema(schema.item));\n }\n TypeGuard.TPromise = TPromise;\n /** Returns true if the given value is TRecord */\n function TRecord(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Record') &&\n schema.type === 'object' &&\n IsOptionalString(schema.$id) &&\n IsAdditionalProperties(schema.additionalProperties) &&\n ValueGuard.IsObject(schema.patternProperties) &&\n ((schema) => {\n const keys = Object.getOwnPropertyNames(schema.patternProperties);\n return (keys.length === 1 &&\n IsPattern(keys[0]) &&\n ValueGuard.IsObject(schema.patternProperties) &&\n TSchema(schema.patternProperties[keys[0]]));\n })(schema));\n }\n TypeGuard.TRecord = TRecord;\n /** Returns true if this value is TRecursive */\n function TRecursive(schema) {\n return ValueGuard.IsObject(schema) && exports.Hint in schema && schema[exports.Hint] === 'Recursive';\n }\n TypeGuard.TRecursive = TRecursive;\n /** Returns true if the given value is TRef */\n function TRef(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Ref') &&\n IsOptionalString(schema.$id) &&\n ValueGuard.IsString(schema.$ref));\n }\n TypeGuard.TRef = TRef;\n /** Returns true if the given value is TString */\n function TString(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'String') &&\n schema.type === 'string' &&\n IsOptionalString(schema.$id) &&\n IsOptionalNumber(schema.minLength) &&\n IsOptionalNumber(schema.maxLength) &&\n IsOptionalPattern(schema.pattern) &&\n IsOptionalFormat(schema.format));\n }\n TypeGuard.TString = TString;\n /** Returns true if the given value is TSymbol */\n function TSymbol(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Symbol') &&\n schema.type === 'symbol' &&\n IsOptionalString(schema.$id));\n }\n TypeGuard.TSymbol = TSymbol;\n /** Returns true if the given value is TTemplateLiteral */\n function TTemplateLiteral(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'TemplateLiteral') &&\n schema.type === 'string' &&\n ValueGuard.IsString(schema.pattern) &&\n schema.pattern[0] === '^' &&\n schema.pattern[schema.pattern.length - 1] === '$');\n }\n TypeGuard.TTemplateLiteral = TTemplateLiteral;\n /** Returns true if the given value is TThis */\n function TThis(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'This') &&\n IsOptionalString(schema.$id) &&\n ValueGuard.IsString(schema.$ref));\n }\n TypeGuard.TThis = TThis;\n /** Returns true of this value is TTransform */\n function TTransform(schema) {\n return ValueGuard.IsObject(schema) && exports.Transform in schema;\n }\n TypeGuard.TTransform = TTransform;\n /** Returns true if the given value is TTuple */\n function TTuple(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Tuple') &&\n schema.type === 'array' &&\n IsOptionalString(schema.$id) &&\n ValueGuard.IsNumber(schema.minItems) &&\n ValueGuard.IsNumber(schema.maxItems) &&\n schema.minItems === schema.maxItems &&\n (( // empty\n ValueGuard.IsUndefined(schema.items) &&\n ValueGuard.IsUndefined(schema.additionalItems) &&\n schema.minItems === 0) || (ValueGuard.IsArray(schema.items) &&\n schema.items.every(schema => TSchema(schema)))));\n }\n TypeGuard.TTuple = TTuple;\n /** Returns true if the given value is TUndefined */\n function TUndefined(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Undefined') &&\n schema.type === 'undefined' &&\n IsOptionalString(schema.$id));\n }\n TypeGuard.TUndefined = TUndefined;\n /** Returns true if the given value is TUnion<Literal<string | number>[]> */\n function TUnionLiteral(schema) {\n return TUnion(schema) && schema.anyOf.every((schema) => TLiteralString(schema) || TLiteralNumber(schema));\n }\n TypeGuard.TUnionLiteral = TUnionLiteral;\n /** Returns true if the given value is TUnion */\n function TUnion(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Union') &&\n IsOptionalString(schema.$id) &&\n ValueGuard.IsObject(schema) &&\n ValueGuard.IsArray(schema.anyOf) &&\n schema.anyOf.every(schema => TSchema(schema)));\n }\n TypeGuard.TUnion = TUnion;\n /** Returns true if the given value is TUint8Array */\n function TUint8Array(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Uint8Array') &&\n schema.type === 'Uint8Array' &&\n IsOptionalString(schema.$id) &&\n IsOptionalNumber(schema.minByteLength) &&\n IsOptionalNumber(schema.maxByteLength));\n }\n TypeGuard.TUint8Array = TUint8Array;\n /** Returns true if the given value is TUnknown */\n function TUnknown(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Unknown') &&\n IsOptionalString(schema.$id));\n }\n TypeGuard.TUnknown = TUnknown;\n /** Returns true if the given value is a raw TUnsafe */\n function TUnsafe(schema) {\n return TKindOf(schema, 'Unsafe');\n }\n TypeGuard.TUnsafe = TUnsafe;\n /** Returns true if the given value is TVoid */\n function TVoid(schema) {\n // prettier-ignore\n return (TKindOf(schema, 'Void') &&\n schema.type === 'void' &&\n IsOptionalString(schema.$id));\n }\n TypeGuard.TVoid = TVoid;\n /** Returns true if this value has a Readonly symbol */\n function TReadonly(schema) {\n return ValueGuard.IsObject(schema) && schema[exports.Readonly] === 'Readonly';\n }\n TypeGuard.TReadonly = TReadonly;\n /** Returns true if this value has a Optional symbol */\n function TOptional(schema) {\n return ValueGuard.IsObject(schema) && schema[exports.Optional] === 'Optional';\n }\n TypeGuard.TOptional = TOptional;\n /** Returns true if the given value is TSchema */\n function TSchema(schema) {\n // prettier-ignore\n return (ValueGuard.IsObject(schema)) && (TAny(schema) ||\n TArray(schema) ||\n TBoolean(schema) ||\n TBigInt(schema) ||\n TAsyncIterator(schema) ||\n TConstructor(schema) ||\n TDate(schema) ||\n TFunction(schema) ||\n TInteger(schema) ||\n TIntersect(schema) ||\n TIterator(schema) ||\n TLiteral(schema) ||\n TNever(schema) ||\n TNot(schema) ||\n TNull(schema) ||\n TNumber(schema) ||\n TObject(schema) ||\n TPromise(schema) ||\n TRecord(schema) ||\n TRef(schema) ||\n TString(schema) ||\n TSymbol(schema) ||\n TTemplateLiteral(schema) ||\n TThis(schema) ||\n TTuple(schema) ||\n TUndefined(schema) ||\n TUnion(schema) ||\n TUint8Array(schema) ||\n TUnknown(schema) ||\n TUnsafe(schema) ||\n TVoid(schema) ||\n (TKind(schema) && TypeRegistry.Has(schema[exports.Kind])));\n }\n TypeGuard.TSchema = TSchema;\n})(TypeGuard || (exports.TypeGuard = TypeGuard = {}));\n// --------------------------------------------------------------------------\n// ExtendsUndefined\n// --------------------------------------------------------------------------\n/** Fast undefined check used for properties of type undefined */\nvar ExtendsUndefined;\n(function (ExtendsUndefined) {\n function Check(schema) {\n return schema[exports.Kind] === 'Intersect'\n ? schema.allOf.every((schema) => Check(schema))\n : schema[exports.Kind] === 'Union'\n ? schema.anyOf.some((schema) => Check(schema))\n : schema[exports.Kind] === 'Undefined'\n ? true\n : schema[exports.Kind] === 'Not'\n ? !Check(schema.not)\n : false;\n }\n ExtendsUndefined.Check = Check;\n})(ExtendsUndefined || (exports.ExtendsUndefined = ExtendsUndefined = {}));\n// --------------------------------------------------------------------------\n// TypeExtends\n// --------------------------------------------------------------------------\nclass TypeExtendsError extends TypeBoxError {\n}\nexports.TypeExtendsError = TypeExtendsError;\nvar TypeExtendsResult;\n(function (TypeExtendsResult) {\n TypeExtendsResult[TypeExtendsResult[\"Union\"] = 0] = \"Union\";\n TypeExtendsResult[TypeExtendsResult[\"True\"] = 1] = \"True\";\n TypeExtendsResult[TypeExtendsResult[\"False\"] = 2] = \"False\";\n})(TypeExtendsResult || (exports.TypeExtendsResult = TypeExtendsResult = {}));\nvar TypeExtends;\n(function (TypeExtends) {\n // --------------------------------------------------------------------------\n // IntoBooleanResult\n // --------------------------------------------------------------------------\n function IntoBooleanResult(result) {\n return result === TypeExtendsResult.False ? result : TypeExtendsResult.True;\n }\n // --------------------------------------------------------------------------\n // Throw\n // --------------------------------------------------------------------------\n function Throw(message) {\n throw new TypeExtendsError(message);\n }\n // --------------------------------------------------------------------------\n // StructuralRight\n // --------------------------------------------------------------------------\n function IsStructuralRight(right) {\n // prettier-ignore\n return (TypeGuard.TNever(right) ||\n TypeGuard.TIntersect(right) ||\n TypeGuard.TUnion(right) ||\n TypeGuard.TUnknown(right) ||\n TypeGuard.TAny(right));\n }\n function StructuralRight(left, right) {\n // prettier-ignore\n return (TypeGuard.TNever(right) ? TNeverRight(left, right) :\n TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :\n TypeGuard.TUnion(right) ? TUnionRight(left, right) :\n TypeGuard.TUnknown(right) ? TUnknownRight(left, right) :\n TypeGuard.TAny(right) ? TAnyRight(left, right) :\n Throw('StructuralRight'));\n }\n // --------------------------------------------------------------------------\n // Any\n // --------------------------------------------------------------------------\n function TAnyRight(left, right) {\n return TypeExtendsResult.True;\n }\n function TAny(left, right) {\n // prettier-ignore\n return (TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :\n (TypeGuard.TUnion(right) && right.anyOf.some((schema) => TypeGuard.TAny(schema) || TypeGuard.TUnknown(schema))) ? TypeExtendsResult.True :\n TypeGuard.TUnion(right) ? TypeExtendsResult.Union :\n TypeGuard.TUnknown(right) ? TypeExtendsResult.True :\n TypeGuard.TAny(right) ? TypeExtendsResult.True :\n TypeExtendsResult.Union);\n }\n // --------------------------------------------------------------------------\n // Array\n // --------------------------------------------------------------------------\n function TArrayRight(left, right) {\n // prettier-ignore\n return (TypeGuard.TUnknown(left) ? TypeExtendsResult.False :\n TypeGuard.TAny(left) ? TypeExtendsResult.Union :\n TypeGuard.TNever(left) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n function TArray(left, right) {\n // prettier-ignore\n return (TypeGuard.TObject(right) && IsObjectArrayLike(right) ? TypeExtendsResult.True :\n IsStructuralRight(right) ? StructuralRight(left, right) :\n !TypeGuard.TArray(right) ? TypeExtendsResult.False :\n IntoBooleanResult(Visit(left.items, right.items)));\n }\n // --------------------------------------------------------------------------\n // AsyncIterator\n // --------------------------------------------------------------------------\n function TAsyncIterator(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n !TypeGuard.TAsyncIterator(right) ? TypeExtendsResult.False :\n IntoBooleanResult(Visit(left.items, right.items)));\n }\n // --------------------------------------------------------------------------\n // BigInt\n // --------------------------------------------------------------------------\n function TBigInt(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeGuard.TBigInt(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Boolean\n // --------------------------------------------------------------------------\n function TBooleanRight(left, right) {\n return TypeGuard.TLiteral(left) && ValueGuard.IsBoolean(left.const) ? TypeExtendsResult.True : TypeGuard.TBoolean(left) ? TypeExtendsResult.True : TypeExtendsResult.False;\n }\n function TBoolean(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeGuard.TBoolean(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Constructor\n // --------------------------------------------------------------------------\n function TConstructor(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n !TypeGuard.TConstructor(right) ? TypeExtendsResult.False :\n left.parameters.length > right.parameters.length ? TypeExtendsResult.False :\n (!left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === TypeExtendsResult.True)) ? TypeExtendsResult.False :\n IntoBooleanResult(Visit(left.returns, right.returns)));\n }\n // --------------------------------------------------------------------------\n // Date\n // --------------------------------------------------------------------------\n function TDate(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeGuard.TDate(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Function\n // --------------------------------------------------------------------------\n function TFunction(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n !TypeGuard.TFunction(right) ? TypeExtendsResult.False :\n left.parameters.length > right.parameters.length ? TypeExtendsResult.False :\n (!left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === TypeExtendsResult.True)) ? TypeExtendsResult.False :\n IntoBooleanResult(Visit(left.returns, right.returns)));\n }\n // --------------------------------------------------------------------------\n // Integer\n // --------------------------------------------------------------------------\n function TIntegerRight(left, right) {\n // prettier-ignore\n return (TypeGuard.TLiteral(left) && ValueGuard.IsNumber(left.const) ? TypeExtendsResult.True :\n TypeGuard.TNumber(left) || TypeGuard.TInteger(left) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n function TInteger(left, right) {\n // prettier-ignore\n return (TypeGuard.TInteger(right) || TypeGuard.TNumber(right) ? TypeExtendsResult.True :\n IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Intersect\n // --------------------------------------------------------------------------\n function TIntersectRight(left, right) {\n // prettier-ignore\n return right.allOf.every((schema) => Visit(left, schema) === TypeExtendsResult.True)\n ? TypeExtendsResult.True\n : TypeExtendsResult.False;\n }\n function TIntersect(left, right) {\n // prettier-ignore\n return left.allOf.some((schema) => Visit(schema, right) === TypeExtendsResult.True)\n ? TypeExtendsResult.True\n : TypeExtendsResult.False;\n }\n // --------------------------------------------------------------------------\n // Iterator\n // --------------------------------------------------------------------------\n function TIterator(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n !TypeGuard.TIterator(right) ? TypeExtendsResult.False :\n IntoBooleanResult(Visit(left.items, right.items)));\n }\n // --------------------------------------------------------------------------\n // Literal\n // --------------------------------------------------------------------------\n function TLiteral(left, right) {\n // prettier-ignore\n return (TypeGuard.TLiteral(right) && right.const === left.const ? TypeExtendsResult.True :\n IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeGuard.TString(right) ? TStringRight(left, right) :\n TypeGuard.TNumber(right) ? TNumberRight(left, right) :\n TypeGuard.TInteger(right) ? TIntegerRight(left, right) :\n TypeGuard.TBoolean(right) ? TBooleanRight(left, right) :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Never\n // --------------------------------------------------------------------------\n function TNeverRight(left, right) {\n return TypeExtendsResult.False;\n }\n function TNever(left, right) {\n return TypeExtendsResult.True;\n }\n // --------------------------------------------------------------------------\n // Not\n // --------------------------------------------------------------------------\n function UnwrapTNot(schema) {\n let [current, depth] = [schema, 0];\n while (true) {\n if (!TypeGuard.TNot(current))\n break;\n current = current.not;\n depth += 1;\n }\n return depth % 2 === 0 ? current : exports.Type.Unknown();\n }\n function TNot(left, right) {\n // TypeScript has no concept of negated types, and attempts to correctly check the negated\n // type at runtime would put TypeBox at odds with TypeScripts ability to statically infer\n // the type. Instead we unwrap to either unknown or T and continue evaluating.\n // prettier-ignore\n return (TypeGuard.TNot(left) ? Visit(UnwrapTNot(left), right) :\n TypeGuard.TNot(right) ? Visit(left, UnwrapTNot(right)) :\n Throw('Invalid fallthrough for Not'));\n }\n // --------------------------------------------------------------------------\n // Null\n // --------------------------------------------------------------------------\n function TNull(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeGuard.TNull(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Number\n // --------------------------------------------------------------------------\n function TNumberRight(left, right) {\n // prettier-ignore\n return (TypeGuard.TLiteralNumber(left) ? TypeExtendsResult.True :\n TypeGuard.TNumber(left) || TypeGuard.TInteger(left) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n function TNumber(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeGuard.TInteger(right) || TypeGuard.TNumber(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Object\n // --------------------------------------------------------------------------\n function IsObjectPropertyCount(schema, count) {\n return Object.getOwnPropertyNames(schema.properties).length === count;\n }\n function IsObjectStringLike(schema) {\n return IsObjectArrayLike(schema);\n }\n function IsObjectSymbolLike(schema) {\n // prettier-ignore\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'description' in schema.properties && TypeGuard.TUnion(schema.properties.description) && schema.properties.description.anyOf.length === 2 && ((TypeGuard.TString(schema.properties.description.anyOf[0]) &&\n TypeGuard.TUndefined(schema.properties.description.anyOf[1])) || (TypeGuard.TString(schema.properties.description.anyOf[1]) &&\n TypeGuard.TUndefined(schema.properties.description.anyOf[0]))));\n }\n function IsObjectNumberLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n }\n function IsObjectBooleanLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n }\n function IsObjectBigIntLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n }\n function IsObjectDateLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n }\n function IsObjectUint8ArrayLike(schema) {\n return IsObjectArrayLike(schema);\n }\n function IsObjectFunctionLike(schema) {\n const length = exports.Type.Number();\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(Visit(schema.properties['length'], length)) === TypeExtendsResult.True);\n }\n function IsObjectConstructorLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n }\n function IsObjectArrayLike(schema) {\n const length = exports.Type.Number();\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(Visit(schema.properties['length'], length)) === TypeExtendsResult.True);\n }\n function IsObjectPromiseLike(schema) {\n const then = exports.Type.Function([exports.Type.Any()], exports.Type.Any());\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'then' in schema.properties && IntoBooleanResult(Visit(schema.properties['then'], then)) === TypeExtendsResult.True);\n }\n // --------------------------------------------------------------------------\n // Property\n // --------------------------------------------------------------------------\n function Property(left, right) {\n // prettier-ignore\n return (Visit(left, right) === TypeExtendsResult.False ? TypeExtendsResult.False :\n TypeGuard.TOptional(left) && !TypeGuard.TOptional(right) ? TypeExtendsResult.False :\n TypeExtendsResult.True);\n }\n function TObjectRight(left, right) {\n // prettier-ignore\n return (TypeGuard.TUnknown(left) ? TypeExtendsResult.False :\n TypeGuard.TAny(left) ? TypeExtendsResult.Union : (TypeGuard.TNever(left) ||\n (TypeGuard.TLiteralString(left) && IsObjectStringLike(right)) ||\n (TypeGuard.TLiteralNumber(left) && IsObjectNumberLike(right)) ||\n (TypeGuard.TLiteralBoolean(left) && IsObjectBooleanLike(right)) ||\n (TypeGuard.TSymbol(left) && IsObjectSymbolLike(right)) ||\n (TypeGuard.TBigInt(left) && IsObjectBigIntLike(right)) ||\n (TypeGuard.TString(left) && IsObjectStringLike(right)) ||\n (TypeGuard.TSymbol(left) && IsObjectSymbolLike(right)) ||\n (TypeGuard.TNumber(left) && IsObjectNumberLike(right)) ||\n (TypeGuard.TInteger(left) && IsObjectNumberLike(right)) ||\n (TypeGuard.TBoolean(left) && IsObjectBooleanLike(right)) ||\n (TypeGuard.TUint8Array(left) && IsObjectUint8ArrayLike(right)) ||\n (TypeGuard.TDate(left) && IsObjectDateLike(right)) ||\n (TypeGuard.TConstructor(left) && IsObjectConstructorLike(right)) ||\n (TypeGuard.TFunction(left) && IsObjectFunctionLike(right))) ? TypeExtendsResult.True :\n (TypeGuard.TRecord(left) && TypeGuard.TString(RecordKey(left))) ? (() => {\n // When expressing a Record with literal key values, the Record is converted into a Object with\n // the Hint assigned as `Record`. This is used to invert the extends logic.\n return right[exports.Hint] === 'Record' ? TypeExtendsResult.True : TypeExtendsResult.False;\n })() :\n (TypeGuard.TRecord(left) && TypeGuard.TNumber(RecordKey(left))) ? (() => {\n return IsObjectPropertyCount(right, 0)\n ? TypeExtendsResult.True\n : TypeExtendsResult.False;\n })() :\n TypeExtendsResult.False);\n }\n function TObject(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n !TypeGuard.TObject(right) ? TypeExtendsResult.False :\n (() => {\n for (const key of Object.getOwnPropertyNames(right.properties)) {\n if (!(key in left.properties) && !TypeGuard.TOptional(right.properties[key])) {\n return TypeExtendsResult.False;\n }\n if (TypeGuard.TOptional(right.properties[key])) {\n return TypeExtendsResult.True;\n }\n if (Property(left.properties[key], right.properties[key]) === TypeExtendsResult.False) {\n return TypeExtendsResult.False;\n }\n }\n return TypeExtendsResult.True;\n })());\n }\n // --------------------------------------------------------------------------\n // Promise\n // --------------------------------------------------------------------------\n function TPromise(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) && IsObjectPromiseLike(right) ? TypeExtendsResult.True :\n !TypeGuard.TPromise(right) ? TypeExtendsResult.False :\n IntoBooleanResult(Visit(left.item, right.item)));\n }\n // --------------------------------------------------------------------------\n // Record\n // --------------------------------------------------------------------------\n function RecordKey(schema) {\n // prettier-ignore\n return (exports.PatternNumberExact in schema.patternProperties ? exports.Type.Number() :\n exports.PatternStringExact in schema.patternProperties ? exports.Type.String() :\n Throw('Unknown record key pattern'));\n }\n function RecordValue(schema) {\n // prettier-ignore\n return (exports.PatternNumberExact in schema.patternProperties ? schema.patternProperties[exports.PatternNumberExact] :\n exports.PatternStringExact in schema.patternProperties ? schema.patternProperties[exports.PatternStringExact] :\n Throw('Unable to get record value schema'));\n }\n function TRecordRight(left, right) {\n const [Key, Value] = [RecordKey(right), RecordValue(right)];\n // prettier-ignore\n return ((TypeGuard.TLiteralString(left) && TypeGuard.TNumber(Key) && IntoBooleanResult(Visit(left, Value)) === TypeExtendsResult.True) ? TypeExtendsResult.True :\n TypeGuard.TUint8Array(left) && TypeGuard.TNumber(Key) ? Visit(left, Value) :\n TypeGuard.TString(left) && TypeGuard.TNumber(Key) ? Visit(left, Value) :\n TypeGuard.TArray(left) && TypeGuard.TNumber(Key) ? Visit(left, Value) :\n TypeGuard.TObject(left) ? (() => {\n for (const key of Object.getOwnPropertyNames(left.properties)) {\n if (Property(Value, left.properties[key]) === TypeExtendsResult.False) {\n return TypeExtendsResult.False;\n }\n }\n return TypeExtendsResult.True;\n })() :\n TypeExtendsResult.False);\n }\n function TRecord(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n !TypeGuard.TRecord(right) ? TypeExtendsResult.False :\n Visit(RecordValue(left), RecordValue(right)));\n }\n // --------------------------------------------------------------------------\n // String\n // --------------------------------------------------------------------------\n function TStringRight(left, right) {\n // prettier-ignore\n return (TypeGuard.TLiteral(left) && ValueGuard.IsString(left.const) ? TypeExtendsResult.True :\n TypeGuard.TString(left) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n function TString(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeGuard.TString(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Symbol\n // --------------------------------------------------------------------------\n function TSymbol(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeGuard.TSymbol(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // TemplateLiteral\n // --------------------------------------------------------------------------\n function TTemplateLiteral(left, right) {\n // TemplateLiteral types are resolved to either unions for finite expressions or string\n // for infinite expressions. Here we call to TemplateLiteralResolver to resolve for\n // either type and continue evaluating.\n // prettier-ignore\n return (TypeGuard.TTemplateLiteral(left) ? Visit(TemplateLiteralResolver.Resolve(left), right) :\n TypeGuard.TTemplateLiteral(right) ? Visit(left, TemplateLiteralResolver.Resolve(right)) :\n Throw('Invalid fallthrough for TemplateLiteral'));\n }\n // --------------------------------------------------------------------------\n // Tuple\n // --------------------------------------------------------------------------\n function IsArrayOfTuple(left, right) {\n // prettier-ignore\n return (TypeGuard.TArray(right) &&\n left.items !== undefined &&\n left.items.every((schema) => Visit(schema, right.items) === TypeExtendsResult.True));\n }\n function TTupleRight(left, right) {\n // prettier-ignore\n return (TypeGuard.TNever(left) ? TypeExtendsResult.True :\n TypeGuard.TUnknown(left) ? TypeExtendsResult.False :\n TypeGuard.TAny(left) ? TypeExtendsResult.Union :\n TypeExtendsResult.False);\n }\n function TTuple(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) && IsObjectArrayLike(right) ? TypeExtendsResult.True :\n TypeGuard.TArray(right) && IsArrayOfTuple(left, right) ? TypeExtendsResult.True :\n !TypeGuard.TTuple(right) ? TypeExtendsResult.False :\n (ValueGuard.IsUndefined(left.items) && !ValueGuard.IsUndefined(right.items)) || (!ValueGuard.IsUndefined(left.items) && ValueGuard.IsUndefined(right.items)) ? TypeExtendsResult.False :\n (ValueGuard.IsUndefined(left.items) && !ValueGuard.IsUndefined(right.items)) ? TypeExtendsResult.True :\n left.items.every((schema, index) => Visit(schema, right.items[index]) === TypeExtendsResult.True) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Uint8Array\n // --------------------------------------------------------------------------\n function TUint8Array(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeGuard.TUint8Array(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Undefined\n // --------------------------------------------------------------------------\n function TUndefined(left, right) {\n // prettier-ignore\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TRecord(right) ? TRecordRight(left, right) :\n TypeGuard.TVoid(right) ? VoidRight(left, right) :\n TypeGuard.TUndefined(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Union\n // --------------------------------------------------------------------------\n function TUnionRight(left, right) {\n // prettier-ignore\n return right.anyOf.some((schema) => Visit(left, schema) === TypeExtendsResult.True)\n ? TypeExtendsResult.True\n : TypeExtendsResult.False;\n }\n function TUnion(left, right) {\n // prettier-ignore\n return left.anyOf.every((schema) => Visit(schema, right) === TypeExtendsResult.True)\n ? TypeExtendsResult.True\n : TypeExtendsResult.False;\n }\n // --------------------------------------------------------------------------\n // Unknown\n // --------------------------------------------------------------------------\n function TUnknownRight(left, right) {\n return TypeExtendsResult.True;\n }\n function TUnknown(left, right) {\n // prettier-ignore\n return (TypeGuard.TNever(right) ? TNeverRight(left, right) :\n TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :\n TypeGuard.TUnion(right) ? TUnionRight(left, right) :\n TypeGuard.TAny(right) ? TAnyRight(left, right) :\n TypeGuard.TString(right) ? TStringRight(left, right) :\n TypeGuard.TNumber(right) ? TNumberRight(left, right) :\n TypeGuard.TInteger(right) ? TIntegerRight(left, right) :\n TypeGuard.TBoolean(right) ? TBooleanRight(left, right) :\n TypeGuard.TArray(right) ? TArrayRight(left, right) :\n TypeGuard.TTuple(right) ? TTupleRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TUnknown(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False);\n }\n // --------------------------------------------------------------------------\n // Void\n // --------------------------------------------------------------------------\n function VoidRight(left, right) {\n // prettier-ignore\n return TypeGuard.TUndefined(left) ? TypeExtendsResult.True :\n TypeGuard.TUndefined(left) ? TypeExtendsResult.True :\n TypeExtendsResult.False;\n }\n function TVoid(left, right) {\n // prettier-ignore\n return TypeGuard.TIntersect(right) ? TIntersectRight(left, right) :\n TypeGuard.TUnion(right) ? TUnionRight(left, right) :\n TypeGuard.TUnknown(right) ? TUnknownRight(left, right) :\n TypeGuard.TAny(right) ? TAnyRight(left, right) :\n TypeGuard.TObject(right) ? TObjectRight(left, right) :\n TypeGuard.TVoid(right) ? TypeExtendsResult.True :\n TypeExtendsResult.False;\n }\n function Visit(left, right) {\n // prettier-ignore\n return (\n // resolvable\n (TypeGuard.TTemplateLiteral(left) || TypeGuard.TTemplateLiteral(right)) ? TTemplateLiteral(left, right) :\n (TypeGuard.TNot(left) || TypeGuard.TNot(right)) ? TNot(left, right) :\n // standard\n TypeGuard.TAny(left) ? TAny(left, right) :\n TypeGuard.TArray(left) ? TArray(left, right) :\n TypeGuard.TBigInt(left) ? TBigInt(left, right) :\n TypeGuard.TBoolean(left) ? TBoolean(left, right) :\n TypeGuard.TAsyncIterator(left) ? TAsyncIterator(left, right) :\n TypeGuard.TConstructor(left) ? TConstructor(left, right) :\n TypeGuard.TDate(left) ? TDate(left, right) :\n TypeGuard.TFunction(left) ? TFunction(left, right) :\n TypeGuard.TInteger(left) ? TInteger(left, right) :\n TypeGuard.TIntersect(left) ? TIntersect(left, right) :\n TypeGuard.TIterator(left) ? TIterator(left, right) :\n TypeGuard.TLiteral(left) ? TLiteral(left, right) :\n TypeGuard.TNever(left) ? TNever(left, right) :\n TypeGuard.TNull(left) ? TNull(left, right) :\n TypeGuard.TNumber(left) ? TNumber(left, right) :\n TypeGuard.TObject(left) ? TObject(left, right) :\n TypeGuard.TRecord(left) ? TRecord(left, right) :\n TypeGuard.TString(left) ? TString(left, right) :\n TypeGuard.TSymbol(left) ? TSymbol(left, right) :\n TypeGuard.TTuple(left) ? TTuple(left, right) :\n TypeGuard.TPromise(left) ? TPromise(left, right) :\n TypeGuard.TUint8Array(left) ? TUint8Array(left, right) :\n TypeGuard.TUndefined(left) ? TUndefined(left, right) :\n TypeGuard.TUnion(left) ? TUnion(left, right) :\n TypeGuard.TUnknown(left) ? TUnknown(left, right) :\n TypeGuard.TVoid(left) ? TVoid(left, right) :\n Throw(`Unknown left type operand '${left[exports.Kind]}'`));\n }\n function Extends(left, right) {\n return Visit(left, right);\n }\n TypeExtends.Extends = Extends;\n})(TypeExtends || (exports.TypeExtends = TypeExtends = {}));\n// --------------------------------------------------------------------------\n// TypeClone\n// --------------------------------------------------------------------------\n/** Specialized Clone for Types */\nvar TypeClone;\n(function (TypeClone) {\n function ArrayType(value) {\n return value.map((value) => Visit(value));\n }\n function DateType(value) {\n return new Date(value.getTime());\n }\n function Uint8ArrayType(value) {\n return new Uint8Array(value);\n }\n function ObjectType(value) {\n const clonedProperties = Object.getOwnPropertyNames(value).reduce((acc, key) => ({ ...acc, [key]: Visit(value[key]) }), {});\n const clonedSymbols = Object.getOwnPropertySymbols(value).reduce((acc, key) => ({ ...acc, [key]: Visit(value[key]) }), {});\n return { ...clonedProperties, ...clonedSymbols };\n }\n function Visit(value) {\n // prettier-ignore\n return (ValueGuard.IsArray(value) ? ArrayType(value) :\n ValueGuard.IsDate(value) ? DateType(value) :\n ValueGuard.IsUint8Array(value) ? Uint8ArrayType(value) :\n ValueGuard.IsObject(value) ? ObjectType(value) :\n value);\n }\n /** Clones a Rest */\n function Rest(schemas) {\n return schemas.map((schema) => Type(schema));\n }\n TypeClone.Rest = Rest;\n /** Clones a Type */\n function Type(schema, options = {}) {\n return { ...Visit(schema), ...options };\n }\n TypeClone.Type = Type;\n})(TypeClone || (exports.TypeClone = TypeClone = {}));\n// --------------------------------------------------------------------------\n// IndexedAccessor\n// --------------------------------------------------------------------------\nvar IndexedAccessor;\n(function (IndexedAccessor) {\n function OptionalUnwrap(schema) {\n return schema.map((schema) => {\n const { [exports.Optional]: _, ...clone } = TypeClone.Type(schema);\n return clone;\n });\n }\n function IsIntersectOptional(schema) {\n return schema.every((schema) => TypeGuard.TOptional(schema));\n }\n function IsUnionOptional(schema) {\n return schema.some((schema) => TypeGuard.TOptional(schema));\n }\n function ResolveIntersect(schema) {\n return IsIntersectOptional(schema.allOf) ? exports.Type.Optional(exports.Type.Intersect(OptionalUnwrap(schema.allOf))) : schema;\n }\n function ResolveUnion(schema) {\n return IsUnionOptional(schema.anyOf) ? exports.Type.Optional(exports.Type.Union(OptionalUnwrap(schema.anyOf))) : schema;\n }\n function ResolveOptional(schema) {\n // prettier-ignore\n return schema[exports.Kind] === 'Intersect' ? ResolveIntersect(schema) :\n schema[exports.Kind] === 'Union' ? ResolveUnion(schema) :\n schema;\n }\n function TIntersect(schema, key) {\n const resolved = schema.allOf.reduce((acc, schema) => {\n const indexed = Visit(schema, key);\n return indexed[exports.Kind] === 'Never' ? acc : [...acc, indexed];\n }, []);\n return ResolveOptional(exports.Type.Intersect(resolved));\n }\n function TUnion(schema, key) {\n const resolved = schema.anyOf.map((schema) => Visit(schema, key));\n return ResolveOptional(exports.Type.Union(resolved));\n }\n function TObject(schema, key) {\n const property = schema.properties[key];\n return ValueGuard.IsUndefined(property) ? exports.Type.Never() : exports.Type.Union([property]);\n }\n function TTuple(schema, key) {\n const items = schema.items;\n if (ValueGuard.IsUndefined(items))\n return exports.Type.Never();\n const element = items[key]; //\n if (ValueGuard.IsUndefined(element))\n return exports.Type.Never();\n return element;\n }\n function Visit(schema, key) {\n // prettier-ignore\n return schema[exports.Kind] === 'Intersect' ? TIntersect(schema, key) :\n schema[exports.Kind] === 'Union' ? TUnion(schema, key) :\n schema[exports.Kind] === 'Object' ? TObject(schema, key) :\n schema[exports.Kind] === 'Tuple' ? TTuple(schema, key) :\n exports.Type.Never();\n }\n function Resolve(schema, keys, options = {}) {\n const resolved = keys.map((key) => Visit(schema, key.toString()));\n return ResolveOptional(exports.Type.Union(resolved, options));\n }\n IndexedAccessor.Resolve = Resolve;\n})(IndexedAccessor || (exports.IndexedAccessor = IndexedAccessor = {}));\n// --------------------------------------------------------------------------\n// Intrinsic\n// --------------------------------------------------------------------------\nvar Intrinsic;\n(function (Intrinsic) {\n function Uncapitalize(value) {\n const [first, rest] = [value.slice(0, 1), value.slice(1)];\n return `${first.toLowerCase()}${rest}`;\n }\n function Capitalize(value) {\n const [first, rest] = [value.slice(0, 1), value.slice(1)];\n return `${first.toUpperCase()}${rest}`;\n }\n function Uppercase(value) {\n return value.toUpperCase();\n }\n function Lowercase(value) {\n return value.toLowerCase();\n }\n function IntrinsicTemplateLiteral(schema, mode) {\n // note: template literals require special runtime handling as they are encoded in string patterns.\n // This diverges from the mapped type which would otherwise map on the template literal kind.\n const expression = TemplateLiteralParser.ParseExact(schema.pattern);\n const finite = TemplateLiteralFinite.Check(expression);\n if (!finite)\n return { ...schema, pattern: IntrinsicLiteral(schema.pattern, mode) };\n const strings = [...TemplateLiteralGenerator.Generate(expression)];\n const literals = strings.map((value) => exports.Type.Literal(value));\n const mapped = IntrinsicRest(literals, mode);\n const union = exports.Type.Union(mapped);\n return exports.Type.TemplateLiteral([union]);\n }\n function IntrinsicLiteral(value, mode) {\n // prettier-ignore\n return typeof value === 'string' ? (mode === 'Uncapitalize' ? Uncapitalize(value) :\n mode === 'Capitalize' ? Capitalize(value) :\n mode === 'Uppercase' ? Uppercase(value) :\n mode === 'Lowercase' ? Lowercase(value) :\n value) : value.toString();\n }\n function IntrinsicRest(schema, mode) {\n if (schema.length === 0)\n return [];\n const [L, ...R] = schema;\n return [Map(L, mode), ...IntrinsicRest(R, mode)];\n }\n function Visit(schema, mode) {\n // prettier-ignore\n return TypeGuard.TTemplateLiteral(schema) ? IntrinsicTemplateLiteral(schema, mode) :\n TypeGuard.TUnion(schema) ? exports.Type.Union(IntrinsicRest(schema.anyOf, mode)) :\n TypeGuard.TLiteral(schema) ? exports.Type.Literal(IntrinsicLiteral(schema.const, mode)) :\n schema;\n }\n /** Applies an intrinsic string manipulation to the given type. */\n function Map(schema, mode) {\n return Visit(schema, mode);\n }\n Intrinsic.Map = Map;\n})(Intrinsic || (exports.Intrinsic = Intrinsic = {}));\n// --------------------------------------------------------------------------\n// ObjectMap\n// --------------------------------------------------------------------------\nvar ObjectMap;\n(function (ObjectMap) {\n function TIntersect(schema, callback) {\n // prettier-ignore\n return exports.Type.Intersect(schema.allOf.map((inner) => Visit(inner, callback)), { ...schema });\n }\n function TUnion(schema, callback) {\n // prettier-ignore\n return exports.Type.Union(schema.anyOf.map((inner) => Visit(inner, callback)), { ...schema });\n }\n function TObject(schema, callback) {\n return callback(schema);\n }\n function Visit(schema, callback) {\n // There are cases where users need to map objects with unregistered kinds. Using a TypeGuard here would\n // prevent sub schema mapping as unregistered kinds will not pass TSchema checks. This is notable in the\n // case of TObject where unregistered property kinds cause the TObject check to fail. As mapping is only\n // used for composition, we use explicit checks instead.\n // prettier-ignore\n return (schema[exports.Kind] === 'Intersect' ? TIntersect(schema, callback) :\n schema[exports.Kind] === 'Union' ? TUnion(schema, callback) :\n schema[exports.Kind] === 'Object' ? TObject(schema, callback) :\n schema);\n }\n function Map(schema, callback, options) {\n return { ...Visit(TypeClone.Type(schema), callback), ...options };\n }\n ObjectMap.Map = Map;\n})(ObjectMap || (exports.ObjectMap = ObjectMap = {}));\nvar KeyResolver;\n(function (KeyResolver) {\n function UnwrapPattern(key) {\n return key[0] === '^' && key[key.length - 1] === '$' ? key.slice(1, key.length - 1) : key;\n }\n function TIntersect(schema, options) {\n return schema.allOf.reduce((acc, schema) => [...acc, ...Visit(schema, options)], []);\n }\n function TUnion(schema, options) {\n const sets = schema.anyOf.map((inner) => Visit(inner, options));\n return [...sets.reduce((set, outer) => outer.map((key) => (sets.every((inner) => inner.includes(key)) ? set.add(key) : set))[0], new Set())];\n }\n function TObject(schema, options) {\n return Object.getOwnPropertyNames(schema.properties);\n }\n function TRecord(schema, options) {\n return options.includePatterns ? Object.getOwnPropertyNames(schema.patternProperties) : [];\n }\n function Visit(schema, options) {\n // prettier-ignore\n return (TypeGuard.TIntersect(schema) ? TIntersect(schema, options) :\n TypeGuard.TUnion(schema) ? TUnion(schema, options) :\n TypeGuard.TObject(schema) ? TObject(schema, options) :\n TypeGuard.TRecord(schema) ? TRecord(schema, options) :\n []);\n }\n /** Resolves an array of keys in this schema */\n function ResolveKeys(schema, options) {\n return [...new Set(Visit(schema, options))];\n }\n KeyResolver.ResolveKeys = ResolveKeys;\n /** Resolves a regular expression pattern matching all keys in this schema */\n function ResolvePattern(schema) {\n const keys = ResolveKeys(schema, { includePatterns: true });\n const pattern = keys.map((key) => `(${UnwrapPattern(key)})`);\n return `^(${pattern.join('|')})$`;\n }\n KeyResolver.ResolvePattern = ResolvePattern;\n})(KeyResolver || (exports.KeyResolver = KeyResolver = {}));\n// --------------------------------------------------------------------------\n// KeyArrayResolver\n// --------------------------------------------------------------------------\nclass KeyArrayResolverError extends TypeBoxError {\n}\nexports.KeyArrayResolverError = KeyArrayResolverError;\nvar KeyArrayResolver;\n(function (KeyArrayResolver) {\n /** Resolves an array of string[] keys from the given schema or array type. */\n function Resolve(schema) {\n // prettier-ignore\n return Array.isArray(schema) ? schema :\n TypeGuard.TUnionLiteral(schema) ? schema.anyOf.map((schema) => schema.const.toString()) :\n TypeGuard.TLiteral(schema) ? [schema.const] :\n TypeGuard.TTemplateLiteral(schema) ? (() => {\n const expression = TemplateLiteralParser.ParseExact(schema.pattern);\n if (!TemplateLiteralFinite.Check(expression))\n throw new KeyArrayResolverError('Cannot resolve keys from infinite template expression');\n return [...TemplateLiteralGenerator.Generate(expression)];\n })() : [];\n }\n KeyArrayResolver.Resolve = Resolve;\n})(KeyArrayResolver || (exports.KeyArrayResolver = KeyArrayResolver = {}));\n// --------------------------------------------------------------------------\n// UnionResolver\n// --------------------------------------------------------------------------\nvar UnionResolver;\n(function (UnionResolver) {\n function* TUnion(union) {\n for (const schema of union.anyOf) {\n if (schema[exports.Kind] === 'Union') {\n yield* TUnion(schema);\n }\n else {\n yield schema;\n }\n }\n }\n /** Returns a resolved union with interior unions flattened */\n function Resolve(union) {\n return exports.Type.Union([...TUnion(union)], { ...union });\n }\n UnionResolver.Resolve = Resolve;\n})(UnionResolver || (exports.UnionResolver = UnionResolver = {}));\n// --------------------------------------------------------------------------\n// TemplateLiteralPattern\n// --------------------------------------------------------------------------\nclass TemplateLiteralPatternError extends TypeBoxError {\n}\nexports.TemplateLiteralPatternError = TemplateLiteralPatternError;\nvar TemplateLiteralPattern;\n(function (TemplateLiteralPattern) {\n function Throw(message) {\n throw new TemplateLiteralPatternError(message);\n }\n function Escape(value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n function Visit(schema, acc) {\n // prettier-ignore\n return (TypeGuard.TTemplateLiteral(schema) ? schema.pattern.slice(1, schema.pattern.length - 1) :\n TypeGuard.TUnion(schema) ? `(${schema.anyOf.map((schema) => Visit(schema, acc)).join('|')})` :\n TypeGuard.TNumber(schema) ? `${acc}${exports.PatternNumber}` :\n TypeGuard.TInteger(schema) ? `${acc}${exports.PatternNumber}` :\n TypeGuard.TBigInt(schema) ? `${acc}${exports.PatternNumber}` :\n TypeGuard.TString(schema) ? `${acc}${exports.PatternString}` :\n TypeGuard.TLiteral(schema) ? `${acc}${Escape(schema.const.toString())}` :\n TypeGuard.TBoolean(schema) ? `${acc}${exports.PatternBoolean}` :\n Throw(`Unexpected Kind '${schema[exports.Kind]}'`));\n }\n function Create(kinds) {\n return `^${kinds.map((schema) => Visit(schema, '')).join('')}\\$`;\n }\n TemplateLiteralPattern.Create = Create;\n})(TemplateLiteralPattern || (exports.TemplateLiteralPattern = TemplateLiteralPattern = {}));\n// --------------------------------------------------------------------------------------\n// TemplateLiteralResolver\n// --------------------------------------------------------------------------------------\nvar TemplateLiteralResolver;\n(function (TemplateLiteralResolver) {\n /** Resolves a template literal as a TUnion */\n function Resolve(template) {\n const expression = TemplateLiteralParser.ParseExact(template.pattern);\n if (!TemplateLiteralFinite.Check(expression))\n return exports.Type.String();\n const literals = [...TemplateLiteralGenerator.Generate(expression)].map((value) => exports.Type.Literal(value));\n return exports.Type.Union(literals);\n }\n TemplateLiteralResolver.Resolve = Resolve;\n})(TemplateLiteralResolver || (exports.TemplateLiteralResolver = TemplateLiteralResolver = {}));\n// --------------------------------------------------------------------------------------\n// TemplateLiteralParser\n// --------------------------------------------------------------------------------------\nclass TemplateLiteralParserError extends TypeBoxError {\n}\nexports.TemplateLiteralParserError = TemplateLiteralParserError;\nvar TemplateLiteralParser;\n(function (TemplateLiteralParser) {\n function IsNonEscaped(pattern, index, char) {\n return pattern[index] === char && pattern.charCodeAt(index - 1) !== 92;\n }\n function IsOpenParen(pattern, index) {\n return IsNonEscaped(pattern, index, '(');\n }\n function IsCloseParen(pattern, index) {\n return IsNonEscaped(pattern, index, ')');\n }\n function IsSeparator(pattern, index) {\n return IsNonEscaped(pattern, index, '|');\n }\n function IsGroup(pattern) {\n if (!(IsOpenParen(pattern, 0) && IsCloseParen(pattern, pattern.length - 1)))\n return false;\n let count = 0;\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n count += 1;\n if (IsCloseParen(pattern, index))\n count -= 1;\n if (count === 0 && index !== pattern.length - 1)\n return false;\n }\n return true;\n }\n function InGroup(pattern) {\n return pattern.slice(1, pattern.length - 1);\n }\n function IsPrecedenceOr(pattern) {\n let count = 0;\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n count += 1;\n if (IsCloseParen(pattern, index))\n count -= 1;\n if (IsSeparator(pattern, index) && count === 0)\n return true;\n }\n return false;\n }\n function IsPrecedenceAnd(pattern) {\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n return true;\n }\n return false;\n }\n function Or(pattern) {\n let [count, start] = [0, 0];\n const expressions = [];\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n count += 1;\n if (IsCloseParen(pattern, index))\n count -= 1;\n if (IsSeparator(pattern, index) && count === 0) {\n const range = pattern.slice(start, index);\n if (range.length > 0)\n expressions.push(Parse(range));\n start = index + 1;\n }\n }\n const range = pattern.slice(start);\n if (range.length > 0)\n expressions.push(Parse(range));\n if (expressions.length === 0)\n return { type: 'const', const: '' };\n if (expressions.length === 1)\n return expressions[0];\n return { type: 'or', expr: expressions };\n }\n function And(pattern) {\n function Group(value, index) {\n if (!IsOpenParen(value, index))\n throw new TemplateLiteralParserError(`TemplateLiteralParser: Index must point to open parens`);\n let count = 0;\n for (let scan = index; scan < value.length; scan++) {\n if (IsOpenParen(value, scan))\n count += 1;\n if (IsCloseParen(value, scan))\n count -= 1;\n if (count === 0)\n return [index, scan];\n }\n throw new TemplateLiteralParserError(`TemplateLiteralParser: Unclosed group parens in expression`);\n }\n function Range(pattern, index) {\n for (let scan = index; scan < pattern.length; scan++) {\n if (IsOpenParen(pattern, scan))\n return [index, scan];\n }\n return [index, pattern.length];\n }\n const expressions = [];\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index)) {\n const [start, end] = Group(pattern, index);\n const range = pattern.slice(start, end + 1);\n expressions.push(Parse(range));\n index = end;\n }\n else {\n const [start, end] = Range(pattern, index);\n const range = pattern.slice(start, end);\n if (range.length > 0)\n expressions.push(Parse(range));\n index = end - 1;\n }\n }\n // prettier-ignore\n return (expressions.length === 0) ? { type: 'const', const: '' } :\n (expressions.length === 1) ? expressions[0] :\n { type: 'and', expr: expressions };\n }\n /** Parses a pattern and returns an expression tree */\n function Parse(pattern) {\n // prettier-ignore\n return IsGroup(pattern) ? Parse(InGroup(pattern)) :\n IsPrecedenceOr(pattern) ? Or(pattern) :\n IsPrecedenceAnd(pattern) ? And(pattern) :\n { type: 'const', const: pattern };\n }\n TemplateLiteralParser.Parse = Parse;\n /** Parses a pattern and strips forward and trailing ^ and $ */\n function ParseExact(pattern) {\n return Parse(pattern.slice(1, pattern.length - 1));\n }\n TemplateLiteralParser.ParseExact = ParseExact;\n})(TemplateLiteralParser || (exports.TemplateLiteralParser = TemplateLiteralParser = {}));\n// --------------------------------------------------------------------------------------\n// TemplateLiteralFinite\n// --------------------------------------------------------------------------------------\nclass TemplateLiteralFiniteError extends TypeBoxError {\n}\nexports.TemplateLiteralFiniteError = TemplateLiteralFiniteError;\nvar TemplateLiteralFinite;\n(function (TemplateLiteralFinite) {\n function Throw(message) {\n throw new TemplateLiteralFiniteError(message);\n }\n function IsNumber(expression) {\n // prettier-ignore\n return (expression.type === 'or' &&\n expression.expr.length === 2 &&\n expression.expr[0].type === 'const' &&\n expression.expr[0].const === '0' &&\n expression.expr[1].type === 'const' &&\n expression.expr[1].const === '[1-9][0-9]*');\n }\n function IsBoolean(expression) {\n // prettier-ignore\n return (expression.type === 'or' &&\n expression.expr.length === 2 &&\n expression.expr[0].type === 'const' &&\n expression.expr[0].const === 'true' &&\n expression.expr[1].type === 'const' &&\n expression.expr[1].const === 'false');\n }\n function IsString(expression) {\n return expression.type === 'const' && expression.const === '.*';\n }\n function Check(expression) {\n // prettier-ignore\n return IsBoolean(expression) ? true :\n IsNumber(expression) || IsString(expression) ? false :\n (expression.type === 'and') ? expression.expr.every((expr) => Check(expr)) :\n (expression.type === 'or') ? expression.expr.every((expr) => Check(expr)) :\n (expression.type === 'const') ? true :\n Throw(`Unknown expression type`);\n }\n TemplateLiteralFinite.Check = Check;\n})(TemplateLiteralFinite || (exports.TemplateLiteralFinite = TemplateLiteralFinite = {}));\n// --------------------------------------------------------------------------------------\n// TemplateLiteralGenerator\n// --------------------------------------------------------------------------------------\nclass TemplateLiteralGeneratorError extends TypeBoxError {\n}\nexports.TemplateLiteralGeneratorError = TemplateLiteralGeneratorError;\nvar TemplateLiteralGenerator;\n(function (TemplateLiteralGenerator) {\n function* Reduce(buffer) {\n if (buffer.length === 1)\n return yield* buffer[0];\n for (const left of buffer[0]) {\n for (const right of Reduce(buffer.slice(1))) {\n yield `${left}${right}`;\n }\n }\n }\n function* And(expression) {\n return yield* Reduce(expression.expr.map((expr) => [...Generate(expr)]));\n }\n function* Or(expression) {\n for (const expr of expression.expr)\n yield* Generate(expr);\n }\n function* Const(expression) {\n return yield expression.const;\n }\n function* Generate(expression) {\n // prettier-ignore\n return (expression.type === 'and' ? yield* And(expression) :\n expression.type === 'or' ? yield* Or(expression) :\n expression.type === 'const' ? yield* Const(expression) :\n (() => { throw new TemplateLiteralGeneratorError('Unknown expression'); })());\n }\n TemplateLiteralGenerator.Generate = Generate;\n})(TemplateLiteralGenerator || (exports.TemplateLiteralGenerator = TemplateLiteralGenerator = {}));\n// ---------------------------------------------------------------------\n// TemplateLiteralDslParser\n// ---------------------------------------------------------------------\nvar TemplateLiteralDslParser;\n(function (TemplateLiteralDslParser) {\n function* ParseUnion(template) {\n const trim = template.trim().replace(/\"|'/g, '');\n // prettier-ignore\n return (trim === 'boolean' ? yield exports.Type.Boolean() :\n trim === 'number' ? yield exports.Type.Number() :\n trim === 'bigint' ? yield exports.Type.BigInt() :\n trim === 'string' ? yield exports.Type.String() :\n yield (() => {\n const literals = trim.split('|').map((literal) => exports.Type.Literal(literal.trim()));\n return (literals.length === 0 ? exports.Type.Never() :\n literals.length === 1 ? literals[0] :\n exports.Type.Union(literals));\n })());\n }\n function* ParseTerminal(template) {\n if (template[1] !== '{') {\n const L = exports.Type.Literal('$');\n const R = ParseLiteral(template.slice(1));\n return yield* [L, ...R];\n }\n for (let i = 2; i < template.length; i++) {\n if (template[i] === '}') {\n const L = ParseUnion(template.slice(2, i));\n const R = ParseLiteral(template.slice(i + 1));\n return yield* [...L, ...R];\n }\n }\n yield exports.Type.Literal(template);\n }\n function* ParseLiteral(template) {\n for (let i = 0; i < template.length; i++) {\n if (template[i] === '$') {\n const L = exports.Type.Literal(template.slice(0, i));\n const R = ParseTerminal(template.slice(i));\n return yield* [L, ...R];\n }\n }\n yield exports.Type.Literal(template);\n }\n function Parse(template_dsl) {\n return [...ParseLiteral(template_dsl)];\n }\n TemplateLiteralDslParser.Parse = Parse;\n})(TemplateLiteralDslParser || (exports.TemplateLiteralDslParser = TemplateLiteralDslParser = {}));\n// ---------------------------------------------------------------------\n// TransformBuilder\n// ---------------------------------------------------------------------\nclass TransformDecodeBuilder {\n constructor(schema) {\n this.schema = schema;\n }\n Decode(decode) {\n return new TransformEncodeBuilder(this.schema, decode);\n }\n}\nexports.TransformDecodeBuilder = TransformDecodeBuilder;\nclass TransformEncodeBuilder {\n constructor(schema, decode) {\n this.schema = schema;\n this.decode = decode;\n }\n Encode(encode) {\n const schema = TypeClone.Type(this.schema);\n // prettier-ignore\n return (TypeGuard.TTransform(schema) ? (() => {\n const Encode = (value) => schema[exports.Transform].Encode(encode(value));\n const Decode = (value) => this.decode(schema[exports.Transform].Decode(value));\n const Codec = { Encode: Encode, Decode: Decode };\n return { ...schema, [exports.Transform]: Codec };\n })() : (() => {\n const Codec = { Decode: this.decode, Encode: encode };\n return { ...schema, [exports.Transform]: Codec };\n })());\n }\n}\nexports.TransformEncodeBuilder = TransformEncodeBuilder;\n// --------------------------------------------------------------------------\n// TypeOrdinal: Used for auto $id generation\n// --------------------------------------------------------------------------\nlet TypeOrdinal = 0;\n// --------------------------------------------------------------------------\n// TypeBuilder\n// --------------------------------------------------------------------------\nclass TypeBuilderError extends TypeBoxError {\n}\nexports.TypeBuilderError = TypeBuilderError;\nclass TypeBuilder {\n /** `[Internal]` Creates a schema without `static` and `params` types */\n Create(schema) {\n return schema;\n }\n /** `[Internal]` Throws a TypeBuilder error with the given message */\n Throw(message) {\n throw new TypeBuilderError(message);\n }\n /** `[Internal]` Discards property keys from the given record type */\n Discard(record, keys) {\n return keys.reduce((acc, key) => {\n const { [key]: _, ...rest } = acc;\n return rest;\n }, record);\n }\n /** `[Json]` Omits compositing symbols from this schema */\n Strict(schema) {\n return JSON.parse(JSON.stringify(schema));\n }\n}\nexports.TypeBuilder = TypeBuilder;\n// --------------------------------------------------------------------------\n// JsonTypeBuilder\n// --------------------------------------------------------------------------\nclass JsonTypeBuilder extends TypeBuilder {\n // ------------------------------------------------------------------------\n // Modifiers\n // ------------------------------------------------------------------------\n /** `[Json]` Creates a Readonly and Optional property */\n ReadonlyOptional(schema) {\n return this.Readonly(this.Optional(schema));\n }\n /** `[Json]` Creates a Readonly property */\n Readonly(schema) {\n return { ...TypeClone.Type(schema), [exports.Readonly]: 'Readonly' };\n }\n /** `[Json]` Creates an Optional property */\n Optional(schema) {\n return { ...TypeClone.Type(schema), [exports.Optional]: 'Optional' };\n }\n // ------------------------------------------------------------------------\n // Types\n // ------------------------------------------------------------------------\n /** `[Json]` Creates an Any type */\n Any(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Any' });\n }\n /** `[Json]` Creates an Array type */\n Array(schema, options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Array', type: 'array', items: TypeClone.Type(schema) });\n }\n /** `[Json]` Creates a Boolean type */\n Boolean(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Boolean', type: 'boolean' });\n }\n /** `[Json]` Intrinsic function to Capitalize LiteralString types */\n Capitalize(schema, options = {}) {\n return { ...Intrinsic.Map(TypeClone.Type(schema), 'Capitalize'), ...options };\n }\n /** `[Json]` Creates a Composite object type */\n Composite(objects, options) {\n const intersect = exports.Type.Intersect(objects, {});\n const keys = KeyResolver.ResolveKeys(intersect, { includePatterns: false });\n const properties = keys.reduce((acc, key) => ({ ...acc, [key]: exports.Type.Index(intersect, [key]) }), {});\n return exports.Type.Object(properties, options);\n }\n /** `[Json]` Creates a Enum type */\n Enum(item, options = {}) {\n if (ValueGuard.IsUndefined(item))\n return this.Throw('Enum undefined or empty');\n // prettier-ignore\n const values1 = Object.getOwnPropertyNames(item).filter((key) => isNaN(key)).map((key) => item[key]);\n const values2 = [...new Set(values1)];\n const anyOf = values2.map((value) => exports.Type.Literal(value));\n return this.Union(anyOf, { ...options, [exports.Hint]: 'Enum' });\n }\n /** `[Json]` Creates a Conditional type */\n Extends(left, right, trueType, falseType, options = {}) {\n switch (TypeExtends.Extends(left, right)) {\n case TypeExtendsResult.Union:\n return this.Union([TypeClone.Type(trueType, options), TypeClone.Type(falseType, options)]);\n case TypeExtendsResult.True:\n return TypeClone.Type(trueType, options);\n case TypeExtendsResult.False:\n return TypeClone.Type(falseType, options);\n }\n }\n /** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */\n Exclude(unionType, excludedMembers, options = {}) {\n // prettier-ignore\n return (TypeGuard.TTemplateLiteral(unionType) ? this.Exclude(TemplateLiteralResolver.Resolve(unionType), excludedMembers, options) :\n TypeGuard.TTemplateLiteral(excludedMembers) ? this.Exclude(unionType, TemplateLiteralResolver.Resolve(excludedMembers), options) :\n TypeGuard.TUnion(unionType) ? (() => {\n const narrowed = unionType.anyOf.filter((inner) => TypeExtends.Extends(inner, excludedMembers) === TypeExtendsResult.False);\n return (narrowed.length === 1 ? TypeClone.Type(narrowed[0], options) : this.Union(narrowed, options));\n })() :\n TypeExtends.Extends(unionType, excludedMembers) !== TypeExtendsResult.False ? this.Never(options) :\n TypeClone.Type(unionType, options));\n }\n /** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */\n Extract(type, union, options = {}) {\n // prettier-ignore\n return (TypeGuard.TTemplateLiteral(type) ? this.Extract(TemplateLiteralResolver.Resolve(type), union, options) :\n TypeGuard.TTemplateLiteral(union) ? this.Extract(type, TemplateLiteralResolver.Resolve(union), options) :\n TypeGuard.TUnion(type) ? (() => {\n const narrowed = type.anyOf.filter((inner) => TypeExtends.Extends(inner, union) !== TypeExtendsResult.False);\n return (narrowed.length === 1 ? TypeClone.Type(narrowed[0], options) : this.Union(narrowed, options));\n })() :\n TypeExtends.Extends(type, union) !== TypeExtendsResult.False ? TypeClone.Type(type, options) :\n this.Never(options));\n }\n /** `[Json]` Returns an Indexed property type for the given keys */\n Index(schema, unresolved, options = {}) {\n // prettier-ignore\n return (TypeGuard.TArray(schema) && TypeGuard.TNumber(unresolved) ? (() => {\n return TypeClone.Type(schema.items, options);\n })() :\n TypeGuard.TTuple(schema) && TypeGuard.TNumber(unresolved) ? (() => {\n const items = ValueGuard.IsUndefined(schema.items) ? [] : schema.items;\n const cloned = items.map((schema) => TypeClone.Type(schema));\n return this.Union(cloned, options);\n })() : (() => {\n const keys = KeyArrayResolver.Resolve(unresolved);\n const clone = TypeClone.Type(schema);\n return IndexedAccessor.Resolve(clone, keys, options);\n })());\n }\n /** `[Json]` Creates an Integer type */\n Integer(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Integer', type: 'integer' });\n }\n /** `[Json]` Creates an Intersect type */\n Intersect(allOf, options = {}) {\n if (allOf.length === 0)\n return exports.Type.Never();\n if (allOf.length === 1)\n return TypeClone.Type(allOf[0], options);\n if (allOf.some((schema) => TypeGuard.TTransform(schema)))\n this.Throw('Cannot intersect transform types');\n const objects = allOf.every((schema) => TypeGuard.TObject(schema));\n const cloned = TypeClone.Rest(allOf);\n // prettier-ignore\n const clonedUnevaluatedProperties = TypeGuard.TSchema(options.unevaluatedProperties)\n ? { unevaluatedProperties: TypeClone.Type(options.unevaluatedProperties) }\n : {};\n return options.unevaluatedProperties === false || TypeGuard.TSchema(options.unevaluatedProperties) || objects\n ? this.Create({ ...options, ...clonedUnevaluatedProperties, [exports.Kind]: 'Intersect', type: 'object', allOf: cloned })\n : this.Create({ ...options, ...clonedUnevaluatedProperties, [exports.Kind]: 'Intersect', allOf: cloned });\n }\n /** `[Json]` Creates a KeyOf type */\n KeyOf(schema, options = {}) {\n // prettier-ignore\n return (TypeGuard.TRecord(schema) ? (() => {\n const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];\n return (pattern === exports.PatternNumberExact ? this.Number(options) :\n pattern === exports.PatternStringExact ? this.String(options) :\n this.Throw('Unable to resolve key type from Record key pattern'));\n })() :\n TypeGuard.TTuple(schema) ? (() => {\n const items = ValueGuard.IsUndefined(schema.items) ? [] : schema.items;\n const literals = items.map((_, index) => exports.Type.Literal(index.toString()));\n return this.Union(literals, options);\n })() :\n TypeGuard.TArray(schema) ? (() => {\n return this.Number(options);\n })() : (() => {\n const keys = KeyResolver.ResolveKeys(schema, { includePatterns: false });\n if (keys.length === 0)\n return this.Never(options);\n const literals = keys.map((key) => this.Literal(key));\n return this.Union(literals, options);\n })());\n }\n /** `[Json]` Creates a Literal type */\n Literal(value, options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Literal', const: value, type: typeof value });\n }\n /** `[Json]` Intrinsic function to Lowercase LiteralString types */\n Lowercase(schema, options = {}) {\n return { ...Intrinsic.Map(TypeClone.Type(schema), 'Lowercase'), ...options };\n }\n /** `[Json]` Creates a Never type */\n Never(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Never', not: {} });\n }\n /** `[Json]` Creates a Not type */\n Not(schema, options) {\n return this.Create({ ...options, [exports.Kind]: 'Not', not: TypeClone.Type(schema) });\n }\n /** `[Json]` Creates a Null type */\n Null(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Null', type: 'null' });\n }\n /** `[Json]` Creates a Number type */\n Number(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Number', type: 'number' });\n }\n /** `[Json]` Creates an Object type */\n Object(properties, options = {}) {\n const propertyKeys = Object.getOwnPropertyNames(properties);\n const optionalKeys = propertyKeys.filter((key) => TypeGuard.TOptional(properties[key]));\n const requiredKeys = propertyKeys.filter((name) => !optionalKeys.includes(name));\n const clonedAdditionalProperties = TypeGuard.TSchema(options.additionalProperties) ? { additionalProperties: TypeClone.Type(options.additionalProperties) } : {};\n const clonedProperties = propertyKeys.reduce((acc, key) => ({ ...acc, [key]: TypeClone.Type(properties[key]) }), {});\n return requiredKeys.length > 0\n ? this.Create({ ...options, ...clonedAdditionalProperties, [exports.Kind]: 'Object', type: 'object', properties: clonedProperties, required: requiredKeys })\n : this.Create({ ...options, ...clonedAdditionalProperties, [exports.Kind]: 'Object', type: 'object', properties: clonedProperties });\n }\n /** `[Json]` Constructs a type whose keys are omitted from the given type */\n Omit(schema, unresolved, options = {}) {\n const keys = KeyArrayResolver.Resolve(unresolved);\n // prettier-ignore\n return ObjectMap.Map(this.Discard(TypeClone.Type(schema), ['$id', exports.Transform]), (object) => {\n if (ValueGuard.IsArray(object.required)) {\n object.required = object.required.filter((key) => !keys.includes(key));\n if (object.required.length === 0)\n delete object.required;\n }\n for (const key of Object.getOwnPropertyNames(object.properties)) {\n if (keys.includes(key))\n delete object.properties[key];\n }\n return this.Create(object);\n }, options);\n }\n /** `[Json]` Constructs a type where all properties are optional */\n Partial(schema, options = {}) {\n // prettier-ignore\n return ObjectMap.Map(this.Discard(TypeClone.Type(schema), ['$id', exports.Transform]), (object) => {\n const properties = Object.getOwnPropertyNames(object.properties).reduce((acc, key) => {\n return { ...acc, [key]: this.Optional(object.properties[key]) };\n }, {});\n return this.Object(properties, this.Discard(object, ['required']) /* object used as options to retain other constraints */);\n }, options);\n }\n /** `[Json]` Constructs a type whose keys are picked from the given type */\n Pick(schema, unresolved, options = {}) {\n const keys = KeyArrayResolver.Resolve(unresolved);\n // prettier-ignore\n return ObjectMap.Map(this.Discard(TypeClone.Type(schema), ['$id', exports.Transform]), (object) => {\n if (ValueGuard.IsArray(object.required)) {\n object.required = object.required.filter((key) => keys.includes(key));\n if (object.required.length === 0)\n delete object.required;\n }\n for (const key of Object.getOwnPropertyNames(object.properties)) {\n if (!keys.includes(key))\n delete object.properties[key];\n }\n return this.Create(object);\n }, options);\n }\n /** `[Json]` Creates a Record type */\n Record(key, schema, options = {}) {\n // prettier-ignore\n return (TypeGuard.TTemplateLiteral(key) ? (() => {\n const expression = TemplateLiteralParser.ParseExact(key.pattern);\n // prettier-ignore\n return TemplateLiteralFinite.Check(expression)\n ? (this.Object([...TemplateLiteralGenerator.Generate(expression)].reduce((acc, key) => ({ ...acc, [key]: TypeClone.Type(schema) }), {}), options))\n : this.Create({ ...options, [exports.Kind]: 'Record', type: 'object', patternProperties: { [key.pattern]: TypeClone.Type(schema) } });\n })() :\n TypeGuard.TUnion(key) ? (() => {\n const union = UnionResolver.Resolve(key);\n if (TypeGuard.TUnionLiteral(union)) {\n const properties = union.anyOf.reduce((acc, literal) => ({ ...acc, [literal.const]: TypeClone.Type(schema) }), {});\n return this.Object(properties, { ...options, [exports.Hint]: 'Record' });\n }\n else\n this.Throw('Record key of type union contains non-literal types');\n })() :\n TypeGuard.TLiteral(key) ? (() => {\n // prettier-ignore\n return (ValueGuard.IsString(key.const) || ValueGuard.IsNumber(key.const))\n ? this.Object({ [key.const]: TypeClone.Type(schema) }, options)\n : this.Throw('Record key of type literal is not of type string or number');\n })() :\n TypeGuard.TInteger(key) || TypeGuard.TNumber(key) ? (() => {\n return this.Create({ ...options, [exports.Kind]: 'Record', type: 'object', patternProperties: { [exports.PatternNumberExact]: TypeClone.Type(schema) } });\n })() :\n TypeGuard.TString(key) ? (() => {\n const pattern = ValueGuard.IsUndefined(key.pattern) ? exports.PatternStringExact : key.pattern;\n return this.Create({ ...options, [exports.Kind]: 'Record', type: 'object', patternProperties: { [pattern]: TypeClone.Type(schema) } });\n })() :\n this.Never());\n }\n /** `[Json]` Creates a Recursive type */\n Recursive(callback, options = {}) {\n if (ValueGuard.IsUndefined(options.$id))\n options.$id = `T${TypeOrdinal++}`;\n const thisType = callback({ [exports.Kind]: 'This', $ref: `${options.$id}` });\n thisType.$id = options.$id;\n return this.Create({ ...options, [exports.Hint]: 'Recursive', ...thisType });\n }\n /** `[Json]` Creates a Ref type. */\n Ref(unresolved, options = {}) {\n if (ValueGuard.IsString(unresolved))\n return this.Create({ ...options, [exports.Kind]: 'Ref', $ref: unresolved });\n if (ValueGuard.IsUndefined(unresolved.$id))\n this.Throw('Reference target type must specify an $id');\n return this.Create({ ...options, [exports.Kind]: 'Ref', $ref: unresolved.$id });\n }\n /** `[Json]` Constructs a type where all properties are required */\n Required(schema, options = {}) {\n // prettier-ignore\n return ObjectMap.Map(this.Discard(TypeClone.Type(schema), ['$id', exports.Transform]), (object) => {\n const properties = Object.getOwnPropertyNames(object.properties).reduce((acc, key) => {\n return { ...acc, [key]: this.Discard(object.properties[key], [exports.Optional]) };\n }, {});\n return this.Object(properties, object /* object used as options to retain other constraints */);\n }, options);\n }\n /** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */\n Rest(schema) {\n return (TypeGuard.TTuple(schema) && !ValueGuard.IsUndefined(schema.items) ? TypeClone.Rest(schema.items) : TypeGuard.TIntersect(schema) ? TypeClone.Rest(schema.allOf) : TypeGuard.TUnion(schema) ? TypeClone.Rest(schema.anyOf) : []);\n }\n /** `[Json]` Creates a String type */\n String(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'String', type: 'string' });\n }\n /** `[Json]` Creates a TemplateLiteral type */\n TemplateLiteral(unresolved, options = {}) {\n // prettier-ignore\n const pattern = ValueGuard.IsString(unresolved)\n ? TemplateLiteralPattern.Create(TemplateLiteralDslParser.Parse(unresolved))\n : TemplateLiteralPattern.Create(unresolved);\n return this.Create({ ...options, [exports.Kind]: 'TemplateLiteral', type: 'string', pattern });\n }\n /** `[Json]` Creates a Transform type */\n Transform(schema) {\n return new TransformDecodeBuilder(schema);\n }\n /** `[Json]` Creates a Tuple type */\n Tuple(items, options = {}) {\n const [additionalItems, minItems, maxItems] = [false, items.length, items.length];\n const clonedItems = TypeClone.Rest(items);\n // prettier-ignore\n const schema = (items.length > 0 ?\n { ...options, [exports.Kind]: 'Tuple', type: 'array', items: clonedItems, additionalItems, minItems, maxItems } :\n { ...options, [exports.Kind]: 'Tuple', type: 'array', minItems, maxItems });\n return this.Create(schema);\n }\n /** `[Json]` Intrinsic function to Uncapitalize LiteralString types */\n Uncapitalize(schema, options = {}) {\n return { ...Intrinsic.Map(TypeClone.Type(schema), 'Uncapitalize'), ...options };\n }\n /** `[Json]` Creates a Union type */\n Union(union, options = {}) {\n // prettier-ignore\n return TypeGuard.TTemplateLiteral(union)\n ? TemplateLiteralResolver.Resolve(union)\n : (() => {\n const anyOf = union;\n if (anyOf.length === 0)\n return this.Never(options);\n if (anyOf.length === 1)\n return this.Create(TypeClone.Type(anyOf[0], options));\n const clonedAnyOf = TypeClone.Rest(anyOf);\n return this.Create({ ...options, [exports.Kind]: 'Union', anyOf: clonedAnyOf });\n })();\n }\n /** `[Json]` Creates an Unknown type */\n Unknown(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Unknown' });\n }\n /** `[Json]` Creates a Unsafe type that will infers as the generic argument T */\n Unsafe(options = {}) {\n return this.Create({ ...options, [exports.Kind]: options[exports.Kind] || 'Unsafe' });\n }\n /** `[Json]` Intrinsic function to Uppercase LiteralString types */\n Uppercase(schema, options = {}) {\n return { ...Intrinsic.Map(TypeClone.Type(schema), 'Uppercase'), ...options };\n }\n}\nexports.JsonTypeBuilder = JsonTypeBuilder;\n// --------------------------------------------------------------------------\n// JavaScriptTypeBuilder\n// --------------------------------------------------------------------------\nclass JavaScriptTypeBuilder extends JsonTypeBuilder {\n /** `[JavaScript]` Creates a AsyncIterator type */\n AsyncIterator(items, options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'AsyncIterator', type: 'AsyncIterator', items: TypeClone.Type(items) });\n }\n /** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */\n Awaited(schema, options = {}) {\n // prettier-ignore\n const Unwrap = (rest) => rest.length > 0 ? (() => {\n const [L, ...R] = rest;\n return [this.Awaited(L), ...Unwrap(R)];\n })() : rest;\n // prettier-ignore\n return (TypeGuard.TIntersect(schema) ? exports.Type.Intersect(Unwrap(schema.allOf)) :\n TypeGuard.TUnion(schema) ? exports.Type.Union(Unwrap(schema.anyOf)) :\n TypeGuard.TPromise(schema) ? this.Awaited(schema.item) :\n TypeClone.Type(schema, options));\n }\n /** `[JavaScript]` Creates a BigInt type */\n BigInt(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'BigInt', type: 'bigint' });\n }\n /** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */\n ConstructorParameters(schema, options = {}) {\n return this.Tuple([...schema.parameters], { ...options });\n }\n /** `[JavaScript]` Creates a Constructor type */\n Constructor(parameters, returns, options) {\n const [clonedParameters, clonedReturns] = [TypeClone.Rest(parameters), TypeClone.Type(returns)];\n return this.Create({ ...options, [exports.Kind]: 'Constructor', type: 'Constructor', parameters: clonedParameters, returns: clonedReturns });\n }\n /** `[JavaScript]` Creates a Date type */\n Date(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Date', type: 'Date' });\n }\n /** `[JavaScript]` Creates a Function type */\n Function(parameters, returns, options) {\n const [clonedParameters, clonedReturns] = [TypeClone.Rest(parameters), TypeClone.Type(returns)];\n return this.Create({ ...options, [exports.Kind]: 'Function', type: 'Function', parameters: clonedParameters, returns: clonedReturns });\n }\n /** `[JavaScript]` Extracts the InstanceType from the given Constructor type */\n InstanceType(schema, options = {}) {\n return TypeClone.Type(schema.returns, options);\n }\n /** `[JavaScript]` Creates an Iterator type */\n Iterator(items, options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Iterator', type: 'Iterator', items: TypeClone.Type(items) });\n }\n /** `[JavaScript]` Extracts the Parameters from the given Function type */\n Parameters(schema, options = {}) {\n return this.Tuple(schema.parameters, { ...options });\n }\n /** `[JavaScript]` Creates a Promise type */\n Promise(item, options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Promise', type: 'Promise', item: TypeClone.Type(item) });\n }\n /** `[Extended]` Creates a String type */\n RegExp(unresolved, options = {}) {\n const pattern = ValueGuard.IsString(unresolved) ? unresolved : unresolved.source;\n return this.Create({ ...options, [exports.Kind]: 'String', type: 'string', pattern });\n }\n /**\n * @deprecated Use `Type.RegExp`\n */\n RegEx(regex, options = {}) {\n return this.RegExp(regex, options);\n }\n /** `[JavaScript]` Extracts the ReturnType from the given Function type */\n ReturnType(schema, options = {}) {\n return TypeClone.Type(schema.returns, options);\n }\n /** `[JavaScript]` Creates a Symbol type */\n Symbol(options) {\n return this.Create({ ...options, [exports.Kind]: 'Symbol', type: 'symbol' });\n }\n /** `[JavaScript]` Creates a Undefined type */\n Undefined(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Undefined', type: 'undefined' });\n }\n /** `[JavaScript]` Creates a Uint8Array type */\n Uint8Array(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Uint8Array', type: 'Uint8Array' });\n }\n /** `[JavaScript]` Creates a Void type */\n Void(options = {}) {\n return this.Create({ ...options, [exports.Kind]: 'Void', type: 'void' });\n }\n}\nexports.JavaScriptTypeBuilder = JavaScriptTypeBuilder;\n/** Json Type Builder with Static Resolution for TypeScript */\nexports.JsonType = new JsonTypeBuilder();\n/** JavaScript Type Builder with Static Resolution for TypeScript */\nexports.Type = new JavaScriptTypeBuilder();\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/value\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IsValueType = exports.IsSymbol = exports.IsFunction = exports.IsString = exports.IsBigInt = exports.IsInteger = exports.IsNumber = exports.IsBoolean = exports.IsNull = exports.IsUndefined = exports.IsArray = exports.IsObject = exports.IsPlainObject = exports.HasPropertyKey = exports.IsDate = exports.IsUint8Array = exports.IsPromise = exports.IsTypedArray = exports.IsIterator = exports.IsAsyncIterator = void 0;\n// --------------------------------------------------------------------------\n// Iterators\n// --------------------------------------------------------------------------\n/** Returns true if this value is an async iterator */\nfunction IsAsyncIterator(value) {\n return IsObject(value) && Symbol.asyncIterator in value;\n}\nexports.IsAsyncIterator = IsAsyncIterator;\n/** Returns true if this value is an iterator */\nfunction IsIterator(value) {\n return IsObject(value) && Symbol.iterator in value;\n}\nexports.IsIterator = IsIterator;\n// --------------------------------------------------------------------------\n// Nominal\n// --------------------------------------------------------------------------\n/** Returns true if this value is a typed array */\nfunction IsTypedArray(value) {\n return ArrayBuffer.isView(value);\n}\nexports.IsTypedArray = IsTypedArray;\n/** Returns true if this value is a Promise */\nfunction IsPromise(value) {\n return value instanceof Promise;\n}\nexports.IsPromise = IsPromise;\n/** Returns true if the value is a Uint8Array */\nfunction IsUint8Array(value) {\n return value instanceof Uint8Array;\n}\nexports.IsUint8Array = IsUint8Array;\n/** Returns true if this value is a Date */\nfunction IsDate(value) {\n return value instanceof Date && Number.isFinite(value.getTime());\n}\nexports.IsDate = IsDate;\n// --------------------------------------------------------------------------\n// Standard\n// --------------------------------------------------------------------------\n/** Returns true if this value has this property key */\nfunction HasPropertyKey(value, key) {\n return key in value;\n}\nexports.HasPropertyKey = HasPropertyKey;\n/** Returns true if this object is not an instance of any other type */\nfunction IsPlainObject(value) {\n return IsObject(value) && IsFunction(value.constructor) && value.constructor.name === 'Object';\n}\nexports.IsPlainObject = IsPlainObject;\n/** Returns true of this value is an object type */\nfunction IsObject(value) {\n return value !== null && typeof value === 'object';\n}\nexports.IsObject = IsObject;\n/** Returns true if this value is an array, but not a typed array */\nfunction IsArray(value) {\n return Array.isArray(value) && !ArrayBuffer.isView(value);\n}\nexports.IsArray = IsArray;\n/** Returns true if this value is an undefined */\nfunction IsUndefined(value) {\n return value === undefined;\n}\nexports.IsUndefined = IsUndefined;\n/** Returns true if this value is an null */\nfunction IsNull(value) {\n return value === null;\n}\nexports.IsNull = IsNull;\n/** Returns true if this value is an boolean */\nfunction IsBoolean(value) {\n return typeof value === 'boolean';\n}\nexports.IsBoolean = IsBoolean;\n/** Returns true if this value is an number */\nfunction IsNumber(value) {\n return typeof value === 'number';\n}\nexports.IsNumber = IsNumber;\n/** Returns true if this value is an integer */\nfunction IsInteger(value) {\n return IsNumber(value) && Number.isInteger(value);\n}\nexports.IsInteger = IsInteger;\n/** Returns true if this value is bigint */\nfunction IsBigInt(value) {\n return typeof value === 'bigint';\n}\nexports.IsBigInt = IsBigInt;\n/** Returns true if this value is string */\nfunction IsString(value) {\n return typeof value === 'string';\n}\nexports.IsString = IsString;\n/** Returns true if this value is a function */\nfunction IsFunction(value) {\n return typeof value === 'function';\n}\nexports.IsFunction = IsFunction;\n/** Returns true if this value is a symbol */\nfunction IsSymbol(value) {\n return typeof value === 'symbol';\n}\nexports.IsSymbol = IsSymbol;\n/** Returns true if this value is a value type such as number, string, boolean */\nfunction IsValueType(value) {\n // prettier-ignore\n return (IsBigInt(value) ||\n IsBoolean(value) ||\n IsNull(value) ||\n IsNumber(value) ||\n IsString(value) ||\n IsSymbol(value) ||\n IsUndefined(value));\n}\nexports.IsValueType = IsValueType;\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/system\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultErrorFunction = exports.TypeSystemPolicy = exports.TypeSystemErrorFunction = exports.TypeSystem = exports.TypeSystemDuplicateFormat = exports.TypeSystemDuplicateTypeKind = void 0;\nconst guard_1 = require(\"../value/guard\");\nconst errors_1 = require(\"../errors/errors\");\nconst Types = require(\"../typebox\");\n// --------------------------------------------------------------------------\n// Errors\n// --------------------------------------------------------------------------\nclass TypeSystemDuplicateTypeKind extends Types.TypeBoxError {\n constructor(kind) {\n super(`Duplicate type kind '${kind}' detected`);\n }\n}\nexports.TypeSystemDuplicateTypeKind = TypeSystemDuplicateTypeKind;\nclass TypeSystemDuplicateFormat extends Types.TypeBoxError {\n constructor(kind) {\n super(`Duplicate string format '${kind}' detected`);\n }\n}\nexports.TypeSystemDuplicateFormat = TypeSystemDuplicateFormat;\n// -------------------------------------------------------------------------------------------\n// TypeSystem\n// -------------------------------------------------------------------------------------------\n/** Creates user defined types and formats and provides overrides for value checking behaviours */\nvar TypeSystem;\n(function (TypeSystem) {\n /** Creates a new type */\n function Type(kind, check) {\n if (Types.TypeRegistry.Has(kind))\n throw new TypeSystemDuplicateTypeKind(kind);\n Types.TypeRegistry.Set(kind, check);\n return (options = {}) => Types.Type.Unsafe({ ...options, [Types.Kind]: kind });\n }\n TypeSystem.Type = Type;\n /** Creates a new string format */\n function Format(format, check) {\n if (Types.FormatRegistry.Has(format))\n throw new TypeSystemDuplicateFormat(format);\n Types.FormatRegistry.Set(format, check);\n return format;\n }\n TypeSystem.Format = Format;\n})(TypeSystem || (exports.TypeSystem = TypeSystem = {}));\n// --------------------------------------------------------------------------\n// TypeSystemErrorFunction\n// --------------------------------------------------------------------------\n/** Manages error message providers */\nvar TypeSystemErrorFunction;\n(function (TypeSystemErrorFunction) {\n let errorMessageFunction = DefaultErrorFunction;\n /** Resets the error message function to en-us */\n function Reset() {\n errorMessageFunction = DefaultErrorFunction;\n }\n TypeSystemErrorFunction.Reset = Reset;\n /** Sets the error message function used to generate error messages */\n function Set(callback) {\n errorMessageFunction = callback;\n }\n TypeSystemErrorFunction.Set = Set;\n /** Gets the error message function */\n function Get() {\n return errorMessageFunction;\n }\n TypeSystemErrorFunction.Get = Get;\n})(TypeSystemErrorFunction || (exports.TypeSystemErrorFunction = TypeSystemErrorFunction = {}));\n// --------------------------------------------------------------------------\n// TypeSystemPolicy\n// --------------------------------------------------------------------------\n/** Shared assertion routines used by the value and errors modules */\nvar TypeSystemPolicy;\n(function (TypeSystemPolicy) {\n /** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */\n TypeSystemPolicy.ExactOptionalPropertyTypes = false;\n /** Sets whether arrays should be treated as a kind of objects. The default is `false` */\n TypeSystemPolicy.AllowArrayObject = false;\n /** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */\n TypeSystemPolicy.AllowNaN = false;\n /** Sets whether `null` should validate for void types. The default is `false` */\n TypeSystemPolicy.AllowNullVoid = false;\n /** Asserts this value using the ExactOptionalPropertyTypes policy */\n function IsExactOptionalProperty(value, key) {\n return TypeSystemPolicy.ExactOptionalPropertyTypes ? key in value : value[key] !== undefined;\n }\n TypeSystemPolicy.IsExactOptionalProperty = IsExactOptionalProperty;\n /** Asserts this value using the AllowArrayObjects policy */\n function IsObjectLike(value) {\n const isObject = (0, guard_1.IsObject)(value);\n return TypeSystemPolicy.AllowArrayObject ? isObject : isObject && !(0, guard_1.IsArray)(value);\n }\n TypeSystemPolicy.IsObjectLike = IsObjectLike;\n /** Asserts this value as a record using the AllowArrayObjects policy */\n function IsRecordLike(value) {\n return IsObjectLike(value) && !(value instanceof Date) && !(value instanceof Uint8Array);\n }\n TypeSystemPolicy.IsRecordLike = IsRecordLike;\n /** Asserts this value using the AllowNaN policy */\n function IsNumberLike(value) {\n const isNumber = (0, guard_1.IsNumber)(value);\n return TypeSystemPolicy.AllowNaN ? isNumber : isNumber && Number.isFinite(value);\n }\n TypeSystemPolicy.IsNumberLike = IsNumberLike;\n /** Asserts this value using the AllowVoidNull policy */\n function IsVoidLike(value) {\n const isUndefined = (0, guard_1.IsUndefined)(value);\n return TypeSystemPolicy.AllowNullVoid ? isUndefined || value === null : isUndefined;\n }\n TypeSystemPolicy.IsVoidLike = IsVoidLike;\n})(TypeSystemPolicy || (exports.TypeSystemPolicy = TypeSystemPolicy = {}));\n// --------------------------------------------------------------------------\n// DefaultErrorFunction\n// --------------------------------------------------------------------------\n/** Creates an error message using en-US as the default locale */\nfunction DefaultErrorFunction(schema, errorType) {\n switch (errorType) {\n case errors_1.ValueErrorType.ArrayContains:\n return 'Expected array to contain at least one matching value';\n case errors_1.ValueErrorType.ArrayMaxContains:\n return `Expected array to contain no more than ${schema.maxContains} matching values`;\n case errors_1.ValueErrorType.ArrayMinContains:\n return `Expected array to contain at least ${schema.minContains} matching values`;\n case errors_1.ValueErrorType.ArrayMaxItems:\n return `Expected array length to be less or equal to ${schema.maxItems}`;\n case errors_1.ValueErrorType.ArrayMinItems:\n return `Expected array length to be greater or equal to ${schema.minItems}`;\n case errors_1.ValueErrorType.ArrayUniqueItems:\n return 'Expected array elements to be unique';\n case errors_1.ValueErrorType.Array:\n return 'Expected array';\n case errors_1.ValueErrorType.AsyncIterator:\n return 'Expected AsyncIterator';\n case errors_1.ValueErrorType.BigIntExclusiveMaximum:\n return `Expected bigint to be less than ${schema.exclusiveMaximum}`;\n case errors_1.ValueErrorType.BigIntExclusiveMinimum:\n return `Expected bigint to be greater than ${schema.exclusiveMinimum}`;\n case errors_1.ValueErrorType.BigIntMaximum:\n return `Expected bigint to be less or equal to ${schema.maximum}`;\n case errors_1.ValueErrorType.BigIntMinimum:\n return `Expected bigint to be greater or equal to ${schema.minimum}`;\n case errors_1.ValueErrorType.BigIntMultipleOf:\n return `Expected bigint to be a multiple of ${schema.multipleOf}`;\n case errors_1.ValueErrorType.BigInt:\n return 'Expected bigint';\n case errors_1.ValueErrorType.Boolean:\n return 'Expected boolean';\n case errors_1.ValueErrorType.DateExclusiveMinimumTimestamp:\n return `Expected Date timestamp to be greater than ${schema.exclusiveMinimumTimestamp}`;\n case errors_1.ValueErrorType.DateExclusiveMaximumTimestamp:\n return `Expected Date timestamp to be less than ${schema.exclusiveMaximumTimestamp}`;\n case errors_1.ValueErrorType.DateMinimumTimestamp:\n return `Expected Date timestamp to be greater or equal to ${schema.minimumTimestamp}`;\n case errors_1.ValueErrorType.DateMaximumTimestamp:\n return `Expected Date timestamp to be less or equal to ${schema.maximumTimestamp}`;\n case errors_1.ValueErrorType.DateMultipleOfTimestamp:\n return `Expected Date timestamp to be a multiple of ${schema.multipleOfTimestamp}`;\n case errors_1.ValueErrorType.Date:\n return 'Expected Date';\n case errors_1.ValueErrorType.Function:\n return 'Expected function';\n case errors_1.ValueErrorType.IntegerExclusiveMaximum:\n return `Expected integer to be less than ${schema.exclusiveMaximum}`;\n case errors_1.ValueErrorType.IntegerExclusiveMinimum:\n return `Expected integer to be greater than ${schema.exclusiveMinimum}`;\n case errors_1.ValueErrorType.IntegerMaximum:\n return `Expected integer to be less or equal to ${schema.maximum}`;\n case errors_1.ValueErrorType.IntegerMinimum:\n return `Expected integer to be greater or equal to ${schema.minimum}`;\n case errors_1.ValueErrorType.IntegerMultipleOf:\n return `Expected integer to be a multiple of ${schema.multipleOf}`;\n case errors_1.ValueErrorType.Integer:\n return 'Expected integer';\n case errors_1.ValueErrorType.IntersectUnevaluatedProperties:\n return 'Unexpected property';\n case errors_1.ValueErrorType.Intersect:\n return 'Expected all values to match';\n case errors_1.ValueErrorType.Iterator:\n return 'Expected Iterator';\n case errors_1.ValueErrorType.Literal:\n return `Expected ${typeof schema.const === 'string' ? `'${schema.const}'` : schema.const}`;\n case errors_1.ValueErrorType.Never:\n return 'Never';\n case errors_1.ValueErrorType.Not:\n return 'Value should not match';\n case errors_1.ValueErrorType.Null:\n return 'Expected null';\n case errors_1.ValueErrorType.NumberExclusiveMaximum:\n return `Expected number to be less than ${schema.exclusiveMaximum}`;\n case errors_1.ValueErrorType.NumberExclusiveMinimum:\n return `Expected number to be greater than ${schema.exclusiveMinimum}`;\n case errors_1.ValueErrorType.NumberMaximum:\n return `Expected number to be less or equal to ${schema.maximum}`;\n case errors_1.ValueErrorType.NumberMinimum:\n return `Expected number to be greater or equal to ${schema.minimum}`;\n case errors_1.ValueErrorType.NumberMultipleOf:\n return `Expected number to be a multiple of ${schema.multipleOf}`;\n case errors_1.ValueErrorType.Number:\n return 'Expected number';\n case errors_1.ValueErrorType.Object:\n return 'Expected object';\n case errors_1.ValueErrorType.ObjectAdditionalProperties:\n return 'Unexpected property';\n case errors_1.ValueErrorType.ObjectMaxProperties:\n return `Expected object to have no more than ${schema.maxProperties} properties`;\n case errors_1.ValueErrorType.ObjectMinProperties:\n return `Expected object to have at least ${schema.minProperties} properties`;\n case errors_1.ValueErrorType.ObjectRequiredProperty:\n return 'Required property';\n case errors_1.ValueErrorType.Promise:\n return 'Expected Promise';\n case errors_1.ValueErrorType.StringFormatUnknown:\n return `Unknown format '${schema.format}'`;\n case errors_1.ValueErrorType.StringFormat:\n return `Expected string to match '${schema.format}' format`;\n case errors_1.ValueErrorType.StringMaxLength:\n return `Expected string length less or equal to ${schema.maxLength}`;\n case errors_1.ValueErrorType.StringMinLength:\n return `Expected string length greater or equal to ${schema.minLength}`;\n case errors_1.ValueErrorType.StringPattern:\n return `Expected string to match '${schema.pattern}'`;\n case errors_1.ValueErrorType.String:\n return 'Expected string';\n case errors_1.ValueErrorType.Symbol:\n return 'Expected symbol';\n case errors_1.ValueErrorType.TupleLength:\n return `Expected tuple to have ${schema.maxItems || 0} elements`;\n case errors_1.ValueErrorType.Tuple:\n return 'Expected tuple';\n case errors_1.ValueErrorType.Uint8ArrayMaxByteLength:\n return `Expected byte length less or equal to ${schema.maxByteLength}`;\n case errors_1.ValueErrorType.Uint8ArrayMinByteLength:\n return `Expected byte length greater or equal to ${schema.minByteLength}`;\n case errors_1.ValueErrorType.Uint8Array:\n return 'Expected Uint8Array';\n case errors_1.ValueErrorType.Undefined:\n return 'Expected undefined';\n case errors_1.ValueErrorType.Union:\n return 'Expected union value';\n case errors_1.ValueErrorType.Void:\n return 'Expected void';\n case errors_1.ValueErrorType.Kind:\n return `Expected kind '${schema[Types.Kind]}'`;\n default:\n return 'Unknown error type';\n }\n}\nexports.DefaultErrorFunction = DefaultErrorFunction;\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/value\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deref = exports.TypeDereferenceError = void 0;\nconst typebox_1 = require(\"../typebox\");\nclass TypeDereferenceError extends typebox_1.TypeBoxError {\n constructor(schema) {\n super(`Unable to dereference schema with $id '${schema.$id}'`);\n this.schema = schema;\n }\n}\nexports.TypeDereferenceError = TypeDereferenceError;\n/** Dereferences a schema from the references array or throws if not found */\nfunction Deref(schema, references) {\n const index = references.findIndex((target) => target.$id === schema.$ref);\n if (index === -1)\n throw new TypeDereferenceError(schema);\n return references[index];\n}\nexports.Deref = Deref;\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/value\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hash = exports.ByteMarker = exports.ValueHashError = void 0;\nconst guard_1 = require(\"./guard\");\n// --------------------------------------------------------------------------\n// Errors\n// --------------------------------------------------------------------------\nclass ValueHashError extends Error {\n constructor(value) {\n super(`Unable to hash value`);\n this.value = value;\n }\n}\nexports.ValueHashError = ValueHashError;\n// --------------------------------------------------------------------------\n// ByteMarker\n// --------------------------------------------------------------------------\nvar ByteMarker;\n(function (ByteMarker) {\n ByteMarker[ByteMarker[\"Undefined\"] = 0] = \"Undefined\";\n ByteMarker[ByteMarker[\"Null\"] = 1] = \"Null\";\n ByteMarker[ByteMarker[\"Boolean\"] = 2] = \"Boolean\";\n ByteMarker[ByteMarker[\"Number\"] = 3] = \"Number\";\n ByteMarker[ByteMarker[\"String\"] = 4] = \"String\";\n ByteMarker[ByteMarker[\"Object\"] = 5] = \"Object\";\n ByteMarker[ByteMarker[\"Array\"] = 6] = \"Array\";\n ByteMarker[ByteMarker[\"Date\"] = 7] = \"Date\";\n ByteMarker[ByteMarker[\"Uint8Array\"] = 8] = \"Uint8Array\";\n ByteMarker[ByteMarker[\"Symbol\"] = 9] = \"Symbol\";\n ByteMarker[ByteMarker[\"BigInt\"] = 10] = \"BigInt\";\n})(ByteMarker || (exports.ByteMarker = ByteMarker = {}));\n// --------------------------------------------------------------------------\n// State\n// --------------------------------------------------------------------------\nlet Accumulator = BigInt('14695981039346656037');\nconst [Prime, Size] = [BigInt('1099511628211'), BigInt('2') ** BigInt('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// NumberToBytes\n// --------------------------------------------------------------------------\nfunction* NumberToBytes(value) {\n const byteCount = value === 0 ? 1 : Math.ceil(Math.floor(Math.log2(value) + 1) / 8);\n for (let i = 0; i < byteCount; i++) {\n yield (value >> (8 * (byteCount - 1 - i))) & 0xff;\n }\n}\n// --------------------------------------------------------------------------\n// Hashing Functions\n// --------------------------------------------------------------------------\nfunction ArrayType(value) {\n FNV1A64(ByteMarker.Array);\n for (const item of value) {\n Visit(item);\n }\n}\nfunction BooleanType(value) {\n FNV1A64(ByteMarker.Boolean);\n FNV1A64(value ? 1 : 0);\n}\nfunction BigIntType(value) {\n FNV1A64(ByteMarker.BigInt);\n F64In.setBigInt64(0, value);\n for (const byte of F64Out) {\n FNV1A64(byte);\n }\n}\nfunction DateType(value) {\n FNV1A64(ByteMarker.Date);\n Visit(value.getTime());\n}\nfunction NullType(value) {\n FNV1A64(ByteMarker.Null);\n}\nfunction NumberType(value) {\n FNV1A64(ByteMarker.Number);\n F64In.setFloat64(0, value);\n for (const byte of F64Out) {\n FNV1A64(byte);\n }\n}\nfunction ObjectType(value) {\n FNV1A64(ByteMarker.Object);\n for (const key of globalThis.Object.keys(value).sort()) {\n Visit(key);\n Visit(value[key]);\n }\n}\nfunction StringType(value) {\n FNV1A64(ByteMarker.String);\n for (let i = 0; i < value.length; i++) {\n for (const byte of NumberToBytes(value.charCodeAt(i))) {\n FNV1A64(byte);\n }\n }\n}\nfunction SymbolType(value) {\n FNV1A64(ByteMarker.Symbol);\n Visit(value.description);\n}\nfunction Uint8ArrayType(value) {\n FNV1A64(ByteMarker.Uint8Array);\n for (let i = 0; i < value.length; i++) {\n FNV1A64(value[i]);\n }\n}\nfunction UndefinedType(value) {\n return FNV1A64(ByteMarker.Undefined);\n}\nfunction Visit(value) {\n if ((0, guard_1.IsArray)(value))\n return ArrayType(value);\n if ((0, guard_1.IsBoolean)(value))\n return BooleanType(value);\n if ((0, guard_1.IsBigInt)(value))\n return BigIntType(value);\n if ((0, guard_1.IsDate)(value))\n return DateType(value);\n if ((0, guard_1.IsNull)(value))\n return NullType(value);\n if ((0, guard_1.IsNumber)(value))\n return NumberType(value);\n if ((0, guard_1.IsPlainObject)(value))\n return ObjectType(value);\n if ((0, guard_1.IsString)(value))\n return StringType(value);\n if ((0, guard_1.IsSymbol)(value))\n return SymbolType(value);\n if ((0, guard_1.IsUint8Array)(value))\n return Uint8ArrayType(value);\n if ((0, guard_1.IsUndefined)(value))\n return UndefinedType(value);\n throw new ValueHashError(value);\n}\nfunction FNV1A64(byte) {\n Accumulator = Accumulator ^ Bytes[byte];\n Accumulator = (Accumulator * Prime) % Size;\n}\n// --------------------------------------------------------------------------\n// Hash\n// --------------------------------------------------------------------------\n/** Creates a FNV1A-64 non cryptographic hash of the given value */\nfunction Hash(value) {\n Accumulator = BigInt('14695981039346656037');\n Visit(value);\n return Accumulator;\n}\nexports.Hash = Hash;\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/errors\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Errors = exports.ValueErrorIterator = exports.EscapeKey = exports.ValueErrorsUnknownTypeError = exports.ValueErrorType = void 0;\nconst guard_1 = require(\"../value/guard\");\nconst system_1 = require(\"../system/system\");\nconst deref_1 = require(\"../value/deref\");\nconst hash_1 = require(\"../value/hash\");\nconst Types = require(\"../typebox\");\n// --------------------------------------------------------------------------\n// ValueErrorType\n// --------------------------------------------------------------------------\nvar ValueErrorType;\n(function (ValueErrorType) {\n ValueErrorType[ValueErrorType[\"ArrayContains\"] = 0] = \"ArrayContains\";\n ValueErrorType[ValueErrorType[\"ArrayMaxContains\"] = 1] = \"ArrayMaxContains\";\n ValueErrorType[ValueErrorType[\"ArrayMaxItems\"] = 2] = \"ArrayMaxItems\";\n ValueErrorType[ValueErrorType[\"ArrayMinContains\"] = 3] = \"ArrayMinContains\";\n ValueErrorType[ValueErrorType[\"ArrayMinItems\"] = 4] = \"ArrayMinItems\";\n ValueErrorType[ValueErrorType[\"ArrayUniqueItems\"] = 5] = \"ArrayUniqueItems\";\n ValueErrorType[ValueErrorType[\"Array\"] = 6] = \"Array\";\n ValueErrorType[ValueErrorType[\"AsyncIterator\"] = 7] = \"AsyncIterator\";\n ValueErrorType[ValueErrorType[\"BigIntExclusiveMaximum\"] = 8] = \"BigIntExclusiveMaximum\";\n ValueErrorType[ValueErrorType[\"BigIntExclusiveMinimum\"] = 9] = \"BigIntExclusiveMinimum\";\n ValueErrorType[ValueErrorType[\"BigIntMaximum\"] = 10] = \"BigIntMaximum\";\n ValueErrorType[ValueErrorType[\"BigIntMinimum\"] = 11] = \"BigIntMinimum\";\n ValueErrorType[ValueErrorType[\"BigIntMultipleOf\"] = 12] = \"BigIntMultipleOf\";\n ValueErrorType[ValueErrorType[\"BigInt\"] = 13] = \"BigInt\";\n ValueErrorType[ValueErrorType[\"Boolean\"] = 14] = \"Boolean\";\n ValueErrorType[ValueErrorType[\"DateExclusiveMaximumTimestamp\"] = 15] = \"DateExclusiveMaximumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateExclusiveMinimumTimestamp\"] = 16] = \"DateExclusiveMinimumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateMaximumTimestamp\"] = 17] = \"DateMaximumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateMinimumTimestamp\"] = 18] = \"DateMinimumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateMultipleOfTimestamp\"] = 19] = \"DateMultipleOfTimestamp\";\n ValueErrorType[ValueErrorType[\"Date\"] = 20] = \"Date\";\n ValueErrorType[ValueErrorType[\"Function\"] = 21] = \"Function\";\n ValueErrorType[ValueErrorType[\"IntegerExclusiveMaximum\"] = 22] = \"IntegerExclusiveMaximum\";\n ValueErrorType[ValueErrorType[\"IntegerExclusiveMinimum\"] = 23] = \"IntegerExclusiveMinimum\";\n ValueErrorType[ValueErrorType[\"IntegerMaximum\"] = 24] = \"IntegerMaximum\";\n ValueErrorType[ValueErrorType[\"IntegerMinimum\"] = 25] = \"IntegerMinimum\";\n ValueErrorType[ValueErrorType[\"IntegerMultipleOf\"] = 26] = \"IntegerMultipleOf\";\n ValueErrorType[ValueErrorType[\"Integer\"] = 27] = \"Integer\";\n ValueErrorType[ValueErrorType[\"IntersectUnevaluatedProperties\"] = 28] = \"IntersectUnevaluatedProperties\";\n ValueErrorType[ValueErrorType[\"Intersect\"] = 29] = \"Intersect\";\n ValueErrorType[ValueErrorType[\"Iterator\"] = 30] = \"Iterator\";\n ValueErrorType[ValueErrorType[\"Kind\"] = 31] = \"Kind\";\n ValueErrorType[ValueErrorType[\"Literal\"] = 32] = \"Literal\";\n ValueErrorType[ValueErrorType[\"Never\"] = 33] = \"Never\";\n ValueErrorType[ValueErrorType[\"Not\"] = 34] = \"Not\";\n ValueErrorType[ValueErrorType[\"Null\"] = 35] = \"Null\";\n ValueErrorType[ValueErrorType[\"NumberExclusiveMaximum\"] = 36] = \"NumberExclusiveMaximum\";\n ValueErrorType[ValueErrorType[\"NumberExclusiveMinimum\"] = 37] = \"NumberExclusiveMinimum\";\n ValueErrorType[ValueErrorType[\"NumberMaximum\"] = 38] = \"NumberMaximum\";\n ValueErrorType[ValueErrorType[\"NumberMinimum\"] = 39] = \"NumberMinimum\";\n ValueErrorType[ValueErrorType[\"NumberMultipleOf\"] = 40] = \"NumberMultipleOf\";\n ValueErrorType[ValueErrorType[\"Number\"] = 41] = \"Number\";\n ValueErrorType[ValueErrorType[\"ObjectAdditionalProperties\"] = 42] = \"ObjectAdditionalProperties\";\n ValueErrorType[ValueErrorType[\"ObjectMaxProperties\"] = 43] = \"ObjectMaxProperties\";\n ValueErrorType[ValueErrorType[\"ObjectMinProperties\"] = 44] = \"ObjectMinProperties\";\n ValueErrorType[ValueErrorType[\"ObjectRequiredProperty\"] = 45] = \"ObjectRequiredProperty\";\n ValueErrorType[ValueErrorType[\"Object\"] = 46] = \"Object\";\n ValueErrorType[ValueErrorType[\"Promise\"] = 47] = \"Promise\";\n ValueErrorType[ValueErrorType[\"StringFormatUnknown\"] = 48] = \"StringFormatUnknown\";\n ValueErrorType[ValueErrorType[\"StringFormat\"] = 49] = \"StringFormat\";\n ValueErrorType[ValueErrorType[\"StringMaxLength\"] = 50] = \"StringMaxLength\";\n ValueErrorType[ValueErrorType[\"StringMinLength\"] = 51] = \"StringMinLength\";\n ValueErrorType[ValueErrorType[\"StringPattern\"] = 52] = \"StringPattern\";\n ValueErrorType[ValueErrorType[\"String\"] = 53] = \"String\";\n ValueErrorType[ValueErrorType[\"Symbol\"] = 54] = \"Symbol\";\n ValueErrorType[ValueErrorType[\"TupleLength\"] = 55] = \"TupleLength\";\n ValueErrorType[ValueErrorType[\"Tuple\"] = 56] = \"Tuple\";\n ValueErrorType[ValueErrorType[\"Uint8ArrayMaxByteLength\"] = 57] = \"Uint8ArrayMaxByteLength\";\n ValueErrorType[ValueErrorType[\"Uint8ArrayMinByteLength\"] = 58] = \"Uint8ArrayMinByteLength\";\n ValueErrorType[ValueErrorType[\"Uint8Array\"] = 59] = \"Uint8Array\";\n ValueErrorType[ValueErrorType[\"Undefined\"] = 60] = \"Undefined\";\n ValueErrorType[ValueErrorType[\"Union\"] = 61] = \"Union\";\n ValueErrorType[ValueErrorType[\"Void\"] = 62] = \"Void\";\n})(ValueErrorType || (exports.ValueErrorType = ValueErrorType = {}));\n// --------------------------------------------------------------------------\n// ValueErrors\n// --------------------------------------------------------------------------\nclass ValueErrorsUnknownTypeError extends Types.TypeBoxError {\n constructor(schema) {\n super('Unknown type');\n this.schema = schema;\n }\n}\nexports.ValueErrorsUnknownTypeError = ValueErrorsUnknownTypeError;\n// --------------------------------------------------------------------------\n// EscapeKey\n// --------------------------------------------------------------------------\nfunction EscapeKey(key) {\n return key.replace(/~/g, '~0').replace(/\\//g, '~1'); // RFC6901 Path\n}\nexports.EscapeKey = EscapeKey;\n// --------------------------------------------------------------------------\n// Guards\n// --------------------------------------------------------------------------\nfunction IsDefined(value) {\n return value !== undefined;\n}\n// --------------------------------------------------------------------------\n// ValueErrorIterator\n// --------------------------------------------------------------------------\nclass ValueErrorIterator {\n constructor(iterator) {\n this.iterator = iterator;\n }\n [Symbol.iterator]() {\n return this.iterator;\n }\n /** Returns the first value error or undefined if no errors */\n First() {\n const next = this.iterator.next();\n return next.done ? undefined : next.value;\n }\n}\nexports.ValueErrorIterator = ValueErrorIterator;\n// --------------------------------------------------------------------------\n// Create\n// --------------------------------------------------------------------------\nfunction Create(type, schema, path, value) {\n return { type, schema, path, value, message: system_1.TypeSystemErrorFunction.Get()(schema, type) };\n}\n// --------------------------------------------------------------------------\n// Types\n// --------------------------------------------------------------------------\nfunction* TAny(schema, references, path, value) { }\nfunction* TArray(schema, references, path, value) {\n if (!(0, guard_1.IsArray)(value)) {\n return yield Create(ValueErrorType.Array, schema, path, value);\n }\n if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {\n yield Create(ValueErrorType.ArrayMinItems, schema, path, value);\n }\n if (IsDefined(schema.maxItems) && !(value.length <= schema.maxItems)) {\n yield Create(ValueErrorType.ArrayMaxItems, schema, path, value);\n }\n for (let i = 0; i < value.length; i++) {\n yield* Visit(schema.items, references, `${path}/${i}`, value[i]);\n }\n // prettier-ignore\n if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) {\n const hashed = (0, hash_1.Hash)(element);\n if (set.has(hashed)) {\n return false;\n }\n else {\n set.add(hashed);\n }\n } return true; })())) {\n yield Create(ValueErrorType.ArrayUniqueItems, schema, path, value);\n }\n // contains\n if (!(IsDefined(schema.contains) || IsDefined(schema.minContains) || IsDefined(schema.maxContains))) {\n return;\n }\n const containsSchema = IsDefined(schema.contains) ? schema.contains : Types.Type.Never();\n const containsCount = value.reduce((acc, value, index) => (Visit(containsSchema, references, `${path}${index}`, value).next().done === true ? acc + 1 : acc), 0);\n if (containsCount === 0) {\n yield Create(ValueErrorType.ArrayContains, schema, path, value);\n }\n if ((0, guard_1.IsNumber)(schema.minContains) && containsCount < schema.minContains) {\n yield Create(ValueErrorType.ArrayMinContains, schema, path, value);\n }\n if ((0, guard_1.IsNumber)(schema.maxContains) && containsCount > schema.maxContains) {\n yield Create(ValueErrorType.ArrayMaxContains, schema, path, value);\n }\n}\nfunction* TAsyncIterator(schema, references, path, value) {\n if (!(0, guard_1.IsAsyncIterator)(value))\n yield Create(ValueErrorType.AsyncIterator, schema, path, value);\n}\nfunction* TBigInt(schema, references, path, value) {\n if (!(0, guard_1.IsBigInt)(value))\n return yield Create(ValueErrorType.BigInt, schema, path, value);\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n yield Create(ValueErrorType.BigIntExclusiveMaximum, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n yield Create(ValueErrorType.BigIntExclusiveMinimum, schema, path, value);\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n yield Create(ValueErrorType.BigIntMaximum, schema, path, value);\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n yield Create(ValueErrorType.BigIntMinimum, schema, path, value);\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === BigInt(0))) {\n yield Create(ValueErrorType.BigIntMultipleOf, schema, path, value);\n }\n}\nfunction* TBoolean(schema, references, path, value) {\n if (!(0, guard_1.IsBoolean)(value))\n yield Create(ValueErrorType.Boolean, schema, path, value);\n}\nfunction* TConstructor(schema, references, path, value) {\n yield* Visit(schema.returns, references, path, value.prototype);\n}\nfunction* TDate(schema, references, path, value) {\n if (!(0, guard_1.IsDate)(value))\n return yield Create(ValueErrorType.Date, schema, path, value);\n if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {\n yield Create(ValueErrorType.DateExclusiveMaximumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimumTimestamp) && !(value.getTime() > schema.exclusiveMinimumTimestamp)) {\n yield Create(ValueErrorType.DateExclusiveMinimumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.maximumTimestamp) && !(value.getTime() <= schema.maximumTimestamp)) {\n yield Create(ValueErrorType.DateMaximumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.minimumTimestamp) && !(value.getTime() >= schema.minimumTimestamp)) {\n yield Create(ValueErrorType.DateMinimumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.multipleOfTimestamp) && !(value.getTime() % schema.multipleOfTimestamp === 0)) {\n yield Create(ValueErrorType.DateMultipleOfTimestamp, schema, path, value);\n }\n}\nfunction* TFunction(schema, references, path, value) {\n if (!(0, guard_1.IsFunction)(value))\n yield Create(ValueErrorType.Function, schema, path, value);\n}\nfunction* TInteger(schema, references, path, value) {\n if (!(0, guard_1.IsInteger)(value))\n return yield Create(ValueErrorType.Integer, schema, path, value);\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n yield Create(ValueErrorType.IntegerExclusiveMaximum, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n yield Create(ValueErrorType.IntegerExclusiveMinimum, schema, path, value);\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n yield Create(ValueErrorType.IntegerMaximum, schema, path, value);\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n yield Create(ValueErrorType.IntegerMinimum, schema, path, value);\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n yield Create(ValueErrorType.IntegerMultipleOf, schema, path, value);\n }\n}\nfunction* TIntersect(schema, references, path, value) {\n for (const inner of schema.allOf) {\n const next = Visit(inner, references, path, value).next();\n if (!next.done) {\n yield Create(ValueErrorType.Intersect, schema, path, value);\n yield next.value;\n }\n }\n if (schema.unevaluatedProperties === false) {\n const keyCheck = new RegExp(Types.KeyResolver.ResolvePattern(schema));\n for (const valueKey of Object.getOwnPropertyNames(value)) {\n if (!keyCheck.test(valueKey)) {\n yield Create(ValueErrorType.IntersectUnevaluatedProperties, schema, `${path}/${valueKey}`, value);\n }\n }\n }\n if (typeof schema.unevaluatedProperties === 'object') {\n const keyCheck = new RegExp(Types.KeyResolver.ResolvePattern(schema));\n for (const valueKey of Object.getOwnPropertyNames(value)) {\n if (!keyCheck.test(valueKey)) {\n const next = Visit(schema.unevaluatedProperties, references, `${path}/${valueKey}`, value[valueKey]).next();\n if (!next.done)\n yield next.value; // yield interior\n }\n }\n }\n}\nfunction* TIterator(schema, references, path, value) {\n if (!(0, guard_1.IsIterator)(value))\n yield Create(ValueErrorType.Iterator, schema, path, value);\n}\nfunction* TLiteral(schema, references, path, value) {\n if (!(value === schema.const))\n yield Create(ValueErrorType.Literal, schema, path, value);\n}\nfunction* TNever(schema, references, path, value) {\n yield Create(ValueErrorType.Never, schema, path, value);\n}\nfunction* TNot(schema, references, path, value) {\n if (Visit(schema.not, references, path, value).next().done === true)\n yield Create(ValueErrorType.Not, schema, path, value);\n}\nfunction* TNull(schema, references, path, value) {\n if (!(0, guard_1.IsNull)(value))\n yield Create(ValueErrorType.Null, schema, path, value);\n}\nfunction* TNumber(schema, references, path, value) {\n if (!system_1.TypeSystemPolicy.IsNumberLike(value))\n return yield Create(ValueErrorType.Number, schema, path, value);\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n yield Create(ValueErrorType.NumberExclusiveMaximum, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n yield Create(ValueErrorType.NumberExclusiveMinimum, schema, path, value);\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n yield Create(ValueErrorType.NumberMaximum, schema, path, value);\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n yield Create(ValueErrorType.NumberMinimum, schema, path, value);\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n yield Create(ValueErrorType.NumberMultipleOf, schema, path, value);\n }\n}\nfunction* TObject(schema, references, path, value) {\n if (!system_1.TypeSystemPolicy.IsObjectLike(value))\n return yield Create(ValueErrorType.Object, schema, path, value);\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n yield Create(ValueErrorType.ObjectMinProperties, schema, path, value);\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n yield Create(ValueErrorType.ObjectMaxProperties, schema, path, value);\n }\n const requiredKeys = Array.isArray(schema.required) ? schema.required : [];\n const knownKeys = Object.getOwnPropertyNames(schema.properties);\n const unknownKeys = Object.getOwnPropertyNames(value);\n for (const requiredKey of requiredKeys) {\n if (unknownKeys.includes(requiredKey))\n continue;\n yield Create(ValueErrorType.ObjectRequiredProperty, schema.properties[requiredKey], `${path}/${EscapeKey(requiredKey)}`, undefined);\n }\n if (schema.additionalProperties === false) {\n for (const valueKey of unknownKeys) {\n if (!knownKeys.includes(valueKey)) {\n yield Create(ValueErrorType.ObjectAdditionalProperties, schema, `${path}/${EscapeKey(valueKey)}`, value[valueKey]);\n }\n }\n }\n if (typeof schema.additionalProperties === 'object') {\n for (const valueKey of unknownKeys) {\n if (knownKeys.includes(valueKey))\n continue;\n yield* Visit(schema.additionalProperties, references, `${path}/${EscapeKey(valueKey)}`, value[valueKey]);\n }\n }\n for (const knownKey of knownKeys) {\n const property = schema.properties[knownKey];\n if (schema.required && schema.required.includes(knownKey)) {\n yield* Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]);\n if (Types.ExtendsUndefined.Check(schema) && !(knownKey in value)) {\n yield Create(ValueErrorType.ObjectRequiredProperty, property, `${path}/${EscapeKey(knownKey)}`, undefined);\n }\n }\n else {\n if (system_1.TypeSystemPolicy.IsExactOptionalProperty(value, knownKey)) {\n yield* Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]);\n }\n }\n }\n}\nfunction* TPromise(schema, references, path, value) {\n if (!(0, guard_1.IsPromise)(value))\n yield Create(ValueErrorType.Promise, schema, path, value);\n}\nfunction* TRecord(schema, references, path, value) {\n if (!system_1.TypeSystemPolicy.IsRecordLike(value))\n return yield Create(ValueErrorType.Object, schema, path, value);\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n yield Create(ValueErrorType.ObjectMinProperties, schema, path, value);\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n yield Create(ValueErrorType.ObjectMaxProperties, schema, path, value);\n }\n const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0];\n const regex = new RegExp(patternKey);\n for (const [propertyKey, propertyValue] of Object.entries(value)) {\n if (regex.test(propertyKey))\n yield* Visit(patternSchema, references, `${path}/${EscapeKey(propertyKey)}`, propertyValue);\n }\n if (typeof schema.additionalProperties === 'object') {\n for (const [propertyKey, propertyValue] of Object.entries(value)) {\n if (!regex.test(propertyKey))\n yield* Visit(schema.additionalProperties, references, `${path}/${EscapeKey(propertyKey)}`, propertyValue);\n }\n }\n if (schema.additionalProperties === false) {\n for (const [propertyKey, propertyValue] of Object.entries(value)) {\n if (regex.test(propertyKey))\n continue;\n return yield Create(ValueErrorType.ObjectAdditionalProperties, schema, `${path}/${EscapeKey(propertyKey)}`, propertyValue);\n }\n }\n}\nfunction* TRef(schema, references, path, value) {\n yield* Visit((0, deref_1.Deref)(schema, references), references, path, value);\n}\nfunction* TString(schema, references, path, value) {\n if (!(0, guard_1.IsString)(value))\n return yield Create(ValueErrorType.String, schema, path, value);\n if (IsDefined(schema.minLength) && !(value.length >= schema.minLength)) {\n yield Create(ValueErrorType.StringMinLength, schema, path, value);\n }\n if (IsDefined(schema.maxLength) && !(value.length <= schema.maxLength)) {\n yield Create(ValueErrorType.StringMaxLength, schema, path, value);\n }\n if ((0, guard_1.IsString)(schema.pattern)) {\n const regex = new RegExp(schema.pattern);\n if (!regex.test(value)) {\n yield Create(ValueErrorType.StringPattern, schema, path, value);\n }\n }\n if ((0, guard_1.IsString)(schema.format)) {\n if (!Types.FormatRegistry.Has(schema.format)) {\n yield Create(ValueErrorType.StringFormatUnknown, schema, path, value);\n }\n else {\n const format = Types.FormatRegistry.Get(schema.format);\n if (!format(value)) {\n yield Create(ValueErrorType.StringFormat, schema, path, value);\n }\n }\n }\n}\nfunction* TSymbol(schema, references, path, value) {\n if (!(0, guard_1.IsSymbol)(value))\n yield Create(ValueErrorType.Symbol, schema, path, value);\n}\nfunction* TTemplateLiteral(schema, references, path, value) {\n if (!(0, guard_1.IsString)(value))\n return yield Create(ValueErrorType.String, schema, path, value);\n const regex = new RegExp(schema.pattern);\n if (!regex.test(value)) {\n yield Create(ValueErrorType.StringPattern, schema, path, value);\n }\n}\nfunction* TThis(schema, references, path, value) {\n yield* Visit((0, deref_1.Deref)(schema, references), references, path, value);\n}\nfunction* TTuple(schema, references, path, value) {\n if (!(0, guard_1.IsArray)(value))\n return yield Create(ValueErrorType.Tuple, schema, path, value);\n if (schema.items === undefined && !(value.length === 0)) {\n return yield Create(ValueErrorType.TupleLength, schema, path, value);\n }\n if (!(value.length === schema.maxItems)) {\n return yield Create(ValueErrorType.TupleLength, schema, path, value);\n }\n if (!schema.items) {\n return;\n }\n for (let i = 0; i < schema.items.length; i++) {\n yield* Visit(schema.items[i], references, `${path}/${i}`, value[i]);\n }\n}\nfunction* TUndefined(schema, references, path, value) {\n if (!(0, guard_1.IsUndefined)(value))\n yield Create(ValueErrorType.Undefined, schema, path, value);\n}\nfunction* TUnion(schema, references, path, value) {\n let count = 0;\n for (const subschema of schema.anyOf) {\n const errors = [...Visit(subschema, references, path, value)];\n if (errors.length === 0)\n return; // matched\n count += errors.length;\n }\n if (count > 0) {\n yield Create(ValueErrorType.Union, schema, path, value);\n }\n}\nfunction* TUint8Array(schema, references, path, value) {\n if (!(0, guard_1.IsUint8Array)(value))\n return yield Create(ValueErrorType.Uint8Array, schema, path, value);\n if (IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) {\n yield Create(ValueErrorType.Uint8ArrayMaxByteLength, schema, path, value);\n }\n if (IsDefined(schema.minByteLength) && !(value.length >= schema.minByteLength)) {\n yield Create(ValueErrorType.Uint8ArrayMinByteLength, schema, path, value);\n }\n}\nfunction* TUnknown(schema, references, path, value) { }\nfunction* TVoid(schema, references, path, value) {\n if (!system_1.TypeSystemPolicy.IsVoidLike(value))\n yield Create(ValueErrorType.Void, schema, path, value);\n}\nfunction* TKind(schema, references, path, value) {\n const check = Types.TypeRegistry.Get(schema[Types.Kind]);\n if (!check(schema, value))\n yield Create(ValueErrorType.Kind, schema, path, value);\n}\nfunction* Visit(schema, references, path, value) {\n const references_ = IsDefined(schema.$id) ? [...references, schema] : references;\n const schema_ = schema;\n switch (schema_[Types.Kind]) {\n case 'Any':\n return yield* TAny(schema_, references_, path, value);\n case 'Array':\n return yield* TArray(schema_, references_, path, value);\n case 'AsyncIterator':\n return yield* TAsyncIterator(schema_, references_, path, value);\n case 'BigInt':\n return yield* TBigInt(schema_, references_, path, value);\n case 'Boolean':\n return yield* TBoolean(schema_, references_, path, value);\n case 'Constructor':\n return yield* TConstructor(schema_, references_, path, value);\n case 'Date':\n return yield* TDate(schema_, references_, path, value);\n case 'Function':\n return yield* TFunction(schema_, references_, path, value);\n case 'Integer':\n return yield* TInteger(schema_, references_, path, value);\n case 'Intersect':\n return yield* TIntersect(schema_, references_, path, value);\n case 'Iterator':\n return yield* TIterator(schema_, references_, path, value);\n case 'Literal':\n return yield* TLiteral(schema_, references_, path, value);\n case 'Never':\n return yield* TNever(schema_, references_, path, value);\n case 'Not':\n return yield* TNot(schema_, references_, path, value);\n case 'Null':\n return yield* TNull(schema_, references_, path, value);\n case 'Number':\n return yield* TNumber(schema_, references_, path, value);\n case 'Object':\n return yield* TObject(schema_, references_, path, value);\n case 'Promise':\n return yield* TPromise(schema_, references_, path, value);\n case 'Record':\n return yield* TRecord(schema_, references_, path, value);\n case 'Ref':\n return yield* TRef(schema_, references_, path, value);\n case 'String':\n return yield* TString(schema_, references_, path, value);\n case 'Symbol':\n return yield* TSymbol(schema_, references_, path, value);\n case 'TemplateLiteral':\n return yield* TTemplateLiteral(schema_, references_, path, value);\n case 'This':\n return yield* TThis(schema_, references_, path, value);\n case 'Tuple':\n return yield* TTuple(schema_, references_, path, value);\n case 'Undefined':\n return yield* TUndefined(schema_, references_, path, value);\n case 'Union':\n return yield* TUnion(schema_, references_, path, value);\n case 'Uint8Array':\n return yield* TUint8Array(schema_, references_, path, value);\n case 'Unknown':\n return yield* TUnknown(schema_, references_, path, value);\n case 'Void':\n return yield* TVoid(schema_, references_, path, value);\n default:\n if (!Types.TypeRegistry.Has(schema_[Types.Kind]))\n throw new ValueErrorsUnknownTypeError(schema);\n return yield* TKind(schema_, references_, path, value);\n }\n}\n/** Returns an iterator for each error in this value. */\nfunction Errors(...args) {\n const iterator = args.length === 3 ? Visit(args[0], args[1], '', args[2]) : Visit(args[0], [], '', args[1]);\n return new ValueErrorIterator(iterator);\n}\nexports.Errors = Errors;\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/errors\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./errors\"), exports);\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/system\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueErrorType = void 0;\nvar errors_1 = require(\"../errors/errors\");\nObject.defineProperty(exports, \"ValueErrorType\", { enumerable: true, get: function () { return errors_1.ValueErrorType; } });\n__exportStar(require(\"./system\"), exports);\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/value\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Check = exports.ValueCheckUnknownTypeError = void 0;\nconst guard_1 = require(\"./guard\");\nconst index_1 = require(\"../system/index\");\nconst deref_1 = require(\"./deref\");\nconst hash_1 = require(\"./hash\");\nconst Types = require(\"../typebox\");\n// --------------------------------------------------------------------------\n// Errors\n// --------------------------------------------------------------------------\nclass ValueCheckUnknownTypeError extends Types.TypeBoxError {\n constructor(schema) {\n super(`Unknown type`);\n this.schema = schema;\n }\n}\nexports.ValueCheckUnknownTypeError = ValueCheckUnknownTypeError;\n// --------------------------------------------------------------------------\n// TypeGuards\n// --------------------------------------------------------------------------\nfunction IsAnyOrUnknown(schema) {\n return schema[Types.Kind] === 'Any' || schema[Types.Kind] === 'Unknown';\n}\n// --------------------------------------------------------------------------\n// Guards\n// --------------------------------------------------------------------------\nfunction IsDefined(value) {\n return value !== undefined;\n}\n// --------------------------------------------------------------------------\n// Types\n// --------------------------------------------------------------------------\nfunction TAny(schema, references, value) {\n return true;\n}\nfunction TArray(schema, references, value) {\n if (!(0, guard_1.IsArray)(value))\n return false;\n if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {\n return false;\n }\n if (IsDefined(schema.maxItems) && !(value.length <= schema.maxItems)) {\n return false;\n }\n if (!value.every((value) => Visit(schema.items, references, value))) {\n return false;\n }\n // prettier-ignore\n if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) {\n const hashed = (0, hash_1.Hash)(element);\n if (set.has(hashed)) {\n return false;\n }\n else {\n set.add(hashed);\n }\n } return true; })())) {\n return false;\n }\n // contains\n if (!(IsDefined(schema.contains) || (0, guard_1.IsNumber)(schema.minContains) || (0, guard_1.IsNumber)(schema.maxContains))) {\n return true; // exit\n }\n const containsSchema = IsDefined(schema.contains) ? schema.contains : Types.Type.Never();\n const containsCount = value.reduce((acc, value) => (Visit(containsSchema, references, value) ? acc + 1 : acc), 0);\n if (containsCount === 0) {\n return false;\n }\n if ((0, guard_1.IsNumber)(schema.minContains) && containsCount < schema.minContains) {\n return false;\n }\n if ((0, guard_1.IsNumber)(schema.maxContains) && containsCount > schema.maxContains) {\n return false;\n }\n return true;\n}\nfunction TAsyncIterator(schema, references, value) {\n return (0, guard_1.IsAsyncIterator)(value);\n}\nfunction TBigInt(schema, references, value) {\n if (!(0, guard_1.IsBigInt)(value))\n return false;\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n return false;\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n return false;\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n return false;\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === BigInt(0))) {\n return false;\n }\n return true;\n}\nfunction TBoolean(schema, references, value) {\n return (0, guard_1.IsBoolean)(value);\n}\nfunction TConstructor(schema, references, value) {\n return Visit(schema.returns, references, value.prototype);\n}\nfunction TDate(schema, references, value) {\n if (!(0, guard_1.IsDate)(value))\n return false;\n if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimumTimestamp) && !(value.getTime() > schema.exclusiveMinimumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.maximumTimestamp) && !(value.getTime() <= schema.maximumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.minimumTimestamp) && !(value.getTime() >= schema.minimumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.multipleOfTimestamp) && !(value.getTime() % schema.multipleOfTimestamp === 0)) {\n return false;\n }\n return true;\n}\nfunction TFunction(schema, references, value) {\n return (0, guard_1.IsFunction)(value);\n}\nfunction TInteger(schema, references, value) {\n if (!(0, guard_1.IsInteger)(value)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n return false;\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n return false;\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n return false;\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n return false;\n }\n return true;\n}\nfunction TIntersect(schema, references, value) {\n const check1 = schema.allOf.every((schema) => Visit(schema, references, value));\n if (schema.unevaluatedProperties === false) {\n const keyPattern = new RegExp(Types.KeyResolver.ResolvePattern(schema));\n const check2 = Object.getOwnPropertyNames(value).every((key) => keyPattern.test(key));\n return check1 && check2;\n }\n else if (Types.TypeGuard.TSchema(schema.unevaluatedProperties)) {\n const keyCheck = new RegExp(Types.KeyResolver.ResolvePattern(schema));\n const check2 = Object.getOwnPropertyNames(value).every((key) => keyCheck.test(key) || Visit(schema.unevaluatedProperties, references, value[key]));\n return check1 && check2;\n }\n else {\n return check1;\n }\n}\nfunction TIterator(schema, references, value) {\n return (0, guard_1.IsIterator)(value);\n}\nfunction TLiteral(schema, references, value) {\n return value === schema.const;\n}\nfunction TNever(schema, references, value) {\n return false;\n}\nfunction TNot(schema, references, value) {\n return !Visit(schema.not, references, value);\n}\nfunction TNull(schema, references, value) {\n return (0, guard_1.IsNull)(value);\n}\nfunction TNumber(schema, references, value) {\n if (!index_1.TypeSystemPolicy.IsNumberLike(value))\n return false;\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n return false;\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n return false;\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n return false;\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n return false;\n }\n return true;\n}\nfunction TObject(schema, references, value) {\n if (!index_1.TypeSystemPolicy.IsObjectLike(value))\n return false;\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n return false;\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n return false;\n }\n const knownKeys = Object.getOwnPropertyNames(schema.properties);\n for (const knownKey of knownKeys) {\n const property = schema.properties[knownKey];\n if (schema.required && schema.required.includes(knownKey)) {\n if (!Visit(property, references, value[knownKey])) {\n return false;\n }\n if ((Types.ExtendsUndefined.Check(property) || IsAnyOrUnknown(property)) && !(knownKey in value)) {\n return false;\n }\n }\n else {\n if (index_1.TypeSystemPolicy.IsExactOptionalProperty(value, knownKey) && !Visit(property, references, value[knownKey])) {\n return false;\n }\n }\n }\n if (schema.additionalProperties === false) {\n const valueKeys = Object.getOwnPropertyNames(value);\n // optimization: value is valid if schemaKey length matches the valueKey length\n if (schema.required && schema.required.length === knownKeys.length && valueKeys.length === knownKeys.length) {\n return true;\n }\n else {\n return valueKeys.every((valueKey) => knownKeys.includes(valueKey));\n }\n }\n else if (typeof schema.additionalProperties === 'object') {\n const valueKeys = Object.getOwnPropertyNames(value);\n return valueKeys.every((key) => knownKeys.includes(key) || Visit(schema.additionalProperties, references, value[key]));\n }\n else {\n return true;\n }\n}\nfunction TPromise(schema, references, value) {\n return (0, guard_1.IsPromise)(value);\n}\nfunction TRecord(schema, references, value) {\n if (!index_1.TypeSystemPolicy.IsRecordLike(value)) {\n return false;\n }\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n return false;\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n return false;\n }\n const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0];\n const regex = new RegExp(patternKey);\n // prettier-ignore\n const check1 = Object.entries(value).every(([key, value]) => {\n return (regex.test(key)) ? Visit(patternSchema, references, value) : true;\n });\n // prettier-ignore\n const check2 = typeof schema.additionalProperties === 'object' ? Object.entries(value).every(([key, value]) => {\n return (!regex.test(key)) ? Visit(schema.additionalProperties, references, value) : true;\n }) : true;\n const check3 = schema.additionalProperties === false\n ? Object.getOwnPropertyNames(value).every((key) => {\n return regex.test(key);\n })\n : true;\n return check1 && check2 && check3;\n}\nfunction TRef(schema, references, value) {\n return Visit((0, deref_1.Deref)(schema, references), references, value);\n}\nfunction TString(schema, references, value) {\n if (!(0, guard_1.IsString)(value)) {\n return false;\n }\n if (IsDefined(schema.minLength)) {\n if (!(value.length >= schema.minLength))\n return false;\n }\n if (IsDefined(schema.maxLength)) {\n if (!(value.length <= schema.maxLength))\n return false;\n }\n if (IsDefined(schema.pattern)) {\n const regex = new RegExp(schema.pattern);\n if (!regex.test(value))\n return false;\n }\n if (IsDefined(schema.format)) {\n if (!Types.FormatRegistry.Has(schema.format))\n return false;\n const func = Types.FormatRegistry.Get(schema.format);\n return func(value);\n }\n return true;\n}\nfunction TSymbol(schema, references, value) {\n return (0, guard_1.IsSymbol)(value);\n}\nfunction TTemplateLiteral(schema, references, value) {\n return (0, guard_1.IsString)(value) && new RegExp(schema.pattern).test(value);\n}\nfunction TThis(schema, references, value) {\n return Visit((0, deref_1.Deref)(schema, references), references, value);\n}\nfunction TTuple(schema, references, value) {\n if (!(0, guard_1.IsArray)(value)) {\n return false;\n }\n if (schema.items === undefined && !(value.length === 0)) {\n return false;\n }\n if (!(value.length === schema.maxItems)) {\n return false;\n }\n if (!schema.items) {\n return true;\n }\n for (let i = 0; i < schema.items.length; i++) {\n if (!Visit(schema.items[i], references, value[i]))\n return false;\n }\n return true;\n}\nfunction TUndefined(schema, references, value) {\n return (0, guard_1.IsUndefined)(value);\n}\nfunction TUnion(schema, references, value) {\n return schema.anyOf.some((inner) => Visit(inner, references, value));\n}\nfunction TUint8Array(schema, references, value) {\n if (!(0, guard_1.IsUint8Array)(value)) {\n return false;\n }\n if (IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) {\n return false;\n }\n if (IsDefined(schema.minByteLength) && !(value.length >= schema.minByteLength)) {\n return false;\n }\n return true;\n}\nfunction TUnknown(schema, references, value) {\n return true;\n}\nfunction TVoid(schema, references, value) {\n return index_1.TypeSystemPolicy.IsVoidLike(value);\n}\nfunction TKind(schema, references, value) {\n if (!Types.TypeRegistry.Has(schema[Types.Kind]))\n return false;\n const func = Types.TypeRegistry.Get(schema[Types.Kind]);\n return func(schema, value);\n}\nfunction Visit(schema, references, value) {\n const references_ = IsDefined(schema.$id) ? [...references, schema] : references;\n const schema_ = schema;\n switch (schema_[Types.Kind]) {\n case 'Any':\n return TAny(schema_, references_, value);\n case 'Array':\n return TArray(schema_, references_, value);\n case 'AsyncIterator':\n return TAsyncIterator(schema_, references_, value);\n case 'BigInt':\n return TBigInt(schema_, references_, value);\n case 'Boolean':\n return TBoolean(schema_, references_, value);\n case 'Constructor':\n return TConstructor(schema_, references_, value);\n case 'Date':\n return TDate(schema_, references_, value);\n case 'Function':\n return TFunction(schema_, references_, value);\n case 'Integer':\n return TInteger(schema_, references_, value);\n case 'Intersect':\n return TIntersect(schema_, references_, value);\n case 'Iterator':\n return TIterator(schema_, references_, value);\n case 'Literal':\n return TLiteral(schema_, references_, value);\n case 'Never':\n return TNever(schema_, references_, value);\n case 'Not':\n return TNot(schema_, references_, value);\n case 'Null':\n return TNull(schema_, references_, value);\n case 'Number':\n return TNumber(schema_, references_, value);\n case 'Object':\n return TObject(schema_, references_, value);\n case 'Promise':\n return TPromise(schema_, references_, value);\n case 'Record':\n return TRecord(schema_, references_, value);\n case 'Ref':\n return TRef(schema_, references_, value);\n case 'String':\n return TString(schema_, references_, value);\n case 'Symbol':\n return TSymbol(schema_, references_, value);\n case 'TemplateLiteral':\n return TTemplateLiteral(schema_, references_, value);\n case 'This':\n return TThis(schema_, references_, value);\n case 'Tuple':\n return TTuple(schema_, references_, value);\n case 'Undefined':\n return TUndefined(schema_, references_, value);\n case 'Union':\n return TUnion(schema_, references_, value);\n case 'Uint8Array':\n return TUint8Array(schema_, references_, value);\n case 'Unknown':\n return TUnknown(schema_, references_, value);\n case 'Void':\n return TVoid(schema_, references_, value);\n default:\n if (!Types.TypeRegistry.Has(schema_[Types.Kind]))\n throw new ValueCheckUnknownTypeError(schema_);\n return TKind(schema_, references_, value);\n }\n}\n/** Returns true if the value matches the given type. */\nfunction Check(...args) {\n return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);\n}\nexports.Check = Check;\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/value\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EncodeTransform = exports.DecodeTransform = exports.HasTransform = exports.TransformEncodeError = exports.TransformDecodeError = exports.TransformEncodeCheckError = exports.TransformDecodeCheckError = void 0;\nconst guard_1 = require(\"./guard\");\nconst deref_1 = require(\"./deref\");\nconst check_1 = require(\"./check\");\nconst Types = require(\"../typebox\");\n// -------------------------------------------------------------------------\n// Errors\n// -------------------------------------------------------------------------\nclass TransformDecodeCheckError extends Types.TypeBoxError {\n constructor(schema, value, error) {\n super(`Unable to decode due to invalid value`);\n this.schema = schema;\n this.value = value;\n this.error = error;\n }\n}\nexports.TransformDecodeCheckError = TransformDecodeCheckError;\nclass TransformEncodeCheckError extends Types.TypeBoxError {\n constructor(schema, value, error) {\n super(`Unable to encode due to invalid value`);\n this.schema = schema;\n this.value = value;\n this.error = error;\n }\n}\nexports.TransformEncodeCheckError = TransformEncodeCheckError;\nclass TransformDecodeError extends Types.TypeBoxError {\n constructor(schema, value, error) {\n super(`${error instanceof Error ? error.message : 'Unknown error'}`);\n this.schema = schema;\n this.value = value;\n }\n}\nexports.TransformDecodeError = TransformDecodeError;\nclass TransformEncodeError extends Types.TypeBoxError {\n constructor(schema, value, error) {\n super(`${error instanceof Error ? error.message : 'Unknown error'}`);\n this.schema = schema;\n this.value = value;\n }\n}\nexports.TransformEncodeError = TransformEncodeError;\n// ------------------------------------------------------------------\n// HasTransform\n// ------------------------------------------------------------------\n/** Recursively checks a schema for transform codecs */\nvar HasTransform;\n(function (HasTransform) {\n function TArray(schema, references) {\n return Types.TypeGuard.TTransform(schema) || Visit(schema.items, references);\n }\n function TAsyncIterator(schema, references) {\n return Types.TypeGuard.TTransform(schema) || Visit(schema.items, references);\n }\n function TConstructor(schema, references) {\n return Types.TypeGuard.TTransform(schema) || Visit(schema.returns, references) || schema.parameters.some((schema) => Visit(schema, references));\n }\n function TFunction(schema, references) {\n return Types.TypeGuard.TTransform(schema) || Visit(schema.returns, references) || schema.parameters.some((schema) => Visit(schema, references));\n }\n function TIntersect(schema, references) {\n return Types.TypeGuard.TTransform(schema) || Types.TypeGuard.TTransform(schema.unevaluatedProperties) || schema.allOf.some((schema) => Visit(schema, references));\n }\n function TIterator(schema, references) {\n return Types.TypeGuard.TTransform(schema) || Visit(schema.items, references);\n }\n function TNot(schema, references) {\n return Types.TypeGuard.TTransform(schema) || Visit(schema.not, references);\n }\n function TObject(schema, references) {\n // prettier-ignore\n return (Types.TypeGuard.TTransform(schema) || Object.values(schema.properties).some((schema) => Visit(schema, references)) || Types.TypeGuard.TSchema(schema.additionalProperties) && Visit(schema.additionalProperties, references));\n }\n function TPromise(schema, references) {\n return Types.TypeGuard.TTransform(schema) || Visit(schema.item, references);\n }\n function TRecord(schema, references) {\n const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];\n const property = schema.patternProperties[pattern];\n return Types.TypeGuard.TTransform(schema) || Visit(property, references) || (Types.TypeGuard.TSchema(schema.additionalProperties) && Types.TypeGuard.TTransform(schema.additionalProperties));\n }\n function TRef(schema, references) {\n if (Types.TypeGuard.TTransform(schema))\n return true;\n return Visit((0, deref_1.Deref)(schema, references), references);\n }\n function TThis(schema, references) {\n if (Types.TypeGuard.TTransform(schema))\n return true;\n return Visit((0, deref_1.Deref)(schema, references), references);\n }\n function TTuple(schema, references) {\n return Types.TypeGuard.TTransform(schema) || (!(0, guard_1.IsUndefined)(schema.items) && schema.items.some((schema) => Visit(schema, references)));\n }\n function TUnion(schema, references) {\n return Types.TypeGuard.TTransform(schema) || schema.anyOf.some((schema) => Visit(schema, references));\n }\n function Visit(schema, references) {\n const references_ = (0, guard_1.IsString)(schema.$id) ? [...references, schema] : references;\n const schema_ = schema;\n if (schema.$id && visited.has(schema.$id))\n return false;\n if (schema.$id)\n visited.add(schema.$id);\n switch (schema[Types.Kind]) {\n case 'Array':\n return TArray(schema_, references_);\n case 'AsyncIterator':\n return TAsyncIterator(schema_, references_);\n case 'Constructor':\n return TConstructor(schema_, references_);\n case 'Function':\n return TFunction(schema_, references_);\n case 'Intersect':\n return TIntersect(schema_, references_);\n case 'Iterator':\n return TIterator(schema_, references_);\n case 'Not':\n return TNot(schema_, references_);\n case 'Object':\n return TObject(schema_, references_);\n case 'Promise':\n return TPromise(schema_, references_);\n case 'Record':\n return TRecord(schema_, references_);\n case 'Ref':\n return TRef(schema_, references_);\n case 'This':\n return TThis(schema_, references_);\n case 'Tuple':\n return TTuple(schema_, references_);\n case 'Union':\n return TUnion(schema_, references_);\n default:\n return Types.TypeGuard.TTransform(schema);\n }\n }\n const visited = new Set();\n /** Returns true if this schema contains a transform codec */\n function Has(schema, references) {\n visited.clear();\n return Visit(schema, references);\n }\n HasTransform.Has = Has;\n})(HasTransform || (exports.HasTransform = HasTransform = {}));\n// ------------------------------------------------------------------\n// DecodeTransform\n// ------------------------------------------------------------------\n/** Decodes a value using transform decoders if available. Does not ensure correct results. */\nvar DecodeTransform;\n(function (DecodeTransform) {\n function Default(schema, value) {\n try {\n return Types.TypeGuard.TTransform(schema) ? schema[Types.Transform].Decode(value) : value;\n }\n catch (error) {\n throw new TransformDecodeError(schema, value, error);\n }\n }\n // prettier-ignore\n function TArray(schema, references, value) {\n return ((0, guard_1.IsArray)(value))\n ? Default(schema, value.map((value) => Visit(schema.items, references, value)))\n : Default(schema, value);\n }\n // prettier-ignore\n function TIntersect(schema, references, value) {\n if (!(0, guard_1.IsPlainObject)(value) || (0, guard_1.IsValueType)(value))\n return Default(schema, value);\n const knownKeys = Types.KeyResolver.ResolveKeys(schema, { includePatterns: false });\n const knownProperties = knownKeys.reduce((value, key) => {\n return (key in value)\n ? { ...value, [key]: Visit(Types.IndexedAccessor.Resolve(schema, [key]), references, value[key]) }\n : value;\n }, value);\n if (!Types.TypeGuard.TTransform(schema.unevaluatedProperties)) {\n return Default(schema, knownProperties);\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const unevaluatedProperties = schema.unevaluatedProperties;\n const unknownProperties = unknownKeys.reduce((value, key) => {\n return !knownKeys.includes(key)\n ? { ...value, [key]: Default(unevaluatedProperties, value[key]) }\n : value;\n }, knownProperties);\n return Default(schema, unknownProperties);\n }\n function TNot(schema, references, value) {\n return Default(schema, Visit(schema.not, references, value));\n }\n // prettier-ignore\n function TObject(schema, references, value) {\n if (!(0, guard_1.IsPlainObject)(value))\n return Default(schema, value);\n const knownKeys = Types.KeyResolver.ResolveKeys(schema, { includePatterns: false });\n const knownProperties = knownKeys.reduce((value, key) => {\n return (key in value)\n ? { ...value, [key]: Visit(schema.properties[key], references, value[key]) }\n : value;\n }, value);\n if (!Types.TypeGuard.TSchema(schema.additionalProperties)) {\n return Default(schema, knownProperties);\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const additionalProperties = schema.additionalProperties;\n const unknownProperties = unknownKeys.reduce((value, key) => {\n return !knownKeys.includes(key)\n ? { ...value, [key]: Default(additionalProperties, value[key]) }\n : value;\n }, knownProperties);\n return Default(schema, unknownProperties);\n }\n // prettier-ignore\n function TRecord(schema, references, value) {\n if (!(0, guard_1.IsPlainObject)(value))\n return Default(schema, value);\n const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];\n const knownKeys = new RegExp(pattern);\n const knownProperties = Object.getOwnPropertyNames(value).reduce((value, key) => {\n return knownKeys.test(key)\n ? { ...value, [key]: Visit(schema.patternProperties[pattern], references, value[key]) }\n : value;\n }, value);\n if (!Types.TypeGuard.TSchema(schema.additionalProperties)) {\n return Default(schema, knownProperties);\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const additionalProperties = schema.additionalProperties;\n const unknownProperties = unknownKeys.reduce((value, key) => {\n return !knownKeys.test(key)\n ? { ...value, [key]: Default(additionalProperties, value[key]) }\n : value;\n }, knownProperties);\n return Default(schema, unknownProperties);\n }\n function TRef(schema, references, value) {\n const target = (0, deref_1.Deref)(schema, references);\n return Default(schema, Visit(target, references, value));\n }\n function TThis(schema, references, value) {\n const target = (0, deref_1.Deref)(schema, references);\n return Default(schema, Visit(target, references, value));\n }\n // prettier-ignore\n function TTuple(schema, references, value) {\n return ((0, guard_1.IsArray)(value) && (0, guard_1.IsArray)(schema.items))\n ? Default(schema, schema.items.map((schema, index) => Visit(schema, references, value[index])))\n : Default(schema, value);\n }\n function TUnion(schema, references, value) {\n const defaulted = Default(schema, value);\n for (const subschema of schema.anyOf) {\n if (!(0, check_1.Check)(subschema, references, defaulted))\n continue;\n return Visit(subschema, references, defaulted);\n }\n return defaulted;\n }\n function Visit(schema, references, value) {\n const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;\n const schema_ = schema;\n switch (schema[Types.Kind]) {\n case 'Array':\n return TArray(schema_, references_, value);\n case 'Intersect':\n return TIntersect(schema_, references_, value);\n case 'Not':\n return TNot(schema_, references_, value);\n case 'Object':\n return TObject(schema_, references_, value);\n case 'Record':\n return TRecord(schema_, references_, value);\n case 'Ref':\n return TRef(schema_, references_, value);\n case 'Symbol':\n return Default(schema_, value);\n case 'This':\n return TThis(schema_, references_, value);\n case 'Tuple':\n return TTuple(schema_, references_, value);\n case 'Union':\n return TUnion(schema_, references_, value);\n default:\n return Default(schema_, value);\n }\n }\n function Decode(schema, references, value) {\n return Visit(schema, references, value);\n }\n DecodeTransform.Decode = Decode;\n})(DecodeTransform || (exports.DecodeTransform = DecodeTransform = {}));\n// ------------------------------------------------------------------\n// DecodeTransform\n// ------------------------------------------------------------------\n/** Encodes a value using transform encoders if available. Does not ensure correct results. */\nvar EncodeTransform;\n(function (EncodeTransform) {\n function Default(schema, value) {\n try {\n return Types.TypeGuard.TTransform(schema) ? schema[Types.Transform].Encode(value) : value;\n }\n catch (error) {\n throw new TransformEncodeError(schema, value, error);\n }\n }\n // prettier-ignore\n function TArray(schema, references, value) {\n const defaulted = Default(schema, value);\n return (0, guard_1.IsArray)(defaulted)\n ? defaulted.map((value) => Visit(schema.items, references, value))\n : defaulted;\n }\n // prettier-ignore\n function TIntersect(schema, references, value) {\n const defaulted = Default(schema, value);\n if (!(0, guard_1.IsPlainObject)(value) || (0, guard_1.IsValueType)(value))\n return defaulted;\n const knownKeys = Types.KeyResolver.ResolveKeys(schema, { includePatterns: false });\n const knownProperties = knownKeys.reduce((value, key) => {\n return key in defaulted\n ? { ...value, [key]: Visit(Types.IndexedAccessor.Resolve(schema, [key]), references, value[key]) }\n : value;\n }, defaulted);\n if (!Types.TypeGuard.TTransform(schema.unevaluatedProperties)) {\n return Default(schema, knownProperties);\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const unevaluatedProperties = schema.unevaluatedProperties;\n return unknownKeys.reduce((value, key) => {\n return !knownKeys.includes(key)\n ? { ...value, [key]: Default(unevaluatedProperties, value[key]) }\n : value;\n }, knownProperties);\n }\n function TNot(schema, references, value) {\n return Default(schema.not, Default(schema, value));\n }\n // prettier-ignore\n function TObject(schema, references, value) {\n const defaulted = Default(schema, value);\n if (!(0, guard_1.IsPlainObject)(value))\n return defaulted;\n const knownKeys = Types.KeyResolver.ResolveKeys(schema, { includePatterns: false });\n const knownProperties = knownKeys.reduce((value, key) => {\n return key in value\n ? { ...value, [key]: Visit(schema.properties[key], references, value[key]) }\n : value;\n }, defaulted);\n if (!Types.TypeGuard.TSchema(schema.additionalProperties)) {\n return knownProperties;\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const additionalProperties = schema.additionalProperties;\n return unknownKeys.reduce((value, key) => {\n return !knownKeys.includes(key)\n ? { ...value, [key]: Default(additionalProperties, value[key]) }\n : value;\n }, knownProperties);\n }\n // prettier-ignore\n function TRecord(schema, references, value) {\n const defaulted = Default(schema, value);\n if (!(0, guard_1.IsPlainObject)(value))\n return defaulted;\n const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];\n const knownKeys = new RegExp(pattern);\n const knownProperties = Object.getOwnPropertyNames(value).reduce((value, key) => {\n return knownKeys.test(key)\n ? { ...value, [key]: Visit(schema.patternProperties[pattern], references, value[key]) }\n : value;\n }, defaulted);\n if (!Types.TypeGuard.TSchema(schema.additionalProperties)) {\n return Default(schema, knownProperties);\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const additionalProperties = schema.additionalProperties;\n return unknownKeys.reduce((value, key) => {\n return !knownKeys.test(key)\n ? { ...value, [key]: Default(additionalProperties, value[key]) }\n : value;\n }, knownProperties);\n }\n function TRef(schema, references, value) {\n const target = (0, deref_1.Deref)(schema, references);\n const resolved = Visit(target, references, value);\n return Default(schema, resolved);\n }\n function TThis(schema, references, value) {\n const target = (0, deref_1.Deref)(schema, references);\n const resolved = Visit(target, references, value);\n return Default(schema, resolved);\n }\n function TTuple(schema, references, value) {\n const value1 = Default(schema, value);\n return (0, guard_1.IsArray)(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];\n }\n function TUnion(schema, references, value) {\n // test value against union variants\n for (const subschema of schema.anyOf) {\n if (!(0, check_1.Check)(subschema, references, value))\n continue;\n const value1 = Visit(subschema, references, value);\n return Default(schema, value1);\n }\n // test transformed value against union variants\n for (const subschema of schema.anyOf) {\n const value1 = Visit(subschema, references, value);\n if (!(0, check_1.Check)(schema, references, value1))\n continue;\n return Default(schema, value1);\n }\n return Default(schema, value);\n }\n function Visit(schema, references, value) {\n const references_ = typeof schema.$id === 'string' ? [...references, schema] : references;\n const schema_ = schema;\n switch (schema[Types.Kind]) {\n case 'Array':\n return TArray(schema_, references_, value);\n case 'Intersect':\n return TIntersect(schema_, references_, value);\n case 'Not':\n return TNot(schema_, references_, value);\n case 'Object':\n return TObject(schema_, references_, value);\n case 'Record':\n return TRecord(schema_, references_, value);\n case 'Ref':\n return TRef(schema_, references_, value);\n case 'This':\n return TThis(schema_, references_, value);\n case 'Tuple':\n return TTuple(schema_, references_, value);\n case 'Union':\n return TUnion(schema_, references_, value);\n default:\n return Default(schema_, value);\n }\n }\n function Encode(schema, references, value) {\n return Visit(schema, references, value);\n }\n EncodeTransform.Encode = Encode;\n})(EncodeTransform || (exports.EncodeTransform = EncodeTransform = {}));\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/compiler\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeCompiler = exports.Policy = exports.TypeCompilerTypeGuardError = exports.TypeCompilerUnknownTypeError = exports.TypeCheck = void 0;\nconst transform_1 = require(\"../value/transform\");\nconst guard_1 = require(\"../value/guard\");\nconst errors_1 = require(\"../errors/errors\");\nconst index_1 = require(\"../system/index\");\nconst deref_1 = require(\"../value/deref\");\nconst hash_1 = require(\"../value/hash\");\nconst Types = require(\"../typebox\");\n// -------------------------------------------------------------------\n// TypeCheck\n// -------------------------------------------------------------------\nclass TypeCheck {\n constructor(schema, references, checkFunc, code) {\n this.schema = schema;\n this.references = references;\n this.checkFunc = checkFunc;\n this.code = code;\n this.hasTransform = transform_1.HasTransform.Has(schema, references);\n }\n /** Returns the generated assertion code used to validate this type. */\n Code() {\n return this.code;\n }\n /** Returns an iterator for each error in this value. */\n Errors(value) {\n return (0, errors_1.Errors)(this.schema, this.references, value);\n }\n /** Returns true if the value matches the compiled type. */\n Check(value) {\n return this.checkFunc(value);\n }\n /** Decodes a value or throws if error */\n Decode(value) {\n if (!this.checkFunc(value))\n throw new transform_1.TransformDecodeCheckError(this.schema, value, this.Errors(value).First());\n return this.hasTransform ? transform_1.DecodeTransform.Decode(this.schema, this.references, value) : value;\n }\n /** Encodes a value or throws if error */\n Encode(value) {\n const encoded = this.hasTransform ? transform_1.EncodeTransform.Encode(this.schema, this.references, value) : value;\n if (!this.checkFunc(encoded))\n throw new transform_1.TransformEncodeCheckError(this.schema, value, this.Errors(value).First());\n return encoded;\n }\n}\nexports.TypeCheck = TypeCheck;\n// -------------------------------------------------------------------\n// Character\n// -------------------------------------------------------------------\nvar Character;\n(function (Character) {\n function DollarSign(code) {\n return code === 36;\n }\n Character.DollarSign = DollarSign;\n function IsUnderscore(code) {\n return code === 95;\n }\n Character.IsUnderscore = IsUnderscore;\n function IsAlpha(code) {\n return (code >= 65 && code <= 90) || (code >= 97 && code <= 122);\n }\n Character.IsAlpha = IsAlpha;\n function IsNumeric(code) {\n return code >= 48 && code <= 57;\n }\n Character.IsNumeric = IsNumeric;\n})(Character || (Character = {}));\n// -------------------------------------------------------------------\n// MemberExpression\n// -------------------------------------------------------------------\nvar MemberExpression;\n(function (MemberExpression) {\n function IsFirstCharacterNumeric(value) {\n if (value.length === 0)\n return false;\n return Character.IsNumeric(value.charCodeAt(0));\n }\n function IsAccessor(value) {\n if (IsFirstCharacterNumeric(value))\n return false;\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n const check = Character.IsAlpha(code) || Character.IsNumeric(code) || Character.DollarSign(code) || Character.IsUnderscore(code);\n if (!check)\n return false;\n }\n return true;\n }\n function EscapeHyphen(key) {\n return key.replace(/'/g, \"\\\\'\");\n }\n function Encode(object, key) {\n return IsAccessor(key) ? `${object}.${key}` : `${object}['${EscapeHyphen(key)}']`;\n }\n MemberExpression.Encode = Encode;\n})(MemberExpression || (MemberExpression = {}));\n// -------------------------------------------------------------------\n// Identifier\n// -------------------------------------------------------------------\nvar Identifier;\n(function (Identifier) {\n function Encode($id) {\n const buffer = [];\n for (let i = 0; i < $id.length; i++) {\n const code = $id.charCodeAt(i);\n if (Character.IsNumeric(code) || Character.IsAlpha(code)) {\n buffer.push($id.charAt(i));\n }\n else {\n buffer.push(`_${code}_`);\n }\n }\n return buffer.join('').replace(/__/g, '_');\n }\n Identifier.Encode = Encode;\n})(Identifier || (Identifier = {}));\n// -------------------------------------------------------------------\n// LiteralString\n// -------------------------------------------------------------------\nvar LiteralString;\n(function (LiteralString) {\n function Escape(content) {\n return content.replace(/'/g, \"\\\\'\");\n }\n LiteralString.Escape = Escape;\n})(LiteralString || (LiteralString = {}));\n// -------------------------------------------------------------------\n// Errors\n// -------------------------------------------------------------------\nclass TypeCompilerUnknownTypeError extends Types.TypeBoxError {\n constructor(schema) {\n super('Unknown type');\n this.schema = schema;\n }\n}\nexports.TypeCompilerUnknownTypeError = TypeCompilerUnknownTypeError;\nclass TypeCompilerTypeGuardError extends Types.TypeBoxError {\n constructor(schema) {\n super('Preflight validation check failed to guard for the given schema');\n this.schema = schema;\n }\n}\nexports.TypeCompilerTypeGuardError = TypeCompilerTypeGuardError;\n// -------------------------------------------------------------------\n// Policy\n// -------------------------------------------------------------------\nvar Policy;\n(function (Policy) {\n function IsExactOptionalProperty(value, key, expression) {\n return index_1.TypeSystemPolicy.ExactOptionalPropertyTypes ? `('${key}' in ${value} ? ${expression} : true)` : `(${MemberExpression.Encode(value, key)} !== undefined ? ${expression} : true)`;\n }\n Policy.IsExactOptionalProperty = IsExactOptionalProperty;\n function IsObjectLike(value) {\n return !index_1.TypeSystemPolicy.AllowArrayObject ? `(typeof ${value} === 'object' && ${value} !== null && !Array.isArray(${value}))` : `(typeof ${value} === 'object' && ${value} !== null)`;\n }\n Policy.IsObjectLike = IsObjectLike;\n function IsRecordLike(value) {\n return !index_1.TypeSystemPolicy.AllowArrayObject\n ? `(typeof ${value} === 'object' && ${value} !== null && !Array.isArray(${value}) && !(${value} instanceof Date) && !(${value} instanceof Uint8Array))`\n : `(typeof ${value} === 'object' && ${value} !== null && !(${value} instanceof Date) && !(${value} instanceof Uint8Array))`;\n }\n Policy.IsRecordLike = IsRecordLike;\n function IsNumberLike(value) {\n return !index_1.TypeSystemPolicy.AllowNaN ? `(typeof ${value} === 'number' && Number.isFinite(${value}))` : `typeof ${value} === 'number'`;\n }\n Policy.IsNumberLike = IsNumberLike;\n function IsVoidLike(value) {\n return index_1.TypeSystemPolicy.AllowNullVoid ? `(${value} === undefined || ${value} === null)` : `${value} === undefined`;\n }\n Policy.IsVoidLike = IsVoidLike;\n})(Policy || (exports.Policy = Policy = {}));\n/** Compiles Types for Runtime Type Checking */\nvar TypeCompiler;\n(function (TypeCompiler) {\n // ----------------------------------------------------------------------\n // Guards\n // ----------------------------------------------------------------------\n function IsAnyOrUnknown(schema) {\n return schema[Types.Kind] === 'Any' || schema[Types.Kind] === 'Unknown';\n }\n // -------------------------------------------------------------------\n // Types\n // -------------------------------------------------------------------\n function* TAny(schema, references, value) {\n yield 'true';\n }\n function* TArray(schema, references, value) {\n yield `Array.isArray(${value})`;\n const [parameter, accumulator] = [CreateParameter('value', 'any'), CreateParameter('acc', 'number')];\n if ((0, guard_1.IsNumber)(schema.maxItems))\n yield `${value}.length <= ${schema.maxItems}`;\n if ((0, guard_1.IsNumber)(schema.minItems))\n yield `${value}.length >= ${schema.minItems}`;\n const elementExpression = CreateExpression(schema.items, references, 'value');\n yield `${value}.every((${parameter}) => ${elementExpression})`;\n if (Types.TypeGuard.TSchema(schema.contains) || (0, guard_1.IsNumber)(schema.minContains) || (0, guard_1.IsNumber)(schema.maxContains)) {\n const containsSchema = Types.TypeGuard.TSchema(schema.contains) ? schema.contains : Types.Type.Never();\n const checkExpression = CreateExpression(containsSchema, references, 'value');\n const checkMinContains = (0, guard_1.IsNumber)(schema.minContains) ? [`(count >= ${schema.minContains})`] : [];\n const checkMaxContains = (0, guard_1.IsNumber)(schema.maxContains) ? [`(count <= ${schema.maxContains})`] : [];\n const checkCount = `const count = value.reduce((${accumulator}, ${parameter}) => ${checkExpression} ? acc + 1 : acc, 0)`;\n const check = [`(count > 0)`, ...checkMinContains, ...checkMaxContains].join(' && ');\n yield `((${parameter}) => { ${checkCount}; return ${check}})(${value})`;\n }\n if (schema.uniqueItems === true) {\n const check = `const hashed = hash(element); if(set.has(hashed)) { return false } else { set.add(hashed) } } return true`;\n const block = `const set = new Set(); for(const element of value) { ${check} }`;\n yield `((${parameter}) => { ${block} )(${value})`;\n }\n }\n function* TAsyncIterator(schema, references, value) {\n yield `(typeof value === 'object' && Symbol.asyncIterator in ${value})`;\n }\n function* TBigInt(schema, references, value) {\n yield `(typeof ${value} === 'bigint')`;\n if ((0, guard_1.IsBigInt)(schema.exclusiveMaximum))\n yield `${value} < BigInt(${schema.exclusiveMaximum})`;\n if ((0, guard_1.IsBigInt)(schema.exclusiveMinimum))\n yield `${value} > BigInt(${schema.exclusiveMinimum})`;\n if ((0, guard_1.IsBigInt)(schema.maximum))\n yield `${value} <= BigInt(${schema.maximum})`;\n if ((0, guard_1.IsBigInt)(schema.minimum))\n yield `${value} >= BigInt(${schema.minimum})`;\n if ((0, guard_1.IsBigInt)(schema.multipleOf))\n yield `(${value} % BigInt(${schema.multipleOf})) === 0`;\n }\n function* TBoolean(schema, references, value) {\n yield `(typeof ${value} === 'boolean')`;\n }\n function* TConstructor(schema, references, value) {\n yield* Visit(schema.returns, references, `${value}.prototype`);\n }\n function* TDate(schema, references, value) {\n yield `(${value} instanceof Date) && Number.isFinite(${value}.getTime())`;\n if ((0, guard_1.IsNumber)(schema.exclusiveMaximumTimestamp))\n yield `${value}.getTime() < ${schema.exclusiveMaximumTimestamp}`;\n if ((0, guard_1.IsNumber)(schema.exclusiveMinimumTimestamp))\n yield `${value}.getTime() > ${schema.exclusiveMinimumTimestamp}`;\n if ((0, guard_1.IsNumber)(schema.maximumTimestamp))\n yield `${value}.getTime() <= ${schema.maximumTimestamp}`;\n if ((0, guard_1.IsNumber)(schema.minimumTimestamp))\n yield `${value}.getTime() >= ${schema.minimumTimestamp}`;\n if ((0, guard_1.IsNumber)(schema.multipleOfTimestamp))\n yield `(${value}.getTime() % ${schema.multipleOfTimestamp}) === 0`;\n }\n function* TFunction(schema, references, value) {\n yield `(typeof ${value} === 'function')`;\n }\n function* TInteger(schema, references, value) {\n yield `(typeof ${value} === 'number' && Number.isInteger(${value}))`;\n if ((0, guard_1.IsNumber)(schema.exclusiveMaximum))\n yield `${value} < ${schema.exclusiveMaximum}`;\n if ((0, guard_1.IsNumber)(schema.exclusiveMinimum))\n yield `${value} > ${schema.exclusiveMinimum}`;\n if ((0, guard_1.IsNumber)(schema.maximum))\n yield `${value} <= ${schema.maximum}`;\n if ((0, guard_1.IsNumber)(schema.minimum))\n yield `${value} >= ${schema.minimum}`;\n if ((0, guard_1.IsNumber)(schema.multipleOf))\n yield `(${value} % ${schema.multipleOf}) === 0`;\n }\n function* TIntersect(schema, references, value) {\n const check1 = schema.allOf.map((schema) => CreateExpression(schema, references, value)).join(' && ');\n if (schema.unevaluatedProperties === false) {\n const keyCheck = CreateVariable(`${new RegExp(Types.KeyResolver.ResolvePattern(schema))};`);\n const check2 = `Object.getOwnPropertyNames(${value}).every(key => ${keyCheck}.test(key))`;\n yield `(${check1} && ${check2})`;\n }\n else if (Types.TypeGuard.TSchema(schema.unevaluatedProperties)) {\n const keyCheck = CreateVariable(`${new RegExp(Types.KeyResolver.ResolvePattern(schema))};`);\n const check2 = `Object.getOwnPropertyNames(${value}).every(key => ${keyCheck}.test(key) || ${CreateExpression(schema.unevaluatedProperties, references, `${value}[key]`)})`;\n yield `(${check1} && ${check2})`;\n }\n else {\n yield `(${check1})`;\n }\n }\n function* TIterator(schema, references, value) {\n yield `(typeof value === 'object' && Symbol.iterator in ${value})`;\n }\n function* TLiteral(schema, references, value) {\n if (typeof schema.const === 'number' || typeof schema.const === 'boolean') {\n yield `(${value} === ${schema.const})`;\n }\n else {\n yield `(${value} === '${LiteralString.Escape(schema.const)}')`;\n }\n }\n function* TNever(schema, references, value) {\n yield `false`;\n }\n function* TNot(schema, references, value) {\n const expression = CreateExpression(schema.not, references, value);\n yield `(!${expression})`;\n }\n function* TNull(schema, references, value) {\n yield `(${value} === null)`;\n }\n function* TNumber(schema, references, value) {\n yield Policy.IsNumberLike(value);\n if ((0, guard_1.IsNumber)(schema.exclusiveMaximum))\n yield `${value} < ${schema.exclusiveMaximum}`;\n if ((0, guard_1.IsNumber)(schema.exclusiveMinimum))\n yield `${value} > ${schema.exclusiveMinimum}`;\n if ((0, guard_1.IsNumber)(schema.maximum))\n yield `${value} <= ${schema.maximum}`;\n if ((0, guard_1.IsNumber)(schema.minimum))\n yield `${value} >= ${schema.minimum}`;\n if ((0, guard_1.IsNumber)(schema.multipleOf))\n yield `(${value} % ${schema.multipleOf}) === 0`;\n }\n function* TObject(schema, references, value) {\n yield Policy.IsObjectLike(value);\n if ((0, guard_1.IsNumber)(schema.minProperties))\n yield `Object.getOwnPropertyNames(${value}).length >= ${schema.minProperties}`;\n if ((0, guard_1.IsNumber)(schema.maxProperties))\n yield `Object.getOwnPropertyNames(${value}).length <= ${schema.maxProperties}`;\n const knownKeys = Object.getOwnPropertyNames(schema.properties);\n for (const knownKey of knownKeys) {\n const memberExpression = MemberExpression.Encode(value, knownKey);\n const property = schema.properties[knownKey];\n if (schema.required && schema.required.includes(knownKey)) {\n yield* Visit(property, references, memberExpression);\n if (Types.ExtendsUndefined.Check(property) || IsAnyOrUnknown(property))\n yield `('${knownKey}' in ${value})`;\n }\n else {\n const expression = CreateExpression(property, references, memberExpression);\n yield Policy.IsExactOptionalProperty(value, knownKey, expression);\n }\n }\n if (schema.additionalProperties === false) {\n if (schema.required && schema.required.length === knownKeys.length) {\n yield `Object.getOwnPropertyNames(${value}).length === ${knownKeys.length}`;\n }\n else {\n const keys = `[${knownKeys.map((key) => `'${key}'`).join(', ')}]`;\n yield `Object.getOwnPropertyNames(${value}).every(key => ${keys}.includes(key))`;\n }\n }\n if (typeof schema.additionalProperties === 'object') {\n const expression = CreateExpression(schema.additionalProperties, references, `${value}[key]`);\n const keys = `[${knownKeys.map((key) => `'${key}'`).join(', ')}]`;\n yield `(Object.getOwnPropertyNames(${value}).every(key => ${keys}.includes(key) || ${expression}))`;\n }\n }\n function* TPromise(schema, references, value) {\n yield `(typeof value === 'object' && typeof ${value}.then === 'function')`;\n }\n function* TRecord(schema, references, value) {\n yield Policy.IsRecordLike(value);\n if ((0, guard_1.IsNumber)(schema.minProperties))\n yield `Object.getOwnPropertyNames(${value}).length >= ${schema.minProperties}`;\n if ((0, guard_1.IsNumber)(schema.maxProperties))\n yield `Object.getOwnPropertyNames(${value}).length <= ${schema.maxProperties}`;\n const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0];\n const variable = CreateVariable(`${new RegExp(patternKey)}`);\n const check1 = CreateExpression(patternSchema, references, 'value');\n const check2 = Types.TypeGuard.TSchema(schema.additionalProperties) ? CreateExpression(schema.additionalProperties, references, value) : schema.additionalProperties === false ? 'false' : 'true';\n const expression = `(${variable}.test(key) ? ${check1} : ${check2})`;\n yield `(Object.entries(${value}).every(([key, value]) => ${expression}))`;\n }\n function* TRef(schema, references, value) {\n const target = (0, deref_1.Deref)(schema, references);\n // Reference: If we have seen this reference before we can just yield and return the function call.\n // If this isn't the case we defer to visit to generate and set the function for subsequent passes.\n if (state.functions.has(schema.$ref))\n return yield `${CreateFunctionName(schema.$ref)}(${value})`;\n yield* Visit(target, references, value);\n }\n function* TString(schema, references, value) {\n yield `(typeof ${value} === 'string')`;\n if ((0, guard_1.IsNumber)(schema.maxLength))\n yield `${value}.length <= ${schema.maxLength}`;\n if ((0, guard_1.IsNumber)(schema.minLength))\n yield `${value}.length >= ${schema.minLength}`;\n if (schema.pattern !== undefined) {\n const variable = CreateVariable(`${new RegExp(schema.pattern)};`);\n yield `${variable}.test(${value})`;\n }\n if (schema.format !== undefined) {\n yield `format('${schema.format}', ${value})`;\n }\n }\n function* TSymbol(schema, references, value) {\n yield `(typeof ${value} === 'symbol')`;\n }\n function* TTemplateLiteral(schema, references, value) {\n yield `(typeof ${value} === 'string')`;\n const variable = CreateVariable(`${new RegExp(schema.pattern)};`);\n yield `${variable}.test(${value})`;\n }\n function* TThis(schema, references, value) {\n // Note: This types are assured to be hoisted prior to this call. Just yield the function.\n yield `${CreateFunctionName(schema.$ref)}(${value})`;\n }\n function* TTuple(schema, references, value) {\n yield `Array.isArray(${value})`;\n if (schema.items === undefined)\n return yield `${value}.length === 0`;\n yield `(${value}.length === ${schema.maxItems})`;\n for (let i = 0; i < schema.items.length; i++) {\n const expression = CreateExpression(schema.items[i], references, `${value}[${i}]`);\n yield `${expression}`;\n }\n }\n function* TUndefined(schema, references, value) {\n yield `${value} === undefined`;\n }\n function* TUnion(schema, references, value) {\n const expressions = schema.anyOf.map((schema) => CreateExpression(schema, references, value));\n yield `(${expressions.join(' || ')})`;\n }\n function* TUint8Array(schema, references, value) {\n yield `${value} instanceof Uint8Array`;\n if ((0, guard_1.IsNumber)(schema.maxByteLength))\n yield `(${value}.length <= ${schema.maxByteLength})`;\n if ((0, guard_1.IsNumber)(schema.minByteLength))\n yield `(${value}.length >= ${schema.minByteLength})`;\n }\n function* TUnknown(schema, references, value) {\n yield 'true';\n }\n function* TVoid(schema, references, value) {\n yield Policy.IsVoidLike(value);\n }\n function* TKind(schema, references, value) {\n const instance = state.instances.size;\n state.instances.set(instance, schema);\n yield `kind('${schema[Types.Kind]}', ${instance}, ${value})`;\n }\n function* Visit(schema, references, value, useHoisting = true) {\n const references_ = (0, guard_1.IsString)(schema.$id) ? [...references, schema] : references;\n const schema_ = schema;\n // ----------------------------------------------------------------------------------\n // Hoisting\n // ----------------------------------------------------------------------------------\n if (useHoisting && (0, guard_1.IsString)(schema.$id)) {\n const functionName = CreateFunctionName(schema.$id);\n if (state.functions.has(functionName)) {\n return yield `${functionName}(${value})`;\n }\n else {\n const functionCode = CreateFunction(functionName, schema, references, 'value', false);\n state.functions.set(functionName, functionCode);\n return yield `${functionName}(${value})`;\n }\n }\n switch (schema_[Types.Kind]) {\n case 'Any':\n return yield* TAny(schema_, references_, value);\n case 'Array':\n return yield* TArray(schema_, references_, value);\n case 'AsyncIterator':\n return yield* TAsyncIterator(schema_, references_, value);\n case 'BigInt':\n return yield* TBigInt(schema_, references_, value);\n case 'Boolean':\n return yield* TBoolean(schema_, references_, value);\n case 'Constructor':\n return yield* TConstructor(schema_, references_, value);\n case 'Date':\n return yield* TDate(schema_, references_, value);\n case 'Function':\n return yield* TFunction(schema_, references_, value);\n case 'Integer':\n return yield* TInteger(schema_, references_, value);\n case 'Intersect':\n return yield* TIntersect(schema_, references_, value);\n case 'Iterator':\n return yield* TIterator(schema_, references_, value);\n case 'Literal':\n return yield* TLiteral(schema_, references_, value);\n case 'Never':\n return yield* TNever(schema_, references_, value);\n case 'Not':\n return yield* TNot(schema_, references_, value);\n case 'Null':\n return yield* TNull(schema_, references_, value);\n case 'Number':\n return yield* TNumber(schema_, references_, value);\n case 'Object':\n return yield* TObject(schema_, references_, value);\n case 'Promise':\n return yield* TPromise(schema_, references_, value);\n case 'Record':\n return yield* TRecord(schema_, references_, value);\n case 'Ref':\n return yield* TRef(schema_, references_, value);\n case 'String':\n return yield* TString(schema_, references_, value);\n case 'Symbol':\n return yield* TSymbol(schema_, references_, value);\n case 'TemplateLiteral':\n return yield* TTemplateLiteral(schema_, references_, value);\n case 'This':\n return yield* TThis(schema_, references_, value);\n case 'Tuple':\n return yield* TTuple(schema_, references_, value);\n case 'Undefined':\n return yield* TUndefined(schema_, references_, value);\n case 'Union':\n return yield* TUnion(schema_, references_, value);\n case 'Uint8Array':\n return yield* TUint8Array(schema_, references_, value);\n case 'Unknown':\n return yield* TUnknown(schema_, references_, value);\n case 'Void':\n return yield* TVoid(schema_, references_, value);\n default:\n if (!Types.TypeRegistry.Has(schema_[Types.Kind]))\n throw new TypeCompilerUnknownTypeError(schema);\n return yield* TKind(schema_, references_, value);\n }\n }\n // -------------------------------------------------------------------\n // Compiler State\n // -------------------------------------------------------------------\n // prettier-ignore\n const state = {\n language: 'javascript',\n functions: new Map(),\n variables: new Map(),\n instances: new Map() // exterior kind instances\n };\n // -------------------------------------------------------------------\n // Compiler Factory\n // -------------------------------------------------------------------\n function CreateExpression(schema, references, value, useHoisting = true) {\n return `(${[...Visit(schema, references, value, useHoisting)].join(' && ')})`;\n }\n function CreateFunctionName($id) {\n return `check_${Identifier.Encode($id)}`;\n }\n function CreateVariable(expression) {\n const variableName = `local_${state.variables.size}`;\n state.variables.set(variableName, `const ${variableName} = ${expression}`);\n return variableName;\n }\n function CreateFunction(name, schema, references, value, useHoisting = true) {\n const [newline, pad] = ['\\n', (length) => ''.padStart(length, ' ')];\n const parameter = CreateParameter('value', 'any');\n const returns = CreateReturns('boolean');\n const expression = [...Visit(schema, references, value, useHoisting)].map((expression) => `${pad(4)}${expression}`).join(` &&${newline}`);\n return `function ${name}(${parameter})${returns} {${newline}${pad(2)}return (${newline}${expression}${newline}${pad(2)})\\n}`;\n }\n function CreateParameter(name, type) {\n const annotation = state.language === 'typescript' ? `: ${type}` : '';\n return `${name}${annotation}`;\n }\n function CreateReturns(type) {\n return state.language === 'typescript' ? `: ${type}` : '';\n }\n // -------------------------------------------------------------------\n // Compile\n // -------------------------------------------------------------------\n function Build(schema, references, options) {\n const functionCode = CreateFunction('check', schema, references, 'value'); // will populate functions and variables\n const parameter = CreateParameter('value', 'any');\n const returns = CreateReturns('boolean');\n const functions = [...state.functions.values()];\n const variables = [...state.variables.values()];\n // prettier-ignore\n const checkFunction = (0, guard_1.IsString)(schema.$id) // ensure top level schemas with $id's are hoisted\n ? `return function check(${parameter})${returns} {\\n return ${CreateFunctionName(schema.$id)}(value)\\n}`\n : `return ${functionCode}`;\n return [...variables, ...functions, checkFunction].join('\\n');\n }\n /** Generates the code used to assert this type and returns it as a string */\n function Code(...args) {\n const defaults = { language: 'javascript' };\n // prettier-ignore\n const [schema, references, options] = (args.length === 2 && (0, guard_1.IsArray)(args[1]) ? [args[0], args[1], defaults] :\n args.length === 2 && !(0, guard_1.IsArray)(args[1]) ? [args[0], [], args[1]] :\n args.length === 3 ? [args[0], args[1], args[2]] :\n args.length === 1 ? [args[0], [], defaults] :\n [null, [], defaults]);\n // compiler-reset\n state.language = options.language;\n state.variables.clear();\n state.functions.clear();\n state.instances.clear();\n if (!Types.TypeGuard.TSchema(schema))\n throw new TypeCompilerTypeGuardError(schema);\n for (const schema of references)\n if (!Types.TypeGuard.TSchema(schema))\n throw new TypeCompilerTypeGuardError(schema);\n return Build(schema, references, options);\n }\n TypeCompiler.Code = Code;\n /** Compiles a TypeBox type for optimal runtime type checking. Types must be valid TypeBox types of TSchema */\n function Compile(schema, references = []) {\n const generatedCode = Code(schema, references, { language: 'javascript' });\n const compiledFunction = globalThis.Function('kind', 'format', 'hash', generatedCode);\n const instances = new Map(state.instances);\n function typeRegistryFunction(kind, instance, value) {\n if (!Types.TypeRegistry.Has(kind) || !instances.has(instance))\n return false;\n const checkFunc = Types.TypeRegistry.Get(kind);\n const schema = instances.get(instance);\n return checkFunc(schema, value);\n }\n function formatRegistryFunction(format, value) {\n if (!Types.FormatRegistry.Has(format))\n return false;\n const checkFunc = Types.FormatRegistry.Get(format);\n return checkFunc(value);\n }\n function hashFunction(value) {\n return (0, hash_1.Hash)(value);\n }\n const checkFunction = compiledFunction(typeRegistryFunction, formatRegistryFunction, hashFunction);\n return new TypeCheck(schema, references, checkFunction, generatedCode);\n }\n TypeCompiler.Compile = Compile;\n})(TypeCompiler || (exports.TypeCompiler = TypeCompiler = {}));\n","\"use strict\";\n/*--------------------------------------------------------------------------\n\n@sinclair/typebox/compiler\n\nThe MIT License (MIT)\n\nCopyright (c) 2017-2023 Haydn Paterson (sinclair) <haydn.developer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n---------------------------------------------------------------------------*/\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueErrorIterator = exports.ValueErrorType = void 0;\nvar index_1 = require(\"../errors/index\");\nObject.defineProperty(exports, \"ValueErrorType\", { enumerable: true, get: function () { return index_1.ValueErrorType; } });\nObject.defineProperty(exports, \"ValueErrorIterator\", { enumerable: true, get: function () { return index_1.ValueErrorIterator; } });\n__exportStar(require(\"./compiler\"), exports);\n","import { Applog, ApplogValue, DatalogQueryPattern, EntityID, SearchContext } from '../applog/datom-types'\n\nimport { Logger } from 'besonders-logger'\nimport { autorun, comparer, computed, makeObservable, observable, onBecomeObserved, toJS, untracked } from 'mobx'\n\nimport stringify from 'safe-stable-stringify'\nimport { joinStreams } from '../applog/applog-helpers'\nimport { resolveOrRemoveVariables, sortApplogsByTs } from '../applog/applog-utils'\nimport {\n\tapplogStreamComparer,\n\tcomputedFnDeepCompare,\n\tcomputedStructuralComparer,\n\tcreateDebugName,\n\tobservableArrayMap,\n\tqueryNodesComparer,\n} from '../mobx/mobx-utils'\nimport { ApplogStream, ApplogStreamEvent, isInitEvent } from '../stream'\nimport { rollingFilter, rollingMapper } from '../stream/filters'\nimport { ApplogStreamInMemory } from '../stream/writeable'\n\nconst { WARN, LOG, DEBUG, VERBOSE, ERROR } = Logger.setup(Logger.INFO, { prefix: '[q]' }) // eslint-disable-line no-unused-vars\n\n// util.inspect.defaultOptions.depth = 5;\n\n// export interface QueryExecutorArguments {\n// db: ApplogStream\n// // applogs: AppLog[]\n// nodes: SearchContextWithLog[]\n// }\n// export interface QueryExecutorResult {\n// // applogs: AppLog[]\n// nodes: SearchContextWithLog[]\n// }\n// export type QueryExecutor = (args: QueryExecutorArguments) => QueryExecutorResult\n\nexport class QueryNode {\n\tconstructor(\n\t\tpublic logsOfThisNode: ApplogStream,\n\t\tpublic variables: SearchContext,\n\t\tpublic prev: QueryNode | null = null,\n\t) {\n\t\tmakeObservable(this, {\n\t\t\tallApplogs: computed, // ? intuitively only put the ones here that felt expensive to compute (join)\n\t\t})\n\t}\n\tget record() {\n\t\treturn this.variables // alias for end-user consumption\n\t}\n\n\tget allApplogs() {\n\t\tif (!this.prev) return this.logsOfThisNode\n\t\treturn joinStreams([\n\t\t\tthis.logsOfThisNode,\n\t\t\tthis.prev.allApplogs,\n\t\t])\n\t}\n}\nexport class QueryNodes {\n\tconstructor(\n\t\tpublic nodes: Array<QueryNode>,\n\t) {\n\t\tmakeObservable(this, {\n\t\t\tallApplogs: computed, // ? intuitively only put the ones here that felt expensive to compute (join)\n\t\t\tsize: computed, // ... or cheap to cache\n\t\t\tisEmpty: computed,\n\t\t})\n\t}\n\n\tget size() {\n\t\treturn this.records.length\n\t}\n\tget isEmpty() {\n\t\treturn this.records.length === 0\n\t}\n\tget untrackedSize() {\n\t\treturn untracked(() => this.records.length)\n\t}\n\n\tget records() {\n\t\treturn this.nodes.map(({ variables }) => variables)\n\t}\n\tget applogSets() {\n\t\treturn this.nodes.map(({ logsOfThisNode: stream }) => stream.applogs)\n\t}\n\tget applogStreams() {\n\t\treturn this.nodes.map(({ logsOfThisNode: stream }) => stream)\n\t}\n\tget allApplogs() {\n\t\treturn joinStreams(this.nodes.map(node => node.allApplogs))\n\t}\n}\n\n/////////////\n// QUERIES //\n/////////////\n\n/**\n * Keep only the latest logs for each en&at (= last write wins)\n */\nexport const withoutHistory = computedFnDeepCompare(function withoutHistory(\n\tstream: ApplogStream,\n\t{ inverseToOnlyReturnFirstLogs, tolerateAlreadyFiltered }: {\n\t\tinverseToOnlyReturnFirstLogs?: boolean\n\t\ttolerateAlreadyFiltered?: boolean\n\t} = {},\n) {\n\tVERBOSE(`withoutHistory${inverseToOnlyReturnFirstLogs ? '.inversed' : ''} < ${stream.nameAndSizeUntracked} > initializing`)\n\t// if (stream.name.includes('withoutHistory')) WARN(`stream already contains withoutHistory:`, stream.name)\n\tif (stream.filters.includes('withoutHistory')) {\n\t\tif (tolerateAlreadyFiltered) {\n\t\t\tDEBUG(`[withoutHistory] already filtered, but tolerateAlreadyFiltered=true, so returning`)\n\t\t\treturn stream\n\t\t}\n\t\tthrow ERROR(`stream already filtered withoutHistory:`, stream.filters, { name: stream.name })\n\t}\n\n\tlet rollingMap: Map<string, Applog>\n\tconst mappedStream = rollingMapper(stream, function(event, sourceStream) {\n\t\tconst isInitial = isInitEvent(event)\n\n\t\tlet newLogs: readonly Applog[]\n\t\tconst toAdd = [] as Applog[]\n\t\tconst toRemove = isInitial ? null : [] as Applog[]\n\t\tif (isInitial) {\n\t\t\trollingMap = new Map()\n\t\t\tnewLogs = event.init\n\t\t} else {\n\t\t\tnewLogs = event.added\n\t\t}\n\n\t\tlet tsCheck: string\n\t\tfor (\n\t\t\tlet i = inverseToOnlyReturnFirstLogs ? 0 : newLogs.length - 1;\n\t\t\tinverseToOnlyReturnFirstLogs ? i < newLogs.length : i >= 0;\n\t\t\tinverseToOnlyReturnFirstLogs ? i++ : i--\n\t\t) {\n\t\t\tconst log = newLogs[i]\n\t\t\tconst key = stringify([log.en, log.at])\n\n\t\t\tif (tsCheck && (inverseToOnlyReturnFirstLogs ? tsCheck > log.ts : tsCheck < log.ts)) {\n\t\t\t\tthrow ERROR(`withoutHistory.mapper logs not sorted:`, tsCheck, inverseToOnlyReturnFirstLogs ? '>' : '<', log.ts, {\n\t\t\t\t\tlog,\n\t\t\t\t\ti,\n\t\t\t\t\tnewLogs,\n\t\t\t\t\tinverseToOnlyReturnFirstLogs,\n\t\t\t\t})\n\t\t\t}\n\t\t\ttsCheck = log.ts\n\n\t\t\tconst existing = rollingMap.get(key)\n\t\t\tif (!existing || (inverseToOnlyReturnFirstLogs ? (existing.ts > log.ts) : (existing.ts < log.ts))) {\n\t\t\t\tif (existing && !isInitial) toRemove.push(existing)\n\t\t\t\ttoAdd.push(log)\n\t\t\t\trollingMap.set(key, log)\n\t\t\t}\n\t\t}\n\t\tsortApplogsByTs(toAdd) // HACK: find logical solution\n\t\tVERBOSE.isDisabled ||\n\t\t\tVERBOSE(\n\t\t\t\t`withoutHistory${inverseToOnlyReturnFirstLogs ? '.inversed' : ''}<${stream.nameAndSizeUntracked}> mapped event`,\n\t\t\t\tisInitial ?\n\t\t\t\t\t{ ...Object.fromEntries(Object.entries(event).map(([k, v]) => [k, v?.length])), toAdd: toAdd.length, toRemove } :\n\t\t\t\t\t{ ...event, toAdd, toRemove },\n\t\t\t)\n\t\treturn isInitial ?\n\t\t\t{ init: toAdd }\n\t\t\t: { added: toAdd, removed: toRemove }\n\t}, { name: `withoutHistory${inverseToOnlyReturnFirstLogs ? '.inversed' : ''}`, extraFilterName: 'withoutHistory' })\n\tVERBOSE.isDisabled || autorun(() => {\n\t\tVERBOSE(`withoutHistory<${stream.nameAndSizeUntracked}> filtered down to`, mappedStream.applogs.length) // using applogs.length, as size might not change, but we still want a log\n\t})\n\treturn mappedStream\n\t// const filtered = observableArrayMap(() => {\n\t// VERBOSE(`withoutHistory stream deps:`, getDependencyTree(stream.applogs), stream)\n\t// stream.applogs.forEach(applog => {\n\t// const key = stringify([applog.en, applog.at])\n\t// const existing = mapped.get(key)\n\t// if (!existing || existing.ts < applog.ts)\n\t// mapped.set(key, applog)\n\t// })\n\t// VERBOSE(`[withoutHistory] mapped:`, mapped.size)\n\t// return Array.from(mapped.values())\n\t// }, { name: obsArrMapName })\n\t// VERBOSE(`withoutHistory deps of filteredArr:`, getDependencyTree(filtered))\n\t// return new MappedApplogStream(stream, filtered, `${stream.name} | withoutHistory`)\n}, { equals: applogStreamComparer })\n\n/**\n * Remove all applogs for entities that have an applog: { at: `isDeleted`, val: true }\n * ! WARNING: If not based on withoutHistory, it will not respect un-deletions yet (isDeleted: false)\n */\nexport const withoutDeleted = computedFnDeepCompare(function withoutDeleted(\n\tstream: ApplogStream,\n) {\n\tVERBOSE(`withoutDeleted<${stream.nameAndSizeUntracked}>`)\n\t// if (stream.name.includes('withoutDeleted')) WARN(`stream already contains withoutDeleted:`, withoutDeleted)\n\tif (stream.filters.includes('withoutDeleted')) {\n\t\tthrow ERROR(`stream already filtered withoutDeleted:`, stream.filters, { name: stream.name })\n\t}\n\n\tconst deletionLogs = rollingFilter(\n\t\tstream, // TODO: handle un-delection\n\t\t{ at: ['isDeleted', 'relation/isDeleted', 'block/isDeleted'], vl: true },\n\t\t{ name: 'isDeleted' },\n\t)\n\tVERBOSE(`withoutDeleted<${stream.nameAndSizeUntracked}> deletionLogs:`, untracked(() => [...deletionLogs.applogs]))\n\tconst obsArrMapName = createDebugName({ caller: 'allDeletedEntities', stream })\n\tconst deleted = observableArrayMap(() => deletionLogs.map(log => log.en), { name: obsArrMapName })\n\t// VERBOSE(`withoutDeleted<${db.nameAndSize}> deleted:`, untracked(() => [...deleted]))\n\tVERBOSE.isDisabled || autorun(() => {\n\t\tVERBOSE(`withoutDeleted<${stream.nameAndSizeUntracked}> deleted:`, [...deleted])\n\t})\n\n\treturn rollingFilter(stream, { '!en': deleted }, { name: `withoutDeleted`, extraFilterName: 'withoutDeleted' })\n}, { equals: applogStreamComparer })\n\n// export const filterStatic = computedFnDeepCompare(function filterStatic(\n// stream: ApplogStream,\n// pattern: DatalogQueryPattern,\n// opts: { name?: string } = {},\n// ) {\n// VERBOSE(`filterStatic<${stream.nameAndSizeUntracked}>:`, pattern)\n// if (!Object.entries(pattern).length) throw new Error(`Pattern is empty`)\n// //TODO: deprecaate in favor of rollingFilter ?\n// return new ApplogStream(stream, stream.applogs.filter(applog => {\n// for (const [field, patternValue] of Object.entries(pattern)) {\n// const applogValue = applog[field.startsWith('!') ? field.slice(1) : field]\n// if (!matchPartStatic(field, patternValue, applogValue))\n// return false\n// }\n// return true\n// }), `${stream.name} | ${opts.name || `filterStatic{${stringify(pattern)}}`}`)\n// }, { equals: applogStreamComparer })\n\nexport const query = computedFnDeepCompare(function query(\n\tstream: ApplogStream,\n\tpatternOrPatterns: DatalogQueryPattern | DatalogQueryPattern[],\n\tstartVariables: SearchContext = {},\n\topts: { debug?: boolean } = {},\n) {\n\tDEBUG(`query<${stream.nameAndSizeUntracked}>:`, patternOrPatterns)\n\tconst patterns = (Array.isArray(patternOrPatterns) ? patternOrPatterns : [patternOrPatterns]) as DatalogQueryPattern[]\n\n\tlet nodes: QueryNodes | null\n\tif (patterns.length === 1) {\n\t\tnodes = null // new QueryNodes([/* new QueryNode(stream, startVariables) */])\n\t} else {\n\t\tconst pattersExceptLast = patterns.slice(0, -1)\n\t\t// recursively call this function to have partial queries cacheable\n\t\tnodes = query(stream, pattersExceptLast, startVariables, opts)\n\t}\n\tconst lastPattern = patterns[patterns.length - 1]\n\tconst stepResult = queryStep(stream, nodes, lastPattern, opts)\n\tVERBOSE.isDisabled || autorun(() => VERBOSE(`query result:`, toJS(stepResult)))\n\treturn stepResult\n}, { equals: queryNodesComparer })\n\nexport const queryStep = computedFnDeepCompare(function queryStep(\n\tstream: ApplogStream,\n\tnodeSet: QueryNodes | null,\n\tpattern: DatalogQueryPattern,\n\t// variables: SearchContext = {},\n\topts: { debug?: boolean } = {},\n) {\n\tDEBUG(`queryStep<${stream.nameAndSizeUntracked}> with`, nodeSet?.untrackedSize ?? 'all', 'nodes, pattern:', pattern)\n\tif (!Object.entries(pattern).length) throw new Error(`Pattern is empty`)\n\n\tconst observableResultNodes = observableArrayMap(\n\t\t() => {\n\t\t\tfunction doQuery(node: QueryNode | null) {\n\t\t\t\tconst [patternWithResolvedVars, variablesToFill] = resolveOrRemoveVariables(pattern, node?.variables ?? {})\n\t\t\t\tVERBOSE(`[queryStep] patternWithoutVars: `, patternWithResolvedVars)\n\t\t\t\tconst applogsMatchingStatic = rollingFilter(stream, patternWithResolvedVars)\n\t\t\t\tconst varMapper = mapTo(variablesToFill)\n\t\t\t\tconst newVarsAndTheirLog = applogsMatchingStatic.map(log => ({ log, vars: varMapper(log) }))\n\t\t\t\tVERBOSE.isDisabled ||\n\t\t\t\t\tVERBOSE(\n\t\t\t\t\t\t`[queryStep] step node:`,\n\t\t\t\t\t\tnode?.variables,\n\t\t\t\t\t\t' =>',\n\t\t\t\t\t\tnewVarsAndTheirLog,\n\t\t\t\t\t\t'from:',\n\t\t\t\t\t\tuntracked(() => applogsMatchingStatic.applogs),\n\t\t\t\t\t)\n\t\t\t\tconst resultNodes = newVarsAndTheirLog.map(({ log, vars }) => {\n\t\t\t\t\tconst nodeVars = Object.assign({}, node?.variables, vars)\n\t\t\t\t\treturn new QueryNode(\n\t\t\t\t\t\tnew ApplogStreamInMemory(\n\t\t\t\t\t\t\t[log],\n\t\t\t\t\t\t\tstream.filters,\n\t\t\t\t\t\t\tcreateDebugName({\n\t\t\t\t\t\t\t\tcaller: 'QueryNode',\n\t\t\t\t\t\t\t\tstream: applogsMatchingStatic,\n\t\t\t\t\t\t\t\tpattern: `${stringify(nodeVars)}@${stringify(patternWithResolvedVars)}`,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\tapplogsMatchingStatic,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tnodeVars,\n\t\t\t\t\t\tnode,\n\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t\tif (opts.debug) {\n\t\t\t\t\tLOG(\n\t\t\t\t\t\t`[queryStep] step result:`,\n\t\t\t\t\t\tuntracked(() =>\n\t\t\t\t\t\t\tresultNodes.map(({ variables, logsOfThisNode: stream }) => ({\n\t\t\t\t\t\t\t\tvariables,\n\t\t\t\t\t\t\t\tstream: /* util.inspect( */ stream.applogs, /* , { showHidden: false, depth: null }) */\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\treturn resultNodes\n\t\t\t}\n\t\t\tif (nodeSet) {\n\t\t\t\treturn nodeSet.nodes.flatMap(doQuery)\n\t\t\t} else {\n\t\t\t\treturn doQuery(null) // initial query step\n\t\t\t}\n\t\t},\n\t\t{ name: createDebugName({ caller: 'queryStep', stream, pattern }) },\n\t)\n\n\tVERBOSE(`queryStep result:`, observableResultNodes)\n\treturn new QueryNodes(observableResultNodes)\n}, { equals: queryNodesComparer })\n\nexport const queryNot = computedFnDeepCompare(function queryNot( // TODO: update old-style query\n\tstream: ApplogStream,\n\tstartNodes: QueryNodes,\n\tpatternOrPatterns: DatalogQueryPattern | DatalogQueryPattern[],\n\topts: { debug?: boolean } = {},\n) {\n\tlet nodes = startNodes.nodes\n\tDEBUG(`queryNot<${stream.nameAndSizeUntracked}> from: ${nodes.length} nodes`)\n\tconst patterns = (Array.isArray(patternOrPatterns) ? patternOrPatterns : [patternOrPatterns]) as DatalogQueryPattern[]\n\n\tfor (const pattern of patterns) {\n\t\tif (!Object.entries(patternOrPatterns).length) throw new Error(`Pattern is empty`)\n\t\tnodes = nodes.filter(({ /* applogs, */ variables }) => {\n\t\t\tconst [patternWithResolvedVars, _variablesToFill] = resolveOrRemoveVariables(pattern, variables ?? {})\n\t\t\tVERBOSE(`[queryNot] patternWithoutVars: `, patternWithResolvedVars)\n\t\t\tconst newApplogs = rollingFilter(stream, patternWithResolvedVars)\n\t\t\tVERBOSE(`[queryNot] step node:`, variables, ' =>', newApplogs.size, 'applogs')\n\t\t\tVERBOSE.isDisabled || VERBOSE(`[queryNot] step node:`, variables, ' => empty?', untracked(() => newApplogs.applogs))\n\n\t\t\tif (opts.debug) LOG(`[queryNot] node result:`, variables, '=>', newApplogs.applogs)\n\t\t\treturn newApplogs.isEmpty\n\t\t})\n\t}\n\treturn new QueryNodes(nodes)\n}, { equals: queryNodesComparer })\n\n// export function or(queries: QueryExecutor[]) {\n// return tagged(\n// `or{${stringify(queries)} } `,\n// function orExecutor(args: QueryExecutorArguments) {\n// const { db, nodes: contexts } = args\n// VERBOSE('[or]', { queries, contexts })\n// let results = []\n// for (const query of queries) {\n// const res = query(args)\n// VERBOSE('[or] query', query, 'result =>', res)\n// results.push(...res.nodes)\n// }\n// return { contexts: results }\n// }\n// )\n// }\n\n// export type Tagged<T> = T & { tag: string }\n// export function tagged<T>(tag: string, thing: T): Tagged<T> {\n// const e = thing as (T & { tag: string })\n// e.tag = tag\n// return e\n// }\n\n//////////////////////\n// COMPOSED QUERIES //\n//////////////////////\n// createDebugName({ caller: 'useKidRelations' }, true)\nexport const filterAndMap = computedFnDeepCompare(function filterAndMap<R>(\n\tstream: ApplogStream,\n\tpattern: DatalogQueryPattern,\n\tmapper: (keyof Applog) | (Partial<{ [key in keyof Applog]: string }>) | ((applog: Applog) => R),\n) {\n\tDEBUG(`filterAndMap<${stream.nameAndSizeUntracked}>`, pattern)\n\n\tconst filtered = rollingFilter(stream, pattern)\n\tVERBOSE(`[filterAndMap] filtered:`, filtered.untrackedSize)\n\tVERBOSE.isDisabled || autorun(() => VERBOSE(`[filterAndMap] filtered:`, filtered.applogs))\n\n\tconst mapperFX = function filterAndMapGetterFx() {\n\t\tif (typeof mapper === 'function') {\n\t\t\treturn filtered.map(mapper)\n\t\t} else if (typeof mapper === 'string') {\n\t\t\treturn filtered.map(log => log[mapper])\n\t\t} else {\n\t\t\treturn filtered.map(mapTo(mapper))\n\t\t}\n\t}\n\tconst name = createDebugName({ stream, pattern, caller: 'filterAndMap' })\n\tconst mapped = observableArrayMap<ApplogValue | any>(mapperFX, { name }) // TODO typing:? Record<string, ApplogValue> ?\n\tVERBOSE.isDisabled || autorun(() => VERBOSE(`[filterAndMap] mapped:`, mapped))\n\treturn mapped\n}, { equals: comparer.structural })\n\nexport const queryAndMap = computedFnDeepCompare(function queryAndMap<R>(\n\tstream: ApplogStream,\n\tpatternOrPatterns: DatalogQueryPattern | DatalogQueryPattern[],\n\tmap: string | ((record: SearchContext) => R),\n\tvariables: SearchContext = {},\n) {\n\tDEBUG(`queryAndMap<${stream.nameAndSizeUntracked}>`, { patternOrPatterns, variables, map })\n\tconst debugName = createDebugName({ stream, caller: 'queryAndMap' })\n\n\tconst filtered = query(stream, patternOrPatterns)\n\tVERBOSE(`[queryAndMap] filtered count:`, filtered.untrackedSize)\n\tconst mapped = observableArrayMap<ApplogValue | any>(\n\t\t() => {\n\t\t\tif (typeof map === 'function') {\n\t\t\t\treturn filtered.records.map(map)\n\t\t\t} else if (typeof map === 'string') {\n\t\t\t\treturn filtered.records.map(log => log[map])\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"what's this map param about?\")\n\t\t\t}\n\t\t},\n\t\t{ name: debugName },\n\t)\n\tVERBOSE.isDisabled || autorun(() => VERBOSE(`[queryAndMap] result:`, toJS(mapped)))\n\treturn mapped\n}, { equals: comparer.structural })\n\nexport const queryEntity = computedFnDeepCompare(function queryEntity<R>(\n\tstream: ApplogStream,\n\tname: string,\n\tentityID: EntityID,\n\tattributes: string[],\n) {\n\tDEBUG(`queryEntity<${stream.nameAndSizeUntracked}>`, entityID, name)\n\n\tconst filtered = rollingFilter(stream, { en: entityID, at: prefixAttrs(name, attributes) })\n\tVERBOSE(`queryEntity applogs:`, filtered.applogs)\n\treturn computed(() =>\n\t\tfiltered.isEmpty ? null : Object.fromEntries(\n\t\t\tfiltered.map(({ at, vl }) => [at.slice(name.length + 1), vl]),\n\t\t)\n\t)\n}, { equals: computedStructuralComparer })\n\nexport const agentsOfStream = computedFnDeepCompare(function agentsOfStream<R>(\n\tstream: ApplogStream,\n) {\n\tLOG(`agentsOfStream<${stream.nameAndSizeUntracked}>`)\n\n\tconst mapped = observable.map<string, number>()\n\tfunction onEvent(event: ApplogStreamEvent) {\n\t\tfor (const log of (isInitEvent(event) ? event.init : event.added)) {\n\t\t\tconst prev = mapped.get(log.ag) ?? 0\n\t\t\tmapped.set(log.ag, prev + 1)\n\t\t}\n\t\tfor (const log of (!isInitEvent(event) && event.removed || [])) {\n\t\t\tconst prev = mapped.get(log.ag)\n\t\t\tif (!prev || prev < 1) throw ERROR(`[agentsOfStream] number is now negative`, { log, event, mapped, prev })\n\t\t\tmapped.set(log.ag, prev - 1)\n\t\t}\n\t\tLOG(`agentsOfStream<${stream.nameAndSizeUntracked}> processed event`, { event, mapped })\n\t}\n\tuntracked(() => onEvent({ init: stream.applogs }))\n\tstream.subscribe(onEvent)\n\tonBecomeObserved(mapped, () => stream.unsubscribe(onEvent))\n\n\treturn mapped\n})\n\nexport const entityOverlap = computedFnDeepCompare(function entityOverlapCount(\n\tstreamA: ApplogStream,\n\tstreamB: ApplogStream,\n) {\n\tLOG(`entityOverlap<${streamA.nameAndSizeUntracked}, ${streamB.nameAndSizeUntracked}>`)\n\n\treturn computed(() => {\n\t\tconst entitiesA = new Set(streamA.map(log => log.en))\n\t\tconst entitiesB = new Set(streamB.map(log => log.en))\n\t\treturn [...entitiesA].filter(en => entitiesB.has(en))\n\t})\n})\n\nexport const entityOverlapCount = computedFnDeepCompare(function entityOverlapCount(streamA: ApplogStream, streamB: ApplogStream) {\n\treturn computed(() => entityOverlap(streamA, streamB).get().length)\n})\n\n/////////////\n// HELPERS //\n/////////////\n\nexport function mapTo(applogFieldMap: Partial<{ [key in keyof Applog]: string }>) {\n\treturn applog => {\n\t\treturn Object.entries(applogFieldMap).reduce((acc, [key, value]) => {\n\t\t\tacc[value] = applog[key]\n\t\t\treturn acc\n\t\t}, {} as SearchContext)\n\t}\n}\n\nexport function startsWith(str: string) {\n\treturn (value) => value.startsWith(str)\n}\n\nexport function prefixAttrs(prefix: string, attrs: string[]) {\n\treturn attrs.map(at => prefixAt(prefix, at))\n}\nexport function prefixAt(prefix: string, attr: string) {\n\treturn `${prefix}/${attr}`\n}\n","import { Logger } from 'besonders-logger'\nimport { action, untracked } from 'mobx'\nimport { filterAndMap, withoutHistory } from '../query/basic'\nimport { ApplogEventMapper, ApplogStream, isInitEvent, MappedApplogStream } from '../stream'\nimport { WriteableApplogStream } from '../stream/writeable'\nimport { removeDuplicateAppLogs, sortApplogsByTs } from './applog-utils'\nimport { Applog, ApplogForInsert, ApplogForInsertOptionalAgent, ApplogNoCid, Timestamp } from './datom-types'\n\nconst { WARN, LOG, DEBUG, VERBOSE, ERROR } = Logger.setup(Logger.INFO) // eslint-disable-line no-unused-vars\n\nexport function hasAg(log: ApplogForInsertOptionalAgent): log is ApplogForInsert {\n\treturn !!log.ag\n}\nexport function hasTs(log: ApplogForInsert): log is Omit<ApplogForInsert, 'ts'> & { ts: Timestamp } {\n\treturn !!log.ts\n}\nexport function hasPv(log: ApplogForInsert): log is ApplogForInsert & { pv: string } {\n\treturn !!log.pv\n}\n\nexport function withTs(log: ApplogForInsert, ts: Timestamp) {\n\treturn hasTs(log) ? log : { ...log, ts }\n}\nexport function withPv(log: ApplogNoCid, ds: WriteableApplogStream) {\n\tconst { en, at } = log\n\tconst pvs = filterAndMap(withoutHistory(ds), { en, at }, 'cid')\n\tif (pvs.length > 1) WARN(`[withPv] unexpected result count:`, pvs.length)\n\tlet pv = pvs.length ? pvs[0] : null\n\tconst isMatchingPv = !!(pv === log.pv)\n\tif (log.pv && !isMatchingPv) WARN(`[withPv] different than pre-set pv:`, { queriedPv: pv, logPv: log.pv }) // TODO: this is actually a normal thing when e.g. pulling\n\tpv = log.pv ?? pv\n\treturn { ...log, pv: pv ?? null }\n}\nexport function joinStreams(streams: ApplogStream[]) {\n\tif (streams.length === 0) throw ERROR(`joinStreams called with empty array`) // ? EmptyStream\n\tif (streams.length === 1) return streams[0]\n\tconst fullJoin = () =>\n\t\tsortApplogsByTs(\n\t\t\tremoveDuplicateAppLogs(streams.flatMap(s => {\n\t\t\t\tconst logs = s.applogs\n\t\t\t\tif (!logs) {\n\t\t\t\t\tERROR(`falsy applogs of stream`, s)\n\t\t\t\t\tthrow new Error(`falsy applogs of stream`)\n\t\t\t\t}\n\t\t\t\treturn logs\n\t\t\t})),\n\t\t)\n\tconst initialMergeResult = untracked(() => fullJoin())\n\tconst eventMapper: ApplogEventMapper = action(function(event, sourceStream) {\n\t\tif (isInitEvent(event)) {\n\t\t\treturn { init: untracked(() => fullJoin()) } // HACK: if this would become a common thing, think of a better solution\n\t\t} else {\n\t\t\treturn {\n\t\t\t\t// TODO: test this stuff\n\t\t\t\tadded: event.added.filter(addedLog => !this.hasApplog(addedLog, true)),\n\t\t\t\tremoved: event.added.filter(addedLog =>\n\t\t\t\t\t!this.parents.some(parent => {\n\t\t\t\t\t\tif (parent === sourceStream) return false\n\t\t\t\t\t\treturn parent.hasApplog(addedLog, true)\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t}\n\t\t}\n\t})\n\t// TODO @manu check this ['?'] biz\n\treturn new MappedApplogStream(streams, ['?'], initialMergeResult, eventMapper, `join(${streams.map(s => s.name).join(', ')})`)\n}\n","// import type { CID } from '@oddjs/odd'\nimport { FormatRegistry, Static, TSchema, Type } from '@sinclair/typebox'\nimport { TypeCompiler } from '@sinclair/typebox/compiler'\nimport { CID } from 'multiformats/cid'\nimport { PartialBy, Tagged } from '../types/typescript-utils'\n\nexport const Nullable = <T extends TSchema>(schema: T) => Type.Union([schema, Type.Null()])\nexport const EntityID_LENGTH = 7\n// const bagu = 'baguqeerav3h4b46j2pyxikqhtm5si5vhzsyrba2duhrtltfutrlmj42anmvq'\n// const k51q = 'k51qzi5uqu5dhe1bxxjxj144bj2a225o1681yobevns26xlxtsfidjgnpwknfd'\nconst isCID = /^(k51qz|baguq)[0-9a-z]{56,57}$/\nconst isShortHash = /^[0-9A-Fa-f]{7,8}$/g // TODO awkward why are some 7 and some 8 long\n// engine level: min 6 (lenient within reason)\n// note3 TBD... either fixed for all entity types VS 7 for pub/sub, 8 for tags, 9 for blocks, 10 for relations etc...\n\nFormatRegistry.Set('EntityID', (value) => !!value.match(isShortHash) || !!value.match(isCID))\nexport const EntityID = Type.String() /*{ format: 'EntityID' }*/ // HACK how to configure ID format?\nexport type EntityID = Static<typeof EntityID>\n\nexport type DatomPart = string // TODO refactor\nexport type CidString = Tagged<string, CID>\nexport type AgentID = EntityID\nexport type Attribute = string\nexport type ApplogValue = string | boolean | Number | null // TODO: use Tagged types\n// ? allow objects? or just as serialized strings? Or serialize everything anyways?\n\nexport interface Atom {\n\ten: EntityID\n\tat: Attribute\n\tvl: ApplogValue\n}\n\nexport type AgentHash = string\nexport type Timestamp = string\nexport interface Applog extends Atom {\n\tcid: CidString\n\tpv?: CidString // | CID\n\tts: Timestamp\n\tag: AgentHash\n}\nexport type ApplogNoCid = Omit<Applog, 'cid'>\nexport type ApplogOptionalCid = PartialBy<Applog, 'cid'>\nexport type ApplogForInsert = PartialBy<ApplogNoCid, 'ts'>\nexport type ApplogForInsertOptionalAgent = PartialBy<ApplogForInsert, 'ag'>\n\nexport type AtomPattern = Atom | Applog\n\nexport interface DatalogStateIdentifier {\n\tlastTS: Timestamp\n}\n\n// New generic type for fields that can be a value, an array of that, or a function\nexport type ValueOrMatcher<T> = T | readonly T[] | ((value: T) => boolean)\n// Generic type that applies ValueOrMatcher to each field of T\nexport type WithMatchers<T extends Record<string, any>> = {\n\t[K in keyof T & string as `${K}` | `!${K}`]?: ValueOrMatcher<T[K]>\n}\n\nexport type DatalogQueryPattern = Partial<WithMatchers<Applog>>\nexport type DatalogQueryPatternArray = DatalogQueryPattern[]\nexport interface DatalogQuery<SELECT extends string> {\n\tfind: readonly SELECT[] // see: https://github.com/microsoft/TypeScript/issues/20965#issuecomment-868981458\n\twhere: DatalogQueryPatternArray\n\tonlyLatest?: boolean\n}\nexport type DatalogQueryResultEntry<SELECT extends string> = Record<\n\t// SELECT,\n\tStripPrefix<'?', SELECT>,\n\tDatomPart\n>\nexport type DatalogQueryResultRows<SELECT extends string> = DatalogQueryResultEntry<SELECT>[]\n// export type StripTest = StripPrefix<'?', '?A' | '?B'>\n// export type DatalogQueryResultEntryTEST = DatalogQueryResultEntry<'?A' | '?B'>\n// export type DatalogQueryResultEntryTESTX = MapKeysStripPrefix<'?A' | '?B', '?'>\n\nexport interface SearchContext {\n\t[key: string]: ApplogValue\n}\nexport interface SearchContextWithLog {\n\tcontext: SearchContext\n\tapplog?: Applog\n}\n\nexport type ResultContext = SearchContext | null\n\n/* https://stackoverflow.com/a/72497461 */\ntype StripPrefix<\n\tTPrefix extends string,\n\tT extends string,\n> = T extends `${TPrefix}${infer R}` ? R : never\n\ntype MapKeysStripPrefix<SELECT extends string, TPrefix extends string> = {\n\t[K in SELECT as StripPrefix<TPrefix, K>]: DatomPart\n}\n\nFormatRegistry.Set('CID', (value) => !!value.match(isCID))\nexport const CIDTB = Type.String({ format: 'EntityID' })\nexport type CIDTB = Static<typeof EntityID>\n\nconst isURL = /^http([s]?):\\/\\/.*\\..*/\nFormatRegistry.Set('URL', (value) => !!value.match(isURL))\nexport const URL = Type.String({ format: 'URL' })\nexport type URL = Static<typeof URL>\n\nexport const AppLogTB = Type.Object({\n\ten: EntityID, // EntityID\n\tat: Type.String(), // Attribute\n\tvl: Nullable(Type.Union([Type.String(), Type.Boolean(), Type.Number()])), // TODO refactor to semantic typesafe ApplogValue\n\tts: Type.String(), // Timestamp\n\tag: Type.String(), // AgentHash\n})\nexport type AppLogTB = Static<typeof AppLogTB> // type T = {\n\nexport const AppLogTBC = TypeCompiler.Compile(AppLogTB)\nexport const getApplogTypeErrors = (obj: any) => Array.from(AppLogTBC.Errors(obj))\nexport const isValidApplog = AppLogTBC.Check.bind(AppLogTBC)\n\n// maybe useful for defaulting https://github.com/sinclairzx81/typebox#cast\n","import { Logger } from 'besonders-logger'\nimport { action, makeObservable, observable } from 'mobx'\nimport { withPv, withTs } from '../applog/applog-helpers'\nimport { dateNowIso } from '../applog/applog-utils'\nimport { isTsBefore, removeDuplicateAppLogs, sortApplogsByTs } from '../applog/applog-utils'\nimport { type Applog, ApplogForInsert, getApplogTypeErrors, isValidApplog } from '../applog/datom-types'\nimport { encodeApplogAndGetCid } from '../ipfs/ipfs-utils'\nimport { ApplogStream } from './basic'\n\nconst { WARN, LOG, DEBUG, VERBOSE, ERROR } = Logger.setup(Logger.INFO) // eslint-disable-line no-unused-vars\n\nexport abstract class WriteableApplogStream extends ApplogStream {\n\tconstructor(\n\t\tparents: ApplogStream | ApplogStream[] | null,\n\t\tfilters: string[],\n\t\tapplogs: Applog[] = [],\n\t\tname: string,\n\t) {\n\t\tsuper(parents, filters, applogs, name)\n\n\t\tmakeObservable(this, {\n\t\t\tinsert: action, // ? is there an advantage to do this here instead of wrapping the fx in action below?\n\t\t})\n\t}\n\n\tpublic insert(appLogsToInsert: ApplogForInsert[]) {\n\t\tconst ts = dateNowIso()\n\n\t\tconst mapped = appLogsToInsert.map(log => {\n\t\t\tconst logWithTs = withTs(log, ts)\n\t\t\tif (!isValidApplog(logWithTs)) {\n\t\t\t\tthrow ERROR(`Bogus Applog ${JSON.stringify(logWithTs)}`, getApplogTypeErrors(logWithTs))\n\t\t\t}\n\t\t\tconst logWithPv = withPv(logWithTs, this)\n\t\t\tconst cid = encodeApplogAndGetCid(logWithPv).toString()\n\t\t\tconst logWithCid = { ...logWithPv, cid } satisfies Applog\n\t\t\treturn Object.freeze(logWithCid)\n\t\t})\n\t\tconst mappedLogs = removeDuplicateAppLogs(mapped)\n\t\tif (appLogsToInsert.length !== mappedLogs.length) {\n\t\t\tWARN('request to insert duplicate log, inserting mappedLogs:', { appLogsToInsert, mappedLogs })\n\t\t} else if (!appLogsToInsert.length) {\n\t\t\tWARN('request to insert empty logs array')\n\t\t} else {\n\t\t\tLOG('Inserting:', mappedLogs.length === 1 ? mappedLogs[0] : mappedLogs, { ds: this })\n\t\t}\n\t\tif (!mappedLogs.length) return []\n\n\t\tsortApplogsByTs(mappedLogs)\n\t\tconst sortNeeded = this._applogs.length && isTsBefore(mappedLogs[0], this._applogs[this._applogs.length - 1])\n\t\tthis._applogs.push(...mappedLogs)\n\t\tif (sortNeeded) {\n\t\t\tsortApplogsByTs(this._applogs)\n\t\t}\n\t\tthis.notifySubscribers({ added: mappedLogs, removed: null })\n\n\t\t// ? persist sync\n\t\tvoid this.persist(mappedLogs)\n\t\treturn mappedLogs as Applog[]\n\t}\n\n\tget readOnly() {\n\t\treturn false\n\t}\n\n\tprotected abstract persist(logs: Applog[])\n}\nexport class ApplogStreamInMemory extends WriteableApplogStream {\n\tstatic empty(name?: string) {\n\t\treturn ApplogStreamInMemory.fromArray([], name ?? 'empty in-memory', false)\n\t}\n\tstatic fromArray(applogs: Applog[], name?: string, readOnly = false) {\n\t\treturn new ApplogStreamInMemory(applogs, [], name ?? 'in-memory', readOnly)\n\t}\n\n\tconstructor(\n\t\tapplogs: Applog[],\n\t\tfilters: string[],\n\t\tname: string,\n\t\treadonly _readOnly: boolean,\n\t\tparents: ApplogStream | ApplogStream[] | null = null,\n\t) {\n\t\tsuper(parents, filters, applogs, name)\n\n\t\tmakeObservable(this, {\n\t\t\t// @ts-expect-error bc it's private\n\t\t\t_applogs: observable.shallow,\n\t\t})\n\t}\n\n\tget readOnly() {\n\t\treturn this._readOnly\n\t}\n\n\tprotected persist(logs: Applog[]) {\n\t\tVERBOSE(`[InMem.persist] no persist for`, logs)\n\t\tif (this.readOnly) {\n\t\t\tthrow ERROR(`[persist] called for readOnly stream`)\n\t\t}\n\t}\n}\n"],"mappings":"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","names":["require_typebox","__commonJSMin","exports","TypeRegistry","map","Entries","Clear","Delete","kind","Has","Set","func","Get","TypeBoxError","message","FormatRegistry","format","ValueGuard","IsArray","value","IsBigInt","IsBoolean","IsDate","IsNull","IsNumber","IsObject","IsString","IsUint8Array","IsUndefined","TypeGuardUnknownTypeError","TypeGuard","IsPattern","IsControlCharacterFree","i","code","IsAdditionalProperties","IsOptionalBoolean","TSchema","IsOptionalBigInt","IsOptionalNumber","IsOptionalString","IsOptionalPattern","IsOptionalFormat","IsOptionalSchema","TAny","schema","TKindOf","TArray","TAsyncIterator","TBigInt","TBoolean","TConstructor","TDate","TFunction","TInteger","TIntersect","TTransform","TIterator","TKind","TLiteralString","TLiteral","TLiteralNumber","TLiteralBoolean","TNever","TNot","TNull","TNumber","TObject","key","TPromise","TRecord","keys","TRecursive","TRef","TString","TSymbol","TTemplateLiteral","TThis","TTuple","TUndefined","TUnionLiteral","TUnion","TUint8Array","TUnknown","TUnsafe","TVoid","TReadonly","TOptional","ExtendsUndefined","Check","TypeExtendsError","TypeExtendsResult","TypeExtends","IntoBooleanResult","result","Throw","IsStructuralRight","right","StructuralRight","left","TNeverRight","TIntersectRight","TUnionRight","TUnknownRight","TAnyRight","TArrayRight","IsObjectArrayLike","Visit","TObjectRight","TRecordRight","TBooleanRight","index","TIntegerRight","TStringRight","TNumberRight","UnwrapTNot","current","depth","IsObjectPropertyCount","count","IsObjectStringLike","IsObjectSymbolLike","IsObjectNumberLike","IsObjectBooleanLike","IsObjectBigIntLike","IsObjectDateLike","IsObjectUint8ArrayLike","IsObjectFunctionLike","length","IsObjectConstructorLike","IsObjectPromiseLike","then","Property","RecordKey","RecordValue","Key","Value","TemplateLiteralResolver","IsArrayOfTuple","TTupleRight","VoidRight","Extends","TypeClone","ArrayType","DateType","Uint8ArrayType","ObjectType","clonedProperties","acc","clonedSymbols","Rest","schemas","Type","options","IndexedAccessor","OptionalUnwrap","_","clone","IsIntersectOptional","IsUnionOptional","ResolveIntersect","ResolveUnion","ResolveOptional","resolved","indexed","property","items","element","Resolve","Intrinsic","Uncapitalize","first","rest","Capitalize","Uppercase","Lowercase","IntrinsicTemplateLiteral","mode","expression","TemplateLiteralParser","TemplateLiteralFinite","IntrinsicLiteral","literals","TemplateLiteralGenerator","mapped","IntrinsicRest","union","L","R","Map","ObjectMap","callback","inner","KeyResolver","UnwrapPattern","sets","set","outer","ResolveKeys","ResolvePattern","KeyArrayResolverError","KeyArrayResolver","UnionResolver","TemplateLiteralPatternError","TemplateLiteralPattern","Escape","Create","kinds","template","TemplateLiteralParserError","IsNonEscaped","pattern","char","IsOpenParen","IsCloseParen","IsSeparator","IsGroup","InGroup","IsPrecedenceOr","IsPrecedenceAnd","Or","start","expressions","range","Parse","And","Group","scan","Range","end","ParseExact","TemplateLiteralFiniteError","expr","TemplateLiteralGeneratorError","Reduce","buffer","Generate","Const","TemplateLiteralDslParser","ParseUnion","trim","literal","ParseTerminal","ParseLiteral","template_dsl","TransformDecodeBuilder","decode","TransformEncodeBuilder","encode","Codec","TypeOrdinal","TypeBuilderError","TypeBuilder","record","JsonTypeBuilder","objects","intersect","properties","item","values1","anyOf","trueType","falseType","unionType","excludedMembers","narrowed","type","unresolved","cloned","allOf","clonedUnevaluatedProperties","propertyKeys","optionalKeys","requiredKeys","name","clonedAdditionalProperties","object","thisType","additionalItems","minItems","maxItems","clonedItems","clonedAnyOf","JavaScriptTypeBuilder","Unwrap","parameters","returns","clonedParameters","clonedReturns","regex","require_guard","__commonJSMin","exports","IsAsyncIterator","value","IsObject","IsIterator","IsTypedArray","IsPromise","IsUint8Array","IsDate","HasPropertyKey","key","IsPlainObject","IsFunction","IsArray","IsUndefined","IsNull","IsBoolean","IsNumber","IsInteger","IsBigInt","IsString","IsSymbol","IsValueType","require_system","__commonJSMin","exports","guard_1","errors_1","Types","TypeSystemDuplicateTypeKind","kind","TypeSystemDuplicateFormat","TypeSystem","Type","check","options","Format","format","TypeSystemErrorFunction","errorMessageFunction","DefaultErrorFunction","Reset","Set","callback","Get","TypeSystemPolicy","IsExactOptionalProperty","value","key","IsObjectLike","isObject","IsRecordLike","IsNumberLike","isNumber","IsVoidLike","isUndefined","schema","errorType","require_deref","__commonJSMin","exports","typebox_1","TypeDereferenceError","schema","Deref","references","index","target","require_hash","__commonJSMin","exports","guard_1","ValueHashError","value","ByteMarker","Accumulator","Prime","Size","Bytes","_","i","F64","F64In","F64Out","NumberToBytes","byteCount","ArrayType","FNV1A64","item","Visit","BooleanType","BigIntType","byte","DateType","NullType","NumberType","ObjectType","key","StringType","SymbolType","Uint8ArrayType","UndefinedType","Hash","require_errors","__commonJSMin","exports","guard_1","system_1","deref_1","hash_1","Types","ValueErrorType","ValueErrorsUnknownTypeError","schema","EscapeKey","key","IsDefined","value","ValueErrorIterator","iterator","next","Create","type","path","TAny","references","TArray","i","Visit","set","element","hashed","containsSchema","containsCount","acc","index","TAsyncIterator","TBigInt","TBoolean","TConstructor","TDate","TFunction","TInteger","TIntersect","inner","keyCheck","valueKey","TIterator","TLiteral","TNever","TNot","TNull","TNumber","TObject","requiredKeys","knownKeys","unknownKeys","requiredKey","knownKey","property","TPromise","TRecord","patternKey","patternSchema","regex","propertyKey","propertyValue","TRef","TString","TSymbol","TTemplateLiteral","TThis","TTuple","TUndefined","TUnion","count","subschema","errors","TUint8Array","TUnknown","TVoid","TKind","references_","schema_","Errors","args","require_errors","__commonJSMin","exports","__createBinding","o","m","k","k2","desc","__exportStar","p","require_system","__commonJSMin","exports","__createBinding","o","m","k","k2","desc","__exportStar","p","errors_1","require_check","__commonJSMin","exports","guard_1","index_1","deref_1","hash_1","Types","ValueCheckUnknownTypeError","schema","IsAnyOrUnknown","IsDefined","value","TAny","references","TArray","Visit","set","element","hashed","containsSchema","containsCount","acc","TAsyncIterator","TBigInt","TBoolean","TConstructor","TDate","TFunction","TInteger","TIntersect","check1","keyPattern","check2","key","keyCheck","TIterator","TLiteral","TNever","TNot","TNull","TNumber","TObject","knownKeys","knownKey","property","valueKeys","valueKey","TPromise","TRecord","patternKey","patternSchema","regex","check3","TRef","TString","TSymbol","TTemplateLiteral","TThis","TTuple","i","TUndefined","TUnion","inner","TUint8Array","TUnknown","TVoid","TKind","references_","schema_","Check","args","require_transform","__commonJSMin","exports","guard_1","deref_1","check_1","Types","TransformDecodeCheckError","schema","value","error","TransformEncodeCheckError","TransformDecodeError","TransformEncodeError","HasTransform","TArray","references","Visit","TAsyncIterator","TConstructor","TFunction","TIntersect","TIterator","TNot","TObject","TPromise","TRecord","pattern","property","TRef","TThis","TTuple","TUnion","references_","schema_","visited","Has","DecodeTransform","Default","knownKeys","knownProperties","key","unknownKeys","unevaluatedProperties","unknownProperties","additionalProperties","target","index","defaulted","subschema","Decode","EncodeTransform","resolved","value1","Encode","require_compiler","__commonJSMin","exports","transform_1","guard_1","errors_1","index_1","deref_1","hash_1","Types","TypeCheck","schema","references","checkFunc","code","value","encoded","Character","DollarSign","IsUnderscore","IsAlpha","IsNumeric","MemberExpression","IsFirstCharacterNumeric","IsAccessor","i","EscapeHyphen","key","Encode","object","Identifier","$id","buffer","LiteralString","Escape","content","TypeCompilerUnknownTypeError","TypeCompilerTypeGuardError","Policy","IsExactOptionalProperty","expression","IsObjectLike","IsRecordLike","IsNumberLike","IsVoidLike","TypeCompiler","IsAnyOrUnknown","TAny","TArray","parameter","accumulator","CreateParameter","elementExpression","CreateExpression","containsSchema","checkExpression","checkMinContains","checkMaxContains","checkCount","check","TAsyncIterator","TBigInt","TBoolean","TConstructor","Visit","TDate","TFunction","TInteger","TIntersect","check1","keyCheck","CreateVariable","check2","TIterator","TLiteral","TNever","TNot","TNull","TNumber","TObject","knownKeys","knownKey","memberExpression","property","keys","TPromise","TRecord","patternKey","patternSchema","variable","TRef","target","state","CreateFunctionName","TString","TSymbol","TTemplateLiteral","TThis","TTuple","TUndefined","TUnion","TUint8Array","TUnknown","TVoid","TKind","instance","useHoisting","references_","schema_","functionName","functionCode","CreateFunction","variableName","name","newline","pad","length","returns","CreateReturns","type","annotation","Build","options","functions","variables","checkFunction","Code","args","defaults","Compile","generatedCode","compiledFunction","instances","typeRegistryFunction","kind","formatRegistryFunction","format","hashFunction","require_compiler","__commonJSMin","exports","__createBinding","o","m","k","k2","desc","__exportStar","p","index_1","WARN","LOG","DEBUG","VERBOSE","ERROR","Logger","QueryNode","logsOfThisNode","variables","prev","makeObservable","computed","joinStreams","QueryNodes","nodes","untracked","stream","node","withoutHistory","computedFnDeepCompare","inverseToOnlyReturnFirstLogs","tolerateAlreadyFiltered","rollingMap","mappedStream","rollingMapper","event","sourceStream","isInitial","isInitEvent","newLogs","toAdd","toRemove","tsCheck","i","log","key","wrapper_default","existing","sortApplogsByTs","k","v","autorun","applogStreamComparer","withoutDeleted","deletionLogs","rollingFilter","obsArrMapName","createDebugName","deleted","observableArrayMap","query","patternOrPatterns","startVariables","opts","patterns","pattersExceptLast","lastPattern","stepResult","queryStep","toJS","queryNodesComparer","nodeSet","pattern","observableResultNodes","doQuery","patternWithResolvedVars","variablesToFill","resolveOrRemoveVariables","applogsMatchingStatic","varMapper","mapTo","newVarsAndTheirLog","resultNodes","vars","nodeVars","ApplogStreamInMemory","queryNot","startNodes","_variablesToFill","newApplogs","filterAndMap","mapper","filtered","mapperFX","name","mapped","comparer","queryAndMap","map","debugName","queryEntity","entityID","attributes","prefixAttrs","at","vl","computedStructuralComparer","agentsOfStream","observable","onEvent","onBecomeObserved","entityOverlap","streamA","streamB","entitiesA","entitiesB","en","entityOverlapCount","applogFieldMap","applog","acc","value","startsWith","str","prefix","attrs","prefixAt","attr","WARN","LOG","DEBUG","VERBOSE","ERROR","Logger","hasAg","log","hasTs","hasPv","withTs","ts","withPv","ds","en","at","pvs","filterAndMap","withoutHistory","pv","isMatchingPv","joinStreams","streams","fullJoin","sortApplogsByTs","removeDuplicateAppLogs","s","logs","initialMergeResult","untracked","eventMapper","action","event","sourceStream","isInitEvent","addedLog","parent","MappedApplogStream","import_typebox","import_compiler","Nullable","schema","EntityID_LENGTH","isCID","isShortHash","value","EntityID","CIDTB","isURL","URL","AppLogTB","AppLogTBC","getApplogTypeErrors","obj","isValidApplog","WARN","LOG","DEBUG","VERBOSE","ERROR","Logger","WriteableApplogStream","ApplogStream","parents","filters","applogs","name","makeObservable","action","appLogsToInsert","ts","dateNowIso","mapped","log","logWithTs","withTs","isValidApplog","getApplogTypeErrors","logWithPv","withPv","cid","encodeApplogAndGetCid","logWithCid","mappedLogs","removeDuplicateAppLogs","sortApplogsByTs","sortNeeded","isTsBefore","ApplogStreamInMemory","_ApplogStreamInMemory","_readOnly","observable","readOnly","logs"]}