@dynamicalsystems/idl-conformance 0.7.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/vectors/dsg.core.identity-binding_1/accept/binding-workspace-account.json +7 -0
- package/assets/vectors/dsg.core.identity-binding_1/reject/binding-extra-field.json +8 -0
- package/assets/vectors/dsg.core.refusal_1/accept/refusal-identity-unbound.json +7 -0
- package/assets/vectors/dsg.core.refusal_1/reject/refusal-extra-field.json +8 -0
- package/assets/vectors/dsg.core.refusal_1/reject/refusal-unknown-code.json +8 -0
- package/assets/vectors/dsg.core.refusal_2/accept/refusal-confirmation-expired.json +7 -0
- package/assets/vectors/dsg.core.refusal_2/accept/refusal-validation-unavailable.json +7 -0
- package/assets/vectors/dsg.core.refusal_2/reject/refusal-extra-field.json +8 -0
- package/assets/vectors/dsg.core.refusal_2/reject/refusal-unknown-code.json +8 -0
- package/assets/vectors/dsg.core.refusal_2/reject/refusal-wrong-literal.json +8 -0
- package/assets/vectors/dsg.kernel.standing-order-activation_1/accept/accept-activation.json +9 -0
- package/assets/vectors/dsg.kernel.standing-order-activation_1/accept/accept-event.json +9 -0
- package/assets/vectors/dsg.kernel.standing-order-activation_1/reject/reject-activation.json +9 -0
- package/assets/vectors/dsg.kernel.standing-order-activation_1/reject/reject-event-missing-kind.json +9 -0
- package/assets/vectors/dsg.run.decision_1/accept/decision-approved.json +7 -0
- package/assets/vectors/dsg.run.decision_1/reject/decision-extra-field.json +8 -0
- package/assets/vectors/dsg.run.decision_1/reject/decision-unknown-outcome.json +8 -0
- package/assets/vectors/dsg.run.event_1/digest/streamSeal-arrival-order.json +9 -0
- package/assets/vectors/dsg.run.event_1/digest/streamSeal-canonical-stream.json +9 -0
- package/assets/vectors/dsg.run.event_1/digest/streamSeal-float-utf8-stream.json +9 -0
- package/assets/vectors/dsg.run.event_1/digest/streamSeal-gapped-stream.json +9 -0
- package/assets/vectors/dsg.run.event_1/digest/streamSeal-payload-key-order.json +9 -0
- package/assets/vectors/dsg.run.request_1/accept/request-minimal-valid.json +7 -0
- package/assets/vectors/dsg.run.request_1/reject/request-extra-field.json +8 -0
- package/assets/vectors/dsg.run.request_1/reject/request-wrong-profile.json +8 -0
- package/assets/vectors/dsg.run.run-summary_1/accept/summary-waiting-on-decider.json +7 -0
- package/assets/vectors/dsg.run.run-summary_1/reject/summary-extra-field.json +8 -0
- package/checklist.json +8 -1
- package/dist/cli.cjs +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{reference-adapter-CaAo2iIH.mjs → reference-adapter-BdIIA9rz.mjs} +37 -2
- package/dist/reference-adapter-BdIIA9rz.mjs.map +1 -0
- package/dist/{reference-adapter-DWurDAI9.cjs → reference-adapter-DabyUOZw.cjs} +35 -0
- package/package.json +3 -3
- package/src/adapter.ts +2 -2
- package/src/reference-adapter.ts +3 -1
- package/src/stream-digest.ts +31 -0
- package/dist/reference-adapter-CaAo2iIH.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reference-adapter-CaAo2iIH.mjs","names":["IsAsyncIterator","IsObject","IsIterator","IsPromise","IsDate","IsUint8Array","IsArray","IsUndefined","IsNull","IsBoolean","IsNumber","IsInteger","IsBigInt","IsString","IsFunction","IsSymbol","IsObject","IsArray","IsNumber","IsUndefined","map","Has","Get","IsArray","IsDate","IsObject","IsRegExp","IsString","IsUint8Array","ValueGuard.IsArray","ValueGuard.IsDate","ValueGuard.IsUint8Array","ValueGuard.IsRegExp","ValueGuard.IsObject","ArrayType","Visit","DateType","Uint8ArrayType","ObjectType","ValueGuard.IsArray","ValueGuard.IsDate","ValueGuard.IsUint8Array","ValueGuard.IsRegExp","ValueGuard.IsObject","ValueGuard.IsObject","ValueGuard.IsString","FromIntersect","FromUnion","FromTuple","FromArray","IsString","Visit","IsArray","IsBoolean","IsBigInt","IsDate","IsNull","IsNumber","IsObject","IsString","IsSymbol","IsUint8Array","IsUndefined","IsDefined","FromAny","FromArgument","FromArray","IsArray","Visit","IsNumber","FromAsyncIterator","IsAsyncIterator","FromBigInt","IsBigInt","FromBoolean","IsBoolean","FromConstructor","FromDate","IsDate","FromFunction","IsFunction","FromImport","FromInteger","IsInteger","FromIntersect","FromIterator","IsIterator","FromLiteral","FromNever","FromNot","FromNull","IsNull","FromNumber","FromObject","FromPromise","IsPromise","FromRecord","FromRef","FromRegExp","FromString","IsString","FormatRegistry.Has","FormatRegistry.Get","FromSymbol","IsSymbol","FromTemplateLiteral","FromThis","FromTuple","FromUndefined","IsUndefined","FromUnion","FromUint8Array","IsUint8Array","FromUnknown","FromVoid","FromKind","TypeRegistry.Has","TypeRegistry.Get","IsArray","IsNumber","IsAsyncIterator","IsBigInt","IsBoolean","IsDate","IsFunction","IsInteger","IsIterator","IsNull","IsPromise","IsString","FormatRegistry.Has","FormatRegistry.Get","IsSymbol","IsUndefined","IsUint8Array","TypeRegistry.Get","TypeRegistry.Has","Value.Check","Value.Errors"],"sources":["../src/runner.ts","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/value/guard/guard.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/system/policy.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/registry/format.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/registry/type.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/create/immutable.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/clone/value.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/create/type.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/error/error.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/never/never.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/guard/kind.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/sets/set.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/errors/function.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/value/deref/deref.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/value/hash/hash.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/value/check/check.mjs","../../../node_modules/.pnpm/@sinclair+typebox@0.34.52/node_modules/@sinclair/typebox/build/esm/errors/errors.mjs","../src/reference-adapter.ts"],"sourcesContent":["import { readFileSync, readdirSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport type { Adapter, Vector } from \"./adapter.js\";\n\nexport type VectorVerdict = {\n readonly id: string;\n readonly expected: \"accept\" | \"reject\";\n readonly outcome: \"pass\" | \"fail\";\n readonly detail: string;\n};\n\nexport type RunReport = {\n readonly passed: number;\n readonly failed: number;\n readonly verdicts: readonly VectorVerdict[];\n};\n\ntype Checklist = { readonly profiles: Readonly<Record<string, number>> };\n\n/** Runs every vector under `assetsDir` through the adapter. The checklist\n * is the coverage floor: a profile listed there with fewer vectors on disk\n * than promised fails the run, so a silently deleted directory cannot pass. */\nexport function runVectors(adapter: Adapter, assetsDir: string, checklist: Checklist): RunReport {\n const verdicts: VectorVerdict[] = [];\n\n for (const [profile, expectedCount] of Object.entries(checklist.profiles)) {\n const dir = join(assetsDir, profile.replaceAll(\"/\", \"_\"));\n let files: string[] = [];\n for (const verdict of [\"accept\", \"reject\", \"digest\"] as const) {\n let names: string[] = [];\n try {\n names = readdirSync(join(dir, verdict)).filter((f) => f.endsWith(\".json\"));\n } catch {\n names = [];\n }\n files = files.concat(names.map((n) => join(dir, verdict, n)));\n }\n\n if (files.length < expectedCount) {\n verdicts.push({\n id: profile,\n expected: \"accept\",\n outcome: \"fail\",\n detail: `checklist promises ${expectedCount} vectors, found ${files.length}`,\n });\n continue;\n }\n\n for (const file of files) {\n const vector = JSON.parse(readFileSync(file, \"utf8\")) as Vector;\n const isDigest = file.includes(\"/digest/\");\n const key = isDigest\n ? `${vector.profile}#digest.${vector.shape}`\n : `${vector.profile}#${vector.shape}`;\n const parse = adapter[key];\n if (parse === undefined && vector.obligation === \"semantic\") continue;\n if (parse === undefined) {\n verdicts.push({\n id: `${key}/${vector.name}`,\n expected: vector.verdict,\n outcome: \"fail\",\n detail: \"adapter has no parser for this shape\",\n });\n continue;\n }\n const result = parse(Buffer.from(vector.bytes, \"base64\"));\n const agreed = isDigest\n ? result.ok && result.digest === vector.sha256\n : result.ok === (vector.verdict === \"accept\");\n verdicts.push({\n id: `${vector.profile}#${vector.shape}/${vector.name}`,\n expected: vector.verdict,\n outcome: agreed ? \"pass\" : \"fail\",\n detail: agreed\n ? (vector.rule ?? \"\")\n : isDigest\n ? result.ok\n ? `digest mismatch: computed ${result.digest ?? \"nothing\"}, vector pins ${vector.sha256 ?? \"nothing\"}`\n : `could not digest: ${result.reason}`\n : result.ok\n ? `accepted but must reject: ${vector.rule ?? \"unnamed rule\"}`\n : `rejected but must accept: ${result.reason}`,\n });\n }\n }\n\n const failed = verdicts.filter((v) => v.outcome === \"fail\").length;\n return { passed: verdicts.length - failed, failed, verdicts };\n}\n","// --------------------------------------------------------------------------\n// Iterators\n// --------------------------------------------------------------------------\n/** Returns true if this value is an async iterator */\nexport function IsAsyncIterator(value) {\n return IsObject(value) && globalThis.Symbol.asyncIterator in value;\n}\n/** Returns true if this value is an iterator */\nexport function IsIterator(value) {\n return IsObject(value) && globalThis.Symbol.iterator in value;\n}\n// --------------------------------------------------------------------------\n// Object Instances\n// --------------------------------------------------------------------------\n/** Returns true if this value is not an instance of a class */\nexport function IsStandardObject(value) {\n return IsObject(value) && (globalThis.Object.getPrototypeOf(value) === Object.prototype || globalThis.Object.getPrototypeOf(value) === null);\n}\n/** Returns true if this value is an instance of a class */\nexport function IsInstanceObject(value) {\n return IsObject(value) && !IsArray(value) && IsFunction(value.constructor) && value.constructor.name !== 'Object';\n}\n// --------------------------------------------------------------------------\n// JavaScript\n// --------------------------------------------------------------------------\n/** Returns true if this value is a Promise */\nexport function IsPromise(value) {\n return value instanceof globalThis.Promise;\n}\n/** Returns true if this value is a Date */\nexport function IsDate(value) {\n return value instanceof Date && globalThis.Number.isFinite(value.getTime());\n}\n/** Returns true if this value is an instance of Map<K, T> */\nexport function IsMap(value) {\n return value instanceof globalThis.Map;\n}\n/** Returns true if this value is an instance of Set<T> */\nexport function IsSet(value) {\n return value instanceof globalThis.Set;\n}\n/** Returns true if this value is RegExp */\nexport function IsRegExp(value) {\n return value instanceof globalThis.RegExp;\n}\n/** Returns true if this value is a typed array */\nexport function IsTypedArray(value) {\n return globalThis.ArrayBuffer.isView(value);\n}\n/** Returns true if the value is a Int8Array */\nexport function IsInt8Array(value) {\n return value instanceof globalThis.Int8Array;\n}\n/** Returns true if the value is a Uint8Array */\nexport function IsUint8Array(value) {\n return value instanceof globalThis.Uint8Array;\n}\n/** Returns true if the value is a Uint8ClampedArray */\nexport function IsUint8ClampedArray(value) {\n return value instanceof globalThis.Uint8ClampedArray;\n}\n/** Returns true if the value is a Int16Array */\nexport function IsInt16Array(value) {\n return value instanceof globalThis.Int16Array;\n}\n/** Returns true if the value is a Uint16Array */\nexport function IsUint16Array(value) {\n return value instanceof globalThis.Uint16Array;\n}\n/** Returns true if the value is a Int32Array */\nexport function IsInt32Array(value) {\n return value instanceof globalThis.Int32Array;\n}\n/** Returns true if the value is a Uint32Array */\nexport function IsUint32Array(value) {\n return value instanceof globalThis.Uint32Array;\n}\n/** Returns true if the value is a Float32Array */\nexport function IsFloat32Array(value) {\n return value instanceof globalThis.Float32Array;\n}\n/** Returns true if the value is a Float64Array */\nexport function IsFloat64Array(value) {\n return value instanceof globalThis.Float64Array;\n}\n/** Returns true if the value is a BigInt64Array */\nexport function IsBigInt64Array(value) {\n return value instanceof globalThis.BigInt64Array;\n}\n/** Returns true if the value is a BigUint64Array */\nexport function IsBigUint64Array(value) {\n return value instanceof globalThis.BigUint64Array;\n}\n// --------------------------------------------------------------------------\n// PropertyKey\n// --------------------------------------------------------------------------\n/** Returns true if this value has this property key */\nexport function HasPropertyKey(value, key) {\n return key in value;\n}\n// --------------------------------------------------------------------------\n// Standard\n// --------------------------------------------------------------------------\n/** Returns true of this value is an object type */\nexport function IsObject(value) {\n return value !== null && typeof value === 'object';\n}\n/** Returns true if this value is an array, but not a typed array */\nexport function IsArray(value) {\n return globalThis.Array.isArray(value) && !globalThis.ArrayBuffer.isView(value);\n}\n/** Returns true if this value is an undefined */\nexport function IsUndefined(value) {\n return value === undefined;\n}\n/** Returns true if this value is an null */\nexport function IsNull(value) {\n return value === null;\n}\n/** Returns true if this value is an boolean */\nexport function IsBoolean(value) {\n return typeof value === 'boolean';\n}\n/** Returns true if this value is an number */\nexport function IsNumber(value) {\n return typeof value === 'number';\n}\n/** Returns true if this value is an integer */\nexport function IsInteger(value) {\n return globalThis.Number.isInteger(value);\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return typeof value === 'bigint';\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return typeof value === 'string';\n}\n/** Returns true if this value is a function */\nexport function IsFunction(value) {\n return typeof value === 'function';\n}\n/** Returns true if this value is a symbol */\nexport function IsSymbol(value) {\n return typeof value === 'symbol';\n}\n/** Returns true if this value is a value type such as number, string, boolean */\nexport function 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}\n","import { IsObject, IsArray, IsNumber, IsUndefined } from '../value/guard/index.mjs';\nexport var TypeSystemPolicy;\n(function (TypeSystemPolicy) {\n // ------------------------------------------------------------------\n // TypeSystemPolicy: Instancing\n // ------------------------------------------------------------------\n /**\n * Configures the instantiation behavior of TypeBox types. The `default` option assigns raw JavaScript\n * references for embedded types, which may cause side effects if type properties are explicitly updated\n * outside the TypeBox type builder. The `clone` option creates copies of any shared types upon creation,\n * preventing unintended side effects. The `freeze` option applies `Object.freeze()` to the type, making\n * it fully readonly and immutable. Implementations should use `default` whenever possible, as it is the\n * fastest way to instantiate types. The default setting is `default`.\n */\n TypeSystemPolicy.InstanceMode = 'default';\n // ------------------------------------------------------------------\n // TypeSystemPolicy: Checking\n // ------------------------------------------------------------------\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 /** Checks 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 /** Checks this value using the AllowArrayObjects policy */\n function IsObjectLike(value) {\n const isObject = IsObject(value);\n return TypeSystemPolicy.AllowArrayObject ? isObject : isObject && !IsArray(value);\n }\n TypeSystemPolicy.IsObjectLike = IsObjectLike;\n /** Checks 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 /** Checks this value using the AllowNaN policy */\n function IsNumberLike(value) {\n return TypeSystemPolicy.AllowNaN ? IsNumber(value) : Number.isFinite(value);\n }\n TypeSystemPolicy.IsNumberLike = IsNumberLike;\n /** Checks this value using the AllowVoidNull policy */\n function IsVoidLike(value) {\n const isUndefined = IsUndefined(value);\n return TypeSystemPolicy.AllowNullVoid ? isUndefined || value === null : isUndefined;\n }\n TypeSystemPolicy.IsVoidLike = IsVoidLike;\n})(TypeSystemPolicy || (TypeSystemPolicy = {}));\n","/** A registry for user defined string formats */\nconst map = new Map();\n/** Returns the entries in this registry */\nexport function Entries() {\n return new Map(map);\n}\n/** Clears all user defined string formats */\nexport function Clear() {\n return map.clear();\n}\n/** Deletes a registered format */\nexport function Delete(format) {\n return map.delete(format);\n}\n/** Returns true if the user defined string format exists */\nexport function Has(format) {\n return map.has(format);\n}\n/** Sets a validation function for a user defined string format */\nexport function Set(format, func) {\n map.set(format, func);\n}\n/** Gets a validation function for a user defined string format */\nexport function Get(format) {\n return map.get(format);\n}\n","/** A registry for user defined types */\nconst map = new Map();\n/** Returns the entries in this registry */\nexport function Entries() {\n return new Map(map);\n}\n/** Clears all user defined types */\nexport function Clear() {\n return map.clear();\n}\n/** Deletes a registered type */\nexport function Delete(kind) {\n return map.delete(kind);\n}\n/** Returns true if this registry contains this kind */\nexport function Has(kind) {\n return map.has(kind);\n}\n/** Sets a validation function for a user defined type */\nexport function Set(kind, func) {\n map.set(kind, func);\n}\n/** Gets a custom validation function for a user defined type */\nexport function Get(kind) {\n return map.get(kind);\n}\n","// --------------------------------------------------------------------------\n// PropertyKey\n// --------------------------------------------------------------------------\n/** Returns true if this value has this property key */\nexport function HasPropertyKey(value, key) {\n return key in value;\n}\n// --------------------------------------------------------------------------\n// Object Instances\n// --------------------------------------------------------------------------\n/** Returns true if this value is an async iterator */\nexport function IsAsyncIterator(value) {\n return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.asyncIterator in value;\n}\n/** Returns true if this value is an array */\nexport function IsArray(value) {\n return Array.isArray(value);\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return typeof value === 'bigint';\n}\n/** Returns true if this value is a boolean */\nexport function IsBoolean(value) {\n return typeof value === 'boolean';\n}\n/** Returns true if this value is a Date object */\nexport function IsDate(value) {\n return value instanceof globalThis.Date;\n}\n/** Returns true if this value is a function */\nexport function IsFunction(value) {\n return typeof value === 'function';\n}\n/** Returns true if this value is an iterator */\nexport function IsIterator(value) {\n return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.iterator in value;\n}\n/** Returns true if this value is null */\nexport function IsNull(value) {\n return value === null;\n}\n/** Returns true if this value is number */\nexport function IsNumber(value) {\n return typeof value === 'number';\n}\n/** Returns true if this value is an object */\nexport function IsObject(value) {\n return typeof value === 'object' && value !== null;\n}\n/** Returns true if this value is RegExp */\nexport function IsRegExp(value) {\n return value instanceof globalThis.RegExp;\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return typeof value === 'string';\n}\n/** Returns true if this value is symbol */\nexport function IsSymbol(value) {\n return typeof value === 'symbol';\n}\n/** Returns true if this value is a Uint8Array */\nexport function IsUint8Array(value) {\n return value instanceof globalThis.Uint8Array;\n}\n/** Returns true if this value is undefined */\nexport function IsUndefined(value) {\n return value === undefined;\n}\n","import * as ValueGuard from '../guard/value.mjs';\nfunction ImmutableArray(value) {\n return globalThis.Object.freeze(value).map((value) => Immutable(value));\n}\nfunction ImmutableDate(value) {\n return value;\n}\nfunction ImmutableUint8Array(value) {\n return value;\n}\nfunction ImmutableRegExp(value) {\n return value;\n}\nfunction ImmutableObject(value) {\n const result = {};\n for (const key of Object.getOwnPropertyNames(value)) {\n result[key] = Immutable(value[key]);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n result[key] = Immutable(value[key]);\n }\n return globalThis.Object.freeze(result);\n}\n/** Specialized deep immutable value. Applies freeze recursively to the given value */\n// prettier-ignore\nexport function Immutable(value) {\n return (ValueGuard.IsArray(value) ? ImmutableArray(value) :\n ValueGuard.IsDate(value) ? ImmutableDate(value) :\n ValueGuard.IsUint8Array(value) ? ImmutableUint8Array(value) :\n ValueGuard.IsRegExp(value) ? ImmutableRegExp(value) :\n ValueGuard.IsObject(value) ? ImmutableObject(value) :\n value);\n}\n","import * as ValueGuard from '../guard/value.mjs';\nfunction ArrayType(value) {\n return value.map((value) => Visit(value));\n}\nfunction DateType(value) {\n return new Date(value.getTime());\n}\nfunction Uint8ArrayType(value) {\n return new Uint8Array(value);\n}\nfunction RegExpType(value) {\n return new RegExp(value.source, value.flags);\n}\nfunction ObjectType(value) {\n const result = {};\n for (const key of Object.getOwnPropertyNames(value)) {\n result[key] = Visit(value[key]);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n result[key] = Visit(value[key]);\n }\n return result;\n}\n// prettier-ignore\nfunction Visit(value) {\n return (ValueGuard.IsArray(value) ? ArrayType(value) :\n ValueGuard.IsDate(value) ? DateType(value) :\n ValueGuard.IsUint8Array(value) ? Uint8ArrayType(value) :\n ValueGuard.IsRegExp(value) ? RegExpType(value) :\n ValueGuard.IsObject(value) ? ObjectType(value) :\n value);\n}\n/** Clones a value */\nexport function Clone(value) {\n return Visit(value);\n}\n","import { TypeSystemPolicy } from '../../system/policy.mjs';\nimport { Immutable } from './immutable.mjs';\nimport { Clone } from '../clone/value.mjs';\n/** Creates TypeBox schematics using the configured InstanceMode */\nexport function CreateType(schema, options) {\n const result = options !== undefined ? { ...options, ...schema } : schema;\n switch (TypeSystemPolicy.InstanceMode) {\n case 'freeze':\n return Immutable(result);\n case 'clone':\n return Clone(result);\n default:\n return result;\n }\n}\n","/** Symbol key applied to transform types */\nexport const TransformKind = Symbol.for('TypeBox.Transform');\n/** Symbol key applied to readonly types */\nexport const ReadonlyKind = Symbol.for('TypeBox.Readonly');\n/** Symbol key applied to optional types */\nexport const OptionalKind = Symbol.for('TypeBox.Optional');\n/** Symbol key applied to types */\nexport const Hint = Symbol.for('TypeBox.Hint');\n/** Symbol key applied to types */\nexport const Kind = Symbol.for('TypeBox.Kind');\n","/** The base Error type thrown for all TypeBox exceptions */\nexport class TypeBoxError extends Error {\n constructor(message) {\n super(message);\n }\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Never type */\nexport function Never(options) {\n return CreateType({ [Kind]: 'Never', not: {} }, options);\n}\n","import * as ValueGuard from './value.mjs';\nimport { Kind, Hint, TransformKind, ReadonlyKind, OptionalKind } from '../symbols/index.mjs';\n/** `[Kind-Only]` Returns true if this value has a Readonly symbol */\nexport function IsReadonly(value) {\n return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly';\n}\n/** `[Kind-Only]` Returns true if this value has a Optional symbol */\nexport function IsOptional(value) {\n return ValueGuard.IsObject(value) && value[OptionalKind] === 'Optional';\n}\n/** `[Kind-Only]` Returns true if the given value is TAny */\nexport function IsAny(value) {\n return IsKindOf(value, 'Any');\n}\n/** `[Kind-Only]` Returns true if the given value is TArgument */\nexport function IsArgument(value) {\n return IsKindOf(value, 'Argument');\n}\n/** `[Kind-Only]` Returns true if the given value is TArray */\nexport function IsArray(value) {\n return IsKindOf(value, 'Array');\n}\n/** `[Kind-Only]` Returns true if the given value is TAsyncIterator */\nexport function IsAsyncIterator(value) {\n return IsKindOf(value, 'AsyncIterator');\n}\n/** `[Kind-Only]` Returns true if the given value is TBigInt */\nexport function IsBigInt(value) {\n return IsKindOf(value, 'BigInt');\n}\n/** `[Kind-Only]` Returns true if the given value is TBoolean */\nexport function IsBoolean(value) {\n return IsKindOf(value, 'Boolean');\n}\n/** `[Kind-Only]` Returns true if the given value is TComputed */\nexport function IsComputed(value) {\n return IsKindOf(value, 'Computed');\n}\n/** `[Kind-Only]` Returns true if the given value is TConstructor */\nexport function IsConstructor(value) {\n return IsKindOf(value, 'Constructor');\n}\n/** `[Kind-Only]` Returns true if the given value is TDate */\nexport function IsDate(value) {\n return IsKindOf(value, 'Date');\n}\n/** `[Kind-Only]` Returns true if the given value is TFunction */\nexport function IsFunction(value) {\n return IsKindOf(value, 'Function');\n}\n/** `[Kind-Only]` Returns true if the given value is TInteger */\nexport function IsImport(value) {\n return IsKindOf(value, 'Import');\n}\n/** `[Kind-Only]` Returns true if the given value is TInteger */\nexport function IsInteger(value) {\n return IsKindOf(value, 'Integer');\n}\n/** `[Kind-Only]` Returns true if the given schema is TProperties */\nexport function IsProperties(value) {\n return ValueGuard.IsObject(value);\n}\n/** `[Kind-Only]` Returns true if the given value is TIntersect */\nexport function IsIntersect(value) {\n return IsKindOf(value, 'Intersect');\n}\n/** `[Kind-Only]` Returns true if the given value is TIterator */\nexport function IsIterator(value) {\n return IsKindOf(value, 'Iterator');\n}\n/** `[Kind-Only]` Returns true if the given value is a TKind with the given name. */\nexport function IsKindOf(value, kind) {\n return ValueGuard.IsObject(value) && Kind in value && value[Kind] === kind;\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral<string> */\nexport function IsLiteralString(value) {\n return IsLiteral(value) && ValueGuard.IsString(value.const);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral<number> */\nexport function IsLiteralNumber(value) {\n return IsLiteral(value) && ValueGuard.IsNumber(value.const);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral<boolean> */\nexport function IsLiteralBoolean(value) {\n return IsLiteral(value) && ValueGuard.IsBoolean(value.const);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteralValue */\nexport function IsLiteralValue(value) {\n return ValueGuard.IsBoolean(value) || ValueGuard.IsNumber(value) || ValueGuard.IsString(value);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral */\nexport function IsLiteral(value) {\n return IsKindOf(value, 'Literal');\n}\n/** `[Kind-Only]` Returns true if the given value is a TMappedKey */\nexport function IsMappedKey(value) {\n return IsKindOf(value, 'MappedKey');\n}\n/** `[Kind-Only]` Returns true if the given value is TMappedResult */\nexport function IsMappedResult(value) {\n return IsKindOf(value, 'MappedResult');\n}\n/** `[Kind-Only]` Returns true if the given value is TNever */\nexport function IsNever(value) {\n return IsKindOf(value, 'Never');\n}\n/** `[Kind-Only]` Returns true if the given value is TNot */\nexport function IsNot(value) {\n return IsKindOf(value, 'Not');\n}\n/** `[Kind-Only]` Returns true if the given value is TNull */\nexport function IsNull(value) {\n return IsKindOf(value, 'Null');\n}\n/** `[Kind-Only]` Returns true if the given value is TNumber */\nexport function IsNumber(value) {\n return IsKindOf(value, 'Number');\n}\n/** `[Kind-Only]` Returns true if the given value is TObject */\nexport function IsObject(value) {\n return IsKindOf(value, 'Object');\n}\n/** `[Kind-Only]` Returns true if the given value is TPromise */\nexport function IsPromise(value) {\n return IsKindOf(value, 'Promise');\n}\n/** `[Kind-Only]` Returns true if the given value is TRecord */\nexport function IsRecord(value) {\n return IsKindOf(value, 'Record');\n}\n/** `[Kind-Only]` Returns true if this value is TRecursive */\nexport function IsRecursive(value) {\n return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive';\n}\n/** `[Kind-Only]` Returns true if the given value is TRef */\nexport function IsRef(value) {\n return IsKindOf(value, 'Ref');\n}\n/** `[Kind-Only]` Returns true if the given value is TRegExp */\nexport function IsRegExp(value) {\n return IsKindOf(value, 'RegExp');\n}\n/** `[Kind-Only]` Returns true if the given value is TString */\nexport function IsString(value) {\n return IsKindOf(value, 'String');\n}\n/** `[Kind-Only]` Returns true if the given value is TSymbol */\nexport function IsSymbol(value) {\n return IsKindOf(value, 'Symbol');\n}\n/** `[Kind-Only]` Returns true if the given value is TTemplateLiteral */\nexport function IsTemplateLiteral(value) {\n return IsKindOf(value, 'TemplateLiteral');\n}\n/** `[Kind-Only]` Returns true if the given value is TThis */\nexport function IsThis(value) {\n return IsKindOf(value, 'This');\n}\n/** `[Kind-Only]` Returns true of this value is TTransform */\nexport function IsTransform(value) {\n return ValueGuard.IsObject(value) && TransformKind in value;\n}\n/** `[Kind-Only]` Returns true if the given value is TTuple */\nexport function IsTuple(value) {\n return IsKindOf(value, 'Tuple');\n}\n/** `[Kind-Only]` Returns true if the given value is TUndefined */\nexport function IsUndefined(value) {\n return IsKindOf(value, 'Undefined');\n}\n/** `[Kind-Only]` Returns true if the given value is TUnion */\nexport function IsUnion(value) {\n return IsKindOf(value, 'Union');\n}\n/** `[Kind-Only]` Returns true if the given value is TUint8Array */\nexport function IsUint8Array(value) {\n return IsKindOf(value, 'Uint8Array');\n}\n/** `[Kind-Only]` Returns true if the given value is TUnknown */\nexport function IsUnknown(value) {\n return IsKindOf(value, 'Unknown');\n}\n/** `[Kind-Only]` Returns true if the given value is a raw TUnsafe */\nexport function IsUnsafe(value) {\n return IsKindOf(value, 'Unsafe');\n}\n/** `[Kind-Only]` Returns true if the given value is TVoid */\nexport function IsVoid(value) {\n return IsKindOf(value, 'Void');\n}\n/** `[Kind-Only]` Returns true if the given value is TKind */\nexport function IsKind(value) {\n return ValueGuard.IsObject(value) && Kind in value && ValueGuard.IsString(value[Kind]);\n}\n/** `[Kind-Only]` Returns true if the given value is TSchema */\nexport function IsSchema(value) {\n // prettier-ignore\n return (IsAny(value) ||\n IsArgument(value) ||\n IsArray(value) ||\n IsBoolean(value) ||\n IsBigInt(value) ||\n IsAsyncIterator(value) ||\n IsComputed(value) ||\n IsConstructor(value) ||\n IsDate(value) ||\n IsFunction(value) ||\n IsInteger(value) ||\n IsIntersect(value) ||\n IsIterator(value) ||\n IsLiteral(value) ||\n IsMappedKey(value) ||\n IsMappedResult(value) ||\n IsNever(value) ||\n IsNot(value) ||\n IsNull(value) ||\n IsNumber(value) ||\n IsObject(value) ||\n IsPromise(value) ||\n IsRecord(value) ||\n IsRef(value) ||\n IsRegExp(value) ||\n IsString(value) ||\n IsSymbol(value) ||\n IsTemplateLiteral(value) ||\n IsThis(value) ||\n IsTuple(value) ||\n IsUndefined(value) ||\n IsUnion(value) ||\n IsUint8Array(value) ||\n IsUnknown(value) ||\n IsUnsafe(value) ||\n IsVoid(value) ||\n IsKind(value));\n}\n","/** Returns true if element right is in the set of left */\n// prettier-ignore\nexport function SetIncludes(T, S) {\n return T.includes(S);\n}\n/** Returns true if left is a subset of right */\nexport function SetIsSubset(T, S) {\n return T.every((L) => SetIncludes(S, L));\n}\n/** Returns a distinct set of elements */\nexport function SetDistinct(T) {\n return [...new Set(T)];\n}\n/** Returns the Intersect of the given sets */\nexport function SetIntersect(T, S) {\n return T.filter((L) => S.includes(L));\n}\n/** Returns the Union of the given sets */\nexport function SetUnion(T, S) {\n return [...T, ...S];\n}\n/** Returns the Complement by omitting elements in T that are in S */\n// prettier-ignore\nexport function SetComplement(T, S) {\n return T.filter(L => !S.includes(L));\n}\n// prettier-ignore\nfunction SetIntersectManyResolve(T, Init) {\n return T.reduce((Acc, L) => {\n return SetIntersect(Acc, L);\n }, Init);\n}\n// prettier-ignore\nexport function SetIntersectMany(T) {\n return (T.length === 1\n ? T[0]\n // Use left to initialize the accumulator for resolve\n : T.length > 1\n ? SetIntersectManyResolve(T.slice(1), T[0])\n : []);\n}\n/** Returns the Union of multiple sets */\nexport function SetUnionMany(T) {\n const Acc = [];\n for (const L of T)\n Acc.push(...L);\n return Acc;\n}\n","import { SetUnionMany, SetIntersectMany } from '../sets/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsIntersect, IsUnion, IsTuple, IsArray, IsObject, IsRecord } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromRest(types) {\n const result = [];\n for (const L of types)\n result.push(KeyOfPropertyKeys(L));\n return result;\n}\n// prettier-ignore\nfunction FromIntersect(types) {\n const propertyKeysArray = FromRest(types);\n const propertyKeys = SetUnionMany(propertyKeysArray);\n return propertyKeys;\n}\n// prettier-ignore\nfunction FromUnion(types) {\n const propertyKeysArray = FromRest(types);\n const propertyKeys = SetIntersectMany(propertyKeysArray);\n return propertyKeys;\n}\n// prettier-ignore\nfunction FromTuple(types) {\n return types.map((_, indexer) => indexer.toString());\n}\n// prettier-ignore\nfunction FromArray(_) {\n return (['[number]']);\n}\n// prettier-ignore\nfunction FromProperties(T) {\n return (globalThis.Object.getOwnPropertyNames(T));\n}\n// ------------------------------------------------------------------\n// FromPatternProperties\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromPatternProperties(patternProperties) {\n if (!includePatternProperties)\n return [];\n const patternPropertyKeys = globalThis.Object.getOwnPropertyNames(patternProperties);\n return patternPropertyKeys.map(key => {\n return (key[0] === '^' && key[key.length - 1] === '$')\n ? key.slice(1, key.length - 1)\n : key;\n });\n}\n/** Returns a tuple of PropertyKeys derived from the given TSchema. */\n// prettier-ignore\nexport function KeyOfPropertyKeys(type) {\n return (IsIntersect(type) ? FromIntersect(type.allOf) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsTuple(type) ? FromTuple(type.items ?? []) :\n IsArray(type) ? FromArray(type.items) :\n IsObject(type) ? FromProperties(type.properties) :\n IsRecord(type) ? FromPatternProperties(type.patternProperties) :\n []);\n}\n// ----------------------------------------------------------------\n// KeyOfPattern\n// ----------------------------------------------------------------\nlet includePatternProperties = false;\n/** Returns a regular expression pattern derived from the given TSchema */\nexport function KeyOfPattern(schema) {\n includePatternProperties = true;\n const keys = KeyOfPropertyKeys(schema);\n includePatternProperties = false;\n const pattern = keys.map((key) => `(${key})`);\n return `^(${pattern.join('|')})$`;\n}\n","import { Kind } from '../symbols/index.mjs';\n/** Fast undefined check used for properties of type undefined */\nfunction Intersect(schema) {\n return schema.allOf.every((schema) => ExtendsUndefinedCheck(schema));\n}\nfunction Union(schema) {\n return schema.anyOf.some((schema) => ExtendsUndefinedCheck(schema));\n}\nfunction Not(schema) {\n return !ExtendsUndefinedCheck(schema.not);\n}\n/** Fast undefined check used for properties of type undefined */\n// prettier-ignore\nexport function ExtendsUndefinedCheck(schema) {\n return (schema[Kind] === 'Intersect' ? Intersect(schema) :\n schema[Kind] === 'Union' ? Union(schema) :\n schema[Kind] === 'Not' ? Not(schema) :\n schema[Kind] === 'Undefined' ? true :\n false);\n}\n","import { Kind } from '../type/symbols/index.mjs';\nimport { ValueErrorType } from './errors.mjs';\n/** Creates an error message using en-US as the default locale */\nexport function DefaultErrorFunction(error) {\n switch (error.errorType) {\n case ValueErrorType.ArrayContains:\n return 'Expected array to contain at least one matching value';\n case ValueErrorType.ArrayMaxContains:\n return `Expected array to contain no more than ${error.schema.maxContains} matching values`;\n case ValueErrorType.ArrayMinContains:\n return `Expected array to contain at least ${error.schema.minContains} matching values`;\n case ValueErrorType.ArrayMaxItems:\n return `Expected array length to be less or equal to ${error.schema.maxItems}`;\n case ValueErrorType.ArrayMinItems:\n return `Expected array length to be greater or equal to ${error.schema.minItems}`;\n case ValueErrorType.ArrayUniqueItems:\n return 'Expected array elements to be unique';\n case ValueErrorType.Array:\n return 'Expected array';\n case ValueErrorType.AsyncIterator:\n return 'Expected AsyncIterator';\n case ValueErrorType.BigIntExclusiveMaximum:\n return `Expected bigint to be less than ${error.schema.exclusiveMaximum}`;\n case ValueErrorType.BigIntExclusiveMinimum:\n return `Expected bigint to be greater than ${error.schema.exclusiveMinimum}`;\n case ValueErrorType.BigIntMaximum:\n return `Expected bigint to be less or equal to ${error.schema.maximum}`;\n case ValueErrorType.BigIntMinimum:\n return `Expected bigint to be greater or equal to ${error.schema.minimum}`;\n case ValueErrorType.BigIntMultipleOf:\n return `Expected bigint to be a multiple of ${error.schema.multipleOf}`;\n case ValueErrorType.BigInt:\n return 'Expected bigint';\n case ValueErrorType.Boolean:\n return 'Expected boolean';\n case ValueErrorType.DateExclusiveMinimumTimestamp:\n return `Expected Date timestamp to be greater than ${error.schema.exclusiveMinimumTimestamp}`;\n case ValueErrorType.DateExclusiveMaximumTimestamp:\n return `Expected Date timestamp to be less than ${error.schema.exclusiveMaximumTimestamp}`;\n case ValueErrorType.DateMinimumTimestamp:\n return `Expected Date timestamp to be greater or equal to ${error.schema.minimumTimestamp}`;\n case ValueErrorType.DateMaximumTimestamp:\n return `Expected Date timestamp to be less or equal to ${error.schema.maximumTimestamp}`;\n case ValueErrorType.DateMultipleOfTimestamp:\n return `Expected Date timestamp to be a multiple of ${error.schema.multipleOfTimestamp}`;\n case ValueErrorType.Date:\n return 'Expected Date';\n case ValueErrorType.Function:\n return 'Expected function';\n case ValueErrorType.IntegerExclusiveMaximum:\n return `Expected integer to be less than ${error.schema.exclusiveMaximum}`;\n case ValueErrorType.IntegerExclusiveMinimum:\n return `Expected integer to be greater than ${error.schema.exclusiveMinimum}`;\n case ValueErrorType.IntegerMaximum:\n return `Expected integer to be less or equal to ${error.schema.maximum}`;\n case ValueErrorType.IntegerMinimum:\n return `Expected integer to be greater or equal to ${error.schema.minimum}`;\n case ValueErrorType.IntegerMultipleOf:\n return `Expected integer to be a multiple of ${error.schema.multipleOf}`;\n case ValueErrorType.Integer:\n return 'Expected integer';\n case ValueErrorType.IntersectUnevaluatedProperties:\n return 'Unexpected property';\n case ValueErrorType.Intersect:\n return 'Expected all values to match';\n case ValueErrorType.Iterator:\n return 'Expected Iterator';\n case ValueErrorType.Literal:\n return `Expected ${typeof error.schema.const === 'string' ? `'${error.schema.const}'` : error.schema.const}`;\n case ValueErrorType.Never:\n return 'Never';\n case ValueErrorType.Not:\n return 'Value should not match';\n case ValueErrorType.Null:\n return 'Expected null';\n case ValueErrorType.NumberExclusiveMaximum:\n return `Expected number to be less than ${error.schema.exclusiveMaximum}`;\n case ValueErrorType.NumberExclusiveMinimum:\n return `Expected number to be greater than ${error.schema.exclusiveMinimum}`;\n case ValueErrorType.NumberMaximum:\n return `Expected number to be less or equal to ${error.schema.maximum}`;\n case ValueErrorType.NumberMinimum:\n return `Expected number to be greater or equal to ${error.schema.minimum}`;\n case ValueErrorType.NumberMultipleOf:\n return `Expected number to be a multiple of ${error.schema.multipleOf}`;\n case ValueErrorType.Number:\n return 'Expected number';\n case ValueErrorType.Object:\n return 'Expected object';\n case ValueErrorType.ObjectAdditionalProperties:\n return 'Unexpected property';\n case ValueErrorType.ObjectMaxProperties:\n return `Expected object to have no more than ${error.schema.maxProperties} properties`;\n case ValueErrorType.ObjectMinProperties:\n return `Expected object to have at least ${error.schema.minProperties} properties`;\n case ValueErrorType.ObjectRequiredProperty:\n return 'Expected required property';\n case ValueErrorType.Promise:\n return 'Expected Promise';\n case ValueErrorType.RegExp:\n return 'Expected string to match regular expression';\n case ValueErrorType.StringFormatUnknown:\n return `Unknown format '${error.schema.format}'`;\n case ValueErrorType.StringFormat:\n return `Expected string to match '${error.schema.format}' format`;\n case ValueErrorType.StringMaxLength:\n return `Expected string length less or equal to ${error.schema.maxLength}`;\n case ValueErrorType.StringMinLength:\n return `Expected string length greater or equal to ${error.schema.minLength}`;\n case ValueErrorType.StringPattern:\n return `Expected string to match '${error.schema.pattern}'`;\n case ValueErrorType.String:\n return 'Expected string';\n case ValueErrorType.Symbol:\n return 'Expected symbol';\n case ValueErrorType.TupleLength:\n return `Expected tuple to have ${error.schema.maxItems || 0} elements`;\n case ValueErrorType.Tuple:\n return 'Expected tuple';\n case ValueErrorType.Uint8ArrayMaxByteLength:\n return `Expected byte length less or equal to ${error.schema.maxByteLength}`;\n case ValueErrorType.Uint8ArrayMinByteLength:\n return `Expected byte length greater or equal to ${error.schema.minByteLength}`;\n case ValueErrorType.Uint8Array:\n return 'Expected Uint8Array';\n case ValueErrorType.Undefined:\n return 'Expected undefined';\n case ValueErrorType.Union:\n return 'Expected union value';\n case ValueErrorType.Void:\n return 'Expected void';\n case ValueErrorType.Kind:\n return `Expected kind '${error.schema[Kind]}'`;\n default:\n return 'Unknown error type';\n }\n}\n/** Manages error message providers */\nlet errorFunction = DefaultErrorFunction;\n/** Sets the error function used to generate error messages. */\nexport function SetErrorFunction(callback) {\n errorFunction = callback;\n}\n/** Gets the error function used to generate error messages */\nexport function GetErrorFunction() {\n return errorFunction;\n}\n","import { TypeBoxError } from '../../type/error/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\nimport { IsString } from '../guard/guard.mjs';\nexport class TypeDereferenceError extends TypeBoxError {\n constructor(schema) {\n super(`Unable to dereference schema with $id '${schema.$ref}'`);\n this.schema = schema;\n }\n}\nfunction Resolve(schema, references) {\n const target = references.find((target) => target.$id === schema.$ref);\n if (target === undefined)\n throw new TypeDereferenceError(schema);\n return Deref(target, references);\n}\n/** `[Internal]` Pushes a schema onto references if the schema has an $id and does not exist on references */\nexport function Pushref(schema, references) {\n if (!IsString(schema.$id) || references.some((target) => target.$id === schema.$id))\n return references;\n references.push(schema);\n return references;\n}\n/** `[Internal]` Dereferences a schema from the references array or throws if not found */\nexport function Deref(schema, references) {\n // prettier-ignore\n return (schema[Kind] === 'This' || schema[Kind] === 'Ref')\n ? Resolve(schema, references)\n : schema;\n}\n","import { IsArray, IsBoolean, IsBigInt, IsDate, IsNull, IsNumber, IsObject, IsString, IsSymbol, IsUint8Array, IsUndefined } from '../guard/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValueHashError extends TypeBoxError {\n constructor(value) {\n super(`Unable to hash value`);\n this.value = value;\n }\n}\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 || (ByteMarker = {}));\n// ------------------------------------------------------------------\n// State\n// ------------------------------------------------------------------\nlet Accumulator = BigInt('14695981039346656037');\nconst [Prime, Size] = [BigInt('1099511628211'), BigInt('18446744073709551616' /* 2 ^ 64 */)];\nconst Bytes = Array.from({ length: 256 }).map((_, i) => BigInt(i));\nconst F64 = new Float64Array(1);\nconst F64In = new DataView(F64.buffer);\nconst F64Out = new Uint8Array(F64.buffer);\n// ------------------------------------------------------------------\n// 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.getOwnPropertyNames(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 (IsArray(value))\n return ArrayType(value);\n if (IsBoolean(value))\n return BooleanType(value);\n if (IsBigInt(value))\n return BigIntType(value);\n if (IsDate(value))\n return DateType(value);\n if (IsNull(value))\n return NullType(value);\n if (IsNumber(value))\n return NumberType(value);\n if (IsObject(value))\n return ObjectType(value);\n if (IsString(value))\n return StringType(value);\n if (IsSymbol(value))\n return SymbolType(value);\n if (IsUint8Array(value))\n return Uint8ArrayType(value);\n if (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 */\nexport function Hash(value) {\n Accumulator = BigInt('14695981039346656037');\n Visit(value);\n return Accumulator;\n}\n","import { TypeSystemPolicy } from '../../system/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\nimport { Hash } from '../hash/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\nimport { KeyOfPattern } from '../../type/keyof/index.mjs';\nimport { ExtendsUndefinedCheck } from '../../type/extends/index.mjs';\nimport { TypeRegistry, FormatRegistry } from '../../type/registry/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\nimport { Never } from '../../type/never/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsUint8Array, IsDate, IsPromise, IsFunction, IsAsyncIterator, IsIterator, IsBoolean, IsNumber, IsBigInt, IsString, IsSymbol, IsInteger, IsNull, IsUndefined } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// KindGuard\n// ------------------------------------------------------------------\nimport { IsSchema } from '../../type/guard/kind.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValueCheckUnknownTypeError extends TypeBoxError {\n constructor(schema) {\n super(`Unknown type`);\n this.schema = schema;\n }\n}\n// ------------------------------------------------------------------\n// TypeGuards\n// ------------------------------------------------------------------\nfunction IsAnyOrUnknown(schema) {\n return schema[Kind] === 'Any' || schema[Kind] === 'Unknown';\n}\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\nfunction IsDefined(value) {\n return value !== undefined;\n}\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\nfunction FromAny(schema, references, value) {\n return true;\n}\nfunction FromArgument(schema, references, value) {\n return true;\n}\nfunction FromArray(schema, references, value) {\n if (!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 for (const element of value) {\n if (!Visit(schema.items, references, element))\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 = 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) || IsNumber(schema.minContains) || IsNumber(schema.maxContains))) {\n return true; // exit\n }\n const containsSchema = IsDefined(schema.contains) ? schema.contains : 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 (IsNumber(schema.minContains) && containsCount < schema.minContains) {\n return false;\n }\n if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) {\n return false;\n }\n return true;\n}\nfunction FromAsyncIterator(schema, references, value) {\n return IsAsyncIterator(value);\n}\nfunction FromBigInt(schema, references, value) {\n if (!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 FromBoolean(schema, references, value) {\n return IsBoolean(value);\n}\nfunction FromConstructor(schema, references, value) {\n return Visit(schema.returns, references, value.prototype);\n}\nfunction FromDate(schema, references, value) {\n if (!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 FromFunction(schema, references, value) {\n return IsFunction(value);\n}\nfunction FromImport(schema, references, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n return Visit(target, [...references, ...definitions], value);\n}\nfunction FromInteger(schema, references, value) {\n if (!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 FromIntersect(schema, references, value) {\n const check1 = schema.allOf.every((schema) => Visit(schema, references, value));\n if (schema.unevaluatedProperties === false) {\n const keyPattern = new RegExp(KeyOfPattern(schema));\n const check2 = Object.getOwnPropertyNames(value).every((key) => keyPattern.test(key));\n return check1 && check2;\n }\n else if (IsSchema(schema.unevaluatedProperties)) {\n const keyCheck = new RegExp(KeyOfPattern(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 FromIterator(schema, references, value) {\n return IsIterator(value);\n}\nfunction FromLiteral(schema, references, value) {\n return value === schema.const;\n}\nfunction FromNever(schema, references, value) {\n return false;\n}\nfunction FromNot(schema, references, value) {\n return !Visit(schema.not, references, value);\n}\nfunction FromNull(schema, references, value) {\n return IsNull(value);\n}\nfunction FromNumber(schema, references, value) {\n if (!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 FromObject(schema, references, value) {\n if (!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 ((ExtendsUndefinedCheck(property) || IsAnyOrUnknown(property)) && !(knownKey in value)) {\n return false;\n }\n }\n else {\n if (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 FromPromise(schema, references, value) {\n return IsPromise(value);\n}\nfunction FromRecord(schema, references, value) {\n if (!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 FromRef(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromRegExp(schema, references, value) {\n const regex = new RegExp(schema.source, schema.flags);\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 return regex.test(value);\n}\nfunction FromString(schema, references, value) {\n if (!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 (!FormatRegistry.Has(schema.format))\n return false;\n const func = FormatRegistry.Get(schema.format);\n return func(value);\n }\n return true;\n}\nfunction FromSymbol(schema, references, value) {\n return IsSymbol(value);\n}\nfunction FromTemplateLiteral(schema, references, value) {\n return IsString(value) && new RegExp(schema.pattern).test(value);\n}\nfunction FromThis(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromTuple(schema, references, value) {\n if (!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 FromUndefined(schema, references, value) {\n return IsUndefined(value);\n}\nfunction FromUnion(schema, references, value) {\n return schema.anyOf.some((inner) => Visit(inner, references, value));\n}\nfunction FromUint8Array(schema, references, value) {\n if (!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 FromUnknown(schema, references, value) {\n return true;\n}\nfunction FromVoid(schema, references, value) {\n return TypeSystemPolicy.IsVoidLike(value);\n}\nfunction FromKind(schema, references, value) {\n if (!TypeRegistry.Has(schema[Kind]))\n return false;\n const func = TypeRegistry.Get(schema[Kind]);\n return func(schema, value);\n}\nfunction Visit(schema, references, value) {\n const references_ = IsDefined(schema.$id) ? Pushref(schema, references) : references;\n const schema_ = schema;\n switch (schema_[Kind]) {\n case 'Any':\n return FromAny(schema_, references_, value);\n case 'Argument':\n return FromArgument(schema_, references_, value);\n case 'Array':\n return FromArray(schema_, references_, value);\n case 'AsyncIterator':\n return FromAsyncIterator(schema_, references_, value);\n case 'BigInt':\n return FromBigInt(schema_, references_, value);\n case 'Boolean':\n return FromBoolean(schema_, references_, value);\n case 'Constructor':\n return FromConstructor(schema_, references_, value);\n case 'Date':\n return FromDate(schema_, references_, value);\n case 'Function':\n return FromFunction(schema_, references_, value);\n case 'Import':\n return FromImport(schema_, references_, value);\n case 'Integer':\n return FromInteger(schema_, references_, value);\n case 'Intersect':\n return FromIntersect(schema_, references_, value);\n case 'Iterator':\n return FromIterator(schema_, references_, value);\n case 'Literal':\n return FromLiteral(schema_, references_, value);\n case 'Never':\n return FromNever(schema_, references_, value);\n case 'Not':\n return FromNot(schema_, references_, value);\n case 'Null':\n return FromNull(schema_, references_, value);\n case 'Number':\n return FromNumber(schema_, references_, value);\n case 'Object':\n return FromObject(schema_, references_, value);\n case 'Promise':\n return FromPromise(schema_, references_, value);\n case 'Record':\n return FromRecord(schema_, references_, value);\n case 'Ref':\n return FromRef(schema_, references_, value);\n case 'RegExp':\n return FromRegExp(schema_, references_, value);\n case 'String':\n return FromString(schema_, references_, value);\n case 'Symbol':\n return FromSymbol(schema_, references_, value);\n case 'TemplateLiteral':\n return FromTemplateLiteral(schema_, references_, value);\n case 'This':\n return FromThis(schema_, references_, value);\n case 'Tuple':\n return FromTuple(schema_, references_, value);\n case 'Undefined':\n return FromUndefined(schema_, references_, value);\n case 'Union':\n return FromUnion(schema_, references_, value);\n case 'Uint8Array':\n return FromUint8Array(schema_, references_, value);\n case 'Unknown':\n return FromUnknown(schema_, references_, value);\n case 'Void':\n return FromVoid(schema_, references_, value);\n default:\n if (!TypeRegistry.Has(schema_[Kind]))\n throw new ValueCheckUnknownTypeError(schema_);\n return FromKind(schema_, references_, value);\n }\n}\n/** Returns true if the value matches the given type. */\nexport function Check(...args) {\n return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);\n}\n","import { TypeSystemPolicy } from '../system/index.mjs';\nimport { KeyOfPattern } from '../type/keyof/index.mjs';\nimport { TypeRegistry, FormatRegistry } from '../type/registry/index.mjs';\nimport { ExtendsUndefinedCheck } from '../type/extends/extends-undefined.mjs';\nimport { GetErrorFunction } from './function.mjs';\nimport { TypeBoxError } from '../type/error/index.mjs';\nimport { Deref } from '../value/deref/index.mjs';\nimport { Hash } from '../value/hash/index.mjs';\nimport { Check } from '../value/check/index.mjs';\nimport { Kind } from '../type/symbols/index.mjs';\nimport { Never } from '../type/never/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\n// prettier-ignore\nimport { IsArray, IsUint8Array, IsDate, IsPromise, IsFunction, IsAsyncIterator, IsIterator, IsBoolean, IsNumber, IsBigInt, IsString, IsSymbol, IsInteger, IsNull, IsUndefined } from '../value/guard/index.mjs';\n// ------------------------------------------------------------------\n// ValueErrorType\n// ------------------------------------------------------------------\nexport var 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[\"RegExp\"] = 48] = \"RegExp\";\n ValueErrorType[ValueErrorType[\"StringFormatUnknown\"] = 49] = \"StringFormatUnknown\";\n ValueErrorType[ValueErrorType[\"StringFormat\"] = 50] = \"StringFormat\";\n ValueErrorType[ValueErrorType[\"StringMaxLength\"] = 51] = \"StringMaxLength\";\n ValueErrorType[ValueErrorType[\"StringMinLength\"] = 52] = \"StringMinLength\";\n ValueErrorType[ValueErrorType[\"StringPattern\"] = 53] = \"StringPattern\";\n ValueErrorType[ValueErrorType[\"String\"] = 54] = \"String\";\n ValueErrorType[ValueErrorType[\"Symbol\"] = 55] = \"Symbol\";\n ValueErrorType[ValueErrorType[\"TupleLength\"] = 56] = \"TupleLength\";\n ValueErrorType[ValueErrorType[\"Tuple\"] = 57] = \"Tuple\";\n ValueErrorType[ValueErrorType[\"Uint8ArrayMaxByteLength\"] = 58] = \"Uint8ArrayMaxByteLength\";\n ValueErrorType[ValueErrorType[\"Uint8ArrayMinByteLength\"] = 59] = \"Uint8ArrayMinByteLength\";\n ValueErrorType[ValueErrorType[\"Uint8Array\"] = 60] = \"Uint8Array\";\n ValueErrorType[ValueErrorType[\"Undefined\"] = 61] = \"Undefined\";\n ValueErrorType[ValueErrorType[\"Union\"] = 62] = \"Union\";\n ValueErrorType[ValueErrorType[\"Void\"] = 63] = \"Void\";\n})(ValueErrorType || (ValueErrorType = {}));\n// ------------------------------------------------------------------\n// ValueErrors\n// ------------------------------------------------------------------\nexport class ValueErrorsUnknownTypeError extends TypeBoxError {\n constructor(schema) {\n super('Unknown type');\n this.schema = schema;\n }\n}\n// ------------------------------------------------------------------\n// EscapeKey\n// ------------------------------------------------------------------\nfunction EscapeKey(key) {\n return key.replace(/~/g, '~0').replace(/\\//g, '~1'); // RFC6901 Path\n}\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\nfunction IsDefined(value) {\n return value !== undefined;\n}\n// ------------------------------------------------------------------\n// ValueErrorIterator\n// ------------------------------------------------------------------\nexport class 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}\n// --------------------------------------------------------------------------\n// Create\n// --------------------------------------------------------------------------\nfunction Create(errorType, schema, path, value, errors = []) {\n return {\n type: errorType,\n schema,\n path,\n value,\n message: GetErrorFunction()({ errorType, path, schema, value, errors }),\n errors,\n };\n}\n// --------------------------------------------------------------------------\n// Types\n// --------------------------------------------------------------------------\nfunction* FromAny(schema, references, path, value) { }\nfunction* FromArgument(schema, references, path, value) { }\nfunction* FromArray(schema, references, path, value) {\n if (!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 = 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 : 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 (IsNumber(schema.minContains) && containsCount < schema.minContains) {\n yield Create(ValueErrorType.ArrayMinContains, schema, path, value);\n }\n if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) {\n yield Create(ValueErrorType.ArrayMaxContains, schema, path, value);\n }\n}\nfunction* FromAsyncIterator(schema, references, path, value) {\n if (!IsAsyncIterator(value))\n yield Create(ValueErrorType.AsyncIterator, schema, path, value);\n}\nfunction* FromBigInt(schema, references, path, value) {\n if (!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* FromBoolean(schema, references, path, value) {\n if (!IsBoolean(value))\n yield Create(ValueErrorType.Boolean, schema, path, value);\n}\nfunction* FromConstructor(schema, references, path, value) {\n yield* Visit(schema.returns, references, path, value.prototype);\n}\nfunction* FromDate(schema, references, path, value) {\n if (!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* FromFunction(schema, references, path, value) {\n if (!IsFunction(value))\n yield Create(ValueErrorType.Function, schema, path, value);\n}\nfunction* FromImport(schema, references, path, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n yield* Visit(target, [...references, ...definitions], path, value);\n}\nfunction* FromInteger(schema, references, path, value) {\n if (!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* FromIntersect(schema, references, path, value) {\n let hasError = false;\n for (const inner of schema.allOf) {\n for (const error of Visit(inner, references, path, value)) {\n hasError = true;\n yield error;\n }\n }\n if (hasError) {\n return yield Create(ValueErrorType.Intersect, schema, path, value);\n }\n if (schema.unevaluatedProperties === false) {\n const keyCheck = new RegExp(KeyOfPattern(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(KeyOfPattern(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* FromIterator(schema, references, path, value) {\n if (!IsIterator(value))\n yield Create(ValueErrorType.Iterator, schema, path, value);\n}\nfunction* FromLiteral(schema, references, path, value) {\n if (!(value === schema.const))\n yield Create(ValueErrorType.Literal, schema, path, value);\n}\nfunction* FromNever(schema, references, path, value) {\n yield Create(ValueErrorType.Never, schema, path, value);\n}\nfunction* FromNot(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* FromNull(schema, references, path, value) {\n if (!IsNull(value))\n yield Create(ValueErrorType.Null, schema, path, value);\n}\nfunction* FromNumber(schema, references, path, value) {\n if (!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* FromObject(schema, references, path, value) {\n if (!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 (ExtendsUndefinedCheck(schema) && !(knownKey in value)) {\n yield Create(ValueErrorType.ObjectRequiredProperty, property, `${path}/${EscapeKey(knownKey)}`, undefined);\n }\n }\n else {\n if (TypeSystemPolicy.IsExactOptionalProperty(value, knownKey)) {\n yield* Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]);\n }\n }\n }\n}\nfunction* FromPromise(schema, references, path, value) {\n if (!IsPromise(value))\n yield Create(ValueErrorType.Promise, schema, path, value);\n}\nfunction* FromRecord(schema, references, path, value) {\n if (!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* FromRef(schema, references, path, value) {\n yield* Visit(Deref(schema, references), references, path, value);\n}\nfunction* FromRegExp(schema, references, path, value) {\n if (!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 const regex = new RegExp(schema.source, schema.flags);\n if (!regex.test(value)) {\n return yield Create(ValueErrorType.RegExp, schema, path, value);\n }\n}\nfunction* FromString(schema, references, path, value) {\n if (!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 (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 (IsString(schema.format)) {\n if (!FormatRegistry.Has(schema.format)) {\n yield Create(ValueErrorType.StringFormatUnknown, schema, path, value);\n }\n else {\n const format = FormatRegistry.Get(schema.format);\n if (!format(value)) {\n yield Create(ValueErrorType.StringFormat, schema, path, value);\n }\n }\n }\n}\nfunction* FromSymbol(schema, references, path, value) {\n if (!IsSymbol(value))\n yield Create(ValueErrorType.Symbol, schema, path, value);\n}\nfunction* FromTemplateLiteral(schema, references, path, value) {\n if (!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* FromThis(schema, references, path, value) {\n yield* Visit(Deref(schema, references), references, path, value);\n}\nfunction* FromTuple(schema, references, path, value) {\n if (!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* FromUndefined(schema, references, path, value) {\n if (!IsUndefined(value))\n yield Create(ValueErrorType.Undefined, schema, path, value);\n}\nfunction* FromUnion(schema, references, path, value) {\n if (Check(schema, references, value))\n return;\n const errors = schema.anyOf.map((variant) => new ValueErrorIterator(Visit(variant, references, path, value)));\n yield Create(ValueErrorType.Union, schema, path, value, errors);\n}\nfunction* FromUint8Array(schema, references, path, value) {\n if (!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* FromUnknown(schema, references, path, value) { }\nfunction* FromVoid(schema, references, path, value) {\n if (!TypeSystemPolicy.IsVoidLike(value))\n yield Create(ValueErrorType.Void, schema, path, value);\n}\nfunction* FromKind(schema, references, path, value) {\n const check = TypeRegistry.Get(schema[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_[Kind]) {\n case 'Any':\n return yield* FromAny(schema_, references_, path, value);\n case 'Argument':\n return yield* FromArgument(schema_, references_, path, value);\n case 'Array':\n return yield* FromArray(schema_, references_, path, value);\n case 'AsyncIterator':\n return yield* FromAsyncIterator(schema_, references_, path, value);\n case 'BigInt':\n return yield* FromBigInt(schema_, references_, path, value);\n case 'Boolean':\n return yield* FromBoolean(schema_, references_, path, value);\n case 'Constructor':\n return yield* FromConstructor(schema_, references_, path, value);\n case 'Date':\n return yield* FromDate(schema_, references_, path, value);\n case 'Function':\n return yield* FromFunction(schema_, references_, path, value);\n case 'Import':\n return yield* FromImport(schema_, references_, path, value);\n case 'Integer':\n return yield* FromInteger(schema_, references_, path, value);\n case 'Intersect':\n return yield* FromIntersect(schema_, references_, path, value);\n case 'Iterator':\n return yield* FromIterator(schema_, references_, path, value);\n case 'Literal':\n return yield* FromLiteral(schema_, references_, path, value);\n case 'Never':\n return yield* FromNever(schema_, references_, path, value);\n case 'Not':\n return yield* FromNot(schema_, references_, path, value);\n case 'Null':\n return yield* FromNull(schema_, references_, path, value);\n case 'Number':\n return yield* FromNumber(schema_, references_, path, value);\n case 'Object':\n return yield* FromObject(schema_, references_, path, value);\n case 'Promise':\n return yield* FromPromise(schema_, references_, path, value);\n case 'Record':\n return yield* FromRecord(schema_, references_, path, value);\n case 'Ref':\n return yield* FromRef(schema_, references_, path, value);\n case 'RegExp':\n return yield* FromRegExp(schema_, references_, path, value);\n case 'String':\n return yield* FromString(schema_, references_, path, value);\n case 'Symbol':\n return yield* FromSymbol(schema_, references_, path, value);\n case 'TemplateLiteral':\n return yield* FromTemplateLiteral(schema_, references_, path, value);\n case 'This':\n return yield* FromThis(schema_, references_, path, value);\n case 'Tuple':\n return yield* FromTuple(schema_, references_, path, value);\n case 'Undefined':\n return yield* FromUndefined(schema_, references_, path, value);\n case 'Union':\n return yield* FromUnion(schema_, references_, path, value);\n case 'Uint8Array':\n return yield* FromUint8Array(schema_, references_, path, value);\n case 'Unknown':\n return yield* FromUnknown(schema_, references_, path, value);\n case 'Void':\n return yield* FromVoid(schema_, references_, path, value);\n default:\n if (!TypeRegistry.Has(schema_[Kind]))\n throw new ValueErrorsUnknownTypeError(schema);\n return yield* FromKind(schema_, references_, path, value);\n }\n}\n/** Returns an iterator for each error in this value. */\nexport function 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}\n","// The adapter the package itself is judged by: TypeBox Value.Check over\n// the registered schemas. Consumers implement their own adapter over their\n// real parser; this one exists so a profile PR proves its vectors against\n// the schemas before any consumer sees them.\nimport { createHash } from \"node:crypto\";\nimport { Value } from \"@sinclair/typebox/value\";\nimport { jcsStringify } from \"@dynamicalsystems/orn-schemas\";\nimport { PROFILES } from \"@dynamicalsystems/idl\";\nimport type { Adapter, ParseResult } from \"./adapter.js\";\n\nexport function referenceAdapter(): Adapter {\n const adapter: Record<string, (bytes: Uint8Array) => ParseResult> = {};\n for (const entry of Object.values(PROFILES)) {\n adapter[`${entry.literal}#digest.envelope`] = (bytes) => {\n let parsed: unknown;\n try {\n parsed = JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes));\n } catch (error) {\n return { ok: false, reason: `not UTF-8 JSON: ${String(error)}` };\n }\n const digest = createHash(\"sha256\").update(jcsStringify(parsed)).digest(\"hex\");\n return { ok: true, digest };\n };\n for (const [shapeName, shape] of Object.entries(entry.shapes)) {\n adapter[`${entry.literal}#${shapeName}`] = (bytes) => {\n let parsed: unknown;\n try {\n parsed = JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes));\n } catch (error) {\n return { ok: false, reason: `not UTF-8 JSON: ${String(error)}` };\n }\n if (Value.Check(shape, parsed)) return { ok: true };\n const first = Value.Errors(shape, parsed).First();\n return {\n ok: false,\n reason: `${first?.path ?? \"\"}: ${first?.message ?? \"schema mismatch\"}`,\n };\n };\n }\n }\n return adapter;\n}\n"],"x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"mappings":"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"}
|